From de5cca6b1f660776e85d646d9c227c03ef60ccf1 Mon Sep 17 00:00:00 2001 From: Diego von Deschwanden <68632259+Diegovd@users.noreply.github.com> Date: Tue, 28 Jul 2020 08:04:44 +0200 Subject: [PATCH 001/194] Update more external links (#18819) --- LICENSE | 5 ++--- Marlin/src/HAL/DUE/HAL.cpp | 1 + Marlin/src/HAL/ESP32/ota.cpp | 1 + Marlin/src/HAL/STM32/SoftwareSerial.cpp | 10 +++++----- Marlin/src/HAL/shared/backtrace/unwarmbytab.cpp | 2 +- Marlin/src/feature/dac/dac_mcp4728.cpp | 2 +- Marlin/src/gcode/motion/G5.cpp | 2 +- buildroot/share/vscode/avrdude.conf | 16 ++++++++-------- buildroot/share/vscode/avrdude_linux.conf | 16 ++++++++-------- buildroot/share/vscode/avrdude_macOS.conf | 8 ++++---- platformio.ini | 2 +- 11 files changed, 33 insertions(+), 32 deletions(-) diff --git a/LICENSE b/LICENSE index 4ad6d9b1e..6c0e10f3b 100644 --- a/LICENSE +++ b/LICENSE @@ -3,7 +3,7 @@ GNU GENERAL PUBLIC LICENSE Version 3, 29 June 2007 - Copyright (c) 2007 Free Software Foundation, Inc. + Copyright (c) 2007 Free Software Foundation, Inc. Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. @@ -673,5 +673,4 @@ into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Lesser General Public License instead of this License. But first, please read -. - +. diff --git a/Marlin/src/HAL/DUE/HAL.cpp b/Marlin/src/HAL/DUE/HAL.cpp index f2bf4ebbf..4b9260c35 100644 --- a/Marlin/src/HAL/DUE/HAL.cpp +++ b/Marlin/src/HAL/DUE/HAL.cpp @@ -15,6 +15,7 @@ * * You should have received a copy of the GNU General Public License * along with this program. If not, see . + * */ /** diff --git a/Marlin/src/HAL/ESP32/ota.cpp b/Marlin/src/HAL/ESP32/ota.cpp index 7cf65ed2d..69a3e25e5 100644 --- a/Marlin/src/HAL/ESP32/ota.cpp +++ b/Marlin/src/HAL/ESP32/ota.cpp @@ -15,6 +15,7 @@ * * You should have received a copy of the GNU General Public License * along with this program. If not, see . + * */ #ifdef ARDUINO_ARCH_ESP32 diff --git a/Marlin/src/HAL/STM32/SoftwareSerial.cpp b/Marlin/src/HAL/STM32/SoftwareSerial.cpp index af92548cb..2228a177b 100644 --- a/Marlin/src/HAL/STM32/SoftwareSerial.cpp +++ b/Marlin/src/HAL/STM32/SoftwareSerial.cpp @@ -3,14 +3,14 @@ * * Multi-instance software serial library for Arduino/Wiring * -- Interrupt-driven receive and other improvements by ladyada - * (https://ladyada.net) + * * -- Tuning, circular buffer, derivation from class Print/Stream, * multi-instance support, porting to 8MHz processors, * various optimizations, PROGMEM delay tables, inverse logic and - * direct port writing by Mikal Hart (http://www.arduiniana.org) - * -- Pin change interrupt macros by Paul Stoffregen (https://www.pjrc.com) - * -- 20MHz processor support by Garrett Mace (http://www.macetech.com) - * -- ATmega1280/2560 support by Brett Hagman (https://www.roguerobotics.com/) + * direct port writing by Mikal Hart + * -- Pin change interrupt macros by Paul Stoffregen + * -- 20MHz processor support by Garrett Mace + * -- ATmega1280/2560 support by Brett Hagman * -- STM32 support by Armin van der Togt * * This library is free software; you can redistribute it and/or diff --git a/Marlin/src/HAL/shared/backtrace/unwarmbytab.cpp b/Marlin/src/HAL/shared/backtrace/unwarmbytab.cpp index f524673ec..bfc062af2 100644 --- a/Marlin/src/HAL/shared/backtrace/unwarmbytab.cpp +++ b/Marlin/src/HAL/shared/backtrace/unwarmbytab.cpp @@ -4,7 +4,7 @@ * * This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at https://mozilla.org/MPL/2.0/. + * file, You can obtain one at https://www.mozilla.org/en-US/MPL/2.0/ * * This library was modified, some bugs fixed, stack address validated * and adapted to be used in Marlin 3D printer firmware as backtracer diff --git a/Marlin/src/feature/dac/dac_mcp4728.cpp b/Marlin/src/feature/dac/dac_mcp4728.cpp index 4976b3690..55f10a49e 100644 --- a/Marlin/src/feature/dac/dac_mcp4728.cpp +++ b/Marlin/src/feature/dac/dac_mcp4728.cpp @@ -27,7 +27,7 @@ * https://ww1.microchip.com/downloads/en/DeviceDoc/22187a.pdf * * For discussion and feedback, please go to: - * https://arduino.cc/forum/index.php/topic,51842.0.html + * https://forum.arduino.cc/index.php/topic,51842.0.html */ #include "../../inc/MarlinConfig.h" diff --git a/Marlin/src/gcode/motion/G5.cpp b/Marlin/src/gcode/motion/G5.cpp index 35cc42802..2c98fae84 100644 --- a/Marlin/src/gcode/motion/G5.cpp +++ b/Marlin/src/gcode/motion/G5.cpp @@ -29,7 +29,7 @@ /** * Parameters interpreted according to: - * https://linuxcnc.org/docs/2.6/html/gcode/gcode.html#sec:G5-Cubic-Spline + * https://linuxcnc.org/docs/2.7/html/gcode/g-code.html#gcode:g5 * However I, J omission is not supported at this point; all * parameters can be omitted and default to zero. */ diff --git a/buildroot/share/vscode/avrdude.conf b/buildroot/share/vscode/avrdude.conf index 1194847f7..475f8bf10 100644 --- a/buildroot/share/vscode/avrdude.conf +++ b/buildroot/share/vscode/avrdude.conf @@ -145,9 +145,9 @@ # VCC pins are not defined for the programmer, a message # indicating that the device needs a power-cycle is printed out. # This flag was added to work around a problem with the -# at90s4433/2333's; see the at90s4433 errata at: +# at90s4433/2333's; see the at90s4433 errata page 2 at: # -# http://www.atmel.com/atmel/acrobat/doc1280.pdf +# https://ww1.microchip.com/downloads/en/AppNotes/doc2574.pdf # # INSTRUCTION FORMATS # @@ -416,13 +416,13 @@ programmer programmer id = "usbasp"; - desc = "USBasp, http://www.fischl.de/usbasp/"; + desc = "USBasp, https://www.fischl.de/usbasp/"; type = usbasp; ; programmer id = "usbtiny"; - desc = "USBtiny simple USB programmer, http://www.ladyada.net/make/usbtinyisp/"; + desc = "USBtiny simple USB programmer, https://learn.adafruit.com/usbtinyisp"; type = usbtiny; ; @@ -596,7 +596,7 @@ programmer programmer id = "bsd"; - desc = "Brian Dean's Programmer, http://www.bsdhome.com/avrdude/"; + desc = "Brian Dean's Programmer, https://savannah.nongnu.org/projects/avrdude"; type = par; vcc = 2, 3, 4, 5; reset = 7; @@ -743,7 +743,7 @@ programmer programmer id = "atisp"; - desc = "AT-ISP V1.1 programming cable for AVR-SDK1 from micro-research.co.th"; + desc = "AT-ISP V1.1 programming cable for AVR-SDK1 from micro-research.co.th"; type = par; reset = ~6; sck = ~8; @@ -773,7 +773,7 @@ programmer ; # It is almost same as pony-stk200, except vcc on pin 5 to auto -# disconnect port (download on http://electropol.free.fr) +# disconnect port download on http://www.electropol.fr programmer id = "frank-stk200"; desc = "Frank STK200"; @@ -787,7 +787,7 @@ programmer ; # The AT98ISP Cable is a simple parallel dongle for AT89 family. -# http://www.atmel.com/dyn/products/tools_card.asp?tool_id=2877 +# https://www.microchip.com/wwwAppNotes/AppNotes.aspx?appnote=en592141 programmer id = "89isp"; desc = "Atmel at89isp cable"; diff --git a/buildroot/share/vscode/avrdude_linux.conf b/buildroot/share/vscode/avrdude_linux.conf index 46e7ace34..cbc65d691 100644 --- a/buildroot/share/vscode/avrdude_linux.conf +++ b/buildroot/share/vscode/avrdude_linux.conf @@ -145,9 +145,9 @@ # VCC pins are not defined for the programmer, a message # indicating that the device needs a power-cycle is printed out. # This flag was added to work around a problem with the -# at90s4433/2333's; see the at90s4433 errata at: +# at90s4433/2333's; see the at90s4433 errata page 2 at: # -# http://www.atmel.com/atmel/acrobat/doc1280.pdf +# https://ww1.microchip.com/downloads/en/AppNotes/doc2574.pdf # # INSTRUCTION FORMATS # @@ -416,13 +416,13 @@ programmer programmer id = "usbasp"; - desc = "USBasp, http://www.fischl.de/usbasp/"; + desc = "USBasp, https://www.fischl.de/usbasp/"; type = usbasp; ; programmer id = "usbtiny"; - desc = "USBtiny simple USB programmer, http://www.ladyada.net/make/usbtinyisp/"; + desc = "USBtiny simple USB programmer, https://learn.adafruit.com/usbtinyisp"; type = usbtiny; ; @@ -596,7 +596,7 @@ programmer programmer id = "bsd"; - desc = "Brian Dean's Programmer, http://www.bsdhome.com/avrdude/"; + desc = "Brian Dean's Programmer, https://savannah.nongnu.org/projects/avrdude"; type = par; vcc = 2, 3, 4, 5; reset = 7; @@ -743,7 +743,7 @@ programmer programmer id = "atisp"; - desc = "AT-ISP V1.1 programming cable for AVR-SDK1 from micro-research.co.th"; + desc = "AT-ISP V1.1 programming cable for AVR-SDK1 from micro-research.co.th"; type = par; reset = ~6; sck = ~8; @@ -773,7 +773,7 @@ programmer ; # It is almost same as pony-stk200, except vcc on pin 5 to auto -# disconnect port (download on http://electropol.free.fr) +# disconnect port download on http://www.electropol.fr programmer id = "frank-stk200"; desc = "Frank STK200"; @@ -787,7 +787,7 @@ programmer ; # The AT98ISP Cable is a simple parallel dongle for AT89 family. -# http://www.atmel.com/dyn/products/tools_card.asp?tool_id=2877 +# https://www.microchip.com/wwwAppNotes/AppNotes.aspx?appnote=en592141 programmer id = "89isp"; desc = "Atmel at89isp cable"; diff --git a/buildroot/share/vscode/avrdude_macOS.conf b/buildroot/share/vscode/avrdude_macOS.conf index d93356745..814e87e35 100644 --- a/buildroot/share/vscode/avrdude_macOS.conf +++ b/buildroot/share/vscode/avrdude_macOS.conf @@ -145,9 +145,9 @@ # VCC pins are not defined for the programmer, a message # indicating that the device needs a power-cycle is printed out. # This flag was added to work around a problem with the -# at90s4433/2333's; see the at90s4433 errata at: +# at90s4433/2333's; see the at90s4433 errata page 2 at: # -# http://www.atmel.com/atmel/acrobat/doc1280.pdf +# https://ww1.microchip.com/downloads/en/AppNotes/doc2574.pdf # # INSTRUCTION FORMATS # @@ -416,13 +416,13 @@ programmer programmer id = "usbasp"; - desc = "USBasp, http://www.fischl.de/usbasp/"; + desc = "USBasp, https://www.fischl.de/usbasp/"; type = usbasp; ; programmer id = "usbtiny"; - desc = "USBtiny simple USB programmer, http://www.ladyada.net/make/usbtinyisp/"; + desc = "USBtiny simple USB programmer, https://learn.adafruit.com/usbtinyisp"; type = usbtiny; ; diff --git a/platformio.ini b/platformio.ini index 543b837f5..f60ebcce3 100644 --- a/platformio.ini +++ b/platformio.ini @@ -4,7 +4,7 @@ # # For detailed documentation with EXAMPLES: # -# https://docs.platformio.org/en/latest/projectconf.html +# https://docs.platformio.org/en/latest/projectconf/index.html # # Automatic targets - enable auto-uploading From b80cc09b13dbac0b1b289a89568641a07e226345 Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Tue, 28 Jul 2020 03:10:00 -0500 Subject: [PATCH 002/194] Keep -std=gnu++11 in stm32 build_unflags --- platformio.ini | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/platformio.ini b/platformio.ini index f60ebcce3..24d416444 100644 --- a/platformio.ini +++ b/platformio.ini @@ -380,7 +380,7 @@ src_filter = ${common.default_src_filter} + platform = ${common_stm32.platform} build_flags = !python Marlin/src/HAL/STM32F1/build_flags.py ${common.build_flags} -std=gnu++14 -DHAVE_SW_SERIAL -build_unflags = -std=gnu11 +build_unflags = -std=gnu11 -std=gnu++11 src_filter = ${common.default_src_filter} + lib_ignore = SPI lib_deps = ${common.lib_deps} From aaf1ee78a454969cf948b69e6afdd121adb80fc7 Mon Sep 17 00:00:00 2001 From: thinkyhead Date: Wed, 29 Jul 2020 00:09:42 +0000 Subject: [PATCH 003/194] [cron] Bump distribution date (2020-07-29) --- Marlin/src/inc/Version.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Marlin/src/inc/Version.h b/Marlin/src/inc/Version.h index aea45c24c..c85a31df0 100644 --- a/Marlin/src/inc/Version.h +++ b/Marlin/src/inc/Version.h @@ -42,7 +42,7 @@ * version was tagged. */ #ifndef STRING_DISTRIBUTION_DATE - #define STRING_DISTRIBUTION_DATE "2020-07-28" + #define STRING_DISTRIBUTION_DATE "2020-07-29" #endif /** From f205cd7d2cf3b78c75f60648f972cd12377f0784 Mon Sep 17 00:00:00 2001 From: natemason Date: Wed, 29 Jul 2020 09:18:02 +0800 Subject: [PATCH 004/194] Add TEMP_PROBE_PIN for Einsy Rambo (#18823) --- Marlin/src/pins/rambo/pins_EINSY_RAMBO.h | 1 + 1 file changed, 1 insertion(+) diff --git a/Marlin/src/pins/rambo/pins_EINSY_RAMBO.h b/Marlin/src/pins/rambo/pins_EINSY_RAMBO.h index 76c3f131a..8fb3be47d 100644 --- a/Marlin/src/pins/rambo/pins_EINSY_RAMBO.h +++ b/Marlin/src/pins/rambo/pins_EINSY_RAMBO.h @@ -109,6 +109,7 @@ #define TEMP_0_PIN 0 // Analog Input #define TEMP_1_PIN 1 // Analog Input #define TEMP_BED_PIN 2 // Analog Input +#define TEMP_PROBE_PIN 3 // Analog Input // // Heaters / Fans From 159dcd8e8a6e829fa8caaa90ecf1a5140ea87989 Mon Sep 17 00:00:00 2001 From: MoellerDi Date: Wed, 29 Jul 2020 03:19:12 +0200 Subject: [PATCH 005/194] Fix NEOPIXEL_LED compile w/out PRINTER_EVENT_LEDS (#18824) --- Marlin/src/inc/Conditionals_LCD.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Marlin/src/inc/Conditionals_LCD.h b/Marlin/src/inc/Conditionals_LCD.h index 66e83c529..992a788eb 100644 --- a/Marlin/src/inc/Conditionals_LCD.h +++ b/Marlin/src/inc/Conditionals_LCD.h @@ -752,6 +752,6 @@ /** * To check if we need the folder src/features/leds */ -#if ANY(TEMP_STAT_LEDS, HAS_COLOR_LEDS, HAS_CASE_LIGHT, PRINTER_EVENT_LEDS, LED_BACKLIGHT_TIMEOUT, PCA9632_BUZZER, LED_CONTROL_MENU) +#if ANY(TEMP_STAT_LEDS, HAS_COLOR_LEDS, HAS_CASE_LIGHT, PRINTER_EVENT_LEDS, LED_BACKLIGHT_TIMEOUT, PCA9632_BUZZER, LED_CONTROL_MENU, NEOPIXEL_LED) #define HAS_LED_FEATURE 1 #endif From 62da2c97d0f17fff6bc5bf3ca7be7ba6f9c8e0a7 Mon Sep 17 00:00:00 2001 From: Victor Oliveira Date: Tue, 28 Jul 2020 23:15:17 -0300 Subject: [PATCH 006/194] DISABLE_DEBUG required to free Robin nano Z_DIR_PIN (#18832) --- Marlin/src/pins/stm32f1/pins_MKS_ROBIN_NANO_V2.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Marlin/src/pins/stm32f1/pins_MKS_ROBIN_NANO_V2.h b/Marlin/src/pins/stm32f1/pins_MKS_ROBIN_NANO_V2.h index dd0d1e946..ee88962e1 100644 --- a/Marlin/src/pins/stm32f1/pins_MKS_ROBIN_NANO_V2.h +++ b/Marlin/src/pins/stm32f1/pins_MKS_ROBIN_NANO_V2.h @@ -37,7 +37,7 @@ // Release PB4 (Y_ENABLE_PIN) from JTAG NRST role // -//#define DISABLE_DEBUG +#define DISABLE_DEBUG // // EEPROM From 83e15f7701d36f3c8401ab0064278d233e2be6de Mon Sep 17 00:00:00 2001 From: Giuliano Zaro <3684609+GMagician@users.noreply.github.com> Date: Wed, 29 Jul 2020 04:19:46 +0200 Subject: [PATCH 007/194] [SAMD51] ES Interrupt parity with other HALs (#18836) --- Marlin/src/HAL/SAMD51/endstop_interrupts.h | 27 +++++++++++----------- 1 file changed, 14 insertions(+), 13 deletions(-) diff --git a/Marlin/src/HAL/SAMD51/endstop_interrupts.h b/Marlin/src/HAL/SAMD51/endstop_interrupts.h index 03c246945..daac77338 100644 --- a/Marlin/src/HAL/SAMD51/endstop_interrupts.h +++ b/Marlin/src/HAL/SAMD51/endstop_interrupts.h @@ -126,82 +126,83 @@ void endstop_ISR() { endstops.update(); } void setup_endstop_interrupts() { + #define _ATTACH(P) attachInterrupt(P, endstop_ISR, CHANGE) #if HAS_X_MAX #if !AVAILABLE_EILINE(X_MAX_PIN) #error "X_MAX_PIN has no EXTINT line available." #endif - attachInterrupt(X_MAX_PIN, endstop_ISR, CHANGE); + _ATTACH(X_MAX_PIN); #endif #if HAS_X_MIN #if !AVAILABLE_EILINE(X_MIN_PIN) #error "X_MIN_PIN has no EXTINT line available." #endif - attachInterrupt(X_MIN_PIN, endstop_ISR, CHANGE); + _ATTACH(X_MIN_PIN); #endif #if HAS_Y_MAX #if !AVAILABLE_EILINE(Y_MAX_PIN) #error "Y_MAX_PIN has no EXTINT line available." #endif - attachInterrupt(Y_MAX_PIN, endstop_ISR, CHANGE); + _ATTACH(Y_MAX_PIN); #endif #if HAS_Y_MIN #if !AVAILABLE_EILINE(Y_MIN_PIN) #error "Y_MIN_PIN has no EXTINT line available." #endif - attachInterrupt(Y_MIN_PIN, endstop_ISR, CHANGE); + _ATTACH(Y_MIN_PIN); #endif #if HAS_Z_MAX #if !AVAILABLE_EILINE(Z_MAX_PIN) #error "Z_MAX_PIN has no EXTINT line available." #endif - attachInterrupt(Z_MAX_PIN, endstop_ISR, CHANGE); + _ATTACH(Z_MAX_PIN); #endif #if HAS_Z_MIN #if !AVAILABLE_EILINE(Z_MIN_PIN) #error "Z_MIN_PIN has no EXTINT line available." #endif - attachInterrupt(Z_MIN_PIN, endstop_ISR, CHANGE); + _ATTACH(Z_MIN_PIN); #endif #if HAS_Z2_MAX #if !AVAILABLE_EILINE(Z2_MAX_PIN) #error "Z2_MAX_PIN has no EXTINT line available." #endif - attachInterrupt(Z2_MAX_PIN, endstop_ISR, CHANGE); + _ATTACH(Z2_MAX_PIN); #endif #if HAS_Z2_MIN #if !AVAILABLE_EILINE(Z2_MIN_PIN) #error "Z2_MIN_PIN has no EXTINT line available." #endif - attachInterrupt(Z2_MIN_PIN, endstop_ISR, CHANGE); + _ATTACH(Z2_MIN_PIN); #endif #if HAS_Z3_MAX #if !AVAILABLE_EILINE(Z3_MAX_PIN) #error "Z3_MAX_PIN has no EXTINT line available." #endif - attachInterrupt(Z3_MAX_PIN, endstop_ISR, CHANGE); + _ATTACH(Z3_MAX_PIN); #endif #if HAS_Z3_MIN #if !AVAILABLE_EILINE(Z3_MIN_PIN) #error "Z3_MIN_PIN has no EXTINT line available." #endif - attachInterrupt(Z3_MIN_PIN, endstop_ISR, CHANGE); + _ATTACH(Z3_MIN_PIN); #endif #if HAS_Z4_MAX #if !AVAILABLE_EILINE(Z4_MAX_PIN) #error "Z4_MAX_PIN has no EXTINT line available." #endif - attachInterrupt(Z4_MAX_PIN, endstop_ISR, CHANGE); + _ATTACH(Z4_MAX_PIN); #endif #if HAS_Z4_MIN #if !AVAILABLE_EILINE(Z4_MIN_PIN) #error "Z4_MIN_PIN has no EXTINT line available." #endif - attachInterrupt(Z4_MIN_PIN, endstop_ISR, CHANGE); + _ATTACH(Z4_MIN_PIN); #endif #if HAS_Z_MIN_PROBE_PIN #if !AVAILABLE_EILINE(Z_MIN_PROBE_PIN) #error "Z_MIN_PROBE_PIN has no EXTINT line available." #endif - attachInterrupt(Z_MIN_PROBE_PIN, endstop_ISR, CHANGE); + _ATTACH(Z_MIN_PROBE_PIN); #endif } From 37b03dea8d34cbb6baa69f52ed365df94541763b Mon Sep 17 00:00:00 2001 From: swissnorp <67485708+swissnorp@users.noreply.github.com> Date: Wed, 29 Jul 2020 04:28:58 +0200 Subject: [PATCH 008/194] Fix Cancel Objects index display (zero-based) (#18841) --- Marlin/src/feature/cancel_object.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Marlin/src/feature/cancel_object.cpp b/Marlin/src/feature/cancel_object.cpp index 7eb471543..16f876f13 100644 --- a/Marlin/src/feature/cancel_object.cpp +++ b/Marlin/src/feature/cancel_object.cpp @@ -45,7 +45,7 @@ void CancelObject::set_active_object(const int8_t obj) { #if HAS_DISPLAY if (active_object >= 0) - ui.status_printf_P(0, PSTR(S_FMT " %i"), GET_TEXT(MSG_PRINTING_OBJECT), int(active_object + 1)); + ui.status_printf_P(0, PSTR(S_FMT " %i"), GET_TEXT(MSG_PRINTING_OBJECT), int(active_object)); else ui.reset_status(); #endif From 05d95171cc4ef51e91c0c0f069d935f8f252dcdc Mon Sep 17 00:00:00 2001 From: Giuliano Zaro <3684609+GMagician@users.noreply.github.com> Date: Wed, 29 Jul 2020 21:35:31 +0200 Subject: [PATCH 009/194] Clarify Nozzle-to-Probe offset (#18828) Co-authored-by: Scott Lahteine --- Marlin/Configuration.h | 36 +++++++++++++++++++++++------------- 1 file changed, 23 insertions(+), 13 deletions(-) diff --git a/Marlin/Configuration.h b/Marlin/Configuration.h index a01571c42..bde1e7855 100644 --- a/Marlin/Configuration.h +++ b/Marlin/Configuration.h @@ -964,24 +964,34 @@ // /** - * Z Probe to nozzle (X,Y) offset, relative to (0, 0). + * Nozzle-to-Probe offsets { X, Y, Z } * - * In the following example the X and Y offsets are both positive: + * - Use a caliper or ruler to measure the distance from the tip of + * the Nozzle to the center-point of the Probe in the X and Y axes. + * - For the Z offset use your best known value and adjust at runtime. + * - Probe Offsets can be tuned at runtime with 'M851', LCD menus, babystepping, etc. * - * #define NOZZLE_TO_PROBE_OFFSET { 10, 10, 0 } + * Assuming the typical work area orientation: + * - Probe to RIGHT of the Nozzle has a Positive X offset + * - Probe to LEFT of the Nozzle has a Negative X offset + * - Probe in BACK of the Nozzle has a Positive Y offset + * - Probe in FRONT of the Nozzle has a Negative Y offset + * + * Some examples: + * #define NOZZLE_TO_PROBE_OFFSET { 10, 10, -1 } // Example "1" + * #define NOZZLE_TO_PROBE_OFFSET {-10, 5, -1 } // Example "2" + * #define NOZZLE_TO_PROBE_OFFSET { 5, -5, -1 } // Example "3" + * #define NOZZLE_TO_PROBE_OFFSET {-15,-10, -1 } // Example "4" * * +-- BACK ---+ - * | | - * L | (+) P | R <-- probe (20,20) - * E | | I - * F | (-) N (+) | G <-- nozzle (10,10) - * T | | H - * | (-) | T - * | | + * | [+] | + * L | 1 | R <-- Example "1" (right+, back+) + * E | 2 | I <-- Example "2" ( left-, back+) + * F |[-] N [+]| G <-- Nozzle + * T | 3 | H <-- Example "3" (right+, front-) + * | 4 | T <-- Example "4" ( left-, front-) + * | [-] | * O-- FRONT --+ - * (0,0) - * - * Specify a Probe position as { X, Y, Z } */ #define NOZZLE_TO_PROBE_OFFSET { 10, 10, 0 } From fc959463805171f1f4063886d5ecaba7cd046040 Mon Sep 17 00:00:00 2001 From: lethalwallabies <54120706+lethalwallabies@users.noreply.github.com> Date: Wed, 29 Jul 2020 21:49:07 +0200 Subject: [PATCH 010/194] Typo fix (#18856) --- Marlin/Configuration_adv.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Marlin/Configuration_adv.h b/Marlin/Configuration_adv.h index 3f097c09e..7ebab9d16 100644 --- a/Marlin/Configuration_adv.h +++ b/Marlin/Configuration_adv.h @@ -680,7 +680,7 @@ * Danger: Don't activate 5V mode unless attached to a 5V-tolerant controller! * V3.0 or 3.1: Set default mode to 5V mode at Marlin startup. * If disabled, OD mode is the hard-coded default on 3.0 - * On startup, Marlin will compare its eeprom to this vale. If the selected mode + * On startup, Marlin will compare its eeprom to this value. If the selected mode * differs, a mode set eeprom write will be completed at initialization. * Use the option below to force an eeprom write to a V3.1 probe regardless. */ From 5eae8e78306ac570d94128e05dd3e6563b63c32b Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Wed, 29 Jul 2020 15:44:05 -0500 Subject: [PATCH 011/194] Update keypad link --- Marlin/Configuration.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Marlin/Configuration.h b/Marlin/Configuration.h index bde1e7855..1f34c0691 100644 --- a/Marlin/Configuration.h +++ b/Marlin/Configuration.h @@ -2197,7 +2197,7 @@ // // RepRapWorld REPRAPWORLD_KEYPAD v1.1 -// https://reprapworld.com/?products_details&products_id=202&cPath=1591_1626 +// https://reprapworld.com/products/electronics/ramps/keypad_v1_0_fully_assembled/ // //#define REPRAPWORLD_KEYPAD //#define REPRAPWORLD_KEYPAD_MOVE_STEP 10.0 // (mm) Distance to move per key-press From e549d474aa66a4f92eebd9512940b34e188b97c2 Mon Sep 17 00:00:00 2001 From: Diego von Deschwanden <68632259+Diegovd@users.noreply.github.com> Date: Thu, 30 Jul 2020 02:04:37 +0200 Subject: [PATCH 012/194] Fix URLs to websites and resources (#18844) --- buildroot/share/vscode/avrdude.conf | 2 +- buildroot/share/vscode/avrdude_linux.conf | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/buildroot/share/vscode/avrdude.conf b/buildroot/share/vscode/avrdude.conf index 475f8bf10..9f85aa0d2 100644 --- a/buildroot/share/vscode/avrdude.conf +++ b/buildroot/share/vscode/avrdude.conf @@ -753,7 +753,7 @@ programmer programmer id = "ere-isp-avr"; - desc = "ERE ISP-AVR "; + desc = "ERE ISP-AVR "; type = par; reset = ~4; sck = 3; diff --git a/buildroot/share/vscode/avrdude_linux.conf b/buildroot/share/vscode/avrdude_linux.conf index cbc65d691..64d3b677d 100644 --- a/buildroot/share/vscode/avrdude_linux.conf +++ b/buildroot/share/vscode/avrdude_linux.conf @@ -753,7 +753,7 @@ programmer programmer id = "ere-isp-avr"; - desc = "ERE ISP-AVR "; + desc = "ERE ISP-AVR "; type = par; reset = ~4; sck = 3; From 251c5c47aae1451e5be8f1151fb248b5e6a9a68b Mon Sep 17 00:00:00 2001 From: thinkyhead Date: Thu, 30 Jul 2020 00:15:26 +0000 Subject: [PATCH 013/194] [cron] Bump distribution date (2020-07-30) --- Marlin/src/inc/Version.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Marlin/src/inc/Version.h b/Marlin/src/inc/Version.h index c85a31df0..199f09221 100644 --- a/Marlin/src/inc/Version.h +++ b/Marlin/src/inc/Version.h @@ -42,7 +42,7 @@ * version was tagged. */ #ifndef STRING_DISTRIBUTION_DATE - #define STRING_DISTRIBUTION_DATE "2020-07-29" + #define STRING_DISTRIBUTION_DATE "2020-07-30" #endif /** From 95f990a656faefe071eabac107c1ffa012598710 Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Wed, 29 Jul 2020 20:43:35 -0500 Subject: [PATCH 014/194] Fix UNKNOWN_Z_NO_RAISE in G28 Bug introduced in 73fc0778b86 --- Marlin/src/gcode/calibrate/G28.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Marlin/src/gcode/calibrate/G28.cpp b/Marlin/src/gcode/calibrate/G28.cpp index 1fbb3dd35..0b2bb9801 100644 --- a/Marlin/src/gcode/calibrate/G28.cpp +++ b/Marlin/src/gcode/calibrate/G28.cpp @@ -312,7 +312,7 @@ void GcodeSuite::G28() { #endif const float z_homing_height = - ENABLED(UNKNOWN_Z_NO_RAISE) && TEST(axis_known_position, Z_AXIS) + ENABLED(UNKNOWN_Z_NO_RAISE) && !TEST(axis_known_position, Z_AXIS) ? 0 : (parser.seenval('R') ? parser.value_linear_units() : Z_HOMING_HEIGHT); From 73ce80af3a3f8415a7c3f7f5551b429d58019a05 Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Wed, 29 Jul 2020 20:50:10 -0500 Subject: [PATCH 015/194] In G28 Z is sort-of known --- Marlin/src/gcode/calibrate/G28.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Marlin/src/gcode/calibrate/G28.cpp b/Marlin/src/gcode/calibrate/G28.cpp index 0b2bb9801..78695bc05 100644 --- a/Marlin/src/gcode/calibrate/G28.cpp +++ b/Marlin/src/gcode/calibrate/G28.cpp @@ -319,7 +319,7 @@ void GcodeSuite::G28() { if (z_homing_height && (doX || doY || (ENABLED(Z_SAFE_HOMING) && doZ))) { // Raise Z before homing any other axes and z is not already high enough (never lower z) if (DEBUGGING(LEVELING)) DEBUG_ECHOLNPAIR("Raise Z (before homing) by ", z_homing_height); - do_z_clearance(z_homing_height, TEST(axis_known_position, Z_AXIS), DISABLED(UNKNOWN_Z_NO_RAISE)); + do_z_clearance(z_homing_height, true, DISABLED(UNKNOWN_Z_NO_RAISE)); } #if ENABLED(QUICK_HOME) From 38ce5966e19094fb499ce7d647961c0594c5f811 Mon Sep 17 00:00:00 2001 From: Victor Oliveira Date: Wed, 29 Jul 2020 23:25:07 -0300 Subject: [PATCH 016/194] SPI Emulated DOGM (like FSMC_GRAPHICAL_TFT, but SPI) (#18817) --- Marlin/Configuration.h | 14 +- Marlin/Configuration_adv.h | 5 +- Marlin/src/HAL/STM32F1/SPI.h | 2 + .../STM32F1/dogm/u8g_com_stm32duino_hwspi.cpp | 236 ++++++++++++++++++ Marlin/src/feature/touch/xpt2046.cpp | 90 +++++-- Marlin/src/feature/touch/xpt2046.h | 4 - Marlin/src/inc/Conditionals_LCD.h | 6 +- Marlin/src/inc/Conditionals_post.h | 2 +- Marlin/src/inc/SanityCheck.h | 26 +- Marlin/src/lcd/dogm/HAL_LCD_com_defines.h | 5 + ...8g_dev_tft_320x240_upscale_from_128x64.cpp | 133 +++++----- Marlin/src/lcd/dogm/ultralcd_DOGM.h | 14 +- Marlin/src/pins/stm32f1/pins_CHITU3D_V5.h | 25 +- Marlin/src/pins/stm32f1/pins_CHITU3D_V6.h | 24 +- .../src/pins/stm32f1/pins_MKS_ROBIN_NANO_V2.h | 89 ++++++- 15 files changed, 546 insertions(+), 129 deletions(-) create mode 100644 Marlin/src/HAL/STM32F1/dogm/u8g_com_stm32duino_hwspi.cpp diff --git a/Marlin/Configuration.h b/Marlin/Configuration.h index 1f34c0691..c6ec607d9 100644 --- a/Marlin/Configuration.h +++ b/Marlin/Configuration.h @@ -2156,6 +2156,12 @@ // //#define FSMC_GRAPHICAL_TFT +// +// SPI display (MKS Robin Nano V2.0, MKS Gen L V2.0) +// Upscaled 128x64 Marlin UI +// +//#define SPI_GRAPHICAL_TFT + // // TFT LVGL UI // @@ -2189,10 +2195,10 @@ #define BUTTON_DELAY_EDIT 50 // (ms) Button repeat delay for edit screens #define BUTTON_DELAY_MENU 250 // (ms) Button repeat delay for menus - #define XPT2046_X_CALIBRATION 12316 - #define XPT2046_Y_CALIBRATION -8981 - #define XPT2046_X_OFFSET -43 - #define XPT2046_Y_OFFSET 257 + //#define XPT2046_X_CALIBRATION 12316 + //#define XPT2046_Y_CALIBRATION -8981 + //#define XPT2046_X_OFFSET -43 + //#define XPT2046_Y_OFFSET 257 #endif // diff --git a/Marlin/Configuration_adv.h b/Marlin/Configuration_adv.h index 7ebab9d16..37c997977 100644 --- a/Marlin/Configuration_adv.h +++ b/Marlin/Configuration_adv.h @@ -1509,9 +1509,10 @@ #endif // -// FSMC Graphical TFT +// FSMC / SPI Graphical TFT // -#if ENABLED(FSMC_GRAPHICAL_TFT) +#if TFT_SCALED_DOGLCD + //#define GRAPHICAL_TFT_ROTATE_180 //#define TFT_MARLINUI_COLOR 0xFFFF // White //#define TFT_MARLINBG_COLOR 0x0000 // Black //#define TFT_DISABLED_COLOR 0x0003 // Almost black diff --git a/Marlin/src/HAL/STM32F1/SPI.h b/Marlin/src/HAL/STM32F1/SPI.h index dc2a21586..0d20a4657 100644 --- a/Marlin/src/HAL/STM32F1/SPI.h +++ b/Marlin/src/HAL/STM32F1/SPI.h @@ -208,6 +208,8 @@ public: */ void setDataSize(uint32_t ds); + uint32_t getDataSize() { return _currentSetting->dataSize; } + /* Victor Perez 2017. Added to set and clear callback functions for callback * on DMA transfer completion. * onReceive used to set the callback in case of dmaTransfer (tx/rx), once rx is completed diff --git a/Marlin/src/HAL/STM32F1/dogm/u8g_com_stm32duino_hwspi.cpp b/Marlin/src/HAL/STM32F1/dogm/u8g_com_stm32duino_hwspi.cpp new file mode 100644 index 000000000..286dcfb5d --- /dev/null +++ b/Marlin/src/HAL/STM32F1/dogm/u8g_com_stm32duino_hwspi.cpp @@ -0,0 +1,236 @@ +/** + * Marlin 3D Printer Firmware + * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin] + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + */ +#ifdef __STM32F1__ + +#include "../../../inc/MarlinConfig.h" + +#if BOTH(HAS_GRAPHICAL_LCD, SPI_GRAPHICAL_TFT) && DISABLED(FORCE_SOFT_SPI) + +#include "../HAL.h" +#include +#include + +#define SPI_TFT_CS_H OUT_WRITE(SPI_TFT_CS_PIN, HIGH) +#define SPI_TFT_CS_L OUT_WRITE(SPI_TFT_CS_PIN, LOW) + +#define SPI_TFT_DC_H OUT_WRITE(SPI_TFT_DC_PIN, HIGH) +#define SPI_TFT_DC_L OUT_WRITE(SPI_TFT_DC_PIN, LOW) + +#define SPI_TFT_RST_H OUT_WRITE(SPI_TFT_RST_PIN, HIGH) +#define SPI_TFT_RST_L OUT_WRITE(SPI_TFT_RST_PIN, LOW) + +#define SPI_TFT_BLK_H OUT_WRITE(LCD_BACKLIGHT_PIN, HIGH) +#define SPI_TFT_BLK_L OUT_WRITE(LCD_BACKLIGHT_PIN, LOW) + +void LCD_IO_Init(uint8_t cs, uint8_t rs); +void LCD_IO_WriteData(uint16_t RegValue); +void LCD_IO_WriteReg(uint16_t Reg); +uint16_t LCD_IO_ReadData(uint16_t RegValue); +uint32_t LCD_IO_ReadData(uint16_t RegValue, uint8_t ReadSize); +#ifdef LCD_USE_DMA_SPI + void LCD_IO_WriteMultiple(uint16_t data, uint32_t count); + void LCD_IO_WriteSequence(uint16_t *data, uint16_t length); +#endif + +void LCD_WR_REG(uint8_t cmd) { + SPI_TFT_CS_L; + SPI_TFT_DC_L; + SPI.send(cmd); + SPI_TFT_CS_H; +} +void LCD_WR_DATA(uint8_t data) { + SPI_TFT_CS_L; + SPI_TFT_DC_H; + SPI.send(data); + SPI_TFT_CS_H; +} + +void spi1Init(uint8_t spiRate) { + SPI_TFT_CS_H; + + /** + * STM32F1 APB2 = 72MHz, APB1 = 36MHz, max SPI speed of this MCU if 18Mhz + * STM32F1 has 3 SPI ports, SPI1 in APB2, SPI2/SPI3 in APB1 + * so the minimum prescale of SPI1 is DIV4, SPI2/SPI3 is DIV2 + */ + uint8_t clock; + switch (spiRate) { + case SPI_FULL_SPEED: clock = SPI_CLOCK_DIV4; break; + case SPI_HALF_SPEED: clock = SPI_CLOCK_DIV4; break; + case SPI_QUARTER_SPEED: clock = SPI_CLOCK_DIV8; break; + case SPI_EIGHTH_SPEED: clock = SPI_CLOCK_DIV16; break; + case SPI_SPEED_5: clock = SPI_CLOCK_DIV32; break; + case SPI_SPEED_6: clock = SPI_CLOCK_DIV64; break; + default: clock = SPI_CLOCK_DIV2; // Default from the SPI library + } + SPI.setModule(1); + SPI.begin(); + SPI.setClockDivider(clock); + SPI.setBitOrder(MSBFIRST); + SPI.setDataMode(SPI_MODE0); +} + +void LCD_IO_Init(uint8_t cs, uint8_t rs) { + spi1Init(SPI_FULL_SPEED); +} + +void LCD_IO_WriteData(uint16_t RegValue) { + LCD_WR_DATA(RegValue); +} + +void LCD_IO_WriteReg(uint16_t Reg) { + LCD_WR_REG(Reg); +} + +uint16_t LCD_IO_ReadData(uint16_t RegValue) { + uint16_t d = 0; + SPI_TFT_CS_L; + + SPI_TFT_DC_L; + SPI.send(RegValue); + SPI_TFT_DC_H; + + SPI.read((uint8_t*)&d, 1); //dummy read + SPI.read((uint8_t*)&d, 1); + + SPI_TFT_CS_H; + return d >> 7; +} + +uint32_t LCD_IO_ReadData(uint16_t RegValue, uint8_t ReadSize) { + uint32_t data = 0; + uint8_t d = 0; + SPI_TFT_CS_L; + + SPI_TFT_DC_L; + SPI.send(RegValue); + SPI_TFT_DC_H; + + SPI.read((uint8_t*)&d, 1); //dummy read + SPI.read((uint8_t*)&d, 1); + data = d; + while (--ReadSize) { + data <<= 8; + SPI.read((uint8_t*)&d, 1); + data |= (d & 0xFF); + } + + SPI_TFT_CS_H; + return uint32_t(data >> 7); +} + +#ifdef LCD_USE_DMA_SPI + void LCD_IO_WriteMultiple(uint16_t data, uint32_t count) { + if (SPI.getDataSize() == DATA_SIZE_8BIT) { + count *= 2; + } + while (count > 0) { + SPI_TFT_CS_L; + SPI_TFT_DC_H; + SPI.dmaSend(&data, 1, true); + SPI_TFT_CS_H; + count--; + } + } + + void LCD_IO_WriteSequence(uint16_t *data, uint16_t length) { + if (SPI.getDataSize() == DATA_SIZE_8BIT) { + length *= 2; + } + SPI_TFT_CS_L; + SPI_TFT_DC_H; + SPI.dmaSend(data, length, true); + SPI_TFT_CS_H; + } + + void LCD_IO_WriteSequence_Async(uint16_t *data, uint16_t length) { + if (SPI.getDataSize() == DATA_SIZE_8BIT) { + length *= 2; + } + SPI_TFT_CS_L; + SPI_TFT_DC_H; + SPI.dmaSendAsync(data, length, true); + SPI_TFT_CS_H; + } + + void LCD_IO_WaitSequence_Async() { + SPI_TFT_CS_L; + SPI_TFT_DC_H; + SPI.dmaSendAsync(NULL, 0, true); + SPI_TFT_CS_H; + } +#endif + +static uint8_t msgInitCount = 2; // Ignore all messages until 2nd U8G_COM_MSG_INIT + +#ifndef LCD_READ_ID + #define LCD_READ_ID 0x04 // Read display identification information (0xD3 on ILI9341) +#endif + +uint8_t u8g_com_stm32duino_spi_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr) { + if (msgInitCount) { + if (msg == U8G_COM_MSG_INIT) msgInitCount--; + if (msgInitCount) return -1; + } + + static uint8_t isCommand; + + LCD_IO_Init(-1, -1); + + switch (msg) { + case U8G_COM_MSG_STOP: break; + case U8G_COM_MSG_INIT: + u8g_SetPIOutput(u8g, U8G_PI_RESET); + + u8g_Delay(50); + + if (arg_ptr) { + spi1Init(SPI_EIGHTH_SPEED); + *((uint32_t *)arg_ptr) = (LCD_READ_ID << 24) | LCD_IO_ReadData(LCD_READ_ID, 3); + spi1Init(SPI_FULL_SPEED); + } + isCommand = 0; + break; + + case U8G_COM_MSG_ADDRESS: // define cmd (arg_val = 0) or data mode (arg_val = 1) + isCommand = arg_val == 0 ? 1 : 0; + break; + + case U8G_COM_MSG_RESET: + u8g_SetPILevel(u8g, U8G_PI_RESET, arg_val); + break; + + case U8G_COM_MSG_WRITE_BYTE: + if (isCommand) + LCD_IO_WriteReg(arg_val); + else + LCD_IO_WriteData((uint16_t)arg_val); + break; + + case U8G_COM_MSG_WRITE_SEQ: + for (uint8_t i = 0; i < arg_val; i += 2) + LCD_IO_WriteData(*(uint16_t *)(((uint32_t)arg_ptr) + i)); + break; + + } + return 1; +} + +#endif // HAS_GRAPHICAL_LCD +#endif // STM32F1 diff --git a/Marlin/src/feature/touch/xpt2046.cpp b/Marlin/src/feature/touch/xpt2046.cpp index 235c17b50..d613fbc89 100644 --- a/Marlin/src/feature/touch/xpt2046.cpp +++ b/Marlin/src/feature/touch/xpt2046.cpp @@ -23,10 +23,14 @@ #include "xpt2046.h" #include "../../inc/MarlinConfig.h" -#if ENABLED(FSMC_GRAPHICAL_TFT) + +#if TFT_SCALED_DOGLCD #include "../../lcd/dogm/ultralcd_DOGM.h" // for LCD_FULL_PIXEL_WIDTH, etc. #endif +#ifndef XPT2046_Z1_THRESHOLD + #define XPT2046_Z1_THRESHOLD 10 +#endif /* * Draw and Touch processing @@ -117,10 +121,15 @@ uint8_t XPT2046::read_buttons() { // We rely on XPT2046 compatible mode to ADS7843, hence no Z1 and Z2 measurements possible. if (!isTouched()) return 0; - const uint16_t x = uint16_t(((uint32_t(getInTouch(XPT2046_X))) * tsoffsets[0]) >> 16) + tsoffsets[1], - y = uint16_t(((uint32_t(getInTouch(XPT2046_Y))) * tsoffsets[2]) >> 16) + tsoffsets[3]; + uint16_t x = uint16_t(((uint32_t(getInTouch(XPT2046_X))) * tsoffsets[0]) >> 16) + tsoffsets[1], + y = uint16_t(((uint32_t(getInTouch(XPT2046_Y))) * tsoffsets[2]) >> 16) + tsoffsets[3]; if (!isTouched()) return 0; // Fingers must still be on the TS for a valid read. + #if ENABLED(GRAPHICAL_TFT_ROTATE_180) + x = TOUCH_SCREEN_WIDTH - x; + y = TOUCH_SCREEN_HEIGHT - y; + #endif + // Touch within the button area simulates an encoder button if (y > BUTTON_AREA_TOP && y < BUTTON_AREA_BOT) return WITHIN(x, 14, 77) ? EN_D @@ -151,30 +160,69 @@ bool XPT2046::isTouched() { ); } +#if ENABLED(TOUCH_BUTTONS_HW_SPI) + #include + + static void touch_spi_init(uint8_t spiRate) { + /** + * STM32F1 APB2 = 72MHz, APB1 = 36MHz, max SPI speed of this MCU if 18Mhz + * STM32F1 has 3 SPI ports, SPI1 in APB2, SPI2/SPI3 in APB1 + * so the minimum prescale of SPI1 is DIV4, SPI2/SPI3 is DIV2 + */ + uint8_t clock; + switch (spiRate) { + case SPI_FULL_SPEED: clock = SPI_CLOCK_DIV4; break; + case SPI_HALF_SPEED: clock = SPI_CLOCK_DIV4; break; + case SPI_QUARTER_SPEED: clock = SPI_CLOCK_DIV8; break; + case SPI_EIGHTH_SPEED: clock = SPI_CLOCK_DIV16; break; + case SPI_SPEED_5: clock = SPI_CLOCK_DIV32; break; + case SPI_SPEED_6: clock = SPI_CLOCK_DIV64; break; + default: clock = SPI_CLOCK_DIV2; // Default from the SPI library + } + SPI.setModule(TOUCH_BUTTONS_HW_SPI_DEVICE); + SPI.begin(); + SPI.setClockDivider(clock); + SPI.setBitOrder(MSBFIRST); + SPI.setDataMode(SPI_MODE0); + } +#endif // TOUCH_BUTTONS_HW_SPI + uint16_t XPT2046::getInTouch(const XPTCoordinate coordinate) { uint16_t data[3]; - - OUT_WRITE(TOUCH_CS_PIN, LOW); - const uint8_t coord = uint8_t(coordinate) | XPT2046_CONTROL | XPT2046_DFR_MODE; - for (uint16_t i = 0; i < 3 ; i++) { - for (uint8_t j = 0x80; j; j >>= 1) { - WRITE(TOUCH_SCK_PIN, LOW); - WRITE(TOUCH_MOSI_PIN, bool(coord & j)); - WRITE(TOUCH_SCK_PIN, HIGH); + + #if ENABLED(TOUCH_BUTTONS_HW_SPI) + + touch_spi_init(SPI_SPEED_6); + for (uint16_t i = 0; i < 3; i++) { + OUT_WRITE(TOUCH_CS_PIN, LOW); + SPI.transfer(coord); + data[i] = (((SPI.transfer(0xFF) << 8) | SPI.transfer(0xFF)) >> 3) & 0x0FFF; + WRITE(TOUCH_CS_PIN, HIGH); } - data[i] = 0; - for (uint16_t j = 0x8000; j; j >>= 1) { - WRITE(TOUCH_SCK_PIN, LOW); - if (READ(TOUCH_MISO_PIN)) data[i] |= j; - WRITE(TOUCH_SCK_PIN, HIGH); - } - WRITE(TOUCH_SCK_PIN, LOW); - data[i] >>= 4; - } + #else // !TOUCH_BUTTONS_HW_SPI - WRITE(TOUCH_CS_PIN, HIGH); + OUT_WRITE(TOUCH_CS_PIN, LOW); + for (uint16_t i = 0; i < 3; i++) { + for (uint8_t j = 0x80; j; j >>= 1) { + WRITE(TOUCH_SCK_PIN, LOW); + WRITE(TOUCH_MOSI_PIN, bool(coord & j)); + WRITE(TOUCH_SCK_PIN, HIGH); + } + + data[i] = 0; + for (uint16_t j = 0x8000; j; j >>= 1) { + WRITE(TOUCH_SCK_PIN, LOW); + if (READ(TOUCH_MISO_PIN)) data[i] |= j; + WRITE(TOUCH_SCK_PIN, HIGH); + } + WRITE(TOUCH_SCK_PIN, LOW); + data[i] >>= 4; + } + WRITE(TOUCH_CS_PIN, HIGH); + + #endif // !TOUCH_BUTTONS_HW_SPI uint16_t delta01 = _MAX(data[0], data[1]) - _MIN(data[0], data[1]), delta02 = _MAX(data[0], data[2]) - _MIN(data[0], data[2]), diff --git a/Marlin/src/feature/touch/xpt2046.h b/Marlin/src/feature/touch/xpt2046.h index 347881e0a..467317901 100644 --- a/Marlin/src/feature/touch/xpt2046.h +++ b/Marlin/src/feature/touch/xpt2046.h @@ -34,10 +34,6 @@ enum XPTCoordinate : uint8_t { XPT2046_Z2 = 0x40 }; -#ifndef XPT2046_Z1_THRESHOLD - #define XPT2046_Z1_THRESHOLD 10 -#endif - class XPT2046 { public: static void init(); diff --git a/Marlin/src/inc/Conditionals_LCD.h b/Marlin/src/inc/Conditionals_LCD.h index 992a788eb..1605ced3c 100644 --- a/Marlin/src/inc/Conditionals_LCD.h +++ b/Marlin/src/inc/Conditionals_LCD.h @@ -261,7 +261,11 @@ #endif // FSMC/SPI TFT Panels -#if ENABLED(FSMC_GRAPHICAL_TFT) +#if EITHER(FSMC_GRAPHICAL_TFT, SPI_GRAPHICAL_TFT) + #define TFT_SCALED_DOGLCD 1 +#endif + +#if TFT_SCALED_DOGLCD #define DOGLCD #define IS_ULTIPANEL #define DELAYED_BACKLIGHT_INIT diff --git a/Marlin/src/inc/Conditionals_post.h b/Marlin/src/inc/Conditionals_post.h index e12310e07..c7171b06d 100644 --- a/Marlin/src/inc/Conditionals_post.h +++ b/Marlin/src/inc/Conditionals_post.h @@ -373,7 +373,7 @@ #endif -#if EITHER(LCD_USE_DMA_FSMC, FSMC_GRAPHICAL_TFT) || !PIN_EXISTS(SD_DETECT) +#if ANY(LCD_USE_DMA_FSMC, FSMC_GRAPHICAL_TFT, SPI_GRAPHICAL_TFT) || !PIN_EXISTS(SD_DETECT) #define NO_LCD_REINIT 1 // Suppress LCD re-initialization #endif diff --git a/Marlin/src/inc/SanityCheck.h b/Marlin/src/inc/SanityCheck.h index 9fde639b0..9fb742f50 100644 --- a/Marlin/src/inc/SanityCheck.h +++ b/Marlin/src/inc/SanityCheck.h @@ -451,8 +451,6 @@ #error "MKS_ROBIN_TFT is now FSMC_GRAPHICAL_TFT. Please update your configuration." #elif defined(TFT_LVGL_UI) #error "TFT_LVGL_UI is now TFT_LVGL_UI_FSMC. Please update your configuration." -#elif defined(SPI_GRAPHICAL_TFT) - #error "SPI_GRAPHICAL_TFT is now TFT_LVGL_UI_SPI. Please update your configuration." #elif defined(SDPOWER) #error "SDPOWER is now SDPOWER_PIN. Please update your configuration and/or pins." #elif defined(STRING_SPLASH_LINE1) || defined(STRING_SPLASH_LINE2) @@ -3036,11 +3034,27 @@ static_assert( _ARR_TEST(3,0) && _ARR_TEST(3,1) && _ARR_TEST(3,2) #endif /** - * Sanity checks for stepper chunk support + * Stepper Chunk support */ -#if ENABLED(DIRECT_STEPPING) - #if ENABLED(LIN_ADVANCE) - #error "DIRECT_STEPPING is incompatible with LIN_ADVANCE. Enable in external planner if possible." +#if BOTH(DIRECT_STEPPING, LIN_ADVANCE) + #error "DIRECT_STEPPING is incompatible with LIN_ADVANCE. Enable in external planner if possible." +#endif + +/** + * Touch Buttons + */ +#if ENABLED(TOUCH_BUTTONS) + #ifndef XPT2046_X_CALIBRATION + #error "XPT2046_X_CALIBRATION must be defined with TOUCH_BUTTONS." + #endif + #ifndef XPT2046_Y_CALIBRATION + #error "XPT2046_Y_CALIBRATION must be defined with TOUCH_BUTTONS." + #endif + #ifndef XPT2046_X_OFFSET + #error "XPT2046_X_OFFSET must be defined with TOUCH_BUTTONS." + #endif + #ifndef XPT2046_Y_OFFSET + #error "XPT2046_Y_OFFSET must be defined with TOUCH_BUTTONS." #endif #endif diff --git a/Marlin/src/lcd/dogm/HAL_LCD_com_defines.h b/Marlin/src/lcd/dogm/HAL_LCD_com_defines.h index df7f8dd44..1f9621e9c 100644 --- a/Marlin/src/lcd/dogm/HAL_LCD_com_defines.h +++ b/Marlin/src/lcd/dogm/HAL_LCD_com_defines.h @@ -87,6 +87,11 @@ #define U8G_COM_HAL_FSMC_FN u8g_com_stm32duino_fsmc_fn #endif + #if ENABLED(SPI_GRAPHICAL_TFT) + uint8_t u8g_com_stm32duino_spi_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr); + #define U8G_COM_HAL_FSMC_FN u8g_com_stm32duino_spi_fn + #endif + #elif defined(TARGET_LPC1768) uint8_t u8g_com_HAL_LPC1768_sw_spi_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr); diff --git a/Marlin/src/lcd/dogm/u8g_dev_tft_320x240_upscale_from_128x64.cpp b/Marlin/src/lcd/dogm/u8g_dev_tft_320x240_upscale_from_128x64.cpp index fc7a22b26..33cd5ecca 100644 --- a/Marlin/src/lcd/dogm/u8g_dev_tft_320x240_upscale_from_128x64.cpp +++ b/Marlin/src/lcd/dogm/u8g_dev_tft_320x240_upscale_from_128x64.cpp @@ -57,14 +57,21 @@ #include "../../inc/MarlinConfig.h" -#if HAS_GRAPHICAL_LCD && PIN_EXISTS(FSMC_CS) +#if HAS_GRAPHICAL_LCD && (PIN_EXISTS(FSMC_CS) || ENABLED(SPI_GRAPHICAL_TFT)) #include "HAL_LCD_com_defines.h" #include "ultralcd_DOGM.h" #include -#ifdef LCD_USE_DMA_FSMC +#if EITHER(LCD_USE_DMA_FSMC, LCD_USE_DMA_SPI) + #define HAS_LCD_IO 1 +#endif + +#if HAS_LCD_IO + extern void LCD_IO_Init(uint8_t cs, uint8_t rs); + extern uint16_t LCD_IO_ReadData(uint16_t Reg); + extern uint32_t LCD_IO_ReadData(uint16_t RegValue, uint8_t ReadSize); extern void LCD_IO_WriteReg(uint16_t Reg); extern void LCD_IO_WriteData(uint16_t RegValue); extern void LCD_IO_WriteSequence(uint16_t *data, uint16_t length); @@ -148,46 +155,34 @@ static uint32_t lcd_id = 0; static void setWindow_ili9328(u8g_t *u8g, u8g_dev_t *dev, uint16_t Xmin, uint16_t Ymin, uint16_t Xmax, uint16_t Ymax) { - #ifdef LCD_USE_DMA_FSMC - LCD_IO_WriteReg(ILI9328_HASTART); - LCD_IO_WriteData(Ymin); - LCD_IO_WriteReg(ILI9328_HAEND); - LCD_IO_WriteData(Ymax); - LCD_IO_WriteReg(ILI9328_VASTART); - LCD_IO_WriteData(Xmin); - LCD_IO_WriteReg(ILI9328_VAEND); - LCD_IO_WriteData(Xmax); + #if HAS_LCD_IO + #define IO_REG_DATA(R,D) do { LCD_IO_WriteReg(R); LCD_IO_WriteData(D); }while(0) + #else + #define IO_REG_DATA(R,D) do { u8g_WriteByte(u8g, dev, R); u8g_WriteSequence(u8g, dev, 2, (uint8_t *)&D); }while(0) + #endif - LCD_IO_WriteReg(ILI9328_HASET); - LCD_IO_WriteData(Ymin); - LCD_IO_WriteReg(ILI9328_VASET); - LCD_IO_WriteData(Xmin); + #if NONE(LCD_USE_DMA_FSMC, LCD_USE_DMA_SPI) + u8g_SetAddress(u8g, dev, 0); + #endif + IO_REG_DATA(ILI9328_HASTART, Ymin); + IO_REG_DATA(ILI9328_HAEND, Ymax); + IO_REG_DATA(ILI9328_VASTART, Xmin); + IO_REG_DATA(ILI9328_VAEND, Xmax); + + IO_REG_DATA(ILI9328_HASET, Ymin); + IO_REG_DATA(ILI9328_VASET, Xmin); + + #if HAS_LCD_IO LCD_IO_WriteReg(ILI9328_WRITE_RAM); #else - u8g_SetAddress(u8g, dev, 0); - - u8g_WriteByte(u8g, dev, ILI9328_HASTART); - u8g_WriteSequence(u8g, dev, 2, (uint8_t *)&Ymin); - u8g_WriteByte(u8g, dev, ILI9328_HAEND); - u8g_WriteSequence(u8g, dev, 2, (uint8_t *)&Ymax); - u8g_WriteByte(u8g, dev, ILI9328_VASTART); - u8g_WriteSequence(u8g, dev, 2, (uint8_t *)&Xmin); - u8g_WriteByte(u8g, dev, ILI9328_VAEND); - u8g_WriteSequence(u8g, dev, 2, (uint8_t *)&Xmax); - - u8g_WriteByte(u8g, dev, ILI9328_HASET); - u8g_WriteSequence(u8g, dev, 2, (uint8_t *)&Ymin); - u8g_WriteByte(u8g, dev, ILI9328_VASET); - u8g_WriteSequence(u8g, dev, 2, (uint8_t *)&Xmin); - u8g_WriteByte(u8g, dev, ILI9328_WRITE_RAM); u8g_SetAddress(u8g, dev, 1); #endif } static void setWindow_st7789v(u8g_t *u8g, u8g_dev_t *dev, uint16_t Xmin, uint16_t Ymin, uint16_t Xmax, uint16_t Ymax) { - #ifdef LCD_USE_DMA_FSMC + #if HAS_LCD_IO LCD_IO_WriteReg(ST7789V_CASET); LCD_IO_WriteData((Xmin >> 8) & 0xFF); LCD_IO_WriteData(Xmin & 0xFF); @@ -227,7 +222,7 @@ void (*setWindow)(u8g_t *u8g, u8g_dev_t *dev, uint16_t Xmin, uint16_t Ymin, uint #define ESC_END 0xFFFF, 0x7FFF #define ESC_FFFF 0xFFFF, 0xFFFF -#ifdef LCD_USE_DMA_FSMC +#if HAS_LCD_IO void writeEscSequence(const uint16_t *sequence) { uint16_t data; for (;;) { @@ -247,6 +242,7 @@ void (*setWindow)(u8g_t *u8g, u8g_dev_t *dev, uint16_t Xmin, uint16_t Ymin, uint } } } + #define WRITE_ESC_SEQUENCE(V) writeEscSequence(V) #else void writeEscSequence8(u8g_t *u8g, u8g_dev_t *dev, const uint16_t *sequence) { uint16_t data; @@ -271,6 +267,8 @@ void (*setWindow)(u8g_t *u8g, u8g_dev_t *dev, uint16_t Xmin, uint16_t Ymin, uint } } + #define WRITE_ESC_SEQUENCE(V) writeEscSequence8(u8g, dev, V) + void writeEscSequence16(u8g_t *u8g, u8g_dev_t *dev, const uint16_t *sequence) { uint16_t data; u8g_SetAddress(u8g, dev, 0); @@ -381,6 +379,30 @@ static const uint16_t ili9341_init[] = { ESC_END }; +static const uint16_t st9677_init[] = { + ESC_REG(0x0010), ESC_DELAY(120), + ESC_REG(0x0001), ESC_DELAY(120), + ESC_REG(0x0011), ESC_DELAY(120), + ESC_REG(0x00F0), 0x00C3, + ESC_REG(0x00F0), 0x0096, + ESC_REG(0x0036), TERN(GRAPHICAL_TFT_ROTATE_180, 0x00E8, 0x0028), + ESC_REG(0x003A), 0x0055, + ESC_REG(0x00B4), 0x0001, + ESC_REG(0x00B7), 0x00C6, + ESC_REG(0x00E8), 0x0040, 0x008A, 0x0000, 0x0000, 0x0029, 0x0019, 0x00A5, 0x0033, + ESC_REG(0x00C1), 0x0006, + ESC_REG(0x00C2), 0x00A7, + ESC_REG(0x00C5), 0x0018, + ESC_REG(0x00E0), 0x00F0, 0x0009, 0x000B, 0x0006, 0x0004, 0x0015, 0x002F, 0x0054, 0x0042, 0x003C, 0x0017, 0x0014, 0x0018, 0x001B, + ESC_REG(0x00E1), 0x00F0, 0x0009, 0x000B, 0x0006, 0x0004, 0x0003, 0x002D, 0x0043, 0x0042, 0x003B, 0x0016, 0x0014, 0x0017, 0x001B, + ESC_REG(0x00F0), 0x003C, + ESC_REG(0x00F0), 0x0069, ESC_DELAY(120), + ESC_REG(0x0029), + ESC_REG(0x0011), + ESC_DELAY(100), + ESC_END +}; + #if ENABLED(TOUCH_BUTTONS) static const uint8_t buttonD[] = { @@ -560,7 +582,7 @@ static const uint16_t ili9341_init[] = { v = TFT_MARLINBG_COLOR; LOOP_L_N(n, FSMC_UPSCALE) buffer[k++] = v; } - #ifdef LCD_USE_DMA_FSMC + #if HAS_LCD_IO LOOP_S_L_N(n, 1, FSMC_UPSCALE) for (uint16_t l = 0; l < length * (FSMC_UPSCALE); l++) buffer[l + (length * (FSMC_UPSCALE) * n)] = buffer[l]; @@ -586,41 +608,39 @@ static uint8_t page; uint8_t u8g_dev_tft_320x240_upscale_from_128x64_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) { u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - #ifdef LCD_USE_DMA_FSMC + + #if ENABLED(SPI_GRAPHICAL_TFT) + LCD_IO_Init(-1, -1); + #endif + + #if HAS_LCD_IO static uint16_t bufferA[WIDTH * sq(FSMC_UPSCALE)], bufferB[WIDTH * sq(FSMC_UPSCALE)]; uint16_t* buffer = &bufferA[0]; - bool allow_async = true; + bool allow_async = DISABLED(SPI_GRAPHICAL_TFT); #else uint16_t buffer[WIDTH*2]; // 16-bit RGB 565 pixel line buffer #endif + switch (msg) { case U8G_DEV_MSG_INIT: dev->com_fn(u8g, U8G_COM_MSG_INIT, U8G_SPI_CLK_CYCLE_NONE, &lcd_id); switch (lcd_id & 0xFFFF) { case 0x8552: // ST7789V - #ifdef LCD_USE_DMA_FSMC - writeEscSequence(st7789v_init); - #else - writeEscSequence8(u8g, dev, st7789v_init); - #endif + WRITE_ESC_SEQUENCE(st7789v_init); setWindow = setWindow_st7789v; break; case 0x9328: // ILI9328 - #ifdef LCD_USE_DMA_FSMC - writeEscSequence(ili9328_init); - #else - writeEscSequence16(u8g, dev, ili9328_init); - #endif + WRITE_ESC_SEQUENCE(ili9328_init); setWindow = setWindow_ili9328; break; case 0x9341: // ILI9341 case 0x8066: // Anycubic / TronXY TFTs (480x320) - #ifdef LCD_USE_DMA_FSMC - writeEscSequence(ili9341_init); - #else - writeEscSequence8(u8g, dev, ili9341_init); - #endif + WRITE_ESC_SEQUENCE(ili9341_init); + setWindow = setWindow_st7789v; + break; + case 0x7796: + WRITE_ESC_SEQUENCE(TERN(HAS_LCD_IO, st9677_init, ili9341_init)); setWindow = setWindow_st7789v; break; case 0x0404: // No connected display on FSMC @@ -630,10 +650,7 @@ uint8_t u8g_dev_tft_320x240_upscale_from_128x64_fn(u8g_t *u8g, u8g_dev_t *dev, u lcd_id = 0; return 0; default: - if (lcd_id && 0xFF000000) - setWindow = setWindow_st7789v; - else - setWindow = setWindow_ili9328; + setWindow = (lcd_id & 0xFF000000) ? setWindow_st7789v : setWindow_ili9328; break; } @@ -644,7 +661,7 @@ uint8_t u8g_dev_tft_320x240_upscale_from_128x64_fn(u8g_t *u8g, u8g_dev_t *dev, u // Clear Screen setWindow(u8g, dev, 0, 0, LCD_FULL_PIXEL_WIDTH - 1, LCD_FULL_PIXEL_HEIGHT - 1); - #ifdef LCD_USE_DMA_FSMC + #if HAS_LCD_IO LCD_IO_WriteMultiple(TFT_MARLINBG_COLOR, LCD_FULL_PIXEL_WIDTH * LCD_FULL_PIXEL_HEIGHT); #else memset2(buffer, TFT_MARLINBG_COLOR, 160); @@ -681,7 +698,7 @@ uint8_t u8g_dev_tft_320x240_upscale_from_128x64_fn(u8g_t *u8g, u8g_dev_t *dev, u LOOP_L_N(y, PAGE_HEIGHT) { uint32_t k = 0; - #ifdef LCD_USE_DMA_FSMC + #if HAS_LCD_IO buffer = (y & 1) ? bufferB : bufferA; #endif for (uint16_t i = 0; i < (uint32_t)pb->width; i++) { @@ -689,7 +706,7 @@ uint8_t u8g_dev_tft_320x240_upscale_from_128x64_fn(u8g_t *u8g, u8g_dev_t *dev, u const uint16_t c = TEST(b, y) ? TFT_MARLINUI_COLOR : TFT_MARLINBG_COLOR; LOOP_L_N(n, FSMC_UPSCALE) buffer[k++] = c; } - #ifdef LCD_USE_DMA_FSMC + #if HAS_LCD_IO LOOP_S_L_N(n, 1, FSMC_UPSCALE) for (uint16_t l = 0; l < WIDTH * (FSMC_UPSCALE); l++) buffer[l + WIDTH * (FSMC_UPSCALE) * n] = buffer[l]; diff --git a/Marlin/src/lcd/dogm/ultralcd_DOGM.h b/Marlin/src/lcd/dogm/ultralcd_DOGM.h index 1b6dd0b9d..5ebff37ed 100644 --- a/Marlin/src/lcd/dogm/ultralcd_DOGM.h +++ b/Marlin/src/lcd/dogm/ultralcd_DOGM.h @@ -182,12 +182,16 @@ #define U8G_CLASS U8GLIB_SH1106_128X64 #define U8G_PARAM DOGLCD_SCK, DOGLCD_MOSI, DOGLCD_CS, LCD_PINS_DC, LCD_PINS_RS -#elif ENABLED(FSMC_GRAPHICAL_TFT) +#elif TFT_SCALED_DOGLCD // Unspecified 320x240 TFT pre-initialized by built-in bootloader #define U8G_CLASS U8GLIB_TFT_320X240_UPSCALE_FROM_128X64 - #define U8G_PARAM FSMC_CS_PIN, FSMC_RS_PIN + #if ENABLED(FSMC_GRAPHICAL_TFT) + #define U8G_PARAM FSMC_CS_PIN, FSMC_RS_PIN + #else + #define U8G_PARAM -1, -1 + #endif #else @@ -210,18 +214,18 @@ // LCD_FULL_PIXEL_WIDTH = // LCD_PIXEL_OFFSET_X + (LCD_PIXEL_WIDTH * 2) + LCD_PIXEL_OFFSET_X -#if ENABLED(FSMC_GRAPHICAL_TFT) +#if TFT_SCALED_DOGLCD #ifndef LCD_FULL_PIXEL_WIDTH #define LCD_FULL_PIXEL_WIDTH 320 #endif #ifndef LCD_PIXEL_OFFSET_X - #define LCD_PIXEL_OFFSET_X 32 + #define LCD_PIXEL_OFFSET_X 32 #endif #ifndef LCD_FULL_PIXEL_HEIGHT #define LCD_FULL_PIXEL_HEIGHT 240 #endif #ifndef LCD_PIXEL_OFFSET_Y - #define LCD_PIXEL_OFFSET_Y 32 + #define LCD_PIXEL_OFFSET_Y 32 #endif #endif diff --git a/Marlin/src/pins/stm32f1/pins_CHITU3D_V5.h b/Marlin/src/pins/stm32f1/pins_CHITU3D_V5.h index 0a733049b..5a672d29b 100644 --- a/Marlin/src/pins/stm32f1/pins_CHITU3D_V5.h +++ b/Marlin/src/pins/stm32f1/pins_CHITU3D_V5.h @@ -112,10 +112,10 @@ #if ENABLED(FSMC_GRAPHICAL_TFT) #define FSMC_UPSCALE 3 - #define LCD_FULL_PIXEL_WIDTH 480 - #define LCD_PIXEL_OFFSET_X 48 - #define LCD_FULL_PIXEL_HEIGHT 320 - #define LCD_PIXEL_OFFSET_Y 48 + #define LCD_FULL_PIXEL_WIDTH 480 + #define LCD_PIXEL_OFFSET_X 48 + #define LCD_FULL_PIXEL_HEIGHT 320 + #define LCD_PIXEL_OFFSET_Y 48 #define LCD_RESET_PIN PF11 #define LCD_BACKLIGHT_PIN PD13 @@ -135,10 +135,19 @@ #define BUTTON_DELAY_EDIT 50 // (ms) Button repeat delay for edit screens #define BUTTON_DELAY_MENU 250 // (ms) Button repeat delay for menus - #define XPT2046_X_CALIBRATION -12316 - #define XPT2046_Y_CALIBRATION 8981 - #define XPT2046_X_OFFSET 340 - #define XPT2046_Y_OFFSET -20 + #ifndef XPT2046_X_CALIBRATION + #define XPT2046_X_CALIBRATION -12316 + #endif + #ifndef XPT2046_Y_CALIBRATION + #define XPT2046_Y_CALIBRATION 8981 + #endif + #ifndef XPT2046_X_OFFSET + #define XPT2046_X_OFFSET 340 + #endif + #ifndef XPT2046_Y_OFFSET + #define XPT2046_Y_OFFSET -20 + #endif + #endif #endif diff --git a/Marlin/src/pins/stm32f1/pins_CHITU3D_V6.h b/Marlin/src/pins/stm32f1/pins_CHITU3D_V6.h index 0fb3a9a87..be71d3f2c 100644 --- a/Marlin/src/pins/stm32f1/pins_CHITU3D_V6.h +++ b/Marlin/src/pins/stm32f1/pins_CHITU3D_V6.h @@ -118,10 +118,10 @@ // #if ENABLED(FSMC_GRAPHICAL_TFT) #define FSMC_UPSCALE 3 - #define LCD_FULL_PIXEL_WIDTH 480 - #define LCD_PIXEL_OFFSET_X 48 - #define LCD_FULL_PIXEL_HEIGHT 320 - #define LCD_PIXEL_OFFSET_Y 48 + #define LCD_FULL_PIXEL_WIDTH 480 + #define LCD_PIXEL_OFFSET_X 48 + #define LCD_FULL_PIXEL_HEIGHT 320 + #define LCD_PIXEL_OFFSET_Y 48 #define LCD_RESET_PIN PF11 #define LCD_BACKLIGHT_PIN PD13 @@ -141,10 +141,18 @@ #define BUTTON_DELAY_EDIT 50 // (ms) Button repeat delay for edit screens #define BUTTON_DELAY_MENU 250 // (ms) Button repeat delay for menus - #define XPT2046_X_CALIBRATION -12316 - #define XPT2046_Y_CALIBRATION 8981 - #define XPT2046_X_OFFSET 340 - #define XPT2046_Y_OFFSET -20 + #ifndef XPT2046_X_CALIBRATION + #define XPT2046_X_CALIBRATION -12316 + #endif + #ifndef XPT2046_Y_CALIBRATION + #define XPT2046_Y_CALIBRATION 8981 + #endif + #ifndef XPT2046_X_OFFSET + #define XPT2046_X_OFFSET 340 + #endif + #ifndef XPT2046_Y_OFFSET + #define XPT2046_Y_OFFSET -20 + #endif #endif #endif diff --git a/Marlin/src/pins/stm32f1/pins_MKS_ROBIN_NANO_V2.h b/Marlin/src/pins/stm32f1/pins_MKS_ROBIN_NANO_V2.h index ee88962e1..afbcc8f32 100644 --- a/Marlin/src/pins/stm32f1/pins_MKS_ROBIN_NANO_V2.h +++ b/Marlin/src/pins/stm32f1/pins_MKS_ROBIN_NANO_V2.h @@ -207,6 +207,13 @@ #define MT_DET_2_PIN PE6 #define MT_DET_PIN_INVERTING false +#ifndef FIL_RUNOUT_PIN + #define FIL_RUNOUT_PIN MT_DET_1_PIN +#endif +#ifndef FIL_RUNOUT2_PIN + #define FIL_RUNOUT2_PIN MT_DET_2_PIN +#endif + #define WIFI_IO0_PIN PC13 // @@ -224,7 +231,9 @@ // // LCD / Controller // -#define BEEPER_PIN PC5 +#ifndef BEEPER_PIN + #define BEEPER_PIN PC5 +#endif /** * Note: MKS Robin TFT screens use various TFT controllers. @@ -250,7 +259,6 @@ #define BTN_EN1 PE8 #define BTN_EN2 PE11 - #define BEEPER_PIN PC5 #define BTN_ENC PE13 #elif ENABLED(TFT_LITTLE_VGL_UI) @@ -269,16 +277,71 @@ #if HAS_SPI_LCD - #define BEEPER_PIN PC5 - #define BTN_ENC PE13 - #define LCD_PINS_ENABLE PD13 - #define LCD_PINS_RS PC6 - #define BTN_EN1 PE8 - #define BTN_EN2 PE11 - #define LCD_BACKLIGHT_PIN -1 + #if ENABLED(SPI_GRAPHICAL_TFT) // Emulated DOGM SPI + #define SPI_TFT_CS_PIN PD11 + #define SPI_TFT_SCK_PIN PA5 + #define SPI_TFT_MISO_PIN PA6 + #define SPI_TFT_MOSI_PIN PA7 + #define SPI_TFT_DC_PIN PD10 + #define SPI_TFT_RST_PIN PC6 + + #define LCD_BACKLIGHT_PIN PD13 + + #define LCD_READ_ID 0xD3 + #define LCD_USE_DMA_SPI + + #define TOUCH_BUTTONS_HW_SPI + #define TOUCH_BUTTONS_HW_SPI_DEVICE 1 + + //#define TOUCH_BUTTONS + #if ENABLED(TOUCH_BUTTONS) + #define TOUCH_CS_PIN PE14 // SPI1_NSS + #define TOUCH_SCK_PIN PA5 // SPI1_SCK + #define TOUCH_MISO_PIN PA6 // SPI1_MISO + #define TOUCH_MOSI_PIN PA7 // SPI1_MOSI + + #ifndef XPT2046_X_CALIBRATION + #define XPT2046_X_CALIBRATION -5481 + #endif + #ifndef XPT2046_Y_CALIBRATION + #define XPT2046_Y_CALIBRATION 4000 + #endif + #ifndef XPT2046_X_OFFSET + #define XPT2046_X_OFFSET 343 + #endif + #ifndef XPT2046_Y_OFFSET + #define XPT2046_Y_OFFSET 0 + #endif + #endif + + #ifndef FSMC_UPSCALE + #define FSMC_UPSCALE 3 + #endif + #ifndef LCD_FULL_PIXEL_WIDTH + #define LCD_FULL_PIXEL_WIDTH 480 + #endif + #ifndef LCD_PIXEL_OFFSET_X + #define LCD_PIXEL_OFFSET_X 48 + #endif + #ifndef LCD_FULL_PIXEL_HEIGHT + #define LCD_FULL_PIXEL_HEIGHT 320 + #endif + #ifndef LCD_PIXEL_OFFSET_Y + #define LCD_PIXEL_OFFSET_Y 32 + #endif + + #define BTN_ENC PE13 + #define BTN_EN1 PE8 + #define BTN_EN2 PE11 + + #define LCD_PINS_ENABLE PD13 + #define LCD_PINS_RS PC6 + + #elif ENABLED(MKS_MINI_12864) + + // MKS MINI12864 and MKS LCD12864B + // If using MKS LCD12864A (Need to remove RPK2 resistor) - // MKS MINI12864 and MKS LCD12864B; If using MKS LCD12864A (Need to remove RPK2 resistor) - #if ENABLED(MKS_MINI_12864) #define LCD_BACKLIGHT_PIN -1 #define LCD_RESET_PIN -1 #define DOGLCD_A0 PD11 @@ -320,3 +383,7 @@ #define W25QXX_MISO_PIN PB14 #define W25QXX_SCK_PIN PB13 #endif + +#if ENABLED(SPEAKER) && BEEPER_PIN == PC5 + #error "MKS Robin nano default BEEPER_PIN is not a SPEAKER." +#endif From 8faa31df5427be7001affd28a96cf6886e9d1f49 Mon Sep 17 00:00:00 2001 From: ellensp Date: Thu, 30 Jul 2020 14:26:18 +1200 Subject: [PATCH 017/194] No HEATER_0_PIN needed with 0 EXTRUDERS (#18827) --- Marlin/src/inc/SanityCheck.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Marlin/src/inc/SanityCheck.h b/Marlin/src/inc/SanityCheck.h index 9fb742f50..1db779b31 100644 --- a/Marlin/src/inc/SanityCheck.h +++ b/Marlin/src/inc/SanityCheck.h @@ -1797,7 +1797,7 @@ static_assert(hbm[Z_AXIS] >= 0, "HOMING_BUMP_MM.Z must be greater than or equal /** * Test Heater, Temp Sensor, and Extruder Pins */ -#if !HAS_HEATER_0 +#if !HAS_HEATER_0 && EXTRUDERS #error "HEATER_0_PIN not defined for this board." #elif !ANY_PIN(TEMP_0, MAX6675_SS) #error "TEMP_0_PIN not defined for this board." From bba157e5bd5a715e1c1e58061b9038adb981793a Mon Sep 17 00:00:00 2001 From: Victor Oliveira Date: Thu, 30 Jul 2020 00:04:47 -0300 Subject: [PATCH 018/194] SanityCheck: No Adafruit NeoPixel for STM32F1 (#18833) --- Marlin/src/HAL/STM32F1/inc/SanityCheck.h | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/Marlin/src/HAL/STM32F1/inc/SanityCheck.h b/Marlin/src/HAL/STM32F1/inc/SanityCheck.h index 5559b3d4a..ec7e8cf17 100644 --- a/Marlin/src/HAL/STM32F1/inc/SanityCheck.h +++ b/Marlin/src/HAL/STM32F1/inc/SanityCheck.h @@ -51,3 +51,7 @@ #elif ENABLED(SERIAL_STATS_DROPPED_RX) #error "SERIAL_STATS_DROPPED_RX is not supported on this platform." #endif + +#if ENABLED(NEOPIXEL_LED) + #error "NEOPIXEL_LED (Adafruit NeoPixel) is not supported for HAL/STM32F1. Comment out this line to proceed at your own risk!" +#endif From 117df87d193994f6fbcd46c45573095adf921784 Mon Sep 17 00:00:00 2001 From: Alexander Gavrilenko Date: Thu, 30 Jul 2020 09:43:19 +0300 Subject: [PATCH 019/194] Support for TFT & Touch Screens (#18130) --- .github/workflows/test-builds.yml | 1 + Marlin/Configuration.h | 22 +- Marlin/src/HAL/AVR/inc/Conditionals_LCD.h | 4 + Marlin/src/HAL/DUE/inc/Conditionals_LCD.h | 4 + Marlin/src/HAL/ESP32/inc/Conditionals_LCD.h | 4 + Marlin/src/HAL/LINUX/inc/Conditionals_LCD.h | 4 + Marlin/src/HAL/LPC1768/inc/Conditionals_LCD.h | 4 + Marlin/src/HAL/SAMD51/inc/Conditionals_LCD.h | 4 + Marlin/src/HAL/STM32/HAL.h | 5 + .../src/HAL/STM32/Sd2Card_sdio_stm32duino.cpp | 73 +- Marlin/src/HAL/STM32/tft/tft_fsmc.cpp | 180 +++++ Marlin/src/HAL/STM32/tft/tft_fsmc.h | 160 +++++ Marlin/src/HAL/STM32/tft/tft_spi.cpp | 212 ++++++ Marlin/src/HAL/STM32/tft/tft_spi.h | 67 ++ Marlin/src/HAL/STM32/tft/xpt2046.cpp | 185 +++++ Marlin/src/HAL/STM32/tft/xpt2046.h | 86 +++ Marlin/src/HAL/STM32F1/SPI.cpp | 2 +- Marlin/src/HAL/STM32F1/inc/Conditionals_LCD.h | 11 + .../HAL/STM32_F4_F7/inc/Conditionals_LCD.h | 4 + .../HAL/TEENSY31_32/inc/Conditionals_LCD.h | 4 + .../HAL/TEENSY35_36/inc/Conditionals_LCD.h | 4 + Marlin/src/MarlinCore.cpp | 4 +- Marlin/src/core/boards.h | 5 + Marlin/src/feature/touch/xpt2046.cpp | 13 +- Marlin/src/gcode/bedlevel/G26.cpp | 2 +- Marlin/src/gcode/gcode.cpp | 4 + Marlin/src/gcode/gcode.h | 3 + Marlin/src/gcode/lcd/M995.cpp | 39 ++ Marlin/src/inc/Conditionals_LCD.h | 40 +- Marlin/src/inc/Conditionals_adv.h | 11 + Marlin/src/inc/Conditionals_post.h | 2 +- Marlin/src/inc/SanityCheck.h | 18 +- ...8g_dev_tft_320x240_upscale_from_128x64.cpp | 8 +- Marlin/src/lcd/extui/lib/mks_ui/tft_fsmc.cpp | 331 ++++----- .../lib/mks_ui/tft_lvgl_configuration.cpp | 6 +- Marlin/src/lcd/menu/menu.cpp | 8 +- Marlin/src/lcd/menu/menu.h | 4 + Marlin/src/lcd/menu/menu_filament.cpp | 2 +- Marlin/src/lcd/menu/menu_motion.cpp | 23 +- Marlin/src/lcd/menu/menu_touch_screen.cpp | 34 + Marlin/src/lcd/menu/menu_ubl.cpp | 6 +- Marlin/src/lcd/tft/bitmaps/back.bmp | Bin 0 -> 3126 bytes Marlin/src/lcd/tft/bitmaps/bed.bmp | Bin 0 -> 12342 bytes Marlin/src/lcd/tft/bitmaps/bed_heated.bmp | Bin 0 -> 12342 bytes Marlin/src/lcd/tft/bitmaps/cancel.bmp | Bin 0 -> 12410 bytes Marlin/src/lcd/tft/bitmaps/chamber.bmp | Bin 0 -> 12342 bytes Marlin/src/lcd/tft/bitmaps/chamber_heated.bmp | Bin 0 -> 12342 bytes Marlin/src/lcd/tft/bitmaps/confirm.bmp | Bin 0 -> 12410 bytes Marlin/src/lcd/tft/bitmaps/decrease.bmp | Bin 0 -> 12410 bytes Marlin/src/lcd/tft/bitmaps/directory.bmp | Bin 0 -> 3194 bytes Marlin/src/lcd/tft/bitmaps/down.bmp | Bin 0 -> 3126 bytes Marlin/src/lcd/tft/bitmaps/fan0.bmp | Bin 0 -> 12410 bytes Marlin/src/lcd/tft/bitmaps/fan1.bmp | Bin 0 -> 12410 bytes Marlin/src/lcd/tft/bitmaps/fan_fast0.bmp | Bin 0 -> 12410 bytes Marlin/src/lcd/tft/bitmaps/fan_fast1.bmp | Bin 0 -> 12410 bytes Marlin/src/lcd/tft/bitmaps/fan_slow0.bmp | Bin 0 -> 12410 bytes Marlin/src/lcd/tft/bitmaps/fan_slow1.bmp | Bin 0 -> 12410 bytes Marlin/src/lcd/tft/bitmaps/feedrate.bmp | Bin 0 -> 3194 bytes Marlin/src/lcd/tft/bitmaps/flowrate.bmp | Bin 0 -> 3194 bytes Marlin/src/lcd/tft/bitmaps/hotend.bmp | Bin 0 -> 12410 bytes Marlin/src/lcd/tft/bitmaps/increase.bmp | Bin 0 -> 12342 bytes Marlin/src/lcd/tft/bitmaps/left.bmp | Bin 0 -> 3194 bytes Marlin/src/lcd/tft/bitmaps/leveling.bmp | Bin 0 -> 3126 bytes .../bitmaps/marlin-logo/Marlin-1500x319.png | Bin 0 -> 387923 bytes .../tft/bitmaps/marlin-logo/Marlin-195x59.png | Bin 0 -> 18386 bytes .../marlin-logo/Marlin-228x255-greyscale.png | Bin 0 -> 7940 bytes .../bitmaps/marlin-logo/Marlin-228x255.png | Bin 0 -> 81470 bytes .../bitmaps/marlin-logo/Marlin-280x200.png | Bin 0 -> 46851 bytes .../bitmaps/marlin-logo/Marlin-320x240.png | Bin 0 -> 97523 bytes .../bitmaps/marlin-logo/Marlin-480x319.png | Bin 0 -> 168816 bytes .../bitmaps/marlin-logo/Marlin-480x320.png | Bin 0 -> 168834 bytes Marlin/src/lcd/tft/bitmaps/menu.bmp | Bin 0 -> 12342 bytes Marlin/src/lcd/tft/bitmaps/pause.bmp | Bin 0 -> 12410 bytes Marlin/src/lcd/tft/bitmaps/refresh.bmp | Bin 0 -> 3194 bytes Marlin/src/lcd/tft/bitmaps/right.bmp | Bin 0 -> 3194 bytes Marlin/src/lcd/tft/bitmaps/sd.bmp | Bin 0 -> 12410 bytes Marlin/src/lcd/tft/bitmaps/settings.bmp | Bin 0 -> 12342 bytes Marlin/src/lcd/tft/bitmaps/up.bmp | Bin 0 -> 3126 bytes Marlin/src/lcd/tft/canvas.cpp | 179 +++++ Marlin/src/lcd/tft/canvas.h | 57 ++ .../src/lcd/tft/fontdata/fontdata_10x20.cpp | 257 +++++++ .../lcd/tft/fontdata/fontdata_ISO10646_1.cpp | 314 +++++++++ .../lcd/tft/fontdata/helvetica_12_bold.cpp | 302 ++++++++ Marlin/src/lcd/tft/fontdata/helvetica_14.cpp | 378 ++++++++++ Marlin/src/lcd/tft/fontdata/helvetica_18.cpp | 492 +++++++++++++ Marlin/src/lcd/tft/fontdata/profont_22.cpp | 426 ++++++++++++ Marlin/src/lcd/tft/ili9328.h | 150 ++++ Marlin/src/lcd/tft/ili9341.h | 162 +++++ Marlin/src/lcd/tft/ili9488.h | 156 +++++ Marlin/src/lcd/tft/images/back_32x32x4.cpp | 62 ++ .../lcd/tft/images/background_320x30x16.cpp | 60 ++ .../lcd/tft/images/bootscreen_112x38x1.cpp | 70 ++ .../lcd/tft/images/bootscreen_195x59x16.cpp | 89 +++ .../lcd/tft/images/bootscreen_228x255x2.cpp | 285 ++++++++ .../lcd/tft/images/bootscreen_228x255x4.cpp | 285 ++++++++ .../lcd/tft/images/bootscreen_320x240x16.cpp | 270 +++++++ .../lcd/tft/images/bootscreen_480x320x16.cpp | 350 ++++++++++ Marlin/src/lcd/tft/images/cancel_64x64x4.cpp | 94 +++ Marlin/src/lcd/tft/images/chamber_64x64x4.cpp | 161 +++++ Marlin/src/lcd/tft/images/confirm_64x64x4.cpp | 94 +++ .../src/lcd/tft/images/decrease_64x64x4.cpp | 94 +++ .../src/lcd/tft/images/directory_32x32x4.cpp | 62 ++ Marlin/src/lcd/tft/images/down_32x32x4.cpp | 62 ++ Marlin/src/lcd/tft/images/fan_64x64x4.cpp | 161 +++++ .../src/lcd/tft/images/fan_fast_64x64x4.cpp | 161 +++++ .../src/lcd/tft/images/fan_slow_64x64x4.cpp | 161 +++++ .../src/lcd/tft/images/feedrate_32x32x4.cpp | 62 ++ .../src/lcd/tft/images/flowrate_32x32x4.cpp | 62 ++ .../src/lcd/tft/images/heated_bed_64x64x4.cpp | 161 +++++ Marlin/src/lcd/tft/images/hotend_64x64x4.cpp | 94 +++ .../src/lcd/tft/images/increase_64x64x4.cpp | 94 +++ Marlin/src/lcd/tft/images/left_32x32x4.cpp | 62 ++ .../src/lcd/tft/images/leveling_32x32x4.cpp | 62 ++ Marlin/src/lcd/tft/images/menu_64x64x4.cpp | 94 +++ Marlin/src/lcd/tft/images/pause_64x64x4.cpp | 94 +++ Marlin/src/lcd/tft/images/refresh_32x32x4.cpp | 62 ++ Marlin/src/lcd/tft/images/right_32x32x4.cpp | 62 ++ Marlin/src/lcd/tft/images/sd_64x64x4.cpp | 94 +++ .../src/lcd/tft/images/settings_64x64x4.cpp | 94 +++ Marlin/src/lcd/tft/images/slider_8x16x4.cpp | 46 ++ Marlin/src/lcd/tft/images/up_32x32x4.cpp | 62 ++ Marlin/src/lcd/tft/r65105.h | 155 +++++ Marlin/src/lcd/tft/st7735.h | 128 ++++ Marlin/src/lcd/tft/st7789v.h | 148 ++++ Marlin/src/lcd/tft/st7796s.h | 175 +++++ Marlin/src/lcd/tft/tft.cpp | 199 ++++++ Marlin/src/lcd/tft/tft.h | 113 +++ Marlin/src/lcd/tft/tft_color.h | 112 +++ Marlin/src/lcd/tft/tft_image.cpp | 69 ++ Marlin/src/lcd/tft/tft_image.h | 160 +++++ Marlin/src/lcd/tft/tft_io.h | 30 + Marlin/src/lcd/tft/tft_queue.cpp | 346 +++++++++ Marlin/src/lcd/tft/tft_queue.h | 140 ++++ Marlin/src/lcd/tft/tft_string.cpp | 159 +++++ Marlin/src/lcd/tft/tft_string.h | 104 +++ Marlin/src/lcd/tft/touch.cpp | 293 ++++++++ Marlin/src/lcd/tft/touch.h | 180 +++++ Marlin/src/lcd/tft/ui_320x240.cpp | 653 +++++++++++++++++ Marlin/src/lcd/tft/ui_320x240.h | 106 +++ Marlin/src/lcd/tft/ui_480x320.cpp | 657 ++++++++++++++++++ Marlin/src/lcd/tft/ui_480x320.h | 106 +++ Marlin/src/lcd/ultralcd.cpp | 20 +- Marlin/src/lcd/ultralcd.h | 25 +- Marlin/src/module/configuration_store.cpp | 31 + Marlin/src/pins/pins.h | 8 +- Marlin/src/pins/stm32f1/pins_CHITU3D_V5.h | 4 +- Marlin/src/pins/stm32f1/pins_CHITU3D_V6.h | 2 +- .../src/pins/stm32f1/pins_JGAURORA_A5S_A1.h | 2 +- Marlin/src/pins/stm32f1/pins_LONGER3D_LK.h | 2 +- Marlin/src/pins/stm32f1/pins_MKS_ROBIN.h | 66 +- Marlin/src/pins/stm32f1/pins_MKS_ROBIN_MINI.h | 2 +- Marlin/src/pins/stm32f1/pins_MKS_ROBIN_NANO.h | 2 +- .../src/pins/stm32f1/pins_MKS_ROBIN_NANO_V2.h | 4 +- Marlin/src/pins/stm32f1/pins_MKS_ROBIN_PRO.h | 2 +- Marlin/src/pins/stm32f1/pins_STM3R_MINI.h | 2 +- Marlin/src/pins/stm32f1/pins_TRIGORILLA_PRO.h | 2 +- buildroot/bin/opt_add | 2 +- buildroot/bin/use_example_configs | 15 +- .../share/PlatformIO/scripts/mks_encrypt.py | 32 + .../variants/CHITU_F103/wirish/boards.cpp | 2 +- .../variants/MARLIN_F103Vx/PeripheralPins.c | 425 +++++++++++ .../variants/MARLIN_F103Vx/PinNamesVar.h | 30 + .../variants/MARLIN_F103Vx/ldscript.ld | 200 ++++++ .../variants/MARLIN_F103Vx/variant.cpp | 235 +++++++ .../variants/MARLIN_F103Vx/variant.h | 181 +++++ .../variants/MARLIN_F103Zx/PeripheralPins.c | 368 ++++++++++ .../variants/MARLIN_F103Zx/PinNamesVar.h | 30 + .../variants/MARLIN_F103Zx/hal_conf_custom.h | 412 +++++++++++ .../variants/MARLIN_F103Zx/ldscript.ld | 200 ++++++ .../variants/MARLIN_F103Zx/variant.cpp | 222 ++++++ .../variants/MARLIN_F103Zx/variant.h | 232 +++++++ buildroot/tests/mks_robin-tests | 7 +- buildroot/tests/mks_robin_mini-tests | 5 +- buildroot/tests/mks_robin_nano-tests | 5 +- buildroot/tests/mks_robin_stm32-tests | 13 + platformio.ini | 25 +- 176 files changed, 14747 insertions(+), 303 deletions(-) create mode 100644 Marlin/src/HAL/STM32/tft/tft_fsmc.cpp create mode 100644 Marlin/src/HAL/STM32/tft/tft_fsmc.h create mode 100644 Marlin/src/HAL/STM32/tft/tft_spi.cpp create mode 100644 Marlin/src/HAL/STM32/tft/tft_spi.h create mode 100644 Marlin/src/HAL/STM32/tft/xpt2046.cpp create mode 100644 Marlin/src/HAL/STM32/tft/xpt2046.h create mode 100644 Marlin/src/gcode/lcd/M995.cpp create mode 100644 Marlin/src/lcd/menu/menu_touch_screen.cpp create mode 100644 Marlin/src/lcd/tft/bitmaps/back.bmp create mode 100644 Marlin/src/lcd/tft/bitmaps/bed.bmp create mode 100644 Marlin/src/lcd/tft/bitmaps/bed_heated.bmp create mode 100644 Marlin/src/lcd/tft/bitmaps/cancel.bmp create mode 100644 Marlin/src/lcd/tft/bitmaps/chamber.bmp create mode 100644 Marlin/src/lcd/tft/bitmaps/chamber_heated.bmp create mode 100644 Marlin/src/lcd/tft/bitmaps/confirm.bmp create mode 100644 Marlin/src/lcd/tft/bitmaps/decrease.bmp create mode 100644 Marlin/src/lcd/tft/bitmaps/directory.bmp create mode 100644 Marlin/src/lcd/tft/bitmaps/down.bmp create mode 100644 Marlin/src/lcd/tft/bitmaps/fan0.bmp create mode 100644 Marlin/src/lcd/tft/bitmaps/fan1.bmp create mode 100644 Marlin/src/lcd/tft/bitmaps/fan_fast0.bmp create mode 100644 Marlin/src/lcd/tft/bitmaps/fan_fast1.bmp create mode 100644 Marlin/src/lcd/tft/bitmaps/fan_slow0.bmp create mode 100644 Marlin/src/lcd/tft/bitmaps/fan_slow1.bmp create mode 100644 Marlin/src/lcd/tft/bitmaps/feedrate.bmp create mode 100644 Marlin/src/lcd/tft/bitmaps/flowrate.bmp create mode 100644 Marlin/src/lcd/tft/bitmaps/hotend.bmp create mode 100644 Marlin/src/lcd/tft/bitmaps/increase.bmp create mode 100644 Marlin/src/lcd/tft/bitmaps/left.bmp create mode 100644 Marlin/src/lcd/tft/bitmaps/leveling.bmp create mode 100644 Marlin/src/lcd/tft/bitmaps/marlin-logo/Marlin-1500x319.png create mode 100644 Marlin/src/lcd/tft/bitmaps/marlin-logo/Marlin-195x59.png create mode 100644 Marlin/src/lcd/tft/bitmaps/marlin-logo/Marlin-228x255-greyscale.png create mode 100644 Marlin/src/lcd/tft/bitmaps/marlin-logo/Marlin-228x255.png create mode 100644 Marlin/src/lcd/tft/bitmaps/marlin-logo/Marlin-280x200.png create mode 100644 Marlin/src/lcd/tft/bitmaps/marlin-logo/Marlin-320x240.png create mode 100644 Marlin/src/lcd/tft/bitmaps/marlin-logo/Marlin-480x319.png create mode 100644 Marlin/src/lcd/tft/bitmaps/marlin-logo/Marlin-480x320.png create mode 100644 Marlin/src/lcd/tft/bitmaps/menu.bmp create mode 100644 Marlin/src/lcd/tft/bitmaps/pause.bmp create mode 100644 Marlin/src/lcd/tft/bitmaps/refresh.bmp create mode 100644 Marlin/src/lcd/tft/bitmaps/right.bmp create mode 100644 Marlin/src/lcd/tft/bitmaps/sd.bmp create mode 100644 Marlin/src/lcd/tft/bitmaps/settings.bmp create mode 100644 Marlin/src/lcd/tft/bitmaps/up.bmp create mode 100644 Marlin/src/lcd/tft/canvas.cpp create mode 100644 Marlin/src/lcd/tft/canvas.h create mode 100644 Marlin/src/lcd/tft/fontdata/fontdata_10x20.cpp create mode 100644 Marlin/src/lcd/tft/fontdata/fontdata_ISO10646_1.cpp create mode 100644 Marlin/src/lcd/tft/fontdata/helvetica_12_bold.cpp create mode 100644 Marlin/src/lcd/tft/fontdata/helvetica_14.cpp create mode 100644 Marlin/src/lcd/tft/fontdata/helvetica_18.cpp create mode 100644 Marlin/src/lcd/tft/fontdata/profont_22.cpp create mode 100644 Marlin/src/lcd/tft/ili9328.h create mode 100644 Marlin/src/lcd/tft/ili9341.h create mode 100644 Marlin/src/lcd/tft/ili9488.h create mode 100644 Marlin/src/lcd/tft/images/back_32x32x4.cpp create mode 100644 Marlin/src/lcd/tft/images/background_320x30x16.cpp create mode 100644 Marlin/src/lcd/tft/images/bootscreen_112x38x1.cpp create mode 100644 Marlin/src/lcd/tft/images/bootscreen_195x59x16.cpp create mode 100644 Marlin/src/lcd/tft/images/bootscreen_228x255x2.cpp create mode 100644 Marlin/src/lcd/tft/images/bootscreen_228x255x4.cpp create mode 100644 Marlin/src/lcd/tft/images/bootscreen_320x240x16.cpp create mode 100644 Marlin/src/lcd/tft/images/bootscreen_480x320x16.cpp create mode 100644 Marlin/src/lcd/tft/images/cancel_64x64x4.cpp create mode 100644 Marlin/src/lcd/tft/images/chamber_64x64x4.cpp create mode 100644 Marlin/src/lcd/tft/images/confirm_64x64x4.cpp create mode 100644 Marlin/src/lcd/tft/images/decrease_64x64x4.cpp create mode 100644 Marlin/src/lcd/tft/images/directory_32x32x4.cpp create mode 100644 Marlin/src/lcd/tft/images/down_32x32x4.cpp create mode 100644 Marlin/src/lcd/tft/images/fan_64x64x4.cpp create mode 100644 Marlin/src/lcd/tft/images/fan_fast_64x64x4.cpp create mode 100644 Marlin/src/lcd/tft/images/fan_slow_64x64x4.cpp create mode 100644 Marlin/src/lcd/tft/images/feedrate_32x32x4.cpp create mode 100644 Marlin/src/lcd/tft/images/flowrate_32x32x4.cpp create mode 100644 Marlin/src/lcd/tft/images/heated_bed_64x64x4.cpp create mode 100644 Marlin/src/lcd/tft/images/hotend_64x64x4.cpp create mode 100644 Marlin/src/lcd/tft/images/increase_64x64x4.cpp create mode 100644 Marlin/src/lcd/tft/images/left_32x32x4.cpp create mode 100644 Marlin/src/lcd/tft/images/leveling_32x32x4.cpp create mode 100644 Marlin/src/lcd/tft/images/menu_64x64x4.cpp create mode 100644 Marlin/src/lcd/tft/images/pause_64x64x4.cpp create mode 100644 Marlin/src/lcd/tft/images/refresh_32x32x4.cpp create mode 100644 Marlin/src/lcd/tft/images/right_32x32x4.cpp create mode 100644 Marlin/src/lcd/tft/images/sd_64x64x4.cpp create mode 100644 Marlin/src/lcd/tft/images/settings_64x64x4.cpp create mode 100644 Marlin/src/lcd/tft/images/slider_8x16x4.cpp create mode 100644 Marlin/src/lcd/tft/images/up_32x32x4.cpp create mode 100644 Marlin/src/lcd/tft/r65105.h create mode 100644 Marlin/src/lcd/tft/st7735.h create mode 100644 Marlin/src/lcd/tft/st7789v.h create mode 100644 Marlin/src/lcd/tft/st7796s.h create mode 100644 Marlin/src/lcd/tft/tft.cpp create mode 100644 Marlin/src/lcd/tft/tft.h create mode 100644 Marlin/src/lcd/tft/tft_color.h create mode 100644 Marlin/src/lcd/tft/tft_image.cpp create mode 100644 Marlin/src/lcd/tft/tft_image.h create mode 100644 Marlin/src/lcd/tft/tft_io.h create mode 100644 Marlin/src/lcd/tft/tft_queue.cpp create mode 100644 Marlin/src/lcd/tft/tft_queue.h create mode 100644 Marlin/src/lcd/tft/tft_string.cpp create mode 100644 Marlin/src/lcd/tft/tft_string.h create mode 100644 Marlin/src/lcd/tft/touch.cpp create mode 100644 Marlin/src/lcd/tft/touch.h create mode 100644 Marlin/src/lcd/tft/ui_320x240.cpp create mode 100644 Marlin/src/lcd/tft/ui_320x240.h create mode 100644 Marlin/src/lcd/tft/ui_480x320.cpp create mode 100644 Marlin/src/lcd/tft/ui_480x320.h create mode 100644 buildroot/share/PlatformIO/scripts/mks_encrypt.py create mode 100644 buildroot/share/PlatformIO/variants/MARLIN_F103Vx/PeripheralPins.c create mode 100644 buildroot/share/PlatformIO/variants/MARLIN_F103Vx/PinNamesVar.h create mode 100644 buildroot/share/PlatformIO/variants/MARLIN_F103Vx/ldscript.ld create mode 100644 buildroot/share/PlatformIO/variants/MARLIN_F103Vx/variant.cpp create mode 100644 buildroot/share/PlatformIO/variants/MARLIN_F103Vx/variant.h create mode 100644 buildroot/share/PlatformIO/variants/MARLIN_F103Zx/PeripheralPins.c create mode 100644 buildroot/share/PlatformIO/variants/MARLIN_F103Zx/PinNamesVar.h create mode 100644 buildroot/share/PlatformIO/variants/MARLIN_F103Zx/hal_conf_custom.h create mode 100644 buildroot/share/PlatformIO/variants/MARLIN_F103Zx/ldscript.ld create mode 100644 buildroot/share/PlatformIO/variants/MARLIN_F103Zx/variant.cpp create mode 100644 buildroot/share/PlatformIO/variants/MARLIN_F103Zx/variant.h create mode 100644 buildroot/tests/mks_robin_stm32-tests diff --git a/.github/workflows/test-builds.yml b/.github/workflows/test-builds.yml index 4dd483499..bcc42fbd6 100644 --- a/.github/workflows/test-builds.yml +++ b/.github/workflows/test-builds.yml @@ -67,6 +67,7 @@ jobs: - BIGTREE_SKR_PRO - BIGTREE_GTR_V1_0 - mks_robin + - mks_robin_stm32 - ARMED - FYSETC_S6 - STM32F070RB_malyan diff --git a/Marlin/Configuration.h b/Marlin/Configuration.h index c6ec607d9..363ea2f35 100644 --- a/Marlin/Configuration.h +++ b/Marlin/Configuration.h @@ -2150,6 +2150,22 @@ //=============================== Graphical TFTs ============================== //============================================================================= +// +// TFT display with optional touch screen +// Color Marlin UI with standard menu system +// +//#define TFT_320x240 +//#define TFT_320x240_SPI +//#define TFT_480x320 +//#define TFT_480x320_SPI + +// +// Skip autodetect and force specific TFT driver +// Mandatory for SPI screens with no MISO line +// Available drivers are: ST7735, ST7789, ST7796, R61505, ILI9328, ILI9341, ILI9488 +// +//#define TFT_DRIVER AUTO + // // FSMC display (MKS Robin, Alfawise U20, JGAurora A5S, REXYZ A1, etc.) // Upscaled 128x64 Marlin UI @@ -2190,11 +2206,13 @@ // // ADS7843/XPT2046 ADC Touchscreen such as ILI9341 2.8 // -//#define TOUCH_BUTTONS -#if ENABLED(TOUCH_BUTTONS) +//#define TOUCH_SCREEN +#if ENABLED(TOUCH_SCREEN) #define BUTTON_DELAY_EDIT 50 // (ms) Button repeat delay for edit screens #define BUTTON_DELAY_MENU 250 // (ms) Button repeat delay for menus + #define TOUCH_SCREEN_CALIBRATION + //#define XPT2046_X_CALIBRATION 12316 //#define XPT2046_Y_CALIBRATION -8981 //#define XPT2046_X_OFFSET -43 diff --git a/Marlin/src/HAL/AVR/inc/Conditionals_LCD.h b/Marlin/src/HAL/AVR/inc/Conditionals_LCD.h index 5f1c4b160..a611ccd7c 100644 --- a/Marlin/src/HAL/AVR/inc/Conditionals_LCD.h +++ b/Marlin/src/HAL/AVR/inc/Conditionals_LCD.h @@ -20,3 +20,7 @@ * */ #pragma once + +#if HAS_SPI_TFT || HAS_FSMC_TFT + #error "Sorry! TFT displays are not available for HAL/AVR." +#endif diff --git a/Marlin/src/HAL/DUE/inc/Conditionals_LCD.h b/Marlin/src/HAL/DUE/inc/Conditionals_LCD.h index 5f1c4b160..586741444 100644 --- a/Marlin/src/HAL/DUE/inc/Conditionals_LCD.h +++ b/Marlin/src/HAL/DUE/inc/Conditionals_LCD.h @@ -20,3 +20,7 @@ * */ #pragma once + +#if HAS_SPI_TFT || HAS_FSMC_TFT + #error "Sorry! TFT displays are not available for HAL/DUE." +#endif diff --git a/Marlin/src/HAL/ESP32/inc/Conditionals_LCD.h b/Marlin/src/HAL/ESP32/inc/Conditionals_LCD.h index 5f1c4b160..4da600179 100644 --- a/Marlin/src/HAL/ESP32/inc/Conditionals_LCD.h +++ b/Marlin/src/HAL/ESP32/inc/Conditionals_LCD.h @@ -20,3 +20,7 @@ * */ #pragma once + +#if HAS_SPI_TFT || HAS_FSMC_TFT + #error "Sorry! TFT displays are not available for HAL/ESP32." +#endif diff --git a/Marlin/src/HAL/LINUX/inc/Conditionals_LCD.h b/Marlin/src/HAL/LINUX/inc/Conditionals_LCD.h index 5f1c4b160..99a6fc275 100644 --- a/Marlin/src/HAL/LINUX/inc/Conditionals_LCD.h +++ b/Marlin/src/HAL/LINUX/inc/Conditionals_LCD.h @@ -20,3 +20,7 @@ * */ #pragma once + +#if HAS_SPI_TFT || HAS_FSMC_TFT + #error "Sorry! TFT displays are not available for HAL/LINUX." +#endif diff --git a/Marlin/src/HAL/LPC1768/inc/Conditionals_LCD.h b/Marlin/src/HAL/LPC1768/inc/Conditionals_LCD.h index 5f1c4b160..7d4de40fa 100644 --- a/Marlin/src/HAL/LPC1768/inc/Conditionals_LCD.h +++ b/Marlin/src/HAL/LPC1768/inc/Conditionals_LCD.h @@ -20,3 +20,7 @@ * */ #pragma once + +#if HAS_SPI_TFT || HAS_FSMC_TFT + #error "Sorry! TFT displays are not available for HAL/LPC1768." +#endif diff --git a/Marlin/src/HAL/SAMD51/inc/Conditionals_LCD.h b/Marlin/src/HAL/SAMD51/inc/Conditionals_LCD.h index 5f1c4b160..932348c52 100644 --- a/Marlin/src/HAL/SAMD51/inc/Conditionals_LCD.h +++ b/Marlin/src/HAL/SAMD51/inc/Conditionals_LCD.h @@ -20,3 +20,7 @@ * */ #pragma once + +#if HAS_SPI_TFT || HAS_FSMC_TFT + #error "Sorry! TFT displays are not available for HAL/SAMD51." +#endif diff --git a/Marlin/src/HAL/STM32/HAL.h b/Marlin/src/HAL/STM32/HAL.h index 730ada96c..08081331b 100644 --- a/Marlin/src/HAL/STM32/HAL.h +++ b/Marlin/src/HAL/STM32/HAL.h @@ -213,5 +213,10 @@ uint16_t HAL_adc_get_result(); #define GET_PIN_MAP_INDEX(pin) pin #define PARSED_PIN_INDEX(code, dval) parser.intval(code, dval) +#ifdef STM32F1xx + #define JTAG_DISABLE() AFIO_DBGAFR_CONFIG(AFIO_MAPR_SWJ_CFG_JTAGDISABLE) + #define JTAGSWD_DISABLE() AFIO_DBGAFR_CONFIG(AFIO_MAPR_SWJ_CFG_DISABLE) +#endif + #define PLATFORM_M997_SUPPORT void flashFirmware(const int16_t); diff --git a/Marlin/src/HAL/STM32/Sd2Card_sdio_stm32duino.cpp b/Marlin/src/HAL/STM32/Sd2Card_sdio_stm32duino.cpp index 9d32b342e..6e73e87c2 100644 --- a/Marlin/src/HAL/STM32/Sd2Card_sdio_stm32duino.cpp +++ b/Marlin/src/HAL/STM32/Sd2Card_sdio_stm32duino.cpp @@ -76,7 +76,24 @@ SD_HandleTypeDef hsd; // create SDIO structure - #define TRANSFER_CLOCK_DIV (uint8_t(SDIO_INIT_CLK_DIV) / 40) + /* + SDIO_INIT_CLK_DIV is 118 + SDIO clock frequency is 48MHz / (TRANSFER_CLOCK_DIV + 2) + SDIO init clock frequency should not exceed 400KHz = 48MHz / (118 + 2) + + Default TRANSFER_CLOCK_DIV is 2 (118 / 40) + Default SDIO clock frequency is 48MHz / (2 + 2) = 12 MHz + This might be too fast for stable SDIO operations + + MKS Robin board seems to have stable SDIO with BusWide 1bit and ClockDiv 8 i.e. 4.8MHz SDIO clock frequency + Additional testing is required as there are clearly some 4bit initialization problems + + Add -DTRANSFER_CLOCK_DIV=8 to build parameters to improve SDIO stability + */ + + #ifndef TRANSFER_CLOCK_DIV + #define TRANSFER_CLOCK_DIV (uint8_t(SDIO_INIT_CLK_DIV) / 40) + #endif #ifndef USBD_OK #define USBD_OK 0 @@ -100,24 +117,25 @@ void SD_LowLevel_Init(void) { uint32_t tempreg; - GPIO_InitTypeDef GPIO_InitStruct; - + __HAL_RCC_SDIO_CLK_ENABLE(); __HAL_RCC_GPIOC_CLK_ENABLE(); //enable GPIO clocks __HAL_RCC_GPIOD_CLK_ENABLE(); //enable GPIO clocks - GPIO_InitStruct.Pin = GPIO_PIN_8 | GPIO_PIN_12; // D0 & SCK + GPIO_InitTypeDef GPIO_InitStruct; + GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; GPIO_InitStruct.Pull = 1; //GPIO_NOPULL; GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH; - GPIO_InitStruct.Alternate = GPIO_AF12_SDIO; + + #if DISABLED(STM32F1xx) + GPIO_InitStruct.Alternate = GPIO_AF12_SDIO; + #endif + + GPIO_InitStruct.Pin = GPIO_PIN_8 | GPIO_PIN_12; // D0 & SCK HAL_GPIO_Init(GPIOC, &GPIO_InitStruct); #if PINS_EXIST(SDIO_D1, SDIO_D2, SDIO_D3) // define D1-D3 only if have a four bit wide SDIO bus GPIO_InitStruct.Pin = GPIO_PIN_9 | GPIO_PIN_10 | GPIO_PIN_11; // D1-D3 - GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; - GPIO_InitStruct.Pull = 1; // GPIO_NOPULL; - GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH; - GPIO_InitStruct.Alternate = GPIO_AF12_SDIO; HAL_GPIO_Init(GPIOC, &GPIO_InitStruct); #endif @@ -125,10 +143,13 @@ GPIO_InitStruct.Pin = GPIO_PIN_2; HAL_GPIO_Init(GPIOD, &GPIO_InitStruct); - RCC->APB2RSTR &= ~RCC_APB2RSTR_SDIORST_Msk; // take SDIO out of reset - RCC->APB2ENR |= RCC_APB2RSTR_SDIORST_Msk; // enable SDIO clock - // Enable the DMA2 Clock + #if DISABLED(STM32F1xx) + // TODO: use __HAL_RCC_SDIO_RELEASE_RESET() and __HAL_RCC_SDIO_CLK_ENABLE(); + RCC->APB2RSTR &= ~RCC_APB2RSTR_SDIORST_Msk; // take SDIO out of reset + RCC->APB2ENR |= RCC_APB2RSTR_SDIORST_Msk; // enable SDIO clock + // Enable the DMA2 Clock + #endif //Initialize the SDIO (with initial <400Khz Clock) tempreg = 0; //Reset value @@ -156,10 +177,21 @@ bool status; hsd.Instance = SDIO; hsd.State = (HAL_SD_StateTypeDef) 0; // HAL_SD_STATE_RESET + + /* + hsd.Init.ClockEdge = SDIO_CLOCK_EDGE_RISING; + hsd.Init.ClockBypass = SDIO_CLOCK_BYPASS_DISABLE; + hsd.Init.ClockPowerSave = SDIO_CLOCK_POWER_SAVE_DISABLE; + hsd.Init.BusWide = SDIO_BUS_WIDE_1B; + hsd.Init.HardwareFlowControl = SDIO_HARDWARE_FLOW_CONTROL_DISABLE; + hsd.Init.ClockDiv = 8; + */ + SD_LowLevel_Init(); uint8_t retry_Cnt = retryCnt; for (;;) { + TERN_(USE_WATCHDOG, HAL_watchdog_refresh()); status = (bool) HAL_SD_Init(&hsd); if (!status) break; if (!--retry_Cnt) return false; // return failing status if retries are exhausted @@ -170,6 +202,7 @@ #if PINS_EXIST(SDIO_D1, SDIO_D2, SDIO_D3) // go to 4 bit wide mode if pins are defined retry_Cnt = retryCnt; for (;;) { + TERN_(USE_WATCHDOG, HAL_watchdog_refresh()); if (!HAL_SD_ConfigWideBusOperation(&hsd, SDIO_BUS_WIDE_4B)) break; // some cards are only 1 bit wide so a pass here is not required if (!--retry_Cnt) break; } @@ -178,6 +211,7 @@ SD_LowLevel_Init(); retry_Cnt = retryCnt; for (;;) { + TERN_(USE_WATCHDOG, HAL_watchdog_refresh()); status = (bool) HAL_SD_Init(&hsd); if (!status) break; if (!--retry_Cnt) return false; // return failing status if retries are exhausted @@ -187,15 +221,15 @@ return true; } - + /* void init_SDIO_pins(void) { GPIO_InitTypeDef GPIO_InitStruct = {0}; - /**SDIO GPIO Configuration - PC8 ------> SDIO_D0 - PC12 ------> SDIO_CK - PD2 ------> SDIO_CMD - */ + // SDIO GPIO Configuration + // PC8 ------> SDIO_D0 + // PC12 ------> SDIO_CK + // PD2 ------> SDIO_CMD + GPIO_InitStruct.Pin = GPIO_PIN_8; GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; GPIO_InitStruct.Pull = GPIO_NOPULL; @@ -217,7 +251,7 @@ GPIO_InitStruct.Alternate = GPIO_AF12_SDIO; HAL_GPIO_Init(GPIOD, &GPIO_InitStruct); } - + */ //bool SDIO_init() { return (bool) (SD_SDIO_Init() ? 1 : 0);} //bool SDIO_Init_C() { return (bool) (SD_SDIO_Init() ? 1 : 0);} @@ -227,6 +261,7 @@ bool status; for (;;) { + TERN_(USE_WATCHDOG, HAL_watchdog_refresh()); status = (bool) HAL_SD_ReadBlocks(&hsd, (uint8_t*)dst, block, 1, 1000); // read one 512 byte block with 500mS timeout status |= (bool) HAL_SD_GetCardState(&hsd); // make sure all is OK if (!status) break; // return passing status diff --git a/Marlin/src/HAL/STM32/tft/tft_fsmc.cpp b/Marlin/src/HAL/STM32/tft/tft_fsmc.cpp new file mode 100644 index 000000000..f11fab39d --- /dev/null +++ b/Marlin/src/HAL/STM32/tft/tft_fsmc.cpp @@ -0,0 +1,180 @@ +/** + * Marlin 3D Printer Firmware + * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin] + * + * Based on Sprinter and grbl. + * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + */ + +#include "../../../inc/MarlinConfig.h" + +#if HAS_FSMC_TFT + +#include "tft_fsmc.h" +#include "pinconfig.h" + +SRAM_HandleTypeDef TFT_FSMC::SRAMx; +DMA_HandleTypeDef TFT_FSMC::DMAtx; +LCD_CONTROLLER_TypeDef *TFT_FSMC::LCD; + +void TFT_FSMC::Init() { + uint32_t controllerAddress; + + #if PIN_EXISTS(TFT_RESET) + OUT_WRITE(TFT_RESET_PIN, HIGH); + HAL_Delay(100); + #endif + + #if PIN_EXISTS(TFT_BACKLIGHT) + OUT_WRITE(TFT_BACKLIGHT_PIN, HIGH); + #endif + + FSMC_NORSRAM_TimingTypeDef Timing, ExtTiming; + + uint32_t NSBank = (uint32_t)pinmap_peripheral(digitalPinToPinName(TFT_CS_PIN), PinMap_FSMC_CS); + + SRAMx.Instance = FSMC_NORSRAM_DEVICE; + SRAMx.Extended = FSMC_NORSRAM_EXTENDED_DEVICE; + /* SRAMx.Init */ + SRAMx.Init.NSBank = NSBank; + SRAMx.Init.DataAddressMux = FSMC_DATA_ADDRESS_MUX_DISABLE; + SRAMx.Init.MemoryType = FSMC_MEMORY_TYPE_SRAM; + SRAMx.Init.MemoryDataWidth = FSMC_NORSRAM_MEM_BUS_WIDTH_16; + SRAMx.Init.BurstAccessMode = FSMC_BURST_ACCESS_MODE_DISABLE; + SRAMx.Init.WaitSignalPolarity = FSMC_WAIT_SIGNAL_POLARITY_LOW; + SRAMx.Init.WrapMode = FSMC_WRAP_MODE_DISABLE; + SRAMx.Init.WaitSignalActive = FSMC_WAIT_TIMING_BEFORE_WS; + SRAMx.Init.WriteOperation = FSMC_WRITE_OPERATION_ENABLE; + SRAMx.Init.WaitSignal = FSMC_WAIT_SIGNAL_DISABLE; + SRAMx.Init.ExtendedMode = FSMC_EXTENDED_MODE_ENABLE; + SRAMx.Init.AsynchronousWait = FSMC_ASYNCHRONOUS_WAIT_DISABLE; + SRAMx.Init.WriteBurst = FSMC_WRITE_BURST_DISABLE; + #ifdef STM32F4xx + SRAMx.Init.PageSize = FSMC_PAGE_SIZE_NONE; + #endif + /* Read Timing - relatively slow to ensure ID information is correctly read from TFT controller */ + /* Can be decreases from 15-15-24 to 4-4-8 with risk of stability loss */ + Timing.AddressSetupTime = 15; + Timing.AddressHoldTime = 15; + Timing.DataSetupTime = 24; + Timing.BusTurnAroundDuration = 0; + Timing.CLKDivision = 16; + Timing.DataLatency = 17; + Timing.AccessMode = FSMC_ACCESS_MODE_A; + /* Write Timing */ + /* Can be decreases from 8-15-8 to 0-0-1 with risk of stability loss */ + ExtTiming.AddressSetupTime = 8; + ExtTiming.AddressHoldTime = 15; + ExtTiming.DataSetupTime = 8; + ExtTiming.BusTurnAroundDuration = 0; + ExtTiming.CLKDivision = 16; + ExtTiming.DataLatency = 17; + ExtTiming.AccessMode = FSMC_ACCESS_MODE_A; + + __HAL_RCC_FSMC_CLK_ENABLE(); + + for(uint16_t i = 0; PinMap_FSMC[i].pin != NC; i++) + pinmap_pinout(PinMap_FSMC[i].pin, PinMap_FSMC); + pinmap_pinout(digitalPinToPinName(TFT_CS_PIN), PinMap_FSMC_CS); + pinmap_pinout(digitalPinToPinName(TFT_RS_PIN), PinMap_FSMC_RS); + + controllerAddress = FSMC_BANK1_1; + #ifdef PF0 + switch (NSBank) { + case FSMC_NORSRAM_BANK2: controllerAddress = FSMC_BANK1_2 ; break; + case FSMC_NORSRAM_BANK3: controllerAddress = FSMC_BANK1_3 ; break; + case FSMC_NORSRAM_BANK4: controllerAddress = FSMC_BANK1_4 ; break; + } + #endif + + controllerAddress |= (uint32_t)pinmap_peripheral(digitalPinToPinName(TFT_RS_PIN), PinMap_FSMC_RS); + + HAL_SRAM_Init(&SRAMx, &Timing, &ExtTiming); + + __HAL_RCC_DMA2_CLK_ENABLE(); + + #ifdef STM32F1xx + DMAtx.Instance = DMA2_Channel1; + #elif defined(STM32F4xx) + DMAtx.Instance = DMA2_Stream0; + DMAtx.Init.Channel = DMA_CHANNEL_0; + DMAtx.Init.FIFOMode = DMA_FIFOMODE_ENABLE; + DMAtx.Init.FIFOThreshold = DMA_FIFO_THRESHOLD_FULL; + DMAtx.Init.MemBurst = DMA_MBURST_SINGLE; + DMAtx.Init.PeriphBurst = DMA_PBURST_SINGLE; + #endif + + DMAtx.Init.Direction = DMA_MEMORY_TO_MEMORY; + DMAtx.Init.MemInc = DMA_MINC_DISABLE; + DMAtx.Init.PeriphDataAlignment = DMA_PDATAALIGN_HALFWORD; + DMAtx.Init.MemDataAlignment = DMA_MDATAALIGN_HALFWORD; + DMAtx.Init.Mode = DMA_NORMAL; + DMAtx.Init.Priority = DMA_PRIORITY_HIGH; + + LCD = (LCD_CONTROLLER_TypeDef *)controllerAddress; +} + +uint32_t TFT_FSMC::GetID() { + uint32_t id; + WriteReg(0x0000); + id = LCD->RAM; + + if (id == 0) + id = ReadID(LCD_READ_ID); + if ((id & 0xFFFF) == 0 || (id & 0xFFFF) == 0xFFFF) + id = ReadID(LCD_READ_ID4); + return id; +} + + uint32_t TFT_FSMC::ReadID(uint16_t Reg) { + uint32_t id; + WriteReg(Reg); + id = LCD->RAM; // dummy read + id = Reg << 24; + id |= (LCD->RAM & 0x00FF) << 16; + id |= (LCD->RAM & 0x00FF) << 8; + id |= LCD->RAM & 0x00FF; + return id; + } + +bool TFT_FSMC::isBusy() { + if (__IS_DMA_ENABLED(&DMAtx)) + if (__HAL_DMA_GET_FLAG(&DMAtx, __HAL_DMA_GET_TC_FLAG_INDEX(&DMAtx)) != 0 || __HAL_DMA_GET_FLAG(&DMAtx, __HAL_DMA_GET_TE_FLAG_INDEX(&DMAtx)) != 0) + Abort(); + return __IS_DMA_ENABLED(&DMAtx); +} + +void TFT_FSMC::TransmitDMA(uint32_t MemoryIncrease, uint16_t *Data, uint16_t Count) { + DMAtx.Init.PeriphInc = MemoryIncrease; + HAL_DMA_Init(&DMAtx); + + __HAL_DMA_CLEAR_FLAG(&DMAtx, __HAL_DMA_GET_TC_FLAG_INDEX(&DMAtx)); + __HAL_DMA_CLEAR_FLAG(&DMAtx, __HAL_DMA_GET_TE_FLAG_INDEX(&DMAtx)); + + #ifdef STM32F1xx + DMAtx.Instance->CNDTR = Count; + DMAtx.Instance->CPAR = (uint32_t)Data; + DMAtx.Instance->CMAR = (uint32_t)&(LCD->RAM); + #elif defined(STM32F4xx) + DMAtx.Instance->NDTR = Count; + DMAtx.Instance->PAR = (uint32_t)Data; + DMAtx.Instance->M0AR = (uint32_t)&(LCD->RAM); + #endif + __HAL_DMA_ENABLE(&DMAtx); +} + +#endif // HAS_FSMC_TFT diff --git a/Marlin/src/HAL/STM32/tft/tft_fsmc.h b/Marlin/src/HAL/STM32/tft/tft_fsmc.h new file mode 100644 index 000000000..8500fee11 --- /dev/null +++ b/Marlin/src/HAL/STM32/tft/tft_fsmc.h @@ -0,0 +1,160 @@ +/** + * Marlin 3D Printer Firmware + * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin] + * + * Based on Sprinter and grbl. + * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + */ +#pragma once + +#ifdef STM32F1xx + #include "stm32f1xx_hal.h" +#elif defined(STM32F4xx) + #include "stm32f4xx_hal.h" +#else + #error FSMC TFT is currently only supported on STM32F1 and STM32F4 hardware. +#endif + +#ifndef LCD_READ_ID + #define LCD_READ_ID 0x04 // Read display identification information (0xD3 on ILI9341) +#endif +#ifndef LCD_READ_ID4 + #define LCD_READ_ID4 0xD3 // Read display identification information (0xD3 on ILI9341) +#endif + +#define DATASIZE_8BIT SPI_DATASIZE_8BIT +#define DATASIZE_16BIT SPI_DATASIZE_16BIT +#define TFT_IO TFT_FSMC + +#ifdef STM32F1xx + #define __IS_DMA_ENABLED(__HANDLE__) ((__HANDLE__)->Instance->CCR & DMA_CCR_EN) +#elif defined(STM32F4xx) + #define __IS_DMA_ENABLED(__HANDLE__) ((__HANDLE__)->Instance->CR & DMA_SxCR_EN) +#endif + +typedef struct { + __IO uint16_t REG; + __IO uint16_t RAM; +} LCD_CONTROLLER_TypeDef; + +class TFT_FSMC { + private: + static SRAM_HandleTypeDef SRAMx; + static DMA_HandleTypeDef DMAtx; + + static LCD_CONTROLLER_TypeDef *LCD; + + static uint32_t ReadID(uint16_t Reg); + static void Transmit(uint16_t Data) { LCD->RAM = Data; __DSB(); } + static void TransmitDMA(uint32_t MemoryIncrease, uint16_t *Data, uint16_t Count); + + public: + static void Init(); + static uint32_t GetID(); + static bool isBusy(); + static void Abort() { __HAL_DMA_DISABLE(&DMAtx); } + + static void DataTransferBegin(uint16_t DataWidth = DATASIZE_16BIT) {} + static void DataTransferEnd() {}; + + static void WriteData(uint16_t Data) { Transmit(Data); } + static void WriteReg(uint16_t Reg) { LCD->REG = Reg; __DSB(); } + + static void WriteSequence(uint16_t *Data, uint16_t Count) { TransmitDMA(DMA_PINC_ENABLE, Data, Count); } + static void WriteMultiple(uint16_t Color, uint16_t Count) { static uint16_t Data; Data = Color; TransmitDMA(DMA_PINC_DISABLE, &Data, Count); } +}; + + +#ifdef STM32F1xx + #define FSMC_PIN_DATA STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, AFIO_NONE) +#elif defined(STM32F4xx) + #define FSMC_PIN_DATA STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF12_FSMC) + #define FSMC_BANK1_1 0x60000000U + #define FSMC_BANK1_2 0x64000000U + #define FSMC_BANK1_3 0x68000000U + #define FSMC_BANK1_4 0x6C000000U +#else + #error No configuration for this MCU +#endif + +const PinMap PinMap_FSMC[] = { + {PD_14, FSMC_NORSRAM_DEVICE, FSMC_PIN_DATA}, // FSMC_D00 + {PD_15, FSMC_NORSRAM_DEVICE, FSMC_PIN_DATA}, // FSMC_D01 + {PD_0, FSMC_NORSRAM_DEVICE, FSMC_PIN_DATA}, // FSMC_D02 + {PD_1, FSMC_NORSRAM_DEVICE, FSMC_PIN_DATA}, // FSMC_D03 + {PE_7, FSMC_NORSRAM_DEVICE, FSMC_PIN_DATA}, // FSMC_D04 + {PE_8, FSMC_NORSRAM_DEVICE, FSMC_PIN_DATA}, // FSMC_D05 + {PE_9, FSMC_NORSRAM_DEVICE, FSMC_PIN_DATA}, // FSMC_D06 + {PE_10, FSMC_NORSRAM_DEVICE, FSMC_PIN_DATA}, // FSMC_D07 + {PE_11, FSMC_NORSRAM_DEVICE, FSMC_PIN_DATA}, // FSMC_D08 + {PE_12, FSMC_NORSRAM_DEVICE, FSMC_PIN_DATA}, // FSMC_D09 + {PE_13, FSMC_NORSRAM_DEVICE, FSMC_PIN_DATA}, // FSMC_D10 + {PE_14, FSMC_NORSRAM_DEVICE, FSMC_PIN_DATA}, // FSMC_D11 + {PE_15, FSMC_NORSRAM_DEVICE, FSMC_PIN_DATA}, // FSMC_D12 + {PD_8, FSMC_NORSRAM_DEVICE, FSMC_PIN_DATA}, // FSMC_D13 + {PD_9, FSMC_NORSRAM_DEVICE, FSMC_PIN_DATA}, // FSMC_D14 + {PD_10, FSMC_NORSRAM_DEVICE, FSMC_PIN_DATA}, // FSMC_D15 + {PD_4, FSMC_NORSRAM_DEVICE, FSMC_PIN_DATA}, // FSMC_NOE + {PD_5, FSMC_NORSRAM_DEVICE, FSMC_PIN_DATA}, // FSMC_NWE + {NC, NP, 0} +}; + +const PinMap PinMap_FSMC_CS[] = { + {PD_7, (void *)FSMC_NORSRAM_BANK1, FSMC_PIN_DATA}, // FSMC_NE1 + #ifdef PF0 + {PG_9, (void *)FSMC_NORSRAM_BANK2, FSMC_PIN_DATA}, // FSMC_NE2 + {PG_10, (void *)FSMC_NORSRAM_BANK3, FSMC_PIN_DATA}, // FSMC_NE3 + {PG_12, (void *)FSMC_NORSRAM_BANK4, FSMC_PIN_DATA}, // FSMC_NE4 + #endif + {NC, NP, 0} +}; + +#define FSMC_RS(A) (void *)((2 << A) - 2) + +const PinMap PinMap_FSMC_RS[] = { + #ifdef PF0 + {PF_0, FSMC_RS( 0), FSMC_PIN_DATA}, // FSMC_A0 + {PF_1, FSMC_RS( 1), FSMC_PIN_DATA}, // FSMC_A1 + {PF_2, FSMC_RS( 2), FSMC_PIN_DATA}, // FSMC_A2 + {PF_3, FSMC_RS( 3), FSMC_PIN_DATA}, // FSMC_A3 + {PF_4, FSMC_RS( 4), FSMC_PIN_DATA}, // FSMC_A4 + {PF_5, FSMC_RS( 5), FSMC_PIN_DATA}, // FSMC_A5 + {PF_12, FSMC_RS( 6), FSMC_PIN_DATA}, // FSMC_A6 + {PF_13, FSMC_RS( 7), FSMC_PIN_DATA}, // FSMC_A7 + {PF_14, FSMC_RS( 8), FSMC_PIN_DATA}, // FSMC_A8 + {PF_15, FSMC_RS( 9), FSMC_PIN_DATA}, // FSMC_A9 + {PG_0, FSMC_RS(10), FSMC_PIN_DATA}, // FSMC_A10 + {PG_1, FSMC_RS(11), FSMC_PIN_DATA}, // FSMC_A11 + {PG_2, FSMC_RS(12), FSMC_PIN_DATA}, // FSMC_A12 + {PG_3, FSMC_RS(13), FSMC_PIN_DATA}, // FSMC_A13 + {PG_4, FSMC_RS(14), FSMC_PIN_DATA}, // FSMC_A14 + {PG_5, FSMC_RS(15), FSMC_PIN_DATA}, // FSMC_A15 + #endif + {PD_11, FSMC_RS(16), FSMC_PIN_DATA}, // FSMC_A16 + {PD_12, FSMC_RS(17), FSMC_PIN_DATA}, // FSMC_A17 + {PD_13, FSMC_RS(18), FSMC_PIN_DATA}, // FSMC_A18 + {PE_3, FSMC_RS(19), FSMC_PIN_DATA}, // FSMC_A19 + {PE_4, FSMC_RS(20), FSMC_PIN_DATA}, // FSMC_A20 + {PE_5, FSMC_RS(21), FSMC_PIN_DATA}, // FSMC_A21 + {PE_6, FSMC_RS(22), FSMC_PIN_DATA}, // FSMC_A22 + {PE_2, FSMC_RS(23), FSMC_PIN_DATA}, // FSMC_A23 + #ifdef PF0 + {PG_13, FSMC_RS(24), FSMC_PIN_DATA}, // FSMC_A24 + {PG_14, FSMC_RS(25), FSMC_PIN_DATA}, // FSMC_A25 + #endif + {NC, NP, 0} +}; diff --git a/Marlin/src/HAL/STM32/tft/tft_spi.cpp b/Marlin/src/HAL/STM32/tft/tft_spi.cpp new file mode 100644 index 000000000..d3eb4ba8d --- /dev/null +++ b/Marlin/src/HAL/STM32/tft/tft_spi.cpp @@ -0,0 +1,212 @@ +/** + * Marlin 3D Printer Firmware + * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin] + * + * Based on Sprinter and grbl. + * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + */ + +#include "../../../inc/MarlinConfig.h" + +#if HAS_SPI_TFT + +#include "tft_spi.h" +#include "pinconfig.h" + +SPI_HandleTypeDef TFT_SPI::SPIx; +DMA_HandleTypeDef TFT_SPI::DMAtx; + +void TFT_SPI::Init() { + SPI_TypeDef *spiInstance; + + #if PIN_EXISTS(TFT_RESET) + OUT_WRITE(TFT_RESET_PIN, HIGH); + HAL_Delay(100); + #endif + + #if PIN_EXISTS(TFT_BACKLIGHT) + OUT_WRITE(TFT_BACKLIGHT_PIN, HIGH); + #endif + + OUT_WRITE(TFT_A0_PIN, HIGH); + OUT_WRITE(TFT_CS_PIN, HIGH); + + if ((spiInstance = (SPI_TypeDef *)pinmap_peripheral(digitalPinToPinName(TFT_SCK_PIN), PinMap_SPI_SCLK)) == NP) return; + if (spiInstance != (SPI_TypeDef *)pinmap_peripheral(digitalPinToPinName(TFT_MOSI_PIN), PinMap_SPI_MOSI)) return; + + #if PIN_EXISTS(TFT_MISO) && (TFT_MISO_PIN != TFT_MOSI_PIN) + if (spiInstance != (SPI_TypeDef *)pinmap_peripheral(digitalPinToPinName(TFT_MISO_PIN), PinMap_SPI_MISO)) return; + #endif + + SPIx.Instance = spiInstance; + SPIx.State = HAL_SPI_STATE_RESET; + SPIx.Init.NSS = SPI_NSS_SOFT; + SPIx.Init.Mode = SPI_MODE_MASTER; + SPIx.Init.Direction = + #if TFT_MISO_PIN == TFT_MOSI_PIN + SPI_DIRECTION_1LINE; + #else + SPI_DIRECTION_2LINES; + #endif + SPIx.Init.BaudRatePrescaler = SPI_BAUDRATEPRESCALER_2; + SPIx.Init.CLKPhase = SPI_PHASE_1EDGE; + SPIx.Init.CLKPolarity = SPI_POLARITY_LOW; + SPIx.Init.DataSize = SPI_DATASIZE_8BIT; + SPIx.Init.FirstBit = SPI_FIRSTBIT_MSB; + SPIx.Init.TIMode = SPI_TIMODE_DISABLE; + SPIx.Init.CRCCalculation = SPI_CRCCALCULATION_DISABLE; + SPIx.Init.CRCPolynomial = 10; + + pinmap_pinout(digitalPinToPinName(TFT_SCK_PIN), PinMap_SPI_SCLK); + pinmap_pinout(digitalPinToPinName(TFT_MOSI_PIN), PinMap_SPI_MOSI); + #if PIN_EXISTS(TFT_MISO) && (TFT_MISO_PIN != TFT_MOSI_PIN) + pinmap_pinout(digitalPinToPinName(TFT_MISO_PIN), PinMap_SPI_MISO); + #endif + pin_PullConfig(get_GPIO_Port(STM_PORT(digitalPinToPinName(TFT_SCK_PIN))), STM_LL_GPIO_PIN(digitalPinToPinName(TFT_SCK_PIN)), GPIO_PULLDOWN); + + #ifdef SPI1_BASE + if (SPIx.Instance == SPI1) { + __HAL_RCC_SPI1_CLK_ENABLE(); + __HAL_RCC_DMA1_CLK_ENABLE(); + SPIx.Init.BaudRatePrescaler = SPI_BAUDRATEPRESCALER_4; + DMAtx.Instance = DMA1_Channel3; + } + #endif + #ifdef SPI2_BASE + if (SPIx.Instance == SPI2) { + __HAL_RCC_SPI2_CLK_ENABLE(); + __HAL_RCC_DMA1_CLK_ENABLE(); + DMAtx.Instance = DMA1_Channel5; + } + #endif + #ifdef SPI3_BASE + if (SPIx.Instance == SPI3) { + __HAL_RCC_SPI3_CLK_ENABLE(); + __HAL_RCC_DMA2_CLK_ENABLE(); + DMAtx.Instance = DMA2_Channel2; + } + #endif + + HAL_SPI_Init(&SPIx); + + DMAtx.Init.Direction = DMA_MEMORY_TO_PERIPH; + DMAtx.Init.PeriphInc = DMA_PINC_DISABLE; + DMAtx.Init.PeriphDataAlignment = DMA_PDATAALIGN_HALFWORD; + DMAtx.Init.MemDataAlignment = DMA_MDATAALIGN_HALFWORD; + DMAtx.Init.Mode = DMA_NORMAL; + DMAtx.Init.Priority = DMA_PRIORITY_LOW; +} + +void TFT_SPI::DataTransferBegin(uint16_t DataSize) { + SPIx.Init.DataSize = DataSize == DATASIZE_8BIT ? SPI_DATASIZE_8BIT : SPI_DATASIZE_16BIT; + HAL_SPI_Init(&SPIx); + WRITE(TFT_CS_PIN, LOW); +} + +uint32_t TFT_SPI::GetID() { + uint32_t id; + id = ReadID(LCD_READ_ID); + + if ((id & 0xFFFF) == 0 || (id & 0xFFFF) == 0xFFFF) + id = ReadID(LCD_READ_ID4); + return id; +} + +uint32_t TFT_SPI::ReadID(uint16_t Reg) { + #if !PIN_EXISTS(TFT_MISO) + return 0; + #else + uint32_t BaudRatePrescaler = SPIx.Init.BaudRatePrescaler; + uint32_t i, Data = 0; + + SPIx.Init.BaudRatePrescaler = SPIx.Instance == SPI1 ? SPI_BAUDRATEPRESCALER_8 : SPI_BAUDRATEPRESCALER_4; + DataTransferBegin(DATASIZE_8BIT); + WriteReg(Reg); + + if (SPIx.Init.Direction == SPI_DIRECTION_1LINE) SPI_1LINE_RX(&SPIx); + __HAL_SPI_ENABLE(&SPIx); + + for (i = 0; i < 4; i++) { + #if TFT_MISO_PIN != TFT_MOSI_PIN + //if (hspi->Init.Direction == SPI_DIRECTION_2LINES) { + while ((SPIx.Instance->SR & SPI_FLAG_TXE) != SPI_FLAG_TXE) {} + SPIx.Instance->DR = 0; + //} + #endif + while ((SPIx.Instance->SR & SPI_FLAG_RXNE) != SPI_FLAG_RXNE) {} + Data = (Data << 8) | SPIx.Instance->DR; + } + + __HAL_SPI_DISABLE(&SPIx); + DataTransferEnd(); + + SPIx.Init.BaudRatePrescaler = BaudRatePrescaler; + + return Data >> 7; + #endif +} + +bool TFT_SPI::isBusy() { + if (DMAtx.Instance->CCR & DMA_CCR_EN) + if (__HAL_DMA_GET_FLAG(&DMAtx, __HAL_DMA_GET_TC_FLAG_INDEX(&DMAtx)) != 0 || __HAL_DMA_GET_FLAG(&DMAtx, __HAL_DMA_GET_TE_FLAG_INDEX(&DMAtx)) != 0) + Abort(); + return DMAtx.Instance->CCR & DMA_CCR_EN; +} + +void TFT_SPI::Abort() { + __HAL_DMA_DISABLE(&DMAtx); + DataTransferEnd(); +} + +void TFT_SPI::Transmit(uint16_t Data) { + #if TFT_MISO_PIN == TFT_MOSI_PIN + SPI_1LINE_TX(&SPIx); + #endif + + __HAL_SPI_ENABLE(&SPIx); + + SPIx.Instance->DR = Data; + + while ((SPIx.Instance->SR & SPI_FLAG_TXE) != SPI_FLAG_TXE) {} + while ((SPIx.Instance->SR & SPI_FLAG_BSY) == SPI_FLAG_BSY) {} + + #if TFT_MISO_PIN != TFT_MOSI_PIN + __HAL_SPI_CLEAR_OVRFLAG(&SPIx); /* Clear overrun flag in 2 Lines communication mode because received is not read */ + #endif +} + +void TFT_SPI::TransmitDMA(uint32_t MemoryIncrease, uint16_t *Data, uint16_t Count) { + DMAtx.Init.MemInc = MemoryIncrease; + HAL_DMA_Init(&DMAtx); + + DataTransferBegin(); + + #if TFT_MISO_PIN == TFT_MOSI_PIN + SPI_1LINE_TX(&SPIx); + #endif + + DMAtx.DmaBaseAddress->IFCR = (DMA_ISR_GIF1 << DMAtx.ChannelIndex); + DMAtx.Instance->CNDTR = Count; + DMAtx.Instance->CPAR = (uint32_t)&(SPIx.Instance->DR); + DMAtx.Instance->CMAR = (uint32_t)Data; + __HAL_DMA_ENABLE(&DMAtx); + __HAL_SPI_ENABLE(&SPIx); + + SET_BIT(SPIx.Instance->CR2, SPI_CR2_TXDMAEN); /* Enable Tx DMA Request */ +} + +#endif // HAS_SPI_TFT diff --git a/Marlin/src/HAL/STM32/tft/tft_spi.h b/Marlin/src/HAL/STM32/tft/tft_spi.h new file mode 100644 index 000000000..1eed45a70 --- /dev/null +++ b/Marlin/src/HAL/STM32/tft/tft_spi.h @@ -0,0 +1,67 @@ +/** + * Marlin 3D Printer Firmware + * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin] + * + * Based on Sprinter and grbl. + * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + */ +#pragma once + +#ifdef STM32F1xx + #include "stm32f1xx_hal.h" +#elif defined(STM32F4xx) + #include "stm32f4xx_hal.h" +#else + #error SPI TFT is currently only supported on STM32F1 and STM32F4 hardware. +#endif + +#ifndef LCD_READ_ID + #define LCD_READ_ID 0x04 // Read display identification information (0xD3 on ILI9341) +#endif +#ifndef LCD_READ_ID4 + #define LCD_READ_ID4 0xD3 // Read display identification information (0xD3 on ILI9341) +#endif + +#define DATASIZE_8BIT SPI_DATASIZE_8BIT +#define DATASIZE_16BIT SPI_DATASIZE_16BIT +#define TFT_IO TFT_SPI + +class TFT_SPI { +private: + static SPI_HandleTypeDef SPIx; + static DMA_HandleTypeDef DMAtx; + + static uint32_t ReadID(uint16_t Reg); + static void Transmit(uint16_t Data); + static void TransmitDMA(uint32_t MemoryIncrease, uint16_t *Data, uint16_t Count); + +public: + static void Init(); + static uint32_t GetID(); + static bool isBusy(); + static void Abort(); + + static void DataTransferBegin(uint16_t DataWidth = DATASIZE_16BIT); + static void DataTransferEnd() { WRITE(TFT_CS_PIN, HIGH); }; + static void DataTransferAbort(); + + static void WriteData(uint16_t Data) { Transmit(Data); } + static void WriteReg(uint16_t Reg) { WRITE(TFT_A0_PIN, LOW); Transmit(Reg); WRITE(TFT_A0_PIN, HIGH); } + + static void WriteSequence(uint16_t *Data, uint16_t Count) { TransmitDMA(DMA_MINC_ENABLE, Data, Count); } + static void WriteMultiple(uint16_t Color, uint16_t Count) { static uint16_t Data; Data = Color; TransmitDMA(DMA_MINC_DISABLE, &Data, Count); } +}; diff --git a/Marlin/src/HAL/STM32/tft/xpt2046.cpp b/Marlin/src/HAL/STM32/tft/xpt2046.cpp new file mode 100644 index 000000000..49e64da6a --- /dev/null +++ b/Marlin/src/HAL/STM32/tft/xpt2046.cpp @@ -0,0 +1,185 @@ +/** + * Marlin 3D Printer Firmware + * Copyright (c) 2019 MarlinFirmware [https://github.com/MarlinFirmware/Marlin] + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + */ + +#include "../../../inc/MarlinConfig.h" + +#if HAS_TFT_XPT2046 + +#include "xpt2046.h" +#include "pinconfig.h" + +uint16_t delta(uint16_t a, uint16_t b) { return a > b ? a - b : b - a; } + +SPI_HandleTypeDef XPT2046::SPIx; +DMA_HandleTypeDef XPT2046::DMAtx; + +void XPT2046::Init() { + SPI_TypeDef *spiInstance; + + OUT_WRITE(TOUCH_CS_PIN, HIGH); + + #if PIN_EXISTS(TOUCH_INT) + // Optional Pendrive interrupt pin + SET_INPUT(TOUCH_INT_PIN); + #endif + + spiInstance = (SPI_TypeDef *)pinmap_peripheral(digitalPinToPinName(TOUCH_SCK_PIN), PinMap_SPI_SCLK); + if (spiInstance != (SPI_TypeDef *)pinmap_peripheral(digitalPinToPinName(TOUCH_MOSI_PIN), PinMap_SPI_MOSI)) spiInstance = NP; + if (spiInstance != (SPI_TypeDef *)pinmap_peripheral(digitalPinToPinName(TOUCH_MISO_PIN), PinMap_SPI_MISO)) spiInstance = NP; + + SPIx.Instance = spiInstance; + + if (SPIx.Instance) { + SPIx.State = HAL_SPI_STATE_RESET; + SPIx.Init.NSS = SPI_NSS_SOFT; + SPIx.Init.Mode = SPI_MODE_MASTER; + SPIx.Init.Direction = SPI_DIRECTION_2LINES; + SPIx.Init.BaudRatePrescaler = SPI_BAUDRATEPRESCALER_8; + SPIx.Init.CLKPhase = SPI_PHASE_2EDGE; + SPIx.Init.CLKPolarity = SPI_POLARITY_HIGH; + SPIx.Init.DataSize = SPI_DATASIZE_8BIT; + SPIx.Init.FirstBit = SPI_FIRSTBIT_MSB; + SPIx.Init.TIMode = SPI_TIMODE_DISABLE; + SPIx.Init.CRCCalculation = SPI_CRCCALCULATION_DISABLE; + SPIx.Init.CRCPolynomial = 10; + + pinmap_pinout(digitalPinToPinName(TOUCH_SCK_PIN), PinMap_SPI_SCLK); + pinmap_pinout(digitalPinToPinName(TOUCH_MOSI_PIN), PinMap_SPI_MOSI); + pinmap_pinout(digitalPinToPinName(TOUCH_MISO_PIN), PinMap_SPI_MISO); + + #ifdef SPI1_BASE + if (SPIx.Instance == SPI1) { + __HAL_RCC_SPI1_CLK_ENABLE(); + SPIx.Init.BaudRatePrescaler = SPI_BAUDRATEPRESCALER_16; + #ifdef STM32F1xx + DMAtx.Instance = DMA1_Channel3; + #elif defined(STM32F4xx) + DMAtx.Instance = DMA2_Stream3; // DMA2_Stream5 + #endif + //SERIAL_ECHO_MSG(" Touch Screen on SPI1"); + } + #endif + #ifdef SPI2_BASE + if (SPIx.Instance == SPI2) { + __HAL_RCC_SPI2_CLK_ENABLE(); + #ifdef STM32F1xx + DMAtx.Instance = DMA1_Channel5; + #elif defined(STM32F4xx) + DMAtx.Instance = DMA1_Stream4; + #endif + //SERIAL_ECHO_MSG(" Touch Screen on SPI2"); + } + #endif + #ifdef SPI3_BASE + if (SPIx.Instance == SPI3) { + __HAL_RCC_SPI3_CLK_ENABLE(); + #ifdef STM32F1xx + DMAtx.Instance = DMA2_Channel2; + #elif defined(STM32F4xx) + DMAtx.Instance = DMA1_Stream5; // DMA1_Stream7 + #endif + //SERIAL_ECHO_MSG(" Touch Screen on SPI3"); + } + #endif + } + else { + SPIx.Instance = NULL; + SET_INPUT(TOUCH_MISO_PIN); + SET_OUTPUT(TOUCH_MOSI_PIN); + SET_OUTPUT(TOUCH_SCK_PIN); + //SERIAL_ECHO_MSG(" Touch Screen on Software SPI"); + } + + getRawData(XPT2046_Z1); +} + +bool XPT2046::isTouched() { + return isBusy() ? false : ( + #if PIN_EXISTS(TOUCH_INT) + READ(TOUCH_INT_PIN) != HIGH + #else + getRawData(XPT2046_Z1) >= XPT2046_Z1_THRESHOLD + #endif + ); +} + +bool XPT2046::getRawPoint(int16_t *x, int16_t *y) { + if (isBusy()) return false; + if (!isTouched()) return false; + *x = getRawData(XPT2046_X); + *y = getRawData(XPT2046_Y); + return isTouched(); +} + +uint16_t XPT2046::getRawData(const XPTCoordinate coordinate) { + uint16_t data[3]; + + DataTransferBegin(); + + for (uint16_t i = 0; i < 3 ; i++) { + IO(coordinate); + data[i] = (IO() << 4) | (IO() >> 4); + } + + DataTransferEnd(); + + uint16_t delta01 = delta(data[0], data[1]); + uint16_t delta02 = delta(data[0], data[2]); + uint16_t delta12 = delta(data[1], data[2]); + + if (delta01 > delta02 || delta01 > delta12) { + if (delta02 > delta12) + data[0] = data[2]; + else + data[1] = data[2]; + } + + return (data[0] + data[1]) >> 1; +} + +uint16_t XPT2046::HardwareIO(uint16_t data) { + __HAL_SPI_ENABLE(&SPIx); + while((SPIx.Instance->SR & SPI_FLAG_TXE) != SPI_FLAG_TXE) {} + SPIx.Instance->DR = data; + while((SPIx.Instance->SR & SPI_FLAG_RXNE) != SPI_FLAG_RXNE) {} + __HAL_SPI_DISABLE(&SPIx); + + return SPIx.Instance->DR; +} + +uint16_t XPT2046::SoftwareIO(uint16_t data) { + uint16_t result = 0; + + for (uint8_t j = 0x80; j > 0; j >>= 1) { + WRITE(TOUCH_SCK_PIN, LOW); + __DSB(); + WRITE(TOUCH_MOSI_PIN, data & j ? HIGH : LOW); + __DSB(); + if (READ(TOUCH_MISO_PIN)) result |= j; + __DSB(); + WRITE(TOUCH_SCK_PIN, HIGH); + __DSB(); + } + WRITE(TOUCH_SCK_PIN, LOW); + __DSB(); + + return result; +} + +#endif // HAS_TFT_XPT2046 diff --git a/Marlin/src/HAL/STM32/tft/xpt2046.h b/Marlin/src/HAL/STM32/tft/xpt2046.h new file mode 100644 index 000000000..7a6d8439c --- /dev/null +++ b/Marlin/src/HAL/STM32/tft/xpt2046.h @@ -0,0 +1,86 @@ +/** + * Marlin 3D Printer Firmware + * Copyright (c) 2019 MarlinFirmware [https://github.com/MarlinFirmware/Marlin] + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + */ +#pragma once + +#ifdef STM32F1xx + #include +#elif defined(STM32F4xx) + #include +#endif + +#include "../../../inc/MarlinConfig.h" + +// Not using regular SPI interface by default to avoid SPI mode conflicts with other SPI devices + +#if !PIN_EXISTS(TOUCH_MISO) + #error "TOUCH_MISO_PIN is not defined." +#elif !PIN_EXISTS(TOUCH_MOSI) + #error "TOUCH_MOSI_PIN is not defined." +#elif !PIN_EXISTS(TOUCH_SCK) + #error "TOUCH_SCK_PIN is not defined." +#elif !PIN_EXISTS(TOUCH_CS) + #error "TOUCH_CS_PIN is not defined." +#endif + +#ifndef TOUCH_INT_PIN + #define TOUCH_INT_PIN -1 +#endif + +#define XPT2046_DFR_MODE 0x00 +#define XPT2046_SER_MODE 0x04 +#define XPT2046_CONTROL 0x80 + +enum XPTCoordinate : uint8_t { + XPT2046_X = 0x10 | XPT2046_CONTROL | XPT2046_DFR_MODE, + XPT2046_Y = 0x50 | XPT2046_CONTROL | XPT2046_DFR_MODE, + XPT2046_Z1 = 0x30 | XPT2046_CONTROL | XPT2046_DFR_MODE, + XPT2046_Z2 = 0x40 | XPT2046_CONTROL | XPT2046_DFR_MODE, +}; + +#if !defined(XPT2046_Z1_THRESHOLD) + #define XPT2046_Z1_THRESHOLD 10 +#endif + +#ifdef STM32F1xx + #define __IS_DMA_ENABLED(__HANDLE__) ((__HANDLE__)->Instance->CCR & DMA_CCR_EN) +#elif defined(STM32F4xx) + #define __IS_DMA_ENABLED(__HANDLE__) ((__HANDLE__)->Instance->CR & DMA_SxCR_EN) +#endif + + +class XPT2046 { +private: + static SPI_HandleTypeDef SPIx; + static DMA_HandleTypeDef DMAtx; + + static bool isBusy() { return SPIx.Instance ? __IS_DMA_ENABLED(&DMAtx) : false; } + + static uint16_t getRawData(const XPTCoordinate coordinate); + static bool isTouched(); + + static inline void DataTransferBegin() { if (SPIx.Instance) { HAL_SPI_Init(&SPIx); } WRITE(TOUCH_CS_PIN, LOW); }; + static inline void DataTransferEnd() { WRITE(TOUCH_CS_PIN, HIGH); }; + static uint16_t HardwareIO(uint16_t data); + static uint16_t SoftwareIO(uint16_t data); + static uint16_t IO(uint16_t data = 0) { return SPIx.Instance ? HardwareIO(data) : SoftwareIO(data); } + +public: + static void Init(); + static bool getRawPoint(int16_t *x, int16_t *y); +}; diff --git a/Marlin/src/HAL/STM32F1/SPI.cpp b/Marlin/src/HAL/STM32F1/SPI.cpp index 80095ba1d..423772dbc 100644 --- a/Marlin/src/HAL/STM32F1/SPI.cpp +++ b/Marlin/src/HAL/STM32F1/SPI.cpp @@ -277,7 +277,7 @@ void SPIClass::read(uint8_t *buf, uint32_t len) { regs->DR = 0x00FF; // write the first byte // main loop while (--len) { - while(!(regs->SR & SPI_SR_TXE)) { /* nada */ } // wait for TXE flag + while (!(regs->SR & SPI_SR_TXE)) { /* nada */ } // wait for TXE flag noInterrupts(); // go atomic level - avoid interrupts to surely get the previously received data regs->DR = 0x00FF; // write the next data item to be transmitted into the SPI_DR register. This clears the TXE flag. while (!(regs->SR & SPI_SR_RXNE)) { /* nada */ } // wait till data is available in the DR register diff --git a/Marlin/src/HAL/STM32F1/inc/Conditionals_LCD.h b/Marlin/src/HAL/STM32F1/inc/Conditionals_LCD.h index f52e6fec2..14977381e 100644 --- a/Marlin/src/HAL/STM32F1/inc/Conditionals_LCD.h +++ b/Marlin/src/HAL/STM32F1/inc/Conditionals_LCD.h @@ -25,3 +25,14 @@ //#warning "SD_CHECK_AND_RETRY isn't needed with USE_USB_COMPOSITE." #undef SD_CHECK_AND_RETRY #endif + +#if HAS_GRAPHICAL_TFT + #error "Sorry! TFT displays are not available for HAL/STM32F1." +#endif + +// This platform has 'touch/xpt2046', not 'tft/xpt2046' +#if ENABLED(TOUCH_SCREEN) + #undef TOUCH_SCREEN + #undef TOUCH_SCREEN_CALIBRATION + #define HAS_TOUCH_XPT2046 1 +#endif diff --git a/Marlin/src/HAL/STM32_F4_F7/inc/Conditionals_LCD.h b/Marlin/src/HAL/STM32_F4_F7/inc/Conditionals_LCD.h index 5f1c4b160..a9f1b5822 100644 --- a/Marlin/src/HAL/STM32_F4_F7/inc/Conditionals_LCD.h +++ b/Marlin/src/HAL/STM32_F4_F7/inc/Conditionals_LCD.h @@ -20,3 +20,7 @@ * */ #pragma once + +#if HAS_SPI_TFT || HAS_FSMC_TFT + #error "Sorry! TFT displays are not available for HAL/STM32F4_F7." +#endif diff --git a/Marlin/src/HAL/TEENSY31_32/inc/Conditionals_LCD.h b/Marlin/src/HAL/TEENSY31_32/inc/Conditionals_LCD.h index 5f1c4b160..54ec16664 100644 --- a/Marlin/src/HAL/TEENSY31_32/inc/Conditionals_LCD.h +++ b/Marlin/src/HAL/TEENSY31_32/inc/Conditionals_LCD.h @@ -20,3 +20,7 @@ * */ #pragma once + +#if HAS_SPI_TFT || HAS_FSMC_TFT + #error "Sorry! TFT displays are not available for HAL/TEENSY31_32." +#endif diff --git a/Marlin/src/HAL/TEENSY35_36/inc/Conditionals_LCD.h b/Marlin/src/HAL/TEENSY35_36/inc/Conditionals_LCD.h index 5f1c4b160..632ee533a 100644 --- a/Marlin/src/HAL/TEENSY35_36/inc/Conditionals_LCD.h +++ b/Marlin/src/HAL/TEENSY35_36/inc/Conditionals_LCD.h @@ -20,3 +20,7 @@ * */ #pragma once + +#if HAS_SPI_TFT || HAS_FSMC_TFT + #error "Sorry! TFT displays are not available for HAL/TEENSY35_36." +#endif diff --git a/Marlin/src/MarlinCore.cpp b/Marlin/src/MarlinCore.cpp index 00ea51b05..98f4527ee 100644 --- a/Marlin/src/MarlinCore.cpp +++ b/Marlin/src/MarlinCore.cpp @@ -80,7 +80,7 @@ #include "feature/direct_stepping.h" #endif -#if ENABLED(TOUCH_BUTTONS) +#if HAS_TOUCH_XPT2046 #include "feature/touch/xpt2046.h" #endif @@ -1006,7 +1006,7 @@ void setup() { SETUP_RUN(settings.first_load()); // Load data from EEPROM if available (or use defaults) // This also updates variables in the planner, elsewhere - #if ENABLED(TOUCH_BUTTONS) + #if HAS_TOUCH_XPT2046 SETUP_RUN(touch.init()); #endif diff --git a/Marlin/src/core/boards.h b/Marlin/src/core/boards.h index 6e57a4374..eb33258e2 100644 --- a/Marlin/src/core/boards.h +++ b/Marlin/src/core/boards.h @@ -366,6 +366,11 @@ // #define BOARD_AGCM4_RAMPS_144 6100 // RAMPS 1.4.4 +// +// Custom board +// +#define BOARD_CUSTOM 9998 // Custom pins definition for development and/or rare boards + // // Simulations // diff --git a/Marlin/src/feature/touch/xpt2046.cpp b/Marlin/src/feature/touch/xpt2046.cpp index d613fbc89..b75f3ee2f 100644 --- a/Marlin/src/feature/touch/xpt2046.cpp +++ b/Marlin/src/feature/touch/xpt2046.cpp @@ -17,22 +17,21 @@ * */ -#include "../../inc/MarlinConfigPre.h" - -#if ENABLED(TOUCH_BUTTONS) - -#include "xpt2046.h" #include "../../inc/MarlinConfig.h" +#if HAS_TOUCH_XPT2046 + #if TFT_SCALED_DOGLCD #include "../../lcd/dogm/ultralcd_DOGM.h" // for LCD_FULL_PIXEL_WIDTH, etc. #endif +#include "xpt2046.h" + #ifndef XPT2046_Z1_THRESHOLD #define XPT2046_Z1_THRESHOLD 10 #endif -/* +/** * Draw and Touch processing * * LCD_PIXEL_WIDTH/HEIGHT (128x64) is the (emulated DOGM) Pixel Drawing resolution. @@ -245,4 +244,4 @@ bool XPT2046::getTouchPoint(uint16_t &x, uint16_t &y) { return isTouched(); } -#endif // TOUCH_BUTTONS +#endif // HAS_TOUCH_XPT2046 diff --git a/Marlin/src/gcode/bedlevel/G26.cpp b/Marlin/src/gcode/bedlevel/G26.cpp index 438a61924..2399f207b 100644 --- a/Marlin/src/gcode/bedlevel/G26.cpp +++ b/Marlin/src/gcode/bedlevel/G26.cpp @@ -405,7 +405,7 @@ inline bool turn_on_heaters() { inline bool prime_nozzle() { const feedRate_t fr_slow_e = planner.settings.max_feedrate_mm_s[E_AXIS] / 15.0f; - #if HAS_LCD_MENU && DISABLED(TOUCH_BUTTONS) // ui.button_pressed issue with touchscreen + #if HAS_LCD_MENU && !HAS_TOUCH_XPT2046 // ui.button_pressed issue with touchscreen #if ENABLED(PREVENT_LENGTHY_EXTRUDE) float Total_Prime = 0.0; #endif diff --git a/Marlin/src/gcode/gcode.cpp b/Marlin/src/gcode/gcode.cpp index 7f00ec5a3..8d103d52b 100644 --- a/Marlin/src/gcode/gcode.cpp +++ b/Marlin/src/gcode/gcode.cpp @@ -871,6 +871,10 @@ void GcodeSuite::process_parsed_command(const bool no_ok/*=false*/) { case 422: M422(); break; // M422: Set Z Stepper automatic alignment position using probe #endif + #if ENABLED(TOUCH_SCREEN_CALIBRATION) + case 995: M995(); break; // M995: Touch screen calibration for TFT display + #endif + #if ENABLED(PLATFORM_M997_SUPPORT) case 997: M997(); break; // M997: Perform in-application firmware update #endif diff --git a/Marlin/src/gcode/gcode.h b/Marlin/src/gcode/gcode.h index b3f339e29..7c469458c 100644 --- a/Marlin/src/gcode/gcode.h +++ b/Marlin/src/gcode/gcode.h @@ -276,6 +276,7 @@ * ************ Custom codes - This can change to suit future G-code regulations * G425 - Calibrate using a conductive object. (Requires CALIBRATION_GCODE) * M928 - Start SD logging: "M928 filename.gco". Stop with M29. (Requires SDSUPPORT) + * M995 - Touch screen calibration for TFT display * M997 - Perform in-application firmware update * M999 - Restart after being stopped by error * @@ -843,6 +844,8 @@ private: TERN_(MAGNETIC_PARKING_EXTRUDER, static void M951()); + TERN_(TOUCH_SCREEN_CALIBRATION, static void M995()); + TERN_(PLATFORM_M997_SUPPORT, static void M997()); static void M999(); diff --git a/Marlin/src/gcode/lcd/M995.cpp b/Marlin/src/gcode/lcd/M995.cpp new file mode 100644 index 000000000..72d0d29f7 --- /dev/null +++ b/Marlin/src/gcode/lcd/M995.cpp @@ -0,0 +1,39 @@ +/** + * Marlin 3D Printer Firmware + * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin] + * + * Based on Sprinter and grbl. + * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + */ + +#include "../../inc/MarlinConfig.h" + +#if ENABLED(TOUCH_SCREEN_CALIBRATION) + +#include "../gcode.h" +#include "../../lcd/menu/menu.h" + +/** + * M995: Touch screen calibration for TFT display + */ +void GcodeSuite::M995() { + + ui.goto_screen(touch_screen_calibration); + +} + +#endif // TOUCH_SCREEN_CALIBRATION diff --git a/Marlin/src/inc/Conditionals_LCD.h b/Marlin/src/inc/Conditionals_LCD.h index 1605ced3c..c309822f9 100644 --- a/Marlin/src/inc/Conditionals_LCD.h +++ b/Marlin/src/inc/Conditionals_LCD.h @@ -255,7 +255,7 @@ #define IS_ULTIPANEL #endif -// LVGL UI, SPI or FSMC +// FSMC/SPI TFT Panels (LVGL) #if EITHER(TFT_LVGL_UI_SPI, TFT_LVGL_UI_FSMC) #define HAS_TFT_LVGL_UI 1 #endif @@ -273,6 +273,27 @@ #define DELAYED_BACKLIGHT_INIT #endif +// FSMC/SPI TFT Panels (HAL STM32) +#if EITHER(TFT_320x240, TFT_480x320) + #define HAS_FSMC_TFT 1 +#elif EITHER(TFT_320x240_SPI, TFT_480x320_SPI) + #define HAS_SPI_TFT 1 +#endif + +#if HAS_FSMC_TFT || HAS_SPI_TFT + #define HAS_GRAPHICAL_TFT 1 + #define IS_ULTIPANEL +#endif + +// Fewer lines with touch buttons on-screen +#if EITHER(TFT_320x240, TFT_320x240_SPI) + #define HAS_UI_320x240 1 + #define LCD_HEIGHT TERN(TOUCH_SCREEN, 6, 7) +#elif EITHER(TFT_480x320, TFT_480x320_SPI) + #define HAS_UI_480x320 1 + #define LCD_HEIGHT TERN(TOUCH_SCREEN, 6, 7) +#endif + /** * I2C Panels */ @@ -329,7 +350,7 @@ #endif #ifndef STD_ENCODER_PULSES_PER_STEP - #if ENABLED(TOUCH_BUTTONS) + #if ENABLED(TOUCH_SCREEN) #define STD_ENCODER_PULSES_PER_STEP 2 #else #define STD_ENCODER_PULSES_PER_STEP 5 @@ -398,13 +419,14 @@ // Aliases for LCD features #if EITHER(ULTRA_LCD, EXTENSIBLE_UI) #define HAS_DISPLAY 1 - #if ENABLED(ULTRA_LCD) - #define HAS_SPI_LCD 1 - #if ENABLED(DOGLCD) - #define HAS_GRAPHICAL_LCD 1 - #else - #define HAS_CHARACTER_LCD 1 - #endif +#endif + +#if ENABLED(ULTRA_LCD) + #define HAS_SPI_LCD 1 + #if ENABLED(DOGLCD) + #define HAS_GRAPHICAL_LCD 1 + #elif DISABLED(HAS_GRAPHICAL_TFT) + #define HAS_CHARACTER_LCD 1 #endif #endif diff --git a/Marlin/src/inc/Conditionals_adv.h b/Marlin/src/inc/Conditionals_adv.h index 85cb26dad..7b35dc775 100644 --- a/Marlin/src/inc/Conditionals_adv.h +++ b/Marlin/src/inc/Conditionals_adv.h @@ -251,6 +251,17 @@ #define EARLY_WATCHDOG 1 #endif +// Full Touch Screen needs 'tft/xpt2046' +#if ENABLED(TOUCH_SCREEN) + #define HAS_TFT_XPT2046 1 +#endif + +// Touch Screen or "Touch Buttons" need XPT2046 pins +// but they use different components +#if EITHER(HAS_TFT_XPT2046, HAS_TOUCH_XPT2046) + #define NEED_TOUCH_PINS 1 +#endif + // Extensible UI pin mapping for RepRapDiscount #if ENABLED(TOUCH_UI_FTDI_EVE) && ANY(AO_EXP1_PINMAP, AO_EXP2_PINMAP, CR10_TFT_PINMAP) #define TOUCH_UI_ULTIPANEL 1 diff --git a/Marlin/src/inc/Conditionals_post.h b/Marlin/src/inc/Conditionals_post.h index c7171b06d..b7f92fcb2 100644 --- a/Marlin/src/inc/Conditionals_post.h +++ b/Marlin/src/inc/Conditionals_post.h @@ -373,7 +373,7 @@ #endif -#if ANY(LCD_USE_DMA_FSMC, FSMC_GRAPHICAL_TFT, SPI_GRAPHICAL_TFT) || !PIN_EXISTS(SD_DETECT) +#if ANY(HAS_GRAPHICAL_TFT, LCD_USE_DMA_FSMC, FSMC_GRAPHICAL_TFT, SPI_GRAPHICAL_TFT) || !PIN_EXISTS(SD_DETECT) #define NO_LCD_REINIT 1 // Suppress LCD re-initialization #endif diff --git a/Marlin/src/inc/SanityCheck.h b/Marlin/src/inc/SanityCheck.h index 1db779b31..03b869aa6 100644 --- a/Marlin/src/inc/SanityCheck.h +++ b/Marlin/src/inc/SanityCheck.h @@ -513,6 +513,8 @@ #error "[XYZ]_HOME_BUMP_MM is now HOMING_BUMP_MM. Please update Configuration_adv.h." #elif defined(DIGIPOT_I2C) #error "DIGIPOT_I2C is now DIGIPOT_MCP4451 (or DIGIPOT_MCP4018). Please update Configuration_adv.h." +#elif defined(TOUCH_BUTTONS) + #error "TOUCH_BUTTONS is now TOUCH_SCREEN. Please update your Configuration.h." #endif #ifdef FIL_RUNOUT_INVERTING @@ -687,8 +689,8 @@ static_assert(Y_MAX_LENGTH >= Y_BED_SIZE, "Movement bounds (Y_MIN_POS, Y_MAX_POS #elif PROGRESS_MSG_EXPIRE < 0 #error "PROGRESS_MSG_EXPIRE must be greater than or equal to 0." #endif -#elif ENABLED(LCD_SET_PROGRESS_MANUALLY) && NONE(HAS_GRAPHICAL_LCD, EXTENSIBLE_UI) - #error "LCD_SET_PROGRESS_MANUALLY requires LCD_PROGRESS_BAR, Graphical LCD, or EXTENSIBLE_UI." +#elif ENABLED(LCD_SET_PROGRESS_MANUALLY) && NONE(HAS_GRAPHICAL_LCD, HAS_GRAPHICAL_TFT, EXTENSIBLE_UI) + #error "LCD_SET_PROGRESS_MANUALLY requires LCD_PROGRESS_BAR, Graphical LCD, TFT, or EXTENSIBLE_UI." #endif #if !HAS_LCD_MENU && ENABLED(SD_REPRINT_LAST_SELECTED_FILE) @@ -2224,6 +2226,8 @@ static_assert(hbm[Z_AXIS] >= 0, "HOMING_BUMP_MM.Z must be greater than or equal + ENABLED(DGUS_LCD_UI_HIPRECY) \ + ENABLED(MALYAN_LCD) \ + ENABLED(TOUCH_UI_FTDI_EVE) \ + + ENABLED(TFT_320x240) \ + + ENABLED(TFT_320x240_SPI) \ + ENABLED(FSMC_GRAPHICAL_TFT) \ + ENABLED(TFT_LVGL_UI_FSMC) \ + ENABLED(TFT_LVGL_UI_SPI) @@ -3043,18 +3047,18 @@ static_assert( _ARR_TEST(3,0) && _ARR_TEST(3,1) && _ARR_TEST(3,2) /** * Touch Buttons */ -#if ENABLED(TOUCH_BUTTONS) +#if ENABLED(TOUCH_SCREEN) #ifndef XPT2046_X_CALIBRATION - #error "XPT2046_X_CALIBRATION must be defined with TOUCH_BUTTONS." + #error "XPT2046_X_CALIBRATION must be defined with TOUCH_SCREEN." #endif #ifndef XPT2046_Y_CALIBRATION - #error "XPT2046_Y_CALIBRATION must be defined with TOUCH_BUTTONS." + #error "XPT2046_Y_CALIBRATION must be defined with TOUCH_SCREEN." #endif #ifndef XPT2046_X_OFFSET - #error "XPT2046_X_OFFSET must be defined with TOUCH_BUTTONS." + #error "XPT2046_X_OFFSET must be defined with TOUCH_SCREEN." #endif #ifndef XPT2046_Y_OFFSET - #error "XPT2046_Y_OFFSET must be defined with TOUCH_BUTTONS." + #error "XPT2046_Y_OFFSET must be defined with TOUCH_SCREEN." #endif #endif diff --git a/Marlin/src/lcd/dogm/u8g_dev_tft_320x240_upscale_from_128x64.cpp b/Marlin/src/lcd/dogm/u8g_dev_tft_320x240_upscale_from_128x64.cpp index 33cd5ecca..d081541c5 100644 --- a/Marlin/src/lcd/dogm/u8g_dev_tft_320x240_upscale_from_128x64.cpp +++ b/Marlin/src/lcd/dogm/u8g_dev_tft_320x240_upscale_from_128x64.cpp @@ -403,7 +403,7 @@ static const uint16_t st9677_init[] = { ESC_END }; -#if ENABLED(TOUCH_BUTTONS) +#if HAS_TOUCH_XPT2046 static const uint8_t buttonD[] = { B01111111,B11111111,B11111111,B11111110, @@ -595,7 +595,7 @@ static const uint16_t st9677_init[] = { } } -#endif // TOUCH_BUTTONS +#endif // HAS_TOUCH_XPT2046 // Used to fill RGB565 (16bits) background inline void memset2(const void *ptr, uint16_t fill, size_t cnt) { @@ -670,7 +670,7 @@ uint8_t u8g_dev_tft_320x240_upscale_from_128x64_fn(u8g_t *u8g, u8g_dev_t *dev, u #endif // Bottom buttons - #if ENABLED(TOUCH_BUTTONS) + #if HAS_TOUCH_XPT2046 setWindow(u8g, dev, BUTTOND_X_LO, BUTTON_Y_LO, BUTTOND_X_HI, BUTTON_Y_HI); drawImage(buttonD, u8g, dev, 32, 20, TFT_BTCANCEL_COLOR); @@ -682,7 +682,7 @@ uint8_t u8g_dev_tft_320x240_upscale_from_128x64_fn(u8g_t *u8g, u8g_dev_t *dev, u setWindow(u8g, dev, BUTTONC_X_LO, BUTTON_Y_LO, BUTTONC_X_HI, BUTTON_Y_HI); drawImage(buttonC, u8g, dev, 32, 20, TFT_BTOKMENU_COLOR); - #endif // TOUCH_BUTTONS + #endif // HAS_TOUCH_XPT2046 return 0; diff --git a/Marlin/src/lcd/extui/lib/mks_ui/tft_fsmc.cpp b/Marlin/src/lcd/extui/lib/mks_ui/tft_fsmc.cpp index e8ac3f351..a039cbe0c 100644 --- a/Marlin/src/lcd/extui/lib/mks_ui/tft_fsmc.cpp +++ b/Marlin/src/lcd/extui/lib/mks_ui/tft_fsmc.cpp @@ -24,104 +24,104 @@ #if HAS_TFT_LVGL_UI - #if defined(ARDUINO_ARCH_STM32F1) && PIN_EXISTS(FSMC_CS) // FSMC on 100/144 pins SoCs +#if defined(ARDUINO_ARCH_STM32F1) && PIN_EXISTS(FSMC_CS) // FSMC on 100/144 pins SoCs - #include - #include - #include - #include + #include + #include + #include + #include -/* Timing configuration */ - #define FSMC_ADDRESS_SETUP_TIME 15// AddressSetupTime - #define FSMC_DATA_SETUP_TIME 15// DataSetupTime + /* Timing configuration */ + #define FSMC_ADDRESS_SETUP_TIME 15// AddressSetupTime + #define FSMC_DATA_SETUP_TIME 15// DataSetupTime - void LCD_IO_Init(uint8_t cs, uint8_t rs); - void LCD_IO_WriteData(uint16_t RegValue); - void LCD_IO_WriteReg(uint16_t Reg); - uint16_t LCD_IO_ReadData(uint16_t RegValue); - uint32_t LCD_IO_ReadData(uint16_t RegValue, uint8_t ReadSize); - uint16_t ILI9488_ReadRAM(); - #ifdef LCD_USE_DMA_FSMC - void LCD_IO_WriteMultiple(uint16_t data, uint32_t count); - void LCD_IO_WriteSequence(uint16_t *data, uint16_t length); - #endif + void LCD_IO_Init(uint8_t cs, uint8_t rs); + void LCD_IO_WriteData(uint16_t RegValue); + void LCD_IO_WriteReg(uint16_t Reg); + uint16_t LCD_IO_ReadData(uint16_t RegValue); + uint32_t LCD_IO_ReadData(uint16_t RegValue, uint8_t ReadSize); + uint16_t ILI9488_ReadRAM(); + #ifdef LCD_USE_DMA_FSMC + void LCD_IO_WriteMultiple(uint16_t data, uint32_t count); + void LCD_IO_WriteSequence(uint16_t *data, uint16_t length); + #endif -/** - * FSMC LCD IO - */ - #define __ASM __asm - #define __STATIC_INLINE static inline + /** + * FSMC LCD IO + */ + #define __ASM __asm + #define __STATIC_INLINE static inline - __attribute__((always_inline)) __STATIC_INLINE void __DSB() {__ASM volatile ("dsb 0xF" ::: "memory");} + __attribute__((always_inline)) __STATIC_INLINE void __DSB() {__ASM volatile ("dsb 0xF" ::: "memory");} - #define FSMC_CS_NE1 PD7 + #define FSMC_CS_NE1 PD7 - #if ENABLED(STM32_XL_DENSITY) - #define FSMC_CS_NE2 PG9 - #define FSMC_CS_NE3 PG10 - #define FSMC_CS_NE4 PG12 + #if ENABLED(STM32_XL_DENSITY) + #define FSMC_CS_NE2 PG9 + #define FSMC_CS_NE3 PG10 + #define FSMC_CS_NE4 PG12 - #define FSMC_RS_A0 PF0 - #define FSMC_RS_A1 PF1 - #define FSMC_RS_A2 PF2 - #define FSMC_RS_A3 PF3 - #define FSMC_RS_A4 PF4 - #define FSMC_RS_A5 PF5 - #define FSMC_RS_A6 PF12 - #define FSMC_RS_A7 PF13 - #define FSMC_RS_A8 PF14 - #define FSMC_RS_A9 PF15 - #define FSMC_RS_A10 PG0 - #define FSMC_RS_A11 PG1 - #define FSMC_RS_A12 PG2 - #define FSMC_RS_A13 PG3 - #define FSMC_RS_A14 PG4 - #define FSMC_RS_A15 PG5 - #endif + #define FSMC_RS_A0 PF0 + #define FSMC_RS_A1 PF1 + #define FSMC_RS_A2 PF2 + #define FSMC_RS_A3 PF3 + #define FSMC_RS_A4 PF4 + #define FSMC_RS_A5 PF5 + #define FSMC_RS_A6 PF12 + #define FSMC_RS_A7 PF13 + #define FSMC_RS_A8 PF14 + #define FSMC_RS_A9 PF15 + #define FSMC_RS_A10 PG0 + #define FSMC_RS_A11 PG1 + #define FSMC_RS_A12 PG2 + #define FSMC_RS_A13 PG3 + #define FSMC_RS_A14 PG4 + #define FSMC_RS_A15 PG5 + #endif - #define FSMC_RS_A16 PD11 - #define FSMC_RS_A17 PD12 - #define FSMC_RS_A18 PD13 - #define FSMC_RS_A19 PE3 - #define FSMC_RS_A20 PE4 - #define FSMC_RS_A21 PE5 - #define FSMC_RS_A22 PE6 - #define FSMC_RS_A23 PE2 + #define FSMC_RS_A16 PD11 + #define FSMC_RS_A17 PD12 + #define FSMC_RS_A18 PD13 + #define FSMC_RS_A19 PE3 + #define FSMC_RS_A20 PE4 + #define FSMC_RS_A21 PE5 + #define FSMC_RS_A22 PE6 + #define FSMC_RS_A23 PE2 - #if ENABLED(STM32_XL_DENSITY) - #define FSMC_RS_A24 PG13 - #define FSMC_RS_A25 PG14 - #endif + #if ENABLED(STM32_XL_DENSITY) + #define FSMC_RS_A24 PG13 + #define FSMC_RS_A25 PG14 + #endif - static uint8_t fsmcInit = 0; + static uint8_t fsmcInit = 0; - typedef struct { - __IO uint16_t REG; - __IO uint16_t RAM; - } LCD_CONTROLLER_TypeDef; + typedef struct { + __IO uint16_t REG; + __IO uint16_t RAM; + } LCD_CONTROLLER_TypeDef; - LCD_CONTROLLER_TypeDef *LCD; + LCD_CONTROLLER_TypeDef *LCD; - void LCD_IO_Init(uint8_t cs, uint8_t rs) { - uint32_t controllerAddress; + void LCD_IO_Init(uint8_t cs, uint8_t rs) { + uint32_t controllerAddress; - if (fsmcInit) return; - fsmcInit = 1; + if (fsmcInit) return; + fsmcInit = 1; - switch (cs) { - case FSMC_CS_NE1: controllerAddress = (uint32_t)FSMC_NOR_PSRAM_REGION1; break; - #if ENABLED(STM32_XL_DENSITY) + switch (cs) { + case FSMC_CS_NE1: controllerAddress = (uint32_t)FSMC_NOR_PSRAM_REGION1; break; + #if ENABLED(STM32_XL_DENSITY) case FSMC_CS_NE2: controllerAddress = (uint32_t)FSMC_NOR_PSRAM_REGION2; break; case FSMC_CS_NE3: controllerAddress = (uint32_t)FSMC_NOR_PSRAM_REGION3; break; case FSMC_CS_NE4: controllerAddress = (uint32_t)FSMC_NOR_PSRAM_REGION4; break; - #endif - default: return; - } + #endif + default: return; + } - #define _ORADDR(N) controllerAddress |= (_BV32(N) - 2) + #define _ORADDR(N) controllerAddress |= (_BV32(N) - 2) - switch (rs) { - #if ENABLED(STM32_XL_DENSITY) + switch (rs) { + #if ENABLED(STM32_XL_DENSITY) case FSMC_RS_A0: _ORADDR( 1); break; case FSMC_RS_A1: _ORADDR( 2); break; case FSMC_RS_A2: _ORADDR( 3); break; @@ -138,99 +138,99 @@ case FSMC_RS_A13: _ORADDR(14); break; case FSMC_RS_A14: _ORADDR(15); break; case FSMC_RS_A15: _ORADDR(16); break; - #endif - case FSMC_RS_A16: _ORADDR(17); break; - case FSMC_RS_A17: _ORADDR(18); break; - case FSMC_RS_A18: _ORADDR(19); break; - case FSMC_RS_A19: _ORADDR(20); break; - case FSMC_RS_A20: _ORADDR(21); break; - case FSMC_RS_A21: _ORADDR(22); break; - case FSMC_RS_A22: _ORADDR(23); break; - case FSMC_RS_A23: _ORADDR(24); break; - #if ENABLED(STM32_XL_DENSITY) + #endif + case FSMC_RS_A16: _ORADDR(17); break; + case FSMC_RS_A17: _ORADDR(18); break; + case FSMC_RS_A18: _ORADDR(19); break; + case FSMC_RS_A19: _ORADDR(20); break; + case FSMC_RS_A20: _ORADDR(21); break; + case FSMC_RS_A21: _ORADDR(22); break; + case FSMC_RS_A22: _ORADDR(23); break; + case FSMC_RS_A23: _ORADDR(24); break; + #if ENABLED(STM32_XL_DENSITY) case FSMC_RS_A24: _ORADDR(25); break; case FSMC_RS_A25: _ORADDR(26); break; - #endif - default: return; - } - - rcc_clk_enable(RCC_FSMC); - - gpio_set_mode(GPIOD, 14, GPIO_AF_OUTPUT_PP); // FSMC_D00 - gpio_set_mode(GPIOD, 15, GPIO_AF_OUTPUT_PP); // FSMC_D01 - gpio_set_mode(GPIOD, 0, GPIO_AF_OUTPUT_PP);// FSMC_D02 - gpio_set_mode(GPIOD, 1, GPIO_AF_OUTPUT_PP);// FSMC_D03 - gpio_set_mode(GPIOE, 7, GPIO_AF_OUTPUT_PP);// FSMC_D04 - gpio_set_mode(GPIOE, 8, GPIO_AF_OUTPUT_PP);// FSMC_D05 - gpio_set_mode(GPIOE, 9, GPIO_AF_OUTPUT_PP);// FSMC_D06 - gpio_set_mode(GPIOE, 10, GPIO_AF_OUTPUT_PP); // FSMC_D07 - gpio_set_mode(GPIOE, 11, GPIO_AF_OUTPUT_PP); // FSMC_D08 - gpio_set_mode(GPIOE, 12, GPIO_AF_OUTPUT_PP); // FSMC_D09 - gpio_set_mode(GPIOE, 13, GPIO_AF_OUTPUT_PP); // FSMC_D10 - gpio_set_mode(GPIOE, 14, GPIO_AF_OUTPUT_PP); // FSMC_D11 - gpio_set_mode(GPIOE, 15, GPIO_AF_OUTPUT_PP); // FSMC_D12 - gpio_set_mode(GPIOD, 8, GPIO_AF_OUTPUT_PP);// FSMC_D13 - gpio_set_mode(GPIOD, 9, GPIO_AF_OUTPUT_PP);// FSMC_D14 - gpio_set_mode(GPIOD, 10, GPIO_AF_OUTPUT_PP); // FSMC_D15 - - gpio_set_mode(GPIOD, 4, GPIO_AF_OUTPUT_PP);// FSMC_NOE - gpio_set_mode(GPIOD, 5, GPIO_AF_OUTPUT_PP);// FSMC_NWE - - gpio_set_mode(PIN_MAP[cs].gpio_device, PIN_MAP[cs].gpio_bit, GPIO_AF_OUTPUT_PP); //FSMC_CS_NEx - gpio_set_mode(PIN_MAP[rs].gpio_device, PIN_MAP[rs].gpio_bit, GPIO_AF_OUTPUT_PP); //FSMC_RS_Ax - - #if ENABLED(STM32_XL_DENSITY) - FSMC_NOR_PSRAM4_BASE->BCR = FSMC_BCR_WREN | FSMC_BCR_MTYP_SRAM | FSMC_BCR_MWID_16BITS | FSMC_BCR_MBKEN; - FSMC_NOR_PSRAM4_BASE->BTR = (FSMC_DATA_SETUP_TIME << 8) | FSMC_ADDRESS_SETUP_TIME; - #else // PSRAM1 for STM32F103V (high density) - FSMC_NOR_PSRAM1_BASE->BCR = FSMC_BCR_WREN | FSMC_BCR_MTYP_SRAM | FSMC_BCR_MWID_16BITS | FSMC_BCR_MBKEN; - FSMC_NOR_PSRAM1_BASE->BTR = (FSMC_DATA_SETUP_TIME << 8) | FSMC_ADDRESS_SETUP_TIME; #endif - - afio_remap(AFIO_REMAP_FSMC_NADV); - - LCD = (LCD_CONTROLLER_TypeDef*)controllerAddress; + default: return; } - void LCD_IO_WriteData(uint16_t RegValue) { - LCD->RAM = RegValue; - __DSB(); + rcc_clk_enable(RCC_FSMC); + + gpio_set_mode(GPIOD, 14, GPIO_AF_OUTPUT_PP); // FSMC_D00 + gpio_set_mode(GPIOD, 15, GPIO_AF_OUTPUT_PP); // FSMC_D01 + gpio_set_mode(GPIOD, 0, GPIO_AF_OUTPUT_PP);// FSMC_D02 + gpio_set_mode(GPIOD, 1, GPIO_AF_OUTPUT_PP);// FSMC_D03 + gpio_set_mode(GPIOE, 7, GPIO_AF_OUTPUT_PP);// FSMC_D04 + gpio_set_mode(GPIOE, 8, GPIO_AF_OUTPUT_PP);// FSMC_D05 + gpio_set_mode(GPIOE, 9, GPIO_AF_OUTPUT_PP);// FSMC_D06 + gpio_set_mode(GPIOE, 10, GPIO_AF_OUTPUT_PP); // FSMC_D07 + gpio_set_mode(GPIOE, 11, GPIO_AF_OUTPUT_PP); // FSMC_D08 + gpio_set_mode(GPIOE, 12, GPIO_AF_OUTPUT_PP); // FSMC_D09 + gpio_set_mode(GPIOE, 13, GPIO_AF_OUTPUT_PP); // FSMC_D10 + gpio_set_mode(GPIOE, 14, GPIO_AF_OUTPUT_PP); // FSMC_D11 + gpio_set_mode(GPIOE, 15, GPIO_AF_OUTPUT_PP); // FSMC_D12 + gpio_set_mode(GPIOD, 8, GPIO_AF_OUTPUT_PP);// FSMC_D13 + gpio_set_mode(GPIOD, 9, GPIO_AF_OUTPUT_PP);// FSMC_D14 + gpio_set_mode(GPIOD, 10, GPIO_AF_OUTPUT_PP); // FSMC_D15 + + gpio_set_mode(GPIOD, 4, GPIO_AF_OUTPUT_PP);// FSMC_NOE + gpio_set_mode(GPIOD, 5, GPIO_AF_OUTPUT_PP);// FSMC_NWE + + gpio_set_mode(PIN_MAP[cs].gpio_device, PIN_MAP[cs].gpio_bit, GPIO_AF_OUTPUT_PP); //FSMC_CS_NEx + gpio_set_mode(PIN_MAP[rs].gpio_device, PIN_MAP[rs].gpio_bit, GPIO_AF_OUTPUT_PP); //FSMC_RS_Ax + + #if ENABLED(STM32_XL_DENSITY) + FSMC_NOR_PSRAM4_BASE->BCR = FSMC_BCR_WREN | FSMC_BCR_MTYP_SRAM | FSMC_BCR_MWID_16BITS | FSMC_BCR_MBKEN; + FSMC_NOR_PSRAM4_BASE->BTR = (FSMC_DATA_SETUP_TIME << 8) | FSMC_ADDRESS_SETUP_TIME; + #else // PSRAM1 for STM32F103V (high density) + FSMC_NOR_PSRAM1_BASE->BCR = FSMC_BCR_WREN | FSMC_BCR_MTYP_SRAM | FSMC_BCR_MWID_16BITS | FSMC_BCR_MBKEN; + FSMC_NOR_PSRAM1_BASE->BTR = (FSMC_DATA_SETUP_TIME << 8) | FSMC_ADDRESS_SETUP_TIME; + #endif + + afio_remap(AFIO_REMAP_FSMC_NADV); + + LCD = (LCD_CONTROLLER_TypeDef*)controllerAddress; + } + + void LCD_IO_WriteData(uint16_t RegValue) { + LCD->RAM = RegValue; + __DSB(); + } + + void LCD_IO_WriteReg(uint16_t Reg) { + LCD->REG = Reg; + __DSB(); + } + + uint16_t LCD_IO_ReadData(uint16_t RegValue) { + LCD->REG = RegValue; + __DSB(); + + return LCD->RAM; + } + + uint16_t ILI9488_ReadRAM() { + uint16_t data; + data = LCD->RAM; + return data; + } + + uint32_t LCD_IO_ReadData(uint16_t RegValue, uint8_t ReadSize) { + volatile uint32_t data; + LCD->REG = RegValue; + __DSB(); + + data = LCD->RAM; // dummy read + data = LCD->RAM & 0x00FF; + + while (--ReadSize) { + data <<= 8; + data |= (LCD->RAM & 0x00FF); } + return uint32_t(data); + } - void LCD_IO_WriteReg(uint16_t Reg) { - LCD->REG = Reg; - __DSB(); - } - - uint16_t LCD_IO_ReadData(uint16_t RegValue) { - LCD->REG = RegValue; - __DSB(); - - return LCD->RAM; - } - - uint16_t ILI9488_ReadRAM() { - uint16_t data; - data = LCD->RAM; - return data; - } - - uint32_t LCD_IO_ReadData(uint16_t RegValue, uint8_t ReadSize) { - volatile uint32_t data; - LCD->REG = RegValue; - __DSB(); - - data = LCD->RAM; // dummy read - data = LCD->RAM & 0x00FF; - - while (--ReadSize) { - data <<= 8; - data |= (LCD->RAM & 0x00FF); - } - return uint32_t(data); - } - - #ifdef LCD_USE_DMA_FSMC + #ifdef LCD_USE_DMA_FSMC void LCD_IO_WriteMultiple(uint16_t color, uint32_t count) { while (count > 0) { @@ -268,6 +268,7 @@ dma_disable(FSMC_DMA_DEV, FSMC_DMA_CHANNEL); } - #endif // LCD_USE_DMA_FSMC - #endif // ARDUINO_ARCH_STM32F1 && FSMC_CS_PIN + #endif // LCD_USE_DMA_FSMC + +#endif // ARDUINO_ARCH_STM32F1 && FSMC_CS_PIN #endif // HAS_TFT_LVGL_UI diff --git a/Marlin/src/lcd/extui/lib/mks_ui/tft_lvgl_configuration.cpp b/Marlin/src/lcd/extui/lib/mks_ui/tft_lvgl_configuration.cpp index f24f08e98..96eedd329 100644 --- a/Marlin/src/lcd/extui/lib/mks_ui/tft_lvgl_configuration.cpp +++ b/Marlin/src/lcd/extui/lib/mks_ui/tft_lvgl_configuration.cpp @@ -429,7 +429,7 @@ void tft_lvgl_init() { //spi_flash_read_test(); - TERN_(TOUCH_BUTTONS, touch.init()); + TERN_(HAS_TOUCH_XPT2046, touch.init()); lv_init(); @@ -660,7 +660,7 @@ void XPT2046_Rd_Addata(uint16_t *X_Addata, uint16_t *Y_Addata) { SPI_TFT.spi_read_write_byte(CHY); x_addata[i] = SPI2_ReadWrite2Bytes(); WRITE(TOUCH_CS_PIN, HIGH); - #else // #if ENABLED(TOUCH_BUTTONS) + #else // #if HAS_TOUCH_XPT2046 OUT_WRITE(TOUCH_CS_PIN, LOW); W25QXX.spi_flash_read_write_byte(CHX); y_addata[i] = SPI2_ReadWrite2Bytes(); @@ -729,7 +729,7 @@ bool my_touchpad_read(lv_indev_drv_t * indev_driver, lv_indev_data_t * data) { /*Save the pressed coordinates and the state*/ if (diffTime > 10) { //use marlin touch code if enabled - #if ENABLED(TOUCH_BUTTONS) + #if HAS_TOUCH_XPT2046 touch.getTouchPoint(reinterpret_cast(last_x), reinterpret_cast(last_y)); #else XPT2046_Rd_Addata((uint16_t *)&last_x, (uint16_t *)&last_y); diff --git a/Marlin/src/lcd/menu/menu.cpp b/Marlin/src/lcd/menu/menu.cpp index 2a9e4766d..373051fd4 100644 --- a/Marlin/src/lcd/menu/menu.cpp +++ b/Marlin/src/lcd/menu/menu.cpp @@ -86,7 +86,7 @@ void MarlinUI::save_previous_screen() { void MarlinUI::_goto_previous_screen(TERN_(TURBO_BACK_MENU_ITEM, const bool is_back/*=false*/)) { TERN(TURBO_BACK_MENU_ITEM,,constexpr bool is_back = false); - TERN_(TOUCH_BUTTONS, on_edit_screen = false); + TERN_(HAS_TOUCH_XPT2046, on_edit_screen = false); if (screen_history_depth > 0) { menuPosition &sh = screen_history[--screen_history_depth]; goto_screen(sh.menu_function, @@ -133,7 +133,7 @@ void MenuItem_gcode::action(PGM_P const, PGM_P const pgcode) { queue.inject_P(pg * MenuItem_int3::draw(encoderLine == _thisItemNr, _lcdLineNr, plabel, &feedrate_percentage, 10, 999) */ void MenuEditItemBase::edit_screen(strfunc_t strfunc, loadfunc_t loadfunc) { - TERN_(TOUCH_BUTTONS, ui.repeat_delay = BUTTON_DELAY_EDIT); + TERN_(HAS_TOUCH_XPT2046, ui.repeat_delay = BUTTON_DELAY_EDIT); if (int32_t(ui.encoderPosition) < 0) ui.encoderPosition = 0; if (int32_t(ui.encoderPosition) > maxEditValue) ui.encoderPosition = maxEditValue; if (ui.should_draw()) @@ -155,7 +155,7 @@ void MenuEditItemBase::goto_edit_screen( const screenFunc_t cb, // Callback after edit const bool le // Flag to call cb() during editing ) { - TERN_(TOUCH_BUTTONS, ui.on_edit_screen = true); + TERN_(HAS_TOUCH_XPT2046, ui.on_edit_screen = true); ui.screen_changed = true; ui.save_previous_screen(); ui.refresh(); @@ -214,7 +214,7 @@ bool printer_busy() { void MarlinUI::goto_screen(screenFunc_t screen, const uint16_t encoder/*=0*/, const uint8_t top/*=0*/, const uint8_t items/*=0*/) { if (currentScreen != screen) { - TERN_(TOUCH_BUTTONS, repeat_delay = BUTTON_DELAY_MENU); + TERN_(HAS_TOUCH_XPT2046, repeat_delay = BUTTON_DELAY_MENU); TERN_(LCD_SET_PROGRESS_MANUALLY, progress_reset()); diff --git a/Marlin/src/lcd/menu/menu.h b/Marlin/src/lcd/menu/menu.h index e8edea76d..d298376ce 100644 --- a/Marlin/src/lcd/menu/menu.h +++ b/Marlin/src/lcd/menu/menu.h @@ -652,3 +652,7 @@ void _lcd_draw_homing(); #if ENABLED(POWER_LOSS_RECOVERY) void menu_job_recovery(); #endif + +#if ENABLED(TOUCH_SCREEN_CALIBRATION) + void touch_screen_calibration(); +#endif diff --git a/Marlin/src/lcd/menu/menu_filament.cpp b/Marlin/src/lcd/menu/menu_filament.cpp index 869935b59..b430e0448 100644 --- a/Marlin/src/lcd/menu/menu_filament.cpp +++ b/Marlin/src/lcd/menu/menu_filament.cpp @@ -220,7 +220,7 @@ static PGM_P pause_header() { #define HOTEND_STATUS_ITEM() do { \ if (_menuLineNr == _thisItemNr) { \ if (ui.should_draw()) { \ - MenuItem_static::draw(_lcdLineNr, GET_TEXT(MSG_FILAMENT_CHANGE_NOZZLE), SS_INVERT); \ + TERN(HAS_GRAPHICAL_TFT,, MenuItem_static::draw(_lcdLineNr, GET_TEXT(MSG_FILAMENT_CHANGE_NOZZLE), SS_INVERT)); \ ui.draw_hotend_status(_lcdLineNr, hotend_status_extruder); \ } \ if (_skipStatic && encoderLine <= _thisItemNr) { \ diff --git a/Marlin/src/lcd/menu/menu_motion.cpp b/Marlin/src/lcd/menu/menu_motion.cpp index 9c49a3cdb..5887bf9d4 100644 --- a/Marlin/src/lcd/menu/menu_motion.cpp +++ b/Marlin/src/lcd/menu/menu_motion.cpp @@ -195,16 +195,21 @@ void _menu_move_distance(const AxisEnum axis, const screenFunc_t func, const int SUBMENU(MSG_MOVE_1MM, []{ _goto_manual_move( 1); }); SUBMENU(MSG_MOVE_01MM, []{ _goto_manual_move( 0.1f); }); if (axis == Z_AXIS && (SHORT_MANUAL_Z_MOVE) > 0.0f && (SHORT_MANUAL_Z_MOVE) < 0.1f) { - extern const char NUL_STR[]; - SUBMENU_P(NUL_STR, []{ _goto_manual_move(float(SHORT_MANUAL_Z_MOVE)); }); - MENU_ITEM_ADDON_START(0 + ENABLED(HAS_CHARACTER_LCD)); - char tmp[20], numstr[10]; - // Determine digits needed right of decimal - const uint8_t digs = !UNEAR_ZERO((SHORT_MANUAL_Z_MOVE) * 1000 - int((SHORT_MANUAL_Z_MOVE) * 1000)) ? 4 : - !UNEAR_ZERO((SHORT_MANUAL_Z_MOVE) * 100 - int((SHORT_MANUAL_Z_MOVE) * 100)) ? 3 : 2; - sprintf_P(tmp, GET_TEXT(MSG_MOVE_Z_DIST), dtostrf(SHORT_MANUAL_Z_MOVE, 1, digs, numstr)); + char tmp[20], numstr[10]; + // Determine digits needed right of decimal + const uint8_t digs = !UNEAR_ZERO((SHORT_MANUAL_Z_MOVE) * 1000 - int((SHORT_MANUAL_Z_MOVE) * 1000)) ? 4 : + !UNEAR_ZERO((SHORT_MANUAL_Z_MOVE) * 100 - int((SHORT_MANUAL_Z_MOVE) * 100)) ? 3 : 2; + sprintf_P(tmp, GET_TEXT(MSG_MOVE_Z_DIST), dtostrf(SHORT_MANUAL_Z_MOVE, 1, digs, numstr)); + + #if DISABLED(HAS_GRAPHICAL_TFT) + extern const char NUL_STR[]; + SUBMENU_P(NUL_STR, []{ _goto_manual_move(float(SHORT_MANUAL_Z_MOVE)); }); + MENU_ITEM_ADDON_START(0 + ENABLED(HAS_CHARACTER_LCD)); lcd_put_u8str(tmp); - MENU_ITEM_ADDON_END(); + MENU_ITEM_ADDON_END(); + #else + SUBMENU_P(tmp, []{ _goto_manual_move(float(SHORT_MANUAL_Z_MOVE)); }); + #endif } } END_MENU(); diff --git a/Marlin/src/lcd/menu/menu_touch_screen.cpp b/Marlin/src/lcd/menu/menu_touch_screen.cpp new file mode 100644 index 000000000..1f315f181 --- /dev/null +++ b/Marlin/src/lcd/menu/menu_touch_screen.cpp @@ -0,0 +1,34 @@ +/** + * Marlin 3D Printer Firmware + * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin] + * + * Based on Sprinter and grbl. + * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + */ + +#include "../../inc/MarlinConfigPre.h" + +#if ENABLED(TOUCH_SCREEN_CALIBRATION) + +#include "menu.h" +#include "../ultralcd.h" + +void touch_screen_calibration() { + ui.touch_calibration(); +} + +#endif // TOUCH_SCREEN_CALIBRATION diff --git a/Marlin/src/lcd/menu/menu_ubl.cpp b/Marlin/src/lcd/menu/menu_ubl.cpp index 705b19869..8a5095c88 100644 --- a/Marlin/src/lcd/menu/menu_ubl.cpp +++ b/Marlin/src/lcd/menu/menu_ubl.cpp @@ -68,6 +68,7 @@ static void _lcd_mesh_fine_tune(PGM_P const msg) { const float rounded_f = rounded_mesh_value(); MenuEditItemBase::draw_edit_screen(msg, ftostr43sign(rounded_f)); TERN_(MESH_EDIT_GFX_OVERLAY, _lcd_zoffset_overlay_gfx(rounded_f)); + TERN_(HAS_GRAPHICAL_TFT, ui.refresh(LCDVIEW_NONE)); } } @@ -77,6 +78,7 @@ static void _lcd_mesh_fine_tune(PGM_P const msg) { float lcd_mesh_edit() { return rounded_mesh_value(); } void lcd_mesh_edit_setup(const float &initial) { + TERN_(HAS_GRAPHICAL_TFT, ui.clear_lcd()); mesh_edit_accumulator = initial; ui.goto_screen([]{ _lcd_mesh_fine_tune(GET_TEXT(MSG_MESH_EDIT_Z)); }); } @@ -456,8 +458,8 @@ void ubl_map_screen() { do { // Now, keep the encoder position within range - if (int32_t(ui.encoderPosition) < 0) ui.encoderPosition = GRID_MAX_POINTS - 1; - if (int32_t(ui.encoderPosition) > GRID_MAX_POINTS - 1) ui.encoderPosition = 0; + if (int32_t(ui.encoderPosition) < 0) ui.encoderPosition = GRID_MAX_POINTS + TERN(TOUCH_SCREEN, ui.encoderPosition, -1); + if (int32_t(ui.encoderPosition) > GRID_MAX_POINTS - 1) ui.encoderPosition = TERN(TOUCH_SCREEN, ui.encoderPosition - GRID_MAX_POINTS, 0); // Draw the grid point based on the encoder x = ui.encoderPosition % (GRID_MAX_POINTS_X); diff --git a/Marlin/src/lcd/tft/bitmaps/back.bmp b/Marlin/src/lcd/tft/bitmaps/back.bmp new file mode 100644 index 0000000000000000000000000000000000000000..5ad1f82542fb70779ed91bce77de3ee29299cce5 GIT binary patch literal 3126 zcmeH|y-s356vx?qA7INZ_X+HG`+WlW5Ct`A0s#aBloe?#OlY96FciE5l<)!?2o{C} zY!HE{@uL7E`&-XuGF&bQ?3!$`H{oXPoio4lKmR#*`1XC_qviEl;Qoc*=ik2%mQReh znEz^(pS-YGe*C}89Eiu`dwY9kGbZl{HhDY#mBeQpPwHe zABRFAJ=v@Cn}D-Zte!W-6P_K0ZFavIlo}cZhd59H#N2ywmAOF!#&LOP!C&NR39L?4!@; zgM4*$rGgopoSaZE=1_%Z$*&=vaJAcQJ)ZqV&&I|EK)>I=v$Jz}c$mxOPESwuFd4I7 zh*?@%8r?6*2-B6z5(+PsN|j0lqnLeuejdfDH|ca5{_5(gK|FBuw^}U~Ime(}F5?WH zNh9gzi*mK0bC6l`@bG|#Z0qLcrY>HT8$6#Q1>WKe-xM99#Pc$lO!5WI0o0eU+9=8f_+oAA(y0J`OVFZ zGD^<3wY4>lENYbYo>H@c&!ehBrI7QP#uh8)CaYYM0>QVpw^T9t{8y`H8b}KM7W@5v zv)RP?asMwfVfA3O7wG5I`s;jhVK^Jgc}UN^2VYV^Mn8Ynf4;N2KWdCo9E0x!S6Tke F!B0sxQ3?P6 literal 0 HcmV?d00001 diff --git a/Marlin/src/lcd/tft/bitmaps/bed.bmp b/Marlin/src/lcd/tft/bitmaps/bed.bmp new file mode 100644 index 0000000000000000000000000000000000000000..842174f82081429e5f914f27cfad78a722f067fd GIT binary patch literal 12342 zcmeIyv1)@*7zJSa7JY<{oiexGi%O9W1{_sfbgBqyT0trfE-r#Tfx4LBL-iR7_7FQ{ z@di3w$~j;#xmR-h`1R>|cdwkY!{;52hu`Byxy2cR^~e2stUoBqfuR5eC_n)U{1<`u zb3WwDT1?E0JxP*;VfZFr&vMgQKUnI-xIgaCC zuDANfaa>hZUDtV@f6A1yEIrRN48wI@L4OR`@pxR8@Zt#-yno<748xa{8OJe-B0+f! z6<(g0uA(UZ_U;j1C|<=s3N~O#F!q;^18(8+E6*uF0SZun0u-PC1t>rP3Q&Lo6rcbF bC_n)UP=Epypa2CZKmiI+fC3btfaC%{Le$WO>+uI4()eXvB0Wz?~by^JM}HHo6J3?eFa1Qir@KvXQ)K(U}B zwi^+31W`1`3ww*2C$6wK=y*JEWOE4n0}tE1zHje$z3W}&oF9IC^{vzWdd25A{C)S| z-&amwbH&2`{cHJ?8%|EYn#*LsWWZ#=WWZ$L|H8m;_v?4ZTLR2F&Fsm_%1TX5{l)PX zsKE9t{`mO#*N(S*eSHCykdOewPq~08J3BidAi&kt^(O~gKi{wL@Njhf6#mT2%#xCl z^78V$yu3dgX%!U}MMXtQ?(hvN1b#*x)cpz0*SA!oFS=Uc*Z?9wGZ*OlWdC5>K^#}etIy(Ne zdF}7-|8>8fI)U-v;DBvk+`xS+)(1yEe*Bo0mSzP!qM~@Bu7ZLBTWXJN;|Pmu`Bx9h z9bN}xRI|duLN&<+cXD%cGcq#xd~AKNnWtHiy=6K8hBrRD=!38k5)$I=?d{{^6B!x# z_y}61>3Dg01qB7YfB)X{$sCW1i}UmI!|LzvpO~0vX?^@C?y$iUr#;uO$^x^So13Sn zCm8U8uFXw(EEn(Iy~E`0?v9nt!)8pfflqwr2*<@57#K((^te6PY&pw|U@SH^mQF`Q zm(Ca(8mjQp)6@BvR>&Q2vH^r}&c7@!2u*%|K3$2C04rfiNlCF%SZqOM;~oG254zUY z)^2ZaKY#w5l#~Pp%gF@qMn*=iudk1fkHJab1TfFPhyQPAT3cJs&dx3_F33tk@aD}M z6oS=840diK`lF+xT4q~XTF|h-;}fY{Hj#;m2}tIqz~d}&IXpa+;}j?o!BTs6Vte*D zS?^{%$ImNA@6m+Fm`HmX);ElLnw74XL3CvA(1i+6T*1jEwO5?>amlcFDy z$K>RsSWiw)*bjafmh1q3XJ@D4$2$tFk;yCa-rCv{49J7G!@ppFe>RMdkBgNG1FPUi zV9CkJTtC3y(9i&W3aqBjv)O0o1{h`mTM$wJ5wNtd=;&x9L?T#D;N$`bagY$;9pRu@ zX?9R!@s9e5gCveI65>T;V`Hj;zP>)nI~WiW@W9WYetCH*8`js?>0IEaL*XgW`S9Tb zaS0`80lxt*0FwGi*%S<P?V-N`l3Blmtpjt^5zVx9ndK@NF0QXN%Ph|sI0y81N3&{~X z6>iIMU{qFCY8fXM+<|1~NiJ}ZYNanKn5AWKMq1N zv9|1DWTl8)<^(>Qnwk_LWft<;z>Fk0P6#v$_zFXSuu3Dag+TlFki`rJieY(q8S>G9 z;3r4O0@71lAQq%22+3Ay#B9?kf;dW!7>S<{K*Gkxh9acS@I?mwpaHRd`t(VxlH=f4 zh2tQi(g0Cr5g0S7G5P^HFM`a)#YM$W{nR0!6d+HjEn+21=neeh9mm06RaM20OtPW5 zxta7)@9dX{^(O!x04#=o0kFBbNegDq5qW?X{OaA_-X6uD4MH!Ud}Uw|(ndx)(87qC zY_R_J7qOy$hWwkG8^J#`Gz9rz769;ET3V_-f_}{itwTQEF=OixMRa%?bD&}1rG{&h zB?0*gpy~x4KR9S;aFB@<{O|@sNG5QW^>c1+j@G8WzX-k7AHuu%nMj!DlYWYHfi0(i zS5Z-+-W?qs@fA{)&o+KA(ZuIC;*q{!{iQEx6@>B~kWU641fbD}VGypYtbmOSWnh+~ zDgdN?>x>Hd5|kH&_w1v<0FCg*oB(*P6}+6~4vOmU?dicTKeKkL4_6OarW^BJi^L);M(Jz<{gs(lL3?k4Lj8AX`qW(u$YA%s{m2#}a1B#?LyW)K1a&w!W* zDfbf$jG-w(tLctbsqXCyPK9fh+=91hNPOMPOiHU~q6S=+)mZ{k?@?@3`*i>B;4C zSfCwXhqrord%L>2f-M9%l~=+5=XFb$zOwKY}%F#>(Dz+W*^f>{voc$}Y~pO~2F=;%=I z{uE^Ts;a8S$H$pRU~3#wrJ&&F=H?zBAMfw)_xARhnwr$R4+Q}a>zSFEySuxiqoe)( z{pRLoHIfnq6a2%&!>_kzXJ@Ceu~EH8Q&8~J)6>v@v+?WT-~iY*;sz%>-P4xB_!VBQC}wbLPib` z4^0XzF4KaVireV#?{9B!UszZ$W#h8g-Q7h} zW{(I-H6TI)yl4;2yRtD~mo_V!@%8ofapPQQd|zK57>ots8=UncBP0G4WJ^a& z)>i5Al^$kiX=#bbqtygqo2Ft>Ku9cS#NZ>F+uK_rpDK7Ef|!SghdpP3Vb|B!g#xbq z>_}-xK6n-sWT8fh!3&XCLMnuueq^(_xL5+&nDJK%2n~1^*q% z;=-a{Sy_3P$eVN!lK*m63heVF&z!JqmC2q{CN|GD#|@`5XO_Z?Zd_emv8i${P`{91 zfd3sSXkx}PESen&FE-VNh6XD~dKU_2Vs>+L6CHN*SB^Hb;3`xvcnTnFm`2_+F*EVg zw$i*33&{lUlM-9t<*SwEm24JF@X^IcUf5=*TQ9t>=08_oDs@h6qWkHc|_mdcrF@Os*hiXJ-NC3c%_y6EjILJkvaLIa4?%g&**g@EaQ& z?#-2joUg14s~CxuY;%hRa!HMfM%8lw%3BXEujq#RLAa zv9Zg`OAD>_l|`Kwyh)*`kT9~gwwCx61Z6MxC+Fwq7H0j5Y>HM=MTLYu0iRM)AQUbx zE)=siT+J6!W`vMf^{cC^DS;O}LctPJv}{}=LctOeM$!gvQcxjrlN{jJoCP$Ks%+c< zs*pHaH#au{6L4e3TP!Fp%()ikm`+tTc`2|X4Gj%(E(CxVgR(7SAuIwes#raE=LrU{ i6tM7@Mq?7|gHxWVUlY(HMMtHL+zA#ncoA=#1xg~IO` z(ShhdbRaqq9r!E`{5i+p{6!*6wi(w927_+5`8^#6D~ zvMhZcnoK6b#qwDsvI`gqO8tITsM%(E9G#Gnpw!Q@sB2}a)*l@Di3Id=AfePxSqVjy z<=-OHBkoMZl%(pPi^T$67js{xYW=~X-zQnq|0ye}njt?#aw>i(i&f3HDAOY@|4fO@ z598mEA9@o@rJu6Q`C%keCz1W9EcVoy(&7&eenKS6`dOACKa6Ch|CD9U4|7tfpZGWD zhdHU#&-gdwC*-7(e{+7AlS==oYUcb9|EcC*Ry9L@LQcy3P}R)&VNNRfp{kkl!<aALgXef2x`}Kg>y`eyWCFO8tyFTg~p>lQ)@*>o1IdcLdx0^?HrPN31Xk>!+ACHk*yj~m9 upJMTMG#asW1bv^86Xmo1`h|O6h)S!|Zcr)?Rz?(6dT{Kj-sL> zbRC5M=+UF6PMtb)=FIWq$A3wsaq{HJef#!p+O%oUo;@M>5m;|;@25|neowIhq_(!U zjEsym@%Q!hu{Z@sdwY9&diw6&yCd?SYA!^?|6k|7r>Dnd{@2j)>eZ{?R!7h(jB|5y zEK9h6`yp1gxJV-M-{0Tw*%efW8X6ifQEwT{^{Xw`9SSlvjcV4|*k~qAxKm$Wf8@v! zu6`?P{79nc-=iPA27rIi2M--Ov~%aq+}zyFn>X*>yVt*libvDQ$;l}wD5$Ba!A)Dk z_Oi0Fty{NZ-L`F8MMZ^cWf_&wqlAe3dv+zPTCmChb7p2{c6K%x@Pe+*O?4I~2M!#- zl$Di*mCnOrOj^Jd-`T=;S$FK%K_F~9E5UF4Q_GP=MEtf(DzaV2jvceE$BSUBw6v5? zM?+UK)JCO&8yUZYI z;@@@t{CQNz>ueVQfCpXE)6*Y6ethxbMP+3r7~GQy-VF^6EiW(6&(DLCzR44K#VY(i zL(|>ey|A#bxVU)j+BHIupP!Fruo@na_?4WL{uQ-^`XTzm!^5J5Ygbnn8WudRNZl3T z-Me=onVW*gUgGll^=oaXK#>Tp_T&Qi?IB6&$9C!Ye*Hi`L0MW_(t`Kz-%~xnAb8M7 z<(ZwGm6hv-3m10n+9fN>Ax|GYdSuqo(NX2TOFk}uKS;@@1bOOS{kuH+k%m!@06-&e zM?BEWW5I@ZgM)(xueG(6V=S4X^uc=N$`!Ms5K@>UCE)$|?Ifo4#$-5t+m%p1$iAtm z>E+9pdgjE$1cz^kcg` zUW-7{pBH`j@IecnJ$pvw2R{`aPYGXhb2D*~mGcj^ zldV!7shy;X$;O5PnW+hqpXhLK32uv!!@7}%B z0<;9@ga9v;BT51A2Qe8@|3UiU`M@}P_AKpH7>EUTAer+R6C5O1mgB6seEG7nm_q_+ ziPzZJm^nxmpdT0@gIxW%dBkEPC`B!5PoumEFeAQ0gtOqvqH@mtjNaNFhT2W-3uGM_woV)&__c1R`#$Wv;Itb_@@fnVOS z9sK9cofAc@>Fn$zeat%+kiQ-#4M{kDPt-#6gQqJiD?)hd)-Aw;Sp;z%vsQtV9H&7$}Wj zU9090f>j|-iht9;_6om!|GNLvAPT$%Ex9*s4l1lLkF$2uCU}IE!NhL56HGx&;-DKT zch0VaQR963?+@eOWpd5G-}-maS=MFvkwp3XgC}bGTi<$J#e7oyoBqj~R2YB<23M;j zN$KBZV14Hi@q1LazL?#&>m;*g{(AK9K4E?5v=R>3lx1s_ZspXR`pLl{;r|-e{U(1Y zwL^#>x$e+w=(C>xL_{w>;TyxPyd`7-Ciegkgg?F?GY~TnGY~TnGY~TnGq5HDe*g@6 B);a(H literal 0 HcmV?d00001 diff --git a/Marlin/src/lcd/tft/bitmaps/confirm.bmp b/Marlin/src/lcd/tft/bitmaps/confirm.bmp new file mode 100644 index 0000000000000000000000000000000000000000..076fa57897deb90f8ec673b42d73fdd92c062cd0 GIT binary patch literal 12410 zcmeI0$xa(V5Qd#R1&@(ONVxa_W-%N9<-&zU^34apW=U9tkl+>Agajw{GYAke%MEek zMG#x^g-S}TZo>@YF_}T#l1)$BO#k)&e^uAGF<1JMc^)O+3%tJmeSOL_Fk|rfx9{?j zg-oU~n=k&GhyDB6`r;2iJOiEq&wyvZGvFEcC=5(ZO-)WtrZJkI&trIaxLhtXO;-p2 zhW0|Ckk99PdU}S2h7ckxAqe=v!NF`c+tk#Q%jLSeyAdK4ApjnnfbZ<=1an76M{{#? zOG`^CLJ;Qr`}v za5}$pkEFI~YikR%jT-_+T3J~^0<)-2Pfx#3gQ4I_SgrFe$k$iYNM;D{pn`zskc!5< z85BlZU0oFwq^Q=r%~R&XfQR9mn;R3bJFlujo!UGFPr~l*?z&*i6}ZJ(V`F2dr>Ew+ zJ0}E+Diy4*ZJr4}Fkwkg$|FGW?)g}8D7@Qjd$l-LI51-#V5(a}*ZFE1}G&aF%HbdIq{qNedMBK^Fz zqjd>*`X39tgn$Z60z=>qR3uy^MykEphI!cQ?d{#%+_ccTms?v~Y8!!VzKfC0&d%I_ zG*?JxJ=$tl0o`Y3XHQN}%q`qG(!a#K8A3E8)zYc*(?|GfV|w0%ZO%igAh{q$s^zI| ze0+R zsuR*VmRw*v&U7mTz`vDwGY}*|+)AZV6}c|5i#FS8qzIj=s{(lufq658km=0PCPpG1 z2tm?0LZ_-KP~r{`54nUu6HkOWDv&sVr!z*<2T$!(sqJswk?rQ@=GNEOu~Y5fWq0n$ zBru&-1?jgrQX@#fMr>E3ZCuhs%D{9+cTQ)1D8NE=hSBi5yT`HuEeINDB=UM;VWC(o zCJMYTKnUc*>lNwv_;_Y!CKkr(aTAP06fdc8aBx6V%@^vibzJup72I3^eC&A_7iQ}| zgka^u(a{m$B1$C87g1b*(2VbO1 z`qQL~WDs(1pl}Y{#2C3b`S=qT&*81`n~)w~Y26*ym2g8x6ng)Dby$ZJg0Oga@&1nI zK3`8Rd`BPv0SG_<0uX=z1Rwwb2tWV=5P$##*a;*_@^PuKYkk~_ihG`CS=New*6TG{ zvHc2ZnmUf7Y1$Ld=(>A!xztNHXB7z znD_U6zpm>&|Fmr@NfM9#Wm)pCzu)b4vMi(j@KrfIsa%l7_7^S|A0zxk){`!EdYUOD*zp8qn-vQPfW^Zfj(CwGYB_>F&}C_4G+ hI0*p=KmY;|fB*y_009U<00Izz00bZa0SH`P;0K*ldIJCe literal 0 HcmV?d00001 diff --git a/Marlin/src/lcd/tft/bitmaps/directory.bmp b/Marlin/src/lcd/tft/bitmaps/directory.bmp new file mode 100644 index 0000000000000000000000000000000000000000..994abc70db0e527afe43b672db0e19fe4a63d080 GIT binary patch literal 3194 zcmZ?rt>R$-gDN1I1H=kY%*Y@CWB~zC-Z2J(Ap#5xPVPa)FgCF?6Pm(?;RPBS8=EKt zKof8U2~euCvNE4CP*hX|bRbqMDk>^!Yim0@J3Gh)ZEbByNlAHmd6-rJP2RR`+kc9| zxpU`$Rx~#^qj{max|(9Mp#~%*Bn*i8|Ni}>iWhLXf7EbmtX=&0$aLtX?=Y?TIB-d5@~)*OAAmXFtOnRz literal 0 HcmV?d00001 diff --git a/Marlin/src/lcd/tft/bitmaps/down.bmp b/Marlin/src/lcd/tft/bitmaps/down.bmp new file mode 100644 index 0000000000000000000000000000000000000000..42ff4e5cafcd9ba7e72e12d05c91892e4daeb061 GIT binary patch literal 3126 zcmeH{xvFA85Qd$69$>-==K=I0ijKP&OrY^32BL|P;J$BQ;D!r|A|irI;2W5V8wkFP zqUhWo>mtSRDvl!)*>IXV-PPY;U0vOpUvFPUr}l>a2fptg-xtw0SZJ76|E7-yM55@c zy)wWukVqur@i-fJrWp!_tX8Yj>4eHNxzT7O5<%EDn@uW}s?}<**ZV{Xz};?lzu#Z2 zRvL{)sZ<&a2A|LOltcmU@p$U>`kzyqOeQ~1O{dcZ0)c;&Ab7P}B{=od=~O0@K?HjV zhr<*?iBHsC0gSS*Gh%jL2_0u_Zz2MMFmcuj)fh*JRXbUG*!%mR)#0R|*W zrPASW;GVPD3~maA0+C!wT!Z7zVhOMWr#FWr3WWma!$zV=0$0!BaPWJ9%RU;71pb4; zKrWZVjl;P_Hk%bJ!Eu|-W~{PUEXib&oYA{nuI+ZqodHK-d2=~! z1%ttKI=$I!$hp_+U5or25*bJ}m&jx?TCFyfN^v-O;(}mDyWMU)9wPuaT>1#$XNi11 zkHEU!uE}J&R-ZUENWc@uon+#}AIFE|#_#Qg@I<1}e;VhF!G{;#V7{ha8Tbzwcn25a BkSPEF literal 0 HcmV?d00001 diff --git a/Marlin/src/lcd/tft/bitmaps/fan0.bmp b/Marlin/src/lcd/tft/bitmaps/fan0.bmp new file mode 100644 index 0000000000000000000000000000000000000000..558dbe4f8fea2eab1ba5caebe31737c560b11154 GIT binary patch literal 12410 zcmeI&g^pay5e8r8|>#`mgHh9{*Oe;I9=5TY=B+{{Hs+-=8Y{#gpd!-&=&g z&{3hnZea4YyJ^#=0|ySwdlgIs zc))-G9XodXM`7#KsS|-Z^OhN77w~jJUa?}us#UAPU!z8i)~#EcLSxLtB40r`Y}hc! z$*ESYTJ`GHYu2n;t5&W0_3L-&(1DkNbw$q2qjU7=(f#`Mt5c^AKVeRej96 zYp(7x-Yl-DQl(0R1`V1uYX&weID|}AG;G+gZ{NOwT6v(2Od*Ff>c);8d+pk_@87?_ zfB$~MgbAERUAuPea>8#gvP0OaRjc{)=N~z8k|zs928y?Yy+ z$Ks~r2cGA7Y0;uZU;`i8#fujkH*U-XpYSBqVwk}eap=&YSFc|EL)h>C-nemN(xgd< zr11=oF#&*dJUKm^YoYmS@#4i1T^~MtfJ7kB64pA2Wd7{dt(%EYo;-;N3|~Kg{=9PK zO0*0n@SC8^X?;^L%ql1-Xw<0Dym|A!e*K!MZques{IAJKNxa1Qg9i`h`TO_pXG%-& z*}Qo(w_p(~TDEM--aJg8PGsRZpQH;piiw3Kg)eE_CUpFVb|M~@z5)AHrZ7kLSVXz9|WOT3F{m)r5stZV|)`#*j9G;!j@ z5Y9}H@sju_*hQD*?DOW$o9Qw$pZD(FE2(mn7>Q4$VY3#YnL@Jlh!OE?eaW|1Vo|~+ zFcKKpvPn+$zkU0*fB*heSb}(>BG~HHt5XvbKAb*%8aeF?&!*UnP90P>d-WT!_-ygv9jUzI|JMgI_KUlH-?P#E20#k*80e#>kAkx_kF-_wL<; z3Aoy%NfY4~B8a;<1o@90I~JLh{3|?xqEbq+QH(t6)~!n}JdCs*BM%b-k*tM?W)xp> z$oTQ&i_Q5l8j*oOo>5@L^M|htIDh_pjI?a8Zr!>yX3Q9hWK`~w`kFUyP9TTaQWK`l zB85MG{5VCSu&miAWT9uyocZk8vm)gb+xhY1$6dR2Q9+$>LsuC?ARIq_yx6%h1ML1* zkV6!8(j9@>@YA?_`SNTVZj6fbSJZ9Ww#{15r8RX)NDYHaim}KCDnl(Hh z{AM9kgO@H{N=KE`^SE*2;Fp8lSE}J{_{FSKRZ57|N@>VQcCl1{ zt`9S2%xKY~1ufZvSHGp7GiT15H*azkF1;(U_y_)zCr?JEtC?*F5{RHyGNr#&q)EIo zwo{~P=gO5UHe9=B`dQC-d-s9`3%Iw~{BOHCbm&mJiX_i8_UzeHwvp&wzkVH=0yDd8 zKuY50&z}c8BHczgefo4paUI8MxJ?3AFIlo=%a$z%4<0;w_UxH6XN-)Yefo;P@0`vX z;xPgv+gJHk2_fg$KH!PC&a8Lu-ibbe;3&tId-v`wTegf+>Dr3Z7{G^5Uv=8`Gy=g! zcs<^xxUV)_w3oTYSk*Rtt{32oVi;G+W=K+#V(-@o53*{ z!Yi1Ab;XX13^0)jE9;75?b@}rkN*_59Xoc|AXcnc;kskWlqt;opPLH7z|TwS2Sh^Y zl+`S?C(5f%?zo}xPek2M`pWhIugFg@($|zNdK91Hv~%aq4zOI!XlB~W^xHsv+Kv-4 zxde@ZGu4U|>#e9+x^yWg!!KLfvj7&eo+W?H(&(`Z;8N+EP$cYBXRt0@rgiPwHDr5+ zfDN#R`ie7csd^nEDr+(9$S*PckbL#H8~5E zCU_AIzfv;^!k95CJr{KFmoj+xWgbeU&2X6$12Wqy_nEGD^1EBemJ)O7XM)rEtXZ>M z_zQ&0JD+UGonlQ~Au|<%&k<;&b&=@AO-K>(r z@Pl%~LcqhHZf?QDYJ~wOA3l88iNK*)lJv8V+a&gCru?ANpD`UOjTI1zN*hGTElkr> S7TEGLtS*;X?tx$Bf&T*c{D|HF literal 0 HcmV?d00001 diff --git a/Marlin/src/lcd/tft/bitmaps/fan1.bmp b/Marlin/src/lcd/tft/bitmaps/fan1.bmp new file mode 100644 index 0000000000000000000000000000000000000000..6da6f3294e63d813e55ced63e2b51bbc38451c5c GIT binary patch literal 12410 zcmeI&^^P3N6$fA^Pm#ySBP3TcGcz+Y#t<{JC8Lb83^K}=nItpGB$-iWW{mCR%hpZb zQO``zEM(VzY)RX$uC6-gcd$;?__vzF{#v1+4fE{b?{B~V{i(uV^fcf9-Xi>kfeICV zt6Z=D|N8m<`{&rif0nm$4U}u3 zC8!|O#*ZIAXU?3}t5C=njKTDP@Y2LiK%!6Rj0Tps( z0sQ~suTrH7)jfIgB!g!27?L&{H*P#|;K0&UevlPM`1yaWTD24gd4P>ixqkh6`}Xa7 z_wLOV3#q>nn2ssdb?VfqR;?Ox-@bi|<4b)1`t|FiNt3#F?_MV00j7WHx#Q@Dqd=2}avl5P>5p zO8-^RoD;cvj~+b$Rw+Gw`jiw7#lIB(AcC`iN=7cy7=j4XrcKl5RE(mLORziqo;Y!W zyjo<$U!lW`L}jyP%>sU~HJBO2NR1jb^hv?fR;*aT$FkusknHzIDa#dhgeFaz0PM+a zRHys)?K^w+?50hdx^(FRzj3E^E*D{g)d=%tYo&Is0Yg<23L8m@!>0!Fy?gh1_3Fj7 zM1-h^DgY)6FP*=_egz z#u1odu!KuQ#x)Ye@ijEB0V*OZSFUt7_3`6J7eR8-kRe0VIWau4DA)+jm@xz9jDTZH z!mA^az!x<*W&|7?1lulo;lhQB7cU+?dersK^5x5C&z{XUd#aU+LC+pzAzI?oHlIO&~;quCw<;UuF91wD>)uNejNLn^Yz1r5A)~GXYo|P zu|D0lXwibIb5hGT!I3s(dj}l89Zi$=-Q2?O)QO8DO!O)LjzCD*`#3zN^y5M!f10tG z!qzSjlD|NhH*cN`I-%XFRjUC52Eec6K6&zFY*n7GJ9g|4SuveQuY9{>$ByuuQ{?+h zNcQjF53M~*qwR_nD|&YB+?na+)va5%7Wv8|Cw^RPl=POf5>D2b<2lV!HAB>^SI=H1 z=SZz0J$YgBR~tmK{xPz}*g$O`$)s|Ab+6)pCfjfuLG8ArnAg1WtvxZ}?7;u=a*`5& z5?wLb*{u*1vp9C>(4k$scKpYMf6*eBx?a6{RWbG+j}M#;h{4;xlN52!v8X-+Pm#yFbB=Rk8GeUv$?fn2qH|LJlXwov?{s784yf%9_#`y z;YRnbEC|yTMqImQFu)2Za^7tcffq4> zjLO_rr4mW)`*n#bq!f^{p-mqrsiu|)B2bhAY%1AoeKm8xe*Mx3#zuhQV4O45Do$7# z3EFVQxM~oX7=@g#k)r}nQEC|XHW|4@gL1wQQ=jC+jtI6$_%#(>L?r6i{T<~RHEKjs zU~&RZpJ0_Acf#EuDHLO_{<0nV#E7VIJ(4Fc_*sftxR8bEiIg9T5s^|T&xuK4t@y=- zBN0KfiHOihOQEA!rFpp>l6;hpi)khY7xGNqj-B<~#?zZ(yExzj7y2ZEqK+47!dZdg zy2EcS;WEt?hiad$;K@_@K}#m9PHBb<@$+y;dh6CL=X4rlonnFyTqp`1)F6Z(JNp7D zNF=go$xezLLl+7>;^te$Ez#6uJg;Gcrg?cO04V;G2zWVoI-LbWa3o421-_j+b&{M5 z3m&TAY5o%eg`gu4oYbg7(3ObhV}e77queg9(vk)_UO~FpcS%=Dlkn>@4pYqHBhdBUrGc2 E0l_+m-T(jq literal 0 HcmV?d00001 diff --git a/Marlin/src/lcd/tft/bitmaps/fan_fast0.bmp b/Marlin/src/lcd/tft/bitmaps/fan_fast0.bmp new file mode 100644 index 0000000000000000000000000000000000000000..bd0de9a1eb3cdb55b92cac26b2322453fef25a28 GIT binary patch literal 12410 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 ZAXzvXjWi?1s}=Qq{&x#}w?K{s{tbONfS&*W literal 0 HcmV?d00001 diff --git a/Marlin/src/lcd/tft/bitmaps/fan_fast1.bmp b/Marlin/src/lcd/tft/bitmaps/fan_fast1.bmp new file mode 100644 index 0000000000000000000000000000000000000000..6da67fa44eaa086144192ff4bf9860c455f8ebd8 GIT binary patch literal 12410 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 J1ip#{{skjZ8zle$ literal 0 HcmV?d00001 diff --git a/Marlin/src/lcd/tft/bitmaps/fan_slow1.bmp b/Marlin/src/lcd/tft/bitmaps/fan_slow1.bmp new file mode 100644 index 0000000000000000000000000000000000000000..79d284b722553bf2a00577b1e24f37fbd1a468b1 GIT binary patch literal 12410 zcmeI&$Bq?86b4}Ir|@I=5o~X~^2TdFf_GjR4H%5bA|o;)i;Tb|kr7#BL`Gzh5gCz1 z@Mn%)YPxUt?YT2|23eHEb#+yB)qnmItH(e5)bVYfkFCS+ul{}a@4v75e50qC|NfWw z7Xy9z{P5$?zx~&*``@o~3;+Dm{znW97%-rJ|Ni~@_3PWW@9&>BBgV}R960cElNcnx zIyyRr3>h+M(xln5XD?c`XvK;Ze`VT|B}-<`oH=2_gu#OcTWLLEdtHz~?svwF8C$k& zIeYf(g9i^@zI^$iQG5RU`MrDhPMtcndGqE43lgn7 zj=g^U`o@hLJ9qA+uU^pw@W@-feEE|nPfAhNn4qtfD_2rM51SLx7A{=)>eZ_n7@I7i zi#2Q3j2=Cj2x#d6b8^b?;lmj~6J+(K;orZ1|E5iwI6m+00Y!*}ix)3`_wHRifK66i zym*mE@7S?p*REX*a^%R7?G`}*+^}Io6Ik`8@87?_ZQC~Zw{G3Kef##^yLYc!w{Gm% zv27KhyYP!zd-m+vxN##9;Ma6$0Xf{EeZIhcDEj^T_w_h#yo%W$Ja`b)K%V`jg;lFo z$%btbfpTTiM~@ygMpke1#y3I5sVg$oxNkXt!K(?u#?A+GKnKeih zDS@QUJjC*66a6p(dd(UmJ#kWYj#8^u2j z<_PJ^BQT;0Q?yBaKe7@GNi)ZG@$vlm^ZYd8q#)Vt;H5l?8$}!{;#f^7EEBPh9zB}F ztVqa?z|VPwN~d&tgh#$B$=q82KeE_hldXzmY&3O*DG~S zT+^;yyT;~?Pn|lo+sSu2a-#Nd1QXS#Zr6&qYgbD_d`WrCm@#CZHEWhf4M>AtoHAvK zWcT#xQ+uvny?W@-p=P^c>bZ9vr0NdXDYGOg6k5J8j2JP(p}_ou?9*n@tfm8Sz}AW8 zk&m0@BZm$hlJ#<@cm2^3LRo}`gg-i@KpIwQhk*&#igN_=bd7-tBP@-nAV0(c+aOa> z-m{aX0L?2WR%lW^Jv^`T3OMta`NQKa6+5IpOpfEq6ZA@YVF#!^rCM8 z>6R{Cs$vW<+~0?VImkGR|BC5PWXi#9qI#E6cR4ZoH^rDfLA2Jbf;EUaTb|f z93W26Qo+A-83sIzBpPBFfG7k%%&8@D%+i8oN*ZzUz<~o!!Kd-WeCj-V_6$E}t??GX z;MGZacJP(P=E4hIl!*}d@lReC6ThJgxt=&q^b4w%9tpx3Z{4~TAU%ez*?fYXI{0J~ zzT#RV3#9S-9bftAF6%g1Suitw`t-YZ?}i5blG;V%=FOYFZ;*%qK&u@&a>V21%a>_9 zsT&N2WOF=l*di*GkA!HJd)lG6pw0-7D^mex#FmOp=o(tBOzHRuE2Zcn!#o{$r*p}c zKYS^l1mT7vz%OW2;BPub9T8;guY+V3&M)W`_y|q@CLq$jefzfQZVeaMQ0&4()^egx zt;*oeUZ!%Vur9mVpEUx^Vdd`et=3g#x>Y6^f!L$o;bX zF8;khdPOpY7Qq`Kmtsu7uO^}CEGMF6yJ<4cvSrJZ7V@~nC$+U~MM4=>qNO4D7$lvu znj)-TAa|oESR#U=NS%W^37QB5X)XS{`>2|1Sb?9>s`I;|WyXVW`=nEF!Vwfj5;PH1 zAbur;9?(sfvEmh!6X9DEmJY}TpN=K5rGO^9MZcL9U-MA z`AHTWVp6?Sv2AV&`3jygmH?3Y6MiOye;(cR2)8pitBjTeIM<pS%mFSwLgG-zWj8GA3(jSgdF*UAE(~yTVIp`` zvbs|=+*Uy@m>0dN2(@e^tj>wmS`geCx@~q__}yIOuPlDK3_oxd@$*^5jH)%eNeg`< zXf7Zw;KfsnIK63FcP{)C#AhP}h5h)I&fHIPJ3C7S)phV8ucP^bN>cTn{T}NY<-<-> z=F=u(T8{rPA+bHXEkc5M=e9t2!&gECS1R`@hq|PQX--j|l?9yKK6WVDPiTP`2r^W_ zN-tfyB+O#I8^I?e_7q_N=2MzJ(@L||9q;0w{bcPQei2E-#=d>~Bsh2fnuJsz*X^_L z!^V%2{e#VUK%H07Q*-_&20R= rZ0_8->89W7*y;liMLB|!fH(-#s;a8m+FCN!H(|!Pq_TYZatJVI%$V_4X65DOO&?i>g@yCy&tJN9DTwd15@LMj zDb(EDTwwMbE-fvEHhcDLCZRv>ZQv{Mxl^_wL<$ z^ytx@J9n;JxpL^xp>5l?!OU9W!=gotAOy%*Qk-LZ-n@ChYiepbJ39vk2L7FR-M@c- z|Ni|VA|Hea1f>(fk2L9iTptfw;lI3dg;>BZ4tX{o(;lhQSxp?tn zR{z6?5B$7z>C%Z4CypLH>U;U}DD6r?xpNAq_Oos_<1U@kgq*Ac~r3}UbI-wFPZaKiju3fv{zI_`eWGX*D zU%F?_n&noo0#VO#D}<(|CY20i6n>mQvnVD32)H_P=1d^Sn%IRfbLPw>`S9VxxV>@X z#<(>M4W@>2YZ)3alL?$`+O%nCXedBVojRrOlv8D8CFh%)n^Sc5Y9Ol{QGimqW<@9p z-=7JeX(XRNe?IWlGY5nq1wv3)QD&^Lh`ns;1K*q^sgG=;m59lat_cCRd-m)J{MWBv zOK4G15n+|n)zuZ}CJeh{@%grW`*wXw?AfztsE7)Yrj!UFH#Rm74-W^Fy%L45moHqn z5QqAO3Vt|~VvhpIHns4P6H%mT!w{dhZr!?J!-j^22E&#QUX3jN_3PK+J5O3-5B$@o zPlpfjMMZ>=Mgg%kYu2!0gu*N?E|y<7_(^T6ia18mlp~))zzV%)^XARKSuxG{dGh4R05M%L z5c2_Jbfqk=Y~uN&rItpSKpGw#c64;$p|7ux14zcX!!(5uj)BmP^c_BYIPiVxY9ja+ zH!uUl;zlfr0#PJz3=__K@=_ATrI5U^iCzebD$O?x6G$d7AkwUrFy};Vm>5&1PGt*h zc<9McoZ)=V`kZ&|QB ze96R%7cUHUqbzF$s~q-)X%_KQPK_76#^}wPH;)`SB0(G;h3`-CqQ(47CTzO9yHzz; zqg%C1xQ#J0U!8<7Sm#O_b^II)9w*A!!V?hJQBHEn3F) zJZmoU=>G)#WD)GOiB?Vhm2Pj{x`j!|lY)n#C_e-9?AfzfE9w@3sS~|)kX3~`#Cg`q zN%uU7J~DRN+uP5bJJ;LWyL0DGb*Om}s9%I*VkkWRObR%zfJ~uFQXp6ne(clvq@4T* DyH+S5 literal 0 HcmV?d00001 diff --git a/Marlin/src/lcd/tft/bitmaps/flowrate.bmp b/Marlin/src/lcd/tft/bitmaps/flowrate.bmp new file mode 100644 index 0000000000000000000000000000000000000000..739375bd72a7ca2592a603e07288049be3983509 GIT binary patch literal 3194 zcmds&$4lKo5XVif$tkBC^S5}(DVH4Vy({)7mS>AWA}V&ojs>xSD53`y1$#lTS46Rk zieRs3KD;r@@_dS-rwqJxe!H{ZnVtF0X#K(VfB7Uo*|4&* z{{GYOPk-s(k7kCy-XIAH2~kl|Mx*f!7*AeJN=k~3j&^f%^YrvY;qyt;*B^iuA0O}T z?(X2=;OOWW5D@Ub_+$pj&d&Dn@o{o;a&>hjQSayiw8Fx|o12@gtSozbdtCVY`zIzQ zzCIHcZV-7yM8x9a;{E;o?CdOAB1O*5&LJTouX+N;gajI^ei886+S=ROTkw&hq9UF^ zA-ui4bu$Z*nYOSI2@MVP@bK{R@`52?$|hwcCwqH)0?xXS@qBU{(kOKWwBTIfq{WI z;-##TVY~<{z{k79qr+O%$HvCM=i>DAGzQ>H#z;|SW@c4YRc>ysq>(b=Lh=J=c+SSg zhK@@6E^wz z`Jf-$TJd=my6WheZ1o&lTWsEog^)S#64-XmIxB!;gO-)Vh@9!&{=H_P72np#j zQYTPydT?++W~g{?Z!bHHP}*5t)RoT8PVz(F4Gj(H`=o`6P$}Xh2FM1ZAdhZCbHRUh z7(Sw)Z*FelOYvlVeVu1Mg-`r+E`yyna?1?Ap`oF#uMfUmv)svGGF=Hk9z#@1dhMt}tbwoQrp`4r?!9k$}atg7TNUB&PBO{bm_(Li4 z^72%Di53@hG}UBwsVmeM=1UXN*T5DO6oiF^(UmFyrSLR@7yf{gmX^k(Ri`LtXJ?E@ zeP>}|0p{~4=COCXm}@h0hg7d^z?M93{*=? zOJ!xH!h{BlK{jc+$;nA{5EMQGfpp1#UNH5rb$oOJfQOI)@0ig?@&xKgcx>X7|169| zNv!0vwY8P8iM<(`#ZO+Lp2nPniU{o^0n=-O13m(2IprVO3&G7ia!Uj#vm^O@{?y_X XeUl8E!hGPEek8gWus%NepLYHN7OGr} literal 0 HcmV?d00001 diff --git a/Marlin/src/lcd/tft/bitmaps/hotend.bmp b/Marlin/src/lcd/tft/bitmaps/hotend.bmp new file mode 100644 index 0000000000000000000000000000000000000000..ed24b6011e70cacc01b06f32b300402f8c3ca9b1 GIT binary patch literal 12410 zcmeI1NlRN%6vxwkihhiKgw{=0RgANy8pYX))i}nfRdFZcfQX2w3#W?1LO~Z!2#Sas zH}2GpSZ728MQne~tuef(&*Z*mjO8A9$;+M2|NQU&o_CUjeRjXMdCbl0SFR8Lt~a)K z++p;8bcjnd*lb~+?5?|ef8XC~27Xtj7*Gr-1{4E|0mXohfge7m>kRbVq)Us8 z>1jtt2O}{;z`VyH_#1&oG=q{;Qc{paPfyRq#f1*Cw&CXHW_)~{)Fh4rA#famuO*=w z{G#^M)YRG8SuIe*&+F^!VPs=3n4HKR*x5y>+9frlukyBFx}# zX=yQ&9!-WaIXS8DEB>Wb^xE|^F)|i8O&GCr(dKQ`D7|l*r-d zcboS1_Or7ylQ5*GFD)%m+{%Hc-k?sPzU8a;=;-LrI~yJzrdE-LWH51VZjNfUyStl5 zu&~a~PU<(g%16wi$iFK*|Gu*$6rT$V3kEQxyFhEV+j&}fJwl)v@cOwdh^?-!N`o|* z*x%nziI|<8?e#0I9PbL68-agiWyJu7beF=fVO#%E@o%6mr60XuG%ZR$#`@v6pv=rn zL7L^slVyX+zrwE(zvACO{B&vZ=WEo@t3JPdeSQ3L$e%bc{~Y8C{ZmnIY-|`SL9TaZ zW`^Qif9Nc10X)WkbNs_)xuJg+w-D`PONnnWaAmFWwdFC7s$DUl7*Gr-1|%4Grf0DP K5;f)jW8e>u78A|@ literal 0 HcmV?d00001 diff --git a/Marlin/src/lcd/tft/bitmaps/increase.bmp b/Marlin/src/lcd/tft/bitmaps/increase.bmp new file mode 100644 index 0000000000000000000000000000000000000000..53d71d0c5afd45c53ab5fe015d3056f24abe1ac6 GIT binary patch literal 12342 zcmeI0yJ`Ya5QfcLR&;iE&VRlg_ss73#mTW{trL76VLScY4lIZG24Vl%rM77S zi{*~R1egF5U;<2l2`~W@5V+qZ6L=&oz$g?H%wI2n1X%*Of?a zw;NM4zkm3=7724Qv;RaQQ7)Hfv)PMC^?Kdubeh?JJRWZ}8gGR9{l3HDFuDI)twz{? z>vTHof3No^)DQFDD`9zZ<}c@?e=nBK2U@uQ<0db^|M>m>WHL$T_}GI{ApLH)GoV7y z-cUksQ>j$s{?Qgiqfsh@7LUbZ+e7P&00{7Uy)B|tX7fdL5ZnNT*HEtktt{#&gU4iKLBJ&1{53K$E8q?7r^>7`QXNveE4-|coO z|Ksr(2S^h<6$%9um~#KOYb_QF%A3MC$fJE#%U|<9pU)Ng6sB6OR^f1%{clu0^A}dj zcJLq6Pbd_^?etIof3Zqpp;x$mY4yKcF1N3^@<=wDh53y?p#Gnj0v-ULr5X;0lgWgd z(R4a(x7)p5Z!{WFX^?`0%m6HCOC&w41=0Kn{%4*fUktbxxli;aU8v`Unxf|8PBhUVl`N7$Gq4cx4y+L!}Zt zFR8Ebckd6}gKxhz%H?vcRx6cCKOwMEsU#AKP$-m2r9h-C1pxE;yv1U%*=&BlA4^bh z6#&m>vrs;t&ovs2-EI#CgT-P|5ef$Ga=EtK?d^7JwOTrz&T6%Sj&2bH_jE%Dp5JArBEoC&1O#d>2zu| z8t|NGOFEs_>-C$>My~vPJ~x|9VnSgoA{vb@mrFS~l*i-oWHL$IN3aEJKO7EnaE!y@ zuvV)@H$$~kC?Fmbv2Xg3gp7)^Py-dMj;odsD8iCQ6LxWd<+BvFp3h4VlWtR6tme3M?)+Yqv&VC z7zH+(oZ@&qqT^wTB3^ozTLr-Xe}wb^eZVM2qtW$xWrwd);w5bWM3=^wA+#$FF0uTQ F!8>#{kj?-A literal 0 HcmV?d00001 diff --git a/Marlin/src/lcd/tft/bitmaps/leveling.bmp b/Marlin/src/lcd/tft/bitmaps/leveling.bmp new file mode 100644 index 0000000000000000000000000000000000000000..34866402701c02c0a73accb772d6d27aba595e2f GIT binary patch literal 3126 zcmeH|Jx`iZ6vye_574n=KY@F@5iBni2u8pV%AmXxh$twvU?ji*CM1RpLc#_EgJA`n zG|>;h;Nn&wG0fOsyyS++^AMZJR8I2f@!WHN_uT(E&*Qi68y__w%XmPWhma3k%n!~hBhGYjK{PZPjV6JcndO6LV`Y7%nd_Y0Y3T*xA|PPtH0%J{G6Qjf~3O-JRWTx7lnm zsOCUUr_-@mOt07X`~CU8hr?l=PPe_ijR=gir~v`<`8;XOW^;3M6B*gQ1n%?stX3;^ z(zbcH@GF&yR;#5QySuxb0w)j%OePbt$`z223o7!_jgp*BCkcyW8R2C?2eaAi_xow+ z&CQKmq9l%kqsRxF%jIP9awi&%?(gplF_B0Z$_UZa_}OfBIaaPxJbZx641NFcV(4bE zSQtw+{@d#>7K_x(mFx97yUxze&d<*ag#vw1yMmZoK6kZRP1d>S+}_?&tbm|@tJRV@ zynXwRMHE4HLQ$_e>WEw7j$sZN~ID_gfoxAr>gmg Zq$xTaF&k*5UvI2ak-QGB75G;L{sIvY2vz_9 literal 0 HcmV?d00001 diff --git a/Marlin/src/lcd/tft/bitmaps/marlin-logo/Marlin-1500x319.png b/Marlin/src/lcd/tft/bitmaps/marlin-logo/Marlin-1500x319.png new file mode 100644 index 0000000000000000000000000000000000000000..d94d3efd2c4ebbcb06c3b3ad5f09e30a0e873268 GIT binary patch literal 387923 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

-0&{SE1&dD0s(jCk)J=t{sisbySlwriS;95A>q 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⪼YIxYN+B8$BT>CrXDag0ye( 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 z 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


!ngOXchG4G?N>;nx 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

H)1@8SFKm0f?4T~aKu3ek} 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

*!-gnMJ0a~ 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

jRpd2Fvnca9TV5|=x$t{0?~V}Q)k^QqCbB; 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 literal 0 HcmV?d00001 diff --git a/Marlin/src/lcd/tft/bitmaps/marlin-logo/Marlin-228x255-greyscale.png b/Marlin/src/lcd/tft/bitmaps/marlin-logo/Marlin-228x255-greyscale.png new file mode 100644 index 0000000000000000000000000000000000000000..f68708a8a2ce949083700dba7a1ac5542712d007 GIT binary patch literal 7940 zcmW+*by$<%7av{HCEd*sDG>ze!RThA1Q`ty0tzDCg2dS99yw~HAl)M*hm@dzQerU_ z5d7`?`{Ta%ob#T~srNq5eV=nu%uGPE)ST1+0D#s&U&n&5?-ABNN@Bv(U-)Y*VIvB* z0BHf5=C}_D45^2vu_ge}`kLmi3mJi@3eblH0|0Cy|1BZ|3*qko0B^p5j;7T!r?16o zi<>$O8dL(mh$y)O0DRGdAbx(q%ZwcwGdfBhWkJCJE!J|9)b~Ub-x+tvw;6Z7hCYc1 zy-~R2^SUBya`X~TcmHs9rtfpr@UKYd*WbT?&(6+1jip81T!8Ksvm^0?{0GOY%>$Q5 z4P8&RkE$(qF}%6&N*@lqxL~rRY8bWM3io!vX~)(nr`CNRp?`RQYa?j9p0|4T>vQ_4 zvZ~DS(4%qW+V)PvsVafV8nhCP%soq-K02dpc&Vr`7;ICcsvdb+75-rtqY|k}{QYP} zYULL%n?3a4q#HfKUkJF(_weO%P|Y|@4Y1Hw&w^YzBzs;19fF1Q02r;O#N^Ky9}=x92{{k4YtuX&*IxxU|*5+eCo9+w0~YV7pqD1kxj;~ zg};9u2vJ4t3usIV{Vf`UeT5^E00OVSFA}t~2st*yJyyPU_9qyxx-pDqs`=*=C*$+_ z)hyAg;5%&&xYIlY38h_=$9*9gpRo3U4)Fcoa?`M{8D~!*>7PdPqo>z-zBbz#7OmJK zJMNT}macSjybZ^LO~YgyaQ))fjf3Vzioqd}E7!Rr$vyahPauI@KaPf5-dy_<5bo;K zl+Uj(@l&4~rq|hXwjE*jAwQ2W=VP_oEu8_?JO7b?lhBN&rl#RXyStck-D|$Kym7CW zvOAdbgv$8B_FMz5= zQLq$wZIDiQwKyxafLYY?j1??7ybBW_p$aTGm^Rn(XIX7?h}w&;JBbVrhaUaNC#V7u zGv!PU=JmRk!$9hw60=#q07BwFki?ALdEjw`rtz9o#?jpfLK0(`X8X2G%fx@OY`;RT zjY+M;|J_8^Dwi^brHfec5K2VpIN2I1H+b=eZ7$2~sG56Om>TsW_x4PwSG*G!vO_f! zFv(B5=GsE$m7Jk5Gg3(PBX8dBBEhy^g6O>-Bl}9@#wScDsg@P*o3`Q$&c~Url9T>fH_i~ncvh&nW<<;4F-YHVG z@2F6NPTgqLIF9K8&e#q)ANe+0IV;Mgd8<=Lgr$VcaS7VnJK4^Vw9z5M5!!gXZ4cKi z+#~M^dE$WE8e9%OKc{K6q3>l%baH89AQ&RP8v?J((>$u9ctY9QY4tAb+XqJF z{a~xEW!s|x&EyaWGU>o`>jCA~TZjg5C>6-%8TIcvtT)S3cT51I7N6b|!Q+5S(CkHk ztdzmw;L&y4C5ER)x!1qmJrp^!um^?-9Us^Kikt3{U0@Q9)zBsCdBX=15`=MBMP1{O zFHA~X+#`+CfCcG0BfKi>k`=j6-ltEKTCeIlhx_KzAxd$nw!L2uA$Sp{J3 zu?6uBRR&U%DWX5WR-L1A>3i<*tLiMZyQs??%jxjw+46{I;Iix=?-OZTl+!rp&nz*zbItB1B5}r z1{}4vy5H<%`2ryJ<)wS+B96K&M4!@)vL>-f{_KCI1-p!V4t@im{8ysM7?Dt>Ho^PgP{k0z06e_<5%ep@So7Jvlrq==;@7MNh_G8(3I+IlZ9q(u8UJ#>Db+S&C#@&57y*s72zXn}bb4sE(zIM&UVi z`i-aM3)QL`)Ku~KjA*kwA6++^6I?mocs9z(9jHGkMRJ`z=;Viu08jbT&`U~b^Ree| zSDHy?zM3m)8P|fj>lHg@K5!ZkcFQ4p^t@g~@25BhD{U&TrlwY&fU08jb;gHji`4Sk zmNJKg#!!`8ctDa+^OH;N+00l;r%&85ZB6c@=R}G+KQn>BuXSsa4A!03m13)LOpo)V z8uD5Vv12Gm_EK*<@`1khZ@JjVVN|sOo5YIcH<#Be^Psg{HY0sFI?phfKB9g%TO1!CA}?=v@`jtG=JUdz zP^Am~t;HzC&a;&R*XG&0<9@F3Pu%YqRSR}Y|Cu^9btW_a7OjXkjIr3gmobww4JD2< zX9(-);7rC{_>AcasG$uDERHbrlG1F&6Hfwcz_D zbIg7q0DY@a&g_Z$Czvem^^vMd+jU}+n(dG)vg2o5K7ct3Zq#}^YYf)Mzp(6TpsNly zMpF8gH?)shEiQF}I&x(jpx#=Q1}?W>WMuK2o3U@fR`@FQAFqHqV=xvUG&=78P&Br4 zIbrgkop0}xtKNAeZ!%5F3$;0;wx=Zv0de87h^OLCZ<`j73>JYpX%@SKh@Xd(1N zS)v>uUY7x%i`mALlX2RzHeoS$b3Oykeixbb@hc5jqQX0wn;4G`MN~b&x@RDGE+RG7 zRhWb9fK~6|hD1t+jxq5q@S4#Cg%bFCWzJ|PSld=VhdPhBhJC_&(vNV9m&eBKBDj_- zsER-|TfYJ@iwrK(q|(CJ3ZCFreJ?$|mbAy_@?4MH0C3J8()~7MA=}~Vh-(zAfP9*R zoDb$E&sPqA@&JL>N0@Ynct-Zr2z!p&Sqk(nYiv{1Kyw39n}wT|U@MPh1L7>?Q0?jw z{1C5C7L%{aZl{}ESf_v7L+Sq5@eYruZR~J@NkiUNz4Di|Jff?<0}OmuISHn=_U4Qu zRtA$gu9(Ld>Z~Pe8m*TRGq==Ip&%s%J}HS&N-gkCgwDeOw1TrlGzZ3NU5~M87!KvQ zkMTUtJg8AZ;rm6PaX#qzo8*%zQyD3DIPvXAx0Y-S<$5Ts5^vf>^w};=4Z{rbejsBT z#-@kd5?v%jEHPd`@?njmR-8OfD$FG1)<|L)uq3@^rNI>}YDA;@&?3axGk#vc7b5jZ zJ?iAjBG4V@vS3Sr)P&8-Q_2=O)bdhUZj~EYNwU<&hEvc-a=fa5_^Zh-0#i%7v*^_r zF0?4sP&tL=IjojL5f#yH)Z{9r5}7S3kOfjDk(v}l$a2dNcU=G8j;iD3(-`g?1rB%m z*8F?l9icaUt1`Dgo7`4Xy4O=>%c`1%2Q#u$gjwtjU%KbX;_kMk#&j9Sy!ax#NjFPi z)Ozu`MrX}$Ipw};S)DgD(*~p*OfOp8$Sp1eZ!1AxOTAd(Ard`%{PdC&)1AYT&CAkWXmc#0-h}a72NT~B=(u?%CMRp&)YvWz0QZnn3`9CdY5HW4^M}i z9gP{)6`aCF7Gln(^k{)mwqc{t?{?hO zE|sS;f29p$*~H*JfmAYLw(#cz!b6_|1nO!u8{KT5v5VBUuw>}hj9N}fb{TI#mhY3U z-BK>n2sH2du)|AXt3`ffcKhHZm!W5$)o0ow%R8akCUXpn-(X-Lv_gXNYc!M1kB&a} z2!7QuP^)A|y@;!#Rxjh5R_}~nuSho@oS@VM)G{kw6m{9kGt_J zCT=MBk!8&KzvhoUf}9#yrdjTzlZ3cz1ZLbQp*?u;^k|RttMrrPRQ*-$_}6R@5%LW7=FDN!S#2Y|HHodWoXBTX zM$Y`q2Iw%vwPijuiu{-%>)T(z)SK@)JezJD%@b)S%pSNGdV z&JQGQuTKJ$c6z_{FNF?x^m+NonwQKJ6)8p*-Qs|Z1Z}4Hhbjpe^=Uo*t>VT!n$Pep z4~r+>^~zl-;hYa(CRdnZxLcGesG>*?84S8W;E7<9m0trg$kZQBuAgo^8OR-{zqmYZ z4hf4@WN%ae(PgZp0ZH)-mZpMI4W~5oJhDpYMQ^KC7A{h1I62^J#u9#HE#kC&@9NvY zsy(gv6gX|61bRR{V*fi`?0CY>eQv6|N~|Z#Sn?@fJ4gAazu}`*)|9l2&pB({Y1}w>^smkc_W(bRTTEsl$G1&5TtQO> zv<&iJoK|0layMzlM32uydpOR>A&kdIoDSSq*KXaJ=nhAFXsY|W%rUa%EWK=hW(w2 zaiJFIO*FmtrzI{>Bi-xT%fyn14k>?7O^oV)Ah=ezrE8P7+i=$Za;kh)JQI64eP>`Y zN%nURkOV^3rAY)V&`1L#oc;~3UDnfakygdJVi6xbk?*4(~ z3mlJiXqI(7HB+8|Ury_5_BV`bn4R#xwYoS&Z)|#bkf_IBHJXSH2LRXch^{zFlX5la znOD)W-_FeD!$zCb*&+lnG@RTanbE!n)VXw=`;t>cN~p9Ab#N+BW!(J(Tp0h$Ekcl@ z9KE&!{no5+UBk5Oh0a!EWZ^2}2G9R)*QnbS z0{ba~alWG!#67*#O6^@#wBn!@v2lj8Z0-2=`bsy{8zY<01&~~-8=)@HgAzSRW%%vQ z*N9p__kM-4SyuI2jHZ?tHzsxJuyL@PN`(6t=Nn1%KV*niM-2W0i3UoT9I zD~*)SU9n_Kt7RiR|n|w^MO?Eo9kIbo}8= zC|SVxy^x2tG6Yn53y=nctXnFWXI7ezlCu`Ialw!(_HrS$rYE9vrX`3Z{6V4?!H2K!x zFGjEgS(3VC=3!nPv%+*>I}Ij~0>VYl2k%h7(`M*j;vFD)v)6-vCGTC93BH*~P?rCK zq*-Zpb?hxc=LU`mw3k@1ibL{cDt;kf%wjo<5syPaTH;dpyO4`Ak*3M<-6?No(k~0f zRGU^$yYx^I;Gx`391|6{mRg5{22NL&1eeqC)XSu#(Yvk?kkdY&ezpgJR8k`^iHA+9 z!bN?otk<4Bf=KmQa9}l_E>uvhol1{M8Z|nIb0ulWv}O}x&<*n}kGF_(13h`_On@q9 z1BL7i-taU;S=q1I<%CrGHDIAC_kTNZOz0V$`EFHI-;?wrf&cWX`vAru3Q!7Ol;Xpv z4o^VtG82*c$LwU6%3M*RmXx^%@SG$m=1e(IZileh(;N{nqxc3IHJC#?qIbv?bR{+A zz2vDA=`d7#8Nb`Yq{txvt=+V-8J`pCV%RE%AKKz9Jkrogfa zpDJCFsvD^(D7g8M258Q2UwR@!+S`$x5KCLKSU2-o{Jc^m$?o9)_#)R=x^Bi-AsBRf z2wP}+cBLcEqT+2g+EWO2go*8Fd+HE>5-YB!Z`EmKPh*^^7+H}8vxZD4`D2YBAV(f3zZpT;7A4&jzQs%>#!yaSZ6ckEqI=* zc+3~D3KcBVhAik|+o!49{p>z?tJ1f8EfL_-!fmM}ybf%wk`PgbC4A|#6sWbg2#WiV26scKRwWhhM%(*Xn%jTN9Mlxz z3mM{#QdoSAMseLbw6O^_$e+Tb@}?(EcgP$h#%oVfqsG8&IU(qM#$T|6Ar*c5VhbA_ zIk);B8ZOPI5KX2^cqEKWZKuTdxIJmA$t|HLc?(-FQV^AsuXUBb2ZEEVA)WC zv)-;tu1&z6iAn{4!WZM!VYy}E3fRoyM#V(y`83V_aOkHJbr`Ez%ZCmgEOone=lT^E zD+vzUW>zYGaJc(7{{2vck=`A0E2}P%9T8wihcUsJ&*12VhSxGD<7*>inZ{2le#G#gL5^*+ub*5bBPykWg0l1NWaA~=MbL{TJ}IP}x2K9KNjpK{jj2d&f~ zDuJ!Y5Xmx7cYFtnZa;37Nq%9X!NuL!8fU0lq^(Wb(Pi_?@y`I(;{T!4EPaf{ctAJq;0fHLV%da+49^= zPg9n8nYRMhh9G94m?p750*NAZ#I6BorybGb_Y}_^k}HRQEvIZ_5-%Eds~)+jtfndD z)|5i_#NjL7v_~<-)gS>}Aiy}^J*8g~4A_v64Gj?~U>w6=F>pZ0UVK@9#hM-CNgcpT ztH4i<`0V4$tgTP})RGHh^l9cYGMUg{sSQjPR$-OlnD2CuJEqOr^e2AmN4h1-P)quW z?4#HVn>HHhxLR%Mjgcf0g?{KFxyO#UzvTe^U8s%6<77(lh~%mCdT-Q5=9iAI-xwWm zO#(Isug~ArCYiO*jg6kj$GkLG|;f7euh6{&FMzuX`YS5fe8o|`HpSxJP%mWP`EWVkd+X>}BK<0|(r}w?tSRF8$|}jo({G}{ zASuYgiwN|grZr-^`3+uqVl8fH0Pxs>m;XRBqmAP05FW$76vypBj~Q^84KfJ8^G~d$ zU`<=K2nC7aj5`+TT@m8;cnJN_--9+`hri^w{RyMeC;R8t@mLzWOv4gc+_W@dkeM(9 zLrfn%)lp;qUbJ$Ud^xcH`5mM@?&Iw{d(kFgI#Fr!HxvIwks1vRwjb6vF`Px#1ZP1_K>z@;j|==^1poj532;bRa{vGqB>(^xB>_oNB=7(L|D{PpK~#8N-AEHi%?#yZ>RE%VSan9~MGjr#bb5Fl_?#v`+P5J$r9WB(7(E*1E zOIK=EO{OeiRjbyHzSL)=%7Su&6OPGGu zP!*LW<2I09E__-fv=z%$dM#VoYmjI((`tKjE7XTUxzSoGkGN2eCKoy_pidBL zA2;W;)S?3N2k6>Q8F>0Eu5w17!sTu^>>fN<8V5hm!QB*odK!!TUP zm$xfD&RB8&xI&?L2)D}MEio(@7!y4cR{A*ziH{jXpk!ju zd61OA4`sWAGb&0^(agoPA`=1C9Jh@ zw-j9CID8=NjRvQvZ7mVfP*g^Lu?$?gpwm8Z&SK@IcBSk3T|0V&6QfrB(WEGdjKt&3 z6j6_8%De-S4qjO`d!2yGksBUWhq)CV*p>MD3lX4>clu~H;(I~}zz5zwro{3dJHeP( z0AOCq6-+@I0w;m!OP?j7o8&mSH%u1AG>u)8trDyiK~RnnFvLxzr>&{D#=F&Bf3A%r z7rXE=Y4ocGH&7Dv#^MIae%XdoC)5@xS|h@mAot-8bgX#1!u<{-D9tahv5iD7w=a|1@G%a5F#zf5_S3*RHZS%ZlqtJ z0Jnn0`2{zuAfbwnMMPaf3oK#E$9Ies0%1`a2pflyOwgdjew{R3hdCVk%ptT!02ETW zH&$6h2#f3%R@a8J3$UY(2el^Lg3D_u5922H09;mE-iGpdy%LIXE6r~d{`kZ}+_r#p zx7upIt#pso7uKnN3G1#qTVe7-Y`NznD7{4WskJfwu|%%J2P;Xy$F}d?d5T z`^L#&Zk~3TpbT+YrE}g|zT0xuUgb?&Db;MHL>r|nQ{8KAmHYkJLG^llk)cahf->#N zoomBP;Akw^K6bY?7oQGFB4tgww+rKSl*RkUvG`Fz2DEk7r|s`AJyofJHv!ZyA^Mxk zW(Qg+qNu4XN{4ZU3$EzOgaVGF=6hZAdrZg35ef|{36;sO%c@?rNiKdF;5<=V+6kA8 zA`oOQv<+{#4zFB}mCiZ54E;EI98)a~XI&E=|3X0HC=hgp`XJ#mXBvz%;b4hU=#(xa z%t0IwIDY9U%A}5Pom(Xu@N=am2B9(u1P7*z9ZbE~q}-HcGGQ=%nlezcKn!-yDW`*! zu&wm44n!O&DlIYQ1E>CsJO}M3MlD_7#WE`)cT4igftWmdzt-jK&v>n!5*kEntd*yi|(?nCEXB7kGRM#(I zYUW%UO)nA}HR~w;%o-~jz0U|gWCbaoi4|o~AaD*mlS(3V;`b+Be40&Z$SWOrz=(=+ zt~3ez`jcC2^T05j6+IEuAO|Uz2Vs`V+V1SjZJ2SZ^DrfYI!`!Fv&PaEMj`fN z)=_vwf}${6H1!BTZ4hnHzYuO>c;xM~3c;m}DG7Z?>29m9ty7CKrs}KDXwxr66!4gE z(P<7Xgsbb05P9bra}}=EJ13leQc%CBJ?-orE~CmS6Xq1+aVK&D^rTO>Vw(G>@JiRc zuT}NG-TE@iy*)P`;u*qDwBsW8OBgaZFJ-{?rq8reda~mc@D?7z3m(BMcn0s>V2PKG zGrT=YaCtl$h{IG+gn*pfi5?=OI@KSBHZBshFJWyfD12q+Q8;(!R@zW%j>^yv1S;fzwg3aY-*_Qa zfoDp}_>86IscjZEKsS1;x(U^U$4F)-1)QFK3&uS-7Fx5}h zP#BEk?(F$ClAY(YZ7tqo+3ISQQyZ$o{jTz&Jm7@@!XuP|^jb0}T+EhrHrgwe%+OUR zM8<#@bq3>_u!d})JDhSOJpqUcxMc(F!X?@kP+n<6IeBj3>ReX4zJVV^qs;LJwLvQd zZXJpD&I4~ZOz6QQcm>bkgVRd91U-0rv~bit^KlH}jSxUM%Gwa1L`8l|-hz9DA#_tC zSX|-AfF5g3$FSB25__Lg*YV(@xmIavvA$CkuZuBE8&D^L769v0wzlGf5~AI@8VEq$ z5RjYVlL`+gJqp#L?$v|~VJTj$MPsD)qCBNwG_k;Xa_6f&N-bf=uqY3I@i>=yOG+c; zOKD6srFfUs71xOB3G2z8C#Ecx1(h00fz#Sz!960Ve}sK_ZWu|dKv`eOqIPTPsL$>V zPzsJ&Aw;i(*C86AUzxJvYJm-8PP0LU8Qc%#wgdMHVVHX#3aC>~PH3z>-jL2r^eO|( z7JG;^vT&A_ni?HB7Z4qh*TXKICu^fNdF*-#)E(ARdc>N`kIVDjZc|6Dmq8eF2D)*G z!Yo%X)q$6-YHZt7T<`h0Hk4jyJ$2`Z&=MwjRB#Wo#1bV5v>Ok?LuwH!tV5cl@U_0U zLCB@7FT2u;$t6~mQhJ-pN4-aaN&<^Z{HbclPuPvRc^#ruIpcIo#KI5(f(gSz7*B~1 zk^%}sWZb|2Zwrsetn5TD%7a%Q#xu%OcF5Z|R-REkYDM+at{ce+WP6d;25fRmZ(r&@RZeA}IWh2JY=s++;Mk0C`!XNrzv0{gibS4$~;nLFF6QbIaNrv{fT zmC+HiDn7^Rc@Z=eCM?^lDcsstTRC zk&AY~i|{%tMmLt8*17Odn_Nd&*)v&0xSYWYBdgNBID+tYvDVNB#nK7R zp}N$4k2GY)Y<=IJfV+OkBg&5RT$$ya*ZMUKAx6x@bkUQ1_0?xQ0t<^U5Pt1wOc2jq z9A8kcWtHkm8-%0UR|>|Xs-c)qbcsjM5T3z1c<8)TJ}7y#aMTLvOwO&4cbEciM0KGd zVF7I)l&8;9TG~S#nqj&-p6qbut2~y)Z;428dzLSzqzfW2yl}dWH7e{)F*$^&`CYK! z89a;&6De4JiX^2uurt2J;@%PA62TxK!XyM-P!Wov@^HVcy?lq-Puf^wvF*u)i5|+( zCSiyZU-)|HraDqGM6|(egZ9$TtWH8zOGAruq}Uo$s80ywk$}E3_P`6cQmI{vwG{8S zY@$ajW&9iURrJZ!cFTaQ@}Yqn8}*ldEitrctoRPA_*5TWr`Qm!+{T+y+oM^$?%-Yr?C{C6MO+8h}Z}Y6#_q; zj!N=~DfYZdV|bBDbjz!&pM-hNSNgHnT1$6%i@x3!IzT7op}#20@doa@LYKDEy`o{a z%aRaP1cp)2@JKv@SFt=nPmcl_#v#W?2}ga~0|M{OU*Z;2XD+OG7LI{Zy49M>kBXQQ z6A_VVVXg!PagkDI2)z`dE|_B@^EIv!3lJ)1@*qYv(_nR*w~C*X4I{&pOmIclgRsi# zN?05jh@u?QMvAH-Z4vk_2sV{>?7&G|MV`67)Te|&8%xjB_^Vx{Y_z)SCa*uv%NQ)F zdhrxAMX<%XPb_^yWs5|p!7Aw~HkzKU9K%*82C^8P^6)X<$ATGvV-iC`e48XGp=&Iy zQ5%EuhW(bW?y{!JIz<8ZxDjw`O-LB!2g1?*=Yc#r65ieUi&b&irVam4WADx4ncCE~ zeRV`NIL`cqzIr&TBO)C9+w#s9d&9{yRVAThgtyXB5$GREhPqIm?%{&{c*72*gzywT zhFNb3HPMFh5ZPoZ{YvS#Ty2{*6*gL1`EEt8Tvu)5^dd5Hw6zayJZIpI?0?&%Cc}ql zGcj3LTO-^C9M4>3x7BOh-9C1Y^C}dN@ez)G{4DU3kh)m8lbil}XmH5^+jN%2Ha!Q-=e`Q3?`cHK?&~Z~8)= z)U2+&-b2#hHKO~JYKI#-CV;_gHIbGwv{}Ldg z^`RfX60I=&E-jo-=77>^@n+lV-a%xKygCIx39P~~$ z5`jdx^+$-~3{x$HzBB*lCpPQL-@ri%F+!-a&HVDWZT6S1x75Ih@+)*zTkfd{pLCsi z5KtyDq#E9~uVIw{9Z4C1fIm2fV6Uup*ykovk$+LvmC;ANYFeZeSsz|6( z!Qp}M&>0_{xfN9(9Vcx^g7Ko!0mF$zZ6rF6FCH4e)%z&}$Eu}^7EG}P?KwZko*ogZ z8MtPDaMsd*v&)K%CrS>l)FbE;D<;PtCMskOmi1Q)9+j~{bJ2dBX2R8ZbF83xTs}lg zA9IT~kTo%T%Kv#b{9v0##qhecl&|2V@e?q@waHTi^ zC`Z4T*uj{7@v4?X_zorn~$NSN_`hWP|9~r!dP6N@&&v8^Z9Q_>CCV`w(Sf#kS z#{~xlC7DPNq-s6ZT7J;I0-Xwja}gRO!~kU%BFeA+L3TRN_$Zvg97172M37}LFO(T` zkd7QF{PIDx>hNnG4h2RNPL@;8!omtKf=w3!_khAv^){8Cw${QOp5>VCQwkWn^`{s3 z{XNQherNDLWjGZ0f^PLC(AudqUJkk*8G^P&Sr^blnxLQ*t=(c4GI+^|wlcrH?yKm)bFp1B7$!0D|1hRK~@EsWFHX)Zh& zmce<^1l}Aw1ck?e;3<8kS@mL;LZiRn<}STdvT36?S^Man)?9i_!u*hg`DaS|uI0*u z-Vnr{I9@`n0Lqs^0PCaUVoLQosI!dibPbD9Rm8eamAn`KCz)xIs}k|TL?@TAT-=u=EtvBU^uEPFUfm) z5CGB$Q(4RlB-H`5DpF`~1COcVysPC%K$)5>Hp=C%{1DFI2o$C0$9kV~Qt@8PsSeuN zBc&{*COKYV5dSR59@B~Z)E|{0eD+%jM}nyQzLxeK9Vy%dVnIA*O0zBNn&jsdk38UI zB&3G{W`YAbt9J4HX}))U34d^-UsdrCBj$?_lm<=d>vQ9Qjtx8-09S$EAT|ggibWIBaG#A5-IFCtd#Figf)Y(6vxl$}To*VY z|VG!5%iH=H#n^@skAuc!J9fSw>&%z23^(`Xg;Q(w|FU#0we8y32vWzb! z#W~jdl*|HmjoodHu9P|3oqL(5GclC*CtD5=(7_Fj@Ie6}3vD3O@zeW92Ivzkd!T;U zADKETrM8(FxOl--m8c2lND&$LJq!9)tHo$s4^5yGV{rKd?j^YKWBkN8l@&tKI8uEh zJv_qqs|9H6v_>XGZu;)Lfd3>MBS07GN|m`wfF7ZofkQ_HK0zTt1T{YvfIOZr5LU-( z0L$tN$aURsQwR`DZdk`lzR2S@d=YXq$`ud6k~ z2^>e^Jx*H}T56PHX`hjC;Py#NVS}|6HKtTMquGW2lmvtE@kQk@P0AO>0)*An5Ij9& zur`J8Zdej{bjmO`iwJQTpk7ycKxIUfa4d*XJ}d}d@bIy=(^5O(=!PTY*biL!Cu}e; zn@ii-(|Nv)L=j~y< zp_Jd+NGRHJwuW&XJS86!I)Q@0NkGG62KYeKC}pHR;z#z+LCpsTIz)q5Muf|k7}1fe zyi!}Ugi>}8%PEVCHLhSKr2sGu=0haE!zXXzf(fOdiPX&j0YSiBQPnwxnFu_}i69<3 zV7aS4zHF|nwYH+hlp4^ErWg3i7c3gj%fZy}3?+(*fC*pc_OBKYcJLTi>VrV6d~6Qn z)y5f$a?Z@j)|lZwbKs@h5sXn_#1SBHkmzAqXPdoz@eCJimKs8{gTiwm=+6?|5UV|m zcQRG8VGT>bnLduD7K$eH(@nk8F<_>iyRt?ycpTukQNRc7Vl=LwP-V2e!}h%7Jlp(+ zD{RNhFSBj0xyVL4THQOk05hp0+{%gRHt@+E$hiF9-gCNa)r<}W9~4`WsLN8`*y z5mDgGvlyct5h5#&*JUilN*NY+x0P>`KqhS{yV!d3=Smq-KrvQfmK%a-JoJ2k{RDji z>=XXT8%Ft9%pZr787a<*Q(Amx6dDIn5l>*&vjEEQd}>+Ri&yb?t|~e@T=a4WT^N#T*^yQ*~CDH!Fk>Qnp+c=GHD1_h3lCVfAsSgFM)Af8QZ4G6@T;gtx&9vt_9tv>^ce{=eq;!Y7Pl=ZpPA#@Q z`SXOIPiv{Ww48M%e!fGjhz{P@VD)3=Jh5|ezUG%Wb9M8@^Z z8IwgDX2qfB!Fd$7f28eL!7-CY9_@Q=j~5(2g>+@%Ney+qsl)1|gmnceVL2_OVxN%$ z3V}4sl7vPjV|5zK=SwNeN*SH-mUrdi*k1vuPw1P{;_H4pN83sAj=tyu zL&tRqBV;9fdp1iG;VBb16>XH`p@2*0wA$G-+a(+&wHxYUi`)NYf)9y~;k~xU3yzyY z^5k@tb*ynX!0^yQgQCic?WSoKoYNkb}c zA3ATbojhf7lq&$W#qIvm00Vn0@3lQnaQq}kx`7}w*Oq?fX=^SetWlv~R*KXhrE1Yu zHzo#eUauVCi3-BmyatT2>hR!ikXLp*B&^~-UNEjwJkj>&lux(?{Py8+Ji%{WNwtply|%{-j+;Wd zq9}aB%2vDgSm}}b{M|2kg{F)jtIs@RBR{>#k|iE1Qm56~Y(-;8DPS)2-Dghu#zSt} z9BW#3jzU!_W<{QsvF6?(I2YPThIOw*u{^)_Ty)9>N6JT}5)wkK&LHi5<&gv^TOQCE zaTyQlGEL6J(y<$aqXmT71zNZTu?BDOfi5y`LZ0g=2k+n+_ljK8Mn9Q)>14T^fNM4N zjfcu9z4h`{-)^f)MiCazdAPT_u{q6^W{7gKniq|I$<@Mwbe_=CpYzT+Vv8j0{a zC`8x&a6+C#=AQs@y|j<#=DoJra-VQbTPe|^Exgw@SLw0#^8G3xKC3+pF%yPrIrQ&1 z!E+(I2L*p@MIB(Z4jyKB%O>}Xbwws-Qa13|T~;j&MPo#~Aa9JTSwkUA*buivut_Ig zU{jX9NFi#*npBSRx!!K;zwgK5KF=bA8}2ZhP!X0q7q>l*1c+o1D6A)fC?O|N%nEB= zf5jl7bFuN;46LM*IweKzNNB?vVbNZhVr&UzGg8u7tu0Z?kzrgoUFr4-s(%)MHsvBw zOuw%uL(8oB%IO{AZhTzUkDN(W+tK@^3wBx?oh zEL~@9g*&Xh^pK*S2W|4$T{fj~gGg5ppTi5P!%h1zggKsY+-eVxGpTwAAo}Dq9;_3g z>%^$63@5e*=CJph&egQl6%?*YesU$=&6>8h6VJ2u&J$eFv&E{cmY6pv`4???V`b90uV!zHl(1`?)kGyx;*IMRex19^pMT zcu2gZ=p;|Z?T)k*#66^-HFspOfTyTh@R(7eAQpIk4Tw`G0O$Jk;}bgS?cFP8TYDzw zf{sCkei@XMvM6bkJFekyO2)OrT|XEwbM8?bMnj!p@kjh#+q%kX?*q5lJeTCojR$Q+ z&f|E&aZ^ZG&hS^1^7Ep&h9c%g2sZ4KuV;;}V?j~Yx@wqxowxi7n?8A=)s+;>7c$ns zET%l;wgBP3+`B(f6sCss_({T7L*f@(P4zt=wx zj%QTY{y@YK#?Z`d_|1RuGk&kFKLEgO4k7RNqCs7GI7dm37aTu@6yiP}5U^s0aHLLS z$gH-!1faftQXmx8Qypcc3(8k7Ynf&5H~+%~PkCU#ReIEp6jKP&rJoW_}+LHdroID_ksdN7ZWLXhTxn@h+>RcWO zTZM`XWLiJ$$0wZFBBccQjTJsz3uyh#qhs zq6xeO$>RtCtK$R}ycm{9tq8l8h(z)fqq)n3&((-yt z?i2@l?TIztwPF#^7!xD1q9Q8wvp67DL6qB{#5mp%;WCt747XiC!gnk}u>Pxt{`~3s ztxDMYZ1ULczU8aE&WZl)3b*(O7mDbc!EaR z;Eg9!f>Dp(YwMq0mkjzXFQ3WRPQxaG*7$M4;{nG_A$`qbq(4l&5Z;vrd*u1d8jERb zOw`+@^WJ3hn@$oE;T{#MdGh7F<+)x;*xud^_RzYUtW+uxO?W;S;xmUj7G=eBS=0)u zAVx_TAU2`M@di90A2{XBZ*4_gl{5Wg&_B$`C8jI|aXvbx$<(RPa;qj1$^ zqYNQR0nH+zmjYloiDc?i`KXp>2eA@P+~Z|YIFfv!hBn&5`#AUHE_q`FuWq@ZtIa;R zd~Q%EI2l=lSb5lDrS#1)-KUswUchmn{pkEq5WdbF<^sTpU+UzKArGS-| zB#?Z^3yzyYVjWSC&@p;dw!1cb$HsG)t4$Ik&g3~78ap*w%BQj*qK zU29F1$6fG3coWEqO+shXC*MK_C`Jq6Jp=LN_o-$+8ov(3N2A zK(MQ0Rqdi%Zygo6+U!Sr+J>-7pk2glQC!{-D@P`Z!hYltwtXNW;KPgDb- zWJ;An@R-{PZ4IG);o^Q!d;aK)dvGa1Oj%bO`Y3}!eLh1RE1>pV_XtYuk;=6x`J7!c zsomZ-XPW)h35)E%mM^pKoPLU3cgAwNe)%c()l*m4UoM(&@0d2#&T4H^84ZgNN*{he zfs&8Ioxkei@q(j%QSuQ%oxxG@l4`f+ZmS;}WLTgAj zT4#2$dpBlbZ`t%eQEbnf%7iFN=>!s)Mc|11#|?PIro#6+)Fc8zNF5Z*Y$&_XdNSvE zdPC)D>lnLJIB}h;64oT+S)mU4$&3wVPS!!inhTG5x?l5}4g;aG2o9cmTnG;U(#J9j zv`>rnZT>CHnj(_k>{-GmZ`s6%HJ8_N2Unhw2{w8nfhSy*ke@fB**Y4+I5;+M`=J9w ziU^DgD0|U}9ar}gTpfq=P%f=QZgHSuw9X2r-m!#j8X5@-j zg`Dc|$mZ;Xx(2(TrNgf7m~1np!~>O*?N)>a?}JU2(9%r!Id*WuB444#jA5>)|&>`+U)#XYfII6xJgLcm7XfWVG>8SQ0Mmy+%61JMy#dS0>(nwr_;56 zj>vInK&ga&R=BVd$Xl0z;6c`&?77a&hVn*hDc$Ph78%jt0hKeUf*v7Az`Lac#mp4p zZweVvNIcZDz}}4y2H?fqr z^k)p!`U!10+t^>W?y<6zQ64sp_Y@sfVR#KEe3v|kEVSaIJ?^FIER#xGdp2t?pE||f zw_v8dVp^vyZ*8?{QnH*JzCXsNGCrB3c9~V?Bf;Q711_V&EudMmoUYHxXYI0;Jx$?qfOIS2a5FeR83xqlHf?dt(~HAcl65{>qn zNw2fc+!Uf3OJFj^IKn={!++TPkIp=l5wYZ{kwCZ*>rZ6(@dEdV!o|ZM5pFOu-`~4R z`@9snW9(<)x?3O6L*V3Dc`bu-^=8kL0xuM?3)Wg%B@ek)N~#{HJ}1jDz`>N!85*S% z`Vm(5XHM6NJc6z=PGU7mbL|=NM#?A2hDWJXcm|b8v#hrFoiokmO@ivsz;_WSZCttb zDP63LO7QcEyqTzs)WtDd+<#XJpl^i4*aPJ`Lwm_EcB9?PzYW z?ahs5p&!8y9>hrdJ5@&|Ga|p5G5T zju6I-ahSq`tP7-I=QzXpSWQRy4i^>}4e&X-RGA4A1fMSSg*=oH~ID`~`#Ht;67!4;fx|-qD8WL2-V^^Kh zXcy0Ea^>3xhfzi#643GVsO-Lc7^{70tbXxx;lKxbnCVPQkxEj6uRp!VezLRQs+F?e zN@7Kk)3q#R^Mx3csn~*+oV|WVhb?K&YeW!2Y;N|4FBvm+q`s;RW{<(0i6p*|w!69B z?w>u?Zdo+b)^#@9wzd|ld+ce;KC#YugN*rXYf1ItC}g}Qw>H>IzIV5E_YEm}>-Dyt z6F`oCDGC`06a-3Dh#3L{AWlKYcpsjn$ZBl!w$?XT7h#>4?yGN<=fivcGFU+68?Q?O zhNb7sZ{!|#P}>rKLEg=pQJAXMbCtE$S-4w$kzfdX85NdR_%QZib!~Uu`R<*d^5o(j z?oF9dd9_T4reAqOt}$**>XkNq>MnEw$C#PCfLq6omhtn9i~g%K)F)tOm&S(asKI% zZreOG=JEsOO8VpNb@07CpRiXl%*|hT)Y6wy$r;3coak z)aJ9F@@!Zp6p6-t`Bv0A#OJU+m9uv@yvb%Hru)rUX0-mO=Wo5!5D4ZYG>*9HLcpH0 zkl_&E!l9PAwb7klsdL_Fu)(?tKXah~pMW1-kuQ?sB5b@=nfJJ2O(sbh>ngIk%Ey}x zFffF(%y#+b-VX!b-)9LvhK&H>b_L^D0*dD$TEWOA6FFB>3VyS->pFdD8rqI)cW@%~VrG2SCwemtR@`ztAY7M4;tY#WA}QJ&9gR*N=PN!mX= z)n}Urhn1%GF~=%<`Lt%cY-+PL$g`8r?;+BR>H$(^<&`&O0+EpQx|8SFjmu872WPa4 z{?vo9GP~-oC#>|9Z`+f*dR%$A857n<@9U5ASeWquvlkM+I0ZuM@nw?73coCc1SSeq z%m`O7A;1+6Ll|s}Pz{#1e`x$8S6ImN?!mthFA*ydncTwI!(f#9xgy5lK<(fe83)pj zhT?kbCVIdquhv~f|cI9KM z?ag;TWl!wtwoh%@VuNK2Yj`U_8IR4|A$0DltI*eP6X_bp)C~iDMh>4V8GNo3GFT5R z+CIUeQo^=iQ4kEe6<+?NCcP8kp<^sD6CZ?lG|yNwVPDGsrH)8X+uO!I;&o#+`Cw={ zS(Ng!>O)rS2;SwnfI_;JTru&UjI!vdm;l5wl!V088}o*hen5 zc?+|4;wP#RDr8GP=d*~*5 zCH-+ZNr<}a0xn~WZ^S5jT_}$7`peOzj2MyIcZ}J+-NW|Y`R$hH?Pvhc$@*B)O||Nj z{3vapE@l6{;zYal^d&Z!<8_m|sJd2c-fdSs@|3;&k&P--vs-)n?UP%#2fVb!5Fh&< zrJHc=KseO3m>-8L8w0Y%tsnRRJuxyzt&r{|;$smT&&TSAiblddgD3CdfvOtxkSDSP zZe5h-p{$Td6?=VI$|=tA=oL!K`bX}oQ5LH|(b^sl*jE2WwOVi4 z+GA42d;D=7nB;wNBjepsx^NdhTkC(@O-p<6PJg|J8>Yj+kr);;_CRoj)1K0C4$lj1 zQ8cb=Lm54G*+@ zk<{K$UB=dSwz#omGU%>(OaSFg*Y@8Qnv6`i5P0#`@iM`o`U;jrt8A z)tZ#BR^y4CG3Pm+nwNypP8>C*t0f6+%0|WO9C_#?-b*q;U4aRKj^9}}*Z$$svuq^8 zdz`pbvzI@%)~Wa=>Ftq8qe=?h6HO`x&J%j}# zoqsF&ac34|wAa|5x%FT|-U%e3*YH~2QkG91c%L~qKCq?nx9Ek<9Ql&)RcrK1P5ON= z`T^c>n0^bFP0eqWl~!03eWW&K%%R|j42xi5JscfaFN~ypSH5@?UhG-h!aglUL`CTX z%9xgSBps#AM#puDtmk{hvIaYCYA}58ls*$mVi;YhBfQfxP)t;LxTn7|G*S+*+}>Pg zJKGxV@u>~AuCvqDbhX*mmO8ui$*s0x<1V}KiLKT$I_7l5B_}F;Q&e~>MD*Jc;HLV5 ze9>mYcF9mw^Yzv_FrXGBb80HBw(p%a#jbhj1%A6i2w2l_!QSw|YP zmY5?Ebxr5C1tDpQ!8)N1S5QL4TOkJ1$#_ka6hafG%&kqe->JUbPD{*n`NlKusr1{A z)2r;d#9cOE1<%Ku=fWgUP>SOTTN>Zu#GO6zRqchph!uxuF%co7kAsEFriR~iMVLME zdAEAd`*3h5#vzOV*W+U#K8n*&H^6671#xR8E|&JuX)v3zzrW~AJ5640X5X+v z)1`Ln!l~Zh>3yU2yLUcf7p~o4^@XB41izi4Dz`T^+sEckwXy%YS$K(mGO8Gt@tOKa zIZ?_Oc+XA@q#lZ22g0+?hujddtCKZ(u4JZSLz4faR!9#~MSPSy5Hctl3_y5UE>5uN zPi8AGo%V8K5}}Xhmmn;#DfW-WcPconS5a)X*eEry zhoH~0<3|gdo8F?|s?8bt3O?QyjJ9Dk{lSwHvN4mX6e;98)OY0{{-T&EVG?Z)2M6MR zsQf4r5a%bKZwFCG(#X#-K9O^-6Q&Zb;vIdxsM0g?jGk7_T2nq_zjId3IvW|!1)jPQ zl4qPaGyn(CNGpveY{JBjUlDO6;LO@0V-kAOL*yjE)(J*|r+-+wS1T86xISk$FPUNY z&FS=df9q#!ZSjt7R}}Z~D11amKI{vw)pE%O@_GA@b56BumoIUg)P()P&G*_{?t97= zheZT13Vw0RWL@WEd(TVHvgsfDilv7}yhw?tPI!g>Pzqdw_h&;=<8pWYj*(7VW4r{a9(~r3Vh_gPPRO?>P@q+&B za^YIF=JLZdDPs{@4k^ihR|QFD(@u@XNxr{;9k4< z$<4NON1xrbV4D5oi%(WPS$WTX$pJGEf(V^>+9xNEx$>DUwqnb6yYZxjT(Fm}-E32P zM=V*C1Bm1cWxU~(#rD28TxPTX59A};8V(YA)$-{lx0p%Y5Tv*gJ39lML7_h;|P4-nm*2! z#|u^uYtK$U!p&dA#IdgNh2-t^Z*$^KANia!%*U6<0I_F`!D%reEmlUn9T3_KdE#q$ zM*s8sjhqK%bdRYqSz{(`zq?XlY9k&=v=!Ychp_q$Z~@VPPd*^BN`n?YLpOV(_$28~azJ?kX9ZP84d`lE+z&R2iz zWu@aPU$vsVBmMN1JC3WoqK{Saj$zLR#NIM)Glr1%^AMLi5+K(M>6qc(Quk(;C7!@J zY7dFL_2ka7vE*zahWC&#plD)XHCZq86@*r|sU3AtOki1*Gf7#Pg~bM)RGne38C@<* z&EhQuxzXf-dq^E;WN`_hvdVp5YJ+V{?F}C47=``Wz(Dp?$FZ^Wu=ZjM0wY(+QwAQw zsv|s&;#OAPhi^n6ylwKReoKUo9wi_wacQTk=;6ntYh&^S2B27+qipUS#aylt9>$L{ zrI|U6lrUCCyyfhcto_c)7VF9(ddNYhB0{O)%}kLk1Y_IoV{%5}+K+|BctUrH>_UHyQn)~3s)_)O@ z@Qo`5d!2_H6sV6nuk#rrU-6r`cniW+&#KM8yQibG%Zu%6J-_ei0k}%OVD$rt{1T$y zX!&=$H@i;w3uzaeqeFWlcpT4oN34#I-TLc%Yr|Wd;4?m}XyJy2wu7ve(}D=%ex~>aTDJGrVTQ**g2+tIoIOo4f7xs~)k|F)6J2c;mA9 zw&tlFws#G;TWVI)IFvB9>;|DMFBv>xMSaG8f?rKzRA|dwi+fDrgwcp6dtxt%aiMI? zo4C(09C&^(pe*%4C!(>q1j8dI?=QMJhXOgBZ~=K)ISGIxE5gAn(o6CrbQoc$^T+|V zwa*5<6w=0HN!SOUb@Ean&6QL2J&}v=C2_+f5aw6_qv3;Unv_I^uRTY~gTN~fSRgn` z5aHBjqU0uri4Y$%2@ikoigE}40k#>iqzTnYJ{?F9{Am>cCW;m@K&zO!J{2B;pOaTW zNsfbp#pzPMR94}rt|sez^$mfk5`vdZi*9&Bd7zpU6=hs9sm?xhS(}uRHv%Y4%)py@ zh$}&bi$38d{Px}6QG%)^G!4oa0fy)x%IHSgnT){82x(79AFfeEcxq3+Dl45t8=q^S z5tk#>m9|6Q&)&Gh{@?d*^F;|Cc+thSW>T~AR4pTfFdR)|!}j;zzSVA7GRv-f&+F~_ zlNY(dUG?x<`@>SdeQ-wB&T7nBUeyzc<)Mvulu591H$)J$oiAsVmQ|OrJnEN68iCef zEH3nrMRG^!K+L;|aNzmDz>SqEMJHGv4IO>g zq!4bF0)7ymer#^km{4ichyOF+ul6W|myB1hIN?!k- zZ-AE{%jj2%;-hG$_S|S-a0O+?(!vE9(-rriZYb!Rz{i{s@8UFoqy5e&93K>@Gk)?Z z)nL1`msly)YN@8iv#!Ay{lXh)rCY3+Y*nS|v;>ej9icDcr7d4wV|A6S-nP%k3O|I% znXN4;gkb&s8XLZ{ywYFmL9GxliA7Z|#F2LXwCU@%DZNXVH3rZaLRkd5qRdbacjMD+)5=*;CrWz>9524Q*kZfhPb z*%xOlwWR}lRR?Qe`5sKkUb1$h?HR7K+vd%(?=4$wGx~aL?(SZpoVEt_YiT}hi*i}p zD*Oh)*R3q=Lt|BgkyZb|2mF=dG@S}<6I*zx4fy)ERu968WSc|-5 zqBeYN3j?aDyzR+eYK0U}#EY7^dr>Y^WtR0vvWR0sTQ*o$ISlCO27~=@3&dZ`uEa&9 z>Gs9mciMF0u^1Qzk^=pFu<=^^X5FelB$%rFKJnlJa`X_-auIUE6v9vNLR^^~*wpx& zI!{|m=|S~p#NV4!b^=N@Ffa;Rx!FyC-J6+by}1jWS?yzYj6eIxIST8Z2f>n|V($tm zWr+c%xk^UNb4IGnM231E@Y5b;Wz5HC;<@Zk{ImQGgN1>SP&H?=_VyJ`Hg6JdbJGYm zq8DM2&wL6Gi0b!_Jsr}k-blGT99Mt8d-g*6>1i|V$!QI?qlHJZLVjn+p}-Xqx>l{T zcf@A)j7i6eHgoT&b?zCmnR`a9t9!_nXx!H{R8W=bedM94^jmF!F1$!fIeDEwVXu$n zF&07rdR^OblC2orVT(t)eTp14IHDdCc2} z&3@89YWAf)&)`Z65>BDzE-eNwKO484mE{ z0poPmcIIB}?=Yn;yabS{^xCw-4@K)&#$7`LBx1k&#*0)VxF+M&rV&l-A;d8kr4Tyr$;3iHT6}Y z9r%HNQr;D=pqy*79X4orJ9BJ@@W4=2?fywq>|HN;xz#$AsnzVX?c41iKX)x$8t}(Th*Fc+Cm4L}qc$egb2Jbyjt^7%LP5uj0ef=i+gOUP>IMS4-N46) zS@pH`HfiK;^*vzKon0Bez$<~sR(87pvf6@cjg{3ld32R3(CA5cduXgb@1uLxu!hvz zK+z(l8$Ty}Vy`V$M8Z%%=g+e$EmBIBiKo&@o7tSPcdcxzMT-TZm>7cY5{S-bFVPujxW-S)As-eM;_J?L`)2rWvEl-)C$ zumCrTmy=DJ!p)XN*y0S{}h6jD%S#7jBg>R+9iJ93#ks zC~kP2lg9v9C{<4_2!>3DM7nC-IWduR2_pCh#S}s^C}o>!O_lpq#(QXc^OrdD+X@d` zd-)D)Evyml3J+6VR!DYOv&Ns?_lrL{Kwg;OZPGr++MwUQ<8Y1#WVRF~$4vX@x2@=CFc2+&=9zD#62gt=Or%bo^ z{oZ*tR3}AbjWQ7>gUgc26@?>;s5BA7HzrC=p<*~!zVS5jDV_W%G3e-eg69u)?v2Si zBsq_+Q4jN8+dG=i{{WFYfNKX??@?(?zo^nXcO2DGl}mh2Q5svDw;tht+49AjuTNfZ0;e#krJil0pu$ z`V2Xye#s+EAZl>MZ^y*2-!T~`oJXM4LxY6R9hrcQm{utjn7dNTuz&cVAM{Pfa z;g~M&OAAL)iV*SsL}lW>g%To+{~|U~x&7)sI-tJrT0x##K*_OCHD5AExE#2SufqeO zq5M~@wfLA0s*=wp8_e*M=Y%y$@iMgmDRj>B;5AXaj?xpZptL2?mM#Qi;>HNCtM>VG zMML2v94Udbyq4F4r$t#&K+3cCJfSSdURHTozseYYZ?4Yno;BUBU9`m3=BHYAv}AJz z`y(2{Gw}zbqDne!%pM%+vZ?7or{R+By|%r+Sz-4i69KJMpR^yIGuO_2WT#E;9#KQk z9E5m4zGf@3bvC5Rw)$91-FhPgA2RH6|gp@Jh3v$)47t6&bccWn?w#}bPspn#x>_@G$?Yj+&tYe^J3ku!JfZz*1x~wkEN)6en zu}<#>Fak7iBWrsOSFl|VxW&>_2=)wkrm}uPI(*ZC7o5!lWJ1_b{oxfSur)oMly?}q_eziOL?8f zkvmj2C?De^4@Id@LXhUN41ZMDvE26fbqBmrSYs&=k;9lIYdi8U z6%*Q>NMYtQW0~?En_B##l8U}26q{L*;_S&@p}Z~5OVpc*l$-=)%GfQIt`x26FZ)$h zFo(TNVyqYvH|M6tCM(5!^|HLJn8CNF6^d%C zNZs_q$Koj|ri6T;K4rI_G}Z2%-)TQNrOQU^bE*s1gt5?$5N%92V0V;^{Xsr!qw=T< zTTv?Vcqhj_m!yf%6@k(gPgwZSMG);AA0WEy?K#kSf#)L=ePx&sXFynE5DJM=(RM`F zqoiq8yUNWS{x7@7UsJ`W!!AEg2Sdh!65!+hy23HC(VErN;{fn1ikOOl-J^8zz3j zwRqOm<%WF($k;@P^T1d5PF)bhClCL(DkOwJz7TzG3NW_9Qvtk+WH2+=N__4>3`*5T ztf}<0n1KL`5z2kX&R zvYVIAvQ-N;hQguhGD@xH14t&4@>mEK%IFW2V`=1Nk|Uyv#%p-Q5PoW7!UN?~ILD)R z$dOO@a7>*lhn08vV+-UAz`0j0a5_)87~@9gbr6nq7%8YLEuM5#+kk56SCJm=dsN>} zrR`Old(Gw-_Shda-(#oO?^Xph8;~bmTWqxznLRd?tJ;-+_!b+UA-XoJUTmNE)ujG? z>QBCHi`MT|Q}8s@?lI|n4}=LoHX6ObH;4@sXU_hNA&{8wm-uu>yHd@$rp=boCSn>csx8R zD_3lAgr!RJi5&70MrzNu9eL8-iRj9yJ;dUe`k_Gt&>)h_pNB{Z9VU9nK>k2x zB~vA#Z$e(OHmqZL%A`DHRl~@nloExkp{Uv}$USWz?7ZJPb3L}R!s{QaHlsRh|919i z_JvoSX0<7*G_SferUcQ(Vo^%@U0bqNS`OlB3?t=jtB*TGq<l#r2QR)T{v;=#+)+wC>;5_a-*?j@4ycM$E{XUwz@yk(_*ao-<3Alot2~S&U5;6Zz~o9~1dYyDR`(%-}8e=`i zo}i}d&kVKOO}iKQocCExn{2SAkY4>iZ_75jVa^FQ)T&5>FPFm?^}m?S*ga>>w#$FC z#_}4g#s)6QOs@#oEJL$6o3sbZEJ%P}k`ti-`Pe}RKNUY9xhI94KzNZhQ5gk(rVG_% z#`fkf_a&$clY4?pxG>+s_zcB@c|KXgkfg=wv}?dnDL z$e*8UukS3|i-v|BKYngmI^Ev&j`KV`9n3QWi)9xcQbdWYek82y)ouuBT{^S@^c-bZ zPVca;=|43f?>Jgeek5MyUGXICNTDAqeOw8{WDyGMAsEeZ?A}wy9`34IS4B_AQhR7ak>h3H64@_0}t%`MX3XXwD=4lLMo=}tvmBlE2KI?qAW_Pweg&5yqp?9 zU|`P+5g^Wfn-kN?7OvCth&ik>^1X{HY1-U_1dj>5+!`X}QXZzs{nm-n@maiZ7=p8C zJIT#^6jq9hBIEf88*?h}YR64|Sx?^n=8ElkQZ}rb;!U$)eS@`T+=X8DfeseT0{Jug^=eFXF$#ftjNL=@#5Q0QIE znn)|~ig-wrk@x{cL@P)~>8OLYIQMjpp(*8XSE6A>>F#AkITXjep*9pymwcO;&bh9+ z_al!s_lmC2!rRN~n0uforkB;;>k&^V3%a1DYr}=S{h()oJ(%pWg^fLS_P`cf-!;iL zO_xW4Rz8-5W@g=O_4dr%c6-^)PpcA)6rK-xfPQ98qQO)ZxL;|cFoR7wLRN+;q_UXB zXG@{0E3H!fnm~MI4K?&Cr6<|$?3GqdHAMUp8WlxIE%oQfL&^pyqffb5r~>zNaTy&)WeFKQkLMGi#Yk6KU3OpS-c8<9j%{Fa5T0s<%Sx_7&pNFe4ku%h%OH#lnCJeU(P%uRf zu6!=-p5|e#yDl~fuPdg~&vtZ?g?|RBh}P+#x-bic&tb*d2+A_FC>VS>PQfj4dsf@!$CX)3t>G?o3EG= zv(hMlJRRYyuj$oz)4zKunzBsO*R7^9rU=Q>X@!+yWV6OC=gn@gH!p9t3m4Scf{whk z)+ek!Rkbx5Cw~9bnfAFCEwX=j*(vs?H$G|?KepYjJ9Cb`?=5F~m|DzW+69h^aMM4} zUW)kz;k zw`of47q7Rd@v6@mFt$`1;zJolRYiok7-nBM4q|vm>PR%%&g>OdVXQ73d;|gUktyV8 z($s&hF-;%tl^|plx3WIocmcuT6mt9;f}-R2JXkfC`H-&j@q31{z9of-j0rOkOvGf; zgp#ljW%OGgO5-cisjwQ{IvVTj>=|`--kdtiNn5=w3F}~e+O9o+fn9gT9NXGf=eV5t zbdP=f>krsH^V{vym!4!h+VfxwUszlKJ61_@=#X$ zk_?pguG7>*NQk_#scP>IIKqzzWxBT?kl^LDachQ^MI*{Qtn@*Z8&uy0HN+Sc3L1wd z3n+uqX4LG{ldiYL=^nfKLvOZ$B^oNsQn_q!LoW8}YE$2cU3dAl)-({lo?J`G6RJ-M zf89u0d`Q}VRL1NnUgRdjQxfg)sN9RJC=c(N^_h89SV=HJCWD}~?)1v&lM`yhm6nv%ud zLjA&Aa>4s>)m;g<$_;GNfhzH3J7G)sk{wnp@kusmfQ+_lKp4>JIvNojyY>>=>fF62 zTR28wy%R2r%ID|WI7i9RhFHnHn)v)6TR=&9RL;|M3~F&5UZ)h0dev8VFc_DDJY(x@ zdxbq_$zsJGSTKX<*DMKrrTtDD{TJ&p3SXP;B|ng}f~O@Ome2+91n--cH90|ixK~$s z2La86N5xcJ^)N$EG~u7+m$8F8qz|PR`3f%-kanOYGr1UxhSEA6wZHS4TC!e!Pg#AL zx5NoK=FDT$^a24V^dZ27bmFm}qb?KA_jyNO%bKpaXXL?PXv>p_+{maUnQUibCuvRD zter8n$zHp($*$1W)htDVsd8<&EE3v^X#t0T^d(->#l?dDeVm8QBJT3%=Xna zDb?YiW4{ESWGD~`q(a3p2nTZSz}~BR*9BD^%BmB|F}ah%9vLB&5b2g;>DVo}q`l@! z8Md&l4lO_{$WJ=LMLC|dMBzXvR!p_Sm=i(uu$Ak&OuBZC4Egl$&I8FtDQNW|W)eWFmdp=!>`9Vz?m?T^^EmMpbWbH-{7%Htmp z3C>7Iws~%c)enr?sgLeZ)eu{OD?Imp@-i72TIFPt$6tx5LU6~ID^dX<<>im@B<07F z@OqMts+J})fZu|K(pqaTuCi2X{qk!H={dr`!&)kjxV*d&0RcZ4#OZFaV1!OdL&V3g zO;AQpS61Fw!&ow&*x_YT?5EbJY=xBYWsBPF6{j@Y@)?W`6{2CG@kC<8KwZ}UI{3uwU1cNU&1W6>`5MhFp26@`=r6G15z%JcClVdBmoqnfJ?+F)|7=$96XYC*=ii7#>&ZdWeh z+0uByH7tmR#jV8$L=!cN)qH_zW~^KX0_lvcT&)mL7iz-I_?&XOD&^ofR!qi*S+e7kS{WLG@? zJ$iw=wCy3Onv4{kb(k(q5)RL!%%S~AdX>F=aiqlH|^9HL%dvsgA1QZ zAfzsoWF#MLNLr&ZL77Ab6afsBEmj~`x=2vL4GWHU;}85O1F!j{Jd9w+=M9*rNXd#V zoixdoO>VX`q)@LqafZF-#7XwXlcw1@^P6qyl)TMq$y&XytWhQ4=lEj*bs)iGalltD zTxcKqjTN@NU8WcuTnX76sj!WMPW&9a9YM$6^MjmURNb7Ajs&X>FQU4^!IS+Q;3)3D z0AU^L(YDiSWreEAvd!H!YAe@|*}@$qyWwndNifq=DBj<}2lr7xDV}Ada42L(=UJ7_ z4EVm5>C^F0*wVwQQ~3z9T`BRPgoBL5@P1$ff@(tw?gDGkUmm zsf4%^p2`pQgpM*3MJ_*AKF0$kgOCF1W69XKf{DnKr;J-$l-;Qhow!aR z`6V}ExX-)^r>=&2>uk(hV?JSXTH9=DL)Io~o7dWG4H??dMw=)GI5WiwmV{Qq$wMJf z7asJB*O@Rg$C%^3g;VSkS1y%zY9%XW#OK<~KKz>*yXkDo z%j5Aq4k>JnZ#mkCXevCC!)jOMnEdexAnGkT-)d4S!b6{NElA3TTFm+;TcW?qYJ)l+ zt(UGgT6Iiucu|A5a?bOin6`2_0^Bn zS1G2a`*2;`imvo+zS(H_Q>8L?iFjQNO;WbJgsf__nj5Vpr+8k%#RI_*oYgnfhhq5)l!KUg-LwpeT_{M3l-oba zEgX4D1MkDM_EXcF?b`Df*>_K$9rOv~;fg21`~L7im%?ihRWwqtDAD&A0$9jjpa;qt zvVq*VBD!Zl8Ce*O@<fe#Kwc* zjH+qUP(bQnuk!?(LRnrIh8$@Ono#IUT1}qP+bW1=eUq%#Gu0BCPPE!ag^Gi%RvVRD zD(0myY#8f0DXg?be68}ao-zt3-na)}>E?#!#pSnY4Nu!Ra9Uw7j+P~E5tLs%b#M(0LDog`0I!6bTKDo2S z-n?wCo!HgvNMpUB0jR{sgpUXq0*@E<*GwRULO1}{pAkvuxPMd6A@T^(-s>WKCCvq& zbJd05(qkzZ>G%}dq74L(OOBhD4A*@o&4pbA6!F4S7}Tx&Zhi&e7}f8kl!u65C|_r{ zoYdtv@gJDW@+>Au)Hk8!-<9;PL*cl80ch($fXOJlW1@d=Pgwfof=~wEaFu%Tq@he4 z0SF;&!k0Z`9wgFlMb=3I4u;ZY1VK0vHH&1P!AEsTGop~X$0BFwK{ii0F9^v zMF4jv8Y2<%N`aKuZ%^R$TqBjoyA_Tp??m7_4M%P1SI2~%w8LU^Ztw>@RX{1BJ|3ka z4|VXGj>o6B+F!kPg?;!9%cYRhG)`;?ih=TJ#~2kBdU@KQnZp9n0Bs>XI#MMsdU(6N z^GECKMUQN;!TOwS>tL=PoFao1)r&vpH$c>1rO{+qtUx9Sg0lDxY6wGiC9haLY}58C z^i;OR&y?-km$um`PeyR#6q=;ut%&vbM1kM(5ffQ1sC3d2QF=^EA8o-i$`W}{)*rP{ zUaPZO(|{#sJ#Dqqe_(c|w#i#9k(Dy2#I`32F%_>GoPzkz)tZ`1PL!8AGAj;+K$RD;fth@$IW@QPPU|UegxWLf? zOUP=n7|c%YEfnmot=;zBr?%R?+xOaY~M+(N6 zQ7qOqEQ<2LTy=}f7#q3*>&Z<%dd?WHf>ec^`+CEH6vfk2*qsT2sXu4}-ym`*gP_x< z3Ng?ZZuALZ^Ea&PoOa8)*40Cq4McW4?11alk%Gg-EybXHN4u-}R6eLL4A4u7^ z(MJp=af8`k{O3LPf3ADn7H{pf6F2wU)%QGOU3&)X*3)JNeu2DK3*KNK1Bsz;^wA$s zCI^NLuZf`mAIGU?7d_B#bGFOdsm`1n+4>m`wtlX>l_<+|d#u6b)gi&yh;LFp-%v2- z4a6Hy=Uz7H3BDu3vO@09a*X6_T$#|O<3vq{%k$`%RfV&+TkX`_%`UmYY|3UIds>gi zpHf0!^e3)6MvpbOBGLxIrG(#b%|o3GEh9Ur}_G z*I+umv~!s=TX*7QyXxzYTl0WCzxv2pR=xy=h!_eiJmw0|`_g3%Ta_O18qe<_$aT zy4Bn5+DA9(c!%Aywa4z+vd6Xzl5hww&lwWz-1Ra`WkS}3^ABEpi4;xJ~7Jt<*_%Nf_Baz0Dz=j2l@SbxfRuYzJS zGm9r{EL3gD)&YCj!<+3Lw>)hZKfcxG?v~-nCTx3KgVzntVH~+X9GK!5dt$<_ynC~~ z_omfqUtUvqG6X`rje4}xvYx>?*sC~<@h&L9BL1S0K5?trKth$pYKICm7lx4 zU@M*+RG;KQm1X9xs(tgt9o{YCXXl>SCL*bFaX zr9(+MmQr|HlqYz@C_l0Qo;vm+5;UQsMA(#XQ)oF!eMLE&R5m=os*5@XwC``u*^7R- z(HjrElq?bjpqM(%%g~K!zftyx=6y+>mz6xhe;o$b$DSV@Id8P%jR8E}0ir07??vG8 zvC>gOJf8FVkP;EZo0Q=4YWNhP7#?F{yX=KJo#fn?ttk&4DvasGbP39`&PkBcCxVtu zmPr$(n=(n8-^vTBk~Xa&Z<8Cazyh_+mZ8$n2g3s6ntehUu1qH^+qns!?;338Y zdho_DKC7n6Jdc-AVfaa8-~vEC;pZQjRr*LiZ>#3F_C}n+A%8Ie86yN|(ZYJ%~$uKP!eoOw-V=#3HB;R=VS1mhBv4+cUyoujxI4}~Zww;KsvgTE+guz^gB zLvS5?D2Fsu?Us|L*)1ndx9iTD<>$2GETV1<5r>@X+T-u~md=?jhwdo9@@vn{X=Wb( z?u{qgS1()SxkDLv7+{|v5x-)d!DR0PJ*6&P^);6jd)NQ0w|9MGtr8fGr)2FD_NVV% zXg6Ha?$?oI#RV$G3Y3!i8Y!aE*;uQ>Y>6u?+JX|h!Xa?v0SC5;$86xk7N4W}Og5ox zqF+I@D~J!n8r%&_VV;_8cKhj;d|-jkR|Tb0e|$lJIHuI_fJu-qJ$F)0I$LY)cG z6{U2KuWLT;lYkGYtskE})js{QlWluD<18cyrBhk81w8t$|54eBPjx~yG(hcaL9_|NdHi>qHic1LK}`_?}@_W6;M=!55b}=?FSraVPf>*#zNOZUeS$u zxu41X#-fyRO!OR8sNAn%)}S=y=}t@h;1sK^*Eka!Kvgs?@VhmHuToM*I6Nz@=G;r- zQ5{q-Wrzsg+J29{x#3ZJMb}%b|8jZd3x)S$wKrLX;u&%kacNOMt~>L~*14@;C!$Em zqGNE!aEF(x{8heayMzedz9=IXD=Fid9hOqcpQ>69xqe`IheUda0 zjnD+4ui4(Ag6$p|vn@TN_JqcPYr046)@KIn?oIu6<5Ros#x?!+(6$kKc>A#Jl@aV6 zR!bUJwd5r{Fhupie+1sysBu^L_CCe{TI*Q&WlJSnx^2+jc*|NlW8Dth-qB{;Iv7W( z4!ogozU1NU*50p1u%K={kPQ4k6CE{q$Hlg>t3h3Wsk-ih9QcC=*Kf43)1Eql6;b`< zXTxwL?Tn}P*osG496$}qD?FRkxBq(i$u49yzQf`ZG&0`Wg4ZA|Ox`4Pt>)L+>ijrN zb=w$wS zRfd;3Lp0F^8ewSgK4QB-^ka`9)@6SZ1i2SryjNtm+nM!G+osWWTU)1L5zk6;`vcpY zhF{7j`uSev8v2WN#?LlWtDE82u)rBi5yLXx2k@lJ0_y1(9jL>R;Mh+Bq}m!+UV{sT zg<;uP)q3*h$Pi8Uj)ga}QGrA&*{FsxQp#;!`1uTh%<5niX3#%wRm1|yC``R``GjGf zg6DK1DNz?ZFB3n=D|y7out)(>P1<0wV%?)9Ti;W($9Grko@a*a&JBaMuBU4KO2_lI z)O%rhQkBr&Nz7h?0vj;^gk@Ohsl6liio2h&v)1mh9qoIKIAtd$h%Mff4;gXob&}H?Oxvn|Nb@lJy6^ z&BJB;%x|2e{__bwZdag;lx2gyY$)e}8w!fDMoQ#L%U+u+XQZGLH-GFRQdrM}l2VQ| z&cn5YU(eW|+*h;rY#y~WQxmqWNcp-DCCeIyC|o_k9-=GiWB6)x;Bks;D6DuuM0I7| z8e5RvZPTiK_MOBju8fH`@upSR>y_7qiZbkKwtm@Ud(*$(r(=z8X;4N0nn9N&;kx!r zx80vk*eFq@cmv(SdjnLB^NTV9cpykMHJxz{Q^~kvpM24UJ$!HmBCAnY;xkF~NDY>f zoz_u&h(12=!Ke7uX=c)x)N$#COFH(Dkw9P9P&&xrGO50XctIzk3-3VjuS7{1`Bb*w zV}pn~=XJ@vtcoZLrDc^rmGq7zO)_ndZmZa>PgiVFb?>kluq?q<9P3a2`} zBJKQle^AMN;5=ocpIiwh>Ww$8w&}ZvebUO8i0D#M$3H!Hp6zKvX`mI#h7!_W9g7AN zmGI{k5+#h&P)5$FD^|)_F;O+Lrl9kVy? z>9JH}%~thx_#_N(`KuN&prWYLSsU!uQS6a|UMdePP@Xq6KVZ|6Bi5c6wi}B}ZKzFn zGMUvX*>4nmGhTp_DyCpOm$s=}`)t8uJ3SS8FuI10h!1jyO!1nI)kH74rl$P5-#ho3 zhaM)9dZ>)uVQPx!b1Y3bv}h!wS5K zAQd?ijF|qJH}D}i8{QGQ;F|ZPW-qB%RD?sv|}6#TC(wW7Ll@f0E8`&S@MO&`@e<6J>N9yw(6J#iD4!QV~=L z*D{QS!obv-N*G56w09;5*-RDUJimb#8WW;o4Z{SANG0VV3UGq5Qbm38FDOG8frpP0 zKFUB^`phC}UTYG(WlaNfU6BwHx~8klGA51h&?9q25sFbOpV;H}74=qBj!AAjEwpD2 zx23LRo9YYpmwhAl?H!}GT4PnLKH-yFRVgI~FI5(;%T>Gb-c9zs58fn&$lF{0_!4{D zA75yH{QZz*LQ4S-i=87B^-x06G&l0I~q&4{23f{LG*qQC%!R>8j|a10Ja5 ze4kN+u6W7dDZ_X%R zo29p{_SDRFd+VF$TYoNVFK^ytUzvB8H6qiI{6=3X60gNWc+1cur9Qb*s!zze(sq|L zM39USIGt18WQo1HzEgeVn?6HjONt+=RDFW~LQ(s5%R23;lRJarQ&xX`{MA2#%cP(9 z4OPypsBOuGEU?dQKu@PTq!jqEw$$uw{+i~}qt;q{#F~rR7ao>SG*~fuSEP?K=oAH1 zd42V1%Q4$J&erEAV5!{Mh@My^4(YH9n)W(#=0FdK0+Ub(-|+*Z5IWvcg@RC{(&fY4 zV1;oQ^yNiY;=I^DRJ7MxC_Lz89_M}lp=k5_Hhw^eg2s3n=s+8&JsdK$8J z@#;RClr7r%%{%RT+hMq%+FZGR^GbN$<9KUw49bNy;Q?4O3IW|tq-uqQfWL` z;YQ81F;v76AYNeo!t`qp-K4b@?v`Nn>Y~nh7A`WS=`x?{Ugc!|bpQm-*BQpW6}VDH z$LtY*Kc@fcr;h-1NFO=lwg@>;Zl2FWMX-X5;t1uOemwK&9M`DJ=}Sp5MaC>Ab9=$u zq`mv>l$|Gq>~BchC*~DxW1F(Kq^#JQuwqNnc9s(Mjh&v5+~(D*(8yM(nA*QugGdBXwA)^=E<&L@@b)n&po zTz|;@>jc4z><@8T*hd5s1TPxWBhu+OBBZup|C!X`DwATe`mFO*KEjf$7=P;Yw7q#n z&gRJ@@`{g*ja9p5Mb-A?38xi8NwBHcS0cgRLfO9-{KRm<9vrAzPM&yrj_`<&%8F&K zlqp-hsn=RYiuSXUr_q|X$qccF+DdR`^YkNt=fkj2cg^1Q&4+FF<{`C!k(TgCm{=^5 zQW*T{H!rurMiho}K}IG5XA?yt)Qp%#qJ|>S9v(cp;)*L_9G?}AugmZ`An#P_Tc|Po z>ALa;)0Nb&4A}@*VG)WYY@{V?bD!L4^VauD8ByBMYm9bTJVf1? zGw74|+^jvXigcf-KB3_B1e&ssdVU}<9IaS$X`Qtc9#R%b-0f1?3Sa#_zt|P5U?eV7*;==QGY& zFhaN)8%OMY77&a;aCTK|9WL3$KieX?U}Y9fsAdcW9#XJ@W7mhZMFoYT_ zV0q~WQ8@{;$m6roT;n#BE?+RW+1`I%tIcUs zV4@I>wXC;It=eZ7Cv8m1XuiHx%3PPQu@;qSky1A$tnmpL zKX;GWCwGilH-e6EN-C)LPrh=mb#{*+-`e0wVDJ7cJ`})PXQ>~*{1yx@eN+>!k)&go z6SnH4F7G=OQLiO*5;YVC;bV`ms{aZ9Fpg?t#SFMgArnI-OY|vh>@8SrSe~Iw8>|Q; zqz7>-RY0lyKD=NWlqEG>qyA_MZy<=;^i9sevw^FwOFUyoJJ?ijA9>vh88Nk`9{kp# zb@qxmn|w)a5b@((N2-w-9Pb(Z&Kho+y&Rb(`iaOc+NXIIC z=jFU>HK-Hk8750b80H<26O{7ABC@11x=tR?9m!V=2mja(mWO+9YTTa&P$f8CM}%wC z1R;LSU}DFCiRT=Zo*s_&H;EW`IKW?kk=Ti3e(A zU}U&JMF^?c^)Fsx_b;97Y3^OT4ber%E)*#bvt45V;@$FPL{NkTZl7TbnY#(E=%hH+DJ zgb4jmKM(qSNHu^0Vlmtcc$#dD4*Use;$pvl^XmmJXcNE{P5aQtpm1?IiU))@kYiCr z);QDu@?XP{=Y z2Fw6?K!(5SC8++qrmQ~p7-8_BM8ZSM{ij!+~>9KX1DJN&DdER+%qu7Ju=!F6aUcY zZR_T@JFd{lC$d;(=-!M?8C_wtkIs<~F8euNfcivdFGF5{Fuy@k+N7}{nvWK6Eo$4# zMttyV9E;`-xWhE~Do;|lF#D-vpCKpimkc*34FAa|eq@c@vJmD^?P;{veDl&!UI49p z0!~Fxcwg0{|Nm_LvMtE$aWA?(-)gV<<9AqG! zWl|vx?_H``PUmH{vUWy`ty(-y3f5&$&8WAX?M*65gc6jMR-t%G;Z+3>tm88t-(g)n zV|M-db76}9vA9tm{P)m6T?pL5jeG2Ke|obu4vu;|0FgEP=K7QKC)=C;{blNh+GHU% z@~?C^@>04GO6pks^y?fW8?IPhQ8?y0LLVt6d5IPXRf)tByn?Y=a+L{!?oNa9f>=LY z8KJ2Qym|{!`F5rh(mxi(J!L5hf*pniReR^nkK22HxWU`6%5z@($O8M@yOyamhKIJr zQ{g2HqDB=hwA^6lXBDa{KW^zIfA$_5xF~0}Mam_Q309yKsI4RVCEU*c-a7l6x7{Fq z%D9qAgmR@LqERO}ep(9oc`?7J_?h#H2*yWWxwRA&a?0;h8{OR>=xm(s$IKP0avl3q zAx`;UFNhT`hM;f}V8x^B?0KiEA0I>^{X34j@{Tj6+qu*0U7@@rb%^mUmC8ftgfOKv zZt_V!(a$F*#4KKxeCw&xY}KMpyY;lGHmq|5EG!NuZv;_YNCD^tPpI~sJ!C|bB5NH9 zhPNY8IubMt7435$`kpO%T49|O-5)GK!CVZ(@t=R-JiGpqd8$%va1G>3>L<#_G3dEs zs#vUi0_j+|&beQ6goQVGLW(6 z%6($GN*=z5%q$f2f+Wh?K)JguD@VESn??xw<2}brORQgEEz%p ziCG07&GW9El9iyj{>Bwj^$Ej6Fm7VH9|r;vvi>?KBjE_b39kX)yA(r21U3NS1i(az zhZ-WV_gsSG5e!14A_$AG^%ZgR>7;$|f|<5*MziYWdPdptPk}CB>YHN(P@xNTs^~U( zy{}xf$X@&5%j~>=zS=(e)-&z;b7t9KJs*ix)uFWig1@Ik$_T>2V+cFn#l|F9Y~Nf^ z0osoNu@7e`Gk9^fcw@JH{e3q{8GHR29+CT;{!L5u8SA}zZo6Ioq6LyJ8Dl6F@3!8bjN#>f{v~gF4r#h-K1zlrYDtxMCT^9~X)#;xpU@Yr1FTxLkYR|VbZ$6O+ zB~%}VK*c|P;r+@d3QLZCOiIu3)S{n$ZGCB~Qlv!iK=fa+ZCj852ek!H{2J}yC7ml) zXs)xJigZxM5W{ep+C_Jjku>NiY0X3gk_q2*9dM%~pq>{bur8Fa(L)D;Kgl1%L}LRS zcn*kweA^$Qho?kDP-$pGHfbNaV4f}QXi~bEQ6WUChVOjnI$uKKt49a}Eso@qcKz8i z>}?--kzM}rm)hU`#;LY;7LOK1Y9c-aF#u>U5(HUZN8U5}W?o|L%M!N7%pKMYFT zf{uCR$M0VIh+X^Mn{3*yUZ)RZ7-X!fzPPdVDbuQb?7in$Ldu8G`@_Kn;iP?4N>TO6 z8Yvj)`JReo=Se7QOvm$vgr!o(@X2xYg?dO=JwC~Ul2X4sZk2al466+kbWmwqbpDvi z-LCQFHxxSFA)IM#iNyOE}H#$k;oFXr*e`ojKDDua93few&sb zvfn%HDN%(eM)d*88ba!-{j@yS`jH8EtMsY8y-q>ur4O)|cflt4qL;Vj>gjpcE#(W6 zqCWL`#R1SeI0A2{S28Y7F~rKquZAdU=!Lk6dfXuA#&+Nf#0x~2NT~e*C5Q-w7garY zNhV()W-gbrKfPd<&1ww;cE$?96EY}|!c(kcH7#%0Y=8giW%lB~xxzmDTPyAUg_B)5 zf)hhY^eaY!jjy$Z;hc%HFgMr_JRQb>D}<&p4xa8mM}VM+ND;!+FkG-V-SC9{w-oXB z{_8PUbPNqa69G7(oUc+*e!SzSUv;Xjo<1phGl!I6tYpbC_7zJPMMu7rRhD2W3B__9 zF6LZ863P>MM8Ean3N5Uq#2lyalG>6e6$*w2|n6E_71wisO?eRd&R4M<&x3h%_S~e&<%sEypNtU8)@)5<0_F0 zct}=Yn&g9X3<7(&AGe>FG3DTsI=}7!A^npDZYdf6k|?Pmq;X*t6%lk%$%&(l@gcND zKnX?DNeQXP{~9{f(j2}BlY$6)T~xzl0Znv zhU@aSdbZ9Z<^mHA$Dw(+XbYa{wG*E1u@#SPw~OxCs#GV6zd|D8Zv#MZq%gASEJmnR zBw=dj#`722N8fcWc1B)6{$E1RLTrCgG4ZKNa+?BWKzX5nYWv z&v*G8OVzRxd}h{MD1nG;u!98y$a1)OtlTP0*z5u>pa{oY_i&8!sG{H%;z~n0;}hDX zI_}${JRE})AvFTx)A#ar;jQg8Tc>dP?SFKojb?Mw0YYywlSjLX&JlhOPrVV*v!r}s zc;FL4L?Y#q@KfEC1$8MwA`WjcWYQ;QS6$f|2T~WFct8pzWef`wgulO#N?1yw9dD)K z-cqfi)>R5)8`4%yt1vUOe40EXMXA%V6vQWixaF7@7sZIhJNoULfAM1(KM;};&~9Wb zXD|8I%WSa3Lia#-CbpRIWm4y@rQ4;fIj76HAA6srnxs%2!f~=_sZmF&Rr|d9*+5yf z?KM~J_RfEl;t6lj6o3rK0(~gS>uyP=?em#%tD_XXP#J~f^&Y9##+BE^0{KGP9H0<8 zH;V`l_Yni3$m2rGA7w-_X5A=4Sjp2L@UAtRw+~;u(B?Mt+#y5{LXJ|Rb2jd1U)Wkoh=4LFN3s`u}n;$D(jPX8QTrfOXpXI@ZQOY=_KhZ<*z2GT+d60^BH z8_7576{Yi-j>{Z$R$FKPaJ{wf8CKaq6Ut*_*uz&iaZfrji2SKoI2P?*s2&mz<6|=^ zjlYGAPK!whHaG6^n$7^_8COW*{iTcS zzb>9wP<{{q8L;=dAQ+g^0h$RcDTp>UE;S6!J)jc-Vh&bI#^8r)^$C z!devqB_*U~4N!P=3$MoWs%b(&gi-jpH*(J}RLWvG?Y8i)6xC{q!5{YM=8HfA@0x&3o3^AO7eGs}vPlk5uF^b#1g} zJ?hLqU$xS1IGdL?XEe5=aW#ZuN)c;#S`?F)R7uhNyeRjD$Lv!(eNqCB3mI#Wt30vR z?=%2!zZIcBoU)H`QB*(*HQbi7r>?5AT3-E7bxB#cYMnCX)eegec)w9rI4ESLtAF*M ztL&;f*Q;4w6K+hzZ5hhiKC4yIaY|#Bg0+_J6QMWkQ%HnQ%CetAiZQP{ai+cQgz2JZ@RmF* z#2ECx`EB;`71OPxFm%!n*I9aCOj)v`HxCk_%wmLV0%yF{PW&ejR&mA}7zl1+qx4u* zfG_a!u=I2Z!~7O0fVSC zTPARPvZrRh_lH;6{U>y&Vd3W z*iz$Z352*P8sYJ{Eg@Wl3=1l#$%Pz#X&+uiDdm$;Z`W9Rb3@K{E0WnNkG*Q%WZOO^ zXWKgE)v_v=&f3*?t+&7W{C%Q>jGEeWy2;@D!Ce>IZCj>`=c)>W#<;Y(Y9Gq|*siEN z;k5X|yff_!=W1LnWlYXgS)PxaCK~bVv_>+p1bQ+|dd+7aw)cGWX2%s{>cbAzLEOUv z2JTb-h04SV$(#hU(-r@u#|u;;{l+p>ionHCL}Ah-Wks7l{8i}!%trjgeB~FLL=YVd zmQ885Ycy`;11cy%m_kq5KdhW(KfUo$Yx&vMpv11cD0Ad#;i>=yh>!g&I(8*w?|DO8 zF^~pR{hGW}PF8bmU$)Y5;&#S=|H}=& z!pBC1Ls0@XChseSy#16J_D6qk1(pB{q@(|iHdFK;M;H`5{7rr}M^BUiG*}aP=+i-o#{^{TD z)pgY-1@K4UROY*z=h>gHI!86Dy%-tM{_XV|N2Y!z8(g!`&01++S#h3K=PA!D;V?tE zM+)h${}H{3czBM~Cw5-*HJ2MA5k9hnF@_H@d`V&MMs>GXEBJlOM5!G1FI*2fK^dLS z5*imqrB{Y*#@IL1d1rw#pp2}P3CwQDC+u^VFSmvaE0O{gca03&pPjwX2LJv?mSur- zEF9XaRX%!bpAEcC0OqPoQcphFk!qv6%O7{+=Y@@tfhEKg|-1NHBGq!Y+ybpQR zrr%p+tXC-8Csv+h*PeD#P%vG({x82~)3y!z^|G#~vzLOIG&PcD%<%#ew_`EF@YmoP-x+CVSc0ib<_2- zFJ*hAb+*0tyw_S{q3UAA&TM6rQYI7-_*W6=mw4btUR1t$+CN3I5coqs*uoGbVPDDB zY@M$0O4Skt%VkjrANm3Y_XK>3Ti|a`K>ezt)?Rs7j8GsYin(`mhCw|krnKUXC(g0D z47UPcOxf<=w%0!N<2Ba%=ijyDV7vxVWREshe2B~;^l)}?gFH-WhlRr$BM285d*D_^ zN#bMu@q%LZMR`L)8fGIstkLy{yZh~bwhr4zp4er7`e=`RVdJpaUADj5JYZkhIcjUiWSP}=Az8Fkx?(3Pyz`Yl35EA1 zh4%#su-~k&+C$T)LK+uf?k#q1AJ#Zhf;~3kc?&%IsIr9C+{$3~^y6!uv`hEywgz6_ zrGB7L{<=}=4IUDY!EF$)SbUIv2w&C10b!|*gEERo>;-Tu9EdK^ou!GYgGn4WX0Bw) zLr5yctOzFz6AH`hE_`!CM>+Ze*CYoFSElvC;nV@>9iN3RmrO4{oy?H}3FzjeJIdmw0e*GPZay z4q&VngA0;d?*Jj+!NKz$03l7{r*_;ZFoiF4JS_Gc5@g{@|0Lq>jhT3X>AX4o#5x`( zu35K~vSL=9?GVU=$(a^t;F)K;^dxq7?u_g<#Z z6a_I`@zien)IWUJ71BShtWc{WYsY>02WEBJ7cV&7W<0RLT6cscdC0GNVXbuuYt3`} ziF=WFT6j>grn*JUiD@uDwI5a!uz*19zGYf##h<~kQ#j2!)i0%1+6lnUCQ;3%TA z3zZd~G6*~_hp|Hrc%`M!!lEEjMDqK3)1=0rJhUu@zG?e>`^e+x21Cut0oBX6^=oaP zwXRgZ4JY&VvWwsAUs$&Jx;R&u@<>*v8s?26L|~CDfXe^(ny=e(4Qr4okRvUG*eWY5 zZ_Om_wp7t^2L&TE$;P<p@AQ%@v3+Y z9cqNPB0gQm5HR`Wio%46^0`t&UzO$CC?cP7)og06-@df{WYvMeqO+on6t_-Fdvbn@ zWE6Pv`xxb8!OtX86Cz%HS{7BJpcX;RvlB@Y6lNP7{)kvS0-WW zQYkA*Va9|_Q9}d&KB8i=;02_l7#7M2J3@Fi>fx(UY(?RPw;-KwgH)9^roKJXU$T3i z8L{gg>$QKqx5qyClRfrtclF!1pBk|Tw-%+SL9uw;iWo-S5+9(y6cN02?))ZQ8?(>6 zM2zs3OCpLj%P=o)?u*{TCHWz0*7k$SV*hXtvXUSwa1Bzu7`Px#N+Qu!*wZ*0Xu)kN zo6d;{;>kZ219-R&ZKCo3=YX(%fdU*7xUy(tn%gNK0R(VGWlyLhdMxd1v|S^k_GdqR z)HZc%oJ43U!Nzi_1`!K^3KoCdld)F|C}zB&4k1sZDA86{*?k-56E@|axcOv^_RPGo zV#b9OJcKJ_%NkEqlvOW+!c3l+uGZDQl$hh{m|v$%DQd%wg{0L#uET1hYSE@Pb8k>( zMm5@!5|(9*eAaYSZ7WQDaQ1ZXUrLHLZRe0JSiej8dHZZqVJbqFvLRXhA1h2|#?T+M ztuQ`SdGOX4vZ%H(3}KpoOleX;DIZ1$PtyV%s9`N^{GA#5{kWL zV9f5_I%;2ETeQEwYta7rzG3^`#)_@qi{TMXq)qTVyi5$`)24749x}#t!>wap*_cLQ zM8h*$cJR_WOJ>Da-q$Rh+LdUtorzYpo3c}SwuS``0)LnsH!Mh_bpp;pirLzeCh0_m zUK@{HAuDJnE+U?7bx*FnE2{obP$_QE+!xyBVI94OAaq{Lb%7SiNcTK0CcIKZOjhC( zJNxbb{NNGW*vEJ9v9=NrIH2R8c)>fmXZ4y;0X$pChrp9Bg{t|FFq$ zk(U|apu-HSLSall5-W`Sii-q-=d(Q`dPqcXLps-CGWWhbZ*+}6gg4GJasR8_Sj-E- zP&}p&2sOhof)s(QJLAmQQ|^#=94dtw&7jCCg8)H~C=Y4u0rnHOSUK6p9`sO~=NDJw zZM=@?Tql8v+AteXmFpZ!ES<)95QLeHYoxnZ*10P)xM=fmS>?d2B)+jR`9nJ$**bro zu%d94r!8s)`6-2@)v+}XxeA>v(SoQlFgMRXfg#A>CIacE3#ng@5sxwkV_gpIL<7wfYtfXyvW|&vd21WF} z_)(X#2eZ>vK5f+<>idAMNk)>s#7}hz&>-dXUq9B*`V%H=AFlg^AKp=h*27gMdIajG ze!!h`G*yPtXIVKw+ZD$62R9jbDiim!@HCzEX}fH}Ogn8-qb=>?4ZjF0p&o~!au+Ba z^2Tl$;Eg@6ArR}?0JJ#}=s$3lzZF&QggOeQTqFK1KEnBv05?V+$jNeyd^ zv;TMTDfZ=8uCzBTogroH@N2TO+N+Z+kd@^L*x-Z0IoCYxdAz}o!)-7-X1E)h12zQO zZ=(=l9AraCj_VfTcc?9f&>#AX00-fB1#oLB0npg7>Y=KvJ~#M_D5JbnL7r|v;q3Nd zEAAYz(LubM#*N}LFaPa0wMoj@t+>or7WJgC9Pw5 z$68kVycAoJ=deQ92XgZ??3NPtsoYxOKBRujLo%F5%4@6hjt8o!7WAuew23NsEUIA#K%McSARLGZ`a`~jabNK@M#HGungc?K86?Kq6iP<_AM3rM;8(yOy z8Vw(=5n|fY(DQk73La(?seSW%UfTQ}eiJucWkWdPCHcDzN#%nfeN>8yy)mPbQQ@2VINbajOo!V}Vi&`a&gvE@- zCA=sUqK{Yc`)#2e%1&%IZ0bMjRoxxvT&FpHbgr6&8uf&*k_`bpkY=t>Y;nHmd>?%S zRBf&*$4Jx)( zbwD506XqM}H@#6A{X*|CmOHv}P(N{8!jF(2aIq19Q+({QIeYT&D}R^;fQQ}`!dQz9!vRRgB%d4dH#c#A02T|4nsWl)^AwinL#TR>wci;rTcVKHhuRo=z8K9!4aI8qcdz>&JLT@px<>4%@uU7UoVB!!-0c%W))M1w zVZv{cF(SaeL7BdE)k<5?!b*?G%H}l@&Dy4O2cm8?vf#8^`W^gor<= z9X;b{?je;oCz>cNndO?)nx{dw$aQWOP71T#dZ{tufl$9d1bF6z$ze5~>IWb631y6D zT@M8JuViF)t5t6K6PK<~xGE3luey*6p3!W{51wz87caDAea5XC%~4nUNi9Aq5++P_#75cOJlqy&ym9Y{6-<+|oFJI~W4MHwC(NIQG;=N7k0AYsr5(}4;ed0-u{Wl&O zrWfTmEVtAdb3!>?@~dd`0pQMI!nRLI!xpy|mnHP|d}t-LBhR=lMS-piLfG4j@_W4^ zN+l=R_uC$lXBG!Y0WGV#rJ&4NB{FhU(WeFM0V$>EWg5m2zRNXHlj;?2YHFZ08)l@r zMWp)ijsRgl^mjZa0H~@jsvwoNH!PiD3tJmi5ijx0S#^Q@@b6tQ{`u^gKf-3_^^>n(Ax}A5-inXg zB46^sv=MDS=8HBIC=P88+%O<)VT=!-Pz1(@av2yARmP^$o{j>zEbGAAQXTGSeYK9R zX}oAT<%8im50gDyQ$0-ZY^k^EfX-`UqEW%eprJ+?Ce`T^UC;&^DUEXsT3A~P1%4j9 z#A#Dn?CKL{1%=aAnO<+nx18xuUNZ<~?Oz2(&{^$$>5-1<0F?Fdh$>@G8u#sFzWapgoU7>gwXpZ<;w{b}<@IH2$|JEEFXQ zq2N&0rpG03Q@?aoMH^Z#QIa_ z1PJqdDD%40EPHmBXei#g7AhaKbv(p#ao^ua;ORjIeA88wm1D<*GEDJvtiPD=uqyHT z)2;S~Q>852rq8(&pfIisSO6*tl_|eUPEgW)${OUC8eJKc?5^9lSeaE`={^yp%j9*X z6|k_p%(6Kt9|{;=&mp4mMgpbF+e8Yf^1R2VthAlNp2xp-K2 z=U$DAfGe2Vpqq}9S0N%0f|Ebs&3klMmcHRBSE9} zUteVpU-JX&yLF>=7ZbKig0@E?S+@jmPkqXIHEtSI*oK%^Tk34u7q7HLmPe4pH|NWTqo7eHnYjiW{+=D`JgZ^*g;=( zk~TqeMnzYm$u#wCHqwKnKstMg9gaAFi5L${R``GPgdIHj)(A7 zRaw`V*-678taaC#mmU#BC#u;`dzt5SKTO2vAuyM>3xSjb$^ary~?yiM(2 zpj%kIqmIH4?HJwBab8B%^T1B)lZWKng;^0qvOz{B16>J`1tuaSbJqUOQ!RJ?d@D(c zU=Nvix})4bW_!htk?o?r_)yt0q&6kkO*t7rgim;A;}_-RSdp45A2I}T@S>ojO*g#78dp|7x#3X@-PW7D7Dw?k{`H{cZlSPeMs zrKR&a$Kwp|9I##Ad&0Ke^th#-88ODfd{^C{;8q^2tKaVtpctv*S9Bxf-1zx>?U~QrZS{qOH8XuG zvcMys&PQt?mNL%y&#SC)#S96e_{H;<3T2tP-+lXfd;G6|Y&8j7`v_nAl6;CE)ZKj1 z9P9e4mspOkEvuZ%koXPngRE4ffJmt1LNbSv!8hU^41o{gkdON|S;N;>DK*SW_;t@9 znNorH;ohSK+D19TQy3Wjnw|31SILvfe4Qa(n4R$uK4_t!B7tUXN=Tq`{tTuL6P+Vg z`xALVUU+4#qB(E9;u)>9oqX38`@7eDTgR?$PCIBpe?Oxzcz0E!Zt;bsjVv)_wNC1H zSG?w$X*rg*%UUg+YK0ZE)L~XdBD;Z@YzVejrakF|snlE?9JOb@y2>8^(;KXC_YP~_ zRkC^sdzNPn9b+sSJ`s~5P@1ppD+rONx~=aUkJ!jlyDW3^OiMM%vsLh93EL~CKlr|{ z+rTYbtYPbj)hRNl7snaT>Q{fThU#HZAgn9rh8`Qfd874x{Yk~+b(USs8{stB7- zcnTi|c-jkf!{dknJO!dt-+XMZ^q~j0THnJvtwF{uBO?e+(+H-n@sS}nRw8cG%NJUv zv)#*uF?`yFc6Qri@4wM(V9X{Br=8C!DX?0S(rO5^p-+)e!EzVR_HyApsET@!8*L~* z>FmK1VT3FGw2ICN;kZ_s-fYDarddXwyvplAD1uJt8pRz)9UtumDlBE-@it#Zr}Ixe zd7>(p&*Tm0b0tku3!X>CAo$w=Faj7W(h$BhzFui(?X*N212zVi3_Mv_p0KX1gLc_B zpOTtj3`5l5X)@O8e zt$52u+x@C*t@pa86z-(#$-nuDJ^rEVt!YoqrVJ&lPKJc%`gy_}OU!d`+=#|@@=C$H zjx%seSkiIAkmS&ib$|FLw&T4&u+f2G#~s#}gd2JpKj!p8-RLW?X@s>*r1)ZQ@r3g+ zDW4lz?Rg;^#*D|0GAz25u}aEIrDSY*VKJ7QN2v&b*}8wa$x1^~I1Mdw%Ab)OBxFRh zif9-))sht({_f)%V(=6O@*|p;X+J1jNqg|)%TIn?b(YH#N+DJTIpj~*STtUo)@1#^ zcb<>kShSFm@|SrXhc<-wShi4yVq7!#tJ+J zL?2(s+n5BaAlkx5UH}dsN5rF|c){W;tYk*lFlxNc!g(e4lM+Kx3Z=55BfKv7<57x) zBp=iRLf*;05h@a2cmpcKMP) z7XSQlDs3e;^iqZay(vs>w7tK7o>g-Sy(O#J=p#Q-r;d8#h0GX&lInsUCFuYL#fL&A z^=&w1OSbH_k3RN&`^n9pwJ+cCRr}!DJM90g`Kba@DIfPGrHd$~^)i`L6fJlH1>&+M zmj}e9+z?2>jI~cks(!wduvBzyOa&w5ZwgdiB1(i@5#fY; zs8EKZ@9FLK)CaD&i(VwvvjTciTEHBTlsbwiR-Z3l7%y%g=2m{txb<(D<=n#&)T$pRLlUBQo zp-OA_*udLwv{G+L_+yO;n_l3XeqtWF;ECqE_=;x^c@_~@2~FV*^yju3V|ZT3oR+uq zcMOUCy!vB|hlxcqgqQcFB2+BeMhxAviXZTw@T(4fi;raqJr6J!)h@9ba|!;~6qj|) z>(entAHhW-NgLG&wz3aR7rAMx{mv4H;8jB_MQ3@vdAf^jPb|Yv(DRb(?V9p%@{brFsO?1!|pASK1 zp_jjhNjV682bJ%|lKe|bgt(%=3|We4TUC)nh_Oc8o)}!vAp(d%jIp4j2nEr2&!?x0 zNMl1|_Vh9Rye=O8C7rj6BOL3k8R zLS!SlseKX9Y3%n6bxJ*c>k8{H`m>UU2*njq8Q>@UgYNL9BEdsmLRk#Dlv{k}Ls~qu zSWrH{uJZ5!T%E>BqYtckAr0B1?a^sphIZyC{=MBlSeW3MT`%K4;c4}#dWG^_WT1D7M$&jTQv`I^mm{ny(4_>lY11d!o zwc4Pt76Ld5QHmFB`9z`sx~UsppFgglsD43rbN{6=Cz<4%)G%cXOxhD$%IFEMuY(C%9y|v zNmL|1Zl0$FTrgBFq#-alF`I>2N}w(eQ$u~^@fTAwsX)-Ga%owcEJng{5@86Lb)LR? zot3})q>LluBOZ`dh~fKSm7#@?U(|;&^@(u~R-Jxhus9D7-jY{>qI!8G$-^vdq!&HJ z!+7CMf*_6xHxFNAl?iFs_R;xJ8%i1K@-OY;U4*OiMKs_kdFtc7EfXe=ThuPMcnZ2s zn%7g})f!?mV=x^sjtPcRiU=P>W9L`AL37dCU#p>WRqs&}eMLc%kq70K(`@{49`8w0 zV~!W?VlX5s-nK+6;D8YUH?;wMoyJa|n0E9x;Ln4}_?&VsWn15Oo{e@jsP769)dtUT z;_Vnl`P=doilUUr^WnCnl&o4Flgvx@L?0nz|8LR{>~#%~xYA&BB*{va0jg$%wzE`FBFQ@jP$&7NFD|nx>k~ohw^RhL$tyECzNjMas_S@Do(w^n z92qv^S%@WCxpG1fA43RfX6Ht?^;@3=8ic2ei0A@W4AF#HRQ4>MWq8k+&c_xDJIvmG zx(&bk4C^_2nsv*v5KoI5ew{ED%ZlO=%2GC^wt3|}X&#!Y9gacVKTfl}!zv#**Tz0} zp6!0wOxxLr8Ndh#7kNMyVELk6(SmV7JhsFK*ng~&GO6>jei#|{1+}Hi-gmqXX?)?= zXJbV*PZ#rJp>o4j3Cis6d?DWinw3f@gGh=HD-Efxs13=Dm53H2#W?(i$5p-JaoO9W zeDLTl?81?JW1<=Dk9(sCf5IOob>OA9hX+A$5qu;8-l;0+1mD>2w}~&_cW_tTVchL^ zb0s|RMB=Kt*f_>h#v5t8gVpn^EVmC(?6S)d3a4|?h>zZY8)2&FMfr5iH}%{5;&fBL zRe`5xlD75z7h1WiO^T&Tg(HfI*TjP*M7Ij(YV&ZLL_`P?mdj)FDoD}bwDcCV$Z6-B z@X4xuwd(b%o33Ov+?$kyQd-N186+or#z@4@N`6n8MH~pKxG&OIh!q@DiJ3 z{Z+qbI5d!troao2<;VPj18Gi8tZGmou6dd+JHGT8S&-4FiP7FaZ#-eW;$h#l_dETk z42S&Ay9q#D1D|@SRnC~^p59{{b&`6(oalry9LGgHUAQQk49F`#J?78}BoKMLZ_p~N z_v8{D13Az!N+`tnsDYXaWt5lxIeq=QjQ4QKI{*D%Yh1He*TD}OQy09ZAgvr4;y!~N zb0hHS?RQ^d4;H4|>zf|4|66~XbT&8(i~?2i$`Do%z2~*Bv4^M6aK=jv6)N^y?X5pC zlkYKGtZkOIW;^BXt@hWi`zDEy-Q@u%`)#XYvLW%l&k-1Op4Ma8(3hS{^~+*x%SD ze6gSf(Z$~rBO>?|J+$H&+JK`7sOU$uQC-xoBxVz#se2=}TT~saLJCX9cwK|SNyStl z6g%`bruv-^qW75k=pnD_DJl&d#^{fZVJP{z@92Eeo@?A>CY&pZ0^yBrs!M$<%S-X< z4i^xC-$oLi?BflZLw}E$9Djr{(1%Ud(c7RtZXtNRPB+GeVIS}X7re5HIDQ-}k0|5g zZRerch-VO8l^{Q%@G!jAf_x#b@KE1t#Xw`1#k!1b`opuW|Ew97D2mroj-+_T#FVee zg{Ozv{B7ovZ(a<|m={m^@QCVCTVESK*={HwV}Gv+Q{NzjAd&4nvYS_Nn50Le4&BD-^4>N`ka~z@W_9@(k%hD z1!k}^Ar@r9yakWkI-`qHbcxPbgEX7mS3iBfR?2jTEBs#soW&fC@>zFCMvY}KP29&RKh;L5|HB;CrJ`fc>? zjh242+Zs0wT7H{0C#-PLE_2dUl@GX&u9#-U^JZCbA@3YgaTYY|3ae6}DU9a(900h( zsKWtF3;D#ry~9=%9-|Lzv8GKU*0@D@$PLB3$t|5JYa3=u$CgZ%(VAhy7fw?{>YMUF zdzvQVz(DnV{b3vW+Cw&dsAe>PTtNu$6c9TfIU}LfyDD zy_tAiSPHVB@)23QkTXAZG&G`H(n{?Y&k2;_TZ$faPIShaU4uu;(l;QZapZ$*T z5tSr=Z)$$nem`@YSCht_@|%^gXer&N*mn!gI{^2?-3xt zLje^4icf5_{*V3Gn#K~gY;Wig%&w$RTH&NWLc^i+XWP!dy;zMQ>=F{yjh+E02<5`G zdD6Py^9?KS9<_7$ZoG2~AWRT>oVY% z@OrCm?6>8+tG;|MsG}^R`T~BgNJ`)Eo!3}-YGbHJ5Qm#g^B3+|XT#rk#F`}dGY1mZ zC`*Py`70+>7BNGyeJPddWMq}mF;=%UqrrOKw!#Kpw!nogzA=nwp}3qoU5O_T11MW* z_m~ZR^Fb@$vf8E%r>$#%ur7Eo7ixhVf^cziJ2+2ZS!3S%UVno1zhf4MV`W@=q$M>+`CWS1VJl%PLS7inqx{Q9~VVfzVH+?XaiSu(z+u%ak(Nm`C zBp4sH?tAcXK@=}BBGtiyjeL2Pm433`I!BYLSB6uxrjOhXbZ;Hi5qKYti4}>_`mUH~ zgKu4KQ*L<5I_}u)GKQfh@8Q5hW=C9dp)%4bJNw?Z`Ll~IGaVKCyUdODqSDjy&{A8x zC6kY;__HrQ-#&lwS(e~cCqBcg?TYW3E!m~AC#t85RBwku)}W9v(A+lZOP9urOn||= zduwAhRSvCJV)8%LLD5bJxcD&rD}usMA*UoUP@#h=V&#sH7p3JO51=UUoyE!Ai}D-v zLZu)t#_XjJz}2V^#?@&S5Qj;LAk?z8mcL+;%2aK4PBFEv5e~5a)u-OoOzcUR&{63Abzjf-Ue)+a8pJm8hizjHo|HYC9$pFXDgXxz%x_l z*v|jIy*B}~?79kb*BxrEuIgE>?v~V=XUldxAln%H00-wWhWCgWLIQb^fec^rAR)6! zAcT*E1o#Mn_Xs#V2!Q|z0fKGt?8ugF;X#%qSyQX$d91naz3>0mKBwwdb#;}jRwLtR zb?-Xo?6Zfp*Iv^e&c0J|{s(_Irhno?ar_WEL({S6pMNlJ{-*yNgC9Kxo+>1Si}ozy)<{<#3w_oJ7vBAJoc_DN5kv2I zGG2acILF40J6vCtDQ%lVtESCa=Bj|B zbO*C;mzu}w6n`6HN??B|1?C%+ISDxh41%e(A);%7TB&)iej(ymg0|8&cWGEI_0Tb1 zO{1%jnu>D8PWMz-#txAi?C2rO8AGs%%NaND$u&`)a|co4?byQ4tct)|W=`ZlO_>eP zpN7h0bO!aP>2<=(m`A3Ao=={Pi+}IG0&i431aOHW08T)$zv)6APa{uSkk(}-g;qw@%3j0@ zP5sOVTI8G&~@>7YbObcUX`=tkYZLgNU&P%OHbM065 zi*2P{Zi#e9nC-=|Fl2cmrhn{xvGYV}JVS+RWJvk z;lT7_?D>H|h?#-Gc=~%@j*f($jPI>i!E?6R@xHuny!@; z;i1MZkS9tZq%MaXy8OFNoP~}wRDrB!TN_iO^nu?NNgrR9GKi#qiZ>+3`&*p3%3vle z|1o%9gO_+hsLj00&1KojqmTBu>rm`>f zVDrEv#?0nz(-}Aa@cU!yuRR>osi;aj{3>4sHLG&r>SV@D#qd)fcsdsT%g1tjcl#O2 z0e?HpL&b9cZex&OhZox0BHNS}oBB%Q3M1qiVRHcdx^d%=d@#1W=LmH!6qi=TCw=Hk zuQG>_Gn%@TUhRA7E!|Zd&{t;FgV~6_sbJ{iIoj*QSZ8rQ+ns&%o~L5&XC91gH2B`r zCB0Tdy2=HXsla)tmbfI3wGemf)=22W>h6MaSqoK&dvW8Bejw(~b>hjt{HGAKax6(h zi;%oAk1%2i7R#EW0_YF-)Dt{j3y>Z%N@DlV3dw_Z0^p47&I@Ovdyd#qTCJ=xWbG}E zfRm z)Z?s|3&Sbt6xbYuQ8J*jh9IHG91K9nfg<&4d}VySV8_^LA}3R{JWyy5hO^8ncw#|w z*r_aVgX7)3k&EEqB6C|tU0%+_(E!`vBto+-UUU_~!->k3?i1JHTm?!(%^y1#^FRE~ z7`m_+cU%~XL1)iM+cPh2NxKch4AU<1ra2tvIzk$c1RNR6pL83rY{muy(4b5C?%-&S zplPMi&~WVg_YcK2?|cRtyFRHaryD5VGK!Y6&|~qbGZFvpgE0)#-N<;V4W7Lr1d8%o zT${t#2XL_N7Mi&+TySd*(#gZdlLj2JjihgpPPeM<&%p8SrXT-sG%niLg*hC1OOpol zk^a`vGQS5q5${-6e3t__N?*8ZBl>C~ZPxCPHf`^bHhGWqJ=%N2&p(9wx-B02 zYk!J5X)8#GN7D%+amOO+qLyJADA5t#dsUxR`rHmlBlOFSSElf!rBTdKK6@@OfIbE7 z6w-8C@jP;^hw%-CP@-xoZu#t~VsNT5Rgq_{qmq$%%9HoyL$J^JmSzt`+@WG{A6*+M zH+Vj)zuD&@9s{&u2tNV#NrZYs5ZieIuDK&Vui(P9$pE57`ZoF23zn^NN${pBqb^g% z&Y$^eW38ymojOC{=;r4^a2P;^wJBpoc`e&ui`A?USVqY}ISN_^?{T|%-*iUp=l&=D z6T&#xib<@Yo0yxGa_}p86;7iyn9m;c)gq1FM&b!mC=?yaYa*OJxBW5!#zx%}xFSHU z;o-RTr#>8$`_CrMgW?N~n&3MCt#RmMppDY|m5<~Y<*uoL7=p4*!0*<@VPQh~tS<+m!J8D+FE%QydrKT6B3MovST?OYC?u$Fy_ zfVALX=OF#kMtbL$9ndZFZbV=B$Ia>k1bJ!1Nw3~a^nRK8r#f-#Tsua|koi?C&{^Tj zwy1o-yElvwRCRc?zqIw|3mPK`KZ?2oeH!FZkWFX1hw+E6`;||}*)P8~p8EdR#ey_r z9H!Tn6EMovJpGOkt_}$(|8k*B6wgn0-WVV2?n6)%IFu;8bF#q#&-58}J2ORx)4)TbOr$Aae``aToeH zoi*N?k4-#}q5%dyTb_zs!jLd(LWyW-(+P#3`1BCc{Fbv`7=Zx?G~c>Cl-D4C!^3I4 zTBgiICunKrZXL%k&BxH-e3gH0xvbV)jJB5JhLdD4oNGFiQ{!krt1NZ!&;a`B{m(@A z(NnRFPTC2feAga=Nx;MO9{tzzprc{RL;;Cb-TL(zETB=l~^RxKAoF#x0a!!H9U z2FsDoX&DDcvi$iy!!i5HJ#il4)1tIfVCewfdGfZx;m79fcE$Lkt=ReT!w44rsBkIN zv`c|l5s0%*qbMwSU?k~V!l16ROtb-g2T&B_jXCl!#3srZZqCNY=MG2jv&Rs`PV9hK zy^78a@LyD6fUjPW`E73tnl0{`i0M~si!;z-7E7t(%U`D=4AEBU(1y-=R3o&v{#_qB z7~4)x#oQZq#4|tox|mnM_3%8EJwGl$U>vHsRm-shA-%*D2|%IL6+kB3GyCz*?o>bu zSPCX#-|16%TxPM5aGYZn1QOdv1o%+eAX>$Vox0@Hh?^Tu@GJ7!t(PtXIxFnNptiM{ znj!sYy|H-$od9ziM%xe(hBvfjI6%vs!iWY>;?t?R8wTBnHkM(Ga>iiz^};9}q-9fs z*Mf`-WNyz-}~c3ceLY=uqd-I zhl1I~iuAA|%}Q|69Yg_YEhZj1x(md&2>K}%l*NhQAx?vm8ceq_C z%jR_U(O7FX7T*6X?prf%z{N;wI6_%kaQQ}>5mff_)ckFm;;El{RXqI*_s6q8{K`1~ zt6vtMc>R|6$k1$Dv`>=W70%SJaJOwk;?j&QA3u`Hq9xW z@O<(=_bHgVq{-#n`8zkzC>Z0QWGf*fxnHm-fY^2oC(40^Na*}>14Ufxp<#X+H* z`*2P{k3wU1KF^gz)_Bq~9&97gkk9eF!kES>XPz|Klru&GHQE@&9EE^3XcVio2?m<5 z3Nob2YUe`qhT5Nw&knRhcpk(>8?VY)FKnWdhhWBHAuWqCA*y46;5H z3?l=}`NeS@_oZA*80A?v%Q2+G-F9{~+Lq4q+OWg9cg!+_b?ls&jh%3Nx^oEABJN&? z`Vt2_9P4QPoz1N{^)K#?skdGqqnl9JA9L75d4!Tn2aSXRe zJ&y6Zw9WPm(7v7j^=W7dgW`5dava5T@77Im z>c?LmjaQ67!%hr0=3{dAaNPDoua5IKjmAf?Vi&O#11<6v^pw{1}lW=@}Rwwfw*tO$9AHwO(|#n;Fv^k zOqS&lvTU_1!obii$B@IgccUnU$;5~8EFG-&EqLlu$SxZ+l9NMHL*MQZ*D+Ss0*impFU1IrFU z+ePvfPl71QY2};*IKT@R{=scAHo*`|fufDW2%rLPdv|}!o}AeGY8rEb|b?;sEJqp}X@z zujq~D`o4WJfMq1gWhtc?mxeOZ{nL#~H&8;(VhLza3ynIByMpZL*WO$kM*~uiqI1 zuNf`lJ(zLK4sOmQeRSo9VN&C6|I2%0XxDH&x-b*7XeR6KN|$U4ZPLowCa&X8T!=9| zj|u67a_K&M78>+o!m&BRn?eFEiGyX}+G%+g@7)xWV>l(yV6;6=y()zT%27c@T>FNx zWPsycm_os@jGVQkUueH|+qUf^axQeBzEl(nlj$pg_1>}Y2+ZU7c9^=fb`vPOL0A&P zZAjlChdy`!nV)ucpFN!la68sfnzW^J(!=1G*YPoJe8pIdUW0We&!!y1mVV7ZnY->A zkKvm};wK2|1$_haqlBePGk?R@T{^F~ndB;TZySyj=FLHJI zDrZPDKzIMl6ZANtOFbc~5$YAzn+y{c(9Q8y5$e$y(Mzo}NJx5znW)ICWT1!9aK^}{gTCWxZ&q)+U& zc!(+EIJU~k13O*fAdEv=Fl1+8w5v9wx@=?0I;VCE_LMiA(F zJvQq$-yqCMp0r#jJ@XCibzCQNNxvS}5k-aD4#V!ujn3{}dqvLyMN z6!crq$q&cvDnjUzma3vtJtosTaBMrIU_gKAJWL-9LVsRvNMGBh(j8Wi=$kRe_AsA< zVEb%SSH8iD_Q*2;UME@*5q%S~f5e3h9{hzRAPXSL0haoyb7TlL8wp!3Le)5+Lf*)l9B=fzbiFv#Bev5$DF?H+&4nk zQ3TROigx_jPd`Kk>Vm$uzegFl;KQTa|I$|4Zpu2DW|*Ypd=Nf9K^l+lczuJm&=-sP zt^nBkX_P}zTp0)Pba)xWqjl~4Bn}-xhuDc~RXe%ogaZxNDmw9ylMlFCgAi3hE|qhc zAd%Dk5hSenEvG6w2@ONK_EcO$adTX&rZki>uEEI>J2Bl^&{N2BAvc*tLF1a*+p8T0 z?htAul}f3{aZgXnf7uZ7ejpy)%3Bk^Nrzd8jD0~t4;IuZAN<^Uo@8s!6zvRGK$Ph{m~4;;+$ zHF_6tck~CH;q7$?<2T^f8R&QuF5&fhE0tkvx*g6%cL_Yo_-8a3o(|SM^PWaX9NG?$ zk&1GbmBu^$+(g5OH*BJF zN2!0b%@|VJhzqW3&KMI$vkG- z%YPT`xCb{7>)E~+;oNTf2`L;EJrdW776j=stiqwpS|G+^KGziWrZ%GQAbc?b%~JVR zZS)tG^-OF}E}bESISWi5t8{uJ!;A~As~GLwknvm!PG)21$u@f+gK~>4V_qt^&uC&g7uLJ}`fC zykq8$6dn)%`t$GkFl`{+z(sIk7^HPcH>a%Imo0IvIFfZx4kU91)z5bSQy{>&-rv}w zuiQ2&ebfzt5<00yw9}FFNe0y8baZN8;?tTT(N5#L;H=-Q0Ja8jr*LnaFmQ0+qT@ye zi*{TuIL2rrNJ7(ti*t#ALLqX~@(EfA@f=L%)m7A`hM05`!{K7Z)qcbefu927DRtSf zbb~JqHPe*ET7{5~#5HxfA_WEpkx85&Xl`~A%ZY{Q7!K%>R@%17G+HJnn-o&r^x{%U z?3Q!+G(~sQ@?1+?TFOzlP&$(;5tu`UA5z_dck+hg5%4P$B}5~T;^lZt128tYkXBKJ zsk^J&JT@=|j+6((zWi&);{NZLh@1Y-Xk7PwBXRBb5687XFdn=9?qKZwd&9B!`zGSd zeYj^Zbb~fqm&#~~M&jueAxUMYV7Q*BHAk=p3E5{G(AP;IEn^u1;bD)- zvhQZoy;mspriOQqDuXFl3K*EB0P?rEt@KHrs1L17r~B&5AG`3Dcw*5H@4HyYLvjDd zK8K*u_YEg?;A8s##?QLyNWViT%v~H-R5i0*6j~9vI6|Sn18pZM=S!R5Lc4KeNe;5E zFOJ|L=a@#M)B4cq&1tkUjY=JYVP`PkU|`-u(>v{)Y9|GVMvS=r6tSrXb0Yogg)P0g zEK^OA-;2QjWon;*c9uz6Sc?X()+o$23?5~?Rfsy~q(;MlHpO?JR8Sd54WdbtniNr{ z@)bHr!~Ifcfp@yKFh?0%kwsyw+E9d)`sdNAb|eJT8flqz-NqpNDD@h~xwqrTY11ff zsMPK_&Y}!GiB`Jwlx^EA8%A*~Gt`{QF_|-@!{n3xD&gE^Gdx%n9YUGob8vAIZBRuA zGs;X8j$di-2zk?6KzWX!IHbu$GTl_-o9naSw#hYI=sn)LnB%}4=O6(o?6w!-kT!ZJ zK0EGho|gx7g{8kjfndR;GVDh59aQmBzqsmAjJm!CZB+cFK6F)DNBZ7zLY zP~&IkbG)4A7gJZ>GY+-B+;L6$PVasKIrwjjQ}G4_a$jR48o$5$$H0RI0B`>FW0Y5o z>vCTe8B=o%#D{)oEZ+BfqjBe+t#Rvh9+xia>1ZR_AR*GE-Ttxzam~F)c_@R}%R@6h z_Swxo6>5MA*6AEWVs z-yMtF_ihHyt-LHa>J&Qcu~g$8c;r~j($qKIcMUI{3d2QK>ChPx)^tOY^KsiZe1c4R z2h;^aIVY!AQ&c9Q6iC2D!FTzWe|0-G4a8f%WH-)>;}WeOot}6U9L9E@k9}YLS+kJ6 z8wWo(7;pc{EwOWaJYIMAP7CBkVTg2{d_;TheA(f+=4H^9_Lu(gjdU()gj6z%S|SnC zeFD_Xrn8g4>4U!mjec)a+(ti2r~FpbblJv&uh;C$`wnqSJHXS;03Z18GcQ2Ob}ZU;fF>v1QXpy#B6TiM3oOb9!`V*Ih6)X#2|#$BujV zXFn(iNoMIty0oyp(fH+mGZD`|(T>;Oy(hL#pzxOXpc1MI|9ige(^QS&;9pLd<#edl zt_bwu|JsO8|DycucaHG?(f=DfDuq));R)SIkil@|?~PcAq}|?)Z@cBe`14OZ5P$UQ zh4@Fm{z1mKZ=s6sh_Cqd{qZ-x@AnYEc07h9e=pfwrOeIs-8s10`}q`DkD0lhHcr#8 zt#6-r%iFBfnWLNc9gfBUDn5j3dKlAskfty$Z5*77XFoR-&zu;I?UO^XZO54Wi#gV` zP!nz}<5aXoE5|&gqnvFYe+?uYNzmZwep>a*i7^k~95F;m##Ne?RXh6OLXu-pD*t5_J{2SR8 zaFkv=HxJCkhdzZs;ZEIg%Qnh^e!9X631u7nU6Fyt`Pgz6qz^#jL*2OWOfMdOa!ZVi zHsbo-n-W(ifSUTv3>Ol2@{KQ^iLnzWsgtgyPH7OdIix}M+hTN|osH&UPyn|EYoZEVH9-Qy(>{oTS!(&^9}9x~tjnHW8FCVJV&v_ZU|l^0QX z@KpEEOg#L^Bz@P6>#v=lJca>oEO9)X^sU+fE<0zQB@g{_ME-z2N9Ye|(>QFOA(*FI zaqyD}25CVie(Az%@+w}WP65xx*e;c0Rv^B-75CXjeCo@tjZgiRYvU{4@l;&cb~2v6 z`z8eTzIe?aJQMdma46;YVchYvD2e=(4dM5f!rW%J$dJGTx7;^-7_a3N%FCTZXw{;D z6ar^a{RAhGO2MFf8_BcZq$S~1T`--ej}=XdkiJ zA`z3;=IF_L&}>QvRvBhZuY{uAI4xbWyzDUP1?|*>y5Kyg3tDxcdmVE_Hg1a^M>du= z6?~+B@k|^-)Ob6TupC3~J+%%svqE6U^wU5UPreokCG#6B-~Qx2jfnkA-D3mbBN2?} z!VUkcdU#)OD(x#}TZTbfWd{3Uefnlu=7;I5_4G8u99;WBd5w_yZA;>B|M_VdDU;W1 zE2Z|;Z(YXG@~q2=B_U}-662(|&-vafd1S4$;+ExYzNc*JZ*O%%)5mhmWR}URbXPN# z?F1hiSk-6s#`)wVP45Uo`I;^9-S0dX55D;%@r*5OoAN;#>2a3lMQP(43~kg4^czb( z58K^^E_xTn%T|(7JR&zmJCUL=?w_ z=hzF)$(WJ^bP##{HmXM-RE%K$rT(G#TxM9^{xw3`{zv+u(w|8`aU5BQZP&W*vKgn( z;B|P1b}s9nsAXq}6XkA9%}!S3QHJAL+M1q3vg-ywzFZnJ4`aHEvxN~ik2`rWSLg!M z_V;_Om9rt|rNYZqka?em*_NBtN==iSFycF6FhRj5v3J4kLZ>$%QN;AsI)eAzzv3SwDEbrFldviIQM>Xv*q2 z%gh-^0})>R0;8{-e9nERyaz4wYy>a6YbwSNu7fAsdstg1YKHO(rTYzgj7b%)>ACTE z@|jm-O&M=0^dr=u;u9YiUnBGe!6TU&g4Fc$gIe4tx87Oi9G$KZ+E#_k)9Z2=l4iIaQ`4K{ z!s0|}U$zq(w-sK>+5p7W38}<^p@-gsbX6FeD7l(8{ZRAIazEGYr95fvcc?Cr6pgVy zK<~2ai?j|M6BlZz$}@DqEyr~X*Bs0C%o1U}AknL0ysXx`b+LIxvoCd$W#_%uIxIhHO`i*lj77ZS6&GS=ZZQrX zov~X=Ti}S&F=#8ElW<(;7e?anp*!PqkG(pM9KAVCp1v_ooZ1&pJ$((&+v4Kf=9qI} zy`-oL^mnrN1{a2>=O$uiesfIEZjOb{rr5rD1nVKEfC8?}N~KZ>tZl2?yB1CRLIdVi zY53__nF;3^4=6_GV(XrZv2_wx>OAhc6F_wjh@V4*^bX{SW*m6(m2vXq4KVItT66{L zxxmr0gR%ekKsoMCs5@Rsbk>mNRzG(3m`wA|vd z=KLzg*%Zs*d-+ZFbCg07wU^WM#H0Q5%Xk`|$lEA1q+gMnF^`AL?5iZ3{3%rW>f}+I zt{W_0SF}&K1)0AV^7^QQf(LOK#D|wCj>N5YtF4pJ)rvd^=+GgrdHwm=GSP{LpE!lJ zC~e4(M-|4@0!7QEW`jx!$=uvnoIbHHjvu};jvu@+W-i_tXO7<&`yYKpoIATaiB69v zEz%+`X+Y^mhv1UV%?`!WkG&$EAw2c?eKB?Ju6WITd*kk#wxor2JXs!eK`=f-gXgd*o{LcXQ)#g3qz<3q<=Ce^ta6?4&M+@eCl=a z*hk(JovAwu6K?=Br|*r6M_(6HC*Ba}4!t(^ZM!GF?oBtxUDr>PdMLjzqF~*Q4r!bG zlbhmgYYD6GTe`IyfF7JnMVUvdDu2i~@`|o+uAP$xCF-Y-3s`Pp8K+f%FoIwS+$P8( z&?g2@^4DPiw2Se4J$}K1W_oeNRuSQGG=c`uC9ayc3UFW5t7DIKZ(z0;C8ZocQj9l|{uc|ZBLa6Ce2z{0y zB&#f>>v$`e_;P@P8QRo|w|vvd=yc}dQ=dJR!f0R1lr_O*6d6?F%1Dx2cc}DCO~{Ja z&~l}MDfj)tW$1a_0%H*Am5jsHrlq@Vd#$*F#DVyvcGA|iR`gpZ6nc=4`&3{&>&7N6 zd4Bbmp3QomI((MISg!OCs6cChODU+B#7u>~NVGI4ve4hgwIPMt2`X~s;yBOw3sKoV z-xZo&0@+3?OT|-y3MR*t`AmYO$NG?UkY1NHg)(`j&_nv@{vJJm!f_VG;`DARuty8c zYmgVYNE-oE%6r<7$M8befwT0zOJ@_Y?U28V9&rlAcR@kcUFD)<;N+)s1cC~>=Jy0> z(sZFR2b+Y}0Ars~Dj8->2EvrFg)+1#z^Lp7QRcRlmbdT%0Qv2t)lOf{?euj#wD}nflh@>Ave^ zfm?o5AQrx|%^Lw_q^E;&OV5BjS_TgdD}q|+(+}33ZFDXJH#-GM<&(n5eU2kZ^Bg91 zth$-JOP*{uSf?_Q7Bmf>YNHevq&sc(w@8T1yh6=GOIJ}AU;h)z>@AUZ@qS>I`V>0X z=SO4b!Sm3l6;J2dw&}@0f0BZW^_2DtWqrDUY0(c7!o#8#WBLM`(mjfrbSz|kPnSYT zXE~mv;3k9pf~0~Y^Hoeo5Yo8V@C|~WIccRzb4zCkg<+QkK4a;moFz10&a@F{IS@CA zT*aq#cnQ6&K?Y2uSd(L{Lph8%yaPlTK zoDBxdAhU6sj9m#)4KnAFvLUbTV5YTn>gZJyK^}#fZgbuKO1Lvk&Nh=h`-I4KLZ-`m z(#q5-RB0rGrkmf2H-7cG*tvTqKKb~`JjBfQwz@7)6t1w&R7^0ddoGPHLdJ^?z=@*T zTc`yvk8|uuuR<4TQ8WA!B>#{;`;(Bnwn*#DcD0MEDt3KP+2@2--CoM5c)1G=R8AMp zma_B%9I_Ex@@D({@TzdMOKghQY)1CE5yvSHPxPw-qg#PjqH-JC7p&^e6G})u6hmF#D2bbr6g|T8NpmkYtq7afNvbk=+NnLQ`KZ z=w4DSBUcJ@44b(rA4ab%j-bWS@;Eu+mk7C30Fe_n39a_5%ft=A@BoFG3Y4}bkzpj` zDS-~=W|X#7n)B{APRF9*Hx-Y`&pT2&gP z>zY=>=WYydosVz*zLT-_n(27plSji}oGM~j+Uz%fvT9B;xp>cgq2b!}bq&~f+e7Pk zR|MF5>88)^2JE~yUjk3M%Jsdo*ecvQI5SK?ml-AabjK! z3iKP{IqAT&O3HF6^Xd1SmDWv|%lC37Ni;K6YQxNtNL$xd`E zsq0DyIy04oqXIQ%GFBp43ifCMJ1m(dHS_u*50Iiv7fYSlbI_a2tBYf~RqIjA`Q2P< zItW|v;+g~&H=0RjS)LoYoe)U^iXTd&(e(Ep$zz;U1;Ci{Af&FayMa(Ty}_Bd;l7#p zD?j>d-1M45@!%r|rnCimrOmL7^p9(@IRLHj zlAf#STfejY(s(%}XRHX>7o;!3O?xRTCzoI`Ke=;LbYqn9t3ovbO|@<+UwB5hw+LNf zVuhmiBof3;3km<`SQ;VE9bnKzK55eL2R_h?qmT29sk8p$Zn2}N`v#B1-`@O=_{!nW zD05kd4uMC0B>SLr{dPdP&slGAY2mWEk2!yewH1%tzc=3dRr_Ess75+N;zvE|@3P}( zCDel1d}!eu+OJw0fy+MgJDX@UHS)g;v*uC=jo7wxA%=(NV|pF|5JNQsC_76fQPfNg z8zs}o3=(ji;O8+ic-iej9xzoqyCWvGYTpLvbPFgmmoyAm$rL8|BgY)Xo5rM6in`iCVTOf-*F=T(!YK(w!GqzI57WA96EA7re>gxLIyrLc5Iw$jEF=oC`oWO5buz&!mj#4rk;&_dcK`pq$4=22XdkxLy* z7KisETc@y)V3Hdopr3s`fQN&S9)3?dKK_&T7(=!6YFaTv@BXW8|0RBO>#xO|M<0nv z6^%`|IIEy(qF6U6myqCqplA7LC6|;3e46-j z6;gHGu=B6>zH9utxUPZ!i;8G(T8yvzH~V93ry471mKwqiNK6pK&fHMUpG0siD6y0V z2(QX$f~HM8x5Z<@1=fX&0|fmk+6@lwpm(v>ah9bI?l_Mtqn0*(c0<;y7MBsESWyy% zfyHz70t4!)@#1kxbgsGG3=p@Gt+*M3v*aNk&+tWYC37q%`LGaK7R<=_x(vSC(7zkg zC&!{YKb#%abGB3grHt05*%+FD5n$AdN6H5L=L^}1;H#$~Hr6pn+3ksGnu+D8I`Oj5 z*EefHDpB93;w$NLW3}|~9wlJ=x^u0VJ~IXm^aso!UB-8xi`nyd4AY~9W^OwKzr@$< zGL6i$F7)F@zhxT-;J?`zob&_*nHcL;3AswTjIE0Rce&1;8jfxrP(xeo190^8aFxdJ zjybqQZ4IE%dui$0arpO}@$kQD#!-~IzwfE~@Ob}6T4V92r_X{q?EwG3d-|K>;rYGL zko?k8qcBFBP!z6}rs1*p?`7=xxBeX{{usRY!_@N^xHjW;f8!5g+dDspS}mu(`-|Ok zC?N%s82B8XqCNgXv;3StdB?SJLl|NhAnY&KZIHb)E2p)FBzcZl_AP3CGpuA5{xF$z_KO=(JO{2 zdAt-2q$REKDrVDLvpQ`TqGrjYFPLh7zpDrFo1>3Tnaa`2%fGda8D&z@>o7GC(Epx$I$G z3U1=y2@|9zDsj?XG%o^DerQJ87r|MAO5poJ{aGs-YXObCl9+Nzmh8$jO?n_IU)^T? z6cje^{b_q~%biaN)>DMH{JNHX?a_?G)YFXP??4#;^-vsT$g_|Qkgu?4%^}*uK+lkmO&nmT`imp=|J-^PnxeCc2O{n+xr zGcga3x!p8>aa-|3ICJML6)BXS244%K_Oqz~9PC_(56_=X;)vjxXNKb4|8jTCO|{5G zVj7blGCOmor>X|TF&6onF-)Tsa?Ixj=A4yVCs;&I7MLFDT2{J(dP(@}`s{XwABg(S z^0Q;ekk6S%#snv)m$^?DYS94ktRr_sfR~5h`W>6XOMcs^)ytVvJ8n_?U*VMtZq(yD zI|7`{lep$M0u6^y+SU@l0VXs~S`^`?Ox|5d2!E1K9DD!=Jv?t^J%5vAH9gl4E6X~D>3oOK)IZRZ0lKdY z)J?xjC(}x2t@R@HElOvFs$;p;`%1yOeybAcb`VPXIs1rrS+8lTdc|8ewDdK+L3@t9 zqaBa@>sA~a=>|rhDoxi2kM=(>h^2SZ3LKnd{M@3hr|O>~;v*~-<@ZCM_qY1G3^zX^u7?#4(UUj zQ~-IkK84YAC{y}3l{h$hT7zXuyPiT#*+<_o6rcR@b{rXjjS(D5MfDW;gnKBVg;OPE zgG@J0ENo6;Dh>pFOjSAi+a@^Si9kE|nM*P`uAxm*rg0GgYsB|{-|xo6!LzCraP++? zaz!^~$#Mm|)bdlG)}XaHrV#iHYEw(*w>=Ceb@xA^`=Kw4Nkc~UFu=G|Q9tMkxVHnPOI zR!F=WOpVJJ*!*=q)Av%lnxlH=YT3G;)|+2>(8=k#Sr%8@Rob9e00C3e`YzQfCCG>d z%BFL>^o%qylug>UsnF?4f>7g;v;_y-k^idl3(n6knBSjS@6lJ%tEsSwzy7w0NxJri zs(S5fo|6{T?;1i{CTG>^{*fsQE$s`_mY@aHiWsUmXlI>rnRqmESmaVt=?}Lpx;WCT z>rZ!>eAcb^mHjmg|L{(H5n4aU&3E3XKRH4j7?wXAj1T{0GcFJ{r&Y8L{#yP+&5^j+ z94y`_{eGjT1p@D#y*-yfa!f1>IUzJc-MJ^2dnXp1<jn!kVQ|A>bd_Z0o%a+~^vai=HtDGExkx=0inchK}-{1xuMpBlbD z?)bTS z(#nir3EwchBkpf)rNL@w32Y}h`>72mon0gw(mKgOfy8pn)JtT03I1e44qeo)3N-h+ z|LwF+Fb~o8zXF(Pxfe2d^<3ZAV0ki~P*2>|u%rwsDDRfvuPmuRsZ*;XuW1OXQ^Ijw z^JnzUk8*MRmiGdDdVXObKI|`uIqyI^e~Mn^u$N)S{ZnT_ycgec@q6QfC-iFpD}gMZ z6jp7va^t2&(HC7}^U&GZZj-#K$Eerft(JVimJ;r<;Uoi{}k)163R1S#8} zgp@#DUkYE?p@y~I(YG=O!l<@(M%?ct?RAZY6A`(QUY;a)Z>S}6iD@ZEJ7!Q(3kqYE zYzb0{_XYE(3uF1-)%Ejh z{4rPBb-Xnm7sipiP4M;v73j+voL$u_xs>}G0ZU&+`*V(|?WjH@G9&k9ex`FS-ahqM{M7WL@xH0!vA@HhRdF+^ z+Q&s=so)sPc%)rzB@|cZrSM_}{=){UMmvi*7_dJqLwR4qG8C87{>8G9+)XqxjT6|5 zjK%zr7FNk%8oeVcO#vp-ILmaLO4h8iwu}mi{8tClT^d$HiLcv~#dEb>g*XM>(zqA* zny=5mkDp|m|IU$i9P~7HgvFym1{nJdAP6d&>*p6^_u@1x-G~FREt+E#y@{d-flxNb zDO(Ha2MG#cjw@-e<48UDPu~DOyNEmz6X(i=(J**udBr8EjU|?T%8OTVQxFa1Uf|u0 zJHHDWsSUF^`LcF5GG2|71c$H)T%9g=lAx7x;A;lct5Heo(tslV61;eTD3qI=G%5Wf zEZ=cYe7?&*D{tzn-kMe<4<+tmePBf2m9vxD=_$=2rDLSIwmlM?9An}sjlp<3S|b<| z#jX?AAOe%%An$C3Cw5|~blY+^RRB%-ESG1z66Bq7EkIS}S}qA5?2X|r{6|{Y8U!iB zfYjLfERVeMuHb}<{Oxc2YjBF`DMz5z{Q4{7uZv&X^jZuq37uJWM~*fIeBBt4<42!y zRTG>9)>;*Ftx$tOiIKR{+4FJmb0& zC%%mvcYG&*5x7JYw7B|0!7GDuCD_@acD}Py3b9H9?05^*GWsr;46=~&{w4Ur0Q<8a zmOL5aGprEG(w766L%;rU{xtiSe*M~sYvPqd!?9<;0TqH!@ny1vQ`l)a;UAY(xXQ#S z7?v+X6I}DmB@WrdcZ~bAs>xUIP2sOBDnX$tF?Afg1%5fJUJHh^yr$Dl<;L%J{mF0_ zYFx??WcsxBRzq5^om@Gf3@0Qh>&JF{T|6*(Yi`rb2^`s2e6kwkgt&Ci6DY)@wUWQ_ zb0qzN_}Q2LU~D>v5c2fvBeVsY%y$_xG7MY*BPVt`&c&dhTno>gI+S0$2Gt6MyH9eF zkZWs1*8385lZ8B$%>_6S7dacqvrQHwKN<3!gH_jTBzl(fQuqQ1DA!;V;1#3fPa8kW^h$GeTkDdQG=t7=nH7I$sm!fBo2a{NrnHiyPZ=WD%;oB7`z@ zju&~Bv2{g#Uv>x)^q7cG(+&!>b}>j`7M;gi0Gvsu;K;$lN|Sx7Rrs^7i6&Abmqu46%57_!KbY4EK5_e_ zsoinD(~8IEuZii!!FY0RXUtRY6Z6|*%2NqszWi5&BN<%Wav2RoR&iyvl>E7u)OcRsL{SIw9v{2tbGj(Tc= z>@6~ubi=tq>K4cpP$x*G;GzQgZL6C868uR3JFtdJ1rz35dN1>?eD8A|r(ot6J%q9? ztrIs5kHimLdnd!D;<{=H${Jy*w~2*wE0}_)aDMXQ-uU>;HSzfLuK3*SjySY9o@HA{ z3Tj&BWdRh5odS5J%WFCvQL)ZCxMrF<123|?dZGmZbo|zFtmUyY)tJs-59@I6x_-x# z5pXwe?w&?455zsQ2jcE?hhn%pmE%Z%im{AoEwd4SoERCx0{{=#E;RAA^h&Q< z2(#@dE}#9-dz6YNDdJ0};vfC|PseQ!VyU&(B>sKyJ&6F8uRIo_w=f_26;9~XlRLFQ z>RmK$-uaS1{z-&>ffQB?-AX6|XdcHvqC#{>uNu!(Tn5(hSigVq;_~6+a@N)d8Fb{X*o~gre&*^95wMUrNj{yg$8Xcl^^o^VSqP+nnxbT2<<@ z>0U(!C6sAYQdsj;24i5onG{=k@!g;LFY#r+eT4K%Ys4qP{Sn-Wh0ZMEhyZr6lsU7y zERYJKv#cqQH|>0Dw)rLalMO2bGA+_d@O>`W%YF(47Qs)06cnF5g5?bpTjP6nA&d)} z2S0^^-v~~`xWNB=$8U~5ym)hb;LN@hlp=nzb5;;z?W56Z`^7^$CI^p1GtVJ%zcVS+ z0M?~&B8F3old-S??K~30IDs2C5*KE7QjQF)x*&_?0ri@9HYY73Pp%8*ksK81LcOO% zR6^-QjK4YQb2*`$(wvwX0?(X~p&+lO=j!6XXm>ttI(sCZ+`2nv+XI12wJ;EMo?P!?g7cl#lQP=Ty0VTM%wt}=Gx%Qo+dzq;)<7{zfS0@_)m zjDa{fHxR#l^4|E*NAHeVf6Fq?#iqe$8E?+UmeHq@nRX04lMLpUIz{-jd_~axRW)(R zNh8bF`T;JL=^m%M+-$`K#+Xxcd*kHXo;ZFHJi16%-5d;|R?&cQ&f{A0Kx}_=Q$f{T zRnWYuL56UCx$k)B_tFuPAmNrb?+3x!y{HN=`BUK2^6@-}t#IVA+r z$t@aJ@bjZ(f1VwI^k+TZ_{byif4%)3v>D-|94B{vr?nUtx^vK|SW4_7f>>PDobX92 zDJAh#UJ}SJK2Q*r1+oZ04Ye@3+z%V%5a^9tu8qI6d{T{2U8=l zY2YYA_$0!kfOT{CjXtSUj&7bgM0y2K zOIXKwEM)bZZmpkDsVca17AR{D+_iwxE-fK%6;!U-G=ks2W*X}DXY0kMyQv$kO*pBz zt#=%LHvY-K{4ETq6JHcel8-hQ;&Cjag6FOs1+iZs^N1J<&rLNixvYOuL3LdNy}k;H z^S2s`yP8g>mJIl^i5>CXJN$+SCWV1c&(Fkfoj(u{Ts)KGwRWeSmPs?BbroEWa8g7J z{P0%cEL$uck)q`@jXq_5;h1@}g8G8)fz59`kph=X1`yKRx#RdyCPvs5xOVR3E>?E7 zw>=Im+!N0>UKUdWn-BzW^`I_w}HioMoNYg~$7tr-E{xP8nA&eSYDorG(hc63+|P5TiXC>TbLn#!*l>V&o%bMQvc59jdU~8c zCTn@QRn2;^mU#jI|I>R=S`9wuAJU1my2Ej63M9{1-KLh;6X^&I!o8n(Cbk_rpS1UY zHkIOeh=0a>wvqPbh6L&@*U~!ccu63?=pZ==?JPsfLv%I_RzBqA9V-6%;qmx;dtR2O zq5a5-Pse-D9nGCL<|IoBVDV^SQn<2?%eOTHSNG+g0&lA7+4xLT1hoiTVYnh(MZi-2 z${qJroc~DglaoMN7n7BH@vmLmPK+-ci(5`T6g#Gl#`Km=F@5bMR*_b2BDdc%Dx?a^ z1SMcKbFEN;b>p~#Ww6X#z90>^HgoAzLGCknks#h9Wm?&sM8ZOPia=L487t{$TPlSe zC(p*+4;|7rChoRH<@l^qUz*qyNZOcfHck0!1uqHY7abH1a_310?$Qcm9E_|r*wkvq z_w9OlT*O`ahX+3#M;CN#6&@`SDHU9jD?RMm-R1K|WoEla!8!#zA3HynI4cAPpG?csqqdn@J;!TWRX z{z#0rX5zwi6EVLX=_4*Da}X|f1f@Uf*AQtLOS@BfX&RMBo(qsignV`)C}(!bKY|yb zVCp7oee;K^+*IC)`+xtjEX&fQsh^-d-s(Ufyx-i&UfQlu*0i#DFO4C;=s-V9W`YqI zFv=8;WgI(teaq$>V%y+A{PKw>lTmUO)NL(rN?O4V)<<`)n!qtnv5p0n?qM*&r%U4c z()UAu{L<%OT6JsVr%99cSr#0WIq!ZQBU9iQ2{BOd$O*Tmc2 z{_fbsSZ;xMPY3+WEB8@uH$HLS?l`b-S3LM7H|O}Vktg|4=^Tx9%bdjWLnh_kaifzu z2GanNCg+?WTmGKvIGAG@o8yQWmU)D+;=jNDXHvxSm&CxzA?e3af=@QElARffckH;B zTj+9=00QduC4u~+gOx(z&)sSJnh2f3H-M&hXO2@Oxelo-1_L^_lq)@Ox>%wDOTtoF z!TPyhkouvHSB?y=GMic_<+*G0v4dJS%ND5L03Oihf$uYJqwV*kxM;^8~?gg;=V@%4<^T=*xO z0_nA$%n`j5NL}0^1ld_$T~%FSCwB;b6!U|B_LpPtV<&j&jC3nMP(DWH_w}X_!g&dJHE5`I5`}MF)kUwQTaM^68Nke$C&8lXRKff|lpv$nZXwEIAvii>RY( zIsHOZ97o?3$j_G$;B+@rGD@ib)z8cE%jxnT^<*4>jrX5WutG8L=(m(kF4-0(WoaUW zHl>3NGA^Cu_>(wA*ku*nKrQTr`T020ZpI#}8A#?=XjLQ&(N*!xcjHwLJrS>e*CX*Y zzxzSjFv_)=qTFX(Idp32 z8_6t`M7pern|Z8@l6Z7R)(s7d9`8@GuBMLmpC$c4tp66;I;xaOD%y|FxjU&Zd{08`!Yp}SnZeX|r zA$bLZIltG;UvkzDRbyE`@A3#6i?7;qa{FX_=FZ*mv6tT#AAjYImL45lRojkW=APMM z6hv-7AllhhcL6!^!~g$y%fCsh?22$vQmr_KqIrMJFkYBV= zm=!+A`x;~nVVRj_%))>LU@)wtzE)Z>-xY3J3YOX*wOsn8uqtcj71BE7yJ8#C()pso zC1+!~FHb5I?#&=zQOayCxSGyX{7)CqcJWRRz(~i*y4Pks-t5LS&wFTJS?d(saiqXI zx2jWI++8spo}P{y_n(gYAAB_4_@PJQ*tMJD$aUKgKFTF5yRB57*DP+y<-PsG`(x*! z3!+xmgDH26avx`4>Lku$alCVT2!+ zil^?Y0;-iHZMPK{aS4X8i0%_`5=jAUkk|J5L#iqxS42Giqk#$Rbr2M2G&(aMul>m5 zardJ~;xjM5Hr-k`xu<)Yds?}=;oUvAVgkC`k4(p{A9*&**7O#A(u<4Wat7<%Q3y?| z0ud9gFA3xqJrvef0IItcAd?h^E)1h^W_(}BcX_}3Z>ikNKrMjq9vLeETaj&9xK?1M zb>V;guC|>1^bZe`3!9sU4M{bM|73jNPNl-?VE z;}M3FMpy_nQ2!W+Jkgskv;nU?g9oJ`o-YaH7d_bPFh?bD$y+isjA&f3E6b1!Sqann zV9LvfocT0RgO$qah285=!0}!_@h6o7(qvePL9v<&r_xr^C_d)*-V{F7@#ZgMLffjz z%byVkAD1B%=PBMiHP}Ho+Ofs@q)(R6iN%&KEjbaS+$63A)q0ZF4GO~xop}AbAB&5V zL-E8buSF=y>)6ut3LoYB_vGI3_?n;oD2B7tnM#WCh7tLvdNYyd>+r@P6?9-<63G80 zKvpXZA*0mK3C77NKnjA-GNZh+Mkp4nV%}Bn`a_+rwzz`jFU_+0Cm~DXUrATvlEOor zf>@W3g6IPwF{p&GtUs1}ORE1mCiHM*e+r=zX^M5Mh#)ir>papR}_8G3Q!P34l0QN|N7on=^8o;=6XO9J`79LO%qko=pBWRQhrq;g#jEAt4e z1@f{2OsLbE28kd7*2|aF#5HTFu1jOslrW*-CK#iD)KFW@CCdZ;GPQ227Rsd)zc_SQ zX9`6v?GQNvoS~W#UKzHzH^?b$d%q)n78YH0h2Ut?py@UuV-O zPzTkRxfobH5U=^2GsT_Ff9CGR5O@3i><#>!&@tXz2;{v8q>rC}XxS(dn*yh{1dDt2=moD0$Wo zx-eWTTuQm%Ac2!9*3M-R?<;|_MriBM*R5p1VD*7zfn1O!&O?s;09H&}xB#i`lKzsVRi>bQTnB8djp`38 zm>A;a7BH*H0e8`p`MV1ijtf${!pScp(9FxVicEcfX$L;09#!#5*av__UYgYxIP70_R8+{91Y=QC1VKuCNUqUT>HB+w+MUaZM$u+*z z3)&^=2wvdhLbtn1lkJFG@z3WBS}^O8YL;m4tre`d4?lUyt9x&AT<4@nVwS?;P9yuG ztUZ=8gcPXin#YOQ2^P)!d}HPeMPPL%k6>(0q3!o{>{nxLEY+&;lbm)w}13t zeELiG#rYlXp;K&Uh}|DAf7h9qI4!*>Lj#73>{i)v%6p`Dk(y9nU0MP0FWITHn2xqp!c z<>u&4TJ1#?LRwAmu$&aQxi##b?{V6d$^F=&#Mxr~vG`PQ7 zkirjbil?BR9-yy>692SUYW}MTX)EkQXdq4U2bmyQG95VO4=z=(F)v*TMIrP-MfVzf zN};Cz^}5`^ZJ*k2ZlL!*ZJYVThpS(OC?n-Lyr|ZIcZmn-{HgoHckPIO^4s5w3_S%ku*2&oXGgxD-19eUs*nU&@H-`NBp5EidXKm&q7~lY1y{KWER< zzv~I&omUzLt0MWrvpH|TF2kSGkHfQBDz0VUY1!sZv;s=I3g`2^(YJqqnnZ!EC7v}f(Wwi z7R>KzxaO}q@%r;^^J>r*+Ey8&tp}hsrKYr*Dm&h;7eH`>us&oNSmbOBkV65+BE^+@ zF2cCFzSUuUu)n2YGY_f4h2^^!S`Vw1;ddU~Vu!<+xZLpi4G#+HU(P9BlxU8Ljmhko0t3L_{+g%$gl)zJ2k1DqdKrRw9?{~P1~q_8&$9Y znA;ju3IOi-x&RY%w(pATFfj{?cSeQ6W| zN$8}G!jz6Huk#0Hd7CU)LCqI+m&iYU8DdI#SU~jiT3bv#yC#}-z+*9KTXz7Xve1a( z`MLPgA9-ht9Xy`gB}eJ*<~pJZk!OYP+1q!<5B~Q3JUwPi{QRwtCB7OXH@hc}Rh_^6 z55FdkU$-mfdnlBfe(vaUD=!26LRu;0+{MuJqe@<-Fj9P;f{i9|LZ{*0zH0~kP3dTz zqiP0q?j_77^f649T?uJF)b$Ac_1BX!rQwmz(^e>LRKz~zpTsvS3A z0ru;(5>J#9JL|)xH17w;`j>;O)1d)PbcV2bE%ZHuGMHHsVL$^h8|q>;*ijx_!xSQ`6>Kab`6G;G-ZU89Io#QI z&+ACW0_J$2JCLsA0QtJf$d`6VsiUrU`F$doLbr@VA*gx{2LrdsQKDp={j;qYc$}Ay zXr1j8$E{^H(mZxrQ6L+^477sDbXgTl z^VY#={A#s7@+!b;0g;(=12!~>2^8~J4oCAhXNY%unU->Ww^?TFhf4%-jdt|s$-b0F z?;MKGZ3x_Nb#olQfI`S)E)}k-zr3dKRlMbWZmKsfaV@;1Aj(l*efERynp5PT98cP^ zb}x1wI~{L$_}%dJEVw{_-Yd@a{D?KXY5n`(^RhU-XEMJ3+aHVDKXNkD`PTN@9`6rs z+7|!yzOPK>*0}Ebo?6lLx)C&s#4t4lXxtUPQj~U;5QKxgLCKhid-_D_E zf1HuqqGQS8QmuwdV^%_qRE>99sg6wjC zg%>TFCw33v*t~KuS`YZ4Zz1;8h2r!iL($m9*AGPdLyTeRCx1gfNplsU(7$HBPITTd z9PLjLc|rbg%(f8)FGX;rP;Nkf>P>;Pocr-io>+|L@uCE~2&E?n)XZOIei_7&-s4pr z`#Gm7q#%kbe{7Sys_>O-d8bvaK5@)6ZJ#OO=EIN0tKR<+VkwKNA$_JVOK+CYiI08N z*7$$^-D~5U{>6cK^DjJ{eBp$c*SzTUolazIeL8=3CDzKbnnk=<|MPJTkt8rP{YP1TB zF+N2O>(ta`uw~cbDsN?={ptC{t)-%<;4)RM3*xvQKyN$($0~XXD6l(GTBoV$*kZ0r z(a%8~DC3frG~k`rkj zzI=Q=F4Lz#>*MA3B64Fu1=6R6nos)UYUsx!&r?|ouL_dpFk<@nlekIWJP^(I&>2s< zR4*wv?D6%XU!d2(LzUz-yK9e~VXWhK4@c`i&P4AbR5Nd1{xt#mUJ0nf{oC+(v<7b5 zU&BKFG;Vu$E;=p8EuPMFd0317pAR?#>X-LU-*^a>M^`L-&uBE>elZ%;g8 z4|~fpm!4ZiAZsCQkzQdm&hhZA?kgCjRZWAeKnS+m75RTl2lZMvhBZM@gi4vg9;FppEe zhl6E16m1MN<#0J%i_nYD zLNq4^an-@)6EXsM=#VQkP|pEmArz2T7`*pd+WgVQoWTpfBB0N%1lAK0A>TU|ht67} zoMpVD83QLl=Y&F9E2RE@sN@rp_K~9+Xt?7@gaOqxlfpKLv3$9cm_g4((gTBda0Za>h%p6Z-ofLY|4UqaD5N z@aejIZPRUDq70dHh_f6O-r8#dm$|eYTFk zUlk-gz~7AXPQFwRq!&vNWv!&?#qR9Hc>JrEy&h-h?vGThUP(MFEoPqA2x59CxsyO^ zi97JRiHPfod*^JlPIhC_@4>pxJTkye4YZOW`Wr8Z*m|JA3l*I*zbv>6H0I{P96QB- znTzHeI*>Bu!y*s;X)mpRz0MXk+WO`?l~dRrCExh^vFQG%i?lfPFm=%pblBAeL?Jx{ zcjusSzXLb*?XwIOz<@Xz;Ywhm{z-soUGFZWEPdYmvtzOF;B+((=#rH}YFgWuDzFy< zlCg8_QvFL9yIniv@A)00jWiE2FMxuyFmkG+`v zSw9ofQo>|jUDMVQe%i5=fv19-v}fQzagUBzmrW-9HfBajeoG%tp^?t0DoIdFPd?#slkWxaztV znBSb{mjFV4N%?*=czgvK>iu-a@iN_CejK#8anFgN)`1PPD{wCLynHCS{%rP#=PS)f zUjCFB;46WZ3UW30vu&xMz#%#?<+lw-``vCNy|8hJHtl%v`@wpPPK7~Zf=lq8KZhgt~Td|T~F&vHe;(d`jth9V2u)65EUYwIj z$Pa>7L_*mr^;lLhG`;w__C2J%`45&jXC=`jq}s)As3D$&9pw4T$0DZD4iDlUId7ma z)}51hsJX?Ls#cWu`9dL74NJnUHlcytuNaN?K`hcEGjswC#xHm9p5xkdPp)tbwF>ps zZ7D7*9sdnj==Wfu&pOXmIx9Q9f2+vzfYtS13MxoDSh`TxTgM}Q^?cqJmbkL|p9`d0 zWPBZrpMG~!ellDcozp-cB%Yl~S6r0>%zR-_%E9*1mDuE5dXQ0 zva~mx|7biWA}3=H-)|wnw?J_E`7u{2z?ydL8tuUf%Lg^r&b_W2?~Qqd&LhrZ3n+o z)+wX%Zes#e*R^4z?1jcfDDqxw(Lq5nfNf0THB2wY0DaSe0bOTPNV-idXm1cY_4Ci? z1IsvDX97I3HozzDnwkTj8G4dBYonnj<#}_?g`~hygza$l)N3t#g7+ze#_?R=Cr>Dh zNVhI$8(G;l-;KZhz=I_tWhJL<)Dlxvr#<;UZn%#4m%jrH=E+26 znF>tISb)S7*4@UtTgRgJ$aFN$Y6p@9sx+4Ykh~J`r=+;{?~EC=7Zv$8<8OlVSbH zTm_Ia;#j(pe*2Q~So|>7Agisr_-aC_!}j})@us0)eJ=NV6G$`JFT1K%DOtj4Obeu`dVGAXRsjtX5k&Hk5_lI3B%ELxWQcZRAYi%I*~z zlQdTdtNXVf-xMrfCvJFjy*DzD?vdm2xZmiG!bt*z%2%$ovF`dmlWqL4!2bb$5f;wVo$f3eqWli9(i2$8gS z0SMPEWZKJk;E!gbbCJx8bU=QzX=hhhlH+PXDpj7kUe6J~dAt`(d=!6E+2b{!I~A3zk00 z78mO6eicmj2j@WCu2on!rop?D)y*bt%-h znemq4h%LAtk4!~x8iIgiPNt+*>?hXRkab)E)ODy?oWxHnJqv!1;s!ahs7|4gf(+T; zIpuC+9M^-S0UeikIFMb@BIxz1@n}4aVmPsY;@5iCZ|E+W;W^Og${@Qm|JnA|8z!Us zp|jk}G$ON6{p$j7jA1+s(mh_fQSYR~pBaYLMZfjRiL0Be8 z^HmjcRUruhi|-kZ-c}UEBWGzvO~s;}Bx13ORpV1IX?^|te4#GKc2;W!IMV5V_)U>qAFA}1h3Ce9@`y$x?{0&S#OpDJUn#KVz0hyr6_$FaB-DcI zvo5OO?lm_JlsL^fI@x`>Jv z*E{Lh#kuG`KE>FGgt-~O47|^R{3C`EY*nyB>af=PzF;YqdfA|6)6JPA<-W0KDvbWx zZBmqw){*xTg}Z#NLef!&?2Ef3SoT`+OFNDVn`Yi=MRu0-&jt7p>0 z?xE-%L9zP|VU(unzHLy4WoCJo3)I~oR+s1L2^u+nQ7UO-m!5;CcA+FZ_Wy$XWgX;9 zUZ~38Hba(EuDr~UzBPO$WK16aDD zH*TAV#*^oxJ3~`a$eeKE3Swy;C8`8X;&QcRPR48ih2ZOlT4=Lg$CK89KsL4v!ekys z56v>p_ogrS`Rlm4kykUQMDuVhmlOO!82(v*zEApHn&$-#wA-uwkTkMR+wZe|13um3 z&`2vW3N=+!(8zSZLuIgT@Z)JXWEM0Qb+^bo!#2BOy?PCg_}2h-PSDwMr=-~4paNA!eZZAo9D z?(V9jW5z=tBHJL^iorL&4ci)V>(+?F7o+*KzOOB?n5r}(TO@2itQxYS%R>rnb|?>Y zXt}p+LaGV~d+%7pIU0Tdi=FFx65gc+8&c)XP~9iKtL`rsGS4~zoZJd$N675foLl_2 z4n<=G1$KBgV=XJ2kaX#%O?h|qf;6M%dN%huXmvm(;XCk5Se@td2=>Q%fi6lqnRbmn zNZOcgh{#QY(KrpGO20aPU)s+*)b*|xs3Xzxp7dVxH#P{(Ik*q^HBQWziOvM*Nt^s^ zE_o~Qtk4AV7*ykkl(jPn{A#}!ucT526r<=apeVOf-rlw|@8l<_vvX5pJ{wP2=^tBz zg}T(T_swsMJGMmgnX}P5I-PV*=Hq=K^79N?%X&em+#b@~sEkcQVv%ncjmFSW#G|K) z7nwr2oNUKh7g$~93mG6Tluy?}DvN@+?b{r^;};_IB>K}YwOgU|o=gAx&o?Y7z{`Mj znY8Ywy`#}QIF+<4;PnbZ-JZ*Zwes|bnr1UF{qxAu%g?=XGothiY;r7GbheZfBkvA@iGXIz%HCZsjQdpQmtfB7H^+{qrT zYRyB2mZrB#x&zy`N<8K)tdBF5Z3>)@b%76Y)rsWx(Ni5w|G+K9%dhf-p|Kzc99N87Y zmEm8@YoQCz_wS6x1IIJo;lsw|UuplY58_d1*Nn#9^rcGdBvw+8@vd~zZ39^56YkSI z75|C(Ey+Q$ch1rCa<-OoR4Mtr>Fu8WXW5-A|&d!3DaaRg`bv=)ebdX+k zTuNvapHRhLHe6ju#+Sjtr+f5bw04h|7hN|p6kM-nQ26p58o8w}jSc@i(Om!0iAue% z?&KiDkg@D%`B0Uglb9(BDmDgXi*ot#mI+u;aYW zp-{!|%ycvs9GCZ{xthT~vj6(yQd3l(mi>4Ut9|q4Xq>|poA;vx-ta!ztj=?pVA{3f zOK_~X5a*DmuN)dl+0rMFYc$SFmQ~>-d0F~E8Mw(7&d&smj)$N6qJqFR@oMBtFztc2hvE$suCwK(~S^ zpv1q3A#s$}6~3uZtNVPnMxGZk)b(602+}Ucv3g2}Q1XZ=SV6^}av!zn5R-pOf?R@yP{GaOkFGlqN1y z<+i$HXLt*@J`eW>vsQ2Lb#Kd=3#|brtKqDW?pa^qS1o8FlaV0OjxciL=4~ugXPRZs(itlv~7qm=1 zU;WTf@VRY`4n%L?mgqftG`bj|gj()IAB$vTiWLA>m2*`Bkl*>~J$P8s_R(mZnBf`C zx>ous*iG40YTxz3Re{f=?A7?J4r{b+Wl({y6XY_|<=P|nJ>1rqBYqP1?UJ%y_^`w) zH5eyO-X_n}OO7wy)5p8Uleqgs2+XzPG@o}>Ije)^mi}LEYkF|2LON0MH|>9Db~@{l zFU;!(0l{x0RS-oO$2_kdS}S}SqleH)E& z>n=3s#neuPA?ozjRo!Qu_46N3(17Ovf7f`i)+f#qUplZ)Ev_Bbh*}ZWjQl)8(y?@G zZrr|ZbF`j4%bOBc`l&Dd>aa%Cim+zna}PQ6$Z5rb2UMfm!S32E6&?H2chd%>)kxkj z^;PKWis#C`^(dN7rnumbm2^0AzR`su9s{Grn$0^d?s$GG_Z~rW+V2Wh@J)l zynUZr0<*tW(Bei=A+J$he@M3Hn!knGU5t;Xl)0dWHYx9)LHJ4brQs z+VXrs;;akQ#lI8<@k&0mPWTa`W*>_j_^f9<6X?I?Gb2L8kL^7CPu=_JFa@G{R*HH{R0P)H?2t$U(j?3!M^&PDSg~#nLgUCP5x;S~dy@edWE-!8+Fo@{qU9 zTXse783;A+#$(xp$kZq=auCB*8eqh8bMLn39XwItmJ+a>_QeP(ky1-q^4Dhstv3(z zIh)zReVbw2R<%JM@mlm~$$K?J;$z*Z1h`iC7T|jBVzlL1Puljz1Vf%ibnpaQFAPn-p0|>5!XyI+*MiomN+=X@o(;!N&K&Fus(UT zx#+k~p{T}`;E+ExFgF*y#|}nsABt|w*-%?ReBukPwqu=;)|a$74z-=|_~Y|)#Q@W1 zPVNe+7=W{M;K7BdqLo!}_oq-%A4ZtrxP6iQ$N2XTXT`GLvy!?a;OItO&IAs)ni^c6woSTiwyYNQPK5 zPk&gA?+YCiF0M&4?mcou#?R-|=gWr!qi(z=3NFomniJYoh6@{kX)YgD^z|Bn%JM4z z6&b@=Xf45|7N+jG3(-7sHkvm($y45?z=byF;V)PG}&+b%MXhUKCc_r;)&(3 z5#$=7ID%`=PD?;=QyHZ4kUtfs1IMGMYkl)IDYX9LSJ_^=K9n_2Jww~A^=-x!W5omW z7fJ$vR>1g9dIwx}apdG;9nGaShoR!xExC(;%cQXI51#yzkw*J10lFvmWRx zLFkC4D3^aeJ2hP1_2aTu*a+6j(;vhi$f@XR+6!u{oDJvLk$z!ci>7#!&Og^9#jQ z6ca-BeF+M?yqI5zAVkio$5V$QM(~z)GOrP`u*(OL0qqR6Af`p9and)(TrhF&uIIjY+YQk;iy$69 zWs5TX`mlDrFIWICnYh_wV2$RkcTcFbRNBpL;}NIO;>4@PZAKv;kod1r<{xM1*V0S( z5}Nxj1pGD%Q;etPu|!)Z(>uxyB!K+m>3wVFSrM)>NJo#fk*16@<8%8F$ZMiIu_<|9 zcT>w&=q(?aR%-|MBh>OunY^)Y$YGPXKRiDZbIzkw;3Vg#rZ2>-r%dp#nMWP26(G!d zp}1{UCK36A)Mp%!+8WcIT1Ho8?=JA8x@V5iyrMbG^P&dYm|9ZlThe9(nPGeszn?ZZ z*71D}Rr@SpMOiOWs8A_?awWb*VlP*u`@#$;>*J@Rw{;WFhs+G%ksQ`4DWE5L8`2z z5pcQXz0;?V71Ah>3eQ?$W3U1-R!e{stynQ(kPAI?5tED)wr`H!Q~T3LmTelQimnb5~7CUiGPMslHX^ZLeYEP-GY;%8EFH*=(?z^tO|AG!O`iWD~oZJ*K z>?z{V)tx$!SRPt4&mU(12aUEuqIFXy8mAd#*&#g0kkm*g$q zDx4MnoWv6P(;R}_cYJX!9-hH-tUQEPv|s+Vyju-P6f>?JG$a{BRD_d~C6D?elMN3= zoMS107xX^Bs9zI{$B-fBnV`aR%$xV-PfL$pg?JL%Fg zU(~SY+K59(q21M`+Y1*Q3NW@BVr(`9pIp2E)BE|6)RpdQ+IA+G8ToLdLlH=jCe5A0W3jD0lt%1b zQzzrmx#}z=XIZlY*9aBfmkl|KR9T9&iV)X$&Ag^MwcJf;l2d4uGg_PEX5P^Wrl~CP z<-*m5r8*S4x=!5eU`*4Soy~P9-`OT1uez_MElv3X0`Rsg%fp`xsOf(a{@A)D`N=OY zIyn~G82Wi-t&n}SPN@0#a)Cnd@Zi;+Cmc{F0+q@_H}vtRbL`vQx(!jm+XLs0@d#Yb z@LGrY0n1Wg^Vv31((%P|YC^BqjQ@Gz1Zh$rc<)>W4{HV9t{+6QsqU<4~bRU3T+d2`woqHla`)Q{w0UB5x0hk(uQEv`s70%0q zGEKaSNH1`pCa%@mmjXCA7_oa-G@jYdYY8j9w6FHTZLV!jA+}+cmifmPq+==x18v#8 zH+qL~vnxDbbo@37lCY+){@&zd#MzUDX^q$2T0 zt+noYegbJBN?R7Dc0eepur~%%-*{`ZKley<{U|llnBHvuDT0t2cGnH1n#%|NTtU$N zD978Qm+XAw_w0_w46f>#lRS$9aT2k{DevpJ<+5Iskhps#0F7POMI3%+Ij(k_u39Kn zT|V$1ga@cysau)(4(Z0Ve)+S!)IRpg&Z+SO@#)iUO5b&#E~8c`pyg zg;UYkv^82-_wMQ9Rb`fn=Zoi9(#!8@zi5}s-uDjei2r={QA#mSU4AeAe><2X>yHZB QLI3~&07*qoM6N<$fPx#1ZP1_K>z@;j|==^1poj532;bRa{vGqB>(^xB>_oNB=7(LwwOsoK~#8N?7e4H z70LHC{C<6YGe$si5=Am%&N=4Q|MpVo>>*N{U zUAOx7ZJHp?j5DKud+o(4>Q;AGcb{G7oT^h*|6k(|E#L4B-|!dljY!`hLjC*SFTVMu z=EaZIPu^8Nep7n?MakXg4IlpC75j#^_~MDQ|5Z!Cqn5D8EhirRTz>Bd;NYDfcisBQ z=f=W*)!$qhHg{9yfkYx&0H(Idkua_**{(-28d> zO(q8@y!#{m^}X?PMziRGW%quFy7?0>7<%((T%2ZR-Tras&7Zt)h;q0nz54?yMo%fa z%VcH>Pbm@RpjhIqpMsixMulk(MQ-ztUN?S5$pTI__T2sn^+$yZg%69Y#lb7jJnLR=z4$V)_Q}2rw+pJ9vdgdgmff^1Zgx1+lvsE!{!m5Cfzs%G z#VmI2FWXqyuOW2c^yqBWP;&&~{ z&s%mrX*uyml=*ez%O=wCH!UvrTT0)xWZeGAwDMhk#gl^aCm|Itd@EjVsC*ky@dE!+ z*j2vvtbCPT{uGJr6|a!9x9rK<%D15vFH$R>t*?9=RsI~ADdo>RDqp!&zP71+!=4*m z@f@dESHAJCe92}ajZ5Kzo)xcV2;86eQd#Um<^8)mxeaBv(9JUG*-Z>`7$lBjd7HNhfZl7T)kKytV4o{jdWKP6w|p zJ=PqNT@{{Lv3_5}>Vk%C$!Aw(Uogq8@r^A67VmA?m|p3gaB4|@y?I&%a=hYCqQIKW z^9%ADX&D|C?rq$ZR_T^-dU1Y(Wky9#>5Zzlf5bd(iF?|z?SbeMoO(le74o=c_ft`3 z!K;>(=Ph0jNrKJ%y76Tb35qEDMN8$wp9(6TSXRD?tRQ5du&R2)5-F?vsd3f2JdQ*n zvAg2=rbB#8oOgchk|Q@mQj3F<&+gcBYEAY9 z)68>J#Er5qnx_*ofECs$r8INyzAKK2XMAD{ryscPk#Gt*UhyZU9k}itcid%9(d_+K z@e?w)CKWH-+dxkN?30SyC6ZI(nK}Ee(6nuG3Altr^xmrKr#}?FZbc*t(1uGSil9f| zi1dX3ZQj0nKZ8Y(PS?s;eib4?=MpKQ;@LVOXZDsqfyRLJ2Ufmt6sm=Ifl{Jr;G;ys z=}Rl$L#NSyp*nDjy&y*M{jAe>^h;hQ6gDLtzLIdTK5k##?);ivIn|*#)w2rkhNPDU zrx0R5?w$7(QAq_RA86VhcY^&F04wGdTxS1Wnp_NSjm3L0y{W)f_s_^z6NhZ+_)|h;Kytf{9f1=qIp+HRl{EUI%fUA}*1VOP{PP zf0JEwH{;~3#FIA{7e7ll)aZG%$*iz>cix3vIp;j`YL*^q3Qj#6lvEUuaKbXR%upys zET9C;GOKACX3~^{H?|4c!qp5wyF~JdJ3i$g*m9iyi#DF+0Ps;F8Ryi(W1;CaS?AYg z5HoMy-peRPGhyc0rj+0!s2J{r98?kn@Qgoc$1&%KnOAU?rUA#)(#89(LP>_Em%_io ztBB4!A6roCd*s^cQxA}XGN9tz0>;b(K%_zMkoZ;fs1EFY_NC0G=Y86O7bOra6j}mEfS~=A!c$WEl z83nj9>jJG3ZU^nOE#btDgp*75UvtVjhd1Dre{pGHGf|=YFD*I!c=wTOP^}(C59~^w zWS_a4SNd>o*<U?X&)`lWZj<8yo? z(icgjb5DNWUrD@q`1BjA-ddGBU0iSl?KJ(;uLFM#pOApJjZ8S@kX^Lv_)8fD zKnfw0%X2T{FIsNoK$>w1Bp4h+0^S8OA=5~MEjSkms(h$BPA|xM{9q#rfEC~jq?~55 za7+@NVv}4#Gfn9!2gxa`gr_Xaty{RaaoWKfh6RmQxizpMgVW254>hem(qwY%&Zfd< zcwg|rVvgTjRr1WH_}QA$mp-LT_XfBDGZpS1{_Ym4Yv^jTs<#f6ukkmvf+=ZT`35X9 zu6k!#`6i@Nq|7OHRJ=5+B&Vz?d*zo^MJtBpW5M1=xM8R>%s=FW9ISS~`J>bQ7Ki&S zz7JbYza<~&@GFwGz1!mYfFx?(xB7fvCB8f&K^IXLQKX-`?V3^o-++E;U|ZY?{L6xE z_~9NnB%Z~uY)Jt2737jDw#c0wRM0z0aDcYaOef%>pRmm>~e-gWeP+=-hRCvIk)zLQw;Fs1w{Bp!e}N1t?W8S&+k z%b)EPK0AE0NU+l#AVr2KwZ?|EkX1i zsMf{X@Xk1!Q-7!I?e7)u$ygJGpGQVzoVMJne5e0l6xHMd0{l^fHa56CQ zG}pU;y9Mte?m+#XLygHtucjSuLiOO7CEx zXYvr7dNQxFvF6oJywCU5t+UC<+ePkyadC`Z%)Uc~0@8arWn&60f6hZu!%&$`?B;UgQY7sYq(ML8 z>ip>INU)j4p$&_7U0WJ^!(q=gznojqhwtSSKSq5}tFVd}Y=|9zY6Mrjz}?xH2`;kB zpN3Yv2rqASN^1EtJTi?uB4vsnS;k&92)}|l7>72pbpRIax;7`KX=(UnHfK%5@_Em1)#hLUVQ2NH?p&jL=}_3J=21>~0oUuZu3;@1Y@cf9nW<;>fb z1Fu?Yzs63y|2mNlKl#kZ{^)^Z|HbIPBtt9t8M@yfOG)uyVq`GU-(auQwPTk#UN zb`Zucu>kRKidQ8$Wkc0l$~3=DbRK9_dLBg@}b$}q254>7g^)9Wo z3dK)sWFRj*7eWsrQ5Lb)858xP8 zR^UvC;MGA#(NS7j006;~1PxHiv1{CpA4B12wfCNri_SFX*EL;w_Z$7D_V>OK>7NBy zbfD@P`Eml0f-YLP?=qS?*FC3a?`MKseBzGJINF>eU=aW!O*r@rECMDvotu$-$Ge<~ zz6+=jMb=S3IN0eAkf*h!uc`h4f9CDJF)sBkl|mL=BAEo&L+zMFT&B#?FM1VUA`-8* z(ce5Gff9kj0Z{LXmrzYe(8yPs38h4v4;J>Eh5#A^V1ELUd`h2lSp;y21j0j4()7}> z%Oi3hQx*X{B7rloHfh?u@)dZ61ezNdkTlbx>J8TvWQhdi7BeA5z|4K30H}p~8@%>b zWR+g5dO{{OeIwF8irSZiMKCQ41(Dj+qSMbKvj)H=Hg*QOXnEz^458G5NTc^Xr9>KO zTR9=AdFxT8M-FyBq=cp^V5_)PzJ}8un0I?!LesG9hg8&nj)*iT>9%X~4e%}M`2D37 zq99iokgN*_e3VGgldQag;Z)U-NfttRg}#E;qG<|NaRL6V8wH2*R|YA!d9~#d36C>2 z^&U;Hj<~$IR8$ilkzgCcL!)UJ((VF=FB8Q0(o8TMt{qJSTq05IIn?NvaANX-rfqR2 zd}0c%0uRz~+u+obNhd0gHs0QP=Z|kh`iD^a^0$N4%;zzxe4lvowp-*eLEF}7pH%F! zrwH~p{tZnl$t`(E=S0xLAkxT!CzMFQ*w|YJ>CN<~z{;0sxoMgL4Lp3Ll#_%%OCqn1 z%zQva4QQ80vr_IjpJ8eR>uYJ{d+OT&@GIbX(=_l=BH_NQdO@oX7Y+&2insA)%voH` zKmp}R?JHn=#Va^V>`!>Em05RqwdE2C?i?H>B+SAZqE9_q#ffw05eW=uH6ipQjiv{~ zSvwP+D$6vWEs=oiqPugB+@gUUi|lizXI!*PCXs>u3CCj(m#wURc;fK~-WUH0@Sh_R zVbM9!w^?`g*_x;#BbR*dxZ~6JlUU~MNF2BxkXfEr@(|+76;KdqXx?L%NMk~-Oh~?y zP)H0vr;68T$k~!Wd^wqF^!3#$M&KvAcZcoNX ziR4=$az(ZZZ8qDAH|ulns`#T)M<*ZtxOm%8Sw z$JK2KKMEpIEG%q_Dylho{r*=rZu{RNQthi&EJ{Clb9GFy_OA1De91flOB8_uCKQ!y1Y3^M}>YA!|tbM`)r#qZ|u^{?7 z>^l7jB6cPr4Rd0fCM7kG$asK+p`gEeP4ty*XP-fyAi+TuFQ~VTYnoTSMIFEdR>biy z3P4GMv}}I>gdQ#p+I9Q{!9@L=&Be19)vv? zW;0uo1q$Gl%?IxoTe+HfL7C%u73SuISbyo)~Csw=9OfTcADSK z&4oqu<;=7HTmaGDvd3$85(|x6VN@XEz#aG08<}T5Qj^rv57!8k5*MaB8AxPqA<}qXaB6g+gr_v zmRh>KOy4ozt2LJb5{}0mE`w@1Sa+lDZL6gqz99U|M5=r9JC8+fV3Dmz7f~3v9_pM$ zKu~@&{aT~9RFw`_Yec;TV3GT-V{`5DW?Hu*(tP`a>vq<>)coMJ!jI$>pLM#^g z)U6N*R=e`Cw~TZ-Flm@Zxwp~$n}iV1tHFbUq0g4*f!EDV(KbL9S7z_RB2NHbW=81~ z%iXPXBix>hA|^%~eQ~+PkH)3m8E)3(r-=AeK;!P!LaOyY_~PwEl`O##Z|EODo$aCdLk-bY^Z#@tm^#^ z&JdYz#Y@y-_`av?I1=D?_yOv$sp_qHPaoCBU6xk8Z+9FCx3H*UPT8EtjL1#fb8En!ySjN#XaxF} z-IqdA%a-QW&DwvBUG58JUigv9btN~KS3UB$^(A$V|4T%A{d;l^>Aa>y0*kz&k4^GB zF>q(aEbFZ4TXWT7FHW<|pYL$cAgpm|*yV}o_qarguXvVO@pL5#*=B?_;=tX-yRI38 zUjdP(Ix|GlbFER@eS56KIg{Xqk(m$lqp#-_i@F>jN$l{VL*;9K0ZG6F2y1H5L(AB! zBQhV*DH6-VE^pX#-L<0CN~?Cl7}MQ?F%u*pg^-&#L9CEZ6Wbu+ME8jRJ zUN;VH7@GZPRrJ+8$M3sWzM|29N#)O0RlTEwOK3YXDnvEm!L5=R*i9^dHvhy6lMqr3 z{fMg*-D|Yd?o%QGjtSTN4qbIkD&nr2w=M3(_JRt(vzOMF-a2vhZvFc&LpA*iM5=rH z`w@Xf7gbJ1R8tFYY};M9*gkjQ&hoKd$EYG26jC}Npu{Aoj=u5nt%*dzC6Y@r>FlCI z_|si4FzU$vG5|NpDDcvZ_*+vFZwKa!x|MN3s0f(1>-z4O@3-kBnmVKTXPtV zN&}#B1XBq~EC`1=XgIh;vacj-1A<663#^_McXM?}{lb$k*#IagK-yAJbVQ^z$QPcn ztmqXxOgGi#yy~8NERg`$filw zw3eX+h-7x=$@ZASB@U#IPJ37N1lNOPXj7WRS9@79BN~GBy43Shr zu4#HVAhB?J?c5kLeE^PcfpE?oH=iZ%j_!%tBg$0jHGw;~NU$c(A zYM6FsR{FgSk(Y;LKZ5S1_nMG$XHIMr9*Uhv3(kiLM|k}>5k^2qMA}{Yj5_-Bqp#xy zLTMu(o0oRx+^MGj`ce@8D3QRTBNs)V zA@D@=!n_91X1HnUw9T2?ks#6`{JX&M(3Cy5phMVqJvQ}TD5oK$V2KoajF}@qi8Rlv zh9OeWHBBEvq-m}f=EO8j5Jc0lJqHjzh#*a~i-U8+u91M%lu&qoeK=vMAo}}Ox?ofk z_7#^%kXl%qyUU-$E1)?roJfJPRzeS{r3Ij)*tiEj!4#mR6Ay-FKco>!05}ik2j+?N zCpYXG>WIc=Q*=b6`0{75NA9hHiywV`OxisxV_Z( z{Gi;&%Xc=~#9hrg^Jq)!sZf+i;27=9VDq7_*?=sNbMbD5NH7)@V(!fHXFe+hE zZR4-P%7Wt&!3p0CuXsVj+qMb)0RRa)?FT+LR0o}pgalne2;xX%q9H&?LqJn2o}o%q zp6IMWBq05)0SWSeLP)^tV68;3$hYEUNI~-`p*aVP%(!n9cb(gBhGMKa=Ul;fbQGNs z2?_UH}0%Nrvap)g0}JTeqGc#Z;=vM>|g9RS(Z#4<#h=|+e&)`RK0qX3b>RoZIgl{}2j zBMW`9L;`|SPto4IjN%JtZa?A4)qe#45Rr&Q*P2D1@h2v3J0|B>rm-?rb44<^)PHk< zLePcTUKb3*iMMUMlX%;3l#N3hVVMM!krfZAm_i}Yu7apDPu2@Ni{T%W&W7Aa3;iw) zvn4}GgB{P~vkkF7H`K0ra0cVkvse+*Fy+uQXc8D;U=*FCfc6yxfc*o&(5D->z`f2a zeL6eiF4&05Y!h^&L9*dcp+3O^2OT*86b>vOWa3v!$Q*&Qgv&xl!SJJ#6d+`4tKQ-f z;IG4dM|0qoa$|OE6WR;-<#1_+<~$7D-)a;U5)bKwNts?wPN97ys5veIEegHIz8u^L zX=2({JjdOkE7tC80Ff3&U5h+)7lm0u;#U}QuuD;%b|=C*1V{`AquzLXcojpl9-_9Z!!Gl}m*8hYnWH{XU#N*=B55FS%5<+< zh1ffKE;UPqUjbhYE)$5fBD67hKQTUmJ;!g_WK=E5ulI^SL6_qsgSLl=nFstg$8G-! zA~n4Kw#U7f4p+n^MEyWj3xQ-T^z1TT92?(1-r z0kiTq8>^Ug7x0~sUQ_yNT<$~YF8WDe4$+b$GVTuwCCfGd+FqBGqiz8cck;*k0sUQ9 z7ax5NqYj#fN+AHf0oelBpk|N_x0}BI3BCT(@GDV=@1iCS6|c=I-$IqKJ>9A0PeCe( z4w`lmy)U=3RTikB#c$E4~}Z)Lisak8T8 zNtu93S>MuO)`#`CS0R69{7w2cfECC2#sZ$*rSdf%8FpPt`LpdA#NCBH*WPo7evZL$ zOfL@f9(x^_3~=O7J=AA?#jB-9Z!Or{$Zlo>ux4IXNln>zY`m;}{NbP|mw0aIPh z^U5#?>1@1}3(s_Bg%bc)O?vD4{1s#uKjsC_b{^35senmFFKZgwz#C?57u*OB9pebd%5s=#|T;OjE!=oY6Ea397U5kGUXqP5M zS6U5cmPkSMJQj&ylr+`05PnxzR>q4v%Jc@Y{XqB}%iH@Fz>2_2`o0%K3z(_RIcM+f zOlLNRqVVUKdD&&mQV{<-J|mIp-~Um_VNvqYtA4SC`VP4|AJauVOmR66vxkk^j6He} zEh}>HRYuu%tZK+7spm#H03&TlJh*WXzobR<<&Un|7~UqF^zRD8^UW4@^aHyNiJIiU z1!yVQi^Cb?{n{3EP!2E(sBO)kMDD*c9Zqq_+X&wl zY_HvscbhKrwC7NxKWCA52oh`Nr505eUcU3MkK2AOB0(1&ZxFF4>Bv>+qNPrGJQfXH zlRwTD{Pb)b|0aH*AE5@3{V6>JQX;8tfj zC0_5`M2S1rN^bzL$50<$u|I*WajpC}-)v?O_V2=KL0|y|v{UB`m&5&|8f>ZG`4Q{# zSlXyBiPTsc$NoFeByDq4yoxWRsfvG(m-cL2WlB%x(K$K%4b%$x8S z+b-eHHS_YS>i^v({67nk8a{wU%n%KbeDs=MT;Xz;{7++%P33G4((6jG=fwSp19xB# zz}VxJoaQPj))sB`62+LURcIh#y|5+OFoJf$PSfCGRdB<$jHbV`{xC!Y3YL3K$Z=lj zpTA&Rzz^hJfA^90$)8j52>Obande%pyCRixM#CVw->mH#2D@1n0n@e?e$sqF^C;3~ z%8pD>EcIt1SK0y=`$!v66#q2W^DfCZa!Ve?wO+!XE~rAelvPr5=`FK*-an7Ohe&7N zwuC-z34GLY^tFgZkrmIaE8ke0df=3F#@H=iXGOBwx@={KqY9oy12*QdEE?!ms~&K< zf9Ulg_9Af~VN->dPT%RQxSM0r@9F0~nC8iRhGDi;Z z%PD{AUir$h@{Ml=>1{(p4v8dzf5~^orrpEs*t=|qY>X1vV>rcCaEiC!6y(4%39fj7 zOm>Y@AglZ-8LkmT>#_a=fNSE)cm$sVjI84#+XNRxO>l9VnO*+WrSkQbsyA%V5Rg>< z%)at9H}W78cd2~oQ2A<3tf-p=a8G5dyTpoT_EpR&F-Pugh`79bXXA{R>zaYpDpm)< z7R_Y|s`COA7x^mL?8jGA-M}a)9pe z`t&OO{Q8ZD>*I>fflDW@-sMT=KZd`7NHy?#G$_R18SHqT=AbEJ`|D=MHH}HVH`BLH z%fAuQPYZx`YCEprd-M;vPNL}q7U1N>W{_cU&Lesv0I?X7{RmvrkGwiK>(N*@@?mt{ zE-FRe#=UgB>J(#|q4$uf7kp)8;+gIuBx5Ky}O9RTsg#c>yKiLU*EyR5E!x2xhgUH6y{ zh9*=z^QwGhSN@8|!m?Nw-T*ZSTCS>k7gg~*uH@g<3TRkza$9z}|-C)E~( z^_}L@cdCoZrfg-qqq4qb{j3g9B2BkF>Qw$3&xMNNDNr|BG4~3xu{<{fDY^K`;+%U^ z_S_zwM%s%dKBOtsbFD$s*)Q~lR`6BUBEW}6BZ5ybBmNc=Br`~4;Gwl;zM4l}zxX@W z@t4E0&Tq)5GR&=WPdH_kS#5Nn5oTW6nREZvf+~Llk#b)Wb%aF2hnA4W_w= zE)GTwcDgXt<@~b1OM`MB8|`ca#vObXCzxuEmK)NE#H!?5ql8PAl9;2ER@#s7Hute# z-Ys|z5MnbbYEQxpRyM`A_1|-?uS;A6*J?H-8bJwWOwqO=Bc)Y>%nRSgOq{ z=`_r|{k7M)!ugNkZy-|qvzDZ1gheN>kibeb#(0TqPd~6tDKXo&Pj^MKlJjv`bd*H{ z*X->VdR?1iXi-oi;q7pHsONjt$R*qxx|QiyfZU^H8svOIad$I&qTHT)pcWFd+%NEm z1QyX{bO4w)Fv(T~)enffjTVufOM~%X9O5GQi<}YAknwjGMO@L}b#+7rS#Q8P_Uf)9 z_vmtvtFmEtwF;@GX^O?Wu0o|CVHtfT_5@kEk`=GEL<-(}8&#rIGzq#i&aPTH_Rjnu zMmxbAU6tNUgtAi9x|2wY@@LQ?G*BHN5vYO!P=hp(0@zjFYUMhg(sqdCncn14{&LN} zN7Q|qxwBp+pb8|Rww(0ZXi1ACE{nKCnzi*%s$f0^dkYYWU0I1G5}<%=Xv| z^2y?%Xt*Qu&XzxV%@fgo0Dl9Kc0X%Le%5m83i){Oi|`c_4_{uiw_$1U30*<&g0f?w zk`rm|z#>?5(CO_GX{={0ofb~9ET9g0MlSIlRXzZ1ipVUZ=-cdx&`#938fjZ)7)sW& zXRiR}%oe%_#9m4vF%ZKt9*h+FTI7@XHiC!vB-F+O@XZE!)K1#bKv_XC^5C=Z!}r(j z6V3M1kGwKGvsL#4EWJ_eDIpCL3twajJ0ZA40=vAkh{M3@G&BLYFI4L==kxjkn-(?4 zue(n_f{fC$0H`=9x`>JwTZBA;nxb@tyF$YPf!!6)H*u8V_LApqiL@@fac=q@>bJ~s zKBHz)AnRL7Z8<0+5J_rt3a@v8B~tj_>xqIrJJ?&0phsb39VJp=9+_y&-fnLAwE@w$ z=<8)ci8OjEiIXr1sUMjCgid4z#-!a_5XC5GV&FMeD@EPbb77i4xX0>##5b1Rb02^0 z!im4MIKRPGxW9FHPHFAye>#TfZy*xXk$>X{`X1p}o1eUghGEK{a|7_+1zJea?PTAr zhbfEjBHAU=fTVkd!bt=a6C8-1A?BR069W9vbFLX|&zN%nI7T=iya-Av#owLmbZ(~m zg$3Jd$H(5Bp1^1%*3287et$vaweb$*nlSTdP2}S54HfKR0l>@~;|1loJG5KR zD70}<-ea6QKdyBn+UxbseAo{vnS`&DZFPvL$QuPjY6l=}_)XYPIyBc^{>s8LZ+9MKx7cw#a z=9rE9z>U5ZIg)m{pb&-3+870=BP@j|D3NB`9>6uB31Qk%eT%=SBn{mHGD@FLJoz{fVb@*P)u?GevZxYTt!qozV z+rvObz>A}lbEqH@+*GUqud~nECz9Ve`QY;!%lE*R>tmfJvnrCZ2o@cDBt_Sg?Gh<4 zyOCZNU!3k65LGTxfZ4^5EEBH7NMrAUmI%!R`4Alw2__#(;#E-df!OESWSboJBEXo4 z>o6Zs7)>YZPWRh+gEDG{=b4%NuX)EZyUhds2`BPO9u(ht&u(+}x$#$tRCJBJM5oHv z7L{){oW8$gZ~dl#LjzYNYnr6W`jyFhox$I}UgeZUc%hJch%a;t64bXD8$o8v=;c0! zWlX0Gv5hor|Eh#FfhyE^ z8)kp5e@yehsGHh*?q~=;Bmly&chT`=Izo_OGe>(~H1H!`Ak+5T8kz9`UmXq-WS#xe z6!Ui97?$-Ah8g~{lZ#MzOxA-LCtgm^dq`ykC*qNZXFX6)xsU4Ux-p%?cr9o+@E7$b z&O;FK#D--HE|^Wix9J68rqa7W0j}6}Wn<*!EiqRY<=mgS|HYZ~NK3Kqk zdn-@9SaRy+(CkOJ9b7ni`ih{sNmfVD#>v?qkZ|7H$2LRUF;8haG3u1&ZI|^rEge`T z6J9V=hsFO(#5l21OEm3EizvxeJE zOSn1B^*r7=9uUeF+5-t~FY*QPO_9c1#pgp}uqzoHM>ER4x_O+T1q$PkMzz>xyc`(b zlzxEdt3}^lvXj5vdQ@&TYE@YOs_yMS5%lnvh*Wf4WQ#`}z2=;F#&X9&u!vf8TE=AH zNPE*ERu>K3T0Pj|Jc|*wRZ#0jI~$jUUuFE=)~K{lDSLkW*f>7 z<|SPq0YDAe`vSB|hCb(pnr3SlM61m70&^7SZBtn2qde7#>LQJ$G3skFSZE3&Ry9|o z(tjOOFQryIr7=4|cKOq|^5=APYxm*1reTdRXz9K5LmS6BGhGYpMIb{lqCCAU1(gkarV$n=oWc%si3I;5<0KhjKT!Sb+~+s*{ydSm zEZTFZ5mmPeJg8^VDt19{Z2`+79!A?%8MZgDJ;RNeDE^8KtEGB^+#wB$LL5vgF zIpE6~cM#n9$q1^S>2ONhC=s?CXu|`qkFG7oY{<^T9HKR8cu>Ep8e3V6iLv$7U z#aZN+Jz=AYD2P+k<`Fu_C_%?v7r_qEw#873Gs|4^xkLhzj$EZxJ#qQ-_KE))BAva- zXOUgVC$MOO<2mE@n)4Mwms%~7`h{SuUG*H#nsz5>bOhLktP|K3;I%CBu7v`}U1$jJ zCt;pzvG%e!YRk1nS6DQ3O?viO{&b0~vyW}#M6n$vL6@cp*KhhHOmgZle!nfCyGC{V z>IRwZvk5xLCDM*Pr}9cj&G%J4ZFv6~mrwa*BAvY{8X`0*^1oEGY2QXox&4!+ z27VWp1&GLI9C&fO`F_*4bk(+E^I&f`v-%Xiv z%R^|V9EIW>FWHsha)yC@r@OXgk%mcHKg$F7nwrMRG)He`YRu^ekrmHVg@Z+cu7w7J zh%57VlcgjLeCrrf0$)g&8fHm;&25>v>_to2Ybh_(-Eh%N&1&ciZe(}e%i^yo+sjF{z^87dA6Nm&B zp*CwP$wd75MNd#g=di*DVd7 zM%)4)iDsf?-^iQXaU`6m7}KmAbxVaa)->4uJTf)>8vBP{Cw=0A%mIN{aY0;x%R^Kf zklS;QWfz1M*T-FO1-2N-K=0CTCv!E5vG&za6fk1Pr{0~Aa%V=uEfPT++&Dr&c$}gX zMLN6L@|uG6D)2-|u$g#!3c+>a{-@=a_^Zwf8ocoYGSvevt3;44eiUY?DClKIVZ3mK zm^-NOpmj$;3F*K}d8=GWi)3-chSpzyo@u( z2tWajv=O|<-OaciZh;4+Z8Hj@MNpl{7Q43&8G! zjZ+RbxkMZpyeb9nTGf27tY4YHqT8n$e2v6G35MGS>|jJz7>C=E~((6!AX{K$Su4@el!2SgGa*0F% za&n1;S}`wOFtE$jX*2|h{g;9cpL264Ke;&oT3jBHDDY7Ih=fGnsm>ZEDe|#*XpcE0lC}j9DKMFyHNd|?#pN^z z(AVyWqT8wdb9~7aobu!hgOKQBod$ITi%xxMoK)y}ja6wZivVT2qlzxfP^_$9x$4Gz zZKLG)qhuPaUFGYb@)xeHyB5@w?y=1refjjOp``<>kw7!Y4#gseE;C4hufT=~0b|qd z(U@K1om4hNDriW~BOZ}}1>0)zy=XHET_+#M#4!Uy%umaOU$BoBjn4vU$H~g?pD)~@ zOGGN=uqggO!?ySn;|s125wHkA1E%C$2o~WP@M)=V-~-c#9A#TIHtrT(p?7e$C=6s& z#(gMp{HvMzfIdGY8_hpn$E2Xk8xK8KY0-l{8aby(5(+_Ns7Y8*GF!=WB7&=)7G8eM{)A%ePb_dj zT$Y=I3LLuG-d(PX?!p4s$6b&(eeuPqE3ImRpW2>+!pE+>IdS39(XwlY&t9U~Uw{8l z`4yTzRDN}T!^7j}9-uIJUO`Q8%F(OjE+;NLK3enOVB@pG%G-w;pB|}wfLDaG4qUi( z;QUP__BA{_RCf7T#Z44Ac=_4Un)^twAg9zkpy|W)j}O;9s%&_4|M^cq?XzDho8MPo zdreV!^>vZpJ>YH7nin>R9*2EJsMxWqZ4^GCHhDfAA_XO%-COqf^tI2mz{AIh zRCcEoi%=)0sADow7b%MXMc0%4T}$W#phc%G5EKOs*In#W%PxL9Fz*T5($E%Ye&`kD z7$yRBsefJM#W#1J{n+yD_;!5Caq0HkA@R*z$5lS|mgbs_)gF6UA_4H~4^%yC{J@v+ zzXcy5QfV6&x$inMWNmt%h+39N{X9x(kQhLW4S|INYl>c)i7z{JPY;Rc9C zin=!1tp+yz@*Q=jF24BV59YmmJH8#CdNe-!d4wm2NO5;{Hys&hlI*xs6z&j^a5A^} z!TG13#k%W^Nago_U|AG*fUFRngkU1ErEH+- zK3ShqRf~d!o@Jxc?k^Oqr*0BV?BMC%7iW9b9=!SC_l_y_`|rQMdi~}bzM(DNym`w= ziQw3lE%KH@q``L8IxEt~u21)l5hcnh`5BS9u=A3QjiTdAy_K8$}@5g;@STtg78ZqRo_V=|v0`zw+ zV|%MX9u5CS7&hkI{}J~nbKS-pgX-r9qdLTxd0^I6@MnUpy!G?(qs(2r7G5Zr%` zkIHnH$n?|n;n^cA?||B%iM)684d3ulRGzD)B1DPA!%&Meu!csMra}|2T-slKhbQxY z9qkb5%nc@#j%Cp(fiCI-iz)`KKca2KjEJ*PTNJK5)md3MvhKRGfIc}re){?6tu8*i zxAP6(&_%FBs&8(GNWehT0toFq+iaFdA*n@w`wDpNYb2IM+jk!uW7Z`W4YMrKT}9@B zwZ(w>fddwX5~XAqyTSJm*P?s*>h+kZi+QhxLTBW3OFIw0;HbEy%!HKeZ}{R68I!!l z!Ap144BnUhd%+Uv>b>_onWPxDrBvIP*i-9$_OV<#T=zG7N_-;KfB2*J<*%^?7jZN1 zm}6ttw_?#Cvje8C04jCk**x4e$E zhc6>$0wHr6JhE3&t?!N_GA{pg;wR-CYg}oDHfSD z+#xXOSk))8R&8DOpmm36opjwV zD(-Gp-gT?*uA76l6l<@@&@f4p^DdDLJumB9#*$~i`W*Z#8CIj{d_rZ0d;d9pvu*cs zjk?6NT;3b8a`5`~*WZ|*J2)OaewvxP-+Mhpu=jlJ zCD@8~uD<3rt}EBu*f?$X35?u#un{q3ZfS|3 zQyQeZTRNq?k?wB!?)&{?7BKg$yYAh4pQjGfU(%Kab;5IFpX2L=OtCgm>q!5VD3}0r zUr@Hsv*?rNp4}?xn!3GT?BKC0Fk#seCmP2P4~zk!qaLR^j@h=>TkvE;qyssl&YHFY|x(R03(%VHeK=mIMzYrw}H*4G9081EjBxjg?s7*~VRN)SelwQP3Mk)`{JRzhPIu*9d(X{h?mDRTJTYnK- zBX7v^osEJIfB~M}u73i@m_&o7R0Il45+~C6KRnj+$<|=Uorl5Y@d9NeH?7k7l+*nx zL&+ulUnd{DUL@wWLeHZPx}t*$EdRZt1em9YOa;fLH3aH);h^U5cXwP1yA)sk`qdVw zcd6k1od`wwT*R|K>xqZ_9R&H7TjX+$y0!jX9VkcB!+)8O|84mbzV#cP`)2-&w8~0S ztKiA&U2M)nrdp)k>k+KnGj}37Bpt~n_&f=C zt>ME9C=((zIQ_nOAO6Ui^dpc{%`)+~cIi<)oAtnKzLdM_OcFd5Da-JGypsFuG^NwQ znJwkebBR-;Xbs=hwYy1+EwY2nWeju4ba^n90uI!E4snmb^^tQtlVF;!$NrO9qD6zR zZH}As$M;@u2?q=1AL%18QiO>1K;4IUv{pd2HeTi%XrH&%WU7FDH&3LVccA;ThkF^jjDD{jj74C;nSlps~naLrZ9TtVKC1xu`d%e;D+~?r2PnDORQ`# znb-=jt+ZlzoqKMc0y%Kjze$vv(^r7XkV7})*!_ke<}#NQT36N=rkr+wL-<7SLeFN{ zwx;SqT1}i26&qnrxW*n;pMp+{EpJCTHpMK2KN-V_q9TF>62LWz>3Y%O3$Y0Ymk!(| zNoFvsb88nXAZlT_RuZ)}dM~A@n**PMxW0@f?uq=lZ8X!4SYVewa|8f?o!IZ+sscD? zM$w1NoADVYTy6a?vqV|Zm%gkKOhW>?jnj#mm%4)mp3DDRtDGDlDsIzacUvv6hZ=R( zP~2}8^H~dc{NTWPQI`Wp4$=P3OPJV+OHLAIqtAdxQJ<;`FwFAN|I;5@);L0F9XMxV*Hadw4(z7+J(%Zi(Clc-$6On#t zx{Bt}{y+fW<7@`aiV;i4=K zRIUoL=J`3E9(eDEbCK6{;0^J#SP2b&9-cC|Qs&DH__vq(a3Q9tX;4$+cCzOE`i$Dq zQmC}SrS7Uy*zCC3c=C0l%`cqs$_m3bVnFu9EA>p!QyOHeU?rMMnB$y^K7GIHB_(i- z9|~-Bi31n^9QPa+MvtkiT?%MmbZUBEz{h>a`R*Q(6tIm?iyfVp`3KulFA}x2s$kR3 zG0k1)Lm3mW-E>ipc9s?|`6?Ed!peB$W&r-Ru8>ny{a0bJ~dQZsv~AV068+d;M@^sztp#?F}Fzk2E4YTqu? z(t_D8@UwRdq+wPJd|aoV`{K{2$`kr-Ce=X@R_k{=C_}(#uyGqa1`>B%H}Q6~r{)a4 zWds-6`ubx-HUb`l^a7(BPPH}ISIEikew{D1W-?Cq*1k_UZ7{L`1>!gEGgIt4C*)fo zVfN=0`)R!YdiC67+rQsX9eCtEjF7+(H$G3-L(mG<%u%~zD+|o+!gY^ zkW7vOjjx&mG@IyGhzEBsub^l$@cnA)h7&@e1KB*uPwEwzx_bY`us9sd2@IcVfovR#|VQD$vJu$fDV?{p?I+yOK+DnYl&lF*>I(hhO zy9&v8_!SYh&>1c6ns(QaAR7(<11h8Z+=3;f2mTLe9?grzrG=7ghn)WTa}guU^_!UF ze-AYon=lz(s$}0+KHc^f2NcxkmBjS+_X~?%V0gWL9I0ns%=mgt3^aA`>sv2+4($$V zHja>oK-_GcqiPDVf44ZULJ{GDMviTFx63ywcKZY$jg)`3XX*60_hOfBAN|=?KX=v< z{@MI8xYXc-lXx+uycrQ>rBS-Q`U`u5oAQv!KvLJkjg4k)*oDFZa*GaGP>kjb?mL5exZ%$=OmdN5&&Gpt4k=EznJ`s|C zQrhJ%hcJ#2WI$ibb25|@P^22YYYW0=a@=j`OwHoGNSds*YlN>L*vB^D-{|zAAjF@Q zKNQ6H8bXI4*WWvDKI!Q9Dgg2;i-Sw9n-Eh{GsCU+l?!AIckG`n?|!={$v`laC-*E~ z2c#OVj+4cfPfhqB3aXpp?U(&JTX zbv$?q!+-#noF)n3Tz3Aez5(68i_@R|4ZhBz5AK$5!jk?*<;X;w~Ep67t6+B9IY+q^>RG?88Ys_ z^q);*aFZLIN}3bBtR!=a0YzsX0l|?UL10n7g-};hD$-oTS>&ph-ZivYm4-DFr;KOvJtEC<)KvgUsDAKt#8 zgsy&52DftQ)SyKfo|_d+4GxH!JDDBdYk<(2tEP0*Ll-thbBMBdK6cf%|AUSr&d!Ae z*|Y9o%Ma}5Dj18Lm(kPeUUH^>br zU?~Ed__UNU{S22ZQN4}i+4j$2%;!0A;CTOy>a%=iw{yml`6iv>BTE-O=2W>t4x0!3 z4=DpbA>VABK_+ui@nKZI$s=k@9~cVg?7Dwpx>)gB5lrOmmn4&+gd;#A@gimB$41ZT za04W#J_$(!)~RySC5w?7luMUqT?!}&x3W5}6v@k32Ni{<#B}nqn4Fu2C^9%S3z$lz zgAG)YC0%67ei-ReWTHBi_{!h(R~NsKECkRyL*1A~hb&%c47j32ZU(%+9n~Mm#S-W) zwYhPY!2VOeS%0~Gz771dK9XekLBrD(^!GHJVkAKcs3%zdGUC>*MrRxy2`spCayykX z(E)UzZCAYP+72UKR5CGwhfeohx@@nje|;EJ?5nSRe-Tg*lFd0ReyZuUKX}iw8Xm$b z7Cu{vh0q5^8b`ZX|HLA~$c>h@6i#ajUv3?z+!?K@2>+HJW-dCn>K|!=7233Hm`;YL z_+a$KzeG1Bu3I-B*F zVC2NddN)&L+p?Z|mDCs?`1#R+p5SD!{qqAY(bw@dAb$ zQoT+OKb&Q{OR+{X27ErOq-9<~<6i$`rbs`<9)S?b(1i{AE^M*wElyWpzQ;2ZOCus48$0Zd3Pnr0ZNYu%`y*Z0YqlE4r2-x)h8Gm{ ze>vkL=lfi-Y(9j$LyCUxzs4y%TXn*IYi7wDX{@Dk@JDbUCs!I~QtYLN8r*K312!L& zwgsW-*AsZaWP92j!5v3acX5K;Xqfd*MQnoN$bnWnn})8PvQCaEJJ!Qu*IeRonfhNs)-WaC1q`Dej-WLQU|*?hufuIN%?|NMIcd+@25(UxTi z)Ik=wITs44QsL4wy6J!yu1Ow&^KKmdYH0>Z^B{5ha~RmDOEx(2_gG0Fta$a*o!Ly5 zMMpGL&G})xwVc!8nF_7LLyPAT=Y>A9Al$1!#GD%CX>@A!;Sq(13V!nSWYMp#PeVzV z%!d{6&+;;dPLQI>8o`_=$mbi`&9BztU)z{ZW&DY*zBTMQdA z43mq7zpKeOnocC24zDyeT5(5+ydLjdFp(xnK2jV~l|QL{CDXS~z zN5lM?3jza6-@++9Hi#aG*-Y|SPr$%F!(QFY7Ze|W=5NWYSdaHJw>_MI-7BkTfq$Hox5Qq{v%C4rl~`&eqa;l_{~eR-0D zvVHV?1>9GMR0BsZGH(Z+*jSc>5II#&+W-2R;QLmkc3}kA#WW+#N(7LMeDj8xeLz!E zu_I5vGX8d75IVhx=1UY)xV^f>cU>H&TCj6&Y0w;97}7&yz;v566YCtp)m*CH2Baa8 zYj|33Hjo^CVWv=8@Ys{=dodNGn2w6KyDckriZTb7o8-cFDZyV~Cb&`30qmq-1Ou>S z8cE!GtkS+iW0s!W5G)nkt5aVH;<~Qv@PVAB-9Qr5j8Dm#aLwupfWl=TJJJ+zonhKU z27>$S%5irtrsioze!fD?RsC1?axGJMK=lyp(#vbPd%BZ&FmfImAj_I-HaMjCRBa~d z2?K`LDX%th-%q?_4Gof8FvMdcDs5%yO1*F@A~OH^vF$bQ_J%jH%IaJsiR2QST1Ro77fsK|gqcpLV zQ{Y(oBzHm}7KAe-ehGG6dlsEkoUkg)Tg9 z9n2cvrQH|a9*Z#LSNWGchh$Q?C;(2+1+5%nydMPShH|_d#7P1RGAHysBnN`CJp^2p z3L{8_L8WaefHw`0@;8WlMaVdx{qmCq&zqcOh8vqMg`SD+GDuear-HWVlVHRxuziWO z9Pqu}=>Tx1nQ#jK(}IejcK#_wYVNpOyl%NDymO{#%UnZTcxm z?<$^AHOVt`tty8U6p+L<+FJU&n&AIyg3tNC{HEO~Nu~OziC*Xva8BFcsAggEYuStJ z+T4nvSbxyfxVQyt38&1W2B6{A#9|a89q7B&OQkZ&p|&6W{$Yd_<4G{T`{1y8|4n*Y zN;`2>gCH&-70fS)JfhoVdE?mKNHP4dNk0?XUTxv7`Rg+UX+!#FkFh@DgMQu^WonZO zFkvV!XqIvZd8V(PTt&t1C$3WrQw~6T0}S}0TlWVNRUZj1l+L1Adf%<~Gx(Sa**dZ2Luhcnkw>RXde z`4TC1)r0bsg?*x%i&&Z9&MqxqAlH=LU$ih?)~O2SR^?!07`7g2&F*a@5cO$=rf(a2E~#&%&`! z(vek3C`^(?)6%<+CExQ+g~p_#N4Y~{A94FChZZ|l1>Xg}@C9SNW8#P!P_D;I-NPIaU9DKqnRKTIw?`m$?LpjrUu0I|C~T*8=k?*@1@$yjAR}H4XTAnWd}H9<%m_wV}_xo zXXD>xJo1?Fce zvu&#**#Uk8w)o5*Y?Mk+yvU4KpI~*+589J2)B5^;vti1!*9NC2AbQe3@E%sroPh}i zjpB=Ts1aQv9X|_9m~Ki#m$Jp`lP?gd7CMTms@(V3-~i?~kHW++`o`Z2d42ozT4d|>u(Km3Qy4n7;1sYI z8>YI>a?Q!D6hW+eZqzq3NYg_8Q|tw>R`Wo@9B2VzS>k(^6mKIFl>t98YWj~`_id788 z=C$)c6ax^9VL(-gqeugc2m|XAqwNmR+=mWn%E=0ziIS&e18J78ib5!J%3KzHiaZ*` zED8<{XU>N|z|#ajtt(UrSV;OYZGf>J*1$HLKdV5RxMQ24QUrxD&a6(ha97V=CarH$;tW)Q>U6oqXI8CYeXv5#~V$|D6#u4co|C&VR9W&ganP zf1sD}Y85FRXB6;ee-Ttr&bxGtPxC|&IR_NM^?Brv%DUzA&iYlWFh{EV!qMlLSO!07 za6aV$iq6Qcrf@A^1qs4lm9#kPhllS;LiIZi>Y#~DI?4p)qM7s6_^*XLKt8cl6-4Po z;qPJV+$Yd98)8hd&DRqbI{2S3ko%vzKnsyA%peep-Ar1J0$ZBzAz-i4Q(`;*X1Og* zd$-vuo$TkyI9a9dNFg)&t*Vh&o)(Tziq)Rj@)74!1d&skP0yYkP^)p)4Vx82#( zc#UMg5%cH~Y?=FJ@t(KaVq<5DaAxHHd@9h)$znb3plks9k)nqLQ@>gf(N%GEcDc&l z*JI-!E|Z|yH0i9-=G$exta;4J3JV=rxrbr6(|jqEc9rQs&WIw@Jubn@WbSVI=pj@Z zG**$IoMARhHvu&V@qIPOKtK>M$d%r47f{-8!j=Z&d*I!_jm!{1*gD@Pn63#^!LZ6B zqi8G;getl@D~=v+gYg?ors>F0Qrb3fhWi669q=;P$xA4p@)d=kR zHj`c1jzi5M_Fca>p@P&xgTPqT`$w(txl_#)4?EtH<)VK+s4-<$op1K7)Ec_si&lYBiV` zo=FDo?_nTW+_xUPMx63Cc(VfNph(12Wp<>$4s_A7RcD-J>`z+~oxXP&jJIcx-QJ%v z)A_zi_nw)xJlu8;+VR<3faYVoU>Ej=PcgAa7)n*8D<{it(>eI)Xd&}G(Es`BxhSS? zeLvL7Q-@tl5;g_)? z$q_eYnR}wOYtco_(VvngC0m)7TV$IMTBA8yg?e%eXzUZ&V|-Xm%z*W{xm~_?d=!Hr zJb-YFkW}hFAI0vbSrAb1TMjAT zmXlL+pY30CiSj1P|G~jT+Ru_Ct^do!aTAZvj<|)5G{s9*o>n6b!`Af_YN22yUG_4S z;P!9yw2!aHO}SSAQiB`5qP@F8IfI#r+@^*d-8HLUNcu3H+?#wBR|l!cpaTZD^aK+g zKPyL_jC1vGb@L9R-v|K!{?c%P&sRzhT!uQi>hT>y@~a{xr81lXedC+-0)yt7fRVwJ z49kf|nW@Y;J8j8s6q|V@1d9YE49LY`<3zH7DmY9SV1Wd7wL5(EF@Q-$fHNek2}$3C z5?FL84SIoVgf??b(@IZqsv8`gi7_~vu{MdggF{>nB|QCed0&|huC2$53P{uk#HV`r2~e^JI(a% z(nevdjqhvsrblGS@q)#9d*a3T3p&0-ojVb?rMs#C>xR%<*gJK+ z4he@`Kw|(H*MKa=r^EaGBqfcR6l-%xL35LcTo_V7*dQ3v%z(`Ppb=4656V_7Y~VWZ z>_r2_Ojp@fNdY%xBmFc`g0Y6)xi-+%Z3YtEx*Mlvus6IihOJK#UQ+h4Ksz|=?Hd9J zINM|5uI+c2W0LBPuU)GnOn*}yx-;bv)kCKY68|JKG|CiKm$Tw~H+{i{KWvlDx6S(& z*>Le2k6c4klIHNE0!_1Y9Ym1bx=+p9ZCz_T7%k^JG|F&Q9WX5%H!Se9ZV$@Ie(5HA zABsD{5Pdwr#IP!?@yU?1(o$h|$~Z??jih($!K{aodT-N~zBcwCdij7*N&oWX6bYvo zGn5pEdGz~+f&r4CqK$5(s9i;3?jCPwU?o$I25I|%CS^GfCf6($w7*plGF*7%vSK@H z-d(-gF4Qgmrv`flfVNc)IYY5s@7t3_)W_rN90A2r+3 z$5o3OO}{VAj0G|&;`hf4c!S$+r4&zhHy2XZTp7ADK5KUJ2Hr9qSBU*0_En~Rl{M0n z!1!()1jaiFiK;3|B12jBwyjW*gNA>Y?Ra~QUmoI6b#_VEvBTK7fdzELxY;-Oa@il0 z#1cI!+Mah}6#35i#JuKTPnB;92t3Gzi^SWWj%>|0ye^fJo-PHP9mE2nuW8=5fp{~+ z4X^w2$!Lo6j>m5oBYIKosvGPCzOU-vcIw;X4A=dh?YM)>VtmM;K&g6twJ(nn@%MT;DqmGK z>1e|&;pvnInNQ3!H~{Hf%-;XG_-Vk$nLv25j{r{f^3*Xir`zlw-qv~jgNM;O%$m>B z&D(+4)whdf#3cGfuV-0T{IAhU`UfMnbO+Ol&g};m7cg;#wY00Hu$*d$8I0ppCA)9k zJx3JhV(*aFm*^bp0rIYYPo(v;WZ&7fW^4CUhzAsl8spo$Do^O7CpLEcl zJQlwv5Y7Ty7<#!)!j|<Md*wpZJ?l=#9o1^cOt*Xv_0qA_N6{B|u+V#XU>r|9#~* z`$Q4aaXA-d)M${Kt9)3b%0bHMFA_3uyo8Ev#ikRhAQ+}?BjuNjpnNWnjF^3-_X@U8(_ryqhW%AzO)$270ZnV}O~wXVh~1dE zpCY3?K=U&Sn!f_KiJPjR*P3t2#@lZap^xx(9tv(GEH73ac)w#hT3=+@%E2ZY|PKT7tU}O zAIRFYMK3iKe3`@xAsr#i|B2FFdDebXJb2#*&5U!kVxgUI=AKmCet$2BTC4GSi*?`W zlL^%_F9|kdqi9u}TSgYy@&`pJF$IgT)YH*#NQg7tEcJ8>Ym9LlYBM0+8DT8E#0DkV zb?f35+o17L@Ib2}Lvah8|5VuTJokCzS`UP_dC5aO)AJv96+9bGK&bV+i7v(w@fr}A zoZj$r-MFFN34C8L09m}HuBNO76#Jly6)eM4Ak5$ar9F@QTe=^E+ktbdGUE;#ymf#L zJd{m6VMmtXMrc;bitg`|w3%ma<$C?1U#o5B<|bjiu?IXb)#xAEqHOC3XilD_*9TQ| z%Xb_s8MG(bwKqYw7D*ZCfyHcjt;yX*e!{U&0GZR&$vEQ8wD!)Oj6f4^|D5&dH7>gkKlz_ybvmRe! zf>|jjCcbu%biG6Qp>`DYp-aQyS;Z-#L8-R{q$)b1vc_w$(xYl}YWY;Ve{IGap*!dj zDLviClS-Q~XNPzhUQA2ibGtz*H~V)}=Dd@2_wSIM=Fd|~5p#Grg8VhVNGVl6g5~XU zEdUi*i+A1l14N6ZZ5}mAONRQi?2jll4&F&5lLOk@eW-O2l$Lh|48sN6mTeEc{Ldh@ z+qBx!7ljMam788r?#pxb7B==wNQ}48!RW^;ji1MJJ}+uu_KnCH)I~$lA#p-k{$fF= zNE+J?4O82c<5xL;OLZMToZxx)2fq2lKuRzmQ}kC_W-Yc1FzRrmqxZIP3;Ysw&S9{&g=`LRP|uX z57CrgaM#6Fe>dO-4kY>8i4;lWSR=J&^U*LiR-TS<=A&jm>Gj8O@SFRFu@06x{<#+$ ziIeUG3(8>XeiSZ1d)=%*WZV0XQlm^!L6|n1mo}&)UtP?fc8iKU%%UbU=~730Qg@C+ z7Rd0VSAG_tLL;OR3}5hzS+7I#@U6o1xVUBjX9glL>{)6-tJ_qA6W6?gSg_a_R2P%X zRT0g76`mc3r@12}q!=6n#GMq`=Ba@Eio&dW=8BE=)K8Q0HVN6kA6d6Pt3Gtr&D#By zL&8n%<*h|i`?00ce0CHsG5fbf=G-&|Ng?qJkN)$+v~J+Ok-i^7#GD_5tWei^%X9#V zH;LSU3Ok~NyI0oX_W6AEUJ7kSPn<~M&(i2dEgnR+B6%upoeknWQFmG^7+Ck=af8m# z`L}H7mG@oUaHSh_;cCr78vA#&ifw zcK1q)XEH`MTMcp*=BH&X39}a4G!2ES>6JG$8y!=4XD^WEN)vz84Q`tzfd)X;tRn}n z12f7E_Hxd{uZN`f!NMS5Xthihs1RbkcsAkHN@yoOjFk^mGTuY2mTIgH*yjw*mjWes z+13(Z9`y{IP$sA?XaCAaF)U%bdq9LR-6}l*Ge#nE`Mg24+z9OR4E%6wt~B;PJvK5I zDIdIg{g$=+oqzb1+LQ@b^v_Ynd9ul5v9)3&_RQza>A2(_SA=Xlc8bfG(Ok}Ii_age zQYI4($)>Gb@_&2g=b9IPxpN({{QFs)25Hqb2|{G5B%>|q;~z&Gn*_#%5!Cfd0{fK+ zjKypO+6L1bqxhhF{y9@mwiM7R9V`gSvQegSYP7-5aPj_AYZ3{^IyYt}*8ZDoT)>oi z;)*7w^Amsn+I_*i)jxY>n$j3lX3c|VoY|ggB@eChsfmHxi4)KH+8r3ZXck9%gVMT6 z>?URrGK8Nk1;aDN(&|5V3Y*W_6-Ea(r|bDk+bydX>S$~ZLYxOp=7`P59yZ(w=Ms33 z!mT7-KDk72Vt)&B;+fNS(G6~rt5hJ|u6LfR4614b(xXxl=dSR-ao<*x5H1()N#WPR zwD2JIfbbp?x@Omp3>XA~Lwep@p+}p-lY|v0xmsXY#ED_Scix+HB@w189SQ~Zdxx8!OysqCN|;q0Js*HlWEA`pC$AS@4P%b$l0zeadL zzP}Tt?cNTI5Qi%)SxTs3E{CRDWh(6v#&g`J)&SP?0+8bL>{RCv$Va=5vCZ*E{Pcqb zqqIb1A?Iu~18AEkFM8|4$PYt$A>ZWjspNICS=ym$M5{ss*5nzk#|<70(_!`ew}u0W zm+et~P-MAs>QqLw;3rU!sn|2WG=B;_4$A1o_qur2&dxZ7am)S7n+Ui> zLKPJ3ns_bVy-}a+0mWHfg#|7l?zOUDA&tN^ui$D~y4tfA)Ok1?YRjMTuz~U5*tdg6 z)Mlpezeoe+`Zfm^ZqZV}X(hK|WrbshDsIPn9;Cb_YcrIllSozK#)-rzj1|Gs#lKZo(rQ(uLGQ`}lSOpN4xbcFap$YQ(ltYVR|PRYShAbIm&ZvZxKV z51K=ejjjVu_fc?Zo<3}c)jig{-!B= znR$yTEy+NjVpx%f>V{7{W2~#kH~Xt9%+i2iw+>>Ouv~*5 zZN;5+^DIBQ^x^`=z}Cd{iDxDYQU35l+*vXxgg|apHRrnW6eg#%*(4KgBw2!b&vF2;RPj5rL#Wai!NzfpS-K41HDXrQoJON#xOFK|`K#Bpm+T zv}qRTN`?(PQ|2d91!b95l4aZdhCiG;*^kd0?MkIGKkNDy!7A%Bvm8=3Gup+zwjf59 zTPh~W%j(+&VLUxGlJC5>H3RZbE$vdL!!%z37a&uH_oTT$k5a0{3A*C)-be*Dks=T! z%DSsL)3_(q)?}T_9V45FQmJEDO9Br#z526<;~AJx%XUAu!YC=DTw7l&!c2(=mV^7E zLpl}wd16wUMi$tYDs9_zOdcw04I6h)Wlm_t<8$kN$(3Mlz!gbzju3bZy&Qoc{jaL! znepO6>&XHkXJyM@%i#^7)sAAI$RXm!xZ*IOPRKuX9MAj(E_VF&?n7k0p41hEl&5;9 zE_OU758>u=fye@8cRafXUY<#IXN2-(2qb8FZtVKPR;+p-{L}p(moeq8?V*I(SA?G) z+rhcc!$2ewxlL=tn0l{P-RhrDvpDIGo;9M$?wboM+G1;E&XK8uC-J6HyF?%NNX70Om&H_L~XhBXCxl7$6%!VT!2cN$y|OzaM8 z5PD;69J64ObT_Roh?t&u+_`V6MnhZgI^jpaq4hL9BL-^(=BXnpt^{kUf=IB<6!0-?_Zu8AjHduRwv}$}mJzJq& zKZ&)x(&uMQc~6Q|qaD=~sDTeMb5CX30$F@ysTfktpi>%oE@6Jn%K=1&mfe zPCdbx_Pe)KByqFMA(EHT&$4UZBe;xwo%nyqt8>JKKw%@J$orx`hHx)MtBxD$TN+d} z3_1P6(%n?IsOD@7Bprrz-l=;;*~J&gMP`eohcSuIwXN8pk04@|eJZw3kblI{EZXuX z4lv=UTyiRX#1Ftk0x){0(DB}0u?@!633`=lhkoK`M`Tx zMY1t8?{7Ik1Y{4I9%^$=8~?J$n}fGAE=I2x0o#X`B^Z|_{(e1!nYMD*H0C6D`dyE` z7oWT;JcloLST#!2Rs`1wgHW}MBJ(}xTdy`A4t7GOJh|@z?;W1GoVK{_F7zR&sR>B5 z%4^d6h_$3yhmEqOYc1-fen8yT_BO>@1RPGnEl*ZMrDJB1F}8bQfr9{Rh5HQ(yh_0vP(4V?znc?chAfvAUEj}QL$pWkQ<1A~g; zI}(IZ>zQVGRUF=D-;tEu)Bz(C-2Q>bk1maDL>5$&Obm9+d-UproTy$BWJbtm@i2)( z;2_Dyk53EhLy@jm6CZ_WIvBpFn_gt)4pn`dSg7#l)VN#s$IXbo{eF{)-f)fF0pVBO3KL94 zo$e?4X~$y3b45nD!z#wd6Bd}2DsI%ELTRS1H%2N+T;MoS{`p(>_8(UehTqpJRS)un zO;Zpu#k@eq-(|r~hhjq*$^_MIXE2-o5d*q)tmoH-UG~Ia{3+hGb`6Ff^~NZ}aT`52 z+A|`#(8yND?bDm&HEP-Bz{bZw-@vrGpY}AqESZdV zhauaWVe5}duJXgDCxPW`|9{t|p#_sS0%}i;kJQ`0Wea4*Zn<-KhwOZ3RY)ZBj6?f% zBG*{z^gu+%!tB+6CB(Uq)Hb5_$zEkK-r-CBz3HgA8%vr$Iq<;(ywI~ zt{#N1r;1R3X#PNJSJmurza9{^TtZ|eEwAeBe9ODlJ)DbOxQxIIeh5d6Wy@ zLBk4@tV1tvufdm?Gw{c6$-1?Ptc-ll+21!3fcEC2+>E*FiWHG6+IjGuN2J)XkPLR` zD;Ev-0T`77H?vO7E|^GXjW&!VQkkd3z?Y?8uJTl5QQPkIi$n2Jea_`g#3q%wohmH&(4^QUJjg<_xQk8xq)1tyrRs52(HCJ8H!WB>l)zbp~W zwK3Pb@#RdpidCN&Dhi=~up2gp#LAJKh-++V{dXn|%i1b3p`}I<5XE@r7U^!TMj1o; zcUMPUc8dpcwUE3$%4`}w=35Y~&xD^_Xar9XdM^IQku z;gV_pB1=_(5Q#dvZEox+Nt#0y-&onJO}AhOp45EbrPVjfQw_f6?D>nF$$wy+I6X?BwoF|f(;+oTV}b1$40o_sO9Gh^Xy>uY~Pc zVU2*IrCg}1vD;?lIC7)DH4x`?`b*Q9MblY~n!?#>co3(rV)Tf=6YwG{c;X0sllOLn zm%_4ZK*`1b25<2RyP8Z=iqoD+3pA{I{4W*HER!+yk{}04U|7y;6k1=7Enm$+D&f1I zyOAp07Z}M>AP=LjM2+#8mn3Hpri2|Y+B%<_OB^tR0AXB7iY@e@dMz)pcR||sn^E_0 z+Sfl!Bw;=3T4@*St0(a-V}{xYP~5SmC?rJBB4H(Nvt_xwypI68rcZ??& zy-T$%WZ7HY(p2&K>26-Gqs&k3fv zW;`kskSofq4ae{BIowiBIGBQaI>(b9sTB2*QJk)lst0z&qez`_j8@ljRmo)CrR|HN zgk}mF5$m*vo(z)IfB@9HXRph_>P5u^eiqog*Y>?a5sl$sjkJdA{T!#kMw2$xYEJm9 zmCmT$DSR&h(mFW%wBh|}fJwvqAxvpL&Va~lo9ThxLEZOR!G^F?Zecp zwGi`Rrz@^jq2qWAaCSZFWzPamXF+mB0d;Z9Ay*X7WJ#* zY{v&^C@aQ(u4;70WF#g^#d5mYi8RJ&SM9>t>*xdrc(HvK=*JuBe16Y=rEbF<*r;5?L&)my5eseB*_tN}%LNyWikPS@L;1Ksan!0HX2ana>1|iIdo!iLE!x$q$H9c^uZ5XkR`p z)Ttxc1`Ei|LZyP+92ymbs!_iLfIYO(?Wjh`EC4_f&mQ^NhYLnoas_U?@KKQ(3CbFK zlnwO!n?pZzE4nQ6UhUruHK&{2}q2{YSEpi*KX%VN~D+%5{bv`TVRYHOvi0MBmxG znEeeJ1VWPVhS$D0VvbNCw^kTj?>9jCT>ts26sdg>!)K60iTt0s3!5BSHcprZ{l&fl zaqrWx4HPo(ic36HWaSGH&3B;_!W#G#y*OR`Bmt3P`$zxe>Ojfa0Uk>LB)}-I7(#Z0 zV@Dt4xx_$%l5iO{x+-N7ZtZ92gggh#)^q}-HB-u_SM zz}1^=%HAbu32q0zx5|tYX}0be)jUl$lBUS&7xzf)3x8m~S8?!*4HH{n!i%of;tth* ziI-1X@06*RB=H5M>9ErPd|iIy*$ig%toO+W6Jy$Yy+lr9e@uO>7W@|KPO`PQ4WUUu z5pdpI8HK(9+t0lu^M$)%$h8eUcY6~|;1!ZCjV1==T)n3zH2fsIItWYiJ;C-P68=An zQkk!85fuen*z#lT~sl+-UI;Zc8asgee0d3lzy{UF^oN(~^Jj1juxn#ENaQ zX6Sc71}N$tZscFgoA#j|CVDK*%$8eLB7@7*p})AaiF2faPt|FYz-aanmq65?)4LpI zB&hUpdMV4c4W)@ur2#_GSsPwrouZ-#f>yuDqFs;eAuM?F!A2KwRt!0O2)m&)8(jo* z2TOR@Szv^_rspw>BXHau0ef%Al);BPnB5rX;>BT$ergy9s)5gVeSW%#rJk$NIdrl7 zhZiXD_#u-lwfvuk5VgsTSfvZB$q&X%#Z<)4I~C7nWr7qTYB&2em(n z1+YVIyImYAA$AWnu&{njh1i>ZQPjGIP)6K_dMTzLEpgAlHKg_JJ2lhrf`}6me;cMEF&ILgipletoaa&(@9xQbeW3h z{aSX8SgeJ42O>N|{M8{T3z2t$dit(CNHVfL%)y|bERD=Hm zJ$Zl#7@j5>+Hyd>-({!3JQ>Vsr4CWsI<2Bq%`j7cSq#*|;I5IPA*4XoMGPDlhP0$q zZhgY(PbI*_)uQKOLn>r<)5@)WHfE#?+DjGVDD_TNe_j%OE#z%TT%-zhN~zhSd;^RD zsapAz_F>vaUo~KuOLtVf?5v3>O){y9E~r@}3b1Cg-o)DBh|^|$T1@!LKYt66?n3G- z_ZjEDu&h&#uQ_ZArpXQUCbU1{*$hgy1Fh{UwcAHZNUHyV3QPHmKWGEpCQbt?#ZHtT z|K4x>c0s1GMcJDr75tT|Hu9uRS9+QR!fCd6>yC$|<$dNLA6*EI5=;qwZD<8pkjN$J zoFEr-QDE)8;qY5j0Ny+Orr&#Y83^BdN%U+tkz`PdvnWAp17k>=?L4#*tVlD^`m?hW z1(5~0?`%tx0S;3D!Q`{Ng}saMvCXZc3bZ9{N*QY>wh096Jd}Z^$*l@nvp* zv9>dNqNU`klz{Uqo$f;J-LXmmtn2a%_ji}y$sotCtI1PHaIPC@4T-Lg19`#LJjmzD z667gN03TiUJ4TNof`A|(^;oqHou5>#2JB)Z8L-Qbbdd-kuwScj?WN8&uXpM(|5wvF zM#uGsTR1i+P8z$hZQGbQY0RdvZQE9p#&%=dMw`ZLW8U+>>)w3MS~Kg+%sKCGzt7$q zk>4?3StDIxCyfP&d6!HR;bHNyz&Eb!G7)HwYc4V-EeQlRz|Z)O8QEu&;LzsBjXWV@ z4w#-b$>lM{mdlf5h9=jD+YNj|_G;E0dGD&YN3%A^bhhnS!9EN&C3c3OsYRndi!KAF zjzk0Avzr?-F`;?^PPmb;`6-J1-;GLQ6BqS;?ty90XSxB{7(e@L!fc@S!Je3M+yXi_ z&Oct+if1|{mvk@zc?TZ>j%aXnIRI0XQlGn!^~=&tQ_LHy(*Hu^`?bjAlLImmovj=R##z1SJOQvAsTZ*rypUqIRz<{DPCEVEgO zq04aQt!OGCzuO_a#iq0bshPxumICfknEDNI!I{B>fZ-wnF$xslCt38qf<(3u!hi+# z;P;S<+E!N0of6skJI#QYo^RwWOEBVR$Tz{R1N6b18Y~C_z|2@gC;MS^przFR%+0Gn zQ?Iw!0CP`uW*_K;;c9>sU@9=Lh+8kd-yDci)xWCS9~KY{9~vn!KVORgQL*Uvw134` zn`+YJ&l(}gjoh_L|K}@sD?``p>lg04Q>zYAgHxwooql2!k8kxR>8Q=59SQ@6f33wY zkix>#p(=h;80bWsiSB6$;^o8Ygl~{qcN)9-Ck|BMuPcq4_0p#C9NDhtO0spcJoU!1|HU8fuAhi{Op(Kw|wZA+Z9bx7HYponhAA0R3LeUEOd;%5SD$N+Nif{DOVUVybr(9^Ow5Ny?T@T_z9m`Yxo34PgWLw` z1+!7qfQ1enPin80>~6okGSo8TV-vP^SM=JcK=XhKCWwrR26^5TrQF=12CK-9|EUmWiXvD6uh_DYM0`jd{*i1VY|E z&(Oj1G+&5Bps8wN`aJ@=fOAYfCi)wkMeg8R?O=p_>J!HyPWjw8D!LC?U z-Bcqx-Gq%;>9=`eYuzT;kS7Vh|KI$zU8wcKI}cK6(&BDUYThKucgLxaxAooq162mV zVHh~oA7v&$>j`8Oeh1tM>F8PJ69?_ap2f5? zc0Unmj zBQcX?Y`g&k+JDR;HI?sR-0U=}U39fX)0{~=KI};`qQnPT z(}4){G}=e2}nO z$682cwLUqmJGHhQF6b`h52a1rMSzQW`;kQC(7|Z4y*Q(xfXKvNlW;it#f7Q`Zvhtc z&c6|Lj1?F<+rqqVJocZTMzb1lv?U{CuMBrakCzf@xIfy;ZBw%kYJX0$)}b8>vdocM zbJI3=rS`Ut^itDFXISDMCkv`~Q2sb#TMAyk39ZajlV1%f4R;j&VdXBW-_DL6R&FXd zNr8{{HQiO`=o?t`U;Iy0j^SO=QWbGPK=Ex-aI18ODxuk+Q)&!>t}(4AO1nhZke2&L z{Lgn$?g{1sGU2D@S0y~ zm<`r$@2o$ffzb?(5!)5Vmmix}?|1wjx@$WMxIG3YHY5><^sH8_51bx!^qWHjY|7F; zDP564c1ZjMsW-C_Olm*${5ZE96$tWEc}ye1Hhz7bD1L8hO~GI)p=yie&qryC3CNbk zE=+MTo4;V+IKwx>AMzbNG zn7F9TzKyFM@(x!L55GXk(%pNTh|_JXCPY{&IF~v`y5QH*wA%?+hREGWxzdOwVIH2P zic~put!@k&#zDX}S76xxOh*h^P10Vz9IYG}E@uA|yt$Sb;|>YTlVp0bzm3IVtF_f? zVw3s3f%{a#iLh=(@qj}iKT9GAksFiQg2ej(UYnu-febn7kkE;>QBHs z@K!m9cV5$nrMDkmZRt;`Bk*o`=6GP51YB^vto;sdO6F2hAM^a7T8QY1*92XHO-$hC z@b;2WyiA`$Tne8QC{!sn>8a85j11TGOj{It zAsNgu)x$90B65*jE_f?eQld1~h?^SG!~m2)sc6otJDdGKutPj^*uc>WTx|JOiyNdBGF?{fwvzc4z{RsYec(CZ@Wfs<|w4s8$>pJi%ml2Xn+1YEe`D4wjkZi4YtRQ zg0eGSO)_-{eNmT$p2|-w#{SfDJ_SC~L?j^=V%c)@MQ{PqzqS~GgZsbC=U?)qW0H~= z4XIl#e`mMT8&XNyH0DidZj!7Z0z{cxQ#=l-Ots80|GL!9ciPH&31-J7pqS%uLFjX9 z#8+g348K)*c>1?i-;dIX{iag?2Y`l{d+a9O)R`lfP$#?af8O_( zoqB^HDwdL7-a?ZP%{!_UuCdIf#!{s})1hf95qEIlR$k%|C=KZvO6&qKW3>e|%=7*K zVikxq5yNlM$oxrbiL7?I;U zcyJb>Ix#lG(1A-5P!C9xxC-w{@wQak8rdll{>-%jCC zWV$=T;*(mb>$%n(i;DI#W_9AmEScix$4~R<(sEN(JmOKSMoEbMT9G{*vaB+qOncEA zXrQ@38so+1Qozx012oC5UBN-mqGfigrHz32rbyi<>No?%}#Iv@SAMlb?PaVL$A(C1vVmK zy$nZE-%nZDPGW7&9gE}SsBoVzaw#8K3R@TH0;2(8vH^q{JMZD6_n#eg{i-pYR87xm z8ZZ@pw#h+wc~{?_am~hqDjzi85XqO}fgYyfq zRUScOYspu+&w-%I-A|-JKb47iVGhik8U|U& zlABc!yIzQvFo`b53^y?`FrtRwll}L(Y!<|p&+o{)0BE@|+eB;O6Y8RU2b~%fT7v8x zhrJ*#4_%Zv&@5p1im?ax8!`_IajsPe`fflwmUWA&rS8I1N~h6?0a^gKL{1@?phQtOyXe zdC20Jky~miz!a!kzRC85v#+UZ9$MY)E|5Kh5Ydes;K=PU#6GJi7&_+bv@P;qRi%Aj zgN4R{4p2_4^76|n`;DLxO3*7OcWhc-b$>9C_Glg?q;IM$Q0fSr#}tQSlb~K ztI0!u2J-UIbMaAHpYs#S(prjcuc8U`^= z7SpQk5^oRT94b)LL%A4V&8#%tQK@V&i9tqaA5^HZG(Q69Yxkq@5{FzWoOQmUQtyI?Vf!nmLI@K4fkqp`zEy(k)dzeXdj3rAYAS3Hu? z#^5VkDXV36YuTntcyy%-hoEG|dlIX|TThad2L#EFL;&7=B{@ZH!hXDHRIIxHEQUn@&ZB${pLd zodoQGUzDALEfC(|y09xs4%_2%O$#&6gojUN7OkAEQ&|r` zuUX3HNIw)@)R=p~tYU9PGIFBw2WbLA(zvi|a94;;l|CB7MK`;v9amh};>~v;$!w}M zS~~t;=Okd->F*Xj2>I~lzhl#I=sK4;NSL9w7C9_b5HDlPKmai{UXU0|}QH89)nci!fZk~w6sG`zJpF9!L? zh-)5QK)^o}NXvVDy7=uUzfx<`_p2Tf*&|s-UDi6qt{suzy9U4qw4R-%SA#Du`7 z{%s6-%Qbr?0vrU4EhkPsSNvjNP{>wNaHKY{w&H2{@8@!I5C>1T5Pe~u^$#!w!rX|F zqBs8*bAQ~$VlL&K*K;h*x;3FpAHR^W!kidO(3{nV#<;8SpE(LVTzH(x;GxVkpC!JB z9fO+eW_Ms)?kMRQ`hWrYlw0C70R6yKk=;$(GAS)t`v}!QgLTfeU}xja+cH9QSnMnT zZAX>Y{P#_Njxrh>OR?rBTQGlao_2RxEZ*z}GZ1rJ)Ue|X2k8@^p-~cFeBnNs_dAAm zp<(2(G$l=96(L+z+6f|ws#zpUHqo9R@l^%F2sf%5myYz^LSN!rVek3%GSYAEHljQj zoFV;yvnz?>jpF)V4H1wbns%FEnzn7B7~Yr4HHer1g1sWOs{3dZBTifW!s%1=JQf6m z#@&{LNs7Y%f7PN+nxjxGN#jLk0c$E{6VFvhz%@pY7osJcH&sLy_?N(pQN%mMY!rF! zvx+lC(1=6t?Jg8*NTxrBK&-4;(CEo`@%3F#Z(#LFY+0=a!XzeT#Azm2T+j{N%N3c zU%q2@^N70rC|D_-v;+V#Dq<+~O{H-w_SFlT`l+{K`@FpiE6cHs@u!5W%gyz2-i9TS zq&wF`o0ja%84LEsnIl17FcqIF|D4#qUSC2aTJ|+rwq+QTRR;Erj=Tyv*ts9L&5b`F zy1eb5Bz1T+^&nD@S?=Tm?@z0|D`*hvUrSy%v`Erl7vEjs_96e3HM|F+u zO?Ph0Go)U73awrzHrZHbg$&VDm+*lG0ZY%vNU6xzAIxM?(B$}U_cfq8) z5POan-3n)&%~UWBy=ewh2Oroby=&|HU9evk?j5HqU;~atK|E%g&^8-eAYt(BtlM3; z3lhp4$vIUBcIFvLv0BGa0gi~^-+AhXKF1pw!DVkfT8GaQb#W<;6N&4olIFyjr$D3P>J@#S~f*bpP^TB z9?+K3DErsU7_hmSo9N8pD0jvhB9A4nGYqWJ=~mu3`&BRWG1$aV@nwjoLu0@3T&3Le z{V=Q7aJPVoDle(9S4?aiS2x71Irx?fm{$O1qk(S;SoI0Oin3~|Z||Bpec;@f?iGj4t@gt+>i&&Rrw%G98(!o7HDwIHewfWMUKGoOh_^qD;d=Vydj-{8PiGQVy4s|h&^V=b=y46*RG`y1*+&vqJg1u$6pry zN0}o)5HS)M3dBt!OhWWc{$62wNEWm{q>mw`jQfkj((-2`vhf0&#u`4Mv|O?Pi!~C> zzr=(dS9JSK;dq}vv6+5wqEt`R{(B%Ik$I2w3{TZcI03H_x-5lK|MV9NA(g=;F*!|$ zWzpcs7L#^dGH1l#wA&%#e}(0#<-B8P`ok#dXN=D~^l8GB?-c(_M;%snARDV6Gr#Zf zNm$y}&a+C<1>NUmuY(e%CZrFb6Tr!hO%YJM! zR`LZ++D7%=ZiwM&KBR#j^`akuNq(U@+~4(My*GN2^0}R)G+NeQDK?dO-56sIe1P}u zGJV&tG4a88G()MhW?Uy!lAor`ii|ATT8E`RGLt&k^{S)w{99sQ0VOC(N_Rgb6c|*j zwTEHt^jM!E>GnW!PWjR29Rwszy;L#)p)NTrG43v3l@ z=3|5rm_-L88(t)u27Ay>LG4;Kk*Rb}X_P%lt zFp6`dg82P7n%q0Cy?(Z-NTdC|VVDl0Il_f7*%e=I`f!J?9C0kn5pWBWg<|K3!4=OD z>md^hF0y3D&1=`l@9sy-hHIBJ>n0wQ9WO-EzDRV-cgO<3v7l3by)VFObrq+ztXYX$ ziGd(ooSu9>Ailt9<|$Z*DJbDl{O;%)7VG5K=I-cvvXZ?h6>QhrV{xc#?!`^tr_Lv~ zIiFS>LF)So5xG(+<#W9kb&a+;ULJ~DhA~0GKtt=swhHSGX_`QXUXKD*8Z*MrvI{TG z#pGBd@?t|$ynfJlNnnB~_YBVa0jPFjj*zca9Mu6)*Mt~yh9Yn^?4J<1`>-kKnAa?G zs|^@pMZ@YB97cS+NYe;gvW20H5R8yfON;p+7RFA56mC1I!jYCz>mkU537?~fRy6`G z3)5e9T?~FINPb&a5F!YSA_1I$lOHf=cFuP31^>k~;D;mLtA2T2k^5wb5LHsLCtWz8 zpYALqA1n?t1$nS?mDD;>Y-90ea&s~2Tv@r|!_xEeMwEmA`jL;mBP*RKO0~`e_JgrQ zl>6#F2Cct$G{-q5xbj>f@`gy!pLW_{39mG`chW&^b-Trl8p)iy;1zo zjFtRg4kh}>?>XQ5sPAeVYuirTV|!HA7E&uQzhHjkyH_SJR%4IYtLNLRpyXThQ>iXr z!EE1>9$)xLHWzPeRsedb)*&llthG2YJ3U4s7gE@49Ly`5?F{756vrm&Zh6-Q3C$tK zY!|(_{a?5!F*tKKiw)t1!(LCG4AQ{Xu zMA#6l9WF`h{3UF78~rm&41PVU<{+7#9k^I?jIXhyF_9Z0K{oiihS`h_{?M3{B5<9| z!7zOS$&FT1e1Fm!*oCRAxypVqOCAGPYem|axOtzBI{CI7#<}0jaO;t*F)Znc`MF07 z)R|2+4E&@7oy-;xpj3*o_gwoI6ZLTiU}}`zfO2T7oG@>xwNZ4`5^=j)0Ew-UTVZ`z2Fk%8P6$6@iF z6BEDo{~TJvmi&svGQ%B$OXFON+*9hBf#KrO(6q;_035>LtP(9N(0@C%O`Dfl9HcPW z!k{bT9%FZAGj=*e6%iLrDU>s4xyH#3#bDib6up-Uz*PBErIb3v4}@bMBekT_lOdkH z|L58}E$?CPrRH3dS@8N9EQei&Dzys>`AeAgc^W;CTuG2F;!F5uyc*`SbZL4ctw=(1 z%|e49^N}G1vF7q3^}|bx0N{_t*1>b*4iqoF^6}Gsa4XuL7N2vcz`9`gW|GyHB^|5` zc`7uRY|dXQTAEn66~Zm?EU+4TNkl1`hYRPp%`Nkw+XGE~LO8Y{p(B1IYd;-s1;vpt z(FvFo$7)lRT2mivypSy)#MnEQe;1Zod}GPj5_b7S9o99V+Q$*(darwt@RPGOP4mlX zdOkCsA2;p3WRh_M8{`8NV3-N7wceP<68oYFfd+>v7*R&GpSWpdN3%xPKp&6RF|dDP ziGy6ymZPOu_Y}L$!0k-DBb|`u|2P?sb(?KP%SfOgAlL!%hqoee8K1!rrigEr~IU}NhOp*aMP8lc(uQ^s<>T2xFtY)J$Okl!#oaj{`Zp zY`W8Q)NxuT_T|}X;vXIUP_6bFMj#kGgs69pHuTKjC43?#OA~ntpBAf&V}zP){o)PK z89Q?PZsw!(>&Qh=MVd9c@rv%Djr)Xgj6WygJ|Z4|1E-x;Pld9fsyX(comGt1ymO7A zaO_9cAw*-@A4q2dSfBie&}Q!4i7p+7YuJFU3qNTCgGso-)9MprB5_B&hsVZvc_&$B z6>&Ow04%>WeTa?~8qXv_Cxw5a>6&Uuq#A=q0+?99(c$#~b$pR=!O~$o+aj%H<7ICB zPz3Az-_f-c=wz?OL$SG=3%rQZsqc88msLa)j6n{Wp*PC&$`Kg37$*eFfT%wnZ@^Hw z8g%${HV2k9GY#XfqAWyv#S)=ar9PJ6ZymfaKjU}RDMd3(5i&E}IgW$HVnkPJVah%E zY8(GAON!(V+|KgkD@!#>l`(;VQ+thhyc_e{0<)#Q#aUN@;Pz_}Eq4Kqag}tH-#>w^ z(m|yw4qKy{olg=v=>Mtd1|jRt;BLFKlLbHs{ zB0WPF2WG3kV{#LiT>05|_sL}0XB~IDYkZ2nTIwHN%P#O8t{sSJ1o`BAsV&a?gE)RP zvMNedcz-wRUIhO9d;I;hky2?`hVU-8yY+$0bFH{T?mE_IwuPD){k&}zOvi1Z0nFDm z&!F2|pV@jUNViWsgs`e8VK%FzL4`ym53a~jMT$qf=m)9m+~z`9EAzA!)l~g31MjX- zV(=1IC+WouDN|Br8q+?rt-sQT;)ZCPsCGp36*0`oxTg(#sjMDo^TI&Cr^Zs^4Jju+ zwd?wJ?=f!~!J`e0);jtid41u45m4RdvW5Id1;>0TG++GyqtW<~dT8I6_I;#UI3#0& z=|N*RQ*ge~B>dvN!~NxO15eR~pLOTon&yjdZMDj`4H0jjee(*xV#Tv+M8}8`Pn>TG z%DdSyQ&G(D>$%$XGlWjDg1U0Ay(i z{>ko6@aO^>!)quM-O3;*hRKZKejKvDQ-NZ}`+iU;@*dE#+3t^yWt<%a!#7MG2L7iN z=!mPf%@gW(ls+DA2n{@JWOc)Pk!=;aR)LEr+L`mm@t|o~wy@^U<&^{0+MgE)PRLSd zVikGqDzg4^h;N-vD6}sUA+mbrcHFFDxvZwRb9T?=S4{4AnO6ULq|9dt4go_(;q1?* z*k^ykxsTlB%1V@5lICN9v&<{*aQ~meFdy>PQ|AKi(*?cRWlKsO zJ*k-n2lom=GxV_k&L3EiYKgPozM3C~G}t`&-tX)qj);WR0V%MC@n(mtZ(K9*CGgz7YykTIx%ffw(@`z)|G*jWH3qK)?)MxT)fZp=705vkK@!J zFtsn^yk0Q8B1R?IcG!o@IL2zGoJ_5hYQZ~T!mQg5m;KGM9<7r{Kd0{lgg+=AJ}!gw zQ^HT23LKM=8sNgh;d09;(Efg1jx@67Qz*?^S(m&dzNZixe+txI@}er=xYCO0i7ZGY z`QrzLQWOSxoa-JH%CN_On>z1bF>+pOOyC;jt?|#pxFFH_=d0YynO=aSuaM+td(SkT zzpQkXV_N|qbiY;Eeh4KaZcq^0j=_*0g(8lH(YO%A3$h zMqio3hsm|@d_aXxl*1Wma|)Um6LABg99tc%e6eU4rP;_;ywKvN< z+Ov_gTy2iN1@5oPCZiZC^Y<0J*A+ktgl{>0-jGN83ZX?2pqfz*U zBJNHwdXfUNz}DFlx*5X)lX~H~Dxm*+$)k6qYx|*>*i%X~mQuM9tmk~Tm=#VsXqigL z6MW_TgKS;1HPVx>LJo!dK)De^(iBvFr`r@#8wFpV1}O(lbEgPhk6{f7a)obDd$ueVb57D)>Gz|C11`T7^A=4MRNw%WM~c+{!Dd9wjN_6_54`&vhu$Mnv9oG%9GwlmI<8C0|m z&pV&flLYgmpyHY%8C^eP%bO`7noUK@(O`R1S?4lH62My1fYW@q2RRER;+m<$-L??< ztT3^Xo=!>#ZHg#~zQo6*BvP9;%tV%QCD=n&348?HM=>(Iw{g`z6oyUxB(^CH`uEYs zmH+k-;EveiHokzjH%sQnlGd*G`IymDaslgjpsCH73cYR%byj zu1%2Z8hxKMbDW9;iZ5*RME*`76iMshsFSYVe(BrA=6#^OPQ$3Yytqo0>U)m#_Laqm z%KkK%0Y4ePxwg$DV}?LLfkDs7U)*1K>gskAOw(0zkOO*O+211351KG(%09MgbpeQVlW08~FD8cX6* z)60W=&gXykQ2xG+mw56ZIvZu@J+*^EahGW`?-ERpA_7YK&ZPo1m%r;16%+1ppMJZ@ zyt>=8xl8K3ocvTg+}%NaWHC9vs%UvRnVwm}6#pP+Ij^6rabG*U??2hAW4`OV3eR*G zY({-03kk$QV5-ReN+wHonB@T3`W?8%%u0N-@D}?S!PGE2){}eHmg_0;?V8?Meo5mS z7gh8w8#VY**gncfUfH>G_nZ7zq*|cL+T$qw!|M7j(;Zvt!G9^CouA|VaHu{zsh1WK z!zSA+dqPpAvg{pXne>Z8N*lK{Wlc>%h%P2`YJUU}#vvWYIGQn{i&(qx$i6SwC1D}A zQXvCKk5Go!z1}gIIv3UyZv|^S?%IH5BQ6<2EFgD!*Y^@IFMKKTOL%GpNL+}exDz4G zf_H^}chGIF*$QCvIcmPUHBRPm1OCHZ$h4aI+xay3&Z4^aqID?5>Z+H{QwkqSxZVlG zw+9DH=#!mAGX<%P6pByhznOepP5sAfGVDQdX1%T0Of)Z0)?~~G5*@wUJR0(m{*8|u zt_()?qiDIK0@n4&ded|3c6P~H0iz36>abSZ4)lk*+;7c{=GFK9?^Y9EE&WP@hl%kk^9`+gR!)9a!$ zr!iYEH^l|L-vkDI`;O;m7$5iR+(^_J==tO0BF|10O9y*YBm>n;i(m1l>vNe_k!qeT zY2nNguC*wuR1WqZt->)0EXgFERCcm5Xh>6tFg+Mp0(_;)VYU zf9YV$7q#1tF1PK?WSN-u%*SS4g>!{Ey6oLA3tX-)1Dv)%4wY`fQwE{*s6~YN#uLK0Er`V_IT2+!$QVMb74`^x@X) z!(Zb*Cs5QcD~kYLrg7eIL9_0`PASyaW$Bs|jWysvpu_&&wb*Ti5reNP#yZS@Fi{l5 zMg(QX8=16hVpG@@?5FmJ?P7ZP+2)v(y_22sM}IaBXs{+~mt&?C#>)SX*pobp^WVuf zw_D3j8V>M>$Xe9(OGkL&rnL%wQP##EW3PcRREaa060S}(#vci zKtwizj_z>!Klky>bU_uqPb;5m#oMPp3ZxzJ;WH8j7gV&`cDbG}8CBq8FhF0y9FeQ? zEFCLZK4pt_wVOQ$a2h2>v6Tm2(qf}Hyf5OT!xoZz2NF+n%4cEC{aSn7#@FcyMTw7_ zZ&8tgbNH!vYk0z8RI_LGcfFbjp*h22MxsLdrh8Wi5ZlEvW$qNeREzdd>205~+rCa3 z*%g>GQrR9H(zyO@TBm3c)(yqO2Tw6DlUMssK`LOXUpb-MZJg|`!g(lkzJ-qgK{7ps68}s3g5zn@= zAX%*+*hQO8FK_*C5W9EPv?OWMjC}p4!kN`mjCNBsLOKOi;aNslIjMBu59kfXY0p;6 z^V6P!LiJ@kxH7{OFXM;Efxo8D{fM)8_UPu96uQH{Pv<|(EV0Vz25La!Mgv=M_4f)# zUEyB{uD2+i$tldGf@`c1Eg;whM+PMN5ywpO)Bg&Z8x&w4<`d2G7?KHFekTaTOx~U$ z(-t|5f<+upTtNJL3q$-clY%L-z@47k>ExyAfb#xE#EcPDWNg0R@E58H|0jA2FYmWh z%78o<2!z3rofM)(`s>I6r%W?Cq8})uP;3ry!4wxg=9zIVFq#{b(OF#=L*jSq9>7hCT0ETN8#1w^5yOHFyySQN_)hVRS)!Iq2=(J2?wC;J^j;1^7l5R4w;egHP|2(lNrPS+vV83AM8nShV);Q%Q-V!PQw5 z2?@oYR|R8|d*EmxI6tCMfV`&*zQ5mbnN$(vtWmOF*&2PJVEr`1LPa2*7g(RBIlZjb zWAGcRNpNXP?V8L_BT4L;;ieDbk`N`vVtqA^x?#%Lrm;m9$7iMQGqBe8F7NMG_?rPJ=2`J4PwAw{{a4gt+@aI literal 0 HcmV?d00001 diff --git a/Marlin/src/lcd/tft/bitmaps/marlin-logo/Marlin-320x240.png b/Marlin/src/lcd/tft/bitmaps/marlin-logo/Marlin-320x240.png new file mode 100644 index 0000000000000000000000000000000000000000..744ba0e8b3b59e5a79f71146b5a17dbf3edfff57 GIT binary patch literal 97523 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 z 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 literal 0 HcmV?d00001 diff --git a/Marlin/src/lcd/tft/bitmaps/marlin-logo/Marlin-480x319.png b/Marlin/src/lcd/tft/bitmaps/marlin-logo/Marlin-480x319.png new file mode 100644 index 0000000000000000000000000000000000000000..4959ca672279a92827a1e2a6ca7aa50b7e877e2a GIT binary patch literal 168816 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 literal 0 HcmV?d00001 diff --git a/Marlin/src/lcd/tft/bitmaps/pause.bmp b/Marlin/src/lcd/tft/bitmaps/pause.bmp new file mode 100644 index 0000000000000000000000000000000000000000..9c42f006d37ac65fc06040e3ff239ee345338440 GIT binary patch literal 12410 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 Vx})Ugo5+&2$6FR zB8r^Z{g_&p+C4q*^~`%S>%){ZJ=N9KRo`Fw{(jZ(pa1&#r+VMo&#wRQ_sjqOzN`16 zp62-v--o|2P_N!^b*)YVbsDJCKshupdi3bAW5@pft?8Fz$=X;0R1NY`qek`X*ROBi zzOExij2JU!jPcq)P^~>+3kXM!964mjklwv}ckI})RjXG2{?u7u-mn3*SvZ2CQX|B`mMQb)259pE0hucAG)Z}^5{OiMB9*qG;rX+sO=Ul zS~P3c%$2qmEn2i?%a%EF=D3Al>(i%?SMqF8cn$#8apj@_#Ac*`mxibDMX=KT5dA3uKl6ZK#IPn4Jlampp-DIyk&~=lyY|M78*ksfegFRbmoHy*?%cTpk~t94 zQe+IbV28J+O`B$p7qcN28|6aq4zK zyroN*3Rs#?x*c<$V}B}Z2WI@}pG9d+@DVGS=p%V*^8#gY66D=TB>1orZO?mK397m2E zS+;DM1({D$lO}=^DBt>|POxz^jU%g9i^L$CG_?q<)Em z1)Zd%=EjX1H)zm6CRKqb2pHUg7?~qEjUX1`EeP%9%a({Ss@!`V_;fd&g80h{w6mTKp2(c#ELOC>5l2*QX$*!ixqBVJM#m<6e=6}=3R ze3ZX05a>!!m+1TfKWhS`rYZ`+2?d$+e5OxE$Gdm$oVko}c)6qKI?}yGEL9f#7GVO7 z^IX4vJ#%-`$z`I0-^xw9cI^t&o;`b}wwXSCx*!URunyvq&NA0Ac>DHkOpCPy9Y(dg zmU8K;-de#@;JM2F$B!T9C$udVupfBb6>_8`t8Ux2Enrh=&|#!UJ*uUBXC+u z5Ypiv_%%d|ML9s}A`sakmZC-&;ECGC*mA4XV@~{}pz7npCS%}=>LLjBg37g0_}8sl z7goccL~uoAr6+bwpXM8u+L3hHcmhr1j zRl-68wgUbiT+y7_vu9V9=>q<;`@c;K=pU~FFZ2W;wlD0r{D0oOc`3EWTlmG1BD}o( z1HV&A+$GgPKI$L-Pj4cf2r2H0w?ur~}Ijo{ZSQb?)4`O3h66^GU>kF`RH!GC_f20g}){ zUt*#Phn*y5eaCI-PadZw;^)+A{%J69NYtl!Yvsz76)OS9t561n?+lJS$_9dj3@&#| zthgoS>nH-`rtv*<%I-NS87T)I2VsY@2q1JEuapN$i(mzA90Um`^zfP5C+pN(ZuwsQ z`t^m6qh(S0O5v&MEkjTdDKfnX7(Nh6J9uKlt~~JK#fufe8zGbl+z;*N$skq5oSe^# zSUDD)nRpzgKw=9&L-1!`0~jk-N|~=v3t@9+kR+a}_C=p>3x$u9nFtFH5|9Z5etBuX zqIB?AEFcSG%kz|VtX$KxW`7y_t zz>BGxp#4nQg9xt5wupf^l7i|zd{~R)$&S;d*b)25+#%8(YHFHxQi1?4ktqfoihX_Z zQ>hWz3W4w5y*r6H_I;29QWju7q@;vEQ+_j2Ez~mjAPd04Eu1nyg2A|s+EOBmuw%!E z6!gwd!i#45sf*9on%ksI;1&|Q2jt-?ag1bs@L?Al=)5J5<$+W*DLOO&PV^*RmIX`oI6nHu;n3OrP< literal 0 HcmV?d00001 diff --git a/Marlin/src/lcd/tft/bitmaps/up.bmp b/Marlin/src/lcd/tft/bitmaps/up.bmp new file mode 100644 index 0000000000000000000000000000000000000000..94afd1255bea1635e23962c6e3d834156224b38f GIT binary patch literal 3126 zcmeHGyQ*426g7Q5AZ5z5A|9Xk!Z${LAgx-6g^Ggj_(H+bT2WMN6cI!OQ4sMn{0kcu z^e*lW!!YqiuenW#1Lv^MoVC|ld+!;`cj>e2bxC-C!}Imm^GWsv5f=WNf6zl4GTG1P zdUoKS>Oi4TfM0sQ%XqO^yqTEK=R={8$Ky$-(}cfM0*Qe@z~}QJxatl2nM|fut63}- zgTdf(xpKMOJrYQSnM$Q%GMSL*^?JcCBoYSv`~7}0nMjfZu*2cFSuX&|WU^YVUM`nL zqd|#ow>uV#@l}8s7?1;oH6D-Ua=F=Twpy*FQi(?j?MkIm*r6=EA)!zxj7B3Gg^Cy$ za_94z!4S-5GbRC;P%kBd9EI~)h^N!3UayZtB76#J91I2ml1ZRZzt7?-`Fg#E^K3SY zs+oBNu#re4dcEFN3CzOjbRvr^0SrIoa#;W`mrI+?hF`pMra}_^eqYGKEHE{+6jP%^ z3kDps)9J(`7mEcvyhTnbZ&fiGjWik!NkpU3dcA%)9NtULOLV(kJ{|FJIMiyjN~JO! z4j+$4{x6){?RJdgYFk);SU^>DIvt(_F-T(iq&eR)9F5h z93<2zHjDXuu2QLRogZ!sbIt;iz!BZ;cEMl}72SCh8NyiZC{N^+M H&pYq}#5Inx literal 0 HcmV?d00001 diff --git a/Marlin/src/lcd/tft/canvas.cpp b/Marlin/src/lcd/tft/canvas.cpp new file mode 100644 index 000000000..f6a5046b8 --- /dev/null +++ b/Marlin/src/lcd/tft/canvas.cpp @@ -0,0 +1,179 @@ +/** + * Marlin 3D Printer Firmware + * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin] + * + * Based on Sprinter and grbl. + * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + */ + +#include "../../inc/MarlinConfig.h" + +#if HAS_GRAPHICAL_TFT + +#include "canvas.h" + +uint16_t CANVAS::width, CANVAS::height; +uint16_t CANVAS::startLine, CANVAS::endLine; +uint16_t *CANVAS::buffer = TFT::buffer; + +void CANVAS::New(uint16_t x, uint16_t y, uint16_t width, uint16_t height) { + CANVAS::width = width; + CANVAS::height = height; + startLine = 0; + endLine = 0; + + tft.set_window(x, y, x + width - 1, y + height - 1); +} + +void CANVAS::Continue() { + startLine = endLine; + endLine = TFT_BUFFER_SIZE < width * (height - startLine) ? startLine + TFT_BUFFER_SIZE / width : height; +} + +bool CANVAS::ToScreen() { + tft.write_sequence(buffer, width * (endLine - startLine)); + return endLine == height; +} + +void CANVAS::SetBackground(uint16_t color) { + /* TODO: test and optimize perfomance */ + /* + uint32_t count = (endLine - startLine) * width; + uint16_t *pixel = buffer; + while (count--) + *pixel++ = color; + */ + const uint32_t two_pixels = (((uint32_t )color) << 16) | color; + uint32_t count = ((endLine - startLine) * width + 1) >> 1; + uint32_t *pointer = (uint32_t *)buffer; + while (count--) *pointer++ = two_pixels; +} + +void CANVAS::AddText(uint16_t x, uint16_t y, uint16_t color, uint8_t *string, uint16_t maxWidth) { + if (endLine < y || startLine > y + GetFontHeight()) return; + + if (maxWidth == 0) maxWidth = width - x; + + uint16_t stringWidth = 0; + for (uint16_t i = 0 ; *(string + i) ; i++) { + glyph_t *glyph = Glyph(string + i); + if (stringWidth + glyph->BBXWidth > maxWidth) break; + AddImage(x + stringWidth + glyph->BBXOffsetX, y + Font()->FontAscent - glyph->BBXHeight - glyph->BBXOffsetY, glyph->BBXWidth, glyph->BBXHeight, GREYSCALE1, ((uint8_t *)glyph) + sizeof(glyph_t), &color); + stringWidth += glyph->DWidth; + } +} + +void CANVAS::AddImage(int16_t x, int16_t y, MarlinImage image, uint16_t *colors) { + uint16_t *data = (uint16_t *)Images[image].data; + if (data == NULL) return; + + uint16_t image_width = Images[image].width, + image_height = Images[image].height; + colorMode_t color_mode = Images[image].colorMode; + + if (color_mode != HIGHCOLOR) + return AddImage(x, y, image_width, image_height, color_mode, (uint8_t *)data, colors); + + // HIGHCOLOR - 16 bits per pixel + + for (int16_t i = 0; i < image_height; i++) { + int16_t line = y + i; + if (line >= startLine && line < endLine) { + uint16_t *pixel = buffer + x + (line - startLine) * width; + for (int16_t j = 0; j < image_width; j++) { + if ((x + j >= 0) && (x + j < width)) *pixel = *data; + pixel++; + data++; + } + } + else + data += image_width; + } +} + +void CANVAS::AddImage(int16_t x, int16_t y, uint8_t image_width, uint8_t image_height, colorMode_t color_mode, uint8_t *data, uint16_t *colors) { + uint8_t bitsPerPixel; + switch (color_mode) { + case GREYSCALE1: bitsPerPixel = 1; break; + case GREYSCALE2: bitsPerPixel = 2; break; + case GREYSCALE4: bitsPerPixel = 4; break; + default: return; + } + + uint8_t mask = 0xFF >> (8 - bitsPerPixel), + pixelsPerByte = 8 / bitsPerPixel; + + colors--; + + for (int16_t i = 0; i < image_height; i++) { + int16_t line = y + i; + if (line >= startLine && line < endLine) { + uint16_t *pixel = buffer + x + (line - startLine) * width; + uint8_t offset = 8 - bitsPerPixel; + for (int16_t j = 0; j < image_width; j++) { + if (offset > 8) { + data++; + offset = 8 - bitsPerPixel; + } + if ((x + j >= 0) && (x + j < width)) { + const uint8_t color = ((*data) >> offset) & mask; + if (color) *pixel = *(colors + color); + } + pixel++; + offset -= bitsPerPixel; + } + data++; + } + else + data += (image_width + pixelsPerByte - 1) / pixelsPerByte; + } +} + +void CANVAS::AddRectangle(uint16_t x, uint16_t y, uint16_t rectangleWidth, uint16_t rectangleHeight, uint16_t color) { + if (endLine < y || startLine > y + rectangleHeight) return; + + for (uint16_t i = 0; i < rectangleHeight; i++) { + uint16_t line = y + i; + if (line >= startLine && line < endLine) { + uint16_t *pixel = buffer + x + (line - startLine) * width; + if (i == 0 || i == rectangleHeight - 1) { + for (uint16_t j = 0; j < rectangleWidth; j++) *pixel++ = color; + } + else { + *pixel = color; + pixel += rectangleWidth - 1; + *pixel = color; + } + } + } +} + +void CANVAS::AddBar(uint16_t x, uint16_t y, uint16_t barWidth, uint16_t barHeight, uint16_t color) { + if (endLine < y || startLine > y + barHeight) return; + + for (uint16_t i = 0; i < barHeight; i++) { + uint16_t line = y + i; + if (line >= startLine && line < endLine) { + uint16_t *pixel = buffer + x + (line - startLine) * width; + for (uint16_t j = 0; j < barWidth; j++) *pixel++ = color; + } + } +} + +CANVAS Canvas; + +#endif // HAS_GRAPHICAL_TFT diff --git a/Marlin/src/lcd/tft/canvas.h b/Marlin/src/lcd/tft/canvas.h new file mode 100644 index 000000000..295ea038e --- /dev/null +++ b/Marlin/src/lcd/tft/canvas.h @@ -0,0 +1,57 @@ +/** + * Marlin 3D Printer Firmware + * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin] + * + * Based on Sprinter and grbl. + * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + */ +#pragma once + +#include "tft_color.h" +#include "tft_string.h" +#include "tft_image.h" +#include "tft.h" + +#include "../../inc/MarlinConfig.h" + +class CANVAS { + private: + static uint16_t width, height; + static uint16_t startLine, endLine; + static uint16_t *buffer; + + inline static font_t *Font() { return TFT_String::font(); } + inline static glyph_t *Glyph(uint8_t *character) { return TFT_String::glyph(character); } + inline static uint16_t GetFontHeight() { return TFT_String::font_height(); } + + static void AddImage(int16_t x, int16_t y, uint8_t image_width, uint8_t image_height, colorMode_t color_mode, uint8_t *data, uint16_t *colors); + static void AddImage(uint16_t x, uint16_t y, uint16_t imageWidth, uint16_t imageHeight, uint16_t color, uint16_t bgColor, uint8_t *image); + + public: + static void New(uint16_t x, uint16_t y, uint16_t width, uint16_t height); + static void Continue(); + static bool ToScreen(); + + static void SetBackground(uint16_t color); + static void AddText(uint16_t x, uint16_t y, uint16_t color, uint8_t *string, uint16_t maxWidth); + static void AddImage(int16_t x, int16_t y, MarlinImage image, uint16_t *colors); + + static void AddRectangle(uint16_t x, uint16_t y, uint16_t width, uint16_t height, uint16_t color); + static void AddBar(uint16_t x, uint16_t y, uint16_t width, uint16_t height, uint16_t color); +}; + +extern CANVAS Canvas; diff --git a/Marlin/src/lcd/tft/fontdata/fontdata_10x20.cpp b/Marlin/src/lcd/tft/fontdata/fontdata_10x20.cpp new file mode 100644 index 000000000..cc328e885 --- /dev/null +++ b/Marlin/src/lcd/tft/fontdata/fontdata_10x20.cpp @@ -0,0 +1,257 @@ +/** + * Marlin 3D Printer Firmware + * Copyright (c) 2019 MarlinFirmware [https://github.com/MarlinFirmware/Marlin] + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + */ + +/* + Fontname: -Misc-Fixed-Medium-R-Normal--20-200-75-75-C-100-ISO10646-1 + Copyright: Public domain font. Share and enjoy. + Capital A Height: 13, '1' Height: 13 + Calculated Max Values w= 9 h=17 x= 4 y=16 dx=10 dy= 0 ascent=16 len=26 + Font Bounding box w=10 h=20 x= 0 y=-4 + Calculated Min Values x= 0 y=-4 dx= 0 dy= 0 + Pure Font ascent =13 descent=-4 + X Font ascent =13 descent=-4 + Max Font ascent =16 descent=-4 +*/ + +#include "../../../inc/MarlinConfigPre.h" + +#if HAS_GRAPHICAL_TFT + +#include + +extern const uint8_t font10x20[3453] = { + 0,10,20,0,252,13,2,74,4,153,32,255,252,16,252,13, + 252,0,0,0,10,0,16,2,13,13,10,4,0,192,192,192, + 192,192,192,192,192,192,192,0,192,192,6,4,4,10,2,9, + 204,204,204,72,9,11,22,10,1,1,27,0,27,0,27,0, + 127,128,54,0,54,0,54,0,255,0,108,0,108,0,108,0, + 8,13,13,10,1,0,24,126,219,216,216,216,126,27,27,27, + 219,126,24,9,12,24,10,1,0,115,0,219,0,222,0,118, + 0,12,0,12,0,24,0,24,0,55,0,61,128,109,128,103, + 0,9,13,26,10,1,0,56,0,108,0,108,0,108,0,120, + 0,48,0,112,0,216,0,205,128,199,0,198,0,239,0,121, + 128,2,5,5,10,4,8,192,192,192,192,128,5,13,13,10, + 3,0,24,48,96,96,192,192,192,192,192,96,96,48,24,5, + 13,13,10,2,0,192,96,48,48,24,24,24,24,24,48,48, + 96,192,8,7,7,10,1,3,102,102,60,255,60,102,102,8, + 7,7,10,1,3,24,24,24,255,24,24,24,4,3,3,10, + 3,255,112,112,224,8,1,1,10,1,6,255,3,3,3,10, + 4,0,224,224,224,7,12,12,10,2,0,6,6,12,12,24, + 24,48,48,96,96,192,192,8,13,13,10,1,0,24,60,102, + 102,195,195,195,195,195,102,102,60,24,8,13,13,10,1,0, + 24,56,120,216,24,24,24,24,24,24,24,24,255,8,13,13, + 10,1,0,60,102,195,195,3,3,6,28,48,96,192,192,255, + 8,13,13,10,1,0,60,102,195,195,3,6,28,6,3,195, + 195,102,60,8,13,13,10,1,0,2,6,14,30,54,102,198, + 198,255,6,6,6,6,8,13,13,10,1,0,255,192,192,192, + 192,220,230,3,3,3,195,102,60,8,13,13,10,1,0,60, + 102,194,192,192,220,230,195,195,195,195,102,60,8,13,13,10, + 1,0,255,3,3,6,6,12,12,24,24,48,48,96,96,8, + 13,13,10,1,0,60,102,195,195,195,102,60,102,195,195,195, + 102,60,8,13,13,10,1,0,60,102,195,195,195,195,103,59, + 3,3,67,102,60,3,8,8,10,4,0,224,224,0,0,0, + 0,224,224,4,9,9,10,3,255,112,112,0,0,0,0,112, + 112,224,7,13,13,10,1,0,2,6,12,24,48,96,192,96, + 48,24,12,6,2,8,6,6,10,1,3,255,0,0,0,0, + 255,7,13,13,10,2,0,128,192,96,48,24,12,6,12,24, + 48,96,192,128,8,13,13,10,1,0,60,102,195,195,195,6, + 12,24,24,24,0,24,24,8,13,13,10,1,0,60,102,195, + 207,223,219,219,219,222,204,192,99,62,8,13,13,10,1,0, + 24,60,102,102,195,195,195,255,195,195,195,195,195,8,13,13, + 10,1,0,248,204,198,198,198,204,252,198,195,195,195,198,252, + 8,13,13,10,1,0,60,102,195,192,192,192,192,192,192,192, + 195,102,60,8,13,13,10,1,0,252,198,195,195,195,195,195, + 195,195,195,195,198,252,8,13,13,10,1,0,255,192,192,192, + 192,192,252,192,192,192,192,192,255,8,13,13,10,1,0,255, + 192,192,192,192,192,252,192,192,192,192,192,192,8,13,13,10, + 1,0,60,102,195,192,192,192,207,195,195,195,195,103,61,8, + 13,13,10,1,0,195,195,195,195,195,195,255,195,195,195,195, + 195,195,8,13,13,10,1,0,255,24,24,24,24,24,24,24, + 24,24,24,24,255,9,13,26,10,1,0,31,128,6,0,6, + 0,6,0,6,0,6,0,6,0,6,0,6,0,198,0,198, + 0,108,0,56,0,8,13,13,10,1,0,195,195,198,198,204, + 204,248,204,204,198,198,195,195,8,13,13,10,1,0,192,192, + 192,192,192,192,192,192,192,192,192,192,255,8,13,13,10,1, + 0,195,195,231,231,255,219,219,219,219,195,195,195,195,8,13, + 13,10,1,0,195,227,227,243,243,219,219,207,207,199,199,195, + 195,8,13,13,10,1,0,60,102,195,195,195,195,195,195,195, + 195,195,102,60,8,13,13,10,1,0,252,198,195,195,195,195, + 198,252,192,192,192,192,192,8,14,14,10,1,255,60,102,195, + 195,195,195,195,195,195,219,207,102,62,3,8,13,13,10,1, + 0,252,198,195,195,195,195,198,252,204,198,198,195,195,8,13, + 13,10,1,0,60,102,195,192,192,96,60,6,3,3,195,102, + 60,8,13,13,10,1,0,255,24,24,24,24,24,24,24,24, + 24,24,24,24,8,13,13,10,1,0,195,195,195,195,195,195, + 195,195,195,195,195,102,60,8,13,13,10,1,0,195,195,195, + 195,102,102,102,60,60,60,24,24,24,8,13,13,10,1,0, + 195,195,195,195,195,219,219,219,219,231,231,195,195,8,13,13, + 10,1,0,195,195,102,102,60,60,24,60,60,102,102,195,195, + 8,13,13,10,1,0,195,195,102,102,60,60,24,24,24,24, + 24,24,24,8,13,13,10,1,0,255,3,3,6,12,12,24, + 48,48,96,192,192,255,6,13,13,10,2,0,252,192,192,192, + 192,192,192,192,192,192,192,192,252,7,12,12,10,2,0,192, + 192,96,96,48,48,24,24,12,12,6,6,6,13,13,10,2, + 0,252,12,12,12,12,12,12,12,12,12,12,12,252,8,4, + 4,10,1,9,24,60,102,195,9,1,2,10,1,255,255,128, + 4,3,3,10,3,10,192,96,48,8,8,8,10,1,0,62, + 99,3,127,195,195,195,125,8,13,13,10,1,0,192,192,192, + 192,192,220,230,195,195,195,195,230,220,8,8,8,10,1,0, + 62,99,192,192,192,192,99,62,8,13,13,10,1,0,3,3, + 3,3,3,59,103,195,195,195,195,103,59,8,8,8,10,1, + 0,60,102,195,255,192,192,99,62,8,13,13,10,1,0,30, + 51,51,48,48,252,48,48,48,48,48,48,48,8,12,12,10, + 1,252,125,199,198,198,198,124,192,126,195,195,195,126,8,13, + 13,10,1,0,192,192,192,192,192,220,230,195,195,195,195,195, + 195,8,11,11,10,1,0,24,24,0,120,24,24,24,24,24, + 24,255,7,15,15,10,2,252,6,6,0,30,6,6,6,6, + 6,6,6,198,198,198,124,8,13,13,10,1,0,192,192,192, + 192,192,198,204,216,240,248,204,198,195,8,13,13,10,1,0, + 120,24,24,24,24,24,24,24,24,24,24,24,255,8,8,8, + 10,1,0,182,255,219,219,219,219,219,219,8,8,8,10,1, + 0,220,230,195,195,195,195,195,195,8,8,8,10,1,0,60, + 102,195,195,195,195,102,60,8,12,12,10,1,252,220,230,195, + 195,195,195,230,220,192,192,192,192,8,12,12,10,1,252,59, + 103,195,195,195,195,103,59,3,3,3,3,8,8,8,10,1, + 0,222,115,96,96,96,96,96,96,8,8,8,10,1,0,126, + 195,192,126,3,3,195,126,8,11,11,10,1,0,48,48,48, + 252,48,48,48,48,48,51,30,8,8,8,10,1,0,195,195, + 195,195,195,195,103,59,8,8,8,10,1,0,195,195,102,102, + 60,60,24,24,8,8,8,10,1,0,195,195,195,219,219,219, + 255,102,8,8,8,10,1,0,195,102,60,24,24,60,102,195, + 8,12,12,10,1,252,195,195,195,195,195,195,103,59,3,195, + 102,60,7,8,8,10,2,0,254,6,12,24,48,96,192,254, + 8,13,13,10,1,0,15,24,24,24,24,24,240,24,24,24, + 24,24,15,2,13,13,10,4,0,192,192,192,192,192,192,192, + 192,192,192,192,192,192,8,13,13,10,1,0,240,24,24,24, + 24,24,15,24,24,24,24,24,240,8,3,3,10,1,10,115, + 219,206,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,0,0,0,10,0,16,2,13,13,10,4,0,192, + 192,0,192,192,192,192,192,192,192,192,192,192,7,12,12,10, + 1,0,24,24,60,102,194,192,192,194,102,60,24,24,9,12, + 24,10,1,0,30,0,51,0,51,0,48,0,48,0,252,0, + 48,0,48,0,48,0,248,0,173,128,231,0,9,9,18,10, + 0,1,128,128,221,128,127,0,99,0,99,0,99,0,127,0, + 221,128,128,128,8,11,11,10,1,0,129,195,102,60,126,24, + 126,24,24,24,24,2,13,13,10,4,0,192,192,192,192,192, + 0,0,0,192,192,192,192,192,8,13,13,10,1,0,60,102, + 198,96,120,204,102,51,30,6,99,102,60,6,2,2,10,2, + 11,204,204,8,11,11,10,1,0,60,102,195,189,165,161,165, + 189,195,102,60,8,9,9,10,1,4,62,67,3,127,195,195, + 125,0,255,9,11,22,10,0,0,4,128,13,128,27,0,54, + 0,108,0,216,0,108,0,54,0,27,0,13,128,4,128,8, + 4,4,10,1,4,255,255,3,3,6,1,1,10,2,6,252, + 8,11,11,10,1,0,60,102,195,189,165,189,169,173,195,102, + 60,8,1,1,10,1,13,255,6,6,6,10,2,7,48,120, + 204,204,120,48,8,7,7,10,1,2,24,24,255,24,24,0, + 255,5,7,7,10,2,6,112,216,24,48,96,192,248,5,7, + 7,10,2,6,112,216,24,48,24,216,112,4,3,3,10,3, + 10,48,96,192,7,10,10,10,1,253,198,198,198,198,198,238, + 250,192,192,192,8,13,13,10,1,0,127,255,251,251,251,123, + 27,27,27,27,27,27,27,3,3,3,10,4,5,224,224,224, + 5,4,4,10,2,252,48,24,216,112,4,7,7,10,2,6, + 96,224,96,96,96,96,240,7,9,9,10,1,4,56,108,198, + 198,198,108,56,0,254,9,11,22,10,1,0,144,0,216,0, + 108,0,54,0,27,0,13,128,27,0,54,0,108,0,216,0, + 144,0,8,12,12,10,1,1,64,192,65,66,228,8,18,38, + 74,158,2,2,8,12,12,10,1,1,64,192,65,66,228,8, + 22,41,65,130,4,15,8,12,12,10,1,1,224,16,97,18, + 228,8,18,38,74,159,2,2,8,13,13,10,1,0,24,24, + 0,24,24,24,48,96,195,195,195,102,60,8,15,15,10,1, + 0,96,48,24,0,24,60,102,195,195,195,255,195,195,195,195, + 8,15,15,10,1,0,6,12,24,0,24,60,102,195,195,195, + 255,195,195,195,195,8,15,15,10,1,0,24,60,102,0,24, + 60,102,195,195,195,255,195,195,195,195,8,15,15,10,1,0, + 50,126,76,0,24,60,102,195,195,195,255,195,195,195,195,8, + 15,15,10,1,0,102,102,0,24,60,102,102,195,195,195,255, + 195,195,195,195,8,16,16,10,1,0,60,102,102,60,0,24, + 60,102,195,195,195,255,195,195,195,195,8,13,13,10,1,0, + 31,60,108,108,204,204,255,204,204,204,204,204,207,8,17,17, + 10,1,252,60,102,195,192,192,192,192,192,192,192,195,102,60, + 24,12,108,56,8,15,15,10,1,0,96,48,24,0,255,192, + 192,192,192,252,192,192,192,192,255,8,15,15,10,1,0,12, + 24,48,0,255,192,192,192,192,252,192,192,192,192,255,8,15, + 15,10,1,0,24,60,102,0,255,192,192,192,192,252,192,192, + 192,192,255,8,15,15,10,1,0,102,102,0,0,255,192,192, + 192,192,252,192,192,192,192,255,6,15,15,10,2,0,96,48, + 24,0,252,48,48,48,48,48,48,48,48,48,252,6,15,15, + 10,2,0,24,48,96,0,252,48,48,48,48,48,48,48,48, + 48,252,6,15,15,10,2,0,48,120,204,0,252,48,48,48, + 48,48,48,48,48,48,252,6,15,15,10,2,0,204,204,0, + 252,48,48,48,48,48,48,48,48,48,48,252,9,13,26,10, + 0,0,126,0,99,0,97,128,97,128,97,128,97,128,249,128, + 97,128,97,128,97,128,97,128,99,0,126,0,8,15,15,10, + 1,0,50,126,76,0,195,227,243,243,219,219,207,207,199,195, + 195,8,15,15,10,1,0,48,24,12,0,60,102,195,195,195, + 195,195,195,195,102,60,8,15,15,10,1,0,12,24,48,0, + 60,102,195,195,195,195,195,195,195,102,60,8,15,15,10,1, + 0,24,60,102,0,60,102,195,195,195,195,195,195,195,102,60, + 8,15,15,10,1,0,50,126,76,0,60,102,195,195,195,195, + 195,195,195,102,60,8,15,15,10,1,0,102,102,0,60,102, + 195,195,195,195,195,195,195,195,102,60,7,8,8,10,1,0, + 130,198,108,56,56,108,198,130,8,15,15,10,1,255,1,62, + 102,199,199,203,203,203,211,211,211,227,102,124,128,8,15,15, + 10,1,0,48,24,12,0,195,195,195,195,195,195,195,195,195, + 102,60,8,15,15,10,1,0,12,24,48,0,195,195,195,195, + 195,195,195,195,195,102,60,8,15,15,10,1,0,24,60,102, + 0,195,195,195,195,195,195,195,195,195,102,60,8,15,15,10, + 1,0,102,102,0,195,195,195,195,195,195,195,195,195,195,102, + 60,8,15,15,10,1,0,12,24,48,0,195,195,102,102,60, + 60,24,24,24,24,24,7,13,13,10,2,0,192,192,192,252, + 198,198,198,198,198,252,192,192,192,8,13,13,10,1,0,28, + 54,99,99,102,236,108,102,99,99,99,102,108,8,12,12,10, + 1,0,48,24,12,0,126,195,3,127,195,195,195,125,8,12, + 12,10,1,0,12,24,48,0,126,195,3,127,195,195,195,125, + 8,12,12,10,1,0,24,60,102,0,126,195,3,127,195,195, + 195,125,8,12,12,10,1,0,50,126,76,0,126,195,3,127, + 195,195,195,125,8,11,11,10,1,0,102,102,0,126,195,3, + 127,195,195,195,125,8,13,13,10,1,0,60,102,102,60,0, + 126,195,3,127,195,195,195,125,8,8,8,10,1,0,118,155, + 27,30,120,216,217,110,8,12,12,10,1,252,62,99,192,192, + 192,192,99,62,24,12,108,56,8,12,12,10,1,0,96,48, + 24,0,60,102,195,255,192,192,99,62,8,12,12,10,1,0, + 6,12,24,0,60,102,195,255,192,192,99,62,8,12,12,10, + 1,0,24,60,102,0,60,102,195,255,192,192,99,62,8,11, + 11,10,1,0,102,102,0,60,102,195,255,192,192,99,62,8, + 12,12,10,1,0,96,48,24,0,120,24,24,24,24,24,24, + 255,8,12,12,10,1,0,12,24,48,0,120,24,24,24,24, + 24,24,255,8,12,12,10,1,0,24,60,102,0,120,24,24, + 24,24,24,24,255,8,11,11,10,1,0,102,102,0,120,24, + 24,24,24,24,24,255,8,13,13,10,1,0,136,216,112,112, + 216,140,62,103,195,195,195,102,60,8,12,12,10,1,0,50, + 126,76,0,220,230,195,195,195,195,195,195,8,12,12,10,1, + 0,96,48,24,0,60,102,195,195,195,195,102,60,8,12,12, + 10,1,0,6,12,24,0,60,102,195,195,195,195,102,60,8, + 12,12,10,1,0,24,60,102,0,60,102,195,195,195,195,102, + 60,8,12,12,10,1,0,50,126,76,0,60,102,195,195,195, + 195,102,60,8,11,11,10,1,0,102,102,0,60,102,195,195, + 195,195,102,60,8,10,10,10,1,1,24,24,0,0,255,255, + 0,0,24,24,8,10,10,10,1,255,1,62,102,203,203,211, + 211,102,124,128,8,12,12,10,1,0,48,24,12,0,195,195, + 195,195,195,195,103,59,8,12,12,10,1,0,6,12,24,0, + 195,195,195,195,195,195,103,59,8,12,12,10,1,0,24,60, + 102,0,195,195,195,195,195,195,103,59,8,11,11,10,1,0, + 102,102,0,195,195,195,195,195,195,103,59,8,16,16,10,1, + 252,12,24,48,0,195,195,195,195,195,195,103,59,3,195,102, + 60,7,17,17,10,2,252,192,192,192,192,192,192,248,204,198, + 198,198,204,248,192,192,192,192,8,15,15,10,1,252,102,102, + 0,195,195,195,195,195,195,103,59,3,195,102,60 +}; + +#endif // HAS_GRAPHICAL_TFT diff --git a/Marlin/src/lcd/tft/fontdata/fontdata_ISO10646_1.cpp b/Marlin/src/lcd/tft/fontdata/fontdata_ISO10646_1.cpp new file mode 100644 index 000000000..169498609 --- /dev/null +++ b/Marlin/src/lcd/tft/fontdata/fontdata_ISO10646_1.cpp @@ -0,0 +1,314 @@ +/** + * Marlin 3D Printer Firmware + * Copyright (c) 2019 MarlinFirmware [https://github.com/MarlinFirmware/Marlin] + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + */ + +#include "../../../inc/MarlinConfigPre.h" + +#if HAS_GRAPHICAL_TFT + +#include + +#define STM32_NOT_EXTENDED_ISO10646_1_5X7 + +#if ENABLED(STM32_NOT_EXTENDED_ISO10646_1_5X7) + // reduced font (only symbols 1 - 127) - saves about 1278 bytes of FLASH + +/* + Fontname: -Marlin6x12-Fixed-Medium-R-SemiCondensed--12-90-100-100-C-111-ISO10646-1 + Copyright: Public domain terminal emulator font. Share and enjoy. original font -Misc-Fixed-Medium-R-SemiCondensed--12-110-75-75-C-60-ISO10646-1 + Capital A Height: 7, '1' Height: 7 + Calculated Max Values w= 5 h=10 x= 5 y= 5 dx= 6 dy= 0 ascent= 8 len=10 + Font Bounding box w=12 h=13 x= 0 y=-2 + Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 + Pure Font ascent = 7 descent=-2 + X Font ascent = 8 descent=-2 + Max Font ascent = 8 descent=-2 +*/ +extern const uint8_t ISO10646_1_5x7[1325] = { + 0x00,0x0c,0x0d,0x00,0xfe,0x07,0x02,0x26,0x03,0xbc,0x01,0x7f,0xfe,0x0a,0xfe,0x08, + 0xfe,0x05,0x08,0x08,0x06,0x00,0x00,0x40,0xf0,0xc8,0x88,0x88,0x98,0x78,0x10,0x05, + 0x08,0x08,0x06,0x00,0x00,0xc0,0xf8,0x88,0x88,0x88,0x88,0x88,0xf8,0x05,0x05,0x05, + 0x06,0x00,0x01,0x20,0x30,0xf8,0x30,0x20,0x05,0x08,0x08,0x06,0x00,0x00,0x20,0x70, + 0xf8,0x20,0x20,0x20,0x20,0xe0,0x05,0x09,0x09,0x06,0x00,0xff,0x20,0x70,0xa8,0xa8, + 0xb8,0x88,0x88,0x70,0x20,0x07,0x06,0x06,0x08,0x00,0x01,0xe0,0x8c,0xea,0x8c,0x8a, + 0x0a,0x05,0x09,0x09,0x06,0x00,0xff,0xf8,0xa8,0x88,0x88,0x88,0x88,0x88,0xa8,0xf8, + 0x05,0x0a,0x0a,0x06,0x00,0xfe,0x20,0x50,0x50,0x50,0x50,0x88,0xa8,0xa8,0x88,0x70, + 0x03,0x03,0x03,0x06,0x00,0x06,0x40,0xa0,0x40,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00, + 0x00,0x00,0x06,0x05,0xff,0x01,0x07,0x07,0x06,0x02,0x00,0x80,0x80,0x80,0x80,0x80, + 0x00,0x80,0x03,0x03,0x03,0x06,0x01,0x05,0xa0,0xa0,0xa0,0x05,0x06,0x06,0x06,0x00, + 0x00,0x50,0xf8,0x50,0x50,0xf8,0x50,0x05,0x09,0x09,0x06,0x00,0xff,0x20,0x70,0xa8, + 0xa0,0x70,0x28,0xa8,0x70,0x20,0x05,0x07,0x07,0x06,0x00,0x00,0xc8,0xc8,0x10,0x20, + 0x40,0x98,0x98,0x05,0x07,0x07,0x06,0x00,0x00,0x40,0xa0,0xa0,0x40,0xa8,0x90,0x68, + 0x01,0x03,0x03,0x06,0x02,0x05,0x80,0x80,0x80,0x03,0x09,0x09,0x06,0x01,0xff,0x20, + 0x40,0x40,0x80,0x80,0x80,0x40,0x40,0x20,0x03,0x09,0x09,0x06,0x01,0xff,0x80,0x40, + 0x40,0x20,0x20,0x20,0x40,0x40,0x80,0x05,0x07,0x07,0x06,0x00,0x00,0x20,0xa8,0x70, + 0x20,0x70,0xa8,0x20,0x05,0x05,0x05,0x06,0x00,0x01,0x20,0x20,0xf8,0x20,0x20,0x02, + 0x03,0x03,0x06,0x01,0xff,0xc0,0x40,0x80,0x05,0x01,0x01,0x06,0x00,0x03,0xf8,0x02, + 0x02,0x02,0x06,0x01,0x00,0xc0,0xc0,0x05,0x07,0x07,0x06,0x00,0x00,0x08,0x10,0x10, + 0x20,0x40,0x40,0x80,0x05,0x07,0x07,0x06,0x00,0x00,0x70,0x88,0x98,0xa8,0xc8,0x88, + 0x70,0x03,0x07,0x07,0x06,0x01,0x00,0x40,0xc0,0x40,0x40,0x40,0x40,0xe0,0x05,0x07, + 0x07,0x06,0x00,0x00,0x70,0x88,0x08,0x10,0x20,0x40,0xf8,0x05,0x07,0x07,0x06,0x00, + 0x00,0xf8,0x08,0x10,0x30,0x08,0x88,0x70,0x05,0x07,0x07,0x06,0x00,0x00,0x10,0x30, + 0x50,0x90,0xf8,0x10,0x10,0x05,0x07,0x07,0x06,0x00,0x00,0xf8,0x80,0xf0,0x08,0x08, + 0x88,0x70,0x05,0x07,0x07,0x06,0x00,0x00,0x30,0x40,0x80,0xf0,0x88,0x88,0x70,0x05, + 0x07,0x07,0x06,0x00,0x00,0xf8,0x08,0x10,0x10,0x20,0x20,0x20,0x05,0x07,0x07,0x06, + 0x00,0x00,0x70,0x88,0x88,0x70,0x88,0x88,0x70,0x05,0x07,0x07,0x06,0x00,0x00,0x70, + 0x88,0x88,0x78,0x08,0x10,0x60,0x02,0x05,0x05,0x06,0x01,0x00,0xc0,0xc0,0x00,0xc0, + 0xc0,0x02,0x06,0x06,0x06,0x01,0xff,0xc0,0xc0,0x00,0xc0,0x40,0x80,0x03,0x05,0x05, + 0x06,0x01,0x01,0x20,0x40,0x80,0x40,0x20,0x05,0x03,0x03,0x06,0x00,0x02,0xf8,0x00, + 0xf8,0x03,0x05,0x05,0x06,0x01,0x01,0x80,0x40,0x20,0x40,0x80,0x05,0x07,0x07,0x06, + 0x00,0x00,0x70,0x88,0x10,0x20,0x20,0x00,0x20,0x05,0x07,0x07,0x06,0x00,0x00,0x70, + 0x88,0xb8,0xa8,0xb8,0x80,0x70,0x05,0x07,0x07,0x06,0x00,0x00,0x70,0x88,0x88,0xf8, + 0x88,0x88,0x88,0x05,0x07,0x07,0x06,0x00,0x00,0xf0,0x48,0x48,0x70,0x48,0x48,0xf0, + 0x05,0x07,0x07,0x06,0x00,0x00,0x70,0x88,0x80,0x80,0x80,0x88,0x70,0x05,0x07,0x07, + 0x06,0x00,0x00,0xf0,0x48,0x48,0x48,0x48,0x48,0xf0,0x05,0x07,0x07,0x06,0x00,0x00, + 0xf8,0x80,0x80,0xf0,0x80,0x80,0xf8,0x05,0x07,0x07,0x06,0x00,0x00,0xf8,0x80,0x80, + 0xf0,0x80,0x80,0x80,0x05,0x07,0x07,0x06,0x00,0x00,0x70,0x88,0x80,0x80,0x98,0x88, + 0x70,0x05,0x07,0x07,0x06,0x00,0x00,0x88,0x88,0x88,0xf8,0x88,0x88,0x88,0x03,0x07, + 0x07,0x06,0x01,0x00,0xe0,0x40,0x40,0x40,0x40,0x40,0xe0,0x05,0x07,0x07,0x06,0x00, + 0x00,0x38,0x10,0x10,0x10,0x10,0x90,0x60,0x05,0x07,0x07,0x06,0x00,0x00,0x88,0x90, + 0xa0,0xc0,0xa0,0x90,0x88,0x05,0x07,0x07,0x06,0x00,0x00,0x80,0x80,0x80,0x80,0x80, + 0x80,0xf8,0x05,0x07,0x07,0x06,0x00,0x00,0x88,0xd8,0xa8,0x88,0x88,0x88,0x88,0x05, + 0x07,0x07,0x06,0x00,0x00,0x88,0x88,0xc8,0xa8,0x98,0x88,0x88,0x05,0x07,0x07,0x06, + 0x00,0x00,0x70,0x88,0x88,0x88,0x88,0x88,0x70,0x05,0x07,0x07,0x06,0x00,0x00,0xf0, + 0x88,0x88,0xf0,0x80,0x80,0x80,0x05,0x07,0x07,0x06,0x00,0x00,0x70,0x88,0x88,0x88, + 0xa8,0x90,0x68,0x05,0x07,0x07,0x06,0x00,0x00,0xf0,0x88,0x88,0xf0,0xa0,0x90,0x88, + 0x05,0x07,0x07,0x06,0x00,0x00,0x70,0x88,0x80,0x70,0x08,0x88,0x70,0x05,0x07,0x07, + 0x06,0x00,0x00,0xf8,0x20,0x20,0x20,0x20,0x20,0x20,0x05,0x07,0x07,0x06,0x00,0x00, + 0x88,0x88,0x88,0x88,0x88,0x88,0x70,0x05,0x07,0x07,0x06,0x00,0x00,0x88,0x88,0x88, + 0x88,0x50,0x50,0x20,0x05,0x07,0x07,0x06,0x00,0x00,0x88,0x88,0x88,0x88,0xa8,0xa8, + 0x50,0x05,0x07,0x07,0x06,0x00,0x00,0x88,0x88,0x50,0x20,0x50,0x88,0x88,0x05,0x07, + 0x07,0x06,0x00,0x00,0x88,0x88,0x50,0x20,0x20,0x20,0x20,0x05,0x07,0x07,0x06,0x00, + 0x00,0xf8,0x08,0x10,0x20,0x40,0x80,0xf8,0x03,0x09,0x09,0x06,0x01,0xff,0xe0,0x80, + 0x80,0x80,0x80,0x80,0x80,0x80,0xe0,0x05,0x07,0x07,0x06,0x00,0x00,0x80,0x40,0x40, + 0x20,0x10,0x10,0x08,0x03,0x09,0x09,0x06,0x01,0xff,0xe0,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0xe0,0x05,0x03,0x03,0x06,0x00,0x05,0x20,0x50,0x88,0x05,0x01,0x01,0x06, + 0x00,0xfe,0xf8,0x03,0x03,0x03,0x06,0x01,0x05,0x80,0x40,0x20,0x05,0x05,0x05,0x06, + 0x00,0x00,0x70,0x08,0x78,0x88,0x78,0x05,0x07,0x07,0x06,0x00,0x00,0x80,0x80,0xf0, + 0x88,0x88,0x88,0xf0,0x05,0x05,0x05,0x06,0x00,0x00,0x70,0x80,0x80,0x88,0x70,0x05, + 0x07,0x07,0x06,0x00,0x00,0x08,0x08,0x78,0x88,0x88,0x88,0x78,0x05,0x05,0x05,0x06, + 0x00,0x00,0x70,0x88,0xf0,0x80,0x70,0x05,0x07,0x07,0x06,0x00,0x00,0x30,0x48,0x40, + 0xe0,0x40,0x40,0x40,0x05,0x07,0x07,0x06,0x00,0xfe,0x70,0x88,0x88,0x88,0x78,0x08, + 0x70,0x05,0x07,0x07,0x06,0x00,0x00,0x80,0x80,0xf0,0x88,0x88,0x88,0x88,0x03,0x07, + 0x07,0x06,0x01,0x00,0x40,0x00,0xc0,0x40,0x40,0x40,0xe0,0x04,0x09,0x09,0x06,0x01, + 0xfe,0x10,0x00,0x30,0x10,0x10,0x10,0x10,0x90,0x60,0x05,0x07,0x07,0x06,0x00,0x00, + 0x80,0x80,0x88,0x90,0xe0,0x90,0x88,0x03,0x07,0x07,0x06,0x01,0x00,0xc0,0x40,0x40, + 0x40,0x40,0x40,0xe0,0x05,0x05,0x05,0x06,0x00,0x00,0xd0,0xa8,0xa8,0xa8,0xa8,0x05, + 0x05,0x05,0x06,0x00,0x00,0xb0,0xc8,0x88,0x88,0x88,0x05,0x05,0x05,0x06,0x00,0x00, + 0x70,0x88,0x88,0x88,0x70,0x05,0x07,0x07,0x06,0x00,0xfe,0xf0,0x88,0x88,0x88,0xf0, + 0x80,0x80,0x05,0x07,0x07,0x06,0x00,0xfe,0x78,0x88,0x88,0x88,0x78,0x08,0x08,0x05, + 0x05,0x05,0x06,0x00,0x00,0xb0,0xc8,0x80,0x80,0x80,0x05,0x05,0x05,0x06,0x00,0x00, + 0x78,0x80,0x70,0x08,0xf0,0x05,0x07,0x07,0x06,0x00,0x00,0x20,0x20,0xf8,0x20,0x20, + 0x20,0x18,0x05,0x05,0x05,0x06,0x00,0x00,0x88,0x88,0x88,0x98,0x68,0x05,0x05,0x05, + 0x06,0x00,0x00,0x88,0x88,0x88,0x50,0x20,0x05,0x05,0x05,0x06,0x00,0x00,0x88,0x88, + 0xa8,0xa8,0x50,0x05,0x05,0x05,0x06,0x00,0x00,0x88,0x50,0x20,0x50,0x88,0x05,0x07, + 0x07,0x06,0x00,0xfe,0x88,0x88,0x88,0x50,0x20,0x40,0x80,0x05,0x05,0x05,0x06,0x00, + 0x00,0xf8,0x10,0x20,0x40,0xf8,0x03,0x09,0x09,0x06,0x01,0xff,0x20,0x40,0x40,0x40, + 0x80,0x40,0x40,0x40,0x20,0x01,0x09,0x09,0x06,0x02,0xff,0x80,0x80,0x80,0x80,0x80, + 0x80,0x80,0x80,0x80,0x03,0x09,0x09,0x06,0x01,0xff,0x80,0x40,0x40,0x40,0x20,0x40, + 0x40,0x40,0x80,0x05,0x03,0x03,0x06,0x00,0x02,0x48,0xa8,0x90,0xff +}; + +#else // !STM32_NOT_EXTENDED_ISO10646_1_5X7 + + // extended (original) font (symbols 1 - 255) + +/* + Fontname: -Marlin6x12-Fixed-Medium-R-SemiCondensed--12-90-100-100-C-111-ISO10646-1 + Copyright: Public domain terminal emulator font. Share and enjoy. original font -Misc-Fixed-Medium-R-SemiCondensed--12-110-75-75-C-60-ISO10646-1 + Capital A Height: 7, '1' Height: 7 + Calculated Max Values w= 6 h=10 x= 5 y= 7 dx= 6 dy= 0 ascent=10 len=10 + Font Bounding box w=12 h=13 x= 0 y=-2 + Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 + Pure Font ascent = 7 descent=-2 + X Font ascent = 8 descent=-2 + Max Font ascent =10 descent=-2 +*/ +extern const uint8_t ISO10646_1_5x7[2648] = { + 0x00,0x0c,0x0d,0x00,0xfe,0x07,0x02,0x26,0x03,0xbc,0x01,0xff,0xfe,0x0a,0xfe,0x08, + 0xfe,0x05,0x08,0x08,0x06,0x00,0x00,0x40,0xf0,0xc8,0x88,0x88,0x98,0x78,0x10,0x05, + 0x08,0x08,0x06,0x00,0x00,0xc0,0xf8,0x88,0x88,0x88,0x88,0x88,0xf8,0x05,0x05,0x05, + 0x06,0x00,0x01,0x20,0x30,0xf8,0x30,0x20,0x05,0x08,0x08,0x06,0x00,0x00,0x20,0x70, + 0xf8,0x20,0x20,0x20,0x20,0xe0,0x05,0x09,0x09,0x06,0x00,0xff,0x20,0x70,0xa8,0xa8, + 0xb8,0x88,0x88,0x70,0x20,0x07,0x06,0x06,0x08,0x00,0x01,0xe0,0x8c,0xea,0x8c,0x8a, + 0x0a,0x05,0x09,0x09,0x06,0x00,0xff,0xf8,0xa8,0x88,0x88,0x88,0x88,0x88,0xa8,0xf8, + 0x05,0x0a,0x0a,0x06,0x00,0xfe,0x20,0x50,0x50,0x50,0x50,0x88,0xa8,0xa8,0x88,0x70, + 0x03,0x03,0x03,0x06,0x00,0x06,0x40,0xa0,0x40,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00, + 0x00,0x00,0x06,0x05,0xff,0x01,0x07,0x07,0x06,0x02,0x00,0x80,0x80,0x80,0x80,0x80, + 0x00,0x80,0x03,0x03,0x03,0x06,0x01,0x05,0xa0,0xa0,0xa0,0x05,0x06,0x06,0x06,0x00, + 0x00,0x50,0xf8,0x50,0x50,0xf8,0x50,0x05,0x09,0x09,0x06,0x00,0xff,0x20,0x70,0xa8, + 0xa0,0x70,0x28,0xa8,0x70,0x20,0x05,0x07,0x07,0x06,0x00,0x00,0xc8,0xc8,0x10,0x20, + 0x40,0x98,0x98,0x05,0x07,0x07,0x06,0x00,0x00,0x40,0xa0,0xa0,0x40,0xa8,0x90,0x68, + 0x01,0x03,0x03,0x06,0x02,0x05,0x80,0x80,0x80,0x03,0x09,0x09,0x06,0x01,0xff,0x20, + 0x40,0x40,0x80,0x80,0x80,0x40,0x40,0x20,0x03,0x09,0x09,0x06,0x01,0xff,0x80,0x40, + 0x40,0x20,0x20,0x20,0x40,0x40,0x80,0x05,0x07,0x07,0x06,0x00,0x00,0x20,0xa8,0x70, + 0x20,0x70,0xa8,0x20,0x05,0x05,0x05,0x06,0x00,0x01,0x20,0x20,0xf8,0x20,0x20,0x02, + 0x03,0x03,0x06,0x01,0xff,0xc0,0x40,0x80,0x05,0x01,0x01,0x06,0x00,0x03,0xf8,0x02, + 0x02,0x02,0x06,0x01,0x00,0xc0,0xc0,0x05,0x07,0x07,0x06,0x00,0x00,0x08,0x10,0x10, + 0x20,0x40,0x40,0x80,0x05,0x07,0x07,0x06,0x00,0x00,0x70,0x88,0x98,0xa8,0xc8,0x88, + 0x70,0x03,0x07,0x07,0x06,0x01,0x00,0x40,0xc0,0x40,0x40,0x40,0x40,0xe0,0x05,0x07, + 0x07,0x06,0x00,0x00,0x70,0x88,0x08,0x10,0x20,0x40,0xf8,0x05,0x07,0x07,0x06,0x00, + 0x00,0xf8,0x08,0x10,0x30,0x08,0x88,0x70,0x05,0x07,0x07,0x06,0x00,0x00,0x10,0x30, + 0x50,0x90,0xf8,0x10,0x10,0x05,0x07,0x07,0x06,0x00,0x00,0xf8,0x80,0xf0,0x08,0x08, + 0x88,0x70,0x05,0x07,0x07,0x06,0x00,0x00,0x30,0x40,0x80,0xf0,0x88,0x88,0x70,0x05, + 0x07,0x07,0x06,0x00,0x00,0xf8,0x08,0x10,0x10,0x20,0x20,0x20,0x05,0x07,0x07,0x06, + 0x00,0x00,0x70,0x88,0x88,0x70,0x88,0x88,0x70,0x05,0x07,0x07,0x06,0x00,0x00,0x70, + 0x88,0x88,0x78,0x08,0x10,0x60,0x02,0x05,0x05,0x06,0x01,0x00,0xc0,0xc0,0x00,0xc0, + 0xc0,0x02,0x06,0x06,0x06,0x01,0xff,0xc0,0xc0,0x00,0xc0,0x40,0x80,0x03,0x05,0x05, + 0x06,0x01,0x01,0x20,0x40,0x80,0x40,0x20,0x05,0x03,0x03,0x06,0x00,0x02,0xf8,0x00, + 0xf8,0x03,0x05,0x05,0x06,0x01,0x01,0x80,0x40,0x20,0x40,0x80,0x05,0x07,0x07,0x06, + 0x00,0x00,0x70,0x88,0x10,0x20,0x20,0x00,0x20,0x05,0x07,0x07,0x06,0x00,0x00,0x70, + 0x88,0xb8,0xa8,0xb8,0x80,0x70,0x05,0x07,0x07,0x06,0x00,0x00,0x70,0x88,0x88,0xf8, + 0x88,0x88,0x88,0x05,0x07,0x07,0x06,0x00,0x00,0xf0,0x48,0x48,0x70,0x48,0x48,0xf0, + 0x05,0x07,0x07,0x06,0x00,0x00,0x70,0x88,0x80,0x80,0x80,0x88,0x70,0x05,0x07,0x07, + 0x06,0x00,0x00,0xf0,0x48,0x48,0x48,0x48,0x48,0xf0,0x05,0x07,0x07,0x06,0x00,0x00, + 0xf8,0x80,0x80,0xf0,0x80,0x80,0xf8,0x05,0x07,0x07,0x06,0x00,0x00,0xf8,0x80,0x80, + 0xf0,0x80,0x80,0x80,0x05,0x07,0x07,0x06,0x00,0x00,0x70,0x88,0x80,0x80,0x98,0x88, + 0x70,0x05,0x07,0x07,0x06,0x00,0x00,0x88,0x88,0x88,0xf8,0x88,0x88,0x88,0x03,0x07, + 0x07,0x06,0x01,0x00,0xe0,0x40,0x40,0x40,0x40,0x40,0xe0,0x05,0x07,0x07,0x06,0x00, + 0x00,0x38,0x10,0x10,0x10,0x10,0x90,0x60,0x05,0x07,0x07,0x06,0x00,0x00,0x88,0x90, + 0xa0,0xc0,0xa0,0x90,0x88,0x05,0x07,0x07,0x06,0x00,0x00,0x80,0x80,0x80,0x80,0x80, + 0x80,0xf8,0x05,0x07,0x07,0x06,0x00,0x00,0x88,0xd8,0xa8,0x88,0x88,0x88,0x88,0x05, + 0x07,0x07,0x06,0x00,0x00,0x88,0x88,0xc8,0xa8,0x98,0x88,0x88,0x05,0x07,0x07,0x06, + 0x00,0x00,0x70,0x88,0x88,0x88,0x88,0x88,0x70,0x05,0x07,0x07,0x06,0x00,0x00,0xf0, + 0x88,0x88,0xf0,0x80,0x80,0x80,0x05,0x07,0x07,0x06,0x00,0x00,0x70,0x88,0x88,0x88, + 0xa8,0x90,0x68,0x05,0x07,0x07,0x06,0x00,0x00,0xf0,0x88,0x88,0xf0,0xa0,0x90,0x88, + 0x05,0x07,0x07,0x06,0x00,0x00,0x70,0x88,0x80,0x70,0x08,0x88,0x70,0x05,0x07,0x07, + 0x06,0x00,0x00,0xf8,0x20,0x20,0x20,0x20,0x20,0x20,0x05,0x07,0x07,0x06,0x00,0x00, + 0x88,0x88,0x88,0x88,0x88,0x88,0x70,0x05,0x07,0x07,0x06,0x00,0x00,0x88,0x88,0x88, + 0x88,0x50,0x50,0x20,0x05,0x07,0x07,0x06,0x00,0x00,0x88,0x88,0x88,0x88,0xa8,0xa8, + 0x50,0x05,0x07,0x07,0x06,0x00,0x00,0x88,0x88,0x50,0x20,0x50,0x88,0x88,0x05,0x07, + 0x07,0x06,0x00,0x00,0x88,0x88,0x50,0x20,0x20,0x20,0x20,0x05,0x07,0x07,0x06,0x00, + 0x00,0xf8,0x08,0x10,0x20,0x40,0x80,0xf8,0x03,0x09,0x09,0x06,0x01,0xff,0xe0,0x80, + 0x80,0x80,0x80,0x80,0x80,0x80,0xe0,0x05,0x07,0x07,0x06,0x00,0x00,0x80,0x40,0x40, + 0x20,0x10,0x10,0x08,0x03,0x09,0x09,0x06,0x01,0xff,0xe0,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0xe0,0x05,0x03,0x03,0x06,0x00,0x05,0x20,0x50,0x88,0x05,0x01,0x01,0x06, + 0x00,0xfe,0xf8,0x03,0x03,0x03,0x06,0x01,0x05,0x80,0x40,0x20,0x05,0x05,0x05,0x06, + 0x00,0x00,0x70,0x08,0x78,0x88,0x78,0x05,0x07,0x07,0x06,0x00,0x00,0x80,0x80,0xf0, + 0x88,0x88,0x88,0xf0,0x05,0x05,0x05,0x06,0x00,0x00,0x70,0x80,0x80,0x88,0x70,0x05, + 0x07,0x07,0x06,0x00,0x00,0x08,0x08,0x78,0x88,0x88,0x88,0x78,0x05,0x05,0x05,0x06, + 0x00,0x00,0x70,0x88,0xf0,0x80,0x70,0x05,0x07,0x07,0x06,0x00,0x00,0x30,0x48,0x40, + 0xe0,0x40,0x40,0x40,0x05,0x07,0x07,0x06,0x00,0xfe,0x70,0x88,0x88,0x88,0x78,0x08, + 0x70,0x05,0x07,0x07,0x06,0x00,0x00,0x80,0x80,0xf0,0x88,0x88,0x88,0x88,0x03,0x07, + 0x07,0x06,0x01,0x00,0x40,0x00,0xc0,0x40,0x40,0x40,0xe0,0x04,0x09,0x09,0x06,0x01, + 0xfe,0x10,0x00,0x30,0x10,0x10,0x10,0x10,0x90,0x60,0x05,0x07,0x07,0x06,0x00,0x00, + 0x80,0x80,0x88,0x90,0xe0,0x90,0x88,0x03,0x07,0x07,0x06,0x01,0x00,0xc0,0x40,0x40, + 0x40,0x40,0x40,0xe0,0x05,0x05,0x05,0x06,0x00,0x00,0xd0,0xa8,0xa8,0xa8,0xa8,0x05, + 0x05,0x05,0x06,0x00,0x00,0xb0,0xc8,0x88,0x88,0x88,0x05,0x05,0x05,0x06,0x00,0x00, + 0x70,0x88,0x88,0x88,0x70,0x05,0x07,0x07,0x06,0x00,0xfe,0xf0,0x88,0x88,0x88,0xf0, + 0x80,0x80,0x05,0x07,0x07,0x06,0x00,0xfe,0x78,0x88,0x88,0x88,0x78,0x08,0x08,0x05, + 0x05,0x05,0x06,0x00,0x00,0xb0,0xc8,0x80,0x80,0x80,0x05,0x05,0x05,0x06,0x00,0x00, + 0x78,0x80,0x70,0x08,0xf0,0x05,0x07,0x07,0x06,0x00,0x00,0x20,0x20,0xf8,0x20,0x20, + 0x20,0x18,0x05,0x05,0x05,0x06,0x00,0x00,0x88,0x88,0x88,0x98,0x68,0x05,0x05,0x05, + 0x06,0x00,0x00,0x88,0x88,0x88,0x50,0x20,0x05,0x05,0x05,0x06,0x00,0x00,0x88,0x88, + 0xa8,0xa8,0x50,0x05,0x05,0x05,0x06,0x00,0x00,0x88,0x50,0x20,0x50,0x88,0x05,0x07, + 0x07,0x06,0x00,0xfe,0x88,0x88,0x88,0x50,0x20,0x40,0x80,0x05,0x05,0x05,0x06,0x00, + 0x00,0xf8,0x10,0x20,0x40,0xf8,0x03,0x09,0x09,0x06,0x01,0xff,0x20,0x40,0x40,0x40, + 0x80,0x40,0x40,0x40,0x20,0x01,0x09,0x09,0x06,0x02,0xff,0x80,0x80,0x80,0x80,0x80, + 0x80,0x80,0x80,0x80,0x03,0x09,0x09,0x06,0x01,0xff,0x80,0x40,0x40,0x40,0x20,0x40, + 0x40,0x40,0x80,0x05,0x03,0x03,0x06,0x00,0x02,0x48,0xa8,0x90,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00, + 0x06,0x05,0xff,0x01,0x07,0x07,0x06,0x02,0x00,0x80,0x00,0x80,0x80,0x80,0x80,0x80, + 0x05,0x07,0x07,0x06,0x00,0xff,0x20,0x70,0xa8,0xa0,0xa8,0x70,0x20,0x05,0x07,0x07, + 0x06,0x00,0x00,0x30,0x48,0x40,0xe0,0x40,0x48,0xb0,0x05,0x05,0x05,0x06,0x00,0x00, + 0xa8,0x50,0x88,0x50,0xa8,0x05,0x07,0x07,0x06,0x00,0x00,0x88,0x50,0xf8,0x20,0xf8, + 0x20,0x20,0x01,0x07,0x07,0x06,0x02,0x00,0x80,0x80,0x80,0x00,0x80,0x80,0x80,0x04, + 0x08,0x08,0x06,0x01,0x00,0x70,0x80,0x60,0x90,0x90,0x60,0x10,0xe0,0x03,0x01,0x01, + 0x06,0x01,0x07,0xa0,0x06,0x07,0x07,0x06,0x00,0x00,0x78,0x84,0xb4,0xa4,0xb4,0x84, + 0x78,0x03,0x05,0x05,0x06,0x01,0x04,0x60,0xa0,0x60,0x00,0xe0,0x05,0x05,0x05,0x06, + 0x00,0x00,0x28,0x50,0xa0,0x50,0x28,0x05,0x03,0x03,0x06,0x00,0x01,0xf8,0x08,0x08, + 0x03,0x01,0x01,0x06,0x01,0x03,0xe0,0x06,0x07,0x07,0x06,0x00,0x00,0x78,0x84,0xb4, + 0xa4,0xa4,0x84,0x78,0x05,0x01,0x01,0x06,0x00,0x07,0xf8,0x04,0x04,0x04,0x06,0x01, + 0x05,0x60,0x90,0x90,0x60,0x05,0x07,0x07,0x06,0x00,0x00,0x20,0x20,0xf8,0x20,0x20, + 0x00,0xf8,0x03,0x05,0x05,0x06,0x01,0x04,0x40,0xa0,0x20,0x40,0xe0,0x03,0x05,0x05, + 0x06,0x01,0x04,0xc0,0x20,0x40,0x20,0xc0,0x03,0x03,0x03,0x06,0x01,0x05,0x20,0x40, + 0x80,0x05,0x07,0x07,0x06,0x00,0xfe,0x88,0x88,0x88,0x98,0xe8,0x80,0x80,0x05,0x08, + 0x08,0x06,0x00,0x00,0x78,0xe8,0xe8,0xe8,0x68,0x28,0x28,0x28,0x02,0x02,0x02,0x06, + 0x02,0x03,0xc0,0xc0,0x03,0x02,0x02,0x06,0x01,0xfe,0x20,0xc0,0x03,0x05,0x05,0x06, + 0x01,0x04,0x40,0xc0,0x40,0x40,0xe0,0x03,0x05,0x05,0x06,0x01,0x05,0x40,0xa0,0x40, + 0x00,0xe0,0x05,0x05,0x05,0x06,0x00,0x00,0xa0,0x50,0x28,0x50,0xa0,0x05,0x0a,0x0a, + 0x06,0x00,0x00,0x40,0xc0,0x48,0x50,0x60,0x50,0xb0,0x50,0x78,0x10,0x05,0x0a,0x0a, + 0x06,0x00,0x00,0x40,0xc0,0x48,0x50,0x60,0x50,0xa8,0x08,0x10,0x38,0x05,0x0a,0x0a, + 0x06,0x00,0x00,0xc0,0x20,0x48,0x30,0xe0,0x50,0xb0,0x50,0x78,0x10,0x05,0x07,0x07, + 0x06,0x00,0x00,0x20,0x00,0x20,0x20,0x40,0x88,0x70,0x05,0x0a,0x0a,0x06,0x00,0x00, + 0x40,0x20,0x00,0x70,0x88,0x88,0xf8,0x88,0x88,0x88,0x05,0x0a,0x0a,0x06,0x00,0x00, + 0x10,0x20,0x00,0x70,0x88,0x88,0xf8,0x88,0x88,0x88,0x05,0x0a,0x0a,0x06,0x00,0x00, + 0x20,0x50,0x00,0x70,0x88,0x88,0xf8,0x88,0x88,0x88,0x05,0x0a,0x0a,0x06,0x00,0x00, + 0x68,0xb0,0x00,0x70,0x88,0x88,0xf8,0x88,0x88,0x88,0x05,0x09,0x09,0x06,0x00,0x00, + 0x50,0x00,0x70,0x88,0x88,0xf8,0x88,0x88,0x88,0x05,0x0a,0x0a,0x06,0x00,0x00,0x20, + 0x50,0x20,0x70,0x88,0x88,0xf8,0x88,0x88,0x88,0x05,0x07,0x07,0x06,0x00,0x00,0x78, + 0xa0,0xa0,0xf0,0xa0,0xa0,0xb8,0x05,0x09,0x09,0x06,0x00,0xfe,0x70,0x88,0x80,0x80, + 0x80,0x88,0x70,0x10,0x60,0x05,0x0a,0x0a,0x06,0x00,0x00,0x40,0x20,0x00,0xf8,0x80, + 0x80,0xf0,0x80,0x80,0xf8,0x05,0x0a,0x0a,0x06,0x00,0x00,0x10,0x20,0x00,0xf8,0x80, + 0x80,0xf0,0x80,0x80,0xf8,0x05,0x0a,0x0a,0x06,0x00,0x00,0x20,0x50,0x00,0xf8,0x80, + 0x80,0xf0,0x80,0x80,0xf8,0x05,0x09,0x09,0x06,0x00,0x00,0x50,0x00,0xf8,0x80,0x80, + 0xf0,0x80,0x80,0xf8,0x03,0x0a,0x0a,0x06,0x01,0x00,0x80,0x40,0x00,0xe0,0x40,0x40, + 0x40,0x40,0x40,0xe0,0x03,0x0a,0x0a,0x06,0x01,0x00,0x20,0x40,0x00,0xe0,0x40,0x40, + 0x40,0x40,0x40,0xe0,0x03,0x0a,0x0a,0x06,0x01,0x00,0x40,0xa0,0x00,0xe0,0x40,0x40, + 0x40,0x40,0x40,0xe0,0x03,0x09,0x09,0x06,0x01,0x00,0xa0,0x00,0xe0,0x40,0x40,0x40, + 0x40,0x40,0xe0,0x05,0x07,0x07,0x06,0x00,0x00,0x70,0x48,0x48,0xe8,0x48,0x48,0x70, + 0x05,0x0a,0x0a,0x06,0x00,0x00,0x68,0xb0,0x00,0x88,0x88,0xc8,0xa8,0x98,0x88,0x88, + 0x05,0x0a,0x0a,0x06,0x00,0x00,0x40,0x20,0x00,0x70,0x88,0x88,0x88,0x88,0x88,0x70, + 0x05,0x0a,0x0a,0x06,0x00,0x00,0x10,0x20,0x00,0x70,0x88,0x88,0x88,0x88,0x88,0x70, + 0x05,0x0a,0x0a,0x06,0x00,0x00,0x20,0x50,0x00,0x70,0x88,0x88,0x88,0x88,0x88,0x70, + 0x05,0x0a,0x0a,0x06,0x00,0x00,0x68,0xb0,0x00,0x70,0x88,0x88,0x88,0x88,0x88,0x70, + 0x05,0x09,0x09,0x06,0x00,0x00,0x50,0x00,0x70,0x88,0x88,0x88,0x88,0x88,0x70,0x05, + 0x05,0x05,0x06,0x00,0x01,0x88,0x50,0x20,0x50,0x88,0x05,0x09,0x09,0x06,0x00,0xff, + 0x08,0x70,0x98,0xa8,0xa8,0xa8,0xc8,0x70,0x80,0x05,0x0a,0x0a,0x06,0x00,0x00,0x40, + 0x20,0x00,0x88,0x88,0x88,0x88,0x88,0x88,0x70,0x05,0x0a,0x0a,0x06,0x00,0x00,0x10, + 0x20,0x00,0x88,0x88,0x88,0x88,0x88,0x88,0x70,0x05,0x0a,0x0a,0x06,0x00,0x00,0x20, + 0x50,0x00,0x88,0x88,0x88,0x88,0x88,0x88,0x70,0x05,0x09,0x09,0x06,0x00,0x00,0x50, + 0x00,0x88,0x88,0x88,0x88,0x88,0x88,0x70,0x05,0x0a,0x0a,0x06,0x00,0x00,0x10,0x20, + 0x00,0x88,0x88,0x50,0x20,0x20,0x20,0x20,0x04,0x07,0x07,0x06,0x01,0x00,0x80,0xe0, + 0x90,0x90,0x90,0xe0,0x80,0x05,0x07,0x07,0x06,0x00,0x00,0x70,0x88,0x90,0xa0,0x90, + 0x88,0xb0,0x05,0x08,0x08,0x06,0x00,0x00,0x40,0x20,0x00,0x70,0x08,0x78,0x88,0x78, + 0x05,0x08,0x08,0x06,0x00,0x00,0x10,0x20,0x00,0x70,0x08,0x78,0x88,0x78,0x05,0x08, + 0x08,0x06,0x00,0x00,0x20,0x50,0x00,0x70,0x08,0x78,0x88,0x78,0x05,0x08,0x08,0x06, + 0x00,0x00,0x68,0xb0,0x00,0x70,0x08,0x78,0x88,0x78,0x05,0x07,0x07,0x06,0x00,0x00, + 0x50,0x00,0x70,0x08,0x78,0x88,0x78,0x05,0x08,0x08,0x06,0x00,0x00,0x20,0x50,0x20, + 0x70,0x08,0x78,0x88,0x78,0x05,0x05,0x05,0x06,0x00,0x00,0x70,0x28,0x70,0xa0,0x78, + 0x05,0x07,0x07,0x06,0x00,0xfe,0x70,0x88,0x80,0x88,0x70,0x10,0x60,0x05,0x08,0x08, + 0x06,0x00,0x00,0x40,0x20,0x00,0x70,0x88,0xf0,0x80,0x70,0x05,0x08,0x08,0x06,0x00, + 0x00,0x10,0x20,0x00,0x70,0x88,0xf0,0x80,0x70,0x05,0x08,0x08,0x06,0x00,0x00,0x20, + 0x50,0x00,0x70,0x88,0xf0,0x80,0x70,0x05,0x07,0x07,0x06,0x00,0x00,0x50,0x00,0x70, + 0x88,0xf0,0x80,0x70,0x03,0x08,0x08,0x06,0x01,0x00,0x80,0x40,0x00,0xc0,0x40,0x40, + 0x40,0xe0,0x03,0x08,0x08,0x06,0x01,0x00,0x20,0x40,0x00,0xc0,0x40,0x40,0x40,0xe0, + 0x03,0x08,0x08,0x06,0x01,0x00,0x40,0xa0,0x00,0xc0,0x40,0x40,0x40,0xe0,0x03,0x07, + 0x07,0x06,0x01,0x00,0xa0,0x00,0xc0,0x40,0x40,0x40,0xe0,0x05,0x09,0x09,0x06,0x00, + 0x00,0x50,0x20,0x50,0x08,0x78,0x88,0x88,0x88,0x70,0x05,0x08,0x08,0x06,0x00,0x00, + 0x68,0xb0,0x00,0xb0,0xc8,0x88,0x88,0x88,0x05,0x08,0x08,0x06,0x00,0x00,0x40,0x20, + 0x00,0x70,0x88,0x88,0x88,0x70,0x05,0x08,0x08,0x06,0x00,0x00,0x10,0x20,0x00,0x70, + 0x88,0x88,0x88,0x70,0x05,0x08,0x08,0x06,0x00,0x00,0x20,0x50,0x00,0x70,0x88,0x88, + 0x88,0x70,0x05,0x08,0x08,0x06,0x00,0x00,0x68,0xb0,0x00,0x70,0x88,0x88,0x88,0x70, + 0x05,0x07,0x07,0x06,0x00,0x00,0x50,0x00,0x70,0x88,0x88,0x88,0x70,0x05,0x05,0x05, + 0x06,0x00,0x01,0x20,0x00,0xf8,0x00,0x20,0x05,0x05,0x05,0x06,0x00,0x00,0x78,0x98, + 0xa8,0xc8,0xf0,0x05,0x08,0x08,0x06,0x00,0x00,0x40,0x20,0x00,0x88,0x88,0x88,0x88, + 0x70,0x05,0x08,0x08,0x06,0x00,0x00,0x10,0x20,0x00,0x88,0x88,0x88,0x88,0x70,0x05, + 0x08,0x08,0x06,0x00,0x00,0x20,0x50,0x00,0x88,0x88,0x88,0x88,0x70,0x05,0x07,0x07, + 0x06,0x00,0x00,0x50,0x00,0x88,0x88,0x88,0x88,0x70,0x05,0x0a,0x0a,0x06,0x00,0xfe, + 0x10,0x20,0x00,0x88,0x88,0x88,0x50,0x20,0x40,0x80,0x05,0x09,0x09,0x06,0x00,0xfe, + 0x80,0x80,0xf0,0x88,0x88,0x88,0xf0,0x80,0x80,0x05,0x09,0x09,0x06,0x00,0xfe,0x50, + 0x00,0x88,0x88,0x88,0x50,0x20,0x40,0x80 +}; + +#endif // !STM32_NOT_EXTENDED_ISO10646_1_5X7 + +#endif // HAS_GRAPHICAL_TFT diff --git a/Marlin/src/lcd/tft/fontdata/helvetica_12_bold.cpp b/Marlin/src/lcd/tft/fontdata/helvetica_12_bold.cpp new file mode 100644 index 000000000..12efb3ba4 --- /dev/null +++ b/Marlin/src/lcd/tft/fontdata/helvetica_12_bold.cpp @@ -0,0 +1,302 @@ +/** + * Marlin 3D Printer Firmware + * Copyright (c) 2019 MarlinFirmware [https://github.com/MarlinFirmware/Marlin] + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + */ + +/* + Fontname: Helvetica + Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. + Capital A Height: 12, '1' Height: 12 + Calculated Max Values w=14 h=17 x= 2 y=10 dx=16 dy= 0 ascent=14 len=32 + Font Bounding box w=16 h=17 x= 0 y=-4 + Calculated Min Values x= 0 y=-4 dx= 0 dy= 0 + Pure Font ascent =12 descent=-4 + X Font ascent =12 descent=-4 + Max Font ascent =14 descent=-4 +*/ + +#include "../../../inc/MarlinConfigPre.h" + +#if HAS_GRAPHICAL_TFT + +#include + +extern const uint8_t Helvetica12Bold[4172] = { + 0,16,17,0,252,12,2,74,5,106,32,255,252,14,252,12, + 252,0,0,0,5,0,0,2,12,12,6,2,0,192,192,192, + 192,192,192,192,192,192,0,192,192,5,4,4,8,1,8,216, + 216,216,72,9,12,24,9,0,0,27,0,27,0,27,0,127, + 128,127,128,54,0,54,0,255,0,255,0,108,0,108,0,108, + 0,7,14,14,9,1,255,16,124,254,214,208,240,120,60,30, + 22,214,254,124,16,13,12,24,14,0,0,48,64,120,128,204, + 128,205,0,121,0,50,0,2,96,4,240,5,152,9,152,8, + 240,16,96,10,12,24,12,1,0,60,0,126,0,102,0,102, + 0,60,0,56,192,125,192,207,128,199,0,199,0,127,128,57, + 192,2,4,4,4,1,8,192,192,192,64,4,15,15,6,1, + 253,48,112,96,192,192,192,192,192,192,192,192,192,96,112,48, + 4,15,15,6,0,253,192,224,96,48,48,48,48,48,48,48, + 48,48,96,224,192,5,5,5,6,0,7,32,168,112,112,136, + 8,8,8,10,1,0,24,24,24,255,255,24,24,24,2,5, + 5,4,1,253,192,192,64,64,128,4,2,2,5,0,3,240, + 240,2,2,2,4,1,0,192,192,4,12,12,5,0,0,16, + 16,48,32,32,96,64,64,192,128,128,128,8,12,12,9,0, + 0,60,126,231,195,195,195,195,195,195,231,126,60,5,12,12, + 9,1,0,8,24,248,248,24,24,24,24,24,24,24,24,8, + 12,12,9,0,0,60,126,231,195,195,7,14,28,56,112,255, + 255,8,12,12,9,0,0,60,126,231,195,7,30,30,7,195, + 231,126,60,8,12,12,9,0,0,14,30,54,54,102,102,198, + 255,255,6,6,6,8,12,12,9,0,0,63,63,48,48,124, + 126,71,3,3,231,126,60,8,12,12,9,0,0,60,126,231, + 192,220,254,231,195,195,231,126,60,8,12,12,9,0,0,255, + 255,6,6,12,12,24,24,24,48,48,48,8,12,12,9,0, + 0,60,126,231,195,102,60,126,231,195,231,126,60,8,12,12, + 9,0,0,60,126,231,195,195,231,127,59,3,231,126,60,2, + 8,8,5,2,0,192,192,0,0,0,0,192,192,2,11,11, + 5,2,253,192,192,0,0,0,0,192,192,64,64,128,8,8, + 8,10,1,0,3,15,60,224,224,60,15,3,8,6,6,10, + 1,1,255,255,0,0,255,255,8,8,8,10,1,0,192,240, + 60,7,7,60,240,192,7,12,12,10,1,0,124,254,198,198, + 6,14,12,24,24,0,24,24,13,14,28,16,1,254,15,192, + 56,96,96,16,71,216,204,72,136,200,152,200,152,136,153,152, + 201,144,70,96,96,0,56,192,15,128,11,12,24,12,0,0, + 14,0,14,0,31,0,27,0,59,128,49,128,113,192,96,192, + 127,192,255,224,192,96,192,96,9,12,24,11,1,0,254,0, + 255,0,195,128,193,128,195,128,255,0,255,0,195,128,193,128, + 195,128,255,0,254,0,10,12,24,12,1,0,31,0,63,128, + 113,192,96,192,224,0,192,0,192,0,224,0,96,192,113,192, + 63,128,31,0,10,12,24,12,1,0,252,0,255,0,195,128, + 193,128,193,192,192,192,192,192,193,192,193,128,195,128,255,0, + 252,0,8,12,12,10,1,0,255,255,192,192,192,254,254,192, + 192,192,255,255,8,12,12,10,1,0,255,255,192,192,192,254, + 254,192,192,192,192,192,10,12,24,12,1,0,31,0,63,128, + 113,192,96,192,224,0,192,0,195,192,227,192,96,192,113,192, + 63,192,30,192,10,12,24,12,1,0,192,192,192,192,192,192, + 192,192,255,192,255,192,192,192,192,192,192,192,192,192,192,192, + 192,192,2,12,12,4,1,0,192,192,192,192,192,192,192,192, + 192,192,192,192,7,12,12,9,1,0,6,6,6,6,6,6, + 6,6,198,198,254,124,10,12,24,12,1,0,193,192,195,128, + 199,0,206,0,220,0,248,0,252,0,206,0,199,0,195,128, + 193,192,192,192,8,12,12,10,1,0,192,192,192,192,192,192, + 192,192,192,192,255,255,11,12,24,13,1,0,224,224,224,224, + 224,224,241,224,241,224,209,96,219,96,219,96,202,96,206,96, + 206,96,196,96,10,12,24,12,1,0,224,192,240,192,240,192, + 216,192,216,192,204,192,204,192,198,192,198,192,195,192,195,192, + 193,192,11,12,24,13,1,0,31,0,63,128,113,192,96,192, + 224,224,192,96,192,96,224,224,96,192,113,192,63,128,31,0, + 9,12,24,11,1,0,254,0,255,0,195,128,193,128,193,128, + 195,128,255,0,254,0,192,0,192,0,192,0,192,0,11,13, + 26,13,1,255,31,0,63,128,113,192,96,192,224,224,192,96, + 192,96,226,96,103,192,115,192,63,128,31,192,0,128,10,12, + 24,12,1,0,255,0,255,128,193,128,193,128,195,128,255,0, + 255,0,195,128,193,128,193,128,193,192,193,192,9,12,24,11, + 1,0,62,0,127,0,227,128,193,128,240,0,126,0,31,0, + 3,128,193,128,227,128,127,0,62,0,10,12,24,10,0,0, + 255,192,255,192,12,0,12,0,12,0,12,0,12,0,12,0, + 12,0,12,0,12,0,12,0,10,12,24,12,1,0,192,192, + 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, + 225,192,127,128,63,0,10,12,24,11,0,0,192,192,192,192, + 97,128,97,128,97,128,51,0,51,0,51,0,30,0,30,0, + 12,0,12,0,14,12,24,15,0,0,195,12,195,12,195,12, + 99,24,103,152,103,152,52,176,60,240,60,240,24,96,24,96, + 24,96,9,12,24,11,1,0,193,128,227,128,99,0,54,0, + 62,0,28,0,28,0,62,0,54,0,99,0,227,128,193,128, + 10,12,24,11,0,0,192,192,225,192,97,128,51,0,51,0, + 30,0,30,0,12,0,12,0,12,0,12,0,12,0,8,12, + 12,10,1,0,255,255,7,6,12,28,56,48,96,224,255,255, + 4,15,15,6,1,253,240,240,192,192,192,192,192,192,192,192, + 192,192,192,240,240,4,12,12,5,0,0,128,128,192,64,64, + 96,32,32,48,16,16,16,4,15,15,6,0,253,240,240,48, + 48,48,48,48,48,48,48,48,48,48,240,240,8,7,7,10, + 1,5,24,24,60,102,102,195,195,9,1,2,9,0,253,255, + 128,3,3,3,6,2,10,128,192,32,8,9,9,9,1,0, + 124,254,198,14,126,230,198,254,119,8,12,12,10,1,0,192, + 192,192,220,254,231,195,195,195,231,254,220,8,9,9,9,1, + 0,60,126,231,192,192,192,231,126,60,8,12,12,10,1,0, + 3,3,3,63,127,231,195,195,195,231,127,59,8,9,9,10, + 1,0,60,126,195,255,255,192,231,126,60,4,12,12,6,1, + 0,48,112,96,240,240,96,96,96,96,96,96,96,8,13,13, + 10,1,252,59,127,231,195,195,195,231,127,59,3,231,126,60, + 8,12,12,10,1,0,192,192,192,222,255,227,195,195,195,195, + 195,195,2,12,12,4,1,0,192,192,0,192,192,192,192,192, + 192,192,192,192,3,16,16,5,1,252,96,96,0,96,96,96, + 96,96,96,96,96,96,96,96,224,192,8,12,12,9,1,0, + 192,192,192,199,206,220,248,252,236,206,198,199,2,12,12,4, + 1,0,192,192,192,192,192,192,192,192,192,192,192,192,12,9, + 18,14,1,0,222,224,255,240,231,48,198,48,198,48,198,48, + 198,48,198,48,198,48,8,9,9,10,1,0,222,255,227,195, + 195,195,195,195,195,8,9,9,10,1,0,60,126,231,195,195, + 195,231,126,60,8,13,13,10,1,252,220,254,231,195,195,195, + 231,254,220,192,192,192,192,8,13,13,10,1,252,59,127,231, + 195,195,195,231,127,59,3,3,3,3,5,9,9,6,1,0, + 216,248,224,192,192,192,192,192,192,7,9,9,9,1,0,124, + 254,198,240,124,14,198,254,124,4,11,11,6,1,0,96,96, + 240,240,96,96,96,96,96,112,48,8,9,9,10,1,0,195, + 195,195,195,195,195,199,255,123,8,9,9,9,0,0,195,195, + 102,102,102,60,60,24,24,12,9,18,13,0,0,198,48,198, + 48,102,96,102,96,111,96,63,192,57,192,25,128,25,128,7, + 9,9,9,1,0,198,198,108,124,56,124,108,198,198,8,13, + 13,9,0,252,195,195,99,102,54,54,60,28,24,24,24,112, + 96,7,9,9,8,0,0,254,254,14,28,24,56,112,254,254, + 4,15,15,6,1,253,48,112,96,96,96,96,96,192,96,96, + 96,96,96,112,48,1,16,16,4,1,252,128,128,128,128,128, + 128,128,128,128,128,128,128,128,128,128,128,4,15,15,6,1, + 253,192,224,96,96,96,96,96,48,96,96,96,96,96,224,192, + 8,3,3,10,1,3,113,153,142,0,0,0,1,0,0,0, + 0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0, + 0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0, + 1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0, + 0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0, + 0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0, + 1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0, + 0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0, + 0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0, + 1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0, + 0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0, + 0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0, + 1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0, + 0,0,5,0,0,2,12,12,6,1,253,192,192,0,64,64, + 64,192,192,192,192,192,192,8,11,11,9,0,255,4,60,126, + 239,200,216,208,247,126,60,32,8,12,12,9,0,0,28,62, + 99,99,96,48,124,48,48,32,127,255,7,7,7,9,1,2, + 186,124,198,198,198,124,186,8,12,12,9,0,0,195,195,102, + 102,60,24,126,24,126,24,24,24,1,16,16,5,2,252,128, + 128,128,128,128,128,128,0,0,128,128,128,128,128,128,128,8, + 15,15,9,0,253,60,126,102,96,120,126,199,195,243,126,30, + 6,102,126,60,5,2,2,6,0,10,216,216,12,12,24,12, + 0,0,15,0,57,192,96,96,79,32,217,176,144,16,144,16, + 217,176,79,32,96,32,57,192,15,0,5,7,7,6,1,5, + 96,144,112,144,120,0,248,8,6,6,9,0,2,51,102,204, + 204,102,51,8,5,5,10,0,2,255,255,3,3,3,4,2, + 2,5,0,3,240,240,12,12,24,12,0,0,15,0,57,192, + 96,96,95,32,217,176,153,144,158,16,219,48,91,32,96,96, + 57,192,15,0,5,1,1,6,0,10,248,4,5,5,7,1, + 7,96,144,144,144,96,8,11,11,10,1,0,24,24,24,255, + 255,24,24,24,0,255,255,5,7,7,6,0,5,112,216,216, + 48,96,248,248,5,7,7,6,0,5,112,216,24,48,24,216, + 112,3,3,3,6,1,10,32,96,128,8,12,12,10,1,253, + 195,195,195,195,195,195,199,255,251,192,192,192,8,15,15,9, + 0,253,127,242,242,242,242,242,114,18,18,18,18,18,18,18, + 18,2,2,2,5,1,4,192,192,5,4,4,6,0,252,32, + 48,152,112,4,7,7,6,1,5,48,240,240,48,48,48,48, + 5,7,7,6,0,5,112,216,136,216,112,0,248,8,6,6, + 9,1,2,204,102,51,51,102,204,13,12,24,14,1,0,48, + 192,240,128,241,128,49,0,51,48,50,112,54,240,4,176,13, + 176,9,248,24,48,16,48,12,12,24,14,0,0,48,128,241, + 128,241,0,51,0,50,0,54,224,53,176,13,176,8,96,24, + 192,17,240,49,240,13,12,24,14,0,0,112,64,216,192,24, + 128,49,128,25,48,219,112,114,240,6,176,5,176,13,248,8, + 48,24,48,7,12,12,10,1,253,48,48,0,48,48,96,224, + 192,198,198,254,124,11,14,28,12,0,0,4,0,0,0,14, + 0,14,0,31,0,27,0,59,128,49,128,113,192,96,192,127, + 192,255,224,192,96,192,96,11,14,28,12,0,0,8,0,0, + 0,14,0,14,0,31,0,27,0,59,128,49,128,113,192,96, + 192,127,192,255,224,192,96,192,96,11,14,28,12,0,0,17, + 0,0,0,14,0,14,0,31,0,27,0,59,128,49,128,113, + 192,96,192,127,192,255,224,192,96,192,96,11,14,28,12,0, + 0,23,0,0,0,14,0,14,0,31,0,27,0,59,128,49, + 128,113,192,96,192,127,192,255,224,192,96,192,96,11,14,28, + 12,0,0,49,128,0,0,14,0,14,0,31,0,27,0,59, + 128,49,128,113,192,96,192,127,192,255,224,192,96,192,96,11, + 14,28,12,0,0,18,0,12,0,14,0,14,0,31,0,27, + 0,59,128,49,128,113,192,96,192,127,192,255,224,192,96,192, + 96,14,12,24,15,0,0,31,252,31,252,27,0,51,0,51, + 0,51,248,99,248,127,0,127,0,195,0,195,252,195,252,10, + 16,32,12,1,252,31,0,63,128,113,192,96,192,224,0,192, + 0,192,0,224,0,96,192,113,192,63,128,31,0,4,0,6, + 0,19,0,14,0,8,14,14,10,1,0,8,0,255,255,192, + 192,192,254,254,192,192,192,255,255,8,14,14,10,1,0,16, + 0,255,255,192,192,192,254,254,192,192,192,255,255,8,14,14, + 10,1,0,34,0,255,255,192,192,192,254,254,192,192,192,255, + 255,8,14,14,10,1,0,102,0,255,255,192,192,192,254,254, + 192,192,192,255,255,2,14,14,4,1,0,64,0,192,192,192, + 192,192,192,192,192,192,192,192,192,2,14,14,4,1,0,128, + 0,192,192,192,192,192,192,192,192,192,192,192,192,5,14,14, + 5,0,0,136,0,96,96,96,96,96,96,96,96,96,96,96, + 96,5,14,14,5,0,0,152,0,96,96,96,96,96,96,96, + 96,96,96,96,96,12,12,24,12,0,0,63,0,63,192,48, + 224,48,96,48,112,252,48,252,48,48,112,48,96,48,224,63, + 192,63,0,10,14,28,12,1,0,46,0,0,0,224,192,240, + 192,240,192,216,192,216,192,204,192,204,192,198,192,198,192,195, + 192,195,192,193,192,11,14,28,13,1,0,2,0,0,0,31, + 0,63,128,113,192,96,192,224,224,192,96,192,96,224,224,96, + 192,113,192,63,128,31,0,11,14,28,13,1,0,4,0,0, + 0,31,0,63,128,113,192,96,192,224,224,192,96,192,96,224, + 224,96,192,113,192,63,128,31,0,11,14,28,13,1,0,17, + 0,0,0,31,0,63,128,113,192,96,192,224,224,192,96,192, + 96,224,224,96,192,113,192,63,128,31,0,11,14,28,13,1, + 0,23,0,0,0,31,0,63,128,113,192,96,192,224,224,192, + 96,192,96,224,224,96,192,113,192,63,128,31,0,11,14,28, + 13,1,0,25,128,0,0,31,0,63,128,113,192,96,192,224, + 224,192,96,192,96,224,224,96,192,113,192,63,128,31,0,9, + 9,18,10,0,0,65,0,227,128,119,0,62,0,28,0,62, + 0,119,0,227,128,65,0,11,12,24,13,1,0,31,32,63, + 192,112,192,97,192,227,96,198,96,204,96,216,224,112,192,97, + 192,127,128,159,0,10,14,28,12,1,0,4,0,0,0,192, + 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, + 192,225,192,127,128,63,0,10,14,28,12,1,0,8,0,0, + 0,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, + 192,192,192,225,192,127,128,63,0,10,14,28,12,1,0,17, + 0,0,0,192,192,192,192,192,192,192,192,192,192,192,192,192, + 192,192,192,192,192,225,192,127,128,63,0,10,14,28,12,1, + 0,51,0,0,0,192,192,192,192,192,192,192,192,192,192,192, + 192,192,192,192,192,192,192,225,192,127,128,63,0,10,14,28, + 11,0,0,8,0,0,0,192,192,225,192,97,128,51,0,51, + 0,30,0,30,0,12,0,12,0,12,0,12,0,12,0,9, + 12,24,11,1,0,192,0,254,0,255,0,195,128,193,128,193, + 128,195,128,255,0,254,0,192,0,192,0,192,0,8,12,12, + 10,1,0,124,254,198,198,220,222,195,195,195,195,222,220,8, + 13,13,9,1,0,32,48,8,0,124,254,198,14,126,230,198, + 254,119,8,13,13,9,1,0,4,12,16,0,124,254,198,14, + 126,230,198,254,119,8,13,13,9,1,0,16,56,68,0,124, + 254,198,14,126,230,198,254,119,8,12,12,9,1,0,58,92, + 0,124,254,198,14,126,230,198,254,119,8,12,12,9,1,0, + 108,108,0,124,254,198,14,126,230,198,254,119,8,13,13,9, + 1,0,24,36,36,24,124,254,198,14,126,230,198,254,119,13, + 9,18,15,1,0,125,224,255,240,198,24,15,248,127,248,230, + 0,207,56,255,240,121,224,8,13,13,9,1,252,60,126,231, + 192,192,192,231,126,60,16,24,76,56,8,13,13,10,1,0, + 32,48,8,0,60,126,195,255,255,192,231,126,60,8,13,13, + 10,1,0,4,12,16,0,60,126,195,255,255,192,231,126,60, + 8,13,13,10,1,0,8,28,34,0,60,126,195,255,255,192, + 231,126,60,8,12,12,10,1,0,54,54,0,60,126,195,255, + 255,192,231,126,60,3,13,13,4,0,0,128,192,32,0,96, + 96,96,96,96,96,96,96,96,3,13,13,4,1,0,32,96, + 128,0,192,192,192,192,192,192,192,192,192,5,13,13,5,0, + 0,32,112,136,0,96,96,96,96,96,96,96,96,96,5,12, + 12,5,0,0,216,216,0,96,96,96,96,96,96,96,96,96, + 8,12,12,10,1,0,96,124,248,28,126,231,195,195,195,231, + 126,60,8,12,12,10,1,0,58,92,0,222,255,227,195,195, + 195,195,195,195,8,13,13,10,1,0,32,48,8,0,60,126, + 231,195,195,195,231,126,60,8,13,13,10,1,0,8,24,32, + 0,60,126,231,195,195,195,231,126,60,8,13,13,10,1,0, + 16,56,68,0,60,126,231,195,195,195,231,126,60,8,12,12, + 10,1,0,58,92,0,60,126,231,195,195,195,231,126,60,8, + 12,12,10,1,0,108,108,0,60,126,231,195,195,195,231,126, + 60,8,8,8,10,1,0,24,24,0,255,255,0,24,24,8, + 9,9,10,1,0,61,127,231,207,219,243,231,254,188,8,13, + 13,10,1,0,32,48,8,0,195,195,195,195,195,195,199,255, + 123,8,13,13,10,1,0,8,24,32,0,195,195,195,195,195, + 195,199,255,123,8,13,13,10,1,0,16,56,68,0,195,195, + 195,195,195,195,199,255,123,8,12,12,10,1,0,108,108,0, + 195,195,195,195,195,195,199,255,123,8,17,17,9,0,252,4, + 12,16,0,195,195,99,102,54,54,60,28,24,24,24,112,96, + 8,16,16,10,1,252,192,192,192,220,254,231,195,195,195,231, + 254,220,192,192,192,192,8,16,16,9,0,252,54,54,0,195, + 195,99,102,54,54,60,28,24,24,24,112,96 +}; + +#endif // HAS_GRAPHICAL_TFT diff --git a/Marlin/src/lcd/tft/fontdata/helvetica_14.cpp b/Marlin/src/lcd/tft/fontdata/helvetica_14.cpp new file mode 100644 index 000000000..a27ea4369 --- /dev/null +++ b/Marlin/src/lcd/tft/fontdata/helvetica_14.cpp @@ -0,0 +1,378 @@ +/** + * Marlin 3D Printer Firmware + * Copyright (c) 2019 MarlinFirmware [https://github.com/MarlinFirmware/Marlin] + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + */ + +/* + Fontname: Helvetica + Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. + Capital A Height: 14, '1' Height: 13 + Calculated Max Values w=16 h=18 x= 2 y=12 dx=18 dy= 0 ascent=16 len=36 + Font Bounding box w=18 h=19 x= 0 y=-4 + Calculated Min Values x= 0 y=-4 dx= 0 dy= 0 + Pure Font ascent =14 descent=-4 + X Font ascent =14 descent=-4 + Max Font ascent =16 descent=-4 +*/ + +#include "../../../inc/MarlinConfigPre.h" + +#if HAS_GRAPHICAL_TFT + +#include + +/* +typedef struct __attribute__((__packed__)) { + uint8_t BBXWidth; + uint8_t BBXHeight; + uint8_t DataSize; + int8_t DWidth; + int8_t BBXOffsetX; + int8_t BBXOffsetY; +} tGlyph; +*/ + +extern const uint8_t Helvetica14_symbols[63] = { + 0,18,19,0,252,14,0,0,0,0,1,9,252,16,252,14,252, // tFont + 0,0,0,0,0,0, // 0x01 - LCD_STR_REFRESH + 0,0,0,0,0,0, // 0x02 - LCD_STR_FOLDER + 255, // 0x03 - LCD_STR_ARROW_RIGHT + 255, // 0x04 - LCD_STR_UPLEVEL + 255, // 0x05 - LCD_STR_CLOCK + 255, // 0x06 - LCD_STR_FEEDRATE + 255, // 0x07 - LCD_STR_BEDTEMP + 5,12,12,6,0,1,32,80,80,80,80,80,80,80,136,136,136,112, // 0x08 - LCD_STR_THERMOMETER + 5,5,5,5,0,11,112,216,136,216,112, // 0x09 - LCD_STR_DEGREE +}; + +extern const uint8_t Helvetica14[5005] = { + 0,18,19,0,252,14,2,150,6,83,32,255,252,16,252,14,252, // tFont + 0,0,0,5,0,0,2,14,14,6,2,0,192,192,192, + 192,192,192,192,192,192,192,0,0,192,192,5,5,5,5,0, + 9,216,216,216,216,216,10,13,26,10,0,0,9,0,9,0, + 9,0,127,192,127,192,18,0,18,0,18,0,255,128,255,128, + 36,0,36,0,36,0,9,16,32,10,1,254,8,0,62,0, + 127,0,203,0,200,0,232,0,120,0,62,0,15,0,9,128, + 201,128,235,128,127,0,62,0,8,0,8,0,14,13,26,16, + 1,0,120,96,204,192,204,192,205,128,205,128,123,0,3,0, + 6,120,6,204,12,204,12,204,24,204,24,120,12,13,26,13, + 1,0,60,0,126,0,102,0,102,0,60,0,124,0,238,192, + 198,192,195,192,195,128,231,192,126,224,60,112,2,5,5,4, + 1,9,192,192,192,192,192,4,18,18,6,0,252,16,48,96, + 96,192,192,192,192,192,192,192,192,192,192,96,96,48,16,4, + 18,18,6,1,252,128,192,96,96,48,48,48,48,48,48,48, + 48,48,48,96,96,192,128,5,7,7,7,1,7,32,168,248, + 32,248,168,32,8,10,10,10,1,0,24,24,24,24,255,255, + 24,24,24,24,2,5,5,5,1,253,192,192,64,64,128,5, + 2,2,6,0,4,248,248,2,2,2,5,1,0,192,192,5, + 14,14,5,0,0,24,24,24,24,48,48,48,96,96,96,192, + 192,192,192,8,13,13,10,1,0,60,126,102,195,195,195,195, + 195,195,195,102,126,60,5,13,13,10,2,0,24,248,248,24, + 24,24,24,24,24,24,24,24,24,8,13,13,10,1,0,60, + 254,195,3,7,14,28,56,112,224,192,255,255,8,13,13,10, + 1,0,62,127,195,195,6,28,30,7,3,195,199,126,60,9, + 13,26,10,0,0,3,0,7,0,15,0,27,0,51,0,51, + 0,99,0,195,0,255,128,255,128,3,0,3,0,3,0,8, + 13,13,10,1,0,254,254,192,192,252,254,199,3,3,195,199, + 254,124,8,13,13,10,1,0,60,127,99,192,192,220,254,195, + 195,195,227,126,60,8,13,13,10,1,0,255,255,3,6,12, + 12,24,24,48,48,96,96,96,8,13,13,10,1,0,60,126, + 231,195,195,102,126,231,195,195,231,126,60,8,13,13,10,1, + 0,60,126,199,195,195,195,127,59,3,3,198,254,124,2,10, + 10,5,1,0,192,192,0,0,0,0,0,0,192,192,2,13, + 13,5,1,253,192,192,0,0,0,0,0,0,192,192,64,64, + 128,8,9,9,10,1,0,3,15,60,112,192,112,60,15,3, + 7,5,5,11,2,2,254,254,0,254,254,8,9,9,10,1, + 0,192,240,60,14,3,14,60,240,192,7,14,14,10,1,0, + 124,254,198,198,14,28,56,48,48,48,0,0,48,48,16,17, + 34,18,1,253,3,240,15,252,28,14,48,6,99,211,103,115, + 198,51,204,99,204,102,204,102,204,204,207,248,103,112,112,0, + 56,0,31,240,7,224,12,14,28,13,0,0,6,0,6,0, + 15,0,15,0,25,128,25,128,48,192,48,192,63,192,127,224, + 96,96,96,96,192,48,192,48,11,14,28,13,1,0,255,0, + 255,128,193,192,192,192,192,192,193,128,255,128,255,192,192,224, + 192,96,192,96,192,224,255,192,255,128,12,14,28,14,1,0, + 15,128,63,224,112,112,96,48,224,0,192,0,192,0,192,0, + 192,0,224,0,96,48,112,112,63,224,15,128,12,14,28,14, + 1,0,255,128,255,192,192,224,192,96,192,48,192,48,192,48, + 192,48,192,48,192,48,192,96,192,224,255,192,255,128,10,14, + 28,13,2,0,255,192,255,192,192,0,192,0,192,0,192,0, + 255,128,255,128,192,0,192,0,192,0,192,0,255,192,255,192, + 9,14,28,12,2,0,255,128,255,128,192,0,192,0,192,0, + 192,0,255,0,255,0,192,0,192,0,192,0,192,0,192,0, + 192,0,13,14,28,15,1,0,15,192,63,240,112,56,96,24, + 224,24,192,0,192,0,192,248,192,248,224,24,96,24,112,56, + 63,248,15,216,11,14,28,14,1,0,192,96,192,96,192,96, + 192,96,192,96,192,96,255,224,255,224,192,96,192,96,192,96, + 192,96,192,96,192,96,2,14,14,6,2,0,192,192,192,192, + 192,192,192,192,192,192,192,192,192,192,8,14,14,10,0,0, + 3,3,3,3,3,3,3,3,3,195,195,231,126,60,11,14, + 28,14,2,0,192,224,193,192,195,128,199,0,206,0,220,0, + 248,0,252,0,206,0,199,0,195,128,193,192,192,224,192,96, + 9,14,28,11,1,0,192,0,192,0,192,0,192,0,192,0, + 192,0,192,0,192,0,192,0,192,0,192,0,192,0,255,128, + 255,128,14,14,28,16,1,0,192,12,192,12,224,28,224,28, + 240,60,240,60,216,108,216,108,204,204,204,204,196,140,199,140, + 195,12,195,12,11,14,28,14,1,0,192,96,224,96,240,96, + 240,96,216,96,204,96,204,96,198,96,198,96,195,96,193,224, + 193,224,192,224,192,96,13,14,28,15,1,0,15,128,63,224, + 112,112,96,48,224,56,192,24,192,24,192,24,192,24,224,56, + 96,48,112,112,63,224,15,128,10,14,28,13,2,0,255,0, + 255,128,193,192,192,192,192,192,193,192,255,128,255,0,192,0, + 192,0,192,0,192,0,192,0,192,0,13,15,30,15,1,255, + 15,128,63,224,112,112,96,48,224,56,192,24,192,24,192,24, + 192,24,225,184,97,176,112,240,63,224,15,176,0,48,11,14, + 28,14,1,0,255,128,255,192,192,224,192,96,192,96,192,224, + 255,192,255,128,192,192,192,192,192,96,192,96,192,96,192,96, + 10,14,28,13,1,0,30,0,127,128,225,192,192,192,224,0, + 124,0,31,0,3,128,1,192,0,192,192,192,225,192,127,128, + 63,0,10,14,28,12,1,0,255,192,255,192,12,0,12,0, + 12,0,12,0,12,0,12,0,12,0,12,0,12,0,12,0, + 12,0,12,0,11,14,28,14,1,0,192,96,192,96,192,96, + 192,96,192,96,192,96,192,96,192,96,192,96,192,96,192,96, + 96,192,127,192,31,0,12,14,28,13,0,0,192,48,192,48, + 96,96,96,96,96,96,48,192,48,192,48,192,25,128,25,128, + 25,128,15,0,15,0,6,0,16,14,28,18,1,0,193,131, + 193,131,193,131,195,195,99,198,98,70,102,102,102,102,54,108, + 54,108,52,44,28,56,24,24,24,24,11,14,28,13,1,0, + 192,96,192,96,96,192,113,192,49,128,27,0,14,0,14,0, + 27,0,49,128,113,192,96,192,192,96,192,96,12,14,28,13, + 0,0,192,48,192,48,96,96,96,96,48,192,57,192,25,128, + 15,0,6,0,6,0,6,0,6,0,6,0,6,0,10,14, + 28,12,1,0,255,192,255,192,0,192,1,128,3,0,6,0, + 12,0,28,0,24,0,48,0,96,0,192,0,255,192,255,192, + 4,18,18,5,0,252,240,240,192,192,192,192,192,192,192,192, + 192,192,192,192,192,192,240,240,5,14,14,5,0,0,192,192, + 192,96,96,96,48,48,48,48,24,24,24,24,4,18,18,5, + 0,252,240,240,48,48,48,48,48,48,48,48,48,48,48,48, + 48,48,240,240,7,6,6,9,1,7,16,56,108,108,198,198, + 11,2,4,11,0,252,255,224,255,224,4,3,3,4,0,11, + 192,96,48,9,10,20,11,1,0,126,0,231,0,195,0,7, + 0,127,0,227,0,195,0,195,0,231,128,121,128,9,14,28, + 11,1,0,192,0,192,0,192,0,192,0,222,0,255,0,227, + 0,193,128,193,128,193,128,193,128,227,0,255,0,222,0,8, + 10,10,10,1,0,62,127,99,192,192,192,192,99,127,62,9, + 14,28,11,1,0,1,128,1,128,1,128,1,128,61,128,127, + 128,99,128,193,128,193,128,193,128,193,128,99,128,127,128,61, + 128,8,10,10,10,1,0,60,126,195,195,255,192,192,227,127, + 60,6,14,14,6,0,0,28,60,48,48,252,252,48,48,48, + 48,48,48,48,48,9,14,28,11,1,252,61,128,127,128,97, + 128,193,128,193,128,193,128,193,128,99,128,127,128,61,128,1, + 128,99,0,127,0,28,0,8,14,14,10,1,0,192,192,192, + 192,222,255,227,195,195,195,195,195,195,195,2,14,14,4,1, + 0,192,192,0,0,192,192,192,192,192,192,192,192,192,192,3, + 18,18,4,0,252,96,96,0,0,96,96,96,96,96,96,96, + 96,96,96,96,96,224,192,8,14,14,9,1,0,192,192,192, + 192,198,204,216,240,248,216,204,206,198,199,2,14,14,4,1, + 0,192,192,192,192,192,192,192,192,192,192,192,192,192,192,14, + 10,20,16,1,0,222,120,255,252,227,140,195,12,195,12,195, + 12,195,12,195,12,195,12,195,12,8,10,10,10,1,0,222, + 255,227,195,195,195,195,195,195,195,9,10,20,11,1,0,62, + 0,127,0,99,0,193,128,193,128,193,128,193,128,99,0,127, + 0,62,0,9,14,28,11,1,252,222,0,255,0,227,0,193, + 128,193,128,193,128,193,128,227,0,255,0,222,0,192,0,192, + 0,192,0,192,0,9,14,28,11,1,252,61,128,127,128,99, + 128,193,128,193,128,193,128,193,128,99,128,127,128,61,128,1, + 128,1,128,1,128,1,128,5,10,10,6,1,0,216,216,224, + 192,192,192,192,192,192,192,7,10,10,9,1,0,60,126,198, + 192,252,62,6,198,252,120,6,13,13,6,0,0,48,48,48, + 252,252,48,48,48,48,48,48,60,28,8,10,10,10,1,0, + 195,195,195,195,195,195,195,199,255,123,8,10,10,10,1,0, + 195,195,195,102,102,102,36,60,24,24,12,10,20,14,1,0, + 198,48,198,48,198,48,102,96,102,96,105,96,41,64,57,192, + 25,128,25,128,8,10,10,10,1,0,195,231,102,60,24,24, + 60,102,231,195,8,14,14,10,1,252,195,195,195,102,102,102, + 36,60,24,24,24,24,112,112,7,10,10,9,1,0,254,254, + 6,12,24,48,96,192,254,254,5,18,18,6,0,252,24,48, + 96,96,96,96,96,192,128,192,96,96,96,96,96,96,48,24, + 2,18,18,5,1,252,192,192,192,192,192,192,192,192,192,192, + 192,192,192,192,192,192,192,192,6,18,18,6,0,252,192,96, + 48,48,48,48,48,24,12,24,48,48,48,48,48,48,96,192, + 8,3,3,10,1,4,115,255,206,0,0,0,1,0,0,0, + 0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0, + 0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0, + 1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0, + 0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0, + 0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0, + 1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0, + 0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0, + 0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0, + 1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0, + 0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0, + 0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0, + 1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0, + 0,0,5,0,0,2,14,14,6,2,252,192,192,0,0,64, + 64,192,192,192,192,192,192,192,192,8,14,14,10,1,254,4, + 4,62,127,107,200,200,200,200,107,127,62,16,16,9,13,26, + 10,0,0,30,0,63,0,97,128,97,128,96,0,48,0,126, + 0,24,0,24,0,48,0,96,128,255,128,223,0,8,7,7, + 10,1,3,195,255,102,102,102,255,195,8,13,13,10,1,0, + 195,195,102,102,102,60,255,24,255,24,24,24,24,2,18,18, + 5,1,252,192,192,192,192,192,192,192,0,0,0,0,192,192, + 192,192,192,192,192,8,18,18,10,1,252,60,126,195,195,240, + 124,110,199,195,227,115,62,14,7,195,195,126,60,5,2,2, + 6,0,12,216,216,13,14,28,15,1,0,15,128,48,96,64, + 16,71,16,136,136,144,136,144,8,144,8,144,8,136,136,71, + 16,64,16,48,96,15,128,5,8,8,7,1,6,112,152,56, + 72,216,104,0,248,7,6,6,9,1,2,54,108,216,216,108, + 54,9,5,10,11,1,3,255,128,255,128,1,128,1,128,1, + 128,5,1,1,6,0,5,248,13,14,28,14,0,0,15,128, + 48,96,64,16,79,144,136,72,136,72,136,72,143,136,137,8, + 136,136,72,80,64,16,48,96,15,128,5,1,1,5,0,12, + 248,5,5,5,7,1,8,112,216,136,216,112,8,11,11,10, + 1,0,24,24,24,255,255,24,24,24,0,255,255,5,8,8, + 6,0,5,112,248,152,24,48,96,248,248,5,8,8,6,0, + 5,112,248,152,48,48,152,248,112,4,3,3,4,0,11,48, + 96,192,8,14,14,10,1,252,195,195,195,195,195,195,195,231, + 255,219,192,192,192,192,8,18,18,10,1,252,63,114,242,242, + 242,242,242,114,50,18,18,18,18,18,18,18,18,18,2,2, + 2,4,1,4,192,192,5,5,5,5,0,252,96,112,24,216, + 240,4,8,8,6,0,5,48,240,240,48,48,48,48,48,5, + 8,8,7,1,6,112,216,136,136,216,112,0,248,7,6,6, + 9,1,2,216,108,54,54,108,216,14,13,26,15,0,0,48, + 48,240,48,240,96,48,192,48,192,49,136,49,24,51,56,6, + 120,6,216,12,252,24,24,24,24,14,13,26,15,0,0,48, + 48,240,48,240,96,48,192,48,192,49,184,49,124,51,76,6, + 12,6,24,12,48,24,124,24,124,14,13,26,15,0,0,112, + 48,248,48,152,96,48,192,48,192,153,136,249,24,115,56,6, + 120,6,216,12,252,24,24,24,24,7,14,14,10,1,252,24, + 24,0,0,24,24,24,56,112,224,198,198,254,124,12,16,32, + 13,0,0,6,0,0,0,6,0,6,0,15,0,15,0,25, + 128,25,128,48,192,48,192,63,192,127,224,96,96,96,96,192, + 48,192,48,12,16,32,13,0,0,6,0,0,0,6,0,6, + 0,15,0,15,0,25,128,25,128,48,192,48,192,63,192,127, + 224,96,96,96,96,192,48,192,48,12,16,32,13,0,0,25, + 128,0,0,6,0,6,0,15,0,15,0,25,128,25,128,48, + 192,48,192,63,192,127,224,96,96,96,96,192,48,192,48,12, + 16,32,13,0,0,19,0,0,0,6,0,6,0,15,0,15, + 0,25,128,25,128,48,192,48,192,63,192,127,224,96,96,96, + 96,192,48,192,48,12,16,32,13,0,0,25,128,0,0,6, + 0,6,0,15,0,15,0,25,128,25,128,48,192,48,192,63, + 192,127,224,96,96,96,96,192,48,192,48,12,16,32,13,0, + 0,9,0,9,0,6,0,6,0,15,0,15,0,25,128,25, + 128,48,192,48,192,63,192,127,224,96,96,96,96,192,48,192, + 48,16,14,28,18,1,0,7,255,7,255,13,128,13,128,25, + 128,25,128,49,254,49,254,63,128,127,128,97,128,97,128,193, + 255,193,255,12,18,36,14,1,252,15,128,63,224,112,112,96, + 48,224,0,192,0,192,0,192,0,192,0,224,0,96,48,112, + 112,63,224,15,128,6,0,3,0,27,0,30,0,10,16,32, + 13,2,0,12,0,0,0,255,192,255,192,192,0,192,0,192, + 0,192,0,255,128,255,128,192,0,192,0,192,0,192,0,255, + 192,255,192,10,16,32,13,2,0,12,0,0,0,255,192,255, + 192,192,0,192,0,192,0,192,0,255,128,255,128,192,0,192, + 0,192,0,192,0,255,192,255,192,10,16,32,13,2,0,51, + 0,0,0,255,192,255,192,192,0,192,0,192,0,192,0,255, + 128,255,128,192,0,192,0,192,0,192,0,255,192,255,192,10, + 16,32,13,2,0,51,0,0,0,255,192,255,192,192,0,192, + 0,192,0,192,0,255,128,255,128,192,0,192,0,192,0,192, + 0,255,192,255,192,2,16,16,6,2,0,192,0,192,192,192, + 192,192,192,192,192,192,192,192,192,192,192,2,16,16,6,2, + 0,192,0,192,192,192,192,192,192,192,192,192,192,192,192,192, + 192,6,16,16,6,0,0,132,0,48,48,48,48,48,48,48, + 48,48,48,48,48,48,48,6,16,16,6,0,0,204,0,48, + 48,48,48,48,48,48,48,48,48,48,48,48,48,13,14,28, + 14,0,0,127,192,127,224,96,112,96,48,96,24,96,24,252, + 24,252,24,96,24,96,24,96,48,96,112,127,224,127,192,11, + 16,32,14,1,0,19,0,0,0,192,96,224,96,240,96,240, + 96,216,96,204,96,204,96,198,96,198,96,195,96,193,224,193, + 224,192,224,192,96,13,16,32,15,1,0,6,0,0,0,15, + 128,63,224,112,112,96,48,224,56,192,24,192,24,192,24,192, + 24,224,56,96,48,112,112,63,224,15,128,13,16,32,15,1, + 0,6,0,0,0,15,128,63,224,112,112,96,48,224,56,192, + 24,192,24,192,24,192,24,224,56,96,48,112,112,63,224,15, + 128,13,16,32,15,1,0,12,192,0,0,15,128,63,224,112, + 112,96,48,224,56,192,24,192,24,192,24,192,24,224,56,96, + 48,112,112,63,224,15,128,13,16,32,15,1,0,9,128,0, + 0,15,128,63,224,112,112,96,48,224,56,192,24,192,24,192, + 24,192,24,224,56,96,48,112,112,63,224,15,128,13,16,32, + 15,1,0,12,192,0,0,15,128,63,224,112,112,96,48,224, + 56,192,24,192,24,192,24,192,24,224,56,96,48,112,112,63, + 224,15,128,10,9,18,10,0,0,192,192,97,128,51,0,30, + 0,12,0,30,0,51,0,97,128,192,192,14,14,28,15,0, + 0,7,204,31,248,56,48,48,120,112,220,97,140,99,12,98, + 12,102,12,108,28,56,24,56,56,111,240,199,192,11,16,32, + 14,1,0,6,0,0,0,192,96,192,96,192,96,192,96,192, + 96,192,96,192,96,192,96,192,96,192,96,192,96,96,192,127, + 192,31,0,11,16,32,14,1,0,12,0,0,0,192,96,192, + 96,192,96,192,96,192,96,192,96,192,96,192,96,192,96,192, + 96,192,96,96,192,127,192,31,0,11,16,32,14,1,0,25, + 128,0,0,192,96,192,96,192,96,192,96,192,96,192,96,192, + 96,192,96,192,96,192,96,192,96,96,192,127,192,31,0,11, + 16,32,14,1,0,49,128,0,0,192,96,192,96,192,96,192, + 96,192,96,192,96,192,96,192,96,192,96,192,96,192,96,96, + 192,127,192,31,0,12,16,32,13,0,0,6,0,0,0,192, + 48,192,48,96,96,96,96,48,192,57,192,25,128,15,0,6, + 0,6,0,6,0,6,0,6,0,6,0,10,14,28,12,1, + 0,192,0,192,0,192,0,255,0,255,128,193,192,192,192,192, + 192,193,192,255,128,255,0,192,0,192,0,192,0,7,14,14, + 9,1,0,56,124,198,198,198,198,220,220,198,198,198,198,222, + 220,9,14,28,11,1,0,48,0,24,0,12,0,0,0,126, + 0,231,0,195,0,7,0,127,0,227,0,195,0,195,0,231, + 128,121,128,9,14,28,11,1,0,12,0,24,0,48,0,0, + 0,126,0,231,0,195,0,7,0,127,0,227,0,195,0,195, + 0,231,128,121,128,9,14,28,11,1,0,24,0,60,0,102, + 0,0,0,126,0,231,0,195,0,7,0,127,0,227,0,195, + 0,195,0,231,128,121,128,9,14,28,11,1,0,50,0,90, + 0,76,0,0,0,126,0,231,0,195,0,7,0,127,0,227, + 0,195,0,195,0,231,128,121,128,9,14,28,11,1,0,102, + 0,102,0,0,0,0,0,126,0,231,0,195,0,7,0,127, + 0,227,0,195,0,195,0,231,128,121,128,9,14,28,11,1, + 0,24,0,36,0,36,0,24,0,126,0,231,0,195,0,7, + 0,127,0,227,0,195,0,195,0,231,128,121,128,14,10,20, + 17,2,0,126,240,231,248,195,12,7,12,127,252,227,0,195, + 0,195,140,231,252,122,240,8,14,14,10,1,252,62,127,99, + 192,192,192,192,99,127,62,24,12,108,120,8,14,14,10,1, + 0,48,24,12,0,60,126,195,195,255,192,192,227,127,60,8, + 14,14,10,1,0,12,24,48,0,60,126,195,195,255,192,192, + 227,127,60,8,14,14,10,1,0,24,60,102,0,60,126,195, + 195,255,192,192,227,127,60,8,14,14,10,1,0,102,102,0, + 0,60,126,195,195,255,192,192,227,127,60,4,14,14,4,0, + 0,192,96,48,0,96,96,96,96,96,96,96,96,96,96,4, + 14,14,4,0,0,48,96,192,0,96,96,96,96,96,96,96, + 96,96,96,5,14,14,5,0,0,96,240,152,0,96,96,96, + 96,96,96,96,96,96,96,5,14,14,5,0,0,216,216,0, + 0,96,96,96,96,96,96,96,96,96,96,9,14,28,11,1, + 0,96,0,54,0,56,0,76,0,62,0,127,0,99,0,193, + 128,193,128,193,128,193,128,99,0,127,0,62,0,8,14,14, + 10,1,0,50,90,76,0,222,255,227,195,195,195,195,195,195, + 195,9,14,28,11,1,0,48,0,24,0,12,0,0,0,62, + 0,127,0,99,0,193,128,193,128,193,128,193,128,99,0,127, + 0,62,0,9,14,28,11,1,0,6,0,12,0,24,0,0, + 0,62,0,127,0,99,0,193,128,193,128,193,128,193,128,99, + 0,127,0,62,0,9,14,28,11,1,0,24,0,60,0,102, + 0,0,0,62,0,127,0,99,0,193,128,193,128,193,128,193, + 128,99,0,127,0,62,0,9,14,28,11,1,0,50,0,90, + 0,76,0,0,0,62,0,127,0,99,0,193,128,193,128,193, + 128,193,128,99,0,127,0,62,0,9,14,28,11,1,0,51, + 0,51,0,0,0,0,0,62,0,127,0,99,0,193,128,193, + 128,193,128,193,128,99,0,127,0,62,0,8,8,8,10,1, + 1,24,24,0,255,255,0,24,24,11,10,20,11,0,0,14, + 96,63,192,49,128,99,192,102,192,108,192,120,192,49,128,127, + 128,206,0,8,14,14,10,1,0,48,24,12,0,195,195,195, + 195,195,195,195,199,255,123,8,14,14,10,1,0,6,12,24, + 0,195,195,195,195,195,195,195,199,255,123,8,14,14,10,1, + 0,24,60,102,0,195,195,195,195,195,195,195,199,255,123,8, + 14,14,10,1,0,102,102,0,0,195,195,195,195,195,195,195, + 199,255,123,8,18,18,10,1,252,6,12,24,0,195,195,195, + 102,102,102,36,60,24,24,24,24,112,112,9,18,36,11,1, + 252,192,0,192,0,192,0,192,0,222,0,255,0,227,0,193, + 128,193,128,193,128,193,128,227,0,255,0,222,0,192,0,192, + 0,192,0,192,0,8,18,18,10,1,252,102,102,0,0,195, + 195,195,102,102,102,36,60,24,24,24,24,112,112 +}; + +#endif // HAS_GRAPHICAL_TFT diff --git a/Marlin/src/lcd/tft/fontdata/helvetica_18.cpp b/Marlin/src/lcd/tft/fontdata/helvetica_18.cpp new file mode 100644 index 000000000..bb5f6ccf4 --- /dev/null +++ b/Marlin/src/lcd/tft/fontdata/helvetica_18.cpp @@ -0,0 +1,492 @@ +/* + Fontname: -Adobe-Helvetica-Medium-R-Normal--25-180-100-100-P-130-ISO10646-1 + Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. + Capital A Height: 19, '1' Height: 18 + Calculated Max Values w=22 h=24 x= 3 y=16 dx=25 dy= 0 ascent=24 len=69 + Font Bounding box w=28 h=37 x=-3 y=-8 + Calculated Min Values x=-1 y=-5 dx= 0 dy= 0 + Pure Font ascent =19 descent=-5 + X Font ascent =19 descent=-5 + Max Font ascent =24 descent=-5 +*/ + +#include "../../../inc/MarlinConfigPre.h" + +#if HAS_GRAPHICAL_TFT + +#include + +extern const uint8_t Helvetica18_symbols[71] = { + 0,28,37,253,248,19,4,37,9,49,1,9,251,24,251,19,251, // tFont + 0,0,0,0,0,0, // 0x01 - LCD_STR_REFRESH + 0,0,0,0,0,0, // 0x02 - LCD_STR_FOLDER + 255, // 0x03 - LCD_STR_ARROW_RIGHT + 255, // 0x04 - LCD_STR_UPLEVEL + 255, // 0x05 - LCD_STR_CLOCK + 255, // 0x06 - LCD_STR_FEEDRATE + 255, // 0x07 - LCD_STR_BEDTEMP + 7,18,18,8,0,1, 0,56, 68,68,68,68,68,84,84,84,84,84, 214,186,186,186,198,124, // 0x08 - LCD_STR_THERMOMETER + 7,7,7,7,0,15,56,124,198,198,198,124,56, // 0x09 - LCD_STR_DEGREE +}; + +extern const uint8_t Helvetica18[7307] = { + 0,28,37,253,248,19,4,37,9,49,32,255,251,24,251,19,251, // tFont + 0,0,0,6,0,1,2,19,19,6,2,0,192,192,192, + 192,192,192,192,192,192,192,192,192,128,128,0,0,192,192,192, + 6,6,6,8,1,13,204,204,204,204,204,68,11,17,34,14, + 2,0,12,192,12,192,12,192,25,128,255,224,255,224,25,128, + 25,128,51,0,51,0,255,224,255,224,51,0,51,0,102,0, + 102,0,102,0,11,22,44,13,1,254,6,0,6,0,31,128, + 63,192,118,224,102,96,102,96,102,0,118,0,62,0,62,0, + 15,128,7,192,6,224,6,96,198,96,198,96,230,224,127,192, + 63,128,6,0,6,0,19,18,54,22,1,0,0,6,0,60, + 12,0,126,12,0,195,24,0,195,24,0,195,48,0,195,48, + 0,126,96,0,60,96,0,0,192,0,0,199,128,1,143,192, + 1,152,96,3,24,96,3,24,96,6,24,96,6,15,192,4, + 7,128,14,18,36,17,2,0,15,0,31,128,57,192,48,192, + 48,192,48,192,25,128,15,0,30,0,63,24,115,152,97,216, + 192,240,192,96,192,240,225,216,127,156,30,0,2,6,6,6, + 2,13,192,192,192,192,192,64,5,24,24,8,2,251,24,24, + 48,48,96,96,96,192,192,192,192,192,192,192,192,192,192,96, + 96,96,48,48,24,24,5,24,24,8,1,251,192,192,96,96, + 48,48,48,24,24,24,24,24,24,24,24,24,24,48,48,48, + 96,96,192,192,7,7,7,10,1,12,16,16,214,124,56,108, + 68,12,12,24,14,1,1,6,0,6,0,6,0,6,0,6, + 0,255,240,255,240,6,0,6,0,6,0,6,0,6,0,2, + 6,6,6,2,253,192,192,192,64,64,128,6,2,2,8,1, + 6,252,252,2,3,3,6,2,0,192,192,192,7,19,19,7, + 0,0,6,4,12,12,8,24,24,16,16,48,48,32,96,96, + 64,192,192,128,128,11,18,36,13,1,0,31,0,63,128,113, + 192,96,192,96,192,224,224,192,96,192,96,192,96,192,96,192, + 96,192,96,224,224,96,192,96,192,113,192,63,128,31,0,6, + 18,18,13,2,0,12,12,28,252,252,12,12,12,12,12,12, + 12,12,12,12,12,12,12,11,18,36,13,1,0,30,0,127, + 128,97,192,192,192,192,96,192,96,0,224,0,192,1,192,3, + 128,15,0,28,0,56,0,112,0,224,0,192,0,255,224,255, + 224,11,18,36,13,1,0,31,0,127,128,97,128,192,192,192, + 192,192,192,0,192,1,128,15,0,15,192,0,192,0,96,0, + 96,192,96,192,192,97,192,127,128,31,0,11,18,36,13,1, + 0,1,128,3,128,3,128,7,128,15,128,13,128,25,128,57, + 128,49,128,97,128,225,128,193,128,255,224,255,224,1,128,1, + 128,1,128,1,128,11,18,36,13,1,0,127,192,127,192,96, + 0,96,0,96,0,96,0,126,0,127,128,113,192,0,192,0, + 224,0,96,0,96,192,224,192,192,225,192,127,128,30,0,11, + 18,36,13,1,0,15,0,63,192,112,192,96,96,224,96,192, + 0,192,0,207,0,223,128,241,192,224,192,192,96,192,96,192, + 96,224,224,113,192,127,192,31,0,11,18,36,13,1,0,255, + 224,255,224,0,224,0,192,1,128,1,128,3,0,3,0,6, + 0,6,0,12,0,12,0,28,0,24,0,24,0,56,0,48, + 0,48,0,11,18,36,13,1,0,14,0,63,128,49,128,96, + 192,96,192,96,192,49,128,31,0,63,128,113,192,96,192,192, + 96,192,96,192,96,192,96,96,192,127,192,31,0,11,18,36, + 13,1,0,31,0,127,192,113,192,224,192,192,96,192,96,192, + 96,192,96,224,224,113,224,127,96,30,96,0,96,0,224,192, + 192,225,192,127,128,30,0,2,14,14,6,2,0,192,192,192, + 0,0,0,0,0,0,0,0,192,192,192,2,17,17,6,2, + 253,192,192,192,0,0,0,0,0,0,0,0,192,192,192,64, + 64,128,12,12,24,15,1,1,0,48,0,240,3,192,15,0, + 60,0,224,0,224,0,60,0,15,0,3,192,0,240,0,48, + 10,5,10,15,2,5,255,192,255,192,0,0,255,192,255,192, + 12,12,24,15,1,1,192,0,240,0,60,0,15,0,3,192, + 0,112,0,112,3,192,15,0,60,0,240,0,192,0,10,19, + 38,12,1,0,31,0,127,128,113,192,224,192,192,192,193,192, + 1,128,3,128,7,0,6,0,12,0,12,0,12,0,12,0, + 0,0,0,0,12,0,12,0,12,0,22,23,69,25,2,252, + 0,255,0,3,255,192,15,1,224,28,0,112,56,0,24,48, + 0,24,96,115,12,96,251,12,193,199,12,195,134,12,195,6, + 12,198,6,12,198,12,28,198,12,24,198,12,56,231,28,112, + 99,247,224,113,227,128,56,0,0,28,0,0,15,3,0,7, + 255,0,0,252,0,15,19,38,17,1,0,3,128,3,128,6, + 192,6,192,12,64,12,96,12,96,24,48,24,48,24,48,48, + 24,63,248,63,248,96,12,96,12,96,12,192,6,192,6,192, + 6,14,19,38,17,2,0,255,192,255,240,192,112,192,24,192, + 24,192,24,192,24,192,48,255,224,255,240,192,24,192,12,192, + 12,192,12,192,12,192,28,192,120,255,240,255,192,15,19,38, + 18,1,0,7,224,31,248,60,60,112,14,96,6,224,6,192, + 0,192,0,192,0,192,0,192,0,192,0,192,0,224,6,96, + 6,112,14,60,60,31,248,7,224,15,19,38,18,2,0,255, + 192,255,240,192,120,192,28,192,12,192,14,192,6,192,6,192, + 6,192,6,192,6,192,6,192,6,192,14,192,12,192,28,192, + 120,255,240,255,192,12,19,38,16,2,0,255,240,255,240,192, + 0,192,0,192,0,192,0,192,0,192,0,255,224,255,224,192, + 0,192,0,192,0,192,0,192,0,192,0,192,0,255,240,255, + 240,11,19,38,14,2,0,255,224,255,224,192,0,192,0,192, + 0,192,0,192,0,192,0,255,192,255,192,192,0,192,0,192, + 0,192,0,192,0,192,0,192,0,192,0,192,0,16,19,38, + 19,1,0,7,224,31,248,60,60,112,14,96,6,224,6,192, + 0,192,0,192,0,192,127,192,127,192,3,192,3,224,3,96, + 7,112,15,60,63,31,251,7,227,14,19,38,18,2,0,192, + 12,192,12,192,12,192,12,192,12,192,12,192,12,192,12,255, + 252,255,252,192,12,192,12,192,12,192,12,192,12,192,12,192, + 12,192,12,192,12,2,19,19,8,3,0,192,192,192,192,192, + 192,192,192,192,192,192,192,192,192,192,192,192,192,192,10,19, + 38,13,1,0,0,192,0,192,0,192,0,192,0,192,0,192, + 0,192,0,192,0,192,0,192,0,192,0,192,192,192,192,192, + 192,192,192,192,97,128,127,128,63,0,13,19,38,18,3,0, + 192,56,192,112,192,224,193,192,195,128,199,0,206,0,220,0, + 252,0,254,0,231,0,195,128,193,128,193,192,192,224,192,96, + 192,112,192,56,192,24,11,19,38,14,2,0,192,0,192,0, + 192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0, + 192,0,192,0,192,0,192,0,192,0,192,0,192,0,255,224, + 255,224,17,19,57,21,2,0,192,1,128,224,3,128,224,3, + 128,240,7,128,240,7,128,216,13,128,216,13,128,216,13,128, + 204,25,128,204,25,128,204,25,128,198,49,128,198,49,128,198, + 49,128,195,97,128,195,97,128,195,97,128,193,193,128,193,193, + 128,14,19,38,18,2,0,224,12,240,12,240,12,216,12,220, + 12,204,12,206,12,198,12,199,12,195,12,195,140,193,140,193, + 204,192,204,192,236,192,108,192,60,192,60,192,28,16,19,38, + 18,1,0,7,224,31,248,60,60,112,14,96,6,224,7,192, + 3,192,3,192,3,192,3,192,3,192,3,192,3,224,7,96, + 6,112,14,60,60,31,248,7,224,13,19,38,16,2,0,255, + 224,255,240,192,48,192,24,192,24,192,24,192,24,192,48,255, + 240,255,224,192,0,192,0,192,0,192,0,192,0,192,0,192, + 0,192,0,192,0,16,19,38,18,1,0,7,224,31,248,60, + 60,112,14,96,6,224,7,192,3,192,3,192,3,192,3,192, + 3,192,3,192,3,224,7,96,230,112,126,60,28,31,254,7, + 231,13,19,38,17,2,0,255,224,255,240,192,48,192,24,192, + 24,192,24,192,24,192,48,255,240,255,224,192,112,192,48,192, + 24,192,24,192,24,192,24,192,24,192,24,192,24,13,19,38, + 16,2,0,15,128,63,224,96,96,192,48,192,48,192,0,224, + 0,124,0,63,128,7,224,0,240,0,56,0,24,0,24,192, + 24,192,56,240,112,127,224,31,128,14,19,38,16,1,0,255, + 252,255,252,3,0,3,0,3,0,3,0,3,0,3,0,3, + 0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,3, + 0,3,0,3,0,14,19,38,18,2,0,192,12,192,12,192, + 12,192,12,192,12,192,12,192,12,192,12,192,12,192,12,192, + 12,192,12,192,12,192,12,192,12,96,24,112,56,63,240,15, + 192,15,19,38,17,1,0,192,6,192,6,224,14,96,12,112, + 28,48,24,48,24,56,56,24,48,24,48,28,112,12,96,12, + 96,14,224,6,192,6,192,3,128,3,128,3,128,20,19,57, + 22,1,0,192,96,48,192,96,48,192,96,48,192,240,48,96, + 240,96,97,152,96,97,152,96,97,152,96,97,152,96,49,152, + 192,51,12,192,51,12,192,51,12,192,27,13,128,27,13,128, + 30,7,128,14,7,0,12,3,0,12,3,0,15,19,38,17, + 1,0,192,6,224,14,112,28,48,24,24,48,28,112,14,224, + 7,192,3,128,3,128,7,192,14,224,12,96,28,112,56,56, + 48,24,96,12,224,14,192,6,14,19,38,16,1,0,192,12, + 224,28,96,24,112,56,48,48,56,112,24,96,28,224,12,192, + 15,192,7,128,7,128,3,0,3,0,3,0,3,0,3,0, + 3,0,3,0,13,19,38,15,1,0,255,248,255,248,0,56, + 0,112,0,224,1,192,1,192,3,128,7,0,7,0,14,0, + 28,0,28,0,56,0,112,0,112,0,224,0,255,248,255,248, + 4,24,24,7,2,251,240,240,192,192,192,192,192,192,192,192, + 192,192,192,192,192,192,192,192,192,192,192,192,240,240,8,19, + 19,7,0,0,192,64,64,96,32,32,48,16,16,16,24,8, + 8,12,4,4,6,2,3,4,24,24,7,1,251,240,240,48, + 48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48, + 48,48,48,240,240,10,9,18,12,1,10,12,0,12,0,30, + 0,18,0,51,0,97,128,97,128,192,192,192,192,14,2,4, + 14,0,251,255,252,255,252,5,4,4,7,1,15,192,96,48, + 24,11,14,28,13,1,0,31,0,63,128,97,192,96,192,0, + 192,7,192,63,192,120,192,224,192,192,192,193,192,227,192,126, + 224,60,96,11,19,38,14,2,0,192,0,192,0,192,0,192, + 0,192,0,207,0,223,128,241,192,224,192,192,224,192,96,192, + 96,192,96,192,96,192,224,224,192,241,192,223,128,207,0,10, + 14,28,12,1,0,31,0,63,128,113,192,96,192,224,0,192, + 0,192,0,192,0,192,0,224,0,96,192,113,192,63,128,31, + 0,11,19,38,14,1,0,0,96,0,96,0,96,0,96,0, + 96,30,96,63,96,113,224,96,224,224,96,192,96,192,96,192, + 96,192,96,224,96,96,224,113,224,63,96,30,96,11,14,28, + 13,1,0,14,0,63,128,113,192,96,192,192,96,192,96,255, + 224,255,224,192,0,192,0,96,96,112,224,63,192,15,0,6, + 19,19,8,1,0,28,60,48,48,48,252,252,48,48,48,48, + 48,48,48,48,48,48,48,48,11,19,38,14,1,251,30,96, + 63,96,113,224,96,224,224,96,192,96,192,96,192,96,192,96, + 224,96,96,224,113,224,63,96,30,96,0,96,192,96,224,192, + 127,192,31,0,10,19,38,13,2,0,192,0,192,0,192,0, + 192,0,192,0,206,0,223,128,241,128,224,192,192,192,192,192, + 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, + 2,19,19,6,2,0,192,192,192,0,0,192,192,192,192,192, + 192,192,192,192,192,192,192,192,192,4,24,24,6,0,251,48, + 48,48,0,0,48,48,48,48,48,48,48,48,48,48,48,48, + 48,48,48,48,48,240,224,10,19,38,12,2,0,192,0,192, + 0,192,0,192,0,192,0,193,128,195,128,199,0,206,0,220, + 0,248,0,252,0,206,0,198,0,199,0,195,128,193,128,193, + 192,192,192,2,19,19,6,2,0,192,192,192,192,192,192,192, + 192,192,192,192,192,192,192,192,192,192,192,192,16,14,28,20, + 2,0,206,60,255,126,227,199,193,131,193,131,193,131,193,131, + 193,131,193,131,193,131,193,131,193,131,193,131,193,131,10,14, + 28,14,2,0,206,0,223,128,241,128,224,192,192,192,192,192, + 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, + 11,14,28,13,1,0,31,0,63,128,113,192,96,192,224,224, + 192,96,192,96,192,96,192,96,224,224,96,192,113,192,63,128, + 31,0,11,19,38,14,2,251,207,0,223,128,241,192,224,192, + 192,224,192,96,192,96,192,96,192,96,192,224,224,192,241,192, + 223,128,207,0,192,0,192,0,192,0,192,0,192,0,11,19, + 38,14,1,251,30,96,63,96,113,224,96,224,224,96,192,96, + 192,96,192,96,192,96,224,96,96,224,113,224,63,96,30,96, + 0,96,0,96,0,96,0,96,0,96,6,14,14,9,2,0, + 204,220,248,240,224,192,192,192,192,192,192,192,192,192,10,14, + 28,12,1,0,63,0,127,128,225,192,192,192,192,0,248,0, + 127,0,15,128,1,192,192,192,192,192,225,192,127,128,63,0, + 6,18,18,8,1,0,48,48,48,48,252,252,48,48,48,48, + 48,48,48,48,48,48,60,28,10,14,28,14,2,0,192,192, + 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, + 192,192,193,192,99,192,126,192,28,192,11,14,28,13,1,0, + 192,96,192,96,192,96,96,192,96,192,113,192,49,128,49,128, + 27,0,27,0,27,0,14,0,14,0,14,0,18,14,42,18, + 0,0,192,192,192,192,192,192,97,225,128,97,225,128,97,225, + 128,49,35,0,51,51,0,51,51,0,27,54,0,26,22,0, + 30,30,0,14,28,0,12,12,0,12,12,0,10,14,28,12, + 1,0,192,192,225,192,97,128,51,0,30,0,30,0,12,0, + 30,0,30,0,51,0,115,128,97,128,192,192,192,192,12,19, + 38,13,0,251,192,48,192,48,96,48,112,96,48,96,56,224, + 24,192,24,192,13,128,13,128,7,128,7,0,3,0,3,0, + 6,0,6,0,12,0,60,0,56,0,10,14,28,12,1,0, + 255,192,255,192,1,128,3,0,7,0,14,0,12,0,28,0, + 56,0,48,0,96,0,224,0,255,192,255,192,6,24,24,8, + 1,251,12,24,48,48,48,48,48,48,48,48,96,192,192,96, + 48,48,48,48,48,48,48,48,24,12,1,24,24,6,2,251, + 128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128, + 128,128,128,128,128,128,128,128,6,24,24,8,1,251,192,96, + 48,48,48,48,48,48,48,48,24,12,12,24,48,48,48,48, + 48,48,48,48,96,192,10,4,8,14,2,5,112,192,252,192, + 207,192,195,128,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,0,0,0,6,0,1,2,19,19,6,2, + 251,192,192,192,0,0,64,64,192,192,192,192,192,192,192,192, + 192,192,192,192,10,18,36,13,1,254,1,128,1,128,31,0, + 63,128,115,192,102,192,198,0,204,0,204,0,204,0,216,0, + 216,0,216,192,113,192,127,128,63,0,96,0,96,0,12,18, + 36,14,1,0,31,128,63,224,112,112,96,48,96,0,112,0, + 48,0,24,0,255,128,255,128,24,0,24,0,24,0,48,0, + 48,0,103,48,255,240,240,224,11,12,24,13,1,3,192,96, + 238,224,127,192,49,128,96,192,96,192,96,192,96,192,49,128, + 127,192,238,224,192,96,14,18,36,14,0,0,224,28,96,24, + 112,56,48,48,56,112,24,96,28,224,12,192,63,240,63,240, + 3,0,63,240,63,240,3,0,3,0,3,0,3,0,3,0, + 2,24,24,6,2,251,192,192,192,192,192,192,192,192,192,192, + 0,0,0,0,192,192,192,192,192,192,192,192,192,192,11,24, + 48,13,1,251,31,0,63,128,113,192,96,192,112,192,56,0, + 28,0,126,0,231,0,195,128,193,192,192,192,96,96,112,96, + 56,96,28,192,15,128,7,0,3,128,97,192,96,192,113,192, + 63,128,31,0,6,2,2,8,1,16,204,204,19,19,57,19, + 1,0,3,248,0,14,14,0,48,1,128,96,0,192,65,240, + 64,195,24,96,134,12,32,132,0,32,132,0,32,132,0,32, + 132,0,32,134,12,32,195,24,96,65,240,64,96,0,192,48, + 1,128,24,3,0,14,14,0,3,248,0,7,12,12,9,1, + 7,120,204,204,28,108,204,204,220,118,0,254,254,9,8,16, + 14,2,3,25,128,51,0,102,0,204,0,204,0,102,0,51, + 0,25,128,13,8,16,15,1,2,255,248,255,248,0,24,0, + 24,0,24,0,24,0,24,0,24,6,2,2,8,1,6,252, + 252,18,19,57,19,1,0,7,248,0,28,14,0,48,3,0, + 96,1,128,67,240,128,194,24,192,130,8,64,130,8,64,130, + 8,64,130,16,64,131,240,64,130,32,64,130,16,64,194,16, + 192,66,8,128,96,1,128,48,3,0,28,14,0,7,248,0, + 6,2,2,8,1,16,252,252,8,7,7,9,0,11,60,102, + 195,195,195,102,60,12,13,26,14,1,0,6,0,6,0,6, + 0,6,0,255,240,255,240,6,0,6,0,6,0,6,0,0, + 0,255,240,255,240,7,10,10,7,0,8,60,126,198,6,12, + 24,48,96,254,254,7,10,10,7,0,8,124,254,198,6,60, + 60,6,198,254,124,5,4,4,7,1,15,24,48,96,192,10, + 19,38,14,2,251,192,192,192,192,192,192,192,192,192,192,192, + 192,192,192,192,192,192,192,192,192,193,192,227,192,254,192,220, + 192,192,0,192,0,192,0,192,0,192,0,10,24,48,12,1, + 251,31,192,127,192,125,128,253,128,253,128,253,128,253,128,253, + 128,253,128,125,128,125,128,61,128,13,128,13,128,13,128,13, + 128,13,128,13,128,13,128,13,128,13,128,13,128,13,128,13, + 128,2,3,3,6,2,6,192,192,192,5,6,6,7,1,251, + 96,112,24,24,248,112,4,10,10,7,0,8,48,48,240,240, + 48,48,48,48,48,48,7,12,12,9,1,7,56,108,198,198, + 198,198,198,108,56,0,254,254,9,8,16,14,3,3,204,0, + 102,0,51,0,25,128,25,128,51,0,102,0,204,0,18,18, + 54,19,1,0,48,24,0,48,24,0,240,48,0,240,48,0, + 48,96,0,48,96,0,48,192,0,48,192,0,49,131,0,49, + 135,0,3,15,0,3,15,0,6,27,0,6,51,0,12,127, + 192,12,127,192,24,3,0,24,3,0,18,18,54,19,1,0, + 48,24,0,48,24,0,240,48,0,240,48,0,48,96,0,48, + 96,0,48,192,0,48,192,0,49,135,128,49,143,192,3,24, + 192,3,0,192,6,1,128,6,3,0,12,6,0,12,12,0, + 24,31,192,24,31,192,19,18,54,19,0,0,124,12,0,254, + 12,0,198,24,0,6,24,0,60,48,0,60,48,0,6,96, + 0,198,96,0,254,193,128,124,195,128,1,135,128,1,135,128, + 3,13,128,3,25,128,6,63,224,6,63,224,12,1,128,12, + 1,128,10,19,38,12,1,251,12,0,12,0,12,0,0,0, + 0,0,12,0,12,0,12,0,12,0,24,0,56,0,112,0, + 96,0,224,192,192,192,193,192,227,128,127,128,62,0,15,24, + 48,17,1,0,12,0,6,0,3,0,1,128,0,0,3,128, + 3,128,6,192,6,192,12,64,12,96,12,96,24,48,24,48, + 24,48,48,24,63,248,63,248,96,12,96,12,96,12,192,6, + 192,6,192,6,15,24,48,17,1,0,0,96,0,192,1,128, + 3,0,0,0,3,128,3,128,6,192,6,192,12,64,12,96, + 12,96,24,48,24,48,24,48,48,24,63,248,63,248,96,12, + 96,12,96,12,192,6,192,6,192,6,15,24,48,17,1,0, + 1,128,3,192,6,96,12,48,0,0,3,128,3,128,6,192, + 6,192,12,64,12,96,12,96,24,48,24,48,24,48,48,24, + 63,248,63,248,96,12,96,12,96,12,192,6,192,6,192,6, + 15,23,46,17,1,0,7,16,13,176,8,224,0,0,3,128, + 3,128,6,192,6,192,12,64,12,96,12,96,24,48,24,48, + 24,48,48,24,63,248,63,248,96,12,96,12,96,12,192,6, + 192,6,192,6,15,23,46,17,1,0,12,96,12,96,0,0, + 0,0,3,128,3,128,6,192,6,192,12,64,12,96,12,96, + 24,48,24,48,24,48,48,24,63,248,63,248,96,12,96,12, + 96,12,192,6,192,6,192,6,15,24,48,17,1,0,3,128, + 4,64,4,64,3,128,0,0,3,128,3,128,6,192,6,192, + 12,64,12,96,12,96,24,48,24,48,24,48,48,24,63,248, + 63,248,96,12,96,12,96,12,192,6,192,6,192,6,21,19, + 57,23,1,0,3,255,248,3,255,248,6,96,0,6,96,0, + 12,96,0,12,96,0,12,96,0,24,96,0,24,127,248,24, + 127,248,48,96,0,63,224,0,63,224,0,96,96,0,96,96, + 0,96,96,0,192,96,0,192,127,248,192,127,248,15,24,48, + 18,1,251,7,224,31,248,60,60,112,14,96,6,224,6,192, + 0,192,0,192,0,192,0,192,0,192,0,192,0,224,6,96, + 6,112,14,60,60,31,248,7,224,1,128,0,192,0,192,7, + 192,3,128,12,24,48,16,2,0,48,0,24,0,12,0,6, + 0,0,0,255,240,255,240,192,0,192,0,192,0,192,0,192, + 0,192,0,255,224,255,224,192,0,192,0,192,0,192,0,192, + 0,192,0,192,0,255,240,255,240,12,24,48,16,2,0,1, + 128,3,0,6,0,12,0,0,0,255,240,255,240,192,0,192, + 0,192,0,192,0,192,0,192,0,255,224,255,224,192,0,192, + 0,192,0,192,0,192,0,192,0,192,0,255,240,255,240,12, + 24,48,16,2,0,6,0,15,0,25,128,48,192,0,0,255, + 240,255,240,192,0,192,0,192,0,192,0,192,0,192,0,255, + 224,255,224,192,0,192,0,192,0,192,0,192,0,192,0,192, + 0,255,240,255,240,12,23,46,16,2,0,24,192,24,192,0, + 0,0,0,255,240,255,240,192,0,192,0,192,0,192,0,192, + 0,192,0,255,224,255,224,192,0,192,0,192,0,192,0,192, + 0,192,0,192,0,255,240,255,240,5,24,24,8,1,0,192, + 96,48,24,0,48,48,48,48,48,48,48,48,48,48,48,48, + 48,48,48,48,48,48,48,5,24,24,8,2,0,24,48,96, + 192,0,96,96,96,96,96,96,96,96,96,96,96,96,96,96, + 96,96,96,96,96,8,24,24,8,0,0,24,60,102,195,0, + 24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24, + 24,24,24,6,23,23,8,1,0,204,204,0,0,48,48,48, + 48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48, + 18,19,57,18,255,0,31,248,0,31,254,0,24,15,0,24, + 3,128,24,1,128,24,1,192,24,0,192,24,0,192,255,128, + 192,255,128,192,24,0,192,24,0,192,24,0,192,24,1,192, + 24,1,128,24,3,128,24,15,0,31,254,0,31,248,0,14, + 23,46,18,2,0,14,32,27,96,17,192,0,0,224,12,240, + 12,240,12,216,12,220,12,204,12,206,12,198,12,199,12,195, + 12,195,140,193,140,193,204,192,204,192,236,192,108,192,60,192, + 60,192,28,16,24,48,18,1,0,12,0,6,0,3,0,1, + 128,0,0,7,224,31,248,60,60,112,14,96,6,224,7,192, + 3,192,3,192,3,192,3,192,3,192,3,192,3,224,7,96, + 6,112,14,60,60,31,248,7,224,16,24,48,18,1,0,0, + 48,0,96,0,192,1,128,0,0,7,224,31,248,60,60,112, + 14,96,6,224,7,192,3,192,3,192,3,192,3,192,3,192, + 3,192,3,224,7,96,6,112,14,60,60,31,248,7,224,16, + 24,48,18,1,0,0,192,1,224,3,48,6,24,0,0,7, + 224,31,248,60,60,112,14,96,6,224,7,192,3,192,3,192, + 3,192,3,192,3,192,3,192,3,224,7,96,6,112,14,60, + 60,31,248,7,224,16,23,46,18,1,0,3,136,6,216,4, + 112,0,0,7,224,31,248,60,60,112,14,96,6,224,7,192, + 3,192,3,192,3,192,3,192,3,192,3,192,3,224,7,96, + 6,112,14,60,60,31,248,7,224,16,23,46,18,1,0,6, + 48,6,48,0,0,0,0,7,224,31,248,60,60,112,14,96, + 6,224,7,192,3,192,3,192,3,192,3,192,3,192,3,192, + 3,224,7,96,6,112,14,60,60,31,248,7,224,13,12,24, + 14,0,1,192,24,96,48,48,96,24,192,13,128,7,0,7, + 0,13,128,24,192,48,96,96,48,192,24,18,19,57,18,0, + 0,3,240,192,15,253,192,30,31,128,56,7,0,48,15,0, + 112,29,128,96,57,128,96,113,128,96,225,128,97,193,128,99, + 129,128,103,1,128,110,1,128,124,3,128,56,3,0,56,7, + 0,126,30,0,239,252,0,195,240,0,14,24,48,18,2,0, + 24,0,12,0,6,0,3,0,0,0,192,12,192,12,192,12, + 192,12,192,12,192,12,192,12,192,12,192,12,192,12,192,12, + 192,12,192,12,192,12,192,12,96,24,112,56,63,240,15,192, + 14,24,48,18,2,0,0,96,0,192,1,128,3,0,0,0, + 192,12,192,12,192,12,192,12,192,12,192,12,192,12,192,12, + 192,12,192,12,192,12,192,12,192,12,192,12,192,12,96,24, + 112,56,63,240,15,192,14,24,48,18,2,0,3,0,7,128, + 12,192,24,96,0,0,192,12,192,12,192,12,192,12,192,12, + 192,12,192,12,192,12,192,12,192,12,192,12,192,12,192,12, + 192,12,192,12,96,24,112,56,63,240,15,192,14,23,46,18, + 2,0,24,192,24,192,0,0,0,0,192,12,192,12,192,12, + 192,12,192,12,192,12,192,12,192,12,192,12,192,12,192,12, + 192,12,192,12,192,12,192,12,96,24,112,56,63,240,15,192, + 14,24,48,16,1,0,0,96,0,192,1,128,3,0,0,0, + 192,12,224,28,96,24,112,56,48,48,56,112,24,96,28,224, + 12,192,15,192,7,128,7,128,3,0,3,0,3,0,3,0, + 3,0,3,0,3,0,13,19,38,16,2,0,192,0,192,0, + 192,0,192,0,255,224,255,240,192,48,192,24,192,24,192,24, + 192,24,192,48,255,240,255,224,192,0,192,0,192,0,192,0, + 192,0,10,19,38,15,3,0,28,0,127,0,227,0,193,128, + 193,128,193,128,195,0,199,0,206,0,207,0,195,128,193,128, + 192,192,192,192,192,192,193,128,195,128,207,0,206,0,11,19, + 38,13,1,0,24,0,12,0,6,0,3,0,0,0,31,0, + 63,128,97,192,96,192,0,192,7,192,63,192,120,192,224,192, + 192,192,193,192,227,192,126,224,60,96,11,19,38,13,1,0, + 1,128,3,0,6,0,12,0,0,0,31,0,63,128,97,192, + 96,192,0,192,7,192,63,192,120,192,224,192,192,192,193,192, + 227,192,126,224,60,96,11,19,38,13,1,0,12,0,30,0, + 51,0,97,128,0,0,31,0,63,128,97,192,96,192,0,192, + 7,192,63,192,120,192,224,192,192,192,193,192,227,192,126,224, + 60,96,11,18,36,13,1,0,28,64,54,192,35,128,0,0, + 31,0,63,128,97,192,96,192,0,192,7,192,63,192,120,192, + 224,192,192,192,193,192,227,192,126,224,60,96,11,18,36,13, + 1,0,51,0,51,0,0,0,0,0,31,0,63,128,97,192, + 96,192,0,192,7,192,63,192,120,192,224,192,192,192,193,192, + 227,192,126,224,60,96,11,19,38,13,1,0,6,0,9,0, + 9,0,6,0,0,0,31,0,63,128,97,192,96,192,0,192, + 7,192,63,192,120,192,224,192,192,192,193,192,227,192,126,224, + 60,96,19,14,42,21,1,0,31,14,0,63,191,128,97,241, + 192,96,224,192,0,192,96,7,192,96,63,255,224,120,255,224, + 224,192,0,192,192,0,193,224,96,227,240,224,126,63,192,60, + 15,0,10,19,38,12,1,251,31,0,63,128,113,192,96,192, + 224,0,192,0,192,0,192,0,192,0,224,0,96,192,113,192, + 63,128,31,0,12,0,6,0,6,0,62,0,28,0,11,19, + 38,13,1,0,24,0,12,0,6,0,3,0,0,0,14,0, + 63,128,113,192,96,192,192,96,192,96,255,224,255,224,192,0, + 192,0,96,96,112,224,63,192,15,0,11,19,38,13,1,0, + 3,0,6,0,12,0,24,0,0,0,14,0,63,128,113,192, + 96,192,192,96,192,96,255,224,255,224,192,0,192,0,96,96, + 112,224,63,192,15,0,11,19,38,13,1,0,12,0,30,0, + 51,0,97,128,0,0,14,0,63,128,113,192,96,192,192,96, + 192,96,255,224,255,224,192,0,192,0,96,96,112,224,63,192, + 15,0,11,18,36,13,1,0,51,0,51,0,0,0,0,0, + 14,0,63,128,113,192,96,192,192,96,192,96,255,224,255,224, + 192,0,192,0,96,96,112,224,63,192,15,0,5,19,19,6, + 0,0,192,96,48,24,0,48,48,48,48,48,48,48,48,48, + 48,48,48,48,48,5,19,19,6,1,0,24,48,96,192,0, + 96,96,96,96,96,96,96,96,96,96,96,96,96,96,8,19, + 19,6,255,0,24,60,102,195,0,24,24,24,24,24,24,24, + 24,24,24,24,24,24,24,6,18,18,6,0,0,204,204,0, + 0,48,48,48,48,48,48,48,48,48,48,48,48,48,48,11, + 19,38,13,1,0,96,0,57,128,14,0,30,0,99,0,31, + 128,63,128,113,192,96,192,224,224,192,96,192,96,192,96,192, + 96,224,224,96,192,113,192,63,128,31,0,10,18,36,14,2, + 0,56,128,109,128,71,0,0,0,206,0,223,128,241,128,224, + 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, + 192,192,192,192,192,11,19,38,13,1,0,24,0,12,0,6, + 0,3,0,0,0,31,0,63,128,113,192,96,192,224,224,192, + 96,192,96,192,96,192,96,224,224,96,192,113,192,63,128,31, + 0,11,19,38,13,1,0,3,0,6,0,12,0,24,0,0, + 0,31,0,63,128,113,192,96,192,224,224,192,96,192,96,192, + 96,192,96,224,224,96,192,113,192,63,128,31,0,11,19,38, + 13,1,0,12,0,30,0,51,0,97,128,0,0,31,0,63, + 128,113,192,96,192,224,224,192,96,192,96,192,96,192,96,224, + 224,96,192,113,192,63,128,31,0,11,18,36,13,1,0,28, + 64,54,192,35,128,0,0,31,0,63,128,113,192,96,192,224, + 224,192,96,192,96,192,96,192,96,224,224,96,192,113,192,63, + 128,31,0,11,18,36,13,1,0,51,0,51,0,0,0,0, + 0,31,0,63,128,113,192,96,192,224,224,192,96,192,96,192, + 96,192,96,224,224,96,192,113,192,63,128,31,0,12,12,24, + 14,1,1,6,0,6,0,6,0,0,0,0,0,255,240,255, + 240,0,0,0,0,6,0,6,0,6,0,13,14,28,13,0, + 0,15,152,31,248,56,112,48,224,113,240,99,176,99,48,102, + 48,108,48,124,112,56,96,112,224,255,192,207,128,10,19,38, + 14,2,0,48,0,24,0,12,0,6,0,0,0,192,192,192, + 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, + 192,193,192,99,192,126,192,28,192,10,19,38,14,2,0,3, + 0,6,0,12,0,24,0,0,0,192,192,192,192,192,192,192, + 192,192,192,192,192,192,192,192,192,192,192,192,192,193,192,99, + 192,126,192,28,192,10,19,38,14,2,0,12,0,30,0,51, + 0,97,128,0,0,192,192,192,192,192,192,192,192,192,192,192, + 192,192,192,192,192,192,192,192,192,193,192,99,192,126,192,28, + 192,10,18,36,14,2,0,51,0,51,0,0,0,0,0,192, + 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, + 192,192,192,193,192,99,192,126,192,28,192,12,24,48,13,0, + 251,0,192,1,128,3,0,6,0,0,0,192,48,192,48,96, + 48,112,96,48,96,56,224,24,192,24,192,13,128,13,128,7, + 128,7,0,3,0,3,0,6,0,6,0,12,0,60,0,56, + 0,11,24,48,14,2,251,192,0,192,0,192,0,192,0,192, + 0,207,0,223,128,241,192,224,192,192,224,192,96,192,96,192, + 96,192,96,192,224,224,192,241,192,223,128,207,0,192,0,192, + 0,192,0,192,0,192,0,12,23,46,13,0,251,25,128,25, + 128,0,0,0,0,192,48,192,48,96,48,112,96,48,96,56, + 224,24,192,24,192,13,128,13,128,7,128,7,0,3,0,3, + 0,6,0,6,0,12,0,60,0,56,0 +}; + +#endif // HAS_GRAPHICAL_TFT diff --git a/Marlin/src/lcd/tft/fontdata/profont_22.cpp b/Marlin/src/lcd/tft/fontdata/profont_22.cpp new file mode 100644 index 000000000..1d02ebb06 --- /dev/null +++ b/Marlin/src/lcd/tft/fontdata/profont_22.cpp @@ -0,0 +1,426 @@ +/* + Fontname: ProFont22 + Copyright: ProFont Distribution 2.2 Ñ Generated by Fontographer 4.1.5 + Capital A Height: 14, '1' Height: 14 + Calculated Max Values w=12 h=22 x= 6 y=12 dx=12 dy= 0 ascent=18 len=44 + Font Bounding box w=12 h=21 x= 0 y=-4 + Calculated Min Values x= 0 y=-4 dx= 0 dy= 0 + Pure Font ascent =14 descent=-4 + X Font ascent =16 descent=-4 + Max Font ascent =18 descent=-4 +*/ + +#include "../../../inc/MarlinConfigPre.h" + +#if HAS_GRAPHICAL_TFT + +#include + +extern const uint8_t ProFont22[6454] = { + 0,12,21,0,252,14,3,117,7,113,32,255,252,18,252,16, + 252,0,0,0,12,0,0,2,14,14,12,4,0,192,192,192, + 192,192,192,192,192,192,192,0,0,192,192,6,6,6,12,2, + 10,204,204,204,204,204,204,10,10,20,12,0,4,51,0,51, + 0,255,192,255,192,51,0,51,0,255,192,255,192,51,0,51, + 0,10,18,36,12,0,254,12,0,12,0,63,0,127,128,237, + 192,204,192,204,0,236,0,127,0,63,128,13,192,12,192,204, + 192,237,192,127,128,63,0,12,0,12,0,10,14,28,12,0, + 0,63,192,127,192,204,192,205,192,207,128,207,0,127,0,63, + 128,60,192,124,192,236,192,204,192,199,128,195,0,10,14,28, + 12,0,0,62,0,127,0,227,0,199,0,206,0,252,0,120, + 0,120,0,252,192,207,192,199,128,231,128,127,192,60,192,2, + 6,6,12,4,10,192,192,192,192,192,192,6,18,18,12,2, + 254,12,28,56,112,224,192,192,192,192,192,192,192,192,224,112, + 56,28,12,6,18,18,12,2,254,192,224,112,56,28,12,12, + 12,12,12,12,12,12,28,56,112,224,192,10,10,20,12,0, + 4,12,0,12,0,204,192,255,192,63,0,63,0,255,192,204, + 192,12,0,12,0,10,10,20,12,0,2,12,0,12,0,12, + 0,12,0,255,192,255,192,12,0,12,0,12,0,12,0,5, + 9,9,12,2,252,48,120,120,56,24,56,112,224,64,6,2, + 2,12,2,6,252,252,4,4,4,12,3,1,96,240,240,96, + 11,20,40,12,0,252,0,96,0,96,0,192,0,192,1,128, + 1,128,3,0,3,0,6,0,6,0,12,0,12,0,24,0, + 24,0,48,0,48,0,96,0,96,0,192,0,192,0,10,14, + 28,12,0,0,63,0,127,128,225,192,193,192,195,192,199,192, + 206,192,220,192,248,192,240,192,224,192,225,192,127,128,63,0, + 10,14,28,12,0,0,12,0,12,0,124,0,124,0,12,0, + 12,0,12,0,12,0,12,0,12,0,12,0,12,0,255,192, + 255,192,10,14,28,12,0,0,63,0,127,128,225,192,192,192, + 0,192,1,192,3,128,7,0,14,0,28,0,56,0,112,0, + 255,192,255,192,10,14,28,12,0,0,63,0,127,128,225,192, + 192,192,0,192,1,128,15,0,15,128,1,192,0,192,192,192, + 225,192,127,128,63,0,10,14,28,12,0,0,3,0,7,0, + 15,0,31,0,59,0,115,0,227,0,195,0,255,192,255,192, + 3,0,3,0,15,192,15,192,10,14,28,12,0,0,255,192, + 255,192,192,0,192,0,255,0,255,128,1,192,0,192,0,192, + 0,192,192,192,225,192,127,128,63,0,10,14,28,12,0,0, + 63,0,127,0,224,0,192,0,255,0,255,128,193,192,192,192, + 192,192,192,192,192,192,225,192,127,128,63,0,10,14,28,12, + 0,0,255,192,255,192,0,192,0,192,0,192,1,192,3,128, + 7,0,14,0,12,0,12,0,12,0,12,0,12,0,10,14, + 28,12,0,0,63,0,127,128,225,192,192,192,192,192,97,128, + 63,0,127,128,225,192,192,192,192,192,225,192,127,128,63,0, + 10,14,28,12,0,0,63,0,127,128,225,192,192,192,192,192, + 192,192,192,192,224,192,127,192,63,192,0,192,1,192,63,128, + 63,0,4,10,10,12,3,1,96,240,240,96,0,0,96,240, + 240,96,5,15,15,12,2,252,48,120,120,48,0,0,48,120, + 120,56,24,56,112,224,64,8,14,14,12,2,0,3,7,14, + 28,56,112,224,224,112,56,28,14,7,3,10,6,12,12,0, + 4,255,192,255,192,0,0,0,0,255,192,255,192,8,14,14, + 12,2,0,192,224,112,56,28,14,7,7,14,28,56,112,224, + 192,10,14,28,12,0,0,63,0,127,128,225,192,192,192,0, + 192,1,192,3,128,7,0,14,0,12,0,0,0,0,0,12, + 0,12,0,10,14,28,12,0,0,63,0,127,128,225,192,192, + 192,199,192,207,192,204,192,204,192,207,192,199,128,192,0,224, + 0,127,192,63,192,10,14,28,12,0,0,12,0,30,0,30, + 0,51,0,51,0,97,128,97,128,192,192,255,192,255,192,192, + 192,192,192,192,192,192,192,10,14,28,12,0,0,255,0,255, + 128,193,192,192,192,192,192,193,128,255,0,255,128,193,192,192, + 192,192,192,193,192,255,128,255,0,10,14,28,12,0,0,63, + 0,127,128,225,192,192,192,192,0,192,0,192,0,192,0,192, + 0,192,0,192,192,225,192,127,128,63,0,10,14,28,12,0, + 0,255,0,255,128,193,192,192,192,192,192,192,192,192,192,192, + 192,192,192,192,192,192,192,193,192,255,128,255,0,10,14,28, + 12,0,0,255,192,255,192,192,0,192,0,192,0,192,0,255, + 0,255,0,192,0,192,0,192,0,192,0,255,192,255,192,10, + 14,28,12,0,0,255,192,255,192,192,0,192,0,192,0,192, + 0,255,0,255,0,192,0,192,0,192,0,192,0,192,0,192, + 0,10,14,28,12,0,0,63,0,127,128,225,192,192,192,192, + 0,192,0,195,192,195,192,192,192,192,192,192,192,225,192,127, + 128,63,0,10,14,28,12,0,0,192,192,192,192,192,192,192, + 192,192,192,192,192,255,192,255,192,192,192,192,192,192,192,192, + 192,192,192,192,192,10,14,28,12,0,0,255,192,255,192,12, + 0,12,0,12,0,12,0,12,0,12,0,12,0,12,0,12, + 0,12,0,255,192,255,192,10,14,28,12,0,0,0,192,0, + 192,0,192,0,192,0,192,0,192,0,192,0,192,192,192,192, + 192,192,192,225,192,127,128,63,0,10,14,28,12,0,0,193, + 192,195,128,199,0,206,0,220,0,248,0,240,0,248,0,220, + 0,206,0,199,0,195,128,193,192,192,192,10,14,28,12,0, + 0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192, + 0,192,0,192,0,192,0,192,0,255,192,255,192,10,14,28, + 12,0,0,192,192,225,192,243,192,255,192,222,192,204,192,204, + 192,204,192,192,192,192,192,192,192,192,192,192,192,192,192,10, + 14,28,12,0,0,192,192,224,192,240,192,248,192,220,192,206, + 192,199,192,195,192,193,192,192,192,192,192,192,192,192,192,192, + 192,10,14,28,12,0,0,63,0,127,128,225,192,192,192,192, + 192,192,192,192,192,192,192,192,192,192,192,192,192,225,192,127, + 128,63,0,10,14,28,12,0,0,255,0,255,128,193,192,192, + 192,192,192,193,192,255,128,255,0,192,0,192,0,192,0,192, + 0,192,0,192,0,10,16,32,12,0,254,63,0,127,128,225, + 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,204, + 192,239,192,127,128,63,128,1,192,0,192,10,14,28,12,0, + 0,255,0,255,128,193,192,192,192,192,192,193,128,255,0,255, + 128,193,192,192,192,192,192,192,192,192,192,192,192,10,14,28, + 12,0,0,63,0,127,128,225,192,192,192,192,0,224,0,127, + 0,63,128,1,192,0,192,192,192,225,192,127,128,63,0,10, + 14,28,12,0,0,255,192,255,192,12,0,12,0,12,0,12, + 0,12,0,12,0,12,0,12,0,12,0,12,0,12,0,12, + 0,10,14,28,12,0,0,192,192,192,192,192,192,192,192,192, + 192,192,192,192,192,192,192,192,192,192,192,192,192,225,192,127, + 128,63,0,10,14,28,12,0,0,192,192,192,192,192,192,192, + 192,192,192,192,192,97,128,97,128,51,0,51,0,30,0,30, + 0,12,0,12,0,10,14,28,12,0,0,192,192,192,192,192, + 192,192,192,192,192,192,192,204,192,204,192,204,192,222,192,255, + 192,243,192,225,192,192,192,10,14,28,12,0,0,192,192,192, + 192,192,192,225,192,115,128,63,0,30,0,30,0,63,0,115, + 128,225,192,192,192,192,192,192,192,10,14,28,12,0,0,192, + 192,192,192,192,192,192,192,192,192,225,192,115,128,63,0,30, + 0,12,0,12,0,12,0,12,0,12,0,10,14,28,12,0, + 0,255,192,255,192,0,192,1,192,3,128,7,0,14,0,28, + 0,56,0,112,0,224,0,192,0,255,192,255,192,4,18,18, + 12,4,254,240,240,192,192,192,192,192,192,192,192,192,192,192, + 192,192,192,240,240,11,20,40,12,1,252,192,0,192,0,96, + 0,96,0,48,0,48,0,24,0,24,0,12,0,12,0,6, + 0,6,0,3,0,3,0,1,128,1,128,0,192,0,192,0, + 96,0,96,4,18,18,12,2,254,240,240,48,48,48,48,48, + 48,48,48,48,48,48,48,48,48,240,240,10,6,12,12,0, + 8,12,0,30,0,63,0,115,128,225,192,64,128,12,2,4, + 12,0,252,255,240,255,240,4,4,4,12,2,12,192,224,112, + 48,10,10,20,12,0,0,63,192,127,192,224,192,192,192,192, + 192,193,192,195,192,231,192,126,192,60,192,10,14,28,12,0, + 0,192,0,192,0,192,0,192,0,255,0,255,128,193,192,192, + 192,192,192,192,192,192,192,193,192,255,128,255,0,10,10,20, + 12,0,0,63,0,127,128,225,192,192,192,192,0,192,0,192, + 0,224,0,127,192,63,192,10,14,28,12,0,0,0,192,0, + 192,0,192,0,192,63,192,127,192,224,192,192,192,192,192,192, + 192,192,192,224,192,127,192,63,192,10,10,20,12,0,0,63, + 0,127,128,225,192,192,192,255,192,255,192,192,0,224,0,127, + 192,63,192,8,14,14,12,2,0,15,31,56,48,252,252,48, + 48,48,48,48,48,48,48,10,14,28,12,0,252,63,192,127, + 192,224,192,192,192,192,192,192,192,192,192,224,192,127,192,63, + 192,0,192,1,192,63,128,63,0,10,14,28,12,0,0,192, + 0,192,0,192,0,192,0,255,0,255,128,193,192,192,192,192, + 192,192,192,192,192,192,192,192,192,192,192,6,14,14,12,2, + 0,48,48,0,0,240,240,48,48,48,48,48,48,252,252,6, + 18,18,12,0,252,12,12,0,0,60,60,12,12,12,12,12, + 12,12,12,12,28,248,240,10,14,28,12,0,0,192,0,192, + 0,192,0,192,0,195,128,199,0,206,0,220,0,252,0,254, + 0,231,0,195,128,193,192,192,192,6,14,14,12,2,0,240, + 240,48,48,48,48,48,48,48,48,48,48,252,252,10,10,20, + 12,0,0,255,0,255,128,205,192,204,192,204,192,204,192,204, + 192,204,192,204,192,204,192,10,10,20,12,0,0,207,0,223, + 128,249,192,240,192,224,192,192,192,192,192,192,192,192,192,192, + 192,10,10,20,12,0,0,63,0,127,128,225,192,192,192,192, + 192,192,192,192,192,225,192,127,128,63,0,10,14,28,12,0, + 252,255,0,255,128,193,192,192,192,192,192,192,192,192,192,193, + 192,255,128,255,0,192,0,192,0,192,0,192,0,10,14,28, + 12,0,252,63,192,127,192,224,192,192,192,192,192,192,192,192, + 192,224,192,127,192,63,192,0,192,0,192,0,192,0,192,10, + 10,20,12,0,0,207,0,223,128,249,192,240,192,224,0,192, + 0,192,0,192,0,192,0,192,0,10,10,20,12,0,0,63, + 192,127,192,192,0,192,0,127,0,63,128,0,192,0,192,255, + 128,255,0,8,14,14,12,2,0,48,48,48,48,252,252,48, + 48,48,48,48,56,31,15,10,10,20,12,0,0,192,192,192, + 192,192,192,192,192,192,192,193,192,195,192,231,192,126,192,60, + 192,10,10,20,12,0,0,192,192,192,192,192,192,97,128,97, + 128,51,128,51,0,30,0,30,0,12,0,10,10,20,12,0, + 0,204,192,204,192,204,192,204,192,204,192,204,192,204,192,204, + 192,127,128,51,0,10,10,20,12,0,0,192,192,225,192,115, + 128,63,0,30,0,30,0,63,0,115,128,225,192,192,192,10, + 14,28,12,0,252,192,192,192,192,192,192,192,192,192,192,192, + 192,192,192,224,192,127,192,63,192,0,192,1,192,63,128,63, + 0,10,10,20,12,0,0,255,192,255,192,3,128,7,0,14, + 0,28,0,56,0,112,0,255,192,255,192,6,22,22,12,2, + 252,12,28,56,48,48,48,48,48,48,112,224,224,112,48,48, + 48,48,48,48,56,28,12,2,18,18,12,4,254,192,192,192, + 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,6, + 22,22,12,2,252,192,224,112,48,48,48,48,48,48,56,28, + 28,56,48,48,48,48,48,48,112,224,192,10,4,8,12,0, + 6,48,192,124,192,207,128,195,0,0,0,0,12,0,0,0, + 0,0,12,0,0,0,0,0,12,0,0,4,7,7,12,0, + 253,48,48,48,48,112,224,64,10,22,44,12,0,252,3,192, + 7,192,14,0,12,0,12,0,12,0,12,0,12,0,63,0, + 63,0,12,0,12,0,12,0,12,0,12,0,12,0,12,0, + 12,0,12,0,28,0,248,0,240,0,8,7,7,12,0,253, + 51,51,51,51,119,238,68,10,2,4,12,0,0,204,192,204, + 192,6,10,10,12,2,4,48,48,252,252,48,48,48,48,48, + 48,6,10,10,12,2,4,48,48,252,252,48,48,252,252,48, + 48,6,4,4,12,2,12,48,120,252,204,12,16,32,12,0, + 0,63,240,127,240,204,224,205,192,207,128,207,0,126,0,60, + 0,60,192,127,224,243,48,243,48,179,48,51,48,31,224,12, + 192,10,18,36,12,0,0,51,0,63,0,30,0,12,0,63, + 0,127,128,225,192,192,192,192,0,224,0,127,0,63,128,1, + 192,0,192,192,192,225,192,127,128,63,0,4,10,10,12,0, + 255,48,112,96,224,192,192,224,96,112,48,10,14,28,12,0, + 0,63,192,127,192,236,0,204,0,204,0,204,0,207,0,207, + 0,204,0,204,0,204,0,236,0,127,192,63,192,0,0,0, + 12,0,0,0,0,0,12,0,0,0,0,0,12,0,0,0, + 0,0,12,0,0,4,7,7,12,4,8,32,112,224,192,192, + 192,192,4,7,7,12,4,7,48,48,48,48,112,224,64,8, + 7,7,12,2,8,34,119,238,204,204,204,204,8,7,7,12, + 2,7,51,51,51,51,119,238,68,10,10,20,12,0,2,30, + 0,127,128,127,128,255,192,255,192,255,192,255,192,127,128,127, + 128,30,0,6,2,2,12,2,6,252,252,12,2,4,12,0, + 6,255,240,255,240,10,4,8,12,0,12,48,192,124,192,207, + 128,195,0,12,6,12,12,0,8,255,48,255,240,51,240,51, + 240,51,48,51,48,10,16,32,12,0,0,51,0,63,0,30, + 0,12,0,0,0,0,0,63,192,127,192,192,0,192,0,127, + 0,63,128,0,192,0,192,255,128,255,0,4,10,10,12,0, + 255,192,224,96,112,48,48,112,96,224,192,10,10,20,12,0, + 0,51,0,127,128,204,192,204,192,207,192,207,192,204,0,204, + 0,127,192,51,192,0,0,0,12,0,0,0,0,0,12,0, + 0,10,18,36,12,0,0,51,0,51,0,0,0,0,0,192, + 192,192,192,192,192,192,192,192,192,225,192,115,128,63,0,30, + 0,12,0,12,0,12,0,12,0,12,0,0,0,0,12,0, + 0,2,14,14,12,6,0,192,192,0,0,192,192,192,192,192, + 192,192,192,192,192,10,14,28,12,0,254,12,0,12,0,63, + 0,127,128,237,192,204,192,204,0,204,0,204,0,236,0,127, + 192,63,192,12,0,12,0,10,16,32,12,0,0,60,0,126, + 0,231,0,195,0,192,0,192,0,252,0,252,0,192,0,192, + 0,192,0,192,0,192,192,193,192,255,128,255,0,10,10,20, + 12,0,0,64,128,225,192,127,128,63,0,51,0,51,0,63, + 0,127,128,225,192,64,128,10,14,28,12,0,0,192,192,225, + 192,115,128,63,0,255,192,255,192,12,0,12,0,255,192,255, + 192,12,0,12,0,12,0,12,0,2,18,18,12,4,254,192, + 192,192,192,192,192,192,192,0,0,192,192,192,192,192,192,192, + 192,10,20,40,12,0,254,31,0,127,128,97,192,224,192,112, + 192,56,192,220,0,206,0,199,0,227,128,113,192,56,192,28, + 192,14,192,199,0,195,128,193,192,225,128,127,128,62,0,6, + 2,2,12,2,12,204,204,10,14,28,12,0,0,120,0,254, + 0,135,0,1,128,61,128,124,192,192,192,192,192,124,192,61, + 128,1,128,135,0,254,0,120,0,8,12,12,12,2,6,63, + 127,227,195,195,227,127,63,0,0,255,255,10,10,20,12,0, + 255,48,192,113,192,97,128,227,128,195,0,195,0,227,128,97, + 128,113,192,48,192,10,6,12,12,0,2,255,192,255,192,0, + 192,0,192,0,192,0,192,10,2,4,12,0,6,255,192,255, + 192,10,12,24,12,0,2,120,0,254,0,135,0,1,128,241, + 128,248,192,204,192,204,192,248,192,249,192,223,128,207,0,6, + 2,2,12,2,12,252,252,8,8,8,12,2,8,60,126,231, + 195,195,231,126,60,10,12,24,12,0,0,12,0,12,0,12, + 0,12,0,255,192,255,192,12,0,12,0,12,0,12,0,255, + 192,255,192,5,7,7,12,3,11,112,136,8,16,32,64,248, + 5,7,7,12,3,11,112,136,8,48,8,136,112,4,4,4, + 12,4,12,48,112,224,192,10,14,28,12,0,252,195,0,195, + 0,195,0,195,0,195,0,195,0,195,0,199,128,255,192,252, + 192,192,0,192,0,192,0,192,0,10,16,32,12,0,0,31, + 192,127,192,124,192,236,192,204,192,204,192,236,192,124,192,127, + 192,31,192,12,192,12,192,12,192,12,192,12,192,12,192,4, + 4,4,12,4,4,96,240,240,96,4,6,6,12,2,252,240, + 240,48,112,224,64,5,7,7,12,3,11,32,224,32,32,32, + 32,248,8,12,12,12,2,6,60,126,231,195,195,231,126,60, + 0,0,255,255,10,10,20,12,0,255,195,0,227,128,97,128, + 113,192,48,192,48,192,113,192,97,128,227,128,195,0,12,18, + 36,12,0,0,16,0,112,0,16,0,16,0,16,16,16,32, + 124,64,0,128,1,0,2,0,4,0,8,64,16,192,33,64, + 66,64,131,224,0,64,0,224,12,18,36,12,0,0,16,0, + 112,0,16,0,16,0,16,16,16,32,124,64,0,128,1,0, + 2,0,4,0,9,192,18,32,32,32,64,64,128,128,1,0, + 3,224,12,18,36,12,0,0,56,0,68,0,4,0,24,0, + 4,16,68,32,56,64,0,128,1,0,2,0,4,0,8,64, + 16,192,33,64,66,64,131,224,0,64,0,224,10,14,28,12, + 0,0,12,0,12,0,0,0,0,0,12,0,28,0,56,0, + 112,0,224,0,192,0,192,192,225,192,127,128,63,0,10,18, + 36,12,0,0,48,0,56,0,28,0,12,0,12,0,30,0, + 30,0,51,0,51,0,97,128,97,128,192,192,255,192,255,192, + 192,192,192,192,192,192,192,192,10,18,36,12,0,0,3,0, + 7,0,14,0,12,0,12,0,30,0,30,0,51,0,51,0, + 97,128,97,128,192,192,255,192,255,192,192,192,192,192,192,192, + 192,192,10,18,36,12,0,0,12,0,30,0,63,0,51,0, + 12,0,30,0,30,0,51,0,51,0,97,128,97,128,192,192, + 255,192,255,192,192,192,192,192,192,192,192,192,10,18,36,12, + 0,0,48,192,124,192,207,128,195,0,12,0,30,0,30,0, + 51,0,51,0,97,128,97,128,192,192,255,192,255,192,192,192, + 192,192,192,192,192,192,10,18,36,12,0,0,51,0,51,0, + 0,0,0,0,12,0,30,0,30,0,51,0,51,0,97,128, + 97,128,192,192,255,192,255,192,192,192,192,192,192,192,192,192, + 10,18,36,12,0,0,12,0,30,0,51,0,51,0,30,0, + 30,0,30,0,51,0,51,0,97,128,97,128,192,192,255,192, + 255,192,192,192,192,192,192,192,192,192,10,14,28,12,0,0, + 63,192,127,192,236,0,204,0,204,0,204,0,255,0,255,0, + 204,0,204,0,204,0,204,0,207,192,207,192,10,18,36,12, + 0,252,63,0,127,128,225,192,192,192,192,0,192,0,192,0, + 192,0,192,0,192,0,192,192,225,192,127,128,63,0,12,0, + 28,0,56,0,16,0,10,18,36,12,0,0,48,0,56,0, + 28,0,12,0,255,192,255,192,192,0,192,0,192,0,192,0, + 255,0,255,0,192,0,192,0,192,0,192,0,255,192,255,192, + 10,18,36,12,0,0,3,0,7,0,14,0,12,0,255,192, + 255,192,192,0,192,0,192,0,192,0,255,0,255,0,192,0, + 192,0,192,0,192,0,255,192,255,192,10,18,36,12,0,0, + 12,0,30,0,63,0,51,0,255,192,255,192,192,0,192,0, + 192,0,192,0,255,0,255,0,192,0,192,0,192,0,192,0, + 255,192,255,192,10,18,36,12,0,0,51,0,51,0,0,0, + 0,0,255,192,255,192,192,0,192,0,192,0,192,0,255,0, + 255,0,192,0,192,0,192,0,192,0,255,192,255,192,10,18, + 36,12,0,0,48,0,56,0,28,0,12,0,255,192,255,192, + 12,0,12,0,12,0,12,0,12,0,12,0,12,0,12,0, + 12,0,12,0,255,192,255,192,10,18,36,12,0,0,3,0, + 7,0,14,0,12,0,255,192,255,192,12,0,12,0,12,0, + 12,0,12,0,12,0,12,0,12,0,12,0,12,0,255,192, + 255,192,10,18,36,12,0,0,12,0,30,0,63,0,51,0, + 255,192,255,192,12,0,12,0,12,0,12,0,12,0,12,0, + 12,0,12,0,12,0,12,0,255,192,255,192,10,18,36,12, + 0,0,51,0,51,0,0,0,0,0,255,192,255,192,12,0, + 12,0,12,0,12,0,12,0,12,0,12,0,12,0,12,0, + 12,0,255,192,255,192,10,14,28,12,0,0,63,0,63,128, + 49,192,48,192,48,192,48,192,252,192,252,192,48,192,48,192, + 48,192,49,192,63,128,63,0,10,18,36,12,0,0,48,192, + 124,192,207,128,199,0,192,192,224,192,240,192,248,192,220,192, + 206,192,199,192,195,192,193,192,192,192,192,192,192,192,192,192, + 192,192,10,18,36,12,0,0,48,0,56,0,28,0,12,0, + 63,0,127,128,225,192,192,192,192,192,192,192,192,192,192,192, + 192,192,192,192,192,192,225,192,127,128,63,0,10,18,36,12, + 0,0,3,0,7,0,14,0,12,0,63,0,127,128,225,192, + 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, + 225,192,127,128,63,0,10,18,36,12,0,0,12,0,30,0, + 63,0,51,0,0,0,63,0,127,128,225,192,192,192,192,192, + 192,192,192,192,192,192,192,192,192,192,225,192,127,128,63,0, + 10,18,36,12,0,0,48,192,124,192,207,128,199,0,63,0, + 127,128,225,192,192,192,192,192,192,192,192,192,192,192,192,192, + 192,192,192,192,225,192,127,128,63,0,10,18,36,12,0,0, + 51,0,51,0,0,0,0,0,63,0,127,128,225,192,192,192, + 192,192,192,192,192,192,192,192,192,192,192,192,192,192,225,192, + 127,128,63,0,10,10,20,12,0,2,64,128,225,192,115,128, + 63,0,30,0,30,0,63,0,115,128,225,192,64,128,10,14, + 28,12,0,0,63,0,127,128,225,192,193,192,195,192,199,192, + 206,192,220,192,248,192,240,192,224,192,225,192,127,128,63,0, + 10,18,36,12,0,0,48,0,56,0,28,0,12,0,192,192, + 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, + 192,192,192,192,225,192,127,128,63,0,10,18,36,12,0,0, + 3,0,7,0,14,0,12,0,192,192,192,192,192,192,192,192, + 192,192,192,192,192,192,192,192,192,192,192,192,192,192,225,192, + 127,128,63,0,10,18,36,12,0,0,12,0,30,0,63,0, + 51,0,0,0,192,192,192,192,192,192,192,192,192,192,192,192, + 192,192,192,192,192,192,192,192,225,192,127,128,63,0,10,18, + 36,12,0,0,51,0,51,0,0,0,0,0,192,192,192,192, + 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, + 192,192,225,192,127,128,63,0,10,18,36,12,0,0,3,0, + 7,0,14,0,12,0,192,192,192,192,192,192,192,192,192,192, + 225,192,115,128,63,0,30,0,12,0,12,0,12,0,12,0, + 12,0,10,14,28,12,0,0,192,0,192,0,255,0,255,128, + 193,192,192,192,192,192,193,192,255,128,255,0,192,0,192,0, + 192,0,192,0,10,18,36,12,0,254,15,0,31,128,57,192, + 112,192,224,192,193,192,195,128,195,0,195,0,195,128,193,192, + 192,192,192,192,193,192,207,128,207,0,192,0,192,0,10,16, + 32,12,0,0,12,0,14,0,7,0,3,0,0,0,0,0, + 63,192,127,192,224,192,192,192,192,192,193,192,195,192,231,192, + 126,192,60,192,10,16,32,12,0,0,3,0,7,0,14,0, + 12,0,0,0,0,0,63,192,127,192,224,192,192,192,192,192, + 193,192,195,192,231,192,126,192,60,192,10,16,32,12,0,0, + 12,0,30,0,63,0,51,0,0,0,0,0,63,192,127,192, + 224,192,192,192,192,192,193,192,195,192,231,192,126,192,60,192, + 10,16,32,12,0,0,48,192,124,192,207,128,199,0,0,0, + 0,0,63,192,127,192,224,192,192,192,192,192,193,192,195,192, + 231,192,126,192,60,192,10,14,28,12,0,0,51,0,51,0, + 0,0,0,0,63,192,127,192,224,192,192,192,192,192,193,192, + 195,192,231,192,126,192,60,192,10,16,32,12,0,0,12,0, + 30,0,51,0,51,0,30,0,12,0,63,192,127,192,224,192, + 192,192,192,192,193,192,195,192,231,192,126,192,60,192,10,10, + 20,12,0,0,63,0,127,128,237,192,204,192,207,192,207,192, + 204,0,236,0,127,192,63,192,10,14,28,12,0,252,63,0, + 127,128,225,192,192,192,192,0,192,0,192,0,224,0,127,192, + 63,192,12,0,28,0,56,0,16,0,10,16,32,12,0,0, + 48,0,56,0,28,0,12,0,0,0,0,0,63,0,127,128, + 225,192,192,192,255,192,255,192,192,0,224,0,127,192,63,192, + 10,16,32,12,0,0,3,0,7,0,14,0,12,0,0,0, + 0,0,63,0,127,128,225,192,192,192,255,192,255,192,192,0, + 224,0,127,192,63,192,10,16,32,12,0,0,12,0,30,0, + 63,0,51,0,0,0,0,0,63,0,127,128,225,192,192,192, + 255,192,255,192,192,0,224,0,127,192,63,192,10,14,28,12, + 0,0,51,0,51,0,0,0,0,0,63,0,127,128,225,192, + 192,192,255,192,255,192,192,0,224,0,127,192,63,192,6,16, + 16,12,2,0,192,224,112,48,0,0,240,240,48,48,48,48, + 48,48,252,252,6,16,16,12,2,0,12,28,56,48,0,0, + 240,240,48,48,48,48,48,48,252,252,6,16,16,12,2,0, + 48,120,252,204,0,0,240,240,48,48,48,48,48,48,252,252, + 6,14,14,12,2,0,204,204,0,0,240,240,48,48,48,48, + 48,48,252,252,10,17,34,12,0,0,36,0,126,0,60,0, + 60,0,126,0,39,0,3,128,63,192,127,192,225,192,192,192, + 192,192,192,192,192,192,225,192,127,128,63,0,10,16,32,12, + 0,0,48,192,124,192,207,128,199,0,0,0,0,0,207,0, + 223,128,249,192,240,192,224,192,192,192,192,192,192,192,192,192, + 192,192,10,16,32,12,0,0,48,0,56,0,28,0,12,0, + 0,0,0,0,63,0,127,128,225,192,192,192,192,192,192,192, + 192,192,225,192,127,128,63,0,10,16,32,12,0,0,3,0, + 7,0,14,0,12,0,0,0,0,0,63,0,127,128,225,192, + 192,192,192,192,192,192,192,192,225,192,127,128,63,0,10,16, + 32,12,0,0,12,0,30,0,63,0,51,0,0,0,0,0, + 63,0,127,128,225,192,192,192,192,192,192,192,192,192,225,192, + 127,128,63,0,10,16,32,12,0,0,48,192,124,192,207,128, + 199,0,0,0,0,0,63,0,127,128,225,192,192,192,192,192, + 192,192,192,192,225,192,127,128,63,0,10,14,28,12,0,0, + 51,0,51,0,0,0,0,0,63,0,127,128,225,192,192,192, + 192,192,192,192,192,192,225,192,127,128,63,0,10,10,20,12, + 0,2,12,0,12,0,0,0,0,0,255,192,255,192,0,0, + 0,0,12,0,12,0,10,10,20,12,0,0,63,0,127,128, + 227,192,199,192,206,192,220,192,248,192,241,192,127,128,63,0, + 10,16,32,12,0,0,48,0,56,0,28,0,12,0,0,0, + 0,0,192,192,192,192,192,192,192,192,192,192,193,192,195,192, + 231,192,126,192,60,192,10,16,32,12,0,0,3,0,7,0, + 14,0,12,0,0,0,0,0,192,192,192,192,192,192,192,192, + 192,192,193,192,195,192,231,192,126,192,60,192,10,16,32,12, + 0,0,12,0,30,0,63,0,51,0,0,0,0,0,192,192, + 192,192,192,192,192,192,192,192,193,192,195,192,231,192,126,192, + 60,192,10,14,28,12,0,0,51,0,51,0,0,0,0,0, + 192,192,192,192,192,192,192,192,192,192,193,192,195,192,231,192, + 126,192,60,192,10,20,40,12,0,252,3,0,7,0,14,0, + 12,0,0,0,0,0,192,192,192,192,192,192,192,192,192,192, + 192,192,192,192,224,192,127,192,63,192,0,192,1,192,63,128, + 63,0,10,18,36,12,0,252,192,0,192,0,192,0,192,0, + 255,0,255,128,193,192,192,192,192,192,192,192,192,192,193,192, + 255,128,255,0,192,0,192,0,192,0,192,0,10,18,36,12, + 0,252,51,0,51,0,0,0,0,0,192,192,192,192,192,192, + 192,192,192,192,192,192,192,192,224,192,127,192,63,192,0,192, + 1,192,63,128,63,0 +}; + +#endif // HAS_GRAPHICAL_TFT diff --git a/Marlin/src/lcd/tft/ili9328.h b/Marlin/src/lcd/tft/ili9328.h new file mode 100644 index 000000000..85edfa7be --- /dev/null +++ b/Marlin/src/lcd/tft/ili9328.h @@ -0,0 +1,150 @@ +/** + * Marlin 3D Printer Firmware + * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin] + * + * Based on Sprinter and grbl. + * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + */ +#pragma once + +#include "tft.h" + +#include "../../inc/MarlinConfig.h" + +#define ILI9328_DRVCTL_SM 0x0400 +#define ILI9328_DRVCTL_SS 0x0100 // Select the shift direction of outputs from the source driver. 0 - from S1 to S720 / 1 - from S720 to S1 + +#define ILI9328_GATE_SCANCTL_GS 0x8000 // Sets the direction of scan by the gate driver in the range determined by SCN[4:0] and NL[4:0]. + +#define ILI9328_ETMOD_TRI 0x8000 +#define ILI9328_ETMOD_DFM 0x4000 +#define ILI9328_ETMOD_BGR 0x1000 // RGB-BGR ORDER +#define ILI9328_ETMOD_RGB 0x0000 +#define ILI9328_ETMOD_ORG 0x0080 +#define ILI9328_ETMOD_ID1 0x0020 // 0 - Vertical Decrement / 1 - Vertical Increment +#define ILI9328_ETMOD_ID0 0x0010 // 0 - Horizontal Decrement / 1 - Horizontal Increment +#define ILI9328_ETMOD_AM 0x0008 // 0 - Horizontal / 1 - Vertical + +// MKS Robin TFT v1.1 - 320x240 ; Cable on the left side +#define ILI9328_DRVCTL_DATA ILI9328_DRVCTL_SS +#define ILI9328_ETMOD_DATA ILI9328_ETMOD_BGR | ILI9328_ETMOD_ID1 | ILI9328_ETMOD_ID0 | ILI9328_ETMOD_AM + +#define ILI9328_RDDID 0x00 // ID code - 0x9328 +#define ILI9328_DRVCTL 0x01 // Driver Output Control +#define ILI9328_LCDCTL 0x02 // LCD Driving Wave Control +#define ILI9328_ETMOD 0x03 // Entry Mode - Control the GRAM update direction +#define ILI9328_RESIZECTL 0x04 // Resizing Control Register +#define ILI9328_DISCTRL1 0x07 // Display Control 1 +#define ILI9328_DISCTRL2 0x08 // Display Control 2 +#define ILI9328_DISCTRL3 0x09 // Display Control 3 +#define ILI9328_DISCTRL4 0x0A // Display Control 4 +#define ILI9328_RGBCTRL1 0x0C // RGB Display Interface Control 1 +#define ILI9328_FMARKERPOS 0x0D // Frame Marker Position +#define ILI9328_RGBCTRL2 0x0F // RGB Display Interface Control 2 +#define ILI9328_PWCTRL1 0x10 // Power Control 1 +#define ILI9328_PWCTRL2 0x11 // Power Control 2 +#define ILI9328_PWCTRL3 0x12 // Power Control 3 +#define ILI9328_PWCTRL4 0x13 // Power Control 4 + +// With landscape screen orientation 'Horizontal' is Y and 'Vertical' is X +#define ILI9328_HASET 0x20 // GRAM Horizontal Address Set (0-255) +#define ILI9328_VASET 0x21 // GRAM Vertical Address Set (0-511) +#define ILI9328_RAMWR 0x22 // Write data to GRAM +#define ILI9328_RAMRD 0x22 // Read Data from GRAM + +#define ILI9328_PWCTRL7 0x29 // Power Control 7 +#define ILI9328_FRMCTR 0x2B // Frame Rate and Color Control +#define ILI9328_GAMCTRL1 0x30 // Gamma Control +#define ILI9328_GAMCTRL2 0x31 // Gamma Control +#define ILI9328_GAMCTRL3 0x32 // Gamma Control +#define ILI9328_GAMCTRL4 0x35 // Gamma Control +#define ILI9328_GAMCTRL5 0x36 // Gamma Control +#define ILI9328_GAMCTRL6 0x37 // Gamma Control +#define ILI9328_GAMCTRL7 0x38 // Gamma Control +#define ILI9328_GAMCTRL8 0x39 // Gamma Control +#define ILI9328_GAMCTRL9 0x3C // Gamma Control +#define ILI9328_GAMCTRLA 0x3D // Gamma Control + +// With landscape screen orientation 'Horizontal' is Y and 'Vertical' is X +#define ILI9328_HASTART 0x50 // Horizontal Address Start Position (0-255) +#define ILI9328_HAEND 0x51 // Horizontal Address End Position (0-255) +#define ILI9328_VASTART 0x52 // Vertical Address Start Position (0-511) +#define ILI9328_VAEND 0x53 // Vertical Address End Position (0-511) + +#define ILI9328_GATE_SCANCTL1 0x60 // Gate Scan Control +#define ILI9328_GATE_SCANCTL2 0x61 // Gate Scan Control +#define ILI9328_GATE_SCANCTL3 0x6A // Gate Scan Control + +#define ILI9328_PLTPOS1 0x80 // Partial Image 1 Display Position +#define ILI9328_PLTSTART1 0x81 // Partial Image 1 RAM Start Address +#define ILI9328_PLTEND1 0x82 // Partial Image 1 RAM End Address +#define ILI9328_PLTPOS2 0x83 // Partial Image 2 Display Position +#define ILI9328_PLTSTART2 0x84 // Partial Image 2 RAM Start Address +#define ILI9328_PLTEND2 0x85 // Partial Image 2 RAM End Address + +#define ILI9328_IFCTL1 0x90 // Panel Interface Control 1 +#define ILI9328_IFCTL2 0x92 // Panel Interface Control 2 +#define ILI9328_IFCTL4 0x95 // Panel Interface Control 4 +#define ILI9328_IFCTL5 0x97 // Panel Interface Control 5 + +#define ILI9328_OTPWR 0xA1 // OTP VCM Programming Control +#define ILI9328_RDOTP 0xA2 // OTP VCM Status and Enable +#define ILI9328_OTPPKEY 0xA5 // OTP Programming ID Key + + +static const uint16_t ili9328_init[] = { + DATASIZE_16BIT, + ESC_REG(ILI9328_DRVCTL), ILI9328_DRVCTL_DATA, + ESC_REG(ILI9328_LCDCTL), 0x0400, // LCD Driving Wave Control + ESC_REG(ILI9328_ETMOD), ILI9328_ETMOD_DATA, + + ESC_REG(ILI9328_RESIZECTL), 0x0000, + ESC_REG(ILI9328_DISCTRL2), 0x0202, + ESC_REG(ILI9328_DISCTRL3), 0x0000, + ESC_REG(ILI9328_DISCTRL4), 0x0000, + ESC_REG(ILI9328_RGBCTRL1), 0x0000, + ESC_REG(ILI9328_FMARKERPOS), 0x0000, + ESC_REG(ILI9328_RGBCTRL2), 0x0000, + ESC_REG(ILI9328_PWCTRL1), 0x0000, + ESC_REG(ILI9328_PWCTRL2), 0x0007, + ESC_REG(ILI9328_PWCTRL3), 0x0000, + ESC_REG(ILI9328_PWCTRL4), 0x0000, + ESC_REG(ILI9328_DISCTRL1), 0x0001, + ESC_DELAY(200), + ESC_REG(ILI9328_PWCTRL1), 0x1690, + ESC_REG(ILI9328_PWCTRL2), 0x0227, + ESC_DELAY(50), + ESC_REG(ILI9328_PWCTRL3), 0x008C, + ESC_DELAY(50), + ESC_REG(ILI9328_PWCTRL4), 0x1500, + ESC_REG(ILI9328_PWCTRL7), 0x0004, + ESC_REG(ILI9328_FRMCTR), 0x000D, + ESC_DELAY(50), + ESC_REG(ILI9328_GATE_SCANCTL1), 0x2700, + ESC_REG(ILI9328_GATE_SCANCTL2), 0x0001, + ESC_REG(ILI9328_GATE_SCANCTL3), 0x0000, + ESC_REG(ILI9328_PLTPOS1), 0x0000, + ESC_REG(ILI9328_PLTSTART1), 0x0000, + ESC_REG(ILI9328_PLTEND1), 0x0000, + ESC_REG(ILI9328_PLTPOS2), 0x0000, + ESC_REG(ILI9328_PLTSTART2), 0x0000, + ESC_REG(ILI9328_PLTEND2), 0x0000, + ESC_REG(ILI9328_IFCTL1), 0x0010, + ESC_REG(ILI9328_IFCTL2), 0x0600, + ESC_REG(ILI9328_DISCTRL1), 0x0133, + ESC_END +}; diff --git a/Marlin/src/lcd/tft/ili9341.h b/Marlin/src/lcd/tft/ili9341.h new file mode 100644 index 000000000..42a36b7e3 --- /dev/null +++ b/Marlin/src/lcd/tft/ili9341.h @@ -0,0 +1,162 @@ +/** + * Marlin 3D Printer Firmware + * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin] + * + * Based on Sprinter and grbl. + * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + */ +#pragma once + +#include "tft.h" + +#include "../../inc/MarlinConfig.h" + +#define ILI9341_MADCTL_MY 0x80 // Row Address Order +#define ILI9341_MADCTL_MX 0x40 // Column Address Order +#define ILI9341_MADCTL_MV 0x20 // Row/Column Exchange +#define ILI9341_MADCTL_ML 0x10 // Vertical Refresh Order +#define ILI9341_MADCTL_BGR 0x08 // RGB-BGR ORDER +#define ILI9341_MADCTL_RGB 0x00 +#define ILI9341_MADCTL_MH 0x04 // Horizontal Refresh Order + +#define ILI9341_ORIENTATION_UP ILI9341_MADCTL_MY // 240x320 ; Cable on the upper side +#define ILI9341_ORIENTATION_RIGHT ILI9341_MADCTL_MV // 320x240 ; Cable on the right side +#define ILI9341_ORIENTATION_LEFT ILI9341_MADCTL_MY | ILI9341_MADCTL_MX | ILI9341_MADCTL_MV // 320x240 ; Cable on the left side +#define ILI9341_ORIENTATION_DOWN ILI9341_MADCTL_MX // 240x320 ; Cable on the upper side + +#define ILI9341_COLOR_BGR +#define ILI9341_ORIENTATION ILI9341_ORIENTATION_LEFT +#define ILI9341_MADCTL_DATA (ILI9341_ORIENTATION | TERN(ILI9341_COLOR_BGR, ILI9341_MADCTL_BGR, ILI9341_MADCTL_RGB)) + +#define ILI9341_NOP 0x00 // No Operation +#define ILI9341_SWRESET 0x01 // Software Reset +#define ILI9341_RDDIDIF 0x04 // Read display identification information +#define ILI9341_RDDST 0x09 // Read Display Status +#define ILI9341_RDDPM 0x0A // Read Display Power Mode +#define ILI9341_RDDMADCTL 0x0B // Read Display MADCTL +#define ILI9341_RDDCOLMOD 0x0C // Read Display Pixel Format +#define ILI9341_RDDIM 0x0D // Read Display Image Format +#define ILI9341_RDDSM 0x0E // Read Display Signal Mode +#define ILI9341_RDDSDR 0x0F // Read Display Self-Diagnostic Result +#define ILI9341_SPLIN 0x10 // Enter Sleep Mode +#define ILI9341_SLPOUT 0x11 // Sleep Out +#define ILI9341_PTLON 0x12 // Partial Mode ON +#define ILI9341_NORON 0x13 // Normal Display Mode ON +#define ILI9341_DINVOFF 0x20 // Display Inversion OFF +#define ILI9341_DINVON 0x21 // Display Inversion ON +#define ILI9341_GAMSET 0x26 // Gamma Set +#define ILI9341_DISPOFF 0x28 // Display OFF +#define ILI9341_DISPON 0x29 // Display ON +#define ILI9341_CASET 0x2A // Column Address Set +#define ILI9341_PASET 0x2B // Page Address Set +#define ILI9341_RAMWR 0x2C // Memory Write +#define ILI9341_RGBSET 0x2D // Color Set +#define ILI9341_RAMRD 0x2E // Memory Read +#define ILI9341_PLTAR 0x30 // Partial Area +#define ILI9341_VSCRDEF 0x33 // Vertical Scrolling Definition +#define ILI9341_TEOFF 0x34 // Tearing Effect Line OFF +#define ILI9341_TEON 0x35 // Tearing Effect Line ON +#define ILI9341_MADCTL 0x36 // Memory Access Control +#define ILI9341_VSCRSADD 0x37 // Vertical Scrolling Start Address +#define ILI9341_IDMOFF 0x38 // Idle Mode OFF +#define ILI9341_IDMON 0x39 // Idle Mode ON +#define ILI9341_PIXSET 0x3A // COLMOD: Pixel Format Set +#define ILI9341_WRMEMC 0x3C // Write Memory Continue +#define ILI9341_RDMEMC 0x3E // Read Memory Continue +#define ILI9341_STE 0x44 // Set Tear Scanline +#define ILI9341_GSCAN 0x45 // Get Scanline +#define ILI9341_WRDISBV 0x51 // Write Display Brightness +#define ILI9341_RDDISBV 0x52 // Read Display Brightness +#define ILI9341_WRCTRLD 0x53 // Write CTRL Display +#define ILI9341_RDCTRLD 0x54 // Read CTRL Display +#define ILI9341_WRCABC 0x55 // Write Content Adaptive Brightness Control +#define ILI9341_RDCABC 0x56 // Read Content Adaptive Brightness Control +#define ILI9341_WRCABCMB 0x5E // Write CABC Minimum Brightness / Backlight Control 1 +#define ILI9341_RDCABCMB 0x5F // Read CABC Minimum Brightness / Backlight Control 1 +#define ILI9341_RDID1 0xDA // Read ID1 +#define ILI9341_RDID2 0xDB // Read ID2 +#define ILI9341_RDID3 0xDC // Read ID3 + +#define ILI9341_IFMODE 0xB0 // RGB Interface Signal Control +#define ILI9341_FRMCTR1 0xB1 // Frame Rate Control (In Normal Mode/Full Colors) +#define ILI9341_FRMCTR2 0xB2 // Frame Rate Control (In Idle Mode/8 colors) +#define ILI9341_FRMCTR3 0xB3 // Frame Rate control (In Partial Mode/Full Colors) +#define ILI9341_INVTR 0xB4 // Display Inversion Control +#define ILI9341_PRCTR 0xB5 // Blanking Porch Control +#define ILI9341_DISCTRL 0xB6 // Display Function Control +#define ILI9341_ETMOD 0xB7 // Entry Mode Set +#define ILI9341_BLCTL1 0xB8 // Backlight Control 1 +#define ILI9341_BLCTL2 0xB9 // Backlight Control 2 +#define ILI9341_BLCTL3 0xBA // Backlight Control 3 +#define ILI9341_BLCTL4 0xBB // Backlight Control 4 +#define ILI9341_BLCTL5 0xBC // Backlight Control 5 +#define ILI9341_BLCTL7 0xBE // Backlight Control 7 +#define ILI9341_BLCTL8 0xBF // Backlight Control 8 +#define ILI9341_PWCTRL1 0xC0 // Power Control 1 +#define ILI9341_PWCTRL2 0xC1 // Power Control 2 +#define ILI9341_VMCTRL1 0xC5 // VCOM Control 1 +#define ILI9341_VMCTRL2 0xC7 // VCOM Control 2 +#define ILI9341_PWCTRLA 0xCB // Power control A +#define ILI9341_PWCTRLB 0xCF // Power control B +#define ILI9341_NVMWR 0xD0 // NV Memory Write +#define ILI9341_NVMPKEY 0xD1 // NV Memory Protection Key +#define ILI9341_RDNVM 0xD2 // NV Memory Status Read +#define ILI9341_RDID4 0xD3 // Read ID4 - 0x009341 +#define ILI9341_PGAMCTRL 0xE0 // Positive Gamma Correction +#define ILI9341_NGAMCTRL 0xE1 // Negative Gamma Correction +#define ILI9341_DGAMCTRL1 0xE2 // Digital Gamma Control 1 +#define ILI9341_DGAMCTRL2 0xE3 // Digital Gamma Control 2 +#define ILI9341_DRVTCTLA1 0xE8 // Driver timing control A +#define ILI9341_DRVTCTLA2 0xE9 // Driver timing control A +#define ILI9341_DRVTCTLB 0xEA // Driver timing control B +#define ILI9341_PONSEQCTL 0xED // Power on sequence control +#define ILI9341_EN3G 0xF2 // Enable 3G - 3 gamma control +#define ILI9341_IFCTL 0xF6 // Interface Control +#define ILI9341_PUMPRCTL 0xF7 // Pump ratio control + + +static const uint16_t ili9341_init[] = { + DATASIZE_8BIT, + ESC_REG(ILI9341_SWRESET), ESC_DELAY(100), + ESC_REG(ILI9341_SLPOUT), ESC_DELAY(20), +/* + ESC_REG(ILI9341_PWCTRLA), 0x0039, 0x002C, 0x0000, 0x0034, 0x0002, // Power control A + ESC_REG(ILI9341_PWCTRLB), 0x0000, 0x00C1, 0x0030, // Power control B + ESC_REG(ILI9341_DRVTCTLA1), 0x0085, 0x0000, 0x0078, // Driver timing control A + ESC_REG(ILI9341_DRVTCTLB), 0x0000, 0x0000, // Driver timing control B + ESC_REG(ILI9341_PONSEQCTL), 0x0064, 0x0003, 0x0012, 0x0081, // Power on sequence control + ESC_REG(ILI9341_DISCTRL), 0x0008, 0x0082, 0x0027, // Display Function Control + ESC_REG(ILI9341_PUMPRCTL), 0x0020, // Pump ratio control + ESC_REG(ILI9341_VMCTRL1), 0x003E, 0x0028, // VCOM Control 1 + ESC_REG(ILI9341_VMCTRL2), 0x0086, // VCOM Control 2 + ESC_REG(ILI9341_FRMCTR1), 0x0000, 0x0018, // Frame Rate Control (In Normal Mode/Full Colors) + ESC_REG(ILI9341_PWCTRL1), 0x0023, // Power Control 1 + ESC_REG(ILI9341_PWCTRL2), 0x0010, // Power Control 2 +*/ + ESC_REG(ILI9341_MADCTL), ILI9341_MADCTL_DATA, + ESC_REG(ILI9341_PIXSET), 0x0055, + + /* Gamma Correction */ + ESC_REG(ILI9341_EN3G), 0x0000, // 3Gamma Function Disable + ESC_REG(ILI9341_GAMSET), 0x0001, // Gamma curve selected + ESC_REG(ILI9341_PGAMCTRL), 0x000F, 0x0031, 0x002B, 0x000C, 0x000E, 0x0008, 0x004E, 0x00F1, 0x0037, 0x0007, 0x0010, 0x0003, 0x000E, 0x0009, 0x0000, + ESC_REG(ILI9341_NGAMCTRL), 0x0000, 0x000E, 0x0014, 0x0003, 0x0011, 0x0007, 0x0031, 0x00C1, 0x0048, 0x0008, 0x000F, 0x000C, 0x0031, 0x0036, 0x000F, + + ESC_REG(ILI9341_NORON), + ESC_REG(ILI9341_DISPON), + ESC_END +}; diff --git a/Marlin/src/lcd/tft/ili9488.h b/Marlin/src/lcd/tft/ili9488.h new file mode 100644 index 000000000..135f94a57 --- /dev/null +++ b/Marlin/src/lcd/tft/ili9488.h @@ -0,0 +1,156 @@ +/** + * Marlin 3D Printer Firmware + * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin] + * + * Based on Sprinter and grbl. + * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + */ +#pragma once + +#include "tft.h" + +#include "../../inc/MarlinConfig.h" + +#define ILI9488_MADCTL_MY 0x80 // Row Address Order +#define ILI9488_MADCTL_MX 0x40 // Column Address Order +#define ILI9488_MADCTL_MV 0x20 // Row/Column Exchange +#define ILI9488_MADCTL_ML 0x10 // Vertical Refresh Order +#define ILI9488_MADCTL_BGR 0x08 // RGB-BGR ORDER +#define ILI9488_MADCTL_RGB 0x00 +#define ILI9488_MADCTL_MH 0x04 // Horizontal Refresh Order + +#define ILI9488_ORIENTATION_UP ILI9488_MADCTL_MY // 320x480 ; Cable on the upper side +#define ILI9488_ORIENTATION_RIGHT ILI9488_MADCTL_MV // 480x320 ; Cable on the right side +#define ILI9488_ORIENTATION_LEFT ILI9488_MADCTL_MY | ILI9488_MADCTL_MX | ILI9488_MADCTL_MV // 480x320 ; Cable on the left side +#define ILI9488_ORIENTATION_DOWN ILI9488_MADCTL_MX // 320x480 ; Cable on the upper side + +#define ILI9488_COLOR_BGR +#define ILI9488_ORIENTATION ILI9488_ORIENTATION_LEFT +#define ILI9488_MADCTL_DATA (ILI9488_ORIENTATION | TERN(ILI9488_COLOR_BGR, ILI9488_MADCTL_BGR, ILI9488_MADCTL_RGB)) + +#define ILI9488_NOP 0x00 // No Operation +#define ILI9488_SWRESET 0x01 // Software Reset +#define ILI9488_RDDIDIF 0x04 // Read Display Identification Information +#define ILI9488_RDNUMED 0x05 // Read Number of the Errors on DSI +#define ILI9488_RDDST 0x09 // Read Display Status +#define ILI9488_RDDPM 0x0A // Read Display Power Mode +#define ILI9488_RDDMADCTL 0x0B // Read Display MADCTL +#define ILI9488_RDDCOLMOD 0x0C // Read Display COLMOD +#define ILI9488_RDDIM 0x0D // Read Display Image Mode +#define ILI9488_RDDSM 0x0E // Read Display Signal Mode +#define ILI9488_RDDSDR 0x0F // Read Display Self-Diagnostic Result +#define ILI9488_SLPIN 0x10 // Sleep IN +#define ILI9488_SLPOUT 0x11 // Sleep OUT +#define ILI9488_PTLON 0x12 // Partial Mode ON +#define ILI9488_NORON 0x13 // Normal Display Mode ON +#define ILI9488_INVOFF 0x20 // Display Inversion OFF +#define ILI9488_INVON 0x21 // Display Inversion ON +#define ILI9488_ALLPOFF 0x22 // All Pixels OFF +#define ILI9488_ALLPON 0x23 // All Pixels ON +#define ILI9488_DISOFF 0x28 // Display OFF +#define ILI9488_DISON 0x29 // Display ON +#define ILI9488_CASET 0x2A // Column Address Set +#define ILI9488_PASET 0x2B // Page Address Set +#define ILI9488_RAMWR 0x2C // Memory Write +#define ILI9488_RAMRD 0x2E // Memory Read +#define ILI9488_PLTAR 0x30 // Partial Area +#define ILI9488_VSCRDEF 0x33 // Vertical Scrolling Definition +#define ILI9488_TEOFF 0x34 // Tearing Effect Line OFF +#define ILI9488_TEON 0x35 // Tearing Effect Line ON +#define ILI9488_MADCTL 0x36 // Memory Access Control +#define ILI9488_VSCRSADD 0x37 // Vertical Scrolling Start Address +#define ILI9488_IDMOFF 0x38 // Idle Mode OFF +#define ILI9488_IDMON 0x39 // Idle Mode ON +#define ILI9488_COLMOD 0x3A // Interface Pixel Format +#define ILI9488_RAMWRC 0x3C // Memory Write Continue +#define ILI9488_RAMRDRC 0x3E // Memory Read Continue +#define ILI9488_TESLWR 0x44 // Write Tear Scan Line +#define ILI9488_TESLRD 0x45 // Read Scan Line +#define ILI9488_WRDISBV 0x51 // Write Display Brightness Value +#define ILI9488_RDDISBV 0x52 // Read Display Brightness Value +#define ILI9488_WRCTRLD 0x53 // Write Control Display Value +#define ILI9488_RDCTRLD 0x54 // Read Control Display Value +#define ILI9488_WRCABC 0x55 // Write Content Adaptive Brightness Control Value +#define ILI9488_RDCABC 0x56 // Read Content Adaptive Brightness Control Value +#define ILI9488_WRCABCMB 0x5E // Write CABC Minimum Brightness +#define ILI9488_RDCABCMB 0x5F // Read CABC Minimum Brightness +#define ILI9488_RDABCSDR 0x68 // Read Automatic Brightness Control Self-diagnostic Result +#define ILI9488_RDID1 0xDA // Read ID1 +#define ILI9488_RDID2 0xDB // Read ID2 +#define ILI9488_RDID3 0xDC // Read ID3 + +#define ILI9488_IFMODE 0xB0 // Interface Mode Control +#define ILI9488_FRMCTR1 0xB1 // Frame Rate Control (In Normal Mode/Full Colors) +#define ILI9488_FRMCTR2 0xB2 // Frame Rate Control (In Idle Mode/8 Colors) +#define ILI9488_FRMCTR3 0xB3 // Frame Rate Control (In Partial Mode/Full Colors) +#define ILI9488_INVTR 0xB4 // Display Inversion Control +#define ILI9488_PRCTR 0xB5 // Blanking Porch Control +#define ILI9488_DISCTRL 0xB6 // Display Function Control +#define ILI9488_ETMOD 0xB7 // Entry Mode Set +#define ILI9488_CECTRL1 0xB9 // Color Enhancement Control 1 +#define ILI9488_CECTRL2 0xBA // Color Enhancement Control 2 +#define ILI9488_HSLCTRL 0xBE // HS Lanes Control +#define ILI9488_PWCTRL1 0xC0 // Power Control 1 +#define ILI9488_PWCTRL2 0xC1 // Power Control 2 +#define ILI9488_PWCTRL3 0xC2 // Power Control 3 (For Normal Mode) +#define ILI9488_PWCTRL4 0xC3 // Power Control 4 (For Idle Mode) +#define ILI9488_PWCTRL5 0xC4 // Power Control 5 (For Partial Mode) +#define ILI9488_VMCTRL 0xC5 // VCOM Control +#define ILI9488_CABCCTRL1 0xC6 // CABC Control 1 +#define ILI9488_CABCCTRL2 0xC8 // CABC Control 2 +#define ILI9488_CABCCTRL3 0xC9 // CABC Control 3 +#define ILI9488_CABCCTRL4 0xCA // CABC Control 4 +#define ILI9488_CABCCTRL5 0xCB // CABC Control 5 +#define ILI9488_CABCCTRL6 0xCC // CABC Control 6 +#define ILI9488_CABCCTRL7 0xCD // CABC Control 7 +#define ILI9488_CABCCTRL8 0xCE // CABC Control 8 +#define ILI9488_CABCCTRL9 0xCF // CABC Control 9 +#define ILI9488_NVMWR 0xD0 // NV Memory Write +#define ILI9488_NVMPKEY 0xD1 // NV Memory Protection Key +#define ILI9488_RDNVM 0xD2 // NV Memory Status Read +#define ILI9488_RDID4 0xD3 // Read ID4 - 0x009488 +#define ILI9488_ADJCTL1 0xD7 // Adjust Control 1 +#define ILI9488_RDIDV 0xD8 // Read ID Version +#define ILI9488_PGAMCTRL 0xE0 // Positive Gamma Control +#define ILI9488_NGAMCTRL 0xE1 // Negative Gamma Control +#define ILI9488_DGAMCTRL1 0xE2 // Ditigal Gamma Control 1 +#define ILI9488_DGAMCTRL2 0xE3 // Ditigal Gamma Control 2 +#define ILI9488_SETIMAGE 0xE9 // Set Image Function +#define ILI9488_ADJCTL2 0xF2 // Adjust Control 2 +#define ILI9488_ADJCTL3 0xF7 // Adjust Control 3 +#define ILI9488_ADJCTL4 0xF8 // Adjust Control 4 +#define ILI9488_ADJCTL5 0xF9 // Adjust Control 5 +#define ILI9488_RDEXTC 0xFB // Read EXTC command is SPI mode +#define ILI9488_ADJCTL6 0xFC // Adjust Control 6 +#define ILI9488_ADJCTL7 0xFF // Adjust Control 7 + +static const uint16_t ili9488_init[] = { + DATASIZE_8BIT, + ESC_REG(ILI9488_SWRESET), ESC_DELAY(120), + ESC_REG(ILI9488_SLPOUT), ESC_DELAY(20), + + ESC_REG(ILI9488_MADCTL), ILI9488_MADCTL_DATA, + ESC_REG(ILI9488_COLMOD), 0x0055, + + /* Gamma Correction. */ + ESC_REG(ILI9488_PGAMCTRL), 0x0000, 0x0003, 0x0009, 0x0008, 0x0016, 0x000A, 0x003F, 0x0078, 0x004C, 0x0009, 0x000A, 0x0008, 0x0016, 0x001A, 0x000F, + ESC_REG(ILI9488_NGAMCTRL), 0x0000, 0x0016, 0x0019, 0x0003, 0x000F, 0x0005, 0x0032, 0x0045, 0x0046, 0x0004, 0x000E, 0x000D, 0x0035, 0x0037, 0x000F, + + ESC_REG(ILI9488_NORON), + ESC_REG(ILI9488_DISON), + ESC_END +}; diff --git a/Marlin/src/lcd/tft/images/back_32x32x4.cpp b/Marlin/src/lcd/tft/images/back_32x32x4.cpp new file mode 100644 index 000000000..8f5809d5d --- /dev/null +++ b/Marlin/src/lcd/tft/images/back_32x32x4.cpp @@ -0,0 +1,62 @@ +/** + * Marlin 3D Printer Firmware + * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin] + * + * Based on Sprinter and grbl. + * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + */ + +#include "../../../inc/MarlinConfigPre.h" + +#if HAS_GRAPHICAL_TFT + +extern const uint8_t back_32x32x4[512] = { + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x75, 0x78, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x66, 0x78, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x76, 0xe5, 0x78, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x87, 0x6f, 0xe5, 0x78, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x76, 0xff, 0xe5, 0x78, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x87, 0x6e, 0xff, 0xe5, 0x78, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x76, 0xef, 0xff, 0xe5, 0x66, 0x77, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x87, 0x6e, 0xff, 0xff, 0xd5, 0x55, 0x66, 0x67, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x76, 0xff, 0xff, 0xff, 0xfe, 0xb8, 0x55, 0x56, 0x67, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x87, 0x6f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfd, 0x85, 0x56, 0x67, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x76, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x95, 0x66, 0x78, 0x88, 0x88, 0x88, + 0x87, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfd, 0x65, 0x66, 0x88, 0x88, 0x88, + 0x78, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf7, 0x56, 0x78, 0x88, 0x88, + 0x78, 0xef, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x85, 0x67, 0x88, 0x88, + 0x87, 0x8e, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf7, 0x56, 0x78, 0x88, + 0x88, 0x77, 0xef, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x65, 0x68, 0x88, + 0x88, 0x87, 0x8e, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xd5, 0x67, 0x88, + 0x88, 0x88, 0x77, 0xef, 0xff, 0xff, 0xfc, 0xde, 0xef, 0xff, 0xff, 0xff, 0xff, 0xf9, 0x56, 0x88, + 0x88, 0x88, 0x87, 0x7e, 0xff, 0xff, 0xd5, 0x67, 0x77, 0x8a, 0xdf, 0xff, 0xff, 0xff, 0x56, 0x78, + 0x88, 0x88, 0x88, 0x77, 0xef, 0xff, 0xe5, 0x78, 0x87, 0x77, 0x77, 0xae, 0xff, 0xff, 0x95, 0x68, + 0x88, 0x88, 0x88, 0x87, 0x7e, 0xff, 0xe5, 0x78, 0x88, 0x88, 0x88, 0x77, 0xaf, 0xff, 0xf5, 0x58, + 0x88, 0x88, 0x88, 0x88, 0x77, 0xef, 0xe5, 0x78, 0x88, 0x88, 0x88, 0x88, 0x77, 0xdf, 0xf8, 0x57, + 0x88, 0x88, 0x88, 0x88, 0x87, 0x7f, 0xe6, 0x78, 0x88, 0x88, 0x88, 0x88, 0x87, 0x7b, 0xfc, 0x56, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x77, 0xd7, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x77, 0xbf, 0x66, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x7d, 0x97, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x78, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x78, 0x97, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x78, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, +}; + +#endif // HAS_GRAPHICAL_TFT diff --git a/Marlin/src/lcd/tft/images/background_320x30x16.cpp b/Marlin/src/lcd/tft/images/background_320x30x16.cpp new file mode 100644 index 000000000..f6eca2d6d --- /dev/null +++ b/Marlin/src/lcd/tft/images/background_320x30x16.cpp @@ -0,0 +1,60 @@ +/** + * Marlin 3D Printer Firmware + * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin] + * + * Based on Sprinter and grbl. + * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + */ + +#include "../../../inc/MarlinConfigPre.h" + +#if HAS_GRAPHICAL_TFT + +extern const uint16_t background_320x30x16[9600] = { + 0x10f2, 0x18d2, 0x18d2, 0x10d2, 0x18d2, 0x18d2, 0x18d2, 0x18d2, 0x18d2, 0x18d2, 0x18d2, 0x18d2, 0x18f2, 0x18f2, 0x18f2, 0x18f2, 0x18f2, 0x18f2, 0x18f2, 0x18f2, 0x18f2, 0x18f2, 0x18f2, 0x18f2, 0x18d2, 0x18f2, 0x18f2, 0x18d2, 0x18d2, 0x18f2, 0x18f2, 0x18f2, 0x18f2, 0x18f2, 0x18f2, 0x18f2, 0x18f2, 0x18f2, 0x18f2, 0x18f2, 0x18f2, 0x18f2, 0x18f2, 0x18f2, 0x18f2, 0x18f2, 0x18f2, 0x18f2, 0x18f2, 0x18f3, 0x18f3, 0x18f3, 0x18f3, 0x18f3, 0x18f2, 0x18f3, 0x18f3, 0x20f2, 0x18f3, 0x18f3, 0x18f3, 0x18f3, 0x18f3, 0x18f3, 0x20f3, 0x20f3, 0x20f3, 0x20f3, 0x20f3, 0x20f3, 0x20f3, 0x20f3, 0x20f3, 0x20f3, 0x20f3, 0x20f3, 0x20f3, 0x20f3, 0x20f3, 0x20f3, 0x20f3, 0x20f3, 0x20f3, 0x2112, 0x20f3, 0x20f3, 0x20f3, 0x20f3, 0x2113, 0x20f2, 0x20f3, 0x20f2, 0x20f3, 0x20f3, 0x20f3, 0x20f3, 0x20f3, 0x20f3, 0x20f3, 0x20f3, 0x20f3, 0x20f3, 0x20f3, 0x20f3, 0x20f3, 0x20f3, 0x20f3, 0x20f3, 0x2113, 0x28f3, 0x2113, 0x20f3, 0x2113, 0x28f3, 0x20f3, 0x2113, 0x2113, 0x2113, 0x2113, 0x2113, 0x2113, 0x2113, 0x28f3, 0x28f3, 0x2113, 0x2113, 0x2113, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2113, 0x2913, 0x2913, 0x2913, 0x2914, 0x2913, 0x2913, 0x28f3, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x28f3, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x28f3, 0x2913, 0x2913, 0x2914, 0x2913, 0x2913, 0x2913, 0x2113, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2113, 0x2113, 0x2113, 0x28f3, 0x28f3, 0x2113, 0x2113, 0x2113, 0x2113, 0x2113, 0x2113, 0x2113, 0x20f3, 0x28f3, 0x2113, 0x20f3, 0x2113, 0x28f3, 0x2113, 0x20f3, 0x20f3, 0x20f3, 0x20f3, 0x20f3, 0x20f3, 0x20f3, 0x20f3, 0x20f3, 0x20f3, 0x20f3, 0x20f3, 0x20f3, 0x20f3, 0x20f3, 0x20f3, 0x20f2, 0x20f3, 0x20f2, 0x2113, 0x20f3, 0x20f3, 0x20f3, 0x20f3, 0x2112, 0x20f3, 0x20f3, 0x20f3, 0x20f3, 0x20f3, 0x20f3, 0x20f3, 0x20f3, 0x20f3, 0x20f3, 0x20f3, 0x20f3, 0x20f3, 0x20f3, 0x20f3, 0x20f3, 0x20f3, 0x20f3, 0x20f3, 0x18f3, 0x18f3, 0x18f3, 0x18f3, 0x18f3, 0x18f3, 0x20f2, 0x18f3, 0x18f3, 0x18f2, 0x18f3, 0x18f3, 0x18f3, 0x18f3, 0x18f3, 0x18f2, 0x18f2, 0x18f2, 0x18f2, 0x18f2, 0x18f2, 0x18f2, 0x18f2, 0x18f2, 0x18f2, 0x18f2, 0x18f2, 0x18f2, 0x18f2, 0x18f2, + 0x1d7c, 0x1d7c, 0x1d7c, 0x1d7c, 0x1d7c, 0x1d7c, 0x1d7c, 0x1d7c, 0x1d7c, 0x1d7c, 0x1d7c, 0x1d7c, 0x1d9c, 0x1d9c, 0x1d9c, 0x1d9c, 0x1d9c, 0x1d9c, 0x1d9c, 0x1d9c, 0x1d9d, 0x1d9d, 0x1d9d, 0x1d9d, 0x259c, 0x1dbc, 0x1d9d, 0x259d, 0x1d9c, 0x259c, 0x259c, 0x259c, 0x259c, 0x259c, 0x25bd, 0x25bd, 0x25bd, 0x25bd, 0x25bd, 0x25bd, 0x25bd, 0x25bd, 0x25bd, 0x25bd, 0x25bd, 0x25bd, 0x25bd, 0x25bd, 0x25dd, 0x25dd, 0x25bd, 0x25bd, 0x1ddd, 0x25dd, 0x25dd, 0x25dd, 0x25bd, 0x25dd, 0x25dd, 0x25dd, 0x25dd, 0x25dd, 0x25dd, 0x25dd, 0x25dd, 0x25dd, 0x25fd, 0x25fd, 0x25fd, 0x25fd, 0x25fd, 0x25fd, 0x25fd, 0x25fd, 0x25fd, 0x25fd, 0x25fd, 0x25fd, 0x2dfd, 0x25fd, 0x25fd, 0x25fd, 0x25fd, 0x2dfd, 0x2dfd, 0x2dfd, 0x2dfd, 0x2dfd, 0x25fd, 0x2dfe, 0x2dfd, 0x2dfd, 0x2e1d, 0x2e1d, 0x2e1d, 0x2e1d, 0x2e1d, 0x2e1d, 0x2e1d, 0x2e1d, 0x2e1d, 0x2e1d, 0x2e1d, 0x2e1d, 0x2e1d, 0x2e1d, 0x2e1d, 0x2e1d, 0x2e1d, 0x2e1d, 0x2e3e, 0x2e1d, 0x2e1d, 0x2e1d, 0x2e1d, 0x2e3d, 0x2e3d, 0x2e3e, 0x2e3e, 0x2e3e, 0x2e3d, 0x2e3d, 0x2e3d, 0x2e3d, 0x2e3d, 0x2e3d, 0x2e3d, 0x2e3d, 0x2e3d, 0x2e3d, 0x2e3d, 0x2e3d, 0x2e3d, 0x2e3d, 0x2e3d, 0x2e3d, 0x2e3d, 0x2e3d, 0x2e3d, 0x2e3d, 0x2e3e, 0x2e3e, 0x2e3e, 0x2e3d, 0x2e3e, 0x2e3e, 0x2e3e, 0x2e3e, 0x2e3e, 0x2e3e, 0x2e3e, 0x2e3e, 0x2e3e, 0x2e3e, 0x2e3e, 0x2e3e, 0x2e5e, 0x2e5e, 0x2e5e, 0x2e5e, 0x2e5e, 0x2e5e, 0x2e5e, 0x2e5e, 0x2e5e, 0x2e5e, 0x2e5e, 0x2e5e, 0x2e5e, 0x2e5e, 0x2e5e, 0x2e5e, 0x365e, 0x2e5e, 0x2e5e, 0x2e5e, 0x2e3e, 0x365e, 0x2e5e, 0x2e5e, 0x2e5e, 0x365e, 0x2e5e, 0x2e5e, 0x2e5e, 0x2e5e, 0x2e5e, 0x2e5e, 0x2e5e, 0x2e5e, 0x2e5e, 0x2e5e, 0x2e5e, 0x2e5e, 0x2e5e, 0x2e5e, 0x2e5e, 0x2e5e, 0x2e3e, 0x2e3e, 0x2e3e, 0x2e3e, 0x2e3e, 0x2e3e, 0x2e3e, 0x2e3e, 0x2e3e, 0x2e3e, 0x2e3e, 0x2e3e, 0x2e3d, 0x2e3e, 0x2e3e, 0x2e3e, 0x2e3d, 0x2e3d, 0x2e3d, 0x2e3d, 0x2e3d, 0x2e3d, 0x2e3d, 0x2e3d, 0x2e3d, 0x2e3d, 0x2e3d, 0x2e3d, 0x2e3d, 0x2e3d, 0x2e3d, 0x2e3d, 0x2e3d, 0x2e3d, 0x2e3d, 0x2e3d, 0x2e3e, 0x2e3e, 0x2e3e, 0x2e3d, 0x2e3d, 0x2e1d, 0x2e1d, 0x2e1d, 0x2e1d, 0x2e3e, 0x2e1d, 0x2e1d, 0x2e1d, 0x2e1d, 0x2e1d, 0x2e1d, 0x2e1d, 0x2e1d, 0x2e1d, 0x2e1d, 0x2e1d, 0x2e1d, 0x2e1d, 0x2e1d, 0x2e1d, 0x2e1d, 0x2e1d, 0x2e1d, 0x2dfd, 0x2dfd, 0x2dfe, 0x25fd, 0x2dfd, 0x2dfd, 0x2dfd, 0x2dfd, 0x2dfd, 0x25fd, 0x25fd, 0x25fd, 0x25fd, 0x2dfd, 0x25fd, 0x25fd, 0x25fd, 0x25fd, 0x25fd, 0x25fd, 0x25fd, 0x25fd, 0x25fd, 0x25fd, 0x25fd, 0x25fd, 0x25dd, 0x25dd, 0x25dd, 0x25dd, 0x25dd, 0x25dd, 0x25dd, 0x25dd, 0x25dd, 0x25bd, 0x25dd, 0x25dd, 0x25dd, 0x1ddd, 0x25bd, 0x25bd, 0x25dd, 0x25dd, 0x25bd, 0x25bd, 0x25bd, 0x25bd, 0x25bd, 0x25bd, 0x25bd, 0x25bd, 0x25bd, 0x25bd, 0x25bd, 0x25bd, 0x25bd, 0x25bd, + 0x1c7c, 0x1c7c, 0x1c7c, 0x1c7b, 0x1c7c, 0x1c7c, 0x1c7c, 0x1c7c, 0x1c7c, 0x1c7c, 0x1c9c, 0x1c9c, 0x1c9c, 0x1c9c, 0x1c9c, 0x1c9c, 0x1c9c, 0x1c9c, 0x1c9c, 0x1c9c, 0x1c9c, 0x1c9c, 0x249c, 0x1c9c, 0x1d9d, 0x1d7c, 0x1cfc, 0x1c9c, 0x1cbc, 0x1cbc, 0x1cbc, 0x1cbc, 0x1cbc, 0x1cbc, 0x1cbc, 0x1cbc, 0x1cbc, 0x1cbc, 0x1cbc, 0x1cbc, 0x1cbc, 0x1cbc, 0x1cbc, 0x1cbc, 0x24bc, 0x1cbc, 0x1cbc, 0x24bc, 0x24bc, 0x24bc, 0x1cbc, 0x24dc, 0x24dc, 0x24dc, 0x253d, 0x25bd, 0x253d, 0x24dd, 0x24bc, 0x24bc, 0x24dd, 0x24dd, 0x24dd, 0x24dd, 0x24dd, 0x24dd, 0x24dd, 0x24dd, 0x24dd, 0x24dd, 0x24dd, 0x24dd, 0x24dd, 0x24dd, 0x24dd, 0x24dd, 0x24fd, 0x24dc, 0x24dc, 0x24fd, 0x24fd, 0x24fc, 0x24dd, 0x24fd, 0x251c, 0x25fd, 0x255d, 0x24fd, 0x24fd, 0x24fd, 0x24fd, 0x24fc, 0x24fd, 0x24fd, 0x24fd, 0x24fd, 0x24fd, 0x24fd, 0x24fd, 0x24fd, 0x2cfd, 0x2cfd, 0x2cfd, 0x2cfd, 0x2cfd, 0x2cfd, 0x2cfd, 0x2cfd, 0x251d, 0x24fd, 0x24fd, 0x251d, 0x2d1d, 0x24fd, 0x2cfd, 0x25bd, 0x25bd, 0x253c, 0x2cfc, 0x2d1d, 0x251d, 0x2cfd, 0x2cfd, 0x2d1d, 0x2d1d, 0x2d1d, 0x2d1d, 0x2d1d, 0x2d1d, 0x2d1d, 0x2d1d, 0x2d1d, 0x2d1d, 0x2d1d, 0x2d1d, 0x2d1d, 0x2d1d, 0x2d1d, 0x2d1d, 0x2d1d, 0x2d1d, 0x2d1d, 0x2d1d, 0x2d1d, 0x2d1c, 0x2d5d, 0x2dde, 0x2d1d, 0x2d1d, 0x2d1d, 0x2d1d, 0x2d1d, 0x2d1d, 0x2d1d, 0x2d1d, 0x2d1d, 0x2d3d, 0x2d3d, 0x2d3d, 0x2d3d, 0x2d3d, 0x2d3d, 0x2d3d, 0x2d3d, 0x2d3d, 0x2d3d, 0x2d3d, 0x2d3d, 0x2d3d, 0x2d3d, 0x2d3d, 0x2d3d, 0x2d1d, 0x2d3d, 0x2d1d, 0x2d1d, 0x2e1d, 0x2d1d, 0x2d1d, 0x2d1d, 0x2d3d, 0x2d1d, 0x2d3d, 0x2d3d, 0x2d3d, 0x2d3d, 0x2d3d, 0x2d3d, 0x2d3d, 0x2d3d, 0x2d3d, 0x2d3d, 0x2d3d, 0x2d3d, 0x2d3d, 0x2d3d, 0x2d3d, 0x2d3d, 0x2d1d, 0x2d1d, 0x2d1d, 0x2d1d, 0x2d1d, 0x2d1d, 0x2d1d, 0x2d1d, 0x2d1d, 0x2dde, 0x2d5d, 0x2d1c, 0x2d1d, 0x2d1d, 0x2d1d, 0x2d1d, 0x2d1d, 0x2d1d, 0x2d1d, 0x2d1d, 0x2d1d, 0x2d1d, 0x2d1d, 0x2d1d, 0x2d1d, 0x2d1d, 0x2d1d, 0x2d1d, 0x2d1d, 0x2d1d, 0x2d1d, 0x2d1d, 0x2d1d, 0x2cfd, 0x2cfd, 0x251d, 0x2d1d, 0x2cfc, 0x253c, 0x25bd, 0x25bd, 0x2cfd, 0x24fd, 0x2d1d, 0x251d, 0x24fd, 0x24fd, 0x251d, 0x2cfd, 0x2cfd, 0x2cfd, 0x2cfd, 0x2cfd, 0x2cfd, 0x2cfd, 0x2cfd, 0x24fd, 0x24fd, 0x24fd, 0x24fd, 0x24fd, 0x24fd, 0x24fd, 0x24fd, 0x24fc, 0x24fd, 0x24fd, 0x24fd, 0x24fd, 0x255d, 0x25fd, 0x251c, 0x24fd, 0x24dd, 0x24fc, 0x24fd, 0x24fd, 0x24dc, 0x24dc, 0x24fd, 0x24dd, 0x24dd, 0x24dd, 0x24dd, 0x24dd, 0x24dd, 0x24dd, 0x24dd, 0x24dd, 0x24dd, 0x24dd, 0x24dd, 0x24dd, 0x24dd, 0x24dd, 0x24dd, 0x24bc, 0x24bc, 0x24dd, 0x253d, 0x25bd, 0x253d, 0x24dc, 0x24dc, 0x24dc, 0x1cbc, 0x24bc, 0x24bc, 0x24bc, 0x1cbc, 0x1cbc, 0x24bc, 0x1cbc, 0x1cbc, 0x1cbc, 0x1cbc, 0x1cbc, 0x1cbc, 0x1cbc, 0x1cbc, 0x1cbc, 0x1cbc, + 0x1abb, 0x1abb, 0x1abb, 0x1abb, 0x1abb, 0x1abb, 0x1abb, 0x1abb, 0x1abb, 0x1abb, 0x1abb, 0x1abb, 0x1abb, 0x1abb, 0x1abb, 0x1abb, 0x1adb, 0x1adb, 0x1adb, 0x1adb, 0x1b3b, 0x1cfc, 0x157c, 0x1c1c, 0x1adb, 0x1adb, 0x1adb, 0x1adb, 0x1adb, 0x1adb, 0x1adb, 0x1adb, 0x1adb, 0x1adb, 0x1adb, 0x1adb, 0x1adb, 0x1adb, 0x1adb, 0x1adb, 0x1adb, 0x1adb, 0x22db, 0x22db, 0x1adb, 0x1adb, 0x1adb, 0x1adb, 0x22db, 0x22db, 0x22fb, 0x231c, 0x1d1c, 0x1d5c, 0x235b, 0x22dc, 0x22db, 0x22dc, 0x22fb, 0x22fc, 0x22dc, 0x22dc, 0x22fc, 0x22fc, 0x22fc, 0x22fc, 0x22fc, 0x22fc, 0x22fb, 0x22fb, 0x22fb, 0x22fb, 0x22fc, 0x22fc, 0x22fc, 0x22fc, 0x22fc, 0x22fc, 0x22fc, 0x22fc, 0x231b, 0x22fc, 0x233c, 0x253c, 0x1cfd, 0x22fc, 0x22fc, 0x22fb, 0x22fc, 0x22fc, 0x22fc, 0x22fc, 0x22fc, 0x22fc, 0x22fc, 0x22fc, 0x22fc, 0x22fc, 0x22fc, 0x22fc, 0x22fc, 0x22fc, 0x22fc, 0x22fc, 0x231c, 0x231c, 0x231c, 0x231c, 0x231c, 0x2afc, 0x2afc, 0x231c, 0x2b1c, 0x2b1c, 0x259c, 0x247c, 0x231c, 0x231c, 0x2b1c, 0x231c, 0x231c, 0x2b1c, 0x231c, 0x2b1c, 0x2b1c, 0x2b1c, 0x2b1c, 0x2b1c, 0x2b1c, 0x2b1c, 0x2b1c, 0x2b1c, 0x2b1c, 0x2b1c, 0x2b1c, 0x2b1c, 0x2b1c, 0x2b1c, 0x2b1c, 0x2b1c, 0x2b1c, 0x2b1c, 0x2b1c, 0x2b1c, 0x2b1c, 0x25bd, 0x2bbc, 0x2b1c, 0x2b1c, 0x2b1c, 0x2b1c, 0x2b1c, 0x2b1c, 0x2b1c, 0x2b1c, 0x2b1c, 0x2b1c, 0x2b1c, 0x2b1c, 0x2b1c, 0x2b1c, 0x2b1c, 0x2b1c, 0x2b1c, 0x2b1c, 0x2b1c, 0x2b1c, 0x2b1c, 0x2b1c, 0x2b1c, 0x2b1c, 0x2b1c, 0x2b1c, 0x231c, 0x2b1c, 0x2b1c, 0x25dd, 0x2b1c, 0x2b1c, 0x2b1c, 0x231c, 0x2b1c, 0x2b1c, 0x2b1c, 0x2b1c, 0x2b1c, 0x2b1c, 0x2b1c, 0x2b1c, 0x2b1c, 0x2b1c, 0x2b1c, 0x2b1c, 0x2b1c, 0x2b1c, 0x2b1c, 0x2b1c, 0x2b1c, 0x2b1c, 0x2b1c, 0x2b1c, 0x2b1c, 0x2b1c, 0x2b1c, 0x2b1c, 0x2b1c, 0x2b1c, 0x2bbc, 0x25bd, 0x2b1c, 0x2b1c, 0x2b1c, 0x2b1c, 0x2b1c, 0x2b1c, 0x2b1c, 0x2b1c, 0x2b1c, 0x2b1c, 0x2b1c, 0x2b1c, 0x2b1c, 0x2b1c, 0x2b1c, 0x2b1c, 0x2b1c, 0x2b1c, 0x2b1c, 0x2b1c, 0x2b1c, 0x2b1c, 0x231c, 0x2b1c, 0x231c, 0x231c, 0x2b1c, 0x231c, 0x231c, 0x247c, 0x259c, 0x2b1c, 0x2b1c, 0x231c, 0x2afc, 0x2afc, 0x231c, 0x231c, 0x231c, 0x231c, 0x231c, 0x22fc, 0x22fc, 0x22fc, 0x22fc, 0x22fc, 0x22fc, 0x22fc, 0x22fc, 0x22fc, 0x22fc, 0x22fc, 0x22fc, 0x22fc, 0x22fc, 0x22fc, 0x22fc, 0x22fb, 0x22fc, 0x22fc, 0x1cfd, 0x253c, 0x233c, 0x22fc, 0x231b, 0x22fc, 0x22fc, 0x22fc, 0x22fc, 0x22fc, 0x22fc, 0x22fc, 0x22fc, 0x22fb, 0x22fb, 0x22fb, 0x22fb, 0x22fc, 0x22fc, 0x22fc, 0x22fc, 0x22fc, 0x22fc, 0x22dc, 0x22dc, 0x22fc, 0x22fb, 0x22dc, 0x22db, 0x22dc, 0x235b, 0x1d5c, 0x1d1c, 0x231c, 0x22fb, 0x22db, 0x22db, 0x1adb, 0x1adb, 0x1adb, 0x1adb, 0x22db, 0x22db, 0x1adb, 0x1adb, 0x1adb, 0x1adb, 0x1adb, 0x1adb, 0x1adb, 0x1adb, + 0x137b, 0x137b, 0x137b, 0x137b, 0x137b, 0x137b, 0x137b, 0x137b, 0x137b, 0x137b, 0x137b, 0x1b7b, 0x137b, 0x1b5b, 0x1b7b, 0x137b, 0x137b, 0x137b, 0x139b, 0x1bbb, 0x14fb, 0x153c, 0x13fb, 0x1b7b, 0x139b, 0x1b7b, 0x1b7c, 0x1b9b, 0x1b7b, 0x1b7b, 0x1b9b, 0x1b9b, 0x1b9b, 0x1b9b, 0x1b9b, 0x1b9b, 0x1b9b, 0x1b9c, 0x1b9b, 0x1b9b, 0x1b9b, 0x139c, 0x1b9b, 0x1b9b, 0x1b9b, 0x1b9b, 0x1b9b, 0x1b9b, 0x1b9b, 0x1b9c, 0x1b9b, 0x1d3c, 0x1d5c, 0x1bfb, 0x1b9c, 0x1bbb, 0x1b9b, 0x1bbc, 0x1b9b, 0x1b9b, 0x1bbb, 0x1bbb, 0x1bbb, 0x1bbb, 0x1bbb, 0x1bbb, 0x1bbb, 0x1bbb, 0x1bbc, 0x1bbb, 0x1bbb, 0x1bbc, 0x1bbb, 0x1bbc, 0x1bbb, 0x1bbb, 0x1bbc, 0x1bbb, 0x1bbc, 0x1bbb, 0x1bbc, 0x1bbb, 0x1cdc, 0x1d7d, 0x23fc, 0x1bdc, 0x1bbc, 0x1bbc, 0x1bbc, 0x1bbc, 0x1bbc, 0x1bbc, 0x23bc, 0x23bc, 0x23bc, 0x23bc, 0x23bc, 0x23bc, 0x23bc, 0x23bc, 0x1bbc, 0x1bbc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23bc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x247c, 0x1d9c, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x241c, 0x259d, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x1dbd, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x259d, 0x241c, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x1d9c, 0x247c, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23bc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x1bbc, 0x1bbc, 0x23bc, 0x23bc, 0x23bc, 0x23bc, 0x23bc, 0x23bc, 0x23bc, 0x23bc, 0x1bbc, 0x1bbc, 0x1bbc, 0x1bbc, 0x1bbc, 0x1bbc, 0x1bdc, 0x23fc, 0x1d7d, 0x1cdc, 0x1bbb, 0x1bbc, 0x1bbb, 0x1bbc, 0x1bbb, 0x1bbc, 0x1bbb, 0x1bbb, 0x1bbc, 0x1bbb, 0x1bbc, 0x1bbb, 0x1bbb, 0x1bbc, 0x1bbb, 0x1bbb, 0x1bbb, 0x1bbb, 0x1bbb, 0x1bbb, 0x1bbb, 0x1bbb, 0x1b9b, 0x1b9b, 0x1bbc, 0x1b9b, 0x1bbb, 0x1b9c, 0x1bfb, 0x1d5c, 0x1d3c, 0x1b9b, 0x1b9c, 0x1b9b, 0x1b9b, 0x1b9b, 0x1b9b, 0x1b9b, 0x1b9b, 0x1b9b, 0x139c, 0x1b9b, 0x1b9b, 0x1b9b, 0x1b9c, 0x1b9b, 0x1b9b, 0x1b9b, + 0x135b, 0x135b, 0x135b, 0x135b, 0x135b, 0x135b, 0x135b, 0x135b, 0x135b, 0x135b, 0x137b, 0x135a, 0x135a, 0x137b, 0x135a, 0x135b, 0x139b, 0x14bb, 0x14fb, 0x13fb, 0x137b, 0x137b, 0x135b, 0x137b, 0x137a, 0x137a, 0x137b, 0x137b, 0x137b, 0x137b, 0x137b, 0x137b, 0x137b, 0x137b, 0x137b, 0x137b, 0x137b, 0x137b, 0x1b7b, 0x1b7b, 0x137b, 0x137b, 0x137b, 0x137b, 0x137b, 0x137b, 0x137b, 0x137b, 0x1bbb, 0x153c, 0x151c, 0x1b7b, 0x139b, 0x137b, 0x139b, 0x139b, 0x1b9b, 0x139b, 0x1b9b, 0x1b9b, 0x139b, 0x139b, 0x139b, 0x139b, 0x139b, 0x139b, 0x139b, 0x139b, 0x1b9b, 0x1b9b, 0x1b9b, 0x1b9b, 0x1b9b, 0x13bb, 0x139b, 0x1b9b, 0x139b, 0x1b9b, 0x1b9b, 0x1b9c, 0x1c3b, 0x1d5c, 0x1c3c, 0x1b9b, 0x1bbb, 0x1b9b, 0x1b9b, 0x1b9b, 0x1b9b, 0x1b9b, 0x1b9b, 0x1b9b, 0x1bbb, 0x1bbb, 0x1bbb, 0x1bbb, 0x1bbb, 0x1bbb, 0x1bbb, 0x1bbb, 0x1b9b, 0x1bbb, 0x1bbb, 0x1bbb, 0x1bbb, 0x1bbb, 0x1bbb, 0x1bbb, 0x1bbb, 0x1bbc, 0x1bbb, 0x1bbb, 0x1c9c, 0x1d1c, 0x1bbb, 0x1bbb, 0x1bbb, 0x1bbb, 0x1bbb, 0x1bbb, 0x1bbb, 0x1bbb, 0x1bbb, 0x1bbb, 0x1bbb, 0x1bbb, 0x1bbb, 0x1bbb, 0x1bbb, 0x1bbb, 0x1bbb, 0x1bbb, 0x1bbb, 0x1bbb, 0x1bbb, 0x1bbb, 0x1bbb, 0x1bbb, 0x1bbb, 0x1bbb, 0x1bdb, 0x1bbb, 0x1bbb, 0x1bbb, 0x1cfc, 0x1c7c, 0x1bbb, 0x1bdb, 0x1bbc, 0x1bbc, 0x1bbc, 0x1bbc, 0x1bbc, 0x1bbc, 0x1bbc, 0x1bbc, 0x1bbc, 0x1bbc, 0x1bbc, 0x1bbc, 0x1bbc, 0x1bbc, 0x1bbc, 0x1bbc, 0x1bbc, 0x1bbc, 0x1bbc, 0x1bbc, 0x1bbc, 0x1bbc, 0x1bbc, 0x1bbc, 0x1bbb, 0x1bdc, 0x23bc, 0x1bbb, 0x1d7c, 0x1bbb, 0x1bbb, 0x23bc, 0x1bdc, 0x1bbb, 0x1bbc, 0x1bbc, 0x1bbc, 0x1bbc, 0x1bbc, 0x1bbc, 0x1bbc, 0x1bbc, 0x1bbc, 0x1bbc, 0x1bbc, 0x1bbc, 0x1bbc, 0x1bbc, 0x1bbc, 0x1bbc, 0x1bbc, 0x1bbc, 0x1bbc, 0x1bbc, 0x1bbc, 0x1bbc, 0x1bbc, 0x1bbc, 0x1bdb, 0x1bbb, 0x1c7c, 0x1cfc, 0x1bbb, 0x1bbb, 0x1bbb, 0x1bdb, 0x1bbb, 0x1bbb, 0x1bbb, 0x1bbb, 0x1bbb, 0x1bbb, 0x1bbb, 0x1bbb, 0x1bbb, 0x1bbb, 0x1bbb, 0x1bbb, 0x1bbb, 0x1bbb, 0x1bbb, 0x1bbb, 0x1bbb, 0x1bbb, 0x1bbb, 0x1bbb, 0x1bbb, 0x1bbb, 0x1bbb, 0x1bbb, 0x1bbb, 0x1bbb, 0x1d1c, 0x1c9c, 0x1bbb, 0x1bbb, 0x1bbc, 0x1bbb, 0x1bbb, 0x1bbb, 0x1bbb, 0x1bbb, 0x1bbb, 0x1bbb, 0x1bbb, 0x1b9b, 0x1bbb, 0x1bbb, 0x1bbb, 0x1bbb, 0x1bbb, 0x1bbb, 0x1bbb, 0x1bbb, 0x1b9b, 0x1b9b, 0x1b9b, 0x1b9b, 0x1b9b, 0x1b9b, 0x1b9b, 0x1bbb, 0x1b9b, 0x1c3c, 0x1d5c, 0x1c3b, 0x1b9c, 0x1b9b, 0x1b9b, 0x139b, 0x1b9b, 0x139b, 0x13bb, 0x1b9b, 0x1b9b, 0x1b9b, 0x1b9b, 0x1b9b, 0x139b, 0x139b, 0x139b, 0x139b, 0x139b, 0x139b, 0x139b, 0x139b, 0x1b9b, 0x1b9b, 0x139b, 0x1b9b, 0x139b, 0x139b, 0x137b, 0x139b, 0x1b7b, 0x151c, 0x153c, 0x1bbb, 0x137b, 0x137b, 0x137b, 0x137b, 0x137b, 0x137b, 0x137b, 0x137b, 0x1b7b, 0x1b7b, 0x137b, 0x137b, 0x137b, 0x137b, + 0x0999, 0x0999, 0x0999, 0x0999, 0x1199, 0x11ba, 0x11ba, 0x11b9, 0x09b9, 0x11ba, 0x1199, 0x11ba, 0x11ba, 0x1199, 0x11da, 0x0b3a, 0x0c9b, 0x0bfb, 0x127a, 0x11ba, 0x119a, 0x11ba, 0x11ba, 0x11ba, 0x11ba, 0x11ba, 0x11ba, 0x119a, 0x11ba, 0x11ba, 0x11ba, 0x11ba, 0x11ba, 0x11ba, 0x11ba, 0x11ba, 0x11ba, 0x11ba, 0x11ba, 0x11ba, 0x11ba, 0x119a, 0x11ba, 0x11ba, 0x11ba, 0x11ba, 0x11ba, 0x12ba, 0x14bb, 0x13fb, 0x11db, 0x11ba, 0x11ba, 0x11ba, 0x11ba, 0x11ba, 0x11ba, 0x11ba, 0x11da, 0x11ba, 0x11ba, 0x11ba, 0x11ba, 0x11ba, 0x11ba, 0x11ba, 0x11ba, 0x11ba, 0x11ba, 0x11ba, 0x11bb, 0x11ba, 0x11da, 0x11ba, 0x11da, 0x11ba, 0x11ba, 0x11da, 0x11ba, 0x127a, 0x14db, 0x137b, 0x11da, 0x19ba, 0x11da, 0x11da, 0x11da, 0x11da, 0x11da, 0x11da, 0x11da, 0x11da, 0x11da, 0x11da, 0x11da, 0x11da, 0x11da, 0x19da, 0x19da, 0x19da, 0x11da, 0x11db, 0x11db, 0x11db, 0x11db, 0x11db, 0x11db, 0x11db, 0x19db, 0x11da, 0x19da, 0x1a3b, 0x14fb, 0x1afb, 0x19da, 0x11db, 0x19da, 0x19da, 0x19da, 0x19da, 0x19da, 0x19da, 0x19da, 0x19da, 0x19da, 0x19da, 0x19da, 0x19da, 0x19da, 0x19da, 0x19da, 0x19da, 0x19db, 0x19db, 0x19db, 0x19db, 0x19db, 0x19db, 0x19db, 0x19db, 0x19da, 0x19db, 0x19da, 0x1a1b, 0x153c, 0x1a3b, 0x19da, 0x19da, 0x19db, 0x19db, 0x19db, 0x19db, 0x19db, 0x19db, 0x19db, 0x19db, 0x19da, 0x19da, 0x19da, 0x19da, 0x19da, 0x19da, 0x19da, 0x19da, 0x19da, 0x19da, 0x19da, 0x19da, 0x19da, 0x19da, 0x19da, 0x19da, 0x19db, 0x19db, 0x19da, 0x19db, 0x153b, 0x19db, 0x19db, 0x19da, 0x19db, 0x19db, 0x19da, 0x19da, 0x19da, 0x19da, 0x19da, 0x19da, 0x19da, 0x19da, 0x19da, 0x19da, 0x19da, 0x19da, 0x19da, 0x19da, 0x19da, 0x19da, 0x19db, 0x19db, 0x19db, 0x19db, 0x19db, 0x19db, 0x19db, 0x19db, 0x19da, 0x19da, 0x1a3b, 0x153c, 0x1a1b, 0x19da, 0x19db, 0x19da, 0x19db, 0x19db, 0x19db, 0x19db, 0x19db, 0x19db, 0x19db, 0x19db, 0x19da, 0x19da, 0x19da, 0x19da, 0x19da, 0x19da, 0x19da, 0x19da, 0x19da, 0x19da, 0x19da, 0x19da, 0x19da, 0x19da, 0x19da, 0x19da, 0x11db, 0x19da, 0x1afb, 0x14fb, 0x1a3b, 0x19da, 0x11da, 0x19db, 0x11db, 0x11db, 0x11db, 0x11db, 0x11db, 0x11db, 0x11db, 0x11da, 0x19da, 0x19da, 0x19da, 0x11da, 0x11da, 0x11da, 0x11da, 0x11da, 0x11da, 0x11da, 0x11da, 0x11da, 0x11da, 0x11da, 0x11da, 0x11da, 0x19ba, 0x11da, 0x137b, 0x14db, 0x127a, 0x11ba, 0x11da, 0x11ba, 0x11ba, 0x11da, 0x11ba, 0x11da, 0x11ba, 0x11bb, 0x11ba, 0x11ba, 0x11ba, 0x11ba, 0x11ba, 0x11ba, 0x11ba, 0x11ba, 0x11ba, 0x11ba, 0x11ba, 0x11da, 0x11ba, 0x11ba, 0x11ba, 0x11ba, 0x11ba, 0x11ba, 0x11ba, 0x11db, 0x13fb, 0x14bb, 0x12ba, 0x11ba, 0x11ba, 0x11ba, 0x11ba, 0x11ba, 0x119a, 0x11ba, 0x11ba, 0x11ba, 0x11ba, 0x11ba, 0x11ba, 0x11ba, + 0x0afa, 0x0afa, 0x0afa, 0x0afa, 0x0b1a, 0x0b1a, 0x0afa, 0x0afa, 0x0b1a, 0x0afa, 0x0b1a, 0x0afa, 0x0b1a, 0x0b1a, 0x0c3a, 0x0c9a, 0x0bda, 0x0b1a, 0x0afa, 0x0afa, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b3a, 0x0b1a, 0x0b1a, 0x0b3a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0bdb, 0x14bb, 0x0bfa, 0x0b1a, 0x0b1a, 0x0b3a, 0x0b3a, 0x0b1a, 0x0b1a, 0x0b3a, 0x0b3a, 0x131a, 0x0b3a, 0x0b1a, 0x0b3a, 0x0b3a, 0x0b3a, 0x0b3a, 0x0b3a, 0x0b3a, 0x0b3a, 0x0b3a, 0x133b, 0x133b, 0x133a, 0x0b3a, 0x0b3a, 0x0b3a, 0x0b3a, 0x0b3a, 0x133a, 0x0b3a, 0x137a, 0x0cdb, 0x0c5b, 0x133b, 0x133b, 0x0b3a, 0x133a, 0x133a, 0x133a, 0x133a, 0x133a, 0x133a, 0x133a, 0x133b, 0x133b, 0x133b, 0x133b, 0x133b, 0x133b, 0x133b, 0x133b, 0x133b, 0x133b, 0x133b, 0x135b, 0x135b, 0x135b, 0x135b, 0x133b, 0x133b, 0x135a, 0x0b5b, 0x133b, 0x143a, 0x147b, 0x135b, 0x135a, 0x133b, 0x135a, 0x135a, 0x135a, 0x135a, 0x135a, 0x135a, 0x135a, 0x135a, 0x135a, 0x135a, 0x135a, 0x135a, 0x135a, 0x135a, 0x135a, 0x135a, 0x135a, 0x135a, 0x135b, 0x135b, 0x135b, 0x135b, 0x135b, 0x135b, 0x135b, 0x135b, 0x135a, 0x13bb, 0x14db, 0x135b, 0x135b, 0x135b, 0x135b, 0x135b, 0x135b, 0x135b, 0x135b, 0x135b, 0x135b, 0x135b, 0x135b, 0x135b, 0x135b, 0x135b, 0x135b, 0x135b, 0x135b, 0x135b, 0x135b, 0x135b, 0x135b, 0x135b, 0x135b, 0x135b, 0x135b, 0x135b, 0x135b, 0x135a, 0x135b, 0x133b, 0x14fb, 0x135a, 0x133b, 0x135b, 0x135a, 0x135b, 0x135b, 0x135b, 0x135b, 0x135b, 0x135b, 0x135b, 0x135b, 0x135b, 0x135b, 0x135b, 0x135b, 0x135b, 0x135b, 0x135b, 0x135b, 0x135b, 0x135b, 0x135b, 0x135b, 0x135b, 0x135b, 0x135b, 0x135b, 0x135b, 0x135b, 0x135b, 0x135b, 0x14db, 0x13bb, 0x135a, 0x135b, 0x135b, 0x135b, 0x135b, 0x135b, 0x135b, 0x135b, 0x135b, 0x135a, 0x135a, 0x135a, 0x135a, 0x135a, 0x135a, 0x135a, 0x135a, 0x135a, 0x135a, 0x135a, 0x135a, 0x135a, 0x135a, 0x135a, 0x135a, 0x135a, 0x135a, 0x133b, 0x135a, 0x135b, 0x147b, 0x143a, 0x133b, 0x0b5b, 0x135a, 0x133b, 0x133b, 0x135b, 0x135b, 0x135b, 0x135b, 0x133b, 0x133b, 0x133b, 0x133b, 0x133b, 0x133b, 0x133b, 0x133b, 0x133b, 0x133b, 0x133b, 0x133a, 0x133a, 0x133a, 0x133a, 0x133a, 0x133a, 0x133a, 0x0b3a, 0x133b, 0x133b, 0x0c5b, 0x0cdb, 0x137a, 0x0b3a, 0x133a, 0x0b3a, 0x0b3a, 0x0b3a, 0x0b3a, 0x0b3a, 0x133a, 0x133b, 0x133b, 0x0b3a, 0x0b3a, 0x0b3a, 0x0b3a, 0x0b3a, 0x0b3a, 0x0b3a, 0x0b3a, 0x0b1a, 0x0b3a, 0x131a, 0x0b3a, 0x0b3a, 0x0b1a, 0x0b1a, 0x0b3a, 0x0b3a, 0x0b1a, 0x0b1a, 0x0bfa, 0x14bb, 0x0bdb, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b3a, 0x0b1a, 0x0b1a, 0x0b3a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, + 0x02d9, 0x02d9, 0x02d9, 0x02d9, 0x02d9, 0x02d9, 0x02f9, 0x02d9, 0x02da, 0x0ada, 0x0afa, 0x0bfa, 0x0c5b, 0x0bfa, 0x0ad9, 0x02fa, 0x02f9, 0x02f9, 0x0af9, 0x02f9, 0x0af9, 0x02d9, 0x02f9, 0x0af9, 0x0afa, 0x0afa, 0x0afa, 0x0afa, 0x0afa, 0x0afa, 0x0afa, 0x0afa, 0x0afa, 0x0afa, 0x0afa, 0x0afa, 0x0afa, 0x0afa, 0x0afa, 0x0afa, 0x0af9, 0x0afa, 0x0afa, 0x0afa, 0x0c1a, 0x0c7b, 0x0b5a, 0x0afa, 0x0af9, 0x0b1a, 0x0afa, 0x0afa, 0x0afa, 0x0b1a, 0x0afa, 0x0afa, 0x0b1a, 0x0afa, 0x0afa, 0x0afa, 0x0afa, 0x0afa, 0x0afa, 0x0afa, 0x0afa, 0x0b1a, 0x0b1a, 0x0b1a, 0x031a, 0x0afa, 0x0b1a, 0x0b1a, 0x0afa, 0x0b1a, 0x0b1a, 0x0b1a, 0x0afa, 0x0c3a, 0x0c5a, 0x0b1a, 0x0afa, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0c5b, 0x0c1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b3a, 0x0c7b, 0x0b7a, 0x0b3a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0cbb, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b3a, 0x0b7a, 0x0c7b, 0x0b3a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0c1a, 0x0c5b, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0afa, 0x0b1a, 0x0c5a, 0x0c3a, 0x0afa, 0x0b1a, 0x0b1a, 0x0b1a, 0x0afa, 0x0b1a, 0x0b1a, 0x0afa, 0x031a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0afa, 0x0afa, 0x0afa, 0x0afa, 0x0afa, 0x0afa, 0x0afa, 0x0afa, 0x0b1a, 0x0afa, 0x0afa, 0x0b1a, 0x0afa, 0x0afa, 0x0afa, 0x0b1a, 0x0af9, 0x0afa, 0x0b5a, 0x0c7b, 0x0c1a, 0x0afa, 0x0afa, 0x0afa, 0x0af9, 0x0afa, 0x0afa, 0x0afa, 0x0afa, 0x0afa, 0x0afa, + 0x0158, 0x0158, 0x0158, 0x0158, 0x0138, 0x0158, 0x0158, 0x0158, 0x0138, 0x0238, 0x03b9, 0x03da, 0x0259, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0138, 0x0178, 0x0158, 0x0158, 0x0159, 0x01b9, 0x037a, 0x0bda, 0x0218, 0x0958, 0x0159, 0x0159, 0x0958, 0x0158, 0x0158, 0x0158, 0x0158, 0x0958, 0x0959, 0x0158, 0x0159, 0x0179, 0x0158, 0x0159, 0x0159, 0x0159, 0x0159, 0x0158, 0x0158, 0x0158, 0x0158, 0x0979, 0x0179, 0x0958, 0x0979, 0x0159, 0x0178, 0x0159, 0x0958, 0x033a, 0x041a, 0x01f9, 0x0959, 0x0179, 0x0958, 0x0959, 0x0158, 0x0159, 0x0159, 0x0159, 0x0159, 0x0979, 0x0979, 0x0979, 0x0979, 0x0179, 0x0179, 0x0179, 0x0179, 0x0179, 0x0179, 0x0179, 0x0179, 0x0979, 0x0979, 0x0959, 0x0959, 0x0979, 0x0979, 0x0979, 0x0979, 0x0979, 0x0a79, 0x043a, 0x0199, 0x0959, 0x0179, 0x0179, 0x0979, 0x0979, 0x0979, 0x0979, 0x0979, 0x0979, 0x0979, 0x0979, 0x0979, 0x0979, 0x0979, 0x0979, 0x0979, 0x0979, 0x0979, 0x0979, 0x0979, 0x0179, 0x0179, 0x0179, 0x0179, 0x0179, 0x0179, 0x0179, 0x0179, 0x0979, 0x0179, 0x09b9, 0x0c3b, 0x0179, 0x0979, 0x0179, 0x0179, 0x0979, 0x0979, 0x0979, 0x0979, 0x0979, 0x0979, 0x0979, 0x0979, 0x0979, 0x0979, 0x0979, 0x0979, 0x0979, 0x0979, 0x0979, 0x0979, 0x0979, 0x0979, 0x0979, 0x0979, 0x0979, 0x0979, 0x0979, 0x0979, 0x0979, 0x0179, 0x0979, 0x0179, 0x0c7a, 0x0979, 0x0179, 0x0979, 0x0179, 0x0979, 0x0979, 0x0979, 0x0979, 0x0979, 0x0979, 0x0979, 0x0979, 0x0979, 0x0979, 0x0979, 0x0979, 0x0979, 0x0979, 0x0979, 0x0979, 0x0979, 0x0979, 0x0979, 0x0979, 0x0979, 0x0979, 0x0979, 0x0979, 0x0979, 0x0179, 0x0179, 0x0979, 0x0179, 0x0c3b, 0x09b9, 0x0179, 0x0979, 0x0179, 0x0179, 0x0179, 0x0179, 0x0179, 0x0179, 0x0179, 0x0179, 0x0979, 0x0979, 0x0979, 0x0979, 0x0979, 0x0979, 0x0979, 0x0979, 0x0979, 0x0979, 0x0979, 0x0979, 0x0979, 0x0979, 0x0979, 0x0979, 0x0979, 0x0179, 0x0179, 0x0959, 0x0199, 0x043a, 0x0a79, 0x0979, 0x0979, 0x0979, 0x0979, 0x0979, 0x0959, 0x0959, 0x0979, 0x0979, 0x0179, 0x0179, 0x0179, 0x0179, 0x0179, 0x0179, 0x0179, 0x0179, 0x0979, 0x0979, 0x0979, 0x0979, 0x0159, 0x0159, 0x0159, 0x0159, 0x0158, 0x0959, 0x0958, 0x0179, 0x0959, 0x01f9, 0x041a, 0x033a, 0x0958, 0x0159, 0x0178, 0x0159, 0x0979, 0x0958, 0x0179, 0x0979, 0x0158, 0x0158, 0x0158, 0x0158, 0x0159, 0x0159, 0x0159, 0x0159, 0x0158, 0x0179, 0x0159, 0x0158, 0x0959, 0x0958, 0x0158, 0x0158, 0x0158, 0x0158, 0x0958, 0x0159, 0x0159, 0x0958, 0x0218, 0x0bda, 0x037a, 0x01b9, 0x0159, 0x0158, 0x0158, 0x0178, 0x0138, 0x0158, 0x0158, 0x0158, + 0x0137, 0x0137, 0x0137, 0x0137, 0x0137, 0x0138, 0x0137, 0x01d8, 0x0339, 0x0399, 0x0238, 0x0137, 0x0137, 0x0138, 0x0138, 0x0137, 0x0137, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0137, 0x0137, 0x0138, 0x0138, 0x0137, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0157, 0x0138, 0x0278, 0x03d9, 0x02b9, 0x0178, 0x0158, 0x0138, 0x0138, 0x0158, 0x0138, 0x0137, 0x0137, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0137, 0x0158, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0158, 0x0158, 0x0158, 0x0138, 0x0138, 0x0938, 0x0158, 0x0158, 0x0158, 0x0178, 0x0339, 0x0399, 0x0178, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x01d9, 0x03f9, 0x01f9, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x02d9, 0x0319, 0x0158, 0x0158, 0x0158, 0x0159, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0959, 0x0158, 0x0158, 0x0159, 0x041a, 0x0959, 0x0159, 0x0158, 0x0158, 0x0959, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0159, 0x0158, 0x0158, 0x0158, 0x0319, 0x02d9, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x01f9, 0x03f9, 0x01d9, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0178, 0x0399, 0x0339, 0x0178, 0x0158, 0x0158, 0x0158, 0x0938, 0x0138, 0x0138, 0x0158, 0x0158, 0x0158, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0158, 0x0137, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0137, 0x0137, 0x0138, 0x0158, 0x0138, 0x0138, 0x0158, 0x0178, 0x02b9, 0x03d9, 0x0278, 0x0138, 0x0157, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, + 0x0117, 0x0117, 0x0117, 0x0117, 0x0117, 0x01d7, 0x0318, 0x0379, 0x0238, 0x0117, 0x0117, 0x0117, 0x0117, 0x0117, 0x0117, 0x0117, 0x0117, 0x0117, 0x0117, 0x0117, 0x0137, 0x0117, 0x0117, 0x0117, 0x0117, 0x0117, 0x0117, 0x0137, 0x0117, 0x0117, 0x0117, 0x0117, 0x0117, 0x0117, 0x0117, 0x0117, 0x0137, 0x0117, 0x0117, 0x0177, 0x0318, 0x0379, 0x01d7, 0x0137, 0x0117, 0x0137, 0x0117, 0x0137, 0x0136, 0x0117, 0x0117, 0x0137, 0x0137, 0x0117, 0x0117, 0x0137, 0x0137, 0x0137, 0x0117, 0x0137, 0x0137, 0x0137, 0x0117, 0x0117, 0x0117, 0x0137, 0x0137, 0x0137, 0x0137, 0x0137, 0x0138, 0x0137, 0x0117, 0x0157, 0x0359, 0x02f8, 0x0157, 0x0117, 0x0137, 0x0117, 0x0137, 0x0117, 0x0137, 0x0137, 0x0137, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0137, 0x0137, 0x0137, 0x0137, 0x0137, 0x0137, 0x0137, 0x0158, 0x0359, 0x0278, 0x0137, 0x0138, 0x0137, 0x0138, 0x0138, 0x0137, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0137, 0x0138, 0x03b9, 0x01b8, 0x0137, 0x0138, 0x0138, 0x0137, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0137, 0x0137, 0x0137, 0x0138, 0x03f9, 0x0137, 0x0138, 0x0137, 0x0137, 0x0137, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0137, 0x0138, 0x0138, 0x0137, 0x01b8, 0x03b9, 0x0138, 0x0137, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0137, 0x0138, 0x0138, 0x0137, 0x0138, 0x0137, 0x0278, 0x0359, 0x0158, 0x0137, 0x0137, 0x0137, 0x0137, 0x0137, 0x0137, 0x0137, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0137, 0x0137, 0x0137, 0x0117, 0x0137, 0x0117, 0x0137, 0x0117, 0x0157, 0x02f8, 0x0359, 0x0157, 0x0117, 0x0137, 0x0138, 0x0137, 0x0137, 0x0137, 0x0137, 0x0137, 0x0117, 0x0117, 0x0117, 0x0137, 0x0137, 0x0137, 0x0117, 0x0137, 0x0137, 0x0137, 0x0117, 0x0117, 0x0137, 0x0137, 0x0117, 0x0117, 0x0136, 0x0137, 0x0117, 0x0137, 0x0117, 0x0137, 0x01d7, 0x0379, 0x0318, 0x0177, 0x0117, 0x0117, 0x0137, 0x0117, 0x0117, + 0x02d8, 0x02d8, 0x02d7, 0x02d7, 0x02f7, 0x0358, 0x0378, 0x02f7, 0x02d8, 0x02d8, 0x02d8, 0x02d7, 0x02d7, 0x02d7, 0x02d7, 0x02d7, 0x02d7, 0x02d8, 0x02d8, 0x02d8, 0x02d8, 0x02d8, 0x02d8, 0x02d8, 0x02d8, 0x02d8, 0x02d8, 0x02d8, 0x02d8, 0x02d8, 0x02d8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02d7, 0x02f8, 0x02f8, 0x0398, 0x0378, 0x02f8, 0x02d8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x0378, 0x0398, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x0318, 0x02f8, 0x0318, 0x02f7, 0x02f8, 0x02f8, 0x0318, 0x0358, 0x0399, 0x0318, 0x02f8, 0x02f8, 0x0318, 0x0318, 0x02f8, 0x0318, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x0318, 0x0318, 0x0318, 0x0318, 0x0318, 0x0318, 0x0318, 0x0318, 0x0318, 0x0318, 0x0318, 0x0318, 0x0318, 0x0318, 0x0318, 0x0318, 0x0318, 0x0338, 0x03b8, 0x0318, 0x0318, 0x02f8, 0x0318, 0x0318, 0x0318, 0x0318, 0x0318, 0x0318, 0x0318, 0x0318, 0x0318, 0x0318, 0x0318, 0x0318, 0x0318, 0x0318, 0x0318, 0x0318, 0x0318, 0x0318, 0x0318, 0x0318, 0x0318, 0x0318, 0x0318, 0x0318, 0x0318, 0x0318, 0x0318, 0x0318, 0x0318, 0x0318, 0x03b8, 0x0318, 0x0318, 0x0318, 0x0318, 0x0318, 0x0318, 0x0318, 0x0318, 0x0318, 0x0318, 0x0318, 0x0318, 0x0318, 0x0318, 0x0318, 0x0318, 0x0318, 0x0318, 0x0318, 0x0318, 0x0318, 0x0318, 0x0318, 0x0318, 0x0318, 0x0318, 0x0318, 0x0318, 0x0318, 0x0318, 0x0318, 0x02f8, 0x0318, 0x0318, 0x03b8, 0x0338, 0x0318, 0x0318, 0x0318, 0x0318, 0x0318, 0x0318, 0x0318, 0x0318, 0x0318, 0x0318, 0x0318, 0x0318, 0x0318, 0x0318, 0x0318, 0x0318, 0x0318, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x0318, 0x02f8, 0x0318, 0x0318, 0x02f8, 0x02f8, 0x0318, 0x0399, 0x0358, 0x0318, 0x02f8, 0x02f8, 0x02f7, 0x0318, 0x02f8, 0x0318, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x0398, 0x0378, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02d8, 0x02f8, 0x0378, 0x0398, 0x02f8, 0x02f8, 0x02d7, 0x02f8, 0x02f8, + 0x0176, 0x01b6, 0x02f8, 0x0317, 0x0217, 0x0196, 0x0176, 0x0196, 0x0196, 0x0196, 0x0196, 0x0176, 0x0196, 0x0196, 0x0196, 0x0196, 0x0196, 0x0196, 0x0196, 0x0196, 0x0196, 0x0196, 0x0196, 0x0196, 0x0196, 0x0196, 0x0196, 0x0196, 0x0196, 0x0176, 0x0196, 0x0196, 0x0196, 0x0196, 0x0196, 0x0196, 0x01f7, 0x0337, 0x02d7, 0x01b6, 0x0197, 0x0196, 0x0196, 0x0176, 0x0196, 0x0196, 0x0196, 0x0196, 0x0196, 0x0196, 0x0196, 0x0196, 0x0196, 0x0196, 0x0196, 0x0196, 0x0196, 0x0196, 0x0196, 0x0196, 0x0196, 0x0196, 0x0197, 0x0196, 0x0196, 0x0196, 0x0196, 0x0196, 0x0196, 0x0196, 0x0196, 0x0237, 0x0358, 0x0217, 0x0196, 0x0196, 0x0196, 0x0196, 0x0196, 0x0196, 0x0196, 0x0196, 0x0196, 0x0196, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0196, 0x0196, 0x0197, 0x0197, 0x0196, 0x0196, 0x0277, 0x0318, 0x01b6, 0x0196, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x01b7, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x01b6, 0x02f7, 0x0257, 0x0197, 0x01b6, 0x01b7, 0x01b6, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x01b7, 0x01b6, 0x01b7, 0x0378, 0x01b7, 0x01b7, 0x01b6, 0x01b7, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x01b6, 0x01b7, 0x01b6, 0x0197, 0x0257, 0x02f7, 0x01b6, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x01b7, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0196, 0x01b6, 0x0318, 0x0277, 0x0196, 0x0196, 0x0197, 0x0197, 0x0196, 0x0196, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0196, 0x0196, 0x0196, 0x0196, 0x0196, 0x0196, 0x0196, 0x0196, 0x0196, 0x0196, 0x0217, 0x0358, 0x0237, 0x0196, 0x0196, 0x0196, 0x0196, 0x0196, 0x0196, 0x0196, 0x0196, 0x0197, 0x0196, 0x0196, 0x0196, 0x0196, 0x0196, 0x0196, 0x0196, 0x0196, 0x0196, 0x0196, 0x0196, 0x0196, 0x0196, 0x0196, 0x0196, 0x0196, 0x0196, 0x0196, 0x0176, 0x0196, 0x0196, 0x0197, 0x01b6, 0x02d7, 0x0337, 0x01f7, 0x0196, 0x0196, + 0x0236, 0x0317, 0x0256, 0x00f4, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00f5, 0x00f5, 0x00d5, 0x00f5, 0x00d5, 0x00d5, 0x00f5, 0x01f6, 0x0317, 0x01f6, 0x00f5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00f5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00f5, 0x00f5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00f5, 0x00d5, 0x00f5, 0x01b6, 0x0337, 0x01b6, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x0155, 0x0337, 0x0156, 0x00d5, 0x00d5, 0x00f6, 0x00f6, 0x00f6, 0x00f5, 0x00d6, 0x00d6, 0x00f6, 0x00f6, 0x00f6, 0x00f6, 0x00f6, 0x00f6, 0x00f6, 0x00f6, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f6, 0x00d5, 0x00f6, 0x00f6, 0x00f5, 0x00f5, 0x00f5, 0x00f6, 0x0115, 0x0338, 0x0115, 0x00f6, 0x00f5, 0x00f6, 0x00f5, 0x00d6, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00d5, 0x00f6, 0x00d5, 0x00f5, 0x0357, 0x00f5, 0x00f5, 0x00d5, 0x00f6, 0x00d5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00d6, 0x00f5, 0x00f6, 0x00f5, 0x00f6, 0x0115, 0x0338, 0x0115, 0x00f6, 0x00f5, 0x00f5, 0x00f5, 0x00f6, 0x00f6, 0x00d5, 0x00f6, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f6, 0x00f6, 0x00f6, 0x00f6, 0x00f6, 0x00f6, 0x00f6, 0x00f6, 0x00d6, 0x00d6, 0x00f5, 0x00f6, 0x00f6, 0x00f6, 0x00d5, 0x00d5, 0x0156, 0x0337, 0x0155, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x01b6, 0x0337, 0x01b6, 0x00f5, 0x00d5, 0x00f5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00f5, 0x00f5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00f5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00f5, 0x01f6, 0x0317, 0x01f6, 0x00f5, + 0x01f4, 0x0113, 0x00b3, 0x00d3, 0x00b3, 0x00b3, 0x00b3, 0x00b3, 0x00b3, 0x00b3, 0x00b3, 0x00d3, 0x00b3, 0x00b3, 0x00b3, 0x00b3, 0x00b3, 0x00b3, 0x00b3, 0x00b3, 0x00b3, 0x00d3, 0x00b3, 0x00d3, 0x00d4, 0x00b3, 0x00b3, 0x00d4, 0x00b3, 0x00b3, 0x00d4, 0x00b3, 0x00d3, 0x0133, 0x0275, 0x0255, 0x0134, 0x00d3, 0x00b3, 0x00d3, 0x00d3, 0x00d4, 0x00d4, 0x00b4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00b4, 0x00d4, 0x00b4, 0x00d4, 0x00d4, 0x00b4, 0x00b4, 0x01d4, 0x02b5, 0x0134, 0x00d4, 0x00b4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00f4, 0x02b5, 0x01b5, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x01b5, 0x0255, 0x00d5, 0x00b4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x02f6, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00b4, 0x00d5, 0x0255, 0x01b5, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x01b5, 0x02b5, 0x00f4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00b4, 0x00d4, 0x0134, 0x02b5, 0x01d4, 0x00b4, 0x00b4, 0x00d4, 0x00d4, 0x00b4, 0x00d4, 0x00b4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00b4, 0x00d4, 0x00d4, 0x00d3, 0x00d3, 0x00b3, 0x00d3, 0x0134, 0x0255, 0x0275, + 0x00b1, 0x0091, 0x0091, 0x0091, 0x00b1, 0x0091, 0x00b1, 0x00b1, 0x0091, 0x00b1, 0x00b1, 0x00b1, 0x00b1, 0x00b1, 0x00b1, 0x00b1, 0x00b1, 0x00b1, 0x00b1, 0x00b1, 0x00b1, 0x00b1, 0x00b1, 0x00b1, 0x00b1, 0x00b1, 0x00b1, 0x00b1, 0x00b1, 0x0091, 0x0091, 0x00d2, 0x01b2, 0x0273, 0x0172, 0x00b1, 0x00b2, 0x00b1, 0x00b1, 0x00b2, 0x00b1, 0x00b1, 0x00b2, 0x00b1, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b1, 0x00b1, 0x00b2, 0x00b2, 0x00b1, 0x00b2, 0x00b2, 0x00b2, 0x01d3, 0x0253, 0x0112, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x0213, 0x01d3, 0x0092, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x0253, 0x0153, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x0294, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x0153, 0x0253, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x0092, 0x01d3, 0x0213, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x0112, 0x0253, 0x01d3, 0x00b2, 0x00b2, 0x00b2, 0x00b1, 0x00b2, 0x00b2, 0x00b1, 0x00b1, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b1, 0x00b2, 0x00b1, 0x00b1, 0x00b2, 0x00b1, 0x00b1, 0x00b2, 0x00b1, 0x0172, + 0x0090, 0x0070, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0111, 0x0212, 0x01d1, 0x00d0, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x00b0, 0x01d2, 0x01f2, 0x00b0, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x00b0, 0x00b0, 0x0171, 0x0212, 0x00b0, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x00b0, 0x00b0, 0x0090, 0x0090, 0x00b0, 0x00b0, 0x00b0, 0x00b0, 0x00b0, 0x00b0, 0x00b0, 0x00b0, 0x00b0, 0x00b0, 0x00b0, 0x00b0, 0x00b0, 0x00b0, 0x00b0, 0x00b0, 0x0090, 0x0090, 0x0090, 0x00b0, 0x00b0, 0x0090, 0x0090, 0x00f1, 0x0252, 0x00b0, 0x0090, 0x00b0, 0x0090, 0x0090, 0x00b0, 0x00b0, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x00b0, 0x00b0, 0x0090, 0x0090, 0x0272, 0x00b0, 0x0090, 0x0090, 0x00b0, 0x00b0, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x00b0, 0x00b0, 0x0090, 0x0090, 0x00b0, 0x0090, 0x00b0, 0x0252, 0x00f1, 0x0090, 0x0090, 0x00b0, 0x00b0, 0x0090, 0x0090, 0x0090, 0x00b0, 0x00b0, 0x00b0, 0x00b0, 0x00b0, 0x00b0, 0x00b0, 0x00b0, 0x00b0, 0x00b0, 0x00b0, 0x00b0, 0x00b0, 0x00b0, 0x00b0, 0x00b0, 0x0090, 0x0090, 0x00b0, 0x00b0, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x00b0, 0x0212, 0x0171, 0x00b0, 0x00b0, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x00b0, 0x01f2, 0x01d2, 0x00b0, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, + 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x008f, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x00b0, 0x0191, 0x0232, 0x0151, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x00b0, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x00b0, 0x01f2, 0x01d1, 0x00b0, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0110, 0x0252, 0x00d0, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x01b1, 0x0191, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x00b0, 0x0090, 0x0090, 0x0252, 0x0090, 0x0090, 0x0090, 0x00b0, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0191, 0x01b1, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x00d0, 0x0252, 0x0110, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x00b0, 0x01d1, 0x01f2, 0x00b0, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x00b0, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, + 0x008f, 0x008f, 0x008f, 0x0090, 0x0090, 0x0090, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x008f, 0x008f, 0x0090, 0x008f, 0x008f, 0x008f, 0x008f, 0x00d0, 0x0212, 0x01d2, 0x00d0, 0x0090, 0x008f, 0x0090, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x0090, 0x008f, 0x008f, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x008f, 0x0090, 0x0090, 0x00f0, 0x0232, 0x01b1, 0x0090, 0x0090, 0x0090, 0x0090, 0x008f, 0x008f, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0232, 0x0130, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x00b0, 0x0232, 0x00d0, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x008f, 0x008f, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0252, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x008f, 0x008f, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x00d0, 0x0232, 0x00b0, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0130, 0x0232, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x008f, 0x008f, 0x0090, 0x0090, 0x0090, 0x0090, 0x01b1, 0x0232, 0x00f0, 0x0090, 0x0090, 0x008f, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x008f, 0x008f, 0x0090, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, + 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x006f, 0x008f, 0x008f, 0x008f, 0x008f, 0x006f, 0x008f, 0x008f, 0x008f, 0x008f, 0x0171, 0x0232, 0x0151, 0x008f, 0x006f, 0x008f, 0x008f, 0x006f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x0070, 0x0090, 0x008f, 0x008f, 0x008f, 0x008f, 0x006f, 0x008f, 0x006f, 0x00f0, 0x0212, 0x0151, 0x006f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x008f, 0x008f, 0x0090, 0x008f, 0x008f, 0x008f, 0x008f, 0x0070, 0x0090, 0x01f1, 0x01b1, 0x0070, 0x008f, 0x008f, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x008f, 0x008f, 0x008f, 0x0090, 0x008f, 0x008f, 0x0130, 0x01f1, 0x0090, 0x0090, 0x0090, 0x0090, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x0252, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x0090, 0x0090, 0x0090, 0x0090, 0x01f1, 0x0130, 0x008f, 0x008f, 0x0090, 0x008f, 0x008f, 0x008f, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x008f, 0x008f, 0x0070, 0x01b1, 0x01f1, 0x0090, 0x0070, 0x008f, 0x008f, 0x008f, 0x008f, 0x0090, 0x008f, 0x008f, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x006f, 0x0151, 0x0212, 0x00f0, 0x006f, 0x008f, 0x006f, 0x008f, 0x008f, 0x008f, 0x008f, 0x0090, 0x0070, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, + 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x0070, 0x008f, 0x006f, 0x008f, 0x0110, 0x0232, 0x01b1, 0x00af, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x006f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x006f, 0x008f, 0x006f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x006f, 0x0110, 0x0252, 0x0130, 0x008f, 0x006f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x006f, 0x0170, 0x01f2, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x006f, 0x008f, 0x008f, 0x01d2, 0x0130, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x006f, 0x008f, 0x008f, 0x0252, 0x008f, 0x008f, 0x008f, 0x006f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x0130, 0x01d2, 0x008f, 0x008f, 0x006f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x01f2, 0x0170, 0x006f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x006f, 0x008f, 0x0130, 0x0252, 0x0110, 0x006f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x006f, 0x008f, 0x006f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, + 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x008f, 0x008f, 0x006f, 0x006f, 0x006f, 0x008f, 0x006f, 0x006f, 0x006f, 0x006f, 0x008f, 0x01b1, 0x0232, 0x010f, 0x008f, 0x006f, 0x006f, 0x006f, 0x006f, 0x008f, 0x008f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x008f, 0x008f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x0150, 0x0232, 0x00cf, 0x006f, 0x006f, 0x008e, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x008f, 0x006f, 0x010f, 0x0212, 0x00af, 0x006f, 0x008f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x008f, 0x008f, 0x006f, 0x006f, 0x008f, 0x00af, 0x0212, 0x00af, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x008f, 0x008f, 0x006f, 0x006f, 0x0252, 0x006f, 0x006f, 0x006f, 0x008f, 0x008f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x00af, 0x0212, 0x00af, 0x008f, 0x006f, 0x006f, 0x008f, 0x008f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x008f, 0x006f, 0x00af, 0x0212, 0x010f, 0x006f, 0x008f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x008e, 0x006f, 0x006f, 0x00cf, 0x0232, 0x0150, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x008f, 0x008f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, + 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x008e, 0x0110, 0x0212, 0x01b1, 0x008f, 0x006f, 0x006e, 0x006f, 0x006f, 0x006e, 0x008f, 0x006e, 0x006e, 0x006e, 0x006f, 0x006f, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006f, 0x008f, 0x006e, 0x006e, 0x006f, 0x006f, 0x008e, 0x006e, 0x0191, 0x01f1, 0x00cf, 0x006f, 0x006f, 0x006e, 0x008f, 0x006e, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x008f, 0x008f, 0x006e, 0x006e, 0x006f, 0x00cf, 0x0212, 0x0110, 0x008f, 0x006f, 0x006e, 0x008f, 0x006f, 0x006e, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x0150, 0x0191, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x0232, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x0191, 0x0150, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006e, 0x006f, 0x008f, 0x006e, 0x006f, 0x008f, 0x0110, 0x0212, 0x00cf, 0x006f, 0x006e, 0x006e, 0x008f, 0x008f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006e, 0x008f, 0x006e, 0x006f, 0x006f, 0x00cf, 0x01f1, 0x0191, 0x006e, 0x008e, 0x006f, 0x006f, 0x006e, 0x006e, 0x008f, 0x006f, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006f, 0x006f, + 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x008e, 0x01b1, 0x0212, 0x00ef, 0x006e, 0x006e, 0x006e, 0x006f, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006f, 0x006e, 0x006e, 0x008e, 0x01d1, 0x01f1, 0x008f, 0x006f, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x00ae, 0x01f1, 0x0170, 0x006f, 0x006e, 0x006e, 0x006e, 0x006f, 0x006e, 0x006e, 0x006f, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x0211, 0x00cf, 0x008f, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x0232, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x008f, 0x00cf, 0x0211, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006f, 0x006e, 0x006e, 0x006f, 0x006e, 0x006e, 0x006e, 0x006f, 0x0170, 0x01f1, 0x00ae, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006f, 0x008f, 0x01f1, 0x01d1, 0x008e, 0x006e, 0x006e, 0x006f, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, + 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x0130, 0x0212, 0x0170, 0x008e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x004e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x00af, 0x01d1, 0x0190, 0x008e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x0190, 0x01f1, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x00ef, 0x0211, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x0232, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x0211, 0x00ef, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x01f1, 0x0190, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x008e, 0x0190, 0x01d1, 0x00af, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, + 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x008e, 0x01b1, 0x01f2, 0x00cf, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x00af, 0x0212, 0x0191, 0x006e, 0x006e, 0x004e, 0x006e, 0x006e, 0x006e, 0x004e, 0x008e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x010f, 0x0212, 0x008e, 0x006e, 0x006e, 0x004e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x0190, 0x0150, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x0232, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x0150, 0x0190, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x004e, 0x006e, 0x006e, 0x008e, 0x0212, 0x010f, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x008e, 0x004e, 0x006e, 0x006e, 0x006e, 0x004e, 0x006e, 0x006e, 0x0191, 0x0212, 0x00af, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, + 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x004e, 0x004e, 0x004d, 0x0130, 0x01f2, 0x0150, 0x006d, 0x006d, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x004e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x004e, 0x00ef, 0x0212, 0x010f, 0x004e, 0x006e, 0x004e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x004e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x004e, 0x004e, 0x00af, 0x0212, 0x00cf, 0x004e, 0x006e, 0x004e, 0x004e, 0x006e, 0x006e, 0x006e, 0x004e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x004e, 0x006e, 0x008e, 0x0232, 0x008e, 0x004e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x0232, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x004e, 0x008e, 0x0232, 0x008e, 0x006e, 0x004e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x004e, 0x006e, 0x006e, 0x006e, 0x004e, 0x004e, 0x006e, 0x004e, 0x00cf, 0x0212, 0x00af, 0x004e, 0x004e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x004e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x004e, 0x006e, 0x004e, 0x010f, 0x0212, 0x00ef, 0x004e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, + 0x004d, 0x004d, 0x004d, 0x004d, 0x006e, 0x006d, 0x004d, 0x004d, 0x004e, 0x004d, 0x004d, 0x006d, 0x006d, 0x008e, 0x01b1, 0x01d1, 0x00ce, 0x006d, 0x004d, 0x004d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x004d, 0x006e, 0x004d, 0x006e, 0x006e, 0x004e, 0x006d, 0x010f, 0x0212, 0x00ef, 0x006d, 0x006e, 0x006e, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x004d, 0x006d, 0x006e, 0x006e, 0x006e, 0x004d, 0x006e, 0x004d, 0x006e, 0x01d1, 0x0150, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x004e, 0x0130, 0x0191, 0x006e, 0x006e, 0x004e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x004e, 0x0232, 0x004e, 0x004e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x004e, 0x006e, 0x006e, 0x0191, 0x0130, 0x004e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x0150, 0x01d1, 0x006e, 0x004d, 0x006e, 0x004d, 0x006e, 0x006e, 0x006e, 0x006d, 0x004d, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006e, 0x006e, 0x006d, 0x00ef, 0x0212, 0x010f, 0x006d, 0x004e, 0x006e, 0x006e, 0x004d, 0x006e, 0x004d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, + 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x006d, 0x004d, 0x004d, 0x004d, 0x0150, 0x01f1, 0x0150, 0x006d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x006d, 0x004d, 0x004e, 0x004d, 0x004d, 0x004d, 0x0150, 0x01f1, 0x00ae, 0x006d, 0x004d, 0x004d, 0x004d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x004d, 0x006d, 0x006d, 0x004d, 0x006d, 0x004d, 0x006d, 0x006d, 0x006d, 0x0170, 0x01b1, 0x006d, 0x006d, 0x004d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006d, 0x004e, 0x006e, 0x01d1, 0x010f, 0x006d, 0x006d, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x004d, 0x006d, 0x006e, 0x004e, 0x0212, 0x004d, 0x004e, 0x006e, 0x006d, 0x004d, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006d, 0x006d, 0x010f, 0x01d1, 0x006e, 0x004e, 0x006d, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x004d, 0x006d, 0x006d, 0x01b1, 0x0170, 0x006d, 0x006d, 0x006d, 0x004d, 0x006d, 0x004d, 0x006d, 0x006d, 0x004d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x004d, 0x004d, 0x004d, 0x006d, 0x00ae, 0x01f1, 0x0150, 0x004d, 0x004d, 0x004d, 0x004e, 0x004d, 0x006d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d +}; + +#endif // HAS_GRAPHICAL_TFT diff --git a/Marlin/src/lcd/tft/images/bootscreen_112x38x1.cpp b/Marlin/src/lcd/tft/images/bootscreen_112x38x1.cpp new file mode 100644 index 000000000..2308917b1 --- /dev/null +++ b/Marlin/src/lcd/tft/images/bootscreen_112x38x1.cpp @@ -0,0 +1,70 @@ +/** + * Marlin 3D Printer Firmware + * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin] + * + * Based on Sprinter and grbl. + * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + */ + +#include "../../../inc/MarlinConfigPre.h" + +#if HAS_GRAPHICAL_TFT + +#include "../../../inc/MarlinConfig.h" + +extern const uint8_t marlin_logo_112x38x1[532] = { + B00000001,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111, + B00001111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111, + B00011110,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000111,B11111111,B11111111, + B00111000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000011,B11111111,B11111111, + B01110000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000001,B11111111,B11111111, + B01100000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B11111111,B11111111, + B01100000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B01111111,B11111111, + B11000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B01111000,B00000000,B00000000,B00111111,B11111111, + B11000000,B00001111,B11000000,B11111100,B00000000,B00000000,B00000000,B00000000,B00000000,B01111000,B00011000,B00000000,B00011111,B11111111, + B11000000,B00111111,B11100001,B11111111,B00000000,B00000000,B00000000,B00000000,B00000000,B01111000,B00111100,B00000000,B00001111,B11111111, + B11000000,B01111111,B11110011,B11111111,B10000000,B00000000,B00000000,B00000000,B00000000,B01111000,B00111100,B00000000,B00000111,B11111111, + B11000000,B11111111,B11111111,B11111111,B11000000,B00000000,B00000000,B00000000,B00000000,B01111000,B00111100,B00000000,B00000011,B11111111, + B11000001,B11111000,B01111111,B10000111,B11100000,B00000000,B00000000,B00000000,B00000000,B01111000,B00000000,B00000000,B00000001,B11111111, + B11000001,B11110000,B00111111,B00000011,B11100000,B00000000,B00000000,B00000000,B00000000,B01111000,B00000000,B00000000,B00000000,B11111111, + B11000001,B11100000,B00011110,B00000001,B11100000,B00011111,B00000000,B00000011,B11100000,B01111000,B00111100,B00000011,B11110000,B01111111, + B11000001,B11100000,B00011110,B00000001,B11100000,B01111111,B11000000,B00001111,B11111000,B01111000,B00111100,B00000111,B11111100,B00111111, + B11000001,B11100000,B00011110,B00000001,B11100001,B11111111,B11100000,B00011111,B11111100,B01111000,B00111100,B00001111,B11111110,B00011111, + B11000001,B11100000,B00011110,B00000001,B11100011,B11111111,B11110000,B00111111,B11111110,B01111000,B00111100,B00011111,B11111110,B00001111, + B11000001,B11100000,B00011110,B00000001,B11100011,B11110011,B11111000,B00111111,B00111110,B01111000,B00111100,B00111111,B00111111,B00000111, + B11000001,B11100000,B00011110,B00000001,B11100111,B11100000,B11111100,B01111100,B00011111,B01111000,B00111100,B00111110,B00011111,B00000111, + B11000001,B11100000,B00011110,B00000001,B11100111,B11000000,B01111100,B01111100,B00001111,B01111000,B00111100,B00111100,B00001111,B00000011, + B11000001,B11100000,B00011110,B00000001,B11100111,B10000000,B01111100,B01111000,B00001111,B01111000,B00111100,B00111100,B00001111,B00000011, + B11000001,B11100000,B00011110,B00000001,B11100111,B10000000,B00111100,B01111000,B00000000,B01111000,B00111100,B00111100,B00001111,B00000011, + B11000001,B11100000,B00011110,B00000001,B11100111,B10000000,B00111100,B01111000,B00000000,B01111000,B00111100,B00111100,B00001111,B00000011, + B11000001,B11100000,B00011110,B00000001,B11100111,B10000000,B00111100,B01111000,B00000000,B01111000,B00111100,B00111100,B00001111,B00000011, + B11000001,B11100000,B00011110,B00000001,B11100111,B11000000,B00111100,B01111000,B00000000,B01111000,B00111100,B00111100,B00001111,B00000011, + B11000001,B11100000,B00011110,B00000001,B11100011,B11100000,B00111100,B01111000,B00000000,B01111100,B00111100,B00111100,B00001111,B00000011, + B11000001,B11100000,B00011110,B00000001,B11100011,B11111111,B00111111,B11111000,B00000000,B01111111,B10111100,B00111100,B00001111,B00000011, + B11000001,B11100000,B00011110,B00000001,B11100001,B11111111,B00111111,B11111000,B00000000,B00111111,B10111111,B11111100,B00001111,B00000011, + B11000001,B11100000,B00011110,B00000001,B11100000,B11111111,B00111111,B11111000,B00000000,B00011111,B10111111,B11111100,B00001111,B00000011, + B11000001,B11100000,B00011110,B00000001,B11100000,B01111111,B00111111,B11111000,B00000000,B00001111,B10111111,B11111100,B00001111,B00000011, + B01100000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000111, + B01100000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000110, + B01110000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00001110, + B00111000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00011100, + B00011110,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B01111000, + B00001111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11110000, + B00000001,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B10000000 +}; + +#endif // HAS_GRAPHICAL_TFT diff --git a/Marlin/src/lcd/tft/images/bootscreen_195x59x16.cpp b/Marlin/src/lcd/tft/images/bootscreen_195x59x16.cpp new file mode 100644 index 000000000..454e96402 --- /dev/null +++ b/Marlin/src/lcd/tft/images/bootscreen_195x59x16.cpp @@ -0,0 +1,89 @@ +/** + * Marlin 3D Printer Firmware + * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin] + * + * Based on Sprinter and grbl. + * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + */ + +#include "../../../inc/MarlinConfigPre.h" + +#if HAS_GRAPHICAL_TFT + +extern const uint16_t marlin_logo_195x59x16[11505] = { + 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x310e, 0x7a32, 0xaad3, 0xd395, 0xd395, 0xd395, 0xd375, 0xd395, 0xd395, 0xd395, 0xd395, 0xd396, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd396, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd375, 0xd396, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd396, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, + 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ae, 0x20ad, 0x18ad, 0x496f, 0xaad3, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd375, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd396, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd396, 0xd395, 0xd395, 0xd395, 0xd395, 0xd375, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, + 0x18ad, 0x20ab, 0x18ad, 0x18ad, 0x18ad, 0x20ee, 0x8252, 0xd396, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd3b5, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xdb95, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd396, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, + 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x28ee, 0xb314, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd4f8, 0xd65c, 0xd6dd, 0xd6fd, 0xd7ff, 0xd7ff, 0xdfff, 0xd7ff, 0xd7ff, 0xdfff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xdfff, 0xdfff, 0xdfff, 0xdfff, 0xdfff, 0xdfff, 0xdfff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xdfff, 0xd539, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xdb95, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd396, 0xd395, 0xd395, + 0x18ad, 0x20ad, 0x18ae, 0x28ee, 0xcb55, 0xd375, 0xd395, 0xd395, 0xd3d6, 0xd5db, 0xd7bf, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xdfff, 0xdfff, 0xdfff, 0xd7ff, 0xdfff, 0xdfff, 0xdfff, 0xdfff, 0xdfff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xdfff, 0xd539, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, + 0x18ad, 0x18ad, 0x28ee, 0xb314, 0xd395, 0xd395, 0xd395, 0xd477, 0xd77e, 0xd7ff, 0xd7ff, 0xdfff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xdfff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xdfff, 0xdfff, 0xdfff, 0xdfff, 0xd7ff, 0xdfff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd539, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, + 0x18ad, 0x18cd, 0x8252, 0xd395, 0xd395, 0xd396, 0xd4b8, 0xd7bf, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xdfff, 0xdfff, 0xd7ff, 0xd7ff, 0xdfff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xdfff, 0xd7ff, 0xdfff, 0xd539, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd396, 0xd396, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, + 0x18ad, 0x496f, 0xd395, 0xd395, 0xd395, 0xd457, 0xd7bf, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7df, 0xd7ff, 0xcf3e, 0xc67c, 0xc53a, 0xacb8, 0xacb8, 0xacb8, 0xacb8, 0xacb8, 0xacb8, 0xc53a, 0xc67c, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd65b, 0xd395, 0xd396, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd396, 0xd395, 0xd395, 0xd396, 0xd395, + 0x20ae, 0xa2d3, 0xd395, 0xd395, 0xd3d6, 0xd75e, 0xcfff, 0xcfff, 0xd7ff, 0xd7ff, 0xcfff, 0xcfff, 0xd7ff, 0xd7ff, 0xd7df, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7df, 0xd7ff, 0xd7ff, 0xcfdf, 0xcfff, 0xd7ff, 0xd7df, 0xd7ff, 0xcfff, 0xd7ff, 0xd7df, 0xd7ff, 0xcfff, 0xd7df, 0xcfff, 0xcfff, 0xd7ff, 0xd7ff, 0xcfff, 0xd7ff, 0xcfff, 0xd7ff, 0xd7df, 0xd7df, 0xcfff, 0xd7df, 0xcfff, 0xd7ff, 0xd7ff, 0xcfff, 0xd7ff, 0xcfff, 0xd7ff, 0xd7df, 0xd7ff, 0xd7ff, 0xcfff, 0xcfff, 0xd7ff, 0xcfff, 0xd7df, 0xcfff, 0xd7ff, 0xd7df, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xcfff, 0xd7ff, 0xcfdf, 0xd7df, 0xcfdf, 0xcfff, 0xd7df, 0xacd8, 0x8191, 0x9151, 0x9931, 0x9931, 0x9931, 0x9911, 0x9931, 0x9931, 0x9931, 0xbe3b, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7df, 0xd7df, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7df, 0xcfff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7df, 0xd7df, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7df, 0xd7ff, 0xd7df, 0xd7ff, 0xd7df, 0xd65c, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, + 0x310e, 0xd395, 0xd375, 0xd375, 0xd5ba, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xc77e, 0xbe5b, 0xbe3c, 0xb57a, 0xacb8, 0xbdbb, 0xc63c, 0xbe3b, 0xc71e, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xc77e, 0xbe5c, 0xb5db, 0xacb8, 0xac98, 0xbd5a, 0xbe3c, 0xc61c, 0xc69d, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xacb9, 0x8191, 0x9151, 0x9911, 0x9931, 0x9931, 0x9931, 0x9931, 0x9911, 0xa111, 0xbe3b, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xd7df, 0xcfdf, 0xcf5e, 0xbe5c, 0xbe5c, 0xc63c, 0xc61c, 0xcefd, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfff, 0xcfdf, 0xd63b, 0xd375, 0xd395, 0xd375, 0xd395, 0xd375, 0xd375, 0xd375, 0xd375, 0xd375, 0xd375, 0xd375, 0xd375, 0xd375, 0xd375, 0xd375, 0xd375, 0xd375, 0xd375, 0xd375, 0xd375, 0xd375, 0xd375, 0xd375, 0xd375, 0xd395, 0xd375, 0xd375, 0xd375, 0xd395, + 0x79f1, 0xd355, 0xd355, 0xd355, 0xcf7e, 0xc7df, 0xcfbf, 0xcfdf, 0xc7df, 0xc7df, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfbf, 0xcfdf, 0xcfdf, 0xcfbf, 0xbefd, 0xacb8, 0x8a52, 0x9151, 0x9131, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9911, 0xa192, 0xab96, 0xbe7d, 0xcfdf, 0xc7df, 0xcfbf, 0xc7df, 0xcfdf, 0xcfbf, 0xc75e, 0xad19, 0x92b4, 0x8971, 0x9151, 0x9931, 0x9931, 0x9911, 0x9911, 0xa111, 0x9931, 0xa111, 0x9911, 0xab36, 0xbd5a, 0xc75e, 0xcfdf, 0xc7bf, 0xc7bf, 0xcfdf, 0xc7df, 0xc7bf, 0xc7df, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xc7df, 0xcfbf, 0xc7df, 0xc7bf, 0xcfbf, 0xc7df, 0xa4b8, 0x8191, 0x9151, 0x9931, 0x9911, 0x9931, 0x9931, 0x9911, 0x9931, 0x9912, 0xbe3b, 0xcfbf, 0xcfdf, 0xcfbf, 0xcfdf, 0xcfdf, 0xb5da, 0x8a12, 0x8971, 0x9931, 0x9931, 0xa111, 0x9931, 0xab35, 0xc75e, 0xcfbf, 0xcfdf, 0xc7df, 0xc7df, 0xcfdf, 0xcfdf, 0xcfbf, 0xc7df, 0xc7df, 0xcfdf, 0xcfdf, 0xcfdf, 0xc7df, 0xcfdf, 0xcfdf, 0xcfdf, 0xce1b, 0xd355, 0xd355, 0xd355, 0xd355, 0xd355, 0xd355, 0xd355, 0xd355, 0xd355, 0xd355, 0xd355, 0xd355, 0xd355, 0xd355, 0xd355, 0xd355, 0xd355, 0xd355, 0xd355, 0xd355, 0xd355, 0xd355, 0xd355, 0xd355, 0xd355, 0xd355, 0xd355, 0xd355, + 0xa293, 0xd335, 0xd335, 0xcc98, 0xc7bf, 0xc7be, 0xc7bf, 0xc7bf, 0xc7bf, 0xc7bf, 0xc7bf, 0xc7bf, 0xc7bf, 0xc7bf, 0xc7bf, 0xc7bf, 0xc75e, 0xa4b8, 0x8191, 0x9151, 0x9911, 0xa131, 0xa111, 0xa111, 0x9931, 0xa111, 0xa112, 0xa111, 0xa111, 0xa111, 0xa111, 0xa111, 0xa111, 0xab35, 0xbefe, 0xc7bf, 0xc7be, 0xc7bf, 0xb5db, 0x89f1, 0x8971, 0x9931, 0x9911, 0xa111, 0xa111, 0xa111, 0xa111, 0xa111, 0xa132, 0x9911, 0xa111, 0xa111, 0xa111, 0xa111, 0xa172, 0xbd3a, 0xc7be, 0xc7bf, 0xc7bf, 0xc7bf, 0xc7be, 0xc79f, 0xc7bf, 0xc7bf, 0xc7bf, 0xc7bf, 0xc7bf, 0xc7bf, 0xc7bf, 0xc7bf, 0xc7bf, 0xc7bf, 0xc7bf, 0xc7bf, 0xc7bf, 0xc7bf, 0xc7bf, 0xc7bf, 0xc7bf, 0xc7bf, 0xc7bf, 0xc7bf, 0xc7bf, 0xc7bf, 0xc7bf, 0xc7bf, 0xc7bf, 0xc7bf, 0xc7bf, 0xc7bf, 0xc7bf, 0xc7bf, 0xc7bf, 0xc7bf, 0xc7bf, 0xc7bf, 0xc7bf, 0xc7bf, 0xc7bf, 0xc7bf, 0xc7bf, 0xc7bf, 0xc7bf, 0xc7bf, 0xc7bf, 0xc7bf, 0xc7bf, 0xc7bf, 0xc7bf, 0xc7bf, 0xc7bf, 0xc7bf, 0xc7bf, 0xc7bf, 0xc7bf, 0xc7bf, 0xc7bf, 0xc7bf, 0xc79f, 0xc7bf, 0xc7bf, 0xc7bf, 0xc7bf, 0xc7bf, 0xc7bf, 0xac98, 0x8191, 0x9151, 0x9931, 0xa111, 0xa131, 0xa111, 0xa131, 0xa111, 0x9931, 0xbe1b, 0xc79f, 0xc7bf, 0xc7bf, 0xc7bf, 0xbefd, 0x89f2, 0x8991, 0x9931, 0xa112, 0xa131, 0xa111, 0xa111, 0xa111, 0xab97, 0xc7bf, 0xc7bf, 0xc7be, 0xc7bf, 0xc7bf, 0xc7bf, 0xc7bf, 0xc7bf, 0xc7bf, 0xc7bf, 0xc7bf, 0xc7bf, 0xc7bf, 0xc7bf, 0xc7bf, 0xc7bf, 0xc7bf, 0xc6dd, 0xd375, 0xd335, 0xd335, 0xd335, 0xd335, 0xd335, 0xd335, 0xd335, 0xd335, 0xd335, 0xd335, 0xd335, 0xd335, 0xd335, 0xd335, 0xd335, 0xd335, 0xd335, 0xd335, 0xd335, 0xd335, 0xd335, 0xd335, 0xd335, 0xd334, 0xd335, 0xd335, + 0xd315, 0xd315, 0xd314, 0xc5fb, 0xc79f, 0xc79e, 0xc7bf, 0xc7bf, 0xc79e, 0xc79e, 0xc7bf, 0xc79f, 0xbf9e, 0xbfbf, 0xbfbe, 0xb67c, 0x8a53, 0x8971, 0xa131, 0xa112, 0xa111, 0xa111, 0xa111, 0xa111, 0xa111, 0xa111, 0xa111, 0xa111, 0xa111, 0xa111, 0xa111, 0xa112, 0xa111, 0xa111, 0xa172, 0xb539, 0xbf9f, 0x9bf6, 0x8191, 0x9151, 0xa111, 0xa111, 0xa111, 0xa111, 0xa111, 0xa111, 0xa111, 0xa111, 0xa111, 0xa111, 0xa111, 0xa111, 0xa111, 0xa112, 0xa111, 0xa111, 0xab15, 0xbf3d, 0xc79f, 0xc7be, 0xc79f, 0xc79f, 0xc79e, 0xc79e, 0xc79e, 0xc79e, 0xc79e, 0xc79e, 0xc79e, 0xc79e, 0xc79e, 0xc79e, 0xc79e, 0xc79e, 0xc79e, 0xc79e, 0xc79e, 0xc79e, 0xc79e, 0xc79e, 0xc79e, 0xc79e, 0xc79e, 0xc79e, 0xc79e, 0xc79e, 0xc79e, 0xc79e, 0xc79e, 0xc79e, 0xc79e, 0xc79e, 0xc79e, 0xc79e, 0xc79e, 0xc79e, 0xc79e, 0xc79e, 0xc79e, 0xc79e, 0xc79e, 0xc79e, 0xc79e, 0xc79e, 0xc79e, 0xc79e, 0xc79e, 0xc79e, 0xc79e, 0xc79e, 0xc79e, 0xc79e, 0xc79e, 0xc79e, 0xc79e, 0xc79e, 0xc79e, 0xc79e, 0xc79f, 0xc79e, 0xc79f, 0xc79e, 0xc79e, 0xc7bf, 0xc79f, 0xa4b8, 0x8191, 0x9151, 0xa111, 0xa111, 0xa111, 0xa111, 0xa111, 0xa112, 0xa111, 0xbdfb, 0xc79f, 0xc79e, 0xc7be, 0xc79f, 0xacf9, 0x8191, 0x9171, 0xa111, 0xa111, 0xa111, 0xa112, 0xa111, 0xa131, 0xa111, 0xbf3e, 0xbfbf, 0xc79e, 0xc79e, 0xc79e, 0xc7bf, 0xc79e, 0xc79e, 0xc79e, 0xbfbf, 0xc79e, 0xc79e, 0xc79e, 0xbf9e, 0xc79f, 0xc79e, 0xbfbe, 0xc79e, 0xc6bd, 0xd355, 0xd2f5, 0xd315, 0xcb14, 0xd314, 0xd314, 0xd314, 0xd314, 0xd314, 0xd314, 0xd314, 0xd314, 0xd314, 0xd314, 0xd314, 0xd314, 0xd314, 0xd314, 0xd314, 0xd314, 0xd314, 0xd314, 0xd315, 0xd315, 0xd315, 0xd314, + 0xd2f4, 0xcaf4, 0xd2f4, 0xc65c, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf7f, 0xb67c, 0x8a12, 0x8971, 0xa111, 0xa111, 0xa911, 0xa111, 0xa911, 0xa111, 0xa111, 0xa111, 0xa911, 0xa911, 0xa111, 0xa111, 0xa111, 0xa911, 0xa111, 0xa111, 0xa111, 0xa912, 0xa911, 0xa1f3, 0x8191, 0x9931, 0xa111, 0xa111, 0xa912, 0xa111, 0xa111, 0xa111, 0xa111, 0xa111, 0xa911, 0xa911, 0xa911, 0xa911, 0xa911, 0xa111, 0xa111, 0xa111, 0xa112, 0xa911, 0xaa54, 0xbf1d, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xb79e, 0xbf9f, 0xa498, 0x8191, 0x9951, 0xa911, 0xa111, 0xa111, 0xa111, 0xa111, 0xa111, 0xa911, 0xb5fb, 0xbf9e, 0xbf9f, 0xbf9e, 0xbf9f, 0xa498, 0x8191, 0x9951, 0xa111, 0xa111, 0xa111, 0xa111, 0xa112, 0xa111, 0xa911, 0xb5fb, 0xbf7e, 0xbf9e, 0xbf9e, 0xbf9f, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbebd, 0xd335, 0xcaf4, 0xd2f4, 0xd2f4, 0xd2f4, 0xd2f4, 0xd2f4, 0xd2f4, 0xd2f4, 0xd2f4, 0xd2f4, 0xd2f4, 0xd2f4, 0xd2f4, 0xd2f4, 0xd2f4, 0xd2f4, 0xd2f4, 0xd2f4, 0xd2f4, 0xd2f4, 0xcaf4, 0xd2f4, 0xd2f5, 0xcaf4, + 0xd2d4, 0xd2d4, 0xd2d4, 0xbe5c, 0xb77e, 0xb79e, 0xb77e, 0xbf7e, 0xb77e, 0xb77e, 0xb77e, 0xb79e, 0xbf7e, 0xae7b, 0x89f2, 0x8971, 0xa111, 0xa8f1, 0xa911, 0xa8f1, 0xa911, 0xa911, 0xa911, 0xa911, 0xa911, 0xa8f1, 0xa911, 0xa911, 0xa911, 0xa8f1, 0xa911, 0xa8f1, 0xa911, 0xa911, 0xa912, 0xa911, 0xa911, 0xa111, 0xa911, 0xa8f1, 0xa911, 0xa8f1, 0xa111, 0xa911, 0xa8f1, 0xa8f1, 0xa911, 0xa911, 0xa8f1, 0xa911, 0xa8f1, 0xa8f1, 0xa912, 0xa911, 0xa911, 0xa911, 0xa8f1, 0xa111, 0xaa34, 0xb71e, 0xbf7e, 0xbf7e, 0xbf7e, 0xbf7e, 0xbf7e, 0xbf7e, 0xbf7e, 0xbf7e, 0xbf7e, 0xbf7e, 0xbf7e, 0xbf7e, 0xbf7e, 0xbf7e, 0xbf7e, 0xbf7e, 0xbf7e, 0xbf7e, 0xbf7e, 0xbf7e, 0xbf7e, 0xbf7e, 0xbf7e, 0xbf7e, 0xbf7e, 0xbf7e, 0xbf7e, 0xbf7e, 0xbf7e, 0xbf7e, 0xbf7e, 0xbf7e, 0xbf7e, 0xbf7e, 0xbf7e, 0xbf7e, 0xbf7e, 0xbf7e, 0xbf7e, 0xbf7e, 0xbf7e, 0xbf7e, 0xbf7e, 0xbf7e, 0xbf7e, 0xbf7e, 0xbf7e, 0xbf7e, 0xbf7e, 0xbf7e, 0xbf7e, 0xbf7e, 0xbf7e, 0xbf7e, 0xbf7e, 0xbf7e, 0xbf7e, 0xbf7e, 0xb77e, 0xb77e, 0xbf7e, 0xb77e, 0xb77e, 0xbf7f, 0xb77e, 0x9c97, 0x8191, 0x9951, 0xa8f1, 0xa8f1, 0xa8f1, 0xa8f1, 0xa8f1, 0xa911, 0xa8f1, 0xb5db, 0xbf7e, 0xb77e, 0xbf7e, 0xbf7e, 0xa478, 0x8191, 0x9951, 0xa911, 0xa8f1, 0xa8f1, 0xa911, 0xa911, 0xa8f1, 0xa911, 0xb5db, 0xb77f, 0xb77e, 0xbf7e, 0xbf7e, 0xb77e, 0xbf7e, 0xbf7e, 0xbf7e, 0xb77e, 0xb77e, 0xbf7e, 0xb77e, 0xbf7e, 0xb77e, 0xbf7e, 0xbf7e, 0xb77e, 0xb77e, 0xbf7e, 0xbe9d, 0xcb75, 0xd2d4, 0xd2d4, 0xd2d4, 0xd2d4, 0xd2d4, 0xd2d4, 0xd2d4, 0xd2d4, 0xd2d4, 0xd2d4, 0xd2d4, 0xd2d4, 0xd2d4, 0xd2d4, 0xd2d4, 0xd2d4, 0xd2d4, 0xd2d4, 0xd2d4, 0xd2d4, 0xd2d4, 0xd2d4, 0xd2d5, + 0xd2b4, 0xd2b4, 0xd2b4, 0xb77e, 0xb77e, 0xb77e, 0xb77e, 0xb77e, 0xb77e, 0xb77e, 0xb77e, 0xb77e, 0xb71d, 0x8a53, 0x8191, 0xa111, 0xa8f1, 0xb0f1, 0xa911, 0xa8f1, 0xa8f1, 0xa8f1, 0xa8f1, 0xa8f1, 0xa8f1, 0xa8f1, 0xa8f1, 0xa8f1, 0xa8f1, 0xa8f1, 0xa8f1, 0xa8f1, 0xa8f1, 0xa8f1, 0xa8f1, 0xa8f1, 0xa8f1, 0xa8f1, 0xa8f1, 0xa8f1, 0xa8f1, 0xa8f1, 0xa8f2, 0xa8f1, 0xb0f1, 0xa8f1, 0xa8f1, 0xa8f1, 0xa8f1, 0xa8f1, 0xa8f1, 0xa8f1, 0xa8f1, 0xa8f1, 0xa8f1, 0xa8f1, 0xa8f1, 0xa8f1, 0xa8f1, 0xb2f5, 0xb77e, 0xb77e, 0xb77e, 0xb77e, 0xb77e, 0xb75e, 0xb77e, 0xb77e, 0xb77e, 0xb75e, 0xb75e, 0xb77e, 0xb75e, 0xb77e, 0xb77e, 0xb75e, 0xb77e, 0xb77e, 0xb77e, 0xb77e, 0xb77e, 0xb77e, 0xb77e, 0xb77e, 0xb77e, 0xb77e, 0xb77e, 0xb77e, 0xb77e, 0xb75e, 0xb75e, 0xb77e, 0xb77e, 0xb77e, 0xb77e, 0xb77e, 0xb77e, 0xb77e, 0xb77e, 0xb77e, 0xb77e, 0xb77e, 0xb77e, 0xb77e, 0xb77e, 0xb77e, 0xb77e, 0xb77e, 0xb77e, 0xb77e, 0xb77e, 0xb77e, 0xb75e, 0xb77e, 0xb77e, 0xb75e, 0xb77e, 0xb75e, 0xb77e, 0xb77e, 0xb77e, 0xb77e, 0xb77e, 0xb77e, 0xb77e, 0x9c78, 0x8191, 0x9951, 0xa8f1, 0xa8f1, 0xa8f1, 0xa8f1, 0xa8f1, 0xa8f1, 0xa8f1, 0xb5db, 0xb77e, 0xb77e, 0xb77e, 0xb77e, 0x9c77, 0x8191, 0x9151, 0xa8f1, 0xa8f1, 0xa8f1, 0xa8f1, 0xa8f1, 0xa8f1, 0xa8f1, 0xb5db, 0xb77e, 0xb77e, 0xb77e, 0xb75e, 0xb77e, 0xb75e, 0xb77e, 0xb77e, 0xb77e, 0xb77e, 0xb77e, 0xb77e, 0xb77e, 0xb75e, 0xb77e, 0xb77e, 0xb77e, 0xb77e, 0xb77e, 0xb75e, 0xb71d, 0xcb96, 0xd2b4, 0xd2b4, 0xcab4, 0xd2b4, 0xcab4, 0xd2b4, 0xcab4, 0xd2b4, 0xcab4, 0xd2b4, 0xd2b4, 0xd2b4, 0xd2b4, 0xd2b4, 0xd2b4, 0xd2b4, 0xd2b4, 0xca94, 0xd2b4, 0xd2b4, 0xd2b4, 0xcab4, + 0xd294, 0xd294, 0xca94, 0xaf5e, 0xaf5e, 0xaf5e, 0xaf5e, 0xaf5e, 0xb75e, 0xaf5e, 0xaf5e, 0xb75e, 0x9416, 0x8991, 0x9951, 0xb0f1, 0xa8f1, 0xb0f1, 0xa8f1, 0xb0f1, 0xa8f1, 0xb0f1, 0xb0f1, 0xb0f1, 0xa8f1, 0xb0f1, 0xb0f1, 0xb0f1, 0xb0f1, 0xb0f1, 0xb0f1, 0xb0f1, 0xb0f1, 0xb0f1, 0xb0f1, 0xa8f1, 0xa8f1, 0xb0f1, 0xa8f1, 0xb0f1, 0xb0f1, 0xb0f1, 0xb0d1, 0xb0f1, 0xb0f1, 0xb0f2, 0xa8f1, 0xb0f1, 0xb0f1, 0xb0d1, 0xb0f1, 0xb0f2, 0xa8f1, 0xb0f2, 0xb0f1, 0xb0f1, 0xb0f1, 0xa8f1, 0xb0f1, 0xb0f1, 0xacf9, 0xaf5e, 0xaf5e, 0xb75e, 0xaf5e, 0xaf5e, 0xaf5e, 0xaf5e, 0xaf5e, 0xaf5e, 0xaf7e, 0xaf5e, 0xaf5e, 0xaf5e, 0xb75e, 0xb75e, 0xb75e, 0xaf5e, 0xb75e, 0xaf5e, 0xb75e, 0xaf5e, 0xaf5e, 0xaf5e, 0xaf5e, 0xb75e, 0xb75e, 0xb75e, 0xaf5e, 0xaf5e, 0xaf5e, 0xb75e, 0xb75e, 0xaf5e, 0xaf5e, 0xaf5e, 0xaf5e, 0xaf5e, 0xaf5e, 0xaf5e, 0xaf5e, 0xaf5e, 0xaf5e, 0xaf5e, 0xb75e, 0xaf5e, 0xaf5e, 0xb75e, 0xaf5e, 0xaf5e, 0xaf5e, 0xb75e, 0xb75e, 0xaf5e, 0xaf5e, 0xaf5e, 0xb75e, 0xaf5e, 0xaf5e, 0xaf5e, 0xaf5e, 0xaf5d, 0xb75e, 0xaf5e, 0xaf5e, 0x9c77, 0x8191, 0x9951, 0xb0f1, 0xb0f1, 0xb0f1, 0xb0f1, 0xb0f1, 0xb0f1, 0xb0f1, 0xadbb, 0xb75e, 0xb75e, 0xb75e, 0xb75e, 0x9c78, 0x8991, 0x9951, 0xb0f1, 0xb0f1, 0xb0f1, 0xb0f1, 0xb0f1, 0xb0f1, 0xb0f1, 0xb5bb, 0xb75e, 0xb75e, 0xaf5e, 0xaf5e, 0xaf5e, 0xaf5e, 0xaf5e, 0xb75e, 0xaf5e, 0xaf5e, 0xb75e, 0xb75e, 0xb75e, 0xaf5e, 0xb75e, 0xb75e, 0xb75e, 0xaf5e, 0xaf5e, 0xb75e, 0xaf5e, 0xaf1d, 0xcb75, 0xca93, 0xd294, 0xca74, 0xca94, 0xca74, 0xd274, 0xca74, 0xd294, 0xca94, 0xca94, 0xca94, 0xca94, 0xca94, 0xca94, 0xca94, 0xca94, 0xd294, 0xca93, 0xca94, 0xd293, 0xca74, + 0xd274, 0xd274, 0xca53, 0xaf5e, 0xaf3e, 0xaf5e, 0xaf3e, 0xaf3d, 0xaf5d, 0xaf3d, 0xaf3e, 0xa69c, 0x8191, 0x8191, 0xb0f1, 0xb0f1, 0xb0f1, 0xb0d1, 0xb0f2, 0xb0d1, 0xb0d1, 0xb0f2, 0xb0f1, 0xb0f1, 0xaa13, 0xb418, 0xa438, 0x9ab4, 0x9931, 0xa8f1, 0xb0f1, 0xb0f2, 0xb0f1, 0xb0d1, 0xb0f1, 0xb0d1, 0xb0f1, 0xb0d1, 0xb0d1, 0xb0f1, 0xb0d1, 0xb0f1, 0xb0f1, 0xb0f1, 0xb0f1, 0xaa74, 0xac78, 0xacf9, 0x9b35, 0x9931, 0xa8f1, 0xb0f1, 0xb0f2, 0xb0f1, 0xb0d1, 0xb0d1, 0xb0f1, 0xb0f2, 0xb0d1, 0xb0f1, 0xa9b3, 0xaf3e, 0xaf3e, 0xaf3e, 0xaf3e, 0xaf5e, 0xaf3e, 0xaf3e, 0xaf5e, 0xaf3e, 0xaf3e, 0xaf3e, 0xaf5e, 0xaf3e, 0xaf3e, 0xaf5e, 0xaf3e, 0xaf3e, 0xaf3d, 0xaf3d, 0xaf3e, 0xaf3e, 0xaf5e, 0xaf3e, 0xaf3d, 0xaf3d, 0xaf3e, 0xaf3e, 0xaf3e, 0xaf3e, 0xaf5e, 0xaf3e, 0xaf3e, 0xaf5e, 0xaf3e, 0xaf3e, 0xaf3e, 0xaf3e, 0xaf3e, 0xaf3e, 0xaf3e, 0xaf3e, 0xaf3d, 0xaf5e, 0xaf3e, 0xaf3e, 0xaf3e, 0xaf3e, 0xaf5e, 0xaf3e, 0xaf3e, 0xaf3e, 0xaf5e, 0xaf3e, 0xaf3e, 0xaf3e, 0xaf3e, 0xaf3e, 0xaf5e, 0xaf3e, 0xaf5e, 0xaf3e, 0xaf3e, 0xaf3e, 0xaf3e, 0x9c77, 0x8191, 0x9931, 0xb0f1, 0xb0d1, 0xb0f1, 0xb0f1, 0xb0f1, 0xb0f1, 0xb0f1, 0xadbb, 0xaf3e, 0xaf3e, 0xaf5d, 0xaf3e, 0x9477, 0x8191, 0x9951, 0xb0d1, 0xb0d1, 0xb0f1, 0xb0d1, 0xb0d1, 0xb0d1, 0xb0d1, 0xadba, 0xaf3e, 0xaf5e, 0xaf3e, 0xaf5e, 0xaf3e, 0xaf3e, 0xaf3e, 0xaf3d, 0xaf5e, 0xaf5e, 0xaf5e, 0xaf3d, 0xaf3d, 0xaf3e, 0xaf3e, 0xaf3e, 0xaf3e, 0xaf5e, 0xaf3e, 0xaf3e, 0xaf3e, 0xaf3e, 0xaefd, 0xcb56, 0xca53, 0xca74, 0xd253, 0xd274, 0xd274, 0xd273, 0xca73, 0xd274, 0xd274, 0xd274, 0xd274, 0xd274, 0xd274, 0xd274, 0xd274, 0xd254, 0xca74, 0xca54, 0xca54, 0xca74, + 0xca53, 0xca53, 0xca53, 0xa73e, 0xa73e, 0xa73e, 0xa73e, 0xa73d, 0xa73d, 0xa73d, 0xa73d, 0x9457, 0x8191, 0x9931, 0xb8d1, 0xb0d1, 0xb8d1, 0xb0d1, 0xb0d1, 0xb0d1, 0xb0f1, 0xb0d1, 0xb1b3, 0xad9a, 0xaf3d, 0xaf3d, 0xa73d, 0xa73d, 0x9dda, 0x89d1, 0x9951, 0xb0f1, 0xb0d1, 0xb0f1, 0xb0d1, 0xb0d1, 0xb0d1, 0xb8d1, 0xb8d1, 0xb0d1, 0xb0d1, 0xb0d1, 0xb0f1, 0xb213, 0xad9b, 0xa73e, 0xa73d, 0xaf3e, 0xaf3e, 0x9dda, 0x81f2, 0x9171, 0xb0f1, 0xb0f1, 0xb0d1, 0xb0f1, 0xb0d1, 0xb0d1, 0xb8d1, 0xb8d2, 0xb0f1, 0xad39, 0xa73d, 0xa73e, 0xa73d, 0xa73d, 0xa73d, 0xa73d, 0xa73d, 0xa73e, 0xa73d, 0xa73d, 0xa73d, 0xaf3d, 0xa73d, 0xa73d, 0xa73d, 0xa73e, 0xa73e, 0xa73d, 0xaf3d, 0xa73d, 0xa73d, 0xa73e, 0xaf3d, 0xa73e, 0xa73e, 0xa73d, 0xaf3d, 0xa73d, 0xa73d, 0xa73e, 0xaf3e, 0xaf1e, 0xa73e, 0xa73e, 0xa73e, 0xa73e, 0xa73e, 0xa73e, 0xa73e, 0xa73e, 0xaf3e, 0xa73e, 0xa73d, 0xaf3e, 0xa73e, 0xa73d, 0xa73d, 0xa73d, 0xaf3d, 0xa73e, 0xa73e, 0xa73e, 0xa73d, 0xaf3d, 0xa73d, 0xaf3d, 0xa73e, 0xa73e, 0xaf3d, 0xa73e, 0xa73d, 0xa73d, 0xa73e, 0x9478, 0x8191, 0x9931, 0xb0d1, 0xb0d1, 0xb0d1, 0xb0d1, 0xb0d1, 0xb0d1, 0xb8d1, 0xad9a, 0xa73e, 0xa73d, 0xa73e, 0xa73d, 0xa73d, 0xa73d, 0xaf3d, 0xa73d, 0xa73d, 0xa73d, 0xa73d, 0xa73d, 0xaf3d, 0xa73d, 0xa73d, 0xa73d, 0xaf3e, 0xa73e, 0xa73d, 0xa73d, 0xa73d, 0xaf3d, 0xaf3e, 0xa73d, 0xaf3d, 0xaf3e, 0xa73d, 0xa73d, 0xaf3d, 0xa73e, 0xaf3d, 0xaf3d, 0xaf3d, 0xa73e, 0xa73d, 0xa73d, 0xaf3d, 0xa73d, 0xaedd, 0xc376, 0xca53, 0xca53, 0xca53, 0xca53, 0xca33, 0xca53, 0xca53, 0xca53, 0xca53, 0xca53, 0xca53, 0xca53, 0xca53, 0xca53, 0xd233, 0xca53, 0xd253, 0xca53, 0xca53, + 0xca13, 0xca33, 0xca13, 0xa71d, 0xa71d, 0xa71d, 0xa71d, 0xa71d, 0xa73d, 0xa73d, 0xa73d, 0x8a53, 0x8191, 0xa8f1, 0xb8d1, 0xb8d1, 0xb8d1, 0xb0d1, 0xb8d1, 0xb8d1, 0xb8d1, 0xb213, 0xa6bd, 0xa71d, 0xa73e, 0xa71d, 0xa71d, 0xa71d, 0xa71d, 0x9e1b, 0x81f1, 0x9171, 0xb0f1, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8d1, 0xb1f3, 0xa6bd, 0xa71d, 0xa71d, 0xa71d, 0xa71d, 0xa73d, 0xa71d, 0x9e1b, 0x89f2, 0x8991, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8d1, 0xb0d1, 0xb8d1, 0xb336, 0xa71d, 0xa71d, 0xa71d, 0xa71d, 0xa71d, 0xa71d, 0xa71d, 0xa71d, 0xa71d, 0xa71d, 0xa73d, 0xa73d, 0xa73d, 0xa71d, 0xa71d, 0xa73d, 0xa71d, 0xa71e, 0xa71d, 0xa71d, 0xa73d, 0xa73e, 0xa71d, 0xa71d, 0xa71d, 0xa73e, 0xa71d, 0xa73e, 0xa73d, 0xa71d, 0xa71d, 0xa73d, 0xa71d, 0xa71d, 0xa71d, 0xa71d, 0xa71d, 0xa71d, 0xa71d, 0xa71d, 0xa71d, 0xa71d, 0xa73d, 0xa73d, 0xa73d, 0xa73e, 0xa71d, 0xa73d, 0xa73d, 0xa71d, 0xa71d, 0xa71d, 0xa71d, 0xa71d, 0xa71d, 0xa73d, 0xa71d, 0xa71d, 0xa73e, 0xa73d, 0xa73d, 0xa71d, 0xa71d, 0x9477, 0x8191, 0x9931, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8d1, 0xa59a, 0xa71d, 0xa73d, 0xa73e, 0xa71d, 0xa71d, 0xa71e, 0xa73d, 0xa71d, 0xa71d, 0xa71d, 0xa71d, 0xa71d, 0xa71d, 0xa71d, 0xa71d, 0xa73d, 0xa73d, 0xa71e, 0xa71d, 0xa73d, 0xa71d, 0xa73d, 0xa71d, 0xa71d, 0xa71d, 0xa71d, 0xa71d, 0xa71d, 0xa73d, 0xa73d, 0xa71d, 0xa73d, 0xa73d, 0xa71d, 0xa73e, 0xa71d, 0xa71d, 0xa71d, 0xa71d, 0xa71d, 0xbbf7, 0xca13, 0xca33, 0xca13, 0xca33, 0xca33, 0xca33, 0xca33, 0xca33, 0xca33, 0xca33, 0xca33, 0xca33, 0xca33, 0xca13, 0xca13, 0xca14, 0xd233, 0xca33, + 0xca13, 0xca13, 0xca13, 0x9f1d, 0x9f1d, 0xa71d, 0x9f1d, 0x9f1d, 0xa71d, 0x9f1d, 0x9f1d, 0x8191, 0x8191, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8d1, 0xa5db, 0x9f1d, 0x9f1d, 0x9efd, 0x9f1d, 0x9f1d, 0x9f1d, 0xa6fd, 0x9f1d, 0x94f9, 0x8191, 0x9931, 0xb8d1, 0xb8d1, 0xb8b1, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8b1, 0xa5db, 0x9f1d, 0x9f1d, 0x9f1d, 0x9f1d, 0xa6fd, 0x9f1d, 0x9f1d, 0x9f1d, 0x94f9, 0x8191, 0x9931, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8d1, 0xb932, 0x9f1d, 0x9f1d, 0x9f1d, 0x9f1e, 0x9f1d, 0x9f1d, 0x9f1d, 0x9f1d, 0x9f1d, 0x9e1b, 0x9457, 0x92d4, 0xa1f3, 0xa911, 0xb0f1, 0xb0f1, 0xa911, 0xb274, 0xb254, 0xb254, 0xabf7, 0xa5db, 0xa6fd, 0xa6fd, 0xa71d, 0xa71d, 0x9f1d, 0x9f1d, 0xa6fd, 0x9f1d, 0x9f1d, 0xa71d, 0x9f1d, 0x9f1d, 0x9f1d, 0x9f1d, 0x9f1d, 0x9f1d, 0x9f1d, 0x9f1d, 0x9f1d, 0x9f1d, 0x9f1d, 0x9e7c, 0x9498, 0x8b14, 0x9a13, 0xa131, 0xa912, 0xb0f1, 0xa8f1, 0xb255, 0xb274, 0xb254, 0xab97, 0xad1a, 0x9f1d, 0x9f1d, 0x9f1d, 0x9f1d, 0xa71d, 0x9f1d, 0xa71d, 0x9457, 0x8191, 0xa131, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8d1, 0xa57a, 0x9f1d, 0xa71d, 0x9f1d, 0xa71d, 0x9e7c, 0x9dba, 0xa59a, 0xa57a, 0xa57a, 0xa57a, 0xa57a, 0xa57a, 0xa57a, 0xa57a, 0xa69c, 0x9f1d, 0x9f1d, 0x9f1d, 0xa71d, 0x9f1d, 0x9f1d, 0x9f1d, 0x9f1d, 0x9f1d, 0x9f1d, 0x9f1d, 0x9e5c, 0x94b8, 0x8af4, 0x9a13, 0xa131, 0xa8f1, 0xb0f1, 0xb0f1, 0xb932, 0xb274, 0xb254, 0xb336, 0xacb9, 0xa63c, 0x9f1d, 0xbbf7, 0xc9f3, 0xca13, 0xca13, 0xca13, 0xc9f3, 0xc9f3, 0xc9f3, 0xc9f3, 0xc9f3, 0xc9f3, 0xc9f3, 0xc9f3, 0xca13, 0xca13, 0xca13, 0xca13, 0xca13, + 0xc9d3, 0xc9d3, 0xc9d3, 0x9efd, 0x9efd, 0x9efd, 0x9efd, 0x9efd, 0x9efd, 0x9efd, 0x959a, 0x8191, 0x9151, 0xc0b1, 0xb8d1, 0xc0b1, 0xb8d1, 0xc0d1, 0xb8d1, 0xb8d1, 0xb2b5, 0x9efd, 0x9efd, 0x9efd, 0x9efd, 0x9efd, 0x9efd, 0x9efd, 0x9efd, 0x9efd, 0x9efd, 0x8252, 0x8191, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8d1, 0xc0b1, 0xc0d1, 0xb8d1, 0xc0d1, 0xb1f3, 0x9efd, 0x9efd, 0x9efd, 0x9efd, 0x9efd, 0x9f1d, 0x9efd, 0x9efd, 0x9efd, 0x9efd, 0x8a93, 0x8191, 0xb8d1, 0xb8d1, 0xc0d1, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8d1, 0xc0b1, 0xa63c, 0x9efd, 0x9efd, 0x9efd, 0x9efd, 0x9efd, 0x9efd, 0x94f8, 0x8a53, 0x9171, 0xb0f1, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8b1, 0xb8b1, 0xc0b1, 0xc0d1, 0xc0d1, 0xb8d1, 0xc0d1, 0xb8b1, 0xb992, 0xacb9, 0x9efd, 0x9efd, 0x9efd, 0x9efd, 0x9efd, 0x9efd, 0x9efd, 0x9efd, 0x9efd, 0x9efd, 0x9efd, 0x9efd, 0x9efd, 0x9efd, 0x9efd, 0x9efd, 0x9efd, 0x9e5c, 0x8b96, 0x8991, 0xa131, 0xb8d1, 0xb8d1, 0xc0b1, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8d1, 0xc0b1, 0xb8d1, 0xb932, 0xabf7, 0x9e9c, 0x9efd, 0x9efd, 0x9efd, 0x9efd, 0x9437, 0x8191, 0xa131, 0xb8d1, 0xc0b1, 0xb8d1, 0xc0b1, 0xc0b1, 0xb8d1, 0xb8d1, 0xa57a, 0x9efd, 0x9efd, 0x9efd, 0x9efd, 0x9437, 0x8191, 0xa131, 0xb8d1, 0xc0b1, 0xb8d1, 0xb8d1, 0xc0b1, 0xb8d1, 0xb8d1, 0xa57a, 0x9efd, 0x9efd, 0x9efd, 0x9efd, 0x9efd, 0x9efd, 0x9efd, 0x9efd, 0x9efd, 0x9e9c, 0x8b96, 0x8971, 0xa131, 0xb8d1, 0xb8d1, 0xc0b1, 0xb8d1, 0xc0b1, 0xc0d1, 0xb8d1, 0xb8d1, 0xc0d1, 0xb8d1, 0xb8d1, 0xc0d1, 0xb335, 0xa63c, 0xbbd7, 0xc9d3, 0xc9f3, 0xc9d3, 0xc9d3, 0xc9d3, 0xc9d3, 0xc9d3, 0xc9d3, 0xc9d3, 0xc9d3, 0xc9d3, 0xc9f3, 0xc9d3, 0xc9d3, 0xc9f3, 0xc9d3, + 0xc9b3, 0xc9b3, 0xc9b3, 0x9edd, 0x96fd, 0x9edd, 0x96fd, 0x9efc, 0x96fd, 0x96fd, 0x9599, 0x8991, 0x9171, 0xc0b1, 0xc0d1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0d1, 0xabd7, 0x9efc, 0x96fd, 0x96fd, 0x96dd, 0x96fd, 0x9efd, 0x9edd, 0x96fd, 0x9edd, 0x9efd, 0x8c37, 0x8191, 0xa111, 0xc0b1, 0xc0b1, 0xc0d1, 0xc0b1, 0xc0b1, 0xc0d1, 0xc0b1, 0xab76, 0x9edd, 0x9efd, 0x9efd, 0x9edd, 0x9edd, 0x96dd, 0x9efd, 0x9edd, 0x96fd, 0x9edd, 0x8c37, 0x8191, 0xa131, 0xc0d1, 0xc0b1, 0xc0b1, 0xc0d1, 0xc0b1, 0xc0b1, 0xc0d1, 0xa55a, 0x96fd, 0x9edd, 0x9efd, 0x96fd, 0x963b, 0x8af4, 0x8991, 0xa911, 0xc0b1, 0xc0b1, 0xc0d1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0d1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0d1, 0xc0b1, 0xc0b1, 0xb992, 0xa55a, 0x9edd, 0x9efc, 0x96fd, 0x9edd, 0x96fd, 0x9efd, 0x96fd, 0x96fd, 0x96fd, 0x96fd, 0x96fd, 0x96fd, 0x96fd, 0x96fd, 0x94f9, 0x81f1, 0x9171, 0xb8d2, 0xc0b1, 0xc0d1, 0xc0d1, 0xc0b1, 0xc0d1, 0xc0b1, 0xc0d1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xb992, 0x9dbb, 0x96fd, 0x9edd, 0x96fd, 0x8c37, 0x8191, 0xa131, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xa55a, 0x9edd, 0x96fd, 0x96fd, 0x9efd, 0x8c37, 0x8191, 0xa131, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xa55a, 0x96fd, 0x9efd, 0x96fd, 0x9efd, 0x9efd, 0x96fd, 0x9efd, 0x96fd, 0x9539, 0x81f1, 0x9171, 0xb0d1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0d1, 0xc0b1, 0xc0b1, 0xc0d1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xb8d1, 0xb911, 0xacfa, 0xb458, 0xc9b3, 0xc9b3, 0xc9b3, 0xc9b3, 0xc9b3, 0xc9b3, 0xc9b3, 0xc9b3, 0xc9b3, 0xc9b3, 0xc9b3, 0xc9d2, 0xc9d3, 0xc9d3, 0xc9b3, + 0xc993, 0xc993, 0xc992, 0x96dc, 0x96dd, 0x96dd, 0x96dd, 0x96dd, 0x96dd, 0x96dd, 0x8d79, 0x8191, 0x9151, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xabd7, 0x96dd, 0x96dd, 0x96dd, 0x96dd, 0x96dd, 0x96dd, 0x96dd, 0x96dd, 0x96dd, 0x96dd, 0x8c37, 0x8191, 0xa131, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xabd7, 0x96dd, 0x96dd, 0x96dd, 0x96dd, 0x96dd, 0x96dd, 0x96dd, 0x96dd, 0x96dd, 0x96dd, 0x8c37, 0x8191, 0xa131, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0x9d5a, 0x96dd, 0x96dd, 0x96dd, 0x95da, 0x89f2, 0x8971, 0xb8d1, 0xc0b1, 0xc0b1, 0xc8b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xa499, 0x96dd, 0x96dd, 0x96dd, 0x96dd, 0x96dd, 0x96dc, 0x96dd, 0x96dd, 0x96dd, 0x96dd, 0x96dd, 0x96dd, 0x8c37, 0x8191, 0x9931, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc8b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xa499, 0x96dc, 0x96dd, 0x8c37, 0x8191, 0xa111, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0x9d5a, 0x96dd, 0x96dd, 0x96dd, 0x96dd, 0x8c37, 0x8191, 0xa131, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0x9d5a, 0x96dd, 0x96dd, 0x96dd, 0x96dd, 0x96dd, 0x96dd, 0x96dd, 0x8cd8, 0x8191, 0x9951, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc8b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc8b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xac79, 0xacf9, 0xc992, 0xc993, 0xc9b2, 0xc992, 0xc992, 0xc993, 0xc993, 0xc993, 0xc992, 0xc992, 0xc992, 0xc993, 0xc993, 0xc993, + 0xc972, 0xc972, 0xc972, 0x8ebc, 0x8ebd, 0x8ebd, 0x8ebc, 0x8ebc, 0x8ebc, 0x8ebd, 0x8d7a, 0x8191, 0x9151, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc8b1, 0xc0b1, 0xabb7, 0x8ebd, 0x8ebc, 0x8ebc, 0x8ebc, 0x8ebc, 0x8ebc, 0x8ebc, 0x8ebc, 0x8ebc, 0x8ebd, 0x8c37, 0x8191, 0xa131, 0xc0b1, 0xc8b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc8b1, 0xc0b1, 0xabb7, 0x8ebc, 0x8ebc, 0x8ebc, 0x8edc, 0x8ebc, 0x8edd, 0x8ebc, 0x8ebc, 0x8ebd, 0x8ebc, 0x8c37, 0x8191, 0xa131, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0x9d39, 0x8ebd, 0x8edd, 0x8dba, 0x81f2, 0x9171, 0xc0b1, 0xc0b1, 0xc8b1, 0xc0b1, 0xc0d1, 0xc0b1, 0xc8b1, 0xc8b2, 0xc0b1, 0xc8b2, 0xc8b1, 0xc8b1, 0xc0d1, 0xc0b1, 0xc0d1, 0xc0d1, 0xc8b1, 0xc0b1, 0xc0b1, 0xc8b1, 0xc0b1, 0xa437, 0x8ebc, 0x8edd, 0x8ebc, 0x8ebd, 0x8ebc, 0x8ebc, 0x8ebd, 0x8ebc, 0x8ebd, 0x8ebd, 0x8cd8, 0x8191, 0xa131, 0xc0b1, 0xc0b1, 0xc8b1, 0xc0b1, 0xc0b1, 0xc8b2, 0xc8b1, 0xc0b1, 0xc8b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc8b1, 0xc8b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc8b1, 0xc0b1, 0xc8b1, 0xa4d9, 0x8ebc, 0x8c37, 0x8191, 0xa131, 0xc0b1, 0xc8b1, 0xc0d1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc8b1, 0x9d3a, 0x8ebc, 0x8ebc, 0x8ebc, 0x8ebc, 0x8c37, 0x8191, 0xa131, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0x9d5a, 0x8ebc, 0x8ebc, 0x8edc, 0x8ebc, 0x8ebc, 0x8ebc, 0x8cd8, 0x8191, 0x9951, 0xc8b1, 0xc0b1, 0xc8b1, 0xc8b2, 0xc8b1, 0xc0b1, 0xc8b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0d1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc8b1, 0xc8b1, 0xc8b1, 0xc8d1, 0xa478, 0xa4d9, 0xc972, 0xc972, 0xc972, 0xc972, 0xc972, 0xc972, 0xc972, 0xc972, 0xc972, 0xc972, 0xc972, 0xc972, 0xc972, + 0xc952, 0xc952, 0xc952, 0x8ebc, 0x8ebc, 0x8ebc, 0x8ebc, 0x8ebc, 0x8ebc, 0x8ebc, 0x8d59, 0x8191, 0x9171, 0xc8f2, 0xc8f1, 0xc8f2, 0xc8f2, 0xc8f2, 0xc8f1, 0xc8f2, 0xabd7, 0x8ebc, 0x8ebc, 0x8ebc, 0x8ebc, 0x8ebc, 0x8ebc, 0x8ebc, 0x8ebc, 0x8ebc, 0x8ebc, 0x8c36, 0x8191, 0xa931, 0xc8f2, 0xc8f1, 0xc8f2, 0xc8f2, 0xc8f2, 0xc8f2, 0xc0f2, 0xabb7, 0x8ebc, 0x8ebc, 0x8ebc, 0x8ebc, 0x8ebc, 0x8ebc, 0x8ebc, 0x8ebc, 0x8ebc, 0x8ebc, 0x8437, 0x8191, 0xa951, 0xc8f1, 0xc8f1, 0xc8f2, 0xc8f1, 0xc8f1, 0xc8f2, 0xc8f1, 0x9d3a, 0x8ebc, 0x8e1b, 0x81f2, 0x8971, 0xb912, 0xc8f1, 0xc8f1, 0xc8f2, 0xc8f1, 0xc8f1, 0xc8f1, 0xc8f2, 0xc8d1, 0xc112, 0xc8f2, 0xc8f2, 0xc8f2, 0xc8d1, 0xc8f2, 0xc8d1, 0xc8f2, 0xc0f1, 0xc8f1, 0xc8f2, 0xc8f1, 0xc8f2, 0xc0f1, 0xa498, 0x8ebc, 0x8ebc, 0x8ebc, 0x8ebc, 0x8ebc, 0x8ebc, 0x8ebc, 0x8ebc, 0x8dba, 0x8991, 0x8991, 0xc0f1, 0xc8f2, 0xc0f2, 0xc8f1, 0xc8f2, 0xc8f1, 0xc0f1, 0xc8f2, 0xc8f1, 0xc8f2, 0xc0f2, 0xc8f1, 0xc0f1, 0xc8f2, 0xc8f1, 0xc8f2, 0xc8f2, 0xc8f2, 0xc8f1, 0xc8f1, 0xc0f2, 0xc132, 0x8e5c, 0x8c17, 0x8191, 0xa931, 0xc8f2, 0xc8f2, 0xc8f2, 0xc8f2, 0xc8f1, 0xc8f2, 0xc8f2, 0x9d59, 0x8ebc, 0x8ebc, 0x8ebc, 0x8ebc, 0x8c17, 0x8191, 0xa951, 0xc8f1, 0xc8f1, 0xc8f2, 0xc8f1, 0xc8f1, 0xc8f2, 0xc8f1, 0x9d5a, 0x8ebc, 0x8ebc, 0x8ebc, 0x8ebc, 0x8ebd, 0x8dba, 0x81f2, 0x8991, 0xc111, 0xc8f1, 0xc8f1, 0xc8f1, 0xc0f2, 0xc8f1, 0xc8f1, 0xc0f2, 0xc8d2, 0xc8f1, 0xc8f2, 0xc0f1, 0xc0f1, 0xc8f2, 0xc0f1, 0xc8f1, 0xc8f2, 0xc8f2, 0xc8f1, 0xc8f1, 0xc8f2, 0xc152, 0x95fb, 0xa4b8, 0xc152, 0xc952, 0xc952, 0xc952, 0xc972, 0xc952, 0xc952, 0xc952, 0xc952, 0xc952, 0xc952, 0xc952, + 0xc932, 0xc932, 0xc932, 0x8ebc, 0x8ebc, 0x8ebc, 0x8ebc, 0x8ebc, 0x8ebc, 0x8ebc, 0x8d79, 0x8191, 0x9171, 0xc132, 0xc131, 0xc912, 0xc912, 0xc132, 0xc911, 0xc912, 0xabf7, 0x8ebc, 0x8ebc, 0x8ebc, 0x8ebc, 0x8ebc, 0x8ebc, 0x8ebc, 0x8ebc, 0x8ebc, 0x96bc, 0x8c36, 0x8191, 0xa951, 0xc912, 0xc911, 0xc912, 0xc912, 0xc112, 0xc912, 0xc912, 0xabf7, 0x8ebc, 0x8ebc, 0x8ebc, 0x8ebc, 0x8ebc, 0x8ebc, 0x8ebc, 0x8ebc, 0x8ebc, 0x8ebc, 0x8c36, 0x8191, 0xa951, 0xc912, 0xc912, 0xc912, 0xc911, 0xc911, 0xc912, 0xc912, 0x9d59, 0x8ebc, 0x8ad4, 0x8191, 0xb152, 0xc912, 0xc131, 0xc912, 0xc912, 0xc912, 0xc912, 0xc912, 0xc912, 0xc932, 0xc912, 0xc912, 0xc912, 0xc912, 0xc911, 0xc112, 0xc932, 0xc912, 0xc912, 0xc932, 0xc911, 0xc912, 0xc912, 0xc932, 0xc131, 0x9dba, 0x8ebc, 0x96bc, 0x8ebc, 0x8edc, 0x96bb, 0x8ebc, 0x8edc, 0x82d4, 0x8191, 0xb932, 0xc912, 0xc112, 0xc912, 0xc112, 0xc912, 0xc112, 0xc912, 0xc911, 0xc911, 0xc932, 0xc911, 0xc131, 0xc912, 0xc132, 0xc131, 0xc912, 0xc912, 0xc911, 0xc911, 0xc131, 0xc912, 0xc912, 0xb356, 0x8c36, 0x8191, 0xa151, 0xc912, 0xc912, 0xc912, 0xc912, 0xc912, 0xc912, 0xc112, 0x9d59, 0x8ebc, 0x96bc, 0x8ebc, 0x8ebc, 0x8c37, 0x8191, 0xa951, 0xc912, 0xc912, 0xc912, 0xc911, 0xc911, 0xc912, 0xc912, 0x9d59, 0x8ebc, 0x8ebc, 0x8ebc, 0x96bc, 0x8ebc, 0x82f4, 0x8991, 0xb151, 0xc912, 0xc912, 0xc932, 0xc912, 0xc912, 0xc131, 0xc932, 0xc912, 0xc911, 0xc911, 0xc932, 0xc911, 0xc912, 0xc911, 0xc932, 0xc932, 0xc112, 0xc911, 0xc132, 0xc912, 0xc912, 0xc932, 0xb336, 0x96bc, 0xa4f9, 0xc192, 0xc932, 0xc932, 0xc932, 0xc932, 0xc932, 0xc932, 0xc932, 0xc932, 0xc932, 0xc932, + 0xc912, 0xc912, 0xc912, 0x9edb, 0x9edb, 0x9edb, 0x9edc, 0x9edb, 0x9edb, 0x9edb, 0x9578, 0x8191, 0x9991, 0xc952, 0xc952, 0xc952, 0xc952, 0xc952, 0xc952, 0xc952, 0xb417, 0x9edb, 0x9edb, 0x9edb, 0x9edb, 0x9edb, 0x9edb, 0x9edb, 0x9edb, 0x9edb, 0x9edb, 0x9436, 0x8191, 0xa972, 0xc952, 0xc952, 0xc952, 0xc952, 0xc952, 0xc952, 0xc952, 0xa518, 0x9edb, 0x96db, 0x9edb, 0x9edb, 0x9edb, 0x9edb, 0x9edb, 0x9edb, 0x9edb, 0x9edb, 0x9436, 0x8191, 0xa171, 0xc952, 0xc952, 0xc952, 0xc952, 0xc952, 0xc952, 0xc952, 0xa579, 0x94d8, 0x8191, 0x9991, 0xc952, 0xc952, 0xc952, 0xc952, 0xc952, 0xc152, 0xc952, 0xc952, 0xc952, 0xc952, 0xc952, 0xc253, 0xc2b4, 0xb952, 0xc152, 0xc952, 0xc152, 0xc952, 0xc952, 0xc952, 0xc952, 0xc952, 0xc952, 0xc952, 0xc952, 0xbab5, 0x9edb, 0x9edb, 0x9edb, 0x9edb, 0x9edb, 0x9edb, 0x9599, 0x8191, 0x91b1, 0xc952, 0xc952, 0xc952, 0xc952, 0xc952, 0xc952, 0xc952, 0xc952, 0xc952, 0xc952, 0xc1f3, 0xc2b5, 0xb952, 0xc152, 0xc952, 0xc952, 0xc952, 0xc952, 0xc952, 0xc972, 0xc952, 0xc952, 0xc972, 0xc1b2, 0x9436, 0x8191, 0xa972, 0xc952, 0xc952, 0xc952, 0xc952, 0xc952, 0xc952, 0xc952, 0xa579, 0x9edb, 0x9edb, 0x9edb, 0x9edb, 0x8c36, 0x8991, 0xa171, 0xc952, 0xc952, 0xc952, 0xc952, 0xc952, 0xc952, 0xc952, 0xa579, 0x9edb, 0x9edc, 0x9edb, 0x9edb, 0x9598, 0x8191, 0x9191, 0xc952, 0xc952, 0xc952, 0xc952, 0xc152, 0xc952, 0xc172, 0xc952, 0xc952, 0xc952, 0xc1f3, 0xc2b4, 0xb952, 0xc152, 0xc952, 0xc952, 0xc952, 0xc952, 0xc952, 0xc952, 0xc952, 0xc952, 0xc952, 0xc952, 0xa61a, 0x9edc, 0xa5da, 0xc172, 0xc912, 0xc911, 0xc911, 0xc912, 0xc912, 0xc111, 0xc912, 0xc912, 0xc912, + 0xc8f1, 0xc8f1, 0xc8f2, 0xa6fb, 0xa6fa, 0xa6fa, 0xa6fb, 0xa6fa, 0xa6da, 0xa6fa, 0x9d98, 0x8191, 0x9191, 0xc972, 0xc992, 0xc992, 0xc972, 0xc992, 0xc992, 0xc992, 0xb436, 0xa6fb, 0xa6fa, 0xa6fa, 0xa6fa, 0xa6fa, 0xa6fa, 0xa6fa, 0xa6fa, 0xa6fa, 0xa6fa, 0x9436, 0x8191, 0xa992, 0xc992, 0xc992, 0xc972, 0xc972, 0xc972, 0xc992, 0xc992, 0xad98, 0xa6da, 0xa6da, 0xa6fa, 0xa6fa, 0xa6fa, 0xa6fa, 0xa6fa, 0xa6fa, 0xa6fa, 0xa6fa, 0x9436, 0x8191, 0xa992, 0xc993, 0xc992, 0xc992, 0xc992, 0xc992, 0xc992, 0xc992, 0xad99, 0x8a32, 0x8991, 0xc192, 0xc992, 0xc992, 0xc972, 0xc992, 0xc992, 0xc973, 0xc992, 0xc992, 0xc992, 0xbc36, 0xa69a, 0xa6fa, 0xa6fa, 0xa69a, 0x9395, 0x8991, 0xb992, 0xc993, 0xc972, 0xc972, 0xc992, 0xc992, 0xc972, 0xc992, 0xc972, 0xc972, 0xad98, 0xa6db, 0xa6da, 0xa6fa, 0xa6fb, 0xa6fa, 0x9395, 0x8191, 0xb192, 0xc992, 0xc992, 0xc992, 0xc993, 0xc972, 0xc972, 0xc992, 0xc972, 0xc233, 0xad98, 0xa6fa, 0xa6fb, 0xa639, 0x8a93, 0x9992, 0xc192, 0xc972, 0xc992, 0xc992, 0xc992, 0xc972, 0xc992, 0xc972, 0xc972, 0x9a93, 0x8191, 0xa992, 0xc992, 0xc992, 0xc992, 0xc992, 0xc992, 0xc992, 0xc992, 0xad98, 0xa6fa, 0xa6fb, 0xa6fa, 0xa6fa, 0x9436, 0x8191, 0xa992, 0xc993, 0xc992, 0xc992, 0xc992, 0xc992, 0xc992, 0xc992, 0xad98, 0xa6da, 0xa6da, 0xa6fa, 0xa6da, 0x8b95, 0x8191, 0xb192, 0xc972, 0xc992, 0xc972, 0xc992, 0xc992, 0xc972, 0xc992, 0xc972, 0xc294, 0xadf9, 0xa6fa, 0xa6da, 0xa69a, 0x9334, 0x9191, 0xb992, 0xc992, 0xc993, 0xc992, 0xc992, 0xc992, 0xc992, 0xc992, 0xc992, 0xb497, 0xaefb, 0xaefb, 0xb5d9, 0xc952, 0xc8f1, 0xc8f2, 0xc0f1, 0xc8f1, 0xc8f1, 0xc8f1, 0xc8f1, 0xc8f1, + 0xc0d1, 0xc0d1, 0xc8d2, 0xb71a, 0xb71a, 0xb71a, 0xaefa, 0xb71a, 0xaf1a, 0xaefa, 0xa598, 0x8191, 0x9191, 0xc9b3, 0xc9b3, 0xc9d3, 0xc9d3, 0xc9b2, 0xc9b3, 0xc9d3, 0xbc76, 0xb71a, 0xb71a, 0xb71a, 0xb71a, 0xb71a, 0xb71a, 0xb71a, 0xb71a, 0xb71a, 0xb71a, 0x9c55, 0x8191, 0xa9b2, 0xc9d3, 0xc9d3, 0xc9b3, 0xc9b2, 0xc9b3, 0xc9d3, 0xc9d3, 0xb5b8, 0xb71a, 0xaf1a, 0xb71a, 0xb6fa, 0xb71a, 0xb71a, 0xb71a, 0xb71a, 0xb6fa, 0xaf1a, 0x9c56, 0x8191, 0xa992, 0xc9b3, 0xc9b3, 0xc9b3, 0xc9b3, 0xc9b3, 0xc9b3, 0xc9b3, 0xa3b5, 0x8191, 0x9992, 0xc9b2, 0xc9b3, 0xc9d2, 0xc9b2, 0xc9b3, 0xc9b2, 0xc9b3, 0xc9d3, 0xca13, 0xbdb8, 0xaefa, 0xaf1a, 0xb71a, 0xb6fa, 0xaefa, 0xaf19, 0xa4f7, 0x8991, 0xb1b2, 0xc9b3, 0xc9b3, 0xc9b3, 0xc9b3, 0xc9b3, 0xc9d2, 0xc9b3, 0xc9b3, 0xc314, 0xaf1a, 0xaf1a, 0xaef9, 0xaf1a, 0xaf1a, 0x89f1, 0x8191, 0xc1b2, 0xc9b3, 0xc9b3, 0xc9b3, 0xc9b2, 0xc9b2, 0xc9d3, 0xc9b3, 0xcab4, 0xb6b9, 0xaf1a, 0xb71a, 0xaefa, 0xb71a, 0xb6b9, 0x8a93, 0x8991, 0xc1d2, 0xc9b3, 0xc9b3, 0xc9b3, 0xc9b3, 0xc9b2, 0xc9d3, 0xc9b2, 0xa992, 0x8191, 0xa9b2, 0xc9d3, 0xc9b3, 0xc9d3, 0xc9b2, 0xc9b2, 0xc9b2, 0xc9b3, 0xb5b8, 0xaf1a, 0xaefa, 0xaf1a, 0xb71a, 0x9c56, 0x8191, 0xa992, 0xc9b3, 0xc9b3, 0xc9b3, 0xc9b3, 0xc9b3, 0xc9b3, 0xc9b3, 0xb5b8, 0xb6fa, 0xaf1a, 0xaf1a, 0xb6fa, 0x89f2, 0x8191, 0xc1b2, 0xc9b3, 0xc9b2, 0xc9d3, 0xc9b3, 0xc9b3, 0xc9b2, 0xc9d3, 0xcab4, 0xb6b9, 0xaf1a, 0xb71a, 0xb71a, 0xb6fa, 0xb71a, 0x92f3, 0x89b1, 0xc1b2, 0xc9d3, 0xc9b3, 0xc9b3, 0xc9d3, 0xc9d3, 0xc9b3, 0xc9d3, 0xc315, 0xb71a, 0xb71a, 0xb71a, 0xbdd9, 0xc132, 0xc0d1, 0xc8d1, 0xc8d1, 0xc8d1, 0xc8d1, 0xc0d1, 0xc0d1, + 0xc0b1, 0xc8b1, 0xc0b1, 0xbf19, 0xbf19, 0xbf19, 0xbf19, 0xbf19, 0xbf19, 0xbf19, 0xa4b5, 0x8191, 0xa1b2, 0xc9f3, 0xc9f3, 0xc9f3, 0xc9f3, 0xc9f3, 0xc9f3, 0xd1f3, 0xc496, 0xbf19, 0xbf19, 0xbf19, 0xbf19, 0xbf19, 0xbf19, 0xbf19, 0xbf19, 0xbf19, 0xbf19, 0xa455, 0x8191, 0xa9d2, 0xc9f3, 0xc9f3, 0xc9f3, 0xc9f3, 0xc9f3, 0xc9f3, 0xc9f3, 0xbdd8, 0xbf19, 0xbf19, 0xbf19, 0xbf39, 0xbf19, 0xbf19, 0xbf39, 0xbf19, 0xbf39, 0xbf39, 0xa455, 0x8191, 0xa9d2, 0xc9f3, 0xc9f3, 0xc9f3, 0xc9f3, 0xc9f3, 0xc9f3, 0xc9f3, 0x99f2, 0x8991, 0xb1d2, 0xc9f3, 0xc9f3, 0xc9f3, 0xc9f3, 0xc9f3, 0xc9f3, 0xc9f3, 0xc9f2, 0xc577, 0xbf19, 0xbf39, 0xbf39, 0xbf19, 0xbf19, 0xbf19, 0xbf19, 0xbf19, 0x9bf5, 0x8191, 0xb1d2, 0xc9f3, 0xc9f3, 0xd1f3, 0xc9f3, 0xc9f3, 0xc9f3, 0xc9f3, 0xc9f3, 0xbe78, 0xbf19, 0xbf19, 0xbf19, 0xb6b9, 0x8191, 0x8991, 0xc9f3, 0xc9f3, 0xc9f2, 0xc9f3, 0xc9f3, 0xc9d3, 0xc9f3, 0xc9f3, 0xbed8, 0xbf19, 0xbf19, 0xbf19, 0xbf19, 0xbf19, 0xbf39, 0xad57, 0x8191, 0x99b2, 0xc9f3, 0xc9f2, 0xc9f3, 0xc9f3, 0xc9f3, 0xc9f3, 0xc9f3, 0xb9d3, 0x8191, 0xa9b2, 0xc9f3, 0xc9f3, 0xc9f3, 0xc9f3, 0xc9f3, 0xc9f3, 0xc9f3, 0xbdd8, 0xbf19, 0xbf19, 0xbf19, 0xbf19, 0x9c75, 0x8191, 0xa9d2, 0xc9f3, 0xc9f3, 0xc9f3, 0xc9f3, 0xc9f3, 0xc9f3, 0xc9f3, 0xbdd8, 0xbf19, 0xbf19, 0xbf19, 0xb6b8, 0x8191, 0x8191, 0xc9f3, 0xc9f3, 0xc9f3, 0xc9f3, 0xc9f3, 0xc9f3, 0xc9f3, 0xc9f3, 0xbe78, 0xbf19, 0xbf39, 0xbf19, 0xbf39, 0xbf19, 0xbf19, 0xadb7, 0x8191, 0x91b1, 0xc9f3, 0xc9f3, 0xc9f3, 0xc9f2, 0xc9f3, 0xc9f3, 0xc9f3, 0xc9f3, 0xc71a, 0xbf1a, 0xc73a, 0xbf3a, 0xc659, 0xc9d3, 0xc0b1, 0xc8b1, 0xc0b1, 0xc0b1, 0xc8b1, 0xc0b1, + 0xc0b1, 0xc0b1, 0xc0b1, 0xc738, 0xc738, 0xc738, 0xc738, 0xc738, 0xc738, 0xc738, 0xa475, 0x8991, 0xa9d2, 0xca13, 0xca33, 0xca33, 0xca34, 0xca13, 0xca33, 0xca33, 0xccb6, 0xc738, 0xc738, 0xc738, 0xc738, 0xc738, 0xc738, 0xc738, 0xc738, 0xc738, 0xc738, 0xa455, 0x8191, 0xa9d2, 0xca33, 0xca33, 0xca13, 0xca33, 0xca33, 0xca33, 0xd213, 0xc5f7, 0xc738, 0xc738, 0xc738, 0xc738, 0xc739, 0xc738, 0xc738, 0xc738, 0xc738, 0xc738, 0xa475, 0x8191, 0xa9d2, 0xca13, 0xca33, 0xca33, 0xca33, 0xca33, 0xca13, 0xca33, 0x91b1, 0x8191, 0xca13, 0xca33, 0xca33, 0xca33, 0xca33, 0xca13, 0xca33, 0xca13, 0xc455, 0xc738, 0xc739, 0xc738, 0xc738, 0xc738, 0xc738, 0xc739, 0xc738, 0xc738, 0xc738, 0x8a52, 0x8991, 0xc213, 0xca13, 0xca13, 0xca13, 0xca13, 0xca33, 0xca13, 0xca33, 0xcd56, 0xc738, 0xc738, 0xc739, 0xb5d7, 0x8191, 0x91b1, 0xca13, 0xca13, 0xca13, 0xd233, 0xca33, 0xca33, 0xca33, 0xcb55, 0xcf38, 0xc738, 0xc738, 0xc738, 0xc738, 0xc738, 0xc739, 0xc738, 0x8191, 0x8191, 0xca13, 0xca13, 0xca13, 0xca33, 0xca13, 0xca33, 0xd233, 0xca13, 0x8191, 0xa9d2, 0xca33, 0xca33, 0xca13, 0xca13, 0xca33, 0xca13, 0xca33, 0xcdf7, 0xc738, 0xc738, 0xc738, 0xc739, 0xa475, 0x8191, 0xa9d2, 0xca13, 0xca33, 0xca33, 0xca33, 0xca33, 0xca13, 0xca33, 0xc5f7, 0xc738, 0xc738, 0xc738, 0xb5d6, 0x8191, 0x99b2, 0xca33, 0xca33, 0xd213, 0xca33, 0xca33, 0xca33, 0xca33, 0xcb74, 0xc739, 0xc738, 0xc738, 0xc738, 0xc738, 0xc739, 0xc738, 0xc738, 0x8ab2, 0x8191, 0xba13, 0xca13, 0xca13, 0xca33, 0xca13, 0xca33, 0xca33, 0xca13, 0xcf39, 0xc739, 0xc759, 0xcf3a, 0xcf39, 0xced9, 0xc9f3, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, + 0xc0b1, 0xc0b1, 0xc0b1, 0xcf57, 0xd758, 0xd758, 0xcf58, 0xd758, 0xcf58, 0xd758, 0xac74, 0x8191, 0xa9f2, 0xca53, 0xd253, 0xca54, 0xca53, 0xca53, 0xca53, 0xca54, 0xccd6, 0xcf58, 0xd758, 0xd758, 0xd758, 0xd758, 0xd758, 0xd758, 0xd758, 0xd758, 0xcf58, 0xac75, 0x8191, 0xa9f2, 0xca53, 0xca53, 0xd253, 0xca53, 0xca53, 0xca53, 0xd254, 0xce17, 0xcf57, 0xd758, 0xcf58, 0xd758, 0xcf58, 0xd758, 0xd758, 0xcf58, 0xd758, 0xcf58, 0xac74, 0x8191, 0xa9f2, 0xca53, 0xca54, 0xd253, 0xca53, 0xca53, 0xca54, 0xca53, 0x99d2, 0x89b1, 0xca53, 0xca53, 0xca53, 0xca53, 0xd253, 0xca53, 0xca53, 0xca54, 0xd6b7, 0xd758, 0xcf58, 0xcf57, 0xcf58, 0xd758, 0xd757, 0xd758, 0xd757, 0xd758, 0xcf58, 0xb535, 0x8191, 0xa1d2, 0xca53, 0xca53, 0xca53, 0xd254, 0xca73, 0xca53, 0xca53, 0xcc95, 0xd758, 0xd758, 0xcf58, 0xbdd6, 0x8191, 0x99d2, 0xca53, 0xca53, 0xca54, 0xca53, 0xca53, 0xd254, 0xca54, 0xd435, 0xd758, 0xd758, 0xcf58, 0xd758, 0xd758, 0xcf57, 0xd738, 0xcf58, 0x9af3, 0x8991, 0xc213, 0xca54, 0xca53, 0xca53, 0xd253, 0xca53, 0xca54, 0xca73, 0x8191, 0xa9f2, 0xca53, 0xd253, 0xd253, 0xca54, 0xd253, 0xca53, 0xca54, 0xce17, 0xcf58, 0xd758, 0xd758, 0xcf58, 0xac74, 0x8191, 0xa9f2, 0xca53, 0xca54, 0xd253, 0xca53, 0xca53, 0xca54, 0xca53, 0xd617, 0xd758, 0xcf58, 0xcf58, 0xbdd6, 0x8191, 0x91b2, 0xca53, 0xd254, 0xca53, 0xca53, 0xca54, 0xd253, 0xd253, 0xccd6, 0xd758, 0xd758, 0xd758, 0xd758, 0xcf57, 0xd757, 0xcf58, 0xd758, 0x9af3, 0x8191, 0xba33, 0xca54, 0xca53, 0xd253, 0xca54, 0xca53, 0xd253, 0xca53, 0xd758, 0xd758, 0xdf59, 0xd779, 0xd759, 0xd759, 0xd6f9, 0xc1f2, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, + 0xc0b1, 0xc0b1, 0xc0b1, 0xdf77, 0xdf77, 0xdf77, 0xdf77, 0xdf77, 0xdf77, 0xdf77, 0xb494, 0x8191, 0xaa12, 0xca94, 0xca74, 0xca94, 0xca94, 0xca94, 0xca94, 0xd294, 0xd4f5, 0xdf77, 0xdf77, 0xdf77, 0xdf77, 0xdf77, 0xdf77, 0xdf77, 0xdf77, 0xdf77, 0xdf77, 0xb474, 0x8191, 0xaa12, 0xca94, 0xca94, 0xd294, 0xca94, 0xd294, 0xca94, 0xd294, 0xde36, 0xdf77, 0xdf77, 0xdf57, 0xdf77, 0xdf77, 0xdf77, 0xdf77, 0xdf77, 0xdf77, 0xdf77, 0xb494, 0x8191, 0xaa12, 0xca94, 0xd294, 0xd294, 0xd294, 0xd294, 0xd294, 0xd294, 0x99d2, 0x91d2, 0xd294, 0xca94, 0xd294, 0xca94, 0xd294, 0xca94, 0xca94, 0xd3d4, 0xdf77, 0xdf77, 0xdf77, 0xdf76, 0xdf77, 0xdf77, 0xdf77, 0xdf77, 0xdf77, 0xdf57, 0xdf77, 0xdf77, 0x8191, 0x8992, 0xca94, 0xca94, 0xca94, 0xd294, 0xca94, 0xca93, 0xca94, 0xd3d5, 0xdf77, 0xdf77, 0xdf77, 0xc5f5, 0x8191, 0x99d2, 0xca94, 0xca94, 0xd273, 0xca94, 0xd294, 0xca94, 0xd294, 0xd515, 0xdf77, 0xdf77, 0xdf77, 0xdf77, 0xdf77, 0xdf77, 0xdf77, 0xdf77, 0x9b12, 0x8191, 0xba53, 0xca94, 0xca94, 0xd294, 0xca94, 0xca93, 0xd294, 0xca94, 0x8191, 0xaa12, 0xd294, 0xd294, 0xd294, 0xca94, 0xca94, 0xd294, 0xd294, 0xde36, 0xdf77, 0xdf77, 0xdf57, 0xdf77, 0xb474, 0x8191, 0xaa12, 0xca94, 0xd294, 0xd294, 0xd294, 0xd294, 0xd294, 0xd294, 0xde36, 0xdf77, 0xdf77, 0xdf77, 0xc5f5, 0x8191, 0x99d2, 0xd294, 0xca94, 0xca94, 0xd294, 0xca94, 0xca94, 0xca93, 0xd4f5, 0xdf77, 0xdf77, 0xdf77, 0xdf77, 0xdf77, 0xdf77, 0xdf77, 0xdf77, 0x9b12, 0x8191, 0xba53, 0xd294, 0xca94, 0xca94, 0xd294, 0xca94, 0xd294, 0xca94, 0xdf78, 0xdf78, 0xdf78, 0xdf78, 0xdf78, 0xdf78, 0xe779, 0xdf19, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, + 0xb8d1, 0xb8d1, 0xc0d1, 0xe776, 0xe796, 0xe797, 0xe797, 0xe796, 0xe796, 0xe796, 0xb494, 0x8191, 0xaa33, 0xd2b4, 0xd2b4, 0xd2b4, 0xcab4, 0xd2d4, 0xd2b4, 0xd2b4, 0xdd35, 0xe776, 0xe796, 0xe796, 0xe796, 0xe796, 0xe796, 0xe796, 0xe796, 0xe796, 0xe796, 0xb474, 0x8191, 0xaa33, 0xd2d4, 0xd2d4, 0xd2d4, 0xd2b4, 0xd2b4, 0xcad4, 0xd2d4, 0xe656, 0xef96, 0xe776, 0xe797, 0xe796, 0xe796, 0xe776, 0xe777, 0xe796, 0xe796, 0xe796, 0xb494, 0x8191, 0xaa33, 0xd2b4, 0xd2b4, 0xd2b4, 0xd2b4, 0xd2b4, 0xd2b4, 0xd2b4, 0x99d2, 0x99f2, 0xcab4, 0xd2b4, 0xd2d4, 0xd2b4, 0xd2b4, 0xcad4, 0xd2b4, 0xd3f5, 0xe777, 0xe797, 0xef97, 0xe796, 0xe796, 0xe776, 0xe777, 0xe796, 0xe796, 0xe796, 0xe777, 0xef97, 0x8191, 0x8191, 0xd2b4, 0xd2b4, 0xd2d4, 0xd2d4, 0xd2b4, 0xd2b4, 0xcad4, 0xd3d5, 0xe796, 0xe796, 0xe796, 0xce15, 0x8191, 0x99f2, 0xcad4, 0xd2b4, 0xd2d4, 0xd2b4, 0xd2b4, 0xcab4, 0xd2b4, 0xdd35, 0xe777, 0xef76, 0xe796, 0xe797, 0xe797, 0xe776, 0xe796, 0xe776, 0xc534, 0xb494, 0xcc15, 0xd3f5, 0xdbf4, 0xdbf4, 0xdbf5, 0xd3f5, 0xd3f4, 0xcb34, 0x8191, 0xaa32, 0xd2b4, 0xd2b4, 0xd2b4, 0xd2b4, 0xd2d4, 0xd2b4, 0xcab4, 0xe656, 0xe776, 0xe796, 0xe796, 0xe776, 0xb494, 0x8191, 0xaa33, 0xd2b4, 0xd2b4, 0xd2b4, 0xd2b4, 0xd2b4, 0xd2b4, 0xd2b4, 0xde56, 0xe796, 0xe796, 0xe796, 0xce15, 0x8191, 0x99f2, 0xd2b4, 0xd2b4, 0xd2d4, 0xd2b4, 0xd2d4, 0xcad4, 0xcad4, 0xdd15, 0xe796, 0xe796, 0xe776, 0xe796, 0xef96, 0xe796, 0xe796, 0xe796, 0x9b13, 0x8191, 0xba73, 0xd2b4, 0xd2b4, 0xd2b4, 0xd2b4, 0xd2b4, 0xd2b4, 0xd2b4, 0xe797, 0xef97, 0xef77, 0xef97, 0xef78, 0xef98, 0xef98, 0xef98, 0xc992, 0xb8d1, 0xc0d1, 0xc0b1, + 0xb8d1, 0xb8d1, 0xb8d1, 0xf796, 0xf7b6, 0xf796, 0xf795, 0xf795, 0xf796, 0xefb6, 0xbc93, 0x8191, 0xaa52, 0xd2f4, 0xd2f4, 0xd2f4, 0xd2f5, 0xd2f5, 0xd2f5, 0xd2f4, 0xdd55, 0xf7b6, 0xf7b6, 0xf7b6, 0xf7b6, 0xf7b6, 0xf7b6, 0xf7b6, 0xf7b6, 0xf7b6, 0xefb6, 0xbc93, 0x8191, 0xaa53, 0xd2f5, 0xd2f4, 0xd2f4, 0xd2f4, 0xd2f4, 0xd2f4, 0xd2f4, 0xe675, 0xf796, 0xf795, 0xf796, 0xf796, 0xf796, 0xf7b6, 0xf7b5, 0xf7b5, 0xef96, 0xf796, 0xbc93, 0x8191, 0xaa33, 0xd2f4, 0xd2f4, 0xd2f4, 0xd2f4, 0xd2f4, 0xd2f4, 0xd2f4, 0x99f2, 0x99f2, 0xd2f5, 0xd2f4, 0xd2f4, 0xd2f5, 0xd2d4, 0xd2f4, 0xd2f4, 0xdc75, 0xf795, 0xf795, 0xf795, 0xf796, 0xf7b5, 0xf796, 0xf796, 0xf796, 0xf796, 0xefb6, 0xf7b5, 0xf796, 0x8191, 0x8991, 0xd2f4, 0xd2f4, 0xd2f4, 0xd2f4, 0xd2f4, 0xd2f4, 0xd2f4, 0xdc15, 0xf796, 0xf796, 0xf796, 0xd615, 0x8191, 0x99f2, 0xd2f4, 0xd2f4, 0xd2f4, 0xd2f4, 0xd2f5, 0xd2f4, 0xd2f5, 0xe535, 0xf7b6, 0xf7b5, 0xf796, 0xefb6, 0xf796, 0xf795, 0xf7b6, 0xf796, 0xf7b6, 0xf795, 0xf796, 0xf796, 0xf795, 0xf7b6, 0xf795, 0xf7b6, 0xf796, 0xbc93, 0x8191, 0xaa53, 0xd2f4, 0xd2f4, 0xd2f4, 0xd2f4, 0xd2f4, 0xd2f4, 0xd2f4, 0xee75, 0xf796, 0xf796, 0xf7b5, 0xf796, 0xbc93, 0x8191, 0xaa33, 0xd2f4, 0xd2f4, 0xd2f4, 0xd2f4, 0xd2f4, 0xd2f4, 0xd2f4, 0xee75, 0xf796, 0xf7b5, 0xf795, 0xd634, 0x8191, 0x99f2, 0xd2f4, 0xd2f5, 0xd2f4, 0xd2f5, 0xd2f5, 0xd2f5, 0xd2d4, 0xe555, 0xf796, 0xf7b5, 0xf7b6, 0xf7b6, 0xf795, 0xf7b6, 0xf796, 0xf7b6, 0xa311, 0x8191, 0xba94, 0xd2f4, 0xd2f4, 0xd2f4, 0xd2f4, 0xd2f4, 0xd2f4, 0xd2f4, 0xf796, 0xf796, 0xf797, 0xf797, 0xf797, 0xf7b7, 0xf798, 0xf798, 0xd273, 0xb8d1, 0xb8d1, 0xb8d1, + 0xb8d1, 0xb8d1, 0xb8d1, 0xff94, 0xffb5, 0xffb5, 0xffb5, 0xffb5, 0xffb4, 0xffb5, 0xc493, 0x8191, 0xaa53, 0xd315, 0xd335, 0xd335, 0xd335, 0xd334, 0xd315, 0xd335, 0xe575, 0xffb5, 0xffb5, 0xffb5, 0xffb5, 0xffb5, 0xffb5, 0xffb5, 0xffb5, 0xffb5, 0xffb5, 0xc493, 0x8191, 0xaa53, 0xd335, 0xd335, 0xd314, 0xd315, 0xd335, 0xd335, 0xd335, 0xf675, 0xffb5, 0xffb4, 0xffb5, 0xffb5, 0xffb4, 0xffb4, 0xffb4, 0xffb5, 0xffb5, 0xff95, 0xc493, 0x8191, 0xaa53, 0xd335, 0xd335, 0xd335, 0xd335, 0xd315, 0xd315, 0xd335, 0x99f2, 0x99f2, 0xd335, 0xd314, 0xd315, 0xd335, 0xd335, 0xd315, 0xd335, 0xdc54, 0xffb5, 0xffb5, 0xffb5, 0xffb5, 0xffb4, 0xffb5, 0xffb5, 0xffb5, 0xffb5, 0xffb5, 0xffb4, 0xffb5, 0x8191, 0x8191, 0xd334, 0xd315, 0xd335, 0xd335, 0xd335, 0xd335, 0xd315, 0xdc34, 0xffb4, 0xffb5, 0xffb5, 0xde34, 0x8191, 0x99f2, 0xd314, 0xd335, 0xd315, 0xd334, 0xd334, 0xd335, 0xd335, 0xe574, 0xffb5, 0xffb5, 0xffb5, 0xffb5, 0xffb5, 0xffb5, 0xffb5, 0xffb4, 0xffb4, 0xffb5, 0xffb4, 0xffb5, 0xffb5, 0xffb5, 0xffb4, 0xffb5, 0xffb5, 0xc4b3, 0x8191, 0xaa53, 0xd335, 0xd335, 0xd314, 0xd315, 0xd335, 0xd335, 0xd335, 0xedf5, 0xffb5, 0xffb5, 0xffb5, 0xffb5, 0xc493, 0x8191, 0xaa53, 0xd335, 0xd335, 0xd335, 0xd335, 0xd315, 0xd315, 0xd335, 0xf694, 0xffb5, 0xffb5, 0xffb5, 0xde14, 0x8191, 0x99f2, 0xd335, 0xd335, 0xd314, 0xd334, 0xd314, 0xd334, 0xd315, 0xe555, 0xffb5, 0xffb5, 0xffb5, 0xffb4, 0xffb5, 0xffb5, 0xffb5, 0xffb5, 0xa332, 0x8191, 0xbab4, 0xd335, 0xd335, 0xd335, 0xd315, 0xd334, 0xd335, 0xd335, 0xffb5, 0xffb6, 0xffb6, 0xffb6, 0xffb6, 0xffb6, 0xffb7, 0xffb8, 0xdbd4, 0xb8d2, 0xb8d1, 0xb8d1, + 0xb8d1, 0xb8d1, 0xb8d1, 0xfe2e, 0xfe2e, 0xfe2e, 0xfe2e, 0xfe2e, 0xfe4e, 0xfe4e, 0xc3f0, 0x8191, 0xaa73, 0xd355, 0xd355, 0xd355, 0xd355, 0xd355, 0xd355, 0xd355, 0xecd1, 0xfe2e, 0xfe2e, 0xfe2e, 0xfe2e, 0xfe2e, 0xfe2e, 0xfe2e, 0xfe2e, 0xfe2e, 0xfe2e, 0xc3ef, 0x8191, 0xaa73, 0xd355, 0xd355, 0xd355, 0xd355, 0xd355, 0xd355, 0xd354, 0xf590, 0xfe4e, 0xfe4e, 0xfe2e, 0xfe2e, 0xfe4e, 0xfe2e, 0xfe2e, 0xfe2e, 0xfe2e, 0xfe2e, 0xc3ef, 0x8191, 0xaa73, 0xd355, 0xd355, 0xd355, 0xd355, 0xd355, 0xd355, 0xd355, 0x9a12, 0x91f2, 0xd355, 0xd354, 0xd355, 0xd355, 0xd355, 0xd355, 0xd355, 0xdbd4, 0xfe4e, 0xfe2e, 0xfe2e, 0xfe2e, 0xfe2e, 0xfe4e, 0xfe2e, 0xfe4e, 0xfe2e, 0xfe2e, 0xfe2e, 0xfe4e, 0x8191, 0x8191, 0xd355, 0xd355, 0xd355, 0xd355, 0xd355, 0xd355, 0xd355, 0xdc13, 0xfe4e, 0xfe2e, 0xfe2e, 0xe50f, 0x8191, 0x99f2, 0xd355, 0xd355, 0xd355, 0xd355, 0xd355, 0xd355, 0xd354, 0xecd1, 0xfe2e, 0xfe2e, 0xfe2e, 0xfe2e, 0xfe2e, 0xfe2e, 0xfe2e, 0xfe2e, 0xfe4e, 0xfe2e, 0xfe2e, 0xfe2e, 0xfe2e, 0xfe4e, 0xfe4e, 0xfe2e, 0xfe2e, 0xc3cf, 0x8191, 0xaa73, 0xd355, 0xd355, 0xd355, 0xd355, 0xd355, 0xd355, 0xd355, 0xe4d1, 0xfe4e, 0xfe2e, 0xfe2e, 0xfe4e, 0xc3d0, 0x8191, 0xaa73, 0xd355, 0xd355, 0xd355, 0xd355, 0xd355, 0xd355, 0xd355, 0xf590, 0xfe4e, 0xfe2e, 0xfe2e, 0xe50f, 0x8191, 0x9a12, 0xd355, 0xd355, 0xd355, 0xd355, 0xd355, 0xd355, 0xd355, 0xecd2, 0xfe2e, 0xfe4e, 0xfe2e, 0xfe4e, 0xfe4e, 0xfe4e, 0xfe4d, 0xfe2f, 0xa2b0, 0x8191, 0xc2f4, 0xd355, 0xd355, 0xd355, 0xd355, 0xd355, 0xd355, 0xd355, 0xfe2f, 0xfe50, 0xfe50, 0xfe50, 0xfe51, 0xfe51, 0xfe52, 0xfe52, 0xe3d2, 0xb8d2, 0xb8d1, 0xb8d1, + 0xb8d1, 0xb0d1, 0xb0d2, 0xfc8d, 0xfc6d, 0xfc6d, 0xfc8d, 0xfc6d, 0xfc6d, 0xfc6d, 0xc30f, 0x81b1, 0xaa73, 0xd395, 0xd395, 0xd395, 0xd375, 0xd395, 0xd395, 0xd375, 0xec11, 0xfc6d, 0xfc6d, 0xfc6d, 0xfc6d, 0xfc6d, 0xfc6d, 0xfc6d, 0xfc6d, 0xfc6d, 0xfc8d, 0xc30f, 0x8191, 0xaa93, 0xd375, 0xd375, 0xd395, 0xd395, 0xd375, 0xd395, 0xd396, 0xf42f, 0xfc6d, 0xfc6d, 0xfc8d, 0xfc6d, 0xfc6d, 0xfc8d, 0xfc8d, 0xfc6d, 0xfc6d, 0xfc8d, 0xc30f, 0x8191, 0xaa93, 0xd395, 0xd395, 0xd395, 0xd395, 0xd375, 0xd375, 0xd395, 0x9a12, 0x8191, 0xd395, 0xd395, 0xd396, 0xd395, 0xd395, 0xd375, 0xd395, 0xd395, 0xf44f, 0xfc8d, 0xfc6d, 0xfc6d, 0xfc8d, 0xfc6d, 0xfc6d, 0xfc6d, 0xfc6d, 0xfc8d, 0xfc8d, 0xfc6d, 0x8191, 0x8191, 0xd395, 0xd395, 0xd395, 0xd375, 0xd395, 0xd395, 0xd396, 0xdbd3, 0xfc8d, 0xfc6d, 0xfc6d, 0xe3ce, 0x8191, 0x9a12, 0xd395, 0xd395, 0xd395, 0xd376, 0xd395, 0xd395, 0xd395, 0xec11, 0xfc6d, 0xfc6d, 0xfc6d, 0xfc6d, 0xfc8d, 0xfc8d, 0xfc6d, 0xfc6d, 0xfc6d, 0xfc6d, 0xfc6d, 0xfc6d, 0xfc6d, 0xfc6d, 0xfc8d, 0xfc6d, 0xfc8d, 0xc30f, 0x8191, 0xaa93, 0xd375, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xebf1, 0xfc8d, 0xfc6d, 0xfc8d, 0xfc6d, 0xc30f, 0x8191, 0xaa93, 0xd395, 0xd395, 0xd395, 0xd395, 0xd375, 0xd375, 0xd395, 0xf42f, 0xfc6d, 0xfc6d, 0xfc8d, 0xe3ce, 0x8191, 0x9a12, 0xd395, 0xd395, 0xd375, 0xd395, 0xd376, 0xd395, 0xd395, 0xebf1, 0xfc8d, 0xfc6d, 0xfc6d, 0xfc8d, 0xfc6d, 0xfc6d, 0xfc6d, 0xfc8d, 0xa250, 0x8191, 0xc314, 0xd375, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd375, 0xfc8e, 0xfc8f, 0xfc8f, 0xfc8f, 0xfcb0, 0xfcb0, 0xfcb1, 0xfcb1, 0xf3b2, 0xb8d1, 0xb0f1, 0xb8d1, + 0xb0f1, 0xb0f1, 0xb0d1, 0xfc8d, 0xfc8d, 0xfc8d, 0xfc8d, 0xfc8d, 0xfc8d, 0xfc8d, 0xc30f, 0x8191, 0xaa93, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xec11, 0xfc8d, 0xfc8d, 0xfc8d, 0xfc8d, 0xfc8d, 0xfc8d, 0xfc8d, 0xfc8d, 0xfc8d, 0xfc8d, 0xc30f, 0x8191, 0xaa93, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xf44f, 0xfc8d, 0xfc8d, 0xfc8d, 0xfc8d, 0xfc8d, 0xfc8d, 0xfc8d, 0xfc8d, 0xfc8d, 0xfc8d, 0xc30f, 0x8191, 0xaa93, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0x9a12, 0x8191, 0xc334, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xdbb4, 0xfc8e, 0xfc8d, 0xfc8d, 0xfc8d, 0xfc8d, 0xfc8d, 0xfc8d, 0xfc8d, 0xfc8d, 0xfc8d, 0xfc8d, 0x8191, 0x8191, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd375, 0xdbd3, 0xfc8d, 0xfc8d, 0xfc8d, 0xe3ce, 0x8191, 0x9a12, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xec11, 0xfc8d, 0xfc8d, 0xfc8d, 0xfc8d, 0xfc8d, 0xfc8d, 0xfc8d, 0xfc8d, 0xfc8d, 0xfc8d, 0xfc8d, 0xfc8d, 0xfc8d, 0xfc8d, 0xfc8d, 0xfc8d, 0xfc8d, 0xcb2f, 0x8191, 0xaa93, 0xd395, 0xd395, 0xd395, 0xd395, 0xd396, 0xd395, 0xd395, 0xec11, 0xfc8d, 0xfc8d, 0xfc8d, 0xfc8d, 0xc30f, 0x8191, 0xaa93, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xf44f, 0xfc8d, 0xfc8d, 0xfc8d, 0xcb6f, 0x8191, 0x9a32, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xec11, 0xfc8d, 0xfc8d, 0xfc8d, 0xfc8d, 0xfc8d, 0xfc8d, 0xfc8d, 0xfc8d, 0xa250, 0x8191, 0xc314, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xfc8e, 0xfc8f, 0xfcaf, 0xfcaf, 0xfcb0, 0xfcb0, 0xfcb0, 0xfcb2, 0xf451, 0xb0d1, 0xb0d1, 0xb0d1, + 0xb0f1, 0xb0f1, 0xb0d1, 0xfcad, 0xfccd, 0xfcad, 0xfcad, 0xfccd, 0xfccd, 0xfccd, 0xcb4e, 0x8191, 0xaa73, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xec31, 0xfcad, 0xfccd, 0xfccd, 0xfccd, 0xfccd, 0xfccd, 0xfccd, 0xfccd, 0xfccd, 0xfccd, 0xc32f, 0x8991, 0xaa93, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xf46f, 0xfccd, 0xfccd, 0xfccd, 0xfcad, 0xfccd, 0xfccd, 0xfccd, 0xfcad, 0xfcad, 0xfcad, 0xc32f, 0x8191, 0xaa93, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xbb11, 0x8191, 0xaa73, 0xd396, 0xd395, 0xd395, 0xd395, 0xd396, 0xd395, 0xd395, 0xd395, 0xdbb4, 0xfcae, 0xfcad, 0xfccd, 0xfcad, 0xfccd, 0xfcad, 0xfccd, 0xfccd, 0xfcad, 0xfcad, 0x8191, 0x8191, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd375, 0xdbd3, 0xfcad, 0xfccd, 0xfccd, 0xdbee, 0x8191, 0x9a12, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xec31, 0xfccd, 0xfcad, 0xfccd, 0xfccd, 0xfccd, 0xfccd, 0xfccd, 0xfccd, 0xfccd, 0xfccd, 0xfccd, 0xfccd, 0xfccd, 0xfcad, 0xfccd, 0xfcad, 0xfccd, 0xdbee, 0x8191, 0x9a12, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xdbd3, 0xfccd, 0xfccd, 0xfccd, 0xfccd, 0xc32f, 0x8191, 0xaa93, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xf46f, 0xfcad, 0xfccd, 0xfccd, 0xc32f, 0x8991, 0xaa94, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xec31, 0xfccd, 0xfccd, 0xfcad, 0xfccd, 0xfcad, 0xfcad, 0xfcad, 0xfcad, 0xa270, 0x8191, 0xc314, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xfcce, 0xfccf, 0xfccf, 0xfcef, 0xfcd0, 0xfcf0, 0xfcf1, 0xfcf1, 0xfcf2, 0xb0f1, 0xb0f1, 0xb0f2, + 0xb0f1, 0xa8f1, 0xb0f1, 0xfd0d, 0xfced, 0xfced, 0xfced, 0xfd0d, 0xfced, 0xfd0d, 0xe42e, 0x8191, 0x9a12, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xec51, 0xfced, 0xfced, 0xfced, 0xfced, 0xfced, 0xfced, 0xfced, 0xfced, 0xfced, 0xfced, 0xc34f, 0x8191, 0xaa93, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xf48f, 0xfced, 0xfced, 0xfced, 0xfced, 0xfced, 0xfced, 0xfced, 0xfced, 0xfced, 0xfced, 0xc32f, 0x8191, 0xaa93, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xec6f, 0x91d1, 0x89d1, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd396, 0xd395, 0xd395, 0xdbb4, 0xec70, 0xfced, 0xfced, 0xfced, 0xfced, 0xfced, 0xfd0d, 0xfced, 0xfced, 0x8191, 0x8191, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xdbf3, 0xfced, 0xfced, 0xfced, 0xe42e, 0x8191, 0x9a12, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xec51, 0xfced, 0xfced, 0xfced, 0xfced, 0xfced, 0xfced, 0xfced, 0xfced, 0xfced, 0xfced, 0xfced, 0xfced, 0xfced, 0xfced, 0xfced, 0xfd0d, 0xfced, 0xec6e, 0x8191, 0x91f2, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd376, 0xd395, 0xd395, 0xf4af, 0xfd0d, 0xfced, 0xfd0d, 0xc34f, 0x8191, 0xaa93, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xf48f, 0xfced, 0xfced, 0xfced, 0xc34f, 0x8191, 0xaa93, 0xd375, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xec51, 0xfced, 0xfced, 0xfced, 0xfced, 0xfced, 0xfced, 0xfced, 0xfced, 0xa270, 0x8191, 0xc314, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xfd0e, 0xfd0f, 0xfd0f, 0xfd0f, 0xfd10, 0xfd10, 0xfd31, 0xfd31, 0xfd32, 0xb0f1, 0xb0f1, 0xb0f1, + 0xb0f1, 0xa8f1, 0xb0f1, 0xfd2d, 0xfd2d, 0xfd2d, 0xfd2d, 0xfd2d, 0xfd2d, 0xfd2d, 0xe44e, 0x8191, 0x9a12, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xec71, 0xfd2d, 0xfd2d, 0xfd2d, 0xfd2d, 0xfd2d, 0xfd2d, 0xfd2d, 0xfd2d, 0xfd2d, 0xfd2d, 0xc34f, 0x8191, 0xaa93, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xf4cf, 0xfd2d, 0xfd2d, 0xfd2d, 0xfd2d, 0xfd2d, 0xfd2d, 0xfd2d, 0xfd2d, 0xfd2d, 0xfd2d, 0xc34f, 0x8191, 0xaa93, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xf4cf, 0xc34f, 0x8191, 0xb2d4, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xdbd4, 0xe431, 0xec71, 0xec71, 0xdbf0, 0xe450, 0xf4cf, 0xfd0e, 0x8191, 0x8191, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xdbd4, 0xf4af, 0xf4cf, 0xf4af, 0xdc10, 0x9a12, 0xaa73, 0xd395, 0xd396, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xec71, 0xfd2d, 0xfd2d, 0xfd2d, 0xfd2d, 0xfd2d, 0xfd2d, 0xfd2d, 0xfd2d, 0xfd2d, 0xfd2d, 0xfd2d, 0xfd2d, 0xfd2d, 0xfd2d, 0xfd2d, 0xfd2d, 0xfd2c, 0xfd2c, 0x9211, 0x8191, 0xd375, 0xd395, 0xd396, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xec71, 0xfcee, 0xfd2d, 0xc36f, 0x8191, 0xaa93, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xdc10, 0xe44e, 0xdc2e, 0xe44e, 0xb2f0, 0x8191, 0xaa93, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xec71, 0xfd2d, 0xfd2d, 0xfd2d, 0xfd2d, 0xfd2d, 0xfd2d, 0xfd2d, 0xfd2d, 0xa270, 0x8191, 0xc314, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xfd2e, 0xfd2f, 0xfd2f, 0xfd4f, 0xfd50, 0xfd50, 0xfd51, 0xfd51, 0xfd71, 0xa8f1, 0xb0f1, 0xb0f2, + 0xa8f1, 0xa8f1, 0xa8f2, 0xfd6d, 0xfd6d, 0xfd6d, 0xfd6d, 0xfd4d, 0xfd6d, 0xfd6d, 0xe46e, 0x8191, 0x9212, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xec71, 0xfd6d, 0xfd6d, 0xfd6d, 0xfd6d, 0xfd6d, 0xfd6d, 0xfd6d, 0xfd6d, 0xfd6d, 0xfd6d, 0xc36f, 0x8191, 0xaa93, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xf4ef, 0xfd6d, 0xfd6d, 0xfd6d, 0xfd6d, 0xfd6d, 0xfd6d, 0xfd6d, 0xfd6d, 0xfd6d, 0xfd6d, 0xc36f, 0x8191, 0xaa93, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xf4ef, 0xfd2d, 0x9211, 0x89b2, 0xcb75, 0xd396, 0xd375, 0xd395, 0xd396, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xec91, 0x8191, 0x8191, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xcb95, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xec71, 0xfd6d, 0xfd6d, 0xfd6d, 0xfd6d, 0xfd6d, 0xfd6d, 0xfd6d, 0xfd6d, 0xfd6d, 0xfd6d, 0xfd6d, 0xfd6d, 0xfd6d, 0xfd4d, 0xfd6d, 0xfd6d, 0xfd6d, 0xfd6d, 0xbb2f, 0x8191, 0xb2d4, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xc314, 0x8191, 0xaa93, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd375, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xec71, 0xfd6d, 0xfd6d, 0xfd6d, 0xfd6d, 0xfd6d, 0xfd6d, 0xfd6d, 0xfd6d, 0xa290, 0x8191, 0xc314, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xfd6e, 0xfd6f, 0xfd6f, 0xfd8f, 0xfd90, 0xfd90, 0xfd91, 0xfd91, 0xfd92, 0xa8f1, 0xa8f1, 0xa8f1, + 0xa8f1, 0xa8f1, 0xa8f1, 0xec6f, 0xfd8d, 0xfdad, 0xfd8d, 0xfdad, 0xfdad, 0xfdad, 0xe48e, 0x8191, 0x9a12, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xec91, 0xfdad, 0xfd8d, 0xfd8d, 0xfd8d, 0xfd8d, 0xfd8d, 0xfd8d, 0xfd8d, 0xfd8d, 0xfd8d, 0xc38f, 0x8191, 0xaa93, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xf52f, 0xfdad, 0xfd8d, 0xfdad, 0xfd8d, 0xfd8d, 0xfdad, 0xfd8d, 0xfd8d, 0xfdad, 0xfdad, 0xc38f, 0x8191, 0xaa93, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xf52f, 0xfd8d, 0xe4ae, 0x8991, 0x9a32, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xe491, 0x8191, 0x8191, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd396, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xec91, 0xfdad, 0xfdad, 0xfd8d, 0xfd8d, 0xfd8d, 0xfd8d, 0xfd8d, 0xfd8d, 0xfd8d, 0xfd8d, 0xfdad, 0xfdad, 0xfd8d, 0xfd8d, 0xfdad, 0xfdad, 0xfd8d, 0xfdad, 0xf52d, 0x8191, 0x91f2, 0xd395, 0xd395, 0xd395, 0xd395, 0xd376, 0xd395, 0xd395, 0xd396, 0xd395, 0xd395, 0xd395, 0xc314, 0x8191, 0xaa93, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xec91, 0xfd8d, 0xfd8d, 0xfdad, 0xfdad, 0xfdad, 0xfdad, 0xfdad, 0xfd8d, 0xa290, 0x8191, 0xc314, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xfdaf, 0xfdaf, 0xfdad, 0xfdad, 0xfdad, 0xfd8d, 0xfdad, 0xfd8d, 0xec6f, 0xa8f1, 0xa8f1, 0xa8f1, + 0xa911, 0xa911, 0xa911, 0xec8e, 0xfded, 0xfded, 0xfdcd, 0xfdcd, 0xfdcd, 0xfded, 0xe4ce, 0x8191, 0x9a12, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xecb1, 0xfdcd, 0xfdcd, 0xfdcd, 0xfdcd, 0xfdcd, 0xfdcd, 0xfdcd, 0xfdcd, 0xfdcd, 0xfdcd, 0xc3af, 0x8191, 0xaa93, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xf54f, 0xfdcd, 0xfdcd, 0xfded, 0xfdcd, 0xfdcd, 0xfdcd, 0xfdcd, 0xfdcd, 0xfded, 0xfdcd, 0xc3af, 0x8191, 0xaa93, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xf54f, 0xfded, 0xfdcd, 0xd44f, 0x8191, 0xb2b3, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd396, 0xd395, 0xd395, 0xd395, 0xd395, 0xecb1, 0x8991, 0x8191, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd396, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xecb1, 0xfdcd, 0xfdcd, 0xfdcd, 0xfdcd, 0xfdcd, 0xfdcd, 0xfdcd, 0xfdcd, 0xfdcd, 0xfdcd, 0xfdcd, 0xfdcd, 0xfdcd, 0xfdcd, 0xfdcd, 0xfdcd, 0xfdcd, 0xfdcd, 0xfdcd, 0xbb6f, 0x8191, 0xbaf4, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd375, 0xd395, 0xd395, 0xd395, 0xd395, 0xc314, 0x8191, 0xaa93, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xecb1, 0xfded, 0xfded, 0xfdcd, 0xfdcd, 0xfded, 0xfded, 0xfded, 0xfded, 0xa2b0, 0x8191, 0xc314, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd375, 0xfdee, 0xfdef, 0xfded, 0xfdcd, 0xfdcd, 0xfdcd, 0xfded, 0xfded, 0xec8e, 0xa911, 0xa911, 0xa911, + 0xa911, 0xa911, 0xa111, 0xe42e, 0xfe0d, 0xfe0d, 0xfe0d, 0xfe0d, 0xfe0d, 0xfe0d, 0xe4ee, 0x8191, 0x9a12, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xecd1, 0xfe0d, 0xfe0d, 0xfe0d, 0xfe0d, 0xfe0d, 0xfe0d, 0xfe0d, 0xfe0d, 0xfe0d, 0xfe0d, 0xc3cf, 0x8191, 0xaa93, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xf56f, 0xfe0d, 0xfe0d, 0xfe0d, 0xfe0d, 0xfe0d, 0xfe0d, 0xfe0d, 0xfe0d, 0xfe0d, 0xfe0d, 0xc3cf, 0x8191, 0xaa93, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xf56f, 0xfe0d, 0xfe0d, 0xfe0d, 0xd44f, 0x8191, 0xbad3, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd376, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd396, 0xd395, 0xd395, 0xecd1, 0x8191, 0x8191, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd375, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xecd1, 0xfe0d, 0xfe0d, 0xfe0d, 0xfe0d, 0xfe0d, 0xfe0d, 0xfe0d, 0xfe0d, 0xfe0d, 0xfe0d, 0xfe0d, 0xfe0d, 0xfe0d, 0xfe0d, 0xfe0d, 0xfe0d, 0xfe0d, 0xfe0d, 0xfe0d, 0xf5ad, 0x9a70, 0x89b1, 0xd375, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xc314, 0x8191, 0xaa93, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd396, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xecd1, 0xfe0d, 0xfe0d, 0xfe0d, 0xfe0e, 0xfe0d, 0xfe0e, 0xfe0e, 0xfe0e, 0xa2b0, 0x8191, 0xc314, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xfe0f, 0xfe0f, 0xfe0d, 0xfe0d, 0xfe0d, 0xfe0d, 0xfe0d, 0xfe0d, 0xe42e, 0xa111, 0xa911, 0xa911, + 0x80f0, 0xa111, 0xa111, 0xc2b0, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xe50e, 0x8191, 0x9a12, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xecf1, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xc3ef, 0x8991, 0xaa93, 0xd395, 0xd395, 0xd395, 0xd375, 0xd395, 0xd395, 0xd395, 0xf58f, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xc3ef, 0x8191, 0xaa93, 0xd395, 0xd396, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xf58f, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xe50e, 0x89d1, 0xa253, 0xcb75, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd376, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xecf1, 0x8191, 0x8191, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xecf1, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xf60e, 0x9a70, 0x91f2, 0xcb75, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd396, 0xd395, 0xc314, 0x8191, 0xaa93, 0xd395, 0xd396, 0xd395, 0xd395, 0xd375, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xecf2, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4e, 0xfe4d, 0xfe4e, 0xfe4d, 0xfe4e, 0xa2d0, 0x8191, 0xc314, 0xd395, 0xd396, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xfe4e, 0xfe4f, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xc2b0, 0xa111, 0xa111, 0x80f0, + 0x60ef, 0xa111, 0xa111, 0xa112, 0xfe2d, 0xfe8d, 0xfe8d, 0xfe8d, 0xfe8d, 0xfe8d, 0xe54e, 0x8191, 0x9a12, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd375, 0xd395, 0xed11, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe8d, 0xc40f, 0x8191, 0xaa93, 0xd395, 0xd396, 0xd395, 0xd395, 0xd395, 0xd395, 0xd375, 0xf5cf, 0xfe6d, 0xfe8d, 0xfe8d, 0xfe8d, 0xfe8d, 0xfe8d, 0xfe8d, 0xfe8d, 0xfe8d, 0xfe6d, 0xc40f, 0x8191, 0xaa93, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xf5ce, 0xfe6d, 0xfe6d, 0xfe8d, 0xfe6c, 0xfe8d, 0xf62d, 0xc40f, 0x9a12, 0xb2d4, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xecf1, 0x8191, 0x8191, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xed11, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe8d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6c, 0xfe8d, 0xfe6d, 0xfe2d, 0xbbcf, 0x89b1, 0xbaf4, 0xd395, 0xd395, 0xd395, 0xd375, 0xd395, 0xd395, 0xd396, 0xc314, 0x8191, 0xaa93, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xed12, 0xfe8e, 0xfe8e, 0xfe8e, 0xfe8e, 0xfe8e, 0xfe8e, 0xfe8e, 0xfe8e, 0xa2d0, 0x8191, 0xc314, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xfe8f, 0xfe8f, 0xfe8d, 0xfe8d, 0xfe8d, 0xfe8d, 0xfe8d, 0xfe2d, 0xa112, 0xa111, 0xa111, 0x60ef, + 0x28cd, 0xa111, 0xa111, 0xa111, 0xcbcf, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xf5ed, 0x89d1, 0x91d2, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd396, 0xd395, 0xed11, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xc42f, 0x81b1, 0xaa93, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xf5ef, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfecc, 0xfead, 0xc42f, 0x8191, 0xaa93, 0xd395, 0xd395, 0xd396, 0xd395, 0xd395, 0xd395, 0xd395, 0xf5ef, 0xfead, 0xfeac, 0xfead, 0xfead, 0xfeac, 0xfead, 0xfead, 0xf64d, 0xd4ce, 0xbbd0, 0xc3b2, 0xc314, 0xd395, 0xd375, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xed12, 0x8191, 0x8191, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd375, 0xd395, 0xd395, 0xd395, 0xed31, 0xfeac, 0xfeac, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xee0d, 0xcc6f, 0xbb51, 0xbad4, 0xcb55, 0xd395, 0xd395, 0xd395, 0xd395, 0xc334, 0x8191, 0xb294, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd375, 0xd395, 0xed11, 0xfeae, 0xfece, 0xfead, 0xfeae, 0xfead, 0xfece, 0xfeae, 0xfeae, 0xa2f0, 0x8191, 0xc314, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xdc34, 0xfeaf, 0xfed0, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xcbcf, 0xa111, 0xa111, 0xa111, 0x28cd, + 0x18ad, 0x8110, 0x9911, 0xa111, 0xa171, 0xf5ed, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfeac, 0xfe6d, 0xf5cf, 0xf5ef, 0xf5cf, 0xf5cf, 0xf5ef, 0xf5cf, 0xfe4d, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfe4e, 0xf5ef, 0xf5ef, 0xf5cf, 0xf5ee, 0xf5ef, 0xf5ef, 0xf5ef, 0xfe8d, 0xfeac, 0xfeac, 0xfeac, 0xfeac, 0xfead, 0xfe8d, 0xfead, 0xfead, 0xfead, 0xfeac, 0xfeac, 0xfead, 0xf64d, 0xf5ef, 0xf5cf, 0xf5ef, 0xf5cf, 0xf5ef, 0xf5ef, 0xf5ef, 0xfe6e, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfeac, 0xfeac, 0xfead, 0xfead, 0xfead, 0xfead, 0xfeac, 0xfead, 0xfead, 0xf60e, 0xf5ef, 0xf5cf, 0xf5ef, 0xf5ef, 0xf5cf, 0xf64e, 0xfeac, 0xfead, 0xf5ef, 0xf5ef, 0xf5ef, 0xf5ef, 0xf5ef, 0xf5ef, 0xf5ef, 0xf5ef, 0xf5ef, 0xf5ef, 0xf5ef, 0xf5ef, 0xf5ef, 0xf5ef, 0xf5ef, 0xf5ef, 0xf5cf, 0xf5ef, 0xf5ef, 0xf5ef, 0xf5cf, 0xfe4d, 0xfeac, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfeac, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfeac, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfe6d, 0xf5ef, 0xf5ef, 0xf5cf, 0xf5cf, 0xfead, 0xf62e, 0xf5ef, 0xf5d0, 0xf5ef, 0xf5cf, 0xf5f0, 0xf5f0, 0xf5ef, 0xf5f0, 0xf5f0, 0xf5f0, 0xf5f0, 0xf5f0, 0xf5f0, 0xf5f0, 0xf5f0, 0xf5f0, 0xf5f0, 0xf5f0, 0xf5f0, 0xf5ef, 0xf5f0, 0xfe4f, 0xfece, 0xfeae, 0xfeae, 0xfeae, 0xfeae, 0xfeae, 0xfeae, 0xfeae, 0xfeae, 0xfeaf, 0xf610, 0xf5d0, 0xf5f0, 0xf5f0, 0xf5f0, 0xf5f0, 0xf610, 0xfeaf, 0xfeaf, 0xfeaf, 0xfead, 0xfead, 0xfead, 0xfead, 0xf5ed, 0xa171, 0xa111, 0x9911, 0x8110, 0x18ad, + 0x20ac, 0x38ce, 0x9931, 0x9931, 0x9931, 0xaa31, 0xfe2d, 0xfe8c, 0xfe8d, 0xfe8c, 0xfe8c, 0xfe8c, 0xfead, 0xfe8c, 0xfeac, 0xfeac, 0xfe8c, 0xfe8c, 0xfeac, 0xfead, 0xfe8d, 0xfe8c, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfe8c, 0xfe8c, 0xfeac, 0xfeac, 0xfead, 0xfe8c, 0xfead, 0xfe8c, 0xfe8d, 0xfe8d, 0xfe8c, 0xfead, 0xfe8c, 0xfe8c, 0xfead, 0xfead, 0xfeac, 0xfeac, 0xfe8c, 0xfe8c, 0xfeac, 0xfe8c, 0xfeac, 0xfead, 0xfead, 0xfe8d, 0xfe8c, 0xfead, 0xfe8d, 0xfe8c, 0xfe8d, 0xfe8c, 0xfe8d, 0xfeac, 0xfe8c, 0xfeac, 0xfe8d, 0xfead, 0xfead, 0xfe8c, 0xfeac, 0xfe8c, 0xfe8c, 0xfe8d, 0xfe8c, 0xfeac, 0xfe8d, 0xfe8c, 0xfead, 0xfead, 0xfe8c, 0xfe8c, 0xfe8c, 0xfead, 0xfe8c, 0xfeac, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfe8c, 0xfeac, 0xfe8d, 0xfeac, 0xfead, 0xfead, 0xfe8c, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfeac, 0xfe8c, 0xfead, 0xfe8c, 0xfe8d, 0xfe8d, 0xfe8d, 0xfe8d, 0xfead, 0xfead, 0xfead, 0xfe8d, 0xfead, 0xfead, 0xfead, 0xfead, 0xfe8d, 0xfe8e, 0xfead, 0xfeae, 0xfeae, 0xfead, 0xfeae, 0xfeae, 0xfeae, 0xfeae, 0xfeae, 0xfeae, 0xfeae, 0xfeae, 0xfeae, 0xfeae, 0xfeae, 0xfeae, 0xfe8e, 0xfe8e, 0xfeae, 0xfeae, 0xfeae, 0xfe8e, 0xfeae, 0xfeae, 0xfeae, 0xfe8e, 0xfe8e, 0xfeae, 0xfeaf, 0xfeae, 0xfeae, 0xfeaf, 0xfe8e, 0xfeaf, 0xfeaf, 0xfeaf, 0xfeaf, 0xfeaf, 0xfe8f, 0xfeb0, 0xfeaf, 0xfe8c, 0xfe8d, 0xfe8c, 0xfe2d, 0xaa31, 0x9931, 0x9931, 0x9931, 0x38ce, 0x20ac, + 0x20ad, 0x20ac, 0x60ef, 0x9912, 0x9931, 0x9931, 0xb270, 0xf62d, 0xfe8c, 0xfe8c, 0xfe8d, 0xfe8d, 0xfe8d, 0xfe8c, 0xfe8d, 0xfe8c, 0xfe8c, 0xfe8c, 0xfe8c, 0xfe8d, 0xfe8d, 0xfe8d, 0xfe8c, 0xfe8c, 0xfe8c, 0xfe8c, 0xfe8c, 0xfe8c, 0xfe8c, 0xfe8c, 0xfe8c, 0xfe8d, 0xfe8c, 0xfe8c, 0xfe8d, 0xfe8d, 0xfe8d, 0xfe8c, 0xfe8d, 0xfe8c, 0xfe8d, 0xfe8d, 0xfe8d, 0xfe8d, 0xfe8c, 0xfe8d, 0xfe8d, 0xfe8d, 0xfe8d, 0xfe8d, 0xfe8d, 0xfe8d, 0xfe8d, 0xfe8d, 0xfe8c, 0xfe8d, 0xfe8c, 0xfe8c, 0xfe8c, 0xfe8c, 0xfe8d, 0xfe8c, 0xfe8c, 0xfe8c, 0xfe8d, 0xfe8d, 0xfe8c, 0xfe8c, 0xfe8c, 0xfe8d, 0xfe8d, 0xfe8c, 0xfe8c, 0xfe8d, 0xfe8c, 0xfe8c, 0xfe8c, 0xfe8c, 0xfe8d, 0xfe8d, 0xfe8c, 0xfe8d, 0xfe8c, 0xfe8c, 0xfe8c, 0xfe8d, 0xfe8d, 0xfe8d, 0xfe8d, 0xfe8d, 0xfe8d, 0xfe8d, 0xfe8d, 0xfe8d, 0xfe8d, 0xfe8d, 0xfe8d, 0xfe8d, 0xfe8d, 0xfe8d, 0xfe8d, 0xfe8d, 0xfe8d, 0xfe8d, 0xfe8c, 0xfe8c, 0xfe6d, 0xfe8d, 0xfe8c, 0xfe8d, 0xfe8c, 0xfe8c, 0xfe8c, 0xfe8c, 0xfe8c, 0xfe8c, 0xfe8c, 0xfe8c, 0xfe8c, 0xfe8c, 0xfe8c, 0xfe8d, 0xfe8d, 0xfe8d, 0xfe8d, 0xfe8d, 0xfe8c, 0xfe8d, 0xfe8d, 0xfe8d, 0xfe8d, 0xfe8d, 0xfe8d, 0xfe8d, 0xfe8d, 0xfe8d, 0xfe8d, 0xfe8e, 0xfe8d, 0xfe8d, 0xfe8d, 0xfe8d, 0xfe8d, 0xfe8e, 0xfe8e, 0xfe8e, 0xfe8e, 0xfe8e, 0xfe8e, 0xfe8e, 0xfe8e, 0xfe8e, 0xfe8e, 0xfe8e, 0xfe8e, 0xfe8e, 0xfe8e, 0xfe8e, 0xfe8e, 0xfe8e, 0xfe8f, 0xfe8e, 0xfe8e, 0xfe8f, 0xfe8f, 0xfe8e, 0xfe8f, 0xfe8f, 0xfe8e, 0xfe8f, 0xfe8e, 0xfe8f, 0xfe8f, 0xfe8f, 0xfe8f, 0xfe8f, 0xfe8f, 0xfe8f, 0xfe8f, 0xfe8f, 0xfe8f, 0xfe8f, 0xfe90, 0xfe90, 0xfeb0, 0xfe8c, 0xfe8c, 0xf62d, 0xb270, 0x9931, 0x9931, 0x9912, 0x60ef, 0x20ac, 0x20ad, + 0x18ac, 0x20ac, 0x28ad, 0x8110, 0x9931, 0x9931, 0x9911, 0xaa31, 0xf5cd, 0xfe8c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6d, 0xfe6c, 0xfe6c, 0xfe6d, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe8c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6d, 0xfe6c, 0xfe6c, 0xfe6d, 0xfe6c, 0xfe6d, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6d, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6d, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe8c, 0xfe6d, 0xfe6d, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6d, 0xfe6c, 0xfe6d, 0xfe6c, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6c, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe8e, 0xfe8d, 0xfe8d, 0xfe6e, 0xfe8d, 0xfe6e, 0xfe6e, 0xfe6e, 0xfe6e, 0xfe6e, 0xfe6e, 0xfe6e, 0xfe6e, 0xfe6e, 0xfe6e, 0xfe6e, 0xfe6f, 0xfe6f, 0xfe6f, 0xfe6f, 0xfe8f, 0xfe8f, 0xfe6f, 0xfe6f, 0xfe6f, 0xfe8f, 0xfe6f, 0xfe6f, 0xfe8f, 0xfe8f, 0xfe6f, 0xfe6f, 0xfe8f, 0xfe6f, 0xfe6f, 0xfe8f, 0xfe8f, 0xfe6f, 0xfe8f, 0xfe8f, 0xfe6f, 0xfe90, 0xfe8f, 0xfe8f, 0xfe90, 0xfe90, 0xfe8c, 0xf5cd, 0xaa31, 0x9911, 0x9931, 0x9931, 0x8110, 0x28ad, 0x20ac, 0x18ac, + 0x20ac, 0x20ac, 0x18ac, 0x28ad, 0x9111, 0x9931, 0x9931, 0x9931, 0xa171, 0xcbcf, 0xf60d, 0xfe4d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe4d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6c, 0xfe6d, 0xfe4d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe4d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe4d, 0xfe6d, 0xfe6c, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe4d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe4d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6c, 0xfe6d, 0xfe4d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe4d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe4d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe4d, 0xfe6e, 0xfe6e, 0xfe4e, 0xfe6d, 0xfe6e, 0xfe6e, 0xfe6e, 0xfe6e, 0xfe6e, 0xfe6f, 0xfe6e, 0xfe6e, 0xfe6f, 0xfe6f, 0xfe6f, 0xfe6f, 0xfe6f, 0xfe6f, 0xfe6f, 0xfe6f, 0xfe6f, 0xfe6f, 0xfe6f, 0xfe6f, 0xfe6f, 0xfe6f, 0xfe6f, 0xfe6f, 0xfe6f, 0xfe6f, 0xfe70, 0xfe70, 0xfe6f, 0xfe70, 0xfe70, 0xfe70, 0xfe70, 0xfe70, 0xfe70, 0xfe70, 0xfe70, 0xfe70, 0xfe90, 0xfe70, 0xfe70, 0xfe70, 0xfe70, 0xfe71, 0xfe71, 0xfe71, 0xe471, 0xcbcf, 0xa171, 0x9931, 0x9931, 0x9931, 0x9111, 0x28ad, 0x18ac, 0x20ac, 0x20ac, + 0x18ac, 0x18ac, 0x18ac, 0x20ac, 0x28cd, 0x8111, 0x9931, 0x9912, 0x9931, 0x9931, 0x9911, 0xbab0, 0xdc6f, 0xe50f, 0xe50e, 0xfe4e, 0xfe6e, 0xfe4e, 0xfe6d, 0xfe4e, 0xfe4e, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4e, 0xfe4e, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4e, 0xfe4e, 0xfe4e, 0xfe4e, 0xfe6e, 0xfe6e, 0xfe4e, 0xfe4e, 0xfe4e, 0xfe6e, 0xfe6e, 0xfe4e, 0xfe6f, 0xfe6e, 0xfe6f, 0xfe6f, 0xfe6f, 0xfe6f, 0xfe6f, 0xfe6f, 0xfe4f, 0xfe6f, 0xfe70, 0xfe50, 0xfe70, 0xfe70, 0xfe70, 0xfe70, 0xfe70, 0xfe70, 0xfe70, 0xfe70, 0xfe70, 0xfe70, 0xfe70, 0xfe70, 0xfe70, 0xfe70, 0xfe70, 0xfe70, 0xfe71, 0xfe71, 0xfe71, 0xfe71, 0xfe71, 0xfe71, 0xfe71, 0xfe71, 0xfe71, 0xfe71, 0xfe71, 0xfe71, 0xfe71, 0xf612, 0xe531, 0xe512, 0xd472, 0xb271, 0x9931, 0x9931, 0x9931, 0x9912, 0x9931, 0x8111, 0x28cd, 0x20ac, 0x18ac, 0x18ac, 0x18ac, + 0x20ac, 0x20ac, 0x18ac, 0x20ac, 0x20ac, 0x28cc, 0x610f, 0x9911, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9932, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9912, 0x9931, 0x9931, 0x9931, 0x9931, 0x9911, 0x9931, 0x9911, 0x9931, 0x9931, 0x9911, 0x9911, 0x9931, 0x9931, 0x9911, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9911, 0x9911, 0x9931, 0x9932, 0x9931, 0x9931, 0x9911, 0x9931, 0x9931, 0x9912, 0x9931, 0x9931, 0x9931, 0x9911, 0x610f, 0x28cc, 0x20ac, 0x20ac, 0x18ac, 0x20ac, 0x20ac, + 0x18ac, 0x18ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x18ac, 0x40ce, 0x7910, 0x9931, 0x9931, 0x9932, 0x9931, 0x9931, 0x9931, 0x9911, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x7910, 0x40ce, 0x18ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x18ac, 0x18ac, + 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x18ab, 0x30cc, 0x58cf, 0x7910, 0x9931, 0x9931, 0x9912, 0x9931, 0x9931, 0x9911, 0x9931, 0x9911, 0x9932, 0x9931, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9931, 0x9932, 0x9911, 0x9931, 0x9911, 0x9931, 0x9931, 0x9912, 0x9931, 0x9931, 0x7910, 0x58cf, 0x30cc, 0x18ab, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac +}; + +#endif // HAS_GRAPHICAL_TFT diff --git a/Marlin/src/lcd/tft/images/bootscreen_228x255x2.cpp b/Marlin/src/lcd/tft/images/bootscreen_228x255x2.cpp new file mode 100644 index 000000000..452f47246 --- /dev/null +++ b/Marlin/src/lcd/tft/images/bootscreen_228x255x2.cpp @@ -0,0 +1,285 @@ +/** + * Marlin 3D Printer Firmware + * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin] + * + * Based on Sprinter and grbl. + * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + */ + +#include "../../../inc/MarlinConfigPre.h" + +#if HAS_GRAPHICAL_TFT + +extern const uint8_t marlin_logo_228x255x2[14535] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xbf, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xff, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xff, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2f, 0xff, 0xfd, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xff, 0xfd, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xbf, 0xff, 0xfd, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xff, 0xff, 0xfd, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xff, 0xff, 0xff, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xff, 0xff, 0xff, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xff, 0xff, 0xff, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0xff, 0xff, 0xff, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xbf, 0xff, 0xff, 0xff, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xff, 0xff, 0xff, 0xf4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0b, 0xff, 0xff, 0xff, 0xff, 0xfd, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1b, 0xff, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x1b, 0xff, 0xff, 0xff, 0xff, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x02, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x80, 0x00, 0x00, 0x2f, 0xff, 0xff, 0xfe, 0x90, 0x00, 0x5a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x00, 0x02, 0xff, 0xff, 0xff, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x00, 0x2f, 0xff, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfd, 0x01, 0xff, 0xff, 0xf9, 0x00, 0x28, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0b, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0b, 0xff, 0xff, 0x80, 0x02, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x5a, 0xff, 0xff, 0xff, 0xff, 0xaf, 0xff, 0xf8, 0x00, 0x6f, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0xff, 0xff, 0xaa, 0x50, 0x1b, 0xff, 0xff, 0xff, 0xff, 0xff, 0xd0, 0x07, 0xfd, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xff, 0xff, 0xff, 0xff, 0x90, 0x1f, 0xff, 0xff, 0xf9, 0xbd, 0x00, 0xbf, 0xf4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0b, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xa0, 0xbf, 0xff, 0xff, 0x00, 0x0b, 0xff, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x46, 0xff, 0xff, 0xd0, 0x3f, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf9, 0x2f, 0xff, 0xf8, 0x06, 0xf4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xd1, 0xff, 0xfc, 0xa4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfd, 0x2f, 0xff, 0x1f, 0x90, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xd3, 0xff, 0xc2, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x7f, 0xf0, 0x2f, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x8f, 0xfc, 0x07, 0xfd, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xff, 0xff, 0xff, 0xff, 0xe5, 0x55, 0x55, 0x56, 0xaa, 0xff, 0xff, 0xff, 0xff, 0xf2, 0xff, 0x40, 0xff, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0b, 0xff, 0xff, 0xff, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0xbf, 0xff, 0xff, 0xfd, 0xbf, 0xc0, 0x2f, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2f, 0xff, 0xff, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x6f, 0xff, 0xff, 0xdf, 0xe0, 0x0b, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xbf, 0xff, 0xf7, 0xf8, 0x02, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xff, 0xff, 0xff, 0xfd, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xff, 0xfd, 0xfd, 0x00, 0xbf, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xff, 0xff, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6f, 0xff, 0x7f, 0x00, 0x1f, 0xff, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2f, 0xff, 0xff, 0xf9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xdf, 0x80, 0x07, 0xff, 0xd0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xbf, 0xff, 0xfe, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2f, 0xf7, 0xd0, 0x01, 0xff, 0xf4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xff, 0xfe, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xfd, 0xf0, 0x00, 0x7f, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0x7c, 0x00, 0x1f, 0xff, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xed, 0x00, 0x0b, 0xff, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xaf, 0x00, 0x02, 0xff, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xfd, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x80, 0x00, 0xbf, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5a, 0x87, 0xd0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xc0, 0x00, 0x3f, 0xff, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6f, 0xf9, 0x2e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x0f, 0xff, 0xd0, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0b, 0xfe, 0x40, 0xa0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x34, 0x00, 0x07, 0xff, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xbf, 0xe0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x02, 0xff, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0xff, 0xf4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x7f, 0xff, 0x80, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xbf, 0xff, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x2f, 0xff, 0xd0, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0xbf, 0xff, 0xfd, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x0f, 0xff, 0xf0, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x6b, 0xff, 0xff, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xd0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x0b, 0xff, 0xf8, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5a, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xff, 0xfd, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x0b, 0xfe, 0xaa, 0xa9, 0x55, 0x55, 0x40, 0x55, 0x56, 0xab, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xf4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfa, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x80, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfd, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xff, 0xd0, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0xaa, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x90, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2f, 0xff, 0xf0, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x5a, 0xaf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x90, 0x00, 0x00, 0x00, 0x3f, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xff, 0xf4, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x6a, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x40, 0x00, 0x00, 0x7f, 0xff, 0x40, 0x00, 0x00, 0x00, 0x00, 0xff, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x0b, 0xff, 0xfc, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x56, 0xab, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf9, 0x00, 0x00, 0xbf, 0xff, 0x80, 0x00, 0x00, 0x00, 0x00, 0xff, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x07, 0xff, 0xfd, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x6a, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x00, 0x7f, 0xff, 0x80, 0x00, 0x00, 0x00, 0x00, 0xff, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xc0, 0x00, 0x03, 0xff, 0xff, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0xbf, 0xff, 0xff, 0xfe, 0x00, 0x3f, 0xff, 0x40, 0x00, 0x00, 0x00, 0x00, 0xff, 0xd0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x02, 0xc0, 0x00, 0x01, 0xff, 0xff, 0x40, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0xbf, 0xff, 0xff, 0xe0, 0x2f, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xd0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb0, 0x00, 0x00, 0x00, 0x02, 0xe0, 0x00, 0x00, 0xff, 0xff, 0xc0, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0xbf, 0xff, 0xfe, 0x0b, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2d, 0x00, 0x00, 0x00, 0x03, 0xf0, 0x00, 0x00, 0xbf, 0xff, 0xd0, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xff, 0xff, 0xd0, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x80, 0x00, 0x00, 0x03, 0xf4, 0x00, 0x00, 0x3f, 0xff, 0xf0, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa0, 0x2f, 0xff, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xe0, 0x00, 0x00, 0x02, 0xf8, 0x00, 0x00, 0x2f, 0xff, 0xf0, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0b, 0x80, 0x01, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x00, 0x00, 0xfc, 0x00, 0x00, 0x1f, 0xff, 0xf8, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xbe, 0x00, 0x00, 0x1f, 0xff, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x03, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x00, 0x00, 0x00, 0xfd, 0x00, 0x00, 0x0f, 0xff, 0xfc, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xf8, 0x00, 0x00, 0x01, 0xff, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x03, 0xff, 0xd0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2f, 0x40, 0x00, 0x00, 0xfe, 0x00, 0x00, 0x0b, 0xff, 0xfc, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2f, 0xd0, 0x00, 0x00, 0x00, 0x2f, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x0b, 0xff, 0xd0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xd0, 0x00, 0x00, 0xbf, 0x00, 0x00, 0x07, 0xff, 0xfe, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xff, 0x40, 0x00, 0x00, 0x00, 0x02, 0xfd, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xff, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xf0, 0x00, 0x00, 0x7f, 0x00, 0x00, 0x03, 0xff, 0xff, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0b, 0xfd, 0x00, 0x05, 0xab, 0xff, 0xe4, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xff, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xfc, 0x00, 0x00, 0x3f, 0x40, 0x00, 0x02, 0xff, 0xff, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2f, 0xfd, 0x6b, 0xff, 0xff, 0xe4, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xff, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x00, 0x00, 0x3f, 0x80, 0x00, 0x02, 0xff, 0xff, 0x40, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xe4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xbf, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0x40, 0x00, 0x2f, 0xc0, 0x00, 0x00, 0xff, 0xff, 0x80, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xff, 0xff, 0xff, 0xe4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xc0, 0x00, 0x2f, 0xc0, 0x00, 0x00, 0xff, 0xff, 0x80, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xff, 0xff, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0b, 0xff, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2f, 0xe0, 0x00, 0x0f, 0xc0, 0x00, 0x00, 0xbf, 0xff, 0xc0, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xbf, 0xff, 0xfe, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0xff, 0xf4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xf0, 0x00, 0x0f, 0xd0, 0x00, 0x00, 0xbf, 0xff, 0xc0, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xff, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xf8, 0x00, 0x0b, 0xe0, 0x00, 0x00, 0x7f, 0xff, 0xd0, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0b, 0xff, 0xfd, 0x00, 0x06, 0xff, 0xff, 0xaa, 0xa5, 0x40, 0x00, 0x05, 0xff, 0xff, 0xff, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0b, 0xfc, 0x00, 0x0b, 0xe0, 0x00, 0x00, 0x3f, 0xff, 0xd0, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2f, 0xff, 0xd0, 0x00, 0x2b, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xfe, 0x00, 0x0b, 0xe0, 0x00, 0x00, 0x3f, 0xff, 0xe0, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xbf, 0xfd, 0x00, 0x00, 0x00, 0x1a, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x6a, 0x81, 0x6a, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xff, 0x00, 0x07, 0xf0, 0x00, 0x00, 0x2f, 0xff, 0xe0, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x06, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xd2, 0xff, 0xd1, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x15, 0x69, 0x55, 0x00, 0x00, 0x02, 0xff, 0x80, 0x03, 0xf0, 0x00, 0x00, 0x2f, 0xff, 0xf0, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xff, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1b, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x07, 0xff, 0xd0, 0xbf, 0xf8, 0x00, 0x00, 0x16, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xa4, 0x01, 0xff, 0xc0, 0x02, 0xf0, 0x00, 0x00, 0x1f, 0xff, 0xf0, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5b, 0xff, 0xff, 0xff, 0xff, 0xf4, 0x0b, 0xff, 0xc0, 0x3f, 0xfc, 0x00, 0x1b, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe5, 0xff, 0xd0, 0x02, 0xf4, 0x00, 0x00, 0x0f, 0xff, 0xf0, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2f, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6f, 0xff, 0xff, 0xfe, 0x40, 0x0f, 0xff, 0x80, 0x3f, 0xfd, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x01, 0xf4, 0x00, 0x00, 0x0f, 0xff, 0xf0, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5a, 0xbe, 0x90, 0x00, 0x2f, 0xff, 0x80, 0x7f, 0xfd, 0x0a, 0xab, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x00, 0xf8, 0x00, 0x00, 0x0f, 0xff, 0xf0, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfd, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xff, 0x40, 0xbf, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x16, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf4, 0x00, 0xf8, 0x00, 0x00, 0x0b, 0xff, 0xf4, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xff, 0x00, 0xff, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x6f, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x00, 0x78, 0x00, 0x00, 0x0b, 0xff, 0xf4, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0xfe, 0x00, 0xff, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6f, 0xff, 0xff, 0xff, 0xf8, 0x00, 0x3c, 0x00, 0x00, 0x07, 0xff, 0xf4, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xbf, 0xfd, 0x02, 0xff, 0xd0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0xff, 0xff, 0xfc, 0x00, 0x3c, 0x00, 0x00, 0x07, 0xff, 0xf4, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xff, 0xfc, 0x02, 0xff, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0xff, 0xff, 0xfc, 0x00, 0x2c, 0x00, 0x00, 0x03, 0xff, 0xf4, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x6f, 0xff, 0xfc, 0x07, 0xff, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xff, 0xfd, 0x00, 0x1c, 0x00, 0x00, 0x03, 0xff, 0xf4, 0x00, + 0x00, 0x00, 0x05, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xbf, 0xff, 0xff, 0xfe, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xab, 0xff, 0xff, 0xff, 0xfe, 0x00, 0x0c, 0x00, 0x00, 0x03, 0xff, 0xf4, 0x00, + 0x00, 0x00, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00, 0x08, 0x00, 0x00, 0x03, 0xff, 0xf4, 0x00, + 0x00, 0x0b, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x04, 0x00, 0x00, 0x02, 0xff, 0xf4, 0x00, + 0x00, 0x7f, 0xfe, 0xaa, 0xaa, 0xaa, 0xaa, 0xa5, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x6a, 0xaa, 0xaa, 0xab, 0xff, 0xff, 0xfa, 0x55, 0x55, 0x55, 0x55, 0x5a, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xf4, 0x00, + 0x01, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xff, 0xff, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xf4, 0x00, + 0x07, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xf0, 0x00, + 0x0f, 0xf4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xfd, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x01, 0xff, 0xf0, 0x00, + 0x2f, 0xd0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xff, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x01, 0xff, 0xf0, 0x00, + 0x7f, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xff, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0b, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfa, 0x00, 0x00, 0x00, 0x00, 0x01, 0xff, 0xf0, 0x00, + 0xbf, 0x00, 0x00, 0x00, 0x00, 0x06, 0xaa, 0x90, 0x00, 0x00, 0x01, 0xaa, 0xa8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xff, 0xfc, 0x00, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x01, 0xff, 0xf0, 0x00, + 0xfe, 0x00, 0x00, 0x00, 0x01, 0xbf, 0xff, 0xfe, 0x00, 0x00, 0x2f, 0xff, 0xff, 0xd0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xff, 0xfc, 0x00, 0x02, 0xff, 0x80, 0x00, 0x00, 0x00, 0x00, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x01, 0xff, 0xf0, 0x00, + 0xfc, 0x00, 0x00, 0x00, 0x0b, 0xff, 0xff, 0xff, 0xe0, 0x01, 0xff, 0xff, 0xff, 0xfd, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xfc, 0x00, 0x07, 0xff, 0xd0, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x01, 0xff, 0xf0, 0x00, + 0xfc, 0x00, 0x00, 0x00, 0x7f, 0xff, 0xff, 0xff, 0xfc, 0x0b, 0xff, 0xff, 0xff, 0xff, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xfc, 0x00, 0x0b, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x03, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x00, 0x05, 0x00, 0x00, 0x01, 0xff, 0xe0, 0x00, + 0xfc, 0x00, 0x00, 0x01, 0xff, 0xff, 0xff, 0xff, 0xff, 0x2f, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xfc, 0x00, 0x0b, 0xff, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x00, 0xbf, 0xc0, 0x00, 0x01, 0xff, 0xe4, 0x00, + 0xfc, 0x00, 0x00, 0x03, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xfc, 0x00, 0x0b, 0xff, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x1f, 0xff, 0xc0, 0x00, 0x01, 0xff, 0xed, 0x00, + 0xfc, 0x00, 0x00, 0x0b, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xfc, 0x00, 0x0b, 0xff, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xf8, 0xbf, 0xff, 0xc0, 0x00, 0x01, 0xff, 0xdf, 0x00, + 0xfc, 0x00, 0x00, 0x2f, 0xff, 0xff, 0xea, 0xff, 0xff, 0xff, 0xff, 0xfa, 0xbf, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xfc, 0x00, 0x0b, 0xff, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xc0, 0x00, 0x01, 0xff, 0xdf, 0x80, + 0xfc, 0x00, 0x00, 0x3f, 0xff, 0xf8, 0x00, 0x2f, 0xff, 0xff, 0xfe, 0x00, 0x07, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xfc, 0x00, 0x01, 0x55, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xbf, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xc0, 0x00, 0x01, 0xff, 0xef, 0xc0, + 0xfc, 0x00, 0x00, 0x7f, 0xff, 0xd0, 0x00, 0x07, 0xff, 0xff, 0xf4, 0x00, 0x00, 0xff, 0xff, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2f, 0xff, 0xff, 0xff, 0xfc, 0x1f, 0xff, 0xc0, 0x00, 0x01, 0xff, 0xef, 0xd0, + 0xfc, 0x00, 0x00, 0xbf, 0xff, 0x40, 0x00, 0x01, 0xff, 0xff, 0xe0, 0x00, 0x00, 0x7f, 0xff, 0xc0, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x50, 0x00, 0x00, 0x02, 0xff, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x15, 0x00, 0x0b, 0xff, 0xff, 0xff, 0xf8, 0x0b, 0xff, 0xc0, 0x00, 0x01, 0xff, 0xef, 0xf0, + 0xfc, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0xff, 0xff, 0xc0, 0x00, 0x00, 0x2f, 0xff, 0xc0, 0x00, 0x00, 0x6f, 0xff, 0xf9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xff, 0xff, 0xe0, 0x00, 0x02, 0xff, 0xfc, 0x00, 0x06, 0xaa, 0xa0, 0x00, 0x00, 0x00, 0x6f, 0xff, 0xf9, 0x02, 0xff, 0xff, 0xff, 0xf8, 0x07, 0xff, 0xc0, 0x00, 0x01, 0xff, 0xbf, 0xf0, + 0xfc, 0x00, 0x00, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x7f, 0xff, 0x80, 0x00, 0x00, 0x0f, 0xff, 0xd0, 0x00, 0x07, 0xff, 0xff, 0xff, 0xd0, 0x00, 0x00, 0x00, 0x00, 0x2f, 0xff, 0xff, 0xfe, 0x00, 0x02, 0xff, 0xfc, 0x00, 0x0b, 0xff, 0xf0, 0x00, 0x00, 0x07, 0xff, 0xff, 0xff, 0xd0, 0x7f, 0xff, 0xff, 0xf8, 0x02, 0xff, 0xc0, 0x00, 0x01, 0xff, 0xbf, 0x54, + 0xfc, 0x00, 0x00, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x7f, 0xff, 0x80, 0x00, 0x00, 0x0f, 0xff, 0xd0, 0x00, 0x2f, 0xff, 0xff, 0xff, 0xf8, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x02, 0xff, 0xfc, 0x00, 0x0b, 0xff, 0xf0, 0x00, 0x00, 0x2f, 0xff, 0xff, 0xff, 0xf4, 0x1f, 0xff, 0xff, 0xf8, 0x01, 0xff, 0xd0, 0x00, 0x01, 0xff, 0x7f, 0x00, + 0xfc, 0x00, 0x00, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x7f, 0xff, 0x80, 0x00, 0x00, 0x0f, 0xff, 0xe0, 0x00, 0xbf, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x03, 0xff, 0xff, 0xff, 0xff, 0xf4, 0x02, 0xff, 0xfc, 0x00, 0x0b, 0xff, 0xf0, 0x00, 0x00, 0xbf, 0xff, 0xff, 0xff, 0xfe, 0x07, 0xff, 0xff, 0xf8, 0x00, 0xff, 0xd0, 0x00, 0x01, 0xff, 0x3f, 0x00, + 0xfc, 0x00, 0x00, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x7f, 0xff, 0x80, 0x00, 0x00, 0x0f, 0xff, 0xe0, 0x02, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x00, 0x00, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x02, 0xff, 0xfc, 0x00, 0x0b, 0xff, 0xf0, 0x00, 0x02, 0xff, 0xff, 0xff, 0xff, 0xff, 0x40, 0xff, 0xff, 0xf8, 0x00, 0xff, 0xd0, 0x00, 0x01, 0xff, 0x3e, 0x00, + 0xfc, 0x00, 0x00, 0xff, 0xfd, 0x00, 0x00, 0x00, 0x3f, 0xff, 0x80, 0x00, 0x00, 0x0f, 0xff, 0xe0, 0x0b, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x2f, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x02, 0xff, 0xfc, 0x00, 0x0b, 0xff, 0xf0, 0x00, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x3f, 0xff, 0xf8, 0x00, 0x7f, 0xe0, 0x00, 0x01, 0xfe, 0x3e, 0x00, + 0xfc, 0x00, 0x00, 0xff, 0xfd, 0x00, 0x00, 0x00, 0x3f, 0xff, 0x80, 0x00, 0x00, 0x0f, 0xff, 0xe0, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x00, 0x00, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0x02, 0xff, 0xfc, 0x00, 0x0b, 0xff, 0xf0, 0x00, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x0f, 0xff, 0xf8, 0x00, 0x2f, 0xf0, 0x00, 0x01, 0xfe, 0x7d, 0x00, + 0xfc, 0x00, 0x00, 0xff, 0xfd, 0x00, 0x00, 0x00, 0x3f, 0xff, 0x40, 0x00, 0x00, 0x0f, 0xff, 0xe0, 0x3f, 0xff, 0xfe, 0x40, 0x7f, 0xff, 0xfd, 0x00, 0x00, 0xbf, 0xff, 0xf4, 0x07, 0xff, 0xff, 0x82, 0xff, 0xfc, 0x00, 0x0b, 0xff, 0xf0, 0x00, 0x1f, 0xff, 0xfe, 0x01, 0xbf, 0xff, 0xf0, 0x03, 0xff, 0xf8, 0x00, 0x2f, 0xf0, 0x00, 0x01, 0xfd, 0x7d, 0x00, + 0xfc, 0x00, 0x00, 0xff, 0xfd, 0x00, 0x00, 0x00, 0x3f, 0xff, 0x40, 0x00, 0x00, 0x0f, 0xff, 0xe0, 0x7f, 0xff, 0xf4, 0x00, 0x0b, 0xff, 0xfe, 0x00, 0x00, 0xff, 0xff, 0x80, 0x00, 0xbf, 0xff, 0xc2, 0xff, 0xfc, 0x00, 0x0b, 0xff, 0xf0, 0x00, 0x2f, 0xff, 0xf0, 0x00, 0x0f, 0xff, 0xf4, 0x00, 0xbf, 0xf8, 0x00, 0x2f, 0xf4, 0x00, 0x01, 0xfc, 0x7c, 0x00, + 0xfc, 0x00, 0x00, 0xff, 0xfd, 0x00, 0x00, 0x00, 0x3f, 0xff, 0x40, 0x00, 0x00, 0x0f, 0xff, 0xe0, 0xbf, 0xff, 0xc0, 0x00, 0x02, 0xff, 0xff, 0x00, 0x01, 0xff, 0xfe, 0x00, 0x00, 0x3f, 0xff, 0xc2, 0xff, 0xfc, 0x00, 0x0b, 0xff, 0xf0, 0x00, 0x3f, 0xff, 0xc0, 0x00, 0x0b, 0xff, 0xf8, 0x00, 0x3f, 0xf8, 0x00, 0x1f, 0xf8, 0x00, 0x01, 0xfc, 0x3c, 0x00, + 0xfc, 0x00, 0x00, 0xff, 0xfd, 0x00, 0x00, 0x00, 0x3f, 0xff, 0x40, 0x00, 0x00, 0x0f, 0xff, 0xe0, 0xff, 0xff, 0x40, 0x00, 0x00, 0xbf, 0xff, 0x40, 0x01, 0xff, 0xfd, 0x00, 0x00, 0x1f, 0xff, 0xd2, 0xff, 0xfc, 0x00, 0x0b, 0xff, 0xf0, 0x00, 0x3f, 0xff, 0x80, 0x00, 0x03, 0xff, 0xf8, 0x00, 0x0f, 0xf8, 0x00, 0x07, 0xfc, 0x00, 0x02, 0xfc, 0x3e, 0x00, + 0xfc, 0x00, 0x00, 0xff, 0xfd, 0x00, 0x00, 0x00, 0x3f, 0xff, 0x40, 0x00, 0x00, 0x0f, 0xff, 0xe1, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x3f, 0xff, 0xc0, 0x02, 0xff, 0xfc, 0x00, 0x00, 0x0f, 0xff, 0xd2, 0xff, 0xfc, 0x00, 0x0b, 0xff, 0xf0, 0x00, 0x7f, 0xff, 0x40, 0x00, 0x02, 0xff, 0xfc, 0x00, 0x07, 0xf8, 0x00, 0x02, 0xfc, 0x00, 0x02, 0xf8, 0x1f, 0x00, + 0xfc, 0x00, 0x00, 0xff, 0xfd, 0x00, 0x00, 0x00, 0x3f, 0xff, 0x40, 0x00, 0x00, 0x0f, 0xff, 0xe2, 0xff, 0xfc, 0x00, 0x00, 0x00, 0x2f, 0xff, 0xc0, 0x02, 0xff, 0xfc, 0x00, 0x00, 0x0f, 0xff, 0xe2, 0xff, 0xfc, 0x00, 0x0b, 0xff, 0xf0, 0x00, 0x7f, 0xff, 0x40, 0x00, 0x02, 0xff, 0xfc, 0x00, 0x03, 0xf8, 0x00, 0x00, 0xfe, 0x00, 0x02, 0xf4, 0x0b, 0x80, + 0xfc, 0x00, 0x00, 0xff, 0xfd, 0x00, 0x00, 0x00, 0x3f, 0xff, 0x40, 0x00, 0x00, 0x0f, 0xff, 0xe2, 0xff, 0xfc, 0x00, 0x00, 0x00, 0x1f, 0xff, 0xc0, 0x02, 0xff, 0xfc, 0x00, 0x00, 0x0f, 0xff, 0xe2, 0xff, 0xfc, 0x00, 0x0b, 0xff, 0xf0, 0x00, 0x7f, 0xff, 0x00, 0x00, 0x02, 0xff, 0xfc, 0x00, 0x03, 0xf8, 0x00, 0x00, 0x7f, 0x00, 0x03, 0xf4, 0x03, 0xc0, + 0xfc, 0x00, 0x00, 0xff, 0xfd, 0x00, 0x00, 0x00, 0x3f, 0xff, 0x40, 0x00, 0x00, 0x0f, 0xff, 0xe2, 0xff, 0xfc, 0x00, 0x00, 0x00, 0x1f, 0xff, 0xc0, 0x02, 0xff, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xfc, 0x00, 0x0b, 0xff, 0xf0, 0x00, 0x7f, 0xff, 0x00, 0x00, 0x02, 0xff, 0xfc, 0x00, 0x03, 0xf8, 0x00, 0x00, 0x1f, 0x80, 0x03, 0xf0, 0x00, 0xe0, + 0xfc, 0x00, 0x00, 0xff, 0xfd, 0x00, 0x00, 0x00, 0x3f, 0xff, 0x40, 0x00, 0x00, 0x0f, 0xff, 0xe2, 0xff, 0xfc, 0x00, 0x00, 0x00, 0x1f, 0xff, 0xc0, 0x02, 0xff, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xfc, 0x00, 0x0b, 0xff, 0xf0, 0x00, 0x7f, 0xff, 0x00, 0x00, 0x02, 0xff, 0xfc, 0x00, 0x03, 0xf8, 0x00, 0x00, 0x0b, 0xc0, 0x03, 0xf0, 0x00, 0x34, + 0xfc, 0x00, 0x00, 0xff, 0xfd, 0x00, 0x00, 0x00, 0x3f, 0xff, 0x40, 0x00, 0x00, 0x0f, 0xff, 0xe2, 0xff, 0xfc, 0x00, 0x00, 0x00, 0x1f, 0xff, 0xc0, 0x02, 0xff, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xfc, 0x00, 0x0b, 0xff, 0xf0, 0x00, 0x7f, 0xff, 0x00, 0x00, 0x02, 0xff, 0xfc, 0x00, 0x03, 0xf8, 0x00, 0x00, 0x02, 0xe0, 0x03, 0xe0, 0x00, 0x0c, + 0xfc, 0x00, 0x00, 0xff, 0xfd, 0x00, 0x00, 0x00, 0x3f, 0xff, 0x40, 0x00, 0x00, 0x0f, 0xff, 0xe2, 0xff, 0xfd, 0x00, 0x00, 0x00, 0x1f, 0xff, 0xc0, 0x02, 0xff, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xfc, 0x00, 0x0b, 0xff, 0xf0, 0x00, 0x7f, 0xff, 0x00, 0x00, 0x02, 0xff, 0xfc, 0x00, 0x03, 0xf8, 0x00, 0x00, 0x00, 0x74, 0x07, 0xd0, 0x00, 0x00, + 0xfc, 0x00, 0x00, 0xff, 0xfd, 0x00, 0x00, 0x00, 0x3f, 0xff, 0x40, 0x00, 0x00, 0x0f, 0xff, 0xe1, 0xff, 0xff, 0x00, 0x00, 0x00, 0x1f, 0xff, 0xc0, 0x02, 0xff, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xfc, 0x00, 0x0b, 0xff, 0xf0, 0x00, 0x7f, 0xff, 0x00, 0x00, 0x02, 0xff, 0xfc, 0x00, 0x03, 0xf8, 0x00, 0x00, 0x00, 0x08, 0x07, 0xc0, 0x00, 0x00, + 0xfc, 0x00, 0x00, 0xff, 0xfd, 0x00, 0x00, 0x00, 0x3f, 0xff, 0x40, 0x00, 0x00, 0x0f, 0xff, 0xe0, 0xff, 0xff, 0x80, 0x00, 0x00, 0x1f, 0xff, 0xc0, 0x02, 0xff, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xfc, 0x00, 0x0b, 0xff, 0xf0, 0x00, 0x7f, 0xff, 0x00, 0x00, 0x02, 0xff, 0xfc, 0x00, 0x03, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x0b, 0xc0, 0x00, 0x00, + 0xfc, 0x00, 0x00, 0xff, 0xfd, 0x00, 0x00, 0x00, 0x3f, 0xff, 0x40, 0x00, 0x00, 0x0f, 0xff, 0xe0, 0xbf, 0xff, 0xe0, 0x00, 0x00, 0x1f, 0xff, 0xc0, 0x02, 0xff, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xfd, 0x00, 0x0b, 0xff, 0xf0, 0x00, 0x7f, 0xff, 0x00, 0x00, 0x02, 0xff, 0xfc, 0x00, 0x03, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x0b, 0x80, 0x00, 0x00, + 0xfc, 0x00, 0x00, 0xff, 0xfd, 0x00, 0x00, 0x00, 0x3f, 0xff, 0x40, 0x00, 0x00, 0x0f, 0xff, 0xe0, 0x7f, 0xff, 0xfd, 0x00, 0x00, 0x1f, 0xff, 0xc0, 0x02, 0xff, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x40, 0x0b, 0xff, 0xf0, 0x00, 0x7f, 0xff, 0x00, 0x00, 0x02, 0xff, 0xfc, 0x00, 0x03, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x0b, 0x40, 0x00, 0x00, + 0xfc, 0x00, 0x00, 0xff, 0xfd, 0x00, 0x00, 0x00, 0x3f, 0xff, 0x40, 0x00, 0x00, 0x0f, 0xff, 0xe0, 0x3f, 0xff, 0xff, 0xfa, 0xa8, 0x1f, 0xff, 0xea, 0xab, 0xff, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xe9, 0x0b, 0xff, 0xf5, 0x55, 0xbf, 0xff, 0x00, 0x00, 0x02, 0xff, 0xfc, 0x00, 0x03, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, + 0xfc, 0x00, 0x00, 0xff, 0xfd, 0x00, 0x00, 0x00, 0x3f, 0xff, 0x40, 0x00, 0x00, 0x0f, 0xff, 0xe0, 0x0f, 0xff, 0xff, 0xff, 0xfc, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0xff, 0xff, 0x4b, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x02, 0xff, 0xfc, 0x00, 0x03, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, + 0xfc, 0x00, 0x00, 0xff, 0xfd, 0x00, 0x00, 0x00, 0x3f, 0xff, 0x40, 0x00, 0x00, 0x0f, 0xff, 0xe0, 0x07, 0xff, 0xff, 0xff, 0xfc, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xff, 0xff, 0x4b, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x02, 0xff, 0xfc, 0x00, 0x03, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, + 0xfc, 0x00, 0x00, 0xff, 0xfd, 0x00, 0x00, 0x00, 0x3f, 0xff, 0x40, 0x00, 0x00, 0x0f, 0xff, 0xe0, 0x02, 0xff, 0xff, 0xff, 0xfc, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xff, 0xff, 0x4b, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x02, 0xff, 0xfc, 0x00, 0x03, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, + 0xfc, 0x00, 0x00, 0xff, 0xfd, 0x00, 0x00, 0x00, 0x3f, 0xff, 0x40, 0x00, 0x00, 0x0f, 0xff, 0xe0, 0x00, 0x7f, 0xff, 0xff, 0xfc, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0b, 0xff, 0xff, 0x4b, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x02, 0xff, 0xfc, 0x00, 0x03, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, + 0xfc, 0x00, 0x00, 0xff, 0xfd, 0x00, 0x00, 0x00, 0x3f, 0xff, 0x40, 0x00, 0x00, 0x0f, 0xff, 0xe0, 0x00, 0x0f, 0xff, 0xff, 0xfc, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xff, 0x4b, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x02, 0xff, 0xfc, 0x00, 0x03, 0xf4, 0x00, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, + 0xfd, 0x00, 0x00, 0xff, 0xfd, 0x00, 0x00, 0x00, 0x3f, 0xff, 0x40, 0x00, 0x00, 0x0f, 0xff, 0xe0, 0x00, 0x01, 0xbf, 0xff, 0xfc, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2f, 0xff, 0x4b, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x02, 0xff, 0xfc, 0x00, 0x07, 0xf0, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xfe, 0x00, 0x00, 0x6a, 0xa9, 0x00, 0x00, 0x00, 0x2a, 0xaa, 0x40, 0x00, 0x00, 0x0a, 0xaa, 0x90, 0x00, 0x00, 0x06, 0xaa, 0xa8, 0x0a, 0xaa, 0xaa, 0xaa, 0xaa, 0xa8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x6a, 0x46, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0x00, 0x00, 0x02, 0xaa, 0xa0, 0x00, 0x0b, 0xf2, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xbf, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xd3, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x3f, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xc7, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x1f, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x47, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x0b, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xfe, 0x07, 0xd0, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, + 0x02, 0xff, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2f, 0xf8, 0x07, 0xc0, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, + 0x00, 0xbf, 0xfa, 0x55, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x56, 0xff, 0xe0, 0x07, 0xc0, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, + 0x00, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x40, 0x07, 0x80, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, + 0x00, 0x02, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x00, 0x0b, 0x80, 0x00, 0x00, 0x00, 0xb4, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x2b, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x40, 0x00, 0x1f, 0x40, 0x00, 0x00, 0x00, 0xb4, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x56, 0xaa, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xaa, 0xab, 0xff, 0x00, 0x00, 0x00, 0x00, 0xb8, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xea, 0xa5, 0x55, 0xaa, 0xbf, 0xff, 0xff, 0xff, 0xfd, 0x00, 0x00, 0x00, 0x00, 0xfd, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xff, 0xff, 0xff, 0xfa, 0x94, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5b, 0xff, 0xff, 0xfc, 0x00, 0x00, 0x00, 0x00, 0xbe, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xff, 0xff, 0xe4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x16, 0xff, 0xfc, 0x00, 0x00, 0x00, 0x00, 0xbf, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0xff, 0xe8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1b, 0xf8, 0x00, 0x00, 0x00, 0x00, 0xbf, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xbf, 0x40, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0b, 0xff, 0x90, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0xc0, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2f, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xc0, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xbf, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xd0, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xe0, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xd0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2f, 0xf0, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2f, 0xf4, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xf8, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xea, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xfc, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xfd, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0xff, 0xe8, 0x00, 0x00, 0x00, 0x00, 0x0b, 0xfe, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xff, 0xff, 0x40, 0x00, 0x00, 0x00, 0x03, 0xff, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xff, 0xf9, 0x00, 0x00, 0x00, 0x03, 0xff, 0x40, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xbf, 0xff, 0xff, 0xe4, 0x00, 0x00, 0x02, 0xff, 0x80, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2f, 0xff, 0xff, 0xff, 0x00, 0x00, 0x02, 0xff, 0xc0, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xff, 0xff, 0xff, 0xd0, 0x00, 0x01, 0xff, 0xd0, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xbf, 0xff, 0xff, 0xf8, 0x00, 0x00, 0xff, 0xf0, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2f, 0xff, 0xff, 0xff, 0x00, 0x00, 0xbf, 0xf0, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0b, 0xff, 0xff, 0xff, 0xc0, 0x00, 0xbf, 0xf8, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xbf, 0xff, 0xff, 0xf0, 0x00, 0x7f, 0xfc, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xff, 0xff, 0xf8, 0x00, 0x3f, 0xfc, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0xff, 0xfe, 0x00, 0x3f, 0xfe, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xff, 0xff, 0x40, 0x2f, 0xff, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xff, 0xff, 0xc0, 0x1f, 0xff, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xe0, 0x0f, 0xff, 0x80, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xff, 0xf4, 0x0f, 0xff, 0xc0, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xff, 0xfc, 0x0f, 0xff, 0xc0, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xff, 0xfe, 0x0b, 0xff, 0xd0, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xff, 0x0b, 0xff, 0xe0, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xcb, 0xff, 0xf0, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0xff, 0xd7, 0xff, 0xf0, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2f, 0xff, 0xf7, 0xff, 0xf4, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xff, 0xff, 0xff, 0xf8, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0b, 0xff, 0xff, 0xff, 0xfc, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xff, 0xff, 0xff, 0xfc, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xff, 0xff, 0xfc, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xfc, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xfd, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0xff, 0xff, 0xfd, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xff, 0xff, 0xfe, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xff, 0xff, 0xfe, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xff, 0xff, 0xff, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0b, 0xff, 0xff, 0xff, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xff, 0xff, 0xff, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xff, 0xff, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xff, 0xff, 0xff, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xbf, 0xff, 0xff, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xff, 0xff, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xff, 0xff, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xff, 0xff, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xff, 0xfe, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xff, 0xfe, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0b, 0xff, 0xfe, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xff, 0xfd, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xff, 0xfd, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xfc, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xff, 0xfc, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xf8, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xf4, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xbf, 0xf0, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0xe0, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xd0, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xc0, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2f, 0x80, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2f, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2e, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1d, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x00 +}; + +#endif // HAS_GRAPHICAL_TFT diff --git a/Marlin/src/lcd/tft/images/bootscreen_228x255x4.cpp b/Marlin/src/lcd/tft/images/bootscreen_228x255x4.cpp new file mode 100644 index 000000000..c84653f8a --- /dev/null +++ b/Marlin/src/lcd/tft/images/bootscreen_228x255x4.cpp @@ -0,0 +1,285 @@ +/** + * Marlin 3D Printer Firmware + * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin] + * + * Based on Sprinter and grbl. + * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + */ + +#include "../../../inc/MarlinConfigPre.h" + +#if HAS_GRAPHICAL_TFT + +extern const uint8_t marlin_logo_228x255x4[29070] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x9e, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2b, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xdf, 0xe1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3e, 0xff, 0xa0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xef, 0xff, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1d, 0xff, 0xff, 0xd0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xaf, 0xff, 0xff, 0xd0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0xff, 0xff, 0xff, 0xa0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4f, 0xff, 0xff, 0xff, 0xa0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xcf, 0xff, 0xff, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0xff, 0xff, 0xff, 0xff, 0xf5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3e, 0xff, 0xff, 0xff, 0xff, 0xf5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xf5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0b, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xd0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0b, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xb0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xaf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf2, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfa, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xb2, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0b, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x90, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfb, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x13, 0x57, 0x77, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xa0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x15, 0x8c, 0xef, 0xff, 0xff, 0xff, 0xd8, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe2, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14, 0x8c, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfd, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0xcf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xee, 0xdf, 0xfe, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xb0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0xef, 0xff, 0xff, 0xff, 0xff, 0xff, 0xeb, 0x84, 0x32, 0x10, 0x00, 0x46, 0x89, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf3, 0x00, 0x00, 0x00, 0x00, 0x28, 0xef, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x83, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x10, 0x00, 0x00, 0x18, 0xef, 0xff, 0xff, 0xff, 0xff, 0xe8, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0b, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xd5, 0x00, 0x04, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xb7, 0x10, 0x00, 0x18, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xbe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x01, 0x9f, 0xff, 0xff, 0xff, 0xff, 0xb3, 0x00, 0x00, 0x38, 0xe8, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x22, 0x22, 0x11, 0x11, 0x12, 0x35, 0x57, 0x8b, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x8a, 0xff, 0xff, 0xff, 0xff, 0xb3, 0x00, 0x00, 0x4b, 0xef, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4c, 0xef, 0xff, 0xff, 0xff, 0xed, 0xba, 0x98, 0x64, 0x00, 0x05, 0x8c, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xdf, 0xff, 0xff, 0xc5, 0x00, 0x01, 0x6c, 0xff, 0xe6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfd, 0x97, 0x30, 0x37, 0xcf, 0xff, 0xff, 0xff, 0xff, 0xff, 0x87, 0x9f, 0xe7, 0x10, 0x01, 0x8d, 0xff, 0xfd, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xa8, 0x23, 0x8e, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x30, 0x10, 0x01, 0x8e, 0xff, 0xff, 0xc2, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x19, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfa, 0x60, 0x5a, 0xff, 0xff, 0xff, 0xff, 0xf7, 0x00, 0x0e, 0xff, 0xff, 0xf8, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x9f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xa6, 0x39, 0xff, 0xff, 0xff, 0xff, 0x90, 0x00, 0x7b, 0xfe, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1a, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc6, 0x07, 0xff, 0xff, 0xff, 0xf3, 0x88, 0x50, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc6, 0x19, 0xff, 0xff, 0xfe, 0x37, 0xdf, 0xa4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x8e, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc6, 0x3c, 0xff, 0xff, 0xe3, 0x08, 0xff, 0xe8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4d, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc3, 0x7f, 0xff, 0xfe, 0x30, 0x3a, 0xff, 0xf8, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3a, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x83, 0xdf, 0xff, 0xe3, 0x00, 0x7f, 0xff, 0xf7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0xef, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xd8, 0x76, 0x54, 0x44, 0x44, 0x55, 0x66, 0x68, 0x89, 0xbb, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x2a, 0xff, 0xff, 0x50, 0x03, 0xdf, 0xff, 0xc2, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x9f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc3, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x58, 0xbd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf7, 0x8f, 0xff, 0xe0, 0x00, 0x1b, 0xff, 0xff, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2b, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfb, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x7a, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc5, 0xff, 0xf9, 0x00, 0x00, 0x8f, 0xff, 0xfc, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x9f, 0xff, 0xff, 0xff, 0xfe, 0x6e, 0xff, 0x80, 0x00, 0x08, 0xff, 0xff, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2d, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7d, 0xff, 0xff, 0xff, 0xf7, 0xcf, 0xf6, 0x00, 0x00, 0x8f, 0xff, 0xff, 0xe3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xcf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe8, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x49, 0xff, 0xff, 0xff, 0x5c, 0xff, 0x20, 0x00, 0x04, 0xff, 0xff, 0xff, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1a, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xb6, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x29, 0xff, 0xff, 0xf4, 0xdf, 0xb0, 0x00, 0x00, 0x4f, 0xff, 0xff, 0xf6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8f, 0xff, 0xff, 0xff, 0xff, 0xc8, 0x41, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x29, 0xff, 0xfe, 0x4f, 0xf7, 0x00, 0x00, 0x04, 0xff, 0xff, 0xff, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xff, 0xff, 0xff, 0xeb, 0x83, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x39, 0xff, 0xe6, 0xff, 0x30, 0x00, 0x00, 0x5f, 0xff, 0xff, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0xff, 0xff, 0xc8, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4d, 0xfd, 0x6f, 0xd0, 0x00, 0x00, 0x07, 0xff, 0xff, 0xff, 0xb0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xff, 0xff, 0xb3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0xca, 0xf5, 0x00, 0x00, 0x00, 0x8f, 0xff, 0xff, 0xfc, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0xff, 0xb3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x9a, 0xce, 0x00, 0x00, 0x00, 0x09, 0xff, 0xff, 0xff, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xef, 0xc5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x2f, 0x80, 0x00, 0x00, 0x00, 0xbf, 0xff, 0xff, 0xfb, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x57, 0x89, 0x91, 0x7f, 0xe7, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xf2, 0x00, 0x00, 0x00, 0x1d, 0xff, 0xff, 0xff, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x6b, 0xef, 0xfe, 0xb7, 0x18, 0xfb, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xca, 0x00, 0x00, 0x00, 0x02, 0xff, 0xff, 0xff, 0xf5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x8e, 0xff, 0xea, 0x51, 0x01, 0x8b, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2f, 0x40, 0x00, 0x00, 0x00, 0x5f, 0xff, 0xff, 0xff, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x8e, 0xff, 0xe8, 0x20, 0x00, 0x06, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0xc0, 0x00, 0x00, 0x00, 0x0a, 0xff, 0xff, 0xff, 0xe1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14, 0xcf, 0xff, 0xfa, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd5, 0x00, 0x00, 0x00, 0x01, 0xdf, 0xff, 0xff, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x48, 0xdf, 0xff, 0xfd, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4d, 0x00, 0x00, 0x00, 0x00, 0x4f, 0xff, 0xff, 0xff, 0xa0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x15, 0x8c, 0xff, 0xff, 0xff, 0xb1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a, 0x50, 0x00, 0x00, 0x00, 0x0a, 0xff, 0xff, 0xff, 0xf7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x47, 0x9c, 0xef, 0xff, 0xff, 0xff, 0xe6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xa0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xa0, 0x00, 0x00, 0x00, 0x02, 0xff, 0xff, 0xff, 0xfe, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14, 0x68, 0x9c, 0xef, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfb, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0d, 0xf5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x9f, 0xff, 0xff, 0xff, 0xb0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x42, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x13, 0x57, 0x8b, 0xce, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfb, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1d, 0xff, 0xff, 0xff, 0xf7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9f, 0xfe, 0xdb, 0xaa, 0x98, 0x88, 0x87, 0x66, 0x55, 0x54, 0x44, 0x43, 0x33, 0x44, 0x55, 0x67, 0x78, 0x89, 0xbc, 0xde, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xeb, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0xff, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0xff, 0xff, 0xff, 0xfe, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x8f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xb8, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xcf, 0xff, 0xff, 0xff, 0xa0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x58, 0xcf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfb, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4c, 0xd8, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xff, 0xf7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xff, 0xff, 0xff, 0xf5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x45, 0x89, 0xbb, 0xef, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x96, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0xff, 0xff, 0xe3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a, 0xff, 0xff, 0xff, 0xfd, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0x56, 0x88, 0x9b, 0xde, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfb, 0x84, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, 0xff, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xef, 0xff, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xff, 0xff, 0xff, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x35, 0x68, 0x8b, 0xbd, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfa, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5f, 0xff, 0xff, 0xff, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xdf, 0xff, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0xaf, 0xff, 0xff, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x23, 0x56, 0x78, 0x9b, 0xbd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x84, 0x00, 0x00, 0x00, 0x00, 0x8f, 0xff, 0xff, 0xff, 0xa0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xdf, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a, 0x50, 0x00, 0x00, 0x00, 0x00, 0x4f, 0xff, 0xff, 0xff, 0xf7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x25, 0x68, 0x9b, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xd8, 0x00, 0x00, 0x00, 0x6f, 0xff, 0xff, 0xff, 0xa0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xef, 0xff, 0xf1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x0d, 0xff, 0xff, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x58, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x20, 0x00, 0x1f, 0xff, 0xff, 0xff, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xef, 0xff, 0xf4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0xf2, 0x00, 0x00, 0x00, 0x00, 0x06, 0xff, 0xff, 0xff, 0xff, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0xae, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x20, 0x08, 0xff, 0xff, 0xf9, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xf7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8c, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x01, 0xdf, 0xff, 0xff, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x00, 0x8f, 0xfe, 0xb1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xff, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0b, 0xf6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8f, 0xff, 0xff, 0xff, 0xf6, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7c, 0xff, 0xff, 0xff, 0xff, 0xe6, 0x00, 0x52, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xff, 0xff, 0xf9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xcf, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0xff, 0x40, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xff, 0xff, 0xff, 0xfd, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x88, 0x00, 0x38, 0xff, 0xff, 0xff, 0xff, 0x90, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0xff, 0xff, 0xfa, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0xff, 0x90, 0x00, 0x00, 0x00, 0x00, 0x09, 0xff, 0xff, 0xff, 0xff, 0x20, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x8e, 0xb1, 0x00, 0x00, 0x07, 0xef, 0xff, 0xff, 0xfc, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0xff, 0xff, 0xf9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xff, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x05, 0xff, 0xff, 0xff, 0xff, 0x80, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x8e, 0xf8, 0x10, 0x00, 0x00, 0x00, 0x07, 0xdf, 0xff, 0xff, 0xd3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0d, 0xff, 0xff, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5f, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xff, 0xf4, 0x00, 0x00, 0x00, 0x00, 0x00, 0xef, 0xff, 0xff, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4c, 0xff, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xff, 0xff, 0xfd, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xff, 0xff, 0xf6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0xff, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0xef, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9f, 0xff, 0xff, 0xff, 0xf2, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x19, 0xff, 0xf7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0xff, 0xff, 0xb0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8f, 0xff, 0xff, 0xf5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xcf, 0xf4, 0x00, 0x00, 0x00, 0x00, 0x00, 0xaf, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5f, 0xff, 0xff, 0xff, 0xf8, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0xdf, 0xff, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3a, 0xff, 0xf7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xdf, 0xff, 0xff, 0xe1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xfe, 0x30, 0x00, 0x00, 0x00, 0x00, 0x6f, 0xff, 0x20, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xff, 0xff, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x8f, 0xff, 0xf7, 0x00, 0x00, 0x13, 0x57, 0x8a, 0xbc, 0xde, 0xff, 0xeb, 0x50, 0x6d, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xff, 0xff, 0xff, 0xb0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xff, 0xd0, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xff, 0x70, 0x00, 0x00, 0x00, 0x00, 0x0b, 0xff, 0xff, 0xff, 0xff, 0x10, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1a, 0xff, 0xff, 0xc4, 0x58, 0xbc, 0xef, 0xff, 0xff, 0xff, 0xca, 0x63, 0x00, 0x00, 0x00, 0x8f, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, 0xff, 0xff, 0xff, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xdf, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x0c, 0xff, 0x90, 0x00, 0x00, 0x00, 0x00, 0x08, 0xff, 0xff, 0xff, 0xff, 0x40, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc8, 0x63, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9f, 0xff, 0xff, 0xfe, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6f, 0xff, 0x40, 0x00, 0x00, 0x00, 0x08, 0xff, 0xd0, 0x00, 0x00, 0x00, 0x00, 0x01, 0xff, 0xff, 0xff, 0xff, 0x80, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4e, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe8, 0x41, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x19, 0xff, 0xff, 0xff, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, 0xff, 0xe1, 0x00, 0x00, 0x00, 0x08, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0xef, 0xff, 0xff, 0xff, 0xa0, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xef, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x83, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xaf, 0xff, 0xff, 0xff, 0xd1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0xff, 0xf9, 0x00, 0x00, 0x00, 0x01, 0xff, 0xf3, 0x00, 0x00, 0x00, 0x00, 0x00, 0xbf, 0xff, 0xff, 0xff, 0xe0, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x9f, 0xff, 0xff, 0xff, 0xff, 0xfb, 0x51, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x6e, 0xff, 0xff, 0xff, 0xff, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xff, 0x20, 0x00, 0x00, 0x00, 0xdf, 0xf7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8f, 0xff, 0xff, 0xff, 0xf2, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1a, 0xff, 0xff, 0xff, 0xff, 0xe8, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x7c, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xdf, 0xff, 0x90, 0x00, 0x00, 0x00, 0xbf, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5f, 0xff, 0xff, 0xff, 0xf4, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x9f, 0xff, 0xff, 0xff, 0xd7, 0x10, 0x00, 0x01, 0x7b, 0xce, 0xee, 0xee, 0xdd, 0xba, 0x98, 0x88, 0x65, 0x43, 0x32, 0x21, 0x12, 0x33, 0x57, 0xce, 0xff, 0xff, 0xff, 0xff, 0xff, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8f, 0xff, 0xf2, 0x00, 0x00, 0x00, 0x8f, 0xfa, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xff, 0xff, 0xff, 0xf7, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x19, 0xff, 0xff, 0xff, 0xe7, 0x10, 0x00, 0x00, 0x2a, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfb, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xff, 0xfa, 0x00, 0x00, 0x00, 0x8f, 0xfb, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, 0xff, 0xff, 0xff, 0xf9, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8f, 0xff, 0xff, 0xe7, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x25, 0x8b, 0xef, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x81, 0x78, 0x88, 0x82, 0x04, 0x78, 0x98, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0d, 0xff, 0xff, 0x20, 0x00, 0x00, 0x4f, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0b, 0xff, 0xff, 0xff, 0xfa, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xff, 0xff, 0xfb, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x7a, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe7, 0x09, 0xff, 0xff, 0xf7, 0x07, 0xff, 0xff, 0xfa, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x12, 0x35, 0x77, 0x78, 0x87, 0x65, 0x44, 0x20, 0x00, 0x00, 0x00, 0x00, 0x08, 0xff, 0xff, 0x80, 0x00, 0x00, 0x0d, 0xff, 0x10, 0x00, 0x00, 0x00, 0x00, 0x08, 0xff, 0xff, 0xff, 0xfd, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4e, 0xff, 0xfe, 0x71, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x8d, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfb, 0x30, 0x4f, 0xff, 0xff, 0xf5, 0x00, 0x8f, 0xff, 0xff, 0x90, 0x00, 0x00, 0x00, 0x00, 0x35, 0x78, 0xcd, 0xef, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xda, 0x98, 0x52, 0x00, 0x06, 0xff, 0xff, 0xe0, 0x00, 0x00, 0x08, 0xff, 0x30, 0x00, 0x00, 0x00, 0x00, 0x05, 0xff, 0xff, 0xff, 0xfe, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xef, 0xff, 0xc3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x71, 0x00, 0xaf, 0xff, 0xff, 0xe1, 0x00, 0x2f, 0xff, 0xff, 0xf2, 0x00, 0x00, 0x37, 0xbe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf9, 0x65, 0xff, 0xff, 0xf5, 0x00, 0x00, 0x08, 0xff, 0x40, 0x00, 0x00, 0x00, 0x00, 0x01, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a, 0xff, 0xf9, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x58, 0xcf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfb, 0x71, 0x00, 0x02, 0xef, 0xff, 0xff, 0xb0, 0x00, 0x3f, 0xff, 0xff, 0xf5, 0x00, 0x5c, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf9, 0x00, 0x00, 0x05, 0xff, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0xef, 0xff, 0xff, 0xff, 0x10, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5f, 0xfe, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x56, 0x89, 0xbc, 0xca, 0x84, 0x10, 0x00, 0x00, 0x08, 0xff, 0xff, 0xff, 0x80, 0x00, 0x7f, 0xff, 0xff, 0xf4, 0x01, 0x89, 0xab, 0xbc, 0xde, 0xef, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00, 0x00, 0x01, 0xff, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0xcf, 0xff, 0xff, 0xff, 0x30, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xcf, 0xe5, 0x00, 0x00, 0x00, 0x00, 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, 0xff, 0xff, 0xff, 0x40, 0x00, 0x9f, 0xff, 0xff, 0xe2, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x22, 0x35, 0x68, 0xbd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x60, 0x00, 0x00, 0xdf, 0xa0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8f, 0xff, 0xff, 0xff, 0x40, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0xfc, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xff, 0xff, 0xfe, 0x00, 0x00, 0xdf, 0xff, 0xff, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x7a, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x80, 0x00, 0x00, 0x6f, 0xa0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8f, 0xff, 0xff, 0xff, 0x40, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0b, 0xb1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0xff, 0xff, 0xfa, 0x00, 0x03, 0xff, 0xff, 0xfe, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x58, 0xcf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xb0, 0x00, 0x00, 0x1f, 0xd0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5f, 0xff, 0xff, 0xff, 0x50, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xaf, 0xff, 0xff, 0xf6, 0x00, 0x08, 0xff, 0xff, 0xf5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x7d, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x00, 0x00, 0x0d, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4f, 0xff, 0xff, 0xff, 0x60, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xff, 0xff, 0xff, 0xf2, 0x00, 0x0b, 0xff, 0xff, 0xa0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5a, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf3, 0x00, 0x00, 0x08, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xff, 0xff, 0xff, 0x60, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x23, 0x55, 0x78, 0xcf, 0xff, 0xff, 0xff, 0xc0, 0x00, 0x5f, 0xff, 0xff, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3d, 0xff, 0xff, 0xff, 0xff, 0xf7, 0x00, 0x00, 0x05, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xff, 0xff, 0xff, 0x60, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x88, 0x88, 0x88, 0x89, 0x99, 0x99, 0x99, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xab, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xcc, 0xcc, 0xcc, 0xcc, 0xcd, 0xdd, 0xdd, 0xee, 0xef, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfb, 0xbc, 0xef, 0xff, 0xff, 0xff, 0xdd, 0xcc, 0xcb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbc, 0xcc, 0xcc, 0xcc, 0xff, 0xff, 0xff, 0xff, 0xfa, 0x00, 0x00, 0x00, 0xe1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0d, 0xff, 0xff, 0xff, 0x60, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x01, 0x8c, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfa, 0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0xff, 0xff, 0xff, 0x50, 0x00, 0x00, + 0x00, 0x00, 0x01, 0x8e, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a, 0xff, 0xff, 0xff, 0x50, 0x00, 0x00, + 0x00, 0x00, 0x4c, 0xff, 0xff, 0xfb, 0xa9, 0x98, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x76, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x78, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x9f, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xa8, 0x77, 0x76, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x77, 0x88, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfd, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0xff, 0xff, 0xff, 0x40, 0x00, 0x00, + 0x00, 0x06, 0xef, 0xff, 0xe8, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0xff, 0xff, 0xff, 0xff, 0x71, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xcf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0xff, 0xff, 0xff, 0x40, 0x00, 0x00, + 0x00, 0x6e, 0xff, 0xfb, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0b, 0xff, 0xff, 0xff, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1b, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0xff, 0xff, 0xff, 0x30, 0x00, 0x00, + 0x03, 0xef, 0xfe, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0b, 0xff, 0xff, 0xff, 0xf5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0xff, 0xff, 0xff, 0x20, 0x00, 0x00, + 0x0b, 0xff, 0xf7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0xff, 0xff, 0xff, 0xf2, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfd, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0xff, 0xff, 0xff, 0x20, 0x00, 0x00, + 0x5f, 0xff, 0x90, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, 0xff, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xb8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0xff, 0xff, 0xff, 0x20, 0x00, 0x00, + 0xaf, 0xfe, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x68, 0x9b, 0xba, 0x85, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14, 0x89, 0xba, 0xa9, 0x83, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, 0xff, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00, 0x01, 0x48, 0xa8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xa0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, + 0xff, 0xf9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0xae, 0xff, 0xff, 0xff, 0xff, 0xfa, 0x20, 0x00, 0x00, 0x00, 0x18, 0xef, 0xff, 0xff, 0xff, 0xff, 0xe7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0xff, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00, 0x1a, 0xff, 0xff, 0xb0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x90, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0xff, 0xff, 0xfd, 0x00, 0x00, 0x00, + 0xff, 0xf3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x9f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x00, 0x00, 0x07, 0xef, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xd4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0b, 0xff, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00, 0x5f, 0xff, 0xff, 0xf6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x90, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0xff, 0xff, 0xfc, 0x00, 0x00, 0x00, + 0xff, 0xf2, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4e, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc3, 0x01, 0x8f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0b, 0xff, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00, 0x9f, 0xff, 0xff, 0xfa, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x90, 0x00, 0x00, 0x01, 0x47, 0x20, 0x00, 0x00, 0x00, 0x00, 0x04, 0xff, 0xff, 0xfb, 0x00, 0x00, 0x00, + 0xff, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0xef, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x3a, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0b, 0xff, 0xff, 0xff, 0xc0, 0x00, 0x00, 0x00, 0x9f, 0xff, 0xff, 0xfd, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xef, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x90, 0x00, 0x02, 0x8d, 0xff, 0xd0, 0x00, 0x00, 0x00, 0x00, 0x04, 0xff, 0xff, 0xf9, 0x50, 0x00, 0x00, + 0xff, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3e, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xef, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0b, 0xff, 0xff, 0xff, 0xc0, 0x00, 0x00, 0x00, 0x9f, 0xff, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2c, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x90, 0x04, 0xce, 0xff, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x04, 0xff, 0xff, 0xf8, 0xd6, 0x00, 0x00, + 0xff, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x01, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0b, 0xff, 0xff, 0xff, 0xc0, 0x00, 0x00, 0x00, 0x9f, 0xff, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xcf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xa1, 0x8e, 0xff, 0xff, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x04, 0xff, 0xff, 0xf7, 0xfe, 0x20, 0x00, + 0xff, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x08, 0xff, 0xff, 0xff, 0xff, 0xff, 0xda, 0xbb, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xaa, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0b, 0xff, 0xff, 0xff, 0xc0, 0x00, 0x00, 0x00, 0x9f, 0xff, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xda, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x04, 0xff, 0xff, 0xf7, 0xff, 0x80, 0x00, + 0xff, 0xd0, 0x00, 0x00, 0x00, 0x00, 0x1d, 0xff, 0xff, 0xff, 0xff, 0xb3, 0x00, 0x00, 0x38, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf9, 0x31, 0x00, 0x00, 0x7f, 0xff, 0xff, 0xff, 0xff, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0b, 0xff, 0xff, 0xff, 0xc0, 0x00, 0x00, 0x00, 0x35, 0x55, 0x55, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfb, 0xef, 0xff, 0xff, 0xff, 0xf1, 0x00, 0x00, 0x00, 0x00, 0x04, 0xff, 0xff, 0xf8, 0xff, 0xe0, 0x00, + 0xff, 0xd0, 0x00, 0x00, 0x00, 0x00, 0x6f, 0xff, 0xff, 0xff, 0xe6, 0x00, 0x00, 0x00, 0x00, 0x4f, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x70, 0x00, 0x00, 0x00, 0x03, 0xef, 0xff, 0xff, 0xff, 0x90, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0b, 0xff, 0xff, 0xff, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xd0, 0x05, 0xff, 0xff, 0xff, 0xf1, 0x00, 0x00, 0x00, 0x00, 0x04, 0xff, 0xff, 0xfa, 0xff, 0xf6, 0x00, + 0xff, 0xd0, 0x00, 0x00, 0x00, 0x00, 0xaf, 0xff, 0xff, 0xff, 0x70, 0x00, 0x00, 0x00, 0x00, 0x06, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4f, 0xff, 0xff, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x34, 0x44, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x34, 0x44, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0b, 0xff, 0xff, 0xff, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x13, 0x35, 0x44, 0x20, 0x00, 0x00, 0x8f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xb0, 0x00, 0x9f, 0xff, 0xff, 0xf2, 0x00, 0x00, 0x00, 0x00, 0x04, 0xff, 0xff, 0xda, 0xff, 0xfd, 0x00, + 0xff, 0xd0, 0x00, 0x00, 0x00, 0x00, 0xdf, 0xff, 0xff, 0xfd, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0xcf, 0xff, 0xff, 0xff, 0xe1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a, 0xff, 0xff, 0xff, 0xf3, 0x00, 0x00, 0x00, 0x00, 0x01, 0x49, 0xef, 0xff, 0xff, 0xff, 0xa4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x17, 0xcf, 0xff, 0xff, 0xff, 0xc8, 0x20, 0x00, 0x00, 0x00, 0x0b, 0xff, 0xff, 0xff, 0xc0, 0x00, 0x00, 0x00, 0x68, 0x88, 0x88, 0x88, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x4a, 0xef, 0xff, 0xff, 0xff, 0xa6, 0x00, 0x08, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xb0, 0x00, 0x5f, 0xff, 0xff, 0xf3, 0x00, 0x00, 0x00, 0x00, 0x04, 0xff, 0xff, 0xad, 0xff, 0xff, 0x20, + 0xff, 0xd0, 0x00, 0x00, 0x00, 0x00, 0xef, 0xff, 0xff, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6f, 0xff, 0xff, 0xff, 0xb0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xff, 0xff, 0xf7, 0x00, 0x00, 0x00, 0x00, 0x5c, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0xef, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x00, 0x00, 0x00, 0x0b, 0xff, 0xff, 0xff, 0xc0, 0x00, 0x00, 0x00, 0x9f, 0xff, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4c, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc5, 0x00, 0x6f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xa0, 0x00, 0x09, 0xff, 0xff, 0xf3, 0x00, 0x00, 0x00, 0x00, 0x04, 0xff, 0xff, 0x8d, 0xff, 0x47, 0x60, + 0xff, 0xd0, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4f, 0xff, 0xff, 0xff, 0x90, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xff, 0xff, 0xf7, 0x00, 0x00, 0x00, 0x19, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xb1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xcf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe3, 0x00, 0x00, 0x0b, 0xff, 0xff, 0xff, 0xc0, 0x00, 0x00, 0x00, 0x9f, 0xff, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0xef, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x70, 0x04, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xa0, 0x00, 0x05, 0xff, 0xff, 0xf4, 0x00, 0x00, 0x00, 0x00, 0x05, 0xff, 0xff, 0x5f, 0xfe, 0x00, 0x00, + 0xff, 0xc0, 0x00, 0x00, 0x00, 0x01, 0xff, 0xff, 0xff, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4f, 0xff, 0xff, 0xff, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xff, 0xff, 0xf8, 0x00, 0x00, 0x01, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3d, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x40, 0x00, 0x0b, 0xff, 0xff, 0xff, 0xc0, 0x00, 0x00, 0x00, 0x9f, 0xff, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x01, 0xaf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x00, 0x4f, 0xff, 0xff, 0xff, 0xff, 0xff, 0x90, 0x00, 0x01, 0xff, 0xff, 0xf7, 0x00, 0x00, 0x00, 0x00, 0x05, 0xff, 0xff, 0x3f, 0xfc, 0x00, 0x00, + 0xff, 0xc0, 0x00, 0x00, 0x00, 0x02, 0xff, 0xff, 0xff, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4f, 0xff, 0xff, 0xff, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xff, 0xff, 0xf8, 0x00, 0x00, 0x1b, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xef, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe2, 0x00, 0x0b, 0xff, 0xff, 0xff, 0xc0, 0x00, 0x00, 0x00, 0x9f, 0xff, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x08, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x50, 0x03, 0xef, 0xff, 0xff, 0xff, 0xff, 0x90, 0x00, 0x00, 0xef, 0xff, 0xf7, 0x00, 0x00, 0x00, 0x00, 0x05, 0xff, 0xfe, 0x3f, 0xf9, 0x00, 0x00, + 0xff, 0xc0, 0x00, 0x00, 0x00, 0x02, 0xff, 0xff, 0xff, 0xf7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xff, 0xff, 0xff, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xff, 0xff, 0xf8, 0x00, 0x00, 0x8f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfd, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfb, 0x00, 0x0b, 0xff, 0xff, 0xff, 0xc0, 0x00, 0x00, 0x00, 0x9f, 0xff, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x6f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe2, 0x00, 0x3e, 0xff, 0xff, 0xff, 0xff, 0x90, 0x00, 0x00, 0x5f, 0xff, 0xfa, 0x00, 0x00, 0x00, 0x00, 0x06, 0xff, 0xfb, 0x3f, 0xf8, 0x00, 0x00, + 0xff, 0xc0, 0x00, 0x00, 0x00, 0x02, 0xff, 0xff, 0xff, 0xf7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xff, 0xff, 0xff, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xff, 0xff, 0xf8, 0x00, 0x06, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xa0, 0x00, 0x00, 0x00, 0x00, 0x5f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x30, 0x0b, 0xff, 0xff, 0xff, 0xd0, 0x00, 0x00, 0x00, 0x9f, 0xff, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x00, 0xcf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf9, 0x00, 0x01, 0xcf, 0xff, 0xff, 0xff, 0x90, 0x00, 0x00, 0x0a, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x06, 0xff, 0xf8, 0x4f, 0xf5, 0x00, 0x00, + 0xff, 0xc0, 0x00, 0x00, 0x00, 0x02, 0xff, 0xff, 0xff, 0xf7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xff, 0xff, 0xff, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xff, 0xff, 0xf8, 0x00, 0x1e, 0xff, 0xff, 0xff, 0xff, 0xe8, 0x43, 0x23, 0x7d, 0xff, 0xff, 0xff, 0xff, 0xf5, 0x00, 0x00, 0x00, 0x00, 0xaf, 0xff, 0xff, 0xff, 0xfe, 0x73, 0x32, 0x7d, 0xff, 0xff, 0xff, 0xff, 0x90, 0x0b, 0xff, 0xff, 0xff, 0xd0, 0x00, 0x00, 0x00, 0x9f, 0xff, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x05, 0xff, 0xff, 0xff, 0xff, 0xe8, 0x33, 0x35, 0x8f, 0xff, 0xff, 0xff, 0xfe, 0x00, 0x00, 0x1c, 0xff, 0xff, 0xff, 0x90, 0x00, 0x00, 0x08, 0xff, 0xff, 0x10, 0x00, 0x00, 0x00, 0x06, 0xff, 0xf5, 0x4f, 0xf4, 0x00, 0x00, + 0xff, 0xc0, 0x00, 0x00, 0x00, 0x02, 0xff, 0xff, 0xff, 0xf7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xff, 0xff, 0xff, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xff, 0xff, 0xf8, 0x00, 0x7f, 0xff, 0xff, 0xff, 0xfc, 0x40, 0x00, 0x00, 0x00, 0x8f, 0xff, 0xff, 0xff, 0xfa, 0x00, 0x00, 0x00, 0x01, 0xff, 0xff, 0xff, 0xff, 0xa2, 0x00, 0x00, 0x00, 0xbf, 0xff, 0xff, 0xff, 0xe0, 0x0b, 0xff, 0xff, 0xff, 0xd0, 0x00, 0x00, 0x00, 0x9f, 0xff, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x0b, 0xff, 0xff, 0xff, 0xfd, 0x20, 0x00, 0x00, 0x03, 0xff, 0xff, 0xff, 0xff, 0x60, 0x00, 0x00, 0xbf, 0xff, 0xff, 0x90, 0x00, 0x00, 0x09, 0xff, 0xff, 0x40, 0x00, 0x00, 0x00, 0x07, 0xff, 0xf2, 0x4f, 0xf2, 0x00, 0x00, + 0xff, 0xc0, 0x00, 0x00, 0x00, 0x02, 0xff, 0xff, 0xff, 0xf7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xff, 0xff, 0xff, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xff, 0xff, 0xf8, 0x00, 0xbf, 0xff, 0xff, 0xff, 0xd1, 0x00, 0x00, 0x00, 0x00, 0x08, 0xff, 0xff, 0xff, 0xff, 0x20, 0x00, 0x00, 0x05, 0xff, 0xff, 0xff, 0xfa, 0x10, 0x00, 0x00, 0x00, 0x0c, 0xff, 0xff, 0xff, 0xf2, 0x0b, 0xff, 0xff, 0xff, 0xd0, 0x00, 0x00, 0x00, 0x9f, 0xff, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x1f, 0xff, 0xff, 0xff, 0xf3, 0x00, 0x00, 0x00, 0x00, 0x8f, 0xff, 0xff, 0xff, 0xa0, 0x00, 0x00, 0x0c, 0xff, 0xff, 0x90, 0x00, 0x00, 0x07, 0xff, 0xff, 0x90, 0x00, 0x00, 0x00, 0x07, 0xff, 0xe0, 0x1f, 0xf3, 0x00, 0x00, + 0xff, 0xc0, 0x00, 0x00, 0x00, 0x03, 0xff, 0xff, 0xff, 0xf7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xff, 0xff, 0xff, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xff, 0xff, 0xf8, 0x03, 0xff, 0xff, 0xff, 0xfe, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0xbf, 0xff, 0xff, 0xff, 0x70, 0x00, 0x00, 0x07, 0xff, 0xff, 0xff, 0xf5, 0x00, 0x00, 0x00, 0x00, 0x06, 0xff, 0xff, 0xff, 0xf4, 0x0b, 0xff, 0xff, 0xff, 0xd0, 0x00, 0x00, 0x00, 0x9f, 0xff, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x3f, 0xff, 0xff, 0xff, 0xa0, 0x00, 0x00, 0x00, 0x00, 0x1d, 0xff, 0xff, 0xff, 0xb0, 0x00, 0x00, 0x01, 0xdf, 0xff, 0x90, 0x00, 0x00, 0x00, 0x7f, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x08, 0xff, 0xc0, 0x0d, 0xf8, 0x00, 0x00, + 0xff, 0xc0, 0x00, 0x00, 0x00, 0x03, 0xff, 0xff, 0xff, 0xf7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xff, 0xff, 0xff, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xff, 0xff, 0xf8, 0x07, 0xff, 0xff, 0xff, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xff, 0xff, 0xff, 0xe0, 0x00, 0x00, 0x08, 0xff, 0xff, 0xff, 0xf2, 0x00, 0x00, 0x00, 0x00, 0x01, 0xff, 0xff, 0xff, 0xf7, 0x0b, 0xff, 0xff, 0xff, 0xd0, 0x00, 0x00, 0x00, 0x9f, 0xff, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x4f, 0xff, 0xff, 0xff, 0x50, 0x00, 0x00, 0x00, 0x00, 0x0b, 0xff, 0xff, 0xff, 0xd0, 0x00, 0x00, 0x00, 0x6f, 0xff, 0x90, 0x00, 0x00, 0x00, 0x0a, 0xff, 0xf2, 0x00, 0x00, 0x00, 0x0a, 0xff, 0x90, 0x04, 0xfe, 0x00, 0x00, + 0xff, 0xc0, 0x00, 0x00, 0x00, 0x03, 0xff, 0xff, 0xff, 0xf7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xff, 0xff, 0xff, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xff, 0xff, 0xff, 0xf8, 0x08, 0xff, 0xff, 0xff, 0xf2, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0xff, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x09, 0xff, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x01, 0xff, 0xff, 0xff, 0xf8, 0x0b, 0xff, 0xff, 0xff, 0xd0, 0x00, 0x00, 0x00, 0x9f, 0xff, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x4f, 0xff, 0xff, 0xff, 0x40, 0x00, 0x00, 0x00, 0x00, 0x0b, 0xff, 0xff, 0xff, 0xd0, 0x00, 0x00, 0x00, 0x1f, 0xff, 0x90, 0x00, 0x00, 0x00, 0x01, 0xdf, 0xf9, 0x00, 0x00, 0x00, 0x0b, 0xff, 0x60, 0x00, 0x9f, 0x80, 0x00, + 0xff, 0xc0, 0x00, 0x00, 0x00, 0x03, 0xff, 0xff, 0xff, 0xf7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xff, 0xff, 0xff, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xff, 0xff, 0xff, 0xf8, 0x09, 0xff, 0xff, 0xff, 0xd0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xff, 0xff, 0xff, 0xf1, 0x00, 0x00, 0x09, 0xff, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0xef, 0xff, 0xff, 0xf8, 0x0b, 0xff, 0xff, 0xff, 0xd0, 0x00, 0x00, 0x00, 0x9f, 0xff, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x5f, 0xff, 0xff, 0xff, 0x30, 0x00, 0x00, 0x00, 0x00, 0x0b, 0xff, 0xff, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x0e, 0xff, 0x90, 0x00, 0x00, 0x00, 0x00, 0x4f, 0xfe, 0x00, 0x00, 0x00, 0x0d, 0xff, 0x50, 0x00, 0x0c, 0xe2, 0x00, + 0xff, 0xc0, 0x00, 0x00, 0x00, 0x03, 0xff, 0xff, 0xff, 0xf7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xff, 0xff, 0xff, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xff, 0xff, 0xff, 0xf8, 0x0a, 0xff, 0xff, 0xff, 0xd0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xff, 0xff, 0xff, 0xf3, 0x00, 0x00, 0x09, 0xff, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x22, 0x22, 0x22, 0x22, 0x0b, 0xff, 0xff, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x9f, 0xff, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x6f, 0xff, 0xff, 0xff, 0x30, 0x00, 0x00, 0x00, 0x00, 0x0b, 0xff, 0xff, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x0c, 0xff, 0x90, 0x00, 0x00, 0x00, 0x00, 0x07, 0xff, 0x80, 0x00, 0x00, 0x0f, 0xff, 0x10, 0x00, 0x01, 0xda, 0x00, + 0xff, 0xc0, 0x00, 0x00, 0x00, 0x03, 0xff, 0xff, 0xff, 0xf6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xff, 0xff, 0xff, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xff, 0xff, 0xff, 0xf8, 0x0b, 0xff, 0xff, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xff, 0xff, 0xff, 0xf3, 0x00, 0x00, 0x09, 0xff, 0xff, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a, 0xff, 0xff, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x9f, 0xff, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x6f, 0xff, 0xff, 0xff, 0x20, 0x00, 0x00, 0x00, 0x00, 0x0b, 0xff, 0xff, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x0c, 0xff, 0x90, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9f, 0xf2, 0x00, 0x00, 0x2f, 0xfc, 0x00, 0x00, 0x00, 0x3e, 0x50, + 0xff, 0xd0, 0x00, 0x00, 0x00, 0x03, 0xff, 0xff, 0xff, 0xf6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xff, 0xff, 0xff, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xff, 0xff, 0xff, 0xf8, 0x0b, 0xff, 0xff, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xff, 0xff, 0xff, 0xf3, 0x00, 0x00, 0x0a, 0xff, 0xff, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a, 0xff, 0xff, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x9f, 0xff, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x6f, 0xff, 0xff, 0xff, 0x20, 0x00, 0x00, 0x00, 0x00, 0x0b, 0xff, 0xff, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x0c, 0xff, 0x90, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0xfb, 0x00, 0x00, 0x3f, 0xf8, 0x00, 0x00, 0x00, 0x03, 0xd2, + 0xff, 0xd0, 0x00, 0x00, 0x00, 0x03, 0xff, 0xff, 0xff, 0xf6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xff, 0xff, 0xff, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xff, 0xff, 0xff, 0xf8, 0x08, 0xff, 0xff, 0xff, 0xf6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0xff, 0xff, 0xff, 0xf3, 0x00, 0x00, 0x0a, 0xff, 0xff, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a, 0xff, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00, 0x9f, 0xff, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x7f, 0xff, 0xff, 0xff, 0x20, 0x00, 0x00, 0x00, 0x00, 0x0b, 0xff, 0xff, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x0c, 0xff, 0x90, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5f, 0x50, 0x00, 0x5f, 0xf5, 0x00, 0x00, 0x00, 0x00, 0x11, + 0xff, 0xd0, 0x00, 0x00, 0x00, 0x03, 0xff, 0xff, 0xff, 0xf6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xff, 0xff, 0xff, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xff, 0xff, 0xff, 0xf8, 0x06, 0xff, 0xff, 0xff, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0xff, 0xff, 0xff, 0xf3, 0x00, 0x00, 0x0a, 0xff, 0xff, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0xff, 0xff, 0xff, 0xf1, 0x00, 0x00, 0x00, 0x9f, 0xff, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x7f, 0xff, 0xff, 0xff, 0x20, 0x00, 0x00, 0x00, 0x00, 0x0b, 0xff, 0xff, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x0d, 0xff, 0x90, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x90, 0x00, 0x7f, 0xf2, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xff, 0xd0, 0x00, 0x00, 0x00, 0x02, 0xff, 0xff, 0xff, 0xf6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2f, 0xff, 0xff, 0xff, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xff, 0xff, 0xff, 0xf8, 0x01, 0xff, 0xff, 0xff, 0xff, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0xff, 0xff, 0xff, 0xf3, 0x00, 0x00, 0x0a, 0xff, 0xff, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0xff, 0xff, 0xff, 0xf3, 0x00, 0x00, 0x00, 0x9f, 0xff, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x7f, 0xff, 0xff, 0xff, 0x20, 0x00, 0x00, 0x00, 0x00, 0x0b, 0xff, 0xff, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x0d, 0xff, 0x90, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8f, 0xd0, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xff, 0xd0, 0x00, 0x00, 0x00, 0x02, 0xff, 0xff, 0xff, 0xf6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2f, 0xff, 0xff, 0xff, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xff, 0xff, 0xff, 0xf8, 0x00, 0xbf, 0xff, 0xff, 0xff, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0xff, 0xff, 0xff, 0xf3, 0x00, 0x00, 0x0a, 0xff, 0xff, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0xff, 0xff, 0xff, 0xf7, 0x00, 0x00, 0x00, 0x9f, 0xff, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x7f, 0xff, 0xff, 0xff, 0x20, 0x00, 0x00, 0x00, 0x00, 0x0b, 0xff, 0xff, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x0d, 0xff, 0x90, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xaf, 0xa0, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xff, 0xe0, 0x00, 0x00, 0x00, 0x02, 0xff, 0xff, 0xff, 0xf6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2f, 0xff, 0xff, 0xff, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xff, 0xff, 0xff, 0xf8, 0x00, 0x4f, 0xff, 0xff, 0xff, 0xff, 0xc6, 0x00, 0x00, 0x00, 0x00, 0x06, 0xff, 0xff, 0xff, 0xf3, 0x00, 0x00, 0x0a, 0xff, 0xff, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xff, 0xff, 0xfe, 0x50, 0x00, 0x00, 0x9f, 0xff, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x7f, 0xff, 0xff, 0xff, 0x20, 0x00, 0x00, 0x00, 0x00, 0x0b, 0xff, 0xff, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x0d, 0xff, 0x90, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xaf, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xff, 0xe0, 0x00, 0x00, 0x00, 0x02, 0xff, 0xff, 0xff, 0xf6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2f, 0xff, 0xff, 0xff, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xff, 0xff, 0xff, 0xf8, 0x00, 0x0c, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xba, 0xa9, 0x80, 0x06, 0xff, 0xff, 0xff, 0xf9, 0x88, 0x88, 0x8c, 0xff, 0xff, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xdf, 0xff, 0xff, 0xff, 0xf9, 0x84, 0x10, 0x9f, 0xff, 0xff, 0xfe, 0x66, 0x66, 0x66, 0xaf, 0xff, 0xff, 0xff, 0x20, 0x00, 0x00, 0x00, 0x00, 0x0b, 0xff, 0xff, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x0d, 0xff, 0x90, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xdf, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xff, 0xe0, 0x00, 0x00, 0x00, 0x02, 0xff, 0xff, 0xff, 0xf6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2f, 0xff, 0xff, 0xff, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xff, 0xff, 0xff, 0xf8, 0x00, 0x02, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x06, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0x60, 0x9f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x20, 0x00, 0x00, 0x00, 0x00, 0x0b, 0xff, 0xff, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x0d, 0xff, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xff, 0xe0, 0x00, 0x00, 0x00, 0x02, 0xff, 0xff, 0xff, 0xf6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2f, 0xff, 0xff, 0xff, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xff, 0xff, 0xff, 0xf8, 0x00, 0x00, 0x5f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x06, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0x60, 0x9f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x20, 0x00, 0x00, 0x00, 0x00, 0x0b, 0xff, 0xff, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x0e, 0xff, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xff, 0xf0, 0x00, 0x00, 0x00, 0x02, 0xff, 0xff, 0xff, 0xf6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2f, 0xff, 0xff, 0xff, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xff, 0xff, 0xff, 0xf8, 0x00, 0x00, 0x08, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x05, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0xff, 0xff, 0xff, 0xff, 0xff, 0x70, 0x9f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x20, 0x00, 0x00, 0x00, 0x00, 0x0b, 0xff, 0xff, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x0e, 0xff, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xf4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xff, 0xf1, 0x00, 0x00, 0x00, 0x02, 0xff, 0xff, 0xff, 0xf6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2f, 0xff, 0xff, 0xff, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xf8, 0x00, 0x00, 0x00, 0x6f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x05, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9f, 0xff, 0xff, 0xff, 0xff, 0x70, 0x9f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x20, 0x00, 0x00, 0x00, 0x00, 0x0b, 0xff, 0xff, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x0f, 0xff, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0xa0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xff, 0xf1, 0x00, 0x00, 0x00, 0x01, 0xff, 0xff, 0xff, 0xf6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2f, 0xff, 0xff, 0xff, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xf8, 0x00, 0x00, 0x00, 0x03, 0xcf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x05, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0xff, 0xff, 0xff, 0xff, 0x70, 0x9f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x20, 0x00, 0x00, 0x00, 0x00, 0x0b, 0xff, 0xff, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x3f, 0xff, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xff, 0xf6, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xf6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2f, 0xff, 0xff, 0xff, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x05, 0x9f, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x05, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x29, 0xff, 0xff, 0xff, 0x70, 0x9f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x20, 0x00, 0x00, 0x00, 0x00, 0x0b, 0xff, 0xff, 0xff, 0xd0, 0x00, 0x00, 0x00, 0x5f, 0xff, 0x30, 0x28, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xff, 0xfb, 0x00, 0x00, 0x00, 0x00, 0x69, 0xaa, 0xaa, 0xa5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1a, 0xaa, 0xaa, 0xaa, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x99, 0x99, 0x99, 0x96, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x58, 0x89, 0x9a, 0xaa, 0x90, 0x03, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0x90, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x15, 0x78, 0xaa, 0x60, 0x6a, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0x20, 0x00, 0x00, 0x00, 0x00, 0x08, 0xaa, 0xaa, 0xa8, 0x30, 0x00, 0x00, 0x00, 0xbf, 0xfc, 0x08, 0xef, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x8f, 0xff, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xff, 0xf6, 0x3f, 0xfd, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x1f, 0xff, 0xe1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3e, 0xff, 0xd1, 0x4f, 0xfa, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x07, 0xff, 0xfc, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xcf, 0xff, 0x60, 0x6f, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xbf, 0xff, 0xc2, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4d, 0xff, 0xf8, 0x00, 0x6f, 0xf5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x0a, 0xff, 0xff, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0xff, 0xff, 0x90, 0x00, 0x6f, 0xf2, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x9f, 0xff, 0xfd, 0x88, 0x64, 0x44, 0x33, 0x22, 0x22, 0x21, 0x11, 0x11, 0x11, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x11, 0x11, 0x11, 0x11, 0x12, 0x22, 0x22, 0x33, 0x45, 0x56, 0x79, 0xef, 0xff, 0xf8, 0x10, 0x00, 0x6f, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x50, 0x00, 0x00, 0x7f, 0xb0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x19, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x82, 0x00, 0x00, 0x00, 0x8f, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9f, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x38, 0xbd, 0xef, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfb, 0x71, 0x00, 0x00, 0x00, 0x04, 0xef, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xaf, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x11, 0x12, 0x22, 0x22, 0x22, 0x22, 0x22, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x45, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x66, 0x66, 0x66, 0x77, 0x78, 0x88, 0x89, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xbb, 0xbb, 0xbb, 0xbc, 0xdf, 0xff, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xbf, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x8e, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xcf, 0xa0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xdf, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xef, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xcf, 0xf1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x9f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xec, 0xca, 0x98, 0x88, 0x77, 0x77, 0x77, 0x88, 0x9a, 0xbd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xcf, 0xf6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfd, 0xb9, 0x86, 0x43, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x56, 0x8c, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf2, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xbf, 0xf9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0xef, 0xff, 0xff, 0xff, 0xff, 0xca, 0x73, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x7b, 0xff, 0xff, 0xff, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xaf, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0xff, 0xff, 0xff, 0xfb, 0x83, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x8c, 0xff, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8f, 0xff, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0xff, 0xff, 0xff, 0xd8, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8f, 0xff, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8f, 0xff, 0xff, 0xb4, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5f, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0xff, 0xfe, 0x83, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xff, 0xf2, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8f, 0xfe, 0xa2, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xff, 0xf7, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xff, 0xb3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0xff, 0xfa, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0xe5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a, 0xff, 0xff, 0x20, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0xe9, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0xff, 0xff, 0x70, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2d, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0xff, 0xff, 0xa0, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x82, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xea, 0x98, 0x42, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xff, 0xff, 0xf2, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0xff, 0xff, 0xff, 0xc8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xcf, 0xff, 0xf7, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0xff, 0xff, 0xff, 0xfa, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8f, 0xff, 0xfa, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xdf, 0xff, 0xff, 0xff, 0xfc, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2f, 0xff, 0xff, 0x20, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xa7, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, 0xff, 0xff, 0x70, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfb, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0b, 0xff, 0xff, 0xb0, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0b, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x30, 0x00, 0x00, 0x00, 0x00, 0x08, 0xff, 0xff, 0xf2, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6d, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf7, 0x00, 0x00, 0x00, 0x00, 0x05, 0xff, 0xff, 0xf7, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xb0, 0x00, 0x00, 0x00, 0x01, 0xff, 0xff, 0xfe, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x10, 0x00, 0x00, 0x00, 0xbf, 0xff, 0xff, 0x20, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc1, 0x00, 0x00, 0x00, 0x8f, 0xff, 0xff, 0x90, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x8d, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x10, 0x00, 0x00, 0x5f, 0xff, 0xff, 0xe0, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6d, 0xff, 0xff, 0xff, 0xff, 0xff, 0xb0, 0x00, 0x00, 0x1f, 0xff, 0xff, 0xf2, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xf9, 0x00, 0x00, 0x0d, 0xff, 0xff, 0xf8, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xef, 0xff, 0xff, 0xff, 0xff, 0x50, 0x00, 0x08, 0xff, 0xff, 0xfe, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2d, 0xff, 0xff, 0xff, 0xff, 0xe2, 0x00, 0x05, 0xff, 0xff, 0xff, 0x20, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xcf, 0xff, 0xff, 0xff, 0xfb, 0x00, 0x03, 0xff, 0xff, 0xff, 0x80, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, 0xff, 0xff, 0xff, 0xff, 0x60, 0x01, 0xff, 0xff, 0xff, 0xe0, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xff, 0xff, 0xff, 0xff, 0xe2, 0x00, 0xdf, 0xff, 0xff, 0xf2, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4f, 0xff, 0xff, 0xff, 0xfa, 0x00, 0xbf, 0xff, 0xff, 0xf7, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0xff, 0xff, 0xff, 0xff, 0x30, 0x8f, 0xff, 0xff, 0xfa, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xcf, 0xff, 0xff, 0xff, 0xc0, 0x8f, 0xff, 0xff, 0xfe, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4f, 0xff, 0xff, 0xff, 0xf5, 0x5f, 0xff, 0xff, 0xff, 0x20, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a, 0xff, 0xff, 0xff, 0xfe, 0x6f, 0xff, 0xff, 0xff, 0x60, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xff, 0xff, 0xff, 0xcf, 0xff, 0xff, 0xff, 0x80, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xd0, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf1, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf3, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xcf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf6, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf7, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf9, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfa, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfd, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfd, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfd, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xfe, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8f, 0xff, 0xff, 0xff, 0xff, 0xfe, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xfe, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0xff, 0xff, 0xff, 0xff, 0xfd, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xff, 0xff, 0xff, 0xff, 0xfc, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xff, 0xff, 0xff, 0xff, 0xfb, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xdf, 0xff, 0xff, 0xff, 0xfb, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8f, 0xff, 0xff, 0xff, 0xf8, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2f, 0xff, 0xff, 0xff, 0xf6, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0xff, 0xff, 0xff, 0xf5, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0xff, 0xff, 0xff, 0xf2, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0xff, 0xff, 0xff, 0xc0, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xff, 0xff, 0xff, 0x80, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xdf, 0xff, 0xff, 0x50, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8f, 0xff, 0xfe, 0x10, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6f, 0xff, 0xf9, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xff, 0xf4, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, 0xff, 0xc0, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0b, 0xff, 0x80, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0xfe, 0x20, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0xfa, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0xf4, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xc0, 0x00, 0x00 +}; + +#endif // HAS_GRAPHICAL_TFT diff --git a/Marlin/src/lcd/tft/images/bootscreen_320x240x16.cpp b/Marlin/src/lcd/tft/images/bootscreen_320x240x16.cpp new file mode 100644 index 000000000..199433a80 --- /dev/null +++ b/Marlin/src/lcd/tft/images/bootscreen_320x240x16.cpp @@ -0,0 +1,270 @@ +/** + * Marlin 3D Printer Firmware + * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin] + * + * Based on Sprinter and grbl. + * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + */ + +#include "../../../inc/MarlinConfigPre.h" + +#if HAS_GRAPHICAL_TFT + +extern const uint16_t marlin_logo_320x240x16[76800] = { + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ae, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ae, 0x18ad, 0x18ad, 0x0119, 0x011a, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x011a, 0x0119, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ce, 0x00f8, 0x0119, 0x0119, 0x0119, 0x0119, 0x08f7, 0x18ce, 0x18ad, 0x20ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x08d5, 0x011a, 0x0119, 0x10d2, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x28ee, 0x8252, 0xcb54, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x011a, 0x10d2, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ae, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18cd, 0x18cd, 0x18ae, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x08f5, 0x00f9, 0x0119, 0x00f7, 0x00f7, 0x0119, 0x0119, 0x08f5, 0x18ae, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x18ae, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x20ae, 0x08f5, 0x0119, 0x0119, 0x10d2, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x20ad, 0x394f, 0xb313, 0xd395, 0x7211, 0x18ad, 0x18ad, 0x20cd, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ae, 0x0119, 0x00f9, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ae, 0x18ae, 0x18ad, 0x011a, 0x0119, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x0119, 0x011a, 0x18cd, 0x20ad, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ae, 0x0119, 0x011a, 0x08f3, 0x18ad, 0x18ad, 0x08f4, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ae, 0x08f5, 0x0119, 0x00f9, 0x10d2, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x496f, 0xcb55, 0xd395, 0xbb54, 0x28ce, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ae, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x011a, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x20ad, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x10d2, 0x011a, 0x0119, 0x10d2, 0x18ad, 0x208d, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x00fa, 0x0119, 0x10d2, 0x20ad, 0x18ad, 0x20ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18af, 0x0119, 0x0119, 0x18d0, 0x18ad, 0x18ad, 0x10d0, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x08f5, 0x0119, 0x0119, 0x10d2, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x61d0, 0xd395, 0xd395, 0xd395, 0x69f1, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ce, 0x00f7, 0x0119, 0x00f9, 0x011a, 0x011a, 0x00f7, 0x18ce, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x10d2, 0x0119, 0x0119, 0x10d2, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x011a, 0x08f3, 0x18ad, 0x18ad, 0x10d3, 0x011a, 0x011a, 0x18ad, 0x18ae, 0x18ae, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x20ae, 0x08f5, 0x0119, 0x00f9, 0x10d2, 0x20ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x61d0, 0xd395, 0xd395, 0xd396, 0xd375, 0x310e, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ae, 0x18ad, 0x18ad, 0x20ad, 0x18cd, 0x011a, 0x00f9, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x18ae, 0x18ce, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ae, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x08f5, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x08f5, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x08d4, 0x0119, 0x0119, 0x10d2, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x08d5, 0x0119, 0x0119, 0x00f7, 0x0117, 0x0119, 0x0119, 0x08f5, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x08f5, 0x0119, 0x0119, 0x10d2, 0x20ad, 0x18cd, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x392f, 0xd395, 0xd396, 0xd395, 0xd395, 0xd395, 0x28ce, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x0119, 0x0119, 0x18cd, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x08f5, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x00f9, 0x0119, 0x18ae, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x011a, 0x18ae, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x08f5, 0x0119, 0x0119, 0x10d2, 0x20ad, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x10d2, 0x0119, 0x00f9, 0x10f2, 0x18ae, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x00f7, 0x011a, 0x0119, 0x0119, 0x0119, 0x00f7, 0x18ce, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x08f5, 0x0119, 0x0119, 0x10d2, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x20ae, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x310e, 0xcb55, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0x8252, 0x20ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x10d2, 0x0119, 0x0119, 0x10d2, 0x18ad, 0x18cd, 0x18ad, 0x20ad, 0x18ad, 0x18cd, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x10d2, 0x0119, 0x0119, 0x10d2, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x011a, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x20ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x0119, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ce, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x18ae, 0x18ae, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x0119, 0x0119, 0x10f2, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x20ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ae, 0x08f5, 0x0119, 0x00f9, 0x10d2, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ce, 0x00f7, 0x0119, 0x0119, 0x0119, 0x0119, 0x00f7, 0x18ce, 0x18ad, 0x18ae, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x10d2, 0x10d3, 0x08f3, 0x10d2, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x08f5, 0x011a, 0x00f9, 0x10d2, 0x18ae, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0xb314, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0x5190, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ce, 0x00f7, 0x0119, 0x0119, 0x011a, 0x011a, 0x00f7, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x20ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ce, 0x00f7, 0x0119, 0x011a, 0x0119, 0x0119, 0x00f7, 0x18ce, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x00f9, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x0119, 0x011a, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18af, 0x0119, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ae, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ee, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x20ae, 0x011a, 0x011a, 0x0119, 0x0119, 0x00f9, 0x0119, 0x011a, 0x00f9, 0x18ae, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x10f2, 0x0119, 0x0119, 0x08f5, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x08f5, 0x0119, 0x0119, 0x10d2, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x08f5, 0x011a, 0x0119, 0x011a, 0x0119, 0x0119, 0x011a, 0x08d5, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x08f5, 0x011a, 0x0119, 0x10d2, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x8252, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0x412f, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x08f5, 0x0119, 0x0119, 0x0119, 0x0119, 0x011a, 0x0119, 0x08d5, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x08f5, 0x011a, 0x0119, 0x0119, 0x0119, 0x0119, 0x011a, 0x08f5, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x08f4, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x20ae, 0x20ad, 0x18ae, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x011a, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ae, 0x20ad, 0x18ad, 0x18cd, 0x18ae, 0x18ad, 0x18ad, 0x18ae, 0x18cd, 0x18cd, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0355, 0x190f, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x08f4, 0x011a, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x08f5, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x20ae, 0x10d2, 0x0119, 0x011a, 0x08f5, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ae, 0x08f5, 0x0119, 0x0119, 0x10d2, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ae, 0x0119, 0x0119, 0x00f9, 0x0119, 0x0119, 0x011a, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x208e, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ae, 0x18ad, 0x08f5, 0x0119, 0x00f9, 0x10d2, 0x18cd, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x496f, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd396, 0xd395, 0x496f, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x00f9, 0x0119, 0x011a, 0x011a, 0x011a, 0x0119, 0x0119, 0x0119, 0x18ae, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x20ae, 0x08f5, 0x0119, 0x0119, 0x10d2, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x20ad, 0x18ae, 0x18ae, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x08f5, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x11d1, 0x03b7, 0x0a93, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ae, 0x00f7, 0x0119, 0x0119, 0x00f9, 0x011a, 0x00f7, 0x18ce, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x20ae, 0x10d2, 0x011a, 0x0119, 0x08f5, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x20ae, 0x08f5, 0x0119, 0x00f9, 0x10d2, 0x18cd, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x011a, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x20ad, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x08f5, 0x0119, 0x0119, 0x10d2, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x20ad, 0x28ee, 0xbb34, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0x9ab3, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x0119, 0x00f9, 0x00f9, 0x0119, 0x0119, 0x0119, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x10af, 0x0119, 0x011a, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ae, 0x08f5, 0x0119, 0x0119, 0x10d2, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x011a, 0x011a, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ce, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x208d, 0x18ad, 0x10d2, 0x08f3, 0x10d3, 0x10d2, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0356, 0x03b7, 0x03b7, 0x190f, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x10d2, 0x08f3, 0x08d4, 0x10d2, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x10d2, 0x00f9, 0x0119, 0x08f5, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x08f5, 0x011a, 0x0119, 0x10d2, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x20ad, 0x18ad, 0x20ad, 0x18ae, 0x18ad, 0x0119, 0x0119, 0x00fa, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x08f5, 0x0119, 0x0119, 0x10d2, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ae, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x7a31, 0xd395, 0xd395, 0xd375, 0xdb95, 0xd395, 0xd395, 0xd396, 0xd395, 0xd395, 0xd396, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x011a, 0x011a, 0x0119, 0x0119, 0x0119, 0x0119, 0x00f9, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ae, 0x0119, 0x011a, 0x0119, 0x0119, 0x011a, 0x0119, 0x0119, 0x0119, 0x18ad, 0x18ae, 0x20ad, 0x18ad, 0x20ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x08f5, 0x0119, 0x0119, 0x10d2, 0x20ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x20ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ae, 0x00f7, 0x0119, 0x00f9, 0x0119, 0x0119, 0x00f7, 0x18ce, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ce, 0x11d1, 0x03b8, 0x03b7, 0x03b8, 0x0a94, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18cd, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x10d2, 0x00f9, 0x0119, 0x08f5, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x08f5, 0x011a, 0x00f9, 0x10d2, 0x18ae, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x20ad, 0x08f5, 0x00f9, 0x011a, 0x0119, 0x011a, 0x0119, 0x011a, 0x08f5, 0x20ae, 0x18ad, 0x18cd, 0x18ad, 0x18cd, 0x18ae, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x08d5, 0x0119, 0x0119, 0x10d2, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x20ae, 0x18ad, 0x18cd, 0x18ad, 0x20ad, 0x18ad, 0x310e, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd396, 0xd395, 0xd396, 0xd395, 0xd395, 0xb313, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x08f5, 0x011a, 0x0119, 0x011a, 0x011a, 0x011a, 0x0119, 0x08f5, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x08f5, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x00f9, 0x08f5, 0x20ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ae, 0x08f5, 0x0119, 0x00f9, 0x10d2, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x10d2, 0x0119, 0x011a, 0x10d2, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x08f5, 0x011a, 0x0119, 0x011a, 0x011a, 0x0119, 0x0119, 0x08f5, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x20ae, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x0356, 0x03b7, 0x03b7, 0x03b8, 0x03b7, 0x190e, 0x18ae, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x20ad, 0x10d2, 0x011a, 0x011a, 0x08f5, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x08f5, 0x0119, 0x0119, 0x10d2, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x0117, 0x0119, 0x011a, 0x0119, 0x0119, 0x00f7, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x20ad, 0x08f5, 0x0119, 0x00f9, 0x10d2, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ae, 0x18ad, 0x18ae, 0xa2d3, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd396, 0xa2d3, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x0117, 0x0119, 0x0119, 0x0119, 0x0119, 0x0117, 0x18ce, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x0117, 0x00f9, 0x0119, 0x011a, 0x0119, 0x0117, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x08f5, 0x0119, 0x0119, 0x10d2, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ce, 0x00f7, 0x011a, 0x011a, 0x0119, 0x0119, 0x00f7, 0x18ae, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ae, 0x18ad, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x18cd, 0x18ad, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x11d1, 0x03b8, 0x03b7, 0x03b7, 0x03b7, 0x03b7, 0x0a94, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x20ae, 0x10d2, 0x0119, 0x0119, 0x08f5, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x08f5, 0x0119, 0x0119, 0x10d2, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x10d2, 0x08d4, 0x08f3, 0x10d2, 0x18cd, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18b0, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x496f, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xaad3, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18cd, 0x10d1, 0x08f3, 0x08f3, 0x10d2, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18cd, 0x10d2, 0x08f3, 0x08d4, 0x10d2, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ae, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x08f4, 0x0119, 0x0119, 0x10d1, 0x18ad, 0x20ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x08f5, 0x00f9, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x08f5, 0x18ad, 0x20ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x011a, 0x011a, 0x0119, 0x0119, 0x011a, 0x0119, 0x011a, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0356, 0x03b8, 0x03b7, 0x03b7, 0x03b7, 0x03b7, 0x03b7, 0x190f, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x10d2, 0x00f9, 0x0119, 0x08f5, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x20ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ae, 0x08f5, 0x0119, 0x00f9, 0x10d2, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x011a, 0x0119, 0x18ce, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0xb314, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0x61d0, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x18cd, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x08f5, 0x011a, 0x0119, 0x10d2, 0x18ae, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18cd, 0x18ae, 0x18ad, 0x0119, 0x0119, 0x011a, 0x0119, 0x0119, 0x011a, 0x0119, 0x0119, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x00f9, 0x0119, 0x011a, 0x0119, 0x0119, 0x0119, 0x00f9, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x0397, 0x03b8, 0x03b7, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ae, 0x18ad, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x20ae, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x10d2, 0x00f9, 0x0119, 0x08f5, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x08f5, 0x0119, 0x0119, 0x10d2, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x011a, 0x011a, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x59d0, 0xd395, 0xd375, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd396, 0xd395, 0xd396, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x08f4, 0x011a, 0x0119, 0x10d2, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x0119, 0x0119, 0x011a, 0x0119, 0x0119, 0x011a, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x08f5, 0x0119, 0x011a, 0x0119, 0x0119, 0x0119, 0x011a, 0x08f5, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x20ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x03b7, 0x03b7, 0x03b7, 0x20ad, 0x18ad, 0x18ad, 0x20ad, 0x03b7, 0x03b7, 0x0397, 0x03b7, 0x03b8, 0x03b7, 0x03b7, 0x18ad, 0x18ad, 0x18ae, 0x20ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x10d2, 0x0119, 0x011a, 0x08f5, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ae, 0x08f5, 0x0119, 0x011a, 0x10d1, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0xbb34, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xaad3, 0x20ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ae, 0x18ad, 0x18ad, 0x08f5, 0x0119, 0x00f9, 0x10d2, 0x18cd, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x011a, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x011a, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ce, 0x00f7, 0x0119, 0x0119, 0x011a, 0x0119, 0x00f7, 0x18ce, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x20ad, 0x03b7, 0x03b7, 0x03b7, 0x18ae, 0x20ad, 0x18ad, 0x18ad, 0x03b7, 0x03b7, 0x03b7, 0x03b7, 0x03b7, 0x0397, 0x03b7, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x10d2, 0x011a, 0x0119, 0x08f5, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x20ae, 0x08f5, 0x011a, 0x0119, 0x10d2, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x011a, 0x0119, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x61b1, 0xd395, 0xd395, 0xd375, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0x8a92, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x08f5, 0x0119, 0x0119, 0x10d2, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x08f5, 0x011a, 0x0119, 0x011a, 0x0119, 0x0119, 0x0119, 0x08f4, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x188d, 0x18ad, 0x10d2, 0x08f3, 0x08f3, 0x10d2, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x03b7, 0x03b7, 0x03b7, 0x18ad, 0x18ad, 0x18cd, 0x20ad, 0x03b8, 0x03b7, 0x03b8, 0x03b7, 0x03b7, 0x03b7, 0x03b7, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ae, 0x10d2, 0x00f9, 0x0119, 0x08f5, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x08f5, 0x0119, 0x0119, 0x10d2, 0x18ad, 0x18cd, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ae, 0x18ad, 0xaad3, 0xd395, 0xd375, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd375, 0xd395, 0xd395, 0x310e, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x0119, 0x0119, 0x10d1, 0x18ae, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ce, 0x00f7, 0x0119, 0x0119, 0x0119, 0x0119, 0x00f7, 0x18ce, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x03d7, 0x0397, 0x03b7, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x03b7, 0x03b8, 0x0397, 0x03b7, 0x03b8, 0x03b7, 0x03b7, 0x18ad, 0x18ae, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x20ad, 0x10d2, 0x00f9, 0x0119, 0x08f5, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x08f5, 0x0119, 0x0119, 0x10d0, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x0119, 0x011a, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ae, 0x496f, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd375, 0xd395, 0x7231, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18cd, 0x18ae, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ae, 0x18ad, 0x18cd, 0x18ad, 0x20ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x10d1, 0x10d3, 0x08d3, 0x10d2, 0x18ae, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x03b7, 0x03b7, 0x03b8, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x03b7, 0x03b7, 0x03b7, 0x03b7, 0x03b7, 0x03b7, 0x03b7, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x20ad, 0x10d2, 0x011a, 0x011a, 0x08f5, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x08f5, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x011a, 0x0119, 0x18ae, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20cd, 0x20ae, 0x8a92, 0xd395, 0xd395, 0xd395, 0xd396, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0x7a31, 0x20ad, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x011a, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x20ae, 0x03b7, 0x03b7, 0x03b7, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x03b7, 0x03b7, 0x03b8, 0x03b7, 0x03b7, 0x03b7, 0x03b7, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x20ae, 0x10d2, 0x0119, 0x0119, 0x08f5, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x20ad, 0x28ee, 0xc374, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xa2d3, 0x18ad, 0x18ae, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x011a, 0x0119, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x20ad, 0x18ad, 0x18ce, 0x194f, 0x18ae, 0x20ad, 0x18ae, 0x18ad, 0x18ad, 0x03b7, 0x0397, 0x03b8, 0x18ad, 0x20ae, 0x20ad, 0x18ad, 0x03b7, 0x03b7, 0x03b7, 0x03b7, 0x03b8, 0x03b7, 0x03b7, 0x18ae, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x10d2, 0x00f9, 0x0119, 0x08f5, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x20ad, 0x20ad, 0x20ae, 0x20ae, 0x61d1, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd396, 0xd395, 0x69f1, 0x20ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x10d2, 0x011a, 0x0119, 0x10d2, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ce, 0x18ad, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x1930, 0x02f5, 0x03b7, 0x03b8, 0x0356, 0x114f, 0x18ad, 0x18ad, 0x18ad, 0x03b8, 0x03b7, 0x03b7, 0x18ad, 0x18ad, 0x18ad, 0x20ae, 0x18ad, 0x18ad, 0x03b7, 0x03b8, 0x03b7, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x10d2, 0x00f9, 0x0119, 0x08f4, 0x18ad, 0x20ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ae, 0x20ae, 0x20ad, 0x20ad, 0x20ad, 0x20ad, 0x20ae, 0x20ae, 0x9ab3, 0xd375, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd375, 0xd395, 0xd395, 0xd395, 0x412f, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ce, 0x00f8, 0x0119, 0x0119, 0x0119, 0x0119, 0x08f7, 0x18ce, 0x18ad, 0x20ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x03b7, 0x03b7, 0x03b7, 0x03b7, 0x0397, 0x03b7, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x190f, 0x0377, 0x0397, 0x03b8, 0x0398, 0x0397, 0x0b77, 0x18ce, 0x18ad, 0x18ad, 0x03b7, 0x0397, 0x03b8, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x03b7, 0x0bb7, 0x0398, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x10d2, 0x0119, 0x0119, 0x08f5, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x20ae, 0x18ad, 0x20ad, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x20ce, 0xc355, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0x4970, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x08f5, 0x00f9, 0x0119, 0x00f7, 0x00f7, 0x0119, 0x0119, 0x08f5, 0x18ae, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x03b7, 0x03b7, 0x03b7, 0x03b7, 0x03b8, 0x03b7, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x1253, 0x0b78, 0x0b98, 0x0b78, 0x0b98, 0x0b98, 0x1378, 0x11f2, 0x18ad, 0x18ad, 0x0b98, 0x0b78, 0x0b78, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0b98, 0x1378, 0x0b78, 0x18ad, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x10d2, 0x0119, 0x011a, 0x08f5, 0x18ad, 0x20ad, 0x18ad, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x20ae, 0x20ad, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x20ce, 0x4970, 0xd395, 0xd375, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd375, 0x8252, 0x20ae, 0x20ae, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ae, 0x0119, 0x011a, 0x08f3, 0x18ad, 0x18ad, 0x08f4, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ce, 0x18ad, 0x18ad, 0x03b8, 0x03b7, 0x03b7, 0x03b7, 0x03b7, 0x03b7, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x1ab5, 0x1b78, 0x1b58, 0x1358, 0x1b78, 0x1378, 0x1358, 0x1a13, 0x18ae, 0x18ae, 0x1358, 0x1358, 0x1378, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x1358, 0x1358, 0x1358, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ae, 0x10d2, 0x0119, 0x0119, 0x08f5, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x20ae, 0x20ae, 0x18ad, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x20ce, 0x20ce, 0x20ce, 0x7a32, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd375, 0xd395, 0xd375, 0xd395, 0xc354, 0x5990, 0x20ad, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18af, 0x0119, 0x0119, 0x18d0, 0x18ad, 0x18ad, 0x10d0, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x03b7, 0x03b7, 0x03b7, 0x03b7, 0x03b7, 0x03b7, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x1a54, 0x1b38, 0x1b38, 0x2338, 0x1b38, 0x1b58, 0x2338, 0x21d2, 0x18ad, 0x18ad, 0x2338, 0x2338, 0x2358, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x1930, 0x2339, 0x2358, 0x2338, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x10d2, 0x0119, 0x0119, 0x08f5, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0xa2b3, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd375, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd375, 0xd375, 0xd375, 0xd375, 0x4970, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x011a, 0x08f3, 0x18ad, 0x18ad, 0x10d3, 0x011a, 0x011a, 0x18ad, 0x18ae, 0x18ae, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x03b7, 0x03b7, 0x03b7, 0x03b7, 0x18ae, 0x18ad, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x2150, 0x2b18, 0x2b39, 0x2b18, 0x2b19, 0x2b19, 0x2af8, 0x18ce, 0x18ad, 0x18ad, 0x2b19, 0x2b18, 0x2b19, 0x18ad, 0x18cd, 0x18ae, 0x18ad, 0x2192, 0x2b19, 0x2b19, 0x2b18, 0x2338, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x10cf, 0x0119, 0x011a, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0xbb34, 0xd395, 0xd395, 0xd396, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd375, 0xd375, 0xd375, 0xd375, 0xd375, 0xd375, 0xd375, 0x4970, 0x20ce, 0x20ae, 0x20ae, 0x20ae, 0x20ad, 0x18ad, 0x18ad, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x08d5, 0x0119, 0x0119, 0x00f7, 0x0117, 0x0119, 0x0119, 0x08f5, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x03b7, 0x03b7, 0x03b7, 0x03b7, 0x03b7, 0x03b8, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x10d2, 0x08f3, 0x10d3, 0x10d2, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x2192, 0x2b19, 0x3319, 0x32f9, 0x2a15, 0x18ef, 0x20ad, 0x18ad, 0x18ad, 0x32f9, 0x3319, 0x32f9, 0x18ad, 0x18ad, 0x18ad, 0x2191, 0x3319, 0x2af9, 0x3319, 0x2af9, 0x2a97, 0x18ad, 0x18ad, 0x18ae, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ae, 0x0119, 0x0119, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x20ce, 0x20ce, 0x20ce, 0x20cf, 0x20cf, 0x20cf, 0x28cf, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd375, 0xd375, 0xd375, 0xd375, 0xd375, 0xd375, 0x71d1, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x20ad, 0x20cd, 0x20ae, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x00f7, 0x011a, 0x0119, 0x0119, 0x0119, 0x00f7, 0x18ce, 0x18ad, 0x18cd, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x03b7, 0x03b7, 0x03b7, 0x03b7, 0x03b7, 0x03b8, + 0x18ad, 0x18ae, 0x18ce, 0x00f7, 0x0119, 0x0119, 0x0119, 0x0119, 0x00f7, 0x18ce, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x3ad9, 0x3ad9, 0x3ad9, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x3af9, 0x3ad9, 0x3ad9, 0x18ad, 0x20ad, 0x3215, 0x3ad9, 0x3af9, 0x3ada, 0x3ad9, 0x3277, 0x18ce, 0x18ad, 0x18ae, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x011a, 0x011a, 0x20cd, 0x20ae, 0x20ae, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20cf, 0x28cf, 0x28cf, 0x4950, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd375, 0xd375, 0xd375, 0xd374, 0xd375, 0xd355, 0xd355, 0xaab3, 0x20ce, 0x18ce, 0x20ce, 0x20ae, 0x20ce, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x10d2, 0x10d3, 0x08f3, 0x10d2, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x0398, 0x0398, 0x0398, 0x0398, 0x03b7, 0x0397, + 0x18ad, 0x18ad, 0x08f5, 0x0139, 0x011a, 0x0117, 0x00f7, 0x011a, 0x011a, 0x08f5, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ae, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x42d9, 0x42b9, 0x42b9, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x42b9, 0x42b9, 0x42ba, 0x18ae, 0x31f5, 0x42da, 0x42d9, 0x42b9, 0x42d9, 0x3a77, 0x18ce, 0x18ad, 0x18ad, 0x18ae, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x20ad, 0x0119, 0x011a, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x0119, 0x0119, 0x20ae, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x5991, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd375, 0xd375, 0xd375, 0xd375, 0xd375, 0xd374, 0xd375, 0xd355, 0xd355, 0xd355, 0x9252, 0x30ef, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x2338, 0x2338, 0x2318, 0x2319, 0x2338, 0x2338, + 0x18ad, 0x18ad, 0x00f9, 0x0119, 0x10d3, 0x18ad, 0x18ad, 0x10f3, 0x011a, 0x0119, 0x011a, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x18b0, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x4a99, 0x4ab9, 0x4a9a, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x4aba, 0x4aba, 0x4a9a, 0x4257, 0x4a99, 0x4a9a, 0x4a9a, 0x4aba, 0x4237, 0x20ce, 0x18ad, 0x18ae, 0x18ad, 0x20ad, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18cd, 0x011a, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x20ae, 0x20ae, 0x0119, 0x0119, 0x20ae, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x28ce, 0x28cf, 0x28cf, 0x28cf, 0x28ef, 0x69f1, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd375, 0xd375, 0xd375, 0xd375, 0xd355, 0xd375, 0xd355, 0xd355, 0xd355, 0xd335, 0xd355, 0xcb14, 0x4130, 0x20af, 0x20ce, 0x20ce, 0x20ae, 0x20ce, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x20ad, 0x18ad, 0x20ae, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x20ad, 0x18ad, 0x208e, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x42b9, 0x4a99, 0x42b9, 0x42ba, 0x18ad, 0x18ad, + 0x18ad, 0x18af, 0x011a, 0x00f9, 0x10d0, 0x18ad, 0x20ad, 0x10d0, 0x0119, 0x0119, 0x011a, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0118, 0x10d0, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x527a, 0x527a, 0x527a, 0x20ad, 0x18ad, 0x18ad, 0x20ad, 0x18ae, 0x527a, 0x527a, 0x529a, 0x527a, 0x527a, 0x527a, 0x527a, 0x4a18, 0x20ce, 0x18ad, 0x18ad, 0x20ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x00f9, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x10d1, 0x0117, 0x0119, 0x0119, 0x0917, 0x18d2, 0x20ce, 0x20cf, 0x28ce, 0x28cf, 0x28cf, 0x28cf, 0x28ef, 0x30f0, 0x8253, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd375, 0xd375, 0xd375, 0xd375, 0xd375, 0xd355, 0xd355, 0xd355, 0xd355, 0xd355, 0xd355, 0xd354, 0xd355, 0x7a11, 0x20cf, 0x20ce, 0x20ce, 0x20ce, 0x20ae, 0x20ce, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x20ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x6a3b, 0x6a3b, 0x6a3b, 0x621a, 0x6a3b, 0x6a3b, + 0x18ad, 0x18ad, 0x0119, 0x0119, 0x10d3, 0x18ad, 0x20ae, 0x08f3, 0x0119, 0x0119, 0x18cd, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x08f5, 0x0119, 0x00f9, 0x18d0, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ae, 0x18ad, 0x18ad, 0x20ad, 0x5a5b, 0x5a5a, 0x5a7a, 0x2910, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x5a5a, 0x5a7b, 0x5a5a, 0x5a5a, 0x5a5a, 0x5a5a, 0x4a18, 0x20ce, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x10d1, 0x0119, 0x0119, 0x0119, 0x0119, 0x011a, 0x091a, 0x18f2, 0x28cf, 0x28ce, 0x28cf, 0x28cf, 0x28ef, 0x28f0, 0x30f0, 0x8232, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd375, 0xd375, 0xd375, 0xd375, 0xd375, 0xd355, 0xd355, 0xd355, 0xd355, 0xd355, 0xd335, 0xd335, 0xd335, 0xd335, 0xa293, 0x28cf, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ae, 0x20ce, 0x20ae, 0x20ae, 0x20ad, 0x20ad, 0x20ae, 0x20ad, 0x20ad, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x20ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x89bc, 0x89bc, 0x89bc, 0x91bc, 0x89bc, 0x899c, + 0x18ad, 0x18ad, 0x08f5, 0x0119, 0x0119, 0x00f7, 0x0117, 0x0119, 0x0119, 0x08f5, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x00f7, 0x0119, 0x00f9, 0x18d0, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x623a, 0x623b, 0x625a, 0x621a, 0x2910, 0x18cd, 0x18ad, 0x18ad, 0x623b, 0x623a, 0x625a, 0x623b, 0x623b, 0x51f8, 0x20ce, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x10d2, 0x0119, 0x0119, 0x20ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0118, 0x0119, 0x0917, 0x18d2, 0x18d2, 0x0918, 0x091a, 0x0918, 0x28cf, 0x28cf, 0x28ef, 0x28ef, 0x30d0, 0x30f0, 0x30f0, 0x8252, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd375, 0xd375, 0xd375, 0xd375, 0xd375, 0xd375, 0xd375, 0xd355, 0xd355, 0xd355, 0xd355, 0xd335, 0xd335, 0xd335, 0xd335, 0xd315, 0xd335, 0x9253, 0x30ef, 0x28cf, 0x28ce, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ae, 0x20ae, 0x20ce, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x20ad, 0x20ae, 0x20ae, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18cd, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0xa93d, 0xa93d, 0xa93d, 0xb13d, 0xa93d, 0xa93d, + 0x18ad, 0x20ad, 0x18ae, 0x0117, 0x011a, 0x011a, 0x0119, 0x0119, 0x00f7, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ae, 0x00f7, 0x0119, 0x00f8, 0x18d0, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18cd, 0x59d8, 0x6a1b, 0x6a1b, 0x6a1b, 0x6a1b, 0x4133, 0x18ad, 0x18ad, 0x6a3b, 0x6a1b, 0x6a1b, 0x6a1b, 0x51b6, 0x20cf, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x10d2, 0x0119, 0x00f9, 0x10d3, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x011a, 0x18d1, 0x20ce, 0x20ce, 0x18d1, 0x093a, 0x093a, 0x28ef, 0x28cf, 0x28cf, 0x30f0, 0x30f0, 0x30f0, 0x38f0, 0x9273, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd375, 0xd375, 0xd375, 0xd375, 0xd375, 0xd355, 0xd355, 0xd355, 0xd355, 0xd355, 0xd335, 0xd335, 0xd334, 0xd335, 0xd334, 0xd334, 0xd314, 0xd315, 0xaa93, 0x28cf, 0x28cf, 0x28cf, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ae, 0x20ce, 0x20ce, 0x20ae, 0x20ae, 0x20ae, 0x20ad, 0x20ad, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ae, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0xd0be, 0xd0be, 0xd0be, 0xd0be, 0xd0be, 0xd0be, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x10d2, 0x08d4, 0x08f3, 0x10d2, 0x18cd, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ce, 0x00f7, 0x0119, 0x0119, 0x18d0, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x20ce, 0x61b8, 0x721b, 0x71fb, 0x721b, 0x721b, 0x4133, 0x20ad, 0x71fb, 0x721b, 0x71fb, 0x4174, 0x20ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x10d2, 0x0119, 0x0119, 0x08f5, 0x18ad, 0x18ad, 0x18ae, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x011a, 0x011a, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ae, 0x0119, 0x011a, 0x18d1, 0x20ae, 0x20ce, 0x20f1, 0x093a, 0x093a, 0x28cf, 0x28cf, 0x30ef, 0x30f0, 0x30f0, 0x38f0, 0x3911, 0xaaf4, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd375, 0xd375, 0xd375, 0xd375, 0xd375, 0xd355, 0xd355, 0xd355, 0xd355, 0xd355, 0xd355, 0xd335, 0xd335, 0xd335, 0xd335, 0xd335, 0xd335, 0xd314, 0xd314, 0xd315, 0x28ef, 0x28ef, 0x28cf, 0x28cf, 0x28cf, 0x28ce, 0x28ce, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ae, 0x20ce, 0x20ce, 0x20ae, 0x20ae, 0x20ae, 0x18ae, 0x20ad, 0x20ad, 0x20ae, 0x30ee, 0x6150, 0x81b1, 0xa1f2, 0xc233, 0xca53, 0xca54, 0xca53, 0xc233, 0xa1f2, 0x8191, 0x512f, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18cd, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0xf03f, 0xf03f, 0xf03f, 0xf03f, 0xf03f, 0xf03f, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x0117, 0x0119, 0x0119, 0x18d0, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x20ad, 0x18ae, 0x18ad, 0x18ad, 0x20ce, 0x69b9, 0x81fb, 0x79db, 0x79dc, 0x81fc, 0x5976, 0x79db, 0x79dc, 0x81dc, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x10d2, 0x0119, 0x0119, 0x08f5, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ae, 0x0918, 0x0119, 0x0917, 0x18d0, 0x20d0, 0x0917, 0x093a, 0x1138, 0x28cf, 0x30cf, 0x30ef, 0x30f0, 0x30f0, 0x3911, 0x3911, 0xaad4, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd375, 0xd375, 0xd375, 0xd375, 0xd375, 0xd355, 0xd355, 0xd355, 0xd355, 0xd355, 0xd355, 0xd355, 0xd335, 0xd335, 0xd335, 0xd335, 0xd315, 0xd314, 0xd315, 0xd315, 0xd314, 0x69b2, 0x28ef, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x28ce, 0x28ce, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ae, 0x20ce, 0x410f, 0x6990, 0x99f2, 0xc253, 0xca74, 0xd274, 0xca74, 0xd253, 0xca53, 0xca53, 0xca53, 0xd233, 0xd253, 0xca53, 0xd233, 0xca33, 0xc213, 0x8991, 0x410f, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18cd, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x20ad, 0x18ae, 0x0917, 0x0119, 0x0119, 0x10cf, 0x18ad, 0x18ae, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ae, 0x20ae, 0x7199, 0x89db, 0x89bc, 0x81bc, 0x89bc, 0x89bc, 0x89bc, 0x89bc, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x10d2, 0x0119, 0x0119, 0x08f5, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x08f5, 0x011a, 0x0119, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18d2, 0x0119, 0x0119, 0x093a, 0x093a, 0x093a, 0x093a, 0x20f2, 0x28cf, 0x28f0, 0x30f0, 0x30f0, 0x3111, 0x3911, 0x3911, 0xb2f5, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd375, 0xd375, 0xd375, 0xd375, 0xd375, 0xd375, 0xd355, 0xd355, 0xd355, 0xd355, 0xd355, 0xd355, 0xd355, 0xd335, 0xd335, 0xd335, 0xd335, 0xd315, 0xd315, 0xd314, 0xd314, 0xd2f4, 0xd2f5, 0xcad4, 0x5971, 0x30f0, 0x30d0, 0x28ef, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x28ce, 0x38ef, 0x79b1, 0xba53, 0xca94, 0xca94, 0xca74, 0xd273, 0xd273, 0xca73, 0xca54, 0xca53, 0xca54, 0xca53, 0xca33, 0xca53, 0xca53, 0xca33, 0xca33, 0xca33, 0xd213, 0xca13, 0xca13, 0xa1b2, 0x490f, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20cd, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18ae, 0x0117, 0x0119, 0x00f9, 0x18b0, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ce, 0x7979, 0x919c, 0x919c, 0x91bc, 0x919c, 0x899c, 0x89bc, 0x18ae, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ae, 0x18ad, 0x10d2, 0x0119, 0x0119, 0x08f5, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x08f5, 0x011a, 0x0119, 0x10f2, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x20ae, 0x20ae, 0x20ce, 0x18f2, 0x0919, 0x091a, 0x091a, 0x0919, 0x20f3, 0x28ef, 0x30f0, 0x30f0, 0x30f0, 0x3110, 0x3911, 0x3911, 0x4112, 0xb2f5, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd375, 0xd375, 0xd375, 0xd375, 0xd375, 0xd355, 0xd355, 0xd355, 0xd355, 0xd355, 0xd355, 0xd355, 0xd335, 0xd335, 0xd335, 0xd335, 0xd315, 0xd314, 0xd314, 0xd314, 0xd2f4, 0xd314, 0xd2f5, 0xd2f4, 0xd2f4, 0x4930, 0x30f0, 0x30ef, 0x28f0, 0x28cf, 0x28cf, 0x28cf, 0x28ef, 0x28ce, 0x28cf, 0x28cf, 0x28cf, 0x4130, 0x89f1, 0xd294, 0xd294, 0xca93, 0xca74, 0xd274, 0xca74, 0xca74, 0xca53, 0xca73, 0xd253, 0xd254, 0xca53, 0xca53, 0xca54, 0xc274, 0x9b36, 0x83b8, 0x6419, 0x6c39, 0x6439, 0x6c1a, 0x8b57, 0xb295, 0xca13, 0x9191, 0x28ce, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x20ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x20ad, 0x18ae, 0x18ad, 0x18ad, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ae, 0x00f7, 0x0119, 0x0119, 0x18af, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x28ae, 0x8159, 0x917c, 0x997c, 0x997c, 0x999c, 0x999c, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x10d2, 0x0119, 0x0119, 0x08d5, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x08f4, 0x0119, 0x00f9, 0x10d2, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x20ad, 0x20ae, 0x20ae, 0x20ce, 0x20ce, 0x20ce, 0x20d0, 0x20d1, 0x28cf, 0x28cf, 0x28ef, 0x30f0, 0x30f0, 0x3110, 0x3910, 0x4111, 0x4112, 0x4112, 0x9294, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd375, 0xd375, 0xd375, 0xd375, 0xd375, 0xd355, 0xd355, 0xd355, 0xd355, 0xd355, 0xd355, 0xd335, 0xd335, 0xd335, 0xd335, 0xd335, 0xd315, 0xd315, 0xd314, 0xd2f4, 0xd2f4, 0xd315, 0xd2f4, 0xd2f5, 0xd2f4, 0xd2d5, 0x79d2, 0x3110, 0x30f0, 0x30f0, 0x30f0, 0x28f0, 0x30d0, 0x28ef, 0x28f0, 0x28cf, 0x5150, 0xaa32, 0xd293, 0xd294, 0xd294, 0xca93, 0xca74, 0xca74, 0xca74, 0xca74, 0xd274, 0xd254, 0xca53, 0xca54, 0xb2d5, 0x83b8, 0x44fc, 0x1dbe, 0x063f, 0x0cdb, 0x0b76, 0x1377, 0x1377, 0x0b76, 0x1356, 0x0b76, 0x0b77, 0x23f8, 0x6991, 0x510f, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x20ad, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18ce, 0x00f7, 0x0119, 0x00f9, 0x18af, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ae, 0x20ad, 0x20ae, 0x8939, 0xa17c, 0xa17c, 0xa15d, 0xa15d, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x10d2, 0x0119, 0x011a, 0x08f5, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ae, 0x18ad, 0x08f5, 0x0119, 0x0119, 0x10d2, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x20ce, 0x20ce, 0x20ce, 0x28ce, 0x28cf, 0x28cf, 0x28ef, 0x28f0, 0x30f0, 0x3110, 0x3911, 0x3911, 0x3911, 0x4112, 0x4132, 0x8a54, 0xd395, 0xd395, 0xd395, 0xd395, 0xd375, 0xd375, 0xd375, 0xd375, 0xd375, 0xd355, 0xd355, 0xd355, 0xd355, 0xd355, 0xd355, 0xd355, 0xd335, 0xd335, 0xd335, 0xd315, 0xd315, 0xd315, 0xd314, 0xd314, 0xd314, 0xd2f4, 0xd2f4, 0xd2f5, 0xd2f4, 0xd2f4, 0xd2d4, 0xcad4, 0x5951, 0x38f0, 0x30f0, 0x30f0, 0x30f0, 0x30f0, 0x30f0, 0x4130, 0x91f2, 0xd294, 0xd294, 0xca94, 0xca74, 0xca94, 0xca94, 0xca74, 0xd274, 0xd274, 0xd274, 0xd253, 0xb2d5, 0x7419, 0x257d, 0x063f, 0x061f, 0x057d, 0x12b5, 0x190f, 0x18ce, 0x20ae, 0x20ad, 0x20ad, 0x18ad, 0x18ad, 0x20ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x18ad, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ce, 0x0117, 0x0119, 0x0119, 0x18b0, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ce, 0x913a, 0xa93d, 0xa95d, 0xa95c, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x10d2, 0x0119, 0x0119, 0x08f5, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x08f5, 0x0119, 0x0119, 0x10d2, 0x18ad, 0x18ad, 0x20ae, 0x18ae, 0x18cd, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x20ce, 0x20ce, 0x20ce, 0x20cf, 0x28ce, 0x28cf, 0x28ef, 0x28f0, 0x30f0, 0x30f0, 0x3911, 0x3911, 0x3911, 0x4132, 0x4132, 0x4932, 0x9255, 0xd395, 0xd395, 0xd375, 0xd375, 0xd375, 0xd375, 0xd375, 0xd375, 0xd355, 0xd355, 0xd355, 0xd355, 0xd355, 0xd355, 0xd335, 0xd335, 0xd335, 0xd335, 0xd315, 0xd315, 0xd315, 0xd314, 0xd314, 0xd314, 0xd2f4, 0xd2f5, 0xd2f4, 0xd2f4, 0xd2f4, 0xd2f4, 0xd2d4, 0xd2d4, 0xcab4, 0x5172, 0x3911, 0x38f1, 0x38f0, 0x30f0, 0x81d2, 0xc294, 0xd294, 0xd293, 0xd294, 0xd294, 0xca93, 0xca93, 0xd274, 0xd274, 0xca73, 0xd274, 0x83d8, 0x353d, 0x061f, 0x063f, 0x063f, 0x063f, 0x4c5a, 0x4970, 0x20ae, 0x20ae, 0x20ad, 0x18cd, 0x20ad, 0x20ad, 0x18ad, 0x20ad, 0x18ae, 0x18ad, 0x18ad, 0x18ae, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18ae, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18cd, 0x10d2, 0x08f3, 0x08d4, 0x10d2, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x20ad, 0x18cd, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ce, 0x00f7, 0x0119, 0x00f9, 0x10cf, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ae, 0xb11d, 0xb11d, 0xb11d, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x10d2, 0x0119, 0x0119, 0x08d5, 0x18ae, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x08f5, 0x0119, 0x0119, 0x10d2, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ae, 0x20ae, 0x20ae, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x28cf, 0x20cf, 0x28cf, 0x28cf, 0x28ef, 0x30f0, 0x30f0, 0x38f0, 0x3911, 0x3911, 0x4112, 0x4132, 0x4932, 0x4953, 0x6b36, 0xd395, 0xd395, 0xd375, 0xd375, 0xd375, 0xd375, 0xd375, 0xd355, 0xd355, 0xd355, 0xd355, 0xd355, 0xd355, 0xd355, 0xd335, 0xd335, 0xd335, 0xd335, 0xd315, 0xd314, 0xd314, 0xd314, 0xd314, 0xd314, 0xd2f4, 0xd2f4, 0xd2f4, 0xd2f5, 0xd2d4, 0xd2d4, 0xd2d5, 0xd2d4, 0xcad4, 0xcab4, 0x5972, 0x3911, 0x5151, 0xb253, 0xcab4, 0xd294, 0xca94, 0xd294, 0xca94, 0xd294, 0xca94, 0xca74, 0xd274, 0xc294, 0x645a, 0x1dbe, 0x063f, 0x063f, 0x063f, 0x1dbe, 0x6459, 0xc274, 0x99d2, 0x28ce, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x18ce, 0x18ad, 0x18ad, 0x20ae, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18af, 0x0117, 0x0119, 0x0119, 0x0119, 0x0119, 0x0117, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ce, 0x00f7, 0x0119, 0x0119, 0x18d0, 0x18cd, 0x18ad, 0x18ad, 0x20ad, 0x18ae, 0x18cd, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x18ae, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0xb8fe, 0xb8fd, 0xb8fe, 0x18ad, 0x18ad, 0x18ad, 0x20ae, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x10d0, 0x00f9, 0x0119, 0x08f5, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ae, 0x18ad, 0x18ad, 0x08f5, 0x0119, 0x0119, 0x10d2, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ae, 0x20ad, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x20ce, 0x20ce, 0x20ce, 0x28cf, 0x28cf, 0x28cf, 0x28ef, 0x28f0, 0x30f0, 0x30f0, 0x3911, 0x3911, 0x4111, 0x4132, 0x4132, 0x4933, 0x4953, 0x253b, 0x465c, 0x6d7b, 0x6d9a, 0x6d9a, 0x6d7a, 0x84f9, 0x9c78, 0x9c77, 0x9c78, 0x9c78, 0x9c57, 0x9c78, 0x9c58, 0x9c58, 0xbbb6, 0xd334, 0xd315, 0xd334, 0xd315, 0xd314, 0xd315, 0xd2f4, 0xcaf4, 0xd2f4, 0xd2f4, 0xd2f4, 0xd2f5, 0xd2d4, 0xcad4, 0xd2d4, 0xd2d4, 0xcad4, 0xcab4, 0xd2d4, 0x91f3, 0x5972, 0xca74, 0xd2b4, 0xd2b4, 0xd294, 0xca94, 0xd294, 0xd294, 0xca94, 0xca74, 0xc2b4, 0x6c5a, 0x0dff, 0x063f, 0x063f, 0x063f, 0x353d, 0x83b8, 0xca53, 0xca33, 0x89b1, 0x20ce, 0x20ce, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ae, 0x011a, 0x0119, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x08f5, 0x00f9, 0x0119, 0x0119, 0x0119, 0x0119, 0x00f9, 0x08f5, 0x20ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x0117, 0x0119, 0x0119, 0x18d0, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x20ad, 0x18ae, 0xc0de, 0xc0fe, 0xc0dd, 0x18ae, 0x18cd, 0x20ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x00f9, 0x00fa, 0x08f4, 0x18ad, 0x18ae, 0x18ad, 0x20ae, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x10d2, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x20ce, 0x20ae, 0x20ce, 0x20ce, 0x20ce, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x30ef, 0x30f0, 0x30f0, 0x3911, 0x38f1, 0x3911, 0x4112, 0x4132, 0x4932, 0x4953, 0x5153, 0x4d1a, 0x6d9a, 0x94b9, 0x9c98, 0x9c77, 0x9c78, 0x9c78, 0x9c78, 0x94b8, 0x6d7a, 0x6d7a, 0x6d7b, 0x367c, 0x367d, 0x1efe, 0x077f, 0x075f, 0x1ede, 0x363d, 0x6d3a, 0x9c17, 0xd2f4, 0xd2f4, 0xd2f4, 0xd2f4, 0xd2f4, 0xd2f5, 0xd2d4, 0xd2d4, 0xd2d4, 0xd2d4, 0xcad4, 0xd2b4, 0xcad4, 0xd2b3, 0xcab4, 0xc294, 0xcab4, 0xca94, 0xca94, 0xd294, 0xca94, 0xca74, 0xca74, 0xca74, 0x7bd8, 0x0dff, 0x063f, 0x061f, 0x063f, 0x4cbb, 0x9b57, 0xd233, 0xca33, 0xca53, 0x6150, 0x28cf, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x0119, 0x0119, 0x011a, 0x011a, 0x011a, 0x0119, 0x0119, 0x0119, 0x18ad, 0x18ae, 0x20ad, 0x18ad, 0x20ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x20ad, 0x18ae, 0x0917, 0x0119, 0x0119, 0x18cf, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ae, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0xc8be, 0xc8de, 0xc8be, 0x18ad, 0x18ad, 0x18ae, 0x18ae, 0x18ae, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x20ad, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x011a, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x20ce, 0x20ce, 0x20ce, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x30f0, 0x30f0, 0x30f0, 0x38f0, 0x3911, 0x3911, 0x3912, 0x4132, 0x4132, 0x4933, 0x5153, 0xa2b5, 0xd375, 0xd375, 0xd375, 0xd375, 0xd375, 0xd355, 0xd355, 0xd355, 0xd355, 0xd335, 0xd355, 0xd334, 0xd335, 0xd335, 0xd335, 0xd335, 0xbb96, 0xa437, 0x74f9, 0x4dbc, 0x2e7e, 0x0edf, 0x559b, 0x8498, 0xc335, 0xd2f4, 0xd2d4, 0xd2f5, 0xd2d4, 0xd2d4, 0xd2b5, 0xcab4, 0xd2b4, 0xd2b4, 0xcab4, 0xd2b4, 0xd2b4, 0xbab4, 0xbaf6, 0xca94, 0xd294, 0xca94, 0xd273, 0x9b76, 0x1dbe, 0x061f, 0x063f, 0x0ddf, 0x643a, 0xb2d5, 0xca54, 0xd253, 0xca53, 0xc294, 0x59b1, 0x28ce, 0x28cf, 0x28ce, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x18ae, 0x18ad, 0x0119, 0x011a, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x011a, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18ae, 0x0117, 0x0119, 0x00f9, 0x18af, 0x18ae, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ae, 0x20ad, 0x18ad, 0x18cd, 0x18ae, 0x18ad, 0x18ad, 0x18ae, 0x18cd, 0x18cd, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x40b0, 0xa09a, 0xd0be, 0xd09e, 0xd0be, 0xb89c, 0x78b5, 0x28ae, 0x18ad, 0x20ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x0119, 0x011a, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x20ad, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x30ef, 0x30f0, 0x30f0, 0x38f0, 0x3911, 0x3911, 0x4112, 0x4112, 0x4932, 0x4933, 0x5173, 0xbb15, 0xd395, 0xd375, 0xd375, 0xd375, 0xd355, 0xd355, 0xd355, 0xd355, 0xd355, 0xd355, 0xd335, 0xd355, 0xd335, 0xd335, 0xd314, 0xd314, 0xd335, 0xd315, 0xd314, 0xd315, 0xd2f5, 0xd2f5, 0xd2f4, 0x9bf7, 0x6d1a, 0x2e3d, 0x45bc, 0x9418, 0xd2d4, 0xcad4, 0xd2d4, 0xd2b4, 0xd2b4, 0xd2b4, 0xcab4, 0xd2b4, 0xd294, 0xd294, 0xd294, 0xc2d4, 0x4cdb, 0x7bd8, 0x9b57, 0x44fc, 0x063f, 0x063f, 0x1dbe, 0x83d8, 0xc294, 0xca53, 0xca54, 0xca33, 0xca53, 0xb2b5, 0x33b8, 0x28f0, 0x28cf, 0x28cf, 0x28cf, 0x20cf, 0x20cf, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x188e, 0x20cd, 0x10d1, 0x0119, 0x011a, 0x10d1, 0x20ae, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ae, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x0119, 0x0119, 0x011a, 0x0119, 0x0119, 0x011a, 0x0119, 0x0119, 0x18ae, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ae, 0x00f7, 0x0119, 0x0118, 0x10d0, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ae, 0x40b0, 0xd07d, 0xd87e, 0xd89f, 0xd89f, 0xe07f, 0xd89e, 0xd89f, 0xb87b, 0x28ae, 0x20ad, 0x18ae, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x011a, 0x0119, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ae, 0x20ae, 0x20ad, 0x20ad, 0x20ae, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x28cf, 0x28cf, 0x28ef, 0x28ef, 0x28ef, 0x30f0, 0x30f0, 0x3110, 0x3911, 0x3911, 0x3911, 0x4132, 0x4132, 0x4933, 0x5174, 0xbb14, 0xd375, 0xd375, 0xd375, 0xd375, 0xd375, 0xd355, 0xd355, 0xd355, 0xd355, 0xd355, 0xd335, 0xd334, 0xd335, 0xd335, 0xd335, 0xd314, 0xd335, 0xd315, 0xd314, 0xd314, 0xd315, 0xd2f4, 0xd2f4, 0xd2f4, 0xd2f4, 0xd2f5, 0xd2d4, 0xc335, 0x8478, 0x4d7b, 0x4d5b, 0xab96, 0xd2b4, 0xcab4, 0xd2b4, 0xd2b4, 0xca94, 0xcab4, 0xd294, 0xd294, 0xd273, 0xc2b4, 0x5c9a, 0x061f, 0x061f, 0x063f, 0x7419, 0xd273, 0xd273, 0xca53, 0xca53, 0xd233, 0xca53, 0xaaf6, 0x153c, 0x2951, 0x30f0, 0x30f0, 0x28ef, 0x28ef, 0x28cf, 0x28cf, 0x28cf, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x0117, 0x0119, 0x0119, 0x0119, 0x0119, 0x0117, 0x18ce, 0x18ad, 0x18ad, 0x18ae, 0x18ae, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x08f6, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x011a, 0x08f5, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18ce, 0x00f7, 0x0119, 0x0119, 0x10b0, 0x18ae, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x208d, 0x18ad, 0x10d2, 0x08f3, 0x10d3, 0x10d2, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0xb07a, 0xe85f, 0xe85f, 0xe07f, 0xe85f, 0xe87f, 0xe07f, 0xe85f, 0xe07f, 0x9898, 0x20ad, 0x18ad, 0x18cd, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x011a, 0x0119, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18ae, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x011a, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20cf, 0x28cf, 0x28cf, 0x28cf, 0x28ef, 0x30f0, 0x30f0, 0x3110, 0x3910, 0x3911, 0x3911, 0x4112, 0x4132, 0x4932, 0x5153, 0xbb15, 0xd395, 0xd375, 0xd375, 0xd375, 0xd375, 0xd375, 0xd355, 0xd355, 0xd354, 0xd355, 0xd335, 0xd355, 0xd335, 0xd335, 0xd315, 0xcb34, 0xd315, 0xd314, 0xd314, 0xd315, 0xd314, 0xd2f4, 0xd2f5, 0xd2f4, 0xcaf4, 0xd2f4, 0xd2d4, 0xd2d4, 0xd2d5, 0xd2d4, 0xd2d4, 0xbb55, 0x7499, 0x35dc, 0x8439, 0xc2f4, 0xd2b4, 0xd294, 0xd294, 0xd294, 0xca93, 0xd294, 0xd274, 0xca74, 0x9b76, 0x061f, 0x061f, 0x83d8, 0xc295, 0xca53, 0xca53, 0xca53, 0xca53, 0x7bb8, 0x063f, 0x2a34, 0x30f0, 0x30f0, 0x30ef, 0x30f0, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ae, 0x20ae, 0x20ae, 0x20ad, 0x20ae, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x08f5, 0x0119, 0x0119, 0x011a, 0x0119, 0x011a, 0x00f9, 0x08d5, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x10d2, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x011a, 0x00f7, 0x18ce, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ce, 0x00f7, 0x0119, 0x0118, 0x18d0, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ae, 0x00f7, 0x0119, 0x00f9, 0x0119, 0x0119, 0x00f7, 0x18ce, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x38b0, 0xf05f, 0xe83f, 0xf03f, 0xf05f, 0xf05f, 0xf03f, 0xf03f, 0xf03f, 0xf05f, 0xe83f, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x011a, 0x18ad, 0x18ad, 0x18ae, 0x18ae, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x011a, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x30ef, 0x30f0, 0x30f0, 0x30f0, 0x3911, 0x3911, 0x3911, 0x4112, 0x4132, 0x4933, 0x5173, 0xbb35, 0xd395, 0xd375, 0xd375, 0xd375, 0xd375, 0xd355, 0xd355, 0xd355, 0xd355, 0xd355, 0xd335, 0xd335, 0xd335, 0xd335, 0xd335, 0xcb35, 0xd315, 0xd314, 0xd314, 0xd314, 0xd314, 0xd2f4, 0xd2f4, 0xd2f4, 0xd2f5, 0xd2f5, 0xcad4, 0xd2f4, 0xcad4, 0xd2d4, 0xd2d4, 0xcab4, 0xd2b4, 0xcab4, 0xcab4, 0x8bf8, 0x3d5c, 0x6499, 0xc2d4, 0xd294, 0xd294, 0xca74, 0xca74, 0xd274, 0xca74, 0xca74, 0x54bb, 0x5c9a, 0x353d, 0x1dbe, 0x4cbb, 0x9377, 0x9b36, 0x44fc, 0x061f, 0x1bf9, 0x3911, 0x3910, 0x30f0, 0x30f0, 0x30f0, 0x30f0, 0x30ef, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x0119, 0x0119, 0x011a, 0x011a, 0x0119, 0x011a, 0x0119, 0x0119, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x10d2, 0x0119, 0x0119, 0x0119, 0x0119, 0x08f4, 0x10f3, 0x10d2, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x20ad, 0x18cd, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ae, 0x18ae, 0x00f7, 0x0119, 0x0118, 0x18ce, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x08f5, 0x011a, 0x0119, 0x011a, 0x011a, 0x0119, 0x0119, 0x08f5, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x20ae, 0x18ad, 0x5092, 0xf83f, 0xf83f, 0xf03f, 0xf83f, 0xf83f, 0xf83f, 0xf83f, 0xf81f, 0xf03f, 0xf83f, 0x5092, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x011a, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x28ef, 0x30f0, 0x30f0, 0x30f0, 0x30f0, 0x3911, 0x3911, 0x3911, 0x4112, 0x4132, 0x4932, 0x69b3, 0xc355, 0xd375, 0xd375, 0xd375, 0xd375, 0xd375, 0xd375, 0xd375, 0xd355, 0xd355, 0xd355, 0xd335, 0xd335, 0xd335, 0xd335, 0xd315, 0xd335, 0xd335, 0xd314, 0xd314, 0xd314, 0xd2f5, 0xd2f5, 0xd2f4, 0xd2f4, 0xd2f4, 0xd2f4, 0xd2d4, 0xd2d4, 0xd2d4, 0xd2d4, 0xd2d4, 0xd2d4, 0xcad4, 0xcab4, 0xd2b4, 0xd2b4, 0xcab4, 0xd294, 0x9b97, 0x453c, 0x6c59, 0xc2b4, 0xca74, 0xd274, 0xd273, 0xca73, 0xd273, 0xc294, 0x6c39, 0xc294, 0xca53, 0x8b98, 0x4cbb, 0x0dff, 0x063f, 0x0d7e, 0x3972, 0x3911, 0x3911, 0x3911, 0x38f0, 0x30f0, 0x30f0, 0x30f0, 0x30ef, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ae, 0x20ce, 0x20ce, 0x20ae, 0x20ae, 0x20ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x0119, 0x0119, 0x0119, 0x0119, 0x011a, 0x011a, 0x0119, 0x011a, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18cd, 0x20ae, 0x18ad, 0x18ad, 0x10d2, 0x0119, 0x0119, 0x0119, 0x00f9, 0x10cf, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ce, 0x00f7, 0x011a, 0x0119, 0x011a, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x011a, 0x0119, 0x0119, 0x011a, 0x0119, 0x0119, 0x18cd, 0x18ad, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x5092, 0xf81f, 0xf81f, 0xf81f, 0xf81f, 0xf81f, 0xf81f, 0xf81f, 0xf81f, 0xf81f, 0xf81f, 0x5092, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x011a, 0x0119, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ae, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ae, 0x20ae, 0x20ad, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x28cf, 0x28ce, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x30f0, 0x30f0, 0x30f0, 0x38f0, 0x3911, 0x3911, 0x4111, 0x4112, 0x4132, 0x4933, 0x9254, 0xd395, 0xd375, 0xd375, 0xd375, 0xd375, 0xd355, 0xd375, 0xd355, 0xd355, 0xd355, 0xd335, 0xd335, 0xd355, 0xd335, 0xd335, 0xd335, 0xd335, 0xd335, 0xd314, 0xd314, 0xd314, 0xd314, 0xd2f4, 0xd2f4, 0xd2f4, 0xd2f5, 0xd2f4, 0xd2d4, 0xd2d4, 0xcad4, 0xd2d4, 0xcad4, 0xd2d4, 0xd2b4, 0xcab4, 0xd2b4, 0xd2b4, 0xcab4, 0xd294, 0xd294, 0xd294, 0xca94, 0x9b77, 0x44dc, 0x73f9, 0xca73, 0xca74, 0xd254, 0xca73, 0xca53, 0xc294, 0x351c, 0x6c3a, 0xc294, 0xd253, 0xca34, 0x83b8, 0x5a55, 0x4132, 0x4132, 0x3912, 0x3911, 0x3911, 0x3910, 0x30f0, 0x30f0, 0x30f0, 0x28f0, 0x28ef, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x20cf, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ae, 0x18ad, 0x20ae, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x011a, 0x0119, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18b0, 0x0119, 0x011a, 0x0119, 0x00f8, 0x18d0, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ce, 0x0117, 0x0119, 0x0119, 0x00f9, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x011a, 0x0119, 0x0119, 0x0119, 0x011a, 0x0119, 0x011a, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x4090, 0xf81f, 0xf81f, 0xf81f, 0xf81f, 0xf81f, 0xf81f, 0xf81f, 0xf81f, 0xf81f, 0xf81f, 0x28af, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ae, 0x18ad, 0x18ad, 0x18cd, 0x20ad, 0x0119, 0x0119, 0x18ae, 0x18ad, 0x18ae, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x28cf, 0x28cf, 0x28cf, 0x28ef, 0x28ef, 0x28f0, 0x30f0, 0x30f0, 0x30f0, 0x38f0, 0x3911, 0x3911, 0x4112, 0x4132, 0x4132, 0x69d3, 0xc355, 0xd395, 0xd395, 0xd375, 0xd375, 0xd375, 0xd375, 0xd355, 0xd355, 0xd355, 0xd355, 0xd355, 0xd355, 0xd335, 0xcb55, 0xd335, 0xd335, 0xd335, 0xd315, 0xd314, 0xd314, 0xd314, 0xd314, 0xd2f4, 0xd2f4, 0xd2f4, 0xd2f4, 0xd2f4, 0xcad4, 0xd2f4, 0xd2d4, 0xd2d4, 0xd2b4, 0xd2b4, 0xd2b4, 0xcab4, 0xcab4, 0xcab4, 0xd2b4, 0xcab4, 0xd294, 0xd294, 0xd294, 0xca94, 0xd274, 0xca74, 0x8b78, 0x447c, 0xa316, 0xd253, 0xd253, 0xca54, 0xca53, 0xc294, 0x257d, 0x0ddf, 0x83b8, 0xd233, 0xca33, 0xca33, 0xba13, 0x7993, 0x4112, 0x4112, 0x4111, 0x3911, 0x3911, 0x38f0, 0x30f0, 0x28f0, 0x30d0, 0x30d0, 0x28ef, 0x28cf, 0x28cf, 0x28cf, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ae, 0x20ae, 0x18ad, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18cd, 0x18ad, 0x08f5, 0x0119, 0x011a, 0x011a, 0x0119, 0x011a, 0x00f9, 0x08f5, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x10cf, 0x0119, 0x00f9, 0x0119, 0x00f8, 0x18cf, 0x18ad, 0x18ae, 0x18cd, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x00f9, 0x011a, 0x0119, 0x011a, 0x00f9, 0x0119, 0x0119, 0x00f9, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ae, 0x20ad, 0xd03c, 0xf81f, 0xf81f, 0xf81f, 0xf81f, 0xf81f, 0xf81f, 0xf81f, 0xf81f, 0xd03c, 0x18ad, 0x20ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x00f9, 0x0119, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ae, 0x18ae, 0x20ae, 0x20ad, 0x20ae, 0x20ae, 0x20ad, 0x20ad, 0x20ae, 0x20ae, 0x20ce, 0x20ce, 0x20ae, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x30f0, 0x30f0, 0x30f0, 0x30f0, 0x3911, 0x3911, 0x3911, 0x4111, 0x4112, 0x5193, 0xaad4, 0xd375, 0xd395, 0xd375, 0xd375, 0xd375, 0xd375, 0xd375, 0xd355, 0xd355, 0xd355, 0xd355, 0xd355, 0xd355, 0xd335, 0xd335, 0xd335, 0xd314, 0xd314, 0xd315, 0xd314, 0xd314, 0xd314, 0xd314, 0xd315, 0xd2f4, 0xd2f4, 0xd2f4, 0xd2f4, 0xd2d4, 0xd2d4, 0xd2d4, 0xcad4, 0xd2b4, 0xd2b4, 0xd2d4, 0xd2b4, 0xcab4, 0xd2b4, 0xd2b4, 0xd294, 0xd2b4, 0xca94, 0xca94, 0xd294, 0xca74, 0xca73, 0xca74, 0xd274, 0xc295, 0x6bb9, 0x6b99, 0xca54, 0xca53, 0xd254, 0xca33, 0xc294, 0x24fd, 0x063f, 0x351d, 0xb295, 0xca13, 0xca13, 0xca13, 0xb9f3, 0x7992, 0x4111, 0x4112, 0x38f1, 0x3911, 0x3911, 0x38f0, 0x30f0, 0x30f0, 0x30ef, 0x28cf, 0x28cf, 0x28cf, 0x20cf, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18cf, 0x00f7, 0x0119, 0x0119, 0x0119, 0x0119, 0x0117, 0x18ce, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cf, 0x0118, 0x00f9, 0x0119, 0x00f9, 0x18d0, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x08f5, 0x0119, 0x00f9, 0x0119, 0x0119, 0x0119, 0x00fa, 0x08f5, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x20ad, 0x20ad, 0x18ad, 0x18ad, 0x20ad, 0x4090, 0xf03f, 0xf81f, 0xf81f, 0xf81f, 0xf81f, 0xf81f, 0xf81f, 0xf81f, 0x6073, 0x20ad, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x20ae, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x0119, 0x011a, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x20ae, 0x20ae, 0x20cd, 0x20ae, 0x20ad, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x28ce, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x30ef, 0x28f0, 0x30f0, 0x30f0, 0x30f0, 0x3910, 0x3911, 0x3912, 0x4112, 0x4112, 0x8233, 0xcb55, 0xd375, 0xd395, 0xd375, 0xd375, 0xd375, 0xd375, 0xd375, 0xd355, 0xd355, 0xd355, 0xd355, 0xd335, 0xd335, 0xd335, 0xd335, 0xd335, 0xd334, 0xd314, 0xd335, 0xd314, 0xd314, 0xd2f4, 0xd2f4, 0xd2f4, 0xd2f4, 0xd2f4, 0xd2f4, 0xd2d4, 0xd2d4, 0xd2d4, 0xcad4, 0xd2d4, 0xd2b4, 0xd2b4, 0xd2b4, 0xd2b4, 0xcab4, 0xd2b4, 0xd2b4, 0xcab4, 0xd294, 0xd294, 0xd294, 0xca74, 0xca74, 0xca74, 0xca73, 0xca73, 0xca53, 0xca53, 0xca74, 0xaab6, 0x5b7a, 0xba74, 0xca53, 0xca33, 0xca33, 0xc254, 0x4bfb, 0x059f, 0x0d7f, 0x8b57, 0xc9f3, 0xca13, 0xc9f3, 0xc9f3, 0xa9b3, 0x5952, 0x4112, 0x3931, 0x3911, 0x3111, 0x3110, 0x30f0, 0x30f0, 0x28f0, 0x28ef, 0x28cf, 0x28cf, 0x28cf, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x10d2, 0x08f3, 0x10d3, 0x10d2, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18d0, 0x00f9, 0x0119, 0x0119, 0x0118, 0x10cf, 0x18ad, 0x18ae, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ce, 0x00f7, 0x011a, 0x0119, 0x011a, 0x0119, 0x00f7, 0x18ce, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x4091, 0xe01d, 0xf81f, 0xf81f, 0xf81f, 0xf81f, 0xf81f, 0x7074, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x011a, 0x08f3, 0x10d2, 0x20cd, 0x18ad, 0x18ad, 0x18ad, 0x20ae, 0x18ad, 0x20ad, 0x10d1, 0x0119, 0x0119, 0x10d2, 0x20ad, 0x18ad, 0x20ae, 0x18cd, 0x20ae, 0x20cd, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x28ef, 0x28cf, 0x28ef, 0x30f0, 0x30f0, 0x30f0, 0x30f0, 0x3910, 0x3911, 0x3911, 0x3912, 0x4132, 0x4953, 0xb2f4, 0xd395, 0xdb95, 0xd375, 0xd375, 0xd375, 0xd375, 0xd375, 0xd375, 0xd355, 0xd355, 0xd355, 0xd355, 0xd355, 0xd335, 0xd335, 0xd334, 0x84f9, 0x467d, 0x1f5e, 0x07df, 0x07df, 0x07df, 0x07bf, 0x07bf, 0x07bf, 0x07bf, 0x07bf, 0x07bf, 0x07bf, 0x07bf, 0x07bf, 0x079f, 0x1f1e, 0x367d, 0x367c, 0x4ddb, 0x653a, 0x8498, 0x9bf7, 0xc2f5, 0xd294, 0xd294, 0xd294, 0xd294, 0xca94, 0xca94, 0xca74, 0xca73, 0xd253, 0xd254, 0xca74, 0xca53, 0xca53, 0xca53, 0xd253, 0x72d9, 0xaa76, 0xca33, 0xd233, 0xca13, 0xca33, 0x1c7e, 0x059f, 0x05ff, 0x5c7a, 0xca13, 0xc9f3, 0xc9f3, 0xc9f3, 0xd1f3, 0x9193, 0x4911, 0x3911, 0x3911, 0x3911, 0x3110, 0x30f0, 0x30f0, 0x30f0, 0x28ef, 0x28ef, 0x28cf, 0x28cf, 0x28ce, 0x20ce, 0x20ce, 0x20ce, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x20ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, + 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0118, 0x10b0, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x10d1, 0x08f3, 0x08f3, 0x10d2, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x7074, 0x9077, 0x8856, 0x8876, 0x388f, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ae, 0x18ad, 0x18cd, 0x18ae, 0x18ce, 0x00f7, 0x0119, 0x011a, 0x0119, 0x0119, 0x00f7, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ce, 0x08f7, 0x0119, 0x011a, 0x0119, 0x0119, 0x08f7, 0x18ce, 0x20ad, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x20ce, 0x20ae, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x30ef, 0x30f0, 0x30f0, 0x30f0, 0x3111, 0x3111, 0x38f1, 0x3911, 0x4111, 0x4132, 0x6193, 0xc355, 0xd396, 0xd395, 0xd395, 0xd395, 0xd375, 0xd375, 0xd375, 0xd355, 0xd355, 0xd355, 0xd375, 0xd355, 0xd355, 0xd335, 0xd335, 0xb3d6, 0x271d, 0x07ff, 0x07ff, 0x07bf, 0x079f, 0x079f, 0x077f, 0x079f, 0x077f, 0x077f, 0x077f, 0x077f, 0x077f, 0x077f, 0x077f, 0x075f, 0x077f, 0x077f, 0x077f, 0x077f, 0x077f, 0x077f, 0x077f, 0x079f, 0x079f, 0x1efe, 0x461c, 0x6d1a, 0x9bd6, 0xca74, 0xca74, 0xca74, 0xca73, 0xd274, 0xca74, 0xca53, 0xd254, 0xca54, 0xd253, 0xca53, 0xca33, 0xa275, 0x9a76, 0xca33, 0xca13, 0xca33, 0x9ad6, 0x04ff, 0x05bf, 0x063f, 0x357c, 0xc254, 0xc9f3, 0xd1f3, 0xc9f3, 0xc9f3, 0xb9d3, 0x6152, 0x4111, 0x3911, 0x3911, 0x38f0, 0x30f0, 0x30f0, 0x30f0, 0x28ef, 0x28cf, 0x28cf, 0x28cf, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x20ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, + 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x011a, 0x0119, 0x0119, 0x011a, 0x00f8, 0x10d0, 0x18ae, 0x18ad, 0x18ad, 0x18ae, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x208e, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18cd, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x08f5, 0x0119, 0x0119, 0x0119, 0x0119, 0x011a, 0x00f9, 0x08f5, 0x18ae, 0x20ad, 0x18ad, 0x08f4, 0x0119, 0x011a, 0x00f7, 0x0117, 0x0119, 0x011a, 0x08f5, 0x20ae, 0x20ae, 0x20ad, 0x20ce, 0x20ce, 0x20ce, 0x20cd, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x30ef, 0x30f0, 0x30f0, 0x30f0, 0x38f0, 0x3910, 0x3911, 0x3911, 0x3911, 0x4112, 0x4132, 0x6193, 0xcb55, 0xd395, 0xd395, 0xd375, 0xd395, 0xd375, 0xd375, 0xd375, 0xd355, 0xd375, 0xd355, 0xd355, 0xd355, 0xcb55, 0xd334, 0xcb55, 0xac17, 0x0fbf, 0x07ff, 0x07ff, 0x07bf, 0x07bf, 0x077f, 0x075f, 0x075f, 0x073f, 0x073f, 0x073f, 0x073f, 0x073f, 0x073f, 0x073f, 0x073f, 0x073f, 0x073f, 0x073f, 0x073f, 0x073f, 0x073f, 0x073f, 0x073f, 0x073f, 0x075f, 0x075f, 0x077f, 0x077f, 0x079f, 0x07bf, 0x365c, 0x74b9, 0xb315, 0xca73, 0xca54, 0xca54, 0xca53, 0xca53, 0xca53, 0xca33, 0xd233, 0xca33, 0xb235, 0xaa16, 0xca33, 0xca13, 0xca13, 0x7b37, 0x055f, 0x05ff, 0x067f, 0x25dd, 0xa2f5, 0xd1d3, 0xc9f3, 0xc9d3, 0xc9d2, 0xc9d3, 0x9193, 0x4932, 0x4111, 0x3911, 0x38f0, 0x30f0, 0x30f0, 0x30f0, 0x28ef, 0x28cf, 0x28cf, 0x28cf, 0x20cf, 0x20ce, 0x20ce, 0x20ce, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, + 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x18b0, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x20ad, 0x0119, 0x00f9, 0x011a, 0x011a, 0x0119, 0x011a, 0x0119, 0x011a, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x10d3, 0x18ce, 0x20ad, 0x10f4, 0x011a, 0x0119, 0x20ae, 0x20ae, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x30ef, 0x30f0, 0x30f0, 0x30f0, 0x30f0, 0x38f0, 0x3911, 0x3911, 0x3911, 0x4111, 0x4132, 0x4132, 0x61b3, 0xcb75, 0xd395, 0xd395, 0xd395, 0xd375, 0xd375, 0xd375, 0xd375, 0xd375, 0xd355, 0xd375, 0xd355, 0xd355, 0xd355, 0xd335, 0xd335, 0x8cb8, 0x0fbf, 0x07ff, 0x07df, 0x07bf, 0x079f, 0x077f, 0x075f, 0x073f, 0x071f, 0x06ff, 0x06ff, 0x06ff, 0x06ff, 0x06ff, 0x06ff, 0x06ff, 0x06df, 0x06ff, 0x06df, 0x06df, 0x06df, 0x06ff, 0x06ff, 0x06ff, 0x06ff, 0x071f, 0x071f, 0x071f, 0x073f, 0x073f, 0x073f, 0x073f, 0x075f, 0x075f, 0x071f, 0x2dfd, 0x7419, 0xb2b5, 0xca53, 0xca53, 0xca33, 0xca33, 0xca33, 0xca33, 0xd233, 0xca14, 0xa215, 0xca13, 0xca13, 0xc9f3, 0x8338, 0x05bf, 0x063f, 0x06bf, 0x0e9f, 0xaad5, 0xc9d3, 0xc9d2, 0xc9d3, 0xc9d3, 0xc9b2, 0xb1b2, 0x5931, 0x3911, 0x3911, 0x3911, 0x30f0, 0x30f0, 0x28f0, 0x28ef, 0x28ef, 0x28cf, 0x28cf, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ae, 0x20ae, 0x20ae, 0x20ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x0119, 0x0119, 0x011a, 0x0119, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18cf, 0x011a, 0x0119, 0x10d0, 0x18ad, 0x20ae, 0x18d0, 0x0119, 0x0119, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20cf, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x28ef, 0x28ef, 0x30f0, 0x30f0, 0x30f0, 0x30f0, 0x38f0, 0x3111, 0x38f1, 0x3911, 0x3911, 0x4112, 0x4112, 0x4132, 0x6193, 0xcb75, 0xd395, 0xd395, 0xd395, 0xd375, 0xd375, 0xd375, 0xd375, 0xd375, 0xd355, 0xd355, 0xd355, 0xd354, 0xd355, 0xd355, 0xc395, 0x5dfa, 0x07ff, 0x07df, 0x07bf, 0x079f, 0x077f, 0x075f, 0x073f, 0x071f, 0x06ff, 0x06df, 0x06bf, 0x06bf, 0x069f, 0x069f, 0x069f, 0x069f, 0x06bf, 0x06bf, 0x069f, 0x069f, 0x069f, 0x069f, 0x069f, 0x069f, 0x069f, 0x06bf, 0x06bf, 0x06bf, 0x06df, 0x06df, 0x06ff, 0x06ff, 0x06ff, 0x071f, 0x071f, 0x06ff, 0x06bf, 0x065f, 0x05bf, 0x443c, 0x8af7, 0xca33, 0xca33, 0xca33, 0xca33, 0xca13, 0xca13, 0xca13, 0x99b6, 0xc9f3, 0xca13, 0xc9f3, 0x4c3b, 0x061f, 0x069f, 0x06ff, 0x0ebe, 0xa2d5, 0xc9b3, 0xc9d3, 0xc9b2, 0xc9b3, 0xc9b2, 0xc1b3, 0x7152, 0x3911, 0x3911, 0x3110, 0x30f0, 0x30f0, 0x28f0, 0x30d0, 0x28cf, 0x28cf, 0x28cf, 0x20cf, 0x20ce, 0x20ce, 0x20ce, 0x20ae, 0x20ae, 0x20ad, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ce, 0x08f7, 0x0119, 0x011a, 0x0119, 0x0119, 0x0119, 0x011a, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x0119, 0x0119, 0x011a, 0x011a, 0x011a, 0x0119, 0x20ae, 0x20ad, 0x18ce, 0x0119, 0x0119, 0x10d3, 0x20ce, 0x20ae, 0x10f4, 0x0119, 0x011a, 0x20ce, 0x20ae, 0x20ce, 0x20ce, 0x20ce, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x28ef, 0x28cf, 0x28ef, 0x30ef, 0x30f0, 0x30f0, 0x30f0, 0x30f0, 0x30f0, 0x3911, 0x3911, 0x3911, 0x4112, 0x3912, 0x4112, 0x4132, 0x4133, 0x5153, 0xbb35, 0xd395, 0xd396, 0xd395, 0xd375, 0xd375, 0xd375, 0xd355, 0xd375, 0xd355, 0xd355, 0xd355, 0xd355, 0xd355, 0xbbd6, 0x5dfb, 0x0fbf, 0x07ff, 0x07df, 0x07bf, 0x077f, 0x075f, 0x073f, 0x071f, 0x06ff, 0x06df, 0x06bf, 0x069f, 0x069f, 0x067f, 0x067f, 0x067f, 0x065f, 0x065f, 0x065f, 0x065f, 0x065f, 0x065f, 0x065f, 0x065f, 0x065f, 0x065f, 0x067f, 0x065f, 0x065f, 0x067f, 0x067f, 0x069f, 0x069f, 0x069f, 0x06bf, 0x06bf, 0x06df, 0x06bf, 0x069f, 0x065f, 0x05ff, 0x053f, 0x049f, 0x1bbe, 0x8298, 0xca13, 0xca13, 0xca13, 0xca13, 0xca13, 0xd1f3, 0x99b6, 0xc9f3, 0xc9f3, 0xb254, 0x0d9f, 0x067f, 0x06df, 0x06ff, 0x0ebf, 0xa2d5, 0xc9d2, 0xc9b3, 0xc9b3, 0xc9b3, 0xc9b2, 0xc9b3, 0x8152, 0x3911, 0x3911, 0x3911, 0x30f0, 0x30f0, 0x28f0, 0x30f0, 0x28ef, 0x28cf, 0x28cf, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ae, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x00f7, 0x0119, 0x0119, 0x0119, 0x00f9, 0x0119, 0x0119, 0x011a, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x20ad, 0x18ae, 0x08f5, 0x0119, 0x011a, 0x0119, 0x0119, 0x0119, 0x011a, 0x08f5, 0x18ae, 0x20ae, 0x18ad, 0x08f5, 0x0119, 0x0119, 0x0918, 0x0917, 0x0139, 0x011a, 0x10f5, 0x20ce, 0x20cf, 0x28cf, 0x28ce, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x28ef, 0x30ef, 0x30f0, 0x30f0, 0x30f0, 0x3110, 0x30f0, 0x38f0, 0x3911, 0x3911, 0x3911, 0x4112, 0x4112, 0x4132, 0x4932, 0x4133, 0x4933, 0xbb35, 0xd395, 0xd396, 0xd395, 0xd375, 0xd375, 0xd375, 0xd375, 0xd375, 0xd375, 0xd355, 0xd355, 0xac37, 0x6d9a, 0x2efe, 0x07ff, 0x07ff, 0x07df, 0x07bf, 0x079f, 0x075f, 0x073f, 0x071f, 0x06df, 0x06bf, 0x069f, 0x067f, 0x065f, 0x065f, 0x063f, 0x063f, 0x061f, 0x061f, 0x061f, 0x061f, 0x061f, 0x061f, 0x061f, 0x061f, 0x061f, 0x05ff, 0x061f, 0x061f, 0x061f, 0x061f, 0x061f, 0x061f, 0x063f, 0x063f, 0x063f, 0x065f, 0x065f, 0x065f, 0x065f, 0x067f, 0x067f, 0x063f, 0x05df, 0x055f, 0x04bf, 0x043f, 0x037f, 0x1abe, 0x7a18, 0xca13, 0xca13, 0xca13, 0xc9f3, 0xc1f4, 0x7178, 0xc9f2, 0xd1f3, 0x8338, 0x061f, 0x06bf, 0x06ff, 0x071f, 0x0edf, 0xa2d5, 0xc9b3, 0xc9b3, 0xc9b2, 0xc992, 0xc992, 0xc993, 0x9172, 0x3911, 0x3910, 0x3110, 0x30f0, 0x30f0, 0x30f0, 0x28ef, 0x28ef, 0x28cf, 0x28cf, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ae, 0x20ad, 0x20ae, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x00f7, 0x0119, 0x011a, 0x0119, 0x011a, 0x0119, 0x011a, 0x0119, 0x0119, 0x011a, 0x011a, 0x011a, 0x011a, 0x011a, 0x011a, 0x011a, 0x011a, 0x011a, 0x011a, 0x011a, 0x011a, 0x011a, 0x011a, 0x011a, 0x011a, 0x011a, 0x011a, 0x011a, 0x011a, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ae, 0x18ae, 0x18ae, 0x00f7, 0x011a, 0x0119, 0x0119, 0x011a, 0x00f7, 0x18ce, 0x20ad, 0x20ae, 0x20ae, 0x18ce, 0x0918, 0x011a, 0x011a, 0x0919, 0x011a, 0x0917, 0x20cf, 0x28ae, 0x20cf, 0x28cf, 0x28cf, 0x28cf, 0x28ef, 0x28ef, 0x28ef, 0x30ef, 0x30f0, 0x30f0, 0x30f0, 0x38f0, 0x38f0, 0x3911, 0x3911, 0x3911, 0x3911, 0x3912, 0x4112, 0x4132, 0x4932, 0x4933, 0x4933, 0x4953, 0xa2b4, 0xd395, 0xd395, 0xd375, 0xd375, 0xd375, 0xd355, 0xd375, 0xd355, 0xc3b6, 0x8519, 0x4e3c, 0x0f9f, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07df, 0x079f, 0x077f, 0x077f, 0x075f, 0x073f, 0x06ff, 0x06bf, 0x069f, 0x067f, 0x065f, 0x063f, 0x061f, 0x061f, 0x05ff, 0x05df, 0x05df, 0x05df, 0x05df, 0x05bf, 0x05bf, 0x05df, 0x05df, 0x05bf, 0x05bf, 0x05bf, 0x05bf, 0x05bf, 0x05bf, 0x05df, 0x05df, 0x05df, 0x05df, 0x05ff, 0x05ff, 0x061f, 0x061f, 0x061f, 0x061f, 0x061f, 0x061f, 0x05df, 0x057f, 0x04ff, 0x047f, 0x03df, 0x031f, 0x025f, 0x19de, 0x79b8, 0xc9f3, 0xca13, 0xc9f3, 0xb9d3, 0xa1b5, 0xc9d3, 0xc9f3, 0x4c5b, 0x065f, 0x06df, 0x071f, 0x071f, 0x0edf, 0xa2b5, 0xc9b3, 0xc9b3, 0xc992, 0xc992, 0xc993, 0xc992, 0xb172, 0x4911, 0x3911, 0x38f0, 0x30f0, 0x30f0, 0x30ef, 0x28ef, 0x28ef, 0x28cf, 0x20ce, 0x20ce, 0x20ce, 0x20ae, 0x20ce, 0x20ae, 0x20ae, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x00f7, 0x011a, 0x0119, 0x0119, 0x0119, 0x011a, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ae, 0x10d2, 0x10f3, 0x10f3, 0x10d2, 0x20ae, 0x18ae, 0x20ae, 0x18ce, 0x20ce, 0x20ce, 0x20ce, 0x18f2, 0x10f4, 0x1114, 0x18f3, 0x20cf, 0x28ce, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x28ef, 0x28ef, 0x30ef, 0x30f0, 0x30f0, 0x30f0, 0x3110, 0x38f0, 0x3911, 0x3911, 0x3911, 0x3912, 0x3911, 0x4112, 0x4132, 0x4132, 0x4933, 0x4933, 0x4933, 0x4953, 0xa2b5, 0xd395, 0xd395, 0xd395, 0xd375, 0xd375, 0xd375, 0xc3b5, 0x7d59, 0x36bd, 0x07df, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07bf, 0x07bf, 0x079f, 0x079f, 0x077f, 0x077f, 0x071f, 0x06de, 0x069e, 0x067e, 0x065e, 0x063f, 0x063f, 0x061e, 0x05ff, 0x05df, 0x05bf, 0x05bf, 0x059f, 0x059f, 0x059f, 0x057f, 0x057f, 0x057f, 0x057f, 0x057f, 0x057f, 0x057f, 0x057f, 0x057f, 0x057f, 0x057f, 0x057f, 0x059f, 0x059f, 0x059f, 0x05bf, 0x05bf, 0x05bf, 0x05df, 0x05df, 0x05df, 0x05bf, 0x057f, 0x04ff, 0x049f, 0x03ff, 0x037f, 0x02bf, 0x021f, 0x017f, 0x213d, 0x9996, 0xc9f3, 0xc9f3, 0xb9d4, 0x99b6, 0xc9d3, 0xc213, 0x0dbf, 0x069f, 0x06ff, 0x071f, 0x073f, 0x0eff, 0xa2b5, 0xc992, 0xc992, 0xc992, 0xc992, 0xc972, 0xc972, 0xa972, 0x4911, 0x3911, 0x38f0, 0x30f0, 0x30f0, 0x28ef, 0x28cf, 0x28cf, 0x28cf, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ae, 0x20ae, 0x20ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x0117, 0x0119, 0x0119, 0x011a, 0x011a, 0x0119, 0x011a, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ae, 0x18ad, 0x20ad, 0x20ad, 0x20ad, 0x20ad, 0x20ad, 0x20ae, 0x18ce, 0x20ae, 0x20ad, 0x20ae, 0x20ae, 0x20ce, 0x20ae, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20af, 0x20ce, 0x28ce, 0x28cf, 0x28ef, 0x28cf, 0x28cf, 0x28ef, 0x30f0, 0x30f0, 0x30f0, 0x30f0, 0x3110, 0x3910, 0x3911, 0x3911, 0x3911, 0x3911, 0x4111, 0x4131, 0x4112, 0x4132, 0x4913, 0x4933, 0x4933, 0x4953, 0x5154, 0xaab5, 0xd375, 0xd395, 0xd375, 0xd395, 0xd375, 0x94d8, 0x467c, 0x07df, 0x07df, 0x07df, 0x07df, 0x07df, 0x07ff, 0x07ff, 0x07ff, 0x07df, 0x07df, 0x07bf, 0x07bf, 0x079f, 0x079f, 0x077f, 0x077f, 0x06de, 0x06be, 0x067e, 0x067e, 0x065e, 0x063e, 0x061e, 0x05fe, 0x05de, 0x05de, 0x05be, 0x059f, 0x057f, 0x057f, 0x055f, 0x055f, 0x053f, 0x053f, 0x053f, 0x053f, 0x053f, 0x053f, 0x053f, 0x053f, 0x053f, 0x053f, 0x053f, 0x053f, 0x053f, 0x055f, 0x055f, 0x055f, 0x057f, 0x057f, 0x057f, 0x057f, 0x057f, 0x055f, 0x04ff, 0x04bf, 0x041f, 0x039f, 0x031f, 0x025f, 0x01bf, 0x013f, 0x00bf, 0x40fb, 0xb1b5, 0xc9d2, 0xb1d5, 0xb1d4, 0xc9b3, 0x6399, 0x061f, 0x06df, 0x071f, 0x073f, 0x073f, 0x0eff, 0xa2b5, 0xc992, 0xc992, 0xc972, 0xc972, 0xc992, 0xc972, 0xb152, 0x4111, 0x3911, 0x30f0, 0x30f0, 0x30f0, 0x30ef, 0x28cf, 0x28cf, 0x28cf, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ae, 0x20ad, 0x20ad, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ae, 0x0117, 0x011a, 0x011a, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x011a, 0x0119, 0x011a, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x20ae, 0x20ae, 0x18ad, 0x20ae, 0x20ae, 0x20ce, 0x20cd, 0x20ae, 0x20ce, 0x20ce, 0x20ce, 0x28ce, 0x20cf, 0x20ce, 0x28cf, 0x28cf, 0x28cf, 0x28ef, 0x30ef, 0x30d0, 0x28f0, 0x3110, 0x30f0, 0x30f0, 0x30f1, 0x3911, 0x3911, 0x3911, 0x3911, 0x3911, 0x4112, 0x4132, 0x4132, 0x4132, 0x4932, 0x4933, 0x4953, 0x4953, 0x5153, 0x4a16, 0xa2b5, 0xd395, 0xd395, 0xd395, 0xd375, 0x8539, 0x1f5e, 0x07ff, 0x07df, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07df, 0x07df, 0x07df, 0x07bf, 0x07bf, 0x079f, 0x07bf, 0x075f, 0x06be, 0x069d, 0x067d, 0x065d, 0x063d, 0x063d, 0x061d, 0x05fe, 0x05de, 0x05de, 0x05be, 0x059e, 0x057e, 0x055f, 0x053f, 0x053f, 0x051f, 0x051f, 0x04ff, 0x04ff, 0x04ff, 0x04ff, 0x04ff, 0x04ff, 0x04ff, 0x04ff, 0x04ff, 0x04ff, 0x04ff, 0x051f, 0x051f, 0x051f, 0x051f, 0x051f, 0x051f, 0x053f, 0x053f, 0x051f, 0x04df, 0x04bf, 0x043f, 0x03df, 0x035f, 0x02bf, 0x021f, 0x017f, 0x00ff, 0x009f, 0x087f, 0x7119, 0xc9d3, 0xb1d4, 0xb9d3, 0xc9b3, 0x1cfe, 0x065f, 0x06ff, 0x071f, 0x073f, 0x073f, 0x1ebe, 0xb9f3, 0xc993, 0xc972, 0xc992, 0xc972, 0xc973, 0xc952, 0xb152, 0x4111, 0x3910, 0x38f0, 0x30f0, 0x30f0, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x20ce, 0x20ce, 0x20ce, 0x20ae, 0x20ae, 0x20ae, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ce, 0x00f7, 0x0119, 0x011a, 0x0139, 0x0119, 0x0119, 0x0119, 0x0119, 0x00f7, 0x18ae, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x20ad, 0x20ad, 0x18ad, 0x18ad, 0x20ae, 0x18ad, 0x20ad, 0x20cd, 0x20ce, 0x20ae, 0x20ae, 0x20cf, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20cf, 0x20cf, 0x28cf, 0x28cf, 0x28cf, 0x28ef, 0x28cf, 0x30f0, 0x30f0, 0x30f0, 0x30f0, 0x30f0, 0x3910, 0x3911, 0x3911, 0x3911, 0x3911, 0x4132, 0x4132, 0x4132, 0x4932, 0x4933, 0x4933, 0x4933, 0x4953, 0x4a15, 0x3439, 0x16bd, 0x8519, 0xd395, 0xd395, 0xd395, 0x94d8, 0x1f5e, 0x07df, 0x07df, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07df, 0x07df, 0x07df, 0x07df, 0x07df, 0x07bf, 0x07bf, 0x07bf, 0x07bf, 0x071e, 0x069d, 0x069d, 0x067d, 0x065d, 0x063d, 0x063d, 0x061d, 0x05fd, 0x05dd, 0x05bd, 0x059d, 0x059e, 0x057e, 0x055e, 0x053e, 0x051e, 0x04ff, 0x04ff, 0x04df, 0x04bf, 0x04bf, 0x04bf, 0x049f, 0x049f, 0x049f, 0x049f, 0x049f, 0x04bf, 0x04bf, 0x04bf, 0x04bf, 0x04bf, 0x04bf, 0x04df, 0x04bf, 0x04df, 0x04df, 0x04df, 0x04bf, 0x049f, 0x043f, 0x03df, 0x035f, 0x02ff, 0x025f, 0x01bf, 0x013f, 0x00df, 0x007f, 0x005f, 0x185e, 0x8957, 0x61b9, 0xc9d3, 0x9a96, 0x059f, 0x067f, 0x06ff, 0x071f, 0x073f, 0x075f, 0x267d, 0xb9d3, 0xc972, 0xc972, 0xc972, 0xc972, 0xc972, 0xc952, 0xb152, 0x4111, 0x38f1, 0x30f0, 0x30f0, 0x30f0, 0x28cf, 0x28cf, 0x28cf, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ae, 0x20ae, 0x20ad, 0x20ad, 0x18ad, 0x18ad, 0x20ad, 0x18cf, 0x00f7, 0x011a, 0x0119, 0x0119, 0x0119, 0x011a, 0x011a, 0x011a, 0x00f6, 0x18ce, 0x18ad, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ae, 0x20ae, 0x20ae, 0x20ad, 0x20ae, 0x20ae, 0x20ae, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20cf, 0x28cf, 0x20cf, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x30f0, 0x30f0, 0x30f0, 0x30f0, 0x3110, 0x38f1, 0x38f1, 0x3911, 0x3911, 0x4111, 0x4112, 0x4132, 0x4112, 0x4932, 0x4932, 0x4933, 0x4933, 0x69b4, 0x6336, 0x6cd9, 0x4e5b, 0x07df, 0x8539, 0xd395, 0xd395, 0xbc17, 0x3e9c, 0x07df, 0x07df, 0x07df, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07df, 0x07ff, 0x07df, 0x07df, 0x07df, 0x07bf, 0x07df, 0x06bd, 0x069c, 0x069c, 0x067c, 0x065c, 0x065c, 0x063c, 0x061c, 0x05fc, 0x05dc, 0x05bc, 0x05bd, 0x059d, 0x057d, 0x055d, 0x053e, 0x051e, 0x04fe, 0x04de, 0x04be, 0x04bf, 0x049f, 0x047f, 0x047f, 0x047f, 0x045f, 0x045f, 0x045f, 0x047f, 0x047f, 0x047f, 0x047f, 0x047f, 0x047f, 0x047f, 0x047f, 0x047f, 0x047f, 0x049f, 0x047f, 0x045f, 0x041f, 0x03df, 0x037f, 0x031f, 0x029f, 0x021f, 0x017f, 0x011f, 0x00bf, 0x005f, 0x001f, 0x001f, 0x00ff, 0x89b7, 0xc9b3, 0x447b, 0x065f, 0x06bf, 0x071f, 0x073f, 0x073f, 0x075f, 0x3d9b, 0xc972, 0xc972, 0xc972, 0xc972, 0xc952, 0xc952, 0xc952, 0xa132, 0x3911, 0x3911, 0x30f0, 0x30f0, 0x28ef, 0x28cf, 0x28cf, 0x20ce, 0x20cf, 0x20ce, 0x20ce, 0x20ce, 0x20ae, 0x20ad, 0x20ae, 0x20cd, 0x18ad, 0x18d0, 0x00f9, 0x0119, 0x0119, 0x0119, 0x00fa, 0x0119, 0x0119, 0x011a, 0x08f4, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18cd, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x20ce, 0x20ae, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x28ce, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x28ef, 0x30f0, 0x30f0, 0x3110, 0x30f0, 0x38f0, 0x3911, 0x3911, 0x3931, 0x40f1, 0x4111, 0x4132, 0x4132, 0x4132, 0x61b3, 0x9274, 0xb2f5, 0xc355, 0xd395, 0xd395, 0xd395, 0xbc16, 0x469d, 0x8539, 0xd376, 0xd375, 0x6dba, 0x0f9f, 0x07df, 0x07df, 0x07df, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07df, 0x07df, 0x07df, 0x07df, 0x077f, 0x06bc, 0x06bb, 0x069b, 0x067b, 0x065b, 0x063b, 0x063b, 0x061b, 0x05fb, 0x05db, 0x05bb, 0x059c, 0x059c, 0x057c, 0x055c, 0x053d, 0x051d, 0x04fd, 0x04dd, 0x04be, 0x049e, 0x047f, 0x047f, 0x045f, 0x043f, 0x043f, 0x041f, 0x041f, 0x041f, 0x041f, 0x041f, 0x043f, 0x043f, 0x043f, 0x043f, 0x043f, 0x043f, 0x043f, 0x043f, 0x043f, 0x041f, 0x03ff, 0x03bf, 0x037f, 0x033f, 0x02bf, 0x023f, 0x01df, 0x015f, 0x00df, 0x009f, 0x005f, 0x001f, 0x005f, 0x097f, 0xb9b3, 0xb214, 0x0dbf, 0x06ff, 0x075f, 0x073f, 0x073f, 0x075f, 0x077f, 0x6479, 0xc972, 0xc972, 0xc952, 0xc952, 0xc952, 0xc952, 0xc932, 0x9132, 0x3911, 0x3111, 0x30f0, 0x28f0, 0x28ef, 0x28cf, 0x28cf, 0x20ce, 0x20ce, 0x20ce, 0x20ae, 0x20ae, 0x20ae, 0x20ad, 0x18ad, 0x18d0, 0x00f9, 0x0119, 0x00f9, 0x0119, 0x0119, 0x011a, 0x0119, 0x0119, 0x08f4, 0x20cd, 0x18ad, 0x18ad, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, + 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ae, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ae, 0x20ae, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20cf, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x30ef, 0x30f0, 0x28f0, 0x30f0, 0x3110, 0x38f0, 0x38f1, 0x3911, 0x3911, 0x3912, 0x4111, 0x4132, 0x4132, 0x5152, 0x8234, 0xc335, 0xd395, 0xd395, 0xd395, 0xd395, 0xac57, 0x7d7a, 0x469c, 0x0f9f, 0xa4b8, 0xd395, 0x8539, 0x1f5e, 0x07df, 0x07df, 0x07df, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07df, 0x07ff, 0x07df, 0x075d, 0x06bb, 0x06bb, 0x069a, 0x067a, 0x065a, 0x065a, 0x063a, 0x061a, 0x05fa, 0x05da, 0x05db, 0x05bb, 0x059b, 0x057b, 0x055b, 0x053c, 0x053c, 0x051c, 0x04fc, 0x04dd, 0x04bd, 0x047e, 0x047e, 0x045e, 0x043f, 0x041f, 0x03ff, 0x03ff, 0x03df, 0x03df, 0x03df, 0x03df, 0x03df, 0x03df, 0x03df, 0x03df, 0x03df, 0x03df, 0x03df, 0x03df, 0x03df, 0x03df, 0x03bf, 0x035f, 0x031f, 0x02df, 0x027f, 0x01ff, 0x019f, 0x011f, 0x00bf, 0x007f, 0x003f, 0x001f, 0x009f, 0x39db, 0xc992, 0x6399, 0x069f, 0x079f, 0x07ff, 0x07df, 0x07bf, 0x077f, 0x079f, 0x9af6, 0xc952, 0xc952, 0xc952, 0xc952, 0xc952, 0xc952, 0xc932, 0x7112, 0x3110, 0x30f0, 0x30ef, 0x28f0, 0x28ef, 0x28ce, 0x28cf, 0x20ce, 0x20ce, 0x20ce, 0x20cd, 0x20ce, 0x20ae, 0x18cf, 0x00f9, 0x0119, 0x0119, 0x0119, 0x011a, 0x011a, 0x011a, 0x0119, 0x08f5, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x10d2, 0x08f3, 0x08d3, 0x10d2, 0x20ad, 0x18ad, 0x18ae, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ae, 0x20ae, 0x20ad, 0x20ae, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20cf, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x28ef, 0x30f0, 0x30f0, 0x30f0, 0x30f0, 0x38f0, 0x3911, 0x3911, 0x3911, 0x4112, 0x4132, 0x4132, 0x5193, 0x9274, 0xcb75, 0xd395, 0xd395, 0xd395, 0xc3d6, 0x6dba, 0x1f7e, 0x07ff, 0x07ff, 0x36dd, 0xbc17, 0x8539, 0x1f5e, 0x07df, 0x07df, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07df, 0x07df, 0x071b, 0x06da, 0x06ba, 0x06ba, 0x0699, 0x0679, 0x0659, 0x0639, 0x0619, 0x0619, 0x05f9, 0x05da, 0x05ba, 0x059a, 0x057a, 0x055a, 0x055b, 0x053b, 0x051b, 0x04fc, 0x04dc, 0x04bc, 0x049d, 0x047d, 0x045d, 0x043e, 0x041e, 0x03fe, 0x03df, 0x03df, 0x03bf, 0x03bf, 0x039f, 0x039f, 0x039f, 0x039f, 0x039f, 0x039f, 0x039f, 0x039f, 0x039f, 0x039f, 0x039f, 0x037f, 0x035f, 0x031f, 0x02df, 0x027f, 0x023f, 0x01bf, 0x015f, 0x00ff, 0x009f, 0x005f, 0x001f, 0x003f, 0x011f, 0x99b6, 0xb9d3, 0x0d9f, 0x06df, 0x07df, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x0f7e, 0xb9b3, 0xc952, 0xc952, 0xc952, 0xc952, 0xc931, 0xc932, 0xc132, 0x6111, 0x38f0, 0x30f0, 0x28f0, 0x30ef, 0x28cf, 0x28cf, 0x20cf, 0x20ce, 0x20ce, 0x20ce, 0x20ae, 0x18ce, 0x08f5, 0x011a, 0x0119, 0x0119, 0x011a, 0x0119, 0x0119, 0x0119, 0x08f5, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, + 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x00f7, 0x0119, 0x00f9, 0x0119, 0x011a, 0x00f7, 0x18ce, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x20ce, 0x20ae, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x28ef, 0x30f0, 0x30f0, 0x30f0, 0x3110, 0x3910, 0x3911, 0x3911, 0x3912, 0x4132, 0x4132, 0x6173, 0xa2b4, 0xd395, 0xd375, 0xd395, 0xd395, 0xc3d6, 0x6dba, 0x0fbf, 0x07ff, 0x07df, 0x07ff, 0x07df, 0x1f7e, 0x07df, 0x07ff, 0x07ff, 0x07df, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07df, 0x06f9, 0x06f9, 0x06d9, 0x06b8, 0x0698, 0x0698, 0x0678, 0x0658, 0x0638, 0x0638, 0x0618, 0x05f8, 0x05d8, 0x05b8, 0x0598, 0x0579, 0x0559, 0x0559, 0x051a, 0x04fa, 0x04db, 0x04bb, 0x049c, 0x047c, 0x045d, 0x043d, 0x041e, 0x03fe, 0x03de, 0x03bf, 0x039f, 0x039f, 0x037f, 0x037f, 0x037f, 0x035f, 0x035f, 0x035f, 0x035f, 0x035f, 0x035f, 0x035f, 0x033f, 0x033f, 0x031f, 0x02ff, 0x02bf, 0x027f, 0x023f, 0x01ff, 0x019f, 0x013f, 0x00bf, 0x007f, 0x003f, 0x001f, 0x005f, 0x197e, 0xb993, 0x6379, 0x063f, 0x073f, 0x07df, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x3dfb, 0xc952, 0xc952, 0xc932, 0xc932, 0xc932, 0xc932, 0xc912, 0xb912, 0x4111, 0x30f0, 0x30f0, 0x30f0, 0x28ef, 0x28cf, 0x28cf, 0x28ce, 0x20ce, 0x20ce, 0x20ae, 0x20ce, 0x08f6, 0x0119, 0x011a, 0x0119, 0x0119, 0x0119, 0x0119, 0x08f5, 0x20ad, 0x18ad, 0x18ad, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, + 0x18ad, 0x18cd, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x18ae, 0x18ad, 0x08f5, 0x0119, 0x0119, 0x0117, 0x00f7, 0x0119, 0x0119, 0x08f4, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ae, 0x20ae, 0x20ae, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x28cf, 0x28cf, 0x28ef, 0x28cf, 0x28ef, 0x30ef, 0x30f0, 0x30f0, 0x38f0, 0x3911, 0x3911, 0x3911, 0x4111, 0x4952, 0x79f3, 0xb2f4, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0x94f9, 0x0fbf, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07df, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x079d, 0x0719, 0x06f8, 0x06f8, 0x06d7, 0x06b7, 0x06b7, 0x0697, 0x0676, 0x0656, 0x0637, 0x0636, 0x0617, 0x05f7, 0x05d7, 0x05b7, 0x0597, 0x0578, 0x0578, 0x0538, 0x0519, 0x04f9, 0x04da, 0x04bb, 0x049b, 0x047c, 0x043c, 0x041d, 0x041d, 0x03fe, 0x03de, 0x03be, 0x039e, 0x037f, 0x035f, 0x035f, 0x033f, 0x031f, 0x031f, 0x031f, 0x031f, 0x02ff, 0x02ff, 0x02ff, 0x02ff, 0x02df, 0x02bf, 0x029f, 0x027f, 0x023f, 0x01ff, 0x019f, 0x015f, 0x00ff, 0x009f, 0x005f, 0x003f, 0x001f, 0x00bf, 0x59ba, 0xb9b3, 0x0d3f, 0x06bf, 0x079f, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x7438, 0xc952, 0xc132, 0xc932, 0xc932, 0xc932, 0xc911, 0xc912, 0xa111, 0x3911, 0x30f0, 0x30f0, 0x30f0, 0x28cf, 0x28cf, 0x28ce, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x08f5, 0x011a, 0x0119, 0x00fa, 0x0119, 0x0119, 0x08f5, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x0119, 0x011a, 0x08f3, 0x18ad, 0x18ad, 0x10d3, 0x011a, 0x00f9, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20cf, 0x28cf, 0x28cf, 0x28cf, 0x28ef, 0x30f0, 0x30f0, 0x30f0, 0x30f0, 0x3911, 0x3911, 0x5151, 0x79f3, 0xa2b4, 0xcb75, 0xd395, 0xd395, 0xd375, 0xd395, 0xd395, 0xc3d6, 0x469c, 0x07ff, 0x07df, 0x07df, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07df, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07fe, 0xc335, 0x45d7, 0x0738, 0x0717, 0x06f6, 0x06f6, 0x06d6, 0x06b5, 0x06b5, 0x0695, 0x0675, 0x0655, 0x0635, 0x0615, 0x05f5, 0x05f5, 0x05d6, 0x05b6, 0x0597, 0x0557, 0x0538, 0x0518, 0x04f9, 0x04d9, 0x049a, 0x047b, 0x045b, 0x043c, 0x041c, 0x03dd, 0x03dd, 0x03be, 0x039e, 0x037e, 0x035f, 0x033f, 0x033f, 0x031f, 0x02ff, 0x02df, 0x02df, 0x02bf, 0x02bf, 0x02bf, 0x02bf, 0x029f, 0x029f, 0x027f, 0x025f, 0x021f, 0x01ff, 0x01bf, 0x017f, 0x011f, 0x00df, 0x009f, 0x003f, 0x001f, 0x003f, 0x013f, 0xb174, 0x6339, 0x05ff, 0x071f, 0x07df, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x0f9f, 0xb992, 0xc932, 0xc932, 0xc931, 0xc912, 0xc912, 0xc912, 0xc911, 0x8111, 0x30f0, 0x30f0, 0x28ef, 0x30ef, 0x28cf, 0x28cf, 0x20ce, 0x20ce, 0x20ce, 0x20ae, 0x20d0, 0x0119, 0x0119, 0x0119, 0x0139, 0x08f5, 0x18ad, 0x18ae, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, + 0x10cf, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18af, 0x00f9, 0x0119, 0x18d0, 0x18cd, 0x18ad, 0x10d1, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ae, 0x18ad, 0x20ae, 0x20ae, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20cf, 0x28cf, 0x28ef, 0x28ef, 0x28ef, 0x30f0, 0x30f0, 0x59b2, 0x7a13, 0x9a94, 0xbb55, 0xd395, 0xd395, 0xd395, 0xd395, 0xd375, 0xd395, 0xd395, 0xd395, 0xac77, 0x2f1e, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07bc, 0x0759, 0xabb5, 0xc314, 0x1e97, 0x0736, 0x0716, 0x0715, 0x06f4, 0x06f4, 0x06f3, 0x06d3, 0x06b3, 0x06b2, 0x0692, 0x0672, 0x0653, 0x0633, 0x0613, 0x05f4, 0x05d4, 0x0595, 0x0575, 0x0556, 0x0517, 0x04f8, 0x04b9, 0x0499, 0x045a, 0x043b, 0x041b, 0x03fc, 0x03dd, 0x03bd, 0x039d, 0x037e, 0x035e, 0x033e, 0x033f, 0x031f, 0x02ff, 0x02df, 0x02bf, 0x02bf, 0x029f, 0x027f, 0x027f, 0x025f, 0x025f, 0x023f, 0x021f, 0x021f, 0x01df, 0x019f, 0x017f, 0x013f, 0x00ff, 0x009f, 0x007f, 0x003f, 0x001f, 0x007f, 0x399b, 0xb993, 0x055f, 0x067f, 0x079f, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x45db, 0xc132, 0xc932, 0xc912, 0xc132, 0xc912, 0xc912, 0xc911, 0xc912, 0x5111, 0x38f0, 0x30f0, 0x28ef, 0x28cf, 0x28cf, 0x28cf, 0x20ce, 0x20ce, 0x20ce, 0x20ae, 0x18ce, 0x10d3, 0x10f4, 0x18d0, 0x18ad, 0x18ae, 0x20cd, 0x18ad, 0x18ae, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, + 0x00f9, 0x10d0, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x08d4, 0x18ad, 0x18ad, 0x08f3, 0x0119, 0x0119, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ae, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x20ad, 0x18ad, 0x20cd, 0x20ae, 0x20ad, 0x20ae, 0x18ce, 0x20ae, 0x20ce, 0x20ce, 0x28ae, 0x20ce, 0x28ee, 0x5171, 0x69d2, 0x8232, 0xaaf4, 0xc334, 0xd375, 0xd3b5, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0x757a, 0x0fbf, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07bd, 0x079b, 0x077a, 0x0779, 0x74d6, 0xd2d4, 0x9bf5, 0x0756, 0x0735, 0x0734, 0x0734, 0x0733, 0x0712, 0x0711, 0x0711, 0x06f0, 0x06f0, 0x06d0, 0x06af, 0x06af, 0x066f, 0x0650, 0x0631, 0x0611, 0x05d2, 0x0594, 0x0554, 0x0515, 0x04f7, 0x04b8, 0x0478, 0x0459, 0x043a, 0x03fb, 0x03bc, 0x03bc, 0x039d, 0x037d, 0x035e, 0x033e, 0x031f, 0x031f, 0x02ff, 0x02df, 0x02bf, 0x02bf, 0x027f, 0x027f, 0x025f, 0x023f, 0x023f, 0x021f, 0x01ff, 0x01df, 0x01bf, 0x019f, 0x017f, 0x013f, 0x011f, 0x00bf, 0x007f, 0x005f, 0x001f, 0x001f, 0x00df, 0xa175, 0x33bc, 0x05df, 0x06ff, 0x07df, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x92d5, 0xc911, 0xc132, 0xc912, 0xc912, 0xc8f2, 0xc112, 0xc912, 0xa8f1, 0x3110, 0x30f0, 0x30ef, 0x28ef, 0x28cf, 0x28ce, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ae, 0x20ce, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, + 0x0119, 0x0119, 0x10cf, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x20ad, 0x08f5, 0x0119, 0x0119, 0x00f7, 0x00f7, 0x011a, 0x011a, 0x08f5, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ae, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ce, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ae, 0x20ae, 0x20ad, 0x390f, 0x4970, 0x59b0, 0x7a32, 0x9293, 0xaad3, 0xcb55, 0xd395, 0xd395, 0xd395, 0xd395, 0xd375, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd375, 0xd395, 0xd395, 0x9cb8, 0x271d, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07de, 0x07dd, 0x07bc, 0x079b, 0x079a, 0x079a, 0x0779, 0x55b7, 0xd2b4, 0xd2b4, 0x4db5, 0x0775, 0x0774, 0x0753, 0x0773, 0x0752, 0x0750, 0x0750, 0x074f, 0x074e, 0x074d, 0x074d, 0x074c, 0x072b, 0x072b, 0x072a, 0x070a, 0x06ea, 0x06ac, 0x064d, 0x05d0, 0x0573, 0x04f5, 0x04b6, 0x0478, 0x0438, 0x041a, 0x03fb, 0x03bc, 0x039c, 0x037c, 0x033d, 0x033d, 0x031e, 0x02fe, 0x02ff, 0x02df, 0x02bf, 0x029f, 0x029f, 0x027f, 0x025f, 0x023f, 0x021f, 0x01ff, 0x01df, 0x01bf, 0x019f, 0x017f, 0x015f, 0x013f, 0x011f, 0x00df, 0x009f, 0x005f, 0x003f, 0x001f, 0x003f, 0x213d, 0x1b1e, 0x051f, 0x065f, 0x077f, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x1f3d, 0xc912, 0xc912, 0xc112, 0xc112, 0xc8f1, 0xc8f2, 0xc8f1, 0xc8f2, 0x80f1, 0x30f0, 0x30f0, 0x30ef, 0x28ef, 0x28cf, 0x28ce, 0x20ce, 0x20ae, 0x20ce, 0x20ce, 0x20ae, 0x20ae, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, + 0x00f7, 0x00f9, 0x0119, 0x10d0, 0x18ad, 0x18ad, 0x18cd, 0x20ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x20ad, 0x10d0, 0x0119, 0x011a, 0x0119, 0x0119, 0x0119, 0x0119, 0x00f7, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x392f, 0xd395, 0xc374, 0xa2d3, 0xaad3, 0x7a31, 0x7a31, 0x7a11, 0x7231, 0x5190, 0x496f, 0x496f, 0x4970, 0x496f, 0x494f, 0x412f, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x4970, 0x494f, 0x496f, 0x496f, 0x69f1, 0x7a31, 0x7a31, 0x9272, 0xa2d3, 0xaaf3, 0xc355, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd375, 0xd395, 0xd395, 0xd395, 0xd395, 0xd396, 0xd375, 0xd395, 0xac57, 0x565c, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07df, 0x07de, 0x07bd, 0x07bc, 0x07bc, 0x07bb, 0x079a, 0x079a, 0x0799, 0x26b8, 0xcad4, 0xd2b4, 0xc314, 0x0f35, 0x0794, 0x0794, 0x0792, 0x0792, 0x0791, 0x0790, 0x078f, 0x078e, 0x078e, 0x078d, 0x078c, 0x07aa, 0x07a9, 0x07a9, 0x07a8, 0x07c7, 0x07c5, 0x07c4, 0x07e4, 0x07a4, 0x0727, 0x068a, 0x05af, 0x0496, 0x0438, 0x03f9, 0x03ba, 0x039b, 0x035c, 0x035d, 0x031d, 0x031d, 0x02fe, 0x02df, 0x02bf, 0x02bf, 0x029f, 0x027f, 0x025f, 0x025f, 0x023f, 0x021f, 0x01ff, 0x01df, 0x019f, 0x019f, 0x017f, 0x015f, 0x013f, 0x00ff, 0x00df, 0x00bf, 0x007f, 0x005f, 0x001f, 0x001f, 0x007f, 0x023f, 0x041f, 0x05bf, 0x06ff, 0x07bf, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x6498, 0xc911, 0xc912, 0xc8f1, 0xc8f1, 0xc8f1, 0xc8f2, 0xc8f1, 0xc8d1, 0x50f1, 0x30f0, 0x30f0, 0x30ef, 0x28cf, 0x28cf, 0x28ce, 0x20ce, 0x20ce, 0x20ce, 0x20ae, 0x20ae, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, + 0x18ae, 0x00f7, 0x0119, 0x00f9, 0x10cf, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x10d0, 0x0119, 0x0119, 0x0117, 0x10d2, 0x08f3, 0x10d3, 0x10d2, 0x18cd, 0x18ae, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x496f, 0xaad3, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd375, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xc3d6, 0x8539, 0x36dd, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07df, 0x07de, 0x07bd, 0x07bd, 0x07bc, 0x07bc, 0x07bb, 0x07ba, 0x07ba, 0x07b9, 0xd2b4, 0xd2b4, 0xd2b4, 0x6535, 0x07b5, 0x07b5, 0x07b4, 0x07b3, 0x07b2, 0x07b1, 0x07b0, 0x07af, 0x07ce, 0x07cd, 0x07cc, 0x07cb, 0x07ca, 0x07ca, 0x07c9, 0x07e8, 0x07e7, 0x07e6, 0x07e5, 0x07e5, 0x07e3, 0x07e3, 0x07e2, 0x07e1, 0x0726, 0x060c, 0x04b4, 0x03b9, 0x037b, 0x035c, 0x033d, 0x031d, 0x02de, 0x02df, 0x02be, 0x029f, 0x029f, 0x027f, 0x025f, 0x023f, 0x023f, 0x021f, 0x01ff, 0x01df, 0x019f, 0x019f, 0x015f, 0x015f, 0x013f, 0x00ff, 0x00df, 0x00bf, 0x007f, 0x007f, 0x003f, 0x001f, 0x001f, 0x011f, 0x02ff, 0x04df, 0x063f, 0x077f, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x0f9f, 0xb972, 0xc8f2, 0xc8f2, 0xc0f1, 0xc8f2, 0xc0f2, 0xc0f1, 0xc8d1, 0xa0f1, 0x30f0, 0x30f0, 0x30f0, 0x28ef, 0x28cf, 0x28ce, 0x20cf, 0x20ce, 0x20ce, 0x20ce, 0x20ae, 0x20ad, 0x18ad, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, + 0x18ad, 0x18ae, 0x0117, 0x0119, 0x00f9, 0x18b0, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x10d0, 0x00f9, 0x0119, 0x00f7, 0x18ce, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x412f, 0x8a72, 0xc334, 0xd396, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd375, 0xd375, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd375, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd375, 0xd395, 0xd395, 0xd375, 0xac57, 0x469c, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x467c, 0x8519, 0x8519, 0x36dd, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07de, 0x07de, 0x07de, 0x07dd, 0x07dc, 0x07dc, 0x07db, 0x07db, 0x07da, 0x07da, 0x9bf5, 0xd2b4, 0xd2b4, 0xc2f4, 0x0f77, 0x07d6, 0x07d5, 0x07d4, 0x07d4, 0x07d3, 0x07d2, 0x07d1, 0x07d0, 0x07ef, 0x07ee, 0x07ed, 0x07ec, 0x07ec, 0x07ea, 0x07e9, 0x07e9, 0x07e7, 0x07e6, 0x07e6, 0x07e5, 0x07e5, 0x07e4, 0x07e4, 0x07e3, 0x07e3, 0x07e2, 0x0785, 0x060c, 0x04d3, 0x035b, 0x031c, 0x02de, 0x02de, 0x02be, 0x029f, 0x027f, 0x025f, 0x025f, 0x023f, 0x021f, 0x01ff, 0x01df, 0x01bf, 0x019f, 0x019f, 0x017f, 0x015f, 0x013f, 0x011f, 0x00df, 0x00bf, 0x009f, 0x007f, 0x005f, 0x001f, 0x001f, 0x003f, 0x01df, 0x03bf, 0x059f, 0x06df, 0x07bf, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x4d7a, 0xc111, 0xc0f1, 0xc8f1, 0xc8f2, 0xc8d1, 0xc8f2, 0xc0d1, 0xc8d1, 0x68f1, 0x30f0, 0x30f0, 0x28f0, 0x28ef, 0x28cf, 0x28cf, 0x20ce, 0x20ce, 0x20ce, 0x20ae, 0x20ae, 0x20ad, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x10d2, 0x08f3, 0x08f3, 0x10d2, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, + 0x18cd, 0x18ad, 0x18ce, 0x00f7, 0x0119, 0x00f8, 0x18d0, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18d0, 0x0119, 0x0119, 0x00f7, 0x18ce, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x414f, 0x61d1, 0x8251, 0xa2d3, 0xbb34, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd375, 0xd395, 0xd395, 0xd395, 0xd395, 0xd375, 0xd375, 0xd395, 0xd395, 0xd395, 0xd375, 0xd395, 0xd395, 0xd395, 0xd395, 0xd375, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd375, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd375, 0xbc16, 0x8539, 0x469c, 0x17bf, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x8518, 0xd355, 0xd355, 0xd335, 0xd335, 0x84f8, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07fe, 0x07de, 0x07fe, 0x07dd, 0x07dd, 0x07bc, 0x07dc, 0x07db, 0x07db, 0x07da, 0x8c56, 0xcab4, 0xcab4, 0xd294, 0x4df7, 0x07d7, 0x07d7, 0x07d6, 0x07f5, 0x07d5, 0x07f3, 0x07f3, 0x07f2, 0x07f1, 0x07f0, 0x07ef, 0x07ee, 0x07ed, 0x07ec, 0x07eb, 0x07eb, 0x07ea, 0x07e9, 0x07e8, 0x07e8, 0x07e7, 0x07e7, 0x07e6, 0x07e6, 0x07e5, 0x07e5, 0x07e5, 0x07e5, 0x07e4, 0x07a6, 0x060e, 0x03f8, 0x02de, 0x02be, 0x029f, 0x027f, 0x025f, 0x023f, 0x023f, 0x021f, 0x01ff, 0x01df, 0x01bf, 0x019f, 0x019f, 0x017f, 0x015f, 0x013f, 0x011f, 0x00df, 0x00bf, 0x009f, 0x007f, 0x005f, 0x003f, 0x001f, 0x001f, 0x00bf, 0x029f, 0x049f, 0x063f, 0x075f, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0xb1d3, 0xc8f1, 0xc8f2, 0xc0f1, 0xc8d1, 0xc8d1, 0xc0f1, 0xc8d1, 0xb8d1, 0x40f0, 0x30f0, 0x28f0, 0x28ef, 0x28cf, 0x28cf, 0x20ce, 0x20cf, 0x20ce, 0x20ce, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x00f7, 0x0119, 0x0119, 0x0119, 0x0119, 0x00f7, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, + 0x18ad, 0x18ad, 0x18ad, 0x18ce, 0x00f7, 0x0139, 0x00f8, 0x18b0, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x10d0, 0x00f9, 0x0119, 0x00f7, 0x18af, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x310e, 0x496f, 0x5990, 0x7a12, 0x7a32, 0x9272, 0xa2d3, 0xa2d3, 0xc375, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd375, 0xd375, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd375, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xac77, 0x757a, 0x36fd, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x4e3c, 0xd355, 0xd335, 0xd355, 0xd335, 0xd335, 0xd334, 0x7539, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07fe, 0x07fe, 0x07dd, 0x07dd, 0x07dd, 0x07dc, 0x07fc, 0x07dc, 0x07db, 0x6d38, 0xcab4, 0xd294, 0xd294, 0xab95, 0x07d8, 0x07d8, 0x07f7, 0x07f7, 0x07f6, 0x07f5, 0x07f5, 0x07f4, 0x07f3, 0x07f2, 0x07f1, 0x07f0, 0x07ef, 0x07ee, 0x07ed, 0x07ed, 0x07ec, 0x07ec, 0x07eb, 0x07ea, 0x07ea, 0x07ea, 0x07e9, 0x07e9, 0x07e8, 0x07e8, 0x07e8, 0x07e8, 0x07e7, 0x07e7, 0x07e8, 0x07c8, 0x06eb, 0x0514, 0x033c, 0x027f, 0x025f, 0x023f, 0x021f, 0x01ff, 0x01df, 0x01bf, 0x019f, 0x019f, 0x017f, 0x015f, 0x013f, 0x011f, 0x00ff, 0x00df, 0x00bf, 0x009f, 0x009f, 0x005f, 0x005f, 0x003f, 0x001f, 0x001f, 0x015f, 0x037f, 0x057f, 0x06df, 0x07bf, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x4d5a, 0xc8f1, 0xc8d1, 0xc0f1, 0xc8d1, 0xc8d1, 0xc0d1, 0xc0d1, 0xc8b1, 0x78d1, 0x3110, 0x30f0, 0x30ef, 0x28cf, 0x28cf, 0x28cf, 0x20cf, 0x20ce, 0x20ce, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x08f5, 0x0119, 0x0119, 0x0117, 0x0117, 0x0119, 0x0119, 0x08f5, 0x18ad, 0x18ad, 0x18ad, 0x18ad, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x00f7, 0x0119, 0x00f9, 0x10cf, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ae, 0x18af, 0x0118, 0x0119, 0x00f7, 0x18ce, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x496f, 0x496f, 0x4970, 0x7a12, 0x7a31, 0x8252, 0xaad3, 0xa2d3, 0xbb34, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xcbd6, 0x94f8, 0x565b, 0x0fbf, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0xb3f6, 0xd335, 0xd335, 0xd334, 0xd335, 0xd335, 0xd335, 0xd334, 0x1f7e, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07fe, 0x07de, 0x07dd, 0x07fd, 0x07fd, 0x07fd, 0x07dd, 0x07dc, 0x6d38, 0xcab4, 0xd294, 0xca94, 0xd294, 0x1f39, 0x07f9, 0x07f8, 0x07f8, 0x07f8, 0x07f7, 0x07f7, 0x07f6, 0x07f5, 0x07f4, 0x07f3, 0x07f2, 0x07f2, 0x07f1, 0x07f0, 0x07ef, 0x07ef, 0x07ee, 0x07ee, 0x07ed, 0x07ed, 0x07ec, 0x07ed, 0x07ec, 0x07eb, 0x07ec, 0x07eb, 0x07eb, 0x07ea, 0x07ea, 0x07ea, 0x07ca, 0x07ab, 0x076c, 0x070d, 0x05b2, 0x039b, 0x023f, 0x021f, 0x01ff, 0x01df, 0x01bf, 0x019f, 0x017f, 0x017f, 0x015f, 0x013f, 0x011f, 0x00ff, 0x00df, 0x00df, 0x009f, 0x009f, 0x007f, 0x005f, 0x003f, 0x003f, 0x001f, 0x60d9, 0x0a3f, 0x047f, 0x063f, 0x075f, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0xa9d3, 0xc0d1, 0xc8d1, 0xc0f1, 0xc8b1, 0xc0d1, 0xc8b1, 0xc0b1, 0xb8b1, 0x48f1, 0x30f0, 0x30f0, 0x28ef, 0x28cf, 0x28cf, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ae, 0x20ad, 0x18ad, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x08f3, 0x18ad, 0x18ad, 0x08f3, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, + 0x10d0, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ce, 0x00f7, 0x0119, 0x00f9, 0x10d0, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18d0, 0x00f9, 0x0119, 0x00f7, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x20ad, 0x18cd, 0x20ad, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x20ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x4970, 0x4970, 0x5990, 0x7a31, 0x7231, 0x7a31, 0x7a31, 0x9ab3, 0xaad4, 0xa2d4, 0xb314, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd396, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd396, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd396, 0xd395, 0xd395, 0x94f8, 0x565c, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0xd335, 0xd334, 0xd335, 0xd335, 0xd335, 0xd335, 0xd314, 0xd315, 0x5ddb, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07fe, 0x07fe, 0x07fe, 0x07fe, 0x07fe, 0x07fd, 0x07fd, 0x6d58, 0xd294, 0xd293, 0xca94, 0xd274, 0x4df8, 0x07fb, 0x07fa, 0x07fa, 0x07f9, 0x07f9, 0x07f8, 0x07f7, 0x07f6, 0x07f6, 0x07f5, 0x07f5, 0x07f4, 0x07f3, 0x07f3, 0x07f2, 0x07f1, 0x07f1, 0x07f0, 0x07f0, 0x07f0, 0x07ef, 0x07ef, 0x07ef, 0x07ef, 0x07ef, 0x07ee, 0x07ee, 0x07ee, 0x07ee, 0x07ee, 0x07ed, 0x07cd, 0x078e, 0x076e, 0x0710, 0x06b1, 0x0574, 0x037b, 0x01ff, 0x01df, 0x01bf, 0x019f, 0x017f, 0x017f, 0x013f, 0x013f, 0x011f, 0x00ff, 0x00df, 0x00bf, 0x009f, 0x009f, 0x007f, 0x005f, 0x003f, 0x003f, 0x001f, 0x88d6, 0x6159, 0x031f, 0x053f, 0x06df, 0x07bf, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x4d5b, 0xc0d1, 0xc8d1, 0xc8d1, 0xc0b1, 0xc8b1, 0xc8b2, 0xc0b1, 0xc8b1, 0x90d1, 0x30f0, 0x30f0, 0x28cf, 0x28cf, 0x28cf, 0x20cf, 0x20cf, 0x20ce, 0x20ae, 0x20ce, 0x20ae, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ae, 0x0119, 0x011a, 0x10d1, 0x18ad, 0x18ad, 0x10d1, 0x011a, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, + 0x00f8, 0x10d0, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ce, 0x0117, 0x0119, 0x0119, 0x10cf, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18b0, 0x0119, 0x0119, 0x00f7, 0x18ae, 0x18ad, 0x18ad, 0x20ae, 0x18ad, 0x18ae, 0x20ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ae, 0x18cd, 0x18ad, 0x18ad, 0x10d2, 0x08f3, 0x08f3, 0x10d2, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x20ad, 0x18ae, 0x18ae, 0x18ad, 0x18ce, 0x18ad, 0x20ae, 0x20ad, 0x20ce, 0x20ce, 0x290f, 0x5170, 0x5170, 0x69f1, 0x7a32, 0x8232, 0xaaf3, 0xaaf4, 0xcb75, 0xd395, 0xd396, 0xd375, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd396, 0xd396, 0xd395, 0xd395, 0xd395, 0xd395, 0xd375, 0xd375, 0xc3b6, 0x8539, 0x1f7f, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0xd335, 0xd335, 0xd335, 0xd315, 0xd314, 0xd315, 0xd314, 0xd314, 0x659a, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07fe, 0x07fe, 0x07fe, 0x07fe, 0x6d39, 0xd294, 0xca94, 0xd274, 0xca74, 0x7c96, 0x07fc, 0x07fc, 0x07fb, 0x07fb, 0x07fa, 0x07fa, 0x07f9, 0x07f8, 0x07f8, 0x07f7, 0x07f7, 0x07f6, 0x07f6, 0x07f5, 0x07f4, 0x07f4, 0x07f3, 0x07f3, 0x07f3, 0x07f2, 0x07f2, 0x07f2, 0x07f2, 0x07f2, 0x07f2, 0x07f2, 0x07f1, 0x07f1, 0x07f1, 0x07f1, 0x07f0, 0x07f1, 0x07d0, 0x0791, 0x0751, 0x0712, 0x0693, 0x0634, 0x0517, 0x02dd, 0x01bf, 0x019f, 0x017f, 0x015f, 0x015f, 0x013f, 0x011f, 0x00ff, 0x00df, 0x00bf, 0x00bf, 0x007f, 0x005f, 0x005f, 0x003f, 0x003f, 0x001f, 0x60b8, 0xb8f3, 0x09bf, 0x041f, 0x061f, 0x073f, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0xb1b3, 0xc0d1, 0xc0d1, 0xc0b1, 0xc0d1, 0xc0b1, 0xc0b1, 0xc8b1, 0xc0b1, 0x48f1, 0x30f0, 0x30f0, 0x28cf, 0x28cf, 0x28cf, 0x20cf, 0x20ce, 0x20ce, 0x20ce, 0x20ae, 0x20ae, 0x18ad, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ae, 0x0119, 0x0119, 0x08f3, 0x18ad, 0x18ad, 0x08f3, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, + 0x011a, 0x0118, 0x10d0, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x00f7, 0x00f9, 0x0119, 0x10d0, 0x18ad, 0x18ad, 0x18cd, 0x20ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18af, 0x0119, 0x0119, 0x00f7, 0x18ae, 0x20ae, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18cd, 0x18ae, 0x00f7, 0x011a, 0x011a, 0x011a, 0x0119, 0x0117, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ae, 0x20ae, 0x20ad, 0x20ae, 0x20ae, 0x20ae, 0x20ce, 0x20ce, 0x20ce, 0x28ce, 0x28cf, 0x28ef, 0x28ef, 0x30f0, 0x30f0, 0x30f0, 0x5172, 0x61b2, 0x8a54, 0x9a94, 0xb335, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd375, 0xd375, 0xd375, 0xd375, 0xd375, 0xd375, 0xd355, 0x9c97, 0x36dd, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0xac17, 0xd335, 0xd314, 0xd335, 0xd314, 0xd315, 0xd315, 0xd2f4, 0x467c, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x6d59, 0xd274, 0xca94, 0xd274, 0xca74, 0xb334, 0x07fe, 0x07fd, 0x07fd, 0x07fd, 0x07fc, 0x07fc, 0x07fb, 0x07fa, 0x07fa, 0x07fa, 0x07f9, 0x07f8, 0x07f8, 0x07f8, 0x07f7, 0x07f6, 0x07f6, 0x07f6, 0x07f5, 0x07f5, 0x07f5, 0x07f5, 0x07f5, 0x07f5, 0x07f5, 0x07f5, 0x07f5, 0x07f5, 0x07f5, 0x07f4, 0x07f4, 0x07f4, 0x07d3, 0x07b3, 0x0793, 0x0753, 0x0714, 0x06b5, 0x5516, 0x0538, 0x037c, 0x01ff, 0x017f, 0x015f, 0x013f, 0x011f, 0x011f, 0x00ff, 0x00df, 0x00bf, 0x009f, 0x009f, 0x007f, 0x005f, 0x005f, 0x003f, 0x001f, 0x6099, 0xc911, 0x491a, 0x02df, 0x051f, 0x06bf, 0x07bf, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x6459, 0xc8b1, 0xc0b1, 0xc8b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0x90d1, 0x30f1, 0x30f0, 0x30ef, 0x28ef, 0x28cf, 0x28cf, 0x20ce, 0x20ce, 0x20ce, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x08f5, 0x011a, 0x0119, 0x00f7, 0x00f7, 0x0119, 0x011a, 0x08f5, 0x18ad, 0x18ad, 0x18ad, 0x18ad, + 0x00f7, 0x011a, 0x00f8, 0x10d0, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x18ae, 0x00f7, 0x0119, 0x00f9, 0x10cf, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18b0, 0x0119, 0x0119, 0x00f7, 0x18ce, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x08f5, 0x0119, 0x011a, 0x0119, 0x0119, 0x011a, 0x011a, 0x08f5, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ae, 0x18ad, 0x18ad, 0x18ae, 0x20ad, 0x18ad, 0x20ad, 0x20ad, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x28cf, 0x28cf, 0x28cf, 0x28ef, 0x30f0, 0x30f0, 0x30f0, 0x3111, 0x3911, 0x3911, 0x4132, 0x4132, 0x5152, 0x69d3, 0x9274, 0xb2f5, 0xd395, 0xd395, 0xd375, 0xd395, 0xd375, 0xd375, 0xd375, 0xd375, 0xd375, 0xd375, 0xd355, 0xd355, 0xd355, 0xa478, 0x36dd, 0x07ff, 0x07ff, 0x563c, 0xd335, 0xd334, 0xd315, 0xd315, 0xd2f4, 0xcb15, 0xbb96, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x8498, 0xca94, 0xca94, 0xd274, 0xca74, 0xca74, 0x07fe, 0x07fe, 0x07fe, 0x07fe, 0x07fd, 0x07fd, 0x07fc, 0x07fc, 0x07fc, 0x07fb, 0x07fb, 0x07fa, 0x07fa, 0x07f9, 0x07f9, 0x07f8, 0x07f8, 0x07f8, 0x07f8, 0x07f7, 0x07f7, 0x07f7, 0x07f7, 0x07f7, 0x07f7, 0x07f7, 0x07f7, 0x07f7, 0x07f7, 0x07f7, 0x07f7, 0x07f6, 0x07f6, 0x07d6, 0x07b6, 0x0796, 0x0756, 0x0716, 0xa456, 0xbbd6, 0x3479, 0x02fd, 0x023f, 0x019f, 0x015f, 0x011f, 0x00ff, 0x00ff, 0x00bf, 0x00bf, 0x009f, 0x009f, 0x007f, 0x005f, 0x003f, 0x003f, 0x003f, 0x78b7, 0xc111, 0xa114, 0x01ff, 0x041f, 0x05ff, 0x075f, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x0f9f, 0xc0b1, 0xc0d2, 0xc8b1, 0xc0b1, 0xc8b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0x48f1, 0x30f0, 0x30ef, 0x28f0, 0x28cf, 0x28cf, 0x20cf, 0x20ce, 0x20ce, 0x20ce, 0x20ae, 0x20ae, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x00f7, 0x0119, 0x0119, 0x0119, 0x0119, 0x00f7, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, + 0x18ce, 0x08f7, 0x0119, 0x00f8, 0x10cf, 0x18ae, 0x18ad, 0x20ad, 0x18ad, 0x18ae, 0x0117, 0x0119, 0x00f9, 0x18b0, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18af, 0x0119, 0x0119, 0x00f7, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x011a, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x20ae, 0x20cd, 0x20cd, 0x20ae, 0x20ae, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20cf, 0x28ce, 0x28cf, 0x28cf, 0x28cf, 0x28f0, 0x30f0, 0x30f0, 0x38f0, 0x3911, 0x3911, 0x4132, 0x4132, 0x4932, 0x4933, 0x4953, 0x5154, 0x5154, 0x71f4, 0x9a75, 0xb2f5, 0xd375, 0xd375, 0xd375, 0xd355, 0xd375, 0xd355, 0xd375, 0xd355, 0xd355, 0xd335, 0xd335, 0x9c78, 0x36dd, 0x07ff, 0x9c57, 0xd335, 0xd315, 0xd334, 0xd314, 0xc355, 0x271d, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x9bf7, 0xca94, 0xd274, 0xca73, 0xca74, 0xd253, 0x2efd, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07fe, 0x07fe, 0x07fd, 0x07fd, 0x07fd, 0x07fc, 0x07fc, 0x07fb, 0x07fb, 0x07fb, 0x07fa, 0x07fa, 0x07fa, 0x07f9, 0x07f9, 0x07f9, 0x07f9, 0x07f9, 0x07f9, 0x07fa, 0x07fa, 0x07fa, 0x07fa, 0x07fa, 0x07fa, 0x07f9, 0x07f9, 0x07f9, 0x07f8, 0x07d8, 0x07b8, 0x0797, 0x0758, 0x0ef8, 0xbbf6, 0xd395, 0x6b99, 0x025f, 0x021f, 0x01bf, 0x013f, 0x011f, 0x00ff, 0x00df, 0x00bf, 0x009f, 0x009f, 0x007f, 0x005f, 0x005f, 0x003f, 0x001f, 0x98d5, 0xc8f2, 0xc911, 0x195e, 0x033f, 0x053f, 0x06bf, 0x07bf, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x7b76, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0d1, 0x88d1, 0x30f1, 0x30f0, 0x28f0, 0x28cf, 0x28cf, 0x28cf, 0x20ce, 0x20ce, 0x20ce, 0x20ae, 0x20ae, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x10d2, 0x08f3, 0x08f3, 0x10d2, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, + 0x18ae, 0x18ae, 0x00f7, 0x011a, 0x00f9, 0x18cf, 0x18ad, 0x18ae, 0x18cd, 0x18ad, 0x18ce, 0x00f7, 0x0119, 0x00f8, 0x18d0, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18b0, 0x0119, 0x0119, 0x00f7, 0x18ae, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ae, 0x0117, 0x00f9, 0x0119, 0x0119, 0x011a, 0x0119, 0x0119, 0x0119, 0x011a, 0x0119, 0x011a, 0x00fa, 0x011a, 0x0119, 0x0119, 0x0119, 0x011a, 0x0119, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ae, 0x20ae, 0x20ae, 0x18ad, 0x20ae, 0x20ae, 0x20ce, 0x20ae, 0x20ce, 0x20ce, 0x20cf, 0x28ce, 0x28cf, 0x28cf, 0x28ef, 0x30ef, 0x30f0, 0x30f0, 0x3111, 0x3910, 0x3911, 0x4111, 0x4912, 0x4133, 0x4932, 0x4933, 0x5154, 0x5154, 0x5955, 0x5955, 0x5975, 0x6996, 0x8a16, 0xaad5, 0xcb55, 0xd375, 0xd355, 0xd354, 0xd355, 0xd335, 0xd335, 0xd335, 0xd335, 0xcb35, 0x84f9, 0x0fbf, 0x5ddb, 0xa457, 0x9c58, 0x84d8, 0x1f5e, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x9bd6, 0xca74, 0xca74, 0xca74, 0xca74, 0xca74, 0x369c, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07fe, 0x07fe, 0x07fe, 0x07fd, 0x07fd, 0x07fd, 0x07fc, 0x07fc, 0x07fc, 0x07fb, 0x07fb, 0x07fb, 0x07fb, 0x07fb, 0x07fb, 0x07fb, 0x07fb, 0x07fb, 0x07fc, 0x07fc, 0x07fc, 0x07fc, 0x07fb, 0x07fb, 0x07fb, 0x07fb, 0x07da, 0x07da, 0x07ba, 0x079a, 0x0779, 0x2e99, 0xc3d6, 0xd395, 0x8339, 0x0a3e, 0x01df, 0x019f, 0x015f, 0x011f, 0x00ff, 0x00bf, 0x009f, 0x007f, 0x007f, 0x007f, 0x003f, 0x003f, 0x003f, 0x90d5, 0xc912, 0xc0f1, 0x7117, 0x027f, 0x049f, 0x065f, 0x077f, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x269d, 0xc891, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xb8b1, 0x3110, 0x30f0, 0x30f0, 0x28cf, 0x28cf, 0x28cf, 0x20ce, 0x20ce, 0x20ce, 0x20ae, 0x20ae, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, + 0x18ae, 0x18ad, 0x18ae, 0x00f7, 0x0119, 0x00f9, 0x10cf, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ce, 0x00f7, 0x0139, 0x00f8, 0x18b0, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18d0, 0x0119, 0x0119, 0x00f7, 0x18ce, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18b0, 0x0119, 0x0119, 0x011a, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x011a, 0x0119, 0x011a, 0x00f9, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ae, 0x18ad, 0x18ae, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20cd, 0x18ce, 0x20ae, 0x20ae, 0x20ce, 0x20ce, 0x20ae, 0x20ce, 0x20ce, 0x20ce, 0x28ef, 0x28cf, 0x28ef, 0x28d0, 0x30f0, 0x30f0, 0x38f0, 0x3911, 0x3911, 0x3931, 0x4132, 0x4132, 0x4933, 0x5133, 0x5153, 0x5154, 0x5154, 0x5975, 0x6175, 0x6195, 0x9255, 0x8b14, 0x4ad3, 0x7a94, 0xab14, 0xd355, 0xd355, 0xd355, 0xd335, 0xd335, 0xd315, 0xd314, 0xd335, 0xc355, 0x467c, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0xc2d4, 0xca74, 0xca74, 0xd274, 0xca74, 0xd253, 0x369c, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07fe, 0x07fe, 0x07fe, 0x07fe, 0x07fd, 0x07fd, 0x07fd, 0x07fd, 0x07fd, 0x07fc, 0x07fc, 0x07fc, 0x07fd, 0x07fd, 0x07fd, 0x07fd, 0x07fd, 0x07fd, 0x07fe, 0x07fe, 0x07fe, 0x07fd, 0x07fd, 0x07fd, 0x07fc, 0x07fc, 0x07db, 0x07bb, 0x07bb, 0x077b, 0x2eba, 0xc3d6, 0xd395, 0xb337, 0x09df, 0x01bf, 0x017f, 0x013f, 0x011f, 0x00df, 0x009f, 0x009f, 0x007f, 0x005f, 0x005f, 0x003f, 0x003f, 0x7896, 0xc0f1, 0xc8f1, 0xa8f3, 0x01df, 0x03df, 0x05bf, 0x071f, 0x07df, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0xa214, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0d1, 0xc0b1, 0xc0b1, 0x68f1, 0x30f0, 0x30f0, 0x30ef, 0x28cf, 0x28cf, 0x28ce, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ae, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, + 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x0117, 0x0119, 0x00f9, 0x10cf, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x00f7, 0x0119, 0x00f9, 0x10cf, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ae, 0x18af, 0x00f9, 0x0119, 0x00f7, 0x18ce, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18d0, 0x0119, 0x0119, 0x00f7, 0x18ae, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x08f5, 0x0119, 0x0119, 0x011a, 0x0119, 0x0119, 0x0119, 0x08f5, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x20ce, 0x20ae, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ef, 0x28cf, 0x28cf, 0x28ef, 0x30f0, 0x30ef, 0x30f0, 0x30f0, 0x3911, 0x3911, 0x4111, 0x4132, 0x4932, 0x4933, 0x5133, 0x5153, 0x5154, 0x5954, 0x6195, 0x9a75, 0xcb55, 0xcb75, 0x5bb4, 0x3b34, 0x42b3, 0x4a33, 0x6253, 0x9ab4, 0xd335, 0xd335, 0xd315, 0xd334, 0xd314, 0xd315, 0xd314, 0xd314, 0x5ddb, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x1f5e, 0xd274, 0xd274, 0xd274, 0xd274, 0xd274, 0xca53, 0x369d, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07fe, 0x07fe, 0x07fe, 0x07fe, 0x07fe, 0x07fe, 0x07fe, 0x07fe, 0x07fe, 0x07fe, 0x07fe, 0x07fe, 0x07fe, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07fe, 0x07fe, 0x07fe, 0x07fd, 0x07dd, 0x07dd, 0x07bd, 0x079c, 0x561a, 0xd395, 0xd395, 0xab37, 0x099f, 0x015f, 0x013f, 0x011f, 0x00ff, 0x00bf, 0x009f, 0x007f, 0x007f, 0x005f, 0x003f, 0x003f, 0x305c, 0xc0f1, 0xc8f1, 0xc8d1, 0x215d, 0x033f, 0x051f, 0x06df, 0x07df, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x5cd9, 0xc0b1, 0xc0b1, 0xc0b1, 0xc8b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0x98d1, 0x38f0, 0x30f0, 0x30f0, 0x28cf, 0x28ef, 0x28cf, 0x20ce, 0x20ce, 0x20ce, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x00f7, 0x011a, 0x00f8, 0x10d0, 0x18ad, 0x18ad, 0x20ad, 0x18ae, 0x18ce, 0x00f7, 0x0119, 0x00f8, 0x10cf, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x00f8, 0x011a, 0x00f7, 0x18ae, 0x20ae, 0x18ad, 0x18ad, 0x18cd, 0x18b0, 0x00f9, 0x0119, 0x00f7, 0x18ce, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ae, 0x0117, 0x0119, 0x0119, 0x011a, 0x0119, 0x00f7, 0x18ce, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ae, 0x18ad, 0x20ae, 0x20ae, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x28cf, 0x28cf, 0x28cf, 0x28ef, 0x30f0, 0x30f0, 0x30f0, 0x3911, 0x3911, 0x4111, 0x4131, 0x4132, 0x4933, 0x4933, 0x5154, 0x5974, 0x9255, 0xcb55, 0xd375, 0xbb95, 0x5474, 0x3c34, 0x3bb4, 0x4333, 0x42b3, 0x4a13, 0x49f3, 0x5a32, 0x9ab4, 0xd334, 0xd335, 0xd314, 0xd314, 0xd315, 0xd314, 0xd2f4, 0x84d8, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x4ddb, 0xd274, 0xca74, 0xca73, 0xd274, 0xca54, 0xca54, 0x369c, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07fe, 0x07fe, 0x07dd, 0x07de, 0x079d, 0x6d99, 0xd395, 0xd395, 0xab17, 0x097f, 0x011f, 0x011f, 0x00ff, 0x00bf, 0x00bf, 0x009f, 0x007f, 0x007f, 0x003f, 0x003f, 0x003f, 0xc8f1, 0xc8f1, 0xc8d1, 0x5119, 0x02df, 0x04ff, 0x06bf, 0x07bf, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x1f1e, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0x4910, 0x30f0, 0x30f0, 0x28ef, 0x28ef, 0x28cf, 0x20cf, 0x20ce, 0x20ce, 0x20ae, 0x20ae, 0x20ae, 0x20ad, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x10d2, 0x08f3, 0x08f3, 0x10d2, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x00f7, 0x0119, 0x00f8, 0x10d0, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ae, 0x00f7, 0x0119, 0x00f7, 0x18ae, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ae, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ce, 0x00f7, 0x0119, 0x00f7, 0x18ae, 0x20ae, 0x18ad, 0x18ad, 0x18ae, 0x10cf, 0x00f9, 0x0119, 0x00f7, 0x18ce, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x20ae, 0x10d2, 0x08f3, 0x08f3, 0x10d2, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ae, 0x18ad, 0x20ae, 0x20ae, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x28cf, 0x28cf, 0x28cf, 0x28ef, 0x30f0, 0x30f0, 0x30f0, 0x3910, 0x3911, 0x4112, 0x4132, 0x4132, 0x4933, 0x5133, 0x8214, 0xcb55, 0xd375, 0xd375, 0xb3d5, 0x3d55, 0x3515, 0x3495, 0x3c14, 0x3b94, 0x3b13, 0x4293, 0x4212, 0x49f3, 0x49f3, 0x5a13, 0x9ab4, 0xd314, 0xd315, 0xcb15, 0xd2f4, 0xd2f5, 0xd2f4, 0x7539, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x8c37, 0xca74, 0xd273, 0xd253, 0xca54, 0xca53, 0xd253, 0x1f5e, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07fe, 0x07df, 0x07df, 0x94d8, 0xd396, 0xd395, 0x8299, 0x00ff, 0x00ff, 0x00ff, 0x00bf, 0x00bf, 0x009f, 0x007f, 0x005f, 0x005f, 0x003f, 0x001f, 0xc8d1, 0xc0f1, 0xc0d1, 0xa0d4, 0x027f, 0x04bf, 0x069f, 0x07bf, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x8315, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0x70f1, 0x30f0, 0x30f0, 0x28ef, 0x28cf, 0x28cf, 0x28cf, 0x20ce, 0x20ce, 0x20ce, 0x20ae, 0x20ae, 0x20ad, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x00f7, 0x0119, 0x0119, 0x0119, 0x0119, 0x00f7, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x08f7, 0x011a, 0x0118, 0x10d0, 0x18ad, 0x18ad, 0x18ae, 0x18ae, 0x18ae, 0x00f7, 0x011a, 0x0119, 0x0119, 0x011a, 0x011a, 0x011a, 0x011a, 0x011a, 0x011a, 0x011a, 0x011a, 0x011a, 0x011a, 0x011a, 0x011a, 0x011a, 0x011a, 0x011a, 0x011a, 0x0119, 0x0119, 0x0119, 0x0119, 0x00f9, 0x011a, 0x0119, 0x0117, 0x18ae, 0x20cd, 0x18ad, 0x18ae, 0x18ad, 0x18d0, 0x0119, 0x0119, 0x00f7, 0x18ce, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ae, 0x20ad, 0x20ae, 0x20ae, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x28ce, 0x28cf, 0x28cf, 0x28cf, 0x28f0, 0x30f0, 0x30f0, 0x30f0, 0x3911, 0x3911, 0x4132, 0x4132, 0x4132, 0x5973, 0xb2f4, 0xd375, 0xd375, 0xd375, 0x9435, 0x3d55, 0x2d55, 0x2d75, 0x3515, 0x3c94, 0x3414, 0x3b94, 0x4313, 0x4293, 0x4a13, 0x41f3, 0x49f2, 0x4a13, 0x5a33, 0xa2b4, 0xd314, 0xd2f4, 0xd2f4, 0xd2d4, 0xd2f4, 0x4e1b, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x179f, 0xd274, 0xca53, 0xca73, 0xca53, 0xca53, 0xca53, 0xd253, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07df, 0x07df, 0x07df, 0x07df, 0x07df, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07df, 0x07df, 0x07df, 0x07df, 0x07df, 0x07df, 0x07df, 0x07df, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x0f9e, 0xbc16, 0xd395, 0xd395, 0x725a, 0x00bf, 0x00bf, 0x00bf, 0x009f, 0x007f, 0x007f, 0x005f, 0x005f, 0x003f, 0x001f, 0x90b5, 0xc8d1, 0xc8d1, 0xc0d1, 0x123e, 0x047f, 0x067f, 0x07bf, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x54d9, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0d1, 0xc0b1, 0x90d1, 0x38f1, 0x30f0, 0x30f0, 0x28ef, 0x28cf, 0x28cf, 0x20ce, 0x20ce, 0x20ce, 0x20ae, 0x20ae, 0x20ad, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x08f5, 0x011a, 0x0119, 0x0119, 0x0119, 0x0119, 0x011a, 0x08f5, 0x18ad, 0x18ad, 0x18ad, 0x18ad, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ce, 0x00f7, 0x011a, 0x00f8, 0x10d0, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18ce, 0x00f7, 0x0119, 0x011a, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x011a, 0x0119, 0x0119, 0x0119, 0x00f7, 0x18ae, 0x20ae, 0x18ad, 0x18ae, 0x18ad, 0x18d0, 0x00f9, 0x00f9, 0x00f7, 0x18ce, 0x18ad, 0x18ad, 0x20ad, 0x18ae, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ae, 0x20ad, 0x20ae, 0x20ae, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x28cf, 0x28cf, 0x28cf, 0x28ef, 0x28f0, 0x30f0, 0x38f0, 0x30f0, 0x3911, 0x3911, 0x4112, 0x4132, 0x8234, 0xcb55, 0xd375, 0xd375, 0xd355, 0x9435, 0x3575, 0x3575, 0x2d75, 0x3555, 0x3555, 0x3514, 0x3474, 0x3bf4, 0x3b73, 0x42f4, 0x4273, 0x4a13, 0x4213, 0x49f2, 0x49f3, 0x49f3, 0x6a33, 0xbad4, 0xd2f5, 0xd2f4, 0xd2d4, 0xc335, 0x177e, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x5d9a, 0xca54, 0xd273, 0xca54, 0xca53, 0xca53, 0xca53, 0x9bb6, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07df, 0x07df, 0x07df, 0x07df, 0x07bf, 0x07bf, 0x07bf, 0x079f, 0x077f, 0x077f, 0x077e, 0x07bf, 0x07df, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07df, 0x07df, 0x07df, 0x07df, 0x07df, 0x07df, 0x07df, 0x07df, 0x07bf, 0x07df, 0x07df, 0x07df, 0x07df, 0x07df, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x36dd, 0xd395, 0xd395, 0xd395, 0x51bc, 0x009f, 0x009f, 0x007f, 0x007f, 0x007f, 0x005f, 0x005f, 0x003f, 0x001f, 0x7077, 0xc0d2, 0xc8d1, 0xc0d1, 0x49fa, 0x049f, 0x069f, 0x07df, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x1f1e, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0d1, 0xc0b1, 0x3910, 0x30f0, 0x30f0, 0x30ef, 0x28cf, 0x28cf, 0x20ce, 0x20ce, 0x20ce, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x011a, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x011a, 0x18ad, 0x18ad, 0x18ad, 0x18ad, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x20ad, 0x18ce, 0x08f7, 0x0119, 0x00f8, 0x18b0, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ae, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18b0, 0x0119, 0x0119, 0x0117, 0x18ae, 0x18ad, 0x18ad, 0x18ae, 0x18ae, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ae, 0x20ae, 0x20ad, 0x20ae, 0x20ae, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x28cf, 0x28cf, 0x28cf, 0x28ef, 0x30f0, 0x30f0, 0x30f0, 0x38f0, 0x3911, 0x3911, 0x4952, 0xaab4, 0xd375, 0xd375, 0xd375, 0xd355, 0x9435, 0x3575, 0x3575, 0x2d75, 0x2d75, 0x2d75, 0x3555, 0x54d5, 0x6475, 0x83b5, 0x8b74, 0x9b34, 0xab14, 0xaad4, 0xb2d4, 0xaad4, 0xaab4, 0xaab4, 0xb2b4, 0x6b15, 0x8a94, 0xc2d4, 0xd2f4, 0xd2d4, 0x84b8, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0xb315, 0xd274, 0xca53, 0xca54, 0xca53, 0xca53, 0xd253, 0x653a, 0x07ff, 0x07ff, 0x07df, 0x07df, 0x07ff, 0x07df, 0x07df, 0x07bf, 0x07bf, 0x079f, 0x079f, 0x077f, 0x075f, 0x075f, 0x073f, 0x073f, 0x071f, 0x071e, 0x071e, 0x073e, 0x079f, 0x07df, 0x07ff, 0x07df, 0x07df, 0x07df, 0x07df, 0x07df, 0x07bf, 0x07bf, 0x07bf, 0x07bf, 0x07bf, 0x07bf, 0x07bf, 0x07bf, 0x07bf, 0x07df, 0x07df, 0x07df, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x7d7a, 0xd395, 0xd395, 0xc375, 0x28fe, 0x007f, 0x007f, 0x005f, 0x005f, 0x003f, 0x005f, 0x003f, 0x003f, 0x183e, 0xc0d1, 0xc0d1, 0xc0d2, 0x7996, 0x04bf, 0x067f, 0x07bf, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0xa214, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0d1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0d1, 0x58f1, 0x30f0, 0x30f0, 0x30f0, 0x28cf, 0x28ef, 0x28cf, 0x20ce, 0x20ce, 0x20ce, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x011a, 0x0119, 0x0119, 0x011a, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ce, 0x18ad, 0x18ae, 0x18ae, 0x00f7, 0x011a, 0x00f8, 0x18d0, 0x18ad, 0x18ad, 0x20cd, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18cd, 0x20ad, 0x18cd, 0x20ad, 0x18ae, 0x20ad, 0x18ad, 0x18ad, 0x18ae, 0x18d0, 0x00f9, 0x0119, 0x0117, 0x18ce, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ae, 0x20ae, 0x20ad, 0x20ae, 0x20ae, 0x20ae, 0x20ce, 0x20ce, 0x20ce, 0x28cf, 0x28cf, 0x28cf, 0x28ef, 0x30f0, 0x30f0, 0x30f0, 0x38f0, 0x3911, 0x5972, 0xcb55, 0xd375, 0xd375, 0xd375, 0xd375, 0xabd5, 0x4515, 0x54f5, 0x7c75, 0x8c35, 0xabd5, 0xcb55, 0xd335, 0xd335, 0xd334, 0xd335, 0xd335, 0xd315, 0xd314, 0xd314, 0xc355, 0x9c37, 0x659a, 0x467c, 0x0fbf, 0x07ff, 0x07ff, 0x269d, 0x9c17, 0xd2d4, 0x9c17, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x5d9a, 0xd274, 0xca53, 0xca54, 0xca53, 0xca33, 0xca33, 0xca33, 0x26dd, 0x07ff, 0x07df, 0x07df, 0x07df, 0x07df, 0x07bf, 0x079f, 0x079f, 0x077f, 0x077f, 0x075f, 0x073f, 0x071e, 0x071e, 0x06fe, 0x06fe, 0x06ff, 0x06de, 0x06de, 0x06be, 0x06be, 0x06de, 0x073e, 0x079f, 0x07bf, 0x07bf, 0x079f, 0x079f, 0x079f, 0x077f, 0x079f, 0x079f, 0x077f, 0x079f, 0x079f, 0x079f, 0x079f, 0x07bf, 0x07bf, 0x07df, 0x07df, 0x07df, 0x07ff, 0x07ff, 0x07ff, 0x0fbf, 0xc3f6, 0xd395, 0xd395, 0xaaf7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x001f, 0x001f, 0xa094, 0xc0d1, 0xc8b1, 0xa8f3, 0x04bf, 0x069f, 0x07df, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x73d8, 0xb8b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0d1, 0xc0b1, 0xc0b1, 0xc0b1, 0x78f1, 0x3911, 0x30f0, 0x30f0, 0x30ef, 0x28cf, 0x28cf, 0x20ce, 0x20ce, 0x20ce, 0x20ae, 0x20ae, 0x20ad, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x0119, 0x011a, 0x011a, 0x0119, 0x0119, 0x0119, 0x011a, 0x011a, 0x011a, 0x011a, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ae, 0x18cd, 0x18ad, 0x20ad, 0x18ae, 0x18ad, 0x18ae, 0x00f7, 0x0119, 0x0118, 0x18d0, 0x18ad, 0x18ad, 0x18ad, 0x188d, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ae, 0x18ae, 0x18cd, 0x10cf, 0x0119, 0x00f9, 0x0117, 0x18ce, 0x188d, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ae, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ae, 0x20ae, 0x20ad, 0x20ae, 0x20ae, 0x20ae, 0x20ce, 0x20ce, 0x20ce, 0x28cf, 0x28cf, 0x28cf, 0x28ef, 0x30f0, 0x30f0, 0x30f0, 0x3111, 0x71f2, 0xd375, 0xd375, 0xd375, 0xd375, 0xd375, 0xd355, 0xd375, 0xd355, 0xd355, 0xd335, 0xd335, 0xd355, 0xd335, 0xd335, 0xcb14, 0xd334, 0xd334, 0xac16, 0x753a, 0x467d, 0x1f5e, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x369c, 0x4e1b, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x26fd, 0xc2b4, 0xca53, 0xca53, 0xca53, 0xd253, 0xca33, 0xca33, 0xa356, 0x07ff, 0x07ff, 0x07df, 0x07bf, 0x07bf, 0x079f, 0x077f, 0x077f, 0x075f, 0x073f, 0x071f, 0x071f, 0x06ff, 0x06fe, 0x06fe, 0x06de, 0x06be, 0x06be, 0x069e, 0x069e, 0x069e, 0x067e, 0x067e, 0x065e, 0x065e, 0x06be, 0x073e, 0x075f, 0x075f, 0x075f, 0x075f, 0x075f, 0x075f, 0x075f, 0x075f, 0x077f, 0x077f, 0x077f, 0x077f, 0x079f, 0x07bf, 0x07bf, 0x07df, 0x07df, 0x07df, 0x07ff, 0x07df, 0x6dda, 0xd395, 0xd376, 0xd375, 0x79fa, 0x003f, 0x003f, 0x001f, 0x003f, 0x001f, 0x001f, 0x001f, 0x001f, 0x8896, 0xc0b1, 0xc0b1, 0xc8b1, 0x0c9f, 0x069f, 0x07bf, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x3dbb, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0d1, 0xc0b1, 0xb8d1, 0xc0b1, 0xc0b1, 0x98d1, 0x3911, 0x30f0, 0x30f0, 0x30ef, 0x28cf, 0x28cf, 0x20ce, 0x20ce, 0x20ce, 0x20ae, 0x20ce, 0x20ad, 0x20ae, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x08f5, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x08f5, 0x18ad, 0x18ad, 0x18ad, 0x18ad, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x0117, 0x011a, 0x0119, 0x18b0, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18b0, 0x00f9, 0x0119, 0x00f7, 0x18ce, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x20ce, 0x20ce, 0x20ce, 0x28cf, 0x28cf, 0x28cf, 0x28ef, 0x30f0, 0x30f0, 0x30f0, 0x9a93, 0xd375, 0xd375, 0xd375, 0xd375, 0xd355, 0xd355, 0xd355, 0xd355, 0xd355, 0xd335, 0xd355, 0xd355, 0xd335, 0xd335, 0xc375, 0x84f9, 0x4e3c, 0x0fbf, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x0f9f, 0xab75, 0xca54, 0xd253, 0xca53, 0xca33, 0xca33, 0xd233, 0xca33, 0x4dbb, 0x07df, 0x07bf, 0x07bf, 0x079f, 0x077f, 0x075f, 0x075f, 0x073f, 0x071f, 0x071f, 0x06ff, 0x06de, 0x06de, 0x06de, 0x06be, 0x06be, 0x069e, 0x067e, 0x067e, 0x067e, 0x065e, 0x063e, 0x063e, 0x061e, 0x061e, 0x05fe, 0x05fd, 0x067d, 0x06de, 0x06fe, 0x06fe, 0x06fe, 0x06fe, 0x071e, 0x073f, 0x073f, 0x073f, 0x073e, 0x075f, 0x077f, 0x079f, 0x079f, 0x07bf, 0x07df, 0x07df, 0x07ff, 0x07ff, 0x0fbf, 0xc3d6, 0xd375, 0xd375, 0xd355, 0x30fd, 0x001f, 0x001f, 0x001f, 0x001f, 0x003f, 0x001f, 0x001f, 0x6058, 0xc0b1, 0xc0b1, 0xc0b1, 0x33fc, 0x06bf, 0x07bf, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x0f9e, 0xc0d1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0d1, 0xb8b1, 0xc0b1, 0xb8d1, 0xb8d1, 0x3911, 0x38f0, 0x30f0, 0x30f0, 0x28cf, 0x28cf, 0x28cf, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ad, 0x20ae, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x00f7, 0x0119, 0x0119, 0x0119, 0x0119, 0x00f7, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x00f7, 0x0119, 0x0118, 0x18d0, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18b0, 0x0119, 0x0119, 0x00f7, 0x18ce, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x20ae, 0x20ae, 0x20ae, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x28cf, 0x28cf, 0x28ef, 0x28ef, 0x30f0, 0x3910, 0xaaf4, 0xd375, 0xd375, 0xd375, 0xd375, 0xd375, 0xd355, 0xd355, 0xd355, 0xd355, 0xd355, 0xd335, 0xd335, 0xb3d6, 0x7539, 0x271d, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x2efd, 0xb315, 0xca53, 0xca54, 0xca33, 0xca53, 0xca34, 0xca34, 0xca33, 0xa335, 0x07bf, 0x07bf, 0x079f, 0x077f, 0x075f, 0x073f, 0x073f, 0x071f, 0x06ff, 0x06ff, 0x06df, 0x06de, 0x06bf, 0x06be, 0x069e, 0x069e, 0x069e, 0x067e, 0x065e, 0x065e, 0x063e, 0x061e, 0x061e, 0x05fe, 0x05de, 0x05bd, 0x05be, 0x059d, 0x055e, 0x055e, 0x05be, 0x05fe, 0x061d, 0x067e, 0x06be, 0x06fe, 0x06fe, 0x071f, 0x071e, 0x073f, 0x073f, 0x075f, 0x077f, 0x079f, 0x07bf, 0x07bf, 0x07df, 0x07ff, 0x07ff, 0x8539, 0xd375, 0xd355, 0xd355, 0xbaf6, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x403b, 0xc8b1, 0xc0b1, 0xc0b1, 0x6318, 0x06bf, 0x07bf, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0xa9b3, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0d1, 0xb8d1, 0x4910, 0x3910, 0x30f0, 0x30f0, 0x28cf, 0x28ef, 0x28cf, 0x20cf, 0x20ce, 0x20ae, 0x20ae, 0x20ae, 0x18ad, 0x20ae, 0x18ad, 0x20ad, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x10d2, 0x10d3, 0x10d3, 0x10d2, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ae, 0x0117, 0x011a, 0x0119, 0x18af, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ae, 0x18ad, 0x18ae, 0x18cf, 0x00f8, 0x0119, 0x00f7, 0x18ae, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x20ae, 0x20ae, 0x20ae, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20cf, 0x20cf, 0x28cf, 0x28cf, 0x28ef, 0x30cf, 0x3910, 0xb314, 0xd375, 0xd375, 0xd375, 0xd375, 0xd375, 0xd355, 0xd355, 0xd354, 0xd355, 0xd355, 0xcb96, 0x8518, 0x36dd, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x0fbe, 0x653a, 0xca54, 0xca53, 0xd253, 0xca53, 0xca53, 0xca33, 0xca33, 0xca33, 0xca33, 0x2e9d, 0x077f, 0x077f, 0x075f, 0x073f, 0x073f, 0x071f, 0x06ff, 0x06fe, 0x06df, 0x06de, 0x06bf, 0x06be, 0x06bf, 0x069e, 0x067e, 0x067e, 0x065e, 0x065e, 0x063e, 0x061e, 0x061e, 0x05fe, 0x05de, 0x05be, 0x05be, 0x059e, 0x057e, 0x053e, 0x051e, 0x04fe, 0x04be, 0x049e, 0x041e, 0x03dd, 0x04de, 0x065e, 0x06be, 0x06de, 0x06de, 0x06fe, 0x071f, 0x073e, 0x077f, 0x079f, 0x079f, 0x07bf, 0x07df, 0x07df, 0x07ff, 0x36dd, 0xd355, 0xd355, 0xd355, 0xd335, 0x699a, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0xb8b2, 0xc091, 0xc0b1, 0x7a96, 0x06bf, 0x079f, 0x07df, 0x07df, 0x07df, 0x07df, 0x07df, 0x07ff, 0x07ff, 0x07ff, 0x82f5, 0xc0b1, 0xc0d1, 0xc0b1, 0xc0b1, 0xc0b1, 0xb8d1, 0xb8d1, 0xb8d1, 0x60f1, 0x3911, 0x30f0, 0x30f0, 0x28ef, 0x28ef, 0x28cf, 0x20cf, 0x20ce, 0x20ce, 0x20ae, 0x20ae, 0x20ae, 0x18ce, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x08f7, 0x0119, 0x08f7, 0x18ce, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x10d0, 0x0118, 0x0119, 0x00f7, 0x18ce, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ae, 0x18ad, 0x20ad, 0x20ad, 0x20ae, 0x20ae, 0x20ae, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x28ce, 0x20cf, 0x28cf, 0x28ef, 0x3910, 0xb314, 0xd395, 0xd375, 0xd375, 0xd375, 0xd375, 0xd355, 0xd355, 0xd355, 0xd355, 0xbbd6, 0x5dfb, 0x0fbf, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x0fbf, 0x5d9a, 0xb315, 0xd254, 0xca53, 0xd254, 0xca53, 0xca53, 0xca33, 0xd233, 0xca33, 0xca33, 0x64d9, 0x077f, 0x073f, 0x073f, 0x071f, 0x06ff, 0x06ff, 0x06df, 0x06df, 0x06df, 0x06bf, 0x06be, 0x069f, 0x069f, 0x067e, 0x065e, 0x065e, 0x063e, 0x063e, 0x061e, 0x05fe, 0x05fe, 0x05de, 0x05be, 0x059e, 0x059e, 0x055e, 0x055e, 0x051e, 0x04fe, 0x04de, 0x049e, 0x043d, 0x03de, 0x03be, 0x039e, 0x037e, 0x03fe, 0x05fe, 0x069e, 0x069e, 0x06be, 0x06fe, 0x071e, 0x073f, 0x075f, 0x079f, 0x079f, 0x07df, 0x07df, 0x07df, 0x07ff, 0xbbf6, 0xd355, 0xd335, 0xd335, 0xc2f5, 0x083f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x003f, 0x9095, 0xc8b1, 0xc8b1, 0x91f5, 0x067f, 0x06ff, 0x073f, 0x075f, 0x077f, 0x07bf, 0x07df, 0x07ff, 0x07ff, 0x07ff, 0x54d9, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xb8d1, 0xc0d1, 0xb8d1, 0xb8d1, 0x80f2, 0x3911, 0x30f0, 0x30f0, 0x30ef, 0x28cf, 0x28cf, 0x20ce, 0x20ce, 0x20ae, 0x20ad, 0x20cd, 0x20ae, 0x18ad, 0x18ae, 0x20ae, 0x18ad, 0x18ae, 0x18ae, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ae, 0x18ad, 0x20ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ce, 0x08f7, 0x011a, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x00f9, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x00f6, 0x18ce, 0x18ad, 0x18ad, 0x20ad, 0x18ae, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ae, 0x18ad, 0x18ad, 0x18ae, 0x20ad, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x20ce, 0x20ce, 0x20ce, 0x20cf, 0x28ce, 0x28cf, 0x28cf, 0x3110, 0xb314, 0xd395, 0xd375, 0xd375, 0xd375, 0xd375, 0xd355, 0xd355, 0xd355, 0x9c77, 0x563b, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x1f7e, 0x65db, 0x7cf9, 0x9c57, 0x9c57, 0x9c57, 0x9c57, 0x9c37, 0x9c37, 0x9c37, 0x9c37, 0x7539, 0x6d7a, 0x6579, 0x5dbb, 0x36bd, 0x36bd, 0x36bc, 0x2efd, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x0fbf, 0x36bd, 0x5d9a, 0x8c37, 0xd274, 0xd273, 0xd254, 0xca53, 0xd254, 0xd253, 0xca33, 0xd233, 0xca34, 0xca13, 0xca33, 0x8418, 0x075f, 0x073f, 0x071f, 0x06ff, 0x06ff, 0x06df, 0x06df, 0x06df, 0x06bf, 0x06bf, 0x069e, 0x069f, 0x067e, 0x067e, 0x065e, 0x065e, 0x063e, 0x061e, 0x061e, 0x05fe, 0x05de, 0x05de, 0x05be, 0x05be, 0x057e, 0x055e, 0x051e, 0x051e, 0x04fe, 0x04be, 0x045e, 0x03fe, 0x03be, 0x039e, 0x037e, 0x037e, 0x035e, 0x033e, 0x035e, 0x061d, 0x067e, 0x067e, 0x069e, 0x06be, 0x06fe, 0x073f, 0x075f, 0x077f, 0x079f, 0x07df, 0x07df, 0x07ff, 0x7d59, 0xd335, 0xd335, 0xd335, 0xd314, 0x699a, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x007f, 0x60d8, 0xc0b1, 0xc0b1, 0xb8f2, 0x05df, 0x061f, 0x065f, 0x06df, 0x073f, 0x077f, 0x07df, 0x07ff, 0x07ff, 0x07ff, 0x363c, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xb8d1, 0xc0d1, 0xb8d1, 0xb8d1, 0x90d1, 0x3911, 0x30f0, 0x30f0, 0x30f0, 0x28cf, 0x28cf, 0x28ce, 0x20ce, 0x20ce, 0x20ce, 0x20ae, 0x20ad, 0x18ae, 0x18ad, 0x18ae, 0x20ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ae, 0x18ad, 0x18ad, 0x18ae, 0x00f7, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x011a, 0x0119, 0x00f9, 0x0119, 0x0119, 0x011a, 0x08d5, 0x18ad, 0x18ad, 0x18ad, 0x20ae, 0x18ae, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18cd, 0x18ad, 0x20ad, 0x18ad, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x20ce, 0x20ce, 0x20ce, 0x20cf, 0x28ce, 0x28ce, 0x30ef, 0xb314, 0xd375, 0xd375, 0xd375, 0xd375, 0xd355, 0xd375, 0xd355, 0x9c77, 0x3edd, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x659a, 0xd315, 0xd314, 0xd315, 0xd314, 0xd314, 0xd314, 0xd2f4, 0xd2f4, 0xd2f4, 0xd2f4, 0xd2d4, 0xd2d4, 0xd2f4, 0xcad4, 0xd2d4, 0xd2b4, 0xd2b4, 0xd2b4, 0xcab4, 0xd2b4, 0xd2b4, 0xd2b4, 0xd294, 0xd294, 0xca94, 0xca94, 0xca94, 0xca94, 0xca74, 0xca74, 0xca73, 0xca73, 0xd274, 0xca53, 0xca53, 0xca53, 0xca53, 0xca53, 0xca53, 0xca33, 0xca33, 0xca33, 0xab15, 0x0edf, 0x06ff, 0x06ff, 0x06df, 0x06df, 0x06bf, 0x06bf, 0x06df, 0x06bf, 0x069f, 0x069f, 0x067e, 0x067f, 0x067e, 0x065e, 0x063f, 0x061e, 0x061e, 0x05fe, 0x05fe, 0x05de, 0x05be, 0x059e, 0x059e, 0x055e, 0x053e, 0x051e, 0x04fe, 0x04de, 0x049e, 0x043e, 0x03be, 0x039e, 0x039e, 0x035e, 0x035e, 0x033e, 0x033e, 0x031e, 0x02fe, 0x037e, 0x05fe, 0x065e, 0x067e, 0x069e, 0x06de, 0x06fe, 0x075f, 0x077f, 0x079f, 0x07bf, 0x07df, 0x07ff, 0x271d, 0xd335, 0xd314, 0xd315, 0xd315, 0xc2d5, 0x083f, 0x001f, 0x001f, 0x001f, 0x001f, 0x009f, 0x60d8, 0xc0b1, 0xc0b2, 0xc0b1, 0x04bf, 0x053f, 0x05bf, 0x067f, 0x06df, 0x075f, 0x079f, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0xc0b1, 0xc0b1, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8d1, 0xc0b1, 0xb8d1, 0x98d1, 0x3911, 0x38f0, 0x30f0, 0x30f0, 0x28cf, 0x28cf, 0x28cf, 0x20ce, 0x20ce, 0x20ce, 0x20ae, 0x20ae, 0x18ce, 0x20ad, 0x18ad, 0x20ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ae, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x20ae, 0x18ad, 0x20ae, 0x20ae, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x28ce, 0x20ce, 0x30ef, 0xb314, 0xd375, 0xd375, 0xd375, 0xd375, 0xd355, 0xd375, 0xac37, 0x36dd, 0x07ff, 0x07ff, 0x07ff, 0x0ebd, 0x1d7b, 0x1c99, 0x32f5, 0x3a75, 0x6193, 0x69b3, 0x79f4, 0x8a14, 0xb294, 0xcaf4, 0xd2f4, 0xd2f4, 0xd2f4, 0xd2f4, 0xd2d4, 0xd2d4, 0xd2d4, 0xd2d4, 0xd2b4, 0xd2b4, 0xcad4, 0xd2b4, 0xcab4, 0xd2b4, 0xd2b4, 0xd294, 0xd294, 0xd294, 0xd294, 0xca94, 0xca94, 0xca74, 0xca74, 0xd274, 0xd274, 0xca53, 0xca54, 0xca54, 0xca53, 0xd253, 0xca53, 0xca33, 0xca33, 0xca33, 0xca33, 0x8b97, 0x35fd, 0x5d7b, 0x6d3a, 0x6d3a, 0x5d5b, 0x35fd, 0x06bf, 0x0e7e, 0x457c, 0x6c99, 0x6479, 0x6459, 0x4cba, 0x0e1e, 0x063e, 0x063e, 0x061e, 0x05fe, 0x05fe, 0x05fe, 0x05de, 0x05be, 0x059e, 0x057e, 0x055e, 0x051e, 0x051e, 0x04fe, 0x04de, 0x047e, 0x03de, 0x03be, 0x037e, 0x037f, 0x035e, 0x033e, 0x033e, 0x031e, 0x02fe, 0x02fe, 0x02fe, 0x02de, 0x03fe, 0x05be, 0x063e, 0x065e, 0x069e, 0x06de, 0x071f, 0x073e, 0x077f, 0x079f, 0x07bf, 0x07df, 0x07ff, 0xbbb6, 0xd314, 0xd315, 0xd2f4, 0xd2f4, 0x697a, 0x001f, 0x001f, 0x001f, 0x003f, 0x007f, 0x48fa, 0xc0b1, 0xc0b1, 0xc0b1, 0x331c, 0x047f, 0x053f, 0x05ff, 0x069f, 0x073f, 0x079f, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x9a14, 0xb8d1, 0xb8d1, 0xc0b1, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8d1, 0xb0d1, 0x3911, 0x38f0, 0x30f0, 0x30f0, 0x28cf, 0x28cf, 0x28cf, 0x20ce, 0x20cf, 0x20ae, 0x18cf, 0x08f6, 0x011a, 0x0119, 0x0119, 0x08f4, 0x18ce, 0x18ad, 0x18ad, 0x20ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ae, 0x20ad, 0x20ae, 0x18ad, 0x20ae, 0x20ae, 0x20ce, 0x20ae, 0x20ce, 0x20ce, 0x20ce, 0x28cf, 0x9273, 0xd375, 0xd375, 0xd375, 0xd375, 0xd375, 0xc3b6, 0x5dfb, 0x07ff, 0x0e3b, 0x1c98, 0x2ad5, 0x3911, 0x3911, 0x3912, 0x4111, 0x4112, 0x4112, 0x4112, 0x4132, 0x4132, 0x4132, 0x4132, 0x4933, 0x5173, 0x79d3, 0x9a54, 0xc294, 0xd2f4, 0xd2d5, 0xcad4, 0xd2d4, 0xd2b4, 0xcad4, 0xd2b4, 0xd2b4, 0xd2b4, 0xd2b4, 0xd294, 0xd294, 0xd294, 0xd294, 0xca94, 0xca94, 0xca74, 0xca74, 0xca74, 0xca73, 0xd253, 0xca53, 0xca53, 0xca53, 0xca53, 0xca53, 0xca33, 0xca33, 0xca33, 0xca33, 0x99d4, 0x6358, 0xd395, 0xd396, 0xd395, 0xd395, 0xd375, 0xd375, 0x06bf, 0x5cfa, 0xd2b4, 0xca94, 0xca33, 0xca13, 0xc9d3, 0xb9d3, 0x4c5a, 0x061e, 0x061e, 0x05de, 0x05de, 0x05be, 0x059e, 0x059e, 0x057e, 0x053e, 0x051e, 0x051d, 0x04de, 0x04be, 0x043e, 0x03be, 0x03be, 0x037f, 0x0b7e, 0x337c, 0x333c, 0x335c, 0x333c, 0x333c, 0x331c, 0x331c, 0x32fc, 0x32fc, 0x32dc, 0x2b7c, 0x05de, 0x061e, 0x065e, 0x069e, 0x06de, 0x071f, 0x073f, 0x077f, 0x07bf, 0x07df, 0x07df, 0x84f9, 0xd314, 0xcb14, 0xcaf4, 0xd2d5, 0xb275, 0x001f, 0x001f, 0x001f, 0x001f, 0x005f, 0x08df, 0xb8d2, 0xc0b1, 0xc0b1, 0x3a7b, 0x03ff, 0x04df, 0x05bf, 0x067f, 0x071f, 0x079f, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x7b77, 0xb8d1, 0xb8b1, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8d1, 0x4111, 0x38f1, 0x30f0, 0x30f0, 0x28cf, 0x28cf, 0x28cf, 0x20cf, 0x20ae, 0x20cf, 0x0918, 0x013a, 0x011a, 0x0119, 0x011a, 0x0119, 0x08f6, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, + 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x011a, 0x0119, 0x011a, 0x0119, 0x0119, 0x0119, 0x00f9, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x011a, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x011a, 0x0119, 0x011a, 0x0119, 0x0139, 0x00f9, 0x10d2, 0x20ae, 0x18ad, 0x20ae, 0x20ae, 0x20ce, 0x20ae, 0x20ce, 0x20ce, 0x20ce, 0x7a32, 0xd375, 0xd375, 0xd375, 0xd375, 0xd375, 0x9c78, 0x261b, 0x1b96, 0x3171, 0x30f0, 0x38f1, 0x3911, 0x3911, 0x3911, 0x3911, 0x3911, 0x3911, 0x4111, 0x3912, 0x4112, 0x4112, 0x4112, 0x4132, 0x4112, 0x4132, 0x4132, 0x4912, 0x4132, 0x6172, 0x81f3, 0xaa73, 0xcad4, 0xd2b4, 0xcab4, 0xd2b4, 0xd2b4, 0xcab4, 0xcab4, 0xca94, 0xca94, 0xd294, 0xca94, 0xca94, 0xca74, 0xca74, 0xca74, 0xd274, 0xca54, 0xd274, 0xca53, 0xca53, 0xca53, 0xd233, 0xca33, 0xca33, 0xd233, 0xc234, 0x7994, 0x5975, 0xb315, 0xd395, 0xd395, 0xd395, 0xd395, 0xd375, 0xc375, 0x067f, 0x067f, 0x6c79, 0xca33, 0xca13, 0xc9d3, 0xc992, 0xc952, 0xc912, 0x34bb, 0x05fe, 0x05de, 0x05be, 0x059e, 0x055e, 0x055e, 0x053e, 0x051e, 0x04fe, 0x249d, 0x347b, 0x6bfa, 0x7b99, 0x9b98, 0xab97, 0xdb95, 0xd396, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd396, 0xd395, 0xd396, 0xd395, 0xbbd6, 0x9c37, 0x8499, 0x6d1a, 0x363c, 0x1edd, 0x079f, 0x07bf, 0x07df, 0x4e1b, 0xd2f4, 0xd2f5, 0xd2d4, 0xd2d4, 0xd2d4, 0x40fc, 0x001f, 0x001f, 0x001f, 0x003f, 0x009f, 0x78d7, 0xc0b1, 0xc0b1, 0x61d8, 0x03bf, 0x049f, 0x057f, 0x065f, 0x071f, 0x07bf, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x54d9, 0xb8d1, 0xb8b1, 0xb8d1, 0xc0b1, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8d1, 0x4111, 0x3911, 0x30f0, 0x30f0, 0x28ef, 0x28cf, 0x28cf, 0x20cf, 0x20ae, 0x10f3, 0x013a, 0x0119, 0x0139, 0x0119, 0x0119, 0x0119, 0x011a, 0x18d0, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, + 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x011a, 0x0119, 0x011a, 0x0119, 0x0119, 0x0119, 0x011a, 0x0119, 0x0119, 0x011a, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x011a, 0x0119, 0x18ad, 0x20ae, 0x18ad, 0x20ae, 0x20ae, 0x20ae, 0x20ce, 0x20ce, 0x5170, 0xd395, 0xd375, 0xd375, 0xd375, 0xd355, 0x6519, 0x22b3, 0x30f0, 0x30f0, 0x30f0, 0x30f0, 0x30f0, 0x38f0, 0x3911, 0x3911, 0x3911, 0x3911, 0x3911, 0x3911, 0x3911, 0x3911, 0x3911, 0x3911, 0x3911, 0x4112, 0x4112, 0x4112, 0x4112, 0x4132, 0x4112, 0x4132, 0x4112, 0x4952, 0x79b3, 0xa233, 0xd2b4, 0xcab4, 0xd294, 0xca94, 0xd294, 0xca94, 0xca74, 0xca94, 0xca74, 0xca74, 0xd274, 0xca54, 0xd274, 0xd253, 0xca54, 0xca54, 0xca33, 0xd233, 0xca34, 0xca33, 0xca33, 0xa1d3, 0x5954, 0x5954, 0x79f5, 0xd395, 0xd395, 0xd395, 0xd375, 0xd375, 0xd335, 0x8c18, 0x067f, 0x065f, 0x063f, 0xa2d5, 0xc9d3, 0xc972, 0xc952, 0xc111, 0xc8d1, 0x8a55, 0x05de, 0x05be, 0x059e, 0x057e, 0x055e, 0x34dc, 0x6c5a, 0xa3f7, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd375, 0xd375, 0xd355, 0xd355, 0xd335, 0xd335, 0xd335, 0xbbb6, 0x84d9, 0x4e1b, 0x465c, 0xd2f5, 0xd2d4, 0xd2d4, 0xd2d4, 0xd2b4, 0x81d8, 0x001f, 0x001f, 0x001f, 0x001f, 0x005f, 0x6098, 0xc0b1, 0xc0d1, 0x59b8, 0x035f, 0x045f, 0x055f, 0x063f, 0x06ff, 0x079f, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x363c, 0xc0d1, 0xb8d1, 0xb8b1, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8d1, 0x58f1, 0x3911, 0x30f0, 0x3110, 0x30cf, 0x28ef, 0x28cf, 0x28cf, 0x20ce, 0x08f6, 0x013a, 0x0119, 0x0119, 0x011a, 0x011a, 0x0119, 0x0119, 0x0119, 0x0119, 0x011a, 0x0119, 0x011a, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, + 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x011a, 0x0119, 0x0119, 0x0119, 0x0119, 0x011a, 0x011a, 0x0119, 0x0119, 0x011a, 0x0119, 0x0119, 0x011a, 0x0119, 0x011a, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x011a, 0x011a, 0x011a, 0x011a, 0x0119, 0x0119, 0x011a, 0x00f8, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x20ae, 0x20ce, 0x20ae, 0x28ee, 0xcb55, 0xd375, 0xd375, 0xd375, 0xbb14, 0x34f9, 0x2930, 0x30ef, 0x30f0, 0x30f0, 0x30f0, 0x30f0, 0x30f0, 0x30f0, 0x30f0, 0x30f0, 0x3911, 0x3911, 0x3911, 0x3911, 0x3911, 0x3911, 0x3911, 0x3911, 0x3911, 0x3911, 0x3911, 0x3911, 0x3911, 0x3911, 0x3911, 0x3911, 0x4112, 0x4111, 0x3931, 0x4112, 0x4111, 0x6993, 0x91f2, 0xc254, 0xca93, 0xca94, 0xca94, 0xca74, 0xca74, 0xd274, 0xca73, 0xd273, 0xca73, 0xd254, 0xca53, 0xca53, 0xca54, 0xca33, 0xca34, 0xa1f3, 0x6973, 0x4953, 0x5134, 0x5154, 0xaaf5, 0xd395, 0xd395, 0xd395, 0xd375, 0xd335, 0xd314, 0x5cda, 0x065f, 0x063f, 0x063f, 0xb254, 0xc972, 0xc952, 0xc112, 0xc8d1, 0xc0b1, 0xc0b1, 0x05be, 0x059e, 0x2d1c, 0x9438, 0xcbb6, 0xd396, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd396, 0xd375, 0xd355, 0xd355, 0xd355, 0xd335, 0xd335, 0xd314, 0xd314, 0xd315, 0xd2f4, 0xd2f5, 0xd2d4, 0xd2d4, 0xd2d4, 0xd2b4, 0xd2b4, 0xca94, 0x087f, 0x003f, 0x001f, 0x001f, 0x001f, 0x385b, 0xc0b1, 0xc0b1, 0x9135, 0x031f, 0x043f, 0x053f, 0x063f, 0x071f, 0x079f, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8b1, 0xb8d1, 0xc0d1, 0xb8b1, 0xb8d1, 0x5911, 0x3911, 0x38f0, 0x30f0, 0x30cf, 0x28cf, 0x28cf, 0x20cf, 0x20ce, 0x0917, 0x011a, 0x0119, 0x011a, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x011a, 0x0119, 0x0119, 0x0119, 0x0119, 0x00f9, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, + 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x011a, 0x0119, 0x0119, 0x011a, 0x0119, 0x0119, 0x0119, 0x011a, 0x0119, 0x011a, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x011a, 0x0119, 0x0118, 0x011a, 0x00f9, 0x0119, 0x00f9, 0x10d2, 0x20ad, 0x18cd, 0x20ae, 0x18ad, 0x20ae, 0x20ce, 0x20ce, 0x8252, 0xd375, 0xd375, 0xd375, 0x9a93, 0x30ef, 0x20cf, 0x28cf, 0x28cf, 0x28ef, 0x28ef, 0x28f0, 0x30f0, 0x30f0, 0x30f0, 0x30f0, 0x30f0, 0x30f0, 0x30f0, 0x30f0, 0x30f0, 0x30f0, 0x38f0, 0x38f0, 0x3911, 0x3911, 0x3911, 0x3911, 0x3911, 0x3911, 0x3911, 0x3911, 0x3911, 0x3911, 0x3911, 0x3911, 0x38f1, 0x3911, 0x3911, 0x3911, 0x3911, 0x4111, 0x6972, 0x81d2, 0xaa13, 0xba33, 0xca54, 0xca74, 0xca53, 0xca54, 0xca53, 0xca53, 0xb213, 0xa1f3, 0x8193, 0x5152, 0x4932, 0x4933, 0x4933, 0x4933, 0x5174, 0xd395, 0xd395, 0xd396, 0xd375, 0xd334, 0xd2f5, 0xd2b4, 0x2d9d, 0x063f, 0x063f, 0x061f, 0xc993, 0xc952, 0xc911, 0xc8f1, 0xc0b1, 0xc0b1, 0xb8d1, 0x059e, 0x057e, 0xabf7, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd375, 0xd395, 0xd395, 0xd375, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd396, 0xd395, 0xd395, 0xd395, 0xd375, 0xd375, 0xd355, 0xd355, 0xd355, 0xd335, 0xd335, 0xd315, 0xd335, 0xcb15, 0xd2f4, 0xd2f5, 0xd2d4, 0xd2d4, 0xd2d4, 0xd2b4, 0xd2b4, 0xd294, 0xd294, 0x411c, 0x003f, 0x003f, 0x001f, 0x001f, 0x203c, 0xc0b1, 0xc0b1, 0x9135, 0x02ff, 0x041f, 0x051f, 0x061f, 0x06ff, 0x07bf, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0xa1b3, 0xb8b1, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8d1, 0x68f1, 0x3911, 0x38f0, 0x30f0, 0x30ef, 0x28cf, 0x28cf, 0x28cf, 0x20ce, 0x10f3, 0x0119, 0x0119, 0x0119, 0x00fa, 0x0119, 0x0119, 0x0119, 0x10d0, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x20ad, 0x18ae, 0x18ae, 0x18ad, 0x20ae, 0x18ad, 0x20ae, 0x20ce, 0x412f, 0xd375, 0xd375, 0xd375, 0x71d1, 0x20ce, 0x28cf, 0x20cf, 0x28ce, 0x28cf, 0x28cf, 0x28ef, 0x28ef, 0x28ef, 0x30f0, 0x30f0, 0x30f0, 0x30f0, 0x30f0, 0x30f0, 0x30f0, 0x30f0, 0x30f0, 0x30f0, 0x30f0, 0x30f0, 0x30f0, 0x30f0, 0x30f0, 0x30f0, 0x30f0, 0x30f0, 0x30f0, 0x3110, 0x3110, 0x38f0, 0x30f0, 0x3111, 0x3111, 0x38f1, 0x38f1, 0x38f0, 0x3910, 0x3910, 0x3910, 0x3911, 0x3911, 0x3911, 0x3910, 0x6152, 0x6152, 0x5131, 0x3911, 0x3911, 0x3911, 0x3912, 0x4112, 0x4132, 0x4112, 0x4932, 0x4932, 0x8a34, 0xd395, 0xd395, 0xd375, 0xd335, 0xd2f4, 0xcad4, 0xb2f6, 0x065f, 0x061f, 0x061f, 0x34dc, 0xc952, 0xc912, 0xc8d2, 0xc0b1, 0xc0d1, 0xb8d1, 0x89b4, 0x2bba, 0x4216, 0x5154, 0x5154, 0x4954, 0x5154, 0x6194, 0x71d4, 0x69f4, 0x71d3, 0x69d4, 0x71d3, 0x7a14, 0x8a75, 0x9274, 0x9254, 0x9254, 0x9a95, 0xb315, 0xbb14, 0xd396, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd375, 0xd375, 0xd355, 0xd355, 0xd355, 0xd335, 0xd335, 0xd314, 0xd315, 0xd2f4, 0xcb14, 0xd2f4, 0xd2f4, 0xd2d4, 0xcad4, 0xcab4, 0xd2b4, 0xcab4, 0xca94, 0xca94, 0x81b8, 0x005f, 0x005f, 0x003f, 0x001f, 0x001f, 0xa8b3, 0xc0b1, 0xb0d2, 0x02df, 0x03ff, 0x051f, 0x061f, 0x06ff, 0x07bf, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x8a95, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8d1, 0x78f2, 0x3911, 0x38f0, 0x30f0, 0x28f0, 0x28cf, 0x28cf, 0x28ce, 0x20ce, 0x20cf, 0x0918, 0x0119, 0x0119, 0x011a, 0x00f9, 0x0119, 0x08f7, 0x18ae, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x20ad, 0x18ad, 0x20ae, 0x20ae, 0x20cd, 0x20ae, 0x20cd, 0x9272, 0xd375, 0xc334, 0x61d1, 0x20cf, 0x20ce, 0x20ce, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x28ef, 0x28ef, 0x30ef, 0x30f0, 0x30f0, 0x30f0, 0x30f0, 0x30f0, 0x30f0, 0x30f0, 0x30f0, 0x30f0, 0x30f0, 0x30f0, 0x30f0, 0x30f0, 0x30f0, 0x30f0, 0x30f0, 0x30f0, 0x30f0, 0x30f0, 0x30f0, 0x30f0, 0x30f0, 0x30f0, 0x30f0, 0x38f0, 0x30f0, 0x3110, 0x3110, 0x30f0, 0x3110, 0x38f0, 0x30f0, 0x38f0, 0x3111, 0x38f0, 0x3911, 0x38f1, 0x3911, 0x3911, 0x3912, 0x4111, 0x4132, 0x4132, 0xb2f5, 0xd395, 0xd375, 0xd355, 0xd2f4, 0xd2b4, 0xd274, 0x83b8, 0x063f, 0x061f, 0x061e, 0x6398, 0xc912, 0xc8d1, 0xc0b1, 0xc0b1, 0xb8b1, 0xb8d1, 0x7933, 0x5153, 0x5134, 0x5154, 0x5133, 0x4953, 0x4933, 0x4933, 0x4933, 0x4133, 0x4933, 0x4932, 0x4932, 0x4932, 0x4933, 0x4933, 0x4933, 0x4932, 0x4932, 0x4933, 0x4933, 0x4933, 0x61b3, 0x7a34, 0x9a95, 0xb2f5, 0xd375, 0xd375, 0xd355, 0xd355, 0xd355, 0xd335, 0xd335, 0xd314, 0xd314, 0xd315, 0xd2f4, 0xd2f4, 0xd2f4, 0xd2d4, 0xd2d4, 0xd2b4, 0xd2b4, 0xd294, 0xd294, 0xd274, 0xca74, 0xc254, 0x007f, 0x005f, 0x005f, 0x003f, 0x001f, 0x5878, 0xb8d1, 0xc0b1, 0x02bf, 0x03bf, 0x04ff, 0x05ff, 0x06ff, 0x07bf, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x6478, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8d1, 0x78f1, 0x3911, 0x38f0, 0x30f0, 0x30f0, 0x28cf, 0x28cf, 0x28ce, 0x20ce, 0x20ce, 0x20cf, 0x0917, 0x011a, 0x011a, 0x0119, 0x08f4, 0x18ce, 0x18ae, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x20cd, 0x18ce, 0x20ae, 0x390f, 0xd375, 0xcb35, 0x414f, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x28ef, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x28ef, 0x28ef, 0x28ef, 0x30ef, 0x30ef, 0x30ef, 0x30ef, 0x30ef, 0x30ef, 0x30ef, 0x30ef, 0x30f0, 0x28f0, 0x30f0, 0x30f0, 0x30f0, 0x28f0, 0x30f0, 0x30ef, 0x3110, 0x30f0, 0x30d0, 0x30f0, 0x30f0, 0x30f0, 0x30f0, 0x30f0, 0x30f1, 0x30f0, 0x30f0, 0x38f0, 0x3911, 0x3910, 0x3911, 0x38f1, 0x3911, 0x3912, 0x4952, 0xd395, 0xd375, 0xd335, 0xd2f4, 0xd2b4, 0xd274, 0xca33, 0x4c9a, 0x05ff, 0x061f, 0x05ff, 0xa1f4, 0xc0d1, 0xc0b1, 0xc0b1, 0xb8d1, 0xb8d1, 0xa0f1, 0x5134, 0x4933, 0x4933, 0x4933, 0x4933, 0x4933, 0x4932, 0x4932, 0x4932, 0x4132, 0x4132, 0x4132, 0x4112, 0x4112, 0x4112, 0x4112, 0x4112, 0x4112, 0x4132, 0x4132, 0x4132, 0x4132, 0x4132, 0x4133, 0x4933, 0x4932, 0x4953, 0x6193, 0x8214, 0xa274, 0xc315, 0xd335, 0xd314, 0xd315, 0xd2f4, 0xd2f4, 0xd2f5, 0xd2d4, 0xd2d4, 0xd2d4, 0xd2b4, 0xcab4, 0xcab4, 0xca94, 0xca74, 0xca74, 0xca74, 0xca54, 0x20fd, 0x009f, 0x007f, 0x005f, 0x003f, 0x105d, 0xc0b1, 0xc0d1, 0x029f, 0x03bf, 0x04df, 0x05ff, 0x06ff, 0x07bf, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x54d9, 0xb8d1, 0xb8d1, 0xb8b1, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8d1, 0x78f1, 0x3911, 0x38f0, 0x30f0, 0x30f0, 0x28cf, 0x28cf, 0x28ce, 0x20cf, 0x20ce, 0x20ae, 0x20ae, 0x20ae, 0x20ad, 0x18ad, 0x20ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ae, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ae, 0x18ad, 0x20ad, 0x20ae, 0x61d0, 0xbb14, 0x412f, 0x20ae, 0x20ae, 0x20ce, 0x20ae, 0x20ce, 0x20ce, 0x28ce, 0x20ce, 0x20cf, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x28ef, 0x28ef, 0x28cf, 0x28f0, 0x30d0, 0x28ef, 0x28cf, 0x30cf, 0x30f0, 0x30d0, 0x30d0, 0x28f0, 0x30f0, 0x30f0, 0x30f0, 0x30d0, 0x30f0, 0x30f0, 0x30f0, 0x30f0, 0x38f0, 0x3911, 0x3911, 0x3911, 0x61b2, 0xd375, 0xd335, 0xd2f4, 0xcad4, 0xca74, 0xd233, 0xca13, 0x1d9d, 0x05ff, 0x05ff, 0x1d3d, 0xc0d1, 0xc0b1, 0xc0b1, 0xb8d1, 0xb8d1, 0xb0d1, 0x6132, 0x4933, 0x4933, 0x4932, 0x4132, 0x4112, 0x4112, 0x4112, 0x4132, 0x4112, 0x4111, 0x4111, 0x4112, 0x4112, 0x4111, 0x3911, 0x3911, 0x4111, 0x4112, 0x4112, 0x3912, 0x4132, 0x4112, 0x4112, 0x4112, 0x4912, 0x4132, 0x4132, 0x4932, 0x4933, 0x4953, 0x4933, 0x6173, 0x8a14, 0xaa74, 0xcaf4, 0xd2f5, 0xd2d4, 0xd2d4, 0xd2d4, 0xd2b4, 0xcab4, 0xd2b4, 0xd294, 0xca94, 0xca73, 0xd274, 0xd253, 0xd254, 0x597a, 0x00bf, 0x00bf, 0x009f, 0x009f, 0x005f, 0xa8b3, 0xc0b1, 0x31fc, 0x039f, 0x04df, 0x05df, 0x06df, 0x07bf, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x2e3c, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8b1, 0xb8d1, 0xb8d1, 0x78f1, 0x3911, 0x30f0, 0x30f0, 0x28ef, 0x28ef, 0x28cf, 0x28cf, 0x20ce, 0x20ce, 0x20ce, 0x20ad, 0x20ae, 0x18ce, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x18af, 0x18af, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18af, 0x18af, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x20ae, 0x390f, 0x28ce, 0x20ae, 0x20ce, 0x20ae, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x28ef, 0x28ef, 0x28ef, 0x28cf, 0x28ef, 0x28ef, 0x30ef, 0x28ef, 0x28ef, 0x30f0, 0x30f0, 0x30f0, 0x30f0, 0x30f0, 0x30f0, 0x3911, 0x71f2, 0xd335, 0xd2f4, 0xd2b4, 0xca74, 0xd233, 0xca13, 0xa295, 0x05ff, 0x05ff, 0x05ff, 0x5399, 0xc0d1, 0xc0b1, 0xb8d1, 0xb8d1, 0xb0d1, 0x7912, 0x4952, 0x4132, 0x4112, 0x4132, 0x4132, 0x4132, 0x4112, 0x3911, 0x3911, 0x3911, 0x3911, 0x38f1, 0x3911, 0x3911, 0x3911, 0x3911, 0x3911, 0x3911, 0x3911, 0x3911, 0x3911, 0x3911, 0x3911, 0x3911, 0x4111, 0x4112, 0x4112, 0x4112, 0x4112, 0x4132, 0x4932, 0x4932, 0x4933, 0x4933, 0x5133, 0x6194, 0x9a34, 0xc2b4, 0xd2b5, 0xd2b3, 0xcab4, 0xd294, 0xd294, 0xca93, 0xd274, 0xd274, 0xca53, 0xca54, 0xca53, 0x81d8, 0x00df, 0x00df, 0x00df, 0x00bf, 0x00bf, 0x68b7, 0xb8d1, 0x31dc, 0x033f, 0x049f, 0x05df, 0x06ff, 0x07bf, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x26bd, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8d2, 0xb8d1, 0xb8d1, 0x78f1, 0x3911, 0x38f1, 0x30f0, 0x30ef, 0x28ef, 0x28cf, 0x28cf, 0x20ce, 0x20ce, 0x20ae, 0x20ae, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18b0, 0x0118, 0x0119, 0x0119, 0x00f6, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x10cf, 0x00f8, 0x0119, 0x011a, 0x00f6, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20cf, 0x20cf, 0x20cf, 0x20cf, 0x20cf, 0x20cf, 0x20cf, 0x20cf, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x28ef, 0x28f0, 0x28f0, 0x30f0, 0x30f0, 0x38f0, 0x8213, 0xd2f5, 0xcad4, 0xd274, 0xca53, 0xc9f3, 0xc9d2, 0x7398, 0x05ff, 0x05ff, 0x05df, 0xa953, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8d1, 0x98f2, 0x4132, 0x4132, 0x4112, 0x4111, 0x4111, 0x3911, 0x3911, 0x3911, 0x3911, 0x3911, 0x3911, 0x3911, 0x3911, 0x38f0, 0x38f0, 0x38f0, 0x38f0, 0x3911, 0x38f0, 0x38f0, 0x3911, 0x3911, 0x3911, 0x3911, 0x3911, 0x3911, 0x3911, 0x3911, 0x3911, 0x4112, 0x4112, 0x4112, 0x4132, 0x4132, 0x4933, 0x4933, 0x4933, 0x5153, 0x5974, 0x9214, 0xca94, 0xd294, 0xca94, 0xd274, 0xca74, 0xd274, 0xca53, 0xca54, 0xca53, 0xca34, 0x99f6, 0x011f, 0x011f, 0x00ff, 0x00ff, 0x00ff, 0x38db, 0xc0b1, 0x28fc, 0x02df, 0x047f, 0x059f, 0x06df, 0x07bf, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8d1, 0x78f1, 0x3911, 0x38f0, 0x30f0, 0x30f0, 0x28ef, 0x28cf, 0x28cf, 0x20ce, 0x20ce, 0x20ce, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, + 0x18cd, 0x18ad, 0x18ae, 0x18b0, 0x0119, 0x00f9, 0x0119, 0x00f9, 0x0119, 0x08f6, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18d0, 0x00f9, 0x0119, 0x0119, 0x011a, 0x0119, 0x08f6, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x310e, 0x7a32, 0xaad3, 0xd395, 0xd395, 0xd395, 0xd375, 0xd395, 0xd395, 0xd395, 0xd395, 0xd396, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd396, 0xd395, 0xd335, 0xd2b4, 0xca94, 0xca33, 0xd1f3, 0xc9d3, 0xc993, 0xc972, 0xc992, 0xc972, 0xc932, 0xc0d1, 0xc0b1, 0xb8d1, 0xb0d2, 0xb9f2, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd396, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd375, 0xd396, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd396, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xca13, 0x015f, 0x013f, 0x013f, 0x013f, 0x011f, 0x093f, 0xc0b1, 0x311c, 0x01bf, 0x03ff, 0x059f, 0x069f, 0x079f, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0xb8b1, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8d1, 0x78f1, 0x3911, 0x3911, 0x30f0, 0x30f0, 0x28ef, 0x28cf, 0x28cf, 0x20ce, 0x20ce, 0x20ce, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, + 0x18ad, 0x18ae, 0x18b0, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x011a, 0x011a, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x10cf, 0x0118, 0x0119, 0x011a, 0x0119, 0x0119, 0x0119, 0x0119, 0x18ae, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ae, 0x20ad, 0x18ad, 0x496f, 0xaad3, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd375, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd2f4, 0xca74, 0xca33, 0xca13, 0xc9d3, 0xc992, 0xc952, 0xc111, 0xc0d1, 0xc0b1, 0xc0d1, 0xb8b1, 0xb8d1, 0xb8d1, 0xca53, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd396, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd396, 0xd395, 0xd395, 0xd395, 0xd395, 0xd375, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xca13, 0x097f, 0x017f, 0x015f, 0x017f, 0x015f, 0x015f, 0x88f5, 0x293c, 0x013f, 0x02df, 0x053e, 0x067f, 0x077f, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x9234, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8d1, 0x78f1, 0x3911, 0x3911, 0x30f0, 0x30f0, 0x28ef, 0x28cf, 0x28cf, 0x20ce, 0x20ce, 0x20ce, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, + 0x18ae, 0x10d0, 0x0118, 0x0119, 0x011a, 0x011a, 0x0119, 0x011a, 0x0119, 0x011a, 0x18ad, 0x18ad, 0x18ad, 0x18d0, 0x00f8, 0x0119, 0x0119, 0x0119, 0x0119, 0x011a, 0x011a, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ee, 0x8252, 0xd396, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd3b5, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd2b4, 0xd233, 0xca13, 0xc9b3, 0xc992, 0xc952, 0xc912, 0xc8d1, 0xc0b1, 0xc0b1, 0xb8b1, 0xb8d1, 0xb8d1, 0xc253, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xdb95, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd396, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xca13, 0x31bc, 0x01bf, 0x019f, 0x019f, 0x019f, 0x019f, 0x5139, 0x315c, 0x017f, 0x01bf, 0x045e, 0x063e, 0x077f, 0x07fe, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x8a95, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8d1, 0xb0d1, 0xb8d1, 0x78f1, 0x3911, 0x3911, 0x30f0, 0x30f0, 0x28ef, 0x28cf, 0x28cf, 0x20ce, 0x20ce, 0x20ce, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, + 0x10d0, 0x0118, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x08f5, 0x18ad, 0x18ad, 0x10d0, 0x00f9, 0x0119, 0x0119, 0x00fa, 0x0119, 0x0119, 0x011a, 0x0119, 0x08f5, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ae, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x28ee, 0xb314, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd4f8, 0xd65c, 0xd6dd, 0xd6fd, 0xd7ff, 0xd7ff, 0xdfff, 0xd7ff, 0xd7ff, 0xdfff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xdfff, 0xd7ff, 0xcb15, 0xca13, 0xc9d3, 0xc992, 0xc932, 0xc911, 0xc0d1, 0xc0b1, 0xc0b1, 0xb8d1, 0xb8d1, 0xb8d1, 0xc397, 0xdfff, 0xdfff, 0xdfff, 0xdfff, 0xdfff, 0xdfff, 0xdfff, 0xdfff, 0xdfff, 0xdfff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xdfff, 0xd539, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xdb95, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd396, 0xd395, 0xd395, 0xc9f3, 0x31fc, 0x01df, 0x01df, 0x01df, 0x01df, 0x01df, 0x01bf, 0x01df, 0x01bf, 0x01bf, 0x02df, 0x05fd, 0x073e, 0x07fe, 0x07fe, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x8ab5, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8d1, 0xb0f1, 0xb8d1, 0x78f1, 0x3911, 0x3911, 0x30f0, 0x30f0, 0x28ef, 0x28cf, 0x28cf, 0x20ce, 0x20ce, 0x20ce, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, + 0x00f9, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x011a, 0x00f7, 0x18ce, 0x18ad, 0x10d0, 0x00f8, 0x0119, 0x011a, 0x0119, 0x011a, 0x011a, 0x0119, 0x0119, 0x00f7, 0x18ce, 0x18ae, 0x18ae, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ae, 0x28ee, 0xcb55, 0xd375, 0xd395, 0xd395, 0xd3d6, 0xd5db, 0xd7bf, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xdfff, 0xdfff, 0xca13, 0xc9b3, 0xc992, 0xc952, 0xc912, 0xc0d1, 0xc0b1, 0xc0d1, 0xb8b1, 0xb8d1, 0xb0f1, 0xba95, 0xdfff, 0xd7ff, 0xdfff, 0xdfff, 0xdfff, 0xdfff, 0xdfff, 0xd7ff, 0xdfff, 0xdfff, 0xdfff, 0xdfff, 0xdfff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xdfff, 0xd539, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xc9f3, 0x31fd, 0x021f, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01df, 0x01ff, 0x051d, 0x071d, 0x07fd, 0x07fe, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x6bf7, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8d1, 0xb0d1, 0x78f1, 0x3911, 0x3911, 0x30f0, 0x30f0, 0x28ef, 0x28cf, 0x28cf, 0x20ce, 0x20ce, 0x20ce, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, + 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x011a, 0x0119, 0x00f7, 0x18ce, 0x18ad, 0x18cf, 0x0119, 0x0119, 0x0119, 0x0119, 0x011a, 0x0119, 0x011a, 0x011a, 0x00f7, 0x18ce, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x28ee, 0xb314, 0xd395, 0xd395, 0xd395, 0xd477, 0xd77e, 0xd7ff, 0xd7ff, 0xdfff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xdfff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xc9d3, 0xc992, 0xc952, 0xc912, 0xc8d1, 0xc0b1, 0xc0b1, 0xb8d1, 0xb8d1, 0xb0d1, 0xb152, 0xd79e, 0xdfff, 0xdfff, 0xdfff, 0xd7ff, 0xdfff, 0xdfff, 0xdfff, 0xdfff, 0xd7ff, 0xdfff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd539, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xc9d3, 0x323c, 0x023f, 0x023f, 0x021f, 0x023f, 0x023f, 0x021f, 0x021f, 0x021f, 0x021f, 0x021f, 0x037e, 0x06dc, 0x07fd, 0x07fd, 0x07fe, 0x07ff, 0x07ff, 0x07ff, 0x5c78, 0xb8d1, 0xb8d1, 0xb8d1, 0xb0d1, 0xb8d1, 0xb0f1, 0x7911, 0x3911, 0x3911, 0x30f0, 0x30f0, 0x28ef, 0x28cf, 0x28cf, 0x20ce, 0x20ce, 0x20ce, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, + 0x011a, 0x00f9, 0x0119, 0x0119, 0x0119, 0x011a, 0x0117, 0x18ae, 0x18ad, 0x10d0, 0x00f9, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x00f7, 0x18ce, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x20ae, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18cd, 0x8252, 0xd395, 0xd395, 0xd396, 0xd4b8, 0xd7bf, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xc972, 0xc952, 0xc912, 0xc8d1, 0xc0b1, 0xc0b1, 0xb8d1, 0xb8d1, 0xb8d1, 0xb0f1, 0xd63c, 0xdfff, 0xdfff, 0xd7ff, 0xdfff, 0xdfff, 0xd7ff, 0xdfff, 0xdfff, 0xd7ff, 0xd7ff, 0xdfff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xdfff, 0xd7ff, 0xdfff, 0xd539, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd396, 0xd396, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xc9d3, 0x325c, 0x027f, 0x025f, 0x025f, 0x025f, 0x023f, 0x025f, 0x025f, 0x023f, 0x023f, 0x023f, 0x029f, 0x067c, 0x07fc, 0x07fc, 0x07fe, 0x07ff, 0x07ff, 0x07ff, 0x5c78, 0xb8d1, 0xb0d1, 0xb8d1, 0xb0d1, 0xb0d1, 0xb8d1, 0x70f1, 0x3911, 0x3911, 0x30f0, 0x30f0, 0x28ef, 0x28cf, 0x28cf, 0x20ce, 0x20ce, 0x20ce, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, + 0x0119, 0x011a, 0x0119, 0x0119, 0x0119, 0x00f7, 0x18ae, 0x18ad, 0x10cf, 0x0119, 0x0119, 0x011a, 0x011a, 0x0119, 0x0119, 0x0119, 0x011a, 0x00f7, 0x18ce, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x496f, 0xd395, 0xd395, 0xd395, 0xd457, 0xd7bf, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7df, 0xd7ff, 0xcf3e, 0xc67c, 0xc53a, 0xc951, 0xc912, 0xc0d1, 0xc0b1, 0xc0b1, 0xb8d1, 0xb8d1, 0xb0d1, 0xb0f1, 0xbb97, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd65b, 0xd395, 0xd396, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd396, 0xd395, 0xd395, 0xd396, 0xd395, 0xc9b3, 0x327c, 0x029f, 0x029f, 0x029f, 0x029f, 0x027f, 0x027f, 0x027f, 0x027f, 0x027f, 0x025f, 0x027f, 0x05bc, 0x07db, 0x07fc, 0x07fd, 0x07ff, 0x07ff, 0x07ff, 0x5c78, 0xb8d1, 0xb0d1, 0xb8d1, 0xb8d1, 0xb8d1, 0xb0d1, 0x58f1, 0x3911, 0x3111, 0x30f0, 0x28f0, 0x28f0, 0x28cf, 0x28ce, 0x20ce, 0x20ce, 0x20ce, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, + 0x011a, 0x0119, 0x0119, 0x011a, 0x0117, 0x18ce, 0x18ae, 0x18d0, 0x0118, 0x00f9, 0x011a, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x00f7, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ae, 0xa2d3, 0xd395, 0xd395, 0xd3d6, 0xd75e, 0xcfff, 0xcfff, 0xd7ff, 0xd7ff, 0xcfff, 0xcfff, 0xd7ff, 0xd7ff, 0xd7df, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7df, 0xd7ff, 0xd7ff, 0xcfdf, 0xcfff, 0xd7ff, 0xd7df, 0xd7ff, 0xcfff, 0xd7ff, 0xd7df, 0xd7ff, 0xcfff, 0xd7df, 0xcfff, 0xcfff, 0xd7ff, 0xd7ff, 0xcfff, 0xd7ff, 0xcfff, 0xd7ff, 0xd7df, 0xd7df, 0xcfff, 0xd7df, 0xcfff, 0xd7ff, 0xd7ff, 0xcfff, 0xd7ff, 0xcfff, 0xd7ff, 0xd7df, 0xd7ff, 0xd7ff, 0xcfff, 0xcfff, 0xd7ff, 0xcfff, 0xd7df, 0xcfff, 0xd7ff, 0xd7df, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xcfff, 0xd7ff, 0xcfdf, 0xd7df, 0xcfdf, 0xcfff, 0xd7df, 0xacd8, 0x8191, 0x9151, 0x9931, 0x9931, 0x9931, 0x9911, 0x9931, 0x9931, 0x9931, 0xa8f1, 0xa972, 0xd77e, 0xd7ff, 0xd7ff, 0xd7df, 0xd7df, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7df, 0xcfff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7df, 0xd7df, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7df, 0xd7ff, 0xd7df, 0xd7ff, 0xd7df, 0xd65c, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xc193, 0x0a7f, 0x02ff, 0x02df, 0x02bf, 0x02bf, 0x02bf, 0x029f, 0x029f, 0x029f, 0x027f, 0x029f, 0x027f, 0x04dd, 0x07bb, 0x07fb, 0x07fd, 0x07ff, 0x07ff, 0x07ff, 0x3dbb, 0xb8d1, 0xb8d1, 0xb0f1, 0xb0d1, 0xb0d1, 0xb0d1, 0x5911, 0x3911, 0x30f0, 0x30f0, 0x28f0, 0x28cf, 0x28cf, 0x20cf, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ae, 0x20ae, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, + 0x00f9, 0x0119, 0x011a, 0x00f7, 0x18ae, 0x18ad, 0x18af, 0x0118, 0x0119, 0x0119, 0x011a, 0x0119, 0x0119, 0x0119, 0x011a, 0x0117, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x310e, 0xd395, 0xd375, 0xd375, 0xd5ba, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xc77e, 0xbe5b, 0xbe3c, 0xb57a, 0xacb8, 0xbdbb, 0xc63c, 0xbe3b, 0xc71e, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xc77e, 0xbe5c, 0xb5db, 0xacb8, 0xac98, 0xbd5a, 0xbe3c, 0xc61c, 0xc69d, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xacb9, 0x8191, 0x9151, 0x9911, 0x9931, 0x9931, 0x9931, 0x9931, 0x9911, 0xa111, 0xa911, 0xbc78, 0xcfdf, 0xcfdf, 0xcfdf, 0xd7df, 0xcfdf, 0xcf5e, 0xbe5c, 0xbe5c, 0xc63c, 0xc61c, 0xcefd, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfff, 0xcfdf, 0xd63b, 0xd375, 0xd395, 0xd375, 0xd395, 0xd375, 0xd375, 0xd375, 0xd375, 0xd375, 0xd375, 0xd375, 0xd375, 0xd375, 0xd375, 0xd375, 0xd375, 0xd375, 0xd375, 0xd375, 0xd375, 0xd375, 0xd375, 0xd375, 0xd375, 0xd395, 0xd375, 0xd375, 0xd375, 0xd395, 0x089f, 0x011f, 0x031f, 0x02ff, 0x02ff, 0x02df, 0x02df, 0x02df, 0x02bf, 0x02bf, 0x02bf, 0x02bf, 0x02bf, 0x03fd, 0x079a, 0x07fa, 0x07fc, 0x07fe, 0x07ff, 0x07ff, 0x2e5c, 0xb0d1, 0xb8d1, 0xb8d1, 0xb0f1, 0xb0d1, 0xb8d1, 0x5912, 0x3911, 0x38f1, 0x30f0, 0x28f0, 0x28ef, 0x28cf, 0x28cf, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ae, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, + 0x0119, 0x0119, 0x0117, 0x18ce, 0x18ad, 0x18ad, 0x0118, 0x011a, 0x0119, 0x0119, 0x011a, 0x0119, 0x0119, 0x0119, 0x0117, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x79f1, 0xd355, 0xd355, 0xd355, 0xcf7e, 0xc7df, 0xcfbf, 0xcfdf, 0xc7df, 0xc7df, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfbf, 0xcfdf, 0xcfdf, 0xcfbf, 0xbefd, 0xacb8, 0x8a52, 0x9151, 0x9131, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9911, 0xa192, 0xab96, 0xbe7d, 0xcfdf, 0xc7df, 0xcfbf, 0xc7df, 0xcfdf, 0xcfbf, 0xc75e, 0xad19, 0x92b4, 0x8971, 0x9151, 0x9931, 0x9931, 0x9911, 0x9911, 0xa111, 0x9931, 0xa111, 0x9911, 0xab36, 0xbd5a, 0xc75e, 0xcfdf, 0xc7bf, 0xc7bf, 0xcfdf, 0xc7df, 0xc7bf, 0xc7df, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xc7df, 0xcfbf, 0xc7df, 0xc7bf, 0xcfbf, 0xc7df, 0xa4b8, 0x8191, 0x9151, 0x9931, 0x9911, 0x9931, 0x9931, 0x9911, 0x9931, 0x9912, 0xbe3b, 0xcfbf, 0xcfdf, 0xcfbf, 0xcfdf, 0xcfdf, 0xb5da, 0x8a12, 0x8971, 0x9931, 0x9931, 0xa111, 0x9931, 0xab35, 0xc75e, 0xcfbf, 0xcfdf, 0xc7df, 0xc7df, 0xcfdf, 0xcfdf, 0xcfbf, 0xc7df, 0xc7df, 0xcfdf, 0xcfdf, 0xcfdf, 0xc7df, 0xcfdf, 0xcfdf, 0xcfdf, 0xce1b, 0xd355, 0xd355, 0xd355, 0xd355, 0xd355, 0xd355, 0xd355, 0xd355, 0xd355, 0xd355, 0xd355, 0xd355, 0xd355, 0xd355, 0xd355, 0xd355, 0xd355, 0xd355, 0xd355, 0xd355, 0xd355, 0xd355, 0xd355, 0xd355, 0xd355, 0xd355, 0xd355, 0xd355, 0x007f, 0x009e, 0x023f, 0x033f, 0x031f, 0x031f, 0x031f, 0x02ff, 0x031f, 0x02ff, 0x02df, 0x02df, 0x02df, 0x039e, 0x075a, 0x07f9, 0x07fb, 0x07fd, 0x07ff, 0x07ff, 0x2e3c, 0xb8d2, 0xb8d1, 0xb0d1, 0xb8d1, 0xb0d1, 0xb0d1, 0x4911, 0x3911, 0x38f0, 0x30f0, 0x28f0, 0x28ef, 0x28cf, 0x28ce, 0x20ce, 0x20ce, 0x20ce, 0x20ae, 0x20ae, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, + 0x011a, 0x00f7, 0x18ce, 0x18ad, 0x18ae, 0x18ad, 0x0119, 0x0119, 0x0119, 0x011a, 0x0119, 0x0119, 0x011a, 0x00f7, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0xa293, 0xd335, 0xd335, 0xcc98, 0xc7bf, 0xc7be, 0xc7bf, 0xc7bf, 0xc7bf, 0xc7bf, 0xc7bf, 0xc7bf, 0xc7bf, 0xc7bf, 0xc7bf, 0xc7bf, 0xc75e, 0xa4b8, 0x8191, 0x9151, 0x9911, 0xa131, 0xa111, 0xa111, 0x9931, 0xa111, 0xa112, 0xa111, 0xa111, 0xa111, 0xa111, 0xa111, 0xa111, 0xab35, 0xbefe, 0xc7bf, 0xc7be, 0xc7bf, 0xb5db, 0x89f1, 0x8971, 0x9931, 0x9911, 0xa111, 0xa111, 0xa111, 0xa111, 0xa111, 0xa132, 0x9911, 0xa111, 0xa111, 0xa111, 0xa111, 0xa172, 0xbd3a, 0xc7be, 0xc7bf, 0xc7bf, 0xc7bf, 0xc7be, 0xc79f, 0xc7bf, 0xc7bf, 0xc7bf, 0xc7bf, 0xc7bf, 0xc7bf, 0xc7bf, 0xc7bf, 0xc7bf, 0xc7bf, 0xc7bf, 0xc7bf, 0xc7bf, 0xc7bf, 0xc7bf, 0xc7bf, 0xc7bf, 0xc7bf, 0xc7bf, 0xc7bf, 0xc7bf, 0xc7bf, 0xc7bf, 0xc7bf, 0xc7bf, 0xc7bf, 0xc7bf, 0xc7bf, 0xc7bf, 0xc7bf, 0xc7bf, 0xc7bf, 0xc7bf, 0xc7bf, 0xc7bf, 0xc7bf, 0xc7bf, 0xc7bf, 0xc7bf, 0xc7bf, 0xc7bf, 0xc7bf, 0xc7bf, 0xc7bf, 0xc7bf, 0xc7bf, 0xc7bf, 0xc7bf, 0xc7bf, 0xc7bf, 0xc7bf, 0xc7bf, 0xc7bf, 0xc7bf, 0xc7bf, 0xc7bf, 0xc79f, 0xc7bf, 0xc7bf, 0xc7bf, 0xc7bf, 0xc7bf, 0xc7bf, 0xac98, 0x8191, 0x9151, 0x9931, 0xa111, 0xa131, 0xa111, 0xa131, 0xa111, 0x9931, 0xbe1b, 0xc79f, 0xc7bf, 0xc7bf, 0xc7bf, 0xbefd, 0x89f2, 0x8991, 0x9931, 0xa112, 0xa131, 0xa111, 0xa111, 0xa111, 0xab97, 0xc7bf, 0xc7bf, 0xc7be, 0xc7bf, 0xc7bf, 0xc7bf, 0xc7bf, 0xc7bf, 0xc7bf, 0xc7bf, 0xc7bf, 0xc7bf, 0xc7bf, 0xc7bf, 0xc7bf, 0xc7bf, 0xc7bf, 0xc6dd, 0xd375, 0xd335, 0xd335, 0xd335, 0xd335, 0xd335, 0xd335, 0xd335, 0xd335, 0xd335, 0xd335, 0xd335, 0xd335, 0xd335, 0xd335, 0xd335, 0xd335, 0xd335, 0xd335, 0xd335, 0xd335, 0xd335, 0xd335, 0xd335, 0xd334, 0xd335, 0xd335, 0x009f, 0x009f, 0x013f, 0x033f, 0x037f, 0x035f, 0x033f, 0x031f, 0x031f, 0x031f, 0x031f, 0x02ff, 0x02ff, 0x033f, 0x06f9, 0x07f9, 0x07fb, 0x07fd, 0x07ff, 0x07ff, 0x2e3c, 0xb8d2, 0xb0f1, 0xb8d1, 0xb0d1, 0xb0f1, 0xb0d1, 0x3911, 0x3911, 0x38f0, 0x30f0, 0x3110, 0x28cf, 0x28cf, 0x20cf, 0x20ce, 0x20ce, 0x20ce, 0x20ae, 0x20ad, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, + 0x00f7, 0x18ce, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x00f9, 0x0119, 0x0119, 0x0139, 0x0119, 0x011a, 0x00f7, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20cd, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0xd315, 0xd315, 0xd314, 0xc5fb, 0xc79f, 0xc79e, 0xc7bf, 0xc7bf, 0xc79e, 0xc79e, 0xc7bf, 0xc79f, 0xbf9e, 0xbfbf, 0xbfbe, 0xb67c, 0x8a53, 0x8971, 0xa131, 0xa112, 0xa111, 0xa111, 0xa111, 0xa111, 0xa111, 0xa111, 0xa111, 0xa111, 0xa111, 0xa111, 0xa111, 0xa112, 0xa111, 0xa111, 0xa172, 0xb539, 0xbf9f, 0x9bf6, 0x8191, 0x9151, 0xa111, 0xa111, 0xa111, 0xa111, 0xa111, 0xa111, 0xa111, 0xa111, 0xa111, 0xa111, 0xa111, 0xa111, 0xa111, 0xa112, 0xa111, 0xa111, 0xab15, 0xbf3d, 0xc79f, 0xc7be, 0xc79f, 0xc79f, 0xc79e, 0xc79e, 0xc79e, 0xc79e, 0xc79e, 0xc79e, 0xc79e, 0xc79e, 0xc79e, 0xc79e, 0xc79e, 0xc79e, 0xc79e, 0xc79e, 0xc79e, 0xc79e, 0xc79e, 0xc79e, 0xc79e, 0xc79e, 0xc79e, 0xc79e, 0xc79e, 0xc79e, 0xc79e, 0xc79e, 0xc79e, 0xc79e, 0xc79e, 0xc79e, 0xc79e, 0xc79e, 0xc79e, 0xc79e, 0xc79e, 0xc79e, 0xc79e, 0xc79e, 0xc79e, 0xc79e, 0xc79e, 0xc79e, 0xc79e, 0xc79e, 0xc79e, 0xc79e, 0xc79e, 0xc79e, 0xc79e, 0xc79e, 0xc79e, 0xc79e, 0xc79e, 0xc79e, 0xc79e, 0xc79e, 0xc79f, 0xc79e, 0xc79f, 0xc79e, 0xc79e, 0xc7bf, 0xc79f, 0xa4b8, 0x8191, 0x9151, 0xa111, 0xa111, 0xa111, 0xa111, 0xa111, 0xa112, 0xa111, 0xbdfb, 0xc79f, 0xc79e, 0xc7be, 0xc79f, 0xacf9, 0x8191, 0x9171, 0xa111, 0xa111, 0xa111, 0xa112, 0xa111, 0xa131, 0xa111, 0xbf3e, 0xbfbf, 0xc79e, 0xc79e, 0xc79e, 0xc7bf, 0xc79e, 0xc79e, 0xc79e, 0xbfbf, 0xc79e, 0xc79e, 0xc79e, 0xbf9e, 0xc79f, 0xc79e, 0xbfbe, 0xc79e, 0xc6bd, 0xd355, 0xd2f5, 0xd315, 0xcb14, 0xd314, 0xd314, 0xd314, 0xd314, 0xd314, 0xd314, 0xd314, 0xd314, 0xd314, 0xd314, 0xd314, 0xd314, 0xd314, 0xd314, 0xd314, 0xd314, 0xd314, 0xd314, 0xd315, 0xd315, 0xd315, 0xd314, 0x007f, 0x007f, 0x00ff, 0x027f, 0x039f, 0x039f, 0x037f, 0x231d, 0x5259, 0x5a3a, 0x033f, 0x033f, 0x031f, 0x031f, 0x0699, 0x07f8, 0x07fa, 0x07fd, 0x07ff, 0x07ff, 0x363c, 0xb0d1, 0xb0f1, 0xb0d1, 0xb8d1, 0xb0d1, 0xb0d1, 0x4112, 0x38f1, 0x3911, 0x30f0, 0x30ef, 0x28ef, 0x28cf, 0x28cf, 0x20ce, 0x20ce, 0x20ce, 0x20ae, 0x20ad, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, + 0x18ae, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x20ad, 0x0915, 0x00f9, 0x0119, 0x0119, 0x0119, 0x00f7, 0x18ce, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20cd, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0xd2f4, 0xcaf4, 0xd2f4, 0xc65c, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf7f, 0xb67c, 0x8a12, 0x8971, 0xa111, 0xa111, 0xa911, 0xa111, 0xa911, 0xa111, 0xa111, 0xa111, 0xa911, 0xa911, 0xa111, 0xa111, 0xa111, 0xa911, 0xa111, 0xa111, 0xa111, 0xa912, 0xa911, 0xa1f3, 0x8191, 0x9931, 0xa111, 0xa111, 0xa912, 0xa111, 0xa111, 0xa111, 0xa111, 0xa111, 0xa911, 0xa911, 0xa911, 0xa911, 0xa911, 0xa111, 0xa111, 0xa111, 0xa112, 0xa911, 0xaa54, 0xbf1d, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xb79e, 0xbf9f, 0xa498, 0x8191, 0x9951, 0xa911, 0xa111, 0xa111, 0xa111, 0xa111, 0xa111, 0xa911, 0xb5fb, 0xbf9e, 0xbf9f, 0xbf9e, 0xbf9f, 0xa498, 0x8191, 0x9951, 0xa111, 0xa111, 0xa111, 0xa111, 0xa112, 0xa111, 0xa911, 0xb5fb, 0xbf7e, 0xbf9e, 0xbf9e, 0xbf9f, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbebd, 0xd335, 0xcaf4, 0xd2f4, 0xd2f4, 0xd2f4, 0xd2f4, 0xd2f4, 0xd2f4, 0xd2f4, 0xd2f4, 0xd2f4, 0xd2f4, 0xd2f4, 0xd2f4, 0xd2f4, 0xd2f4, 0xd2f4, 0xd2f4, 0xd2f4, 0xd2f4, 0xd2f4, 0xcaf4, 0xd2f4, 0xd2f5, 0xcaf4, 0x007f, 0x007f, 0x00bf, 0x021f, 0x2abd, 0x7a36, 0xb953, 0xc112, 0xc911, 0xc912, 0x0b3f, 0x035f, 0x035f, 0x033f, 0x05fa, 0x07f7, 0x07f9, 0x07fc, 0x07fe, 0x07ff, 0x2e3c, 0xb0d1, 0xb0f1, 0xb0f1, 0xb0d1, 0xb0d1, 0xa0f1, 0x68f1, 0x4111, 0x30f0, 0x30f0, 0x28ef, 0x28ef, 0x28cf, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ae, 0x18ad, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ae, 0x18ae, 0x08f5, 0x0119, 0x0119, 0x08f5, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0xd2d4, 0xd2d4, 0xd2d4, 0xbe5c, 0xb77e, 0xb79e, 0xb77e, 0xbf7e, 0xb77e, 0xb77e, 0xb77e, 0xb79e, 0xbf7e, 0xae7b, 0x89f2, 0x8971, 0xa111, 0xa8f1, 0xa911, 0xa8f1, 0xa911, 0xa911, 0xa911, 0xa911, 0xa911, 0xa8f1, 0xa911, 0xa911, 0xa911, 0xa8f1, 0xa911, 0xa8f1, 0xa911, 0xa911, 0xa912, 0xa911, 0xa911, 0xa111, 0xa911, 0xa8f1, 0xa911, 0xa8f1, 0xa111, 0xa911, 0xa8f1, 0xa8f1, 0xa911, 0xa911, 0xa8f1, 0xa911, 0xa8f1, 0xa8f1, 0xa912, 0xa911, 0xa911, 0xa911, 0xa8f1, 0xa111, 0xaa34, 0xb71e, 0xbf7e, 0xbf7e, 0xbf7e, 0xbf7e, 0xbf7e, 0xbf7e, 0xbf7e, 0xbf7e, 0xbf7e, 0xbf7e, 0xbf7e, 0xbf7e, 0xbf7e, 0xbf7e, 0xbf7e, 0xbf7e, 0xbf7e, 0xbf7e, 0xbf7e, 0xbf7e, 0xbf7e, 0xbf7e, 0xbf7e, 0xbf7e, 0xbf7e, 0xbf7e, 0xbf7e, 0xbf7e, 0xbf7e, 0xbf7e, 0xbf7e, 0xbf7e, 0xbf7e, 0xbf7e, 0xbf7e, 0xbf7e, 0xbf7e, 0xbf7e, 0xbf7e, 0xbf7e, 0xbf7e, 0xbf7e, 0xbf7e, 0xbf7e, 0xbf7e, 0xbf7e, 0xbf7e, 0xbf7e, 0xbf7e, 0xbf7e, 0xbf7e, 0xbf7e, 0xbf7e, 0xbf7e, 0xbf7e, 0xbf7e, 0xbf7e, 0xbf7e, 0xb77e, 0xb77e, 0xbf7e, 0xb77e, 0xb77e, 0xbf7f, 0xb77e, 0x9c97, 0x8191, 0x9951, 0xa8f1, 0xa8f1, 0xa8f1, 0xa8f1, 0xa8f1, 0xa911, 0xa8f1, 0xb5db, 0xbf7e, 0xb77e, 0xbf7e, 0xbf7e, 0xa478, 0x8191, 0x9951, 0xa911, 0xa8f1, 0xa8f1, 0xa911, 0xa911, 0xa8f1, 0xa911, 0xb5db, 0xb77f, 0xb77e, 0xbf7e, 0xbf7e, 0xb77e, 0xbf7e, 0xbf7e, 0xbf7e, 0xb77e, 0xb77e, 0xbf7e, 0xb77e, 0xbf7e, 0xb77e, 0xbf7e, 0xbf7e, 0xb77e, 0xb77e, 0xbf7e, 0xbe9d, 0xcb75, 0xd2d4, 0xd2d4, 0xd2d4, 0xd2d4, 0xd2d4, 0xd2d4, 0xd2d4, 0xd2d4, 0xd2d4, 0xd2d4, 0xd2d4, 0xd2d4, 0xd2d4, 0xd2d4, 0xd2d4, 0xd2d4, 0xd2d4, 0xd2d4, 0xd2d4, 0xd2d4, 0xd2d4, 0xd2d4, 0xd2d5, 0x007f, 0x007f, 0x30bb, 0x9955, 0xc931, 0xc932, 0xc932, 0xc912, 0xc0f2, 0xc8f2, 0x32fc, 0x037f, 0x037f, 0x037f, 0x059b, 0x07f7, 0x07f9, 0x07fc, 0x07fe, 0x07ff, 0x2e3c, 0xb8d1, 0xb0d1, 0xb0d2, 0xb0d1, 0xb0f1, 0x98f1, 0xb0f1, 0x88f1, 0x3110, 0x30f0, 0x30f0, 0x28cf, 0x28cf, 0x28ce, 0x20ce, 0x20ce, 0x20ce, 0x20ae, 0x18ad, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0xd2b4, 0xd2b4, 0xd2b4, 0xb77e, 0xb77e, 0xb77e, 0xb77e, 0xb77e, 0xb77e, 0xb77e, 0xb77e, 0xb77e, 0xb71d, 0x8a53, 0x8191, 0xa111, 0xa8f1, 0xb0f1, 0xa911, 0xa8f1, 0xa8f1, 0xa8f1, 0xa8f1, 0xa8f1, 0xa8f1, 0xa8f1, 0xa8f1, 0xa8f1, 0xa8f1, 0xa8f1, 0xa8f1, 0xa8f1, 0xa8f1, 0xa8f1, 0xa8f1, 0xa8f1, 0xa8f1, 0xa8f1, 0xa8f1, 0xa8f1, 0xa8f1, 0xa8f1, 0xa8f2, 0xa8f1, 0xb0f1, 0xa8f1, 0xa8f1, 0xa8f1, 0xa8f1, 0xa8f1, 0xa8f1, 0xa8f1, 0xa8f1, 0xa8f1, 0xa8f1, 0xa8f1, 0xa8f1, 0xa8f1, 0xa8f1, 0xb2f5, 0xb77e, 0xb77e, 0xb77e, 0xb77e, 0xb77e, 0xb75e, 0xb77e, 0xb77e, 0xb77e, 0xb75e, 0xb75e, 0xb77e, 0xb75e, 0xb77e, 0xb77e, 0xb75e, 0xb77e, 0xb77e, 0xb77e, 0xb77e, 0xb77e, 0xb77e, 0xb77e, 0xb77e, 0xb77e, 0xb77e, 0xb77e, 0xb77e, 0xb77e, 0xb75e, 0xb75e, 0xb77e, 0xb77e, 0xb77e, 0xb77e, 0xb77e, 0xb77e, 0xb77e, 0xb77e, 0xb77e, 0xb77e, 0xb77e, 0xb77e, 0xb77e, 0xb77e, 0xb77e, 0xb77e, 0xb77e, 0xb77e, 0xb77e, 0xb77e, 0xb77e, 0xb75e, 0xb77e, 0xb77e, 0xb75e, 0xb77e, 0xb75e, 0xb77e, 0xb77e, 0xb77e, 0xb77e, 0xb77e, 0xb77e, 0xb77e, 0x9c78, 0x8191, 0x9951, 0xa8f1, 0xa8f1, 0xa8f1, 0xa8f1, 0xa8f1, 0xa8f1, 0xa8f1, 0xb5db, 0xb77e, 0xb77e, 0xb77e, 0xb77e, 0x9c77, 0x8191, 0x9151, 0xa8f1, 0xa8f1, 0xa8f1, 0xa8f1, 0xa8f1, 0xa8f1, 0xa8f1, 0xb5db, 0xb77e, 0xb77e, 0xb77e, 0xb75e, 0xb77e, 0xb75e, 0xb77e, 0xb77e, 0xb77e, 0xb77e, 0xb77e, 0xb77e, 0xb77e, 0xb75e, 0xb77e, 0xb77e, 0xb77e, 0xb77e, 0xb77e, 0xb75e, 0xb71d, 0xcb96, 0xd2b4, 0xd2b4, 0xcab4, 0xd2b4, 0xcab4, 0xd2b4, 0xcab4, 0xd2b4, 0xcab4, 0xd2b4, 0xd2b4, 0xd2b4, 0xd2b4, 0xd2b4, 0xd2b4, 0xd2b4, 0xd2b4, 0xca94, 0xd2b4, 0xd2b4, 0xd2b4, 0xcab4, 0x087e, 0x70f8, 0xc952, 0xc932, 0xc912, 0xc932, 0xc111, 0xc8f1, 0xc8f1, 0xc8d1, 0x331c, 0x03bf, 0x039f, 0x039f, 0x051b, 0x07d6, 0x07f7, 0x07fb, 0x07fe, 0x07ff, 0x2e3c, 0xb8d1, 0xb0d1, 0xb0d1, 0xb0d1, 0xb0d1, 0xa0f1, 0xb0f1, 0xb0d1, 0x50f0, 0x30f0, 0x30ef, 0x28cf, 0x28cf, 0x20cf, 0x20ce, 0x20ce, 0x20ae, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0xd294, 0xd294, 0xca94, 0xaf5e, 0xaf5e, 0xaf5e, 0xaf5e, 0xaf5e, 0xb75e, 0xaf5e, 0xaf5e, 0xb75e, 0x9416, 0x8991, 0x9951, 0xb0f1, 0xa8f1, 0xb0f1, 0xa8f1, 0xb0f1, 0xa8f1, 0xb0f1, 0xb0f1, 0xb0f1, 0xa8f1, 0xb0f1, 0xb0f1, 0xb0f1, 0xb0f1, 0xb0f1, 0xb0f1, 0xb0f1, 0xb0f1, 0xb0f1, 0xb0f1, 0xa8f1, 0xa8f1, 0xb0f1, 0xa8f1, 0xb0f1, 0xb0f1, 0xb0f1, 0xb0d1, 0xb0f1, 0xb0f1, 0xb0f2, 0xa8f1, 0xb0f1, 0xb0f1, 0xb0d1, 0xb0f1, 0xb0f2, 0xa8f1, 0xb0f2, 0xb0f1, 0xb0f1, 0xb0f1, 0xa8f1, 0xb0f1, 0xb0f1, 0xacf9, 0xaf5e, 0xaf5e, 0xb75e, 0xaf5e, 0xaf5e, 0xaf5e, 0xaf5e, 0xaf5e, 0xaf5e, 0xaf7e, 0xaf5e, 0xaf5e, 0xaf5e, 0xb75e, 0xb75e, 0xb75e, 0xaf5e, 0xb75e, 0xaf5e, 0xb75e, 0xaf5e, 0xaf5e, 0xaf5e, 0xaf5e, 0xb75e, 0xb75e, 0xb75e, 0xaf5e, 0xaf5e, 0xaf5e, 0xb75e, 0xb75e, 0xaf5e, 0xaf5e, 0xaf5e, 0xaf5e, 0xaf5e, 0xaf5e, 0xaf5e, 0xaf5e, 0xaf5e, 0xaf5e, 0xaf5e, 0xb75e, 0xaf5e, 0xaf5e, 0xb75e, 0xaf5e, 0xaf5e, 0xaf5e, 0xb75e, 0xb75e, 0xaf5e, 0xaf5e, 0xaf5e, 0xb75e, 0xaf5e, 0xaf5e, 0xaf5e, 0xaf5e, 0xaf5d, 0xb75e, 0xaf5e, 0xaf5e, 0x9c77, 0x8191, 0x9951, 0xb0f1, 0xb0f1, 0xb0f1, 0xb0f1, 0xb0f1, 0xb0f1, 0xb0f1, 0xadbb, 0xb75e, 0xb75e, 0xb75e, 0xb75e, 0x9c78, 0x8991, 0x9951, 0xb0f1, 0xb0f1, 0xb0f1, 0xb0f1, 0xb0f1, 0xb0f1, 0xb0f1, 0xb5bb, 0xb75e, 0xb75e, 0xaf5e, 0xaf5e, 0xaf5e, 0xaf5e, 0xaf5e, 0xb75e, 0xaf5e, 0xaf5e, 0xb75e, 0xb75e, 0xb75e, 0xaf5e, 0xb75e, 0xb75e, 0xb75e, 0xaf5e, 0xaf5e, 0xb75e, 0xaf5e, 0xaf1d, 0xcb75, 0xca93, 0xd294, 0xca74, 0xca94, 0xca74, 0xd274, 0xca74, 0xd294, 0xca94, 0xca94, 0xca94, 0xca94, 0xca94, 0xca94, 0xca94, 0xca94, 0xd294, 0xca93, 0xca94, 0xd293, 0xca74, 0x9915, 0xc932, 0xc932, 0xc932, 0xc912, 0xc111, 0xc8f2, 0xc0f2, 0xc8d1, 0xc8d1, 0x333c, 0x03ff, 0x03df, 0x03bf, 0x04dc, 0x07d6, 0x07f7, 0x07fb, 0x07fe, 0x07ff, 0x2e3c, 0xb0d1, 0xb0d1, 0xb0f1, 0xb0f1, 0xb0f1, 0xa8f1, 0xb0f1, 0xb0f1, 0x90f1, 0x30f0, 0x28f0, 0x28cf, 0x28cf, 0x20cf, 0x20ce, 0x20ce, 0x20ae, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0xd274, 0xd274, 0xca53, 0xaf5e, 0xaf3e, 0xaf5e, 0xaf3e, 0xaf3d, 0xaf5d, 0xaf3d, 0xaf3e, 0xa69c, 0x8191, 0x8191, 0xb0f1, 0xb0f1, 0xb0f1, 0xb0d1, 0xb0f2, 0xb0d1, 0xb0d1, 0xb0f2, 0xb0f1, 0xb0f1, 0xaa13, 0xb418, 0xa438, 0x9ab4, 0x9931, 0xa8f1, 0xb0f1, 0xb0f2, 0xb0f1, 0xb0d1, 0xb0f1, 0xb0d1, 0xb0f1, 0xb0d1, 0xb0d1, 0xb0f1, 0xb0d1, 0xb0f1, 0xb0f1, 0xb0f1, 0xb0f1, 0xaa74, 0xac78, 0xacf9, 0x9b35, 0x9931, 0xa8f1, 0xb0f1, 0xb0f2, 0xb0f1, 0xb0d1, 0xb0d1, 0xb0f1, 0xb0f2, 0xb0d1, 0xb0f1, 0xa9b3, 0xaf3e, 0xaf3e, 0xaf3e, 0xaf3e, 0xaf5e, 0xaf3e, 0xaf3e, 0xaf5e, 0xaf3e, 0xaf3e, 0xaf3e, 0xaf5e, 0xaf3e, 0xaf3e, 0xaf5e, 0xaf3e, 0xaf3e, 0xaf3d, 0xaf3d, 0xaf3e, 0xaf3e, 0xaf5e, 0xaf3e, 0xaf3d, 0xaf3d, 0xaf3e, 0xaf3e, 0xaf3e, 0xaf3e, 0xaf5e, 0xaf3e, 0xaf3e, 0xaf5e, 0xaf3e, 0xaf3e, 0xaf3e, 0xaf3e, 0xaf3e, 0xaf3e, 0xaf3e, 0xaf3e, 0xaf3d, 0xaf5e, 0xaf3e, 0xaf3e, 0xaf3e, 0xaf3e, 0xaf5e, 0xaf3e, 0xaf3e, 0xaf3e, 0xaf5e, 0xaf3e, 0xaf3e, 0xaf3e, 0xaf3e, 0xaf3e, 0xaf5e, 0xaf3e, 0xaf5e, 0xaf3e, 0xaf3e, 0xaf3e, 0xaf3e, 0x9c77, 0x8191, 0x9931, 0xb0f1, 0xb0d1, 0xb0f1, 0xb0f1, 0xb0f1, 0xb0f1, 0xb0f1, 0xadbb, 0xaf3e, 0xaf3e, 0xaf5d, 0xaf3e, 0x9477, 0x8191, 0x9951, 0xb0d1, 0xb0d1, 0xb0f1, 0xb0d1, 0xb0d1, 0xb0d1, 0xb0d1, 0xadba, 0xaf3e, 0xaf5e, 0xaf3e, 0xaf5e, 0xaf3e, 0xaf3e, 0xaf3e, 0xaf3d, 0xaf5e, 0xaf5e, 0xaf5e, 0xaf3d, 0xaf3d, 0xaf3e, 0xaf3e, 0xaf3e, 0xaf3e, 0xaf5e, 0xaf3e, 0xaf3e, 0xaf3e, 0xaf3e, 0xaefd, 0xcb56, 0xca53, 0xca74, 0xd253, 0xd274, 0xd274, 0xd273, 0xca73, 0xd274, 0xd274, 0xd274, 0xd274, 0xd274, 0xd274, 0xd274, 0xd274, 0xd254, 0xca74, 0xca54, 0xca54, 0xca74, 0xc932, 0xc932, 0xc932, 0xc912, 0xc912, 0xc912, 0xc0f1, 0xc8d1, 0xc8d1, 0xc8d1, 0x335c, 0x041f, 0x03ff, 0x03ff, 0x047d, 0x0795, 0x07f6, 0x07fa, 0x07fe, 0x07ff, 0x2e3c, 0xb0f1, 0xb0d1, 0xb0f1, 0xb0f1, 0xb0f1, 0xa8f1, 0xb0f1, 0xb0d1, 0xb0f1, 0x40f0, 0x28cf, 0x28ef, 0x28ce, 0x20ce, 0x20ce, 0x20ce, 0x20ae, 0x20ae, 0x18ad, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0xca53, 0xca53, 0xca53, 0xa73e, 0xa73e, 0xa73e, 0xa73e, 0xa73d, 0xa73d, 0xa73d, 0xa73d, 0x9457, 0x8191, 0x9931, 0xb8d1, 0xb0d1, 0xb8d1, 0xb0d1, 0xb0d1, 0xb0d1, 0xb0f1, 0xb0d1, 0xb1b3, 0xad9a, 0xaf3d, 0xaf3d, 0xa73d, 0xa73d, 0x9dda, 0x89d1, 0x9951, 0xb0f1, 0xb0d1, 0xb0f1, 0xb0d1, 0xb0d1, 0xb0d1, 0xb8d1, 0xb8d1, 0xb0d1, 0xb0d1, 0xb0d1, 0xb0f1, 0xb213, 0xad9b, 0xa73e, 0xa73d, 0xaf3e, 0xaf3e, 0x9dda, 0x81f2, 0x9171, 0xb0f1, 0xb0f1, 0xb0d1, 0xb0f1, 0xb0d1, 0xb0d1, 0xb8d1, 0xb8d2, 0xb0f1, 0xad39, 0xa73d, 0xa73e, 0xa73d, 0xa73d, 0xa73d, 0xa73d, 0xa73d, 0xa73e, 0xa73d, 0xa73d, 0xa73d, 0xaf3d, 0xa73d, 0xa73d, 0xa73d, 0xa73e, 0xa73e, 0xa73d, 0xaf3d, 0xa73d, 0xa73d, 0xa73e, 0xaf3d, 0xa73e, 0xa73e, 0xa73d, 0xaf3d, 0xa73d, 0xa73d, 0xa73e, 0xaf3e, 0xaf1e, 0xa73e, 0xa73e, 0xa73e, 0xa73e, 0xa73e, 0xa73e, 0xa73e, 0xa73e, 0xaf3e, 0xa73e, 0xa73d, 0xaf3e, 0xa73e, 0xa73d, 0xa73d, 0xa73d, 0xaf3d, 0xa73e, 0xa73e, 0xa73e, 0xa73d, 0xaf3d, 0xa73d, 0xaf3d, 0xa73e, 0xa73e, 0xaf3d, 0xa73e, 0xa73d, 0xa73d, 0xa73e, 0x9478, 0x8191, 0x9931, 0xb0d1, 0xb0d1, 0xb0d1, 0xb0d1, 0xb0d1, 0xb0d1, 0xb8d1, 0xad9a, 0xa73e, 0xa73d, 0xa73e, 0xa73d, 0xa73d, 0xa73d, 0xaf3d, 0xa73d, 0xa73d, 0xa73d, 0xa73d, 0xa73d, 0xaf3d, 0xa73d, 0xa73d, 0xa73d, 0xaf3e, 0xa73e, 0xa73d, 0xa73d, 0xa73d, 0xaf3d, 0xaf3e, 0xa73d, 0xaf3d, 0xaf3e, 0xa73d, 0xa73d, 0xaf3d, 0xa73e, 0xaf3d, 0xaf3d, 0xaf3d, 0xa73e, 0xa73d, 0xa73d, 0xaf3d, 0xa73d, 0xaedd, 0xc376, 0xca53, 0xca53, 0xca53, 0xca53, 0xca33, 0xca53, 0xca53, 0xca53, 0xca53, 0xca53, 0xca53, 0xca53, 0xca53, 0xca53, 0xd233, 0xca53, 0xd253, 0xca53, 0xca53, 0x309c, 0x005f, 0x58b9, 0xc912, 0xc111, 0xc8f1, 0xc8d1, 0xc8d1, 0xc0d1, 0xc0d1, 0x337c, 0x045f, 0x041f, 0x041f, 0x045e, 0x0775, 0x07f5, 0x07fa, 0x07fe, 0x07ff, 0x2e3c, 0xb0f1, 0xb0f1, 0xb0f1, 0xb0d1, 0xb0f1, 0xa8f1, 0xb0f1, 0xb0f1, 0xb0d1, 0x80f1, 0x28ef, 0x28cf, 0x28cf, 0x20cf, 0x20ce, 0x20ce, 0x20ae, 0x20ae, 0x18ad, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0xca13, 0xca33, 0xca13, 0xa71d, 0xa71d, 0xa71d, 0xa71d, 0xa71d, 0xa73d, 0xa73d, 0xa73d, 0x8a53, 0x8191, 0xa8f1, 0xb8d1, 0xb8d1, 0xb8d1, 0xb0d1, 0xb8d1, 0xb8d1, 0xb8d1, 0xb213, 0xa6bd, 0xa71d, 0xa73e, 0xa71d, 0xa71d, 0xa71d, 0xa71d, 0x9e1b, 0x81f1, 0x9171, 0xb0f1, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8d1, 0xb1f3, 0xa6bd, 0xa71d, 0xa71d, 0xa71d, 0xa71d, 0xa73d, 0xa71d, 0x9e1b, 0x89f2, 0x8991, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8d1, 0xb0d1, 0xb8d1, 0xb336, 0xa71d, 0xa71d, 0xa71d, 0xa71d, 0xa71d, 0xa71d, 0xa71d, 0xa71d, 0xa71d, 0xa71d, 0xa73d, 0xa73d, 0xa73d, 0xa71d, 0xa71d, 0xa73d, 0xa71d, 0xa71e, 0xa71d, 0xa71d, 0xa73d, 0xa73e, 0xa71d, 0xa71d, 0xa71d, 0xa73e, 0xa71d, 0xa73e, 0xa73d, 0xa71d, 0xa71d, 0xa73d, 0xa71d, 0xa71d, 0xa71d, 0xa71d, 0xa71d, 0xa71d, 0xa71d, 0xa71d, 0xa71d, 0xa71d, 0xa73d, 0xa73d, 0xa73d, 0xa73e, 0xa71d, 0xa73d, 0xa73d, 0xa71d, 0xa71d, 0xa71d, 0xa71d, 0xa71d, 0xa71d, 0xa73d, 0xa71d, 0xa71d, 0xa73e, 0xa73d, 0xa73d, 0xa71d, 0xa71d, 0x9477, 0x8191, 0x9931, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8d1, 0xa59a, 0xa71d, 0xa73d, 0xa73e, 0xa71d, 0xa71d, 0xa71e, 0xa73d, 0xa71d, 0xa71d, 0xa71d, 0xa71d, 0xa71d, 0xa71d, 0xa71d, 0xa71d, 0xa73d, 0xa73d, 0xa71e, 0xa71d, 0xa73d, 0xa71d, 0xa73d, 0xa71d, 0xa71d, 0xa71d, 0xa71d, 0xa71d, 0xa71d, 0xa73d, 0xa73d, 0xa71d, 0xa73d, 0xa73d, 0xa71d, 0xa73e, 0xa71d, 0xa71d, 0xa71d, 0xa71d, 0xa71d, 0xbbf7, 0xca13, 0xca33, 0xca13, 0xca33, 0xca33, 0xca33, 0xca33, 0xca33, 0xca33, 0xca33, 0xca33, 0xca33, 0xca33, 0xca13, 0xca13, 0xca14, 0xd233, 0xca33, 0x003f, 0x003f, 0x005f, 0x78d7, 0xc0f2, 0xc8f1, 0xc0d1, 0xc0d1, 0xc0d1, 0xc8b1, 0x4b1a, 0x047f, 0x045f, 0x043f, 0x045f, 0x0735, 0x07f4, 0x07f9, 0x07fe, 0x07ff, 0x2e3c, 0xb0d1, 0xb0f1, 0xb0d1, 0xb0d1, 0xb0d1, 0xa8f1, 0xb0f1, 0xb0d1, 0xb0f1, 0xa0f1, 0x28cf, 0x28ef, 0x28cf, 0x20ce, 0x20ce, 0x20ce, 0x20ae, 0x20ae, 0x18ad, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0xca13, 0xca13, 0xca13, 0x9f1d, 0x9f1d, 0xa71d, 0x9f1d, 0x9f1d, 0xa71d, 0x9f1d, 0x9f1d, 0x8191, 0x8191, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8d1, 0xa5db, 0x9f1d, 0x9f1d, 0x9efd, 0x9f1d, 0x9f1d, 0x9f1d, 0xa6fd, 0x9f1d, 0x94f9, 0x8191, 0x9931, 0xb8d1, 0xb8d1, 0xb8b1, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8b1, 0xa5db, 0x9f1d, 0x9f1d, 0x9f1d, 0x9f1d, 0xa6fd, 0x9f1d, 0x9f1d, 0x9f1d, 0x94f9, 0x8191, 0x9931, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8d1, 0xb932, 0x9f1d, 0x9f1d, 0x9f1d, 0x9f1e, 0x9f1d, 0x9f1d, 0x9f1d, 0x9f1d, 0x9f1d, 0x9e1b, 0x9457, 0x92d4, 0xa1f3, 0xa911, 0xb0f1, 0xb0f1, 0xa911, 0xb274, 0xb254, 0xb254, 0xabf7, 0xa5db, 0xa6fd, 0xa6fd, 0xa71d, 0xa71d, 0x9f1d, 0x9f1d, 0xa6fd, 0x9f1d, 0x9f1d, 0xa71d, 0x9f1d, 0x9f1d, 0x9f1d, 0x9f1d, 0x9f1d, 0x9f1d, 0x9f1d, 0x9f1d, 0x9f1d, 0x9f1d, 0x9f1d, 0x9e7c, 0x9498, 0x8b14, 0x9a13, 0xa131, 0xa912, 0xb0f1, 0xa8f1, 0xb255, 0xb274, 0xb254, 0xab97, 0xad1a, 0x9f1d, 0x9f1d, 0x9f1d, 0x9f1d, 0xa71d, 0x9f1d, 0xa71d, 0x9457, 0x8191, 0xa131, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8d1, 0xa57a, 0x9f1d, 0xa71d, 0x9f1d, 0xa71d, 0x9e7c, 0x9dba, 0xa59a, 0xa57a, 0xa57a, 0xa57a, 0xa57a, 0xa57a, 0xa57a, 0xa57a, 0xa69c, 0x9f1d, 0x9f1d, 0x9f1d, 0xa71d, 0x9f1d, 0x9f1d, 0x9f1d, 0x9f1d, 0x9f1d, 0x9f1d, 0x9f1d, 0x9e5c, 0x94b8, 0x8af4, 0x9a13, 0xa131, 0xa8f1, 0xb0f1, 0xb0f1, 0xb932, 0xb274, 0xb254, 0xb336, 0xacb9, 0xa63c, 0x9f1d, 0xbbf7, 0xc9f3, 0xca13, 0xca13, 0xca13, 0xc9f3, 0xc9f3, 0xc9f3, 0xc9f3, 0xc9f3, 0xc9f3, 0xc9f3, 0xc9f3, 0xca13, 0xca13, 0xca13, 0xca13, 0xca13, 0x003f, 0x003f, 0x005f, 0x58b9, 0xc0f1, 0xc0d1, 0xc8d1, 0xc8b2, 0xc0b1, 0xc0b1, 0x62b8, 0x04bf, 0x047f, 0x047f, 0x045f, 0x0715, 0x07f4, 0x07f9, 0x07fd, 0x07ff, 0x2e3c, 0xb0d1, 0xb0f1, 0xb0d1, 0xb0d1, 0xa8f1, 0xa8f1, 0xb0f1, 0xb0f1, 0xb0f1, 0xb0f1, 0x58f0, 0x28cf, 0x28ce, 0x20ce, 0x20ce, 0x20ce, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0xc9d3, 0xc9d3, 0xc9d3, 0x9efd, 0x9efd, 0x9efd, 0x9efd, 0x9efd, 0x9efd, 0x9efd, 0x959a, 0x8191, 0x9151, 0xc0b1, 0xb8d1, 0xc0b1, 0xb8d1, 0xc0d1, 0xb8d1, 0xb8d1, 0xb2b5, 0x9efd, 0x9efd, 0x9efd, 0x9efd, 0x9efd, 0x9efd, 0x9efd, 0x9efd, 0x9efd, 0x9efd, 0x8252, 0x8191, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8d1, 0xc0b1, 0xc0d1, 0xb8d1, 0xc0d1, 0xb1f3, 0x9efd, 0x9efd, 0x9efd, 0x9efd, 0x9efd, 0x9f1d, 0x9efd, 0x9efd, 0x9efd, 0x9efd, 0x8a93, 0x8191, 0xb8d1, 0xb8d1, 0xc0d1, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8d1, 0xc0b1, 0xa63c, 0x9efd, 0x9efd, 0x9efd, 0x9efd, 0x9efd, 0x9efd, 0x94f8, 0x8a53, 0x9171, 0xb0f1, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8b1, 0xb8b1, 0xc0b1, 0xc0d1, 0xc0d1, 0xb8d1, 0xc0d1, 0xb8b1, 0xb992, 0xacb9, 0x9efd, 0x9efd, 0x9efd, 0x9efd, 0x9efd, 0x9efd, 0x9efd, 0x9efd, 0x9efd, 0x9efd, 0x9efd, 0x9efd, 0x9efd, 0x9efd, 0x9efd, 0x9efd, 0x9efd, 0x9e5c, 0x8b96, 0x8991, 0xa131, 0xb8d1, 0xb8d1, 0xc0b1, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8d1, 0xc0b1, 0xb8d1, 0xb932, 0xabf7, 0x9e9c, 0x9efd, 0x9efd, 0x9efd, 0x9efd, 0x9437, 0x8191, 0xa131, 0xb8d1, 0xc0b1, 0xb8d1, 0xc0b1, 0xc0b1, 0xb8d1, 0xb8d1, 0xa57a, 0x9efd, 0x9efd, 0x9efd, 0x9efd, 0x9437, 0x8191, 0xa131, 0xb8d1, 0xc0b1, 0xb8d1, 0xb8d1, 0xc0b1, 0xb8d1, 0xb8d1, 0xa57a, 0x9efd, 0x9efd, 0x9efd, 0x9efd, 0x9efd, 0x9efd, 0x9efd, 0x9efd, 0x9efd, 0x9e9c, 0x8b96, 0x8971, 0xa131, 0xb8d1, 0xb8d1, 0xc0b1, 0xb8d1, 0xc0b1, 0xc0d1, 0xb8d1, 0xb8d1, 0xc0d1, 0xb8d1, 0xb8d1, 0xc0d1, 0xb335, 0xa63c, 0xbbd7, 0xc9d3, 0xc9f3, 0xc9d3, 0xc9d3, 0xc9d3, 0xc9d3, 0xc9d3, 0xc9d3, 0xc9d3, 0xc9d3, 0xc9d3, 0xc9f3, 0xc9d3, 0xc9d3, 0xc9f3, 0xc9d3, 0x001f, 0x003f, 0x003f, 0x00df, 0x88f6, 0xc8d1, 0xc0b1, 0xc8b1, 0xc0b1, 0xc8b1, 0x62d9, 0x04ff, 0x04bf, 0x049f, 0x047f, 0x06b6, 0x07f3, 0x07f8, 0x07fd, 0x07ff, 0x2e3c, 0xb0d1, 0xb0d1, 0xb0d1, 0xb0f1, 0x98f2, 0xb0f1, 0xb0f1, 0xb0f1, 0x78f0, 0x90f1, 0x80d1, 0x28cf, 0x28ce, 0x20ce, 0x20ce, 0x20ce, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0xc9b3, 0xc9b3, 0xc9b3, 0x9edd, 0x96fd, 0x9edd, 0x96fd, 0x9efc, 0x96fd, 0x96fd, 0x9599, 0x8991, 0x9171, 0xc0b1, 0xc0d1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0d1, 0xabd7, 0x9efc, 0x96fd, 0x96fd, 0x96dd, 0x96fd, 0x9efd, 0x9edd, 0x96fd, 0x9edd, 0x9efd, 0x8c37, 0x8191, 0xa111, 0xc0b1, 0xc0b1, 0xc0d1, 0xc0b1, 0xc0b1, 0xc0d1, 0xc0b1, 0xab76, 0x9edd, 0x9efd, 0x9efd, 0x9edd, 0x9edd, 0x96dd, 0x9efd, 0x9edd, 0x96fd, 0x9edd, 0x8c37, 0x8191, 0xa131, 0xc0d1, 0xc0b1, 0xc0b1, 0xc0d1, 0xc0b1, 0xc0b1, 0xc0d1, 0xa55a, 0x96fd, 0x9edd, 0x9efd, 0x96fd, 0x963b, 0x8af4, 0x8991, 0xa911, 0xc0b1, 0xc0b1, 0xc0d1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0d1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0d1, 0xc0b1, 0xc0b1, 0xb992, 0xa55a, 0x9edd, 0x9efc, 0x96fd, 0x9edd, 0x96fd, 0x9efd, 0x96fd, 0x96fd, 0x96fd, 0x96fd, 0x96fd, 0x96fd, 0x96fd, 0x96fd, 0x94f9, 0x81f1, 0x9171, 0xb8d2, 0xc0b1, 0xc0d1, 0xc0d1, 0xc0b1, 0xc0d1, 0xc0b1, 0xc0d1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xb992, 0x9dbb, 0x96fd, 0x9edd, 0x96fd, 0x8c37, 0x8191, 0xa131, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xa55a, 0x9edd, 0x96fd, 0x96fd, 0x9efd, 0x8c37, 0x8191, 0xa131, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xa55a, 0x96fd, 0x9efd, 0x96fd, 0x9efd, 0x9efd, 0x96fd, 0x9efd, 0x96fd, 0x9539, 0x81f1, 0x9171, 0xb0d1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0d1, 0xc0b1, 0xc0b1, 0xc0d1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xb8d1, 0xb911, 0xacfa, 0xb458, 0xc9b3, 0xc9b3, 0xc9b3, 0xc9b3, 0xc9b3, 0xc9b3, 0xc9b3, 0xc9b3, 0xc9b3, 0xc9b3, 0xc9b3, 0xc9d2, 0xc9d3, 0xc9d3, 0xc9b3, 0x001f, 0x003f, 0x003f, 0x00bf, 0x311c, 0xc0d1, 0xc8b1, 0xc0b1, 0xc0b1, 0xc0b1, 0x6278, 0x053f, 0x04ff, 0x04bf, 0x049f, 0x0696, 0x07f2, 0x07f7, 0x07fc, 0x07ff, 0x2e3c, 0xb0f1, 0xb0d1, 0xb0f1, 0xb0f1, 0x8912, 0xb0f1, 0xb0f1, 0xb0d1, 0x48f0, 0x28f0, 0x28ef, 0x28cf, 0x28cf, 0x20ce, 0x20ce, 0x20ce, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x20ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0xc993, 0xc993, 0xc992, 0x96dc, 0x96dd, 0x96dd, 0x96dd, 0x96dd, 0x96dd, 0x96dd, 0x8d79, 0x8191, 0x9151, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xabd7, 0x96dd, 0x96dd, 0x96dd, 0x96dd, 0x96dd, 0x96dd, 0x96dd, 0x96dd, 0x96dd, 0x96dd, 0x8c37, 0x8191, 0xa131, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xabd7, 0x96dd, 0x96dd, 0x96dd, 0x96dd, 0x96dd, 0x96dd, 0x96dd, 0x96dd, 0x96dd, 0x96dd, 0x8c37, 0x8191, 0xa131, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0x9d5a, 0x96dd, 0x96dd, 0x96dd, 0x95da, 0x89f2, 0x8971, 0xb8d1, 0xc0b1, 0xc0b1, 0xc8b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xa499, 0x96dd, 0x96dd, 0x96dd, 0x96dd, 0x96dd, 0x96dc, 0x96dd, 0x96dd, 0x96dd, 0x96dd, 0x96dd, 0x96dd, 0x8c37, 0x8191, 0x9931, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc8b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xa499, 0x96dc, 0x96dd, 0x8c37, 0x8191, 0xa111, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0x9d5a, 0x96dd, 0x96dd, 0x96dd, 0x96dd, 0x8c37, 0x8191, 0xa131, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0x9d5a, 0x96dd, 0x96dd, 0x96dd, 0x96dd, 0x96dd, 0x96dd, 0x96dd, 0x8cd8, 0x8191, 0x9951, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc8b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc8b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xac79, 0xacf9, 0xc992, 0xc993, 0xc9b2, 0xc992, 0xc992, 0xc993, 0xc993, 0xc993, 0xc992, 0xc992, 0xc992, 0xc993, 0xc993, 0xc993, 0x003f, 0x003f, 0x003f, 0x00bf, 0x011f, 0xc0b1, 0xc8b1, 0xc0b1, 0xc0b1, 0xc0b1, 0x79d6, 0x051f, 0x051f, 0x04ff, 0x04bf, 0x0638, 0x07f1, 0x07f7, 0x07fc, 0x07ff, 0x2e3c, 0xb0f1, 0xb0f2, 0xb0f1, 0xb0f1, 0x80f2, 0xb0f1, 0xb0f1, 0xb0f2, 0x3110, 0x30f0, 0x28cf, 0x28ef, 0x20ce, 0x28cf, 0x20ce, 0x20ce, 0x20ce, 0x20ad, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ae, 0x18ad, 0x10d2, 0x08f3, 0x10f3, 0x10d2, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0xc972, 0xc972, 0xc972, 0x8ebc, 0x8ebd, 0x8ebd, 0x8ebc, 0x8ebc, 0x8ebc, 0x8ebd, 0x8d7a, 0x8191, 0x9151, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc8b1, 0xc0b1, 0xabb7, 0x8ebd, 0x8ebc, 0x8ebc, 0x8ebc, 0x8ebc, 0x8ebc, 0x8ebc, 0x8ebc, 0x8ebc, 0x8ebd, 0x8c37, 0x8191, 0xa131, 0xc0b1, 0xc8b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc8b1, 0xc0b1, 0xabb7, 0x8ebc, 0x8ebc, 0x8ebc, 0x8edc, 0x8ebc, 0x8edd, 0x8ebc, 0x8ebc, 0x8ebd, 0x8ebc, 0x8c37, 0x8191, 0xa131, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0x9d39, 0x8ebd, 0x8edd, 0x8dba, 0x81f2, 0x9171, 0xc0b1, 0xc0b1, 0xc8b1, 0xc0b1, 0xc0d1, 0xc0b1, 0xc8b1, 0xc8b2, 0xc0b1, 0xc8b2, 0xc8b1, 0xc8b1, 0xc0d1, 0xc0b1, 0xc0d1, 0xc0d1, 0xc8b1, 0xc0b1, 0xc0b1, 0xc8b1, 0xc0b1, 0xa437, 0x8ebc, 0x8edd, 0x8ebc, 0x8ebd, 0x8ebc, 0x8ebc, 0x8ebd, 0x8ebc, 0x8ebd, 0x8ebd, 0x8cd8, 0x8191, 0xa131, 0xc0b1, 0xc0b1, 0xc8b1, 0xc0b1, 0xc0b1, 0xc8b2, 0xc8b1, 0xc0b1, 0xc8b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc8b1, 0xc8b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc8b1, 0xc0b1, 0xc8b1, 0xa4d9, 0x8ebc, 0x8c37, 0x8191, 0xa131, 0xc0b1, 0xc8b1, 0xc0d1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc8b1, 0x9d3a, 0x8ebc, 0x8ebc, 0x8ebc, 0x8ebc, 0x8c37, 0x8191, 0xa131, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0x9d5a, 0x8ebc, 0x8ebc, 0x8edc, 0x8ebc, 0x8ebc, 0x8ebc, 0x8cd8, 0x8191, 0x9951, 0xc8b1, 0xc0b1, 0xc8b1, 0xc8b2, 0xc8b1, 0xc0b1, 0xc8b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0d1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc8b1, 0xc8b1, 0xc8b1, 0xc8d1, 0xa478, 0xa4d9, 0xc972, 0xc972, 0xc972, 0xc972, 0xc972, 0xc972, 0xc972, 0xc972, 0xc972, 0xc972, 0xc972, 0xc972, 0xc972, 0x003f, 0x003f, 0x001f, 0x009f, 0x00df, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0x9174, 0x049f, 0x057f, 0x051f, 0x04ff, 0x0619, 0x07f1, 0x07f6, 0x07fc, 0x07ff, 0x35bb, 0xb0f1, 0xb0d1, 0xb0f1, 0xb0f1, 0x6912, 0xb0f1, 0xb0f1, 0x98f1, 0x30f0, 0x30f0, 0x28ef, 0x28cf, 0x28ef, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ad, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x00f7, 0x011a, 0x00fa, 0x011a, 0x0119, 0x08f7, 0x18ce, 0x18ad, 0x20ad, 0x18ae, 0x18ae, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0xc952, 0xc952, 0xc952, 0x8ebc, 0x8ebc, 0x8ebc, 0x8ebc, 0x8ebc, 0x8ebc, 0x8ebc, 0x8d59, 0x8191, 0x9171, 0xc8f2, 0xc8f1, 0xc8f2, 0xc8f2, 0xc8f2, 0xc8f1, 0xc8f2, 0xabd7, 0x8ebc, 0x8ebc, 0x8ebc, 0x8ebc, 0x8ebc, 0x8ebc, 0x8ebc, 0x8ebc, 0x8ebc, 0x8ebc, 0x8c36, 0x8191, 0xa931, 0xc8f2, 0xc8f1, 0xc8f2, 0xc8f2, 0xc8f2, 0xc8f2, 0xc0f2, 0xabb7, 0x8ebc, 0x8ebc, 0x8ebc, 0x8ebc, 0x8ebc, 0x8ebc, 0x8ebc, 0x8ebc, 0x8ebc, 0x8ebc, 0x8437, 0x8191, 0xa951, 0xc8f1, 0xc8f1, 0xc8f2, 0xc8f1, 0xc8f1, 0xc8f2, 0xc8f1, 0x9d3a, 0x8ebc, 0x8e1b, 0x81f2, 0x8971, 0xb912, 0xc8f1, 0xc8f1, 0xc8f2, 0xc8f1, 0xc8f1, 0xc8f1, 0xc8f2, 0xc8d1, 0xc112, 0xc8f2, 0xc8f2, 0xc8f2, 0xc8d1, 0xc8f2, 0xc8d1, 0xc8f2, 0xc0f1, 0xc8f1, 0xc8f2, 0xc8f1, 0xc8f2, 0xc0f1, 0xa498, 0x8ebc, 0x8ebc, 0x8ebc, 0x8ebc, 0x8ebc, 0x8ebc, 0x8ebc, 0x8ebc, 0x8dba, 0x8991, 0x8991, 0xc0f1, 0xc8f2, 0xc0f2, 0xc8f1, 0xc8f2, 0xc8f1, 0xc0f1, 0xc8f2, 0xc8f1, 0xc8f2, 0xc0f2, 0xc8f1, 0xc0f1, 0xc8f2, 0xc8f1, 0xc8f2, 0xc8f2, 0xc8f2, 0xc8f1, 0xc8f1, 0xc0f2, 0xc132, 0x8e5c, 0x8c17, 0x8191, 0xa931, 0xc8f2, 0xc8f2, 0xc8f2, 0xc8f2, 0xc8f1, 0xc8f2, 0xc8f2, 0x9d59, 0x8ebc, 0x8ebc, 0x8ebc, 0x8ebc, 0x8c17, 0x8191, 0xa951, 0xc8f1, 0xc8f1, 0xc8f2, 0xc8f1, 0xc8f1, 0xc8f2, 0xc8f1, 0x9d5a, 0x8ebc, 0x8ebc, 0x8ebc, 0x8ebc, 0x8ebd, 0x8dba, 0x81f2, 0x8991, 0xc111, 0xc8f1, 0xc8f1, 0xc8f1, 0xc0f2, 0xc8f1, 0xc8f1, 0xc0f2, 0xc8d2, 0xc8f1, 0xc8f2, 0xc0f1, 0xc0f1, 0xc8f2, 0xc0f1, 0xc8f1, 0xc8f2, 0xc8f2, 0xc8f1, 0xc8f1, 0xc8f2, 0xc152, 0x95fb, 0xa4b8, 0xc152, 0xc952, 0xc952, 0xc952, 0xc972, 0xc952, 0xc952, 0xc952, 0xc952, 0xc952, 0xc952, 0xc952, 0x001f, 0x001f, 0x001f, 0x007f, 0x00df, 0x68b7, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xa8f3, 0x041f, 0x057f, 0x053f, 0x051f, 0x05f9, 0x07f0, 0x07f6, 0x07fc, 0x07ff, 0x5c78, 0xb0f1, 0xb0d1, 0xb0f1, 0xb0f1, 0x5912, 0xb0f1, 0xb0f1, 0x90f1, 0x30f0, 0x30ef, 0x30ef, 0x28cf, 0x28ce, 0x20ce, 0x20ce, 0x20ae, 0x20ce, 0x20ad, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x08f5, 0x0119, 0x0119, 0x0117, 0x00f7, 0x0119, 0x0119, 0x08f5, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0xc932, 0xc932, 0xc932, 0x8ebc, 0x8ebc, 0x8ebc, 0x8ebc, 0x8ebc, 0x8ebc, 0x8ebc, 0x8d79, 0x8191, 0x9171, 0xc132, 0xc131, 0xc912, 0xc912, 0xc132, 0xc911, 0xc912, 0xabf7, 0x8ebc, 0x8ebc, 0x8ebc, 0x8ebc, 0x8ebc, 0x8ebc, 0x8ebc, 0x8ebc, 0x8ebc, 0x96bc, 0x8c36, 0x8191, 0xa951, 0xc912, 0xc911, 0xc912, 0xc912, 0xc112, 0xc912, 0xc912, 0xabf7, 0x8ebc, 0x8ebc, 0x8ebc, 0x8ebc, 0x8ebc, 0x8ebc, 0x8ebc, 0x8ebc, 0x8ebc, 0x8ebc, 0x8c36, 0x8191, 0xa951, 0xc912, 0xc912, 0xc912, 0xc911, 0xc911, 0xc912, 0xc912, 0x9d59, 0x8ebc, 0x8ad4, 0x8191, 0xb152, 0xc912, 0xc131, 0xc912, 0xc912, 0xc912, 0xc912, 0xc912, 0xc912, 0xc932, 0xc912, 0xc912, 0xc912, 0xc912, 0xc911, 0xc112, 0xc932, 0xc912, 0xc912, 0xc932, 0xc911, 0xc912, 0xc912, 0xc932, 0xc131, 0x9dba, 0x8ebc, 0x96bc, 0x8ebc, 0x8edc, 0x96bb, 0x8ebc, 0x8edc, 0x82d4, 0x8191, 0xb932, 0xc912, 0xc112, 0xc912, 0xc112, 0xc912, 0xc112, 0xc912, 0xc911, 0xc911, 0xc932, 0xc911, 0xc131, 0xc912, 0xc132, 0xc131, 0xc912, 0xc912, 0xc911, 0xc911, 0xc131, 0xc912, 0xc912, 0xb356, 0x8c36, 0x8191, 0xa151, 0xc912, 0xc912, 0xc912, 0xc912, 0xc912, 0xc912, 0xc112, 0x9d59, 0x8ebc, 0x96bc, 0x8ebc, 0x8ebc, 0x8c37, 0x8191, 0xa951, 0xc912, 0xc912, 0xc912, 0xc911, 0xc911, 0xc912, 0xc912, 0x9d59, 0x8ebc, 0x8ebc, 0x8ebc, 0x96bc, 0x8ebc, 0x82f4, 0x8991, 0xb151, 0xc912, 0xc912, 0xc932, 0xc912, 0xc912, 0xc131, 0xc932, 0xc912, 0xc911, 0xc911, 0xc932, 0xc911, 0xc912, 0xc911, 0xc932, 0xc932, 0xc112, 0xc911, 0xc132, 0xc912, 0xc912, 0xc932, 0xb336, 0x96bc, 0xa4f9, 0xc192, 0xc932, 0xc932, 0xc932, 0xc932, 0xc932, 0xc932, 0xc932, 0xc932, 0xc932, 0xc932, 0x001f, 0x001f, 0x001f, 0x007f, 0x00bf, 0x009f, 0x90b5, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0x0b9e, 0x053f, 0x057f, 0x053f, 0x05da, 0x07ef, 0x07f5, 0x07fb, 0x07ff, 0x5478, 0xb0d1, 0xb0f1, 0xb0f1, 0x9111, 0x5912, 0xa8f1, 0xb0f1, 0x70f1, 0x30f0, 0x28ef, 0x20ef, 0x28cf, 0x20ce, 0x20ce, 0x20ce, 0x20ae, 0x20ae, 0x20ad, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x20ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x0119, 0x0119, 0x08f3, 0x18ad, 0x18ad, 0x08f3, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0xc912, 0xc912, 0xc912, 0x9edb, 0x9edb, 0x9edb, 0x9edc, 0x9edb, 0x9edb, 0x9edb, 0x9578, 0x8191, 0x9991, 0xc952, 0xc952, 0xc952, 0xc952, 0xc952, 0xc952, 0xc952, 0xb417, 0x9edb, 0x9edb, 0x9edb, 0x9edb, 0x9edb, 0x9edb, 0x9edb, 0x9edb, 0x9edb, 0x9edb, 0x9436, 0x8191, 0xa972, 0xc952, 0xc952, 0xc952, 0xc952, 0xc952, 0xc952, 0xc952, 0xa518, 0x9edb, 0x96db, 0x9edb, 0x9edb, 0x9edb, 0x9edb, 0x9edb, 0x9edb, 0x9edb, 0x9edb, 0x9436, 0x8191, 0xa171, 0xc952, 0xc952, 0xc952, 0xc952, 0xc952, 0xc952, 0xc952, 0xa579, 0x94d8, 0x8191, 0x9991, 0xc952, 0xc952, 0xc952, 0xc952, 0xc952, 0xc152, 0xc952, 0xc952, 0xc952, 0xc952, 0xc952, 0xc253, 0xc2b4, 0xb952, 0xc152, 0xc952, 0xc152, 0xc952, 0xc952, 0xc952, 0xc952, 0xc952, 0xc952, 0xc952, 0xc952, 0xbab5, 0x9edb, 0x9edb, 0x9edb, 0x9edb, 0x9edb, 0x9edb, 0x9599, 0x8191, 0x91b1, 0xc952, 0xc952, 0xc952, 0xc952, 0xc952, 0xc952, 0xc952, 0xc952, 0xc952, 0xc952, 0xc1f3, 0xc2b5, 0xb952, 0xc152, 0xc952, 0xc952, 0xc952, 0xc952, 0xc952, 0xc972, 0xc952, 0xc952, 0xc972, 0xc1b2, 0x9436, 0x8191, 0xa972, 0xc952, 0xc952, 0xc952, 0xc952, 0xc952, 0xc952, 0xc952, 0xa579, 0x9edb, 0x9edb, 0x9edb, 0x9edb, 0x8c36, 0x8991, 0xa171, 0xc952, 0xc952, 0xc952, 0xc952, 0xc952, 0xc952, 0xc952, 0xa579, 0x9edb, 0x9edc, 0x9edb, 0x9edb, 0x9598, 0x8191, 0x9191, 0xc952, 0xc952, 0xc952, 0xc952, 0xc152, 0xc952, 0xc172, 0xc952, 0xc952, 0xc952, 0xc1f3, 0xc2b4, 0xb952, 0xc152, 0xc952, 0xc952, 0xc952, 0xc952, 0xc952, 0xc952, 0xc952, 0xc952, 0xc952, 0xc952, 0xa61a, 0x9edc, 0xa5da, 0xc172, 0xc912, 0xc911, 0xc911, 0xc912, 0xc912, 0xc111, 0xc912, 0xc912, 0xc912, 0x001f, 0x001f, 0x001f, 0x005f, 0x007f, 0x007f, 0x6098, 0xc0b1, 0xb8b1, 0xc0b1, 0xc0b1, 0x2afc, 0x04ff, 0x05bf, 0x055f, 0x05fb, 0x07cf, 0x07f4, 0x07fc, 0x07ff, 0x5c79, 0xb0f1, 0xb0f1, 0xb0f1, 0x8112, 0x5912, 0xb0f1, 0xb0f1, 0x68f1, 0x30f0, 0x30ef, 0x30cf, 0x28cf, 0x20cf, 0x20ce, 0x20ce, 0x20ae, 0x20ae, 0x20ad, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ce, 0x00f7, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x00f9, 0x18d0, 0x18ad, 0x18ad, 0x10d0, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0xc8f1, 0xc8f1, 0xc8f2, 0xa6fb, 0xa6fa, 0xa6fa, 0xa6fb, 0xa6fa, 0xa6da, 0xa6fa, 0x9d98, 0x8191, 0x9191, 0xc972, 0xc992, 0xc992, 0xc972, 0xc992, 0xc992, 0xc992, 0xb436, 0xa6fb, 0xa6fa, 0xa6fa, 0xa6fa, 0xa6fa, 0xa6fa, 0xa6fa, 0xa6fa, 0xa6fa, 0xa6fa, 0x9436, 0x8191, 0xa992, 0xc992, 0xc992, 0xc972, 0xc972, 0xc972, 0xc992, 0xc992, 0xad98, 0xa6da, 0xa6da, 0xa6fa, 0xa6fa, 0xa6fa, 0xa6fa, 0xa6fa, 0xa6fa, 0xa6fa, 0xa6fa, 0x9436, 0x8191, 0xa992, 0xc993, 0xc992, 0xc992, 0xc992, 0xc992, 0xc992, 0xc992, 0xad99, 0x8a32, 0x8991, 0xc192, 0xc992, 0xc992, 0xc972, 0xc992, 0xc992, 0xc973, 0xc992, 0xc992, 0xc992, 0xbc36, 0xa69a, 0xa6fa, 0xa6fa, 0xa69a, 0x9395, 0x8991, 0xb992, 0xc993, 0xc972, 0xc972, 0xc992, 0xc992, 0xc972, 0xc992, 0xc972, 0xc972, 0xad98, 0xa6db, 0xa6da, 0xa6fa, 0xa6fb, 0xa6fa, 0x9395, 0x8191, 0xb192, 0xc992, 0xc992, 0xc992, 0xc993, 0xc972, 0xc972, 0xc992, 0xc972, 0xc233, 0xad98, 0xa6fa, 0xa6fb, 0xa639, 0x8a93, 0x9992, 0xc192, 0xc972, 0xc992, 0xc992, 0xc992, 0xc972, 0xc992, 0xc972, 0xc972, 0x9a93, 0x8191, 0xa992, 0xc992, 0xc992, 0xc992, 0xc992, 0xc992, 0xc992, 0xc992, 0xad98, 0xa6fa, 0xa6fb, 0xa6fa, 0xa6fa, 0x9436, 0x8191, 0xa992, 0xc993, 0xc992, 0xc992, 0xc992, 0xc992, 0xc992, 0xc992, 0xad98, 0xa6da, 0xa6da, 0xa6fa, 0xa6da, 0x8b95, 0x8191, 0xb192, 0xc972, 0xc992, 0xc972, 0xc992, 0xc992, 0xc972, 0xc992, 0xc972, 0xc294, 0xadf9, 0xa6fa, 0xa6da, 0xa69a, 0x9334, 0x9191, 0xb992, 0xc992, 0xc993, 0xc992, 0xc992, 0xc992, 0xc992, 0xc992, 0xc992, 0xb497, 0xaefb, 0xaefb, 0xb5d9, 0xc952, 0xc8f1, 0xc8f2, 0xc0f1, 0xc8f1, 0xc8f1, 0xc8f1, 0xc8f1, 0xc8f1, 0x001f, 0x001f, 0x001f, 0x003f, 0x007f, 0x005f, 0x7897, 0xc0b1, 0xc0d1, 0xc0b1, 0xb8d1, 0x6238, 0x04df, 0x05bf, 0x059f, 0x05fa, 0x07ce, 0x07f4, 0x07fc, 0x07ff, 0x5c78, 0xb0f1, 0xb0f1, 0xb0f1, 0x7112, 0x5912, 0xb0f1, 0xa8f1, 0x5110, 0x30f0, 0x30cf, 0x28cf, 0x28cf, 0x28cf, 0x20ae, 0x20ce, 0x20ce, 0x20ae, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ce, 0x00f7, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x011a, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x08f3, 0x18ad, 0x18ad, 0x08f3, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0xc0d1, 0xc0d1, 0xc8d2, 0xb71a, 0xb71a, 0xb71a, 0xaefa, 0xb71a, 0xaf1a, 0xaefa, 0xa598, 0x8191, 0x9191, 0xc9b3, 0xc9b3, 0xc9d3, 0xc9d3, 0xc9b2, 0xc9b3, 0xc9d3, 0xbc76, 0xb71a, 0xb71a, 0xb71a, 0xb71a, 0xb71a, 0xb71a, 0xb71a, 0xb71a, 0xb71a, 0xb71a, 0x9c55, 0x8191, 0xa9b2, 0xc9d3, 0xc9d3, 0xc9b3, 0xc9b2, 0xc9b3, 0xc9d3, 0xc9d3, 0xb5b8, 0xb71a, 0xaf1a, 0xb71a, 0xb6fa, 0xb71a, 0xb71a, 0xb71a, 0xb71a, 0xb6fa, 0xaf1a, 0x9c56, 0x8191, 0xa992, 0xc9b3, 0xc9b3, 0xc9b3, 0xc9b3, 0xc9b3, 0xc9b3, 0xc9b3, 0xa3b5, 0x8191, 0x9992, 0xc9b2, 0xc9b3, 0xc9d2, 0xc9b2, 0xc9b3, 0xc9b2, 0xc9b3, 0xc9d3, 0xca13, 0xbdb8, 0xaefa, 0xaf1a, 0xb71a, 0xb6fa, 0xaefa, 0xaf19, 0xa4f7, 0x8991, 0xb1b2, 0xc9b3, 0xc9b3, 0xc9b3, 0xc9b3, 0xc9b3, 0xc9d2, 0xc9b3, 0xc9b3, 0xc314, 0xaf1a, 0xaf1a, 0xaef9, 0xaf1a, 0xaf1a, 0x89f1, 0x8191, 0xc1b2, 0xc9b3, 0xc9b3, 0xc9b3, 0xc9b2, 0xc9b2, 0xc9d3, 0xc9b3, 0xcab4, 0xb6b9, 0xaf1a, 0xb71a, 0xaefa, 0xb71a, 0xb6b9, 0x8a93, 0x8991, 0xc1d2, 0xc9b3, 0xc9b3, 0xc9b3, 0xc9b3, 0xc9b2, 0xc9d3, 0xc9b2, 0xa992, 0x8191, 0xa9b2, 0xc9d3, 0xc9b3, 0xc9d3, 0xc9b2, 0xc9b2, 0xc9b2, 0xc9b3, 0xb5b8, 0xaf1a, 0xaefa, 0xaf1a, 0xb71a, 0x9c56, 0x8191, 0xa992, 0xc9b3, 0xc9b3, 0xc9b3, 0xc9b3, 0xc9b3, 0xc9b3, 0xc9b3, 0xb5b8, 0xb6fa, 0xaf1a, 0xaf1a, 0xb6fa, 0x89f2, 0x8191, 0xc1b2, 0xc9b3, 0xc9b2, 0xc9d3, 0xc9b3, 0xc9b3, 0xc9b2, 0xc9d3, 0xcab4, 0xb6b9, 0xaf1a, 0xb71a, 0xb71a, 0xb6fa, 0xb71a, 0x92f3, 0x89b1, 0xc1b2, 0xc9d3, 0xc9b3, 0xc9b3, 0xc9d3, 0xc9d3, 0xc9b3, 0xc9d3, 0xc315, 0xb71a, 0xb71a, 0xb71a, 0xbdd9, 0xc132, 0xc0d1, 0xc8d1, 0xc8d1, 0xc8d1, 0xc8d1, 0xc0d1, 0xc0d1, 0x001f, 0x001f, 0x001f, 0x003f, 0x007f, 0x007f, 0x6878, 0xb8b1, 0xc0b1, 0xc0d1, 0xb8d1, 0x9954, 0x047f, 0x05bf, 0x05bf, 0x061a, 0x07ce, 0x07f2, 0x07fc, 0x07ff, 0x5c78, 0xb0f1, 0xb0f1, 0xb0f1, 0x6112, 0x5912, 0xa8f1, 0xa8f1, 0x60f0, 0x30f0, 0x28ef, 0x28cf, 0x28cf, 0x28ce, 0x20ce, 0x20ce, 0x20ce, 0x20ae, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x00f7, 0x0119, 0x00f7, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x08f5, 0x0119, 0x0119, 0x00f7, 0x00f7, 0x0119, 0x0119, 0x08f4, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0xc0b1, 0xc8b1, 0xc0b1, 0xbf19, 0xbf19, 0xbf19, 0xbf19, 0xbf19, 0xbf19, 0xbf19, 0xa4b5, 0x8191, 0xa1b2, 0xc9f3, 0xc9f3, 0xc9f3, 0xc9f3, 0xc9f3, 0xc9f3, 0xd1f3, 0xc496, 0xbf19, 0xbf19, 0xbf19, 0xbf19, 0xbf19, 0xbf19, 0xbf19, 0xbf19, 0xbf19, 0xbf19, 0xa455, 0x8191, 0xa9d2, 0xc9f3, 0xc9f3, 0xc9f3, 0xc9f3, 0xc9f3, 0xc9f3, 0xc9f3, 0xbdd8, 0xbf19, 0xbf19, 0xbf19, 0xbf39, 0xbf19, 0xbf19, 0xbf39, 0xbf19, 0xbf39, 0xbf39, 0xa455, 0x8191, 0xa9d2, 0xc9f3, 0xc9f3, 0xc9f3, 0xc9f3, 0xc9f3, 0xc9f3, 0xc9f3, 0x99f2, 0x8991, 0xb1d2, 0xc9f3, 0xc9f3, 0xc9f3, 0xc9f3, 0xc9f3, 0xc9f3, 0xc9f3, 0xc9f2, 0xc577, 0xbf19, 0xbf39, 0xbf39, 0xbf19, 0xbf19, 0xbf19, 0xbf19, 0xbf19, 0x9bf5, 0x8191, 0xb1d2, 0xc9f3, 0xc9f3, 0xd1f3, 0xc9f3, 0xc9f3, 0xc9f3, 0xc9f3, 0xc9f3, 0xbe78, 0xbf19, 0xbf19, 0xbf19, 0xb6b9, 0x8191, 0x8991, 0xc9f3, 0xc9f3, 0xc9f2, 0xc9f3, 0xc9f3, 0xc9d3, 0xc9f3, 0xc9f3, 0xbed8, 0xbf19, 0xbf19, 0xbf19, 0xbf19, 0xbf19, 0xbf39, 0xad57, 0x8191, 0x99b2, 0xc9f3, 0xc9f2, 0xc9f3, 0xc9f3, 0xc9f3, 0xc9f3, 0xc9f3, 0xb9d3, 0x8191, 0xa9b2, 0xc9f3, 0xc9f3, 0xc9f3, 0xc9f3, 0xc9f3, 0xc9f3, 0xc9f3, 0xbdd8, 0xbf19, 0xbf19, 0xbf19, 0xbf19, 0x9c75, 0x8191, 0xa9d2, 0xc9f3, 0xc9f3, 0xc9f3, 0xc9f3, 0xc9f3, 0xc9f3, 0xc9f3, 0xbdd8, 0xbf19, 0xbf19, 0xbf19, 0xb6b8, 0x8191, 0x8191, 0xc9f3, 0xc9f3, 0xc9f3, 0xc9f3, 0xc9f3, 0xc9f3, 0xc9f3, 0xc9f3, 0xbe78, 0xbf19, 0xbf39, 0xbf19, 0xbf39, 0xbf19, 0xbf19, 0xadb7, 0x8191, 0x91b1, 0xc9f3, 0xc9f3, 0xc9f3, 0xc9f2, 0xc9f3, 0xc9f3, 0xc9f3, 0xc9f3, 0xc71a, 0xbf1a, 0xc73a, 0xbf3a, 0xc659, 0xc9d3, 0xc0b1, 0xc8b1, 0xc0b1, 0xc0b1, 0xc8b1, 0xc0b1, 0x001f, 0x001f, 0x001f, 0x003f, 0x005f, 0x003f, 0x001f, 0x7076, 0xc0d1, 0xb8d1, 0xb8d1, 0xb8d1, 0x0bff, 0x05df, 0x05bf, 0x0639, 0x07cd, 0x07f2, 0x07fc, 0x07ff, 0x63f7, 0xb0f1, 0xb0f1, 0xb0f1, 0x4132, 0x4111, 0xa0f1, 0xb0f1, 0x90f1, 0x30f0, 0x28ef, 0x28ce, 0x28cf, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ae, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x00f7, 0x0119, 0x00f8, 0x10d0, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ce, 0x00f7, 0x0119, 0x0119, 0x0119, 0x0119, 0x00f7, 0x18ce, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18cd, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ae, 0xc0b1, 0xc0b1, 0xc0b1, 0xc738, 0xc738, 0xc738, 0xc738, 0xc738, 0xc738, 0xc738, 0xa475, 0x8991, 0xa9d2, 0xca13, 0xca33, 0xca33, 0xca34, 0xca13, 0xca33, 0xca33, 0xccb6, 0xc738, 0xc738, 0xc738, 0xc738, 0xc738, 0xc738, 0xc738, 0xc738, 0xc738, 0xc738, 0xa455, 0x8191, 0xa9d2, 0xca33, 0xca33, 0xca13, 0xca33, 0xca33, 0xca33, 0xd213, 0xc5f7, 0xc738, 0xc738, 0xc738, 0xc738, 0xc739, 0xc738, 0xc738, 0xc738, 0xc738, 0xc738, 0xa475, 0x8191, 0xa9d2, 0xca13, 0xca33, 0xca33, 0xca33, 0xca33, 0xca13, 0xca33, 0x91b1, 0x8191, 0xca13, 0xca33, 0xca33, 0xca33, 0xca33, 0xca13, 0xca33, 0xca13, 0xc455, 0xc738, 0xc739, 0xc738, 0xc738, 0xc738, 0xc738, 0xc739, 0xc738, 0xc738, 0xc738, 0x8a52, 0x8991, 0xc213, 0xca13, 0xca13, 0xca13, 0xca13, 0xca33, 0xca13, 0xca33, 0xcd56, 0xc738, 0xc738, 0xc739, 0xb5d7, 0x8191, 0x91b1, 0xca13, 0xca13, 0xca13, 0xd233, 0xca33, 0xca33, 0xca33, 0xcb55, 0xcf38, 0xc738, 0xc738, 0xc738, 0xc738, 0xc738, 0xc739, 0xc738, 0x8191, 0x8191, 0xca13, 0xca13, 0xca13, 0xca33, 0xca13, 0xca33, 0xd233, 0xca13, 0x8191, 0xa9d2, 0xca33, 0xca33, 0xca13, 0xca13, 0xca33, 0xca13, 0xca33, 0xcdf7, 0xc738, 0xc738, 0xc738, 0xc739, 0xa475, 0x8191, 0xa9d2, 0xca13, 0xca33, 0xca33, 0xca33, 0xca33, 0xca13, 0xca33, 0xc5f7, 0xc738, 0xc738, 0xc738, 0xb5d6, 0x8191, 0x99b2, 0xca33, 0xca33, 0xd213, 0xca33, 0xca33, 0xca33, 0xca33, 0xcb74, 0xc739, 0xc738, 0xc738, 0xc738, 0xc738, 0xc739, 0xc738, 0xc738, 0x8ab2, 0x8191, 0xba13, 0xca13, 0xca13, 0xca33, 0xca13, 0xca33, 0xca33, 0xca13, 0xcf39, 0xc739, 0xc759, 0xcf3a, 0xcf39, 0xced9, 0xc9f3, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0x001f, 0x001f, 0x001f, 0x001f, 0x003f, 0x003f, 0x001f, 0x001f, 0x9894, 0xb8d1, 0xb8d1, 0xb8d1, 0x42da, 0x059f, 0x05ff, 0x0678, 0x07cc, 0x07f1, 0x07fc, 0x07ff, 0x82b5, 0xa8f1, 0xb0f1, 0x98f2, 0x4132, 0x3912, 0x70f1, 0xa8f1, 0xa8f1, 0x50f0, 0x28cf, 0x28cf, 0x28ce, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ae, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x00f7, 0x0119, 0x00f8, 0x10cf, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x10d2, 0x10d3, 0x08f3, 0x10d2, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0xc0b1, 0xc0b1, 0xc0b1, 0xcf57, 0xd758, 0xd758, 0xcf58, 0xd758, 0xcf58, 0xd758, 0xac74, 0x8191, 0xa9f2, 0xca53, 0xd253, 0xca54, 0xca53, 0xca53, 0xca53, 0xca54, 0xccd6, 0xcf58, 0xd758, 0xd758, 0xd758, 0xd758, 0xd758, 0xd758, 0xd758, 0xd758, 0xcf58, 0xac75, 0x8191, 0xa9f2, 0xca53, 0xca53, 0xd253, 0xca53, 0xca53, 0xca53, 0xd254, 0xce17, 0xcf57, 0xd758, 0xcf58, 0xd758, 0xcf58, 0xd758, 0xd758, 0xcf58, 0xd758, 0xcf58, 0xac74, 0x8191, 0xa9f2, 0xca53, 0xca54, 0xd253, 0xca53, 0xca53, 0xca54, 0xca53, 0x99d2, 0x89b1, 0xca53, 0xca53, 0xca53, 0xca53, 0xd253, 0xca53, 0xca53, 0xca54, 0xd6b7, 0xd758, 0xcf58, 0xcf57, 0xcf58, 0xd758, 0xd757, 0xd758, 0xd757, 0xd758, 0xcf58, 0xb535, 0x8191, 0xa1d2, 0xca53, 0xca53, 0xca53, 0xd254, 0xca73, 0xca53, 0xca53, 0xcc95, 0xd758, 0xd758, 0xcf58, 0xbdd6, 0x8191, 0x99d2, 0xca53, 0xca53, 0xca54, 0xca53, 0xca53, 0xd254, 0xca54, 0xd435, 0xd758, 0xd758, 0xcf58, 0xd758, 0xd758, 0xcf57, 0xd738, 0xcf58, 0x9af3, 0x8991, 0xc213, 0xca54, 0xca53, 0xca53, 0xd253, 0xca53, 0xca54, 0xca73, 0x8191, 0xa9f2, 0xca53, 0xd253, 0xd253, 0xca54, 0xd253, 0xca53, 0xca54, 0xce17, 0xcf58, 0xd758, 0xd758, 0xcf58, 0xac74, 0x8191, 0xa9f2, 0xca53, 0xca54, 0xd253, 0xca53, 0xca53, 0xca54, 0xca53, 0xd617, 0xd758, 0xcf58, 0xcf58, 0xbdd6, 0x8191, 0x91b2, 0xca53, 0xd254, 0xca53, 0xca53, 0xca54, 0xd253, 0xd253, 0xccd6, 0xd758, 0xd758, 0xd758, 0xd758, 0xcf57, 0xd757, 0xcf58, 0xd758, 0x9af3, 0x8191, 0xba33, 0xca54, 0xca53, 0xd253, 0xca54, 0xca53, 0xd253, 0xca53, 0xd758, 0xd758, 0xdf59, 0xd779, 0xd759, 0xd759, 0xd6f9, 0xc1f2, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0x001f, 0x001f, 0x001f, 0x003f, 0x001f, 0x001f, 0x001f, 0x001f, 0x183e, 0xb0d2, 0xb8d1, 0xb8d1, 0x9974, 0x059f, 0x061f, 0x0698, 0x07cc, 0x07f0, 0x07fc, 0x07ff, 0x82b5, 0xb0f1, 0xb0f1, 0x88f1, 0x4132, 0x4111, 0x3910, 0x98f1, 0xa8f2, 0x88f1, 0x28ef, 0x28cf, 0x28ce, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ae, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x0117, 0x0119, 0x0118, 0x10d0, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0xc0b1, 0xc0b1, 0xc0b1, 0xdf77, 0xdf77, 0xdf77, 0xdf77, 0xdf77, 0xdf77, 0xdf77, 0xb494, 0x8191, 0xaa12, 0xca94, 0xca74, 0xca94, 0xca94, 0xca94, 0xca94, 0xd294, 0xd4f5, 0xdf77, 0xdf77, 0xdf77, 0xdf77, 0xdf77, 0xdf77, 0xdf77, 0xdf77, 0xdf77, 0xdf77, 0xb474, 0x8191, 0xaa12, 0xca94, 0xca94, 0xd294, 0xca94, 0xd294, 0xca94, 0xd294, 0xde36, 0xdf77, 0xdf77, 0xdf57, 0xdf77, 0xdf77, 0xdf77, 0xdf77, 0xdf77, 0xdf77, 0xdf77, 0xb494, 0x8191, 0xaa12, 0xca94, 0xd294, 0xd294, 0xd294, 0xd294, 0xd294, 0xd294, 0x99d2, 0x91d2, 0xd294, 0xca94, 0xd294, 0xca94, 0xd294, 0xca94, 0xca94, 0xd3d4, 0xdf77, 0xdf77, 0xdf77, 0xdf76, 0xdf77, 0xdf77, 0xdf77, 0xdf77, 0xdf77, 0xdf57, 0xdf77, 0xdf77, 0x8191, 0x8992, 0xca94, 0xca94, 0xca94, 0xd294, 0xca94, 0xca93, 0xca94, 0xd3d5, 0xdf77, 0xdf77, 0xdf77, 0xc5f5, 0x8191, 0x99d2, 0xca94, 0xca94, 0xd273, 0xca94, 0xd294, 0xca94, 0xd294, 0xd515, 0xdf77, 0xdf77, 0xdf77, 0xdf77, 0xdf77, 0xdf77, 0xdf77, 0xdf77, 0x9b12, 0x8191, 0xba53, 0xca94, 0xca94, 0xd294, 0xca94, 0xca93, 0xd294, 0xca94, 0x8191, 0xaa12, 0xd294, 0xd294, 0xd294, 0xca94, 0xca94, 0xd294, 0xd294, 0xde36, 0xdf77, 0xdf77, 0xdf57, 0xdf77, 0xb474, 0x8191, 0xaa12, 0xca94, 0xd294, 0xd294, 0xd294, 0xd294, 0xd294, 0xd294, 0xde36, 0xdf77, 0xdf77, 0xdf77, 0xc5f5, 0x8191, 0x99d2, 0xd294, 0xca94, 0xca94, 0xd294, 0xca94, 0xca94, 0xca93, 0xd4f5, 0xdf77, 0xdf77, 0xdf77, 0xdf77, 0xdf77, 0xdf77, 0xdf77, 0xdf77, 0x9b12, 0x8191, 0xba53, 0xd294, 0xca94, 0xca94, 0xd294, 0xca94, 0xd294, 0xca94, 0xdf78, 0xdf78, 0xdf78, 0xdf78, 0xdf78, 0xdf78, 0xe779, 0xdf19, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x385b, 0xb8d1, 0xb8d1, 0xb8d1, 0x2c3c, 0x061f, 0x06b7, 0x07cb, 0x07f0, 0x07fb, 0x07ff, 0xb0f1, 0xb0f1, 0xa8f1, 0x7912, 0x4132, 0x4111, 0x3911, 0x4110, 0xa0f1, 0xa8f1, 0x48ef, 0x28ce, 0x28ce, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ad, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x00f7, 0x0119, 0x0118, 0x10cf, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x208e, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0xb8d1, 0xb8d1, 0xc0d1, 0xe776, 0xe796, 0xe797, 0xe797, 0xe796, 0xe796, 0xe796, 0xb494, 0x8191, 0xaa33, 0xd2b4, 0xd2b4, 0xd2b4, 0xcab4, 0xd2d4, 0xd2b4, 0xd2b4, 0xdd35, 0xe776, 0xe796, 0xe796, 0xe796, 0xe796, 0xe796, 0xe796, 0xe796, 0xe796, 0xe796, 0xb474, 0x8191, 0xaa33, 0xd2d4, 0xd2d4, 0xd2d4, 0xd2b4, 0xd2b4, 0xcad4, 0xd2d4, 0xe656, 0xef96, 0xe776, 0xe797, 0xe796, 0xe796, 0xe776, 0xe777, 0xe796, 0xe796, 0xe796, 0xb494, 0x8191, 0xaa33, 0xd2b4, 0xd2b4, 0xd2b4, 0xd2b4, 0xd2b4, 0xd2b4, 0xd2b4, 0x99d2, 0x99f2, 0xcab4, 0xd2b4, 0xd2d4, 0xd2b4, 0xd2b4, 0xcad4, 0xd2b4, 0xd3f5, 0xe777, 0xe797, 0xef97, 0xe796, 0xe796, 0xe776, 0xe777, 0xe796, 0xe796, 0xe796, 0xe777, 0xef97, 0x8191, 0x8191, 0xd2b4, 0xd2b4, 0xd2d4, 0xd2d4, 0xd2b4, 0xd2b4, 0xcad4, 0xd3d5, 0xe796, 0xe796, 0xe796, 0xce15, 0x8191, 0x99f2, 0xcad4, 0xd2b4, 0xd2d4, 0xd2b4, 0xd2b4, 0xcab4, 0xd2b4, 0xdd35, 0xe777, 0xef76, 0xe796, 0xe797, 0xe797, 0xe776, 0xe796, 0xe776, 0xc534, 0xb494, 0xcc15, 0xd3f5, 0xdbf4, 0xdbf4, 0xdbf5, 0xd3f5, 0xd3f4, 0xcb34, 0x8191, 0xaa32, 0xd2b4, 0xd2b4, 0xd2b4, 0xd2b4, 0xd2d4, 0xd2b4, 0xcab4, 0xe656, 0xe776, 0xe796, 0xe796, 0xe776, 0xb494, 0x8191, 0xaa33, 0xd2b4, 0xd2b4, 0xd2b4, 0xd2b4, 0xd2b4, 0xd2b4, 0xd2b4, 0xde56, 0xe796, 0xe796, 0xe796, 0xce15, 0x8191, 0x99f2, 0xd2b4, 0xd2b4, 0xd2d4, 0xd2b4, 0xd2d4, 0xcad4, 0xcad4, 0xdd15, 0xe796, 0xe796, 0xe776, 0xe796, 0xef96, 0xe796, 0xe796, 0xe796, 0x9b13, 0x8191, 0xba73, 0xd2b4, 0xd2b4, 0xd2b4, 0xd2b4, 0xd2b4, 0xd2b4, 0xd2b4, 0xe797, 0xef97, 0xef77, 0xef97, 0xef78, 0xef98, 0xef98, 0xef98, 0xc992, 0xb8d1, 0xc0d1, 0xc0b1, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x7096, 0xb8d1, 0xb8d1, 0x8a35, 0x063f, 0x06d6, 0x07ea, 0x07f1, 0x07fc, 0x07ff, 0xa8f1, 0xa8f1, 0xa8f1, 0x6132, 0x4132, 0x4111, 0x38f1, 0x3110, 0x48f0, 0xa8f1, 0x98f1, 0x30cf, 0x28cf, 0x20ce, 0x20ce, 0x20ce, 0x20ae, 0x20ad, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x00f7, 0x0119, 0x0118, 0x18d0, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x20ad, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0xb8d1, 0xb8d1, 0xb8d1, 0xf796, 0xf7b6, 0xf796, 0xf795, 0xf795, 0xf796, 0xefb6, 0xbc93, 0x8191, 0xaa52, 0xd2f4, 0xd2f4, 0xd2f4, 0xd2f5, 0xd2f5, 0xd2f5, 0xd2f4, 0xdd55, 0xf7b6, 0xf7b6, 0xf7b6, 0xf7b6, 0xf7b6, 0xf7b6, 0xf7b6, 0xf7b6, 0xf7b6, 0xefb6, 0xbc93, 0x8191, 0xaa53, 0xd2f5, 0xd2f4, 0xd2f4, 0xd2f4, 0xd2f4, 0xd2f4, 0xd2f4, 0xe675, 0xf796, 0xf795, 0xf796, 0xf796, 0xf796, 0xf7b6, 0xf7b5, 0xf7b5, 0xef96, 0xf796, 0xbc93, 0x8191, 0xaa33, 0xd2f4, 0xd2f4, 0xd2f4, 0xd2f4, 0xd2f4, 0xd2f4, 0xd2f4, 0x99f2, 0x99f2, 0xd2f5, 0xd2f4, 0xd2f4, 0xd2f5, 0xd2d4, 0xd2f4, 0xd2f4, 0xdc75, 0xf795, 0xf795, 0xf795, 0xf796, 0xf7b5, 0xf796, 0xf796, 0xf796, 0xf796, 0xefb6, 0xf7b5, 0xf796, 0x8191, 0x8991, 0xd2f4, 0xd2f4, 0xd2f4, 0xd2f4, 0xd2f4, 0xd2f4, 0xd2f4, 0xdc15, 0xf796, 0xf796, 0xf796, 0xd615, 0x8191, 0x99f2, 0xd2f4, 0xd2f4, 0xd2f4, 0xd2f4, 0xd2f5, 0xd2f4, 0xd2f5, 0xe535, 0xf7b6, 0xf7b5, 0xf796, 0xefb6, 0xf796, 0xf795, 0xf7b6, 0xf796, 0xf7b6, 0xf795, 0xf796, 0xf796, 0xf795, 0xf7b6, 0xf795, 0xf7b6, 0xf796, 0xbc93, 0x8191, 0xaa53, 0xd2f4, 0xd2f4, 0xd2f4, 0xd2f4, 0xd2f4, 0xd2f4, 0xd2f4, 0xee75, 0xf796, 0xf796, 0xf7b5, 0xf796, 0xbc93, 0x8191, 0xaa33, 0xd2f4, 0xd2f4, 0xd2f4, 0xd2f4, 0xd2f4, 0xd2f4, 0xd2f4, 0xee75, 0xf796, 0xf7b5, 0xf795, 0xd634, 0x8191, 0x99f2, 0xd2f4, 0xd2f5, 0xd2f4, 0xd2f5, 0xd2f5, 0xd2f5, 0xd2d4, 0xe555, 0xf796, 0xf7b5, 0xf7b6, 0xf7b6, 0xf795, 0xf7b6, 0xf796, 0xf7b6, 0xa311, 0x8191, 0xba94, 0xd2f4, 0xd2f4, 0xd2f4, 0xd2f4, 0xd2f4, 0xd2f4, 0xd2f4, 0xf796, 0xf796, 0xf797, 0xf797, 0xf797, 0xf7b7, 0xf798, 0xf798, 0xd273, 0xb8d1, 0xb8d1, 0xb8d1, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x98b4, 0xb8d1, 0xb8d1, 0x3c9b, 0x06f5, 0x07e9, 0x07f1, 0x07fd, 0x26bd, 0xb0f1, 0xb0f2, 0xb0f1, 0x4932, 0x4132, 0x4111, 0x3911, 0x3110, 0x30f0, 0x60f0, 0xa911, 0x70f0, 0x20ce, 0x20cf, 0x20ae, 0x20ce, 0x20ae, 0x20ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x0117, 0x0119, 0x0118, 0x18d0, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0xb8d1, 0xb8d1, 0xb8d1, 0xff94, 0xffb5, 0xffb5, 0xffb5, 0xffb5, 0xffb4, 0xffb5, 0xc493, 0x8191, 0xaa53, 0xd315, 0xd335, 0xd335, 0xd335, 0xd334, 0xd315, 0xd335, 0xe575, 0xffb5, 0xffb5, 0xffb5, 0xffb5, 0xffb5, 0xffb5, 0xffb5, 0xffb5, 0xffb5, 0xffb5, 0xc493, 0x8191, 0xaa53, 0xd335, 0xd335, 0xd314, 0xd315, 0xd335, 0xd335, 0xd335, 0xf675, 0xffb5, 0xffb4, 0xffb5, 0xffb5, 0xffb4, 0xffb4, 0xffb4, 0xffb5, 0xffb5, 0xff95, 0xc493, 0x8191, 0xaa53, 0xd335, 0xd335, 0xd335, 0xd335, 0xd315, 0xd315, 0xd335, 0x99f2, 0x99f2, 0xd335, 0xd314, 0xd315, 0xd335, 0xd335, 0xd315, 0xd335, 0xdc54, 0xffb5, 0xffb5, 0xffb5, 0xffb5, 0xffb4, 0xffb5, 0xffb5, 0xffb5, 0xffb5, 0xffb5, 0xffb4, 0xffb5, 0x8191, 0x8191, 0xd334, 0xd315, 0xd335, 0xd335, 0xd335, 0xd335, 0xd315, 0xdc34, 0xffb4, 0xffb5, 0xffb5, 0xde34, 0x8191, 0x99f2, 0xd314, 0xd335, 0xd315, 0xd334, 0xd334, 0xd335, 0xd335, 0xe574, 0xffb5, 0xffb5, 0xffb5, 0xffb5, 0xffb5, 0xffb5, 0xffb5, 0xffb4, 0xffb4, 0xffb5, 0xffb4, 0xffb5, 0xffb5, 0xffb5, 0xffb4, 0xffb5, 0xffb5, 0xc4b3, 0x8191, 0xaa53, 0xd335, 0xd335, 0xd314, 0xd315, 0xd335, 0xd335, 0xd335, 0xedf5, 0xffb5, 0xffb5, 0xffb5, 0xffb5, 0xc493, 0x8191, 0xaa53, 0xd335, 0xd335, 0xd335, 0xd335, 0xd315, 0xd315, 0xd335, 0xf694, 0xffb5, 0xffb5, 0xffb5, 0xde14, 0x8191, 0x99f2, 0xd335, 0xd335, 0xd314, 0xd334, 0xd314, 0xd334, 0xd315, 0xe555, 0xffb5, 0xffb5, 0xffb5, 0xffb4, 0xffb5, 0xffb5, 0xffb5, 0xffb5, 0xa332, 0x8191, 0xbab4, 0xd335, 0xd335, 0xd335, 0xd315, 0xd334, 0xd335, 0xd335, 0xffb5, 0xffb6, 0xffb6, 0xffb6, 0xffb6, 0xffb6, 0xffb7, 0xffb8, 0xdbd4, 0xb8d2, 0xb8d1, 0xb8d1, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x003f, 0x083f, 0x70f7, 0xb8d1, 0xa952, 0x0e94, 0x07c9, 0x07f2, 0x07fd, 0x2e3c, 0xa8f1, 0xa8f1, 0x9911, 0x4132, 0x4132, 0x3911, 0x3910, 0x30f0, 0x30f0, 0x30ef, 0x58f0, 0xa8f1, 0x40cf, 0x20ae, 0x20ce, 0x20ce, 0x20ae, 0x20ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x00f7, 0x00f9, 0x0118, 0x18cf, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0xb8d1, 0xb8d1, 0xb8d1, 0xfe2e, 0xfe2e, 0xfe2e, 0xfe2e, 0xfe2e, 0xfe4e, 0xfe4e, 0xc3f0, 0x8191, 0xaa73, 0xd355, 0xd355, 0xd355, 0xd355, 0xd355, 0xd355, 0xd355, 0xecd1, 0xfe2e, 0xfe2e, 0xfe2e, 0xfe2e, 0xfe2e, 0xfe2e, 0xfe2e, 0xfe2e, 0xfe2e, 0xfe2e, 0xc3ef, 0x8191, 0xaa73, 0xd355, 0xd355, 0xd355, 0xd355, 0xd355, 0xd355, 0xd354, 0xf590, 0xfe4e, 0xfe4e, 0xfe2e, 0xfe2e, 0xfe4e, 0xfe2e, 0xfe2e, 0xfe2e, 0xfe2e, 0xfe2e, 0xc3ef, 0x8191, 0xaa73, 0xd355, 0xd355, 0xd355, 0xd355, 0xd355, 0xd355, 0xd355, 0x9a12, 0x91f2, 0xd355, 0xd354, 0xd355, 0xd355, 0xd355, 0xd355, 0xd355, 0xdbd4, 0xfe4e, 0xfe2e, 0xfe2e, 0xfe2e, 0xfe2e, 0xfe4e, 0xfe2e, 0xfe4e, 0xfe2e, 0xfe2e, 0xfe2e, 0xfe4e, 0x8191, 0x8191, 0xd355, 0xd355, 0xd355, 0xd355, 0xd355, 0xd355, 0xd355, 0xdc13, 0xfe4e, 0xfe2e, 0xfe2e, 0xe50f, 0x8191, 0x99f2, 0xd355, 0xd355, 0xd355, 0xd355, 0xd355, 0xd355, 0xd354, 0xecd1, 0xfe2e, 0xfe2e, 0xfe2e, 0xfe2e, 0xfe2e, 0xfe2e, 0xfe2e, 0xfe2e, 0xfe4e, 0xfe2e, 0xfe2e, 0xfe2e, 0xfe2e, 0xfe4e, 0xfe4e, 0xfe2e, 0xfe2e, 0xc3cf, 0x8191, 0xaa73, 0xd355, 0xd355, 0xd355, 0xd355, 0xd355, 0xd355, 0xd355, 0xe4d1, 0xfe4e, 0xfe2e, 0xfe2e, 0xfe4e, 0xc3d0, 0x8191, 0xaa73, 0xd355, 0xd355, 0xd355, 0xd355, 0xd355, 0xd355, 0xd355, 0xf590, 0xfe4e, 0xfe2e, 0xfe2e, 0xe50f, 0x8191, 0x9a12, 0xd355, 0xd355, 0xd355, 0xd355, 0xd355, 0xd355, 0xd355, 0xecd2, 0xfe2e, 0xfe4e, 0xfe2e, 0xfe4e, 0xfe4e, 0xfe4e, 0xfe4d, 0xfe2f, 0xa2b0, 0x8191, 0xc2f4, 0xd355, 0xd355, 0xd355, 0xd355, 0xd355, 0xd355, 0xd355, 0xfe2f, 0xfe50, 0xfe50, 0xfe50, 0xfe51, 0xfe51, 0xfe52, 0xfe52, 0xe3d2, 0xb8d2, 0xb8d1, 0xb8d1, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x003f, 0x001f, 0x003f, 0x00df, 0x59f8, 0xb8d1, 0x8291, 0x07c9, 0x07f2, 0x07fe, 0x455a, 0xb0f1, 0xa8f1, 0x8112, 0x4132, 0x4132, 0x3911, 0x38f0, 0x30f0, 0x30ef, 0x28ef, 0x28cf, 0x50cf, 0x48ef, 0x20ae, 0x20ae, 0x20ce, 0x20ae, 0x20ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x00f7, 0x0119, 0x00f8, 0x10cf, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ac, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0xb8d1, 0xb0d1, 0xb0d2, 0xfc8d, 0xfc6d, 0xfc6d, 0xfc8d, 0xfc6d, 0xfc6d, 0xfc6d, 0xc30f, 0x81b1, 0xaa73, 0xd395, 0xd395, 0xd395, 0xd375, 0xd395, 0xd395, 0xd375, 0xec11, 0xfc6d, 0xfc6d, 0xfc6d, 0xfc6d, 0xfc6d, 0xfc6d, 0xfc6d, 0xfc6d, 0xfc6d, 0xfc8d, 0xc30f, 0x8191, 0xaa93, 0xd375, 0xd375, 0xd395, 0xd395, 0xd375, 0xd395, 0xd396, 0xf42f, 0xfc6d, 0xfc6d, 0xfc8d, 0xfc6d, 0xfc6d, 0xfc8d, 0xfc8d, 0xfc6d, 0xfc6d, 0xfc8d, 0xc30f, 0x8191, 0xaa93, 0xd395, 0xd395, 0xd395, 0xd395, 0xd375, 0xd375, 0xd395, 0x9a12, 0x8191, 0xd395, 0xd395, 0xd396, 0xd395, 0xd395, 0xd375, 0xd395, 0xd395, 0xf44f, 0xfc8d, 0xfc6d, 0xfc6d, 0xfc8d, 0xfc6d, 0xfc6d, 0xfc6d, 0xfc6d, 0xfc8d, 0xfc8d, 0xfc6d, 0x8191, 0x8191, 0xd395, 0xd395, 0xd395, 0xd375, 0xd395, 0xd395, 0xd396, 0xdbd3, 0xfc8d, 0xfc6d, 0xfc6d, 0xe3ce, 0x8191, 0x9a12, 0xd395, 0xd395, 0xd395, 0xd376, 0xd395, 0xd395, 0xd395, 0xec11, 0xfc6d, 0xfc6d, 0xfc6d, 0xfc6d, 0xfc8d, 0xfc8d, 0xfc6d, 0xfc6d, 0xfc6d, 0xfc6d, 0xfc6d, 0xfc6d, 0xfc6d, 0xfc6d, 0xfc8d, 0xfc6d, 0xfc8d, 0xc30f, 0x8191, 0xaa93, 0xd375, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xebf1, 0xfc8d, 0xfc6d, 0xfc8d, 0xfc6d, 0xc30f, 0x8191, 0xaa93, 0xd395, 0xd395, 0xd395, 0xd395, 0xd375, 0xd375, 0xd395, 0xf42f, 0xfc6d, 0xfc6d, 0xfc8d, 0xe3ce, 0x8191, 0x9a12, 0xd395, 0xd395, 0xd375, 0xd395, 0xd376, 0xd395, 0xd395, 0xebf1, 0xfc8d, 0xfc6d, 0xfc6d, 0xfc8d, 0xfc6d, 0xfc6d, 0xfc6d, 0xfc8d, 0xa250, 0x8191, 0xc314, 0xd375, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd375, 0xfc8e, 0xfc8f, 0xfc8f, 0xfc8f, 0xfcb0, 0xfcb0, 0xfcb1, 0xfcb1, 0xf3b2, 0xb8d1, 0xb0f1, 0xb8d1, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x003f, 0x003f, 0x005f, 0x031f, 0x2d3b, 0x99b2, 0x454b, 0x07f3, 0x07fe, 0x5498, 0xb0f1, 0xa8f1, 0x6912, 0x4912, 0x4112, 0x3911, 0x3110, 0x30f0, 0x30ef, 0x30cf, 0x28cf, 0x20ce, 0x20ce, 0x20ce, 0x20cd, 0x20ce, 0x20ae, 0x20ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x00f7, 0x0119, 0x00f8, 0x18cf, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0xb0f1, 0xb0f1, 0xb0d1, 0xfc8d, 0xfc8d, 0xfc8d, 0xfc8d, 0xfc8d, 0xfc8d, 0xfc8d, 0xc30f, 0x8191, 0xaa93, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xec11, 0xfc8d, 0xfc8d, 0xfc8d, 0xfc8d, 0xfc8d, 0xfc8d, 0xfc8d, 0xfc8d, 0xfc8d, 0xfc8d, 0xc30f, 0x8191, 0xaa93, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xf44f, 0xfc8d, 0xfc8d, 0xfc8d, 0xfc8d, 0xfc8d, 0xfc8d, 0xfc8d, 0xfc8d, 0xfc8d, 0xfc8d, 0xc30f, 0x8191, 0xaa93, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0x9a12, 0x8191, 0xc334, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xdbb4, 0xfc8e, 0xfc8d, 0xfc8d, 0xfc8d, 0xfc8d, 0xfc8d, 0xfc8d, 0xfc8d, 0xfc8d, 0xfc8d, 0xfc8d, 0x8191, 0x8191, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd375, 0xdbd3, 0xfc8d, 0xfc8d, 0xfc8d, 0xe3ce, 0x8191, 0x9a12, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xec11, 0xfc8d, 0xfc8d, 0xfc8d, 0xfc8d, 0xfc8d, 0xfc8d, 0xfc8d, 0xfc8d, 0xfc8d, 0xfc8d, 0xfc8d, 0xfc8d, 0xfc8d, 0xfc8d, 0xfc8d, 0xfc8d, 0xfc8d, 0xcb2f, 0x8191, 0xaa93, 0xd395, 0xd395, 0xd395, 0xd395, 0xd396, 0xd395, 0xd395, 0xec11, 0xfc8d, 0xfc8d, 0xfc8d, 0xfc8d, 0xc30f, 0x8191, 0xaa93, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xf44f, 0xfc8d, 0xfc8d, 0xfc8d, 0xcb6f, 0x8191, 0x9a32, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xec11, 0xfc8d, 0xfc8d, 0xfc8d, 0xfc8d, 0xfc8d, 0xfc8d, 0xfc8d, 0xfc8d, 0xa250, 0x8191, 0xc314, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xfc8e, 0xfc8f, 0xfcaf, 0xfcaf, 0xfcb0, 0xfcb0, 0xfcb0, 0xfcb2, 0xf451, 0xb0d1, 0xb0d1, 0xb0d1, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x003f, 0x003f, 0x003f, 0x005f, 0x025f, 0x06fd, 0x0770, 0x0f88, 0x07f4, 0x07ff, 0x5478, 0xa8f1, 0xa8f1, 0x5932, 0x4132, 0x4111, 0x3911, 0x3911, 0x30f0, 0x30f0, 0x30ef, 0x28cf, 0x28ce, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ad, 0x20ad, 0x20ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x00f7, 0x0119, 0x00f8, 0x18cf, 0x18ad, 0x20ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0xb0f1, 0xb0f1, 0xb0d1, 0xfcad, 0xfccd, 0xfcad, 0xfcad, 0xfccd, 0xfccd, 0xfccd, 0xcb4e, 0x8191, 0xaa73, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xec31, 0xfcad, 0xfccd, 0xfccd, 0xfccd, 0xfccd, 0xfccd, 0xfccd, 0xfccd, 0xfccd, 0xfccd, 0xc32f, 0x8991, 0xaa93, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xf46f, 0xfccd, 0xfccd, 0xfccd, 0xfcad, 0xfccd, 0xfccd, 0xfccd, 0xfcad, 0xfcad, 0xfcad, 0xc32f, 0x8191, 0xaa93, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xbb11, 0x8191, 0xaa73, 0xd396, 0xd395, 0xd395, 0xd395, 0xd396, 0xd395, 0xd395, 0xd395, 0xdbb4, 0xfcae, 0xfcad, 0xfccd, 0xfcad, 0xfccd, 0xfcad, 0xfccd, 0xfccd, 0xfcad, 0xfcad, 0x8191, 0x8191, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd375, 0xdbd3, 0xfcad, 0xfccd, 0xfccd, 0xdbee, 0x8191, 0x9a12, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xec31, 0xfccd, 0xfcad, 0xfccd, 0xfccd, 0xfccd, 0xfccd, 0xfccd, 0xfccd, 0xfccd, 0xfccd, 0xfccd, 0xfccd, 0xfccd, 0xfcad, 0xfccd, 0xfcad, 0xfccd, 0xdbee, 0x8191, 0x9a12, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xdbd3, 0xfccd, 0xfccd, 0xfccd, 0xfccd, 0xc32f, 0x8191, 0xaa93, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xf46f, 0xfcad, 0xfccd, 0xfccd, 0xc32f, 0x8991, 0xaa94, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xec31, 0xfccd, 0xfccd, 0xfcad, 0xfccd, 0xfcad, 0xfcad, 0xfcad, 0xfcad, 0xa270, 0x8191, 0xc314, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xfcce, 0xfccf, 0xfccf, 0xfcef, 0xfcd0, 0xfcf0, 0xfcf1, 0xfcf1, 0xfcf2, 0xb0f1, 0xb0f1, 0xb0f2, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x003f, 0x003f, 0x005f, 0x007f, 0x021f, 0x06fc, 0x078d, 0x07e7, 0x07f6, 0x07ff, 0x82b5, 0xa8f1, 0xa111, 0x4932, 0x4132, 0x4111, 0x38f1, 0x38f0, 0x30f0, 0x30ef, 0x30ef, 0x28cf, 0x28ce, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ad, 0x20ad, 0x20ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x20ad, 0x18ad, 0x18ad, 0x18ae, 0x00f6, 0x0119, 0x0118, 0x18cf, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0xb0f1, 0xa8f1, 0xb0f1, 0xfd0d, 0xfced, 0xfced, 0xfced, 0xfd0d, 0xfced, 0xfd0d, 0xe42e, 0x8191, 0x9a12, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xec51, 0xfced, 0xfced, 0xfced, 0xfced, 0xfced, 0xfced, 0xfced, 0xfced, 0xfced, 0xfced, 0xc34f, 0x8191, 0xaa93, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xf48f, 0xfced, 0xfced, 0xfced, 0xfced, 0xfced, 0xfced, 0xfced, 0xfced, 0xfced, 0xfced, 0xc32f, 0x8191, 0xaa93, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xec6f, 0x91d1, 0x89d1, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd396, 0xd395, 0xd395, 0xdbb4, 0xec70, 0xfced, 0xfced, 0xfced, 0xfced, 0xfced, 0xfd0d, 0xfced, 0xfced, 0x8191, 0x8191, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xdbf3, 0xfced, 0xfced, 0xfced, 0xe42e, 0x8191, 0x9a12, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xec51, 0xfced, 0xfced, 0xfced, 0xfced, 0xfced, 0xfced, 0xfced, 0xfced, 0xfced, 0xfced, 0xfced, 0xfced, 0xfced, 0xfced, 0xfced, 0xfd0d, 0xfced, 0xec6e, 0x8191, 0x91f2, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd376, 0xd395, 0xd395, 0xf4af, 0xfd0d, 0xfced, 0xfd0d, 0xc34f, 0x8191, 0xaa93, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xf48f, 0xfced, 0xfced, 0xfced, 0xc34f, 0x8191, 0xaa93, 0xd375, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xec51, 0xfced, 0xfced, 0xfced, 0xfced, 0xfced, 0xfced, 0xfced, 0xfced, 0xa270, 0x8191, 0xc314, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xfd0e, 0xfd0f, 0xfd0f, 0xfd0f, 0xfd10, 0xfd10, 0xfd31, 0xfd31, 0xfd32, 0xb0f1, 0xb0f1, 0xb0f1, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x003f, 0x005f, 0x005f, 0x005f, 0x021f, 0x073b, 0x07ac, 0x07e7, 0x07f7, 0x07ff, 0x82b5, 0xa8f1, 0x8912, 0x4932, 0x4112, 0x3911, 0x3911, 0x3110, 0x30f0, 0x30ef, 0x28cf, 0x28cf, 0x28ce, 0x20ce, 0x20ce, 0x20ce, 0x20ae, 0x20ad, 0x20ad, 0x20ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x00f6, 0x0119, 0x0118, 0x10cf, 0x20ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0xb0f1, 0xa8f1, 0xb0f1, 0xfd2d, 0xfd2d, 0xfd2d, 0xfd2d, 0xfd2d, 0xfd2d, 0xfd2d, 0xe44e, 0x8191, 0x9a12, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xec71, 0xfd2d, 0xfd2d, 0xfd2d, 0xfd2d, 0xfd2d, 0xfd2d, 0xfd2d, 0xfd2d, 0xfd2d, 0xfd2d, 0xc34f, 0x8191, 0xaa93, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xf4cf, 0xfd2d, 0xfd2d, 0xfd2d, 0xfd2d, 0xfd2d, 0xfd2d, 0xfd2d, 0xfd2d, 0xfd2d, 0xfd2d, 0xc34f, 0x8191, 0xaa93, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xf4cf, 0xc34f, 0x8191, 0xb2d4, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xdbd4, 0xe431, 0xec71, 0xec71, 0xdbf0, 0xe450, 0xf4cf, 0xfd0e, 0x8191, 0x8191, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xdbd4, 0xf4af, 0xf4cf, 0xf4af, 0xdc10, 0x9a12, 0xaa73, 0xd395, 0xd396, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xec71, 0xfd2d, 0xfd2d, 0xfd2d, 0xfd2d, 0xfd2d, 0xfd2d, 0xfd2d, 0xfd2d, 0xfd2d, 0xfd2d, 0xfd2d, 0xfd2d, 0xfd2d, 0xfd2d, 0xfd2d, 0xfd2d, 0xfd2c, 0xfd2c, 0x9211, 0x8191, 0xd375, 0xd395, 0xd396, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xec71, 0xfcee, 0xfd2d, 0xc36f, 0x8191, 0xaa93, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xdc10, 0xe44e, 0xdc2e, 0xe44e, 0xb2f0, 0x8191, 0xaa93, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xec71, 0xfd2d, 0xfd2d, 0xfd2d, 0xfd2d, 0xfd2d, 0xfd2d, 0xfd2d, 0xfd2d, 0xa270, 0x8191, 0xc314, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xfd2e, 0xfd2f, 0xfd2f, 0xfd4f, 0xfd50, 0xfd50, 0xfd51, 0xfd51, 0xfd71, 0xa8f1, 0xb0f1, 0xb0f2, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x003f, 0x005f, 0x005f, 0x007f, 0x007f, 0x023f, 0x073b, 0x07ab, 0x07e8, 0x07f9, 0x07ff, 0xa152, 0xa8f1, 0x7132, 0x4132, 0x4131, 0x3911, 0x3910, 0x38f0, 0x30f0, 0x30ef, 0x28cf, 0x28ce, 0x28ce, 0x20ce, 0x20ce, 0x20ce, 0x20ad, 0x20ad, 0x20ad, 0x20ad, 0x20ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x00f6, 0x0119, 0x0118, 0x18cf, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0xa8f1, 0xa8f1, 0xa8f2, 0xfd6d, 0xfd6d, 0xfd6d, 0xfd6d, 0xfd4d, 0xfd6d, 0xfd6d, 0xe46e, 0x8191, 0x9212, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xec71, 0xfd6d, 0xfd6d, 0xfd6d, 0xfd6d, 0xfd6d, 0xfd6d, 0xfd6d, 0xfd6d, 0xfd6d, 0xfd6d, 0xc36f, 0x8191, 0xaa93, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xf4ef, 0xfd6d, 0xfd6d, 0xfd6d, 0xfd6d, 0xfd6d, 0xfd6d, 0xfd6d, 0xfd6d, 0xfd6d, 0xfd6d, 0xc36f, 0x8191, 0xaa93, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xf4ef, 0xfd2d, 0x9211, 0x89b2, 0xcb75, 0xd396, 0xd375, 0xd395, 0xd396, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xec91, 0x8191, 0x8191, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xcb95, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xec71, 0xfd6d, 0xfd6d, 0xfd6d, 0xfd6d, 0xfd6d, 0xfd6d, 0xfd6d, 0xfd6d, 0xfd6d, 0xfd6d, 0xfd6d, 0xfd6d, 0xfd6d, 0xfd4d, 0xfd6d, 0xfd6d, 0xfd6d, 0xfd6d, 0xbb2f, 0x8191, 0xb2d4, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xc314, 0x8191, 0xaa93, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd375, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xec71, 0xfd6d, 0xfd6d, 0xfd6d, 0xfd6d, 0xfd6d, 0xfd6d, 0xfd6d, 0xfd6d, 0xa290, 0x8191, 0xc314, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xfd6e, 0xfd6f, 0xfd6f, 0xfd8f, 0xfd90, 0xfd90, 0xfd91, 0xfd91, 0xfd92, 0xa8f1, 0xa8f1, 0xa8f1, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x003f, 0x003f, 0x005f, 0x005f, 0x007f, 0x009f, 0x023f, 0x0779, 0x07aa, 0x07e8, 0x07fb, 0x07ff, 0xa8f1, 0xa8f1, 0x5932, 0x4932, 0x4131, 0x3911, 0x3910, 0x38f0, 0x30ef, 0x30ef, 0x28cf, 0x28ce, 0x28ce, 0x20ce, 0x20ce, 0x20ad, 0x20ad, 0x20ad, 0x20ad, 0x20ad, 0x20ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18cd, 0x0116, 0x0119, 0x0118, 0x18cf, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0xa8f1, 0xa8f1, 0xa8f1, 0xec6f, 0xfd8d, 0xfdad, 0xfd8d, 0xfdad, 0xfdad, 0xfdad, 0xe48e, 0x8191, 0x9a12, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xec91, 0xfdad, 0xfd8d, 0xfd8d, 0xfd8d, 0xfd8d, 0xfd8d, 0xfd8d, 0xfd8d, 0xfd8d, 0xfd8d, 0xc38f, 0x8191, 0xaa93, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xf52f, 0xfdad, 0xfd8d, 0xfdad, 0xfd8d, 0xfd8d, 0xfdad, 0xfd8d, 0xfd8d, 0xfdad, 0xfdad, 0xc38f, 0x8191, 0xaa93, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xf52f, 0xfd8d, 0xe4ae, 0x8991, 0x9a32, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xe491, 0x8191, 0x8191, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd396, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xec91, 0xfdad, 0xfdad, 0xfd8d, 0xfd8d, 0xfd8d, 0xfd8d, 0xfd8d, 0xfd8d, 0xfd8d, 0xfd8d, 0xfdad, 0xfdad, 0xfd8d, 0xfd8d, 0xfdad, 0xfdad, 0xfd8d, 0xfdad, 0xf52d, 0x8191, 0x91f2, 0xd395, 0xd395, 0xd395, 0xd395, 0xd376, 0xd395, 0xd395, 0xd396, 0xd395, 0xd395, 0xd395, 0xc314, 0x8191, 0xaa93, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xec91, 0xfd8d, 0xfd8d, 0xfdad, 0xfdad, 0xfdad, 0xfdad, 0xfdad, 0xfd8d, 0xa290, 0x8191, 0xc314, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xfdaf, 0xfdaf, 0xfdaf, 0xfdaf, 0xfdb0, 0xfdb0, 0xfdb1, 0xfdd1, 0xe4b2, 0xa911, 0xa8f1, 0xa8f1, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x003f, 0x005f, 0x005f, 0x007f, 0x007f, 0x009f, 0x02bf, 0x0778, 0x07c8, 0x07e9, 0x07fd, 0x173e, 0xa8f1, 0x9912, 0x4932, 0x4932, 0x4131, 0x4111, 0x3911, 0x38f0, 0x30ef, 0x30ef, 0x28cf, 0x28ce, 0x28ce, 0x20ce, 0x20ce, 0x20cd, 0x20ad, 0x20ad, 0x20ad, 0x20ad, 0x20ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x00f7, 0x0119, 0x0118, 0x18cf, 0x18ad, 0x18ad, 0x18ad, 0x18ac, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0xa911, 0xa911, 0xa911, 0xec8e, 0xfded, 0xfded, 0xfdcd, 0xfdcd, 0xfdcd, 0xfded, 0xe4ce, 0x8191, 0x9a12, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xecb1, 0xfdcd, 0xfdcd, 0xfdcd, 0xfdcd, 0xfdcd, 0xfdcd, 0xfdcd, 0xfdcd, 0xfdcd, 0xfdcd, 0xc3af, 0x8191, 0xaa93, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xf54f, 0xfdcd, 0xfdcd, 0xfded, 0xfdcd, 0xfdcd, 0xfdcd, 0xfdcd, 0xfdcd, 0xfded, 0xfdcd, 0xc3af, 0x8191, 0xaa93, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xf54f, 0xfded, 0xfdcd, 0xd44f, 0x8191, 0xb2b3, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd396, 0xd395, 0xd395, 0xd395, 0xd395, 0xecb1, 0x8991, 0x8191, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd396, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xecb1, 0xfdcd, 0xfdcd, 0xfdcd, 0xfdcd, 0xfdcd, 0xfdcd, 0xfdcd, 0xfdcd, 0xfdcd, 0xfdcd, 0xfdcd, 0xfdcd, 0xfdcd, 0xfdcd, 0xfdcd, 0xfdcd, 0xfdcd, 0xfdcd, 0xfdcd, 0xbb6f, 0x8191, 0xbaf4, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd375, 0xd395, 0xd395, 0xd395, 0xd395, 0xc314, 0x8191, 0xaa93, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xecb1, 0xfded, 0xfded, 0xfdcd, 0xfdcd, 0xfded, 0xfded, 0xfded, 0xfded, 0xa2b0, 0x8191, 0xc314, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd375, 0xfdee, 0xfdef, 0xfdef, 0xfdf0, 0xfdf0, 0xfdf0, 0xfdf1, 0xfdf1, 0xecb1, 0xa0f1, 0xa911, 0xa911, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x005f, 0x005f, 0x005f, 0x007f, 0x009f, 0x009f, 0x041f, 0x0797, 0x07c7, 0x07eb, 0x07fe, 0x2e5c, 0xa8f1, 0x7932, 0x4932, 0x4932, 0x4111, 0x3911, 0x3910, 0x38f0, 0x30ef, 0x30ef, 0x28ce, 0x28ce, 0x28ce, 0x20ce, 0x20ce, 0x20cd, 0x20ad, 0x20ad, 0x20ad, 0x20ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x00f7, 0x0118, 0x0117, 0x18cf, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ac, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ac, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0xa911, 0xa911, 0xa111, 0xe42e, 0xfe0d, 0xfe0d, 0xfe0d, 0xfe0d, 0xfe0d, 0xfe0d, 0xe4ee, 0x8191, 0x9a12, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xecd1, 0xfe0d, 0xfe0d, 0xfe0d, 0xfe0d, 0xfe0d, 0xfe0d, 0xfe0d, 0xfe0d, 0xfe0d, 0xfe0d, 0xc3cf, 0x8191, 0xaa93, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xf56f, 0xfe0d, 0xfe0d, 0xfe0d, 0xfe0d, 0xfe0d, 0xfe0d, 0xfe0d, 0xfe0d, 0xfe0d, 0xfe0d, 0xc3cf, 0x8191, 0xaa93, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xf56f, 0xfe0d, 0xfe0d, 0xfe0d, 0xd44f, 0x8191, 0xbad3, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd376, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd396, 0xd395, 0xd395, 0xecd1, 0x8191, 0x8191, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd375, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xecd1, 0xfe0d, 0xfe0d, 0xfe0d, 0xfe0d, 0xfe0d, 0xfe0d, 0xfe0d, 0xfe0d, 0xfe0d, 0xfe0d, 0xfe0d, 0xfe0d, 0xfe0d, 0xfe0d, 0xfe0d, 0xfe0d, 0xfe0d, 0xfe0d, 0xfe0d, 0xf5ad, 0x9a70, 0x89b1, 0xd375, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xc314, 0x8191, 0xaa93, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd396, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xecd1, 0xfe0d, 0xfe0d, 0xfe0d, 0xfe0e, 0xfe0d, 0xfe0e, 0xfe0e, 0xfe0e, 0xa2b0, 0x8191, 0xc314, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xfe0f, 0xfe0f, 0xfe0f, 0xfe30, 0xfe30, 0xfe30, 0xfe31, 0xfe31, 0xdc32, 0xa111, 0xa911, 0xa111, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x005f, 0x005f, 0x007f, 0x007f, 0x009f, 0x00bf, 0x043f, 0x0794, 0x07e6, 0x07ec, 0x07fe, 0x35db, 0xa911, 0x5133, 0x4932, 0x4132, 0x4111, 0x4111, 0x3910, 0x30f0, 0x30ef, 0x30ef, 0x28ce, 0x28ce, 0x20ce, 0x20ce, 0x20ce, 0x20cd, 0x20ad, 0x20ad, 0x20ad, 0x20ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, + 0x18ac, 0x18ad, 0x18ae, 0x00f6, 0x0119, 0x00f8, 0x18cf, 0x20ad, 0x18ad, 0x20ad, 0x18ac, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ac, 0x80f0, 0xa111, 0xa111, 0xc2b0, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xe50e, 0x8191, 0x9a12, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xecf1, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xc3ef, 0x8991, 0xaa93, 0xd395, 0xd395, 0xd395, 0xd375, 0xd395, 0xd395, 0xd395, 0xf58f, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xc3ef, 0x8191, 0xaa93, 0xd395, 0xd396, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xf58f, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xe50e, 0x89d1, 0xa253, 0xcb75, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd376, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xecf1, 0x8191, 0x8191, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xecf1, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xf60e, 0x9a70, 0x91f2, 0xcb75, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd396, 0xd395, 0xc314, 0x8191, 0xaa93, 0xd395, 0xd396, 0xd395, 0xd395, 0xd375, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xecf2, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4e, 0xfe4d, 0xfe4e, 0xfe4d, 0xfe4e, 0xa2d0, 0x8191, 0xc314, 0xd395, 0xd396, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xfe4e, 0xfe4f, 0xfe6f, 0xfe70, 0xfe50, 0xfe50, 0xfe71, 0xfe51, 0xba52, 0xa111, 0xa111, 0x78d5, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x005f, 0x007f, 0x007f, 0x009f, 0x00bf, 0x00bf, 0x043f, 0x07b3, 0x07c5, 0x07ee, 0x07ff, 0x5478, 0x6ad6, 0x4953, 0x4932, 0x4912, 0x4111, 0x3911, 0x3910, 0x30f0, 0x30ef, 0x28cf, 0x28ce, 0x28ce, 0x28ce, 0x20ce, 0x20cd, 0x20cd, 0x20ad, 0x20ad, 0x20ad, 0x20ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, + 0x18ad, 0x18ad, 0x00f6, 0x0118, 0x00f8, 0x18cf, 0x18ac, 0x20ad, 0x20ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ac, 0x60ef, 0xa111, 0xa111, 0xa112, 0xfe2d, 0xfe8d, 0xfe8d, 0xfe8d, 0xfe8d, 0xfe8d, 0xe54e, 0x8191, 0x9a12, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd375, 0xd395, 0xed11, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe8d, 0xc40f, 0x8191, 0xaa93, 0xd395, 0xd396, 0xd395, 0xd395, 0xd395, 0xd395, 0xd375, 0xf5cf, 0xfe6d, 0xfe8d, 0xfe8d, 0xfe8d, 0xfe8d, 0xfe8d, 0xfe8d, 0xfe8d, 0xfe8d, 0xfe6d, 0xc40f, 0x8191, 0xaa93, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xf5ce, 0xfe6d, 0xfe6d, 0xfe8d, 0xfe6c, 0xfe8d, 0xf62d, 0xc40f, 0x9a12, 0xb2d4, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xecf1, 0x8191, 0x8191, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xed11, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe8d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6c, 0xfe8d, 0xfe6d, 0xfe2d, 0xbbcf, 0x89b1, 0xbaf4, 0xd395, 0xd395, 0xd395, 0xd375, 0xd395, 0xd395, 0xd396, 0xc314, 0x8191, 0xaa93, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xed12, 0xfe8e, 0xfe8e, 0xfe8e, 0xfe8e, 0xfe8e, 0xfe8e, 0xfe8e, 0xfe8e, 0xa2d0, 0x8191, 0xc314, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xfe8f, 0xfe8f, 0xfe8f, 0xfe90, 0xfe90, 0xfe90, 0xfe91, 0xe471, 0xa111, 0xa112, 0xa111, 0x60d5, 0x001f, 0x283c, 0x7097, 0x405a, 0x001f, 0x001f, 0x001f, 0x003f, 0x007f, 0x009f, 0x00bf, 0x00bf, 0x00df, 0x045f, 0x07d2, 0x07e4, 0x07ef, 0x07ff, 0x2e3c, 0x2d1a, 0x5133, 0x4932, 0x4132, 0x3911, 0x3911, 0x38f0, 0x30f0, 0x30ef, 0x28cf, 0x28ce, 0x28ce, 0x20ce, 0x20ce, 0x20cd, 0x20cd, 0x20ad, 0x20ad, 0x20ad, 0x20ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, + 0x18ad, 0x00f6, 0x0118, 0x00f7, 0x18cf, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x20ad, 0x18ac, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x28cd, 0xa111, 0xa111, 0xa111, 0xcbcf, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xf5ed, 0x89d1, 0x91d2, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd396, 0xd395, 0xed11, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xc42f, 0x81b1, 0xaa93, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xf5ef, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfecc, 0xfead, 0xc42f, 0x8191, 0xaa93, 0xd395, 0xd395, 0xd396, 0xd395, 0xd395, 0xd395, 0xd395, 0xf5ef, 0xfead, 0xfeac, 0xfead, 0xfead, 0xfeac, 0xfead, 0xfead, 0xf64d, 0xd4ce, 0xbbd0, 0xc3b2, 0xc314, 0xd395, 0xd375, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xed12, 0x8191, 0x8191, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd375, 0xd395, 0xd395, 0xd395, 0xed31, 0xfeac, 0xfeac, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xee0d, 0xcc6f, 0xbb51, 0xbad4, 0xcb55, 0xd395, 0xd395, 0xd395, 0xd395, 0xc334, 0x8191, 0xb294, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd375, 0xd395, 0xed11, 0xfeae, 0xfece, 0xfead, 0xfeae, 0xfead, 0xfece, 0xfeae, 0xfeae, 0xa2f0, 0x8191, 0xc314, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xdc34, 0xfeaf, 0xfed0, 0xfeaf, 0xfed0, 0xfeb0, 0xfed1, 0xe491, 0xa911, 0xa111, 0x9931, 0xa111, 0x58d6, 0x88b5, 0xb8d1, 0xb8d1, 0x5059, 0x001f, 0x001f, 0x001f, 0x001f, 0x007f, 0x009f, 0x00bf, 0x00ff, 0x00df, 0x047f, 0x07d2, 0x07e3, 0x07f1, 0x07ff, 0x07ff, 0x2cba, 0x4933, 0x4132, 0x4131, 0x4111, 0x38f0, 0x38f0, 0x30f0, 0x30ef, 0x28ef, 0x28ce, 0x28ce, 0x20ce, 0x20cd, 0x20cd, 0x20ad, 0x20ad, 0x20ad, 0x20ad, 0x20ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, + 0x00f6, 0x0118, 0x0118, 0x18cf, 0x20ad, 0x18ac, 0x18ac, 0x18ad, 0x18ad, 0x18ac, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ac, 0x20ad, 0x18ad, 0x8110, 0x9911, 0xa111, 0xa171, 0xf5ed, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfeac, 0xfe6d, 0xf5cf, 0xf5ef, 0xf5cf, 0xf5cf, 0xf5ef, 0xf5cf, 0xfe4d, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfe4e, 0xf5ef, 0xf5ef, 0xf5cf, 0xf5ee, 0xf5ef, 0xf5ef, 0xf5ef, 0xfe8d, 0xfeac, 0xfeac, 0xfeac, 0xfeac, 0xfead, 0xfe8d, 0xfead, 0xfead, 0xfead, 0xfeac, 0xfeac, 0xfead, 0xf64d, 0xf5ef, 0xf5cf, 0xf5ef, 0xf5cf, 0xf5ef, 0xf5ef, 0xf5ef, 0xfe6e, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfeac, 0xfeac, 0xfead, 0xfead, 0xfead, 0xfead, 0xfeac, 0xfead, 0xfead, 0xf60e, 0xf5ef, 0xf5cf, 0xf5ef, 0xf5ef, 0xf5cf, 0xf64e, 0xfeac, 0xfead, 0xf5ef, 0xf5ef, 0xf5ef, 0xf5ef, 0xf5ef, 0xf5ef, 0xf5ef, 0xf5ef, 0xf5ef, 0xf5ef, 0xf5ef, 0xf5ef, 0xf5ef, 0xf5ef, 0xf5ef, 0xf5ef, 0xf5cf, 0xf5ef, 0xf5ef, 0xf5ef, 0xf5cf, 0xfe4d, 0xfeac, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfeac, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfeac, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfe6d, 0xf5ef, 0xf5ef, 0xf5cf, 0xf5cf, 0xfead, 0xf62e, 0xf5ef, 0xf5d0, 0xf5ef, 0xf5cf, 0xf5f0, 0xf5f0, 0xf5ef, 0xf5f0, 0xf5f0, 0xf5f0, 0xf5f0, 0xf5f0, 0xf5f0, 0xf5f0, 0xf5f0, 0xf5f0, 0xf5f0, 0xf5f0, 0xf5f0, 0xf5ef, 0xf5f0, 0xfe4f, 0xfece, 0xfeae, 0xfeae, 0xfeae, 0xfeae, 0xfeae, 0xfeae, 0xfeae, 0xfeae, 0xfeaf, 0xf610, 0xf5d0, 0xf5f0, 0xf5f0, 0xf5f0, 0xf5f0, 0xf610, 0xfeaf, 0xfeaf, 0xfeaf, 0xfed0, 0xfeb0, 0xfeb1, 0xe471, 0xb8d1, 0xa111, 0x9931, 0x9931, 0x9912, 0x6933, 0xb0f1, 0xb0d1, 0xb0d1, 0x283c, 0x001f, 0x001f, 0x001f, 0x003f, 0x007f, 0x00bf, 0x00df, 0x00ff, 0x011f, 0x047f, 0x07d1, 0x07e3, 0x07f3, 0x07ff, 0x07ff, 0x3b77, 0x4932, 0x4932, 0x4131, 0x4111, 0x38f0, 0x38f0, 0x30ef, 0x30ef, 0x28ef, 0x28ce, 0x28ce, 0x20ce, 0x20cd, 0x20cd, 0x20ad, 0x20ad, 0x20ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ac, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, + 0x0118, 0x0117, 0x18cf, 0x18ad, 0x18ac, 0x18ac, 0x18ad, 0x18ac, 0x20ad, 0x18ac, 0x20ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18cd, 0x18ac, 0x20ac, 0x38ce, 0x9931, 0x9931, 0x9931, 0xaa31, 0xfe2d, 0xfe8c, 0xfe8d, 0xfe8c, 0xfe8c, 0xfe8c, 0xfead, 0xfe8c, 0xfeac, 0xfeac, 0xfe8c, 0xfe8c, 0xfeac, 0xfead, 0xfe8d, 0xfe8c, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfe8c, 0xfe8c, 0xfeac, 0xfeac, 0xfead, 0xfe8c, 0xfead, 0xfe8c, 0xfe8d, 0xfe8d, 0xfe8c, 0xfead, 0xfe8c, 0xfe8c, 0xfead, 0xfead, 0xfeac, 0xfeac, 0xfe8c, 0xfe8c, 0xfeac, 0xfe8c, 0xfeac, 0xfead, 0xfead, 0xfe8d, 0xfe8c, 0xfead, 0xfe8d, 0xfe8c, 0xfe8d, 0xfe8c, 0xfe8d, 0xfeac, 0xfe8c, 0xfeac, 0xfe8d, 0xfead, 0xfead, 0xfe8c, 0xfeac, 0xfe8c, 0xfe8c, 0xfe8d, 0xfe8c, 0xfeac, 0xfe8d, 0xfe8c, 0xfead, 0xfead, 0xfe8c, 0xfe8c, 0xfe8c, 0xfead, 0xfe8c, 0xfeac, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfe8c, 0xfeac, 0xfe8d, 0xfeac, 0xfead, 0xfead, 0xfe8c, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfeac, 0xfe8c, 0xfead, 0xfe8c, 0xfe8d, 0xfe8d, 0xfe8d, 0xfe8d, 0xfead, 0xfead, 0xfead, 0xfe8d, 0xfead, 0xfead, 0xfead, 0xfead, 0xfe8d, 0xfe8e, 0xfead, 0xfeae, 0xfeae, 0xfead, 0xfeae, 0xfeae, 0xfeae, 0xfeae, 0xfeae, 0xfeae, 0xfeae, 0xfeae, 0xfeae, 0xfeae, 0xfeae, 0xfeae, 0xfe8e, 0xfe8e, 0xfeae, 0xfeae, 0xfeae, 0xfe8e, 0xfeae, 0xfeae, 0xfeae, 0xfe8e, 0xfe8e, 0xfeae, 0xfeaf, 0xfeae, 0xfeae, 0xfeaf, 0xfe8e, 0xfeaf, 0xfeaf, 0xfeaf, 0xfeaf, 0xfeaf, 0xfe8f, 0xfeb0, 0xfeaf, 0xfeb0, 0xfe90, 0xe471, 0xb8d2, 0xa111, 0x9911, 0x9931, 0x9931, 0x7132, 0x7133, 0xb0f1, 0xb0d1, 0xb0d2, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x007f, 0x00df, 0x00df, 0x011f, 0x011f, 0x049f, 0x07f0, 0x07e2, 0x07f4, 0x07ff, 0x07ff, 0x3af6, 0x4932, 0x4932, 0x4111, 0x3911, 0x3910, 0x38f0, 0x30ef, 0x30ef, 0x28ee, 0x28ce, 0x28ce, 0x20ce, 0x20cd, 0x20cd, 0x20ad, 0x20ad, 0x20ad, 0x18ac, 0x20ac, 0x18ad, 0x18ad, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, + 0x0117, 0x18cf, 0x20ac, 0x20ac, 0x20ad, 0x18ac, 0x18ac, 0x20ac, 0x20ac, 0x18ac, 0x20ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x20ad, 0x20ac, 0x60ef, 0x9912, 0x9931, 0x9931, 0xb270, 0xf62d, 0xfe8c, 0xfe8c, 0xfe8d, 0xfe8d, 0xfe8d, 0xfe8c, 0xfe8d, 0xfe8c, 0xfe8c, 0xfe8c, 0xfe8c, 0xfe8d, 0xfe8d, 0xfe8d, 0xfe8c, 0xfe8c, 0xfe8c, 0xfe8c, 0xfe8c, 0xfe8c, 0xfe8c, 0xfe8c, 0xfe8c, 0xfe8d, 0xfe8c, 0xfe8c, 0xfe8d, 0xfe8d, 0xfe8d, 0xfe8c, 0xfe8d, 0xfe8c, 0xfe8d, 0xfe8d, 0xfe8d, 0xfe8d, 0xfe8c, 0xfe8d, 0xfe8d, 0xfe8d, 0xfe8d, 0xfe8d, 0xfe8d, 0xfe8d, 0xfe8d, 0xfe8d, 0xfe8c, 0xfe8d, 0xfe8c, 0xfe8c, 0xfe8c, 0xfe8c, 0xfe8d, 0xfe8c, 0xfe8c, 0xfe8c, 0xfe8d, 0xfe8d, 0xfe8c, 0xfe8c, 0xfe8c, 0xfe8d, 0xfe8d, 0xfe8c, 0xfe8c, 0xfe8d, 0xfe8c, 0xfe8c, 0xfe8c, 0xfe8c, 0xfe8d, 0xfe8d, 0xfe8c, 0xfe8d, 0xfe8c, 0xfe8c, 0xfe8c, 0xfe8d, 0xfe8d, 0xfe8d, 0xfe8d, 0xfe8d, 0xfe8d, 0xfe8d, 0xfe8d, 0xfe8d, 0xfe8d, 0xfe8d, 0xfe8d, 0xfe8d, 0xfe8d, 0xfe8d, 0xfe8d, 0xfe8d, 0xfe8d, 0xfe8d, 0xfe8c, 0xfe8c, 0xfe6d, 0xfe8d, 0xfe8c, 0xfe8d, 0xfe8c, 0xfe8c, 0xfe8c, 0xfe8c, 0xfe8c, 0xfe8c, 0xfe8c, 0xfe8c, 0xfe8c, 0xfe8c, 0xfe8c, 0xfe8d, 0xfe8d, 0xfe8d, 0xfe8d, 0xfe8d, 0xfe8c, 0xfe8d, 0xfe8d, 0xfe8d, 0xfe8d, 0xfe8d, 0xfe8d, 0xfe8d, 0xfe8d, 0xfe8d, 0xfe8d, 0xfe8e, 0xfe8d, 0xfe8d, 0xfe8d, 0xfe8d, 0xfe8d, 0xfe8e, 0xfe8e, 0xfe8e, 0xfe8e, 0xfe8e, 0xfe8e, 0xfe8e, 0xfe8e, 0xfe8e, 0xfe8e, 0xfe8e, 0xfe8e, 0xfe8e, 0xfe8e, 0xfe8e, 0xfe8e, 0xfe8e, 0xfe8f, 0xfe8e, 0xfe8e, 0xfe8f, 0xfe8f, 0xfe8e, 0xfe8f, 0xfe8f, 0xfe8e, 0xfe8f, 0xfe8e, 0xfe8f, 0xfe8f, 0xfe8f, 0xfe8f, 0xfe8f, 0xfe8f, 0xfe8f, 0xfe8f, 0xfe8f, 0xfe8f, 0xfe8f, 0xfe90, 0xfe90, 0xfeb0, 0xfeb0, 0xe471, 0xb8d1, 0xa111, 0x9931, 0x9931, 0x9912, 0x8911, 0x5174, 0x6953, 0xb0f1, 0xb0d1, 0x90b4, 0x001f, 0x001f, 0x001f, 0x001f, 0x003f, 0x009f, 0x00df, 0x00ff, 0x011f, 0x015f, 0x049f, 0x07f1, 0x07e2, 0x07f6, 0x07ff, 0x0f9f, 0x4a35, 0x4933, 0x4932, 0x4131, 0x3910, 0x3910, 0x38f0, 0x30ef, 0x30ef, 0x28ce, 0x28ce, 0x28ce, 0x20cd, 0x20cd, 0x20cd, 0x20ad, 0x20ad, 0x20ad, 0x18ac, 0x20ac, 0x20ac, 0x18ac, 0x18ac, 0x20ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, + 0x18ce, 0x18ac, 0x20cc, 0x20ac, 0x18ac, 0x18ac, 0x20ac, 0x20ac, 0x20ac, 0x20ad, 0x18cc, 0x20ad, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x18ac, 0x20ac, 0x28ad, 0x8110, 0x9931, 0x9931, 0x9911, 0xaa31, 0xf5cd, 0xfe8c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6d, 0xfe6c, 0xfe6c, 0xfe6d, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe8c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6d, 0xfe6c, 0xfe6c, 0xfe6d, 0xfe6c, 0xfe6d, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6d, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6d, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe8c, 0xfe6d, 0xfe6d, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6d, 0xfe6c, 0xfe6d, 0xfe6c, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6c, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe8e, 0xfe8d, 0xfe8d, 0xfe6e, 0xfe8d, 0xfe6e, 0xfe6e, 0xfe6e, 0xfe6e, 0xfe6e, 0xfe6e, 0xfe6e, 0xfe6e, 0xfe6e, 0xfe6e, 0xfe6e, 0xfe6f, 0xfe6f, 0xfe6f, 0xfe6f, 0xfe8f, 0xfe8f, 0xfe6f, 0xfe6f, 0xfe6f, 0xfe8f, 0xfe6f, 0xfe6f, 0xfe8f, 0xfe8f, 0xfe6f, 0xfe6f, 0xfe8f, 0xfe6f, 0xfe6f, 0xfe8f, 0xfe8f, 0xfe6f, 0xfe8f, 0xfe8f, 0xfe6f, 0xfe90, 0xfe8f, 0xfe8f, 0xfe90, 0xfe90, 0xe471, 0xb0d1, 0xa111, 0x9931, 0x9931, 0x9931, 0x9912, 0x5953, 0x5153, 0x7133, 0xb0d1, 0xb0d1, 0x7896, 0x001f, 0x001f, 0x001f, 0x003f, 0x005f, 0x00bf, 0x011f, 0x011f, 0x013f, 0x017f, 0x04bf, 0x07f2, 0x07e2, 0x07f5, 0x07ff, 0x7336, 0x5153, 0x4933, 0x4932, 0x4131, 0x4110, 0x3910, 0x30ef, 0x30ef, 0x30ef, 0x28ce, 0x28ce, 0x28cd, 0x20cd, 0x20cd, 0x20cd, 0x20ad, 0x20ad, 0x20ad, 0x20ac, 0x20ac, 0x20ad, 0x18ac, 0x18ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, + 0x20ac, 0x20ac, 0x18ac, 0x18ac, 0x20ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x18ac, 0x18ac, 0x20ac, 0x20ac, 0x18ac, 0x28ad, 0x9111, 0x9931, 0x9931, 0x9931, 0xa171, 0xcbcf, 0xf60d, 0xfe4d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe4d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6c, 0xfe6d, 0xfe4d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe4d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe4d, 0xfe6d, 0xfe6c, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe4d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe4d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6c, 0xfe6d, 0xfe4d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe4d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe4d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe4d, 0xfe6e, 0xfe6e, 0xfe4e, 0xfe6d, 0xfe6e, 0xfe6e, 0xfe6e, 0xfe6e, 0xfe6e, 0xfe6f, 0xfe6e, 0xfe6e, 0xfe6f, 0xfe6f, 0xfe6f, 0xfe6f, 0xfe6f, 0xfe6f, 0xfe6f, 0xfe6f, 0xfe6f, 0xfe6f, 0xfe6f, 0xfe6f, 0xfe6f, 0xfe6f, 0xfe6f, 0xfe6f, 0xfe6f, 0xfe6f, 0xfe70, 0xfe70, 0xfe6f, 0xfe70, 0xfe70, 0xfe70, 0xfe70, 0xfe70, 0xfe70, 0xfe70, 0xfe70, 0xfe70, 0xfe90, 0xfe70, 0xfe70, 0xfe70, 0xfe70, 0xfe71, 0xfe71, 0xfe71, 0xe471, 0xa8f1, 0xa111, 0x9931, 0x9932, 0x9931, 0x9931, 0x6933, 0x5153, 0x5953, 0x7153, 0xb0d1, 0xb0d1, 0x5878, 0x001f, 0x001f, 0x003f, 0x007f, 0x009f, 0x00ff, 0x013f, 0x013f, 0x017f, 0x019f, 0x033f, 0x07f3, 0x07e2, 0x07f3, 0x07ff, 0xa8f1, 0x6932, 0x4932, 0x4932, 0x4931, 0x4111, 0x3910, 0x3110, 0x30ef, 0x30ef, 0x28ce, 0x28ce, 0x28cd, 0x20cd, 0x20cd, 0x20cd, 0x20ad, 0x20ad, 0x20ad, 0x20ac, 0x20ac, 0x20ad, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, + 0x18cc, 0x18ac, 0x18ac, 0x20ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x20ac, 0x18ac, 0x18ac, 0x18ac, 0x20ac, 0x28cd, 0x8111, 0x9931, 0x9912, 0x9931, 0x9931, 0x9911, 0xbab0, 0xdc6f, 0xe50f, 0xe50e, 0xfe4e, 0xfe6e, 0xfe4e, 0xfe6d, 0xfe4e, 0xfe4e, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4e, 0xfe4e, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4e, 0xfe4e, 0xfe4e, 0xfe4e, 0xfe6e, 0xfe6e, 0xfe4e, 0xfe4e, 0xfe4e, 0xfe6e, 0xfe6e, 0xfe4e, 0xfe6f, 0xfe6e, 0xfe6f, 0xfe6f, 0xfe6f, 0xfe6f, 0xfe6f, 0xfe6f, 0xfe4f, 0xfe6f, 0xfe70, 0xfe50, 0xfe70, 0xfe70, 0xfe70, 0xfe70, 0xfe70, 0xfe70, 0xfe70, 0xfe70, 0xfe70, 0xfe70, 0xfe70, 0xfe70, 0xfe70, 0xfe70, 0xfe70, 0xfe70, 0xfe71, 0xfe71, 0xfe71, 0xfe71, 0xfe71, 0xfe71, 0xfe71, 0xfe71, 0xfe71, 0xfe71, 0xfe71, 0xfe71, 0xfe71, 0xf612, 0xe531, 0xe512, 0xd472, 0xb271, 0x9931, 0x9931, 0x9931, 0x9911, 0x9931, 0x9911, 0x6153, 0x5153, 0x5954, 0x5954, 0x7154, 0xb0f1, 0xb0f1, 0x285c, 0x003f, 0x005f, 0x007f, 0x00bf, 0x00ff, 0x013f, 0x015f, 0x017f, 0x019f, 0x01bf, 0x02ff, 0x07f4, 0x07e3, 0x07f1, 0x2e5c, 0xa911, 0x6932, 0x5132, 0x4931, 0x4132, 0x4110, 0x3910, 0x3910, 0x30ef, 0x30ee, 0x28ce, 0x28ce, 0x28cd, 0x20cd, 0x20cd, 0x20cd, 0x20ac, 0x20ad, 0x20ad, 0x20ac, 0x20ac, 0x20ac, 0x18ac, 0x18ac, 0x20ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, + 0x20ac, 0x18ac, 0x20ac, 0x18ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x18ac, 0x20ac, 0x20ac, 0x20ac, 0x18ac, 0x20ac, 0x20ac, 0x28cc, 0x610f, 0x9911, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9932, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9912, 0x9931, 0x9931, 0x9931, 0x9931, 0x9911, 0x9931, 0x9911, 0x9931, 0x9931, 0x9911, 0x9911, 0x9931, 0x9931, 0x9911, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9911, 0x9911, 0x9931, 0x9932, 0x9931, 0x9931, 0x9911, 0x9931, 0x9931, 0x9912, 0x9931, 0x9931, 0x9931, 0x9931, 0x8912, 0x5153, 0x5953, 0x5153, 0x5974, 0x5974, 0x7953, 0xb0f1, 0xb0d1, 0x087f, 0x009f, 0x00bf, 0x00df, 0x011f, 0x015f, 0x019f, 0x019f, 0x019f, 0x01df, 0x01df, 0x01ff, 0x07f7, 0x07e3, 0x07ef, 0x5498, 0xa8f1, 0x7132, 0x4952, 0x4931, 0x4131, 0x4110, 0x3910, 0x30ef, 0x30ef, 0x30ee, 0x28ce, 0x28ce, 0x28cd, 0x20cd, 0x20cd, 0x20cd, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x18ac, 0x18ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, + 0x20ac, 0x18ac, 0x20ac, 0x18ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x18ac, 0x18ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x18ac, 0x40ce, 0x7910, 0x9931, 0x9931, 0x9932, 0x9931, 0x9931, 0x9931, 0x9911, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9911, 0x9931, 0x9931, 0xa111, 0x9911, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9912, 0x7132, 0x5153, 0x5153, 0x5153, 0x5974, 0x5974, 0x6174, 0x9113, 0xb0f1, 0x98f3, 0x00df, 0x00ff, 0x011f, 0x013f, 0x017f, 0x01bf, 0x01bf, 0x01df, 0x01df, 0x01ff, 0x01ff, 0x021f, 0x06d9, 0x07e5, 0x07ec, 0x7355, 0xa8f1, 0x7932, 0x4932, 0x4931, 0x4131, 0x4110, 0x3910, 0x390f, 0x30ef, 0x30ee, 0x28ce, 0x28ce, 0x28cd, 0x28cd, 0x20cd, 0x20cd, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, + 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x18ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x18ab, 0x30cc, 0x58cf, 0x7910, 0x9931, 0x9931, 0x9912, 0x9931, 0x9931, 0x9911, 0x9931, 0x9911, 0x9932, 0x9931, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9911, 0x9911, 0x9931, 0x9931, 0x9911, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9911, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0xa111, 0x9911, 0x8932, 0x6932, 0x5152, 0x5153, 0x5953, 0x5953, 0x5974, 0x6174, 0x6175, 0x7954, 0xa8f1, 0xb0f1, 0x80f5, 0x013f, 0x017f, 0x019f, 0x01bf, 0x01df, 0x01ff, 0x01df, 0x01ff, 0x021f, 0x023f, 0x023f, 0x023f, 0x057d, 0x07e8, 0x07e9, 0x82d5, 0xa0f1, 0x8132, 0x5132, 0x4931, 0x4131, 0x4110, 0x38f0, 0x38ef, 0x30ef, 0x30ee, 0x28ce, 0x28cd, 0x28cd, 0x28cd, 0x20cd, 0x20cd, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, + 0x18ac, 0x20ac, 0x20ac, 0x18ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x18cc, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ab, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20cc, 0x20ad, 0x20cd, 0x20cd, 0x28cd, 0x28cd, 0x28cd, 0x28cd, 0x28cd, 0x28ce, 0x28ee, 0x28ee, 0x30ee, 0x30ef, 0x30ef, 0x30ee, 0x38ef, 0x5110, 0x6110, 0x5910, 0x6930, 0x7931, 0x8131, 0x8130, 0x9931, 0xa932, 0xa131, 0xb131, 0xc912, 0xc911, 0xc8f2, 0xc8f2, 0xc8f2, 0xc8d1, 0xc0d1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0d1, 0xb8b1, 0xc0d1, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8d1, 0xb0d1, 0xb8d1, 0xb8d1, 0xb0d1, 0xb0d1, 0xb0f1, 0xb0d1, 0xb0d1, 0xb0d1, 0xb0f1, 0xb0f1, 0xb0f1, 0x5158, 0x01bf, 0x01df, 0x01ff, 0x021f, 0x023f, 0x023f, 0x021f, 0x023f, 0x025f, 0x025f, 0x025f, 0x025f, 0x041f, 0x07ed, 0x07e4, 0x7ab4, 0xa911, 0x9112, 0x5132, 0x4931, 0x4111, 0x4110, 0x3910, 0x38ef, 0x30ef, 0x30ee, 0x30ee, 0x28cd, 0x28cd, 0x28cd, 0x20cd, 0x20cc, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, + 0x20cc, 0x20ac, 0x20ab, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x18ac, 0x20ac, 0x20ac, 0x20ac, 0x18ac, 0x20ac, 0x20ab, 0x18ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ab, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20cc, 0x20cd, 0x20cd, 0x28cd, 0x28cd, 0x28cd, 0x28cd, 0x28ad, 0x28ce, 0x30ce, 0x30ce, 0x30ee, 0x8151, 0xb192, 0xc9b3, 0xc9b2, 0xc992, 0xc992, 0xc992, 0xc972, 0xc972, 0xc972, 0xc952, 0xc952, 0xc932, 0xc932, 0xc932, 0xc912, 0xc912, 0xc111, 0xc8f1, 0xc8f1, 0xc8d1, 0xc0d1, 0xc8b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0d1, 0xb8b1, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8d1, 0xb0d2, 0xb8d1, 0xb8d1, 0xb8d1, 0xb0d1, 0xb0f1, 0xb0f1, 0xb0f1, 0xb0f1, 0xb0f1, 0xb0f1, 0xb0f1, 0xa8f1, 0x39bb, 0x021f, 0x023f, 0x025f, 0x027f, 0x027f, 0x025f, 0x025f, 0x027f, 0x027f, 0x027f, 0x027f, 0x027f, 0x029f, 0x07f3, 0x07e2, 0x9972, 0xa911, 0xa112, 0x4952, 0x4932, 0x4131, 0x4110, 0x3910, 0x38ef, 0x30ef, 0x30ee, 0x30ee, 0x28cd, 0x28cd, 0x28cd, 0x20cd, 0x20cc, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, + 0x20ab, 0x20ab, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x18ac, 0x20ac, 0x18cc, 0x18ac, 0x20ab, 0x20ac, 0x20ac, 0x20ab, 0x20ac, 0x20ac, 0x18ac, 0x20ab, 0x20ab, 0x20ac, 0x20ac, 0x20ab, 0x20ab, 0x20ac, 0x20ac, 0x20ab, 0x20ab, 0x20ac, 0x20ab, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20cc, 0x20cc, 0x20cc, 0x28cd, 0x28cd, 0x28cd, 0x28cd, 0x30cd, 0x28ee, 0x30ee, 0x490e, 0xa9b2, 0xc9d3, 0xc9d3, 0xc9b3, 0xc9b3, 0xc992, 0xc992, 0xc972, 0xc972, 0xc972, 0xc952, 0xc952, 0xc952, 0xc932, 0xc932, 0xc912, 0xc912, 0xc912, 0xc0f2, 0xc8d1, 0xc0d1, 0xc0d1, 0xc8b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8d1, 0xb0d1, 0xb0d1, 0xb8d2, 0xb8d1, 0xb0f1, 0xb0d1, 0xb0f2, 0xb0f1, 0xb0f1, 0xb0f1, 0xa8f1, 0xa8f1, 0x123e, 0x029f, 0x02bf, 0x02bf, 0x02bf, 0x029f, 0x029f, 0x029f, 0x02bf, 0x02bf, 0x02bf, 0x029f, 0x029f, 0x02df, 0x06b9, 0x07e3, 0xa111, 0xa911, 0xa111, 0x5932, 0x4931, 0x4911, 0x4110, 0x4110, 0x390f, 0x38ef, 0x30ee, 0x30ee, 0x28cd, 0x28cd, 0x28cd, 0x20cd, 0x20cc, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ab, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, + 0x20ab, 0x20ac, 0x20ab, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ab, 0x20ac, 0x20ab, 0x20ac, 0x20ac, 0x20ab, 0x20ab, 0x18ac, 0x20ac, 0x20ab, 0x20ac, 0x20ac, 0x20ac, 0x18ab, 0x20ab, 0x20ab, 0x20ac, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20cc, 0x20cd, 0x28cd, 0x28cd, 0x28cd, 0x28cd, 0x28cd, 0x28cd, 0x30ed, 0x692f, 0xc9d3, 0xc9d3, 0xc9b3, 0xc9b3, 0xc9b3, 0xc992, 0xc992, 0xc972, 0xc972, 0xc972, 0xc952, 0xc952, 0xc932, 0xc932, 0xc132, 0xc912, 0xc912, 0xc8f2, 0xc8f1, 0xc8d1, 0xc0d1, 0xc0d1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8d1, 0xb0d1, 0xb8d1, 0xb0f1, 0xb0d1, 0xb0d1, 0xb0f1, 0xb0d1, 0xb0f1, 0xb0f1, 0xb0f1, 0xb0f1, 0xb0f1, 0xb0f1, 0xa8f1, 0x9933, 0x02df, 0x02df, 0x02ff, 0x02ff, 0x02df, 0x02bf, 0x02df, 0x02df, 0x02df, 0x02df, 0x02df, 0x02bf, 0x02bf, 0x02ff, 0x051e, 0x07e8, 0xa912, 0xa111, 0xa111, 0x6932, 0x4931, 0x4931, 0x4130, 0x410f, 0x390f, 0x38ee, 0x30ee, 0x30ee, 0x28cd, 0x28cd, 0x28cd, 0x20cd, 0x20cc, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ab, 0x20ab, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, + 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ac, 0x20ac, 0x20ac, 0x28ac, 0x20cc, 0x28cc, 0x28cc, 0x28cc, 0x28cd, 0x28cd, 0x28ed, 0x28cd, 0x30cd, 0x9191, 0xc9d3, 0xc9d3, 0xc9b3, 0xc9b3, 0xc992, 0xc9b3, 0xc992, 0xc992, 0xc972, 0xc972, 0xc952, 0xc952, 0xc932, 0xc932, 0xc912, 0xc932, 0xc912, 0xc112, 0xc8f2, 0xc8f2, 0xc8d1, 0xc8d1, 0x9095, 0x9095, 0x9075, 0x8875, 0x6078, 0x6059, 0x6059, 0x6058, 0x6058, 0x6078, 0x6078, 0x6059, 0x6078, 0x6078, 0x5878, 0x6078, 0x88b4, 0x88b5, 0x88b5, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8d1, 0xb0f1, 0xb0f1, 0xb0d1, 0xb0d1, 0xb0f1, 0xb0f1, 0xb0f1, 0xb0f1, 0xb0f1, 0xb0f1, 0xa8f1, 0xa8f1, 0xa8f1, 0x69d6, 0x033f, 0x033f, 0x033f, 0x031f, 0x02ff, 0x02ff, 0x02ff, 0x02ff, 0x02ff, 0x02ff, 0x02ff, 0x02df, 0x02ff, 0x035f, 0x03ff, 0x07f0, 0x8a4f, 0xa111, 0xa111, 0x8132, 0x4931, 0x4931, 0x4110, 0x410f, 0x390f, 0x30ee, 0x30ee, 0x30cd, 0x30cd, 0x28cd, 0x28cd, 0x28cc, 0x28cc, 0x20cc, 0x20ac, 0x20ac, 0x20ac, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, + 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20cc, 0x20ac, 0x28cc, 0x28cc, 0x28cc, 0x20cc, 0x28cc, 0x28cc, 0x28cd, 0x40ee, 0xa9b2, 0xc9d3, 0xc9d3, 0xc9b3, 0xc9b2, 0xc9b3, 0xc992, 0xc992, 0xc972, 0xc972, 0xc952, 0xc952, 0xc952, 0xc932, 0xc932, 0x90d5, 0x88d6, 0x6098, 0x5879, 0x303c, 0x305c, 0x081e, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x003f, 0x005f, 0x007f, 0x009f, 0x00bf, 0x00df, 0x291c, 0x411a, 0x6118, 0x8915, 0xb0d1, 0xb0f1, 0xb0f1, 0xb0f1, 0xb0f1, 0xb0f1, 0xb0f1, 0xb0f1, 0xb0f2, 0xa8f1, 0xb0f1, 0x429a, 0x039f, 0x039f, 0x035f, 0x035f, 0x033f, 0x033f, 0x033f, 0x033f, 0x033f, 0x033f, 0x031f, 0x031f, 0x031f, 0x037f, 0x03ff, 0x06d7, 0x7acf, 0xa111, 0xa111, 0x9912, 0x5131, 0x4931, 0x4110, 0x410f, 0x40ef, 0x38ee, 0x30ee, 0x30ed, 0x30cd, 0x28cd, 0x28cd, 0x28cc, 0x28cc, 0x20cc, 0x20cc, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, + 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20cb, 0x20cb, 0x20cb, 0x28cc, 0x28cc, 0x28cc, 0x28cd, 0x28cc, 0x490e, 0xc1d3, 0xc9d3, 0xc9d3, 0xc9b3, 0xc9b3, 0xc9b3, 0xc9b3, 0xc992, 0xc992, 0xc972, 0xc952, 0x98f5, 0x60b8, 0x407b, 0x183e, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x003f, 0x003f, 0x007f, 0x007f, 0x009f, 0x00bf, 0x00ff, 0x011f, 0x013f, 0x017f, 0x019f, 0x01df, 0x021f, 0x21fd, 0x49d9, 0x7996, 0xa112, 0xa8f1, 0xb0f1, 0xa8f1, 0xa8f1, 0xa8f1, 0xa8f1, 0x139e, 0x03df, 0x03bf, 0x039f, 0x039f, 0x037f, 0x037f, 0x037f, 0x037f, 0x035f, 0x035f, 0x033f, 0x033f, 0x035f, 0x03bf, 0x041f, 0x05de, 0x7ad1, 0xa111, 0xa111, 0xa111, 0x5931, 0x4931, 0x4130, 0x4130, 0x40ef, 0x38ee, 0x30ee, 0x30ed, 0x30ed, 0x28cc, 0x28cc, 0x28cc, 0x28cc, 0x20cb, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, + 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20cb, 0x28cc, 0x28cc, 0x28cc, 0x28cc, 0x28cc, 0x692f, 0xc9f3, 0xc9d3, 0xc9d3, 0xc9b2, 0xc9b3, 0xc992, 0xc9b2, 0xc972, 0xb973, 0x80f7, 0x387b, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x003f, 0x003f, 0x005f, 0x007f, 0x009f, 0x00bf, 0x00df, 0x00ff, 0x013f, 0x015f, 0x019f, 0x01bf, 0x01ff, 0x023f, 0x025f, 0x029f, 0x02df, 0x02ff, 0x033f, 0x2adc, 0x5a58, 0x8994, 0xa8f1, 0xa8f1, 0x81d4, 0x041f, 0x041f, 0x03ff, 0x03df, 0x03bf, 0x03bf, 0x03bf, 0x03bf, 0x03bf, 0x039f, 0x037f, 0x035f, 0x037f, 0x039f, 0x03ff, 0x047f, 0x04ff, 0x6375, 0xa112, 0xa111, 0xa111, 0x7111, 0x4931, 0x4110, 0x4110, 0x390f, 0x38ee, 0x30ee, 0x30ed, 0x30ed, 0x28cc, 0x28cc, 0x28cc, 0x28cc, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, + 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20cb, 0x28ac, 0x28cc, 0x28cc, 0x28cc, 0x692e, 0xc9f3, 0xc9d2, 0xc9d3, 0xc9b3, 0xc9b3, 0xc992, 0xc993, 0x80f7, 0x389b, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x083c, 0x085b, 0x105b, 0x2078, 0x2098, 0x2097, 0x2097, 0x2097, 0x2097, 0x2097, 0x2098, 0x187a, 0x105b, 0x085d, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x003f, 0x005f, 0x007f, 0x009f, 0x00df, 0x00ff, 0x011f, 0x015f, 0x017f, 0x01bf, 0x01ff, 0x021f, 0x025f, 0x029f, 0x02df, 0x02ff, 0x033f, 0x037f, 0x03bf, 0x03df, 0x041f, 0x043f, 0x0c3f, 0x2bbc, 0x0c3f, 0x045f, 0x043f, 0x041f, 0x041f, 0x03ff, 0x03ff, 0x03ff, 0x03df, 0x03df, 0x03bf, 0x039f, 0x037f, 0x039f, 0x03df, 0x043f, 0x04bf, 0x053f, 0x5398, 0xa111, 0xa111, 0xa111, 0x9111, 0x4931, 0x4910, 0x4110, 0x410f, 0x38ee, 0x38ee, 0x30ed, 0x30cd, 0x30cd, 0x28cc, 0x28cc, 0x28cc, 0x28cb, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, + 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20cb, 0x28cb, 0x28cb, 0x28cc, 0x28cb, 0x614e, 0xd1f3, 0xc9f3, 0xc9d3, 0xc9b2, 0xc9b3, 0xb173, 0x60d9, 0x081e, 0x003d, 0x083b, 0x1878, 0x1877, 0x28d2, 0x28d2, 0x40ee, 0x38ee, 0x390f, 0x390f, 0x390f, 0x410e, 0x410f, 0x410f, 0x410f, 0x410f, 0x410f, 0x410f, 0x410f, 0x4110, 0x410f, 0x4910, 0x4130, 0x38f3, 0x28b6, 0x189a, 0x003e, 0x001f, 0x001f, 0x003f, 0x005f, 0x005f, 0x007f, 0x00bf, 0x00df, 0x00ff, 0x013f, 0x015f, 0x019f, 0x01df, 0x021f, 0x023f, 0x027f, 0x029f, 0x02ff, 0x033f, 0x035f, 0x039f, 0x03df, 0x041f, 0x045f, 0x047f, 0x04bf, 0x04df, 0x04df, 0x04bf, 0x04bf, 0x047f, 0x047f, 0x043f, 0x043f, 0x043f, 0x041f, 0x041f, 0x03ff, 0x03df, 0x03bf, 0x03bf, 0x03df, 0x043f, 0x047f, 0x04df, 0x057f, 0x3c1a, 0xa111, 0xa111, 0xa111, 0xa111, 0x5931, 0x4910, 0x4110, 0x410f, 0x390e, 0x38ee, 0x30ed, 0x30ed, 0x30cc, 0x28cc, 0x28cc, 0x28cb, 0x28cb, 0x20cb, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, + 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20cb, 0x28cb, 0x20cb, 0x28ab, 0x692e, 0xc9d3, 0xc9d3, 0xc9d3, 0xc9b3, 0xb1b2, 0x58f3, 0x1895, 0x28b2, 0x30ed, 0x38ed, 0x30ed, 0x38ed, 0x38ed, 0x38ed, 0x38ee, 0x390e, 0x390e, 0x38ee, 0x38ee, 0x390e, 0x390e, 0x390e, 0x390e, 0x410f, 0x390e, 0x410f, 0x410f, 0x410f, 0x410f, 0x410f, 0x410f, 0x4110, 0x410f, 0x492f, 0x4930, 0x4910, 0x38f3, 0x20b8, 0x087d, 0x007f, 0x009f, 0x00df, 0x00ff, 0x011f, 0x015f, 0x017f, 0x019f, 0x01df, 0x021f, 0x025f, 0x02bf, 0x02df, 0x031f, 0x035f, 0x039f, 0x03df, 0x041f, 0x045f, 0x049f, 0x04df, 0x04ff, 0x051f, 0x051f, 0x053f, 0x04ff, 0x04df, 0x04bf, 0x049f, 0x047f, 0x047f, 0x045f, 0x045f, 0x043f, 0x041f, 0x03ff, 0x03df, 0x03ff, 0x043f, 0x045f, 0x04bf, 0x053f, 0x05bf, 0x2cdc, 0xa112, 0xa111, 0xa111, 0xa111, 0x7131, 0x4930, 0x4130, 0x410f, 0x390e, 0x38ee, 0x30ed, 0x30ed, 0x30cc, 0x28cc, 0x28cc, 0x28cb, 0x28cb, 0x28ab, 0x20cb, 0x20ab, 0x20ab, 0x20ab, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, + 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20aa, 0x20aa, 0x20aa, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x28ab, 0x28cb, 0x28cb, 0x612e, 0xc9f3, 0xc9d3, 0xc9d3, 0xb992, 0x692e, 0x28cc, 0x28ec, 0x30cd, 0x30ed, 0x30ed, 0x30ed, 0x30ed, 0x30ed, 0x38ed, 0x30ed, 0x38ed, 0x38ed, 0x390e, 0x38ee, 0x38ee, 0x38ee, 0x390f, 0x38ee, 0x40ee, 0x40ee, 0x390f, 0x390e, 0x410e, 0x40ef, 0x410f, 0x410f, 0x410f, 0x410f, 0x410f, 0x410f, 0x410f, 0x412f, 0x4910, 0x4910, 0x4930, 0x4113, 0x28f8, 0x08fe, 0x013f, 0x015f, 0x019f, 0x01df, 0x021f, 0x023f, 0x029f, 0x02bf, 0x031f, 0x035f, 0x039f, 0x03df, 0x041f, 0x045f, 0x049f, 0x04df, 0x051f, 0x053f, 0x057f, 0x059f, 0x057f, 0x055f, 0x053f, 0x04ff, 0x04ff, 0x04df, 0x04bf, 0x049f, 0x049f, 0x047f, 0x045f, 0x043f, 0x041f, 0x041f, 0x043f, 0x045f, 0x04bf, 0x04ff, 0x055f, 0x05df, 0x0e1f, 0xa111, 0xa111, 0xa111, 0xa112, 0x8931, 0x4930, 0x4130, 0x410f, 0x410e, 0x38ee, 0x30ed, 0x30ed, 0x30cc, 0x28cc, 0x28cc, 0x28cc, 0x28cb, 0x28cb, 0x20cb, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, + 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20ab, 0x20ab, 0x20aa, 0x20ab, 0x20ab, 0x20cb, 0x20ab, 0x20ab, 0x20cb, 0x28ab, 0x20cb, 0x612e, 0xd1f3, 0xc9f3, 0xc1b2, 0x612e, 0x28cc, 0x28cc, 0x28cc, 0x28cc, 0x30cc, 0x30cc, 0x30cd, 0x30ed, 0x30ed, 0x30ed, 0x30ed, 0x30ed, 0x30ed, 0x38ed, 0x38ee, 0x38ee, 0x38ee, 0x38ee, 0x38ee, 0x38ee, 0x38ee, 0x38ee, 0x38ee, 0x38ee, 0x390e, 0x38ee, 0x390e, 0x390e, 0x390e, 0x410f, 0x410f, 0x410f, 0x410f, 0x410f, 0x410f, 0x4130, 0x4930, 0x4930, 0x4931, 0x4930, 0x4133, 0x197a, 0x01de, 0x021f, 0x027f, 0x02bf, 0x02ff, 0x033f, 0x037f, 0x03bf, 0x03ff, 0x045f, 0x049f, 0x04df, 0x051f, 0x057f, 0x059f, 0x05df, 0x05df, 0x05df, 0x05bf, 0x059f, 0x055f, 0x055f, 0x053f, 0x051f, 0x04ff, 0x04df, 0x04df, 0x04bf, 0x047f, 0x045f, 0x043f, 0x043f, 0x047f, 0x04bf, 0x04ff, 0x053f, 0x05bf, 0x061f, 0x069f, 0x9972, 0xa111, 0xa111, 0xa111, 0xa111, 0x5130, 0x4910, 0x410f, 0x390f, 0x390e, 0x38ed, 0x30ed, 0x30cd, 0x28cc, 0x28cc, 0x28cc, 0x28cb, 0x28cb, 0x20cb, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20aa, 0x20aa, 0x20ab, 0x20ab, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, + 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20ab, 0x20ab, 0x20aa, 0x20ab, 0x20ab, 0x20aa, 0x20ab, 0x20ab, 0x20cb, 0x28ab, 0x510d, 0xd1f3, 0xc9d2, 0x816f, 0x30cc, 0x28ac, 0x28cc, 0x28cc, 0x28cc, 0x28cc, 0x28cc, 0x30cc, 0x30cc, 0x30cd, 0x30ed, 0x30ed, 0x30cd, 0x30ed, 0x30ed, 0x30ed, 0x30ed, 0x30ed, 0x38ed, 0x38ed, 0x38ed, 0x38ed, 0x38ee, 0x38ee, 0x38ee, 0x38ee, 0x38ee, 0x38ee, 0x390e, 0x390e, 0x390e, 0x390e, 0x390e, 0x410f, 0x410f, 0x410f, 0x410f, 0x4110, 0x410f, 0x4910, 0x4930, 0x4930, 0x4930, 0x4931, 0x4932, 0x31b6, 0x0a9d, 0x02ff, 0x035f, 0x039f, 0x03ff, 0x043f, 0x047f, 0x04bf, 0x051f, 0x055f, 0x05bf, 0x05df, 0x061f, 0x063f, 0x063f, 0x05ff, 0x05df, 0x05bf, 0x059f, 0x059f, 0x057f, 0x055f, 0x053f, 0x051f, 0x04ff, 0x04df, 0x04bf, 0x047f, 0x047f, 0x047f, 0x049f, 0x04df, 0x053f, 0x057f, 0x05ff, 0x065f, 0x06df, 0x7a95, 0xa111, 0xa111, 0xa111, 0xa111, 0x6911, 0x4930, 0x410f, 0x410f, 0x390e, 0x38ee, 0x30ed, 0x30cd, 0x28cc, 0x28cc, 0x28cc, 0x28cb, 0x28cb, 0x20cb, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20aa, 0x20aa, 0x20ab, 0x20ab, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, + 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20aa, 0x20cb, 0x20cb, 0x20ab, 0x20ab, 0x40ec, 0xc1d2, 0xc1b3, 0x490d, 0x28cb, 0x28cc, 0x28cc, 0x28cc, 0x28cc, 0x28cc, 0x28cc, 0x28cc, 0x28cc, 0x30cc, 0x30cc, 0x30ec, 0x30cd, 0x30cd, 0x30ed, 0x30ed, 0x30ed, 0x30ed, 0x30ed, 0x30ed, 0x30ed, 0x30ed, 0x30ed, 0x30ed, 0x30ed, 0x38ed, 0x38ed, 0x38ed, 0x38ed, 0x38ee, 0x38ee, 0x38ee, 0x38ee, 0x38ee, 0x38ee, 0x390e, 0x390e, 0x390f, 0x410f, 0x410f, 0x410f, 0x410f, 0x4910, 0x4910, 0x4930, 0x4931, 0x4951, 0x4951, 0x39d5, 0x131c, 0x041f, 0x047f, 0x04bf, 0x051f, 0x055f, 0x059f, 0x05df, 0x061f, 0x067f, 0x069f, 0x069f, 0x067f, 0x065f, 0x061f, 0x05ff, 0x05ff, 0x05bf, 0x059f, 0x057f, 0x055f, 0x053f, 0x051f, 0x04ff, 0x04df, 0x04bf, 0x04bf, 0x04bf, 0x04df, 0x051f, 0x057f, 0x05bf, 0x063f, 0x069f, 0x071f, 0x5438, 0xa111, 0xa111, 0xa111, 0xa111, 0x8111, 0x4930, 0x410f, 0x410f, 0x390e, 0x38ee, 0x30ed, 0x30ed, 0x30cc, 0x28cc, 0x28cc, 0x28cb, 0x28cb, 0x20cb, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20aa, 0x20aa, 0x20ab, 0x20ab, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, + 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20ab, 0x20ab, 0x20aa, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x30cb, 0xa992, 0xa9b1, 0x30cb, 0x28cb, 0x28cb, 0x28cb, 0x28cb, 0x28cc, 0x28cc, 0x28cc, 0x28cc, 0x28cc, 0x28cc, 0x28cc, 0x30cc, 0x30cc, 0x30cc, 0x30cc, 0x30ec, 0x30ec, 0x30cd, 0x30ed, 0x30ed, 0x30cd, 0x30ed, 0x30ed, 0x30ed, 0x30ed, 0x30ed, 0x30ed, 0x30ed, 0x30ed, 0x30ed, 0x38ed, 0x38ed, 0x38ed, 0x38ed, 0x38ee, 0x38ee, 0x38ee, 0x390e, 0x390e, 0x390e, 0x410f, 0x410f, 0x410f, 0x410f, 0x410f, 0x412f, 0x4930, 0x4930, 0x5130, 0x4931, 0x5131, 0x3a15, 0x237b, 0x053f, 0x059f, 0x5358, 0x349b, 0x0e1f, 0x06bf, 0x06ff, 0x06ff, 0x06df, 0x06bf, 0x069f, 0x065f, 0x063f, 0x061f, 0x05ff, 0x05df, 0x05bf, 0x059f, 0x057f, 0x055f, 0x051f, 0x04ff, 0x04df, 0x04df, 0x04ff, 0x051f, 0x055f, 0x059f, 0x05ff, 0x065f, 0x06df, 0x073f, 0x359b, 0xa111, 0xa111, 0xa111, 0xa111, 0xa111, 0x4930, 0x4910, 0x412f, 0x390e, 0x38ee, 0x30ed, 0x30ed, 0x30cc, 0x28cc, 0x28cc, 0x28cb, 0x28cb, 0x20cb, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20aa, 0x20ab, 0x20ab, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, + 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20ab, 0x20ab, 0x20aa, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x692f, 0x816f, 0x20ab, 0x20cb, 0x20ab, 0x28cb, 0x28cb, 0x28cb, 0x28ab, 0x28cb, 0x28cc, 0x28cc, 0x28cc, 0x28cc, 0x28cc, 0x28cc, 0x28cc, 0x28cc, 0x28cc, 0x28cc, 0x30cc, 0x30cc, 0x30cc, 0x30cd, 0x30cd, 0x30cd, 0x30cd, 0x30cd, 0x30cd, 0x30cd, 0x30cd, 0x30ed, 0x30ed, 0x30ed, 0x30ed, 0x30ed, 0x30ed, 0x30ed, 0x30ed, 0x38ed, 0x38ee, 0x38ee, 0x38ee, 0x38ee, 0x390e, 0x390e, 0x410f, 0x410f, 0x410f, 0x410f, 0x412f, 0x4930, 0x4930, 0x4930, 0x4931, 0x4931, 0x5131, 0x49d4, 0x243a, 0xa132, 0xa8f1, 0xa8f1, 0xa8f1, 0x8295, 0x8295, 0x5418, 0x351b, 0x06df, 0x069f, 0x067f, 0x065f, 0x063f, 0x05ff, 0x05ff, 0x05bf, 0x059f, 0x057f, 0x055f, 0x053f, 0x051f, 0x051f, 0x053f, 0x057f, 0x059f, 0x05df, 0x063f, 0x069f, 0x06ff, 0x077f, 0x0f5f, 0xa111, 0xa111, 0xa111, 0xa111, 0x9931, 0x6911, 0x4930, 0x410f, 0x390e, 0x38ee, 0x30ed, 0x30ed, 0x30cd, 0x30cc, 0x28cc, 0x28cb, 0x28cb, 0x28cb, 0x20cb, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20aa, 0x20ab, 0x20ab, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, + 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20aa, 0x20aa, 0x20cb, 0x20ab, 0x20ab, 0x20aa, 0x20ab, 0x20ab, 0x20cb, 0x20ab, 0x28cb, 0x28ab, 0x28cb, 0x28cb, 0x28cb, 0x28cb, 0x28cc, 0x28cc, 0x28cc, 0x28cc, 0x28cc, 0x28cc, 0x28cc, 0x28cc, 0x28cc, 0x28cc, 0x28cc, 0x28cc, 0x30cc, 0x30cc, 0x28cc, 0x28cc, 0x28cc, 0x28cc, 0x30cc, 0x30cc, 0x30cc, 0x30cc, 0x30cd, 0x30cd, 0x30ed, 0x30ed, 0x30ed, 0x30ed, 0x30ed, 0x30ed, 0x30ee, 0x38ed, 0x38ed, 0x390e, 0x390e, 0x390e, 0x410e, 0x410f, 0x410f, 0x410f, 0x410f, 0x4130, 0x4930, 0x4930, 0x4930, 0x5131, 0x5131, 0x6992, 0xa8f1, 0xa911, 0xa8f1, 0xa911, 0xa8f1, 0xa8f1, 0xa8f1, 0xa172, 0x4c39, 0x2d5c, 0x069f, 0x065f, 0x063f, 0x061f, 0x05ff, 0x05df, 0x059f, 0x057f, 0x055f, 0x055f, 0x055f, 0x057f, 0x059f, 0x05df, 0x061f, 0x067f, 0x06df, 0x073f, 0x079f, 0x07df, 0x8254, 0xa111, 0xa131, 0xa111, 0x9911, 0x8131, 0x4910, 0x410f, 0x410e, 0x38ee, 0x38ed, 0x30ed, 0x30cd, 0x30cc, 0x28cc, 0x28cb, 0x28cb, 0x28cb, 0x20cb, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, + 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20aa, 0x20ab, 0x20aa, 0x20ab, 0x20ab, 0x20cb, 0x20ab, 0x20ab, 0x20ab, 0x28ab, 0x28ab, 0x20cb, 0x20cb, 0x28cb, 0x28cb, 0x28cb, 0x28cb, 0x28cb, 0x28cb, 0x28cb, 0x28cc, 0x28cc, 0x28cc, 0x28cc, 0x28cc, 0x28cc, 0x28cc, 0x28cc, 0x28cc, 0x28cc, 0x28cc, 0x28cc, 0x28cc, 0x28cc, 0x28cc, 0x28cc, 0x28cc, 0x28cc, 0x28cc, 0x28cc, 0x30cc, 0x30ec, 0x30ec, 0x30ed, 0x30ed, 0x30ed, 0x30ed, 0x30ed, 0x38ee, 0x38ee, 0x38ee, 0x38ee, 0x38ee, 0x390e, 0x390f, 0x410f, 0x410f, 0x410f, 0x412f, 0x4930, 0x4910, 0x4930, 0x5131, 0x5131, 0x6931, 0xa111, 0xa8f1, 0xa8f1, 0xa8f1, 0xa8f1, 0xa911, 0xa111, 0xa911, 0xa0f1, 0x9972, 0x4419, 0x067f, 0x065f, 0x061f, 0x05ff, 0x05df, 0x05bf, 0x059f, 0x059f, 0x05bf, 0x05bf, 0x05df, 0x061f, 0x065f, 0x06bf, 0x06ff, 0x075f, 0x07bf, 0x07ff, 0x5498, 0xa131, 0xa111, 0xa111, 0xa111, 0x9911, 0x4930, 0x410f, 0x410f, 0x38ee, 0x38ee, 0x30ed, 0x30cd, 0x30cc, 0x28cc, 0x28cc, 0x28cb, 0x28cb, 0x20cb, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, + 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20ab, 0x20ab, 0x20aa, 0x20ab, 0x20ab, 0x20ab, 0x20aa, 0x20aa, 0x20ca, 0x20aa, 0x20ab, 0x20ab, 0x20ab, 0x20cb, 0x20ab, 0x20ab, 0x28cb, 0x20cb, 0x28cb, 0x28cb, 0x28cb, 0x28cb, 0x28cb, 0x28cb, 0x28cb, 0x28cb, 0x28cb, 0x28cc, 0x28cc, 0x28cc, 0x28cc, 0x28cc, 0x28cc, 0x28cc, 0x28cc, 0x28cc, 0x28cc, 0x28cc, 0x28cc, 0x28cc, 0x28cc, 0x28cc, 0x28cc, 0x28cc, 0x28cc, 0x28cc, 0x30cc, 0x30cc, 0x30cc, 0x30ec, 0x30ec, 0x30cd, 0x30ed, 0x30ed, 0x30ed, 0x38ed, 0x38ee, 0x390e, 0x390e, 0x390e, 0x390f, 0x410f, 0x410f, 0x490f, 0x412f, 0x4910, 0x4930, 0x4931, 0x4931, 0x5931, 0x9111, 0xa8f1, 0xa8f1, 0xa911, 0xa8f1, 0xa8f1, 0xa911, 0xa911, 0xa911, 0xa111, 0x7a55, 0x34bb, 0x065f, 0x061f, 0x05ff, 0x05df, 0x05df, 0x05df, 0x05df, 0x05ff, 0x063f, 0x065f, 0x069f, 0x06df, 0x071f, 0x077f, 0x07bf, 0x07ff, 0x2e3c, 0x9911, 0xa111, 0xa111, 0x9931, 0x9931, 0x6910, 0x410f, 0x410f, 0x38ee, 0x38ee, 0x30ed, 0x30ed, 0x30cc, 0x28cc, 0x28cc, 0x28cb, 0x28cb, 0x20cb, 0x20cb, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, + 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20ab, 0x20ab, 0x20ab, 0x20aa, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20cb, 0x20cb, 0x20cb, 0x20cb, 0x28cb, 0x28cb, 0x28cb, 0x28cb, 0x28cb, 0x28cb, 0x28cb, 0x28cb, 0x28cb, 0x28cb, 0x28cb, 0x28cb, 0x28cb, 0x28cb, 0x28cb, 0x28cb, 0x28cb, 0x28cb, 0x28cb, 0x28cb, 0x28cb, 0x28cb, 0x28cb, 0x28cc, 0x28cc, 0x28cc, 0x28cc, 0x28cc, 0x28cc, 0x28cc, 0x28cc, 0x30cc, 0x30cc, 0x30ec, 0x30cd, 0x30ed, 0x30ed, 0x30ed, 0x30ed, 0x38ee, 0x38ee, 0x38ee, 0x38ee, 0x390e, 0x410f, 0x410f, 0x410f, 0x410f, 0x4910, 0x4930, 0x4931, 0x5131, 0x7931, 0xa911, 0xa8f1, 0xa911, 0xa911, 0xa911, 0xa911, 0xa8f1, 0xa111, 0xa111, 0xa111, 0xa111, 0x91b3, 0x62f6, 0x347b, 0x061f, 0x061f, 0x063f, 0x063f, 0x065f, 0x067f, 0x06bf, 0x071f, 0x073f, 0x079f, 0x07df, 0x07ff, 0x07ff, 0xa111, 0x9912, 0x9911, 0x9931, 0x9932, 0x8131, 0x4130, 0x410f, 0x410e, 0x38ee, 0x30ee, 0x30ed, 0x30cd, 0x28cc, 0x28cc, 0x28cb, 0x28cb, 0x28cb, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20aa, 0x20ab, 0x20ab, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, + 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20cb, 0x20cb, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20cb, 0x20ab, 0x28ab, 0x28ab, 0x28ab, 0x28ab, 0x28ab, 0x28ab, 0x28cb, 0x28cb, 0x28cb, 0x28cb, 0x28cb, 0x28cb, 0x28cb, 0x28cb, 0x28cb, 0x28cb, 0x28cb, 0x28cb, 0x28cb, 0x28cb, 0x28cb, 0x28cb, 0x28cb, 0x28cb, 0x28cb, 0x28cb, 0x28cb, 0x28cc, 0x28cc, 0x28cc, 0x28cc, 0x28cc, 0x28cc, 0x28cc, 0x30cc, 0x30cc, 0x30cd, 0x30ed, 0x30ed, 0x30ed, 0x30ed, 0x38ee, 0x38ee, 0x38ee, 0x38ee, 0x390f, 0x410f, 0x410f, 0x410f, 0x4910, 0x4930, 0x4930, 0x4930, 0x7111, 0xa911, 0xa911, 0xa911, 0xa911, 0xa111, 0xa911, 0xa911, 0xa111, 0xa111, 0xa111, 0xa111, 0xa111, 0xa111, 0x91b3, 0x349b, 0x065f, 0x067f, 0x069f, 0x06bf, 0x06ff, 0x073f, 0x077f, 0x07bf, 0x07ff, 0x07ff, 0x07ff, 0x7ad4, 0xa111, 0x9911, 0xa111, 0x9931, 0x9931, 0x4930, 0x410f, 0x390e, 0x38ee, 0x30ee, 0x30ed, 0x30ed, 0x28cc, 0x28cc, 0x28cb, 0x28cb, 0x28cb, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20aa, 0x20ab, 0x20ab, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, + 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20cb, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x28ab, 0x28ab, 0x28ab, 0x28ab, 0x20cb, 0x20cb, 0x20cb, 0x20cb, 0x20cb, 0x20cb, 0x20cb, 0x20cb, 0x20cb, 0x20cb, 0x20cb, 0x20cb, 0x28cb, 0x28cb, 0x20cb, 0x20cb, 0x28cb, 0x28cb, 0x28cb, 0x28cb, 0x28cb, 0x28cb, 0x28cb, 0x28cb, 0x28cc, 0x28cc, 0x28cc, 0x28cc, 0x28cc, 0x30cc, 0x30cc, 0x30ec, 0x30cd, 0x30ed, 0x30ed, 0x30ed, 0x38ed, 0x38ee, 0x38ee, 0x390e, 0x390e, 0x410f, 0x410f, 0x4110, 0x4930, 0x4930, 0x5130, 0x8111, 0xa111, 0xa911, 0xa111, 0xa111, 0xa911, 0xa112, 0xa111, 0xa911, 0xa111, 0xa112, 0xa0f1, 0xa111, 0xa111, 0xa111, 0x7a75, 0x15fd, 0x06bf, 0x06ff, 0x071f, 0x075f, 0x079f, 0x07bf, 0x07ff, 0x07ff, 0x07ff, 0x5499, 0x9931, 0x9911, 0x9931, 0x9931, 0x9931, 0x6930, 0x410f, 0x390e, 0x390e, 0x38ee, 0x30ed, 0x30cd, 0x30cc, 0x28cc, 0x28cc, 0x28cb, 0x28cb, 0x20cb, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, + 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20cb, 0x20cb, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20cb, 0x20cb, 0x28ab, 0x20ab, 0x28ab, 0x28ab, 0x20cb, 0x20cb, 0x20cb, 0x20cb, 0x20cb, 0x28cb, 0x28cb, 0x28cb, 0x28cb, 0x28cb, 0x28cb, 0x28cb, 0x28cc, 0x28cc, 0x28cc, 0x28cc, 0x28cc, 0x28cc, 0x30cc, 0x30ec, 0x30cd, 0x30ed, 0x30ed, 0x30ed, 0x38ed, 0x38ee, 0x38ee, 0x40ee, 0x410f, 0x410f, 0x410f, 0x4130, 0x4930, 0x4930, 0x5931, 0x90f1, 0xa911, 0xa912, 0xa111, 0xa111, 0xa111, 0xa911, 0xa911, 0xa111, 0xa112, 0xa111, 0xa111, 0xa111, 0xa111, 0x9972, 0x353b, 0x071f, 0x073f, 0x077f, 0x07bf, 0x07df, 0x07ff, 0x07ff, 0x07ff, 0x2e3c, 0xa111, 0x9931, 0x9931, 0x9931, 0x9931, 0x8931, 0x410f, 0x410f, 0x38ee, 0x38ee, 0x30ed, 0x30ed, 0x30cc, 0x28cc, 0x28cc, 0x28cb, 0x28cb, 0x20cb, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, + 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20aa, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20cb, 0x20cb, 0x28ab, 0x20cb, 0x20cb, 0x20cb, 0x28cb, 0x28cb, 0x28cb, 0x28cb, 0x28cb, 0x28cc, 0x28cc, 0x28cc, 0x28cc, 0x28cc, 0x30cc, 0x30cd, 0x30cd, 0x30ed, 0x30ed, 0x30ed, 0x38ee, 0x390e, 0x390e, 0x390e, 0x410f, 0x410f, 0x412f, 0x4130, 0x4930, 0x4930, 0x8111, 0xa911, 0xa111, 0xa111, 0xa111, 0xa111, 0xa111, 0xa111, 0xa111, 0xa111, 0xa111, 0xa112, 0xa112, 0xa111, 0xa111, 0x4499, 0x077f, 0x079f, 0x07bf, 0x07df, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x9931, 0xa111, 0x9931, 0x9931, 0x9931, 0x9931, 0x490f, 0x410f, 0x38ee, 0x30ee, 0x38ed, 0x30ed, 0x30cc, 0x28cc, 0x28cc, 0x28cb, 0x28cb, 0x20cb, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, + 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20ab, 0x20ab, 0x20ab, 0x20aa, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20cb, 0x20cb, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20cb, 0x20cb, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20cb, 0x20cb, 0x28ab, 0x28ab, 0x20cb, 0x28cb, 0x28cb, 0x28cb, 0x28cb, 0x28cc, 0x28cc, 0x28cc, 0x28cc, 0x30cc, 0x30cc, 0x30cd, 0x30cd, 0x30ed, 0x30ed, 0x38ed, 0x310e, 0x38ee, 0x390e, 0x390e, 0x410f, 0x410f, 0x412f, 0x4930, 0x4930, 0x7131, 0xa111, 0xa111, 0xa112, 0xa111, 0xa0f1, 0xa111, 0xa111, 0xa112, 0xa111, 0xa111, 0xa111, 0xa111, 0xa111, 0xa131, 0x6397, 0x07bf, 0x07df, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x7ad4, 0x9931, 0x9931, 0x9931, 0x9931, 0x9912, 0x7130, 0x390f, 0x38ee, 0x38ee, 0x38ed, 0x30ed, 0x30cc, 0x28cc, 0x28cc, 0x28cb, 0x28cb, 0x28ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, + 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20cb, 0x20cb, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20cb, 0x20cb, 0x20cb, 0x20cb, 0x28cb, 0x28cb, 0x28cb, 0x28cb, 0x28cc, 0x28cc, 0x28cc, 0x28cc, 0x28cc, 0x30cc, 0x30ec, 0x30ec, 0x30ed, 0x38ee, 0x30ed, 0x38ed, 0x390e, 0x38ee, 0x410e, 0x410f, 0x410f, 0x4930, 0x4930, 0x6931, 0xa111, 0xa111, 0xa112, 0xa111, 0xa111, 0xa111, 0xa111, 0xa111, 0xa111, 0xa111, 0xa111, 0xa112, 0x9931, 0x9911, 0x6397, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07fe, 0x5c14, 0x9931, 0x9911, 0x9931, 0x9931, 0x9931, 0x9131, 0x410f, 0x390e, 0x390e, 0x30ed, 0x30ed, 0x30cc, 0x28cc, 0x28cc, 0x28cb, 0x28cb, 0x28ab, 0x20cb, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, + 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20cb, 0x20cb, 0x20cb, 0x28cb, 0x28cb, 0x28cb, 0x28cb, 0x28cb, 0x28cb, 0x28cc, 0x28cc, 0x28cc, 0x28cc, 0x30cc, 0x30cd, 0x30ed, 0x30ed, 0x38ed, 0x30ee, 0x38ee, 0x390e, 0x390e, 0x410f, 0x410f, 0x4130, 0x4930, 0x5931, 0x7911, 0x9131, 0xa111, 0xa111, 0xa111, 0xa111, 0xa111, 0xa111, 0xa111, 0xa111, 0xa111, 0x9931, 0xa111, 0x9931, 0x5498, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07fe, 0x35f5, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x510f, 0x390e, 0x390e, 0x38ed, 0x30ed, 0x30cc, 0x30cc, 0x28cc, 0x28cb, 0x28cb, 0x28ab, 0x20cb, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, + 0x20aa, 0x20ab, 0x20aa, 0x20aa, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20ab, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20ab, 0x20aa, 0x20aa, 0x20ab, 0x20ab, 0x20aa, 0x20ab, 0x20aa, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20aa, 0x20ab, 0x20aa, 0x20aa, 0x20ab, 0x20aa, 0x20aa, 0x20aa, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20aa, 0x20ab, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20ab, 0x20aa, 0x20aa, 0x20aa, 0x20ab, 0x20ab, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20ab, 0x20ab, 0x20ab, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20aa, 0x20aa, 0x20ab, 0x20aa, 0x20aa, 0x20ab, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20ab, 0x20aa, 0x20ab, 0x20aa, 0x20aa, 0x20aa, 0x20ab, 0x20aa, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20ab, 0x20ab, 0x20ab, 0x20aa, 0x20ab, 0x20ab, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20cb, 0x28ab, 0x28cb, 0x20cb, 0x28ab, 0x28cb, 0x28cc, 0x28cc, 0x28cc, 0x28cc, 0x28cc, 0x28cc, 0x30cc, 0x30cd, 0x30ed, 0x30ed, 0x38ed, 0x38ee, 0x38ee, 0x390e, 0x410f, 0x410f, 0x412f, 0x4130, 0x4930, 0x4930, 0x6131, 0x8931, 0xa111, 0xa111, 0xa111, 0xa131, 0xa111, 0xa111, 0x9931, 0xa111, 0xa111, 0xa111, 0xa111, 0x3d7a, 0x07ff, 0x07ff, 0x07ff, 0x07fe, 0x07f6, 0x9911, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x7911, 0x390e, 0x38ee, 0x30ee, 0x30ed, 0x30cd, 0x30cc, 0x28cc, 0x28cc, 0x28cb, 0x28ab, 0x28ab, 0x20ab, 0x20ab, 0x20ca, 0x20ab, 0x20aa, 0x20ab, 0x20ab, 0x20aa, 0x20ab, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20ab, 0x20ab, 0x20ab, 0x20ab, + 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20ab, 0x20ab, 0x20ab, 0x20aa, 0x20cb, 0x20aa, 0x20aa, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20ab, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20ab, 0x20ab, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20ab, 0x20aa, 0x20aa, 0x20ab, 0x20aa, 0x20ab, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20ab, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20ab, 0x20aa, 0x20ab, 0x20aa, 0x20aa, 0x20ab, 0x20aa, 0x20aa, 0x20ca, 0x20aa, 0x20aa, 0x20aa, 0x20ab, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20ab, 0x20aa, 0x18aa, 0x20ab, 0x20aa, 0x20ab, 0x20ab, 0x20ab, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20aa, 0x20aa, 0x20aa, 0x20ab, 0x20ab, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20aa, 0x20ca, 0x20aa, 0x20aa, 0x20ab, 0x20aa, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x28cb, 0x20ab, 0x20cb, 0x20cb, 0x28cb, 0x28cb, 0x28cc, 0x28cc, 0x28cc, 0x28cc, 0x28cc, 0x30cc, 0x30ec, 0x30ed, 0x30ed, 0x30ed, 0x38ee, 0x38ee, 0x390e, 0x390e, 0x410f, 0x410f, 0x410f, 0x4930, 0x4930, 0x5131, 0x6131, 0x9911, 0xa111, 0xa111, 0xa111, 0x9931, 0xa111, 0xa111, 0xa112, 0x9931, 0x9911, 0x9192, 0x1ebd, 0x07ff, 0x07ff, 0x07fe, 0x07f6, 0x7a71, 0x9931, 0x9931, 0x9932, 0x9931, 0x9931, 0x9111, 0x410e, 0x38ee, 0x30ed, 0x30ed, 0x30ed, 0x28cc, 0x28cc, 0x28cb, 0x28cb, 0x20ab, 0x28ab, 0x20ab, 0x20ab, 0x20ab, 0x20aa, 0x20aa, 0x20ab, 0x20aa, 0x20aa, 0x20ab, 0x20aa, 0x20ab, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, + 0x20aa, 0x20ab, 0x20ab, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20aa, 0x20ab, 0x20ab, 0x20ab, 0x20aa, 0x20ab, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20aa, 0x20aa, 0x20ab, 0x20ab, 0x20aa, 0x20aa, 0x20aa, 0x20ab, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20ab, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20ca, 0x20aa, 0x20ab, 0x20aa, 0x20aa, 0x20ab, 0x20aa, 0x20aa, 0x20ab, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20ab, 0x20aa, 0x20ab, 0x20aa, 0x20ab, 0x20aa, 0x20aa, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20aa, 0x20ab, 0x20ab, 0x20aa, 0x20ca, 0x20aa, 0x20ab, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20ab, 0x20aa, 0x20ab, 0x20ab, 0x20ac, 0x20cd, 0x20cd, 0x20cd, 0x20cd, 0x20cd, 0x20cd, 0x20cd, 0x20cd, 0x20cd, 0x20cd, 0x20cd, 0x20cd, 0x20cd, 0x20cd, 0x20cd, 0x20cd, 0x20cd, 0x20cd, 0x20cd, 0x20cd, 0x20cd, 0x20cd, 0x20cd, 0x20cd, 0x20cd, 0x20cd, 0x20cd, 0x20cd, 0x20cc, 0x20cd, 0x20cd, 0x20cd, 0x20cd, 0x20cd, 0x20cd, 0x20cd, 0x20cd, 0x20cd, 0x20cd, 0x20cd, 0x20cd, 0x20cd, 0x20cd, 0x20cd, 0x20cd, 0x20cd, 0x20cd, 0x20cd, 0x20cd, 0x20cd, 0x20cd, 0x20cd, 0x20cd, 0x20cd, 0x20cd, 0x20cd, 0x20cd, 0x20cd, 0x20cd, 0x20cd, 0x20cd, 0x28cd, 0x28cd, 0x28cd, 0x28cd, 0x20cd, 0x28ce, 0x28ce, 0x28ce, 0x28ee, 0x28ce, 0x28ee, 0x30ee, 0x30ef, 0x30ef, 0x30ef, 0x390f, 0x390f, 0x3910, 0x3910, 0x4110, 0x4131, 0x4931, 0x4931, 0x4932, 0x4952, 0x5152, 0x9132, 0xa111, 0xa111, 0xa111, 0x9912, 0x9931, 0x9931, 0x9911, 0x9931, 0x9912, 0x8274, 0x07ff, 0x07ff, 0x07fd, 0x07f6, 0x5c32, 0x9911, 0x9931, 0x9932, 0x9931, 0x9931, 0x9931, 0x5910, 0x390f, 0x30ef, 0x30ef, 0x30ee, 0x30ce, 0x28cd, 0x28ee, 0x28ed, 0x28cd, 0x20cd, 0x20ac, 0x20cd, 0x20cd, 0x20ad, 0x20cd, 0x20ad, 0x20cc, 0x20cc, 0x20ad, 0x20cc, 0x20ac, 0x20cc, 0x20cc, 0x20ac, 0x20ac, 0x20cc, 0x20cc, 0x20cc, 0x20cc, 0x20cc, 0x20cc, 0x20cc, 0x20cc, + 0x18d2, 0x10f2, 0x18d2, 0x10f2, 0x10f2, 0x10f2, 0x10f2, 0x10f2, 0x10f2, 0x10f2, 0x10f2, 0x10f2, 0x18d2, 0x18d2, 0x18f2, 0x18f2, 0x18f2, 0x18f2, 0x18f2, 0x18f2, 0x18f2, 0x18f2, 0x18f2, 0x18f2, 0x18f2, 0x18f2, 0x18d2, 0x18f2, 0x18f2, 0x18f2, 0x18f2, 0x18f2, 0x18f2, 0x18f2, 0x18f2, 0x18f2, 0x18f2, 0x18f2, 0x18f2, 0x18f2, 0x18f2, 0x18f2, 0x18f2, 0x18f2, 0x18f2, 0x18f2, 0x18f2, 0x18f2, 0x18f2, 0x18f2, 0x18f2, 0x18f2, 0x18f2, 0x18f3, 0x18f3, 0x18f2, 0x20f2, 0x18f2, 0x18f2, 0x20f2, 0x18f3, 0x18f3, 0x20f3, 0x20f3, 0x20f3, 0x20f3, 0x20f3, 0x20f3, 0x20f3, 0x20f3, 0x20f3, 0x20f3, 0x20f3, 0x20f3, 0x20f3, 0x20f3, 0x20f3, 0x20f2, 0x18f3, 0x20f3, 0x20f3, 0x20f3, 0x20f3, 0x20f3, 0x20f3, 0x2113, 0x20f3, 0x20f3, 0x2113, 0x20f3, 0x20f3, 0x2113, 0x20f3, 0x20f3, 0x20f3, 0x20f3, 0x20f3, 0x20f3, 0x2113, 0x2113, 0x20f3, 0x20f3, 0x20f3, 0x20f3, 0x20f3, 0x20f3, 0x20f3, 0x20f3, 0x20f3, 0x2113, 0x20f3, 0x2113, 0x2113, 0x2113, 0x28f3, 0x28f3, 0x2113, 0x28f3, 0x28f3, 0x2913, 0x2113, 0x2113, 0x2113, 0x2113, 0x2113, 0x2113, 0x2113, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2113, 0x2913, 0x2914, 0x2113, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2914, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2113, 0x2113, 0x2113, 0x2113, 0x2113, 0x2113, 0x2113, 0x2113, 0x2913, 0x2913, 0x28f3, 0x28f3, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x28f3, 0x2913, 0x2113, 0x2913, 0x2914, 0x2913, 0x2913, 0x2914, 0x2914, 0x2914, 0x2914, 0x2914, 0x3134, 0x3134, 0x3134, 0x3134, 0x3134, 0x3934, 0x3934, 0x3935, 0x3955, 0x4155, 0x4155, 0x4176, 0x4176, 0x4976, 0x4977, 0x5176, 0x9132, 0xa111, 0xa111, 0x9931, 0x9911, 0xa111, 0x9931, 0x9931, 0x9912, 0x9931, 0x5c38, 0x07ff, 0x07fd, 0x07f6, 0x44f2, 0x9911, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x7933, 0x3955, 0x3135, 0x3134, 0x3114, 0x2133, 0x2113, 0x2113, 0x20f3, 0x20f3, 0x2113, 0x1912, 0x18f2, 0x20f3, 0x18f2, 0x18f3, 0x18f2, 0x18f3, 0x18f3, 0x18f3, 0x18f2, 0x18f2, 0x18f2, 0x18f2, 0x18f2, 0x18f2, 0x18f2, 0x18f2, 0x18f2, 0x18f2, 0x18d2, 0x18d2, 0x18d2, 0x18d2, + 0x10f2, 0x18d2, 0x18d2, 0x10d2, 0x18d2, 0x18d2, 0x18d2, 0x18d2, 0x18d2, 0x18d2, 0x18d2, 0x18d2, 0x18f2, 0x18f2, 0x18f2, 0x18f2, 0x18f2, 0x18f2, 0x18f2, 0x18f2, 0x18f2, 0x18f2, 0x18f2, 0x18f2, 0x18d2, 0x18f2, 0x18f2, 0x18d2, 0x18d2, 0x18f2, 0x18f2, 0x18f2, 0x18f2, 0x18f2, 0x18f2, 0x18f2, 0x18f2, 0x18f2, 0x18f2, 0x18f2, 0x18f2, 0x18f2, 0x18f2, 0x18f2, 0x18f2, 0x18f2, 0x18f2, 0x18f2, 0x18f2, 0x18f3, 0x18f3, 0x18f3, 0x18f3, 0x18f3, 0x18f2, 0x18f3, 0x18f3, 0x20f2, 0x18f3, 0x18f3, 0x18f3, 0x18f3, 0x18f3, 0x18f3, 0x20f3, 0x20f3, 0x20f3, 0x20f3, 0x20f3, 0x20f3, 0x20f3, 0x20f3, 0x20f3, 0x20f3, 0x20f3, 0x20f3, 0x20f3, 0x20f3, 0x20f3, 0x20f3, 0x20f3, 0x20f3, 0x20f3, 0x2112, 0x20f3, 0x20f3, 0x20f3, 0x20f3, 0x2113, 0x20f2, 0x20f3, 0x20f2, 0x20f3, 0x20f3, 0x20f3, 0x20f3, 0x20f3, 0x20f3, 0x20f3, 0x20f3, 0x20f3, 0x20f3, 0x20f3, 0x20f3, 0x20f3, 0x20f3, 0x20f3, 0x20f3, 0x2113, 0x28f3, 0x2113, 0x20f3, 0x2113, 0x28f3, 0x20f3, 0x2113, 0x2113, 0x2113, 0x2113, 0x2113, 0x2113, 0x2113, 0x28f3, 0x28f3, 0x2113, 0x2113, 0x2113, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2113, 0x2913, 0x2913, 0x2913, 0x2914, 0x2913, 0x2913, 0x28f3, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x28f3, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2113, 0x2913, 0x2913, 0x2914, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2113, 0x2113, 0x2113, 0x2113, 0x2113, 0x2113, 0x2113, 0x2113, 0x2113, 0x2113, 0x2113, 0x2113, 0x2913, 0x28f3, 0x28f3, 0x2913, 0x2113, 0x2913, 0x2913, 0x2113, 0x2113, 0x28f3, 0x2913, 0x2113, 0x2914, 0x2914, 0x2914, 0x2914, 0x2914, 0x2914, 0x2914, 0x2914, 0x3134, 0x3134, 0x3134, 0x3135, 0x3935, 0x3935, 0x3955, 0x3955, 0x4155, 0x4156, 0x4176, 0x4976, 0x4956, 0x5176, 0x9132, 0xa111, 0xa112, 0xa111, 0x9931, 0x9931, 0x9911, 0x9932, 0x9931, 0x9911, 0x2e5c, 0x07fc, 0x07f6, 0x2e53, 0x9931, 0x9931, 0x9931, 0x9911, 0x9911, 0x9931, 0x9132, 0x3134, 0x3134, 0x3134, 0x2934, 0x2914, 0x2913, 0x2113, 0x2113, 0x20f3, 0x2112, 0x20f3, 0x20d3, 0x1912, 0x18f2, 0x18f3, 0x18f2, 0x18f2, 0x18f2, 0x18d2, 0x18f2, 0x20f2, 0x18f2, 0x18f2, 0x18f2, 0x18f2, 0x18f2, 0x18f2, 0x18f2, 0x18f2, 0x18d2, 0x18d2, 0x18d2, 0x18d2, + 0x1d7c, 0x1d7c, 0x1d7c, 0x1d7c, 0x1d7c, 0x1d7c, 0x1d7c, 0x1d7c, 0x1d7c, 0x1d7c, 0x1d7c, 0x1d7c, 0x1d9c, 0x1d9c, 0x1d9c, 0x1d9c, 0x1d9c, 0x1d9c, 0x1d9c, 0x1d9c, 0x1d9d, 0x1d9d, 0x1d9d, 0x1d9d, 0x259c, 0x1dbc, 0x1d9d, 0x259d, 0x1d9c, 0x259c, 0x259c, 0x259c, 0x259c, 0x259c, 0x25bd, 0x25bd, 0x25bd, 0x25bd, 0x25bd, 0x25bd, 0x25bd, 0x25bd, 0x25bd, 0x25bd, 0x25bd, 0x25bd, 0x25bd, 0x25bd, 0x25dd, 0x25dd, 0x25bd, 0x25bd, 0x1ddd, 0x25dd, 0x25dd, 0x25dd, 0x25bd, 0x25dd, 0x25dd, 0x25dd, 0x25dd, 0x25dd, 0x25dd, 0x25dd, 0x25dd, 0x25dd, 0x25fd, 0x25fd, 0x25fd, 0x25fd, 0x25fd, 0x25fd, 0x25fd, 0x25fd, 0x25fd, 0x25fd, 0x25fd, 0x25fd, 0x2dfd, 0x25fd, 0x25fd, 0x25fd, 0x25fd, 0x2dfd, 0x2dfd, 0x2dfd, 0x2dfd, 0x2dfd, 0x25fd, 0x2dfe, 0x2dfd, 0x2dfd, 0x2e1d, 0x2e1d, 0x2e1d, 0x2e1d, 0x2e1d, 0x2e1d, 0x2e1d, 0x2e1d, 0x2e1d, 0x2e1d, 0x2e1d, 0x2e1d, 0x2e1d, 0x2e1d, 0x2e1d, 0x2e1d, 0x2e1d, 0x2e1d, 0x2e3e, 0x2e1d, 0x2e1d, 0x2e1d, 0x2e1d, 0x2e3d, 0x2e3d, 0x2e3e, 0x2e3e, 0x2e3e, 0x2e3d, 0x2e3d, 0x2e3d, 0x2e3d, 0x2e3d, 0x2e3d, 0x2e3d, 0x2e3d, 0x2e3d, 0x2e3d, 0x2e3d, 0x2e3d, 0x2e3d, 0x2e3d, 0x2e3d, 0x2e3d, 0x2e3d, 0x2e3d, 0x2e3d, 0x2e3d, 0x2e3e, 0x2e3e, 0x2e3e, 0x2e3d, 0x2e3e, 0x2e3e, 0x2e3e, 0x2e3e, 0x2e3e, 0x2e3e, 0x2e3e, 0x2e3e, 0x2e3e, 0x2e3e, 0x2e3e, 0x2e3e, 0x2e5e, 0x2e5e, 0x2e5e, 0x2e5e, 0x2e5e, 0x2e5e, 0x2e5e, 0x2e5e, 0x2e5e, 0x2e5e, 0x2e5e, 0x2e5e, 0x2e5e, 0x2e5e, 0x2e5e, 0x2e5e, 0x365e, 0x2e5e, 0x2e5e, 0x2e5e, 0x2e3e, 0x365e, 0x365e, 0x2e5d, 0x2e5e, 0x2e5e, 0x2e5e, 0x2e5e, 0x2e5e, 0x2e5e, 0x2e5e, 0x2e5e, 0x2e5e, 0x2e5e, 0x2e3e, 0x2e3e, 0x2e3e, 0x2e3e, 0x2e3e, 0x2e3e, 0x2e3e, 0x2e3e, 0x2e3e, 0x2e3e, 0x2e3e, 0x2e3e, 0x2e3e, 0x2e3e, 0x2e3d, 0x2e3d, 0x2e3d, 0x2e3e, 0x2e3d, 0x2e3e, 0x2e3d, 0x363d, 0x2e3d, 0x2e3d, 0x2e3d, 0x2e3d, 0x2e3d, 0x2e3d, 0x2e3d, 0x2e3d, 0x2e3d, 0x2e3d, 0x2e3d, 0x2e3d, 0x2e3d, 0x2e3d, 0x2e3d, 0x2e3d, 0x2e3d, 0x2e3d, 0x2e3d, 0x2e3d, 0x2e1d, 0x2e1d, 0x2e1d, 0x2e1d, 0x2e1d, 0x2e1d, 0x2e1d, 0x2e1d, 0x2e1d, 0x2e1d, 0x2e1d, 0x2e1d, 0x2e1d, 0x2e1d, 0x2e1d, 0x2e1d, 0x2e1d, 0x361d, 0x361d, 0x361d, 0x361d, 0x361d, 0x3e1d, 0x3e1d, 0x3e1d, 0x3e1d, 0x3e1d, 0x3e1e, 0x461e, 0x461d, 0x4dfe, 0x4dfd, 0x4e3e, 0x4dfe, 0x55dd, 0x9214, 0x9931, 0x9931, 0x9931, 0x9932, 0x9931, 0x9911, 0x9911, 0x9931, 0x7a74, 0x07fb, 0x07f6, 0x07f6, 0x9931, 0x9931, 0x9911, 0x9932, 0x9931, 0x9931, 0x9931, 0x4cfb, 0x3dfe, 0x35dd, 0x35dd, 0x2ddd, 0x2ddd, 0x2ddd, 0x2ddd, 0x25dd, 0x25dd, 0x25bd, 0x25bd, 0x25dd, 0x25dd, 0x25bd, 0x25dc, 0x25bd, 0x25bd, 0x25bd, 0x1dbd, 0x25bc, 0x1dbd, 0x1dbd, 0x1dbc, 0x1dbc, 0x1dbc, 0x1dbc, 0x1dbc, 0x1dbc, 0x1d9d, 0x1d9d, 0x1d9d, 0x1d9d, + 0x1c7c, 0x1c7c, 0x1c7c, 0x1c7b, 0x1c7c, 0x1c7c, 0x1c7c, 0x1c7c, 0x1c7c, 0x1c7c, 0x1c9c, 0x1c9c, 0x1c9c, 0x1c9c, 0x1c9c, 0x1c9c, 0x1c9c, 0x1c9c, 0x1c9c, 0x1c9c, 0x1c9c, 0x1c9c, 0x249c, 0x1c9c, 0x1d9d, 0x1d7c, 0x1cfc, 0x1c9c, 0x1cbc, 0x1cbc, 0x1cbc, 0x1cbc, 0x1cbc, 0x1cbc, 0x1cbc, 0x1cbc, 0x1cbc, 0x1cbc, 0x1cbc, 0x1cbc, 0x1cbc, 0x1cbc, 0x1cbc, 0x1cbc, 0x24bc, 0x1cbc, 0x1cbc, 0x24bc, 0x24bc, 0x24bc, 0x1cbc, 0x24dc, 0x24dc, 0x24dc, 0x253d, 0x25bd, 0x253d, 0x24dd, 0x24bc, 0x24bc, 0x24dd, 0x24dd, 0x24dd, 0x24dd, 0x24dd, 0x24dd, 0x24dd, 0x24dd, 0x24dd, 0x24dd, 0x24dd, 0x24dd, 0x24dd, 0x24dd, 0x24dd, 0x24dd, 0x24fd, 0x24dc, 0x24dc, 0x24fd, 0x24fd, 0x24fc, 0x24dd, 0x24fd, 0x251c, 0x25fd, 0x255d, 0x24fd, 0x24fd, 0x24fd, 0x24fd, 0x24fc, 0x24fd, 0x24fd, 0x24fd, 0x24fd, 0x24fd, 0x24fd, 0x24fd, 0x24fd, 0x2cfd, 0x2cfd, 0x2cfd, 0x2cfd, 0x2cfd, 0x2cfd, 0x2cfd, 0x2cfd, 0x251d, 0x24fd, 0x24fd, 0x251d, 0x2d1d, 0x24fd, 0x2cfd, 0x25bd, 0x25bd, 0x253c, 0x2cfc, 0x2d1d, 0x251d, 0x2cfd, 0x2cfd, 0x2d1d, 0x2d1d, 0x2d1d, 0x2d1d, 0x2d1d, 0x2d1d, 0x2d1d, 0x2d1d, 0x2d1d, 0x2d1d, 0x2d1d, 0x2d1d, 0x2d1d, 0x2d1d, 0x2d1d, 0x2d1d, 0x2d1d, 0x2d1d, 0x2d1d, 0x2d1d, 0x2d1d, 0x2d1c, 0x2d5d, 0x2dde, 0x2d1d, 0x2d1d, 0x2d1d, 0x2d1d, 0x2d1d, 0x2d1d, 0x2d1d, 0x2d1d, 0x2d1d, 0x2d3d, 0x2d3d, 0x2d3d, 0x2d3d, 0x2d3d, 0x2d3d, 0x2d3d, 0x2d3d, 0x2d3d, 0x2d3d, 0x2d3d, 0x2d3d, 0x2d3d, 0x2d3d, 0x2d3d, 0x2d3d, 0x2d1d, 0x2d3d, 0x2d1d, 0x2d1d, 0x2e1d, 0x2d1d, 0x2d1d, 0x2d1d, 0x2d3d, 0x2d3d, 0x2d3d, 0x2d3d, 0x2d3d, 0x2d3d, 0x2d3d, 0x2d3d, 0x2d3d, 0x2d3d, 0x2d3d, 0x2d3d, 0x2d3d, 0x2d3d, 0x2d3d, 0x2d3d, 0x2d1d, 0x2d1d, 0x2d1d, 0x2d1d, 0x2d1d, 0x2d1d, 0x2d1d, 0x2d1d, 0x2d1d, 0x2d1d, 0x2d1d, 0x2ddd, 0x2d5d, 0x2d1d, 0x2d1d, 0x2d1d, 0x2d1d, 0x2d1d, 0x2d1d, 0x2d1d, 0x2d1d, 0x2d1d, 0x2d1d, 0x2d1d, 0x2d1d, 0x2d1d, 0x2d1d, 0x2d1d, 0x2d1d, 0x2d1d, 0x2d1d, 0x2d1d, 0x2cfd, 0x2cfd, 0x2cfd, 0x2cfd, 0x2d1d, 0x2d1d, 0x2cfd, 0x2cfd, 0x2cfd, 0x2dbd, 0x2dbd, 0x2cfd, 0x2d1d, 0x251c, 0x251c, 0x2cfd, 0x2cfd, 0x2cfd, 0x2cfd, 0x2cfd, 0x2cfd, 0x2cfd, 0x2cfd, 0x2cfd, 0x34fd, 0x34fd, 0x34fd, 0x34fd, 0x34fd, 0x3cfd, 0x3cfd, 0x3cfd, 0x3cfd, 0x3d1d, 0x451d, 0x451d, 0x451d, 0x4d1d, 0x4d1d, 0x553d, 0x91b3, 0x9931, 0x9911, 0x9931, 0x9931, 0x9931, 0xa112, 0x9931, 0x9931, 0x5496, 0x07f7, 0x07f7, 0x8a13, 0xa111, 0x9931, 0x9931, 0x9912, 0x9932, 0x9911, 0x6318, 0x34dd, 0x34dd, 0x2cdd, 0x2cdc, 0x2cdd, 0x2cbc, 0x24dc, 0x24bc, 0x24bc, 0x253c, 0x25bd, 0x253c, 0x24bc, 0x24bc, 0x24bc, 0x1cbc, 0x24bc, 0x1cbc, 0x1cbc, 0x24bc, 0x1cbc, 0x1cbc, 0x1cbc, 0x1cbc, 0x1cbc, 0x1cbc, 0x1c9c, 0x1c9c, 0x1c9c, 0x1c9c, 0x1c9c, 0x1c9c, + 0x1abb, 0x1abb, 0x1abb, 0x1abb, 0x1abb, 0x1abb, 0x1abb, 0x1abb, 0x1abb, 0x1abb, 0x1abb, 0x1abb, 0x1abb, 0x1abb, 0x1abb, 0x1abb, 0x1adb, 0x1adb, 0x1adb, 0x1adb, 0x1b3b, 0x1cfc, 0x157c, 0x1c1c, 0x1adb, 0x1adb, 0x1adb, 0x1adb, 0x1adb, 0x1adb, 0x1adb, 0x1adb, 0x1adb, 0x1adb, 0x1adb, 0x1adb, 0x1adb, 0x1adb, 0x1adb, 0x1adb, 0x1adb, 0x1adb, 0x22db, 0x22db, 0x1adb, 0x1adb, 0x1adb, 0x1adb, 0x22db, 0x22db, 0x22fb, 0x231c, 0x1d1c, 0x1d5c, 0x235b, 0x22dc, 0x22db, 0x22dc, 0x22fb, 0x22fc, 0x22dc, 0x22dc, 0x22fc, 0x22fc, 0x22fc, 0x22fc, 0x22fc, 0x22fc, 0x22fb, 0x22fb, 0x22fb, 0x22fb, 0x22fc, 0x22fc, 0x22fc, 0x22fc, 0x22fc, 0x22fc, 0x22fc, 0x22fc, 0x231b, 0x22fc, 0x233c, 0x253c, 0x1cfd, 0x22fc, 0x22fc, 0x22fb, 0x22fc, 0x22fc, 0x22fc, 0x22fc, 0x22fc, 0x22fc, 0x22fc, 0x22fc, 0x22fc, 0x22fc, 0x22fc, 0x22fc, 0x22fc, 0x22fc, 0x22fc, 0x22fc, 0x231c, 0x231c, 0x231c, 0x231c, 0x231c, 0x2afc, 0x2afc, 0x231c, 0x2b1c, 0x2b1c, 0x259c, 0x247c, 0x231c, 0x231c, 0x2b1c, 0x231c, 0x231c, 0x2b1c, 0x231c, 0x2b1c, 0x2b1c, 0x2b1c, 0x2b1c, 0x2b1c, 0x2b1c, 0x2b1c, 0x2b1c, 0x2b1c, 0x2b1c, 0x2b1c, 0x2b1c, 0x2b1c, 0x2b1c, 0x2b1c, 0x2b1c, 0x2b1c, 0x2b1c, 0x2b1c, 0x2b1c, 0x2b1c, 0x2b1c, 0x25bd, 0x2bbc, 0x2b1c, 0x2b1c, 0x2b1c, 0x2b1c, 0x2b1c, 0x2b1c, 0x2b1c, 0x2b1c, 0x2b1c, 0x2b1c, 0x2b1c, 0x2b1c, 0x2b1c, 0x2b1c, 0x2b1c, 0x2b1c, 0x2b1c, 0x2b1c, 0x2b1c, 0x2b1c, 0x2b1c, 0x2b1c, 0x2b1c, 0x2b1c, 0x2b1c, 0x2b1c, 0x231c, 0x2b1c, 0x2b1c, 0x25dd, 0x2b1c, 0x2b1c, 0x2b1c, 0x2b1c, 0x2b1c, 0x2b1c, 0x2b1c, 0x2b1c, 0x2b1c, 0x2b1c, 0x2b1c, 0x2b1c, 0x2b1c, 0x2b1c, 0x2b1c, 0x2b1c, 0x2b1c, 0x2b1c, 0x2b1c, 0x2b1c, 0x2b1c, 0x2b1c, 0x2b1c, 0x2b1c, 0x2b1c, 0x2b1c, 0x2b1c, 0x2b1c, 0x231c, 0x2b1c, 0x2b7c, 0x259d, 0x2b1c, 0x2b1c, 0x231c, 0x2b1c, 0x2b1c, 0x2b1c, 0x2b1c, 0x2b1c, 0x2b1c, 0x2b1c, 0x2b1c, 0x231c, 0x231c, 0x231c, 0x231c, 0x231c, 0x231c, 0x231c, 0x231c, 0x231c, 0x231c, 0x231c, 0x231c, 0x231c, 0x231c, 0x231c, 0x231c, 0x231c, 0x231c, 0x245d, 0x259c, 0x22fc, 0x2afc, 0x231c, 0x2afc, 0x22fc, 0x231c, 0x231c, 0x2b1c, 0x2b1c, 0x2b1c, 0x2b1c, 0x2afc, 0x2b1c, 0x2b1c, 0x2b1c, 0x331c, 0x331c, 0x331c, 0x331c, 0x331c, 0x3b1c, 0x3b3d, 0x3b3d, 0x3b3d, 0x433c, 0x433d, 0x4b3d, 0x435d, 0x5a9a, 0x9932, 0x9931, 0x9911, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x1737, 0x07f9, 0x72d4, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x8194, 0x331c, 0x32fc, 0x2afb, 0x2afc, 0x2afb, 0x22fb, 0x22dc, 0x22dc, 0x22fb, 0x22db, 0x22db, 0x235c, 0x1d5c, 0x1d1d, 0x231b, 0x1adb, 0x1adb, 0x1adb, 0x22db, 0x1abb, 0x1adb, 0x1adb, 0x1adb, 0x1adb, 0x1adb, 0x1adb, 0x1abb, 0x1abb, 0x1adb, 0x1adb, 0x1adb, 0x1adb, + 0x137b, 0x137b, 0x137b, 0x137b, 0x137b, 0x137b, 0x137b, 0x137b, 0x137b, 0x137b, 0x137b, 0x1b7b, 0x137b, 0x1b5b, 0x1b7b, 0x137b, 0x137b, 0x137b, 0x139b, 0x1bbb, 0x14fb, 0x153c, 0x13fb, 0x1b7b, 0x139b, 0x1b7b, 0x1b7c, 0x1b9b, 0x1b7b, 0x1b7b, 0x1b9b, 0x1b9b, 0x1b9b, 0x1b9b, 0x1b9b, 0x1b9b, 0x1b9b, 0x1b9c, 0x1b9b, 0x1b9b, 0x1b9b, 0x139c, 0x1b9b, 0x1b9b, 0x1b9b, 0x1b9b, 0x1b9b, 0x1b9b, 0x1b9b, 0x1b9c, 0x1b9b, 0x1d3c, 0x1d5c, 0x1bfb, 0x1b9c, 0x1bbb, 0x1b9b, 0x1bbc, 0x1b9b, 0x1b9b, 0x1bbb, 0x1bbb, 0x1bbb, 0x1bbb, 0x1bbb, 0x1bbb, 0x1bbb, 0x1bbb, 0x1bbc, 0x1bbb, 0x1bbb, 0x1bbc, 0x1bbb, 0x1bbc, 0x1bbb, 0x1bbb, 0x1bbc, 0x1bbb, 0x1bbc, 0x1bbb, 0x1bbc, 0x1bbb, 0x1cdc, 0x1d7d, 0x23fc, 0x1bdc, 0x1bbc, 0x1bbc, 0x1bbc, 0x1bbc, 0x1bbc, 0x1bbc, 0x23bc, 0x23bc, 0x23bc, 0x23bc, 0x23bc, 0x23bc, 0x23bc, 0x23bc, 0x1bbc, 0x1bbc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23bc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x247c, 0x1d9c, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x241c, 0x259d, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x1dbd, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x1dbd, 0x243c, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23bc, 0x23dc, 0x23dc, 0x259c, 0x247c, 0x23bc, 0x23bc, 0x23dc, 0x23bc, 0x23dc, 0x23dc, 0x23bc, 0x23bc, 0x23bc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x2bdc, 0x2bdc, 0x2bdc, 0x2bdc, 0x2bdc, 0x33dc, 0x33dc, 0x33dc, 0x33dc, 0x3bdc, 0x3bfc, 0x3bfc, 0x3bdc, 0x43fc, 0x43fd, 0x6b18, 0x9931, 0x9931, 0x9931, 0x9931, 0x9911, 0x9931, 0x9932, 0x9931, 0x6b53, 0x07fa, 0x5437, 0x9931, 0x9931, 0x9911, 0x9931, 0x9931, 0x9912, 0x9931, 0x2bbc, 0x2bbc, 0x2bbc, 0x2bbb, 0x23bb, 0x23bb, 0x239b, 0x1b9b, 0x1b9b, 0x1b9b, 0x1b9b, 0x1b9b, 0x1bdb, 0x1d5c, 0x1d1c, 0x1b9b, 0x1b9b, 0x139b, 0x139c, 0x1b9b, 0x1b7b, 0x1b7b, 0x139b, 0x1b9b, 0x1b9b, 0x1b7b, 0x1b9b, 0x139b, 0x1b7b, 0x1b7b, 0x1b9b, 0x1b9b, + 0x135b, 0x135b, 0x135b, 0x135b, 0x135b, 0x135b, 0x135b, 0x135b, 0x135b, 0x135b, 0x137b, 0x135a, 0x135a, 0x137b, 0x135a, 0x135b, 0x139b, 0x14bb, 0x14fb, 0x13fb, 0x137b, 0x137b, 0x135b, 0x137b, 0x137a, 0x137a, 0x137b, 0x137b, 0x137b, 0x137b, 0x137b, 0x137b, 0x137b, 0x137b, 0x137b, 0x137b, 0x137b, 0x137b, 0x1b7b, 0x1b7b, 0x137b, 0x137b, 0x137b, 0x137b, 0x137b, 0x137b, 0x137b, 0x137b, 0x1bbb, 0x153c, 0x151c, 0x1b7b, 0x139b, 0x137b, 0x139b, 0x139b, 0x1b9b, 0x139b, 0x1b9b, 0x1b9b, 0x139b, 0x139b, 0x139b, 0x139b, 0x139b, 0x139b, 0x139b, 0x139b, 0x1b9b, 0x1b9b, 0x1b9b, 0x1b9b, 0x1b9b, 0x13bb, 0x139b, 0x1b9b, 0x139b, 0x1b9b, 0x1b9b, 0x1b9c, 0x1c3b, 0x1d5c, 0x1c3c, 0x1b9b, 0x1bbb, 0x1b9b, 0x1b9b, 0x1b9b, 0x1b9b, 0x1b9b, 0x1b9b, 0x1b9b, 0x1bbb, 0x1bbb, 0x1bbb, 0x1bbb, 0x1bbb, 0x1bbb, 0x1bbb, 0x1bbb, 0x1b9b, 0x1bbb, 0x1bbb, 0x1bbb, 0x1bbb, 0x1bbb, 0x1bbb, 0x1bbb, 0x1bbb, 0x1bbc, 0x1bbb, 0x1bbb, 0x1c9c, 0x1d1c, 0x1bbb, 0x1bbb, 0x1bbb, 0x1bbb, 0x1bbb, 0x1bbb, 0x1bbb, 0x1bbb, 0x1bbb, 0x1bbb, 0x1bbb, 0x1bbb, 0x1bbb, 0x1bbb, 0x1bbb, 0x1bbb, 0x1bbb, 0x1bbb, 0x1bbb, 0x1bbb, 0x1bbb, 0x1bbb, 0x1bbb, 0x1bbb, 0x1bbb, 0x1bbb, 0x1bdb, 0x1bbb, 0x1bbb, 0x1bbb, 0x1cfc, 0x1c7c, 0x1bbb, 0x1bdb, 0x1bbc, 0x1bbc, 0x1bbc, 0x1bbc, 0x1bbc, 0x1bbc, 0x1bbc, 0x1bbc, 0x1bbc, 0x1bbc, 0x1bbc, 0x1bbc, 0x1bbc, 0x1bbc, 0x1bbc, 0x1bbc, 0x1bbc, 0x1bbc, 0x1bbc, 0x1bbc, 0x1bbc, 0x1bbc, 0x1bbc, 0x1bbc, 0x1bbb, 0x1bdc, 0x23bc, 0x1bbb, 0x1d7c, 0x1bbb, 0x1bdc, 0x1bbb, 0x1bbc, 0x1bbc, 0x1bbc, 0x1bbc, 0x1bbc, 0x1bbc, 0x1bbc, 0x1bbc, 0x1bbc, 0x1bbc, 0x1bbc, 0x1bbc, 0x1bbc, 0x1bbc, 0x1bbc, 0x1bbc, 0x1bbb, 0x1bbb, 0x1bbb, 0x1bbb, 0x1bbb, 0x1bbb, 0x1bbb, 0x1bbb, 0x1bbc, 0x1b9c, 0x1bdc, 0x1bbb, 0x1c5b, 0x1cfb, 0x1bbb, 0x1bbb, 0x1bbb, 0x1bbb, 0x1bbb, 0x1bbb, 0x1bbb, 0x1bbb, 0x1bbb, 0x1bbb, 0x1bbb, 0x1bbb, 0x1bbb, 0x1bbb, 0x1bbb, 0x1bbb, 0x1bbb, 0x1bbb, 0x1bbc, 0x1bbc, 0x1bbc, 0x1bbc, 0x1bbc, 0x1bbc, 0x1bbc, 0x1bbc, 0x1bbb, 0x1bbb, 0x1bbb, 0x1b9b, 0x1d3c, 0x1cbc, 0x1bbb, 0x1bbb, 0x1b9b, 0x1b9c, 0x1b9c, 0x1b9b, 0x1b9b, 0x1bbb, 0x1b9c, 0x1b9b, 0x1bbb, 0x239b, 0x23bc, 0x23bc, 0x23bc, 0x23bc, 0x23bc, 0x2bbc, 0x2bbc, 0x2bbc, 0x2bbc, 0x33bc, 0x33bc, 0x33dc, 0x3bdc, 0x3bdc, 0x3bdc, 0x3bdc, 0x8194, 0x9931, 0x9931, 0x9931, 0x9911, 0x9931, 0x9931, 0x9911, 0x9931, 0x2659, 0x4c98, 0x9931, 0x9931, 0x9931, 0x9931, 0x9911, 0x9931, 0x9931, 0x4b19, 0x23bc, 0x239b, 0x239b, 0x239b, 0x1b9b, 0x1b9b, 0x1b9b, 0x1b7b, 0x1b7b, 0x1b7b, 0x1b7b, 0x137b, 0x137b, 0x137b, 0x14bb, 0x151b, 0x13db, 0x137b, 0x137a, 0x137b, 0x137b, 0x137a, 0x137b, 0x137b, 0x137b, 0x135b, 0x137b, 0x135b, 0x135b, 0x135b, 0x137b, + 0x0999, 0x0999, 0x0999, 0x0999, 0x1199, 0x11ba, 0x11ba, 0x11b9, 0x09b9, 0x11ba, 0x1199, 0x11ba, 0x11ba, 0x1199, 0x11da, 0x0b3a, 0x0c9b, 0x0bfb, 0x127a, 0x11ba, 0x119a, 0x11ba, 0x11ba, 0x11ba, 0x11ba, 0x11ba, 0x11ba, 0x119a, 0x11ba, 0x11ba, 0x11ba, 0x11ba, 0x11ba, 0x11ba, 0x11ba, 0x11ba, 0x11ba, 0x11ba, 0x11ba, 0x11ba, 0x11ba, 0x119a, 0x11ba, 0x11ba, 0x11ba, 0x11ba, 0x11ba, 0x12ba, 0x14bb, 0x13fb, 0x11db, 0x11ba, 0x11ba, 0x11ba, 0x11ba, 0x11ba, 0x11ba, 0x11ba, 0x11da, 0x11ba, 0x11ba, 0x11ba, 0x11ba, 0x11ba, 0x11ba, 0x11ba, 0x11ba, 0x11ba, 0x11ba, 0x11ba, 0x11bb, 0x11ba, 0x11da, 0x11ba, 0x11da, 0x11ba, 0x11ba, 0x11da, 0x11ba, 0x127a, 0x14db, 0x137b, 0x11da, 0x19ba, 0x11da, 0x11da, 0x11da, 0x11da, 0x11da, 0x11da, 0x11da, 0x11da, 0x11da, 0x11da, 0x11da, 0x11da, 0x11da, 0x19da, 0x19da, 0x19da, 0x11da, 0x11db, 0x11db, 0x11db, 0x11db, 0x11db, 0x11db, 0x11db, 0x19db, 0x11da, 0x19da, 0x1a3b, 0x14fb, 0x1afb, 0x19da, 0x11db, 0x19da, 0x19da, 0x19da, 0x19da, 0x19da, 0x19da, 0x19da, 0x19da, 0x19da, 0x19da, 0x19da, 0x19da, 0x19da, 0x19da, 0x19da, 0x19da, 0x19db, 0x19db, 0x19db, 0x19db, 0x19db, 0x19db, 0x19db, 0x19db, 0x19da, 0x19db, 0x19da, 0x1a1b, 0x153c, 0x1a3b, 0x19da, 0x19da, 0x19db, 0x19db, 0x19db, 0x19db, 0x19db, 0x19db, 0x19db, 0x19db, 0x19da, 0x19da, 0x19da, 0x19da, 0x19da, 0x19da, 0x19da, 0x19da, 0x19da, 0x19da, 0x19da, 0x19da, 0x19da, 0x19da, 0x19da, 0x19da, 0x19db, 0x19db, 0x19da, 0x19db, 0x153b, 0x19db, 0x19da, 0x19db, 0x19da, 0x19da, 0x19da, 0x19da, 0x19da, 0x19da, 0x19da, 0x19da, 0x19da, 0x19da, 0x19da, 0x19da, 0x19da, 0x19da, 0x19da, 0x19da, 0x19da, 0x19da, 0x19da, 0x19da, 0x19da, 0x19da, 0x19da, 0x19da, 0x11db, 0x19db, 0x19da, 0x19db, 0x19fb, 0x153c, 0x123a, 0x19da, 0x19da, 0x11da, 0x11da, 0x11da, 0x11da, 0x11da, 0x19da, 0x11db, 0x19db, 0x19db, 0x19db, 0x19db, 0x19db, 0x19db, 0x19db, 0x19db, 0x19db, 0x19db, 0x11ba, 0x11ba, 0x11ba, 0x11ba, 0x11ba, 0x11ba, 0x19db, 0x19ba, 0x11da, 0x11ba, 0x1abb, 0x14fb, 0x1a5b, 0x19ba, 0x19ba, 0x11da, 0x11da, 0x19db, 0x19db, 0x19da, 0x19db, 0x19ba, 0x19da, 0x19da, 0x19db, 0x19db, 0x19db, 0x21db, 0x21db, 0x21db, 0x21fb, 0x21fb, 0x29fb, 0x29fb, 0x29fb, 0x29fb, 0x31fb, 0x321b, 0x31fb, 0x321b, 0x41fa, 0x9912, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9912, 0x72d4, 0x4c98, 0x9931, 0x9911, 0x9931, 0x9931, 0x9931, 0x9911, 0x9931, 0x5996, 0x21db, 0x21da, 0x19da, 0x19da, 0x19da, 0x11da, 0x11da, 0x11ba, 0x11ba, 0x11ba, 0x11ba, 0x11ba, 0x11ba, 0x11ba, 0x11d9, 0x137a, 0x149b, 0x131a, 0x11ba, 0x119a, 0x11b9, 0x11ba, 0x11ba, 0x119a, 0x11ba, 0x119a, 0x11ba, 0x11ba, 0x11ba, 0x11ba, 0x11ba, + 0x0afa, 0x0afa, 0x0afa, 0x0afa, 0x0b1a, 0x0b1a, 0x0afa, 0x0afa, 0x0b1a, 0x0afa, 0x0b1a, 0x0afa, 0x0b1a, 0x0b1a, 0x0c3a, 0x0c9a, 0x0bda, 0x0b1a, 0x0afa, 0x0afa, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b3a, 0x0b1a, 0x0b1a, 0x0b3a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0bdb, 0x14bb, 0x0bfa, 0x0b1a, 0x0b1a, 0x0b3a, 0x0b3a, 0x0b1a, 0x0b1a, 0x0b3a, 0x0b3a, 0x131a, 0x0b3a, 0x0b1a, 0x0b3a, 0x0b3a, 0x0b3a, 0x0b3a, 0x0b3a, 0x0b3a, 0x0b3a, 0x0b3a, 0x133b, 0x133b, 0x133a, 0x0b3a, 0x0b3a, 0x0b3a, 0x0b3a, 0x0b3a, 0x133a, 0x0b3a, 0x137a, 0x0cdb, 0x0c5b, 0x133b, 0x133b, 0x0b3a, 0x133a, 0x133a, 0x133a, 0x133a, 0x133a, 0x133a, 0x133a, 0x133b, 0x133b, 0x133b, 0x133b, 0x133b, 0x133b, 0x133b, 0x133b, 0x133b, 0x133b, 0x133b, 0x135b, 0x135b, 0x135b, 0x135b, 0x133b, 0x133b, 0x135a, 0x0b5b, 0x133b, 0x143a, 0x147b, 0x135b, 0x135a, 0x133b, 0x135a, 0x135a, 0x135a, 0x135a, 0x135a, 0x135a, 0x135a, 0x135a, 0x135a, 0x135a, 0x135a, 0x135a, 0x135a, 0x135a, 0x135a, 0x135a, 0x135a, 0x135a, 0x135b, 0x135b, 0x135b, 0x135b, 0x135b, 0x135b, 0x135b, 0x135b, 0x135a, 0x13bb, 0x14db, 0x135b, 0x135b, 0x135b, 0x135b, 0x135b, 0x135b, 0x135b, 0x135b, 0x135b, 0x135b, 0x135b, 0x135b, 0x135b, 0x135b, 0x135b, 0x135b, 0x135b, 0x135b, 0x135b, 0x135b, 0x135b, 0x135b, 0x135b, 0x135b, 0x135b, 0x135b, 0x135b, 0x135b, 0x135a, 0x135b, 0x133b, 0x14fb, 0x135a, 0x135b, 0x135a, 0x135b, 0x135b, 0x135b, 0x135b, 0x135b, 0x135b, 0x135b, 0x135b, 0x135b, 0x135b, 0x135b, 0x135b, 0x135b, 0x135b, 0x135b, 0x135b, 0x135a, 0x135a, 0x135a, 0x135a, 0x135a, 0x135a, 0x135a, 0x135a, 0x133a, 0x135b, 0x135a, 0x135b, 0x135b, 0x149b, 0x13fb, 0x133a, 0x135b, 0x135b, 0x135a, 0x135a, 0x135a, 0x135b, 0x135b, 0x135b, 0x133b, 0x133b, 0x133b, 0x133b, 0x133b, 0x133b, 0x133b, 0x133b, 0x133b, 0x133b, 0x133b, 0x133b, 0x133b, 0x133b, 0x133b, 0x133b, 0x133a, 0x133b, 0x133a, 0x135a, 0x133a, 0x143b, 0x147b, 0x133a, 0x133a, 0x133a, 0x133a, 0x133b, 0x133a, 0x133a, 0x133b, 0x133a, 0x133a, 0x133a, 0x135b, 0x133b, 0x133b, 0x1b3b, 0x1b5b, 0x1b5b, 0x1b3b, 0x1b5b, 0x235b, 0x235b, 0x235b, 0x235b, 0x2b5b, 0x2b5b, 0x2b7b, 0x2b7b, 0x335b, 0x7235, 0x9911, 0x9931, 0x9931, 0x9931, 0x9911, 0x9931, 0x9931, 0x9931, 0x72d5, 0x9932, 0x9932, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x71b4, 0x1b3b, 0x1b3b, 0x133a, 0x133b, 0x133a, 0x131a, 0x131a, 0x131a, 0x131a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b3a, 0x0afa, 0x0b1a, 0x0afa, 0x0bda, 0x0cbb, 0x0bda, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, + 0x02d9, 0x02d9, 0x02d9, 0x02d9, 0x02d9, 0x02d9, 0x02f9, 0x02d9, 0x02da, 0x0ada, 0x0afa, 0x0bfa, 0x0c5b, 0x0bfa, 0x0ad9, 0x02fa, 0x02f9, 0x02f9, 0x0af9, 0x02f9, 0x0af9, 0x02d9, 0x02f9, 0x0af9, 0x0afa, 0x0afa, 0x0afa, 0x0afa, 0x0afa, 0x0afa, 0x0afa, 0x0afa, 0x0afa, 0x0afa, 0x0afa, 0x0afa, 0x0afa, 0x0afa, 0x0afa, 0x0afa, 0x0af9, 0x0afa, 0x0afa, 0x0afa, 0x0c1a, 0x0c7b, 0x0b5a, 0x0afa, 0x0af9, 0x0b1a, 0x0afa, 0x0afa, 0x0afa, 0x0b1a, 0x0afa, 0x0afa, 0x0b1a, 0x0afa, 0x0afa, 0x0afa, 0x0afa, 0x0afa, 0x0afa, 0x0afa, 0x0afa, 0x0b1a, 0x0b1a, 0x0b1a, 0x031a, 0x0afa, 0x0b1a, 0x0b1a, 0x0afa, 0x0b1a, 0x0b1a, 0x0b1a, 0x0afa, 0x0c3a, 0x0c5a, 0x0b1a, 0x0afa, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0c5b, 0x0c1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b3a, 0x0c7b, 0x0b7a, 0x0b3a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0cbb, 0x0b1a, 0x0b3a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b7a, 0x0cbb, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0bda, 0x0c7b, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x131a, 0x131a, 0x131a, 0x131a, 0x131a, 0x1b1a, 0x1b3a, 0x1b3a, 0x1b3a, 0x1b3a, 0x233a, 0x233a, 0x233b, 0x2b3b, 0x2b5b, 0x3ad9, 0x9931, 0x9931, 0x9931, 0x9912, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9911, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x8993, 0x1b1a, 0x131a, 0x131a, 0x12fa, 0x0afa, 0x0afa, 0x0afa, 0x0afa, 0x0afa, 0x0afa, 0x0afa, 0x0afa, 0x0afa, 0x0afa, 0x0afa, 0x0afa, 0x02fa, 0x0afa, 0x035a, 0x045a, 0x0c3a, 0x0afa, 0x02da, 0x0afa, 0x0af9, 0x02f9, 0x0afa, 0x0afa, 0x0afa, 0x02d9, 0x02d9, + 0x0158, 0x0158, 0x0158, 0x0158, 0x0138, 0x0158, 0x0158, 0x0158, 0x0138, 0x0238, 0x03b9, 0x03da, 0x0259, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0138, 0x0178, 0x0158, 0x0158, 0x0159, 0x01b9, 0x037a, 0x0bda, 0x0218, 0x0958, 0x0159, 0x0159, 0x0958, 0x0158, 0x0158, 0x0158, 0x0158, 0x0958, 0x0959, 0x0158, 0x0159, 0x0179, 0x0158, 0x0159, 0x0159, 0x0159, 0x0159, 0x0158, 0x0158, 0x0158, 0x0158, 0x0979, 0x0179, 0x0958, 0x0979, 0x0159, 0x0178, 0x0159, 0x0958, 0x033a, 0x041a, 0x01f9, 0x0959, 0x0179, 0x0958, 0x0959, 0x0158, 0x0159, 0x0159, 0x0159, 0x0159, 0x0979, 0x0979, 0x0979, 0x0979, 0x0179, 0x0179, 0x0179, 0x0179, 0x0179, 0x0179, 0x0179, 0x0179, 0x0979, 0x0979, 0x0959, 0x0959, 0x0979, 0x0979, 0x0979, 0x0979, 0x0979, 0x0a79, 0x043a, 0x0199, 0x0959, 0x0179, 0x0179, 0x0979, 0x0979, 0x0979, 0x0979, 0x0979, 0x0979, 0x0979, 0x0979, 0x0979, 0x0979, 0x0979, 0x0979, 0x0979, 0x0979, 0x0979, 0x0979, 0x0979, 0x0179, 0x0179, 0x0179, 0x0179, 0x0179, 0x0179, 0x0179, 0x0179, 0x0979, 0x0179, 0x09b9, 0x0c3b, 0x0179, 0x0979, 0x0179, 0x0179, 0x0979, 0x0979, 0x0979, 0x0979, 0x0979, 0x0979, 0x0979, 0x0979, 0x0979, 0x0979, 0x0979, 0x0979, 0x0979, 0x0979, 0x0979, 0x0979, 0x0979, 0x0979, 0x0979, 0x0979, 0x0979, 0x0979, 0x0979, 0x0979, 0x0979, 0x0179, 0x0979, 0x0179, 0x0c7a, 0x0979, 0x0179, 0x0179, 0x0979, 0x0979, 0x0979, 0x0979, 0x0979, 0x0979, 0x0979, 0x0979, 0x0979, 0x0979, 0x0979, 0x0979, 0x0979, 0x0979, 0x0979, 0x0979, 0x0179, 0x0179, 0x0179, 0x0179, 0x0179, 0x0179, 0x0179, 0x0179, 0x0179, 0x0179, 0x0979, 0x0979, 0x0979, 0x0979, 0x0bfa, 0x0259, 0x0979, 0x0979, 0x0979, 0x0979, 0x0979, 0x0959, 0x0979, 0x0979, 0x0979, 0x0979, 0x0979, 0x0979, 0x0979, 0x0979, 0x0979, 0x0979, 0x0979, 0x0979, 0x0979, 0x0979, 0x0979, 0x0979, 0x0979, 0x0979, 0x0179, 0x0958, 0x0979, 0x0178, 0x0958, 0x0159, 0x0999, 0x0bda, 0x02d9, 0x0159, 0x0959, 0x0159, 0x0979, 0x0959, 0x0979, 0x0959, 0x0979, 0x0979, 0x0979, 0x0979, 0x0979, 0x0979, 0x0979, 0x0979, 0x1179, 0x1179, 0x1179, 0x1179, 0x1179, 0x1999, 0x1999, 0x199a, 0x1999, 0x2199, 0x219a, 0x21ba, 0x7154, 0x9931, 0x9911, 0x9931, 0x9931, 0x9931, 0x9911, 0x9931, 0x9931, 0x9931, 0x9931, 0x9911, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x1179, 0x1179, 0x1179, 0x0979, 0x0979, 0x0958, 0x0958, 0x0958, 0x0958, 0x0158, 0x0158, 0x0158, 0x0958, 0x0158, 0x0158, 0x0158, 0x0158, 0x0159, 0x0158, 0x01d8, 0x0399, 0x0399, 0x01d9, 0x0158, 0x0158, 0x0138, 0x0138, 0x0158, 0x0158, 0x0158, 0x0158, + 0x0137, 0x0137, 0x0137, 0x0137, 0x0137, 0x0138, 0x0137, 0x01d8, 0x0339, 0x0399, 0x0238, 0x0137, 0x0137, 0x0138, 0x0138, 0x0137, 0x0137, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0137, 0x0137, 0x0138, 0x0138, 0x0137, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0157, 0x0138, 0x0278, 0x03d9, 0x02b9, 0x0178, 0x0158, 0x0138, 0x0138, 0x0158, 0x0138, 0x0137, 0x0137, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0137, 0x0158, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0158, 0x0158, 0x0158, 0x0138, 0x0138, 0x0938, 0x0158, 0x0158, 0x0158, 0x0178, 0x0339, 0x0399, 0x0178, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x01d9, 0x03f9, 0x01f9, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x02d9, 0x0319, 0x0158, 0x0158, 0x0158, 0x0159, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0959, 0x0158, 0x0158, 0x0159, 0x041a, 0x0959, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x02b9, 0x0319, 0x0158, 0x0158, 0x0138, 0x0138, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0138, 0x0158, 0x01d8, 0x03f9, 0x01f8, 0x0138, 0x0138, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0958, 0x0958, 0x0958, 0x0958, 0x0958, 0x1158, 0x1158, 0x1158, 0x1178, 0x1179, 0x1979, 0x1979, 0x1979, 0x1979, 0x1999, 0x2179, 0x3178, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9911, 0x9931, 0x9911, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x3157, 0x0958, 0x1158, 0x0958, 0x0958, 0x0938, 0x0938, 0x0938, 0x0938, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0137, 0x0137, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0298, 0x03f9, 0x0298, 0x0137, 0x0138, 0x0137, 0x0137, 0x0137, 0x0137, 0x0137, + 0x0117, 0x0117, 0x0117, 0x0117, 0x0117, 0x01d7, 0x0318, 0x0379, 0x0238, 0x0117, 0x0117, 0x0117, 0x0117, 0x0117, 0x0117, 0x0117, 0x0117, 0x0117, 0x0117, 0x0117, 0x0137, 0x0117, 0x0117, 0x0117, 0x0117, 0x0117, 0x0117, 0x0137, 0x0117, 0x0117, 0x0117, 0x0117, 0x0117, 0x0117, 0x0117, 0x0117, 0x0137, 0x0117, 0x0117, 0x0177, 0x0318, 0x0379, 0x01d7, 0x0137, 0x0117, 0x0137, 0x0117, 0x0137, 0x0136, 0x0117, 0x0117, 0x0137, 0x0137, 0x0117, 0x0117, 0x0137, 0x0137, 0x0137, 0x0117, 0x0137, 0x0137, 0x0137, 0x0117, 0x0117, 0x0117, 0x0137, 0x0137, 0x0137, 0x0137, 0x0137, 0x0138, 0x0137, 0x0117, 0x0157, 0x0359, 0x02f8, 0x0157, 0x0117, 0x0137, 0x0117, 0x0137, 0x0117, 0x0137, 0x0137, 0x0137, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0137, 0x0137, 0x0137, 0x0137, 0x0137, 0x0137, 0x0137, 0x0158, 0x0359, 0x0278, 0x0137, 0x0138, 0x0137, 0x0138, 0x0138, 0x0137, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0137, 0x0138, 0x03b9, 0x01b8, 0x0137, 0x0138, 0x0138, 0x0137, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0137, 0x0137, 0x0137, 0x0138, 0x03f9, 0x0137, 0x0138, 0x0137, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0137, 0x0138, 0x0118, 0x0138, 0x0138, 0x0178, 0x03f9, 0x0158, 0x0137, 0x0137, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0137, 0x0137, 0x0137, 0x0138, 0x0138, 0x0137, 0x0137, 0x0118, 0x0238, 0x03b9, 0x0177, 0x0137, 0x0138, 0x0137, 0x0117, 0x0137, 0x0138, 0x0137, 0x0137, 0x0137, 0x0137, 0x0937, 0x0938, 0x0938, 0x0938, 0x0938, 0x0938, 0x0958, 0x1158, 0x1158, 0x1158, 0x1158, 0x1158, 0x1958, 0x1958, 0x1959, 0x1978, 0x6934, 0x9931, 0x9931, 0x9912, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9912, 0x9931, 0x9911, 0x9931, 0x9931, 0x9931, 0x9932, 0x4135, 0x0938, 0x0957, 0x0937, 0x0937, 0x0937, 0x0937, 0x0117, 0x0117, 0x0117, 0x0117, 0x0117, 0x0117, 0x0117, 0x0117, 0x0117, 0x0137, 0x0137, 0x0117, 0x0117, 0x0117, 0x0117, 0x0197, 0x0318, 0x0338, 0x01b7, 0x0117, 0x0117, 0x0117, 0x0117, 0x0117, + 0x02d8, 0x02d8, 0x02d7, 0x02d7, 0x02f7, 0x0358, 0x0378, 0x02f7, 0x02d8, 0x02d8, 0x02d8, 0x02d7, 0x02d7, 0x02d7, 0x02d7, 0x02d7, 0x02d7, 0x02d8, 0x02d8, 0x02d8, 0x02d8, 0x02d8, 0x02d8, 0x02d8, 0x02d8, 0x02d8, 0x02d8, 0x02d8, 0x02d8, 0x02d8, 0x02d8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02d7, 0x02f8, 0x02f8, 0x0398, 0x0378, 0x02f8, 0x02d8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x0378, 0x0398, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x0318, 0x02f8, 0x0318, 0x02f7, 0x02f8, 0x02f8, 0x0318, 0x0358, 0x0399, 0x0318, 0x02f8, 0x02f8, 0x0318, 0x0318, 0x02f8, 0x0318, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x0318, 0x0318, 0x0318, 0x0318, 0x0318, 0x0318, 0x0318, 0x0318, 0x0318, 0x0318, 0x0318, 0x0318, 0x0318, 0x0318, 0x0318, 0x0318, 0x0318, 0x0338, 0x03b8, 0x0318, 0x0318, 0x02f8, 0x0318, 0x0318, 0x0318, 0x0318, 0x0318, 0x0318, 0x0318, 0x0318, 0x0318, 0x0318, 0x0318, 0x0318, 0x0318, 0x0318, 0x0318, 0x0318, 0x0318, 0x0318, 0x0318, 0x0318, 0x0318, 0x0318, 0x0318, 0x0318, 0x0318, 0x0318, 0x0318, 0x0318, 0x0318, 0x0318, 0x03b8, 0x0318, 0x0318, 0x0318, 0x0318, 0x0318, 0x0318, 0x0318, 0x0318, 0x0318, 0x0318, 0x0318, 0x0318, 0x0318, 0x0318, 0x0318, 0x0318, 0x0318, 0x0318, 0x0318, 0x0318, 0x0318, 0x0318, 0x0318, 0x0318, 0x0318, 0x0318, 0x0318, 0x0318, 0x0318, 0x02f8, 0x0318, 0x0318, 0x02f8, 0x0318, 0x0378, 0x0338, 0x02f8, 0x02f8, 0x0318, 0x02f8, 0x0318, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x0318, 0x0318, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x0378, 0x0338, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x0af8, 0x0af8, 0x0af8, 0x0af8, 0x0b18, 0x0b18, 0x1318, 0x1319, 0x1319, 0x1319, 0x1319, 0x1319, 0x1b18, 0x2af8, 0x9931, 0x9931, 0x9931, 0x9931, 0x9911, 0x9931, 0x9931, 0x9932, 0x9931, 0x9911, 0x9931, 0x9932, 0x9931, 0x9931, 0x9931, 0x5215, 0x0af8, 0x0af8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02d8, 0x02d8, 0x02d8, 0x02d8, 0x02d8, 0x02d8, 0x02d8, 0x02d8, 0x02d8, 0x02d8, 0x02d8, 0x02d8, 0x02d8, 0x02d8, 0x02d7, 0x02d8, 0x02d8, 0x0378, 0x0378, 0x02d7, 0x02d8, 0x02d7, 0x02d7, 0x02d8, + 0x0176, 0x01b6, 0x02f8, 0x0317, 0x0217, 0x0196, 0x0176, 0x0196, 0x0196, 0x0196, 0x0196, 0x0176, 0x0196, 0x0196, 0x0196, 0x0196, 0x0196, 0x0196, 0x0196, 0x0196, 0x0196, 0x0196, 0x0196, 0x0196, 0x0196, 0x0196, 0x0196, 0x0196, 0x0196, 0x0176, 0x0196, 0x0196, 0x0196, 0x0196, 0x0196, 0x0196, 0x01f7, 0x0337, 0x02d7, 0x01b6, 0x0197, 0x0196, 0x0196, 0x0176, 0x0196, 0x0196, 0x0196, 0x0196, 0x0196, 0x0196, 0x0196, 0x0196, 0x0196, 0x0196, 0x0196, 0x0196, 0x0196, 0x0196, 0x0196, 0x0196, 0x0196, 0x0196, 0x0197, 0x0196, 0x0196, 0x0196, 0x0196, 0x0196, 0x0196, 0x0196, 0x0196, 0x0237, 0x0358, 0x0217, 0x0196, 0x0196, 0x0196, 0x0196, 0x0196, 0x0196, 0x0196, 0x0196, 0x0196, 0x0196, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0196, 0x0196, 0x0197, 0x0197, 0x0196, 0x0196, 0x0277, 0x0318, 0x01b6, 0x0196, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x01b7, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x01b6, 0x02f7, 0x0257, 0x0197, 0x01b6, 0x01b7, 0x01b6, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x01b7, 0x01b6, 0x01b7, 0x0378, 0x01b7, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x01b6, 0x01f7, 0x0358, 0x0196, 0x0196, 0x01b6, 0x0196, 0x01b6, 0x0197, 0x0196, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0196, 0x0196, 0x0197, 0x0197, 0x02f7, 0x02f7, 0x0196, 0x0196, 0x0196, 0x0196, 0x0197, 0x0196, 0x0197, 0x01b6, 0x01b6, 0x0196, 0x0196, 0x0196, 0x0197, 0x0197, 0x0197, 0x09b7, 0x0997, 0x09b7, 0x09b7, 0x09b7, 0x11b7, 0x11b7, 0x11d7, 0x11b7, 0x11b7, 0x11b7, 0x7153, 0x9931, 0x9911, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x6174, 0x09b6, 0x0196, 0x0197, 0x0196, 0x0196, 0x0196, 0x0196, 0x0196, 0x0196, 0x0196, 0x0196, 0x0196, 0x0196, 0x0196, 0x0196, 0x0196, 0x0196, 0x0196, 0x0176, 0x0196, 0x0196, 0x0196, 0x0196, 0x0177, 0x0196, 0x02b7, 0x0337, 0x0216, 0x0196, 0x0196, + 0x0236, 0x0317, 0x0256, 0x00f4, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00f5, 0x00f5, 0x00d5, 0x00f5, 0x00d5, 0x00d5, 0x00f5, 0x01f6, 0x0317, 0x01f6, 0x00f5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00f5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00f5, 0x00f5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00f5, 0x00d5, 0x00f5, 0x01b6, 0x0337, 0x01b6, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x0155, 0x0337, 0x0156, 0x00d5, 0x00d5, 0x00f6, 0x00f6, 0x00f6, 0x00f5, 0x00d6, 0x00d6, 0x00f6, 0x00f6, 0x00f6, 0x00f6, 0x00f6, 0x00f6, 0x00f6, 0x00f6, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f6, 0x00d5, 0x00f6, 0x00f6, 0x00f5, 0x00f5, 0x00f5, 0x00f6, 0x0115, 0x0338, 0x0115, 0x00f6, 0x00f5, 0x00f6, 0x00f5, 0x00d6, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00d5, 0x00f6, 0x00d5, 0x00f5, 0x0357, 0x00f5, 0x00f6, 0x00f6, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f6, 0x00f5, 0x00d5, 0x00d5, 0x00d6, 0x00d6, 0x00d5, 0x00f5, 0x02f7, 0x0176, 0x00f5, 0x00d5, 0x00f5, 0x00f6, 0x00f6, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00d5, 0x00f5, 0x00d5, 0x0116, 0x02f7, 0x01d6, 0x00d6, 0x00d5, 0x00f5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00f5, 0x00d5, 0x00d5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x08f6, 0x08f6, 0x08f6, 0x08f6, 0x0916, 0x0916, 0x10f6, 0x1117, 0x1116, 0x3135, 0x9931, 0x9931, 0x9931, 0x9931, 0x9911, 0x9931, 0x9931, 0x9931, 0x9911, 0x9912, 0x9931, 0x9931, 0x9931, 0x9931, 0x7113, 0x08f5, 0x08f6, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d4, 0x00d5, 0x00d5, 0x00d5, 0x01d6, 0x02f7, 0x0236, 0x0114, + 0x01f4, 0x0113, 0x00b3, 0x00d3, 0x00b3, 0x00b3, 0x00b3, 0x00b3, 0x00b3, 0x00b3, 0x00b3, 0x00d3, 0x00b3, 0x00b3, 0x00b3, 0x00b3, 0x00b3, 0x00b3, 0x00b3, 0x00b3, 0x00b3, 0x00d3, 0x00b3, 0x00d3, 0x00d4, 0x00b3, 0x00b3, 0x00d4, 0x00b3, 0x00b3, 0x00d4, 0x00b3, 0x00d3, 0x0133, 0x0275, 0x0255, 0x0134, 0x00d3, 0x00b3, 0x00d3, 0x00d3, 0x00d4, 0x00d4, 0x00b4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00b4, 0x00d4, 0x00b4, 0x00d4, 0x00d4, 0x00b4, 0x00b4, 0x01d4, 0x02b5, 0x0134, 0x00d4, 0x00b4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00f4, 0x02b5, 0x01b5, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x01b5, 0x0255, 0x00d5, 0x00b4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x02f6, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x01f5, 0x0235, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00b4, 0x00b4, 0x00b4, 0x00b4, 0x00b4, 0x00b4, 0x00b4, 0x00d4, 0x00d4, 0x00b4, 0x0154, 0x02b5, 0x0134, 0x00d4, 0x00b4, 0x00b4, 0x00d4, 0x00d4, 0x00d4, 0x00b4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x08d4, 0x08d4, 0x08d4, 0x08f4, 0x08f4, 0x08f4, 0x08f5, 0x10f4, 0x10d5, 0x7912, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9911, 0x9931, 0x9931, 0x9931, 0x8132, 0x00d4, 0x00d4, 0x00d4, 0x00d3, 0x00d3, 0x00d3, 0x00d3, 0x00d3, 0x00b3, 0x00d3, 0x00b3, 0x00b3, 0x00b3, 0x00b3, 0x00b3, 0x00b3, 0x00b3, 0x00b3, 0x00b3, 0x00b3, 0x00b3, 0x00b3, 0x00b3, 0x00b3, 0x00b2, 0x00b3, 0x00d3, 0x00d3, 0x0214, 0x0295, + 0x00b1, 0x0091, 0x0091, 0x0091, 0x00b1, 0x0091, 0x00b1, 0x00b1, 0x0091, 0x00b1, 0x00b1, 0x00b1, 0x00b1, 0x00b1, 0x00b1, 0x00b1, 0x00b1, 0x00b1, 0x00b1, 0x00b1, 0x00b1, 0x00b1, 0x00b1, 0x00b1, 0x00b1, 0x00b1, 0x00b1, 0x00b1, 0x00b1, 0x0091, 0x0091, 0x00d2, 0x01b2, 0x0273, 0x0172, 0x00b1, 0x00b2, 0x00b1, 0x00b1, 0x00b2, 0x00b1, 0x00b1, 0x00b2, 0x00b1, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b1, 0x00b1, 0x00b2, 0x00b2, 0x00b1, 0x00b2, 0x00b2, 0x00b2, 0x01d3, 0x0253, 0x0112, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x0213, 0x01d3, 0x0092, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x0253, 0x0153, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x0294, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00f2, 0x0293, 0x00d2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b1, 0x00b2, 0x0172, 0x0253, 0x00b1, 0x00b1, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b1, 0x00b1, 0x00b1, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x08b2, 0x08b2, 0x08b2, 0x08d2, 0x08b2, 0x08d2, 0x08d3, 0x10d3, 0x40f2, 0x9911, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9911, 0x9931, 0x9931, 0x9931, 0x9931, 0x9911, 0x00d2, 0x00b2, 0x00b1, 0x00b1, 0x00b1, 0x00b1, 0x00b1, 0x00b1, 0x00b1, 0x00b1, 0x00b1, 0x00b1, 0x00b1, 0x00b1, 0x00b1, 0x00b1, 0x00b1, 0x00b1, 0x00b1, 0x0091, 0x00b1, 0x00b1, 0x00b1, 0x00b1, 0x00b1, 0x00b1, 0x00b1, 0x00b1, 0x0091, 0x0131, + 0x0090, 0x0070, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0111, 0x0212, 0x01d1, 0x00d0, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x00b0, 0x01d2, 0x01f2, 0x00b0, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x00b0, 0x00b0, 0x0171, 0x0212, 0x00b0, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x00b0, 0x00b0, 0x0090, 0x0090, 0x00b0, 0x00b0, 0x00b0, 0x00b0, 0x00b0, 0x00b0, 0x00b0, 0x00b0, 0x00b0, 0x00b0, 0x00b0, 0x00b0, 0x00b0, 0x00b0, 0x00b0, 0x00b0, 0x0090, 0x0090, 0x0090, 0x00b0, 0x00b0, 0x0090, 0x0090, 0x00f1, 0x0252, 0x00b0, 0x0090, 0x00b0, 0x0090, 0x0090, 0x00b0, 0x00b0, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x00b0, 0x00b0, 0x0090, 0x0090, 0x0272, 0x00b0, 0x0090, 0x00b0, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x00b0, 0x00b0, 0x00b0, 0x00b0, 0x0090, 0x0090, 0x0090, 0x0090, 0x01d1, 0x0171, 0x0091, 0x00b0, 0x00b0, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x01d1, 0x01d1, 0x0090, 0x00b0, 0x0090, 0x0090, 0x0090, 0x00b0, 0x00b0, 0x00b0, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0091, 0x0091, 0x0091, 0x0091, 0x08b1, 0x08b1, 0x08b1, 0x08b1, 0x08b1, 0x08b1, 0x08b1, 0x8912, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9911, 0x9931, 0x9931, 0x9931, 0x9911, 0x9911, 0x9912, 0x9931, 0x0091, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, + 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x008f, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x00b0, 0x0191, 0x0232, 0x0151, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x00b0, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x00b0, 0x01f2, 0x01d1, 0x00b0, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0110, 0x0252, 0x00d0, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x01b1, 0x0191, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x00b0, 0x0090, 0x0090, 0x0252, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0151, 0x0232, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x00b0, 0x01f1, 0x0171, 0x00b0, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0091, 0x00b0, 0x00b0, 0x00b1, 0x08b1, 0x08b0, 0x08b1, 0x08b1, 0x50f1, 0x9931, 0x9931, 0x9911, 0x9931, 0x9931, 0x9931, 0x9931, 0x9911, 0x9931, 0x9911, 0x9931, 0x9911, 0x9931, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0070, 0x0090, 0x0090, + 0x008f, 0x008f, 0x008f, 0x0090, 0x0090, 0x0090, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x008f, 0x008f, 0x0090, 0x008f, 0x008f, 0x008f, 0x008f, 0x00d0, 0x0212, 0x01d2, 0x00d0, 0x0090, 0x008f, 0x0090, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x0090, 0x008f, 0x008f, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x008f, 0x0090, 0x0090, 0x00f0, 0x0232, 0x01b1, 0x0090, 0x0090, 0x0090, 0x0090, 0x008f, 0x008f, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0232, 0x0130, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x00b0, 0x0232, 0x00d0, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x008f, 0x008f, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0252, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0232, 0x00f0, 0x0090, 0x0070, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x00f0, 0x0232, 0x00f1, 0x00b0, 0x008f, 0x008f, 0x0090, 0x008f, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x00b0, 0x00b0, 0x0890, 0x08b0, 0x0891, 0x10b0, 0x9931, 0x9911, 0x9911, 0x9931, 0x9931, 0x9931, 0x9911, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x008f, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, + 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x006f, 0x008f, 0x008f, 0x008f, 0x008f, 0x006f, 0x008f, 0x008f, 0x008f, 0x008f, 0x0171, 0x0232, 0x0151, 0x008f, 0x006f, 0x008f, 0x008f, 0x006f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x0070, 0x0090, 0x008f, 0x008f, 0x008f, 0x008f, 0x006f, 0x008f, 0x006f, 0x00f0, 0x0212, 0x0151, 0x006f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x008f, 0x008f, 0x0090, 0x008f, 0x008f, 0x008f, 0x008f, 0x0070, 0x0090, 0x01f1, 0x01b1, 0x0070, 0x008f, 0x008f, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x008f, 0x008f, 0x008f, 0x0090, 0x008f, 0x008f, 0x0130, 0x01f1, 0x0090, 0x0090, 0x0090, 0x0090, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x0252, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x008f, 0x0191, 0x01b1, 0x0090, 0x008f, 0x008f, 0x008f, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x008f, 0x0090, 0x0090, 0x008f, 0x0090, 0x006f, 0x008f, 0x0131, 0x0232, 0x00d0, 0x0090, 0x008f, 0x008f, 0x008f, 0x0090, 0x0090, 0x008f, 0x008f, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x60f1, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x0150, 0x0090, 0x0090, 0x0090, 0x006f, 0x0090, 0x006f, 0x008f, 0x008f, 0x0070, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, + 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x0070, 0x008f, 0x006f, 0x008f, 0x0110, 0x0232, 0x01b1, 0x00af, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x006f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x006f, 0x008f, 0x006f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x006f, 0x0110, 0x0252, 0x0130, 0x008f, 0x006f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x006f, 0x0170, 0x01f2, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x006f, 0x008f, 0x008f, 0x01d2, 0x0130, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x006f, 0x008f, 0x008f, 0x0252, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x00cf, 0x0232, 0x00af, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x006f, 0x008f, 0x008f, 0x006f, 0x006f, 0x006f, 0x008f, 0x0191, 0x0212, 0x006f, 0x008f, 0x008f, 0x006f, 0x006f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x008f, 0x18af, 0x9911, 0x9912, 0x9911, 0x9931, 0x9931, 0x9931, 0x9911, 0x9931, 0x9931, 0xa111, 0x9931, 0xa111, 0x29d2, 0x01b1, 0x008f, 0x006f, 0x008f, 0x006f, 0x008f, 0x008f, 0x006f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, + 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x008f, 0x008f, 0x006f, 0x006f, 0x006f, 0x008f, 0x006f, 0x006f, 0x006f, 0x006f, 0x008f, 0x01b1, 0x0232, 0x010f, 0x008f, 0x006f, 0x006f, 0x006f, 0x006f, 0x008f, 0x008f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x008f, 0x008f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x0150, 0x0232, 0x00cf, 0x006f, 0x006f, 0x008e, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x008f, 0x006f, 0x010f, 0x0212, 0x00af, 0x006f, 0x008f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x008f, 0x008f, 0x006f, 0x006f, 0x008f, 0x00af, 0x0212, 0x00af, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x008f, 0x008f, 0x006f, 0x006f, 0x0252, 0x006f, 0x008f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x008f, 0x006f, 0x006f, 0x01d1, 0x0130, 0x008f, 0x008f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x008f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x01f1, 0x01b1, 0x008f, 0x006f, 0x006f, 0x008f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x006f, 0x0090, 0x8111, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9912, 0x9932, 0x9931, 0x9931, 0x28d0, 0x01f2, 0x01d1, 0x008f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006e, 0x008f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, + 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x008e, 0x0110, 0x0212, 0x01b1, 0x008f, 0x006f, 0x006e, 0x006f, 0x006f, 0x006e, 0x008f, 0x006e, 0x006e, 0x006e, 0x006f, 0x006f, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006f, 0x008f, 0x006e, 0x006e, 0x006f, 0x006f, 0x008e, 0x006e, 0x0191, 0x01f1, 0x00cf, 0x006f, 0x006f, 0x006e, 0x008f, 0x006e, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x008f, 0x008f, 0x006e, 0x006e, 0x006f, 0x00cf, 0x0212, 0x0110, 0x008f, 0x006f, 0x006e, 0x008f, 0x006f, 0x006e, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x0150, 0x0191, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x0232, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x0110, 0x01f1, 0x008f, 0x006e, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x00af, 0x0212, 0x0110, 0x006f, 0x006f, 0x008f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x008f, 0x008f, 0x008f, 0x008f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x48d0, 0x9931, 0x9931, 0x9911, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x008e, 0x008f, 0x01b1, 0x01f2, 0x00af, 0x006f, 0x006e, 0x008f, 0x006e, 0x008f, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, + 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x008e, 0x01b1, 0x0212, 0x00ef, 0x006e, 0x006e, 0x006e, 0x006f, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006f, 0x006e, 0x006e, 0x008e, 0x01d1, 0x01f1, 0x008f, 0x006f, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x00ae, 0x01f1, 0x0170, 0x006f, 0x006e, 0x006e, 0x006e, 0x006f, 0x006e, 0x006e, 0x006f, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x0211, 0x00cf, 0x008f, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x0232, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x008f, 0x0212, 0x00cf, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x00ef, 0x0212, 0x00cf, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006e, 0x108f, 0x9911, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x006e, 0x006f, 0x006e, 0x0190, 0x0212, 0x00cf, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, + 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x0130, 0x0212, 0x0170, 0x008e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x004e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x00af, 0x01d1, 0x0190, 0x008e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x0190, 0x01f1, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x00ef, 0x0211, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x0232, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x0170, 0x0190, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x0150, 0x01f1, 0x008e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x68f0, 0x9931, 0x9931, 0x9911, 0x9931, 0x9931, 0x9931, 0x9911, 0x9931, 0x9931, 0x9931, 0x006e, 0x006e, 0x006e, 0x006e, 0x010f, 0x0212, 0x00ef, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, + 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x008e, 0x01b1, 0x01f2, 0x00cf, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x00af, 0x0212, 0x0191, 0x006e, 0x006e, 0x004e, 0x006e, 0x006e, 0x006e, 0x004e, 0x008e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x010f, 0x0212, 0x008e, 0x006e, 0x006e, 0x004e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x0190, 0x0150, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x0232, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x008e, 0x0211, 0x008e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x0190, 0x01b1, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x38b0, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9911, 0x9931, 0x9912, 0x004e, 0x006e, 0x006e, 0x004e, 0x006e, 0x010f, 0x0212, 0x010f, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, + 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x004e, 0x004e, 0x004d, 0x0130, 0x01f2, 0x0150, 0x006d, 0x006d, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x004e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x004e, 0x00ef, 0x0212, 0x010f, 0x004e, 0x006e, 0x004e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x004e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x004e, 0x004e, 0x00af, 0x0212, 0x00cf, 0x004e, 0x006e, 0x004e, 0x004e, 0x006e, 0x006e, 0x006e, 0x004e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x004e, 0x006e, 0x008e, 0x0232, 0x008e, 0x004e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x0232, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x004e, 0x006e, 0x004e, 0x006e, 0x006e, 0x01d1, 0x010f, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x004e, 0x006e, 0x006e, 0x004e, 0x006e, 0x004e, 0x006e, 0x008e, 0x01f1, 0x012f, 0x004e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x004e, 0x004e, 0x006e, 0x086e, 0x9911, 0x9931, 0x9931, 0x9931, 0x9931, 0x9912, 0x9931, 0x9931, 0x9911, 0x9931, 0x004e, 0x006d, 0x006e, 0x006e, 0x006e, 0x006e, 0x00ae, 0x0211, 0x0190, 0x004e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, + 0x004d, 0x004d, 0x004d, 0x004d, 0x006e, 0x006d, 0x004d, 0x004d, 0x004e, 0x004d, 0x004d, 0x006d, 0x006d, 0x008e, 0x01b1, 0x01d1, 0x00ce, 0x006d, 0x004d, 0x004d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x004d, 0x006e, 0x004d, 0x006e, 0x006e, 0x004e, 0x006d, 0x010f, 0x0212, 0x00ef, 0x006d, 0x006e, 0x006e, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x004d, 0x006d, 0x006e, 0x006e, 0x006e, 0x004d, 0x006e, 0x004d, 0x006e, 0x01d1, 0x0150, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x004e, 0x0130, 0x0191, 0x006e, 0x006e, 0x004e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x004e, 0x0232, 0x004e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x004e, 0x006e, 0x004d, 0x004d, 0x004e, 0x010f, 0x01d1, 0x006e, 0x006e, 0x006e, 0x006e, 0x006d, 0x004e, 0x004e, 0x004d, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006d, 0x006d, 0x00ce, 0x0212, 0x00ce, 0x006e, 0x006e, 0x006e, 0x006e, 0x006d, 0x004d, 0x004d, 0x006d, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x004e, 0x70f0, 0x9932, 0x9931, 0x9931, 0x9911, 0x9931, 0x9911, 0x9931, 0x9931, 0x8110, 0x006e, 0x006e, 0x004d, 0x006d, 0x006d, 0x006d, 0x006d, 0x008e, 0x01d1, 0x0190, 0x006d, 0x006d, 0x004e, 0x006e, 0x006e, 0x004d, 0x006d, 0x006e, 0x004d, 0x004d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x004d, 0x004d, 0x004d, 0x004d, + 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x006d, 0x004d, 0x004d, 0x004d, 0x0150, 0x01f1, 0x0150, 0x006d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x006d, 0x004d, 0x004e, 0x004d, 0x004d, 0x004d, 0x0150, 0x01f1, 0x00ae, 0x006d, 0x004d, 0x004d, 0x004d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x004d, 0x006d, 0x006d, 0x004d, 0x006d, 0x004d, 0x006d, 0x006d, 0x006d, 0x0170, 0x01b1, 0x006d, 0x006d, 0x004d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006d, 0x004e, 0x006e, 0x01d1, 0x010f, 0x006d, 0x006d, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x004d, 0x006d, 0x006e, 0x004e, 0x0212, 0x004d, 0x004d, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x004d, 0x006d, 0x006d, 0x006d, 0x006e, 0x01f1, 0x008e, 0x006d, 0x006e, 0x004d, 0x004d, 0x006d, 0x006d, 0x004e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x004d, 0x006d, 0x004d, 0x010f, 0x01f1, 0x006d, 0x006d, 0x004d, 0x006e, 0x006d, 0x006d, 0x006d, 0x004d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x004e, 0x006d, 0x006d, 0x004d, 0x40cf, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x70f0, 0x004d, 0x006d, 0x004d, 0x004d, 0x006d, 0x006d, 0x004d, 0x004d, 0x006d, 0x0191, 0x01b1, 0x006d, 0x004d, 0x006d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d +}; + +#endif // HAS_GRAPHICAL_TFT diff --git a/Marlin/src/lcd/tft/images/bootscreen_480x320x16.cpp b/Marlin/src/lcd/tft/images/bootscreen_480x320x16.cpp new file mode 100644 index 000000000..cff7c0b0a --- /dev/null +++ b/Marlin/src/lcd/tft/images/bootscreen_480x320x16.cpp @@ -0,0 +1,350 @@ +/** + * Marlin 3D Printer Firmware + * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin] + * + * Based on Sprinter and grbl. + * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + */ + +#include "../../../inc/MarlinConfigPre.h" + +#if HAS_GRAPHICAL_TFT + +extern const uint16_t marlin_logo_480x320x16[153600] = { + 0x188b, 0x188b, 0x188b, 0x188b, 0x188b, 0x188b, 0x188b, 0x188b, 0x188b, 0x188b, 0x188b, 0x188b, 0x188b, 0x188b, 0x188b, 0x188b, 0x188b, 0x188b, 0x188b, 0x188b, 0x188b, 0x188b, 0x188b, 0x188b, 0x188b, 0x188b, 0x188b, 0x188b, 0x188b, 0x188b, 0x188b, 0x188b, 0x188b, 0x188b, 0x188b, 0x188b, 0x188b, 0x188b, 0x188b, 0x188b, 0x188b, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x10ae, 0x00f8, 0x00f9, 0x00d6, 0x18ad, 0x188c, 0x188c, 0x18ac, 0x188c, 0x18ac, 0x18ac, 0x188c, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x188c, 0x188c, 0x188c, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x188d, 0x188d, 0x188d, 0x188d, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x011a, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x011a, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x188d, 0x18ad, 0x18ac, 0x18ac, 0x188d, 0x18ad, 0x18ad, 0x18ac, 0x18ad, 0x188c, 0x18ac, 0x18ac, 0x18ac, 0x188d, 0x18ac, 0x18ac, 0x00f9, 0x00f9, 0x18ac, 0x18ad, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188b, 0x188b, 0x188b, 0x188b, 0x188b, 0x188c, 0x188c, 0x18ab, 0x188b, 0x188b, 0x188b, 0x188b, 0x188b, 0x188b, 0x188b, 0x188b, 0x188b, 0x188b, 0x188b, 0x188b, 0x188b, 0x188b, 0x188b, 0x188b, 0x188b, + 0x188b, 0x188b, 0x188b, 0x188b, 0x188b, 0x188b, 0x188b, 0x188b, 0x188b, 0x188b, 0x188b, 0x188b, 0x188b, 0x188b, 0x188b, 0x188b, 0x188b, 0x188b, 0x188b, 0x188b, 0x188b, 0x188b, 0x188b, 0x188b, 0x188b, 0x188b, 0x188b, 0x188b, 0x188b, 0x188b, 0x188b, 0x188b, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x10ae, 0x00f7, 0x00f9, 0x00f6, 0x188d, 0x18ac, 0x18ac, 0x188c, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x188c, 0x188c, 0x18ac, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x011a, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x011a, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x011a, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ac, 0x18ad, 0x18ad, 0x188d, 0x18ac, 0x18ac, 0x188d, 0x188d, 0x18ac, 0x18ad, 0x18ad, 0x18ad, 0x18ac, 0x18ad, 0x00f9, 0x00f9, 0x18ac, 0x18ad, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x188c, 0x188c, 0x188c, 0x188c, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188b, 0x188b, 0x188b, 0x188b, 0x188b, 0x188b, 0x188b, 0x188b, 0x188b, 0x188b, 0x188b, 0x188b, 0x188b, 0x188b, 0x188b, 0x188b, 0x188b, 0x188b, 0x188b, 0x188b, + 0x188b, 0x188b, 0x188b, 0x188b, 0x188b, 0x188b, 0x188b, 0x188b, 0x188b, 0x188b, 0x188b, 0x188b, 0x188b, 0x188b, 0x188b, 0x188b, 0x188b, 0x188b, 0x188b, 0x188b, 0x188b, 0x188b, 0x188b, 0x188b, 0x188b, 0x188b, 0x188b, 0x188b, 0x188b, 0x188b, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x188c, 0x10af, 0x00f8, 0x00f8, 0x00f7, 0x18ad, 0x18ac, 0x18ac, 0x18ac, 0x188c, 0x188c, 0x188d, 0x18ac, 0x18ad, 0x18ac, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x011a, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x011a, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x011a, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ac, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ac, 0x18ad, 0x00f9, 0x00f9, 0x18ac, 0x18ad, 0x18ac, 0x18ac, 0x18ad, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x188c, 0x188c, 0x188c, 0x188c, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188b, 0x188b, 0x188b, 0x188b, 0x188b, 0x188b, 0x188b, 0x188b, 0x188b, 0x188b, 0x188b, 0x188b, 0x188b, 0x188b, 0x188b, 0x188b, + 0x188b, 0x188b, 0x188b, 0x188b, 0x188b, 0x188b, 0x188b, 0x188b, 0x188b, 0x188b, 0x188b, 0x188b, 0x188b, 0x188b, 0x188b, 0x188b, 0x188b, 0x188b, 0x188b, 0x188b, 0x188b, 0x188b, 0x188b, 0x188b, 0x188b, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x188c, 0x18ac, 0x18ac, 0x10af, 0x00f7, 0x00f8, 0x00f6, 0x18ad, 0x188c, 0x188c, 0x188c, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x188c, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x011a, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x011a, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x011a, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x00f9, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x188c, 0x188c, 0x188c, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188b, 0x188b, 0x188b, 0x188b, 0x188b, 0x188b, + 0x188b, 0x188b, 0x188b, 0x188b, 0x188b, 0x188b, 0x188b, 0x188b, 0x188b, 0x188b, 0x188b, 0x188b, 0x188b, 0x188b, 0x188b, 0x188b, 0x188b, 0x188b, 0x188b, 0x188b, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x18ac, 0x188c, 0x18ac, 0x18ac, 0x10af, 0x00f8, 0x00f9, 0x00d6, 0x18ad, 0x18ad, 0x188c, 0x18ac, 0x18ad, 0x18ac, 0x18ad, 0x188d, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x011a, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x011a, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x011a, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x208d, 0x18ad, 0x18ad, 0x208d, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x00f9, 0x00f9, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188b, 0x188b, 0x188b, 0x188b, 0x188b, 0x188b, + 0x188b, 0x188b, 0x188b, 0x188b, 0x188b, 0x188b, 0x188b, 0x188b, 0x188b, 0x188b, 0x188b, 0x188b, 0x188b, 0x188b, 0x188b, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x188c, 0x188c, 0x188c, 0x188c, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x188c, 0x18ac, 0x188d, 0x18ac, 0x18ad, 0x18af, 0x00f8, 0x00f9, 0x00f6, 0x18ae, 0x188d, 0x18ac, 0x188d, 0x18ac, 0x18ad, 0x18ac, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x011a, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x011a, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x011a, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x10d1, 0x10d3, 0x10d3, 0x10d1, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x00f9, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x188c, 0x188c, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, + 0x188b, 0x188b, 0x188b, 0x188b, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188b, 0x188b, 0x188b, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ad, 0x18ad, 0x18ac, 0x188c, 0x18ac, 0x188d, 0x10af, 0x00f8, 0x0119, 0x00d7, 0x18ae, 0x18ac, 0x18ac, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x011a, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x011a, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x011a, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x00f7, 0x0119, 0x0119, 0x011a, 0x0119, 0x00f7, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x00f9, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, + 0x188b, 0x188c, 0x188c, 0x188c, 0x188b, 0x188b, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x188d, 0x18ad, 0x18ad, 0x18cf, 0x00f8, 0x0119, 0x00f6, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x011a, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x011a, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x011a, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x08f5, 0x011a, 0x0119, 0x00f7, 0x00f7, 0x0119, 0x011a, 0x08f5, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x188c, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, + 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x188c, 0x18ac, 0x18ac, 0x18ac, 0x188c, 0x188c, 0x188c, 0x188c, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cf, 0x00f9, 0x0119, 0x00f7, 0x18ae, 0x18ad, 0x188d, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x011a, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x011a, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18cd, 0x18ae, 0x0119, 0x0119, 0x10d3, 0x18ad, 0x18ad, 0x08f3, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x188c, 0x188c, 0x188c, 0x18ac, 0x18ac, 0x188c, 0x188c, 0x188c, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x188c, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x18ac, 0x188c, + 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x188c, 0x188c, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x188c, 0x188c, 0x188c, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cf, 0x00f8, 0x00f9, 0x0117, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x011a, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x011a, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ae, 0x0119, 0x0119, 0x18ae, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18af, 0x011a, 0x0119, 0x10d1, 0x18ad, 0x18ad, 0x18d0, 0x0119, 0x011a, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x011a, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x188c, 0x188c, 0x188c, 0x188c, 0x18ac, 0x188c, 0x188c, 0x188c, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x188c, 0x188c, 0x18ac, 0x08b2, 0x08d2, + 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x188c, 0x188c, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x188c, 0x188c, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18af, 0x00f9, 0x0119, 0x00f8, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x10d2, 0x08f6, 0x0119, 0x0119, 0x0119, 0x0119, 0x0118, 0x08f6, 0x10d2, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x011a, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x011a, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x011a, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x08d3, 0x18ad, 0x18ad, 0x08f3, 0x0119, 0x00f9, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x188c, 0x188c, 0x18ac, 0x18ac, 0x18ac, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x00f8, 0x00f8, + 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x188d, 0x18ad, 0x18ad, 0x18b0, 0x0118, 0x0119, 0x00f7, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x18ae, 0x18b0, 0x0118, 0x0119, 0x0119, 0x0119, 0x011a, 0x0119, 0x0119, 0x011a, 0x0119, 0x0119, 0x0117, 0x10d0, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x011a, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x011a, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x10d2, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x08f5, 0x0119, 0x011a, 0x00f7, 0x00f7, 0x0119, 0x011a, 0x08f5, 0x20ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x0119, 0x011a, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x188c, 0x188c, 0x188c, 0x18ac, 0x18ac, 0x18ac, 0x188c, 0x188c, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x188c, 0x188c, 0x00f9, 0x00f9, + 0x188c, 0x188c, 0x188c, 0x188c, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x20ad, 0x18b0, 0x0119, 0x0119, 0x00f7, 0x18ce, 0x18ae, 0x18ad, 0x20ad, 0x18ae, 0x18ae, 0x18ae, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x20ae, 0x10d2, 0x0119, 0x011a, 0x0119, 0x00f6, 0x10f2, 0x10d1, 0x10d0, 0x10d1, 0x10d3, 0x08f6, 0x00f9, 0x00f9, 0x0119, 0x10d2, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x011a, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x011a, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x10d2, 0x0119, 0x0119, 0x10d2, 0x18ae, 0x20ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ce, 0x00f7, 0x0119, 0x011a, 0x0119, 0x011a, 0x00f7, 0x18ce, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x00f8, 0x00f8, + 0x188c, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x188c, 0x188c, 0x188c, 0x188c, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x188c, 0x188c, 0x188c, 0x18ac, 0x18ac, 0x18ac, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ae, 0x18ad, 0x18ae, 0x18d0, 0x0118, 0x011a, 0x00f7, 0x18ce, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x10d2, 0x0119, 0x011a, 0x00f8, 0x18d0, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x10d0, 0x0119, 0x0119, 0x0119, 0x10d2, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x011a, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x011a, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x10d2, 0x0119, 0x0119, 0x10d2, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ae, 0x18cd, 0x10d1, 0x0119, 0x0119, 0x10d2, 0x18ae, 0x18ae, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ae, 0x0119, 0x011a, 0x18ae, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x188c, 0x188c, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x00f9, 0x00f9, + 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18cf, 0x00f9, 0x0119, 0x00f7, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18cf, 0x0119, 0x0119, 0x00f7, 0x18ae, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ae, 0x00f7, 0x0119, 0x0118, 0x18af, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x011a, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x011a, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ae, 0x18ad, 0x10d2, 0x0119, 0x0119, 0x10d2, 0x18ce, 0x18ad, 0x18ae, 0x18ad, 0x18cd, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x011a, 0x0119, 0x20ad, 0x18ad, 0x18cd, 0x18cd, 0x20ae, 0x18ad, 0x18ad, 0x10d2, 0x0119, 0x00f9, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x188c, 0x188c, 0x188c, 0x188c, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x188c, 0x18ac, 0x00f9, 0x00f8, + 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x20ae, 0x18ad, 0x18ad, 0x18d0, 0x0119, 0x0119, 0x00f7, 0x18ce, 0x18ad, 0x18ae, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x08d5, 0x011a, 0x00f8, 0x18cf, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18d0, 0x0119, 0x0119, 0x08f5, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x011a, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x011a, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x10d2, 0x011a, 0x011a, 0x10d2, 0x18ce, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x0119, 0x0119, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x10d2, 0x0119, 0x011a, 0x08f3, 0x18ad, 0x18cd, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x188d, 0x00f9, 0x00f8, + 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x188d, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x10d0, 0x0118, 0x011a, 0x00f7, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x011a, 0x011a, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x18ae, 0x18ae, 0x08f5, 0x0119, 0x0119, 0x0118, 0x10d1, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x0119, 0x0119, 0x08f3, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x08f5, 0x0119, 0x0119, 0x0119, 0x08f5, 0x18ce, 0x18ad, 0x18ae, 0x18ad, 0x08f3, 0x0119, 0x011a, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x011a, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x011a, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x10d1, 0x0119, 0x011a, 0x10d2, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x18ae, 0x011a, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x10d2, 0x0119, 0x0119, 0x08f5, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x188c, 0x188c, 0x188c, 0x188c, 0x18ac, 0x188c, 0x00f9, 0x00f9, + 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x188c, 0x188c, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18b0, 0x00f8, 0x0119, 0x00f7, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x00f9, 0x10d2, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ce, 0x00f7, 0x011a, 0x00f9, 0x0119, 0x011a, 0x0119, 0x08f4, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x10d1, 0x0119, 0x0119, 0x18ce, 0x18ad, 0x18ad, 0x18ad, 0x00f7, 0x0119, 0x0119, 0x0119, 0x011a, 0x011a, 0x00f7, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x0119, 0x0119, 0x10d1, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x011a, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x011a, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x10d1, 0x0119, 0x0119, 0x10d2, 0x18ad, 0x18ae, 0x18cd, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ae, 0x18cd, 0x20ad, 0x18ad, 0x20ad, 0x18ad, 0x0119, 0x0119, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x011a, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x10d1, 0x0119, 0x0119, 0x08f5, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x188c, 0x188c, 0x18ac, 0x188c, 0x00f9, 0x00f9, + 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x10cf, 0x10d0, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x10cf, 0x0119, 0x0119, 0x0117, 0x18ae, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x10d2, 0x0118, 0x0119, 0x0119, 0x0118, 0x10d1, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x20ad, 0x08f3, 0x0119, 0x0119, 0x10d2, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x08f3, 0x011a, 0x0119, 0x08f3, 0x10d1, 0x00f7, 0x0119, 0x00f9, 0x18af, 0x18ad, 0x18ae, 0x18ad, 0x20ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x08f3, 0x0119, 0x00f7, 0x18ad, 0x20ad, 0x18ad, 0x10d2, 0x011a, 0x0119, 0x08f3, 0x10d0, 0x10f4, 0x0119, 0x0119, 0x10d2, 0x18ad, 0x18ad, 0x18ad, 0x0117, 0x0119, 0x08f3, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x011a, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x011a, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x10d2, 0x0119, 0x0119, 0x10d2, 0x18ad, 0x18ad, 0x20ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x00f9, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x0119, 0x011a, 0x08f5, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x00f9, 0x00f9, + 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x188c, 0x188c, 0x188c, 0x188c, 0x188c, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18af, 0x08f5, 0x0139, 0x00fa, 0x011a, 0x0119, 0x08f5, 0x18af, 0x18ad, 0x18ae, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x10d0, 0x0119, 0x011a, 0x0117, 0x18ce, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x10d1, 0x0119, 0x0119, 0x00fa, 0x0119, 0x0119, 0x0119, 0x10d1, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x20ae, 0x20ad, 0x08f5, 0x011a, 0x0119, 0x10d2, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x08f6, 0x0119, 0x08f4, 0x20ad, 0x18ae, 0x18ae, 0x0119, 0x0119, 0x10d2, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ae, 0x08d4, 0x0119, 0x08f6, 0x18ad, 0x18ad, 0x18ad, 0x08d4, 0x0119, 0x00f7, 0x18ae, 0x18ad, 0x20ad, 0x00f7, 0x011a, 0x10d3, 0x18ad, 0x18ad, 0x18ad, 0x08f6, 0x011a, 0x08f3, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x011a, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x011a, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x10d2, 0x0119, 0x00f9, 0x10d2, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x20ad, 0x18ae, 0x18ad, 0x18ae, 0x18ae, 0x011a, 0x0119, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x011a, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x10d2, 0x08f3, 0x08f3, 0x10d2, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ac, 0x18ac, 0x00f9, 0x00f9, + 0x188c, 0x18ac, 0x18ac, 0x18ac, 0x188c, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cf, 0x00f9, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x011a, 0x0118, 0x18cf, 0x20ad, 0x18ad, 0x20ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18b0, 0x00f9, 0x0119, 0x00f7, 0x18ae, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x18ae, 0x0118, 0x0119, 0x08f7, 0x10d1, 0x10d1, 0x00f7, 0x0119, 0x0118, 0x20ae, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x08f5, 0x011a, 0x0119, 0x10d2, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18cd, 0x00f6, 0x011a, 0x08f3, 0x18ae, 0x18ad, 0x18ad, 0x00f9, 0x0119, 0x10d2, 0x18ad, 0x20ad, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ae, 0x08d4, 0x0119, 0x08f6, 0x18ad, 0x18ad, 0x18ad, 0x08d4, 0x0119, 0x00f7, 0x18ae, 0x18ad, 0x20ad, 0x00f7, 0x011a, 0x10d3, 0x18ad, 0x18ad, 0x18ad, 0x08f6, 0x011a, 0x08f3, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x011a, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x011a, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x10d2, 0x011a, 0x011a, 0x10d2, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x10d2, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x00f9, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x20ad, 0x18ae, 0x18ad, 0x18ad, 0x18ae, 0x00f7, 0x0119, 0x0119, 0x00f9, 0x0119, 0x00f7, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ae, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x00f9, 0x00f9, + 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x08f5, 0x0119, 0x011a, 0x0119, 0x0119, 0x00f9, 0x011a, 0x0119, 0x0119, 0x08f5, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ae, 0x0117, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x00f9, 0x10d1, 0x18cd, 0x18ad, 0x10d1, 0x00f9, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x08f4, 0x011a, 0x011a, 0x10f1, 0x18ae, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x08f5, 0x0119, 0x00f9, 0x10d0, 0x18ae, 0x08d5, 0x011a, 0x0119, 0x10d0, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x08f3, 0x0119, 0x00f7, 0x18ad, 0x20ad, 0x18ad, 0x10d2, 0x011a, 0x0119, 0x08f3, 0x10d0, 0x10f4, 0x0119, 0x0119, 0x10d2, 0x18ad, 0x18ad, 0x18ad, 0x0117, 0x0119, 0x08f3, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x011a, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x011a, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ae, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x10d2, 0x0119, 0x00f9, 0x10d2, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ae, 0x18ad, 0x10f2, 0x011a, 0x0119, 0x10d2, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x011a, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x08f5, 0x011a, 0x011a, 0x0119, 0x0119, 0x0119, 0x011a, 0x08f5, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ae, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, + 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x00f9, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x20ad, 0x18ad, 0x18ad, 0x18ae, 0x00f7, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x011a, 0x011a, 0x0119, 0x0119, 0x011a, 0x0119, 0x10b1, 0x18ad, 0x18ad, 0x10d1, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ae, 0x18ad, 0x18cd, 0x08f5, 0x011a, 0x0119, 0x10d2, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x10cf, 0x00f9, 0x0119, 0x00f9, 0x0119, 0x0119, 0x0119, 0x00f6, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x10d1, 0x0119, 0x0119, 0x18ce, 0x18ad, 0x18ad, 0x18ad, 0x00f7, 0x0119, 0x0119, 0x0119, 0x011a, 0x011a, 0x00f7, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x0119, 0x0119, 0x10d1, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x011a, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x011a, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x10d2, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x08f5, 0x0119, 0x00f9, 0x10d2, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x011a, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ae, 0x18cd, 0x18ae, 0x0119, 0x011a, 0x0119, 0x0119, 0x0119, 0x011a, 0x011a, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, + 0x18ac, 0x18ac, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x011a, 0x0119, 0x0119, 0x0119, 0x18ae, 0x20ad, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x0118, 0x0119, 0x00f7, 0x10d1, 0x10d1, 0x00f7, 0x0119, 0x00f8, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x20ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x08d5, 0x0119, 0x0119, 0x10d2, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x10d0, 0x0118, 0x0119, 0x0119, 0x011a, 0x08f5, 0x18ce, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x0119, 0x0119, 0x08f3, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x08f5, 0x0119, 0x0119, 0x0119, 0x08f5, 0x18ce, 0x18ad, 0x18ae, 0x18ad, 0x08f3, 0x0119, 0x011a, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x011a, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x011a, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18cd, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x08f5, 0x0119, 0x011a, 0x10d2, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18af, 0x0119, 0x0119, 0x011a, 0x0119, 0x0119, 0x011a, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x00f8, 0x18ce, 0x18ad, 0x18ad, 0x18ae, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, + 0x18ad, 0x188d, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x10f1, 0x00f9, 0x0119, 0x0119, 0x0119, 0x0119, 0x00f9, 0x10f1, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x08f5, 0x011a, 0x0119, 0x10d2, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x011a, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x08d5, 0x011a, 0x00f8, 0x18cf, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18d0, 0x0119, 0x0119, 0x08f5, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x011a, 0x0119, 0x18ad, 0x18ae, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x011a, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x011a, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ae, 0x18ad, 0x0119, 0x011a, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x08d5, 0x0119, 0x0119, 0x10d2, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ae, 0x18ad, 0x18ae, 0x18ad, 0x0119, 0x0119, 0x20ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x0119, 0x011a, 0x0119, 0x0119, 0x0119, 0x011a, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x00f7, 0x18ce, 0x18ad, 0x18ae, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x00f9, 0x0119, + 0x18ad, 0x18ac, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x011a, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x011a, 0x0119, 0x08f5, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ae, 0x18ad, 0x10d1, 0x00f8, 0x0119, 0x0119, 0x00f8, 0x10d1, 0x18ad, 0x18ae, 0x20ad, 0x18ad, 0x18ad, 0x18ae, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x08f5, 0x011a, 0x0119, 0x10d2, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x011a, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18cf, 0x0119, 0x0119, 0x00f7, 0x18ae, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ae, 0x18ad, 0x18ae, 0x00f7, 0x0119, 0x0119, 0x18af, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x011a, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ae, 0x18ad, 0x18ae, 0x18cd, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x011a, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ae, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x011a, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x08f5, 0x0119, 0x0119, 0x10d2, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x20ae, 0x18cd, 0x18ad, 0x20ad, 0x00f9, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x08f5, 0x0119, 0x0119, 0x011a, 0x0119, 0x0119, 0x0119, 0x08f5, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ce, 0x0118, 0x0119, 0x0117, 0x18ce, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x08d3, 0x10d3, + 0x18ad, 0x18ac, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x011a, 0x0119, 0x0119, 0x0119, 0x011a, 0x0119, 0x011a, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x011a, 0x0119, 0x011a, 0x0119, 0x0119, 0x011a, 0x08f5, 0x18ae, 0x18cd, 0x18ae, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ae, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ae, 0x18ae, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x08f5, 0x011a, 0x0119, 0x10d2, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x10d2, 0x0119, 0x011a, 0x00f8, 0x18d0, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x10d0, 0x0118, 0x0119, 0x0119, 0x10d1, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x10d2, 0x0119, 0x0119, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x0119, 0x011a, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x011a, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x0119, 0x0119, 0x10d2, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ae, 0x18ad, 0x08f5, 0x0119, 0x0119, 0x10d2, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x011a, 0x0119, 0x20ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ce, 0x00f7, 0x0119, 0x0119, 0x011a, 0x0119, 0x00f7, 0x18ce, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x10d0, 0x0119, 0x011a, 0x00f7, 0x18ce, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x011a, 0x0119, 0x18ad, 0x18ae, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x10d2, 0x0119, 0x0119, 0x08f5, 0x20ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x20ae, 0x18cd, 0x18cd, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x08f5, 0x011a, 0x0119, 0x18d0, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x20ae, 0x10d2, 0x0119, 0x011a, 0x0119, 0x00f6, 0x10f2, 0x10d1, 0x10d0, 0x10d1, 0x10d3, 0x08f6, 0x011a, 0x0119, 0x0119, 0x10d2, 0x20ae, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x10d2, 0x0119, 0x0119, 0x10d2, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x011a, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x10d2, 0x0119, 0x0119, 0x10d2, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ae, 0x08f5, 0x0119, 0x0119, 0x10d2, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ae, 0x18ad, 0x20ad, 0x18ad, 0x18ae, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x10d2, 0x08f3, 0x08f3, 0x10d2, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x10cf, 0x0119, 0x011a, 0x00f7, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x20ad, 0x18ad, 0x18ad, 0x20ad, 0x10d2, 0x0119, 0x011a, 0x08f6, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x20ad, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x08f5, 0x013a, 0x00f8, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x18ae, 0x18b0, 0x0118, 0x0119, 0x0119, 0x0119, 0x011a, 0x0119, 0x0119, 0x011a, 0x0119, 0x0119, 0x0118, 0x10d0, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18cd, 0x10d2, 0x00f9, 0x0119, 0x08f5, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ae, 0x18ad, 0x18ae, 0x18ae, 0x18ad, 0x011a, 0x011a, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x011a, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ae, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x08f5, 0x0119, 0x00f9, 0x10d2, 0x18cd, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ae, 0x08f5, 0x0119, 0x0119, 0x10d2, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ae, 0x18ae, 0x18ad, 0x0119, 0x00f9, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18cd, 0x18ad, 0x18ad, 0x20ae, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18d0, 0x0119, 0x0119, 0x00f7, 0x18ce, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18cf, 0x0119, 0x00f9, 0x0117, 0x18ae, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x20ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x10d2, 0x08f6, 0x0119, 0x0119, 0x0119, 0x0119, 0x0118, 0x08f5, 0x10d1, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x10d2, 0x0119, 0x011a, 0x08f5, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x10d2, 0x0119, 0x011a, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x011a, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x08f5, 0x011a, 0x0119, 0x10d2, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x08f5, 0x0119, 0x0119, 0x10d2, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x00f9, 0x011a, 0x10d2, 0x18ad, 0x20ad, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ae, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18af, 0x0118, 0x0119, 0x0117, 0x18ae, 0x18ae, 0x18ae, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ae, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ae, 0x10d0, 0x0119, 0x0119, 0x0117, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x18ae, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x011a, 0x0119, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x18ae, 0x10d2, 0x00f9, 0x011a, 0x08f5, 0x18ad, 0x18ad, 0x20ad, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x10d2, 0x0119, 0x0119, 0x10d2, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x011a, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ae, 0x20ad, 0x18ad, 0x18ad, 0x08f5, 0x011a, 0x00f9, 0x10d2, 0x18ae, 0x18ad, 0x18cd, 0x18ad, 0x20ad, 0x18ae, 0x18ae, 0x18ad, 0x20ae, 0x18ad, 0x08d5, 0x0119, 0x00f9, 0x10d2, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x10f3, 0x0119, 0x0119, 0x10d2, 0x18ae, 0x18ad, 0x18ae, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18cd, 0x18ad, 0x18ad, 0x18ae, 0x18ae, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x10d0, 0x00f9, 0x011a, 0x00f7, 0x18ae, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, + 0x18ad, 0x20ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x011a, 0x0119, 0x0119, 0x011a, 0x0119, 0x0119, 0x011a, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x011a, 0x08f5, 0x18ad, 0x18ad, 0x18d0, 0x00f9, 0x0119, 0x00f7, 0x18ce, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x10d0, 0x10d3, 0x08f4, 0x08f3, 0x08f3, 0x10f3, 0x08f3, 0x08f3, 0x08f3, 0x08f3, 0x08f3, 0x08f3, 0x08f3, 0x08f3, 0x08f3, 0x10d3, 0x10d3, 0x08f3, 0x08f3, 0x08d4, 0x10d3, 0x10d0, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x18ae, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x10d2, 0x0119, 0x0119, 0x08f5, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x10d2, 0x0119, 0x0119, 0x08f5, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x011a, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x08f5, 0x0119, 0x0119, 0x10d2, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x08f5, 0x0119, 0x011a, 0x10d2, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x10d2, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x08f5, 0x0119, 0x0119, 0x10d2, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x18cf, 0x0118, 0x0119, 0x00f7, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, + 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x011a, 0x0119, 0x0119, 0x011a, 0x0119, 0x0119, 0x011a, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x011a, 0x011a, 0x08f5, 0x18ad, 0x18ad, 0x18b0, 0x0119, 0x0119, 0x00f7, 0x18ce, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x08f3, 0x0119, 0x0119, 0x0119, 0x011a, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x18cf, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x011a, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x20ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x20ad, 0x10d2, 0x0119, 0x0119, 0x08f5, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x10d2, 0x011a, 0x0119, 0x08f5, 0x18ae, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x011a, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x08f5, 0x0119, 0x0119, 0x10d2, 0x20ad, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x08f5, 0x011a, 0x011a, 0x10d1, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ae, 0x20ad, 0x18cd, 0x10f3, 0x011a, 0x0119, 0x10d2, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x08f5, 0x0119, 0x0119, 0x10d2, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x10d2, 0x08f3, 0x08f3, 0x10d2, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ae, 0x18af, 0x00f9, 0x0119, 0x00f7, 0x18ce, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, + 0x10d2, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ae, 0x10d1, 0x0119, 0x0119, 0x08f5, 0x18ae, 0x18ad, 0x18af, 0x0119, 0x011a, 0x0117, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x08f3, 0x00f9, 0x011a, 0x0119, 0x011a, 0x011a, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x00f9, 0x18d0, 0x18ae, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x011a, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x10d2, 0x00f9, 0x0119, 0x08f5, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x10d2, 0x011a, 0x0119, 0x08f5, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x011a, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ae, 0x08f5, 0x0119, 0x00f9, 0x10d2, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x20ad, 0x18ad, 0x08f5, 0x0119, 0x011a, 0x10d2, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x18ae, 0x18ad, 0x18cd, 0x08f5, 0x0119, 0x0119, 0x10d2, 0x20ae, 0x18ae, 0x18ae, 0x18ad, 0x08f5, 0x0119, 0x0119, 0x10d2, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x08f7, 0x0119, 0x0119, 0x0119, 0x0119, 0x08f7, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18d0, 0x0119, 0x0119, 0x00f7, 0x18ce, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ae, 0x08f4, + 0x0119, 0x10d2, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x10d2, 0x0119, 0x0119, 0x08f7, 0x18ae, 0x18cd, 0x18af, 0x0119, 0x011a, 0x00f9, 0x011a, 0x011a, 0x011a, 0x011a, 0x011a, 0x011a, 0x011a, 0x011a, 0x011a, 0x011a, 0x011a, 0x011a, 0x011a, 0x011a, 0x011a, 0x011a, 0x011a, 0x011a, 0x011a, 0x011a, 0x011a, 0x011a, 0x011a, 0x011a, 0x011a, 0x011a, 0x011a, 0x011a, 0x011a, 0x011a, 0x011a, 0x011a, 0x0119, 0x0119, 0x011a, 0x011a, 0x0119, 0x011a, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x00f9, 0x10cf, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x011a, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x10d2, 0x0119, 0x0119, 0x08f5, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x10d2, 0x0119, 0x0119, 0x08f5, 0x18ad, 0x18ae, 0x18ad, 0x18cd, 0x20ae, 0x20ae, 0x18ad, 0x18ad, 0x011a, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x08f5, 0x0119, 0x0119, 0x10d2, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x08f5, 0x011a, 0x0119, 0x18cf, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x20ad, 0x18ad, 0x08d5, 0x0119, 0x0119, 0x10d2, 0x18ce, 0x18ae, 0x18ad, 0x18ad, 0x08f5, 0x0119, 0x0119, 0x10d1, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ae, 0x08f5, 0x0119, 0x0119, 0x00f7, 0x00f7, 0x0119, 0x0119, 0x08f5, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18b0, 0x0119, 0x0119, 0x00f7, 0x18ae, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x08f5, 0x0119, + 0x0119, 0x0119, 0x10d2, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18d0, 0x0119, 0x011a, 0x00f7, 0x18ae, 0x18ad, 0x18b0, 0x0118, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x011a, 0x0119, 0x0119, 0x0119, 0x0119, 0x011a, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x011a, 0x0119, 0x0118, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x011a, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ae, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x10d2, 0x0119, 0x0119, 0x08f5, 0x18ae, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ae, 0x18ad, 0x10d2, 0x0119, 0x0119, 0x08f5, 0x20ad, 0x18ae, 0x20ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x011a, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ae, 0x08f5, 0x0119, 0x0119, 0x10d2, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x08f5, 0x0119, 0x00f9, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18cd, 0x18ae, 0x18ad, 0x18ad, 0x08f5, 0x0119, 0x011a, 0x10d2, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x08f5, 0x011a, 0x0119, 0x10d1, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x08f3, 0x18ad, 0x18ad, 0x08f3, 0x00f9, 0x011a, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18af, 0x0119, 0x0119, 0x00f7, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x08f5, 0x0119, 0x0119, + 0x08f5, 0x0119, 0x011a, 0x10d2, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x011a, 0x0119, 0x18ad, 0x18ae, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x10d0, 0x00f9, 0x0119, 0x0117, 0x18ae, 0x18ae, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x08f3, 0x0119, 0x011a, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x011a, 0x011a, 0x00f7, 0x18af, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x011a, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18cd, 0x10d2, 0x00f9, 0x0119, 0x08f5, 0x20ae, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x10d2, 0x0119, 0x0119, 0x08d5, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x011a, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x20ae, 0x08f5, 0x0119, 0x00f9, 0x10d2, 0x18cd, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x08f5, 0x0119, 0x0119, 0x10d2, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x08f5, 0x011a, 0x0119, 0x10d2, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ae, 0x0119, 0x011a, 0x10d0, 0x18ad, 0x18ad, 0x18d0, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18b0, 0x0119, 0x0119, 0x00f7, 0x18ce, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x10d2, 0x011a, 0x011a, 0x10d2, + 0x18ad, 0x08f5, 0x0119, 0x011a, 0x10d2, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x011a, 0x0119, 0x0119, 0x0119, 0x011a, 0x0119, 0x011a, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x011a, 0x00f9, 0x00f9, 0x0119, 0x011a, 0x0119, 0x08f5, 0x18ad, 0x18ad, 0x10d0, 0x0119, 0x00f9, 0x00f7, 0x18ae, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x08f3, 0x0119, 0x0119, 0x0119, 0x011a, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x00f9, 0x0119, 0x0119, 0x08f6, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x011a, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x10d1, 0x08f3, 0x08f3, 0x10d2, 0x20ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x10d2, 0x0119, 0x011a, 0x08f5, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ae, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x10d2, 0x0119, 0x011a, 0x08f5, 0x18ae, 0x18ad, 0x18ad, 0x18cd, 0x18cd, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x011a, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x08f5, 0x011a, 0x0119, 0x10d2, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x20ad, 0x18ad, 0x20ae, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x08f5, 0x0119, 0x0119, 0x10d2, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x08f5, 0x0119, 0x0119, 0x10d2, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x011a, 0x011a, 0x08d3, 0x18ad, 0x18ad, 0x08d3, 0x011a, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18af, 0x0119, 0x0119, 0x00f7, 0x18ae, 0x18ae, 0x18ae, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ae, 0x10d2, 0x0119, 0x0119, 0x10d3, 0x18ad, + 0x18ad, 0x18ad, 0x08f5, 0x0119, 0x0119, 0x10d2, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x011a, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x08f5, 0x18ad, 0x18ad, 0x10b0, 0x0119, 0x0119, 0x08f7, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x08f3, 0x0119, 0x0119, 0x0119, 0x011a, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x011a, 0x0139, 0x011a, 0x0119, 0x08f6, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x011a, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x18ae, 0x18ae, 0x18ad, 0x20ce, 0x00f7, 0x011a, 0x0119, 0x0119, 0x0119, 0x00f7, 0x18ce, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x18ae, 0x10d2, 0x00f9, 0x011a, 0x08f5, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x10d2, 0x0119, 0x0119, 0x08f5, 0x20ad, 0x18ad, 0x18ad, 0x18ae, 0x20ae, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x011a, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x08f5, 0x011a, 0x00f9, 0x10d2, 0x18ae, 0x18ad, 0x18cd, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x011a, 0x011a, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x08d5, 0x0119, 0x0119, 0x10d2, 0x18ae, 0x18ad, 0x20ad, 0x18ad, 0x08d5, 0x0119, 0x0119, 0x10d2, 0x18ae, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x08f5, 0x0119, 0x0119, 0x00f7, 0x00f7, 0x0139, 0x0119, 0x08f5, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18b0, 0x0119, 0x0119, 0x00f7, 0x18ae, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x10d2, 0x0119, 0x0119, 0x08f5, 0x18ad, 0x20ad, + 0x18ae, 0x18ad, 0x18ad, 0x08d5, 0x011a, 0x0119, 0x10d2, 0x18ad, 0x18ad, 0x20ad, 0x18ae, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x10d2, 0x0119, 0x0119, 0x08f5, 0x18ad, 0x18ad, 0x18b0, 0x0119, 0x0119, 0x00f7, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x10d3, 0x011a, 0x0119, 0x0119, 0x011a, 0x011a, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x011a, 0x0119, 0x0116, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x011a, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x20ae, 0x18ad, 0x18ad, 0x18cd, 0x08f5, 0x0119, 0x0119, 0x011a, 0x0119, 0x011a, 0x0119, 0x08f5, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x10d2, 0x0119, 0x0119, 0x08f5, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x10d2, 0x0119, 0x0119, 0x08d5, 0x18ae, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x011a, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x08f5, 0x0119, 0x0119, 0x10d2, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x08f5, 0x011a, 0x0119, 0x10d2, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x08f5, 0x0119, 0x0119, 0x10d0, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ce, 0x08f7, 0x0119, 0x0119, 0x011a, 0x0119, 0x0119, 0x00f7, 0x18ae, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18d0, 0x00f9, 0x0119, 0x00f7, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x18ae, 0x10d1, 0x00f9, 0x0119, 0x08f5, 0x18ad, 0x18ad, 0x18ad, + 0x20ad, 0x18ae, 0x18ad, 0x20ad, 0x08f5, 0x0119, 0x011a, 0x10d2, 0x20ad, 0x18ad, 0x18ad, 0x18ae, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x011a, 0x0119, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x10d2, 0x0119, 0x0119, 0x00f6, 0x18ae, 0x18ae, 0x18d0, 0x00f9, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x011a, 0x0119, 0x0119, 0x011a, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x08f6, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x011a, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x011a, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cf, 0x0119, 0x011a, 0x08f5, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x10d2, 0x011a, 0x0119, 0x08f5, 0x18ae, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x011a, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18cd, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x08f5, 0x011a, 0x0119, 0x18cf, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ae, 0x20ad, 0x18ae, 0x18ad, 0x18ad, 0x08f5, 0x0119, 0x00fa, 0x18d1, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x08f5, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x10d2, 0x10f3, 0x08d3, 0x10d2, 0x0117, 0x011a, 0x00f7, 0x18ae, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ae, 0x18af, 0x0119, 0x0119, 0x00f7, 0x18ce, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cf, 0x00f9, 0x0119, 0x08f5, 0x18ce, 0x18ad, 0x18ad, 0x18ad, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x08f5, 0x0119, 0x011a, 0x10d2, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x08f6, 0x0119, 0x011a, 0x0119, 0x011a, 0x0119, 0x0119, 0x0119, 0x011a, 0x0116, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ae, 0x18d0, 0x00f9, 0x0119, 0x00f7, 0x18ce, 0x18ad, 0x18af, 0x00f8, 0x011a, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x011a, 0x011a, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x08f6, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x011a, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ae, 0x18ae, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x011a, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x011a, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x00f9, 0x0119, 0x08d4, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x10d1, 0x011a, 0x0119, 0x08f5, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x011a, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x10d2, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x08d4, 0x0119, 0x00f9, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x08d5, 0x0119, 0x00f9, 0x18ad, 0x18ae, 0x208d, 0x18ae, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ce, 0x00f7, 0x0119, 0x00f7, 0x18ae, 0x18ad, 0x18ad, 0x18ae, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x10d0, 0x00f8, 0x0119, 0x0117, 0x18ae, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18b0, 0x0118, 0x0119, 0x00f7, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, + 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x08f5, 0x0119, 0x0119, 0x10d2, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cf, 0x00f8, 0x0119, 0x0119, 0x011a, 0x0119, 0x0119, 0x0119, 0x00f9, 0x18af, 0x20ad, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x10d0, 0x0118, 0x011a, 0x00f7, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x08f3, 0x011a, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x08f6, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x011a, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x0119, 0x0119, 0x011a, 0x0119, 0x011a, 0x0119, 0x0119, 0x0119, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ae, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x10d2, 0x0119, 0x0119, 0x08f5, 0x18ad, 0x18ae, 0x18ad, 0x18cd, 0x20ae, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x011a, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ae, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x10d2, 0x0119, 0x00f9, 0x10d2, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ae, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x011a, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x20ae, 0x18ad, 0x18ad, 0x18ae, 0x0117, 0x0119, 0x0117, 0x18ae, 0x18ae, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18b0, 0x0119, 0x011a, 0x08f6, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18b0, 0x0119, 0x0119, 0x00f7, 0x18ce, 0x18cd, 0x20ad, 0x18ae, 0x18ae, 0x00f7, + 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x08f5, 0x0119, 0x0119, 0x10d2, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18af, 0x08f6, 0x0119, 0x0119, 0x011a, 0x0119, 0x0116, 0x18cf, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x10cf, 0x00f9, 0x0119, 0x00f7, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x08f3, 0x011a, 0x0119, 0x011a, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x08f6, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x011a, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x08d5, 0x0119, 0x0119, 0x0119, 0x00f9, 0x0119, 0x0119, 0x08f5, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x011a, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ae, 0x18cf, 0x00f9, 0x011a, 0x08f5, 0x20ad, 0x18ae, 0x20ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x011a, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x10d2, 0x011a, 0x011a, 0x10d2, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x011a, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ae, 0x18ad, 0x011a, 0x0119, 0x18ae, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18cd, 0x18ad, 0x18ae, 0x00f8, 0x0119, 0x0117, 0x18ae, 0x18ae, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x18d0, 0x0118, 0x0119, 0x0119, 0x011a, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x00f7, 0x18ce, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x00f7, 0x0119, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x08f5, 0x0119, 0x011a, 0x10d2, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x20ad, 0x18ae, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18b0, 0x00f9, 0x0119, 0x00f7, 0x18ae, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x08f3, 0x011a, 0x0119, 0x011a, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x08f6, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x011a, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ae, 0x00f7, 0x011a, 0x0119, 0x011a, 0x0119, 0x00f7, 0x18ce, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x20ae, 0x00f8, 0x0119, 0x08f4, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x011a, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x10d2, 0x0119, 0x00f9, 0x10d2, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ae, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x011a, 0x0119, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x00f7, 0x0119, 0x0117, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ae, 0x18ad, 0x18ad, 0x20ad, 0x18b0, 0x00f9, 0x0119, 0x011a, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x011a, 0x011a, 0x0119, 0x0117, 0x18ae, 0x18ad, 0x18ad, 0x18ae, 0x18ae, 0x00f7, 0x011a, 0x00f9, + 0x08f5, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x08f5, 0x0119, 0x011a, 0x10d2, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x10d0, 0x00f9, 0x0119, 0x00f7, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x08f3, 0x011a, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x08f6, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x011a, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x10d2, 0x0119, 0x0119, 0x10d2, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x011a, 0x18ad, 0x18ad, 0x18cd, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x011a, 0x0119, 0x18ae, 0x18ad, 0x18ad, 0x18cd, 0x18cd, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x011a, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x10d2, 0x0119, 0x0119, 0x10d2, 0x18ad, 0x18ad, 0x20ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x18cd, 0x18ad, 0x18ad, 0x011a, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ae, 0x20ae, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ce, 0x00f7, 0x0119, 0x0117, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x20ae, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x08f5, 0x0119, 0x00f9, 0x18cf, + 0x0119, 0x08f5, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x08f5, 0x0119, 0x0119, 0x10d2, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x10d0, 0x00f9, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x011a, 0x011a, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x08f6, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x011a, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x011a, 0x011a, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x011a, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ae, 0x20ae, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x011a, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x10d1, 0x0119, 0x0119, 0x10d2, 0x18ad, 0x18ae, 0x18cd, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x011a, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ae, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18cd, 0x18ad, 0x18ae, 0x00f8, 0x0119, 0x00f7, 0x18ae, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ae, 0x18ae, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ae, 0x08f5, 0x0119, 0x0119, 0x18d0, 0x18ad, + 0x011a, 0x0119, 0x08f5, 0x18ae, 0x18ae, 0x20ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x08f5, 0x011a, 0x0119, 0x10d2, 0x18ad, 0x18ad, 0x20ad, 0x18ae, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18b0, 0x0119, 0x011a, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x011a, 0x0119, 0x0119, 0x011a, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x08f6, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x011a, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x20ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ae, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x20ad, 0x18ae, 0x18ad, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x011a, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x10d1, 0x0119, 0x011a, 0x10d2, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ae, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x20ad, 0x18ae, 0x18ad, 0x18ae, 0x00f7, 0x0119, 0x00f7, 0x18ae, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x20ae, 0x18ad, 0x20ad, 0x08f5, 0x0119, 0x0119, 0x10d2, 0x18ad, 0x20ae, + 0x0119, 0x0119, 0x0119, 0x08f5, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ae, 0x18ad, 0x20ad, 0x08f5, 0x0119, 0x011a, 0x10d2, 0x20ad, 0x18ad, 0x18ad, 0x18ae, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x08f3, 0x0119, 0x011a, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x011a, 0x0119, 0x0119, 0x0119, 0x00f6, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x00fa, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x011a, 0x0119, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x10d2, 0x0119, 0x0119, 0x10d2, 0x18ce, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x00f7, 0x0119, 0x00f7, 0x18ce, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x08d5, 0x0119, 0x0119, 0x10d2, 0x18ad, 0x18ad, 0x18ad, + 0x08f7, 0x00f9, 0x0119, 0x0119, 0x08f5, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x08f5, 0x0119, 0x011a, 0x10d2, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x10d0, 0x08f3, 0x08f3, 0x10f3, 0x08f3, 0x10d3, 0x08f3, 0x08f3, 0x08f3, 0x08f3, 0x08f3, 0x08f3, 0x08f3, 0x08f3, 0x08f3, 0x08f3, 0x08f3, 0x08f3, 0x08f3, 0x08f3, 0x08f3, 0x08f3, 0x08f3, 0x08f3, 0x08f3, 0x08f3, 0x10f2, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x00f9, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x10d2, 0x011a, 0x0119, 0x10d2, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x08f3, 0x0119, 0x0119, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x20ad, 0x20ad, 0x20ad, 0x18ad, 0x310e, 0x18ad, 0x20ae, 0x18ad, 0x18ae, 0x18ad, 0x20ad, 0x18ad, 0x18ae, 0x18ad, 0x10f2, 0x0119, 0x0119, 0x10d2, 0x18ce, 0x18ad, 0x18ae, 0x18ad, 0x18cd, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ae, 0x00f7, 0x0119, 0x0119, 0x0119, 0x011a, 0x011a, 0x011a, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x00fa, 0x011a, 0x0119, 0x0119, 0x0119, 0x011a, 0x10d2, 0x18ad, 0x18ad, 0x18ad, 0x18d0, + 0x18ae, 0x0117, 0x00f9, 0x0119, 0x0119, 0x08f5, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x08f5, 0x0119, 0x0119, 0x10d2, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ae, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ae, 0x18ad, 0x18ad, 0x0119, 0x011a, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x011a, 0x0119, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ce, 0x00f8, 0x0119, 0x0119, 0x0119, 0x0119, 0x08f7, 0x18ce, 0x18ad, 0x20ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x08d5, 0x011a, 0x0119, 0x10d2, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x28ee, 0x8252, 0xcb54, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x011a, 0x10d2, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ae, 0x18ad, 0x18cd, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ae, 0x18ae, 0x18ad, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ae, 0x18ae, 0x18ae, 0x00f7, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x011a, 0x0119, 0x0119, 0x0119, 0x10d2, 0x18ad, 0x18ad, 0x18ad, 0x18b0, 0x0119, + 0x18ad, 0x18ae, 0x08f7, 0x0119, 0x011a, 0x0119, 0x08f5, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x08f5, 0x0119, 0x0119, 0x10d2, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18cd, 0x18cd, 0x18ae, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x08f5, 0x00f9, 0x0119, 0x00f7, 0x00f7, 0x0119, 0x0119, 0x08f5, 0x18ae, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x18ae, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x20ae, 0x08f5, 0x0119, 0x0119, 0x10d2, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x20ad, 0x394f, 0xb313, 0xd395, 0x7211, 0x18ad, 0x18ad, 0x20cd, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ae, 0x0119, 0x00f9, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x20ad, 0x18cd, 0x18cd, 0x20ae, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x20ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ae, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18d0, 0x0119, 0x0119, + 0x18ad, 0x18ad, 0x18ae, 0x00f7, 0x0119, 0x011a, 0x0119, 0x08f5, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x08f5, 0x0119, 0x011a, 0x10d2, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ae, 0x18ae, 0x18ad, 0x011a, 0x0119, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x0119, 0x011a, 0x18cd, 0x20ad, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ae, 0x0119, 0x011a, 0x08f3, 0x18ad, 0x18ad, 0x08f4, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ae, 0x08f5, 0x0119, 0x00f9, 0x10d2, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x496f, 0xcb55, 0xd395, 0xbb54, 0x28ce, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ae, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x011a, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x20ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18cd, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x10cf, 0x0119, 0x011a, 0x00f7, + 0x188d, 0x18ad, 0x18ad, 0x18ae, 0x00f7, 0x0119, 0x0119, 0x0119, 0x08f5, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x08f5, 0x0119, 0x011a, 0x10d2, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x10d2, 0x011a, 0x0119, 0x10d2, 0x18ad, 0x208d, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x00fa, 0x0119, 0x10d2, 0x20ad, 0x18ad, 0x20ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18af, 0x0119, 0x0119, 0x18d0, 0x18ad, 0x18ad, 0x10d0, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x08f5, 0x0119, 0x0119, 0x10d2, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x61d0, 0xd395, 0xd395, 0xd395, 0x69f1, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x10d2, 0x08f3, 0x08f3, 0x10d2, 0x20cd, 0x18ad, 0x20ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18d0, 0x00f9, 0x011a, 0x00f7, 0x18ae, + 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ae, 0x0117, 0x0119, 0x011a, 0x0119, 0x08f5, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x08f5, 0x0119, 0x0119, 0x10d2, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ce, 0x00f7, 0x0119, 0x00f9, 0x011a, 0x011a, 0x00f7, 0x18ce, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x10d2, 0x0119, 0x0119, 0x10d2, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x011a, 0x08f3, 0x18ad, 0x18ad, 0x10d3, 0x011a, 0x011a, 0x18ad, 0x18ae, 0x18ae, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x20ae, 0x08f5, 0x0119, 0x00f9, 0x10d2, 0x20ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x61d0, 0xd395, 0xd395, 0xd396, 0xd375, 0x310e, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ae, 0x18ad, 0x18ad, 0x20ad, 0x18cd, 0x011a, 0x00f9, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x18ae, 0x18ce, 0x00f7, 0x0119, 0x0119, 0x0119, 0x011a, 0x00f7, 0x18ce, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x20ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18d0, 0x0119, 0x0119, 0x0117, 0x18ae, 0x18ad, + 0x10d2, 0x18ad, 0x18ad, 0x18ad, 0x20ae, 0x18ae, 0x00f7, 0x0119, 0x011a, 0x0119, 0x08f5, 0x18ae, 0x18ae, 0x20ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x08f5, 0x011a, 0x0119, 0x10d2, 0x18ad, 0x18ad, 0x20ad, 0x18ae, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ae, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x08f5, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x08f5, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x08d4, 0x0119, 0x0119, 0x10d2, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x08d5, 0x0119, 0x0119, 0x00f7, 0x0117, 0x0119, 0x0119, 0x08f5, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x08f5, 0x0119, 0x0119, 0x10d2, 0x20ad, 0x18cd, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x392f, 0xd395, 0xd396, 0xd395, 0xd395, 0xd395, 0x28ce, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x0119, 0x0119, 0x18cd, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x08f5, 0x0119, 0x0119, 0x00f7, 0x00f7, 0x0119, 0x011a, 0x08f4, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18d0, 0x0119, 0x0119, 0x00f7, 0x18ae, 0x18ad, 0x18ae, + 0x0119, 0x10d2, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x00f7, 0x0119, 0x0119, 0x0119, 0x08f5, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x18ae, 0x08f5, 0x0119, 0x011a, 0x10d2, 0x20ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x00f9, 0x0119, 0x18ae, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x011a, 0x18ae, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x08f5, 0x0119, 0x0119, 0x10d2, 0x20ad, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x10d2, 0x0119, 0x00f9, 0x10f2, 0x18ae, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x00f7, 0x011a, 0x0119, 0x0119, 0x0119, 0x00f7, 0x18ce, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x08f5, 0x0119, 0x0119, 0x10d2, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x20ae, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x310e, 0xcb55, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0x8252, 0x20ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x10d2, 0x0119, 0x0119, 0x10d2, 0x18ad, 0x18cd, 0x18ad, 0x20ad, 0x18ad, 0x18cd, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x10d2, 0x0119, 0x0119, 0x10d2, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x011a, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x20ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x011a, 0x08f3, 0x18ad, 0x18ad, 0x08f3, 0x0119, 0x0119, 0x18ae, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18af, 0x0119, 0x0119, 0x00f7, 0x18ae, 0x18ae, 0x18ad, 0x18ad, + 0x011a, 0x0119, 0x10d2, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ae, 0x08f7, 0x00f9, 0x0119, 0x0119, 0x08f5, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x08f5, 0x0119, 0x011a, 0x10d2, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ce, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x18ae, 0x18ae, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x0119, 0x0119, 0x10f2, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x20ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ae, 0x08f5, 0x0119, 0x00f9, 0x10d2, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ce, 0x00f7, 0x0119, 0x0119, 0x0119, 0x0119, 0x00f7, 0x18ce, 0x18ad, 0x18ae, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x10d2, 0x10d3, 0x08f3, 0x10d2, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x08f5, 0x011a, 0x00f9, 0x10d2, 0x18ae, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0xb314, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0x5190, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ce, 0x00f7, 0x0119, 0x0119, 0x011a, 0x011a, 0x00f7, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x20ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ce, 0x00f7, 0x0119, 0x011a, 0x0119, 0x0119, 0x00f7, 0x18ce, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x00f9, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x0119, 0x011a, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18af, 0x0119, 0x0119, 0x10d0, 0x18ad, 0x18ad, 0x18d0, 0x00f9, 0x0119, 0x011a, 0x0119, 0x0119, 0x011a, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x011a, 0x00f7, 0x18ce, 0x18ae, 0x18ad, 0x18ad, 0x18ad, + 0x0119, 0x0119, 0x0119, 0x10d2, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x0117, 0x00f9, 0x0119, 0x011a, 0x08f5, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x08f5, 0x0119, 0x0119, 0x10d2, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ae, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ee, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x20ae, 0x011a, 0x011a, 0x0119, 0x0119, 0x00f9, 0x0119, 0x011a, 0x00f9, 0x18ae, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x10f2, 0x0119, 0x0119, 0x08f5, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x08f5, 0x0119, 0x0119, 0x10d2, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x08f5, 0x011a, 0x0119, 0x011a, 0x0119, 0x0119, 0x011a, 0x08d5, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x08f5, 0x011a, 0x0119, 0x10d2, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x8252, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0x412f, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x08f5, 0x0119, 0x0119, 0x0119, 0x0119, 0x011a, 0x0119, 0x08d5, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x08f5, 0x011a, 0x0119, 0x0119, 0x0119, 0x0119, 0x011a, 0x08f5, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x08f4, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x20ae, 0x20ad, 0x18ae, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x011a, 0x0119, 0x10f3, 0x18ad, 0x18ae, 0x08f3, 0x0119, 0x011a, 0x0119, 0x0119, 0x011a, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x011a, 0x011a, 0x0119, 0x0119, 0x011a, 0x00f7, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, + 0x0118, 0x0119, 0x011a, 0x0119, 0x10d2, 0x18ad, 0x188d, 0x18ad, 0x18ad, 0x18ae, 0x08f7, 0x0119, 0x0119, 0x0119, 0x08f5, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x08f5, 0x0119, 0x0119, 0x10d2, 0x20ad, 0x18ad, 0x20ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ae, 0x20ad, 0x18ad, 0x18cd, 0x18ae, 0x18ad, 0x18ad, 0x18ae, 0x18cd, 0x18cd, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0355, 0x190f, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x08f4, 0x011a, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x08f5, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x20ae, 0x10d2, 0x0119, 0x011a, 0x08f5, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ae, 0x08f5, 0x0119, 0x0119, 0x10d2, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ae, 0x0119, 0x0119, 0x00f9, 0x0119, 0x0119, 0x011a, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x208e, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ae, 0x18ad, 0x08f5, 0x0119, 0x00f9, 0x10d2, 0x18cd, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x496f, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd396, 0xd395, 0x496f, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x00f9, 0x0119, 0x011a, 0x011a, 0x011a, 0x0119, 0x0119, 0x0119, 0x18ae, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x20ae, 0x08f5, 0x0119, 0x0119, 0x10d2, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x20ad, 0x18ae, 0x18ae, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x08f5, 0x00f9, 0x011a, 0x0117, 0x0117, 0x0119, 0x0119, 0x08d5, 0x18ad, 0x18ad, 0x18ae, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x20ad, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, + 0x18b0, 0x0119, 0x00f9, 0x0119, 0x011a, 0x10d1, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ae, 0x00f7, 0x0119, 0x00f9, 0x0119, 0x08d4, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x08f5, 0x0119, 0x011a, 0x10d2, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x11d1, 0x03b7, 0x0a93, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ae, 0x00f7, 0x0119, 0x0119, 0x00f9, 0x011a, 0x00f7, 0x18ce, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x20ae, 0x10d2, 0x011a, 0x0119, 0x08f5, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x20ae, 0x08f5, 0x0119, 0x00f9, 0x10d2, 0x18cd, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x011a, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x20ad, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x08f5, 0x0119, 0x0119, 0x10d2, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x20ad, 0x28ee, 0xbb34, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0x9ab3, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x0119, 0x00f9, 0x00f9, 0x0119, 0x0119, 0x0119, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x10af, 0x0119, 0x011a, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ae, 0x08f5, 0x0119, 0x0119, 0x10d2, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x011a, 0x011a, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ce, 0x00f7, 0x0119, 0x0119, 0x0119, 0x0119, 0x00f7, 0x18ce, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, + 0x18ad, 0x10d0, 0x0118, 0x011a, 0x011a, 0x0119, 0x10d2, 0x18ad, 0x188d, 0x18ad, 0x18ad, 0x18ae, 0x00f7, 0x0119, 0x0119, 0x00f9, 0x10f2, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x08f5, 0x0119, 0x011a, 0x10d2, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x208d, 0x18ad, 0x10d2, 0x08f3, 0x10d3, 0x10d2, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0356, 0x03b7, 0x03b7, 0x190f, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x10d2, 0x08f3, 0x08d4, 0x10d2, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x10d2, 0x00f9, 0x0119, 0x08f5, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x08f5, 0x011a, 0x0119, 0x10d2, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x20ad, 0x18ad, 0x20ad, 0x18ae, 0x18ad, 0x0119, 0x0119, 0x00fa, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x08f5, 0x0119, 0x0119, 0x10d2, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ae, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x7a31, 0xd395, 0xd395, 0xd375, 0xdb95, 0xd395, 0xd395, 0xd396, 0xd395, 0xd395, 0xd396, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x011a, 0x011a, 0x0119, 0x0119, 0x0119, 0x0119, 0x00f9, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ae, 0x0119, 0x011a, 0x0119, 0x0119, 0x011a, 0x0119, 0x0119, 0x0119, 0x18ad, 0x18ae, 0x20ad, 0x18ad, 0x20ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x08f5, 0x0119, 0x0119, 0x10d2, 0x20ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x20ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x10d2, 0x08f3, 0x08f4, 0x10d2, 0x18cd, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, + 0x18cd, 0x18ad, 0x10cf, 0x0119, 0x0119, 0x0119, 0x0119, 0x10d1, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ae, 0x0117, 0x00fa, 0x0119, 0x0119, 0x10d2, 0x20ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x08f5, 0x0119, 0x0119, 0x10d1, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ae, 0x00f7, 0x0119, 0x00f9, 0x0119, 0x0119, 0x00f7, 0x18ce, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ce, 0x11d1, 0x03b8, 0x03b7, 0x03b8, 0x0a94, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18cd, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x10d2, 0x00f9, 0x0119, 0x08f5, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x08f5, 0x011a, 0x00f9, 0x10d2, 0x18ae, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x20ad, 0x08f5, 0x00f9, 0x011a, 0x0119, 0x011a, 0x0119, 0x011a, 0x08f5, 0x20ae, 0x18ad, 0x18cd, 0x18ad, 0x18cd, 0x18ae, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x08d5, 0x0119, 0x0119, 0x10d2, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x20ae, 0x18ad, 0x18cd, 0x18ad, 0x20ad, 0x18ad, 0x310e, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd396, 0xd395, 0xd396, 0xd395, 0xd395, 0xb313, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x08f5, 0x011a, 0x0119, 0x011a, 0x011a, 0x011a, 0x0119, 0x08f5, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x08f5, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x00f9, 0x08f5, 0x20ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ae, 0x08f5, 0x0119, 0x00f9, 0x10d2, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x10d2, 0x0119, 0x011a, 0x10d2, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, + 0x18ae, 0x18ad, 0x18ad, 0x18d0, 0x0119, 0x0119, 0x011a, 0x011a, 0x10d2, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x00f7, 0x0119, 0x0119, 0x0119, 0x10d2, 0x18cd, 0x18ae, 0x20ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x08f5, 0x0119, 0x00f8, 0x10d0, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x08f5, 0x011a, 0x0119, 0x011a, 0x011a, 0x0119, 0x0119, 0x08f5, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x20ae, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x0356, 0x03b7, 0x03b7, 0x03b8, 0x03b7, 0x190e, 0x18ae, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x20ad, 0x10d2, 0x011a, 0x011a, 0x08f5, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x08f5, 0x0119, 0x0119, 0x10d2, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x0117, 0x0119, 0x011a, 0x0119, 0x0119, 0x00f7, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x20ad, 0x08f5, 0x0119, 0x00f9, 0x10d2, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ae, 0x18ad, 0x18ae, 0xa2d3, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd396, 0xa2d3, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x0117, 0x0119, 0x0119, 0x0119, 0x0119, 0x0117, 0x18ce, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x0117, 0x00f9, 0x0119, 0x011a, 0x0119, 0x0117, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x08f5, 0x0119, 0x0119, 0x10d2, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ce, 0x00f7, 0x011a, 0x011a, 0x0119, 0x0119, 0x00f7, 0x18ae, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ae, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ae, 0x20ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18d0, 0x0119, 0x011a, 0x0119, 0x0119, 0x10d2, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x00f7, 0x0119, 0x0119, 0x0119, 0x10d2, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x08f5, 0x0119, 0x00f8, 0x10d0, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x18cd, 0x18ad, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x11d1, 0x03b8, 0x03b7, 0x03b7, 0x03b7, 0x03b7, 0x0a94, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x20ae, 0x10d2, 0x0119, 0x0119, 0x08f5, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x08f5, 0x0119, 0x0119, 0x10d2, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x10d2, 0x08d4, 0x08f3, 0x10d2, 0x18cd, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18b0, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x496f, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xaad3, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18cd, 0x10d1, 0x08f3, 0x08f3, 0x10d2, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18cd, 0x10d2, 0x08f3, 0x08d4, 0x10d2, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ae, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x08f4, 0x0119, 0x0119, 0x10d1, 0x18ad, 0x20ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x08f5, 0x00f9, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x08f5, 0x18ad, 0x20ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x10cf, 0x0118, 0x00f9, 0x011a, 0x0119, 0x10d2, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ce, 0x00f7, 0x0119, 0x011a, 0x0119, 0x10d2, 0x18ad, 0x18cd, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18cd, 0x18ae, 0x08f5, 0x0119, 0x0119, 0x011a, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x011a, 0x011a, 0x011a, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x011a, 0x011a, 0x0119, 0x0119, 0x011a, 0x0119, 0x011a, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0356, 0x03b8, 0x03b7, 0x03b7, 0x03b7, 0x03b7, 0x03b7, 0x190f, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x10d2, 0x00f9, 0x0119, 0x08f5, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x20ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ae, 0x08f5, 0x0119, 0x00f9, 0x10d2, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x011a, 0x0119, 0x18ce, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0xb314, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0x61d0, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x18cd, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x08f5, 0x011a, 0x0119, 0x10d2, 0x18ae, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18cd, 0x18ae, 0x18ad, 0x0119, 0x0119, 0x011a, 0x0119, 0x0119, 0x011a, 0x0119, 0x0119, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x10d0, 0x0119, 0x0119, 0x0119, 0x0119, 0x10d2, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x0117, 0x0119, 0x0119, 0x011a, 0x10d2, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x20ae, 0x18ad, 0x18ad, 0x18ce, 0x08f5, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x011a, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x00f9, 0x0119, 0x011a, 0x0119, 0x0119, 0x0119, 0x00f9, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x0397, 0x03b8, 0x03b7, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ae, 0x18ad, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x20ae, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x10d2, 0x00f9, 0x0119, 0x08f5, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x08f5, 0x0119, 0x0119, 0x10d2, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x011a, 0x011a, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x59d0, 0xd395, 0xd375, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd396, 0xd395, 0xd396, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x08f4, 0x011a, 0x0119, 0x10d2, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x0119, 0x0119, 0x011a, 0x0119, 0x0119, 0x011a, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ae, 0x18ad, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18cd, 0x18ad, 0x18b0, 0x0118, 0x0119, 0x011a, 0x0119, 0x10d2, 0x18ad, 0x18ad, 0x18cd, 0x20ae, 0x18ae, 0x00f7, 0x011a, 0x011a, 0x011a, 0x10d2, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x08f5, 0x0119, 0x011a, 0x0119, 0x0119, 0x0119, 0x011a, 0x08f5, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x20ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x03b7, 0x03b7, 0x03b7, 0x20ad, 0x18ad, 0x18ad, 0x20ad, 0x03b7, 0x03b7, 0x0397, 0x03b7, 0x03b8, 0x03b7, 0x03b7, 0x18ad, 0x18ad, 0x18ae, 0x20ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x10d2, 0x0119, 0x011a, 0x08f5, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ae, 0x08f5, 0x0119, 0x011a, 0x10d1, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0xbb34, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xaad3, 0x20ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ae, 0x18ad, 0x18ad, 0x08f5, 0x0119, 0x00f9, 0x10d2, 0x18cd, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x011a, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x011a, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18b0, 0x0119, 0x00f9, 0x0119, 0x011a, 0x10d2, 0x18cd, 0x18ae, 0x18cd, 0x18ad, 0x18ce, 0x00f7, 0x0119, 0x0119, 0x00f9, 0x10d2, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ce, 0x00f7, 0x0119, 0x0119, 0x011a, 0x0119, 0x00f7, 0x18ce, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x20ad, 0x03b7, 0x03b7, 0x03b7, 0x18ae, 0x20ad, 0x18ad, 0x18ad, 0x03b7, 0x03b7, 0x03b7, 0x03b7, 0x03b7, 0x0397, 0x03b7, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x10d2, 0x011a, 0x0119, 0x08f5, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x20ae, 0x08f5, 0x011a, 0x0119, 0x10d2, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x011a, 0x0119, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x61b1, 0xd395, 0xd395, 0xd375, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0x8a92, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x08f5, 0x0119, 0x0119, 0x10d2, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x08f5, 0x011a, 0x0119, 0x011a, 0x0119, 0x0119, 0x0119, 0x08f4, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x10d0, 0x0118, 0x011a, 0x0119, 0x0119, 0x10d2, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x00f7, 0x0119, 0x0119, 0x011a, 0x10d2, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x188d, 0x18ad, 0x10d2, 0x08f3, 0x08f3, 0x10d2, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x03b7, 0x03b7, 0x03b7, 0x18ad, 0x18ad, 0x18cd, 0x20ad, 0x03b8, 0x03b7, 0x03b8, 0x03b7, 0x03b7, 0x03b7, 0x03b7, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ae, 0x10d2, 0x00f9, 0x0119, 0x08f5, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x08f5, 0x0119, 0x0119, 0x10d2, 0x18ad, 0x18cd, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ae, 0x18ad, 0xaad3, 0xd395, 0xd375, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd375, 0xd395, 0xd395, 0x310e, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x0119, 0x0119, 0x10d1, 0x18ae, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ce, 0x00f7, 0x0119, 0x0119, 0x0119, 0x0119, 0x00f7, 0x18ce, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x10cf, 0x0119, 0x0119, 0x0119, 0x0119, 0x10d2, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ae, 0x00f7, 0x011a, 0x0119, 0x0119, 0x10d2, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x03d7, 0x0397, 0x03b7, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x03b7, 0x03b8, 0x0397, 0x03b7, 0x03b8, 0x03b7, 0x03b7, 0x18ad, 0x18ae, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x20ad, 0x10d2, 0x00f9, 0x0119, 0x08f5, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x08f5, 0x0119, 0x0119, 0x10d0, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x0119, 0x011a, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ae, 0x496f, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd375, 0xd395, 0x7231, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18cd, 0x18ae, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ae, 0x18ad, 0x18cd, 0x18ad, 0x20ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x10d1, 0x10d3, 0x08d3, 0x10d2, 0x18ae, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18d0, 0x0119, 0x0119, 0x0119, 0x011a, 0x10d2, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x00f7, 0x0119, 0x011a, 0x0119, 0x00f9, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x011a, 0x0119, 0x0119, 0x011a, 0x0119, 0x011a, 0x0119, 0x011a, 0x0119, 0x10d0, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x03b7, 0x03b7, 0x03b8, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x03b7, 0x03b7, 0x03b7, 0x03b7, 0x03b7, 0x03b7, 0x03b7, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x20ad, 0x10d2, 0x011a, 0x011a, 0x08f5, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x08f5, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x011a, 0x0119, 0x18ae, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20cd, 0x20ae, 0x8a92, 0xd395, 0xd395, 0xd395, 0xd396, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0x7a31, 0x20ad, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x011a, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18d0, 0x0119, 0x011a, 0x0119, 0x0119, 0x10d2, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x00f7, 0x0119, 0x00f9, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x011a, 0x0119, 0x011a, 0x0119, 0x0119, 0x0119, 0x0118, 0x10d0, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x20ae, 0x03b7, 0x03b7, 0x03b7, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x03b7, 0x03b7, 0x03b8, 0x03b7, 0x03b7, 0x03b7, 0x03b7, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x20ae, 0x10d2, 0x0119, 0x0119, 0x08f5, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x20ad, 0x28ee, 0xc374, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xa2d3, 0x18ad, 0x18ae, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x011a, 0x0119, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x18ae, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x10d2, 0x08f3, 0x08f3, 0x10d2, 0x20ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x10cf, 0x0118, 0x00f9, 0x011a, 0x0119, 0x10d2, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ce, 0x00f7, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x011a, 0x011a, 0x0119, 0x0119, 0x0119, 0x011a, 0x0119, 0x18d0, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x20ad, 0x18ad, 0x18ce, 0x194f, 0x18ae, 0x20ad, 0x18ae, 0x18ad, 0x18ad, 0x03b7, 0x0397, 0x03b8, 0x18ad, 0x20ae, 0x20ad, 0x18ad, 0x03b7, 0x03b7, 0x03b7, 0x03b7, 0x03b8, 0x03b7, 0x03b7, 0x18ae, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x10d2, 0x00f9, 0x0119, 0x08f5, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x20ad, 0x20ad, 0x20ae, 0x20ae, 0x61d1, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd396, 0xd395, 0x69f1, 0x20ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x10d2, 0x011a, 0x0119, 0x10d2, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ce, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ce, 0x18ad, 0x20ad, 0x18ae, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ae, 0x20ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ce, 0x00f7, 0x011a, 0x011a, 0x011a, 0x00f9, 0x08f7, 0x18ce, 0x18cd, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x10d0, 0x0119, 0x0119, 0x0119, 0x0119, 0x10d2, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ae, 0x10cf, 0x00f9, 0x0119, 0x0119, 0x00f9, 0x18d0, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x1930, 0x02f5, 0x03b7, 0x03b8, 0x0356, 0x114f, 0x18ad, 0x18ad, 0x18ad, 0x03b8, 0x03b7, 0x03b7, 0x18ad, 0x18ad, 0x18ad, 0x20ae, 0x18ad, 0x18ad, 0x03b7, 0x03b8, 0x03b7, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x10d2, 0x00f9, 0x0119, 0x08f4, 0x18ad, 0x20ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ae, 0x20ae, 0x20ad, 0x20ad, 0x20ad, 0x20ad, 0x20ae, 0x20ae, 0x9ab3, 0xd375, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd375, 0xd395, 0xd395, 0xd395, 0x412f, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ce, 0x00f8, 0x0119, 0x0119, 0x0119, 0x0119, 0x08f7, 0x18ce, 0x18ad, 0x20ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x03b7, 0x03b7, 0x03b7, 0x03b7, 0x0397, 0x03b7, 0x03b7, 0x03b7, 0x03b7, 0x18ad, 0x18ad, 0x18ad, 0x0a32, 0x03b7, 0x03b7, 0x03b7, 0x03b7, 0x0356, 0x18ad, 0x18ad, 0x0a32, 0x03b7, 0x03b8, 0x03b8, 0x03b8, 0x0376, 0x18ee, 0x03b7, 0x03b7, 0x03b7, 0x03b7, 0x03b7, 0x03b7, 0x0397, 0x03b7, 0x03b7, 0x03b7, 0x03b8, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x08f5, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x08f5, 0x18ad, 0x18ae, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x0117, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18cd, 0x18ad, 0x18b0, 0x0118, 0x0119, 0x011a, 0x0119, 0x10d2, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cf, 0x00f8, 0x0119, 0x00f9, 0x0119, 0x18b0, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x190f, 0x0377, 0x0397, 0x03b8, 0x0398, 0x0397, 0x0b77, 0x18ce, 0x18ad, 0x18ad, 0x03b7, 0x0397, 0x03b8, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x03b7, 0x0bb7, 0x0398, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x10d2, 0x0119, 0x0119, 0x08f5, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x20ae, 0x18ad, 0x20ad, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x20ce, 0xc355, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0x4970, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x08f5, 0x00f9, 0x0119, 0x00f7, 0x00f7, 0x0119, 0x0119, 0x08f5, 0x18ae, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x03b7, 0x03b7, 0x03b7, 0x03b7, 0x03b8, 0x03b7, 0x03b7, 0x0397, 0x03b7, 0x18ad, 0x18ad, 0x18ad, 0x18ee, 0x0377, 0x03b7, 0x03b7, 0x03b7, 0x03b7, 0x0a33, 0x190e, 0x0397, 0x03b8, 0x03b7, 0x03b7, 0x03b7, 0x11d1, 0x18ad, 0x03b7, 0x03b7, 0x03b7, 0x03b7, 0x03b7, 0x03b7, 0x03b7, 0x03b7, 0x03b7, 0x03b7, 0x03b7, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ce, 0x11b0, 0x0a93, 0x0356, 0x03b7, 0x03b7, 0x03b7, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x00f9, 0x0119, 0x0119, 0x011a, 0x0119, 0x011a, 0x011a, 0x0119, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x00f7, 0x011a, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18b0, 0x0119, 0x00f9, 0x0119, 0x0119, 0x10d2, 0x18ad, 0x18ad, 0x18ad, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x10d0, 0x00f9, 0x0119, 0x0119, 0x0119, 0x18b0, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x1253, 0x0b78, 0x0b98, 0x0b78, 0x0b98, 0x0b98, 0x1378, 0x11f2, 0x18ad, 0x18ad, 0x0b98, 0x0b78, 0x0b78, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0b98, 0x1378, 0x0b78, 0x18ad, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x10d2, 0x0119, 0x011a, 0x08f5, 0x18ad, 0x20ad, 0x18ad, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x20ae, 0x20ad, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x20ce, 0x4970, 0xd395, 0xd375, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd375, 0x8252, 0x20ae, 0x20ae, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ae, 0x0119, 0x011a, 0x08f3, 0x18ad, 0x18ad, 0x08f4, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ce, 0x18ad, 0x18ad, 0x03b8, 0x03b7, 0x03b7, 0x03b7, 0x03b7, 0x03b7, 0x03b7, 0x03b7, 0x03b7, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x11d1, 0x03b8, 0x03b7, 0x03b7, 0x03b8, 0x0377, 0x0ad4, 0x0397, 0x03b7, 0x03b7, 0x03b7, 0x02f5, 0x18ae, 0x18ad, 0x03b7, 0x03b8, 0x03b7, 0x03b8, 0x03b7, 0x03b7, 0x03b7, 0x03b7, 0x03b7, 0x03b7, 0x03b7, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x192f, 0x03b7, 0x03b7, 0x03b8, 0x03b8, 0x03b7, 0x03b7, 0x20ad, 0x18ad, 0x18ae, 0x18ae, 0x18ad, 0x18af, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x011a, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x011a, 0x0119, 0x0119, 0x00f7, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x10d0, 0x0118, 0x011a, 0x0119, 0x0119, 0x10d2, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x10d0, 0x00f9, 0x0119, 0x0119, 0x0119, 0x18d0, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x1ab5, 0x1b78, 0x1b58, 0x1358, 0x1b78, 0x1378, 0x1358, 0x1a13, 0x18ae, 0x18ae, 0x1358, 0x1358, 0x1378, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x1358, 0x1358, 0x1358, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ae, 0x10d2, 0x0119, 0x0119, 0x08f5, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x20ae, 0x20ae, 0x18ad, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x20ce, 0x20ce, 0x20ce, 0x7a32, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd375, 0xd395, 0xd375, 0xd395, 0xc354, 0x5990, 0x20ad, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18af, 0x0119, 0x0119, 0x18d0, 0x18ad, 0x18ad, 0x10d0, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x03b7, 0x03b7, 0x03b7, 0x03b7, 0x03b7, 0x03b7, 0x03b7, 0x0397, 0x03b7, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x0356, 0x03b7, 0x03b7, 0x03b7, 0x03b7, 0x03b7, 0x03b7, 0x0397, 0x03b7, 0x03b7, 0x194f, 0x18ad, 0x18ad, 0x03b7, 0x03b7, 0x03b7, 0x03b7, 0x03b7, 0x03b7, 0x03b7, 0x03b7, 0x03b7, 0x03b7, 0x03b7, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x03b7, 0x0397, 0x03b7, 0x03b7, 0x03b7, 0x03b7, 0x18ad, 0x18ad, 0x18ae, 0x20ad, 0x20ad, 0x18ad, 0x0119, 0x0119, 0x00f9, 0x0119, 0x0119, 0x00f9, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x011a, 0x011a, 0x011a, 0x011a, 0x011a, 0x011a, 0x011a, 0x011a, 0x011a, 0x011a, 0x011a, 0x011a, 0x011a, 0x011a, 0x011a, 0x011a, 0x0119, 0x0119, 0x00f8, 0x18ae, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x10cf, 0x0119, 0x011a, 0x011a, 0x0119, 0x10d2, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cf, 0x00f9, 0x0119, 0x00f9, 0x00f9, 0x18d0, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x1a54, 0x1b38, 0x1b38, 0x2338, 0x1b38, 0x1b58, 0x2338, 0x21d2, 0x18ad, 0x18ad, 0x2338, 0x2338, 0x2358, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x1930, 0x2339, 0x2358, 0x2338, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x10d2, 0x0119, 0x0119, 0x08f5, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0xa2b3, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd375, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd375, 0xd375, 0xd375, 0xd375, 0x4970, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x011a, 0x08f3, 0x18ad, 0x18ad, 0x10d3, 0x011a, 0x011a, 0x18ad, 0x18ae, 0x18ae, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x03b7, 0x03b7, 0x03b7, 0x03b7, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x1170, 0x03b8, 0x03b8, 0x03b7, 0x03b7, 0x03b8, 0x03b7, 0x03b7, 0x03b7, 0x0a53, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x03b7, 0x03b7, 0x0397, 0x03b7, 0x03b7, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ae, 0x18ae, 0x18ad, 0x18ad, 0x0396, 0x03b8, 0x03b7, 0x03b7, 0x03b7, 0x03b7, 0x18ae, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x08f5, 0x011a, 0x0119, 0x011a, 0x0119, 0x0119, 0x0119, 0x08f5, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18d0, 0x0118, 0x0119, 0x0119, 0x0119, 0x10d2, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x10d0, 0x00f9, 0x0119, 0x0119, 0x0119, 0x10d0, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x2150, 0x2b18, 0x2b39, 0x2b18, 0x2b19, 0x2b19, 0x2af8, 0x18ce, 0x18ad, 0x18ad, 0x2b19, 0x2b18, 0x2b19, 0x18ad, 0x18cd, 0x18ae, 0x18ad, 0x2192, 0x2b19, 0x2b19, 0x2b18, 0x2338, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x10cf, 0x0119, 0x011a, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0xbb34, 0xd395, 0xd395, 0xd396, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd375, 0xd375, 0xd375, 0xd375, 0xd375, 0xd375, 0xd375, 0x4970, 0x20ce, 0x20ae, 0x20ae, 0x20ae, 0x20ad, 0x18ad, 0x18ad, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x08d5, 0x0119, 0x0119, 0x00f7, 0x0117, 0x0119, 0x0119, 0x08f5, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x03b7, 0x03b7, 0x03b7, 0x03b7, 0x03b7, 0x03b8, 0x03b7, 0x03b7, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x0af5, 0x03b7, 0x03b7, 0x03b7, 0x03b7, 0x03b7, 0x03b7, 0x0377, 0x18ee, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x03b7, 0x03b8, 0x03b7, 0x03b7, 0x03b8, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x11b0, 0x03b7, 0x03b8, 0x03b7, 0x03b7, 0x03b7, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ce, 0x0117, 0x011a, 0x0119, 0x0119, 0x0119, 0x0117, 0x18ae, 0x20ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18d0, 0x0119, 0x011a, 0x0119, 0x0119, 0x10d2, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ae, 0x10cf, 0x0118, 0x0119, 0x0119, 0x0119, 0x18d0, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x10d2, 0x08f3, 0x10d3, 0x10d2, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x2192, 0x2b19, 0x3319, 0x32f9, 0x2a15, 0x18ef, 0x20ad, 0x18ad, 0x18ad, 0x32f9, 0x3319, 0x32f9, 0x18ad, 0x18ad, 0x18ad, 0x2191, 0x3319, 0x2af9, 0x3319, 0x2af9, 0x2a97, 0x18ad, 0x18ad, 0x18ae, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ae, 0x0119, 0x0119, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x20ce, 0x20ce, 0x20ce, 0x20cf, 0x20cf, 0x20cf, 0x28cf, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd375, 0xd375, 0xd375, 0xd375, 0xd375, 0xd375, 0x71d1, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x20ad, 0x20cd, 0x20ae, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x00f7, 0x011a, 0x0119, 0x0119, 0x0119, 0x00f7, 0x18ce, 0x18ad, 0x18cd, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x03b7, 0x03b7, 0x03b7, 0x03b7, 0x03b7, 0x03b8, 0x0397, 0x03b7, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ae, 0x18ad, 0x20ad, 0x190f, 0x03b7, 0x03b7, 0x03b8, 0x03b7, 0x03b7, 0x03b7, 0x11d1, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x03b7, 0x03b7, 0x03b7, 0x03b7, 0x03b7, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x03b7, 0x0397, 0x03b7, 0x03b7, 0x03b7, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ae, 0x10d2, 0x08f3, 0x08f3, 0x10d2, 0x18ae, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x10cf, 0x0118, 0x00f9, 0x011a, 0x0119, 0x10d2, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18d0, 0x0119, 0x011a, 0x0119, 0x0119, 0x18d0, 0x10d2, 0x08f3, 0x08f3, 0x10d2, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ae, 0x18ad, 0x18ae, 0x18ce, 0x00f7, 0x0119, 0x0119, 0x0119, 0x0119, 0x00f7, 0x18ce, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x3ad9, 0x3ad9, 0x3ad9, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x3af9, 0x3ad9, 0x3ad9, 0x18ad, 0x20ad, 0x3215, 0x3ad9, 0x3af9, 0x3ada, 0x3ad9, 0x3277, 0x18ce, 0x18ad, 0x18ae, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x011a, 0x011a, 0x20cd, 0x20ae, 0x20ae, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20cf, 0x28cf, 0x28cf, 0x4950, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd375, 0xd375, 0xd375, 0xd374, 0xd375, 0xd355, 0xd355, 0xaab3, 0x20ce, 0x18ce, 0x20ce, 0x20ae, 0x20ce, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x10d2, 0x10d3, 0x08f3, 0x10d2, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x0398, 0x0398, 0x0398, 0x0398, 0x03b7, 0x0397, 0x0397, 0x03b7, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x0ad5, 0x0397, 0x0398, 0x03b8, 0x0398, 0x03b8, 0x18ee, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0398, 0x0398, 0x03b8, 0x0398, 0x0398, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0398, 0x0398, 0x0398, 0x0398, 0x0398, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ae, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18d0, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x10d0, 0x0119, 0x0119, 0x0119, 0x0119, 0x10d2, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18d0, 0x00f8, 0x0119, 0x011a, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x08f7, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x08f5, 0x0139, 0x011a, 0x0117, 0x00f7, 0x011a, 0x011a, 0x08f5, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ae, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x42d9, 0x42b9, 0x42b9, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x42b9, 0x42b9, 0x42ba, 0x18ae, 0x31f5, 0x42da, 0x42d9, 0x42b9, 0x42d9, 0x3a77, 0x18ce, 0x18ad, 0x18ad, 0x18ae, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x20ad, 0x0119, 0x011a, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x0119, 0x0119, 0x20ae, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x5991, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd375, 0xd375, 0xd375, 0xd375, 0xd375, 0xd374, 0xd375, 0xd355, 0xd355, 0xd355, 0x9252, 0x30ef, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x2338, 0x2338, 0x2318, 0x2319, 0x2338, 0x2338, 0x2338, 0x2338, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x2150, 0x2318, 0x2338, 0x2338, 0x2318, 0x2318, 0x2338, 0x21f3, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x2339, 0x2318, 0x2318, 0x2339, 0x2338, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x2338, 0x2338, 0x2338, 0x2338, 0x2338, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x20ae, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18b0, 0x0119, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18cd, 0x18ad, 0x18b0, 0x0118, 0x0119, 0x011a, 0x0119, 0x10d2, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18d0, 0x0119, 0x0119, 0x0119, 0x0119, 0x0117, 0x00f7, 0x011a, 0x0119, 0x08f5, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x00f9, 0x0119, 0x10d3, 0x18ad, 0x18ad, 0x10f3, 0x011a, 0x0119, 0x011a, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x18b0, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x4a99, 0x4ab9, 0x4a9a, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x4aba, 0x4aba, 0x4a9a, 0x4257, 0x4a99, 0x4a9a, 0x4a9a, 0x4aba, 0x4237, 0x20ce, 0x18ad, 0x18ae, 0x18ad, 0x20ad, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18cd, 0x011a, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x20ae, 0x20ae, 0x0119, 0x0119, 0x20ae, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x28ce, 0x28cf, 0x28cf, 0x28cf, 0x28ef, 0x69f1, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd375, 0xd375, 0xd375, 0xd375, 0xd355, 0xd375, 0xd355, 0xd355, 0xd355, 0xd335, 0xd355, 0xcb14, 0x4130, 0x20af, 0x20ce, 0x20ce, 0x20ae, 0x20ce, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x20ad, 0x18ad, 0x20ae, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x20ad, 0x18ad, 0x208e, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x42b9, 0x4a99, 0x42b9, 0x42ba, 0x18ad, 0x18ad, 0x20ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x4257, 0x4aba, 0x4a9a, 0x4a99, 0x42b9, 0x4a9a, 0x42b9, 0x4a9a, 0x20ef, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x4a9a, 0x42b9, 0x42b9, 0x4aba, 0x4ab9, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x4a99, 0x42b9, 0x4aba, 0x4a99, 0x4a99, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18b0, 0x0119, 0x0119, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18b0, 0x0119, 0x00f9, 0x0119, 0x0119, 0x10d2, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18ae, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18b0, 0x0119, 0x011a, 0x08f3, 0x18ad, 0x18ad, 0x08f3, 0x011a, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18af, 0x011a, 0x00f9, 0x10d0, 0x18ad, 0x20ad, 0x10d0, 0x0119, 0x0119, 0x011a, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0118, 0x10d0, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x527a, 0x527a, 0x527a, 0x20ad, 0x18ad, 0x18ad, 0x20ad, 0x18ae, 0x527a, 0x527a, 0x529a, 0x527a, 0x527a, 0x527a, 0x527a, 0x4a18, 0x20ce, 0x18ad, 0x18ad, 0x20ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x00f9, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x10d1, 0x0117, 0x0119, 0x0119, 0x0917, 0x18d2, 0x20ce, 0x20cf, 0x28ce, 0x28cf, 0x28cf, 0x28cf, 0x28ef, 0x30f0, 0x8253, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd375, 0xd375, 0xd375, 0xd375, 0xd375, 0xd355, 0xd355, 0xd355, 0xd355, 0xd355, 0xd355, 0xd354, 0xd355, 0x7a11, 0x20cf, 0x20ce, 0x20ce, 0x20ce, 0x20ae, 0x20ce, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x20ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x6a3b, 0x6a3b, 0x6a3b, 0x621a, 0x6a3b, 0x6a3b, 0x6a1b, 0x6a3b, 0x6a3b, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x20ad, 0x3932, 0x6a3b, 0x6a3b, 0x6a1b, 0x6a3b, 0x6a3b, 0x6a3b, 0x6a3b, 0x6a3b, 0x59d7, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x6a3b, 0x6a3b, 0x6a3b, 0x6a3b, 0x6a3b, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x6a1b, 0x6a3b, 0x6a3b, 0x6a1b, 0x6a3b, 0x18ad, 0x18ae, 0x18ad, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x10d2, 0x08f3, 0x10f3, 0x10d2, 0x20ad, 0x18ad, 0x18ad, 0x18ae, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x10d0, 0x00f9, 0x011a, 0x00f7, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x10d0, 0x0118, 0x011a, 0x0119, 0x0119, 0x10d2, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x20ae, 0x18ad, 0x18af, 0x0119, 0x0119, 0x10d1, 0x18ad, 0x18ae, 0x10d0, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x10d3, 0x18ad, 0x20ae, 0x08f3, 0x0119, 0x0119, 0x18cd, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x08f5, 0x0119, 0x00f9, 0x18d0, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ae, 0x18ad, 0x18ad, 0x20ad, 0x5a5b, 0x5a5a, 0x5a7a, 0x2910, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x5a5a, 0x5a7b, 0x5a5a, 0x5a5a, 0x5a5a, 0x5a5a, 0x4a18, 0x20ce, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x10d1, 0x0119, 0x0119, 0x0119, 0x0119, 0x011a, 0x091a, 0x18f2, 0x28cf, 0x28ce, 0x28cf, 0x28cf, 0x28ef, 0x28f0, 0x30f0, 0x8232, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd375, 0xd375, 0xd375, 0xd375, 0xd375, 0xd355, 0xd355, 0xd355, 0xd355, 0xd355, 0xd335, 0xd335, 0xd335, 0xd335, 0xa293, 0x28cf, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ae, 0x20ce, 0x20ae, 0x20ae, 0x20ad, 0x20ad, 0x20ae, 0x20ad, 0x20ad, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x20ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x89bc, 0x89bc, 0x89bc, 0x91bc, 0x89bc, 0x899c, 0x89bc, 0x89bc, 0x89bb, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ae, 0x899b, 0x89bc, 0x89bc, 0x89bc, 0x799a, 0x7179, 0x89bb, 0x899c, 0x89bc, 0x89bc, 0x38f1, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x89bc, 0x899c, 0x899c, 0x89bc, 0x89bc, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x89bc, 0x899c, 0x89bc, 0x899c, 0x89bc, 0x18ad, 0x18ad, 0x18cd, 0x18ae, 0x18ad, 0x18ae, 0x18ae, 0x00f7, 0x0119, 0x0119, 0x0119, 0x0119, 0x00f7, 0x18ce, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x10d0, 0x0118, 0x011a, 0x0117, 0x18ae, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x10cf, 0x0119, 0x0119, 0x011a, 0x0119, 0x10d2, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x08f3, 0x18ad, 0x18ad, 0x08f3, 0x0119, 0x011a, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x08f5, 0x0119, 0x0119, 0x00f7, 0x0117, 0x0119, 0x0119, 0x08f5, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x00f7, 0x0119, 0x00f9, 0x18d0, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x623a, 0x623b, 0x625a, 0x621a, 0x2910, 0x18cd, 0x18ad, 0x18ad, 0x623b, 0x623a, 0x625a, 0x623b, 0x623b, 0x51f8, 0x20ce, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x10d2, 0x0119, 0x0119, 0x20ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0118, 0x0119, 0x0917, 0x18d2, 0x18d2, 0x0918, 0x091a, 0x0918, 0x28cf, 0x28cf, 0x28ef, 0x28ef, 0x30d0, 0x30f0, 0x30f0, 0x8252, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd375, 0xd375, 0xd375, 0xd375, 0xd375, 0xd375, 0xd375, 0xd355, 0xd355, 0xd355, 0xd355, 0xd335, 0xd335, 0xd335, 0xd335, 0xd315, 0xd335, 0x9253, 0x30ef, 0x28cf, 0x28ce, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ae, 0x20ae, 0x20ce, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x20ad, 0x20ae, 0x20ae, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18cd, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0xa93d, 0xa93d, 0xa93d, 0xb13d, 0xa93d, 0xa93d, 0xa93d, 0xb13d, 0xb11d, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x60f5, 0xa93d, 0xa93d, 0xb13d, 0xa93d, 0x60f5, 0x40d1, 0xb11d, 0xb13d, 0xa93d, 0xa93d, 0x991b, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0xa93d, 0xa93d, 0xa93d, 0xa93d, 0xa93d, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0xa93d, 0xa93d, 0xa93d, 0xb13d, 0xa93d, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x08f5, 0x0119, 0x011a, 0x00f7, 0x00f7, 0x011a, 0x0119, 0x08f5, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x10cf, 0x00f9, 0x0119, 0x00f7, 0x18ce, 0x18ad, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18d0, 0x0119, 0x0119, 0x0119, 0x0119, 0x10d2, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ae, 0x08f5, 0x0119, 0x0119, 0x00f7, 0x00f7, 0x0119, 0x0119, 0x08f5, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x20ad, 0x18ae, 0x0117, 0x011a, 0x011a, 0x0119, 0x0119, 0x00f7, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ae, 0x00f7, 0x0119, 0x00f8, 0x18d0, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18cd, 0x59d8, 0x6a1b, 0x6a1b, 0x6a1b, 0x6a1b, 0x4133, 0x18ad, 0x18ad, 0x6a3b, 0x6a1b, 0x6a1b, 0x6a1b, 0x51b6, 0x20cf, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x10d2, 0x0119, 0x00f9, 0x10d3, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x011a, 0x18d1, 0x20ce, 0x20ce, 0x18d1, 0x093a, 0x093a, 0x28ef, 0x28cf, 0x28cf, 0x30f0, 0x30f0, 0x30f0, 0x38f0, 0x9273, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd375, 0xd375, 0xd375, 0xd375, 0xd375, 0xd355, 0xd355, 0xd355, 0xd355, 0xd355, 0xd335, 0xd335, 0xd334, 0xd335, 0xd334, 0xd334, 0xd314, 0xd315, 0xaa93, 0x28cf, 0x28cf, 0x28cf, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ae, 0x20ce, 0x20ce, 0x20ae, 0x20ae, 0x20ae, 0x20ad, 0x20ad, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ae, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0xd0be, 0xd0be, 0xd0be, 0xd0be, 0xd0be, 0xd0be, 0xd09e, 0xd0be, 0xd0be, 0x18ad, 0x18ad, 0x18ad, 0x30b0, 0xd0be, 0xd0be, 0xd0be, 0xd0be, 0xd0be, 0x20ae, 0x18ad, 0xb8bc, 0xd0be, 0xd0be, 0xd0be, 0xd0be, 0x68b5, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0xd0be, 0xd0be, 0xd0be, 0xd0be, 0xd0be, 0x20ad, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0xd0be, 0xd0be, 0xd0be, 0xd0be, 0xd0be, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x0119, 0x011a, 0x08f3, 0x18ad, 0x18ad, 0x08f3, 0x011a, 0x0119, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x10d0, 0x00f9, 0x0119, 0x00f7, 0x18ae, 0x18ad, 0x18ad, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18d0, 0x0118, 0x011a, 0x011a, 0x0119, 0x10d2, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x00f7, 0x0119, 0x0119, 0x0119, 0x0119, 0x00f7, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x10d2, 0x08d4, 0x08f3, 0x10d2, 0x18cd, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ce, 0x00f7, 0x0119, 0x0119, 0x18d0, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x20ce, 0x61b8, 0x721b, 0x71fb, 0x721b, 0x721b, 0x4133, 0x20ad, 0x71fb, 0x721b, 0x71fb, 0x4174, 0x20ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x10d2, 0x0119, 0x0119, 0x08f5, 0x18ad, 0x18ad, 0x18ae, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x011a, 0x011a, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ae, 0x0119, 0x011a, 0x18d1, 0x20ae, 0x20ce, 0x20f1, 0x093a, 0x093a, 0x28cf, 0x28cf, 0x30ef, 0x30f0, 0x30f0, 0x38f0, 0x3911, 0xaaf4, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd375, 0xd375, 0xd375, 0xd375, 0xd375, 0xd355, 0xd355, 0xd355, 0xd355, 0xd355, 0xd355, 0xd335, 0xd335, 0xd335, 0xd335, 0xd335, 0xd335, 0xd314, 0xd314, 0xd315, 0x28ef, 0x28ef, 0x28cf, 0x28cf, 0x28cf, 0x28ce, 0x28ce, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ae, 0x20ce, 0x20ce, 0x20ae, 0x20ae, 0x20ae, 0x18ae, 0x20ad, 0x20ad, 0x20ae, 0x30ee, 0x6150, 0x81b1, 0xa1f2, 0xc233, 0xca53, 0xca54, 0xca53, 0xc233, 0xa1f2, 0x8191, 0x512f, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18cd, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0xf03f, 0xf03f, 0xf03f, 0xf03f, 0xf03f, 0xf03f, 0xf03f, 0xf03f, 0xf03f, 0x18ad, 0x20ad, 0x18ad, 0xb079, 0xf03f, 0xf03f, 0xf03f, 0xf03f, 0xa058, 0x18ad, 0x18ad, 0x7095, 0xf03f, 0xf03f, 0xf03f, 0xf03f, 0xe83e, 0x28ae, 0x20ad, 0x18ad, 0x18ad, 0xf03f, 0xf01f, 0xf03f, 0xf03f, 0xf03f, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ae, 0xf03f, 0xf03f, 0xf03f, 0xf03f, 0xf03f, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18af, 0x00f9, 0x0119, 0x18d0, 0x18ad, 0x18ae, 0x10d0, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x011a, 0x011a, 0x0119, 0x0119, 0x00f7, 0x18ae, 0x18ad, 0x18ad, 0x18ad, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x10d0, 0x0119, 0x00f9, 0x0119, 0x0119, 0x10d0, 0x20ad, 0x18ad, 0x18ae, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x10d2, 0x08f3, 0x08f3, 0x10d2, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x0117, 0x0119, 0x0119, 0x18d0, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x20ad, 0x18ae, 0x18ad, 0x18ad, 0x20ce, 0x69b9, 0x81fb, 0x79db, 0x79dc, 0x81fc, 0x5976, 0x79db, 0x79dc, 0x81dc, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x10d2, 0x0119, 0x0119, 0x08f5, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ae, 0x0918, 0x0119, 0x0917, 0x18d0, 0x20d0, 0x0917, 0x093a, 0x1138, 0x28cf, 0x30cf, 0x30ef, 0x30f0, 0x30f0, 0x3911, 0x3911, 0xaad4, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd375, 0xd375, 0xd375, 0xd375, 0xd375, 0xd355, 0xd355, 0xd355, 0xd355, 0xd355, 0xd355, 0xd355, 0xd335, 0xd335, 0xd335, 0xd335, 0xd315, 0xd314, 0xd315, 0xd315, 0xd314, 0x69b2, 0x28ef, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x28ce, 0x28ce, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ae, 0x20ce, 0x410f, 0x6990, 0x99f2, 0xc253, 0xca74, 0xd274, 0xca74, 0xd253, 0xca53, 0xca53, 0xca53, 0xd233, 0xd253, 0xca53, 0xd233, 0xca33, 0xc213, 0x8991, 0x410f, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x0119, 0x011a, 0x08f3, 0x18ad, 0x18ad, 0x08f3, 0x0119, 0x0119, 0x00f9, 0x011a, 0x011a, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x011a, 0x00f9, 0x0119, 0x011a, 0x0119, 0x011a, 0x00f7, 0x18ce, 0x18ad, 0x18ad, 0x18ad, 0x18ad, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x18d0, 0x0119, 0x011a, 0x0119, 0x00f9, 0x10cf, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x20ad, 0x18ae, 0x0917, 0x0119, 0x0119, 0x10cf, 0x18ad, 0x18ae, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ae, 0x20ae, 0x7199, 0x89db, 0x89bc, 0x81bc, 0x89bc, 0x89bc, 0x89bc, 0x89bc, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x10d2, 0x0119, 0x0119, 0x08f5, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x08f5, 0x011a, 0x0119, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18d2, 0x0119, 0x0119, 0x093a, 0x093a, 0x093a, 0x093a, 0x20f2, 0x28cf, 0x28f0, 0x30f0, 0x30f0, 0x3111, 0x3911, 0x3911, 0xb2f5, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd375, 0xd375, 0xd375, 0xd375, 0xd375, 0xd375, 0xd355, 0xd355, 0xd355, 0xd355, 0xd355, 0xd355, 0xd355, 0xd335, 0xd335, 0xd335, 0xd335, 0xd315, 0xd315, 0xd314, 0xd314, 0xd2f4, 0xd2f5, 0xcad4, 0x5971, 0x30f0, 0x30d0, 0x28ef, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x28ce, 0x38ef, 0x79b1, 0xba53, 0xca94, 0xca94, 0xca74, 0xd273, 0xd273, 0xca73, 0xca54, 0xca53, 0xca54, 0xca53, 0xca33, 0xca53, 0xca53, 0xca33, 0xca33, 0xca33, 0xd213, 0xca13, 0xca13, 0xa1b2, 0x490f, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20cd, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18cd, 0x18ad, 0x18ae, 0x18ad, 0x08f5, 0x0119, 0x0119, 0x00f7, 0x00f7, 0x0119, 0x0119, 0x08d5, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x20ae, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18af, 0x0118, 0x0119, 0x0119, 0x00f9, 0x10cf, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18ae, 0x0117, 0x0119, 0x00f9, 0x18b0, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ce, 0x7979, 0x919c, 0x919c, 0x91bc, 0x919c, 0x899c, 0x89bc, 0x18ae, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ae, 0x18ad, 0x10d2, 0x0119, 0x0119, 0x08f5, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x08f5, 0x011a, 0x0119, 0x10f2, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x20ae, 0x20ae, 0x20ce, 0x18f2, 0x0919, 0x091a, 0x091a, 0x0919, 0x20f3, 0x28ef, 0x30f0, 0x30f0, 0x30f0, 0x3110, 0x3911, 0x3911, 0x4112, 0xb2f5, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd375, 0xd375, 0xd375, 0xd375, 0xd375, 0xd355, 0xd355, 0xd355, 0xd355, 0xd355, 0xd355, 0xd355, 0xd335, 0xd335, 0xd335, 0xd335, 0xd315, 0xd314, 0xd314, 0xd314, 0xd2f4, 0xd314, 0xd2f5, 0xd2f4, 0xd2f4, 0x4930, 0x30f0, 0x30ef, 0x28f0, 0x28cf, 0x28cf, 0x28cf, 0x28ef, 0x28ce, 0x28cf, 0x28cf, 0x28cf, 0x4130, 0x89f1, 0xd294, 0xd294, 0xca93, 0xca74, 0xd274, 0xca74, 0xca74, 0xca53, 0xca73, 0xd253, 0xd254, 0xca53, 0xca53, 0xca54, 0xc274, 0x9b36, 0x83b8, 0x6419, 0x6c39, 0x6439, 0x6c1a, 0x8b57, 0xb295, 0xca13, 0x9191, 0x28ce, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x20ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x20ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ae, 0x18ad, 0x18ae, 0x18ad, 0x18ae, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x00f7, 0x0119, 0x0119, 0x0119, 0x0119, 0x00f7, 0x18ae, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ae, 0x18cd, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ae, 0x18cf, 0x0119, 0x00f9, 0x0119, 0x00f9, 0x18cf, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ae, 0x00f7, 0x0119, 0x0119, 0x18af, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x28ae, 0x8159, 0x917c, 0x997c, 0x997c, 0x999c, 0x999c, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x10d2, 0x0119, 0x0119, 0x08d5, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x08f4, 0x0119, 0x00f9, 0x10d2, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x20ad, 0x20ae, 0x20ae, 0x20ce, 0x20ce, 0x20ce, 0x20d0, 0x20d1, 0x28cf, 0x28cf, 0x28ef, 0x30f0, 0x30f0, 0x3110, 0x3910, 0x4111, 0x4112, 0x4112, 0x9294, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd375, 0xd375, 0xd375, 0xd375, 0xd375, 0xd355, 0xd355, 0xd355, 0xd355, 0xd355, 0xd355, 0xd335, 0xd335, 0xd335, 0xd335, 0xd335, 0xd315, 0xd315, 0xd314, 0xd2f4, 0xd2f4, 0xd315, 0xd2f4, 0xd2f5, 0xd2f4, 0xd2d5, 0x79d2, 0x3110, 0x30f0, 0x30f0, 0x30f0, 0x28f0, 0x30d0, 0x28ef, 0x28f0, 0x28cf, 0x5150, 0xaa32, 0xd293, 0xd294, 0xd294, 0xca93, 0xca74, 0xca74, 0xca74, 0xca74, 0xd274, 0xd254, 0xca53, 0xca54, 0xb2d5, 0x83b8, 0x44fc, 0x1dbe, 0x063f, 0x0cdb, 0x0b76, 0x1377, 0x1377, 0x0b76, 0x1356, 0x0b76, 0x0b77, 0x23f8, 0x6991, 0x510f, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x20ad, 0x18cd, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ae, 0x18ad, 0x20ae, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x10d2, 0x08f3, 0x08f3, 0x10d2, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ae, 0x18ad, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18cd, 0x18ad, 0x18af, 0x0119, 0x0119, 0x0119, 0x00f9, 0x18cf, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18ce, 0x00f7, 0x0119, 0x00f9, 0x18af, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ae, 0x20ad, 0x20ae, 0x8939, 0xa17c, 0xa17c, 0xa15d, 0xa15d, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x10d2, 0x0119, 0x011a, 0x08f5, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ae, 0x18ad, 0x08f5, 0x0119, 0x0119, 0x10d2, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x20ce, 0x20ce, 0x20ce, 0x28ce, 0x28cf, 0x28cf, 0x28ef, 0x28f0, 0x30f0, 0x3110, 0x3911, 0x3911, 0x3911, 0x4112, 0x4132, 0x8a54, 0xd395, 0xd395, 0xd395, 0xd395, 0xd375, 0xd375, 0xd375, 0xd375, 0xd375, 0xd355, 0xd355, 0xd355, 0xd355, 0xd355, 0xd355, 0xd355, 0xd335, 0xd335, 0xd335, 0xd315, 0xd315, 0xd315, 0xd314, 0xd314, 0xd314, 0xd2f4, 0xd2f4, 0xd2f5, 0xd2f4, 0xd2f4, 0xd2d4, 0xcad4, 0x5951, 0x38f0, 0x30f0, 0x30f0, 0x30f0, 0x30f0, 0x30f0, 0x4130, 0x91f2, 0xd294, 0xd294, 0xca94, 0xca74, 0xca94, 0xca94, 0xca74, 0xd274, 0xd274, 0xd274, 0xd253, 0xb2d5, 0x7419, 0x257d, 0x063f, 0x061f, 0x057d, 0x12b5, 0x190f, 0x18ce, 0x20ae, 0x20ad, 0x20ad, 0x18ad, 0x18ad, 0x20ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ae, 0x20ad, 0x18ad, 0x18ae, 0x18ad, 0x18ae, 0x18ae, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x18ae, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x20ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x20ad, 0x18ae, 0x18ad, 0x20ad, 0x18ae, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18cd, 0x18ad, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ae, 0x18ae, 0x18ad, 0x10d0, 0x0119, 0x0119, 0x011a, 0x00f9, 0x18cf, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ce, 0x0117, 0x0119, 0x0119, 0x18b0, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ce, 0x913a, 0xa93d, 0xa95d, 0xa95c, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x10d2, 0x0119, 0x0119, 0x08f5, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x08f5, 0x0119, 0x0119, 0x10d2, 0x18ad, 0x18ad, 0x20ae, 0x18ae, 0x18cd, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x20ce, 0x20ce, 0x20ce, 0x20cf, 0x28ce, 0x28cf, 0x28ef, 0x28f0, 0x30f0, 0x30f0, 0x3911, 0x3911, 0x3911, 0x4132, 0x4132, 0x4932, 0x9255, 0xd395, 0xd395, 0xd375, 0xd375, 0xd375, 0xd375, 0xd375, 0xd375, 0xd355, 0xd355, 0xd355, 0xd355, 0xd355, 0xd355, 0xd335, 0xd335, 0xd335, 0xd335, 0xd315, 0xd315, 0xd315, 0xd314, 0xd314, 0xd314, 0xd2f4, 0xd2f5, 0xd2f4, 0xd2f4, 0xd2f4, 0xd2f4, 0xd2d4, 0xd2d4, 0xcab4, 0x5172, 0x3911, 0x38f1, 0x38f0, 0x30f0, 0x81d2, 0xc294, 0xd294, 0xd293, 0xd294, 0xd294, 0xca93, 0xca93, 0xd274, 0xd274, 0xca73, 0xd274, 0x83d8, 0x353d, 0x061f, 0x063f, 0x063f, 0x063f, 0x4c5a, 0x4970, 0x20ae, 0x20ae, 0x20ad, 0x18cd, 0x20ad, 0x20ad, 0x18ad, 0x20ad, 0x18ae, 0x18ad, 0x18ad, 0x18ae, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18ae, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x20ad, 0x18ad, 0x18cd, 0x18ad, 0x20ad, 0x18ad, 0x20ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20cd, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18cd, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18cd, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18d0, 0x00f9, 0x0119, 0x0119, 0x00f9, 0x10cf, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18cd, 0x10d2, 0x08f3, 0x08d4, 0x10d2, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x20ad, 0x18cd, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ce, 0x00f7, 0x0119, 0x00f9, 0x10cf, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ae, 0xb11d, 0xb11d, 0xb11d, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x10d2, 0x0119, 0x0119, 0x08d5, 0x18ae, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x08f5, 0x0119, 0x0119, 0x10d2, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ae, 0x20ae, 0x20ae, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x28cf, 0x20cf, 0x28cf, 0x28cf, 0x28ef, 0x30f0, 0x30f0, 0x38f0, 0x3911, 0x3911, 0x4112, 0x4132, 0x4932, 0x4953, 0x6b36, 0xd395, 0xd395, 0xd375, 0xd375, 0xd375, 0xd375, 0xd375, 0xd355, 0xd355, 0xd355, 0xd355, 0xd355, 0xd355, 0xd355, 0xd335, 0xd335, 0xd335, 0xd335, 0xd315, 0xd314, 0xd314, 0xd314, 0xd314, 0xd314, 0xd2f4, 0xd2f4, 0xd2f4, 0xd2f5, 0xd2d4, 0xd2d4, 0xd2d5, 0xd2d4, 0xcad4, 0xcab4, 0x5972, 0x3911, 0x5151, 0xb253, 0xcab4, 0xd294, 0xca94, 0xd294, 0xca94, 0xd294, 0xca94, 0xca74, 0xd274, 0xc294, 0x645a, 0x1dbe, 0x063f, 0x063f, 0x063f, 0x1dbe, 0x6459, 0xc274, 0x99d2, 0x28ce, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x18ce, 0x18ad, 0x18ad, 0x20ae, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x20ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x18cd, 0x18ad, 0x20ad, 0x18ad, 0x18ae, 0x20ae, 0x18ae, 0x18ad, 0x18ae, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x20ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x10d0, 0x0119, 0x0119, 0x0119, 0x00f9, 0x10d0, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18af, 0x0117, 0x0119, 0x0119, 0x0119, 0x0119, 0x0117, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ce, 0x00f7, 0x0119, 0x0119, 0x18d0, 0x18cd, 0x18ad, 0x18ad, 0x20ad, 0x18ae, 0x18cd, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x18ae, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0xb8fe, 0xb8fd, 0xb8fe, 0x18ad, 0x18ad, 0x18ad, 0x20ae, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x10d0, 0x00f9, 0x0119, 0x08f5, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ae, 0x18ad, 0x18ad, 0x08f5, 0x0119, 0x0119, 0x10d2, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ae, 0x20ad, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x20ce, 0x20ce, 0x20ce, 0x28cf, 0x28cf, 0x28cf, 0x28ef, 0x28f0, 0x30f0, 0x30f0, 0x3911, 0x3911, 0x4111, 0x4132, 0x4132, 0x4933, 0x4953, 0x253b, 0x465c, 0x6d7b, 0x6d9a, 0x6d9a, 0x6d7a, 0x84f9, 0x9c78, 0x9c77, 0x9c78, 0x9c78, 0x9c57, 0x9c78, 0x9c58, 0x9c58, 0xbbb6, 0xd334, 0xd315, 0xd334, 0xd315, 0xd314, 0xd315, 0xd2f4, 0xcaf4, 0xd2f4, 0xd2f4, 0xd2f4, 0xd2f5, 0xd2d4, 0xcad4, 0xd2d4, 0xd2d4, 0xcad4, 0xcab4, 0xd2d4, 0x91f3, 0x5972, 0xca74, 0xd2b4, 0xd2b4, 0xd294, 0xca94, 0xd294, 0xd294, 0xca94, 0xca74, 0xc2b4, 0x6c5a, 0x0dff, 0x063f, 0x063f, 0x063f, 0x353d, 0x83b8, 0xca53, 0xca33, 0x89b1, 0x20ce, 0x20ce, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ae, 0x011a, 0x0119, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ae, 0x18ad, 0x20ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18cd, 0x18ad, 0x20ae, 0x18cd, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ce, 0x00f7, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18d0, 0x00f9, 0x00f9, 0x0119, 0x00f9, 0x18cf, 0x18ad, 0x18ad, 0x18ae, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x08f5, 0x00f9, 0x0119, 0x0119, 0x0119, 0x0119, 0x00f9, 0x08f5, 0x20ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x0117, 0x0119, 0x0119, 0x18d0, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x20ad, 0x18ae, 0xc0de, 0xc0fe, 0xc0dd, 0x18ae, 0x18cd, 0x20ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x00f9, 0x00fa, 0x08f4, 0x18ad, 0x18ae, 0x18ad, 0x20ae, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x10d2, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x20ce, 0x20ae, 0x20ce, 0x20ce, 0x20ce, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x30ef, 0x30f0, 0x30f0, 0x3911, 0x38f1, 0x3911, 0x4112, 0x4132, 0x4932, 0x4953, 0x5153, 0x4d1a, 0x6d9a, 0x94b9, 0x9c98, 0x9c77, 0x9c78, 0x9c78, 0x9c78, 0x94b8, 0x6d7a, 0x6d7a, 0x6d7b, 0x367c, 0x367d, 0x1efe, 0x077f, 0x075f, 0x1ede, 0x363d, 0x6d3a, 0x9c17, 0xd2f4, 0xd2f4, 0xd2f4, 0xd2f4, 0xd2f4, 0xd2f5, 0xd2d4, 0xd2d4, 0xd2d4, 0xd2d4, 0xcad4, 0xd2b4, 0xcad4, 0xd2b3, 0xcab4, 0xc294, 0xcab4, 0xca94, 0xca94, 0xd294, 0xca94, 0xca74, 0xca74, 0xca74, 0x7bd8, 0x0dff, 0x063f, 0x061f, 0x063f, 0x4cbb, 0x9b57, 0xd233, 0xca33, 0xca53, 0x6150, 0x28cf, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18d0, 0x08f3, 0x08f3, 0x08f3, 0x10d2, 0x20ae, 0x10d2, 0x10d3, 0x08f3, 0x08f3, 0x18d0, 0x18ad, 0x10d2, 0x08f3, 0x08f3, 0x08f3, 0x10d0, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x10d0, 0x08f3, 0x08f3, 0x08f3, 0x10d2, 0x18ad, 0x10d2, 0x08f3, 0x10d3, 0x08f3, 0x18d0, 0x18ae, 0x10d2, 0x08f3, 0x08f3, 0x08f3, 0x10d1, 0x18ad, 0x10d1, 0x08f3, 0x08f3, 0x08f3, 0x10d2, 0x18ad, 0x10d2, 0x08f3, 0x08f3, 0x08f3, 0x10d1, 0x18ad, 0x10d2, 0x08f3, 0x10f3, 0x08f3, 0x10d0, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x0117, 0x0119, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18d0, 0x0119, 0x0119, 0x0119, 0x00f9, 0x10d0, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x0119, 0x0119, 0x011a, 0x011a, 0x011a, 0x0119, 0x0119, 0x0119, 0x18ad, 0x18ae, 0x20ad, 0x18ad, 0x20ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x20ad, 0x18ae, 0x0917, 0x0119, 0x0119, 0x18cf, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ae, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0xc8be, 0xc8de, 0xc8be, 0x18ad, 0x18ad, 0x18ae, 0x18ae, 0x18ae, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x20ad, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x011a, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x20ce, 0x20ce, 0x20ce, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x30f0, 0x30f0, 0x30f0, 0x38f0, 0x3911, 0x3911, 0x3912, 0x4132, 0x4132, 0x4933, 0x5153, 0xa2b5, 0xd375, 0xd375, 0xd375, 0xd375, 0xd375, 0xd355, 0xd355, 0xd355, 0xd355, 0xd335, 0xd355, 0xd334, 0xd335, 0xd335, 0xd335, 0xd335, 0xbb96, 0xa437, 0x74f9, 0x4dbc, 0x2e7e, 0x0edf, 0x559b, 0x8498, 0xc335, 0xd2f4, 0xd2d4, 0xd2f5, 0xd2d4, 0xd2d4, 0xd2b5, 0xcab4, 0xd2b4, 0xd2b4, 0xcab4, 0xd2b4, 0xd2b4, 0xbab4, 0xbaf6, 0xca94, 0xd294, 0xca94, 0xd273, 0x9b76, 0x1dbe, 0x061f, 0x063f, 0x0ddf, 0x643a, 0xb2d5, 0xca54, 0xd253, 0xca53, 0xc294, 0x59b1, 0x28ce, 0x28cf, 0x28ce, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x18ae, 0x18ad, 0x0119, 0x011a, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x08f3, 0x0119, 0x011a, 0x0119, 0x00f7, 0x18ad, 0x00f6, 0x0119, 0x0119, 0x011a, 0x10d3, 0x18ad, 0x0116, 0x00f9, 0x0119, 0x011a, 0x10d3, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x10d3, 0x011a, 0x0119, 0x00f9, 0x00f6, 0x18ad, 0x08f6, 0x011a, 0x011a, 0x0119, 0x10d3, 0x18cd, 0x08f6, 0x0119, 0x0119, 0x0119, 0x10d3, 0x18ad, 0x08f3, 0x0119, 0x011a, 0x0119, 0x08f7, 0x18ae, 0x00f6, 0x0119, 0x0119, 0x0119, 0x08f3, 0x18cd, 0x00f7, 0x011a, 0x011a, 0x0119, 0x08f3, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ae, 0x10d2, 0x08f3, 0x08f3, 0x10d1, 0x18ce, 0x00f7, 0x0119, 0x0119, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18b0, 0x0119, 0x0119, 0x0119, 0x00f9, 0x10cf, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x011a, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18ae, 0x0117, 0x0119, 0x00f9, 0x18af, 0x18ae, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ae, 0x20ad, 0x18ad, 0x18cd, 0x18ae, 0x18ad, 0x18ad, 0x18ae, 0x18cd, 0x18cd, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x40b0, 0xa09a, 0xd0be, 0xd09e, 0xd0be, 0xb89c, 0x78b5, 0x28ae, 0x18ad, 0x20ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x0119, 0x011a, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x20ad, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x30ef, 0x30f0, 0x30f0, 0x38f0, 0x3911, 0x3911, 0x4112, 0x4112, 0x4932, 0x4933, 0x5173, 0xbb15, 0xd395, 0xd375, 0xd375, 0xd375, 0xd355, 0xd355, 0xd355, 0xd355, 0xd355, 0xd355, 0xd335, 0xd355, 0xd335, 0xd335, 0xd314, 0xd314, 0xd335, 0xd315, 0xd314, 0xd315, 0xd2f5, 0xd2f5, 0xd2f4, 0x9bf7, 0x6d1a, 0x2e3d, 0x45bc, 0x9418, 0xd2d4, 0xcad4, 0xd2d4, 0xd2b4, 0xd2b4, 0xd2b4, 0xcab4, 0xd2b4, 0xd294, 0xd294, 0xd294, 0xc2d4, 0x4cdb, 0x7bd8, 0x9b57, 0x44fc, 0x063f, 0x063f, 0x1dbe, 0x83d8, 0xc294, 0xca53, 0xca54, 0xca33, 0xca53, 0xb2b5, 0x33b8, 0x28f0, 0x28cf, 0x28cf, 0x28cf, 0x20cf, 0x20cf, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x188e, 0x20cd, 0x10d1, 0x0119, 0x011a, 0x10d1, 0x20ae, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ae, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x08f3, 0x011a, 0x011a, 0x0119, 0x00f6, 0x18ad, 0x08f6, 0x011a, 0x0119, 0x0119, 0x10d3, 0x18ad, 0x00f7, 0x0119, 0x0139, 0x011a, 0x08f3, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x08f3, 0x011a, 0x0139, 0x0119, 0x08f7, 0x18ad, 0x08f6, 0x0119, 0x0119, 0x0119, 0x10d3, 0x18ad, 0x08f7, 0x011a, 0x0119, 0x011a, 0x10d3, 0x20ad, 0x08f3, 0x0119, 0x0119, 0x0119, 0x08f6, 0x18ad, 0x08f6, 0x011a, 0x0119, 0x011a, 0x10d3, 0x18ad, 0x08f7, 0x0119, 0x0119, 0x0119, 0x08f3, 0x18ad, 0x18ae, 0x18ae, 0x18cf, 0x00f8, 0x011a, 0x011a, 0x0119, 0x011a, 0x0119, 0x0119, 0x00f9, 0x10d0, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18b0, 0x0119, 0x00f9, 0x0119, 0x00f9, 0x18cf, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x0119, 0x0119, 0x011a, 0x0119, 0x0119, 0x011a, 0x0119, 0x0119, 0x18ae, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ae, 0x00f7, 0x0119, 0x0118, 0x10d0, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ae, 0x40b0, 0xd07d, 0xd87e, 0xd89f, 0xd89f, 0xe07f, 0xd89e, 0xd89f, 0xb87b, 0x28ae, 0x20ad, 0x18ae, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x011a, 0x0119, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ae, 0x20ae, 0x20ad, 0x20ad, 0x20ae, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x28cf, 0x28cf, 0x28ef, 0x28ef, 0x28ef, 0x30f0, 0x30f0, 0x3110, 0x3911, 0x3911, 0x3911, 0x4132, 0x4132, 0x4933, 0x5174, 0xbb14, 0xd375, 0xd375, 0xd375, 0xd375, 0xd375, 0xd355, 0xd355, 0xd355, 0xd355, 0xd355, 0xd335, 0xd334, 0xd335, 0xd335, 0xd335, 0xd314, 0xd335, 0xd315, 0xd314, 0xd314, 0xd315, 0xd2f4, 0xd2f4, 0xd2f4, 0xd2f4, 0xd2f5, 0xd2d4, 0xc335, 0x8478, 0x4d7b, 0x4d5b, 0xab96, 0xd2b4, 0xcab4, 0xd2b4, 0xd2b4, 0xca94, 0xcab4, 0xd294, 0xd294, 0xd273, 0xc2b4, 0x5c9a, 0x061f, 0x061f, 0x063f, 0x7419, 0xd273, 0xd273, 0xca53, 0xca53, 0xd233, 0xca53, 0xaaf6, 0x153c, 0x2951, 0x30f0, 0x30f0, 0x28ef, 0x28ef, 0x28cf, 0x28cf, 0x28cf, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x0117, 0x0119, 0x0119, 0x0119, 0x0119, 0x0117, 0x18ce, 0x18ad, 0x18ad, 0x18ae, 0x18ae, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x08f3, 0x0119, 0x011a, 0x0119, 0x08f6, 0x18ad, 0x08f6, 0x0119, 0x011a, 0x0119, 0x08f3, 0x18ad, 0x00f6, 0x0119, 0x0119, 0x011a, 0x10d3, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x10d3, 0x011a, 0x0119, 0x0119, 0x08f6, 0x18ad, 0x00f6, 0x0119, 0x0119, 0x0119, 0x08f3, 0x18ad, 0x08f6, 0x0119, 0x0119, 0x0119, 0x08f3, 0x18ae, 0x08f3, 0x0119, 0x0119, 0x0119, 0x00f6, 0x18ae, 0x08f6, 0x011a, 0x0119, 0x0119, 0x08f3, 0x18ad, 0x00f6, 0x0119, 0x0119, 0x0119, 0x08f3, 0x18ae, 0x18ad, 0x18ad, 0x00f7, 0x0119, 0x011a, 0x0119, 0x00f9, 0x0119, 0x0119, 0x0118, 0x10cf, 0x20ae, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18d0, 0x00f9, 0x0119, 0x0119, 0x00f9, 0x18cf, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x08f6, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x011a, 0x08f5, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18ce, 0x00f7, 0x0119, 0x0119, 0x10b0, 0x18ae, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x208d, 0x18ad, 0x10d2, 0x08f3, 0x10d3, 0x10d2, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0xb07a, 0xe85f, 0xe85f, 0xe07f, 0xe85f, 0xe87f, 0xe07f, 0xe85f, 0xe07f, 0x9898, 0x20ad, 0x18ad, 0x18cd, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x011a, 0x0119, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18ae, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x011a, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20cf, 0x28cf, 0x28cf, 0x28cf, 0x28ef, 0x30f0, 0x30f0, 0x3110, 0x3910, 0x3911, 0x3911, 0x4112, 0x4132, 0x4932, 0x5153, 0xbb15, 0xd395, 0xd375, 0xd375, 0xd375, 0xd375, 0xd375, 0xd355, 0xd355, 0xd354, 0xd355, 0xd335, 0xd355, 0xd335, 0xd335, 0xd315, 0xcb34, 0xd315, 0xd314, 0xd314, 0xd315, 0xd314, 0xd2f4, 0xd2f5, 0xd2f4, 0xcaf4, 0xd2f4, 0xd2d4, 0xd2d4, 0xd2d5, 0xd2d4, 0xd2d4, 0xbb55, 0x7499, 0x35dc, 0x8439, 0xc2f4, 0xd2b4, 0xd294, 0xd294, 0xd294, 0xca93, 0xd294, 0xd274, 0xca74, 0x9b76, 0x061f, 0x061f, 0x83d8, 0xc295, 0xca53, 0xca53, 0xca53, 0xca53, 0x7bb8, 0x063f, 0x2a34, 0x30f0, 0x30f0, 0x30ef, 0x30f0, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ae, 0x20ae, 0x20ae, 0x20ad, 0x20ae, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x08f5, 0x0119, 0x0119, 0x011a, 0x0119, 0x011a, 0x00f9, 0x08d5, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x08f3, 0x0119, 0x011a, 0x0119, 0x08f6, 0x18ad, 0x08f7, 0x0119, 0x011a, 0x0119, 0x08f3, 0x18ad, 0x08f6, 0x0119, 0x011a, 0x0119, 0x08f3, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x08f3, 0x0119, 0x011a, 0x0119, 0x00f6, 0x18ad, 0x00f6, 0x011a, 0x0119, 0x0119, 0x08f3, 0x18ae, 0x00f6, 0x0119, 0x0119, 0x0119, 0x08f3, 0x18ad, 0x08d4, 0x0119, 0x0119, 0x011a, 0x08f6, 0x18ad, 0x08f6, 0x0119, 0x0119, 0x0119, 0x08f3, 0x18ad, 0x08f6, 0x0119, 0x0119, 0x011a, 0x08f3, 0x18ad, 0x18ad, 0x18d0, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x011a, 0x0119, 0x0118, 0x18ad, 0x18ad, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18d0, 0x0119, 0x0119, 0x011a, 0x00f9, 0x18cf, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x10d2, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x011a, 0x00f7, 0x18ce, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ce, 0x00f7, 0x0119, 0x0118, 0x18d0, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ae, 0x00f7, 0x0119, 0x00f9, 0x0119, 0x0119, 0x00f7, 0x18ce, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x38b0, 0xf05f, 0xe83f, 0xf03f, 0xf05f, 0xf05f, 0xf03f, 0xf03f, 0xf03f, 0xf05f, 0xe83f, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x011a, 0x18ad, 0x18ad, 0x18ae, 0x18ae, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x011a, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x30ef, 0x30f0, 0x30f0, 0x30f0, 0x3911, 0x3911, 0x3911, 0x4112, 0x4132, 0x4933, 0x5173, 0xbb35, 0xd395, 0xd375, 0xd375, 0xd375, 0xd375, 0xd355, 0xd355, 0xd355, 0xd355, 0xd355, 0xd335, 0xd335, 0xd335, 0xd335, 0xd335, 0xcb35, 0xd315, 0xd314, 0xd314, 0xd314, 0xd314, 0xd2f4, 0xd2f4, 0xd2f4, 0xd2f5, 0xd2f5, 0xcad4, 0xd2f4, 0xcad4, 0xd2d4, 0xd2d4, 0xcab4, 0xd2b4, 0xcab4, 0xcab4, 0x8bf8, 0x3d5c, 0x6499, 0xc2d4, 0xd294, 0xd294, 0xca74, 0xca74, 0xd274, 0xca74, 0xca74, 0x54bb, 0x5c9a, 0x353d, 0x1dbe, 0x4cbb, 0x9377, 0x9b36, 0x44fc, 0x061f, 0x1bf9, 0x3911, 0x3910, 0x30f0, 0x30f0, 0x30f0, 0x30f0, 0x30ef, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x0119, 0x0119, 0x011a, 0x011a, 0x0119, 0x011a, 0x0119, 0x0119, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x08f3, 0x0119, 0x0119, 0x0119, 0x00f6, 0x18ad, 0x08f7, 0x0119, 0x011a, 0x011a, 0x10d3, 0x18ad, 0x08f6, 0x0119, 0x00f9, 0x0119, 0x08f3, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x08f3, 0x0119, 0x00f9, 0x0119, 0x08f6, 0x18ad, 0x08f6, 0x0119, 0x0119, 0x011a, 0x08f3, 0x18ae, 0x00f6, 0x0119, 0x0119, 0x011a, 0x10d3, 0x18ad, 0x10d3, 0x0119, 0x011a, 0x011a, 0x08f6, 0x18ad, 0x08f6, 0x0119, 0x0119, 0x0119, 0x08f3, 0x20ad, 0x08f6, 0x011a, 0x0119, 0x011a, 0x08f3, 0x18ad, 0x18ad, 0x10d0, 0x011a, 0x011a, 0x011a, 0x0119, 0x011a, 0x011a, 0x0119, 0x00f9, 0x18ad, 0x18ad, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x10d0, 0x00f9, 0x0119, 0x0119, 0x00f9, 0x10cf, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x10d2, 0x0119, 0x0119, 0x0119, 0x0119, 0x08f4, 0x10f3, 0x10d2, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x20ad, 0x18cd, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ae, 0x18ae, 0x00f7, 0x0119, 0x0118, 0x18ce, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x08f5, 0x011a, 0x0119, 0x011a, 0x011a, 0x0119, 0x0119, 0x08f5, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x20ae, 0x18ad, 0x5092, 0xf83f, 0xf83f, 0xf03f, 0xf83f, 0xf83f, 0xf83f, 0xf83f, 0xf81f, 0xf03f, 0xf83f, 0x5092, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x011a, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x28ef, 0x30f0, 0x30f0, 0x30f0, 0x30f0, 0x3911, 0x3911, 0x3911, 0x4112, 0x4132, 0x4932, 0x69b3, 0xc355, 0xd375, 0xd375, 0xd375, 0xd375, 0xd375, 0xd375, 0xd375, 0xd355, 0xd355, 0xd355, 0xd335, 0xd335, 0xd335, 0xd335, 0xd315, 0xd335, 0xd335, 0xd314, 0xd314, 0xd314, 0xd2f5, 0xd2f5, 0xd2f4, 0xd2f4, 0xd2f4, 0xd2f4, 0xd2d4, 0xd2d4, 0xd2d4, 0xd2d4, 0xd2d4, 0xd2d4, 0xcad4, 0xcab4, 0xd2b4, 0xd2b4, 0xcab4, 0xd294, 0x9b97, 0x453c, 0x6c59, 0xc2b4, 0xca74, 0xd274, 0xd273, 0xca73, 0xd273, 0xc294, 0x6c39, 0xc294, 0xca53, 0x8b98, 0x4cbb, 0x0dff, 0x063f, 0x0d7e, 0x3972, 0x3911, 0x3911, 0x3911, 0x38f0, 0x30f0, 0x30f0, 0x30f0, 0x30ef, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ae, 0x20ce, 0x20ce, 0x20ae, 0x20ae, 0x20ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x0119, 0x0119, 0x0119, 0x0119, 0x011a, 0x011a, 0x0119, 0x011a, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x08f3, 0x0119, 0x0119, 0x011a, 0x00f6, 0x18ad, 0x08f6, 0x0119, 0x0119, 0x0119, 0x10d3, 0x18ad, 0x00f6, 0x011a, 0x0119, 0x0119, 0x10d3, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x10d3, 0x0119, 0x0119, 0x011a, 0x08f6, 0x18ad, 0x08f6, 0x0119, 0x0119, 0x0119, 0x08f3, 0x18ad, 0x00f6, 0x0119, 0x00f9, 0x011a, 0x08f3, 0x18ad, 0x08f3, 0x0119, 0x0119, 0x0119, 0x00f6, 0x18ad, 0x00f6, 0x00f9, 0x0119, 0x0119, 0x08f3, 0x18ad, 0x00f6, 0x0119, 0x011a, 0x0119, 0x10d3, 0x18ad, 0x18ad, 0x10d0, 0x00f9, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x011a, 0x0117, 0x18ad, 0x18ad, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x10d0, 0x0119, 0x0119, 0x0119, 0x00f9, 0x10d0, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18cd, 0x20ae, 0x18ad, 0x18ad, 0x10d2, 0x0119, 0x0119, 0x0119, 0x00f9, 0x10cf, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ce, 0x00f7, 0x011a, 0x0119, 0x011a, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x011a, 0x0119, 0x0119, 0x011a, 0x0119, 0x0119, 0x18cd, 0x18ad, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x5092, 0xf81f, 0xf81f, 0xf81f, 0xf81f, 0xf81f, 0xf81f, 0xf81f, 0xf81f, 0xf81f, 0xf81f, 0x5092, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x011a, 0x0119, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ae, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ae, 0x20ae, 0x20ad, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x28cf, 0x28ce, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x30f0, 0x30f0, 0x30f0, 0x38f0, 0x3911, 0x3911, 0x4111, 0x4112, 0x4132, 0x4933, 0x9254, 0xd395, 0xd375, 0xd375, 0xd375, 0xd375, 0xd355, 0xd375, 0xd355, 0xd355, 0xd355, 0xd335, 0xd335, 0xd355, 0xd335, 0xd335, 0xd335, 0xd335, 0xd335, 0xd314, 0xd314, 0xd314, 0xd314, 0xd2f4, 0xd2f4, 0xd2f4, 0xd2f5, 0xd2f4, 0xd2d4, 0xd2d4, 0xcad4, 0xd2d4, 0xcad4, 0xd2d4, 0xd2b4, 0xcab4, 0xd2b4, 0xd2b4, 0xcab4, 0xd294, 0xd294, 0xd294, 0xca94, 0x9b77, 0x44dc, 0x73f9, 0xca73, 0xca74, 0xd254, 0xca73, 0xca53, 0xc294, 0x351c, 0x6c3a, 0xc294, 0xd253, 0xca34, 0x83b8, 0x5a55, 0x4132, 0x4132, 0x3912, 0x3911, 0x3911, 0x3910, 0x30f0, 0x30f0, 0x30f0, 0x28f0, 0x28ef, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x20cf, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ae, 0x18ad, 0x20ae, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x011a, 0x0119, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x08f3, 0x00fa, 0x0119, 0x0119, 0x08f6, 0x18ad, 0x00f6, 0x0119, 0x0119, 0x011a, 0x08f3, 0x18ae, 0x08f6, 0x011a, 0x0119, 0x0119, 0x08f3, 0x18ae, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ae, 0x08f3, 0x0119, 0x0119, 0x011a, 0x08f7, 0x18ad, 0x0116, 0x011a, 0x0119, 0x011a, 0x08f3, 0x18ad, 0x08f6, 0x0119, 0x011a, 0x0119, 0x08f3, 0x18ad, 0x08f3, 0x0119, 0x0119, 0x0119, 0x08f6, 0x18ad, 0x00f6, 0x0119, 0x0119, 0x011a, 0x08f3, 0x18ad, 0x08f6, 0x0119, 0x011a, 0x0119, 0x10d3, 0x18ae, 0x18ad, 0x18ad, 0x00f7, 0x0119, 0x0119, 0x0119, 0x011a, 0x0119, 0x0119, 0x08f3, 0x18ad, 0x18ad, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18d0, 0x00f9, 0x00f9, 0x0119, 0x00f9, 0x18cf, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18b0, 0x0119, 0x011a, 0x0119, 0x00f8, 0x18d0, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ce, 0x0117, 0x0119, 0x0119, 0x00f9, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x011a, 0x0119, 0x0119, 0x0119, 0x011a, 0x0119, 0x011a, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x4090, 0xf81f, 0xf81f, 0xf81f, 0xf81f, 0xf81f, 0xf81f, 0xf81f, 0xf81f, 0xf81f, 0xf81f, 0x28af, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ae, 0x18ad, 0x18ad, 0x18cd, 0x20ad, 0x0119, 0x0119, 0x18ae, 0x18ad, 0x18ae, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x28cf, 0x28cf, 0x28cf, 0x28ef, 0x28ef, 0x28f0, 0x30f0, 0x30f0, 0x30f0, 0x38f0, 0x3911, 0x3911, 0x4112, 0x4132, 0x4132, 0x69d3, 0xc355, 0xd395, 0xd395, 0xd375, 0xd375, 0xd375, 0xd375, 0xd355, 0xd355, 0xd355, 0xd355, 0xd355, 0xd355, 0xd335, 0xcb55, 0xd335, 0xd335, 0xd335, 0xd315, 0xd314, 0xd314, 0xd314, 0xd314, 0xd2f4, 0xd2f4, 0xd2f4, 0xd2f4, 0xd2f4, 0xcad4, 0xd2f4, 0xd2d4, 0xd2d4, 0xd2b4, 0xd2b4, 0xd2b4, 0xcab4, 0xcab4, 0xcab4, 0xd2b4, 0xcab4, 0xd294, 0xd294, 0xd294, 0xca94, 0xd274, 0xca74, 0x8b78, 0x447c, 0xa316, 0xd253, 0xd253, 0xca54, 0xca53, 0xc294, 0x257d, 0x0ddf, 0x83b8, 0xd233, 0xca33, 0xca33, 0xba13, 0x7993, 0x4112, 0x4112, 0x4111, 0x3911, 0x3911, 0x38f0, 0x30f0, 0x28f0, 0x30d0, 0x30d0, 0x28ef, 0x28cf, 0x28cf, 0x28cf, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ae, 0x20ae, 0x18ad, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18cd, 0x18ad, 0x08f5, 0x0119, 0x011a, 0x011a, 0x0119, 0x011a, 0x00f9, 0x08f5, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x08f3, 0x0119, 0x0119, 0x0119, 0x08f7, 0x18ad, 0x00f6, 0x0119, 0x0119, 0x011a, 0x08f3, 0x18ad, 0x08f6, 0x0119, 0x0119, 0x0119, 0x08f3, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x08f3, 0x0119, 0x0119, 0x0119, 0x0116, 0x20ad, 0x08f6, 0x011a, 0x00f9, 0x0119, 0x10f3, 0x18ad, 0x0116, 0x0119, 0x0119, 0x0119, 0x08f3, 0x18ad, 0x10d4, 0x011a, 0x011a, 0x0119, 0x08f6, 0x20ad, 0x00f6, 0x0119, 0x0119, 0x011a, 0x08f3, 0x18ad, 0x08f7, 0x0119, 0x011a, 0x0119, 0x08f3, 0x18ad, 0x18ad, 0x18ad, 0x18d0, 0x00f7, 0x011a, 0x011a, 0x0119, 0x0119, 0x08f4, 0x20cd, 0x18ad, 0x18ad, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18d0, 0x0119, 0x0119, 0x0119, 0x00f9, 0x10d0, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x10cf, 0x0119, 0x00f9, 0x0119, 0x00f8, 0x18cf, 0x18ad, 0x18ae, 0x18cd, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x00f9, 0x011a, 0x0119, 0x011a, 0x00f9, 0x0119, 0x0119, 0x00f9, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ae, 0x20ad, 0xd03c, 0xf81f, 0xf81f, 0xf81f, 0xf81f, 0xf81f, 0xf81f, 0xf81f, 0xf81f, 0xd03c, 0x18ad, 0x20ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x00f9, 0x0119, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ae, 0x18ae, 0x20ae, 0x20ad, 0x20ae, 0x20ae, 0x20ad, 0x20ad, 0x20ae, 0x20ae, 0x20ce, 0x20ce, 0x20ae, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x30f0, 0x30f0, 0x30f0, 0x30f0, 0x3911, 0x3911, 0x3911, 0x4111, 0x4112, 0x5193, 0xaad4, 0xd375, 0xd395, 0xd375, 0xd375, 0xd375, 0xd375, 0xd375, 0xd355, 0xd355, 0xd355, 0xd355, 0xd355, 0xd355, 0xd335, 0xd335, 0xd335, 0xd314, 0xd314, 0xd315, 0xd314, 0xd314, 0xd314, 0xd314, 0xd315, 0xd2f4, 0xd2f4, 0xd2f4, 0xd2f4, 0xd2d4, 0xd2d4, 0xd2d4, 0xcad4, 0xd2b4, 0xd2b4, 0xd2d4, 0xd2b4, 0xcab4, 0xd2b4, 0xd2b4, 0xd294, 0xd2b4, 0xca94, 0xca94, 0xd294, 0xca74, 0xca73, 0xca74, 0xd274, 0xc295, 0x6bb9, 0x6b99, 0xca54, 0xca53, 0xd254, 0xca33, 0xc294, 0x24fd, 0x063f, 0x351d, 0xb295, 0xca13, 0xca13, 0xca13, 0xb9f3, 0x7992, 0x4111, 0x4112, 0x38f1, 0x3911, 0x3911, 0x38f0, 0x30f0, 0x30f0, 0x30ef, 0x28cf, 0x28cf, 0x28cf, 0x20cf, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18cf, 0x00f7, 0x0119, 0x0119, 0x0119, 0x0119, 0x0117, 0x18ce, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x08f3, 0x00f9, 0x011a, 0x0119, 0x08f6, 0x18ad, 0x00f6, 0x011a, 0x0119, 0x011a, 0x10d3, 0x18ad, 0x00f6, 0x0119, 0x0119, 0x0119, 0x10d3, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x10d3, 0x0119, 0x0119, 0x0119, 0x08f7, 0x18ad, 0x00f7, 0x0119, 0x0119, 0x011a, 0x08f3, 0x18ae, 0x00f6, 0x011a, 0x0119, 0x0119, 0x08f3, 0x18ad, 0x08f3, 0x0119, 0x0119, 0x011a, 0x08f6, 0x18ad, 0x08f6, 0x011a, 0x0119, 0x0119, 0x10d3, 0x18ad, 0x08f6, 0x011a, 0x0119, 0x011a, 0x08f3, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ce, 0x10d2, 0x10f3, 0x08f3, 0x10d1, 0x18ad, 0x18ae, 0x18ad, 0x18ad, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18b0, 0x0119, 0x0119, 0x0119, 0x00f9, 0x18b0, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cf, 0x0118, 0x00f9, 0x0119, 0x00f9, 0x18d0, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x08f5, 0x0119, 0x00f9, 0x0119, 0x0119, 0x0119, 0x00fa, 0x08f5, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x20ad, 0x20ad, 0x18ad, 0x18ad, 0x20ad, 0x4090, 0xf03f, 0xf81f, 0xf81f, 0xf81f, 0xf81f, 0xf81f, 0xf81f, 0xf81f, 0x6073, 0x20ad, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x20ae, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x0119, 0x011a, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x20ae, 0x20ae, 0x20cd, 0x20ae, 0x20ad, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x28ce, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x30ef, 0x28f0, 0x30f0, 0x30f0, 0x30f0, 0x3910, 0x3911, 0x3912, 0x4112, 0x4112, 0x8233, 0xcb55, 0xd375, 0xd395, 0xd375, 0xd375, 0xd375, 0xd375, 0xd375, 0xd355, 0xd355, 0xd355, 0xd355, 0xd335, 0xd335, 0xd335, 0xd335, 0xd335, 0xd334, 0xd314, 0xd335, 0xd314, 0xd314, 0xd2f4, 0xd2f4, 0xd2f4, 0xd2f4, 0xd2f4, 0xd2f4, 0xd2d4, 0xd2d4, 0xd2d4, 0xcad4, 0xd2d4, 0xd2b4, 0xd2b4, 0xd2b4, 0xd2b4, 0xcab4, 0xd2b4, 0xd2b4, 0xcab4, 0xd294, 0xd294, 0xd294, 0xca74, 0xca74, 0xca74, 0xca73, 0xca73, 0xca53, 0xca53, 0xca74, 0xaab6, 0x5b7a, 0xba74, 0xca53, 0xca33, 0xca33, 0xc254, 0x4bfb, 0x059f, 0x0d7f, 0x8b57, 0xc9f3, 0xca13, 0xc9f3, 0xc9f3, 0xa9b3, 0x5952, 0x4112, 0x3931, 0x3911, 0x3111, 0x3110, 0x30f0, 0x30f0, 0x28f0, 0x28ef, 0x28cf, 0x28cf, 0x28cf, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x10d2, 0x08f3, 0x10d3, 0x10d2, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x10d0, 0x10d3, 0x10d3, 0x08f3, 0x10d2, 0x18ad, 0x10d2, 0x08f3, 0x08f3, 0x08f3, 0x18d1, 0x18ad, 0x10d2, 0x08f3, 0x08f3, 0x10d3, 0x10b0, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x10b0, 0x10d3, 0x08f3, 0x08f3, 0x10d2, 0x18ad, 0x10d2, 0x08f3, 0x08f3, 0x10d3, 0x10d0, 0x18ad, 0x10d2, 0x08f3, 0x10d3, 0x08f3, 0x10d0, 0x18ad, 0x10d0, 0x08f3, 0x08f3, 0x10d3, 0x10d2, 0x18ad, 0x10d2, 0x10d4, 0x08f3, 0x08f3, 0x18d1, 0x18ad, 0x10d2, 0x08f3, 0x08f3, 0x10d3, 0x18d1, 0x18ad, 0x18ad, 0x18ae, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x20ad, 0x18ad, 0x20ad, 0x18ad, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18b0, 0x0119, 0x00f9, 0x0119, 0x00f9, 0x18d0, 0x18ad, 0x18ae, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18d0, 0x00f9, 0x0119, 0x0119, 0x0118, 0x10cf, 0x18ad, 0x18ae, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ce, 0x00f7, 0x011a, 0x0119, 0x011a, 0x0119, 0x00f7, 0x18ce, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x4091, 0xe01d, 0xf81f, 0xf81f, 0xf81f, 0xf81f, 0xf81f, 0x7074, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x011a, 0x08f3, 0x10d2, 0x20cd, 0x18ad, 0x18ad, 0x18ad, 0x20ae, 0x18ad, 0x20ad, 0x10d1, 0x0119, 0x0119, 0x10d2, 0x20ad, 0x18ad, 0x20ae, 0x18cd, 0x20ae, 0x20cd, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x28ef, 0x28cf, 0x28ef, 0x30f0, 0x30f0, 0x30f0, 0x30f0, 0x3910, 0x3911, 0x3911, 0x3912, 0x4132, 0x4953, 0xb2f4, 0xd395, 0xdb95, 0xd375, 0xd375, 0xd375, 0xd375, 0xd375, 0xd375, 0xd355, 0xd355, 0xd355, 0xd355, 0xd355, 0xd335, 0xd335, 0xd334, 0x84f9, 0x467d, 0x1f5e, 0x07df, 0x07df, 0x07df, 0x07bf, 0x07bf, 0x07bf, 0x07bf, 0x07bf, 0x07bf, 0x07bf, 0x07bf, 0x07bf, 0x079f, 0x1f1e, 0x367d, 0x367c, 0x4ddb, 0x653a, 0x8498, 0x9bf7, 0xc2f5, 0xd294, 0xd294, 0xd294, 0xd294, 0xca94, 0xca94, 0xca74, 0xca73, 0xd253, 0xd254, 0xca74, 0xca53, 0xca53, 0xca53, 0xd253, 0x72d9, 0xaa76, 0xca33, 0xd233, 0xca13, 0xca33, 0x1c7e, 0x059f, 0x05ff, 0x5c7a, 0xca13, 0xc9f3, 0xc9f3, 0xc9f3, 0xd1f3, 0x9193, 0x4911, 0x3911, 0x3911, 0x3911, 0x3110, 0x30f0, 0x30f0, 0x30f0, 0x28ef, 0x28ef, 0x28cf, 0x28cf, 0x28ce, 0x20ce, 0x20ce, 0x20ce, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x20ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x208d, 0x18ad, 0x18ae, 0x18ad, 0x18ae, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ae, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x20ae, 0x18ad, 0x18cd, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18d0, 0x00f9, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x011a, 0x011a, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0118, 0x10b0, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x10d1, 0x08f3, 0x08f3, 0x10d2, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x7074, 0x9077, 0x8856, 0x8876, 0x388f, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ae, 0x18ad, 0x18cd, 0x18ae, 0x18ce, 0x00f7, 0x0119, 0x011a, 0x0119, 0x0119, 0x00f7, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ce, 0x08f7, 0x0119, 0x011a, 0x0119, 0x0119, 0x08f7, 0x18ce, 0x20ad, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x20ce, 0x20ae, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x30ef, 0x30f0, 0x30f0, 0x30f0, 0x3111, 0x3111, 0x38f1, 0x3911, 0x4111, 0x4132, 0x6193, 0xc355, 0xd396, 0xd395, 0xd395, 0xd395, 0xd375, 0xd375, 0xd375, 0xd355, 0xd355, 0xd355, 0xd375, 0xd355, 0xd355, 0xd335, 0xd335, 0xb3d6, 0x271d, 0x07ff, 0x07ff, 0x07bf, 0x079f, 0x079f, 0x077f, 0x079f, 0x077f, 0x077f, 0x077f, 0x077f, 0x077f, 0x077f, 0x077f, 0x075f, 0x077f, 0x077f, 0x077f, 0x077f, 0x077f, 0x077f, 0x077f, 0x079f, 0x079f, 0x1efe, 0x461c, 0x6d1a, 0x9bd6, 0xca74, 0xca74, 0xca74, 0xca73, 0xd274, 0xca74, 0xca53, 0xd254, 0xca54, 0xd253, 0xca53, 0xca33, 0xa275, 0x9a76, 0xca33, 0xca13, 0xca33, 0x9ad6, 0x04ff, 0x05bf, 0x063f, 0x357c, 0xc254, 0xc9f3, 0xd1f3, 0xc9f3, 0xc9f3, 0xb9d3, 0x6152, 0x4111, 0x3911, 0x3911, 0x38f0, 0x30f0, 0x30f0, 0x30f0, 0x28ef, 0x28cf, 0x28cf, 0x28cf, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x20ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ae, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x20ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18cd, 0x18ad, 0x18ad, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18d0, 0x0119, 0x011a, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x011a, 0x011a, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x011a, 0x0119, 0x0119, 0x011a, 0x00f8, 0x10d0, 0x18ae, 0x18ad, 0x18ad, 0x18ae, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x208e, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18cd, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x08f5, 0x0119, 0x0119, 0x0119, 0x0119, 0x011a, 0x00f9, 0x08f5, 0x18ae, 0x20ad, 0x18ad, 0x08f4, 0x0119, 0x011a, 0x00f7, 0x0117, 0x0119, 0x011a, 0x08f5, 0x20ae, 0x20ae, 0x20ad, 0x20ce, 0x20ce, 0x20ce, 0x20cd, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x30ef, 0x30f0, 0x30f0, 0x30f0, 0x38f0, 0x3910, 0x3911, 0x3911, 0x3911, 0x4112, 0x4132, 0x6193, 0xcb55, 0xd395, 0xd395, 0xd375, 0xd395, 0xd375, 0xd375, 0xd375, 0xd355, 0xd375, 0xd355, 0xd355, 0xd355, 0xcb55, 0xd334, 0xcb55, 0xac17, 0x0fbf, 0x07ff, 0x07ff, 0x07bf, 0x07bf, 0x077f, 0x075f, 0x075f, 0x073f, 0x073f, 0x073f, 0x073f, 0x073f, 0x073f, 0x073f, 0x073f, 0x073f, 0x073f, 0x073f, 0x073f, 0x073f, 0x073f, 0x073f, 0x073f, 0x073f, 0x075f, 0x075f, 0x077f, 0x077f, 0x079f, 0x07bf, 0x365c, 0x74b9, 0xb315, 0xca73, 0xca54, 0xca54, 0xca53, 0xca53, 0xca53, 0xca33, 0xd233, 0xca33, 0xb235, 0xaa16, 0xca33, 0xca13, 0xca13, 0x7b37, 0x055f, 0x05ff, 0x067f, 0x25dd, 0xa2f5, 0xd1d3, 0xc9f3, 0xc9d3, 0xc9d2, 0xc9d3, 0x9193, 0x4932, 0x4111, 0x3911, 0x38f0, 0x30f0, 0x30f0, 0x30f0, 0x28ef, 0x28cf, 0x28cf, 0x28cf, 0x20cf, 0x20ce, 0x20ce, 0x20ce, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x10d0, 0x0118, 0x0119, 0x011a, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x18b0, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x20ad, 0x0119, 0x00f9, 0x011a, 0x011a, 0x0119, 0x011a, 0x0119, 0x011a, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x10d3, 0x18ce, 0x20ad, 0x10f4, 0x011a, 0x0119, 0x20ae, 0x20ae, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x30ef, 0x30f0, 0x30f0, 0x30f0, 0x30f0, 0x38f0, 0x3911, 0x3911, 0x3911, 0x4111, 0x4132, 0x4132, 0x61b3, 0xcb75, 0xd395, 0xd395, 0xd395, 0xd375, 0xd375, 0xd375, 0xd375, 0xd375, 0xd355, 0xd375, 0xd355, 0xd355, 0xd355, 0xd335, 0xd335, 0x8cb8, 0x0fbf, 0x07ff, 0x07df, 0x07bf, 0x079f, 0x077f, 0x075f, 0x073f, 0x071f, 0x06ff, 0x06ff, 0x06ff, 0x06ff, 0x06ff, 0x06ff, 0x06ff, 0x06df, 0x06ff, 0x06df, 0x06df, 0x06df, 0x06ff, 0x06ff, 0x06ff, 0x06ff, 0x071f, 0x071f, 0x071f, 0x073f, 0x073f, 0x073f, 0x073f, 0x075f, 0x075f, 0x071f, 0x2dfd, 0x7419, 0xb2b5, 0xca53, 0xca53, 0xca33, 0xca33, 0xca33, 0xca33, 0xd233, 0xca14, 0xa215, 0xca13, 0xca13, 0xc9f3, 0x8338, 0x05bf, 0x063f, 0x06bf, 0x0e9f, 0xaad5, 0xc9d3, 0xc9d2, 0xc9d3, 0xc9d3, 0xc9b2, 0xb1b2, 0x5931, 0x3911, 0x3911, 0x3911, 0x30f0, 0x30f0, 0x28f0, 0x28ef, 0x28ef, 0x28cf, 0x28cf, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ae, 0x20ae, 0x20ae, 0x20ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, + 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x0119, 0x0119, 0x011a, 0x0119, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18cf, 0x011a, 0x0119, 0x10d0, 0x18ad, 0x20ae, 0x18d0, 0x0119, 0x0119, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20cf, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x28ef, 0x28ef, 0x30f0, 0x30f0, 0x30f0, 0x30f0, 0x38f0, 0x3111, 0x38f1, 0x3911, 0x3911, 0x4112, 0x4112, 0x4132, 0x6193, 0xcb75, 0xd395, 0xd395, 0xd395, 0xd375, 0xd375, 0xd375, 0xd375, 0xd375, 0xd355, 0xd355, 0xd355, 0xd354, 0xd355, 0xd355, 0xc395, 0x5dfa, 0x07ff, 0x07df, 0x07bf, 0x079f, 0x077f, 0x075f, 0x073f, 0x071f, 0x06ff, 0x06df, 0x06bf, 0x06bf, 0x069f, 0x069f, 0x069f, 0x069f, 0x06bf, 0x06bf, 0x069f, 0x069f, 0x069f, 0x069f, 0x069f, 0x069f, 0x069f, 0x06bf, 0x06bf, 0x06bf, 0x06df, 0x06df, 0x06ff, 0x06ff, 0x06ff, 0x071f, 0x071f, 0x06ff, 0x06bf, 0x065f, 0x05bf, 0x443c, 0x8af7, 0xca33, 0xca33, 0xca33, 0xca33, 0xca13, 0xca13, 0xca13, 0x99b6, 0xc9f3, 0xca13, 0xc9f3, 0x4c3b, 0x061f, 0x069f, 0x06ff, 0x0ebe, 0xa2d5, 0xc9b3, 0xc9d3, 0xc9b2, 0xc9b3, 0xc9b2, 0xc1b3, 0x7152, 0x3911, 0x3911, 0x3110, 0x30f0, 0x30f0, 0x28f0, 0x30d0, 0x28cf, 0x28cf, 0x28cf, 0x20cf, 0x20ce, 0x20ce, 0x20ce, 0x20ae, 0x20ae, 0x20ad, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ce, 0x08f7, 0x0119, 0x011a, 0x0119, 0x0119, 0x0119, 0x011a, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x011a, 0x0119, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x0119, 0x0119, 0x011a, 0x011a, 0x011a, 0x0119, 0x20ae, 0x20ad, 0x18ce, 0x0119, 0x0119, 0x10d3, 0x20ce, 0x20ae, 0x10f4, 0x0119, 0x011a, 0x20ce, 0x20ae, 0x20ce, 0x20ce, 0x20ce, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x28ef, 0x28cf, 0x28ef, 0x30ef, 0x30f0, 0x30f0, 0x30f0, 0x30f0, 0x30f0, 0x3911, 0x3911, 0x3911, 0x4112, 0x3912, 0x4112, 0x4132, 0x4133, 0x5153, 0xbb35, 0xd395, 0xd396, 0xd395, 0xd375, 0xd375, 0xd375, 0xd355, 0xd375, 0xd355, 0xd355, 0xd355, 0xd355, 0xd355, 0xbbd6, 0x5dfb, 0x0fbf, 0x07ff, 0x07df, 0x07bf, 0x077f, 0x075f, 0x073f, 0x071f, 0x06ff, 0x06df, 0x06bf, 0x069f, 0x069f, 0x067f, 0x067f, 0x067f, 0x065f, 0x065f, 0x065f, 0x065f, 0x065f, 0x065f, 0x065f, 0x065f, 0x065f, 0x065f, 0x067f, 0x065f, 0x065f, 0x067f, 0x067f, 0x069f, 0x069f, 0x069f, 0x06bf, 0x06bf, 0x06df, 0x06bf, 0x069f, 0x065f, 0x05ff, 0x053f, 0x049f, 0x1bbe, 0x8298, 0xca13, 0xca13, 0xca13, 0xca13, 0xca13, 0xd1f3, 0x99b6, 0xc9f3, 0xc9f3, 0xb254, 0x0d9f, 0x067f, 0x06df, 0x06ff, 0x0ebf, 0xa2d5, 0xc9d2, 0xc9b3, 0xc9b3, 0xc9b3, 0xc9b2, 0xc9b3, 0x8152, 0x3911, 0x3911, 0x3911, 0x30f0, 0x30f0, 0x28f0, 0x30f0, 0x28ef, 0x28cf, 0x28cf, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ae, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x00f7, 0x0119, 0x0119, 0x0119, 0x00f9, 0x0119, 0x0119, 0x011a, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x011a, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x20ad, 0x18ae, 0x08f5, 0x0119, 0x011a, 0x0119, 0x0119, 0x0119, 0x011a, 0x08f5, 0x18ae, 0x20ae, 0x18ad, 0x08f5, 0x0119, 0x0119, 0x0918, 0x0917, 0x0139, 0x011a, 0x10f5, 0x20ce, 0x20cf, 0x28cf, 0x28ce, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x28ef, 0x30ef, 0x30f0, 0x30f0, 0x30f0, 0x3110, 0x30f0, 0x38f0, 0x3911, 0x3911, 0x3911, 0x4112, 0x4112, 0x4132, 0x4932, 0x4133, 0x4933, 0xbb35, 0xd395, 0xd396, 0xd395, 0xd375, 0xd375, 0xd375, 0xd375, 0xd375, 0xd375, 0xd355, 0xd355, 0xac37, 0x6d9a, 0x2efe, 0x07ff, 0x07ff, 0x07df, 0x07bf, 0x079f, 0x075f, 0x073f, 0x071f, 0x06df, 0x06bf, 0x069f, 0x067f, 0x065f, 0x065f, 0x063f, 0x063f, 0x061f, 0x061f, 0x061f, 0x061f, 0x061f, 0x061f, 0x061f, 0x061f, 0x061f, 0x05ff, 0x061f, 0x061f, 0x061f, 0x061f, 0x061f, 0x061f, 0x063f, 0x063f, 0x063f, 0x065f, 0x065f, 0x065f, 0x065f, 0x067f, 0x067f, 0x063f, 0x05df, 0x055f, 0x04bf, 0x043f, 0x037f, 0x1abe, 0x7a18, 0xca13, 0xca13, 0xca13, 0xc9f3, 0xc1f4, 0x7178, 0xc9f2, 0xd1f3, 0x8338, 0x061f, 0x06bf, 0x06ff, 0x071f, 0x0edf, 0xa2d5, 0xc9b3, 0xc9b3, 0xc9b2, 0xc992, 0xc992, 0xc993, 0x9172, 0x3911, 0x3910, 0x3110, 0x30f0, 0x30f0, 0x30f0, 0x28ef, 0x28ef, 0x28cf, 0x28cf, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ae, 0x20ad, 0x20ae, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x00f7, 0x0119, 0x011a, 0x0119, 0x011a, 0x0119, 0x011a, 0x0119, 0x0119, 0x011a, 0x011a, 0x011a, 0x011a, 0x011a, 0x011a, 0x011a, 0x011a, 0x011a, 0x011a, 0x011a, 0x011a, 0x011a, 0x011a, 0x011a, 0x011a, 0x011a, 0x011a, 0x011a, 0x011a, 0x011a, 0x011a, 0x011a, 0x011a, 0x011a, 0x011a, 0x011a, 0x011a, 0x011a, 0x011a, 0x011a, 0x011a, 0x011a, 0x011a, 0x011a, 0x011a, 0x011a, 0x011a, 0x011a, 0x011a, 0x011a, 0x011a, 0x011a, 0x011a, 0x011a, 0x011a, 0x011a, 0x011a, 0x011a, 0x011a, 0x011a, 0x011a, 0x011a, 0x011a, 0x011a, 0x011a, 0x011a, 0x011a, 0x011a, 0x011a, 0x011a, 0x011a, 0x011a, 0x011a, 0x011a, 0x011a, 0x011a, 0x011a, 0x011a, 0x011a, 0x011a, 0x011a, 0x011a, 0x011a, 0x011a, 0x011a, 0x011a, 0x011a, 0x011a, 0x011a, 0x011a, 0x011a, 0x011a, 0x011a, 0x011a, 0x011a, 0x011a, 0x011a, 0x011a, 0x011a, 0x011a, 0x011a, 0x011a, 0x011a, 0x011a, 0x011a, 0x011a, 0x011a, 0x011a, 0x0119, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ae, 0x18ae, 0x18ae, 0x00f7, 0x011a, 0x0119, 0x0119, 0x011a, 0x00f7, 0x18ce, 0x20ad, 0x20ae, 0x20ae, 0x18ce, 0x0918, 0x011a, 0x011a, 0x0919, 0x011a, 0x0917, 0x20cf, 0x28ae, 0x20cf, 0x28cf, 0x28cf, 0x28cf, 0x28ef, 0x28ef, 0x28ef, 0x30ef, 0x30f0, 0x30f0, 0x30f0, 0x38f0, 0x38f0, 0x3911, 0x3911, 0x3911, 0x3911, 0x3912, 0x4112, 0x4132, 0x4932, 0x4933, 0x4933, 0x4953, 0xa2b4, 0xd395, 0xd395, 0xd375, 0xd375, 0xd375, 0xd355, 0xd375, 0xd355, 0xc3b6, 0x8519, 0x4e3c, 0x0f9f, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07df, 0x079f, 0x077f, 0x077f, 0x075f, 0x073f, 0x06ff, 0x06bf, 0x069f, 0x067f, 0x065f, 0x063f, 0x061f, 0x061f, 0x05ff, 0x05df, 0x05df, 0x05df, 0x05df, 0x05bf, 0x05bf, 0x05df, 0x05df, 0x05bf, 0x05bf, 0x05bf, 0x05bf, 0x05bf, 0x05bf, 0x05df, 0x05df, 0x05df, 0x05df, 0x05ff, 0x05ff, 0x061f, 0x061f, 0x061f, 0x061f, 0x061f, 0x061f, 0x05df, 0x057f, 0x04ff, 0x047f, 0x03df, 0x031f, 0x025f, 0x19de, 0x79b8, 0xc9f3, 0xca13, 0xc9f3, 0xb9d3, 0xa1b5, 0xc9d3, 0xc9f3, 0x4c5b, 0x065f, 0x06df, 0x071f, 0x071f, 0x0edf, 0xa2b5, 0xc9b3, 0xc9b3, 0xc992, 0xc992, 0xc993, 0xc992, 0xb172, 0x4911, 0x3911, 0x38f0, 0x30f0, 0x30f0, 0x30ef, 0x28ef, 0x28ef, 0x28cf, 0x20ce, 0x20ce, 0x20ce, 0x20ae, 0x20ce, 0x20ae, 0x20ae, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x00f7, 0x011a, 0x0119, 0x0119, 0x0119, 0x011a, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ae, 0x10d2, 0x10f3, 0x10f3, 0x10d2, 0x20ae, 0x18ae, 0x20ae, 0x18ce, 0x20ce, 0x20ce, 0x20ce, 0x18f2, 0x10f4, 0x1114, 0x18f3, 0x20cf, 0x28ce, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x28ef, 0x28ef, 0x30ef, 0x30f0, 0x30f0, 0x30f0, 0x3110, 0x38f0, 0x3911, 0x3911, 0x3911, 0x3912, 0x3911, 0x4112, 0x4132, 0x4132, 0x4933, 0x4933, 0x4933, 0x4953, 0xa2b5, 0xd395, 0xd395, 0xd395, 0xd375, 0xd375, 0xd375, 0xc3b5, 0x7d59, 0x36bd, 0x07df, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07bf, 0x07bf, 0x079f, 0x079f, 0x077f, 0x077f, 0x071f, 0x06de, 0x069e, 0x067e, 0x065e, 0x063f, 0x063f, 0x061e, 0x05ff, 0x05df, 0x05bf, 0x05bf, 0x059f, 0x059f, 0x059f, 0x057f, 0x057f, 0x057f, 0x057f, 0x057f, 0x057f, 0x057f, 0x057f, 0x057f, 0x057f, 0x057f, 0x057f, 0x059f, 0x059f, 0x059f, 0x05bf, 0x05bf, 0x05bf, 0x05df, 0x05df, 0x05df, 0x05bf, 0x057f, 0x04ff, 0x049f, 0x03ff, 0x037f, 0x02bf, 0x021f, 0x017f, 0x213d, 0x9996, 0xc9f3, 0xc9f3, 0xb9d4, 0x99b6, 0xc9d3, 0xc213, 0x0dbf, 0x069f, 0x06ff, 0x071f, 0x073f, 0x0eff, 0xa2b5, 0xc992, 0xc992, 0xc992, 0xc992, 0xc972, 0xc972, 0xa972, 0x4911, 0x3911, 0x38f0, 0x30f0, 0x30f0, 0x28ef, 0x28cf, 0x28cf, 0x28cf, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ae, 0x20ae, 0x20ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x0117, 0x0119, 0x0119, 0x011a, 0x011a, 0x0119, 0x011a, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x011a, 0x0119, 0x011a, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ae, 0x18ad, 0x20ad, 0x20ad, 0x20ad, 0x20ad, 0x20ad, 0x20ae, 0x18ce, 0x20ae, 0x20ad, 0x20ae, 0x20ae, 0x20ce, 0x20ae, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20af, 0x20ce, 0x28ce, 0x28cf, 0x28ef, 0x28cf, 0x28cf, 0x28ef, 0x30f0, 0x30f0, 0x30f0, 0x30f0, 0x3110, 0x3910, 0x3911, 0x3911, 0x3911, 0x3911, 0x4111, 0x4131, 0x4112, 0x4132, 0x4913, 0x4933, 0x4933, 0x4953, 0x5154, 0xaab5, 0xd375, 0xd395, 0xd375, 0xd395, 0xd375, 0x94d8, 0x467c, 0x07df, 0x07df, 0x07df, 0x07df, 0x07df, 0x07ff, 0x07ff, 0x07ff, 0x07df, 0x07df, 0x07bf, 0x07bf, 0x079f, 0x079f, 0x077f, 0x077f, 0x06de, 0x06be, 0x067e, 0x067e, 0x065e, 0x063e, 0x061e, 0x05fe, 0x05de, 0x05de, 0x05be, 0x059f, 0x057f, 0x057f, 0x055f, 0x055f, 0x053f, 0x053f, 0x053f, 0x053f, 0x053f, 0x053f, 0x053f, 0x053f, 0x053f, 0x053f, 0x053f, 0x053f, 0x053f, 0x055f, 0x055f, 0x055f, 0x057f, 0x057f, 0x057f, 0x057f, 0x057f, 0x055f, 0x04ff, 0x04bf, 0x041f, 0x039f, 0x031f, 0x025f, 0x01bf, 0x013f, 0x00bf, 0x40fb, 0xb1b5, 0xc9d2, 0xb1d5, 0xb1d4, 0xc9b3, 0x6399, 0x061f, 0x06df, 0x071f, 0x073f, 0x073f, 0x0eff, 0xa2b5, 0xc992, 0xc992, 0xc972, 0xc972, 0xc992, 0xc972, 0xb152, 0x4111, 0x3911, 0x30f0, 0x30f0, 0x30f0, 0x30ef, 0x28cf, 0x28cf, 0x28cf, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ae, 0x20ad, 0x20ad, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ae, 0x0117, 0x011a, 0x011a, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x011a, 0x0119, 0x011a, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x011a, 0x0119, 0x0119, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x20ae, 0x20ae, 0x18ad, 0x20ae, 0x20ae, 0x20ce, 0x20cd, 0x20ae, 0x20ce, 0x20ce, 0x20ce, 0x28ce, 0x20cf, 0x20ce, 0x28cf, 0x28cf, 0x28cf, 0x28ef, 0x30ef, 0x30d0, 0x28f0, 0x3110, 0x30f0, 0x30f0, 0x30f1, 0x3911, 0x3911, 0x3911, 0x3911, 0x3911, 0x4112, 0x4132, 0x4132, 0x4132, 0x4932, 0x4933, 0x4953, 0x4953, 0x5153, 0x4a16, 0xa2b5, 0xd395, 0xd395, 0xd395, 0xd375, 0x8539, 0x1f5e, 0x07ff, 0x07df, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07df, 0x07df, 0x07df, 0x07bf, 0x07bf, 0x079f, 0x07bf, 0x075f, 0x06be, 0x069d, 0x067d, 0x065d, 0x063d, 0x063d, 0x061d, 0x05fe, 0x05de, 0x05de, 0x05be, 0x059e, 0x057e, 0x055f, 0x053f, 0x053f, 0x051f, 0x051f, 0x04ff, 0x04ff, 0x04ff, 0x04ff, 0x04ff, 0x04ff, 0x04ff, 0x04ff, 0x04ff, 0x04ff, 0x04ff, 0x051f, 0x051f, 0x051f, 0x051f, 0x051f, 0x051f, 0x053f, 0x053f, 0x051f, 0x04df, 0x04bf, 0x043f, 0x03df, 0x035f, 0x02bf, 0x021f, 0x017f, 0x00ff, 0x009f, 0x087f, 0x7119, 0xc9d3, 0xb1d4, 0xb9d3, 0xc9b3, 0x1cfe, 0x065f, 0x06ff, 0x071f, 0x073f, 0x073f, 0x1ebe, 0xb9f3, 0xc993, 0xc972, 0xc992, 0xc972, 0xc973, 0xc952, 0xb152, 0x4111, 0x3910, 0x38f0, 0x30f0, 0x30f0, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x20ce, 0x20ce, 0x20ce, 0x20ae, 0x20ae, 0x20ae, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ce, 0x00f7, 0x0119, 0x011a, 0x0139, 0x0119, 0x0119, 0x0119, 0x0119, 0x00f7, 0x18ae, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ae, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x20ad, 0x20ad, 0x18ad, 0x18ad, 0x20ae, 0x18ad, 0x20ad, 0x20cd, 0x20ce, 0x20ae, 0x20ae, 0x20cf, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20cf, 0x20cf, 0x28cf, 0x28cf, 0x28cf, 0x28ef, 0x28cf, 0x30f0, 0x30f0, 0x30f0, 0x30f0, 0x30f0, 0x3910, 0x3911, 0x3911, 0x3911, 0x3911, 0x4132, 0x4132, 0x4132, 0x4932, 0x4933, 0x4933, 0x4933, 0x4953, 0x4a15, 0x3439, 0x16bd, 0x8519, 0xd395, 0xd395, 0xd395, 0x94d8, 0x1f5e, 0x07df, 0x07df, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07df, 0x07df, 0x07df, 0x07df, 0x07df, 0x07bf, 0x07bf, 0x07bf, 0x07bf, 0x071e, 0x069d, 0x069d, 0x067d, 0x065d, 0x063d, 0x063d, 0x061d, 0x05fd, 0x05dd, 0x05bd, 0x059d, 0x059e, 0x057e, 0x055e, 0x053e, 0x051e, 0x04ff, 0x04ff, 0x04df, 0x04bf, 0x04bf, 0x04bf, 0x049f, 0x049f, 0x049f, 0x049f, 0x049f, 0x04bf, 0x04bf, 0x04bf, 0x04bf, 0x04bf, 0x04bf, 0x04df, 0x04bf, 0x04df, 0x04df, 0x04df, 0x04bf, 0x049f, 0x043f, 0x03df, 0x035f, 0x02ff, 0x025f, 0x01bf, 0x013f, 0x00df, 0x007f, 0x005f, 0x185e, 0x8957, 0x61b9, 0xc9d3, 0x9a96, 0x059f, 0x067f, 0x06ff, 0x071f, 0x073f, 0x075f, 0x267d, 0xb9d3, 0xc972, 0xc972, 0xc972, 0xc972, 0xc972, 0xc952, 0xb152, 0x4111, 0x38f1, 0x30f0, 0x30f0, 0x30f0, 0x28cf, 0x28cf, 0x28cf, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ae, 0x20ae, 0x20ad, 0x20ad, 0x18ad, 0x18ad, 0x20ad, 0x18cf, 0x00f7, 0x011a, 0x0119, 0x0119, 0x0119, 0x011a, 0x011a, 0x011a, 0x00f6, 0x18ce, 0x18ad, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, + 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x011a, 0x0119, 0x00f8, 0x10d0, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18cd, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ae, 0x20ae, 0x20ae, 0x20ad, 0x20ae, 0x20ae, 0x20ae, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20cf, 0x28cf, 0x20cf, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x30f0, 0x30f0, 0x30f0, 0x30f0, 0x3110, 0x38f1, 0x38f1, 0x3911, 0x3911, 0x4111, 0x4112, 0x4132, 0x4112, 0x4932, 0x4932, 0x4933, 0x4933, 0x69b4, 0x6336, 0x6cd9, 0x4e5b, 0x07df, 0x8539, 0xd395, 0xd395, 0xbc17, 0x3e9c, 0x07df, 0x07df, 0x07df, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07df, 0x07ff, 0x07df, 0x07df, 0x07df, 0x07bf, 0x07df, 0x06bd, 0x069c, 0x069c, 0x067c, 0x065c, 0x065c, 0x063c, 0x061c, 0x05fc, 0x05dc, 0x05bc, 0x05bd, 0x059d, 0x057d, 0x055d, 0x053e, 0x051e, 0x04fe, 0x04de, 0x04be, 0x04bf, 0x049f, 0x047f, 0x047f, 0x047f, 0x045f, 0x045f, 0x045f, 0x047f, 0x047f, 0x047f, 0x047f, 0x047f, 0x047f, 0x047f, 0x047f, 0x047f, 0x047f, 0x049f, 0x047f, 0x045f, 0x041f, 0x03df, 0x037f, 0x031f, 0x029f, 0x021f, 0x017f, 0x011f, 0x00bf, 0x005f, 0x001f, 0x001f, 0x00ff, 0x89b7, 0xc9b3, 0x447b, 0x065f, 0x06bf, 0x071f, 0x073f, 0x073f, 0x075f, 0x3d9b, 0xc972, 0xc972, 0xc972, 0xc972, 0xc952, 0xc952, 0xc952, 0xa132, 0x3911, 0x3911, 0x30f0, 0x30f0, 0x28ef, 0x28cf, 0x28cf, 0x20ce, 0x20cf, 0x20ce, 0x20ce, 0x20ce, 0x20ae, 0x20ad, 0x20ae, 0x20cd, 0x18ad, 0x18d0, 0x00f9, 0x0119, 0x0119, 0x0119, 0x00fa, 0x0119, 0x0119, 0x011a, 0x08f4, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, + 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0118, 0x10d0, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18cd, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x20ce, 0x20ae, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x28ce, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x28ef, 0x30f0, 0x30f0, 0x3110, 0x30f0, 0x38f0, 0x3911, 0x3911, 0x3931, 0x40f1, 0x4111, 0x4132, 0x4132, 0x4132, 0x61b3, 0x9274, 0xb2f5, 0xc355, 0xd395, 0xd395, 0xd395, 0xbc16, 0x469d, 0x8539, 0xd376, 0xd375, 0x6dba, 0x0f9f, 0x07df, 0x07df, 0x07df, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07df, 0x07df, 0x07df, 0x07df, 0x077f, 0x06bc, 0x06bb, 0x069b, 0x067b, 0x065b, 0x063b, 0x063b, 0x061b, 0x05fb, 0x05db, 0x05bb, 0x059c, 0x059c, 0x057c, 0x055c, 0x053d, 0x051d, 0x04fd, 0x04dd, 0x04be, 0x049e, 0x047f, 0x047f, 0x045f, 0x043f, 0x043f, 0x041f, 0x041f, 0x041f, 0x041f, 0x041f, 0x043f, 0x043f, 0x043f, 0x043f, 0x043f, 0x043f, 0x043f, 0x043f, 0x043f, 0x041f, 0x03ff, 0x03bf, 0x037f, 0x033f, 0x02bf, 0x023f, 0x01df, 0x015f, 0x00df, 0x009f, 0x005f, 0x001f, 0x005f, 0x097f, 0xb9b3, 0xb214, 0x0dbf, 0x06ff, 0x075f, 0x073f, 0x073f, 0x075f, 0x077f, 0x6479, 0xc972, 0xc972, 0xc952, 0xc952, 0xc952, 0xc952, 0xc932, 0x9132, 0x3911, 0x3111, 0x30f0, 0x28f0, 0x28ef, 0x28cf, 0x28cf, 0x20ce, 0x20ce, 0x20ce, 0x20ae, 0x20ae, 0x20ae, 0x20ad, 0x18ad, 0x18d0, 0x00f9, 0x0119, 0x00f9, 0x0119, 0x0119, 0x011a, 0x0119, 0x0119, 0x08f4, 0x20cd, 0x18ad, 0x18ad, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ae, 0x08f5, 0x0119, 0x00f9, 0x18d0, 0x18ad, 0x18ad, 0x18cd, 0x20ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ae, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ae, 0x20ae, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20cf, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x30ef, 0x30f0, 0x28f0, 0x30f0, 0x3110, 0x38f0, 0x38f1, 0x3911, 0x3911, 0x3912, 0x4111, 0x4132, 0x4132, 0x5152, 0x8234, 0xc335, 0xd395, 0xd395, 0xd395, 0xd395, 0xac57, 0x7d7a, 0x469c, 0x0f9f, 0xa4b8, 0xd395, 0x8539, 0x1f5e, 0x07df, 0x07df, 0x07df, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07df, 0x07ff, 0x07df, 0x075d, 0x06bb, 0x06bb, 0x069a, 0x067a, 0x065a, 0x065a, 0x063a, 0x061a, 0x05fa, 0x05da, 0x05db, 0x05bb, 0x059b, 0x057b, 0x055b, 0x053c, 0x053c, 0x051c, 0x04fc, 0x04dd, 0x04bd, 0x047e, 0x047e, 0x045e, 0x043f, 0x041f, 0x03ff, 0x03ff, 0x03df, 0x03df, 0x03df, 0x03df, 0x03df, 0x03df, 0x03df, 0x03df, 0x03df, 0x03df, 0x03df, 0x03df, 0x03df, 0x03df, 0x03bf, 0x035f, 0x031f, 0x02df, 0x027f, 0x01ff, 0x019f, 0x011f, 0x00bf, 0x007f, 0x003f, 0x001f, 0x009f, 0x39db, 0xc992, 0x6399, 0x069f, 0x079f, 0x07ff, 0x07df, 0x07bf, 0x077f, 0x079f, 0x9af6, 0xc952, 0xc952, 0xc952, 0xc952, 0xc952, 0xc952, 0xc932, 0x7112, 0x3110, 0x30f0, 0x30ef, 0x28f0, 0x28ef, 0x28ce, 0x28cf, 0x20ce, 0x20ce, 0x20ce, 0x20cd, 0x20ce, 0x20ae, 0x18cf, 0x00f9, 0x0119, 0x0119, 0x0119, 0x011a, 0x011a, 0x011a, 0x0119, 0x08f5, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ce, 0x00f7, 0x0119, 0x00f9, 0x10cf, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x10d2, 0x08f3, 0x08d3, 0x10d2, 0x20ad, 0x18ad, 0x18ae, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ae, 0x20ae, 0x20ad, 0x20ae, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20cf, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x28ef, 0x30f0, 0x30f0, 0x30f0, 0x30f0, 0x38f0, 0x3911, 0x3911, 0x3911, 0x4112, 0x4132, 0x4132, 0x5193, 0x9274, 0xcb75, 0xd395, 0xd395, 0xd395, 0xc3d6, 0x6dba, 0x1f7e, 0x07ff, 0x07ff, 0x36dd, 0xbc17, 0x8539, 0x1f5e, 0x07df, 0x07df, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07df, 0x07df, 0x071b, 0x06da, 0x06ba, 0x06ba, 0x0699, 0x0679, 0x0659, 0x0639, 0x0619, 0x0619, 0x05f9, 0x05da, 0x05ba, 0x059a, 0x057a, 0x055a, 0x055b, 0x053b, 0x051b, 0x04fc, 0x04dc, 0x04bc, 0x049d, 0x047d, 0x045d, 0x043e, 0x041e, 0x03fe, 0x03df, 0x03df, 0x03bf, 0x03bf, 0x039f, 0x039f, 0x039f, 0x039f, 0x039f, 0x039f, 0x039f, 0x039f, 0x039f, 0x039f, 0x039f, 0x037f, 0x035f, 0x031f, 0x02df, 0x027f, 0x023f, 0x01bf, 0x015f, 0x00ff, 0x009f, 0x005f, 0x001f, 0x003f, 0x011f, 0x99b6, 0xb9d3, 0x0d9f, 0x06df, 0x07df, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x0f7e, 0xb9b3, 0xc952, 0xc952, 0xc952, 0xc952, 0xc931, 0xc932, 0xc132, 0x6111, 0x38f0, 0x30f0, 0x28f0, 0x30ef, 0x28cf, 0x28cf, 0x20cf, 0x20ce, 0x20ce, 0x20ce, 0x20ae, 0x18ce, 0x08f5, 0x011a, 0x0119, 0x0119, 0x011a, 0x0119, 0x0119, 0x0119, 0x08f5, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ae, 0x18ae, 0x0117, 0x0119, 0x00f9, 0x18b0, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x00f7, 0x0119, 0x00f9, 0x0119, 0x011a, 0x00f7, 0x18ce, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x20ce, 0x20ae, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x28ef, 0x30f0, 0x30f0, 0x30f0, 0x3110, 0x3910, 0x3911, 0x3911, 0x3912, 0x4132, 0x4132, 0x6173, 0xa2b4, 0xd395, 0xd375, 0xd395, 0xd395, 0xc3d6, 0x6dba, 0x0fbf, 0x07ff, 0x07df, 0x07ff, 0x07df, 0x1f7e, 0x07df, 0x07ff, 0x07ff, 0x07df, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07df, 0x06f9, 0x06f9, 0x06d9, 0x06b8, 0x0698, 0x0698, 0x0678, 0x0658, 0x0638, 0x0638, 0x0618, 0x05f8, 0x05d8, 0x05b8, 0x0598, 0x0579, 0x0559, 0x0559, 0x051a, 0x04fa, 0x04db, 0x04bb, 0x049c, 0x047c, 0x045d, 0x043d, 0x041e, 0x03fe, 0x03de, 0x03bf, 0x039f, 0x039f, 0x037f, 0x037f, 0x037f, 0x035f, 0x035f, 0x035f, 0x035f, 0x035f, 0x035f, 0x035f, 0x033f, 0x033f, 0x031f, 0x02ff, 0x02bf, 0x027f, 0x023f, 0x01ff, 0x019f, 0x013f, 0x00bf, 0x007f, 0x003f, 0x001f, 0x005f, 0x197e, 0xb993, 0x6379, 0x063f, 0x073f, 0x07df, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x3dfb, 0xc952, 0xc952, 0xc932, 0xc932, 0xc932, 0xc932, 0xc912, 0xb912, 0x4111, 0x30f0, 0x30f0, 0x30f0, 0x28ef, 0x28cf, 0x28cf, 0x28ce, 0x20ce, 0x20ce, 0x20ae, 0x20ce, 0x08f6, 0x0119, 0x011a, 0x0119, 0x0119, 0x0119, 0x0119, 0x08f5, 0x20ad, 0x18ad, 0x18ad, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x18ae, 0x18ad, 0x20ae, 0x18ae, 0x00f7, 0x0119, 0x00f8, 0x18d0, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x18ae, 0x18ad, 0x08f5, 0x0119, 0x0119, 0x0117, 0x00f7, 0x0119, 0x0119, 0x08f4, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ae, 0x20ae, 0x20ae, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x28cf, 0x28cf, 0x28ef, 0x28cf, 0x28ef, 0x30ef, 0x30f0, 0x30f0, 0x38f0, 0x3911, 0x3911, 0x3911, 0x4111, 0x4952, 0x79f3, 0xb2f4, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0x94f9, 0x0fbf, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07df, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x079d, 0x0719, 0x06f8, 0x06f8, 0x06d7, 0x06b7, 0x06b7, 0x0697, 0x0676, 0x0656, 0x0637, 0x0636, 0x0617, 0x05f7, 0x05d7, 0x05b7, 0x0597, 0x0578, 0x0578, 0x0538, 0x0519, 0x04f9, 0x04da, 0x04bb, 0x049b, 0x047c, 0x043c, 0x041d, 0x041d, 0x03fe, 0x03de, 0x03be, 0x039e, 0x037f, 0x035f, 0x035f, 0x033f, 0x031f, 0x031f, 0x031f, 0x031f, 0x02ff, 0x02ff, 0x02ff, 0x02ff, 0x02df, 0x02bf, 0x029f, 0x027f, 0x023f, 0x01ff, 0x019f, 0x015f, 0x00ff, 0x009f, 0x005f, 0x003f, 0x001f, 0x00bf, 0x59ba, 0xb9b3, 0x0d3f, 0x06bf, 0x079f, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x7438, 0xc952, 0xc132, 0xc932, 0xc932, 0xc932, 0xc911, 0xc912, 0xa111, 0x3911, 0x30f0, 0x30f0, 0x30f0, 0x28cf, 0x28cf, 0x28ce, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x08f5, 0x011a, 0x0119, 0x00fa, 0x0119, 0x0119, 0x08f5, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ae, 0x18ad, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x00f7, 0x0139, 0x00f8, 0x18b0, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x0119, 0x011a, 0x08f3, 0x18ad, 0x18ad, 0x10d3, 0x011a, 0x00f9, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20cf, 0x28cf, 0x28cf, 0x28cf, 0x28ef, 0x30f0, 0x30f0, 0x30f0, 0x30f0, 0x3911, 0x3911, 0x5151, 0x79f3, 0xa2b4, 0xcb75, 0xd395, 0xd395, 0xd375, 0xd395, 0xd395, 0xc3d6, 0x469c, 0x07ff, 0x07df, 0x07df, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07df, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07fe, 0xc335, 0x45d7, 0x0738, 0x0717, 0x06f6, 0x06f6, 0x06d6, 0x06b5, 0x06b5, 0x0695, 0x0675, 0x0655, 0x0635, 0x0615, 0x05f5, 0x05f5, 0x05d6, 0x05b6, 0x0597, 0x0557, 0x0538, 0x0518, 0x04f9, 0x04d9, 0x049a, 0x047b, 0x045b, 0x043c, 0x041c, 0x03dd, 0x03dd, 0x03be, 0x039e, 0x037e, 0x035f, 0x033f, 0x033f, 0x031f, 0x02ff, 0x02df, 0x02df, 0x02bf, 0x02bf, 0x02bf, 0x02bf, 0x029f, 0x029f, 0x027f, 0x025f, 0x021f, 0x01ff, 0x01bf, 0x017f, 0x011f, 0x00df, 0x009f, 0x003f, 0x001f, 0x003f, 0x013f, 0xb174, 0x6339, 0x05ff, 0x071f, 0x07df, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x0f9f, 0xb992, 0xc932, 0xc932, 0xc931, 0xc912, 0xc912, 0xc912, 0xc911, 0x8111, 0x30f0, 0x30f0, 0x28ef, 0x30ef, 0x28cf, 0x28cf, 0x20ce, 0x20ce, 0x20ce, 0x20ae, 0x20d0, 0x0119, 0x0119, 0x0119, 0x0139, 0x08f5, 0x18ad, 0x18ae, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x00f7, 0x0119, 0x00f9, 0x10cf, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18af, 0x00f9, 0x0119, 0x18d0, 0x18cd, 0x18ad, 0x10d1, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ae, 0x18ad, 0x20ae, 0x20ae, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20cf, 0x28cf, 0x28ef, 0x28ef, 0x28ef, 0x30f0, 0x30f0, 0x59b2, 0x7a13, 0x9a94, 0xbb55, 0xd395, 0xd395, 0xd395, 0xd395, 0xd375, 0xd395, 0xd395, 0xd395, 0xac77, 0x2f1e, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07bc, 0x0759, 0xabb5, 0xc314, 0x1e97, 0x0736, 0x0716, 0x0715, 0x06f4, 0x06f4, 0x06f3, 0x06d3, 0x06b3, 0x06b2, 0x0692, 0x0672, 0x0653, 0x0633, 0x0613, 0x05f4, 0x05d4, 0x0595, 0x0575, 0x0556, 0x0517, 0x04f8, 0x04b9, 0x0499, 0x045a, 0x043b, 0x041b, 0x03fc, 0x03dd, 0x03bd, 0x039d, 0x037e, 0x035e, 0x033e, 0x033f, 0x031f, 0x02ff, 0x02df, 0x02bf, 0x02bf, 0x029f, 0x027f, 0x027f, 0x025f, 0x025f, 0x023f, 0x021f, 0x021f, 0x01df, 0x019f, 0x017f, 0x013f, 0x00ff, 0x009f, 0x007f, 0x003f, 0x001f, 0x007f, 0x399b, 0xb993, 0x055f, 0x067f, 0x079f, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x45db, 0xc132, 0xc932, 0xc912, 0xc132, 0xc912, 0xc912, 0xc911, 0xc912, 0x5111, 0x38f0, 0x30f0, 0x28ef, 0x28cf, 0x28cf, 0x28cf, 0x20ce, 0x20ce, 0x20ce, 0x20ae, 0x18ce, 0x10d3, 0x10f4, 0x18d0, 0x18ad, 0x18ae, 0x20cd, 0x18ad, 0x18ae, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ce, 0x00f7, 0x0119, 0x00f9, 0x10d0, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x08d4, 0x18ad, 0x18ad, 0x08f3, 0x0119, 0x0119, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ae, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x20ad, 0x18ad, 0x20cd, 0x20ae, 0x20ad, 0x20ae, 0x18ce, 0x20ae, 0x20ce, 0x20ce, 0x28ae, 0x20ce, 0x28ee, 0x5171, 0x69d2, 0x8232, 0xaaf4, 0xc334, 0xd375, 0xd3b5, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0x757a, 0x0fbf, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07bd, 0x079b, 0x077a, 0x0779, 0x74d6, 0xd2d4, 0x9bf5, 0x0756, 0x0735, 0x0734, 0x0734, 0x0733, 0x0712, 0x0711, 0x0711, 0x06f0, 0x06f0, 0x06d0, 0x06af, 0x06af, 0x066f, 0x0650, 0x0631, 0x0611, 0x05d2, 0x0594, 0x0554, 0x0515, 0x04f7, 0x04b8, 0x0478, 0x0459, 0x043a, 0x03fb, 0x03bc, 0x03bc, 0x039d, 0x037d, 0x035e, 0x033e, 0x031f, 0x031f, 0x02ff, 0x02df, 0x02bf, 0x02bf, 0x027f, 0x027f, 0x025f, 0x023f, 0x023f, 0x021f, 0x01ff, 0x01df, 0x01bf, 0x019f, 0x017f, 0x013f, 0x011f, 0x00bf, 0x007f, 0x005f, 0x001f, 0x001f, 0x00df, 0xa175, 0x33bc, 0x05df, 0x06ff, 0x07df, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x92d5, 0xc911, 0xc132, 0xc912, 0xc912, 0xc8f2, 0xc112, 0xc912, 0xa8f1, 0x3110, 0x30f0, 0x30ef, 0x28ef, 0x28cf, 0x28ce, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ae, 0x20ce, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, + 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x00f8, 0x18cf, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ce, 0x0117, 0x0119, 0x0119, 0x10cf, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x20ad, 0x08f5, 0x0119, 0x0119, 0x00f7, 0x00f7, 0x011a, 0x011a, 0x08f5, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ae, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ce, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ae, 0x20ae, 0x20ad, 0x390f, 0x4970, 0x59b0, 0x7a32, 0x9293, 0xaad3, 0xcb55, 0xd395, 0xd395, 0xd395, 0xd395, 0xd375, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd375, 0xd395, 0xd395, 0x9cb8, 0x271d, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07de, 0x07dd, 0x07bc, 0x079b, 0x079a, 0x079a, 0x0779, 0x55b7, 0xd2b4, 0xd2b4, 0x4db5, 0x0775, 0x0774, 0x0753, 0x0773, 0x0752, 0x0750, 0x0750, 0x074f, 0x074e, 0x074d, 0x074d, 0x074c, 0x072b, 0x072b, 0x072a, 0x070a, 0x06ea, 0x06ac, 0x064d, 0x05d0, 0x0573, 0x04f5, 0x04b6, 0x0478, 0x0438, 0x041a, 0x03fb, 0x03bc, 0x039c, 0x037c, 0x033d, 0x033d, 0x031e, 0x02fe, 0x02ff, 0x02df, 0x02bf, 0x029f, 0x029f, 0x027f, 0x025f, 0x023f, 0x021f, 0x01ff, 0x01df, 0x01bf, 0x019f, 0x017f, 0x015f, 0x013f, 0x011f, 0x00df, 0x009f, 0x005f, 0x003f, 0x001f, 0x003f, 0x213d, 0x1b1e, 0x051f, 0x065f, 0x077f, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x1f3d, 0xc912, 0xc912, 0xc112, 0xc112, 0xc8f1, 0xc8f2, 0xc8f1, 0xc8f2, 0x80f1, 0x30f0, 0x30f0, 0x30ef, 0x28ef, 0x28cf, 0x28ce, 0x20ce, 0x20ae, 0x20ce, 0x20ce, 0x20ae, 0x20ae, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, + 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x011a, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x10d0, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x00f7, 0x00f9, 0x0119, 0x10d0, 0x18ad, 0x18ad, 0x18cd, 0x20ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x20ad, 0x10d0, 0x0119, 0x011a, 0x0119, 0x0119, 0x0119, 0x0119, 0x00f7, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x392f, 0xd395, 0xc374, 0xa2d3, 0xaad3, 0x7a31, 0x7a31, 0x7a11, 0x7231, 0x5190, 0x496f, 0x496f, 0x4970, 0x496f, 0x494f, 0x412f, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x4970, 0x494f, 0x496f, 0x496f, 0x69f1, 0x7a31, 0x7a31, 0x9272, 0xa2d3, 0xaaf3, 0xc355, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd375, 0xd395, 0xd395, 0xd395, 0xd395, 0xd396, 0xd375, 0xd395, 0xac57, 0x565c, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07df, 0x07de, 0x07bd, 0x07bc, 0x07bc, 0x07bb, 0x079a, 0x079a, 0x0799, 0x26b8, 0xcad4, 0xd2b4, 0xc314, 0x0f35, 0x0794, 0x0794, 0x0792, 0x0792, 0x0791, 0x0790, 0x078f, 0x078e, 0x078e, 0x078d, 0x078c, 0x07aa, 0x07a9, 0x07a9, 0x07a8, 0x07c7, 0x07c5, 0x07c4, 0x07e4, 0x07a4, 0x0727, 0x068a, 0x05af, 0x0496, 0x0438, 0x03f9, 0x03ba, 0x039b, 0x035c, 0x035d, 0x031d, 0x031d, 0x02fe, 0x02df, 0x02bf, 0x02bf, 0x029f, 0x027f, 0x025f, 0x025f, 0x023f, 0x021f, 0x01ff, 0x01df, 0x019f, 0x019f, 0x017f, 0x015f, 0x013f, 0x00ff, 0x00df, 0x00bf, 0x007f, 0x005f, 0x001f, 0x001f, 0x007f, 0x023f, 0x041f, 0x05bf, 0x06ff, 0x07bf, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x6498, 0xc911, 0xc912, 0xc8f1, 0xc8f1, 0xc8f1, 0xc8f2, 0xc8f1, 0xc8d1, 0x50f1, 0x30f0, 0x30f0, 0x30ef, 0x28cf, 0x28cf, 0x28ce, 0x20ce, 0x20ce, 0x20ce, 0x20ae, 0x20ae, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x08f5, 0x0119, 0x0118, 0x18d0, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x18ae, 0x00f7, 0x0119, 0x00f9, 0x10cf, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x10d0, 0x0119, 0x0119, 0x0117, 0x10d2, 0x08f3, 0x10d3, 0x10d2, 0x18cd, 0x18ae, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x496f, 0xaad3, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd375, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xc3d6, 0x8539, 0x36dd, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07df, 0x07de, 0x07bd, 0x07bd, 0x07bc, 0x07bc, 0x07bb, 0x07ba, 0x07ba, 0x07b9, 0xd2b4, 0xd2b4, 0xd2b4, 0x6535, 0x07b5, 0x07b5, 0x07b4, 0x07b3, 0x07b2, 0x07b1, 0x07b0, 0x07af, 0x07ce, 0x07cd, 0x07cc, 0x07cb, 0x07ca, 0x07ca, 0x07c9, 0x07e8, 0x07e7, 0x07e6, 0x07e5, 0x07e5, 0x07e3, 0x07e3, 0x07e2, 0x07e1, 0x0726, 0x060c, 0x04b4, 0x03b9, 0x037b, 0x035c, 0x033d, 0x031d, 0x02de, 0x02df, 0x02be, 0x029f, 0x029f, 0x027f, 0x025f, 0x023f, 0x023f, 0x021f, 0x01ff, 0x01df, 0x019f, 0x019f, 0x015f, 0x015f, 0x013f, 0x00ff, 0x00df, 0x00bf, 0x007f, 0x007f, 0x003f, 0x001f, 0x001f, 0x011f, 0x02ff, 0x04df, 0x063f, 0x077f, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x0f9f, 0xb972, 0xc8f2, 0xc8f2, 0xc0f1, 0xc8f2, 0xc0f2, 0xc0f1, 0xc8d1, 0xa0f1, 0x30f0, 0x30f0, 0x30f0, 0x28ef, 0x28cf, 0x28ce, 0x20cf, 0x20ce, 0x20ce, 0x20ce, 0x20ae, 0x20ad, 0x18ad, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x00f7, 0x011a, 0x0119, 0x10cf, 0x18ae, 0x18ad, 0x20ad, 0x18ad, 0x18ae, 0x0117, 0x0119, 0x00f9, 0x18b0, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x10d0, 0x00f9, 0x0119, 0x00f7, 0x18ce, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x412f, 0x8a72, 0xc334, 0xd396, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd375, 0xd375, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd375, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd375, 0xd395, 0xd395, 0xd375, 0xac57, 0x469c, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x467c, 0x8519, 0x8519, 0x36dd, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07de, 0x07de, 0x07de, 0x07dd, 0x07dc, 0x07dc, 0x07db, 0x07db, 0x07da, 0x07da, 0x9bf5, 0xd2b4, 0xd2b4, 0xc2f4, 0x0f77, 0x07d6, 0x07d5, 0x07d4, 0x07d4, 0x07d3, 0x07d2, 0x07d1, 0x07d0, 0x07ef, 0x07ee, 0x07ed, 0x07ec, 0x07ec, 0x07ea, 0x07e9, 0x07e9, 0x07e7, 0x07e6, 0x07e6, 0x07e5, 0x07e5, 0x07e4, 0x07e4, 0x07e3, 0x07e3, 0x07e2, 0x0785, 0x060c, 0x04d3, 0x035b, 0x031c, 0x02de, 0x02de, 0x02be, 0x029f, 0x027f, 0x025f, 0x025f, 0x023f, 0x021f, 0x01ff, 0x01df, 0x01bf, 0x019f, 0x019f, 0x017f, 0x015f, 0x013f, 0x011f, 0x00df, 0x00bf, 0x009f, 0x007f, 0x005f, 0x001f, 0x001f, 0x003f, 0x01df, 0x03bf, 0x059f, 0x06df, 0x07bf, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x4d7a, 0xc111, 0xc0f1, 0xc8f1, 0xc8f2, 0xc8d1, 0xc8f2, 0xc0d1, 0xc8d1, 0x68f1, 0x30f0, 0x30f0, 0x28f0, 0x28ef, 0x28cf, 0x28cf, 0x20ce, 0x20ce, 0x20ce, 0x20ae, 0x20ae, 0x20ad, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x10d2, 0x08f3, 0x08f3, 0x10d2, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x20ad, 0x18ae, 0x0117, 0x0119, 0x00f9, 0x18cf, 0x18ad, 0x18ae, 0x18cd, 0x18ad, 0x18ce, 0x00f7, 0x0119, 0x00f8, 0x18d0, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18d0, 0x0119, 0x0119, 0x00f7, 0x18ce, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x414f, 0x61d1, 0x8251, 0xa2d3, 0xbb34, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd375, 0xd395, 0xd395, 0xd395, 0xd395, 0xd375, 0xd375, 0xd395, 0xd395, 0xd395, 0xd375, 0xd395, 0xd395, 0xd395, 0xd395, 0xd375, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd375, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd375, 0xbc16, 0x8539, 0x469c, 0x17bf, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x8518, 0xd355, 0xd355, 0xd335, 0xd335, 0x84f8, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07fe, 0x07de, 0x07fe, 0x07dd, 0x07dd, 0x07bc, 0x07dc, 0x07db, 0x07db, 0x07da, 0x8c56, 0xcab4, 0xcab4, 0xd294, 0x4df7, 0x07d7, 0x07d7, 0x07d6, 0x07f5, 0x07d5, 0x07f3, 0x07f3, 0x07f2, 0x07f1, 0x07f0, 0x07ef, 0x07ee, 0x07ed, 0x07ec, 0x07eb, 0x07eb, 0x07ea, 0x07e9, 0x07e8, 0x07e8, 0x07e7, 0x07e7, 0x07e6, 0x07e6, 0x07e5, 0x07e5, 0x07e5, 0x07e5, 0x07e4, 0x07a6, 0x060e, 0x03f8, 0x02de, 0x02be, 0x029f, 0x027f, 0x025f, 0x023f, 0x023f, 0x021f, 0x01ff, 0x01df, 0x01bf, 0x019f, 0x019f, 0x017f, 0x015f, 0x013f, 0x011f, 0x00df, 0x00bf, 0x009f, 0x007f, 0x005f, 0x003f, 0x001f, 0x001f, 0x00bf, 0x029f, 0x049f, 0x063f, 0x075f, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0xb1d3, 0xc8f1, 0xc8f2, 0xc0f1, 0xc8d1, 0xc8d1, 0xc0f1, 0xc8d1, 0xb8d1, 0x40f0, 0x30f0, 0x28f0, 0x28ef, 0x28cf, 0x28cf, 0x20ce, 0x20cf, 0x20ce, 0x20ce, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x00f7, 0x0119, 0x0119, 0x0119, 0x0119, 0x00f7, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ce, 0x08f7, 0x0119, 0x00f9, 0x10cf, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ce, 0x00f7, 0x0139, 0x00f8, 0x18b0, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x10d0, 0x00f9, 0x0119, 0x00f7, 0x18af, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x310e, 0x496f, 0x5990, 0x7a12, 0x7a32, 0x9272, 0xa2d3, 0xa2d3, 0xc375, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd375, 0xd375, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd375, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xac77, 0x757a, 0x36fd, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x4e3c, 0xd355, 0xd335, 0xd355, 0xd335, 0xd335, 0xd334, 0x7539, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07fe, 0x07fe, 0x07dd, 0x07dd, 0x07dd, 0x07dc, 0x07fc, 0x07dc, 0x07db, 0x6d38, 0xcab4, 0xd294, 0xd294, 0xab95, 0x07d8, 0x07d8, 0x07f7, 0x07f7, 0x07f6, 0x07f5, 0x07f5, 0x07f4, 0x07f3, 0x07f2, 0x07f1, 0x07f0, 0x07ef, 0x07ee, 0x07ed, 0x07ed, 0x07ec, 0x07ec, 0x07eb, 0x07ea, 0x07ea, 0x07ea, 0x07e9, 0x07e9, 0x07e8, 0x07e8, 0x07e8, 0x07e8, 0x07e7, 0x07e7, 0x07e8, 0x07c8, 0x06eb, 0x0514, 0x033c, 0x027f, 0x025f, 0x023f, 0x021f, 0x01ff, 0x01df, 0x01bf, 0x019f, 0x019f, 0x017f, 0x015f, 0x013f, 0x011f, 0x00ff, 0x00df, 0x00bf, 0x009f, 0x009f, 0x005f, 0x005f, 0x003f, 0x001f, 0x001f, 0x015f, 0x037f, 0x057f, 0x06df, 0x07bf, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x4d5a, 0xc8f1, 0xc8d1, 0xc0f1, 0xc8d1, 0xc8d1, 0xc0d1, 0xc0d1, 0xc8b1, 0x78d1, 0x3110, 0x30f0, 0x30ef, 0x28cf, 0x28cf, 0x28cf, 0x20cf, 0x20ce, 0x20ce, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x08f5, 0x0119, 0x0119, 0x0117, 0x0117, 0x0119, 0x0119, 0x08f5, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x18ae, 0x0117, 0x0119, 0x00f9, 0x10cf, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x00f7, 0x0119, 0x00f9, 0x10cf, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ae, 0x18af, 0x0118, 0x0119, 0x00f7, 0x18ce, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x496f, 0x496f, 0x4970, 0x7a12, 0x7a31, 0x8252, 0xaad3, 0xa2d3, 0xbb34, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xcbd6, 0x94f8, 0x565b, 0x0fbf, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0xb3f6, 0xd335, 0xd335, 0xd334, 0xd335, 0xd335, 0xd335, 0xd334, 0x1f7e, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07fe, 0x07de, 0x07dd, 0x07fd, 0x07fd, 0x07fd, 0x07dd, 0x07dc, 0x6d38, 0xcab4, 0xd294, 0xca94, 0xd294, 0x1f39, 0x07f9, 0x07f8, 0x07f8, 0x07f8, 0x07f7, 0x07f7, 0x07f6, 0x07f5, 0x07f4, 0x07f3, 0x07f2, 0x07f2, 0x07f1, 0x07f0, 0x07ef, 0x07ef, 0x07ee, 0x07ee, 0x07ed, 0x07ed, 0x07ec, 0x07ed, 0x07ec, 0x07eb, 0x07ec, 0x07eb, 0x07eb, 0x07ea, 0x07ea, 0x07ea, 0x07ca, 0x07ab, 0x076c, 0x070d, 0x05b2, 0x039b, 0x023f, 0x021f, 0x01ff, 0x01df, 0x01bf, 0x019f, 0x017f, 0x017f, 0x015f, 0x013f, 0x011f, 0x00ff, 0x00df, 0x00df, 0x009f, 0x009f, 0x007f, 0x005f, 0x003f, 0x003f, 0x001f, 0x60d9, 0x0a3f, 0x047f, 0x063f, 0x075f, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0xa9d3, 0xc0d1, 0xc8d1, 0xc0f1, 0xc8b1, 0xc0d1, 0xc8b1, 0xc0b1, 0xb8b1, 0x48f1, 0x30f0, 0x30f0, 0x28ef, 0x28cf, 0x28cf, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ae, 0x20ad, 0x18ad, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x08f3, 0x18ad, 0x18ad, 0x08f3, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x20ad, 0x18ae, 0x18ad, 0x18ae, 0x00f7, 0x0119, 0x011a, 0x0119, 0x011a, 0x0119, 0x0119, 0x011a, 0x011a, 0x0119, 0x0119, 0x0119, 0x0119, 0x011a, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x011a, 0x00f7, 0x18ae, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x00f7, 0x011a, 0x00f8, 0x10d0, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ce, 0x00f7, 0x0119, 0x00f9, 0x10d0, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18d0, 0x00f9, 0x0119, 0x00f7, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x20ad, 0x18cd, 0x20ad, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x20ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x4970, 0x4970, 0x5990, 0x7a31, 0x7231, 0x7a31, 0x7a31, 0x9ab3, 0xaad4, 0xa2d4, 0xb314, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd396, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd396, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd396, 0xd395, 0xd395, 0x94f8, 0x565c, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0xd335, 0xd334, 0xd335, 0xd335, 0xd335, 0xd335, 0xd314, 0xd315, 0x5ddb, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07fe, 0x07fe, 0x07fe, 0x07fe, 0x07fe, 0x07fd, 0x07fd, 0x6d58, 0xd294, 0xd293, 0xca94, 0xd274, 0x4df8, 0x07fb, 0x07fa, 0x07fa, 0x07f9, 0x07f9, 0x07f8, 0x07f7, 0x07f6, 0x07f6, 0x07f5, 0x07f5, 0x07f4, 0x07f3, 0x07f3, 0x07f2, 0x07f1, 0x07f1, 0x07f0, 0x07f0, 0x07f0, 0x07ef, 0x07ef, 0x07ef, 0x07ef, 0x07ef, 0x07ee, 0x07ee, 0x07ee, 0x07ee, 0x07ee, 0x07ed, 0x07cd, 0x078e, 0x076e, 0x0710, 0x06b1, 0x0574, 0x037b, 0x01ff, 0x01df, 0x01bf, 0x019f, 0x017f, 0x017f, 0x013f, 0x013f, 0x011f, 0x00ff, 0x00df, 0x00bf, 0x009f, 0x009f, 0x007f, 0x005f, 0x003f, 0x003f, 0x001f, 0x88d6, 0x6159, 0x031f, 0x053f, 0x06df, 0x07bf, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x4d5b, 0xc0d1, 0xc8d1, 0xc8d1, 0xc0b1, 0xc8b1, 0xc8b2, 0xc0b1, 0xc8b1, 0x90d1, 0x30f0, 0x30f0, 0x28cf, 0x28cf, 0x28cf, 0x20cf, 0x20cf, 0x20ce, 0x20ae, 0x20ce, 0x20ae, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ae, 0x0119, 0x011a, 0x10d1, 0x18ad, 0x18ad, 0x10d1, 0x011a, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x011a, 0x00f7, 0x18ce, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x18ae, 0x18ad, 0x18ad, 0x18ae, 0x0117, 0x0119, 0x0119, 0x0119, 0x011a, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x011a, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x00fa, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x011a, 0x00f7, 0x18ce, 0x18ad, 0x18cd, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x00f7, 0x0119, 0x00f8, 0x10d0, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ce, 0x0117, 0x0119, 0x0119, 0x10cf, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18b0, 0x0119, 0x0119, 0x00f7, 0x18ae, 0x18ad, 0x18ad, 0x20ae, 0x18ad, 0x18ae, 0x20ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ae, 0x18cd, 0x18ad, 0x18ad, 0x10d2, 0x08f3, 0x08f3, 0x10d2, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x20ad, 0x18ae, 0x18ae, 0x18ad, 0x18ce, 0x18ad, 0x20ae, 0x20ad, 0x20ce, 0x20ce, 0x290f, 0x5170, 0x5170, 0x69f1, 0x7a32, 0x8232, 0xaaf3, 0xaaf4, 0xcb75, 0xd395, 0xd396, 0xd375, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd396, 0xd396, 0xd395, 0xd395, 0xd395, 0xd395, 0xd375, 0xd375, 0xc3b6, 0x8539, 0x1f7f, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0xd335, 0xd335, 0xd335, 0xd315, 0xd314, 0xd315, 0xd314, 0xd314, 0x659a, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07fe, 0x07fe, 0x07fe, 0x07fe, 0x6d39, 0xd294, 0xca94, 0xd274, 0xca74, 0x7c96, 0x07fc, 0x07fc, 0x07fb, 0x07fb, 0x07fa, 0x07fa, 0x07f9, 0x07f8, 0x07f8, 0x07f7, 0x07f7, 0x07f6, 0x07f6, 0x07f5, 0x07f4, 0x07f4, 0x07f3, 0x07f3, 0x07f3, 0x07f2, 0x07f2, 0x07f2, 0x07f2, 0x07f2, 0x07f2, 0x07f2, 0x07f1, 0x07f1, 0x07f1, 0x07f1, 0x07f0, 0x07f1, 0x07d0, 0x0791, 0x0751, 0x0712, 0x0693, 0x0634, 0x0517, 0x02dd, 0x01bf, 0x019f, 0x017f, 0x015f, 0x015f, 0x013f, 0x011f, 0x00ff, 0x00df, 0x00bf, 0x00bf, 0x007f, 0x005f, 0x005f, 0x003f, 0x003f, 0x001f, 0x60b8, 0xb8f3, 0x09bf, 0x041f, 0x061f, 0x073f, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0xb1b3, 0xc0d1, 0xc0d1, 0xc0b1, 0xc0d1, 0xc0b1, 0xc0b1, 0xc8b1, 0xc0b1, 0x48f1, 0x30f0, 0x30f0, 0x28cf, 0x28cf, 0x28cf, 0x20cf, 0x20ce, 0x20ce, 0x20ce, 0x20ae, 0x20ae, 0x18ad, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ae, 0x0119, 0x0119, 0x08f3, 0x18ad, 0x18ad, 0x08f3, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x00f9, 0x0119, 0x0119, 0x0119, 0x00f7, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ae, 0x18ad, 0x18ae, 0x18ae, 0x00f7, 0x011a, 0x00f9, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x00f8, 0x0119, 0x00f7, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x08f7, 0x011a, 0x0118, 0x10d0, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x00f7, 0x00f9, 0x0119, 0x10d0, 0x18ad, 0x18ad, 0x18cd, 0x20ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18af, 0x0119, 0x0119, 0x00f7, 0x18ae, 0x20ae, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18cd, 0x18ae, 0x00f7, 0x011a, 0x011a, 0x011a, 0x0119, 0x0117, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ae, 0x20ae, 0x20ad, 0x20ae, 0x20ae, 0x20ae, 0x20ce, 0x20ce, 0x20ce, 0x28ce, 0x28cf, 0x28ef, 0x28ef, 0x30f0, 0x30f0, 0x30f0, 0x5172, 0x61b2, 0x8a54, 0x9a94, 0xb335, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd375, 0xd375, 0xd375, 0xd375, 0xd375, 0xd375, 0xd355, 0x9c97, 0x36dd, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0xac17, 0xd335, 0xd314, 0xd335, 0xd314, 0xd315, 0xd315, 0xd2f4, 0x467c, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x6d59, 0xd274, 0xca94, 0xd274, 0xca74, 0xb334, 0x07fe, 0x07fd, 0x07fd, 0x07fd, 0x07fc, 0x07fc, 0x07fb, 0x07fa, 0x07fa, 0x07fa, 0x07f9, 0x07f8, 0x07f8, 0x07f8, 0x07f7, 0x07f6, 0x07f6, 0x07f6, 0x07f5, 0x07f5, 0x07f5, 0x07f5, 0x07f5, 0x07f5, 0x07f5, 0x07f5, 0x07f5, 0x07f5, 0x07f5, 0x07f4, 0x07f4, 0x07f4, 0x07d3, 0x07b3, 0x0793, 0x0753, 0x0714, 0x06b5, 0x5516, 0x0538, 0x037c, 0x01ff, 0x017f, 0x015f, 0x013f, 0x011f, 0x011f, 0x00ff, 0x00df, 0x00bf, 0x009f, 0x009f, 0x007f, 0x005f, 0x005f, 0x003f, 0x001f, 0x6099, 0xc911, 0x491a, 0x02df, 0x051f, 0x06bf, 0x07bf, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x6459, 0xc8b1, 0xc0b1, 0xc8b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0x90d1, 0x30f1, 0x30f0, 0x30ef, 0x28ef, 0x28cf, 0x28cf, 0x20ce, 0x20ce, 0x20ce, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x08f5, 0x011a, 0x0119, 0x00f7, 0x00f7, 0x0119, 0x011a, 0x08f5, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ce, 0x0118, 0x0119, 0x00f7, 0x18ae, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ae, 0x18ae, 0x00f7, 0x0119, 0x00f9, 0x18d0, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x20ae, 0x10cf, 0x00f9, 0x0119, 0x00f7, 0x18ce, 0x18ad, 0x18ae, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ce, 0x00f7, 0x011a, 0x00f8, 0x10d0, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x18ae, 0x00f7, 0x0119, 0x00f9, 0x10cf, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18b0, 0x0119, 0x0119, 0x00f7, 0x18ce, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x08f5, 0x0119, 0x011a, 0x0119, 0x0119, 0x011a, 0x011a, 0x08f5, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ae, 0x18ad, 0x18ad, 0x18ae, 0x20ad, 0x18ad, 0x20ad, 0x20ad, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x28cf, 0x28cf, 0x28cf, 0x28ef, 0x30f0, 0x30f0, 0x30f0, 0x3111, 0x3911, 0x3911, 0x4132, 0x4132, 0x5152, 0x69d3, 0x9274, 0xb2f5, 0xd395, 0xd395, 0xd375, 0xd395, 0xd375, 0xd375, 0xd375, 0xd375, 0xd375, 0xd375, 0xd355, 0xd355, 0xd355, 0xa478, 0x36dd, 0x07ff, 0x07ff, 0x563c, 0xd335, 0xd334, 0xd315, 0xd315, 0xd2f4, 0xcb15, 0xbb96, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x8498, 0xca94, 0xca94, 0xd274, 0xca74, 0xca74, 0x07fe, 0x07fe, 0x07fe, 0x07fe, 0x07fd, 0x07fd, 0x07fc, 0x07fc, 0x07fc, 0x07fb, 0x07fb, 0x07fa, 0x07fa, 0x07f9, 0x07f9, 0x07f8, 0x07f8, 0x07f8, 0x07f8, 0x07f7, 0x07f7, 0x07f7, 0x07f7, 0x07f7, 0x07f7, 0x07f7, 0x07f7, 0x07f7, 0x07f7, 0x07f7, 0x07f7, 0x07f6, 0x07f6, 0x07d6, 0x07b6, 0x0796, 0x0756, 0x0716, 0xa456, 0xbbd6, 0x3479, 0x02fd, 0x023f, 0x019f, 0x015f, 0x011f, 0x00ff, 0x00ff, 0x00bf, 0x00bf, 0x009f, 0x009f, 0x007f, 0x005f, 0x003f, 0x003f, 0x003f, 0x78b7, 0xc111, 0xa114, 0x01ff, 0x041f, 0x05ff, 0x075f, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x0f9f, 0xc0b1, 0xc0d2, 0xc8b1, 0xc0b1, 0xc8b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0x48f1, 0x30f0, 0x30ef, 0x28f0, 0x28cf, 0x28cf, 0x20cf, 0x20ce, 0x20ce, 0x20ce, 0x20ae, 0x20ae, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x00f7, 0x0119, 0x0119, 0x0119, 0x0119, 0x00f7, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x20ae, 0x18b0, 0x00f9, 0x0119, 0x00f7, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x20ad, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ae, 0x00f7, 0x0119, 0x00f9, 0x10d0, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x10cf, 0x18ae, 0x18ad, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x10d0, 0x00f9, 0x0119, 0x00f7, 0x18ae, 0x10d2, 0x08f3, 0x08f3, 0x10d2, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x20ad, 0x18ce, 0x08f7, 0x0119, 0x00f8, 0x10cf, 0x18ae, 0x18ad, 0x20ad, 0x18ad, 0x18ae, 0x0117, 0x0119, 0x00f9, 0x18b0, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18af, 0x0119, 0x0119, 0x00f7, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x011a, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x20ae, 0x20cd, 0x20cd, 0x20ae, 0x20ae, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20cf, 0x28ce, 0x28cf, 0x28cf, 0x28cf, 0x28f0, 0x30f0, 0x30f0, 0x38f0, 0x3911, 0x3911, 0x4132, 0x4132, 0x4932, 0x4933, 0x4953, 0x5154, 0x5154, 0x71f4, 0x9a75, 0xb2f5, 0xd375, 0xd375, 0xd375, 0xd355, 0xd375, 0xd355, 0xd375, 0xd355, 0xd355, 0xd335, 0xd335, 0x9c78, 0x36dd, 0x07ff, 0x9c57, 0xd335, 0xd315, 0xd334, 0xd314, 0xc355, 0x271d, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x9bf7, 0xca94, 0xd274, 0xca73, 0xca74, 0xd253, 0x2efd, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07fe, 0x07fe, 0x07fd, 0x07fd, 0x07fd, 0x07fc, 0x07fc, 0x07fb, 0x07fb, 0x07fb, 0x07fa, 0x07fa, 0x07fa, 0x07f9, 0x07f9, 0x07f9, 0x07f9, 0x07f9, 0x07f9, 0x07fa, 0x07fa, 0x07fa, 0x07fa, 0x07fa, 0x07fa, 0x07f9, 0x07f9, 0x07f9, 0x07f8, 0x07d8, 0x07b8, 0x0797, 0x0758, 0x0ef8, 0xbbf6, 0xd395, 0x6b99, 0x025f, 0x021f, 0x01bf, 0x013f, 0x011f, 0x00ff, 0x00df, 0x00bf, 0x009f, 0x009f, 0x007f, 0x005f, 0x005f, 0x003f, 0x001f, 0x98d5, 0xc8f2, 0xc911, 0x195e, 0x033f, 0x053f, 0x06bf, 0x07bf, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x7b76, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0d1, 0x88d1, 0x30f1, 0x30f0, 0x28f0, 0x28cf, 0x28cf, 0x28cf, 0x20ce, 0x20ce, 0x20ce, 0x20ae, 0x20ae, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x10d2, 0x08f3, 0x08f3, 0x10d2, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x10cf, 0x0119, 0x0119, 0x00f7, 0x18ae, 0x18ad, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x00f7, 0x0119, 0x00f9, 0x10cf, 0x18ad, 0x20ad, 0x18ad, 0x18ae, 0x10d2, 0x00f6, 0x0119, 0x0119, 0x0119, 0x0119, 0x0118, 0x08d5, 0x10d0, 0x18ae, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18b0, 0x0118, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x011a, 0x00f7, 0x18ce, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ce, 0x18ad, 0x18ae, 0x18ae, 0x00f7, 0x011a, 0x00f9, 0x18cf, 0x18ad, 0x18ae, 0x18cd, 0x18ad, 0x18ce, 0x00f7, 0x0119, 0x00f8, 0x18d0, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18b0, 0x0119, 0x0119, 0x00f7, 0x18ae, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ae, 0x0117, 0x00f9, 0x0119, 0x0119, 0x011a, 0x0119, 0x0119, 0x0119, 0x011a, 0x0119, 0x011a, 0x00fa, 0x011a, 0x0119, 0x0119, 0x0119, 0x011a, 0x0119, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ae, 0x20ae, 0x20ae, 0x18ad, 0x20ae, 0x20ae, 0x20ce, 0x20ae, 0x20ce, 0x20ce, 0x20cf, 0x28ce, 0x28cf, 0x28cf, 0x28ef, 0x30ef, 0x30f0, 0x30f0, 0x3111, 0x3910, 0x3911, 0x4111, 0x4912, 0x4133, 0x4932, 0x4933, 0x5154, 0x5154, 0x5955, 0x5955, 0x5975, 0x6996, 0x8a16, 0xaad5, 0xcb55, 0xd375, 0xd355, 0xd354, 0xd355, 0xd335, 0xd335, 0xd335, 0xd335, 0xcb35, 0x84f9, 0x0fbf, 0x5ddb, 0xa457, 0x9c58, 0x84d8, 0x1f5e, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x9bd6, 0xca74, 0xca74, 0xca74, 0xca74, 0xca74, 0x369c, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07fe, 0x07fe, 0x07fe, 0x07fd, 0x07fd, 0x07fd, 0x07fc, 0x07fc, 0x07fc, 0x07fb, 0x07fb, 0x07fb, 0x07fb, 0x07fb, 0x07fb, 0x07fb, 0x07fb, 0x07fb, 0x07fc, 0x07fc, 0x07fc, 0x07fc, 0x07fb, 0x07fb, 0x07fb, 0x07fb, 0x07da, 0x07da, 0x07ba, 0x079a, 0x0779, 0x2e99, 0xc3d6, 0xd395, 0x8339, 0x0a3e, 0x01df, 0x019f, 0x015f, 0x011f, 0x00ff, 0x00bf, 0x009f, 0x007f, 0x007f, 0x007f, 0x003f, 0x003f, 0x003f, 0x90d5, 0xc912, 0xc0f1, 0x7117, 0x027f, 0x049f, 0x065f, 0x077f, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x269d, 0xc891, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xb8b1, 0x3110, 0x30f0, 0x30f0, 0x28cf, 0x28cf, 0x28cf, 0x20ce, 0x20ce, 0x20ce, 0x20ae, 0x20ae, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ae, 0x20ad, 0x18ad, 0x18ad, 0x18b0, 0x0118, 0x0119, 0x08f7, 0x18ce, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, + 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ae, 0x0117, 0x011a, 0x00f9, 0x10d0, 0x18ad, 0x20ad, 0x20ad, 0x10d1, 0x00f8, 0x011a, 0x0119, 0x0119, 0x011a, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x00f6, 0x18af, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x20ad, 0x10d0, 0x0118, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x08f5, 0x18ad, 0x18ad, 0x20ae, 0x18cd, 0x18ad, 0x20ad, 0x18ae, 0x18ad, 0x18ae, 0x00f7, 0x0119, 0x00f9, 0x10cf, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ce, 0x00f7, 0x0139, 0x00f8, 0x18b0, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18d0, 0x0119, 0x0119, 0x00f7, 0x18ce, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18b0, 0x0119, 0x0119, 0x011a, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x011a, 0x0119, 0x011a, 0x00f9, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ae, 0x18ad, 0x18ae, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20cd, 0x18ce, 0x20ae, 0x20ae, 0x20ce, 0x20ce, 0x20ae, 0x20ce, 0x20ce, 0x20ce, 0x28ef, 0x28cf, 0x28ef, 0x28d0, 0x30f0, 0x30f0, 0x38f0, 0x3911, 0x3911, 0x3931, 0x4132, 0x4132, 0x4933, 0x5133, 0x5153, 0x5154, 0x5154, 0x5975, 0x6175, 0x6195, 0x9255, 0x8b14, 0x4ad3, 0x7a94, 0xab14, 0xd355, 0xd355, 0xd355, 0xd335, 0xd335, 0xd315, 0xd314, 0xd335, 0xc355, 0x467c, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0xc2d4, 0xca74, 0xca74, 0xd274, 0xca74, 0xd253, 0x369c, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07fe, 0x07fe, 0x07fe, 0x07fe, 0x07fd, 0x07fd, 0x07fd, 0x07fd, 0x07fd, 0x07fc, 0x07fc, 0x07fc, 0x07fd, 0x07fd, 0x07fd, 0x07fd, 0x07fd, 0x07fd, 0x07fe, 0x07fe, 0x07fe, 0x07fd, 0x07fd, 0x07fd, 0x07fc, 0x07fc, 0x07db, 0x07bb, 0x07bb, 0x077b, 0x2eba, 0xc3d6, 0xd395, 0xb337, 0x09df, 0x01bf, 0x017f, 0x013f, 0x011f, 0x00df, 0x009f, 0x009f, 0x007f, 0x005f, 0x005f, 0x003f, 0x003f, 0x7896, 0xc0f1, 0xc8f1, 0xa8f3, 0x01df, 0x03df, 0x05bf, 0x071f, 0x07df, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0xa214, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0d1, 0xc0b1, 0xc0b1, 0x68f1, 0x30f0, 0x30f0, 0x30ef, 0x28cf, 0x28cf, 0x28ce, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ae, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ce, 0x18ad, 0x18ad, 0x10d0, 0x00f9, 0x0139, 0x08f7, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, + 0x18ad, 0x18ad, 0x18ae, 0x18ae, 0x00f7, 0x0119, 0x00f9, 0x18d0, 0x18ad, 0x20ad, 0x18ad, 0x08f4, 0x0119, 0x011a, 0x0119, 0x08f6, 0x10d2, 0x10d0, 0x18cf, 0x18d0, 0x10d3, 0x0118, 0x0119, 0x011a, 0x00f9, 0x18cf, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x0119, 0x011a, 0x0119, 0x011a, 0x011a, 0x0119, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x0117, 0x0119, 0x00f9, 0x10cf, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x00f7, 0x0119, 0x00f9, 0x10cf, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ae, 0x18af, 0x00f9, 0x0119, 0x00f7, 0x18ce, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18d0, 0x0119, 0x0119, 0x00f7, 0x18ae, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x08f5, 0x0119, 0x0119, 0x011a, 0x0119, 0x0119, 0x0119, 0x08f5, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x20ce, 0x20ae, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ef, 0x28cf, 0x28cf, 0x28ef, 0x30f0, 0x30ef, 0x30f0, 0x30f0, 0x3911, 0x3911, 0x4111, 0x4132, 0x4932, 0x4933, 0x5133, 0x5153, 0x5154, 0x5954, 0x6195, 0x9a75, 0xcb55, 0xcb75, 0x5bb4, 0x3b34, 0x42b3, 0x4a33, 0x6253, 0x9ab4, 0xd335, 0xd335, 0xd315, 0xd334, 0xd314, 0xd315, 0xd314, 0xd314, 0x5ddb, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x1f5e, 0xd274, 0xd274, 0xd274, 0xd274, 0xd274, 0xca53, 0x369d, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07fe, 0x07fe, 0x07fe, 0x07fe, 0x07fe, 0x07fe, 0x07fe, 0x07fe, 0x07fe, 0x07fe, 0x07fe, 0x07fe, 0x07fe, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07fe, 0x07fe, 0x07fe, 0x07fd, 0x07dd, 0x07dd, 0x07bd, 0x079c, 0x561a, 0xd395, 0xd395, 0xab37, 0x099f, 0x015f, 0x013f, 0x011f, 0x00ff, 0x00bf, 0x009f, 0x007f, 0x007f, 0x005f, 0x003f, 0x003f, 0x305c, 0xc0f1, 0xc8f1, 0xc8d1, 0x215d, 0x033f, 0x051f, 0x06df, 0x07df, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x5cd9, 0xc0b1, 0xc0b1, 0xc0b1, 0xc8b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0x98d1, 0x38f0, 0x30f0, 0x30f0, 0x28cf, 0x28ef, 0x28cf, 0x20ce, 0x20ce, 0x20ce, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x20ad, 0x18ad, 0x18d0, 0x0119, 0x0119, 0x00f7, 0x18ae, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, + 0x18ad, 0x18ad, 0x18ce, 0x0117, 0x011a, 0x0118, 0x10d0, 0x18ad, 0x18ad, 0x18ad, 0x08f3, 0x0119, 0x0119, 0x0117, 0x10d0, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18cd, 0x18ad, 0x08f3, 0x0118, 0x0119, 0x0119, 0x10d0, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x0119, 0x0119, 0x011a, 0x0119, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x00f7, 0x011a, 0x00f8, 0x10d0, 0x18ad, 0x18ad, 0x20ad, 0x18ae, 0x18ce, 0x00f7, 0x0119, 0x00f8, 0x10cf, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x00f8, 0x011a, 0x00f7, 0x18ae, 0x20ae, 0x18ad, 0x18ad, 0x18cd, 0x18b0, 0x00f9, 0x0119, 0x00f7, 0x18ce, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ae, 0x0117, 0x0119, 0x0119, 0x011a, 0x0119, 0x00f7, 0x18ce, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ae, 0x18ad, 0x20ae, 0x20ae, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x28cf, 0x28cf, 0x28cf, 0x28ef, 0x30f0, 0x30f0, 0x30f0, 0x3911, 0x3911, 0x4111, 0x4131, 0x4132, 0x4933, 0x4933, 0x5154, 0x5974, 0x9255, 0xcb55, 0xd375, 0xbb95, 0x5474, 0x3c34, 0x3bb4, 0x4333, 0x42b3, 0x4a13, 0x49f3, 0x5a32, 0x9ab4, 0xd334, 0xd335, 0xd314, 0xd314, 0xd315, 0xd314, 0xd2f4, 0x84d8, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x4ddb, 0xd274, 0xca74, 0xca73, 0xd274, 0xca54, 0xca54, 0x369c, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07fe, 0x07fe, 0x07dd, 0x07de, 0x079d, 0x6d99, 0xd395, 0xd395, 0xab17, 0x097f, 0x011f, 0x011f, 0x00ff, 0x00bf, 0x00bf, 0x009f, 0x007f, 0x007f, 0x003f, 0x003f, 0x003f, 0xc8f1, 0xc8f1, 0xc8d1, 0x5119, 0x02df, 0x04ff, 0x06bf, 0x07bf, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x1f1e, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0x4910, 0x30f0, 0x30f0, 0x28ef, 0x28ef, 0x28cf, 0x20cf, 0x20ce, 0x20ce, 0x20ae, 0x20ae, 0x20ae, 0x20ad, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x10d2, 0x08f3, 0x08f3, 0x10d2, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x10cf, 0x0119, 0x0119, 0x00f7, 0x18ce, 0x18ae, 0x20ad, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18cd, 0x18ad, 0x20ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, + 0x18ad, 0x18ce, 0x00f7, 0x0119, 0x00f8, 0x18cf, 0x18ad, 0x20ad, 0x18ad, 0x18d0, 0x00f9, 0x0119, 0x00f7, 0x18ae, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x20ad, 0x18ae, 0x18d0, 0x00f8, 0x0119, 0x00f8, 0x18ce, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x011a, 0x0119, 0x0119, 0x0119, 0x011a, 0x0119, 0x011a, 0x0119, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x00f7, 0x0119, 0x00f8, 0x10d0, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ae, 0x00f7, 0x0119, 0x00f7, 0x18ae, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ae, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ce, 0x00f7, 0x0119, 0x00f7, 0x18ae, 0x20ae, 0x18ad, 0x18ad, 0x18ae, 0x10cf, 0x00f9, 0x0119, 0x00f7, 0x18ce, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x20ae, 0x10d2, 0x08f3, 0x08f3, 0x10d2, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ae, 0x18ad, 0x20ae, 0x20ae, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x28cf, 0x28cf, 0x28cf, 0x28ef, 0x30f0, 0x30f0, 0x30f0, 0x3910, 0x3911, 0x4112, 0x4132, 0x4132, 0x4933, 0x5133, 0x8214, 0xcb55, 0xd375, 0xd375, 0xb3d5, 0x3d55, 0x3515, 0x3495, 0x3c14, 0x3b94, 0x3b13, 0x4293, 0x4212, 0x49f3, 0x49f3, 0x5a13, 0x9ab4, 0xd314, 0xd315, 0xcb15, 0xd2f4, 0xd2f5, 0xd2f4, 0x7539, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x8c37, 0xca74, 0xd273, 0xd253, 0xca54, 0xca53, 0xd253, 0x1f5e, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07fe, 0x07df, 0x07df, 0x94d8, 0xd396, 0xd395, 0x8299, 0x00ff, 0x00ff, 0x00ff, 0x00bf, 0x00bf, 0x009f, 0x007f, 0x005f, 0x005f, 0x003f, 0x001f, 0xc8d1, 0xc0f1, 0xc0d1, 0xa0d4, 0x027f, 0x04bf, 0x069f, 0x07bf, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x8315, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0x70f1, 0x30f0, 0x30f0, 0x28ef, 0x28cf, 0x28cf, 0x28cf, 0x20ce, 0x20ce, 0x20ce, 0x20ae, 0x20ae, 0x20ad, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x00f7, 0x0119, 0x0119, 0x0119, 0x0119, 0x00f7, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18d0, 0x0119, 0x0119, 0x0117, 0x18cd, 0x18ae, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x20ad, 0x10d2, 0x10d3, 0x08f3, 0x10d1, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x20ad, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, + 0x18ae, 0x0117, 0x0119, 0x0119, 0x10cf, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x08f6, 0x0119, 0x0118, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18d0, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18d0, 0x0119, 0x0119, 0x08f3, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x08f5, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x08f5, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x08f7, 0x011a, 0x0118, 0x10d0, 0x18ad, 0x18ad, 0x18ae, 0x18ae, 0x18ae, 0x00f7, 0x011a, 0x0119, 0x0119, 0x011a, 0x011a, 0x011a, 0x011a, 0x011a, 0x011a, 0x011a, 0x011a, 0x011a, 0x011a, 0x011a, 0x011a, 0x011a, 0x011a, 0x011a, 0x011a, 0x0119, 0x0119, 0x0119, 0x0119, 0x00f9, 0x011a, 0x0119, 0x0117, 0x18ae, 0x20cd, 0x18ad, 0x18ae, 0x18ad, 0x18d0, 0x0119, 0x0119, 0x00f7, 0x18ce, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ae, 0x20ad, 0x20ae, 0x20ae, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x28ce, 0x28cf, 0x28cf, 0x28cf, 0x28f0, 0x30f0, 0x30f0, 0x30f0, 0x3911, 0x3911, 0x4132, 0x4132, 0x4132, 0x5973, 0xb2f4, 0xd375, 0xd375, 0xd375, 0x9435, 0x3d55, 0x2d55, 0x2d75, 0x3515, 0x3c94, 0x3414, 0x3b94, 0x4313, 0x4293, 0x4a13, 0x41f3, 0x49f2, 0x4a13, 0x5a33, 0xa2b4, 0xd314, 0xd2f4, 0xd2f4, 0xd2d4, 0xd2f4, 0x4e1b, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x179f, 0xd274, 0xca53, 0xca73, 0xca53, 0xca53, 0xca53, 0xd253, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07df, 0x07df, 0x07df, 0x07df, 0x07df, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07df, 0x07df, 0x07df, 0x07df, 0x07df, 0x07df, 0x07df, 0x07df, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x0f9e, 0xbc16, 0xd395, 0xd395, 0x725a, 0x00bf, 0x00bf, 0x00bf, 0x009f, 0x007f, 0x007f, 0x005f, 0x005f, 0x003f, 0x001f, 0x90b5, 0xc8d1, 0xc8d1, 0xc0d1, 0x123e, 0x047f, 0x067f, 0x07bf, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x54d9, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0d1, 0xc0b1, 0x90d1, 0x38f1, 0x30f0, 0x30f0, 0x28ef, 0x28cf, 0x28cf, 0x20ce, 0x20ce, 0x20ce, 0x20ae, 0x20ae, 0x20ad, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x08f5, 0x011a, 0x0119, 0x0119, 0x0119, 0x0119, 0x011a, 0x08f5, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18af, 0x0119, 0x0119, 0x0117, 0x18ce, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ce, 0x00f7, 0x0119, 0x011a, 0x0119, 0x0119, 0x00f7, 0x18ce, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, + 0x00f7, 0x0119, 0x0118, 0x18d0, 0x18ae, 0x18ad, 0x20ad, 0x18ad, 0x18d0, 0x0119, 0x011a, 0x10d2, 0x18ad, 0x18ad, 0x18ad, 0x18af, 0x08f6, 0x011a, 0x0119, 0x0118, 0x08f4, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x08f5, 0x0119, 0x0118, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ae, 0x18ce, 0x00f7, 0x011a, 0x0119, 0x0119, 0x011a, 0x00f7, 0x18ce, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ce, 0x00f7, 0x011a, 0x00f8, 0x10d0, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18ce, 0x00f7, 0x0119, 0x011a, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x011a, 0x0119, 0x0119, 0x0119, 0x00f7, 0x18ae, 0x20ae, 0x18ad, 0x18ae, 0x18ad, 0x18d0, 0x00f9, 0x00f9, 0x00f7, 0x18ce, 0x18ad, 0x18ad, 0x20ad, 0x18ae, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ae, 0x20ad, 0x20ae, 0x20ae, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x28cf, 0x28cf, 0x28cf, 0x28ef, 0x28f0, 0x30f0, 0x38f0, 0x30f0, 0x3911, 0x3911, 0x4112, 0x4132, 0x8234, 0xcb55, 0xd375, 0xd375, 0xd355, 0x9435, 0x3575, 0x3575, 0x2d75, 0x3555, 0x3555, 0x3514, 0x3474, 0x3bf4, 0x3b73, 0x42f4, 0x4273, 0x4a13, 0x4213, 0x49f2, 0x49f3, 0x49f3, 0x6a33, 0xbad4, 0xd2f5, 0xd2f4, 0xd2d4, 0xc335, 0x177e, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x5d9a, 0xca54, 0xd273, 0xca54, 0xca53, 0xca53, 0xca53, 0x9bb6, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07df, 0x07df, 0x07df, 0x07df, 0x07bf, 0x07bf, 0x07bf, 0x079f, 0x077f, 0x077f, 0x077e, 0x07bf, 0x07df, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07df, 0x07df, 0x07df, 0x07df, 0x07df, 0x07df, 0x07df, 0x07df, 0x07bf, 0x07df, 0x07df, 0x07df, 0x07df, 0x07df, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x36dd, 0xd395, 0xd395, 0xd395, 0x51bc, 0x009f, 0x009f, 0x007f, 0x007f, 0x007f, 0x005f, 0x005f, 0x003f, 0x001f, 0x7077, 0xc0d2, 0xc8d1, 0xc0d1, 0x49fa, 0x049f, 0x069f, 0x07df, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x1f1e, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0d1, 0xc0b1, 0x3910, 0x30f0, 0x30f0, 0x30ef, 0x28cf, 0x28cf, 0x20ce, 0x20ce, 0x20ce, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x011a, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x011a, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18cd, 0x18ae, 0x18ad, 0x18ae, 0x20ad, 0x18ad, 0x20ad, 0x10d0, 0x0119, 0x0119, 0x00f7, 0x18ae, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18ae, 0x18ae, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x08f5, 0x0119, 0x0119, 0x0119, 0x011a, 0x0119, 0x011a, 0x08f5, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, + 0x0119, 0x00f8, 0x10d0, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x10d3, 0x011a, 0x0118, 0x18ad, 0x18ad, 0x18ad, 0x18ce, 0x00f8, 0x0119, 0x0119, 0x011a, 0x011a, 0x011a, 0x08f5, 0x20ad, 0x18cd, 0x18ad, 0x18af, 0x0119, 0x0119, 0x18d0, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x10d2, 0x08f3, 0x10f3, 0x10d2, 0x20ad, 0x188d, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x20ad, 0x18ce, 0x08f7, 0x0119, 0x00f8, 0x18b0, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ae, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18b0, 0x0119, 0x0119, 0x0117, 0x18ae, 0x18ad, 0x18ad, 0x18ae, 0x18ae, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ae, 0x20ae, 0x20ad, 0x20ae, 0x20ae, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x28cf, 0x28cf, 0x28cf, 0x28ef, 0x30f0, 0x30f0, 0x30f0, 0x38f0, 0x3911, 0x3911, 0x4952, 0xaab4, 0xd375, 0xd375, 0xd375, 0xd355, 0x9435, 0x3575, 0x3575, 0x2d75, 0x2d75, 0x2d75, 0x3555, 0x54d5, 0x6475, 0x83b5, 0x8b74, 0x9b34, 0xab14, 0xaad4, 0xb2d4, 0xaad4, 0xaab4, 0xaab4, 0xb2b4, 0x6b15, 0x8a94, 0xc2d4, 0xd2f4, 0xd2d4, 0x84b8, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0xb315, 0xd274, 0xca53, 0xca54, 0xca53, 0xca53, 0xd253, 0x653a, 0x07ff, 0x07ff, 0x07df, 0x07df, 0x07ff, 0x07df, 0x07df, 0x07bf, 0x07bf, 0x079f, 0x079f, 0x077f, 0x075f, 0x075f, 0x073f, 0x073f, 0x071f, 0x071e, 0x071e, 0x073e, 0x079f, 0x07df, 0x07ff, 0x07df, 0x07df, 0x07df, 0x07df, 0x07df, 0x07bf, 0x07bf, 0x07bf, 0x07bf, 0x07bf, 0x07bf, 0x07bf, 0x07bf, 0x07bf, 0x07df, 0x07df, 0x07df, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x7d7a, 0xd395, 0xd395, 0xc375, 0x28fe, 0x007f, 0x007f, 0x005f, 0x005f, 0x003f, 0x005f, 0x003f, 0x003f, 0x183e, 0xc0d1, 0xc0d1, 0xc0d2, 0x7996, 0x04bf, 0x067f, 0x07bf, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0xa214, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0d1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0d1, 0x58f1, 0x30f0, 0x30f0, 0x30f0, 0x28cf, 0x28ef, 0x28cf, 0x20ce, 0x20ce, 0x20ce, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x011a, 0x0119, 0x0119, 0x011a, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x011a, 0x011a, 0x00f9, 0x0119, 0x00f7, 0x18ce, 0x20ad, 0x20ad, 0x20ad, 0x18ad, 0x18ad, 0x18ae, 0x20ad, 0x18af, 0x0119, 0x0119, 0x08f6, 0x20ae, 0x18ad, 0x18ad, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x0119, 0x011a, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x011a, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, + 0x0118, 0x18b0, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x08f7, 0x0119, 0x08f5, 0x18ad, 0x18ad, 0x18ad, 0x08f4, 0x0139, 0x0119, 0x10f3, 0x18d0, 0x08f5, 0x0119, 0x0119, 0x18d0, 0x18ae, 0x18ae, 0x18cd, 0x0119, 0x011a, 0x10d2, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ce, 0x18ad, 0x18ae, 0x18ae, 0x00f7, 0x011a, 0x00f8, 0x18d0, 0x18ad, 0x18ad, 0x20cd, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18cd, 0x20ad, 0x18cd, 0x20ad, 0x18ae, 0x20ad, 0x18ad, 0x18ad, 0x18ae, 0x18d0, 0x00f9, 0x0119, 0x0117, 0x18ce, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ae, 0x20ae, 0x20ad, 0x20ae, 0x20ae, 0x20ae, 0x20ce, 0x20ce, 0x20ce, 0x28cf, 0x28cf, 0x28cf, 0x28ef, 0x30f0, 0x30f0, 0x30f0, 0x38f0, 0x3911, 0x5972, 0xcb55, 0xd375, 0xd375, 0xd375, 0xd375, 0xabd5, 0x4515, 0x54f5, 0x7c75, 0x8c35, 0xabd5, 0xcb55, 0xd335, 0xd335, 0xd334, 0xd335, 0xd335, 0xd315, 0xd314, 0xd314, 0xc355, 0x9c37, 0x659a, 0x467c, 0x0fbf, 0x07ff, 0x07ff, 0x269d, 0x9c17, 0xd2d4, 0x9c17, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x5d9a, 0xd274, 0xca53, 0xca54, 0xca53, 0xca33, 0xca33, 0xca33, 0x26dd, 0x07ff, 0x07df, 0x07df, 0x07df, 0x07df, 0x07bf, 0x079f, 0x079f, 0x077f, 0x077f, 0x075f, 0x073f, 0x071e, 0x071e, 0x06fe, 0x06fe, 0x06ff, 0x06de, 0x06de, 0x06be, 0x06be, 0x06de, 0x073e, 0x079f, 0x07bf, 0x07bf, 0x079f, 0x079f, 0x079f, 0x077f, 0x079f, 0x079f, 0x077f, 0x079f, 0x079f, 0x079f, 0x079f, 0x07bf, 0x07bf, 0x07df, 0x07df, 0x07df, 0x07ff, 0x07ff, 0x07ff, 0x0fbf, 0xc3f6, 0xd395, 0xd395, 0xaaf7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x001f, 0x001f, 0xa094, 0xc0d1, 0xc8b1, 0xa8f3, 0x04bf, 0x069f, 0x07df, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x73d8, 0xb8b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0d1, 0xc0b1, 0xc0b1, 0xc0b1, 0x78f1, 0x3911, 0x30f0, 0x30f0, 0x30ef, 0x28cf, 0x28cf, 0x20ce, 0x20ce, 0x20ce, 0x20ae, 0x20ae, 0x20ad, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x0119, 0x011a, 0x011a, 0x0119, 0x0119, 0x0119, 0x011a, 0x011a, 0x011a, 0x011a, 0x011a, 0x011a, 0x011a, 0x011a, 0x0119, 0x0119, 0x0119, 0x011a, 0x011a, 0x00f7, 0x18ce, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18d0, 0x0119, 0x0119, 0x0119, 0x011a, 0x0119, 0x0119, 0x011a, 0x011a, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x011a, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, + 0x18cf, 0x18ae, 0x20ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x20ae, 0x00f6, 0x0119, 0x08f3, 0x18ad, 0x20ad, 0x20ad, 0x00f6, 0x00f9, 0x08d4, 0x18ad, 0x18ad, 0x18ad, 0x00f8, 0x0119, 0x08f3, 0x18ad, 0x18ad, 0x18ad, 0x00f6, 0x0119, 0x10d3, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ae, 0x20ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ae, 0x18cd, 0x18ad, 0x20ad, 0x18ae, 0x18ad, 0x18ae, 0x00f7, 0x0119, 0x0118, 0x18d0, 0x18ad, 0x18ad, 0x18ad, 0x188d, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ae, 0x18ae, 0x18cd, 0x10cf, 0x0119, 0x00f9, 0x0117, 0x18ce, 0x188d, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ae, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ae, 0x20ae, 0x20ad, 0x20ae, 0x20ae, 0x20ae, 0x20ce, 0x20ce, 0x20ce, 0x28cf, 0x28cf, 0x28cf, 0x28ef, 0x30f0, 0x30f0, 0x30f0, 0x3111, 0x71f2, 0xd375, 0xd375, 0xd375, 0xd375, 0xd375, 0xd355, 0xd375, 0xd355, 0xd355, 0xd335, 0xd335, 0xd355, 0xd335, 0xd335, 0xcb14, 0xd334, 0xd334, 0xac16, 0x753a, 0x467d, 0x1f5e, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x369c, 0x4e1b, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x26fd, 0xc2b4, 0xca53, 0xca53, 0xca53, 0xd253, 0xca33, 0xca33, 0xa356, 0x07ff, 0x07ff, 0x07df, 0x07bf, 0x07bf, 0x079f, 0x077f, 0x077f, 0x075f, 0x073f, 0x071f, 0x071f, 0x06ff, 0x06fe, 0x06fe, 0x06de, 0x06be, 0x06be, 0x069e, 0x069e, 0x069e, 0x067e, 0x067e, 0x065e, 0x065e, 0x06be, 0x073e, 0x075f, 0x075f, 0x075f, 0x075f, 0x075f, 0x075f, 0x075f, 0x075f, 0x077f, 0x077f, 0x077f, 0x077f, 0x079f, 0x07bf, 0x07bf, 0x07df, 0x07df, 0x07df, 0x07ff, 0x07df, 0x6dda, 0xd395, 0xd376, 0xd375, 0x79fa, 0x003f, 0x003f, 0x001f, 0x003f, 0x001f, 0x001f, 0x001f, 0x001f, 0x8896, 0xc0b1, 0xc0b1, 0xc8b1, 0x0c9f, 0x069f, 0x07bf, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x3dbb, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0d1, 0xc0b1, 0xb8d1, 0xc0b1, 0xc0b1, 0x98d1, 0x3911, 0x30f0, 0x30f0, 0x30ef, 0x28cf, 0x28cf, 0x20ce, 0x20ce, 0x20ce, 0x20ae, 0x20ce, 0x20ad, 0x20ae, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x08f5, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x08f5, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ce, 0x00f7, 0x011a, 0x00f7, 0x18ae, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x10cf, 0x0119, 0x0119, 0x0119, 0x011a, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x011a, 0x011a, 0x0119, 0x0119, 0x011a, 0x0119, 0x0119, 0x011a, 0x0119, 0x0119, 0x18ad, 0x18ae, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x08f6, 0x0119, 0x08f3, 0x18ad, 0x18ad, 0x18ad, 0x00f6, 0x011a, 0x08f4, 0x18ad, 0x18ad, 0x18ad, 0x0118, 0x011a, 0x08f3, 0x20ad, 0x18ad, 0x18ad, 0x08f7, 0x0119, 0x08f3, 0x18cd, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x0117, 0x011a, 0x0119, 0x18b0, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18b0, 0x00f9, 0x0119, 0x00f7, 0x18ce, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x20ce, 0x20ce, 0x20ce, 0x28cf, 0x28cf, 0x28cf, 0x28ef, 0x30f0, 0x30f0, 0x30f0, 0x9a93, 0xd375, 0xd375, 0xd375, 0xd375, 0xd355, 0xd355, 0xd355, 0xd355, 0xd355, 0xd335, 0xd355, 0xd355, 0xd335, 0xd335, 0xc375, 0x84f9, 0x4e3c, 0x0fbf, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x0f9f, 0xab75, 0xca54, 0xd253, 0xca53, 0xca33, 0xca33, 0xd233, 0xca33, 0x4dbb, 0x07df, 0x07bf, 0x07bf, 0x079f, 0x077f, 0x075f, 0x075f, 0x073f, 0x071f, 0x071f, 0x06ff, 0x06de, 0x06de, 0x06de, 0x06be, 0x06be, 0x069e, 0x067e, 0x067e, 0x067e, 0x065e, 0x063e, 0x063e, 0x061e, 0x061e, 0x05fe, 0x05fd, 0x067d, 0x06de, 0x06fe, 0x06fe, 0x06fe, 0x06fe, 0x071e, 0x073f, 0x073f, 0x073f, 0x073e, 0x075f, 0x077f, 0x079f, 0x079f, 0x07bf, 0x07df, 0x07df, 0x07ff, 0x07ff, 0x0fbf, 0xc3d6, 0xd375, 0xd375, 0xd355, 0x30fd, 0x001f, 0x001f, 0x001f, 0x001f, 0x003f, 0x001f, 0x001f, 0x6058, 0xc0b1, 0xc0b1, 0xc0b1, 0x33fc, 0x06bf, 0x07bf, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x0f9e, 0xc0d1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0d1, 0xb8b1, 0xc0b1, 0xb8d1, 0xb8d1, 0x3911, 0x38f0, 0x30f0, 0x30f0, 0x28cf, 0x28cf, 0x28cf, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ad, 0x20ae, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x00f7, 0x0119, 0x0119, 0x0119, 0x0119, 0x00f7, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ce, 0x00f7, 0x011a, 0x00f7, 0x18ce, 0x18ad, 0x18ad, 0x20ad, 0x18ae, 0x18cd, 0x18ae, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x08f5, 0x0119, 0x011a, 0x0119, 0x0119, 0x0119, 0x00f9, 0x08f5, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, + 0x18cd, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x08f6, 0x0119, 0x08d5, 0x18cd, 0x18ae, 0x18ad, 0x08d4, 0x0119, 0x0119, 0x10d3, 0x10d0, 0x08f4, 0x0119, 0x0119, 0x18b0, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x10d2, 0x18ad, 0x18ad, 0x18ae, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x00f7, 0x0119, 0x0118, 0x18d0, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18b0, 0x0119, 0x0119, 0x00f7, 0x18ce, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x20ae, 0x20ae, 0x20ae, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x28cf, 0x28cf, 0x28ef, 0x28ef, 0x30f0, 0x3910, 0xaaf4, 0xd375, 0xd375, 0xd375, 0xd375, 0xd375, 0xd355, 0xd355, 0xd355, 0xd355, 0xd355, 0xd335, 0xd335, 0xb3d6, 0x7539, 0x271d, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x2efd, 0xb315, 0xca53, 0xca54, 0xca33, 0xca53, 0xca34, 0xca34, 0xca33, 0xa335, 0x07bf, 0x07bf, 0x079f, 0x077f, 0x075f, 0x073f, 0x073f, 0x071f, 0x06ff, 0x06ff, 0x06df, 0x06de, 0x06bf, 0x06be, 0x069e, 0x069e, 0x069e, 0x067e, 0x065e, 0x065e, 0x063e, 0x061e, 0x061e, 0x05fe, 0x05de, 0x05bd, 0x05be, 0x059d, 0x055e, 0x055e, 0x05be, 0x05fe, 0x061d, 0x067e, 0x06be, 0x06fe, 0x06fe, 0x071f, 0x071e, 0x073f, 0x073f, 0x075f, 0x077f, 0x079f, 0x07bf, 0x07bf, 0x07df, 0x07ff, 0x07ff, 0x8539, 0xd375, 0xd355, 0xd355, 0xbaf6, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x403b, 0xc8b1, 0xc0b1, 0xc0b1, 0x6318, 0x06bf, 0x07bf, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0xa9b3, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0d1, 0xb8d1, 0x4910, 0x3910, 0x30f0, 0x30f0, 0x28cf, 0x28ef, 0x28cf, 0x20cf, 0x20ce, 0x20ae, 0x20ae, 0x20ae, 0x18ad, 0x20ae, 0x18ad, 0x20ad, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x10d2, 0x10d3, 0x10d3, 0x10d2, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x00f7, 0x0119, 0x00f7, 0x18ae, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x00f7, 0x0119, 0x011a, 0x0119, 0x0119, 0x00f7, 0x18ce, 0x18ad, 0x18cd, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x08f3, 0x011a, 0x0118, 0x18ad, 0x18cd, 0x18ad, 0x18ce, 0x00f8, 0x011a, 0x0119, 0x011a, 0x0119, 0x011a, 0x08f5, 0x18ad, 0x20cd, 0x18ad, 0x10d0, 0x011a, 0x0119, 0x10d0, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ae, 0x0117, 0x011a, 0x0119, 0x18af, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ae, 0x18ad, 0x18ae, 0x18cf, 0x00f8, 0x0119, 0x00f7, 0x18ae, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x20ae, 0x20ae, 0x20ae, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20cf, 0x20cf, 0x28cf, 0x28cf, 0x28ef, 0x30cf, 0x3910, 0xb314, 0xd375, 0xd375, 0xd375, 0xd375, 0xd375, 0xd355, 0xd355, 0xd354, 0xd355, 0xd355, 0xcb96, 0x8518, 0x36dd, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x0fbe, 0x653a, 0xca54, 0xca53, 0xd253, 0xca53, 0xca53, 0xca33, 0xca33, 0xca33, 0xca33, 0x2e9d, 0x077f, 0x077f, 0x075f, 0x073f, 0x073f, 0x071f, 0x06ff, 0x06fe, 0x06df, 0x06de, 0x06bf, 0x06be, 0x06bf, 0x069e, 0x067e, 0x067e, 0x065e, 0x065e, 0x063e, 0x061e, 0x061e, 0x05fe, 0x05de, 0x05be, 0x05be, 0x059e, 0x057e, 0x053e, 0x051e, 0x04fe, 0x04be, 0x049e, 0x041e, 0x03dd, 0x04de, 0x065e, 0x06be, 0x06de, 0x06de, 0x06fe, 0x071f, 0x073e, 0x077f, 0x079f, 0x079f, 0x07bf, 0x07df, 0x07df, 0x07ff, 0x36dd, 0xd355, 0xd355, 0xd355, 0xd335, 0x699a, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0xb8b2, 0xc091, 0xc0b1, 0x7a96, 0x06bf, 0x079f, 0x07df, 0x07df, 0x07df, 0x07df, 0x07df, 0x07ff, 0x07ff, 0x07ff, 0x82f5, 0xc0b1, 0xc0d1, 0xc0b1, 0xc0b1, 0xc0b1, 0xb8d1, 0xb8d1, 0xb8d1, 0x60f1, 0x3911, 0x30f0, 0x30f0, 0x28ef, 0x28ef, 0x28cf, 0x20cf, 0x20ce, 0x20ce, 0x20ae, 0x20ae, 0x20ae, 0x18ce, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ae, 0x00f7, 0x0119, 0x00f7, 0x18ae, 0x18ad, 0x18ad, 0x18ae, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x18ae, 0x18ad, 0x18ad, 0x20cd, 0x10d2, 0x08d4, 0x08f3, 0x10d2, 0x20ad, 0x18ad, 0x18ad, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x10cf, 0x011a, 0x0119, 0x10d2, 0x18ad, 0x20ad, 0x18ad, 0x18af, 0x08f6, 0x0119, 0x0119, 0x00f9, 0x08f4, 0x18ad, 0x20ae, 0x18ad, 0x18ae, 0x08f5, 0x011a, 0x00f8, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x08f7, 0x0119, 0x08f7, 0x18ce, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x10d0, 0x0118, 0x0119, 0x00f7, 0x18ce, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ae, 0x18ad, 0x20ad, 0x20ad, 0x20ae, 0x20ae, 0x20ae, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x28ce, 0x20cf, 0x28cf, 0x28ef, 0x3910, 0xb314, 0xd395, 0xd375, 0xd375, 0xd375, 0xd375, 0xd355, 0xd355, 0xd355, 0xd355, 0xbbd6, 0x5dfb, 0x0fbf, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x0fbf, 0x5d9a, 0xb315, 0xd254, 0xca53, 0xd254, 0xca53, 0xca53, 0xca33, 0xd233, 0xca33, 0xca33, 0x64d9, 0x077f, 0x073f, 0x073f, 0x071f, 0x06ff, 0x06ff, 0x06df, 0x06df, 0x06df, 0x06bf, 0x06be, 0x069f, 0x069f, 0x067e, 0x065e, 0x065e, 0x063e, 0x063e, 0x061e, 0x05fe, 0x05fe, 0x05de, 0x05be, 0x059e, 0x059e, 0x055e, 0x055e, 0x051e, 0x04fe, 0x04de, 0x049e, 0x043d, 0x03de, 0x03be, 0x039e, 0x037e, 0x03fe, 0x05fe, 0x069e, 0x069e, 0x06be, 0x06fe, 0x071e, 0x073f, 0x075f, 0x079f, 0x079f, 0x07df, 0x07df, 0x07df, 0x07ff, 0xbbf6, 0xd355, 0xd335, 0xd335, 0xc2f5, 0x083f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x003f, 0x9095, 0xc8b1, 0xc8b1, 0x91f5, 0x067f, 0x06ff, 0x073f, 0x075f, 0x077f, 0x07bf, 0x07df, 0x07ff, 0x07ff, 0x07ff, 0x54d9, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xb8d1, 0xc0d1, 0xb8d1, 0xb8d1, 0x80f2, 0x3911, 0x30f0, 0x30f0, 0x30ef, 0x28cf, 0x28cf, 0x20ce, 0x20ce, 0x20ae, 0x20ad, 0x20cd, 0x20ae, 0x18ad, 0x18ae, 0x20ae, 0x18ad, 0x18ae, 0x18ae, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ae, 0x18ad, 0x20ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ae, 0x18ae, 0x18ae, 0x0117, 0x0119, 0x0117, 0x18ae, 0x18ae, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, + 0x18ae, 0x18cd, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x20ae, 0x18ad, 0x18ad, 0x00f6, 0x011a, 0x0117, 0x18ce, 0x18ad, 0x18ae, 0x20ad, 0x18ad, 0x18ad, 0x20ad, 0x18cd, 0x20ad, 0x18ad, 0x18ad, 0x18cd, 0x18d0, 0x0119, 0x0119, 0x08f3, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ce, 0x08f7, 0x011a, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x00f9, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x00f6, 0x18ce, 0x18ad, 0x18ad, 0x20ad, 0x18ae, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ae, 0x18ad, 0x18ad, 0x18ae, 0x20ad, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x20ce, 0x20ce, 0x20ce, 0x20cf, 0x28ce, 0x28cf, 0x28cf, 0x3110, 0xb314, 0xd395, 0xd375, 0xd375, 0xd375, 0xd375, 0xd355, 0xd355, 0xd355, 0x9c77, 0x563b, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x1f7e, 0x65db, 0x7cf9, 0x9c57, 0x9c57, 0x9c57, 0x9c57, 0x9c37, 0x9c37, 0x9c37, 0x9c37, 0x7539, 0x6d7a, 0x6579, 0x5dbb, 0x36bd, 0x36bd, 0x36bc, 0x2efd, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x0fbf, 0x36bd, 0x5d9a, 0x8c37, 0xd274, 0xd273, 0xd254, 0xca53, 0xd254, 0xd253, 0xca33, 0xd233, 0xca34, 0xca13, 0xca33, 0x8418, 0x075f, 0x073f, 0x071f, 0x06ff, 0x06ff, 0x06df, 0x06df, 0x06df, 0x06bf, 0x06bf, 0x069e, 0x069f, 0x067e, 0x067e, 0x065e, 0x065e, 0x063e, 0x061e, 0x061e, 0x05fe, 0x05de, 0x05de, 0x05be, 0x05be, 0x057e, 0x055e, 0x051e, 0x051e, 0x04fe, 0x04be, 0x045e, 0x03fe, 0x03be, 0x039e, 0x037e, 0x037e, 0x035e, 0x033e, 0x035e, 0x061d, 0x067e, 0x067e, 0x069e, 0x06be, 0x06fe, 0x073f, 0x075f, 0x077f, 0x079f, 0x07df, 0x07df, 0x07ff, 0x7d59, 0xd335, 0xd335, 0xd335, 0xd314, 0x699a, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x007f, 0x60d8, 0xc0b1, 0xc0b1, 0xb8f2, 0x05df, 0x061f, 0x065f, 0x06df, 0x073f, 0x077f, 0x07df, 0x07ff, 0x07ff, 0x07ff, 0x363c, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xb8d1, 0xc0d1, 0xb8d1, 0xb8d1, 0x90d1, 0x3911, 0x30f0, 0x30f0, 0x30f0, 0x28cf, 0x28cf, 0x28ce, 0x20ce, 0x20ce, 0x20ce, 0x20ae, 0x20ad, 0x18ae, 0x18ad, 0x18ae, 0x20ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ae, 0x00f8, 0x0119, 0x0117, 0x18ae, 0x18ae, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x20ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ae, 0x18ad, 0x18ad, 0x20ae, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, + 0x18ad, 0x18ad, 0x18ae, 0x18ae, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x10d0, 0x0119, 0x011a, 0x00f7, 0x18ce, 0x18ad, 0x18ae, 0x18ad, 0x18ae, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ae, 0x18d0, 0x00f8, 0x011a, 0x00f8, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ae, 0x18ad, 0x18ad, 0x18ae, 0x00f7, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x011a, 0x0119, 0x00f9, 0x0119, 0x0119, 0x011a, 0x08d5, 0x18ad, 0x18ad, 0x18ad, 0x20ae, 0x18ae, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18cd, 0x18ad, 0x20ad, 0x18ad, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x20ce, 0x20ce, 0x20ce, 0x20cf, 0x28ce, 0x28ce, 0x30ef, 0xb314, 0xd375, 0xd375, 0xd375, 0xd375, 0xd355, 0xd375, 0xd355, 0x9c77, 0x3edd, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x659a, 0xd315, 0xd314, 0xd315, 0xd314, 0xd314, 0xd314, 0xd2f4, 0xd2f4, 0xd2f4, 0xd2f4, 0xd2d4, 0xd2d4, 0xd2f4, 0xcad4, 0xd2d4, 0xd2b4, 0xd2b4, 0xd2b4, 0xcab4, 0xd2b4, 0xd2b4, 0xd2b4, 0xd294, 0xd294, 0xca94, 0xca94, 0xca94, 0xca94, 0xca74, 0xca74, 0xca73, 0xca73, 0xd274, 0xca53, 0xca53, 0xca53, 0xca53, 0xca53, 0xca53, 0xca33, 0xca33, 0xca33, 0xab15, 0x0edf, 0x06ff, 0x06ff, 0x06df, 0x06df, 0x06bf, 0x06bf, 0x06df, 0x06bf, 0x069f, 0x069f, 0x067e, 0x067f, 0x067e, 0x065e, 0x063f, 0x061e, 0x061e, 0x05fe, 0x05fe, 0x05de, 0x05be, 0x059e, 0x059e, 0x055e, 0x053e, 0x051e, 0x04fe, 0x04de, 0x049e, 0x043e, 0x03be, 0x039e, 0x039e, 0x035e, 0x035e, 0x033e, 0x033e, 0x031e, 0x02fe, 0x037e, 0x05fe, 0x065e, 0x067e, 0x069e, 0x06de, 0x06fe, 0x075f, 0x077f, 0x079f, 0x07bf, 0x07df, 0x07ff, 0x271d, 0xd335, 0xd314, 0xd315, 0xd315, 0xc2d5, 0x083f, 0x001f, 0x001f, 0x001f, 0x001f, 0x009f, 0x60d8, 0xc0b1, 0xc0b2, 0xc0b1, 0x04bf, 0x053f, 0x05bf, 0x067f, 0x06df, 0x075f, 0x079f, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0xc0b1, 0xc0b1, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8d1, 0xc0b1, 0xb8d1, 0x98d1, 0x3911, 0x38f0, 0x30f0, 0x30f0, 0x28cf, 0x28cf, 0x28cf, 0x20ce, 0x20ce, 0x20ce, 0x20ae, 0x20ae, 0x18ce, 0x20ad, 0x18ad, 0x20ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x00f7, 0x0119, 0x0117, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x18ae, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, + 0x18ae, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x08f3, 0x0119, 0x011a, 0x08f7, 0x10d0, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x10d2, 0x0118, 0x0119, 0x0119, 0x10d0, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ae, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x20ae, 0x18ad, 0x20ae, 0x20ae, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x28ce, 0x20ce, 0x30ef, 0xb314, 0xd375, 0xd375, 0xd375, 0xd375, 0xd355, 0xd375, 0xac37, 0x36dd, 0x07ff, 0x07ff, 0x07ff, 0x0ebd, 0x1d7b, 0x1c99, 0x32f5, 0x3a75, 0x6193, 0x69b3, 0x79f4, 0x8a14, 0xb294, 0xcaf4, 0xd2f4, 0xd2f4, 0xd2f4, 0xd2f4, 0xd2d4, 0xd2d4, 0xd2d4, 0xd2d4, 0xd2b4, 0xd2b4, 0xcad4, 0xd2b4, 0xcab4, 0xd2b4, 0xd2b4, 0xd294, 0xd294, 0xd294, 0xd294, 0xca94, 0xca94, 0xca74, 0xca74, 0xd274, 0xd274, 0xca53, 0xca54, 0xca54, 0xca53, 0xd253, 0xca53, 0xca33, 0xca33, 0xca33, 0xca33, 0x8b97, 0x35fd, 0x5d7b, 0x6d3a, 0x6d3a, 0x5d5b, 0x35fd, 0x06bf, 0x0e7e, 0x457c, 0x6c99, 0x6479, 0x6459, 0x4cba, 0x0e1e, 0x063e, 0x063e, 0x061e, 0x05fe, 0x05fe, 0x05fe, 0x05de, 0x05be, 0x059e, 0x057e, 0x055e, 0x051e, 0x051e, 0x04fe, 0x04de, 0x047e, 0x03de, 0x03be, 0x037e, 0x037f, 0x035e, 0x033e, 0x033e, 0x031e, 0x02fe, 0x02fe, 0x02fe, 0x02de, 0x03fe, 0x05be, 0x063e, 0x065e, 0x069e, 0x06de, 0x071f, 0x073e, 0x077f, 0x079f, 0x07bf, 0x07df, 0x07ff, 0xbbb6, 0xd314, 0xd315, 0xd2f4, 0xd2f4, 0x697a, 0x001f, 0x001f, 0x001f, 0x003f, 0x007f, 0x48fa, 0xc0b1, 0xc0b1, 0xc0b1, 0x331c, 0x047f, 0x053f, 0x05ff, 0x069f, 0x073f, 0x079f, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x9a14, 0xb8d1, 0xb8d1, 0xc0b1, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8d1, 0xb0d1, 0x3911, 0x38f0, 0x30f0, 0x30f0, 0x28cf, 0x28cf, 0x28cf, 0x20ce, 0x20cf, 0x20ae, 0x18cf, 0x08f6, 0x011a, 0x0119, 0x0119, 0x08f4, 0x18ce, 0x18ad, 0x18ad, 0x20ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ce, 0x00f7, 0x0119, 0x0117, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ae, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x08d4, 0x0119, 0x0119, 0x0119, 0x08f6, 0x10d2, 0x10d0, 0x18d0, 0x18d1, 0x10d2, 0x00f8, 0x0119, 0x011a, 0x0119, 0x10d0, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ae, 0x20ad, 0x20ae, 0x18ad, 0x20ae, 0x20ae, 0x20ce, 0x20ae, 0x20ce, 0x20ce, 0x20ce, 0x28cf, 0x9273, 0xd375, 0xd375, 0xd375, 0xd375, 0xd375, 0xc3b6, 0x5dfb, 0x07ff, 0x0e3b, 0x1c98, 0x2ad5, 0x3911, 0x3911, 0x3912, 0x4111, 0x4112, 0x4112, 0x4112, 0x4132, 0x4132, 0x4132, 0x4132, 0x4933, 0x5173, 0x79d3, 0x9a54, 0xc294, 0xd2f4, 0xd2d5, 0xcad4, 0xd2d4, 0xd2b4, 0xcad4, 0xd2b4, 0xd2b4, 0xd2b4, 0xd2b4, 0xd294, 0xd294, 0xd294, 0xd294, 0xca94, 0xca94, 0xca74, 0xca74, 0xca74, 0xca73, 0xd253, 0xca53, 0xca53, 0xca53, 0xca53, 0xca53, 0xca33, 0xca33, 0xca33, 0xca33, 0x99d4, 0x6358, 0xd395, 0xd396, 0xd395, 0xd395, 0xd375, 0xd375, 0x06bf, 0x5cfa, 0xd2b4, 0xca94, 0xca33, 0xca13, 0xc9d3, 0xb9d3, 0x4c5a, 0x061e, 0x061e, 0x05de, 0x05de, 0x05be, 0x059e, 0x059e, 0x057e, 0x053e, 0x051e, 0x051d, 0x04de, 0x04be, 0x043e, 0x03be, 0x03be, 0x037f, 0x0b7e, 0x337c, 0x333c, 0x335c, 0x333c, 0x333c, 0x331c, 0x331c, 0x32fc, 0x32fc, 0x32dc, 0x2b7c, 0x05de, 0x061e, 0x065e, 0x069e, 0x06de, 0x071f, 0x073f, 0x077f, 0x07bf, 0x07df, 0x07df, 0x84f9, 0xd314, 0xcb14, 0xcaf4, 0xd2d5, 0xb275, 0x001f, 0x001f, 0x001f, 0x001f, 0x005f, 0x08df, 0xb8d2, 0xc0b1, 0xc0b1, 0x3a7b, 0x03ff, 0x04df, 0x05bf, 0x067f, 0x071f, 0x079f, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x7b77, 0xb8d1, 0xb8b1, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8d1, 0x4111, 0x38f1, 0x30f0, 0x30f0, 0x28cf, 0x28cf, 0x28cf, 0x20cf, 0x20ae, 0x20cf, 0x0918, 0x013a, 0x011a, 0x0119, 0x011a, 0x0119, 0x08f6, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x20ad, 0x18ad, 0x20ad, 0x18cd, 0x18ad, 0x18ae, 0x00f8, 0x0119, 0x00f7, 0x18ae, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, + 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x10d1, 0x0118, 0x0119, 0x0119, 0x011a, 0x0119, 0x0119, 0x011a, 0x011a, 0x0119, 0x011a, 0x08f6, 0x18cf, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x10d2, 0x0119, 0x011a, 0x011a, 0x0119, 0x011a, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x011a, 0x0119, 0x011a, 0x0119, 0x0119, 0x0119, 0x00f9, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x011a, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x011a, 0x0119, 0x011a, 0x0119, 0x0139, 0x00f9, 0x10d2, 0x20ae, 0x18ad, 0x20ae, 0x20ae, 0x20ce, 0x20ae, 0x20ce, 0x20ce, 0x20ce, 0x7a32, 0xd375, 0xd375, 0xd375, 0xd375, 0xd375, 0x9c78, 0x261b, 0x1b96, 0x3171, 0x30f0, 0x38f1, 0x3911, 0x3911, 0x3911, 0x3911, 0x3911, 0x3911, 0x4111, 0x3912, 0x4112, 0x4112, 0x4112, 0x4132, 0x4112, 0x4132, 0x4132, 0x4912, 0x4132, 0x6172, 0x81f3, 0xaa73, 0xcad4, 0xd2b4, 0xcab4, 0xd2b4, 0xd2b4, 0xcab4, 0xcab4, 0xca94, 0xca94, 0xd294, 0xca94, 0xca94, 0xca74, 0xca74, 0xca74, 0xd274, 0xca54, 0xd274, 0xca53, 0xca53, 0xca53, 0xd233, 0xca33, 0xca33, 0xd233, 0xc234, 0x7994, 0x5975, 0xb315, 0xd395, 0xd395, 0xd395, 0xd395, 0xd375, 0xc375, 0x067f, 0x067f, 0x6c79, 0xca33, 0xca13, 0xc9d3, 0xc992, 0xc952, 0xc912, 0x34bb, 0x05fe, 0x05de, 0x05be, 0x059e, 0x055e, 0x055e, 0x053e, 0x051e, 0x04fe, 0x249d, 0x347b, 0x6bfa, 0x7b99, 0x9b98, 0xab97, 0xdb95, 0xd396, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd396, 0xd395, 0xd396, 0xd395, 0xbbd6, 0x9c37, 0x8499, 0x6d1a, 0x363c, 0x1edd, 0x079f, 0x07bf, 0x07df, 0x4e1b, 0xd2f4, 0xd2f5, 0xd2d4, 0xd2d4, 0xd2d4, 0x40fc, 0x001f, 0x001f, 0x001f, 0x003f, 0x009f, 0x78d7, 0xc0b1, 0xc0b1, 0x61d8, 0x03bf, 0x049f, 0x057f, 0x065f, 0x071f, 0x07bf, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x54d9, 0xb8d1, 0xb8b1, 0xb8d1, 0xc0b1, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8d1, 0x4111, 0x3911, 0x30f0, 0x30f0, 0x28ef, 0x28cf, 0x28cf, 0x20cf, 0x20ae, 0x10f3, 0x013a, 0x0119, 0x0139, 0x0119, 0x0119, 0x0119, 0x011a, 0x18d0, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x20ad, 0x18ae, 0x18ad, 0x18ae, 0x00f7, 0x0119, 0x00f7, 0x18ce, 0x10d2, 0x08f3, 0x08f4, 0x10d1, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ce, 0x10f2, 0x00f7, 0x00f9, 0x0119, 0x0119, 0x011a, 0x0119, 0x08f5, 0x10d0, 0x18ae, 0x18ad, 0x18ae, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x10d2, 0x011a, 0x011a, 0x0119, 0x011a, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x011a, 0x0119, 0x011a, 0x0119, 0x0119, 0x0119, 0x011a, 0x0119, 0x0119, 0x011a, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x011a, 0x0119, 0x18ad, 0x20ae, 0x18ad, 0x20ae, 0x20ae, 0x20ae, 0x20ce, 0x20ce, 0x5170, 0xd395, 0xd375, 0xd375, 0xd375, 0xd355, 0x6519, 0x22b3, 0x30f0, 0x30f0, 0x30f0, 0x30f0, 0x30f0, 0x38f0, 0x3911, 0x3911, 0x3911, 0x3911, 0x3911, 0x3911, 0x3911, 0x3911, 0x3911, 0x3911, 0x3911, 0x4112, 0x4112, 0x4112, 0x4112, 0x4132, 0x4112, 0x4132, 0x4112, 0x4952, 0x79b3, 0xa233, 0xd2b4, 0xcab4, 0xd294, 0xca94, 0xd294, 0xca94, 0xca74, 0xca94, 0xca74, 0xca74, 0xd274, 0xca54, 0xd274, 0xd253, 0xca54, 0xca54, 0xca33, 0xd233, 0xca34, 0xca33, 0xca33, 0xa1d3, 0x5954, 0x5954, 0x79f5, 0xd395, 0xd395, 0xd395, 0xd375, 0xd375, 0xd335, 0x8c18, 0x067f, 0x065f, 0x063f, 0xa2d5, 0xc9d3, 0xc972, 0xc952, 0xc111, 0xc8d1, 0x8a55, 0x05de, 0x05be, 0x059e, 0x057e, 0x055e, 0x34dc, 0x6c5a, 0xa3f7, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd375, 0xd375, 0xd355, 0xd355, 0xd335, 0xd335, 0xd335, 0xbbb6, 0x84d9, 0x4e1b, 0x465c, 0xd2f5, 0xd2d4, 0xd2d4, 0xd2d4, 0xd2b4, 0x81d8, 0x001f, 0x001f, 0x001f, 0x001f, 0x005f, 0x6098, 0xc0b1, 0xc0d1, 0x59b8, 0x035f, 0x045f, 0x055f, 0x063f, 0x06ff, 0x079f, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x363c, 0xc0d1, 0xb8d1, 0xb8b1, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8d1, 0x58f1, 0x3911, 0x30f0, 0x3110, 0x30cf, 0x28ef, 0x28cf, 0x28cf, 0x20ce, 0x08f6, 0x013a, 0x0119, 0x0119, 0x011a, 0x011a, 0x0119, 0x0119, 0x0119, 0x0119, 0x011a, 0x0119, 0x011a, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x00f7, 0x18ce, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ae, 0x00f7, 0x0119, 0x011a, 0x0119, 0x011a, 0x0119, 0x011a, 0x00f7, 0x18ae, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18b0, 0x00f9, 0x08f8, 0x0118, 0x18ad, 0x18ad, 0x18ad, 0x00f8, 0x00f8, 0x08f8, 0x0118, 0x10d2, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x00fa, 0x00f8, 0x08f7, 0x08f7, 0x18b0, 0x18ad, 0x18ae, 0x08f4, 0x0119, 0x08f8, 0x08f8, 0x00f8, 0x18cf, 0x18ad, 0x18ad, 0x10d4, 0x10d0, 0x18ad, 0x20ad, 0x08f8, 0x10d3, 0x18ad, 0x18ad, 0x10f4, 0x10d1, 0x18ad, 0x18ad, 0x08f8, 0x00f7, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ae, 0x20ad, 0x18ad, 0x10d2, 0x0119, 0x0119, 0x00f9, 0x0119, 0x011a, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x011a, 0x0119, 0x0119, 0x0119, 0x0119, 0x011a, 0x011a, 0x0119, 0x0119, 0x011a, 0x0119, 0x0119, 0x011a, 0x0119, 0x011a, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x011a, 0x011a, 0x011a, 0x011a, 0x0119, 0x0119, 0x011a, 0x00f8, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x20ae, 0x20ce, 0x20ae, 0x28ee, 0xcb55, 0xd375, 0xd375, 0xd375, 0xbb14, 0x34f9, 0x2930, 0x30ef, 0x30f0, 0x30f0, 0x30f0, 0x30f0, 0x30f0, 0x30f0, 0x30f0, 0x30f0, 0x3911, 0x3911, 0x3911, 0x3911, 0x3911, 0x3911, 0x3911, 0x3911, 0x3911, 0x3911, 0x3911, 0x3911, 0x3911, 0x3911, 0x3911, 0x3911, 0x4112, 0x4111, 0x3931, 0x4112, 0x4111, 0x6993, 0x91f2, 0xc254, 0xca93, 0xca94, 0xca94, 0xca74, 0xca74, 0xd274, 0xca73, 0xd273, 0xca73, 0xd254, 0xca53, 0xca53, 0xca54, 0xca33, 0xca34, 0xa1f3, 0x6973, 0x4953, 0x5134, 0x5154, 0xaaf5, 0xd395, 0xd395, 0xd395, 0xd375, 0xd335, 0xd314, 0x5cda, 0x065f, 0x063f, 0x063f, 0xb254, 0xc972, 0xc952, 0xc112, 0xc8d1, 0xc0b1, 0xc0b1, 0x05be, 0x059e, 0x2d1c, 0x9438, 0xcbb6, 0xd396, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd396, 0xd375, 0xd355, 0xd355, 0xd355, 0xd335, 0xd335, 0xd314, 0xd314, 0xd315, 0xd2f4, 0xd2f5, 0xd2d4, 0xd2d4, 0xd2d4, 0xd2b4, 0xd2b4, 0xca94, 0x087f, 0x003f, 0x001f, 0x001f, 0x001f, 0x385b, 0xc0b1, 0xc0b1, 0x9135, 0x031f, 0x043f, 0x053f, 0x063f, 0x071f, 0x079f, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8b1, 0xb8d1, 0xc0d1, 0xb8b1, 0xb8d1, 0x5911, 0x3911, 0x38f0, 0x30f0, 0x30cf, 0x28cf, 0x28cf, 0x20cf, 0x20ce, 0x0917, 0x011a, 0x0119, 0x011a, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x011a, 0x0119, 0x0119, 0x0119, 0x0119, 0x00f9, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x00f9, 0x011a, 0x08f7, 0x18ae, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x20ad, 0x18ce, 0x0118, 0x0119, 0x011a, 0x00f7, 0x08f7, 0x0119, 0x0119, 0x08f5, 0x18ad, 0x18ae, 0x18ae, 0x18ad, 0x20ad, 0x10d1, 0x10d0, 0x18ad, 0x08d5, 0x10d1, 0x18ad, 0x20ae, 0x00f7, 0x18ad, 0x18ae, 0x18ad, 0x08f7, 0x10d0, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x00f8, 0x18ae, 0x18ad, 0x18ae, 0x0118, 0x18ae, 0x18ad, 0x08f4, 0x18d0, 0x18ad, 0x18ad, 0x10d1, 0x10d5, 0x18ae, 0x18ad, 0x08f5, 0x10d1, 0x20ad, 0x18ad, 0x00f8, 0x08f7, 0x18af, 0x18ad, 0x08d4, 0x10d1, 0x18ad, 0x18ae, 0x18ad, 0x20ae, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x10d2, 0x0119, 0x0119, 0x0119, 0x0119, 0x011a, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x011a, 0x0119, 0x0119, 0x011a, 0x0119, 0x0119, 0x0119, 0x011a, 0x0119, 0x011a, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x011a, 0x0119, 0x0118, 0x011a, 0x00f9, 0x0119, 0x00f9, 0x10d2, 0x20ad, 0x18cd, 0x20ae, 0x18ad, 0x20ae, 0x20ce, 0x20ce, 0x8252, 0xd375, 0xd375, 0xd375, 0x9a93, 0x30ef, 0x20cf, 0x28cf, 0x28cf, 0x28ef, 0x28ef, 0x28f0, 0x30f0, 0x30f0, 0x30f0, 0x30f0, 0x30f0, 0x30f0, 0x30f0, 0x30f0, 0x30f0, 0x30f0, 0x38f0, 0x38f0, 0x3911, 0x3911, 0x3911, 0x3911, 0x3911, 0x3911, 0x3911, 0x3911, 0x3911, 0x3911, 0x3911, 0x3911, 0x38f1, 0x3911, 0x3911, 0x3911, 0x3911, 0x4111, 0x6972, 0x81d2, 0xaa13, 0xba33, 0xca54, 0xca74, 0xca53, 0xca54, 0xca53, 0xca53, 0xb213, 0xa1f3, 0x8193, 0x5152, 0x4932, 0x4933, 0x4933, 0x4933, 0x5174, 0xd395, 0xd395, 0xd396, 0xd375, 0xd334, 0xd2f5, 0xd2b4, 0x2d9d, 0x063f, 0x063f, 0x061f, 0xc993, 0xc952, 0xc911, 0xc8f1, 0xc0b1, 0xc0b1, 0xb8d1, 0x059e, 0x057e, 0xabf7, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd375, 0xd395, 0xd395, 0xd375, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd396, 0xd395, 0xd395, 0xd395, 0xd375, 0xd375, 0xd355, 0xd355, 0xd355, 0xd335, 0xd335, 0xd315, 0xd335, 0xcb15, 0xd2f4, 0xd2f5, 0xd2d4, 0xd2d4, 0xd2d4, 0xd2b4, 0xd2b4, 0xd294, 0xd294, 0x411c, 0x003f, 0x003f, 0x001f, 0x001f, 0x203c, 0xc0b1, 0xc0b1, 0x9135, 0x02ff, 0x041f, 0x051f, 0x061f, 0x06ff, 0x07bf, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0xa1b3, 0xb8b1, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8d1, 0x68f1, 0x3911, 0x38f0, 0x30f0, 0x30ef, 0x28cf, 0x28cf, 0x28cf, 0x20ce, 0x10f3, 0x0119, 0x0119, 0x0119, 0x00fa, 0x0119, 0x0119, 0x0119, 0x10d0, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x0117, 0x00f9, 0x00f7, 0x18ae, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ae, 0x0119, 0x0119, 0x08f3, 0x18ae, 0x18ad, 0x08f3, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x10f4, 0x08f7, 0x18ad, 0x18ae, 0x18ad, 0x08f8, 0x20ae, 0x18ad, 0x18ad, 0x10d1, 0x10f4, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x08f7, 0x18ad, 0x18ad, 0x10d1, 0x08f6, 0x18ad, 0x20ad, 0x08f4, 0x10d3, 0x18d1, 0x18d1, 0x08f5, 0x18d2, 0x18ad, 0x20ad, 0x08f4, 0x10d1, 0x18ad, 0x18ad, 0x08f7, 0x18af, 0x08f7, 0x18ad, 0x08f4, 0x10d1, 0x18ad, 0x18ad, 0x208e, 0x18ad, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18cd, 0x18ad, 0x18ad, 0x10d2, 0x00f9, 0x0119, 0x0119, 0x011a, 0x011a, 0x10d2, 0x18cd, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x20ad, 0x18ae, 0x18ae, 0x18ad, 0x20ae, 0x18ad, 0x20ae, 0x20ce, 0x412f, 0xd375, 0xd375, 0xd375, 0x71d1, 0x20ce, 0x28cf, 0x20cf, 0x28ce, 0x28cf, 0x28cf, 0x28ef, 0x28ef, 0x28ef, 0x30f0, 0x30f0, 0x30f0, 0x30f0, 0x30f0, 0x30f0, 0x30f0, 0x30f0, 0x30f0, 0x30f0, 0x30f0, 0x30f0, 0x30f0, 0x30f0, 0x30f0, 0x30f0, 0x30f0, 0x30f0, 0x30f0, 0x3110, 0x3110, 0x38f0, 0x30f0, 0x3111, 0x3111, 0x38f1, 0x38f1, 0x38f0, 0x3910, 0x3910, 0x3910, 0x3911, 0x3911, 0x3911, 0x3910, 0x6152, 0x6152, 0x5131, 0x3911, 0x3911, 0x3911, 0x3912, 0x4112, 0x4132, 0x4112, 0x4932, 0x4932, 0x8a34, 0xd395, 0xd395, 0xd375, 0xd335, 0xd2f4, 0xcad4, 0xb2f6, 0x065f, 0x061f, 0x061f, 0x34dc, 0xc952, 0xc912, 0xc8d2, 0xc0b1, 0xc0d1, 0xb8d1, 0x89b4, 0x2bba, 0x4216, 0x5154, 0x5154, 0x4954, 0x5154, 0x6194, 0x71d4, 0x69f4, 0x71d3, 0x69d4, 0x71d3, 0x7a14, 0x8a75, 0x9274, 0x9254, 0x9254, 0x9a95, 0xb315, 0xbb14, 0xd396, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd375, 0xd375, 0xd355, 0xd355, 0xd355, 0xd335, 0xd335, 0xd314, 0xd315, 0xd2f4, 0xcb14, 0xd2f4, 0xd2f4, 0xd2d4, 0xcad4, 0xcab4, 0xd2b4, 0xcab4, 0xca94, 0xca94, 0x81b8, 0x005f, 0x005f, 0x003f, 0x001f, 0x001f, 0xa8b3, 0xc0b1, 0xb0d2, 0x02df, 0x03ff, 0x051f, 0x061f, 0x06ff, 0x07bf, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x8a95, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8d1, 0x78f2, 0x3911, 0x38f0, 0x30f0, 0x28f0, 0x28cf, 0x28cf, 0x28ce, 0x20ce, 0x20cf, 0x0918, 0x0119, 0x0119, 0x011a, 0x00f9, 0x0119, 0x08f7, 0x18ae, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ce, 0x0117, 0x0119, 0x00f7, 0x18ae, 0x18ad, 0x18ad, 0x20ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18af, 0x0119, 0x0119, 0x10d1, 0x18ad, 0x18ad, 0x10d0, 0x00fa, 0x0119, 0x18ae, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x10d1, 0x08f7, 0x18d1, 0x18ad, 0x20ad, 0x08f8, 0x18ad, 0x18ad, 0x18ad, 0x18d1, 0x08d4, 0x18ad, 0x18ad, 0x20ad, 0x18ae, 0x20ad, 0x18ae, 0x00fa, 0x08f8, 0x00f7, 0x08f6, 0x18ae, 0x18ad, 0x18ad, 0x08f4, 0x08f6, 0x08d4, 0x08f6, 0x08f5, 0x18ad, 0x18ad, 0x18ad, 0x08f4, 0x10d1, 0x18ae, 0x18ae, 0x08f8, 0x18ad, 0x08f3, 0x10d3, 0x10d5, 0x10d0, 0x18ad, 0x18ad, 0x20ae, 0x18ad, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x10d2, 0x011a, 0x011a, 0x0119, 0x0119, 0x0119, 0x10d2, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x20ad, 0x18ad, 0x20ae, 0x20ae, 0x20cd, 0x20ae, 0x20cd, 0x9272, 0xd375, 0xc334, 0x61d1, 0x20cf, 0x20ce, 0x20ce, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x28ef, 0x28ef, 0x30ef, 0x30f0, 0x30f0, 0x30f0, 0x30f0, 0x30f0, 0x30f0, 0x30f0, 0x30f0, 0x30f0, 0x30f0, 0x30f0, 0x30f0, 0x30f0, 0x30f0, 0x30f0, 0x30f0, 0x30f0, 0x30f0, 0x30f0, 0x30f0, 0x30f0, 0x30f0, 0x30f0, 0x30f0, 0x38f0, 0x30f0, 0x3110, 0x3110, 0x30f0, 0x3110, 0x38f0, 0x30f0, 0x38f0, 0x3111, 0x38f0, 0x3911, 0x38f1, 0x3911, 0x3911, 0x3912, 0x4111, 0x4132, 0x4132, 0xb2f5, 0xd395, 0xd375, 0xd355, 0xd2f4, 0xd2b4, 0xd274, 0x83b8, 0x063f, 0x061f, 0x061e, 0x6398, 0xc912, 0xc8d1, 0xc0b1, 0xc0b1, 0xb8b1, 0xb8d1, 0x7933, 0x5153, 0x5134, 0x5154, 0x5133, 0x4953, 0x4933, 0x4933, 0x4933, 0x4133, 0x4933, 0x4932, 0x4932, 0x4932, 0x4933, 0x4933, 0x4933, 0x4932, 0x4932, 0x4933, 0x4933, 0x4933, 0x61b3, 0x7a34, 0x9a95, 0xb2f5, 0xd375, 0xd375, 0xd355, 0xd355, 0xd355, 0xd335, 0xd335, 0xd314, 0xd314, 0xd315, 0xd2f4, 0xd2f4, 0xd2f4, 0xd2d4, 0xd2d4, 0xd2b4, 0xd2b4, 0xd294, 0xd294, 0xd274, 0xca74, 0xc254, 0x007f, 0x005f, 0x005f, 0x003f, 0x001f, 0x5878, 0xb8d1, 0xc0b1, 0x02bf, 0x03bf, 0x04ff, 0x05ff, 0x06ff, 0x07bf, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x6478, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8d1, 0x78f1, 0x3911, 0x38f0, 0x30f0, 0x30f0, 0x28cf, 0x28cf, 0x28ce, 0x20ce, 0x20ce, 0x20cf, 0x0917, 0x011a, 0x011a, 0x0119, 0x08f4, 0x18ce, 0x18ae, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ae, 0x00f7, 0x011a, 0x00f7, 0x18ae, 0x18ae, 0x18ad, 0x18ae, 0x188d, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x08f3, 0x18ad, 0x18ad, 0x10f3, 0x0119, 0x0119, 0x18cd, 0x18ae, 0x18ad, 0x18ad, 0x18ce, 0x10d1, 0x18cf, 0x18ad, 0x10d1, 0x10f4, 0x18ad, 0x18ad, 0x08f7, 0x18ad, 0x18ad, 0x18ad, 0x08f5, 0x10d1, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x08f8, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x08f5, 0x18d1, 0x18ad, 0x18ad, 0x08f6, 0x18cf, 0x18ae, 0x20ae, 0x10d4, 0x18d1, 0x18ad, 0x20ae, 0x00f8, 0x18ad, 0x18ad, 0x08f7, 0x08f6, 0x18b1, 0x18ae, 0x18ad, 0x18ad, 0x18ad, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x10d2, 0x0119, 0x0119, 0x0119, 0x0119, 0x011a, 0x10d2, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x20cd, 0x18ce, 0x20ae, 0x390f, 0xd375, 0xcb35, 0x414f, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x28ef, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x28ef, 0x28ef, 0x28ef, 0x30ef, 0x30ef, 0x30ef, 0x30ef, 0x30ef, 0x30ef, 0x30ef, 0x30ef, 0x30f0, 0x28f0, 0x30f0, 0x30f0, 0x30f0, 0x28f0, 0x30f0, 0x30ef, 0x3110, 0x30f0, 0x30d0, 0x30f0, 0x30f0, 0x30f0, 0x30f0, 0x30f0, 0x30f1, 0x30f0, 0x30f0, 0x38f0, 0x3911, 0x3910, 0x3911, 0x38f1, 0x3911, 0x3912, 0x4952, 0xd395, 0xd375, 0xd335, 0xd2f4, 0xd2b4, 0xd274, 0xca33, 0x4c9a, 0x05ff, 0x061f, 0x05ff, 0xa1f4, 0xc0d1, 0xc0b1, 0xc0b1, 0xb8d1, 0xb8d1, 0xa0f1, 0x5134, 0x4933, 0x4933, 0x4933, 0x4933, 0x4933, 0x4932, 0x4932, 0x4932, 0x4132, 0x4132, 0x4132, 0x4112, 0x4112, 0x4112, 0x4112, 0x4112, 0x4112, 0x4132, 0x4132, 0x4132, 0x4132, 0x4132, 0x4133, 0x4933, 0x4932, 0x4953, 0x6193, 0x8214, 0xa274, 0xc315, 0xd335, 0xd314, 0xd315, 0xd2f4, 0xd2f4, 0xd2f5, 0xd2d4, 0xd2d4, 0xd2d4, 0xd2b4, 0xcab4, 0xcab4, 0xca94, 0xca74, 0xca74, 0xca74, 0xca54, 0x20fd, 0x009f, 0x007f, 0x005f, 0x003f, 0x105d, 0xc0b1, 0xc0d1, 0x029f, 0x03bf, 0x04df, 0x05ff, 0x06ff, 0x07bf, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x54d9, 0xb8d1, 0xb8d1, 0xb8b1, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8d1, 0x78f1, 0x3911, 0x38f0, 0x30f0, 0x30f0, 0x28cf, 0x28cf, 0x28ce, 0x20cf, 0x20ce, 0x20ae, 0x20ae, 0x20ae, 0x20ad, 0x18ad, 0x20ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ae, 0x00f7, 0x00f9, 0x0117, 0x18ae, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x20ae, 0x18ad, 0x20ad, 0x08f5, 0x0119, 0x0119, 0x0117, 0x00f7, 0x011a, 0x0119, 0x08d4, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18af, 0x0117, 0x10f4, 0x00f8, 0x18af, 0x18ad, 0x18ad, 0x08f7, 0x08f4, 0x10d5, 0x00f7, 0x08f5, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x08f8, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x08f4, 0x10d1, 0x18ad, 0x18cd, 0x10d1, 0x10d3, 0x18ad, 0x18ad, 0x08f4, 0x10d1, 0x18ad, 0x18ad, 0x08f8, 0x18ae, 0x18ad, 0x18af, 0x00fa, 0x10d1, 0x18ad, 0x18ad, 0x18ad, 0x18ad, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ae, 0x10d2, 0x011a, 0x0119, 0x00fa, 0x0119, 0x011a, 0x10d2, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ae, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ae, 0x18ad, 0x20ad, 0x20ae, 0x61d0, 0xbb14, 0x412f, 0x20ae, 0x20ae, 0x20ce, 0x20ae, 0x20ce, 0x20ce, 0x28ce, 0x20ce, 0x20cf, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x28ef, 0x28ef, 0x28cf, 0x28f0, 0x30d0, 0x28ef, 0x28cf, 0x30cf, 0x30f0, 0x30d0, 0x30d0, 0x28f0, 0x30f0, 0x30f0, 0x30f0, 0x30d0, 0x30f0, 0x30f0, 0x30f0, 0x30f0, 0x38f0, 0x3911, 0x3911, 0x3911, 0x61b2, 0xd375, 0xd335, 0xd2f4, 0xcad4, 0xca74, 0xd233, 0xca13, 0x1d9d, 0x05ff, 0x05ff, 0x1d3d, 0xc0d1, 0xc0b1, 0xc0b1, 0xb8d1, 0xb8d1, 0xb0d1, 0x6132, 0x4933, 0x4933, 0x4932, 0x4132, 0x4112, 0x4112, 0x4112, 0x4132, 0x4112, 0x4111, 0x4111, 0x4112, 0x4112, 0x4111, 0x3911, 0x3911, 0x4111, 0x4112, 0x4112, 0x3912, 0x4132, 0x4112, 0x4112, 0x4112, 0x4912, 0x4132, 0x4132, 0x4932, 0x4933, 0x4953, 0x4933, 0x6173, 0x8a14, 0xaa74, 0xcaf4, 0xd2f5, 0xd2d4, 0xd2d4, 0xd2d4, 0xd2b4, 0xcab4, 0xd2b4, 0xd294, 0xca94, 0xca73, 0xd274, 0xd253, 0xd254, 0x597a, 0x00bf, 0x00bf, 0x009f, 0x009f, 0x005f, 0xa8b3, 0xc0b1, 0x31fc, 0x039f, 0x04df, 0x05df, 0x06df, 0x07bf, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x2e3c, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8b1, 0xb8d1, 0xb8d1, 0x78f1, 0x3911, 0x30f0, 0x30f0, 0x28ef, 0x28ef, 0x28cf, 0x28cf, 0x20ce, 0x20ce, 0x20ce, 0x20ad, 0x20ae, 0x18ce, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x08f7, 0x0119, 0x0117, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18cd, 0x18ae, 0x18ae, 0x00f7, 0x0119, 0x0119, 0x00f9, 0x0119, 0x00f7, 0x18ae, 0x18ad, 0x20ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ae, 0x18b1, 0x18ce, 0x18ad, 0x18ad, 0x18ae, 0x18b0, 0x10d0, 0x10d1, 0x18af, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x10d0, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cf, 0x18ae, 0x18ad, 0x18ad, 0x18ae, 0x10d0, 0x18ae, 0x18ad, 0x18af, 0x18ae, 0x18ad, 0x18ad, 0x10d0, 0x188d, 0x18ad, 0x18ae, 0x10d0, 0x18ae, 0x18cd, 0x18ad, 0x18ad, 0x18ad, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x10d2, 0x00f9, 0x011a, 0x0119, 0x0119, 0x0119, 0x10d2, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18af, 0x10cf, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x18af, 0x18af, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18af, 0x18af, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x20ae, 0x390f, 0x28ce, 0x20ae, 0x20ce, 0x20ae, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x28ef, 0x28ef, 0x28ef, 0x28cf, 0x28ef, 0x28ef, 0x30ef, 0x28ef, 0x28ef, 0x30f0, 0x30f0, 0x30f0, 0x30f0, 0x30f0, 0x30f0, 0x3911, 0x71f2, 0xd335, 0xd2f4, 0xd2b4, 0xca74, 0xd233, 0xca13, 0xa295, 0x05ff, 0x05ff, 0x05ff, 0x5399, 0xc0d1, 0xc0b1, 0xb8d1, 0xb8d1, 0xb0d1, 0x7912, 0x4952, 0x4132, 0x4112, 0x4132, 0x4132, 0x4132, 0x4112, 0x3911, 0x3911, 0x3911, 0x3911, 0x38f1, 0x3911, 0x3911, 0x3911, 0x3911, 0x3911, 0x3911, 0x3911, 0x3911, 0x3911, 0x3911, 0x3911, 0x3911, 0x4111, 0x4112, 0x4112, 0x4112, 0x4112, 0x4132, 0x4932, 0x4932, 0x4933, 0x4933, 0x5133, 0x6194, 0x9a34, 0xc2b4, 0xd2b5, 0xd2b3, 0xcab4, 0xd294, 0xd294, 0xca93, 0xd274, 0xd274, 0xca53, 0xca54, 0xca53, 0x81d8, 0x00df, 0x00df, 0x00df, 0x00bf, 0x00bf, 0x68b7, 0xb8d1, 0x31dc, 0x033f, 0x049f, 0x05df, 0x06ff, 0x07bf, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x26bd, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8d2, 0xb8d1, 0xb8d1, 0x78f1, 0x3911, 0x38f1, 0x30f0, 0x30ef, 0x28ef, 0x28cf, 0x28cf, 0x20ce, 0x20ce, 0x20ae, 0x20ae, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ce, 0x00f7, 0x0119, 0x0117, 0x18ae, 0x18ad, 0x18ae, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x10d2, 0x08d3, 0x08f3, 0x10d2, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ae, 0x18ad, 0x20ae, 0x18ad, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x08f3, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x10d2, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x10d0, 0x00f7, 0x011a, 0x0119, 0x0118, 0x18af, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18b0, 0x0118, 0x0119, 0x0119, 0x00f6, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x10cf, 0x00f8, 0x0119, 0x011a, 0x00f6, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20cf, 0x20cf, 0x20cf, 0x20cf, 0x20cf, 0x20cf, 0x20cf, 0x20cf, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x28cf, 0x28ef, 0x28f0, 0x28f0, 0x30f0, 0x30f0, 0x38f0, 0x8213, 0xd2f5, 0xcad4, 0xd274, 0xca53, 0xc9f3, 0xc9d2, 0x7398, 0x05ff, 0x05ff, 0x05df, 0xa953, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8d1, 0x98f2, 0x4132, 0x4132, 0x4112, 0x4111, 0x4111, 0x3911, 0x3911, 0x3911, 0x3911, 0x3911, 0x3911, 0x3911, 0x3911, 0x38f0, 0x38f0, 0x38f0, 0x38f0, 0x3911, 0x38f0, 0x38f0, 0x3911, 0x3911, 0x3911, 0x3911, 0x3911, 0x3911, 0x3911, 0x3911, 0x3911, 0x4112, 0x4112, 0x4112, 0x4132, 0x4132, 0x4933, 0x4933, 0x4933, 0x5153, 0x5974, 0x9214, 0xca94, 0xd294, 0xca94, 0xd274, 0xca74, 0xd274, 0xca53, 0xca54, 0xca53, 0xca34, 0x99f6, 0x011f, 0x011f, 0x00ff, 0x00ff, 0x00ff, 0x38db, 0xc0b1, 0x28fc, 0x02df, 0x047f, 0x059f, 0x06df, 0x07bf, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8d1, 0x78f1, 0x3911, 0x38f0, 0x30f0, 0x30f0, 0x28ef, 0x28cf, 0x28cf, 0x20ce, 0x20ce, 0x20ce, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x00f7, 0x011a, 0x00f7, 0x18ae, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x08f5, 0x011a, 0x011a, 0x00f9, 0x011a, 0x00f9, 0x10d2, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18d0, 0x00f9, 0x0119, 0x0119, 0x011a, 0x0119, 0x0117, 0x18ad, 0x18ae, 0x18cd, 0x18ad, 0x18ae, 0x18b0, 0x0119, 0x00f9, 0x0119, 0x00f9, 0x0119, 0x08f6, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18d0, 0x00f9, 0x0119, 0x0119, 0x011a, 0x0119, 0x08f6, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x310e, 0x7a32, 0xaad3, 0xd395, 0xd395, 0xd395, 0xd375, 0xd395, 0xd395, 0xd395, 0xd395, 0xd396, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd396, 0xd395, 0xd335, 0xd2b4, 0xca94, 0xca33, 0xd1f3, 0xc9d3, 0xc993, 0xc972, 0xc992, 0xc972, 0xc932, 0xc0d1, 0xc0b1, 0xb8d1, 0xb0d2, 0xb9f2, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd396, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd375, 0xd396, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd396, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xca13, 0x015f, 0x013f, 0x013f, 0x013f, 0x011f, 0x093f, 0xc0b1, 0x311c, 0x01bf, 0x03ff, 0x059f, 0x069f, 0x079f, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0xb8b1, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8d1, 0x78f1, 0x3911, 0x3911, 0x30f0, 0x30f0, 0x28ef, 0x28cf, 0x28cf, 0x20ce, 0x20ce, 0x20ce, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x00f7, 0x0119, 0x00f7, 0x18ae, 0x18ad, 0x18ad, 0x18ae, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x08d5, 0x0119, 0x0119, 0x0119, 0x011a, 0x0119, 0x10f2, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18d0, 0x00f8, 0x011a, 0x0119, 0x011a, 0x0119, 0x0119, 0x0119, 0x18af, 0x18ad, 0x18ad, 0x18ae, 0x18b0, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x011a, 0x011a, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x10cf, 0x0118, 0x0119, 0x011a, 0x0119, 0x0119, 0x0119, 0x0119, 0x18ae, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ae, 0x20ad, 0x18ad, 0x496f, 0xaad3, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd375, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd2f4, 0xca74, 0xca33, 0xca13, 0xc9d3, 0xc992, 0xc952, 0xc111, 0xc0d1, 0xc0b1, 0xc0d1, 0xb8b1, 0xb8d1, 0xb8d1, 0xca53, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd396, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd396, 0xd395, 0xd395, 0xd395, 0xd395, 0xd375, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xca13, 0x097f, 0x017f, 0x015f, 0x017f, 0x015f, 0x015f, 0x88f5, 0x293c, 0x013f, 0x02df, 0x053e, 0x067f, 0x077f, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x9234, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8d1, 0x78f1, 0x3911, 0x3911, 0x30f0, 0x30f0, 0x28ef, 0x28cf, 0x28cf, 0x20ce, 0x20ce, 0x20ce, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ae, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ce, 0x00f7, 0x0119, 0x00f7, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ae, 0x18ae, 0x18ad, 0x18ae, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x08f5, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x10d2, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18d0, 0x00f9, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x18af, 0x18cd, 0x18ae, 0x10d0, 0x0118, 0x0119, 0x011a, 0x011a, 0x0119, 0x011a, 0x0119, 0x011a, 0x18ad, 0x18ad, 0x18ad, 0x18d0, 0x00f8, 0x0119, 0x0119, 0x0119, 0x0119, 0x011a, 0x011a, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ee, 0x8252, 0xd396, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd3b5, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd2b4, 0xd233, 0xca13, 0xc9b3, 0xc992, 0xc952, 0xc912, 0xc8d1, 0xc0b1, 0xc0b1, 0xb8b1, 0xb8d1, 0xb8d1, 0xc253, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xdb95, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd396, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xca13, 0x31bc, 0x01bf, 0x019f, 0x019f, 0x019f, 0x019f, 0x5139, 0x315c, 0x017f, 0x01bf, 0x045e, 0x063e, 0x077f, 0x07fe, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x8a95, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8d1, 0xb0d1, 0xb8d1, 0x78f1, 0x3911, 0x3911, 0x30f0, 0x30f0, 0x28ef, 0x28cf, 0x28cf, 0x20ce, 0x20ce, 0x20ce, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x00f7, 0x0119, 0x00f7, 0x18ce, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x08d5, 0x0119, 0x0119, 0x0119, 0x0119, 0x011a, 0x10d2, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x10cf, 0x00f9, 0x0119, 0x00f9, 0x011a, 0x0119, 0x0119, 0x011a, 0x00f9, 0x08f7, 0x18ad, 0x20ad, 0x10d0, 0x0118, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x08f5, 0x18ad, 0x18ad, 0x10d0, 0x00f9, 0x0119, 0x0119, 0x00fa, 0x0119, 0x0119, 0x011a, 0x0119, 0x08f5, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ae, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x28ee, 0xb314, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd4f8, 0xd65c, 0xd6dd, 0xd6fd, 0xd7ff, 0xd7ff, 0xdfff, 0xd7ff, 0xd7ff, 0xdfff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xdfff, 0xd7ff, 0xcb15, 0xca13, 0xc9d3, 0xc992, 0xc932, 0xc911, 0xc0d1, 0xc0b1, 0xc0b1, 0xb8d1, 0xb8d1, 0xb8d1, 0xc397, 0xdfff, 0xdfff, 0xdfff, 0xdfff, 0xdfff, 0xdfff, 0xdfff, 0xdfff, 0xdfff, 0xdfff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xdfff, 0xd539, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xdb95, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd396, 0xd395, 0xd395, 0xc9f3, 0x31fc, 0x01df, 0x01df, 0x01df, 0x01df, 0x01df, 0x01bf, 0x01df, 0x01bf, 0x01bf, 0x02df, 0x05fd, 0x073e, 0x07fe, 0x07fe, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x8ab5, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8d1, 0xb0f1, 0xb8d1, 0x78f1, 0x3911, 0x3911, 0x30f0, 0x30f0, 0x28ef, 0x28cf, 0x28cf, 0x20ce, 0x20ce, 0x20ce, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ae, 0x0117, 0x0119, 0x00f7, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x08d5, 0x0119, 0x011a, 0x0119, 0x011a, 0x00f9, 0x10d2, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x10d0, 0x00f8, 0x0119, 0x0119, 0x0119, 0x0119, 0x011a, 0x011a, 0x0119, 0x00f7, 0x18ae, 0x18ae, 0x18b0, 0x00f9, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x011a, 0x00f7, 0x18ce, 0x18ad, 0x10d0, 0x00f8, 0x0119, 0x011a, 0x0119, 0x011a, 0x011a, 0x0119, 0x0119, 0x00f7, 0x18ce, 0x18ae, 0x18ae, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ae, 0x28ee, 0xcb55, 0xd375, 0xd395, 0xd395, 0xd3d6, 0xd5db, 0xd7bf, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xdfff, 0xdfff, 0xca13, 0xc9b3, 0xc992, 0xc952, 0xc912, 0xc0d1, 0xc0b1, 0xc0d1, 0xb8b1, 0xb8d1, 0xb0f1, 0xba95, 0xdfff, 0xd7ff, 0xdfff, 0xdfff, 0xdfff, 0xdfff, 0xdfff, 0xd7ff, 0xdfff, 0xdfff, 0xdfff, 0xdfff, 0xdfff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xdfff, 0xd539, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xc9f3, 0x31fd, 0x021f, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01df, 0x01ff, 0x051d, 0x071d, 0x07fd, 0x07fe, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x6bf7, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8d1, 0xb0d1, 0x78f1, 0x3911, 0x3911, 0x30f0, 0x30f0, 0x28ef, 0x28cf, 0x28cf, 0x20ce, 0x20ce, 0x20ce, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x00f7, 0x011a, 0x00f7, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, + 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x011a, 0x0119, 0x011a, 0x0119, 0x011a, 0x00f8, 0x18b0, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x08f5, 0x0119, 0x011a, 0x0119, 0x0119, 0x0119, 0x10d2, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18d0, 0x0119, 0x011a, 0x0119, 0x0119, 0x011a, 0x0119, 0x0119, 0x011a, 0x00f7, 0x18ae, 0x18ad, 0x10cf, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x011a, 0x0119, 0x00f7, 0x18ce, 0x18ad, 0x18cf, 0x0119, 0x0119, 0x0119, 0x0119, 0x011a, 0x0119, 0x011a, 0x011a, 0x00f7, 0x18ce, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x28ee, 0xb314, 0xd395, 0xd395, 0xd395, 0xd477, 0xd77e, 0xd7ff, 0xd7ff, 0xdfff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xdfff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xc9d3, 0xc992, 0xc952, 0xc912, 0xc8d1, 0xc0b1, 0xc0b1, 0xb8d1, 0xb8d1, 0xb0d1, 0xb152, 0xd79e, 0xdfff, 0xdfff, 0xdfff, 0xd7ff, 0xdfff, 0xdfff, 0xdfff, 0xdfff, 0xd7ff, 0xdfff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd539, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xc9d3, 0x323c, 0x023f, 0x023f, 0x021f, 0x023f, 0x023f, 0x021f, 0x021f, 0x021f, 0x021f, 0x021f, 0x037e, 0x06dc, 0x07fd, 0x07fd, 0x07fe, 0x07ff, 0x07ff, 0x07ff, 0x5c78, 0xb8d1, 0xb8d1, 0xb8d1, 0xb0d1, 0xb8d1, 0xb0f1, 0x7911, 0x3911, 0x3911, 0x30f0, 0x30f0, 0x28ef, 0x28cf, 0x28cf, 0x20ce, 0x20ce, 0x20ce, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x18ae, 0x18ae, 0x18ae, 0x011a, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, + 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x011a, 0x0119, 0x0119, 0x011a, 0x0119, 0x00f9, 0x18af, 0x18ae, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x08d5, 0x0119, 0x0119, 0x0119, 0x0119, 0x011a, 0x10d2, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18d0, 0x0118, 0x0119, 0x0119, 0x0119, 0x011a, 0x011a, 0x0119, 0x011a, 0x00f7, 0x18ce, 0x18ad, 0x10d0, 0x0119, 0x0119, 0x011a, 0x00f9, 0x0119, 0x0119, 0x0119, 0x011a, 0x0117, 0x18ae, 0x18ad, 0x10d0, 0x00f9, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x00f7, 0x18ce, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x20ae, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18cd, 0x8252, 0xd395, 0xd395, 0xd396, 0xd4b8, 0xd7bf, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xc972, 0xc952, 0xc912, 0xc8d1, 0xc0b1, 0xc0b1, 0xb8d1, 0xb8d1, 0xb8d1, 0xb0f1, 0xd63c, 0xdfff, 0xdfff, 0xd7ff, 0xdfff, 0xdfff, 0xd7ff, 0xdfff, 0xdfff, 0xd7ff, 0xd7ff, 0xdfff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xdfff, 0xd7ff, 0xdfff, 0xd539, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd396, 0xd396, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xc9d3, 0x325c, 0x027f, 0x025f, 0x025f, 0x025f, 0x023f, 0x025f, 0x025f, 0x023f, 0x023f, 0x023f, 0x029f, 0x067c, 0x07fc, 0x07fc, 0x07fe, 0x07ff, 0x07ff, 0x07ff, 0x5c78, 0xb8d1, 0xb0d1, 0xb8d1, 0xb0d1, 0xb0d1, 0xb8d1, 0x70f1, 0x3911, 0x3911, 0x30f0, 0x30f0, 0x28ef, 0x28cf, 0x28cf, 0x20ce, 0x20ce, 0x20ce, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x00f9, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, + 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x011a, 0x0119, 0x0119, 0x011a, 0x011a, 0x0119, 0x0119, 0x10d0, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x08f5, 0x0119, 0x0119, 0x011a, 0x011a, 0x0118, 0x10d1, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18d0, 0x0119, 0x0119, 0x0119, 0x0119, 0x011a, 0x011a, 0x0119, 0x011a, 0x00f7, 0x18ae, 0x18ad, 0x10d0, 0x0118, 0x011a, 0x0119, 0x0119, 0x011a, 0x0119, 0x0119, 0x0119, 0x00f7, 0x18ae, 0x18ad, 0x10cf, 0x0119, 0x0119, 0x011a, 0x011a, 0x0119, 0x0119, 0x0119, 0x011a, 0x00f7, 0x18ce, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x496f, 0xd395, 0xd395, 0xd395, 0xd457, 0xd7bf, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7df, 0xd7ff, 0xcf3e, 0xc67c, 0xc53a, 0xc951, 0xc912, 0xc0d1, 0xc0b1, 0xc0b1, 0xb8d1, 0xb8d1, 0xb0d1, 0xb0f1, 0xbb97, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd65b, 0xd395, 0xd396, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd396, 0xd395, 0xd395, 0xd396, 0xd395, 0xc9b3, 0x327c, 0x029f, 0x029f, 0x029f, 0x029f, 0x027f, 0x027f, 0x027f, 0x027f, 0x027f, 0x025f, 0x027f, 0x05bc, 0x07db, 0x07fc, 0x07fd, 0x07ff, 0x07ff, 0x07ff, 0x5c78, 0xb8d1, 0xb0d1, 0xb8d1, 0xb8d1, 0xb8d1, 0xb0d1, 0x58f1, 0x3911, 0x3111, 0x30f0, 0x28f0, 0x28f0, 0x28cf, 0x28ce, 0x20ce, 0x20ce, 0x20ce, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ae, 0x18ad, 0x20ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x20ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, + 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x011a, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x10d1, 0x18ad, 0x18ae, 0x20ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x20ad, 0x08f5, 0x0119, 0x011a, 0x0119, 0x0119, 0x00f9, 0x18b0, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18d0, 0x0119, 0x0119, 0x011a, 0x0119, 0x0119, 0x011a, 0x0119, 0x0119, 0x00f7, 0x18ae, 0x18ad, 0x18cf, 0x0119, 0x0119, 0x0119, 0x0119, 0x011a, 0x0119, 0x0119, 0x011a, 0x0117, 0x18ce, 0x18ae, 0x18d0, 0x0118, 0x00f9, 0x011a, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x00f7, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ae, 0xa2d3, 0xd395, 0xd395, 0xd3d6, 0xd75e, 0xcfff, 0xcfff, 0xd7ff, 0xd7ff, 0xcfff, 0xcfff, 0xd7ff, 0xd7ff, 0xd7df, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7df, 0xd7ff, 0xd7ff, 0xcfdf, 0xcfff, 0xd7ff, 0xd7df, 0xd7ff, 0xcfff, 0xd7ff, 0xd7df, 0xd7ff, 0xcfff, 0xd7df, 0xcfff, 0xcfff, 0xd7ff, 0xd7ff, 0xcfff, 0xd7ff, 0xcfff, 0xd7ff, 0xd7df, 0xd7df, 0xcfff, 0xd7df, 0xcfff, 0xd7ff, 0xd7ff, 0xcfff, 0xd7ff, 0xcfff, 0xd7ff, 0xd7df, 0xd7ff, 0xd7ff, 0xcfff, 0xcfff, 0xd7ff, 0xcfff, 0xd7df, 0xcfff, 0xd7ff, 0xd7df, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xcfff, 0xd7ff, 0xcfdf, 0xd7df, 0xcfdf, 0xcfff, 0xd7df, 0xacd8, 0x8191, 0x9151, 0x9931, 0x9931, 0x9931, 0x9911, 0x9931, 0x9931, 0x9931, 0xa8f1, 0xa972, 0xd77e, 0xd7ff, 0xd7ff, 0xd7df, 0xd7df, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7df, 0xcfff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7df, 0xd7df, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7ff, 0xd7df, 0xd7ff, 0xd7df, 0xd7ff, 0xd7df, 0xd65c, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xc193, 0x0a7f, 0x02ff, 0x02df, 0x02bf, 0x02bf, 0x02bf, 0x029f, 0x029f, 0x029f, 0x027f, 0x029f, 0x027f, 0x04dd, 0x07bb, 0x07fb, 0x07fd, 0x07ff, 0x07ff, 0x07ff, 0x3dbb, 0xb8d1, 0xb8d1, 0xb0f1, 0xb0d1, 0xb0d1, 0xb0d1, 0x5911, 0x3911, 0x30f0, 0x30f0, 0x28f0, 0x28cf, 0x28cf, 0x20cf, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ae, 0x20ae, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18cd, 0x18ae, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x08f5, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x10d2, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ae, 0x20ad, 0x08f5, 0x011a, 0x0119, 0x0119, 0x011a, 0x0119, 0x18d0, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x10d0, 0x00f8, 0x011a, 0x0119, 0x0119, 0x011a, 0x0119, 0x0119, 0x0119, 0x00f7, 0x18ae, 0x20ad, 0x10d0, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x00f9, 0x0119, 0x011a, 0x00f7, 0x18ae, 0x18ad, 0x18af, 0x0118, 0x0119, 0x0119, 0x011a, 0x0119, 0x0119, 0x0119, 0x011a, 0x0117, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x310e, 0xd395, 0xd375, 0xd375, 0xd5ba, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xc77e, 0xbe5b, 0xbe3c, 0xb57a, 0xacb8, 0xbdbb, 0xc63c, 0xbe3b, 0xc71e, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xc77e, 0xbe5c, 0xb5db, 0xacb8, 0xac98, 0xbd5a, 0xbe3c, 0xc61c, 0xc69d, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xacb9, 0x8191, 0x9151, 0x9911, 0x9931, 0x9931, 0x9931, 0x9931, 0x9911, 0xa111, 0xa911, 0xbc78, 0xcfdf, 0xcfdf, 0xcfdf, 0xd7df, 0xcfdf, 0xcf5e, 0xbe5c, 0xbe5c, 0xc63c, 0xc61c, 0xcefd, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfff, 0xcfdf, 0xd63b, 0xd375, 0xd395, 0xd375, 0xd395, 0xd375, 0xd375, 0xd375, 0xd375, 0xd375, 0xd375, 0xd375, 0xd375, 0xd375, 0xd375, 0xd375, 0xd375, 0xd375, 0xd375, 0xd375, 0xd375, 0xd375, 0xd375, 0xd375, 0xd375, 0xd395, 0xd375, 0xd375, 0xd375, 0xd395, 0x089f, 0x011f, 0x031f, 0x02ff, 0x02ff, 0x02df, 0x02df, 0x02df, 0x02bf, 0x02bf, 0x02bf, 0x02bf, 0x02bf, 0x03fd, 0x079a, 0x07fa, 0x07fc, 0x07fe, 0x07ff, 0x07ff, 0x2e5c, 0xb0d1, 0xb8d1, 0xb8d1, 0xb0f1, 0xb0d1, 0xb8d1, 0x5912, 0x3911, 0x38f1, 0x30f0, 0x28f0, 0x28ef, 0x28cf, 0x28cf, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ae, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18cd, 0x08f5, 0x011a, 0x0119, 0x011a, 0x0119, 0x0119, 0x10d2, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x08f5, 0x0119, 0x011a, 0x0119, 0x0119, 0x0119, 0x10d0, 0x20ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x00f6, 0x0119, 0x0119, 0x00f9, 0x0119, 0x0119, 0x0119, 0x0119, 0x00f7, 0x18ae, 0x18ad, 0x18ae, 0x0117, 0x011a, 0x00f9, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0117, 0x18ce, 0x18ad, 0x18ad, 0x0118, 0x011a, 0x0119, 0x0119, 0x011a, 0x0119, 0x0119, 0x0119, 0x0117, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x79f1, 0xd355, 0xd355, 0xd355, 0xcf7e, 0xc7df, 0xcfbf, 0xcfdf, 0xc7df, 0xc7df, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfbf, 0xcfdf, 0xcfdf, 0xcfbf, 0xbefd, 0xacb8, 0x8a52, 0x9151, 0x9131, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9911, 0xa192, 0xab96, 0xbe7d, 0xcfdf, 0xc7df, 0xcfbf, 0xc7df, 0xcfdf, 0xcfbf, 0xc75e, 0xad19, 0x92b4, 0x8971, 0x9151, 0x9931, 0x9931, 0x9911, 0x9911, 0xa111, 0x9931, 0xa111, 0x9911, 0xab36, 0xbd5a, 0xc75e, 0xcfdf, 0xc7bf, 0xc7bf, 0xcfdf, 0xc7df, 0xc7bf, 0xc7df, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xcfdf, 0xc7df, 0xcfbf, 0xc7df, 0xc7bf, 0xcfbf, 0xc7df, 0xa4b8, 0x8191, 0x9151, 0x9931, 0x9911, 0x9931, 0x9931, 0x9911, 0x9931, 0x9912, 0xbe3b, 0xcfbf, 0xcfdf, 0xcfbf, 0xcfdf, 0xcfdf, 0xb5da, 0x8a12, 0x8971, 0x9931, 0x9931, 0xa111, 0x9931, 0xab35, 0xc75e, 0xcfbf, 0xcfdf, 0xc7df, 0xc7df, 0xcfdf, 0xcfdf, 0xcfbf, 0xc7df, 0xc7df, 0xcfdf, 0xcfdf, 0xcfdf, 0xc7df, 0xcfdf, 0xcfdf, 0xcfdf, 0xce1b, 0xd355, 0xd355, 0xd355, 0xd355, 0xd355, 0xd355, 0xd355, 0xd355, 0xd355, 0xd355, 0xd355, 0xd355, 0xd355, 0xd355, 0xd355, 0xd355, 0xd355, 0xd355, 0xd355, 0xd355, 0xd355, 0xd355, 0xd355, 0xd355, 0xd355, 0xd355, 0xd355, 0xd355, 0x007f, 0x009e, 0x023f, 0x033f, 0x031f, 0x031f, 0x031f, 0x02ff, 0x031f, 0x02ff, 0x02df, 0x02df, 0x02df, 0x039e, 0x075a, 0x07f9, 0x07fb, 0x07fd, 0x07ff, 0x07ff, 0x2e3c, 0xb8d2, 0xb8d1, 0xb0d1, 0xb8d1, 0xb0d1, 0xb0d1, 0x4911, 0x3911, 0x38f0, 0x30f0, 0x28f0, 0x28ef, 0x28cf, 0x28ce, 0x20ce, 0x20ce, 0x20ce, 0x20ae, 0x20ae, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ae, 0x20ad, 0x20ad, 0x08f5, 0x00f9, 0x00fa, 0x0119, 0x011a, 0x0119, 0x10d2, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ae, 0x08f5, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x10d0, 0x18ae, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x011a, 0x00f9, 0x0119, 0x0119, 0x011a, 0x00f7, 0x18ce, 0x18ad, 0x18ad, 0x18cd, 0x0119, 0x00f9, 0x011a, 0x0119, 0x0119, 0x0119, 0x011a, 0x00f7, 0x18ce, 0x18ad, 0x18ae, 0x18ad, 0x0119, 0x0119, 0x0119, 0x011a, 0x0119, 0x0119, 0x011a, 0x00f7, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0xa293, 0xd335, 0xd335, 0xcc98, 0xc7bf, 0xc7be, 0xc7bf, 0xc7bf, 0xc7bf, 0xc7bf, 0xc7bf, 0xc7bf, 0xc7bf, 0xc7bf, 0xc7bf, 0xc7bf, 0xc75e, 0xa4b8, 0x8191, 0x9151, 0x9911, 0xa131, 0xa111, 0xa111, 0x9931, 0xa111, 0xa112, 0xa111, 0xa111, 0xa111, 0xa111, 0xa111, 0xa111, 0xab35, 0xbefe, 0xc7bf, 0xc7be, 0xc7bf, 0xb5db, 0x89f1, 0x8971, 0x9931, 0x9911, 0xa111, 0xa111, 0xa111, 0xa111, 0xa111, 0xa132, 0x9911, 0xa111, 0xa111, 0xa111, 0xa111, 0xa172, 0xbd3a, 0xc7be, 0xc7bf, 0xc7bf, 0xc7bf, 0xc7be, 0xc79f, 0xc7bf, 0xc7bf, 0xc7bf, 0xc7bf, 0xc7bf, 0xc7bf, 0xc7bf, 0xc7bf, 0xc7bf, 0xc7bf, 0xc7bf, 0xc7bf, 0xc7bf, 0xc7bf, 0xc7bf, 0xc7bf, 0xc7bf, 0xc7bf, 0xc7bf, 0xc7bf, 0xc7bf, 0xc7bf, 0xc7bf, 0xc7bf, 0xc7bf, 0xc7bf, 0xc7bf, 0xc7bf, 0xc7bf, 0xc7bf, 0xc7bf, 0xc7bf, 0xc7bf, 0xc7bf, 0xc7bf, 0xc7bf, 0xc7bf, 0xc7bf, 0xc7bf, 0xc7bf, 0xc7bf, 0xc7bf, 0xc7bf, 0xc7bf, 0xc7bf, 0xc7bf, 0xc7bf, 0xc7bf, 0xc7bf, 0xc7bf, 0xc7bf, 0xc7bf, 0xc7bf, 0xc7bf, 0xc7bf, 0xc7bf, 0xc79f, 0xc7bf, 0xc7bf, 0xc7bf, 0xc7bf, 0xc7bf, 0xc7bf, 0xac98, 0x8191, 0x9151, 0x9931, 0xa111, 0xa131, 0xa111, 0xa131, 0xa111, 0x9931, 0xbe1b, 0xc79f, 0xc7bf, 0xc7bf, 0xc7bf, 0xbefd, 0x89f2, 0x8991, 0x9931, 0xa112, 0xa131, 0xa111, 0xa111, 0xa111, 0xab97, 0xc7bf, 0xc7bf, 0xc7be, 0xc7bf, 0xc7bf, 0xc7bf, 0xc7bf, 0xc7bf, 0xc7bf, 0xc7bf, 0xc7bf, 0xc7bf, 0xc7bf, 0xc7bf, 0xc7bf, 0xc7bf, 0xc7bf, 0xc6dd, 0xd375, 0xd335, 0xd335, 0xd335, 0xd335, 0xd335, 0xd335, 0xd335, 0xd335, 0xd335, 0xd335, 0xd335, 0xd335, 0xd335, 0xd335, 0xd335, 0xd335, 0xd335, 0xd335, 0xd335, 0xd335, 0xd335, 0xd335, 0xd335, 0xd334, 0xd335, 0xd335, 0x009f, 0x009f, 0x013f, 0x033f, 0x037f, 0x035f, 0x033f, 0x031f, 0x031f, 0x031f, 0x031f, 0x02ff, 0x02ff, 0x033f, 0x06f9, 0x07f9, 0x07fb, 0x07fd, 0x07ff, 0x07ff, 0x2e3c, 0xb8d2, 0xb0f1, 0xb8d1, 0xb0d1, 0xb0f1, 0xb0d1, 0x3911, 0x3911, 0x38f0, 0x30f0, 0x3110, 0x28cf, 0x28cf, 0x20cf, 0x20ce, 0x20ce, 0x20ce, 0x20ae, 0x20ad, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18b0, 0x10f2, 0x10d3, 0x08d3, 0x08f3, 0x10f3, 0x18b0, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ae, 0x18cd, 0x08f5, 0x0119, 0x00f9, 0x011a, 0x0119, 0x011a, 0x10d2, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x08f4, 0x0119, 0x0119, 0x011a, 0x011a, 0x00f9, 0x10cf, 0x18ad, 0x18ad, 0x18ae, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x011a, 0x0119, 0x0119, 0x0119, 0x00f7, 0x18ae, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x011a, 0x0119, 0x00f9, 0x011a, 0x011a, 0x00f7, 0x18ce, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x00f9, 0x0119, 0x0119, 0x0139, 0x0119, 0x011a, 0x00f7, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20cd, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0xd315, 0xd315, 0xd314, 0xc5fb, 0xc79f, 0xc79e, 0xc7bf, 0xc7bf, 0xc79e, 0xc79e, 0xc7bf, 0xc79f, 0xbf9e, 0xbfbf, 0xbfbe, 0xb67c, 0x8a53, 0x8971, 0xa131, 0xa112, 0xa111, 0xa111, 0xa111, 0xa111, 0xa111, 0xa111, 0xa111, 0xa111, 0xa111, 0xa111, 0xa111, 0xa112, 0xa111, 0xa111, 0xa172, 0xb539, 0xbf9f, 0x9bf6, 0x8191, 0x9151, 0xa111, 0xa111, 0xa111, 0xa111, 0xa111, 0xa111, 0xa111, 0xa111, 0xa111, 0xa111, 0xa111, 0xa111, 0xa111, 0xa112, 0xa111, 0xa111, 0xab15, 0xbf3d, 0xc79f, 0xc7be, 0xc79f, 0xc79f, 0xc79e, 0xc79e, 0xc79e, 0xc79e, 0xc79e, 0xc79e, 0xc79e, 0xc79e, 0xc79e, 0xc79e, 0xc79e, 0xc79e, 0xc79e, 0xc79e, 0xc79e, 0xc79e, 0xc79e, 0xc79e, 0xc79e, 0xc79e, 0xc79e, 0xc79e, 0xc79e, 0xc79e, 0xc79e, 0xc79e, 0xc79e, 0xc79e, 0xc79e, 0xc79e, 0xc79e, 0xc79e, 0xc79e, 0xc79e, 0xc79e, 0xc79e, 0xc79e, 0xc79e, 0xc79e, 0xc79e, 0xc79e, 0xc79e, 0xc79e, 0xc79e, 0xc79e, 0xc79e, 0xc79e, 0xc79e, 0xc79e, 0xc79e, 0xc79e, 0xc79e, 0xc79e, 0xc79e, 0xc79e, 0xc79e, 0xc79f, 0xc79e, 0xc79f, 0xc79e, 0xc79e, 0xc7bf, 0xc79f, 0xa4b8, 0x8191, 0x9151, 0xa111, 0xa111, 0xa111, 0xa111, 0xa111, 0xa112, 0xa111, 0xbdfb, 0xc79f, 0xc79e, 0xc7be, 0xc79f, 0xacf9, 0x8191, 0x9171, 0xa111, 0xa111, 0xa111, 0xa112, 0xa111, 0xa131, 0xa111, 0xbf3e, 0xbfbf, 0xc79e, 0xc79e, 0xc79e, 0xc7bf, 0xc79e, 0xc79e, 0xc79e, 0xbfbf, 0xc79e, 0xc79e, 0xc79e, 0xbf9e, 0xc79f, 0xc79e, 0xbfbe, 0xc79e, 0xc6bd, 0xd355, 0xd2f5, 0xd315, 0xcb14, 0xd314, 0xd314, 0xd314, 0xd314, 0xd314, 0xd314, 0xd314, 0xd314, 0xd314, 0xd314, 0xd314, 0xd314, 0xd314, 0xd314, 0xd314, 0xd314, 0xd314, 0xd314, 0xd315, 0xd315, 0xd315, 0xd314, 0x007f, 0x007f, 0x00ff, 0x027f, 0x039f, 0x039f, 0x037f, 0x231d, 0x5259, 0x5a3a, 0x033f, 0x033f, 0x031f, 0x031f, 0x0699, 0x07f8, 0x07fa, 0x07fd, 0x07ff, 0x07ff, 0x363c, 0xb0d1, 0xb0f1, 0xb0d1, 0xb8d1, 0xb0d1, 0xb0d1, 0x4112, 0x38f1, 0x3911, 0x30f0, 0x30ef, 0x28ef, 0x28cf, 0x28cf, 0x20ce, 0x20ce, 0x20ce, 0x20ae, 0x20ad, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x10d1, 0x08f7, 0x011a, 0x011a, 0x0119, 0x011a, 0x0119, 0x0119, 0x0119, 0x00f7, 0x10d1, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x10f2, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x00f9, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x00f9, 0x0119, 0x0118, 0x18b0, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x08f4, 0x0119, 0x0119, 0x0119, 0x011a, 0x00f7, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0915, 0x0119, 0x0119, 0x0119, 0x0119, 0x00f7, 0x18ae, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x20ad, 0x0915, 0x00f9, 0x0119, 0x0119, 0x0119, 0x00f7, 0x18ce, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20cd, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0xd2f4, 0xcaf4, 0xd2f4, 0xc65c, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf7f, 0xb67c, 0x8a12, 0x8971, 0xa111, 0xa111, 0xa911, 0xa111, 0xa911, 0xa111, 0xa111, 0xa111, 0xa911, 0xa911, 0xa111, 0xa111, 0xa111, 0xa911, 0xa111, 0xa111, 0xa111, 0xa912, 0xa911, 0xa1f3, 0x8191, 0x9931, 0xa111, 0xa111, 0xa912, 0xa111, 0xa111, 0xa111, 0xa111, 0xa111, 0xa911, 0xa911, 0xa911, 0xa911, 0xa911, 0xa111, 0xa111, 0xa111, 0xa112, 0xa911, 0xaa54, 0xbf1d, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xb79e, 0xbf9f, 0xa498, 0x8191, 0x9951, 0xa911, 0xa111, 0xa111, 0xa111, 0xa111, 0xa111, 0xa911, 0xb5fb, 0xbf9e, 0xbf9f, 0xbf9e, 0xbf9f, 0xa498, 0x8191, 0x9951, 0xa111, 0xa111, 0xa111, 0xa111, 0xa112, 0xa111, 0xa911, 0xb5fb, 0xbf7e, 0xbf9e, 0xbf9e, 0xbf9f, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbf9e, 0xbebd, 0xd335, 0xcaf4, 0xd2f4, 0xd2f4, 0xd2f4, 0xd2f4, 0xd2f4, 0xd2f4, 0xd2f4, 0xd2f4, 0xd2f4, 0xd2f4, 0xd2f4, 0xd2f4, 0xd2f4, 0xd2f4, 0xd2f4, 0xd2f4, 0xd2f4, 0xd2f4, 0xd2f4, 0xcaf4, 0xd2f4, 0xd2f5, 0xcaf4, 0x007f, 0x007f, 0x00bf, 0x021f, 0x2abd, 0x7a36, 0xb953, 0xc112, 0xc911, 0xc912, 0x0b3f, 0x035f, 0x035f, 0x033f, 0x05fa, 0x07f7, 0x07f9, 0x07fc, 0x07fe, 0x07ff, 0x2e3c, 0xb0d1, 0xb0f1, 0xb0f1, 0xb0d1, 0xb0d1, 0xa0f1, 0x68f1, 0x4111, 0x30f0, 0x30f0, 0x28ef, 0x28ef, 0x28cf, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ae, 0x18ad, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x08f5, 0x011a, 0x0119, 0x0119, 0x0118, 0x08f7, 0x08f6, 0x00f7, 0x0118, 0x0119, 0x0119, 0x0119, 0x08f5, 0x18ae, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ae, 0x10d2, 0x00f9, 0x011a, 0x011a, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x011a, 0x0119, 0x0119, 0x10cf, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x08d4, 0x0118, 0x0119, 0x08f6, 0x18ce, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ae, 0x08f5, 0x0119, 0x011a, 0x08f5, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ae, 0x18ae, 0x08f5, 0x0119, 0x0119, 0x08f5, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0xd2d4, 0xd2d4, 0xd2d4, 0xbe5c, 0xb77e, 0xb79e, 0xb77e, 0xbf7e, 0xb77e, 0xb77e, 0xb77e, 0xb79e, 0xbf7e, 0xae7b, 0x89f2, 0x8971, 0xa111, 0xa8f1, 0xa911, 0xa8f1, 0xa911, 0xa911, 0xa911, 0xa911, 0xa911, 0xa8f1, 0xa911, 0xa911, 0xa911, 0xa8f1, 0xa911, 0xa8f1, 0xa911, 0xa911, 0xa912, 0xa911, 0xa911, 0xa111, 0xa911, 0xa8f1, 0xa911, 0xa8f1, 0xa111, 0xa911, 0xa8f1, 0xa8f1, 0xa911, 0xa911, 0xa8f1, 0xa911, 0xa8f1, 0xa8f1, 0xa912, 0xa911, 0xa911, 0xa911, 0xa8f1, 0xa111, 0xaa34, 0xb71e, 0xbf7e, 0xbf7e, 0xbf7e, 0xbf7e, 0xbf7e, 0xbf7e, 0xbf7e, 0xbf7e, 0xbf7e, 0xbf7e, 0xbf7e, 0xbf7e, 0xbf7e, 0xbf7e, 0xbf7e, 0xbf7e, 0xbf7e, 0xbf7e, 0xbf7e, 0xbf7e, 0xbf7e, 0xbf7e, 0xbf7e, 0xbf7e, 0xbf7e, 0xbf7e, 0xbf7e, 0xbf7e, 0xbf7e, 0xbf7e, 0xbf7e, 0xbf7e, 0xbf7e, 0xbf7e, 0xbf7e, 0xbf7e, 0xbf7e, 0xbf7e, 0xbf7e, 0xbf7e, 0xbf7e, 0xbf7e, 0xbf7e, 0xbf7e, 0xbf7e, 0xbf7e, 0xbf7e, 0xbf7e, 0xbf7e, 0xbf7e, 0xbf7e, 0xbf7e, 0xbf7e, 0xbf7e, 0xbf7e, 0xbf7e, 0xbf7e, 0xbf7e, 0xb77e, 0xb77e, 0xbf7e, 0xb77e, 0xb77e, 0xbf7f, 0xb77e, 0x9c97, 0x8191, 0x9951, 0xa8f1, 0xa8f1, 0xa8f1, 0xa8f1, 0xa8f1, 0xa911, 0xa8f1, 0xb5db, 0xbf7e, 0xb77e, 0xbf7e, 0xbf7e, 0xa478, 0x8191, 0x9951, 0xa911, 0xa8f1, 0xa8f1, 0xa911, 0xa911, 0xa8f1, 0xa911, 0xb5db, 0xb77f, 0xb77e, 0xbf7e, 0xbf7e, 0xb77e, 0xbf7e, 0xbf7e, 0xbf7e, 0xb77e, 0xb77e, 0xbf7e, 0xb77e, 0xbf7e, 0xb77e, 0xbf7e, 0xbf7e, 0xb77e, 0xb77e, 0xbf7e, 0xbe9d, 0xcb75, 0xd2d4, 0xd2d4, 0xd2d4, 0xd2d4, 0xd2d4, 0xd2d4, 0xd2d4, 0xd2d4, 0xd2d4, 0xd2d4, 0xd2d4, 0xd2d4, 0xd2d4, 0xd2d4, 0xd2d4, 0xd2d4, 0xd2d4, 0xd2d4, 0xd2d4, 0xd2d4, 0xd2d4, 0xd2d4, 0xd2d5, 0x007f, 0x007f, 0x30bb, 0x9955, 0xc931, 0xc932, 0xc932, 0xc912, 0xc0f2, 0xc8f2, 0x32fc, 0x037f, 0x037f, 0x037f, 0x059b, 0x07f7, 0x07f9, 0x07fc, 0x07fe, 0x07ff, 0x2e3c, 0xb8d1, 0xb0d1, 0xb0d2, 0xb0d1, 0xb0f1, 0x98f1, 0xb0f1, 0x88f1, 0x3110, 0x30f0, 0x30f0, 0x28cf, 0x28cf, 0x28ce, 0x20ce, 0x20ce, 0x20ce, 0x20ae, 0x18ad, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x00f7, 0x011a, 0x0119, 0x00f7, 0x10d1, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x10d1, 0x00f7, 0x011a, 0x0119, 0x00f7, 0x18ae, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x10d2, 0x0119, 0x0119, 0x00f9, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x011a, 0x011a, 0x011a, 0x0119, 0x00f8, 0x10cf, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0xd2b4, 0xd2b4, 0xd2b4, 0xb77e, 0xb77e, 0xb77e, 0xb77e, 0xb77e, 0xb77e, 0xb77e, 0xb77e, 0xb77e, 0xb71d, 0x8a53, 0x8191, 0xa111, 0xa8f1, 0xb0f1, 0xa911, 0xa8f1, 0xa8f1, 0xa8f1, 0xa8f1, 0xa8f1, 0xa8f1, 0xa8f1, 0xa8f1, 0xa8f1, 0xa8f1, 0xa8f1, 0xa8f1, 0xa8f1, 0xa8f1, 0xa8f1, 0xa8f1, 0xa8f1, 0xa8f1, 0xa8f1, 0xa8f1, 0xa8f1, 0xa8f1, 0xa8f1, 0xa8f2, 0xa8f1, 0xb0f1, 0xa8f1, 0xa8f1, 0xa8f1, 0xa8f1, 0xa8f1, 0xa8f1, 0xa8f1, 0xa8f1, 0xa8f1, 0xa8f1, 0xa8f1, 0xa8f1, 0xa8f1, 0xa8f1, 0xb2f5, 0xb77e, 0xb77e, 0xb77e, 0xb77e, 0xb77e, 0xb75e, 0xb77e, 0xb77e, 0xb77e, 0xb75e, 0xb75e, 0xb77e, 0xb75e, 0xb77e, 0xb77e, 0xb75e, 0xb77e, 0xb77e, 0xb77e, 0xb77e, 0xb77e, 0xb77e, 0xb77e, 0xb77e, 0xb77e, 0xb77e, 0xb77e, 0xb77e, 0xb77e, 0xb75e, 0xb75e, 0xb77e, 0xb77e, 0xb77e, 0xb77e, 0xb77e, 0xb77e, 0xb77e, 0xb77e, 0xb77e, 0xb77e, 0xb77e, 0xb77e, 0xb77e, 0xb77e, 0xb77e, 0xb77e, 0xb77e, 0xb77e, 0xb77e, 0xb77e, 0xb77e, 0xb75e, 0xb77e, 0xb77e, 0xb75e, 0xb77e, 0xb75e, 0xb77e, 0xb77e, 0xb77e, 0xb77e, 0xb77e, 0xb77e, 0xb77e, 0x9c78, 0x8191, 0x9951, 0xa8f1, 0xa8f1, 0xa8f1, 0xa8f1, 0xa8f1, 0xa8f1, 0xa8f1, 0xb5db, 0xb77e, 0xb77e, 0xb77e, 0xb77e, 0x9c77, 0x8191, 0x9151, 0xa8f1, 0xa8f1, 0xa8f1, 0xa8f1, 0xa8f1, 0xa8f1, 0xa8f1, 0xb5db, 0xb77e, 0xb77e, 0xb77e, 0xb75e, 0xb77e, 0xb75e, 0xb77e, 0xb77e, 0xb77e, 0xb77e, 0xb77e, 0xb77e, 0xb77e, 0xb75e, 0xb77e, 0xb77e, 0xb77e, 0xb77e, 0xb77e, 0xb75e, 0xb71d, 0xcb96, 0xd2b4, 0xd2b4, 0xcab4, 0xd2b4, 0xcab4, 0xd2b4, 0xcab4, 0xd2b4, 0xcab4, 0xd2b4, 0xd2b4, 0xd2b4, 0xd2b4, 0xd2b4, 0xd2b4, 0xd2b4, 0xd2b4, 0xca94, 0xd2b4, 0xd2b4, 0xd2b4, 0xcab4, 0x087e, 0x70f8, 0xc952, 0xc932, 0xc912, 0xc932, 0xc111, 0xc8f1, 0xc8f1, 0xc8d1, 0x331c, 0x03bf, 0x039f, 0x039f, 0x051b, 0x07d6, 0x07f7, 0x07fb, 0x07fe, 0x07ff, 0x2e3c, 0xb8d1, 0xb0d1, 0xb0d1, 0xb0d1, 0xb0d1, 0xa0f1, 0xb0f1, 0xb0d1, 0x50f0, 0x30f0, 0x30ef, 0x28cf, 0x28cf, 0x20cf, 0x20ce, 0x20ce, 0x20ae, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0116, 0x0119, 0x0119, 0x08d5, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x10d3, 0x00fa, 0x0119, 0x08f6, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ae, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x20ae, 0x10d2, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x00f9, 0x0119, 0x011a, 0x0119, 0x0119, 0x00f9, 0x18d0, 0x188d, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0xd294, 0xd294, 0xca94, 0xaf5e, 0xaf5e, 0xaf5e, 0xaf5e, 0xaf5e, 0xb75e, 0xaf5e, 0xaf5e, 0xb75e, 0x9416, 0x8991, 0x9951, 0xb0f1, 0xa8f1, 0xb0f1, 0xa8f1, 0xb0f1, 0xa8f1, 0xb0f1, 0xb0f1, 0xb0f1, 0xa8f1, 0xb0f1, 0xb0f1, 0xb0f1, 0xb0f1, 0xb0f1, 0xb0f1, 0xb0f1, 0xb0f1, 0xb0f1, 0xb0f1, 0xa8f1, 0xa8f1, 0xb0f1, 0xa8f1, 0xb0f1, 0xb0f1, 0xb0f1, 0xb0d1, 0xb0f1, 0xb0f1, 0xb0f2, 0xa8f1, 0xb0f1, 0xb0f1, 0xb0d1, 0xb0f1, 0xb0f2, 0xa8f1, 0xb0f2, 0xb0f1, 0xb0f1, 0xb0f1, 0xa8f1, 0xb0f1, 0xb0f1, 0xacf9, 0xaf5e, 0xaf5e, 0xb75e, 0xaf5e, 0xaf5e, 0xaf5e, 0xaf5e, 0xaf5e, 0xaf5e, 0xaf7e, 0xaf5e, 0xaf5e, 0xaf5e, 0xb75e, 0xb75e, 0xb75e, 0xaf5e, 0xb75e, 0xaf5e, 0xb75e, 0xaf5e, 0xaf5e, 0xaf5e, 0xaf5e, 0xb75e, 0xb75e, 0xb75e, 0xaf5e, 0xaf5e, 0xaf5e, 0xb75e, 0xb75e, 0xaf5e, 0xaf5e, 0xaf5e, 0xaf5e, 0xaf5e, 0xaf5e, 0xaf5e, 0xaf5e, 0xaf5e, 0xaf5e, 0xaf5e, 0xb75e, 0xaf5e, 0xaf5e, 0xb75e, 0xaf5e, 0xaf5e, 0xaf5e, 0xb75e, 0xb75e, 0xaf5e, 0xaf5e, 0xaf5e, 0xb75e, 0xaf5e, 0xaf5e, 0xaf5e, 0xaf5e, 0xaf5d, 0xb75e, 0xaf5e, 0xaf5e, 0x9c77, 0x8191, 0x9951, 0xb0f1, 0xb0f1, 0xb0f1, 0xb0f1, 0xb0f1, 0xb0f1, 0xb0f1, 0xadbb, 0xb75e, 0xb75e, 0xb75e, 0xb75e, 0x9c78, 0x8991, 0x9951, 0xb0f1, 0xb0f1, 0xb0f1, 0xb0f1, 0xb0f1, 0xb0f1, 0xb0f1, 0xb5bb, 0xb75e, 0xb75e, 0xaf5e, 0xaf5e, 0xaf5e, 0xaf5e, 0xaf5e, 0xb75e, 0xaf5e, 0xaf5e, 0xb75e, 0xb75e, 0xb75e, 0xaf5e, 0xb75e, 0xb75e, 0xb75e, 0xaf5e, 0xaf5e, 0xb75e, 0xaf5e, 0xaf1d, 0xcb75, 0xca93, 0xd294, 0xca74, 0xca94, 0xca74, 0xd274, 0xca74, 0xd294, 0xca94, 0xca94, 0xca94, 0xca94, 0xca94, 0xca94, 0xca94, 0xca94, 0xd294, 0xca93, 0xca94, 0xd293, 0xca74, 0x9915, 0xc932, 0xc932, 0xc932, 0xc912, 0xc111, 0xc8f2, 0xc0f2, 0xc8d1, 0xc8d1, 0x333c, 0x03ff, 0x03df, 0x03bf, 0x04dc, 0x07d6, 0x07f7, 0x07fb, 0x07fe, 0x07ff, 0x2e3c, 0xb0d1, 0xb0d1, 0xb0f1, 0xb0f1, 0xb0f1, 0xa8f1, 0xb0f1, 0xb0f1, 0x90f1, 0x30f0, 0x28f0, 0x28cf, 0x28cf, 0x20cf, 0x20ce, 0x20ce, 0x20ae, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18cd, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x10d2, 0x011a, 0x0119, 0x08f3, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x08d3, 0x0119, 0x0119, 0x10d1, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0xd274, 0xd274, 0xca53, 0xaf5e, 0xaf3e, 0xaf5e, 0xaf3e, 0xaf3d, 0xaf5d, 0xaf3d, 0xaf3e, 0xa69c, 0x8191, 0x8191, 0xb0f1, 0xb0f1, 0xb0f1, 0xb0d1, 0xb0f2, 0xb0d1, 0xb0d1, 0xb0f2, 0xb0f1, 0xb0f1, 0xaa13, 0xb418, 0xa438, 0x9ab4, 0x9931, 0xa8f1, 0xb0f1, 0xb0f2, 0xb0f1, 0xb0d1, 0xb0f1, 0xb0d1, 0xb0f1, 0xb0d1, 0xb0d1, 0xb0f1, 0xb0d1, 0xb0f1, 0xb0f1, 0xb0f1, 0xb0f1, 0xaa74, 0xac78, 0xacf9, 0x9b35, 0x9931, 0xa8f1, 0xb0f1, 0xb0f2, 0xb0f1, 0xb0d1, 0xb0d1, 0xb0f1, 0xb0f2, 0xb0d1, 0xb0f1, 0xa9b3, 0xaf3e, 0xaf3e, 0xaf3e, 0xaf3e, 0xaf5e, 0xaf3e, 0xaf3e, 0xaf5e, 0xaf3e, 0xaf3e, 0xaf3e, 0xaf5e, 0xaf3e, 0xaf3e, 0xaf5e, 0xaf3e, 0xaf3e, 0xaf3d, 0xaf3d, 0xaf3e, 0xaf3e, 0xaf5e, 0xaf3e, 0xaf3d, 0xaf3d, 0xaf3e, 0xaf3e, 0xaf3e, 0xaf3e, 0xaf5e, 0xaf3e, 0xaf3e, 0xaf5e, 0xaf3e, 0xaf3e, 0xaf3e, 0xaf3e, 0xaf3e, 0xaf3e, 0xaf3e, 0xaf3e, 0xaf3d, 0xaf5e, 0xaf3e, 0xaf3e, 0xaf3e, 0xaf3e, 0xaf5e, 0xaf3e, 0xaf3e, 0xaf3e, 0xaf5e, 0xaf3e, 0xaf3e, 0xaf3e, 0xaf3e, 0xaf3e, 0xaf5e, 0xaf3e, 0xaf5e, 0xaf3e, 0xaf3e, 0xaf3e, 0xaf3e, 0x9c77, 0x8191, 0x9931, 0xb0f1, 0xb0d1, 0xb0f1, 0xb0f1, 0xb0f1, 0xb0f1, 0xb0f1, 0xadbb, 0xaf3e, 0xaf3e, 0xaf5d, 0xaf3e, 0x9477, 0x8191, 0x9951, 0xb0d1, 0xb0d1, 0xb0f1, 0xb0d1, 0xb0d1, 0xb0d1, 0xb0d1, 0xadba, 0xaf3e, 0xaf5e, 0xaf3e, 0xaf5e, 0xaf3e, 0xaf3e, 0xaf3e, 0xaf3d, 0xaf5e, 0xaf5e, 0xaf5e, 0xaf3d, 0xaf3d, 0xaf3e, 0xaf3e, 0xaf3e, 0xaf3e, 0xaf5e, 0xaf3e, 0xaf3e, 0xaf3e, 0xaf3e, 0xaefd, 0xcb56, 0xca53, 0xca74, 0xd253, 0xd274, 0xd274, 0xd273, 0xca73, 0xd274, 0xd274, 0xd274, 0xd274, 0xd274, 0xd274, 0xd274, 0xd274, 0xd254, 0xca74, 0xca54, 0xca54, 0xca74, 0xc932, 0xc932, 0xc932, 0xc912, 0xc912, 0xc912, 0xc0f1, 0xc8d1, 0xc8d1, 0xc8d1, 0x335c, 0x041f, 0x03ff, 0x03ff, 0x047d, 0x0795, 0x07f6, 0x07fa, 0x07fe, 0x07ff, 0x2e3c, 0xb0f1, 0xb0d1, 0xb0f1, 0xb0f1, 0xb0f1, 0xa8f1, 0xb0f1, 0xb0d1, 0xb0f1, 0x40f0, 0x28cf, 0x28ef, 0x28ce, 0x20ce, 0x20ce, 0x20ce, 0x20ae, 0x20ae, 0x18ad, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x18ae, 0x18ad, 0x18ae, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18cd, 0x00f8, 0x011a, 0x08f6, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18cf, 0x08d3, 0x08f3, 0x08f3, 0x18af, 0x20ad, 0x18ae, 0x18ad, 0x18ad, 0x00f6, 0x0119, 0x0118, 0x18ad, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0xca53, 0xca53, 0xca53, 0xa73e, 0xa73e, 0xa73e, 0xa73e, 0xa73d, 0xa73d, 0xa73d, 0xa73d, 0x9457, 0x8191, 0x9931, 0xb8d1, 0xb0d1, 0xb8d1, 0xb0d1, 0xb0d1, 0xb0d1, 0xb0f1, 0xb0d1, 0xb1b3, 0xad9a, 0xaf3d, 0xaf3d, 0xa73d, 0xa73d, 0x9dda, 0x89d1, 0x9951, 0xb0f1, 0xb0d1, 0xb0f1, 0xb0d1, 0xb0d1, 0xb0d1, 0xb8d1, 0xb8d1, 0xb0d1, 0xb0d1, 0xb0d1, 0xb0f1, 0xb213, 0xad9b, 0xa73e, 0xa73d, 0xaf3e, 0xaf3e, 0x9dda, 0x81f2, 0x9171, 0xb0f1, 0xb0f1, 0xb0d1, 0xb0f1, 0xb0d1, 0xb0d1, 0xb8d1, 0xb8d2, 0xb0f1, 0xad39, 0xa73d, 0xa73e, 0xa73d, 0xa73d, 0xa73d, 0xa73d, 0xa73d, 0xa73e, 0xa73d, 0xa73d, 0xa73d, 0xaf3d, 0xa73d, 0xa73d, 0xa73d, 0xa73e, 0xa73e, 0xa73d, 0xaf3d, 0xa73d, 0xa73d, 0xa73e, 0xaf3d, 0xa73e, 0xa73e, 0xa73d, 0xaf3d, 0xa73d, 0xa73d, 0xa73e, 0xaf3e, 0xaf1e, 0xa73e, 0xa73e, 0xa73e, 0xa73e, 0xa73e, 0xa73e, 0xa73e, 0xa73e, 0xaf3e, 0xa73e, 0xa73d, 0xaf3e, 0xa73e, 0xa73d, 0xa73d, 0xa73d, 0xaf3d, 0xa73e, 0xa73e, 0xa73e, 0xa73d, 0xaf3d, 0xa73d, 0xaf3d, 0xa73e, 0xa73e, 0xaf3d, 0xa73e, 0xa73d, 0xa73d, 0xa73e, 0x9478, 0x8191, 0x9931, 0xb0d1, 0xb0d1, 0xb0d1, 0xb0d1, 0xb0d1, 0xb0d1, 0xb8d1, 0xad9a, 0xa73e, 0xa73d, 0xa73e, 0xa73d, 0xa73d, 0xa73d, 0xaf3d, 0xa73d, 0xa73d, 0xa73d, 0xa73d, 0xa73d, 0xaf3d, 0xa73d, 0xa73d, 0xa73d, 0xaf3e, 0xa73e, 0xa73d, 0xa73d, 0xa73d, 0xaf3d, 0xaf3e, 0xa73d, 0xaf3d, 0xaf3e, 0xa73d, 0xa73d, 0xaf3d, 0xa73e, 0xaf3d, 0xaf3d, 0xaf3d, 0xa73e, 0xa73d, 0xa73d, 0xaf3d, 0xa73d, 0xaedd, 0xc376, 0xca53, 0xca53, 0xca53, 0xca53, 0xca33, 0xca53, 0xca53, 0xca53, 0xca53, 0xca53, 0xca53, 0xca53, 0xca53, 0xca53, 0xd233, 0xca53, 0xd253, 0xca53, 0xca53, 0x309c, 0x005f, 0x58b9, 0xc912, 0xc111, 0xc8f1, 0xc8d1, 0xc8d1, 0xc0d1, 0xc0d1, 0x337c, 0x045f, 0x041f, 0x041f, 0x045e, 0x0775, 0x07f5, 0x07fa, 0x07fe, 0x07ff, 0x2e3c, 0xb0f1, 0xb0f1, 0xb0f1, 0xb0d1, 0xb0f1, 0xa8f1, 0xb0f1, 0xb0f1, 0xb0d1, 0x80f1, 0x28ef, 0x28cf, 0x28cf, 0x20cf, 0x20ce, 0x20ce, 0x20ae, 0x20ae, 0x18ad, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x10d0, 0x011a, 0x011a, 0x10d1, 0x18ad, 0x18ad, 0x18ad, 0x10d2, 0x0119, 0x011a, 0x0119, 0x0119, 0x0119, 0x10d2, 0x18ad, 0x18ad, 0x18ad, 0x10d1, 0x0119, 0x0119, 0x10d0, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ae, 0x18ad, 0x18ae, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0xca13, 0xca33, 0xca13, 0xa71d, 0xa71d, 0xa71d, 0xa71d, 0xa71d, 0xa73d, 0xa73d, 0xa73d, 0x8a53, 0x8191, 0xa8f1, 0xb8d1, 0xb8d1, 0xb8d1, 0xb0d1, 0xb8d1, 0xb8d1, 0xb8d1, 0xb213, 0xa6bd, 0xa71d, 0xa73e, 0xa71d, 0xa71d, 0xa71d, 0xa71d, 0x9e1b, 0x81f1, 0x9171, 0xb0f1, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8d1, 0xb1f3, 0xa6bd, 0xa71d, 0xa71d, 0xa71d, 0xa71d, 0xa73d, 0xa71d, 0x9e1b, 0x89f2, 0x8991, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8d1, 0xb0d1, 0xb8d1, 0xb336, 0xa71d, 0xa71d, 0xa71d, 0xa71d, 0xa71d, 0xa71d, 0xa71d, 0xa71d, 0xa71d, 0xa71d, 0xa73d, 0xa73d, 0xa73d, 0xa71d, 0xa71d, 0xa73d, 0xa71d, 0xa71e, 0xa71d, 0xa71d, 0xa73d, 0xa73e, 0xa71d, 0xa71d, 0xa71d, 0xa73e, 0xa71d, 0xa73e, 0xa73d, 0xa71d, 0xa71d, 0xa73d, 0xa71d, 0xa71d, 0xa71d, 0xa71d, 0xa71d, 0xa71d, 0xa71d, 0xa71d, 0xa71d, 0xa71d, 0xa73d, 0xa73d, 0xa73d, 0xa73e, 0xa71d, 0xa73d, 0xa73d, 0xa71d, 0xa71d, 0xa71d, 0xa71d, 0xa71d, 0xa71d, 0xa73d, 0xa71d, 0xa71d, 0xa73e, 0xa73d, 0xa73d, 0xa71d, 0xa71d, 0x9477, 0x8191, 0x9931, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8d1, 0xa59a, 0xa71d, 0xa73d, 0xa73e, 0xa71d, 0xa71d, 0xa71e, 0xa73d, 0xa71d, 0xa71d, 0xa71d, 0xa71d, 0xa71d, 0xa71d, 0xa71d, 0xa71d, 0xa73d, 0xa73d, 0xa71e, 0xa71d, 0xa73d, 0xa71d, 0xa73d, 0xa71d, 0xa71d, 0xa71d, 0xa71d, 0xa71d, 0xa71d, 0xa73d, 0xa73d, 0xa71d, 0xa73d, 0xa73d, 0xa71d, 0xa73e, 0xa71d, 0xa71d, 0xa71d, 0xa71d, 0xa71d, 0xbbf7, 0xca13, 0xca33, 0xca13, 0xca33, 0xca33, 0xca33, 0xca33, 0xca33, 0xca33, 0xca33, 0xca33, 0xca33, 0xca33, 0xca13, 0xca13, 0xca14, 0xd233, 0xca33, 0x003f, 0x003f, 0x005f, 0x78d7, 0xc0f2, 0xc8f1, 0xc0d1, 0xc0d1, 0xc0d1, 0xc8b1, 0x4b1a, 0x047f, 0x045f, 0x043f, 0x045f, 0x0735, 0x07f4, 0x07f9, 0x07fe, 0x07ff, 0x2e3c, 0xb0d1, 0xb0f1, 0xb0d1, 0xb0d1, 0xb0d1, 0xa8f1, 0xb0f1, 0xb0d1, 0xb0f1, 0xa0f1, 0x28cf, 0x28ef, 0x28cf, 0x20ce, 0x20ce, 0x20ce, 0x20ae, 0x20ae, 0x18ad, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x10d1, 0x08f3, 0x10f3, 0x10d2, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x10d3, 0x0119, 0x0119, 0x18cd, 0x18ad, 0x18ad, 0x18af, 0x011a, 0x0119, 0x00f9, 0x08f6, 0x0119, 0x0119, 0x0119, 0x18af, 0x20ad, 0x18ad, 0x18ad, 0x0119, 0x011a, 0x10d3, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x18ae, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0xca13, 0xca13, 0xca13, 0x9f1d, 0x9f1d, 0xa71d, 0x9f1d, 0x9f1d, 0xa71d, 0x9f1d, 0x9f1d, 0x8191, 0x8191, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8d1, 0xa5db, 0x9f1d, 0x9f1d, 0x9efd, 0x9f1d, 0x9f1d, 0x9f1d, 0xa6fd, 0x9f1d, 0x94f9, 0x8191, 0x9931, 0xb8d1, 0xb8d1, 0xb8b1, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8b1, 0xa5db, 0x9f1d, 0x9f1d, 0x9f1d, 0x9f1d, 0xa6fd, 0x9f1d, 0x9f1d, 0x9f1d, 0x94f9, 0x8191, 0x9931, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8d1, 0xb932, 0x9f1d, 0x9f1d, 0x9f1d, 0x9f1e, 0x9f1d, 0x9f1d, 0x9f1d, 0x9f1d, 0x9f1d, 0x9e1b, 0x9457, 0x92d4, 0xa1f3, 0xa911, 0xb0f1, 0xb0f1, 0xa911, 0xb274, 0xb254, 0xb254, 0xabf7, 0xa5db, 0xa6fd, 0xa6fd, 0xa71d, 0xa71d, 0x9f1d, 0x9f1d, 0xa6fd, 0x9f1d, 0x9f1d, 0xa71d, 0x9f1d, 0x9f1d, 0x9f1d, 0x9f1d, 0x9f1d, 0x9f1d, 0x9f1d, 0x9f1d, 0x9f1d, 0x9f1d, 0x9f1d, 0x9e7c, 0x9498, 0x8b14, 0x9a13, 0xa131, 0xa912, 0xb0f1, 0xa8f1, 0xb255, 0xb274, 0xb254, 0xab97, 0xad1a, 0x9f1d, 0x9f1d, 0x9f1d, 0x9f1d, 0xa71d, 0x9f1d, 0xa71d, 0x9457, 0x8191, 0xa131, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8d1, 0xa57a, 0x9f1d, 0xa71d, 0x9f1d, 0xa71d, 0x9e7c, 0x9dba, 0xa59a, 0xa57a, 0xa57a, 0xa57a, 0xa57a, 0xa57a, 0xa57a, 0xa57a, 0xa69c, 0x9f1d, 0x9f1d, 0x9f1d, 0xa71d, 0x9f1d, 0x9f1d, 0x9f1d, 0x9f1d, 0x9f1d, 0x9f1d, 0x9f1d, 0x9e5c, 0x94b8, 0x8af4, 0x9a13, 0xa131, 0xa8f1, 0xb0f1, 0xb0f1, 0xb932, 0xb274, 0xb254, 0xb336, 0xacb9, 0xa63c, 0x9f1d, 0xbbf7, 0xc9f3, 0xca13, 0xca13, 0xca13, 0xc9f3, 0xc9f3, 0xc9f3, 0xc9f3, 0xc9f3, 0xc9f3, 0xc9f3, 0xc9f3, 0xca13, 0xca13, 0xca13, 0xca13, 0xca13, 0x003f, 0x003f, 0x005f, 0x58b9, 0xc0f1, 0xc0d1, 0xc8d1, 0xc8b2, 0xc0b1, 0xc0b1, 0x62b8, 0x04bf, 0x047f, 0x047f, 0x045f, 0x0715, 0x07f4, 0x07f9, 0x07fd, 0x07ff, 0x2e3c, 0xb0d1, 0xb0f1, 0xb0d1, 0xb0d1, 0xa8f1, 0xa8f1, 0xb0f1, 0xb0f1, 0xb0f1, 0xb0f1, 0x58f0, 0x28cf, 0x28ce, 0x20ce, 0x20ce, 0x20ce, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ce, 0x0117, 0x0119, 0x0119, 0x0119, 0x0119, 0x00f7, 0x18ce, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x011a, 0x011a, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x08f3, 0x0119, 0x00f6, 0x20ad, 0x20cd, 0x18ae, 0x08f3, 0x0119, 0x00f9, 0x18ae, 0x18ad, 0x18ae, 0x0119, 0x0119, 0x10d4, 0x18ad, 0x18ad, 0x18ad, 0x00f6, 0x0119, 0x08f3, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ae, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0xc9d3, 0xc9d3, 0xc9d3, 0x9efd, 0x9efd, 0x9efd, 0x9efd, 0x9efd, 0x9efd, 0x9efd, 0x959a, 0x8191, 0x9151, 0xc0b1, 0xb8d1, 0xc0b1, 0xb8d1, 0xc0d1, 0xb8d1, 0xb8d1, 0xb2b5, 0x9efd, 0x9efd, 0x9efd, 0x9efd, 0x9efd, 0x9efd, 0x9efd, 0x9efd, 0x9efd, 0x9efd, 0x8252, 0x8191, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8d1, 0xc0b1, 0xc0d1, 0xb8d1, 0xc0d1, 0xb1f3, 0x9efd, 0x9efd, 0x9efd, 0x9efd, 0x9efd, 0x9f1d, 0x9efd, 0x9efd, 0x9efd, 0x9efd, 0x8a93, 0x8191, 0xb8d1, 0xb8d1, 0xc0d1, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8d1, 0xc0b1, 0xa63c, 0x9efd, 0x9efd, 0x9efd, 0x9efd, 0x9efd, 0x9efd, 0x94f8, 0x8a53, 0x9171, 0xb0f1, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8b1, 0xb8b1, 0xc0b1, 0xc0d1, 0xc0d1, 0xb8d1, 0xc0d1, 0xb8b1, 0xb992, 0xacb9, 0x9efd, 0x9efd, 0x9efd, 0x9efd, 0x9efd, 0x9efd, 0x9efd, 0x9efd, 0x9efd, 0x9efd, 0x9efd, 0x9efd, 0x9efd, 0x9efd, 0x9efd, 0x9efd, 0x9efd, 0x9e5c, 0x8b96, 0x8991, 0xa131, 0xb8d1, 0xb8d1, 0xc0b1, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8d1, 0xc0b1, 0xb8d1, 0xb932, 0xabf7, 0x9e9c, 0x9efd, 0x9efd, 0x9efd, 0x9efd, 0x9437, 0x8191, 0xa131, 0xb8d1, 0xc0b1, 0xb8d1, 0xc0b1, 0xc0b1, 0xb8d1, 0xb8d1, 0xa57a, 0x9efd, 0x9efd, 0x9efd, 0x9efd, 0x9437, 0x8191, 0xa131, 0xb8d1, 0xc0b1, 0xb8d1, 0xb8d1, 0xc0b1, 0xb8d1, 0xb8d1, 0xa57a, 0x9efd, 0x9efd, 0x9efd, 0x9efd, 0x9efd, 0x9efd, 0x9efd, 0x9efd, 0x9efd, 0x9e9c, 0x8b96, 0x8971, 0xa131, 0xb8d1, 0xb8d1, 0xc0b1, 0xb8d1, 0xc0b1, 0xc0d1, 0xb8d1, 0xb8d1, 0xc0d1, 0xb8d1, 0xb8d1, 0xc0d1, 0xb335, 0xa63c, 0xbbd7, 0xc9d3, 0xc9f3, 0xc9d3, 0xc9d3, 0xc9d3, 0xc9d3, 0xc9d3, 0xc9d3, 0xc9d3, 0xc9d3, 0xc9d3, 0xc9f3, 0xc9d3, 0xc9d3, 0xc9f3, 0xc9d3, 0x001f, 0x003f, 0x003f, 0x00df, 0x88f6, 0xc8d1, 0xc0b1, 0xc8b1, 0xc0b1, 0xc8b1, 0x62d9, 0x04ff, 0x04bf, 0x049f, 0x047f, 0x06b6, 0x07f3, 0x07f8, 0x07fd, 0x07ff, 0x2e3c, 0xb0d1, 0xb0d1, 0xb0d1, 0xb0f1, 0x98f2, 0xb0f1, 0xb0f1, 0xb0f1, 0x78f0, 0x90f1, 0x80d1, 0x28cf, 0x28ce, 0x20ce, 0x20ce, 0x20ce, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x08f5, 0x0119, 0x0119, 0x00f7, 0x08f7, 0x0119, 0x011a, 0x08f4, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ae, 0x18ad, 0x08f3, 0x0119, 0x00f6, 0x18ad, 0x18ad, 0x18cd, 0x08f3, 0x0119, 0x08f6, 0x18ad, 0x18ad, 0x18ad, 0x08f7, 0x0119, 0x08f5, 0x18cd, 0x18ad, 0x18ad, 0x08f6, 0x011a, 0x08f6, 0x18ad, 0x20ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x20ad, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0xc9b3, 0xc9b3, 0xc9b3, 0x9edd, 0x96fd, 0x9edd, 0x96fd, 0x9efc, 0x96fd, 0x96fd, 0x9599, 0x8991, 0x9171, 0xc0b1, 0xc0d1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0d1, 0xabd7, 0x9efc, 0x96fd, 0x96fd, 0x96dd, 0x96fd, 0x9efd, 0x9edd, 0x96fd, 0x9edd, 0x9efd, 0x8c37, 0x8191, 0xa111, 0xc0b1, 0xc0b1, 0xc0d1, 0xc0b1, 0xc0b1, 0xc0d1, 0xc0b1, 0xab76, 0x9edd, 0x9efd, 0x9efd, 0x9edd, 0x9edd, 0x96dd, 0x9efd, 0x9edd, 0x96fd, 0x9edd, 0x8c37, 0x8191, 0xa131, 0xc0d1, 0xc0b1, 0xc0b1, 0xc0d1, 0xc0b1, 0xc0b1, 0xc0d1, 0xa55a, 0x96fd, 0x9edd, 0x9efd, 0x96fd, 0x963b, 0x8af4, 0x8991, 0xa911, 0xc0b1, 0xc0b1, 0xc0d1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0d1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0d1, 0xc0b1, 0xc0b1, 0xb992, 0xa55a, 0x9edd, 0x9efc, 0x96fd, 0x9edd, 0x96fd, 0x9efd, 0x96fd, 0x96fd, 0x96fd, 0x96fd, 0x96fd, 0x96fd, 0x96fd, 0x96fd, 0x94f9, 0x81f1, 0x9171, 0xb8d2, 0xc0b1, 0xc0d1, 0xc0d1, 0xc0b1, 0xc0d1, 0xc0b1, 0xc0d1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xb992, 0x9dbb, 0x96fd, 0x9edd, 0x96fd, 0x8c37, 0x8191, 0xa131, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xa55a, 0x9edd, 0x96fd, 0x96fd, 0x9efd, 0x8c37, 0x8191, 0xa131, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xa55a, 0x96fd, 0x9efd, 0x96fd, 0x9efd, 0x9efd, 0x96fd, 0x9efd, 0x96fd, 0x9539, 0x81f1, 0x9171, 0xb0d1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0d1, 0xc0b1, 0xc0b1, 0xc0d1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xb8d1, 0xb911, 0xacfa, 0xb458, 0xc9b3, 0xc9b3, 0xc9b3, 0xc9b3, 0xc9b3, 0xc9b3, 0xc9b3, 0xc9b3, 0xc9b3, 0xc9b3, 0xc9b3, 0xc9d2, 0xc9d3, 0xc9d3, 0xc9b3, 0x001f, 0x003f, 0x003f, 0x00bf, 0x311c, 0xc0d1, 0xc8b1, 0xc0b1, 0xc0b1, 0xc0b1, 0x6278, 0x053f, 0x04ff, 0x04bf, 0x049f, 0x0696, 0x07f2, 0x07f7, 0x07fc, 0x07ff, 0x2e3c, 0xb0f1, 0xb0d1, 0xb0f1, 0xb0f1, 0x8912, 0xb0f1, 0xb0f1, 0xb0d1, 0x48f0, 0x28f0, 0x28ef, 0x28cf, 0x28cf, 0x20ce, 0x20ce, 0x20ce, 0x20ae, 0x20ae, 0x20ae, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x011a, 0x011a, 0x08f3, 0x18ad, 0x18ad, 0x10d3, 0x0119, 0x00f9, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x011a, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x08f3, 0x0119, 0x00f6, 0x18ad, 0x18ad, 0x208d, 0x08f3, 0x0119, 0x00f9, 0x18ae, 0x18ae, 0x18ce, 0x00f9, 0x0119, 0x08f3, 0x18ad, 0x20ae, 0x18ad, 0x08f6, 0x011a, 0x08f3, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ae, 0x18cf, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x10d2, 0x10d3, 0x08f3, 0x10d2, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x20ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0xc993, 0xc993, 0xc992, 0x96dc, 0x96dd, 0x96dd, 0x96dd, 0x96dd, 0x96dd, 0x96dd, 0x8d79, 0x8191, 0x9151, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xabd7, 0x96dd, 0x96dd, 0x96dd, 0x96dd, 0x96dd, 0x96dd, 0x96dd, 0x96dd, 0x96dd, 0x96dd, 0x8c37, 0x8191, 0xa131, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xabd7, 0x96dd, 0x96dd, 0x96dd, 0x96dd, 0x96dd, 0x96dd, 0x96dd, 0x96dd, 0x96dd, 0x96dd, 0x8c37, 0x8191, 0xa131, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0x9d5a, 0x96dd, 0x96dd, 0x96dd, 0x95da, 0x89f2, 0x8971, 0xb8d1, 0xc0b1, 0xc0b1, 0xc8b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xa499, 0x96dd, 0x96dd, 0x96dd, 0x96dd, 0x96dd, 0x96dc, 0x96dd, 0x96dd, 0x96dd, 0x96dd, 0x96dd, 0x96dd, 0x8c37, 0x8191, 0x9931, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc8b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xa499, 0x96dc, 0x96dd, 0x8c37, 0x8191, 0xa111, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0x9d5a, 0x96dd, 0x96dd, 0x96dd, 0x96dd, 0x8c37, 0x8191, 0xa131, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0x9d5a, 0x96dd, 0x96dd, 0x96dd, 0x96dd, 0x96dd, 0x96dd, 0x96dd, 0x8cd8, 0x8191, 0x9951, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc8b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc8b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xac79, 0xacf9, 0xc992, 0xc993, 0xc9b2, 0xc992, 0xc992, 0xc993, 0xc993, 0xc993, 0xc992, 0xc992, 0xc992, 0xc993, 0xc993, 0xc993, 0x003f, 0x003f, 0x003f, 0x00bf, 0x011f, 0xc0b1, 0xc8b1, 0xc0b1, 0xc0b1, 0xc0b1, 0x79d6, 0x051f, 0x051f, 0x04ff, 0x04bf, 0x0638, 0x07f1, 0x07f7, 0x07fc, 0x07ff, 0x2e3c, 0xb0f1, 0xb0f2, 0xb0f1, 0xb0f1, 0x80f2, 0xb0f1, 0xb0f1, 0xb0f2, 0x3110, 0x30f0, 0x28cf, 0x28ef, 0x20ce, 0x28cf, 0x20ce, 0x20ce, 0x20ce, 0x20ad, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18af, 0x011a, 0x0119, 0x10d0, 0x18ad, 0x18ad, 0x18d1, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x011a, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x10d2, 0x0119, 0x0118, 0x18ae, 0x18ad, 0x18ad, 0x18ce, 0x0119, 0x0119, 0x0118, 0x08f5, 0x00f8, 0x0119, 0x0119, 0x18cf, 0x18ad, 0x18ad, 0x18ad, 0x00f8, 0x0119, 0x08f3, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18d0, 0x0119, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ce, 0x0117, 0x011a, 0x0119, 0x0119, 0x011a, 0x00f7, 0x18ce, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ae, 0x18ad, 0x10d2, 0x08f3, 0x10f3, 0x10d2, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0xc972, 0xc972, 0xc972, 0x8ebc, 0x8ebd, 0x8ebd, 0x8ebc, 0x8ebc, 0x8ebc, 0x8ebd, 0x8d7a, 0x8191, 0x9151, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc8b1, 0xc0b1, 0xabb7, 0x8ebd, 0x8ebc, 0x8ebc, 0x8ebc, 0x8ebc, 0x8ebc, 0x8ebc, 0x8ebc, 0x8ebc, 0x8ebd, 0x8c37, 0x8191, 0xa131, 0xc0b1, 0xc8b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc8b1, 0xc0b1, 0xabb7, 0x8ebc, 0x8ebc, 0x8ebc, 0x8edc, 0x8ebc, 0x8edd, 0x8ebc, 0x8ebc, 0x8ebd, 0x8ebc, 0x8c37, 0x8191, 0xa131, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0x9d39, 0x8ebd, 0x8edd, 0x8dba, 0x81f2, 0x9171, 0xc0b1, 0xc0b1, 0xc8b1, 0xc0b1, 0xc0d1, 0xc0b1, 0xc8b1, 0xc8b2, 0xc0b1, 0xc8b2, 0xc8b1, 0xc8b1, 0xc0d1, 0xc0b1, 0xc0d1, 0xc0d1, 0xc8b1, 0xc0b1, 0xc0b1, 0xc8b1, 0xc0b1, 0xa437, 0x8ebc, 0x8edd, 0x8ebc, 0x8ebd, 0x8ebc, 0x8ebc, 0x8ebd, 0x8ebc, 0x8ebd, 0x8ebd, 0x8cd8, 0x8191, 0xa131, 0xc0b1, 0xc0b1, 0xc8b1, 0xc0b1, 0xc0b1, 0xc8b2, 0xc8b1, 0xc0b1, 0xc8b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc8b1, 0xc8b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc8b1, 0xc0b1, 0xc8b1, 0xa4d9, 0x8ebc, 0x8c37, 0x8191, 0xa131, 0xc0b1, 0xc8b1, 0xc0d1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc8b1, 0x9d3a, 0x8ebc, 0x8ebc, 0x8ebc, 0x8ebc, 0x8c37, 0x8191, 0xa131, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0x9d5a, 0x8ebc, 0x8ebc, 0x8edc, 0x8ebc, 0x8ebc, 0x8ebc, 0x8cd8, 0x8191, 0x9951, 0xc8b1, 0xc0b1, 0xc8b1, 0xc8b2, 0xc8b1, 0xc0b1, 0xc8b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0d1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc8b1, 0xc8b1, 0xc8b1, 0xc8d1, 0xa478, 0xa4d9, 0xc972, 0xc972, 0xc972, 0xc972, 0xc972, 0xc972, 0xc972, 0xc972, 0xc972, 0xc972, 0xc972, 0xc972, 0xc972, 0x003f, 0x003f, 0x001f, 0x009f, 0x00df, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0x9174, 0x049f, 0x057f, 0x051f, 0x04ff, 0x0619, 0x07f1, 0x07f6, 0x07fc, 0x07ff, 0x35bb, 0xb0f1, 0xb0d1, 0xb0f1, 0xb0f1, 0x6912, 0xb0f1, 0xb0f1, 0x98f1, 0x30f0, 0x30f0, 0x28ef, 0x28cf, 0x28ef, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ad, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x011a, 0x10d3, 0x20ad, 0x18ad, 0x10d3, 0x0119, 0x011a, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x0119, 0x011a, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18d0, 0x011a, 0x011a, 0x10d0, 0x18ad, 0x18ad, 0x20ad, 0x10d2, 0x0119, 0x011a, 0x0119, 0x0119, 0x0119, 0x10d2, 0x18ad, 0x18ad, 0x18ad, 0x18d0, 0x0119, 0x0119, 0x18b0, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18af, 0x0119, 0x00f9, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x08f5, 0x011a, 0x0119, 0x0117, 0x00f7, 0x00f9, 0x0119, 0x08f5, 0x20ad, 0x20ad, 0x18ad, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x00f7, 0x011a, 0x00fa, 0x011a, 0x0119, 0x08f7, 0x18ce, 0x18ad, 0x20ad, 0x18ae, 0x18ae, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0xc952, 0xc952, 0xc952, 0x8ebc, 0x8ebc, 0x8ebc, 0x8ebc, 0x8ebc, 0x8ebc, 0x8ebc, 0x8d59, 0x8191, 0x9171, 0xc8f2, 0xc8f1, 0xc8f2, 0xc8f2, 0xc8f2, 0xc8f1, 0xc8f2, 0xabd7, 0x8ebc, 0x8ebc, 0x8ebc, 0x8ebc, 0x8ebc, 0x8ebc, 0x8ebc, 0x8ebc, 0x8ebc, 0x8ebc, 0x8c36, 0x8191, 0xa931, 0xc8f2, 0xc8f1, 0xc8f2, 0xc8f2, 0xc8f2, 0xc8f2, 0xc0f2, 0xabb7, 0x8ebc, 0x8ebc, 0x8ebc, 0x8ebc, 0x8ebc, 0x8ebc, 0x8ebc, 0x8ebc, 0x8ebc, 0x8ebc, 0x8437, 0x8191, 0xa951, 0xc8f1, 0xc8f1, 0xc8f2, 0xc8f1, 0xc8f1, 0xc8f2, 0xc8f1, 0x9d3a, 0x8ebc, 0x8e1b, 0x81f2, 0x8971, 0xb912, 0xc8f1, 0xc8f1, 0xc8f2, 0xc8f1, 0xc8f1, 0xc8f1, 0xc8f2, 0xc8d1, 0xc112, 0xc8f2, 0xc8f2, 0xc8f2, 0xc8d1, 0xc8f2, 0xc8d1, 0xc8f2, 0xc0f1, 0xc8f1, 0xc8f2, 0xc8f1, 0xc8f2, 0xc0f1, 0xa498, 0x8ebc, 0x8ebc, 0x8ebc, 0x8ebc, 0x8ebc, 0x8ebc, 0x8ebc, 0x8ebc, 0x8dba, 0x8991, 0x8991, 0xc0f1, 0xc8f2, 0xc0f2, 0xc8f1, 0xc8f2, 0xc8f1, 0xc0f1, 0xc8f2, 0xc8f1, 0xc8f2, 0xc0f2, 0xc8f1, 0xc0f1, 0xc8f2, 0xc8f1, 0xc8f2, 0xc8f2, 0xc8f2, 0xc8f1, 0xc8f1, 0xc0f2, 0xc132, 0x8e5c, 0x8c17, 0x8191, 0xa931, 0xc8f2, 0xc8f2, 0xc8f2, 0xc8f2, 0xc8f1, 0xc8f2, 0xc8f2, 0x9d59, 0x8ebc, 0x8ebc, 0x8ebc, 0x8ebc, 0x8c17, 0x8191, 0xa951, 0xc8f1, 0xc8f1, 0xc8f2, 0xc8f1, 0xc8f1, 0xc8f2, 0xc8f1, 0x9d5a, 0x8ebc, 0x8ebc, 0x8ebc, 0x8ebc, 0x8ebd, 0x8dba, 0x81f2, 0x8991, 0xc111, 0xc8f1, 0xc8f1, 0xc8f1, 0xc0f2, 0xc8f1, 0xc8f1, 0xc0f2, 0xc8d2, 0xc8f1, 0xc8f2, 0xc0f1, 0xc0f1, 0xc8f2, 0xc0f1, 0xc8f1, 0xc8f2, 0xc8f2, 0xc8f1, 0xc8f1, 0xc8f2, 0xc152, 0x95fb, 0xa4b8, 0xc152, 0xc952, 0xc952, 0xc952, 0xc972, 0xc952, 0xc952, 0xc952, 0xc952, 0xc952, 0xc952, 0xc952, 0x001f, 0x001f, 0x001f, 0x007f, 0x00df, 0x68b7, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xa8f3, 0x041f, 0x057f, 0x053f, 0x051f, 0x05f9, 0x07f0, 0x07f6, 0x07fc, 0x07ff, 0x5c78, 0xb0f1, 0xb0d1, 0xb0f1, 0xb0f1, 0x5912, 0xb0f1, 0xb0f1, 0x90f1, 0x30f0, 0x30ef, 0x30ef, 0x28cf, 0x28ce, 0x20ce, 0x20ce, 0x20ae, 0x20ce, 0x20ad, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x08f4, 0x0119, 0x011a, 0x00f7, 0x00f8, 0x0119, 0x0119, 0x08f5, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ae, 0x18ad, 0x0117, 0x0119, 0x08f6, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cf, 0x08f3, 0x00f6, 0x08f3, 0x18af, 0x18ad, 0x18ae, 0x18ad, 0x18ae, 0x00f6, 0x0119, 0x0118, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18cd, 0x20ad, 0x18ad, 0x10cf, 0x00f9, 0x0119, 0x0117, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x0119, 0x0119, 0x08f3, 0x18cd, 0x20ae, 0x10d3, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x08f5, 0x0119, 0x0119, 0x0117, 0x00f7, 0x0119, 0x0119, 0x08f5, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0xc932, 0xc932, 0xc932, 0x8ebc, 0x8ebc, 0x8ebc, 0x8ebc, 0x8ebc, 0x8ebc, 0x8ebc, 0x8d79, 0x8191, 0x9171, 0xc132, 0xc131, 0xc912, 0xc912, 0xc132, 0xc911, 0xc912, 0xabf7, 0x8ebc, 0x8ebc, 0x8ebc, 0x8ebc, 0x8ebc, 0x8ebc, 0x8ebc, 0x8ebc, 0x8ebc, 0x96bc, 0x8c36, 0x8191, 0xa951, 0xc912, 0xc911, 0xc912, 0xc912, 0xc112, 0xc912, 0xc912, 0xabf7, 0x8ebc, 0x8ebc, 0x8ebc, 0x8ebc, 0x8ebc, 0x8ebc, 0x8ebc, 0x8ebc, 0x8ebc, 0x8ebc, 0x8c36, 0x8191, 0xa951, 0xc912, 0xc912, 0xc912, 0xc911, 0xc911, 0xc912, 0xc912, 0x9d59, 0x8ebc, 0x8ad4, 0x8191, 0xb152, 0xc912, 0xc131, 0xc912, 0xc912, 0xc912, 0xc912, 0xc912, 0xc912, 0xc932, 0xc912, 0xc912, 0xc912, 0xc912, 0xc911, 0xc112, 0xc932, 0xc912, 0xc912, 0xc932, 0xc911, 0xc912, 0xc912, 0xc932, 0xc131, 0x9dba, 0x8ebc, 0x96bc, 0x8ebc, 0x8edc, 0x96bb, 0x8ebc, 0x8edc, 0x82d4, 0x8191, 0xb932, 0xc912, 0xc112, 0xc912, 0xc112, 0xc912, 0xc112, 0xc912, 0xc911, 0xc911, 0xc932, 0xc911, 0xc131, 0xc912, 0xc132, 0xc131, 0xc912, 0xc912, 0xc911, 0xc911, 0xc131, 0xc912, 0xc912, 0xb356, 0x8c36, 0x8191, 0xa151, 0xc912, 0xc912, 0xc912, 0xc912, 0xc912, 0xc912, 0xc112, 0x9d59, 0x8ebc, 0x96bc, 0x8ebc, 0x8ebc, 0x8c37, 0x8191, 0xa951, 0xc912, 0xc912, 0xc912, 0xc911, 0xc911, 0xc912, 0xc912, 0x9d59, 0x8ebc, 0x8ebc, 0x8ebc, 0x96bc, 0x8ebc, 0x82f4, 0x8991, 0xb151, 0xc912, 0xc912, 0xc932, 0xc912, 0xc912, 0xc131, 0xc932, 0xc912, 0xc911, 0xc911, 0xc932, 0xc911, 0xc912, 0xc911, 0xc932, 0xc932, 0xc112, 0xc911, 0xc132, 0xc912, 0xc912, 0xc932, 0xb336, 0x96bc, 0xa4f9, 0xc192, 0xc932, 0xc932, 0xc932, 0xc932, 0xc932, 0xc932, 0xc932, 0xc932, 0xc932, 0xc932, 0x001f, 0x001f, 0x001f, 0x007f, 0x00bf, 0x009f, 0x90b5, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0x0b9e, 0x053f, 0x057f, 0x053f, 0x05da, 0x07ef, 0x07f5, 0x07fb, 0x07ff, 0x5478, 0xb0d1, 0xb0f1, 0xb0f1, 0x9111, 0x5912, 0xa8f1, 0xb0f1, 0x70f1, 0x30f0, 0x28ef, 0x20ef, 0x28cf, 0x20ce, 0x20ce, 0x20ce, 0x20ae, 0x20ae, 0x20ad, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ce, 0x00f7, 0x0119, 0x0119, 0x0119, 0x0119, 0x0117, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x011a, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x10d2, 0x011a, 0x0119, 0x10d3, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x10d2, 0x0119, 0x0119, 0x10d2, 0x18ae, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x10d0, 0x00f8, 0x0119, 0x08f7, 0x18ae, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18d0, 0x0118, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x10d0, 0x20ae, 0x18ad, 0x10d0, 0x0119, 0x0119, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x20ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x0119, 0x0119, 0x08f3, 0x18ad, 0x18ad, 0x08f3, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0xc912, 0xc912, 0xc912, 0x9edb, 0x9edb, 0x9edb, 0x9edc, 0x9edb, 0x9edb, 0x9edb, 0x9578, 0x8191, 0x9991, 0xc952, 0xc952, 0xc952, 0xc952, 0xc952, 0xc952, 0xc952, 0xb417, 0x9edb, 0x9edb, 0x9edb, 0x9edb, 0x9edb, 0x9edb, 0x9edb, 0x9edb, 0x9edb, 0x9edb, 0x9436, 0x8191, 0xa972, 0xc952, 0xc952, 0xc952, 0xc952, 0xc952, 0xc952, 0xc952, 0xa518, 0x9edb, 0x96db, 0x9edb, 0x9edb, 0x9edb, 0x9edb, 0x9edb, 0x9edb, 0x9edb, 0x9edb, 0x9436, 0x8191, 0xa171, 0xc952, 0xc952, 0xc952, 0xc952, 0xc952, 0xc952, 0xc952, 0xa579, 0x94d8, 0x8191, 0x9991, 0xc952, 0xc952, 0xc952, 0xc952, 0xc952, 0xc152, 0xc952, 0xc952, 0xc952, 0xc952, 0xc952, 0xc253, 0xc2b4, 0xb952, 0xc152, 0xc952, 0xc152, 0xc952, 0xc952, 0xc952, 0xc952, 0xc952, 0xc952, 0xc952, 0xc952, 0xbab5, 0x9edb, 0x9edb, 0x9edb, 0x9edb, 0x9edb, 0x9edb, 0x9599, 0x8191, 0x91b1, 0xc952, 0xc952, 0xc952, 0xc952, 0xc952, 0xc952, 0xc952, 0xc952, 0xc952, 0xc952, 0xc1f3, 0xc2b5, 0xb952, 0xc152, 0xc952, 0xc952, 0xc952, 0xc952, 0xc952, 0xc972, 0xc952, 0xc952, 0xc972, 0xc1b2, 0x9436, 0x8191, 0xa972, 0xc952, 0xc952, 0xc952, 0xc952, 0xc952, 0xc952, 0xc952, 0xa579, 0x9edb, 0x9edb, 0x9edb, 0x9edb, 0x8c36, 0x8991, 0xa171, 0xc952, 0xc952, 0xc952, 0xc952, 0xc952, 0xc952, 0xc952, 0xa579, 0x9edb, 0x9edc, 0x9edb, 0x9edb, 0x9598, 0x8191, 0x9191, 0xc952, 0xc952, 0xc952, 0xc952, 0xc152, 0xc952, 0xc172, 0xc952, 0xc952, 0xc952, 0xc1f3, 0xc2b4, 0xb952, 0xc152, 0xc952, 0xc952, 0xc952, 0xc952, 0xc952, 0xc952, 0xc952, 0xc952, 0xc952, 0xc952, 0xa61a, 0x9edc, 0xa5da, 0xc172, 0xc912, 0xc911, 0xc911, 0xc912, 0xc912, 0xc111, 0xc912, 0xc912, 0xc912, 0x001f, 0x001f, 0x001f, 0x005f, 0x007f, 0x007f, 0x6098, 0xc0b1, 0xb8b1, 0xc0b1, 0xc0b1, 0x2afc, 0x04ff, 0x05bf, 0x055f, 0x05fb, 0x07cf, 0x07f4, 0x07fc, 0x07ff, 0x5c79, 0xb0f1, 0xb0f1, 0xb0f1, 0x8112, 0x5912, 0xb0f1, 0xb0f1, 0x68f1, 0x30f0, 0x30ef, 0x30cf, 0x28cf, 0x20cf, 0x20ce, 0x20ce, 0x20ae, 0x20ae, 0x20ad, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ae, 0x18ad, 0x10d2, 0x0119, 0x0119, 0x10d2, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x20ae, 0x18ad, 0x0119, 0x011a, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x00f6, 0x0119, 0x0119, 0x10d2, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x20ad, 0x10d3, 0x0119, 0x0119, 0x08d6, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ae, 0x18ad, 0x18ae, 0x18ad, 0x18d0, 0x00f8, 0x0119, 0x00f7, 0x18ae, 0x20ad, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x10cf, 0x00f8, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x08f3, 0x18ad, 0x18ae, 0x08f3, 0x0119, 0x0119, 0x18ad, 0x20ad, 0x18ad, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ce, 0x00f7, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x00f9, 0x18d0, 0x18ad, 0x18ad, 0x10d0, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0xc8f1, 0xc8f1, 0xc8f2, 0xa6fb, 0xa6fa, 0xa6fa, 0xa6fb, 0xa6fa, 0xa6da, 0xa6fa, 0x9d98, 0x8191, 0x9191, 0xc972, 0xc992, 0xc992, 0xc972, 0xc992, 0xc992, 0xc992, 0xb436, 0xa6fb, 0xa6fa, 0xa6fa, 0xa6fa, 0xa6fa, 0xa6fa, 0xa6fa, 0xa6fa, 0xa6fa, 0xa6fa, 0x9436, 0x8191, 0xa992, 0xc992, 0xc992, 0xc972, 0xc972, 0xc972, 0xc992, 0xc992, 0xad98, 0xa6da, 0xa6da, 0xa6fa, 0xa6fa, 0xa6fa, 0xa6fa, 0xa6fa, 0xa6fa, 0xa6fa, 0xa6fa, 0x9436, 0x8191, 0xa992, 0xc993, 0xc992, 0xc992, 0xc992, 0xc992, 0xc992, 0xc992, 0xad99, 0x8a32, 0x8991, 0xc192, 0xc992, 0xc992, 0xc972, 0xc992, 0xc992, 0xc973, 0xc992, 0xc992, 0xc992, 0xbc36, 0xa69a, 0xa6fa, 0xa6fa, 0xa69a, 0x9395, 0x8991, 0xb992, 0xc993, 0xc972, 0xc972, 0xc992, 0xc992, 0xc972, 0xc992, 0xc972, 0xc972, 0xad98, 0xa6db, 0xa6da, 0xa6fa, 0xa6fb, 0xa6fa, 0x9395, 0x8191, 0xb192, 0xc992, 0xc992, 0xc992, 0xc993, 0xc972, 0xc972, 0xc992, 0xc972, 0xc233, 0xad98, 0xa6fa, 0xa6fb, 0xa639, 0x8a93, 0x9992, 0xc192, 0xc972, 0xc992, 0xc992, 0xc992, 0xc972, 0xc992, 0xc972, 0xc972, 0x9a93, 0x8191, 0xa992, 0xc992, 0xc992, 0xc992, 0xc992, 0xc992, 0xc992, 0xc992, 0xad98, 0xa6fa, 0xa6fb, 0xa6fa, 0xa6fa, 0x9436, 0x8191, 0xa992, 0xc993, 0xc992, 0xc992, 0xc992, 0xc992, 0xc992, 0xc992, 0xad98, 0xa6da, 0xa6da, 0xa6fa, 0xa6da, 0x8b95, 0x8191, 0xb192, 0xc972, 0xc992, 0xc972, 0xc992, 0xc992, 0xc972, 0xc992, 0xc972, 0xc294, 0xadf9, 0xa6fa, 0xa6da, 0xa69a, 0x9334, 0x9191, 0xb992, 0xc992, 0xc993, 0xc992, 0xc992, 0xc992, 0xc992, 0xc992, 0xc992, 0xb497, 0xaefb, 0xaefb, 0xb5d9, 0xc952, 0xc8f1, 0xc8f2, 0xc0f1, 0xc8f1, 0xc8f1, 0xc8f1, 0xc8f1, 0xc8f1, 0x001f, 0x001f, 0x001f, 0x003f, 0x007f, 0x005f, 0x7897, 0xc0b1, 0xc0d1, 0xc0b1, 0xb8d1, 0x6238, 0x04df, 0x05bf, 0x059f, 0x05fa, 0x07ce, 0x07f4, 0x07fc, 0x07ff, 0x5c78, 0xb0f1, 0xb0f1, 0xb0f1, 0x7112, 0x5912, 0xb0f1, 0xa8f1, 0x5110, 0x30f0, 0x30cf, 0x28cf, 0x28cf, 0x28cf, 0x20ae, 0x20ce, 0x20ce, 0x20ae, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x20ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x00f7, 0x0119, 0x0119, 0x08f6, 0x18d0, 0x20ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x10d0, 0x08f6, 0x0119, 0x0119, 0x00f7, 0x18ce, 0x18ad, 0x18cd, 0x18ae, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18d0, 0x00f8, 0x0119, 0x00f7, 0x18ae, 0x18ad, 0x18ad, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x10cf, 0x00f8, 0x0119, 0x00f7, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x08f5, 0x0119, 0x0119, 0x00f7, 0x00f7, 0x0119, 0x0119, 0x08f5, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ce, 0x00f7, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x011a, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x08f3, 0x18ad, 0x18ad, 0x08f3, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0xc0d1, 0xc0d1, 0xc8d2, 0xb71a, 0xb71a, 0xb71a, 0xaefa, 0xb71a, 0xaf1a, 0xaefa, 0xa598, 0x8191, 0x9191, 0xc9b3, 0xc9b3, 0xc9d3, 0xc9d3, 0xc9b2, 0xc9b3, 0xc9d3, 0xbc76, 0xb71a, 0xb71a, 0xb71a, 0xb71a, 0xb71a, 0xb71a, 0xb71a, 0xb71a, 0xb71a, 0xb71a, 0x9c55, 0x8191, 0xa9b2, 0xc9d3, 0xc9d3, 0xc9b3, 0xc9b2, 0xc9b3, 0xc9d3, 0xc9d3, 0xb5b8, 0xb71a, 0xaf1a, 0xb71a, 0xb6fa, 0xb71a, 0xb71a, 0xb71a, 0xb71a, 0xb6fa, 0xaf1a, 0x9c56, 0x8191, 0xa992, 0xc9b3, 0xc9b3, 0xc9b3, 0xc9b3, 0xc9b3, 0xc9b3, 0xc9b3, 0xa3b5, 0x8191, 0x9992, 0xc9b2, 0xc9b3, 0xc9d2, 0xc9b2, 0xc9b3, 0xc9b2, 0xc9b3, 0xc9d3, 0xca13, 0xbdb8, 0xaefa, 0xaf1a, 0xb71a, 0xb6fa, 0xaefa, 0xaf19, 0xa4f7, 0x8991, 0xb1b2, 0xc9b3, 0xc9b3, 0xc9b3, 0xc9b3, 0xc9b3, 0xc9d2, 0xc9b3, 0xc9b3, 0xc314, 0xaf1a, 0xaf1a, 0xaef9, 0xaf1a, 0xaf1a, 0x89f1, 0x8191, 0xc1b2, 0xc9b3, 0xc9b3, 0xc9b3, 0xc9b2, 0xc9b2, 0xc9d3, 0xc9b3, 0xcab4, 0xb6b9, 0xaf1a, 0xb71a, 0xaefa, 0xb71a, 0xb6b9, 0x8a93, 0x8991, 0xc1d2, 0xc9b3, 0xc9b3, 0xc9b3, 0xc9b3, 0xc9b2, 0xc9d3, 0xc9b2, 0xa992, 0x8191, 0xa9b2, 0xc9d3, 0xc9b3, 0xc9d3, 0xc9b2, 0xc9b2, 0xc9b2, 0xc9b3, 0xb5b8, 0xaf1a, 0xaefa, 0xaf1a, 0xb71a, 0x9c56, 0x8191, 0xa992, 0xc9b3, 0xc9b3, 0xc9b3, 0xc9b3, 0xc9b3, 0xc9b3, 0xc9b3, 0xb5b8, 0xb6fa, 0xaf1a, 0xaf1a, 0xb6fa, 0x89f2, 0x8191, 0xc1b2, 0xc9b3, 0xc9b2, 0xc9d3, 0xc9b3, 0xc9b3, 0xc9b2, 0xc9d3, 0xcab4, 0xb6b9, 0xaf1a, 0xb71a, 0xb71a, 0xb6fa, 0xb71a, 0x92f3, 0x89b1, 0xc1b2, 0xc9d3, 0xc9b3, 0xc9b3, 0xc9d3, 0xc9d3, 0xc9b3, 0xc9d3, 0xc315, 0xb71a, 0xb71a, 0xb71a, 0xbdd9, 0xc132, 0xc0d1, 0xc8d1, 0xc8d1, 0xc8d1, 0xc8d1, 0xc0d1, 0xc0d1, 0x001f, 0x001f, 0x001f, 0x003f, 0x007f, 0x007f, 0x6878, 0xb8b1, 0xc0b1, 0xc0d1, 0xb8d1, 0x9954, 0x047f, 0x05bf, 0x05bf, 0x061a, 0x07ce, 0x07f2, 0x07fc, 0x07ff, 0x5c78, 0xb0f1, 0xb0f1, 0xb0f1, 0x6112, 0x5912, 0xa8f1, 0xa8f1, 0x60f0, 0x30f0, 0x28ef, 0x28cf, 0x28cf, 0x28ce, 0x20ce, 0x20ce, 0x20ce, 0x20ae, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18cd, 0x18ad, 0x0119, 0x00f9, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x08f6, 0x0119, 0x0119, 0x0119, 0x0118, 0x00f6, 0x10d3, 0x08f6, 0x0118, 0x0119, 0x0119, 0x0119, 0x08f7, 0x18ce, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x208d, 0x18b0, 0x00f8, 0x0139, 0x00f7, 0x18ce, 0x18ad, 0x18ad, 0x18ad, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18af, 0x00f8, 0x0119, 0x00f7, 0x18ce, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x00f7, 0x0119, 0x0119, 0x0119, 0x0119, 0x00f7, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x00f7, 0x0119, 0x00f7, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x08f5, 0x0119, 0x0119, 0x00f7, 0x00f7, 0x0119, 0x0119, 0x08f4, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0xc0b1, 0xc8b1, 0xc0b1, 0xbf19, 0xbf19, 0xbf19, 0xbf19, 0xbf19, 0xbf19, 0xbf19, 0xa4b5, 0x8191, 0xa1b2, 0xc9f3, 0xc9f3, 0xc9f3, 0xc9f3, 0xc9f3, 0xc9f3, 0xd1f3, 0xc496, 0xbf19, 0xbf19, 0xbf19, 0xbf19, 0xbf19, 0xbf19, 0xbf19, 0xbf19, 0xbf19, 0xbf19, 0xa455, 0x8191, 0xa9d2, 0xc9f3, 0xc9f3, 0xc9f3, 0xc9f3, 0xc9f3, 0xc9f3, 0xc9f3, 0xbdd8, 0xbf19, 0xbf19, 0xbf19, 0xbf39, 0xbf19, 0xbf19, 0xbf39, 0xbf19, 0xbf39, 0xbf39, 0xa455, 0x8191, 0xa9d2, 0xc9f3, 0xc9f3, 0xc9f3, 0xc9f3, 0xc9f3, 0xc9f3, 0xc9f3, 0x99f2, 0x8991, 0xb1d2, 0xc9f3, 0xc9f3, 0xc9f3, 0xc9f3, 0xc9f3, 0xc9f3, 0xc9f3, 0xc9f2, 0xc577, 0xbf19, 0xbf39, 0xbf39, 0xbf19, 0xbf19, 0xbf19, 0xbf19, 0xbf19, 0x9bf5, 0x8191, 0xb1d2, 0xc9f3, 0xc9f3, 0xd1f3, 0xc9f3, 0xc9f3, 0xc9f3, 0xc9f3, 0xc9f3, 0xbe78, 0xbf19, 0xbf19, 0xbf19, 0xb6b9, 0x8191, 0x8991, 0xc9f3, 0xc9f3, 0xc9f2, 0xc9f3, 0xc9f3, 0xc9d3, 0xc9f3, 0xc9f3, 0xbed8, 0xbf19, 0xbf19, 0xbf19, 0xbf19, 0xbf19, 0xbf39, 0xad57, 0x8191, 0x99b2, 0xc9f3, 0xc9f2, 0xc9f3, 0xc9f3, 0xc9f3, 0xc9f3, 0xc9f3, 0xb9d3, 0x8191, 0xa9b2, 0xc9f3, 0xc9f3, 0xc9f3, 0xc9f3, 0xc9f3, 0xc9f3, 0xc9f3, 0xbdd8, 0xbf19, 0xbf19, 0xbf19, 0xbf19, 0x9c75, 0x8191, 0xa9d2, 0xc9f3, 0xc9f3, 0xc9f3, 0xc9f3, 0xc9f3, 0xc9f3, 0xc9f3, 0xbdd8, 0xbf19, 0xbf19, 0xbf19, 0xb6b8, 0x8191, 0x8191, 0xc9f3, 0xc9f3, 0xc9f3, 0xc9f3, 0xc9f3, 0xc9f3, 0xc9f3, 0xc9f3, 0xbe78, 0xbf19, 0xbf39, 0xbf19, 0xbf39, 0xbf19, 0xbf19, 0xadb7, 0x8191, 0x91b1, 0xc9f3, 0xc9f3, 0xc9f3, 0xc9f2, 0xc9f3, 0xc9f3, 0xc9f3, 0xc9f3, 0xc71a, 0xbf1a, 0xc73a, 0xbf3a, 0xc659, 0xc9d3, 0xc0b1, 0xc8b1, 0xc0b1, 0xc0b1, 0xc8b1, 0xc0b1, 0x001f, 0x001f, 0x001f, 0x003f, 0x005f, 0x003f, 0x001f, 0x7076, 0xc0d1, 0xb8d1, 0xb8d1, 0xb8d1, 0x0bff, 0x05df, 0x05bf, 0x0639, 0x07cd, 0x07f2, 0x07fc, 0x07ff, 0x63f7, 0xb0f1, 0xb0f1, 0xb0f1, 0x4132, 0x4111, 0xa0f1, 0xb0f1, 0x90f1, 0x30f0, 0x28ef, 0x28ce, 0x28cf, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ae, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x00f9, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18cd, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x10d1, 0x0118, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x00f8, 0x10d2, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x10cf, 0x00f8, 0x0119, 0x00f7, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, + 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18cd, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x10cf, 0x00f9, 0x0119, 0x00f7, 0x18ce, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x10d1, 0x08f3, 0x08f3, 0x10d2, 0x18cd, 0x20ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x00f7, 0x0119, 0x00f8, 0x10d0, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ce, 0x00f7, 0x0119, 0x0119, 0x0119, 0x0119, 0x00f7, 0x18ce, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18cd, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ae, 0xc0b1, 0xc0b1, 0xc0b1, 0xc738, 0xc738, 0xc738, 0xc738, 0xc738, 0xc738, 0xc738, 0xa475, 0x8991, 0xa9d2, 0xca13, 0xca33, 0xca33, 0xca34, 0xca13, 0xca33, 0xca33, 0xccb6, 0xc738, 0xc738, 0xc738, 0xc738, 0xc738, 0xc738, 0xc738, 0xc738, 0xc738, 0xc738, 0xa455, 0x8191, 0xa9d2, 0xca33, 0xca33, 0xca13, 0xca33, 0xca33, 0xca33, 0xd213, 0xc5f7, 0xc738, 0xc738, 0xc738, 0xc738, 0xc739, 0xc738, 0xc738, 0xc738, 0xc738, 0xc738, 0xa475, 0x8191, 0xa9d2, 0xca13, 0xca33, 0xca33, 0xca33, 0xca33, 0xca13, 0xca33, 0x91b1, 0x8191, 0xca13, 0xca33, 0xca33, 0xca33, 0xca33, 0xca13, 0xca33, 0xca13, 0xc455, 0xc738, 0xc739, 0xc738, 0xc738, 0xc738, 0xc738, 0xc739, 0xc738, 0xc738, 0xc738, 0x8a52, 0x8991, 0xc213, 0xca13, 0xca13, 0xca13, 0xca13, 0xca33, 0xca13, 0xca33, 0xcd56, 0xc738, 0xc738, 0xc739, 0xb5d7, 0x8191, 0x91b1, 0xca13, 0xca13, 0xca13, 0xd233, 0xca33, 0xca33, 0xca33, 0xcb55, 0xcf38, 0xc738, 0xc738, 0xc738, 0xc738, 0xc738, 0xc739, 0xc738, 0x8191, 0x8191, 0xca13, 0xca13, 0xca13, 0xca33, 0xca13, 0xca33, 0xd233, 0xca13, 0x8191, 0xa9d2, 0xca33, 0xca33, 0xca13, 0xca13, 0xca33, 0xca13, 0xca33, 0xcdf7, 0xc738, 0xc738, 0xc738, 0xc739, 0xa475, 0x8191, 0xa9d2, 0xca13, 0xca33, 0xca33, 0xca33, 0xca33, 0xca13, 0xca33, 0xc5f7, 0xc738, 0xc738, 0xc738, 0xb5d6, 0x8191, 0x99b2, 0xca33, 0xca33, 0xd213, 0xca33, 0xca33, 0xca33, 0xca33, 0xcb74, 0xc739, 0xc738, 0xc738, 0xc738, 0xc738, 0xc739, 0xc738, 0xc738, 0x8ab2, 0x8191, 0xba13, 0xca13, 0xca13, 0xca33, 0xca13, 0xca33, 0xca33, 0xca13, 0xcf39, 0xc739, 0xc759, 0xcf3a, 0xcf39, 0xced9, 0xc9f3, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0x001f, 0x001f, 0x001f, 0x001f, 0x003f, 0x003f, 0x001f, 0x001f, 0x9894, 0xb8d1, 0xb8d1, 0xb8d1, 0x42da, 0x059f, 0x05ff, 0x0678, 0x07cc, 0x07f1, 0x07fc, 0x07ff, 0x82b5, 0xa8f1, 0xb0f1, 0x98f2, 0x4132, 0x3912, 0x70f1, 0xa8f1, 0xa8f1, 0x50f0, 0x28cf, 0x28cf, 0x28ce, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ae, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cf, 0x10d4, 0x08f5, 0x08f6, 0x08f4, 0x08d3, 0x10cf, 0x18ad, 0x18ad, 0x20ad, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x10cf, 0x00f9, 0x0119, 0x00f7, 0x18ce, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, + 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x10d0, 0x0118, 0x0119, 0x00f7, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x00f7, 0x0119, 0x00f8, 0x10cf, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x10d2, 0x10d3, 0x08f3, 0x10d2, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0xc0b1, 0xc0b1, 0xc0b1, 0xcf57, 0xd758, 0xd758, 0xcf58, 0xd758, 0xcf58, 0xd758, 0xac74, 0x8191, 0xa9f2, 0xca53, 0xd253, 0xca54, 0xca53, 0xca53, 0xca53, 0xca54, 0xccd6, 0xcf58, 0xd758, 0xd758, 0xd758, 0xd758, 0xd758, 0xd758, 0xd758, 0xd758, 0xcf58, 0xac75, 0x8191, 0xa9f2, 0xca53, 0xca53, 0xd253, 0xca53, 0xca53, 0xca53, 0xd254, 0xce17, 0xcf57, 0xd758, 0xcf58, 0xd758, 0xcf58, 0xd758, 0xd758, 0xcf58, 0xd758, 0xcf58, 0xac74, 0x8191, 0xa9f2, 0xca53, 0xca54, 0xd253, 0xca53, 0xca53, 0xca54, 0xca53, 0x99d2, 0x89b1, 0xca53, 0xca53, 0xca53, 0xca53, 0xd253, 0xca53, 0xca53, 0xca54, 0xd6b7, 0xd758, 0xcf58, 0xcf57, 0xcf58, 0xd758, 0xd757, 0xd758, 0xd757, 0xd758, 0xcf58, 0xb535, 0x8191, 0xa1d2, 0xca53, 0xca53, 0xca53, 0xd254, 0xca73, 0xca53, 0xca53, 0xcc95, 0xd758, 0xd758, 0xcf58, 0xbdd6, 0x8191, 0x99d2, 0xca53, 0xca53, 0xca54, 0xca53, 0xca53, 0xd254, 0xca54, 0xd435, 0xd758, 0xd758, 0xcf58, 0xd758, 0xd758, 0xcf57, 0xd738, 0xcf58, 0x9af3, 0x8991, 0xc213, 0xca54, 0xca53, 0xca53, 0xd253, 0xca53, 0xca54, 0xca73, 0x8191, 0xa9f2, 0xca53, 0xd253, 0xd253, 0xca54, 0xd253, 0xca53, 0xca54, 0xce17, 0xcf58, 0xd758, 0xd758, 0xcf58, 0xac74, 0x8191, 0xa9f2, 0xca53, 0xca54, 0xd253, 0xca53, 0xca53, 0xca54, 0xca53, 0xd617, 0xd758, 0xcf58, 0xcf58, 0xbdd6, 0x8191, 0x91b2, 0xca53, 0xd254, 0xca53, 0xca53, 0xca54, 0xd253, 0xd253, 0xccd6, 0xd758, 0xd758, 0xd758, 0xd758, 0xcf57, 0xd757, 0xcf58, 0xd758, 0x9af3, 0x8191, 0xba33, 0xca54, 0xca53, 0xd253, 0xca54, 0xca53, 0xd253, 0xca53, 0xd758, 0xd758, 0xdf59, 0xd779, 0xd759, 0xd759, 0xd6f9, 0xc1f2, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0x001f, 0x001f, 0x001f, 0x003f, 0x001f, 0x001f, 0x001f, 0x001f, 0x183e, 0xb0d2, 0xb8d1, 0xb8d1, 0x9974, 0x059f, 0x061f, 0x0698, 0x07cc, 0x07f0, 0x07fc, 0x07ff, 0x82b5, 0xb0f1, 0xb0f1, 0x88f1, 0x4132, 0x4111, 0x3910, 0x98f1, 0xa8f2, 0x88f1, 0x28ef, 0x28cf, 0x28ce, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ae, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x10d0, 0x0118, 0x0119, 0x00f7, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x10cf, 0x0118, 0x00f9, 0x08f7, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x0117, 0x0119, 0x0118, 0x10d0, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0xc0b1, 0xc0b1, 0xc0b1, 0xdf77, 0xdf77, 0xdf77, 0xdf77, 0xdf77, 0xdf77, 0xdf77, 0xb494, 0x8191, 0xaa12, 0xca94, 0xca74, 0xca94, 0xca94, 0xca94, 0xca94, 0xd294, 0xd4f5, 0xdf77, 0xdf77, 0xdf77, 0xdf77, 0xdf77, 0xdf77, 0xdf77, 0xdf77, 0xdf77, 0xdf77, 0xb474, 0x8191, 0xaa12, 0xca94, 0xca94, 0xd294, 0xca94, 0xd294, 0xca94, 0xd294, 0xde36, 0xdf77, 0xdf77, 0xdf57, 0xdf77, 0xdf77, 0xdf77, 0xdf77, 0xdf77, 0xdf77, 0xdf77, 0xb494, 0x8191, 0xaa12, 0xca94, 0xd294, 0xd294, 0xd294, 0xd294, 0xd294, 0xd294, 0x99d2, 0x91d2, 0xd294, 0xca94, 0xd294, 0xca94, 0xd294, 0xca94, 0xca94, 0xd3d4, 0xdf77, 0xdf77, 0xdf77, 0xdf76, 0xdf77, 0xdf77, 0xdf77, 0xdf77, 0xdf77, 0xdf57, 0xdf77, 0xdf77, 0x8191, 0x8992, 0xca94, 0xca94, 0xca94, 0xd294, 0xca94, 0xca93, 0xca94, 0xd3d5, 0xdf77, 0xdf77, 0xdf77, 0xc5f5, 0x8191, 0x99d2, 0xca94, 0xca94, 0xd273, 0xca94, 0xd294, 0xca94, 0xd294, 0xd515, 0xdf77, 0xdf77, 0xdf77, 0xdf77, 0xdf77, 0xdf77, 0xdf77, 0xdf77, 0x9b12, 0x8191, 0xba53, 0xca94, 0xca94, 0xd294, 0xca94, 0xca93, 0xd294, 0xca94, 0x8191, 0xaa12, 0xd294, 0xd294, 0xd294, 0xca94, 0xca94, 0xd294, 0xd294, 0xde36, 0xdf77, 0xdf77, 0xdf57, 0xdf77, 0xb474, 0x8191, 0xaa12, 0xca94, 0xd294, 0xd294, 0xd294, 0xd294, 0xd294, 0xd294, 0xde36, 0xdf77, 0xdf77, 0xdf77, 0xc5f5, 0x8191, 0x99d2, 0xd294, 0xca94, 0xca94, 0xd294, 0xca94, 0xca94, 0xca93, 0xd4f5, 0xdf77, 0xdf77, 0xdf77, 0xdf77, 0xdf77, 0xdf77, 0xdf77, 0xdf77, 0x9b12, 0x8191, 0xba53, 0xd294, 0xca94, 0xca94, 0xd294, 0xca94, 0xd294, 0xca94, 0xdf78, 0xdf78, 0xdf78, 0xdf78, 0xdf78, 0xdf78, 0xe779, 0xdf19, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x385b, 0xb8d1, 0xb8d1, 0xb8d1, 0x2c3c, 0x061f, 0x06b7, 0x07cb, 0x07f0, 0x07fb, 0x07ff, 0xb0f1, 0xb0f1, 0xa8f1, 0x7912, 0x4132, 0x4111, 0x3911, 0x4110, 0xa0f1, 0xa8f1, 0x48ef, 0x28ce, 0x28ce, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ad, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18cd, 0x18ad, 0x18ad, 0x10cf, 0x0118, 0x00f9, 0x08f7, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x10cf, 0x00f9, 0x0119, 0x08f7, 0x18ae, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x00f7, 0x0119, 0x0118, 0x10cf, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x208e, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0xb8d1, 0xb8d1, 0xc0d1, 0xe776, 0xe796, 0xe797, 0xe797, 0xe796, 0xe796, 0xe796, 0xb494, 0x8191, 0xaa33, 0xd2b4, 0xd2b4, 0xd2b4, 0xcab4, 0xd2d4, 0xd2b4, 0xd2b4, 0xdd35, 0xe776, 0xe796, 0xe796, 0xe796, 0xe796, 0xe796, 0xe796, 0xe796, 0xe796, 0xe796, 0xb474, 0x8191, 0xaa33, 0xd2d4, 0xd2d4, 0xd2d4, 0xd2b4, 0xd2b4, 0xcad4, 0xd2d4, 0xe656, 0xef96, 0xe776, 0xe797, 0xe796, 0xe796, 0xe776, 0xe777, 0xe796, 0xe796, 0xe796, 0xb494, 0x8191, 0xaa33, 0xd2b4, 0xd2b4, 0xd2b4, 0xd2b4, 0xd2b4, 0xd2b4, 0xd2b4, 0x99d2, 0x99f2, 0xcab4, 0xd2b4, 0xd2d4, 0xd2b4, 0xd2b4, 0xcad4, 0xd2b4, 0xd3f5, 0xe777, 0xe797, 0xef97, 0xe796, 0xe796, 0xe776, 0xe777, 0xe796, 0xe796, 0xe796, 0xe777, 0xef97, 0x8191, 0x8191, 0xd2b4, 0xd2b4, 0xd2d4, 0xd2d4, 0xd2b4, 0xd2b4, 0xcad4, 0xd3d5, 0xe796, 0xe796, 0xe796, 0xce15, 0x8191, 0x99f2, 0xcad4, 0xd2b4, 0xd2d4, 0xd2b4, 0xd2b4, 0xcab4, 0xd2b4, 0xdd35, 0xe777, 0xef76, 0xe796, 0xe797, 0xe797, 0xe776, 0xe796, 0xe776, 0xc534, 0xb494, 0xcc15, 0xd3f5, 0xdbf4, 0xdbf4, 0xdbf5, 0xd3f5, 0xd3f4, 0xcb34, 0x8191, 0xaa32, 0xd2b4, 0xd2b4, 0xd2b4, 0xd2b4, 0xd2d4, 0xd2b4, 0xcab4, 0xe656, 0xe776, 0xe796, 0xe796, 0xe776, 0xb494, 0x8191, 0xaa33, 0xd2b4, 0xd2b4, 0xd2b4, 0xd2b4, 0xd2b4, 0xd2b4, 0xd2b4, 0xde56, 0xe796, 0xe796, 0xe796, 0xce15, 0x8191, 0x99f2, 0xd2b4, 0xd2b4, 0xd2d4, 0xd2b4, 0xd2d4, 0xcad4, 0xcad4, 0xdd15, 0xe796, 0xe796, 0xe776, 0xe796, 0xef96, 0xe796, 0xe796, 0xe796, 0x9b13, 0x8191, 0xba73, 0xd2b4, 0xd2b4, 0xd2b4, 0xd2b4, 0xd2b4, 0xd2b4, 0xd2b4, 0xe797, 0xef97, 0xef77, 0xef97, 0xef78, 0xef98, 0xef98, 0xef98, 0xc992, 0xb8d1, 0xc0d1, 0xc0b1, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x7096, 0xb8d1, 0xb8d1, 0x8a35, 0x063f, 0x06d6, 0x07ea, 0x07f1, 0x07fc, 0x07ff, 0xa8f1, 0xa8f1, 0xa8f1, 0x6132, 0x4132, 0x4111, 0x38f1, 0x3110, 0x48f0, 0xa8f1, 0x98f1, 0x30cf, 0x28cf, 0x20ce, 0x20ce, 0x20ce, 0x20ae, 0x20ad, 0x20ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x10d0, 0x00f9, 0x0119, 0x08f7, 0x18ae, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18cf, 0x00f8, 0x0119, 0x0117, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x00f7, 0x0119, 0x0118, 0x18d0, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x20ad, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0xb8d1, 0xb8d1, 0xb8d1, 0xf796, 0xf7b6, 0xf796, 0xf795, 0xf795, 0xf796, 0xefb6, 0xbc93, 0x8191, 0xaa52, 0xd2f4, 0xd2f4, 0xd2f4, 0xd2f5, 0xd2f5, 0xd2f5, 0xd2f4, 0xdd55, 0xf7b6, 0xf7b6, 0xf7b6, 0xf7b6, 0xf7b6, 0xf7b6, 0xf7b6, 0xf7b6, 0xf7b6, 0xefb6, 0xbc93, 0x8191, 0xaa53, 0xd2f5, 0xd2f4, 0xd2f4, 0xd2f4, 0xd2f4, 0xd2f4, 0xd2f4, 0xe675, 0xf796, 0xf795, 0xf796, 0xf796, 0xf796, 0xf7b6, 0xf7b5, 0xf7b5, 0xef96, 0xf796, 0xbc93, 0x8191, 0xaa33, 0xd2f4, 0xd2f4, 0xd2f4, 0xd2f4, 0xd2f4, 0xd2f4, 0xd2f4, 0x99f2, 0x99f2, 0xd2f5, 0xd2f4, 0xd2f4, 0xd2f5, 0xd2d4, 0xd2f4, 0xd2f4, 0xdc75, 0xf795, 0xf795, 0xf795, 0xf796, 0xf7b5, 0xf796, 0xf796, 0xf796, 0xf796, 0xefb6, 0xf7b5, 0xf796, 0x8191, 0x8991, 0xd2f4, 0xd2f4, 0xd2f4, 0xd2f4, 0xd2f4, 0xd2f4, 0xd2f4, 0xdc15, 0xf796, 0xf796, 0xf796, 0xd615, 0x8191, 0x99f2, 0xd2f4, 0xd2f4, 0xd2f4, 0xd2f4, 0xd2f5, 0xd2f4, 0xd2f5, 0xe535, 0xf7b6, 0xf7b5, 0xf796, 0xefb6, 0xf796, 0xf795, 0xf7b6, 0xf796, 0xf7b6, 0xf795, 0xf796, 0xf796, 0xf795, 0xf7b6, 0xf795, 0xf7b6, 0xf796, 0xbc93, 0x8191, 0xaa53, 0xd2f4, 0xd2f4, 0xd2f4, 0xd2f4, 0xd2f4, 0xd2f4, 0xd2f4, 0xee75, 0xf796, 0xf796, 0xf7b5, 0xf796, 0xbc93, 0x8191, 0xaa33, 0xd2f4, 0xd2f4, 0xd2f4, 0xd2f4, 0xd2f4, 0xd2f4, 0xd2f4, 0xee75, 0xf796, 0xf7b5, 0xf795, 0xd634, 0x8191, 0x99f2, 0xd2f4, 0xd2f5, 0xd2f4, 0xd2f5, 0xd2f5, 0xd2f5, 0xd2d4, 0xe555, 0xf796, 0xf7b5, 0xf7b6, 0xf7b6, 0xf795, 0xf7b6, 0xf796, 0xf7b6, 0xa311, 0x8191, 0xba94, 0xd2f4, 0xd2f4, 0xd2f4, 0xd2f4, 0xd2f4, 0xd2f4, 0xd2f4, 0xf796, 0xf796, 0xf797, 0xf797, 0xf797, 0xf7b7, 0xf798, 0xf798, 0xd273, 0xb8d1, 0xb8d1, 0xb8d1, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x98b4, 0xb8d1, 0xb8d1, 0x3c9b, 0x06f5, 0x07e9, 0x07f1, 0x07fd, 0x26bd, 0xb0f1, 0xb0f2, 0xb0f1, 0x4932, 0x4132, 0x4111, 0x3911, 0x3110, 0x30f0, 0x60f0, 0xa911, 0x70f0, 0x20ce, 0x20cf, 0x20ae, 0x20ce, 0x20ae, 0x20ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18cf, 0x00f8, 0x0119, 0x0117, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x10cf, 0x00f8, 0x0119, 0x00f7, 0x18ae, 0x18cd, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x18ad, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x0117, 0x0119, 0x0118, 0x18d0, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0xb8d1, 0xb8d1, 0xb8d1, 0xff94, 0xffb5, 0xffb5, 0xffb5, 0xffb5, 0xffb4, 0xffb5, 0xc493, 0x8191, 0xaa53, 0xd315, 0xd335, 0xd335, 0xd335, 0xd334, 0xd315, 0xd335, 0xe575, 0xffb5, 0xffb5, 0xffb5, 0xffb5, 0xffb5, 0xffb5, 0xffb5, 0xffb5, 0xffb5, 0xffb5, 0xc493, 0x8191, 0xaa53, 0xd335, 0xd335, 0xd314, 0xd315, 0xd335, 0xd335, 0xd335, 0xf675, 0xffb5, 0xffb4, 0xffb5, 0xffb5, 0xffb4, 0xffb4, 0xffb4, 0xffb5, 0xffb5, 0xff95, 0xc493, 0x8191, 0xaa53, 0xd335, 0xd335, 0xd335, 0xd335, 0xd315, 0xd315, 0xd335, 0x99f2, 0x99f2, 0xd335, 0xd314, 0xd315, 0xd335, 0xd335, 0xd315, 0xd335, 0xdc54, 0xffb5, 0xffb5, 0xffb5, 0xffb5, 0xffb4, 0xffb5, 0xffb5, 0xffb5, 0xffb5, 0xffb5, 0xffb4, 0xffb5, 0x8191, 0x8191, 0xd334, 0xd315, 0xd335, 0xd335, 0xd335, 0xd335, 0xd315, 0xdc34, 0xffb4, 0xffb5, 0xffb5, 0xde34, 0x8191, 0x99f2, 0xd314, 0xd335, 0xd315, 0xd334, 0xd334, 0xd335, 0xd335, 0xe574, 0xffb5, 0xffb5, 0xffb5, 0xffb5, 0xffb5, 0xffb5, 0xffb5, 0xffb4, 0xffb4, 0xffb5, 0xffb4, 0xffb5, 0xffb5, 0xffb5, 0xffb4, 0xffb5, 0xffb5, 0xc4b3, 0x8191, 0xaa53, 0xd335, 0xd335, 0xd314, 0xd315, 0xd335, 0xd335, 0xd335, 0xedf5, 0xffb5, 0xffb5, 0xffb5, 0xffb5, 0xc493, 0x8191, 0xaa53, 0xd335, 0xd335, 0xd335, 0xd335, 0xd315, 0xd315, 0xd335, 0xf694, 0xffb5, 0xffb5, 0xffb5, 0xde14, 0x8191, 0x99f2, 0xd335, 0xd335, 0xd314, 0xd334, 0xd314, 0xd334, 0xd315, 0xe555, 0xffb5, 0xffb5, 0xffb5, 0xffb4, 0xffb5, 0xffb5, 0xffb5, 0xffb5, 0xa332, 0x8191, 0xbab4, 0xd335, 0xd335, 0xd335, 0xd315, 0xd334, 0xd335, 0xd335, 0xffb5, 0xffb6, 0xffb6, 0xffb6, 0xffb6, 0xffb6, 0xffb7, 0xffb8, 0xdbd4, 0xb8d2, 0xb8d1, 0xb8d1, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x003f, 0x083f, 0x70f7, 0xb8d1, 0xa952, 0x0e94, 0x07c9, 0x07f2, 0x07fd, 0x2e3c, 0xa8f1, 0xa8f1, 0x9911, 0x4132, 0x4132, 0x3911, 0x3910, 0x30f0, 0x30f0, 0x30ef, 0x58f0, 0xa8f1, 0x40cf, 0x20ae, 0x20ce, 0x20ce, 0x20ae, 0x20ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18b0, 0x00f8, 0x0119, 0x00f7, 0x18ae, 0x18cd, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x20ad, 0x18cf, 0x00f8, 0x0119, 0x00f7, 0x18ce, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x00f7, 0x00f9, 0x0118, 0x18cf, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0xb8d1, 0xb8d1, 0xb8d1, 0xfe2e, 0xfe2e, 0xfe2e, 0xfe2e, 0xfe2e, 0xfe4e, 0xfe4e, 0xc3f0, 0x8191, 0xaa73, 0xd355, 0xd355, 0xd355, 0xd355, 0xd355, 0xd355, 0xd355, 0xecd1, 0xfe2e, 0xfe2e, 0xfe2e, 0xfe2e, 0xfe2e, 0xfe2e, 0xfe2e, 0xfe2e, 0xfe2e, 0xfe2e, 0xc3ef, 0x8191, 0xaa73, 0xd355, 0xd355, 0xd355, 0xd355, 0xd355, 0xd355, 0xd354, 0xf590, 0xfe4e, 0xfe4e, 0xfe2e, 0xfe2e, 0xfe4e, 0xfe2e, 0xfe2e, 0xfe2e, 0xfe2e, 0xfe2e, 0xc3ef, 0x8191, 0xaa73, 0xd355, 0xd355, 0xd355, 0xd355, 0xd355, 0xd355, 0xd355, 0x9a12, 0x91f2, 0xd355, 0xd354, 0xd355, 0xd355, 0xd355, 0xd355, 0xd355, 0xdbd4, 0xfe4e, 0xfe2e, 0xfe2e, 0xfe2e, 0xfe2e, 0xfe4e, 0xfe2e, 0xfe4e, 0xfe2e, 0xfe2e, 0xfe2e, 0xfe4e, 0x8191, 0x8191, 0xd355, 0xd355, 0xd355, 0xd355, 0xd355, 0xd355, 0xd355, 0xdc13, 0xfe4e, 0xfe2e, 0xfe2e, 0xe50f, 0x8191, 0x99f2, 0xd355, 0xd355, 0xd355, 0xd355, 0xd355, 0xd355, 0xd354, 0xecd1, 0xfe2e, 0xfe2e, 0xfe2e, 0xfe2e, 0xfe2e, 0xfe2e, 0xfe2e, 0xfe2e, 0xfe4e, 0xfe2e, 0xfe2e, 0xfe2e, 0xfe2e, 0xfe4e, 0xfe4e, 0xfe2e, 0xfe2e, 0xc3cf, 0x8191, 0xaa73, 0xd355, 0xd355, 0xd355, 0xd355, 0xd355, 0xd355, 0xd355, 0xe4d1, 0xfe4e, 0xfe2e, 0xfe2e, 0xfe4e, 0xc3d0, 0x8191, 0xaa73, 0xd355, 0xd355, 0xd355, 0xd355, 0xd355, 0xd355, 0xd355, 0xf590, 0xfe4e, 0xfe2e, 0xfe2e, 0xe50f, 0x8191, 0x9a12, 0xd355, 0xd355, 0xd355, 0xd355, 0xd355, 0xd355, 0xd355, 0xecd2, 0xfe2e, 0xfe4e, 0xfe2e, 0xfe4e, 0xfe4e, 0xfe4e, 0xfe4d, 0xfe2f, 0xa2b0, 0x8191, 0xc2f4, 0xd355, 0xd355, 0xd355, 0xd355, 0xd355, 0xd355, 0xd355, 0xfe2f, 0xfe50, 0xfe50, 0xfe50, 0xfe51, 0xfe51, 0xfe52, 0xfe52, 0xe3d2, 0xb8d2, 0xb8d1, 0xb8d1, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x003f, 0x001f, 0x003f, 0x00df, 0x59f8, 0xb8d1, 0x8291, 0x07c9, 0x07f2, 0x07fe, 0x455a, 0xb0f1, 0xa8f1, 0x8112, 0x4132, 0x4132, 0x3911, 0x38f0, 0x30f0, 0x30ef, 0x28ef, 0x28cf, 0x50cf, 0x48ef, 0x20ae, 0x20ae, 0x20ce, 0x20ae, 0x20ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18af, 0x00f8, 0x0139, 0x00f7, 0x18ce, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18af, 0x0118, 0x0119, 0x00f7, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x00f7, 0x0119, 0x00f8, 0x10cf, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ac, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0xb8d1, 0xb0d1, 0xb0d2, 0xfc8d, 0xfc6d, 0xfc6d, 0xfc8d, 0xfc6d, 0xfc6d, 0xfc6d, 0xc30f, 0x81b1, 0xaa73, 0xd395, 0xd395, 0xd395, 0xd375, 0xd395, 0xd395, 0xd375, 0xec11, 0xfc6d, 0xfc6d, 0xfc6d, 0xfc6d, 0xfc6d, 0xfc6d, 0xfc6d, 0xfc6d, 0xfc6d, 0xfc8d, 0xc30f, 0x8191, 0xaa93, 0xd375, 0xd375, 0xd395, 0xd395, 0xd375, 0xd395, 0xd396, 0xf42f, 0xfc6d, 0xfc6d, 0xfc8d, 0xfc6d, 0xfc6d, 0xfc8d, 0xfc8d, 0xfc6d, 0xfc6d, 0xfc8d, 0xc30f, 0x8191, 0xaa93, 0xd395, 0xd395, 0xd395, 0xd395, 0xd375, 0xd375, 0xd395, 0x9a12, 0x8191, 0xd395, 0xd395, 0xd396, 0xd395, 0xd395, 0xd375, 0xd395, 0xd395, 0xf44f, 0xfc8d, 0xfc6d, 0xfc6d, 0xfc8d, 0xfc6d, 0xfc6d, 0xfc6d, 0xfc6d, 0xfc8d, 0xfc8d, 0xfc6d, 0x8191, 0x8191, 0xd395, 0xd395, 0xd395, 0xd375, 0xd395, 0xd395, 0xd396, 0xdbd3, 0xfc8d, 0xfc6d, 0xfc6d, 0xe3ce, 0x8191, 0x9a12, 0xd395, 0xd395, 0xd395, 0xd376, 0xd395, 0xd395, 0xd395, 0xec11, 0xfc6d, 0xfc6d, 0xfc6d, 0xfc6d, 0xfc8d, 0xfc8d, 0xfc6d, 0xfc6d, 0xfc6d, 0xfc6d, 0xfc6d, 0xfc6d, 0xfc6d, 0xfc6d, 0xfc8d, 0xfc6d, 0xfc8d, 0xc30f, 0x8191, 0xaa93, 0xd375, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xebf1, 0xfc8d, 0xfc6d, 0xfc8d, 0xfc6d, 0xc30f, 0x8191, 0xaa93, 0xd395, 0xd395, 0xd395, 0xd395, 0xd375, 0xd375, 0xd395, 0xf42f, 0xfc6d, 0xfc6d, 0xfc8d, 0xe3ce, 0x8191, 0x9a12, 0xd395, 0xd395, 0xd375, 0xd395, 0xd376, 0xd395, 0xd395, 0xebf1, 0xfc8d, 0xfc6d, 0xfc6d, 0xfc8d, 0xfc6d, 0xfc6d, 0xfc6d, 0xfc8d, 0xa250, 0x8191, 0xc314, 0xd375, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd375, 0xfc8e, 0xfc8f, 0xfc8f, 0xfc8f, 0xfcb0, 0xfcb0, 0xfcb1, 0xfcb1, 0xf3b2, 0xb8d1, 0xb0f1, 0xb8d1, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x003f, 0x003f, 0x005f, 0x031f, 0x2d3b, 0x99b2, 0x454b, 0x07f3, 0x07fe, 0x5498, 0xb0f1, 0xa8f1, 0x6912, 0x4912, 0x4112, 0x3911, 0x3110, 0x30f0, 0x30ef, 0x30cf, 0x28cf, 0x20ce, 0x20ce, 0x20ce, 0x20cd, 0x20ce, 0x20ae, 0x20ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ac, 0x18cd, 0x10d1, 0x08f3, 0x08d3, 0x10d1, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x10cf, 0x00f8, 0x0119, 0x00f7, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, + 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x00f9, 0x0119, 0x0119, 0x0119, 0x0119, 0x00f6, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x00f7, 0x0119, 0x00f8, 0x18cf, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0xb0f1, 0xb0f1, 0xb0d1, 0xfc8d, 0xfc8d, 0xfc8d, 0xfc8d, 0xfc8d, 0xfc8d, 0xfc8d, 0xc30f, 0x8191, 0xaa93, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xec11, 0xfc8d, 0xfc8d, 0xfc8d, 0xfc8d, 0xfc8d, 0xfc8d, 0xfc8d, 0xfc8d, 0xfc8d, 0xfc8d, 0xc30f, 0x8191, 0xaa93, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xf44f, 0xfc8d, 0xfc8d, 0xfc8d, 0xfc8d, 0xfc8d, 0xfc8d, 0xfc8d, 0xfc8d, 0xfc8d, 0xfc8d, 0xc30f, 0x8191, 0xaa93, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0x9a12, 0x8191, 0xc334, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xdbb4, 0xfc8e, 0xfc8d, 0xfc8d, 0xfc8d, 0xfc8d, 0xfc8d, 0xfc8d, 0xfc8d, 0xfc8d, 0xfc8d, 0xfc8d, 0x8191, 0x8191, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd375, 0xdbd3, 0xfc8d, 0xfc8d, 0xfc8d, 0xe3ce, 0x8191, 0x9a12, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xec11, 0xfc8d, 0xfc8d, 0xfc8d, 0xfc8d, 0xfc8d, 0xfc8d, 0xfc8d, 0xfc8d, 0xfc8d, 0xfc8d, 0xfc8d, 0xfc8d, 0xfc8d, 0xfc8d, 0xfc8d, 0xfc8d, 0xfc8d, 0xcb2f, 0x8191, 0xaa93, 0xd395, 0xd395, 0xd395, 0xd395, 0xd396, 0xd395, 0xd395, 0xec11, 0xfc8d, 0xfc8d, 0xfc8d, 0xfc8d, 0xc30f, 0x8191, 0xaa93, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xf44f, 0xfc8d, 0xfc8d, 0xfc8d, 0xcb6f, 0x8191, 0x9a32, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xec11, 0xfc8d, 0xfc8d, 0xfc8d, 0xfc8d, 0xfc8d, 0xfc8d, 0xfc8d, 0xfc8d, 0xa250, 0x8191, 0xc314, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xfc8e, 0xfc8f, 0xfcaf, 0xfcaf, 0xfcb0, 0xfcb0, 0xfcb0, 0xfcb2, 0xf451, 0xb0d1, 0xb0d1, 0xb0d1, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x003f, 0x003f, 0x003f, 0x005f, 0x025f, 0x06fd, 0x0770, 0x0f88, 0x07f4, 0x07ff, 0x5478, 0xa8f1, 0xa8f1, 0x5932, 0x4132, 0x4111, 0x3911, 0x3911, 0x30f0, 0x30f0, 0x30ef, 0x28cf, 0x28ce, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ad, 0x20ad, 0x20ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x00f7, 0x0119, 0x00f9, 0x0119, 0x0119, 0x00f7, 0x18ae, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cf, 0x0118, 0x0119, 0x00f7, 0x18ce, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, + 0x00f9, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0118, 0x0119, 0x00f6, 0x18ce, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x00f7, 0x0119, 0x00f8, 0x18cf, 0x18ad, 0x20ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0xb0f1, 0xb0f1, 0xb0d1, 0xfcad, 0xfccd, 0xfcad, 0xfcad, 0xfccd, 0xfccd, 0xfccd, 0xcb4e, 0x8191, 0xaa73, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xec31, 0xfcad, 0xfccd, 0xfccd, 0xfccd, 0xfccd, 0xfccd, 0xfccd, 0xfccd, 0xfccd, 0xfccd, 0xc32f, 0x8991, 0xaa93, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xf46f, 0xfccd, 0xfccd, 0xfccd, 0xfcad, 0xfccd, 0xfccd, 0xfccd, 0xfcad, 0xfcad, 0xfcad, 0xc32f, 0x8191, 0xaa93, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xbb11, 0x8191, 0xaa73, 0xd396, 0xd395, 0xd395, 0xd395, 0xd396, 0xd395, 0xd395, 0xd395, 0xdbb4, 0xfcae, 0xfcad, 0xfccd, 0xfcad, 0xfccd, 0xfcad, 0xfccd, 0xfccd, 0xfcad, 0xfcad, 0x8191, 0x8191, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd375, 0xdbd3, 0xfcad, 0xfccd, 0xfccd, 0xdbee, 0x8191, 0x9a12, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xec31, 0xfccd, 0xfcad, 0xfccd, 0xfccd, 0xfccd, 0xfccd, 0xfccd, 0xfccd, 0xfccd, 0xfccd, 0xfccd, 0xfccd, 0xfccd, 0xfcad, 0xfccd, 0xfcad, 0xfccd, 0xdbee, 0x8191, 0x9a12, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xdbd3, 0xfccd, 0xfccd, 0xfccd, 0xfccd, 0xc32f, 0x8191, 0xaa93, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xf46f, 0xfcad, 0xfccd, 0xfccd, 0xc32f, 0x8991, 0xaa94, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xec31, 0xfccd, 0xfccd, 0xfcad, 0xfccd, 0xfcad, 0xfcad, 0xfcad, 0xfcad, 0xa270, 0x8191, 0xc314, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xfcce, 0xfccf, 0xfccf, 0xfcef, 0xfcd0, 0xfcf0, 0xfcf1, 0xfcf1, 0xfcf2, 0xb0f1, 0xb0f1, 0xb0f2, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x003f, 0x003f, 0x005f, 0x007f, 0x021f, 0x06fc, 0x078d, 0x07e7, 0x07f6, 0x07ff, 0x82b5, 0xa8f1, 0xa111, 0x4932, 0x4132, 0x4111, 0x38f1, 0x38f0, 0x30f0, 0x30ef, 0x30ef, 0x28cf, 0x28ce, 0x20ce, 0x20ce, 0x20ce, 0x20ce, 0x20ad, 0x20ad, 0x20ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x20ad, 0x20ad, 0x08f5, 0x0119, 0x0119, 0x0117, 0x0117, 0x0119, 0x0119, 0x08f4, 0x18ad, 0x20ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x10cf, 0x0118, 0x0119, 0x0117, 0x18ae, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, + 0x18ad, 0x20ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x20ad, 0x20ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x20ad, 0x18ad, 0x18ad, 0x18ae, 0x00f6, 0x0119, 0x0118, 0x18cf, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0xb0f1, 0xa8f1, 0xb0f1, 0xfd0d, 0xfced, 0xfced, 0xfced, 0xfd0d, 0xfced, 0xfd0d, 0xe42e, 0x8191, 0x9a12, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xec51, 0xfced, 0xfced, 0xfced, 0xfced, 0xfced, 0xfced, 0xfced, 0xfced, 0xfced, 0xfced, 0xc34f, 0x8191, 0xaa93, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xf48f, 0xfced, 0xfced, 0xfced, 0xfced, 0xfced, 0xfced, 0xfced, 0xfced, 0xfced, 0xfced, 0xc32f, 0x8191, 0xaa93, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xec6f, 0x91d1, 0x89d1, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd396, 0xd395, 0xd395, 0xdbb4, 0xec70, 0xfced, 0xfced, 0xfced, 0xfced, 0xfced, 0xfd0d, 0xfced, 0xfced, 0x8191, 0x8191, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xdbf3, 0xfced, 0xfced, 0xfced, 0xe42e, 0x8191, 0x9a12, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xec51, 0xfced, 0xfced, 0xfced, 0xfced, 0xfced, 0xfced, 0xfced, 0xfced, 0xfced, 0xfced, 0xfced, 0xfced, 0xfced, 0xfced, 0xfced, 0xfd0d, 0xfced, 0xec6e, 0x8191, 0x91f2, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd376, 0xd395, 0xd395, 0xf4af, 0xfd0d, 0xfced, 0xfd0d, 0xc34f, 0x8191, 0xaa93, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xf48f, 0xfced, 0xfced, 0xfced, 0xc34f, 0x8191, 0xaa93, 0xd375, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xec51, 0xfced, 0xfced, 0xfced, 0xfced, 0xfced, 0xfced, 0xfced, 0xfced, 0xa270, 0x8191, 0xc314, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xfd0e, 0xfd0f, 0xfd0f, 0xfd0f, 0xfd10, 0xfd10, 0xfd31, 0xfd31, 0xfd32, 0xb0f1, 0xb0f1, 0xb0f1, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x003f, 0x005f, 0x005f, 0x005f, 0x021f, 0x073b, 0x07ac, 0x07e7, 0x07f7, 0x07ff, 0x82b5, 0xa8f1, 0x8912, 0x4932, 0x4112, 0x3911, 0x3911, 0x3110, 0x30f0, 0x30ef, 0x28cf, 0x28cf, 0x28ce, 0x20ce, 0x20ce, 0x20ce, 0x20ae, 0x20ad, 0x20ad, 0x20ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x10f3, 0x18ad, 0x18ad, 0x10f3, 0x0119, 0x0119, 0x20ad, 0x20ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x0117, 0x0119, 0x00f7, 0x18ae, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, + 0x208d, 0x18ad, 0x20ad, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18cd, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x00f6, 0x0119, 0x0118, 0x10cf, 0x20ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0xb0f1, 0xa8f1, 0xb0f1, 0xfd2d, 0xfd2d, 0xfd2d, 0xfd2d, 0xfd2d, 0xfd2d, 0xfd2d, 0xe44e, 0x8191, 0x9a12, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xec71, 0xfd2d, 0xfd2d, 0xfd2d, 0xfd2d, 0xfd2d, 0xfd2d, 0xfd2d, 0xfd2d, 0xfd2d, 0xfd2d, 0xc34f, 0x8191, 0xaa93, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xf4cf, 0xfd2d, 0xfd2d, 0xfd2d, 0xfd2d, 0xfd2d, 0xfd2d, 0xfd2d, 0xfd2d, 0xfd2d, 0xfd2d, 0xc34f, 0x8191, 0xaa93, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xf4cf, 0xc34f, 0x8191, 0xb2d4, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xdbd4, 0xe431, 0xec71, 0xec71, 0xdbf0, 0xe450, 0xf4cf, 0xfd0e, 0x8191, 0x8191, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xdbd4, 0xf4af, 0xf4cf, 0xf4af, 0xdc10, 0x9a12, 0xaa73, 0xd395, 0xd396, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xec71, 0xfd2d, 0xfd2d, 0xfd2d, 0xfd2d, 0xfd2d, 0xfd2d, 0xfd2d, 0xfd2d, 0xfd2d, 0xfd2d, 0xfd2d, 0xfd2d, 0xfd2d, 0xfd2d, 0xfd2d, 0xfd2d, 0xfd2c, 0xfd2c, 0x9211, 0x8191, 0xd375, 0xd395, 0xd396, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xec71, 0xfcee, 0xfd2d, 0xc36f, 0x8191, 0xaa93, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xdc10, 0xe44e, 0xdc2e, 0xe44e, 0xb2f0, 0x8191, 0xaa93, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xec71, 0xfd2d, 0xfd2d, 0xfd2d, 0xfd2d, 0xfd2d, 0xfd2d, 0xfd2d, 0xfd2d, 0xa270, 0x8191, 0xc314, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xfd2e, 0xfd2f, 0xfd2f, 0xfd4f, 0xfd50, 0xfd50, 0xfd51, 0xfd51, 0xfd71, 0xa8f1, 0xb0f1, 0xb0f2, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x003f, 0x005f, 0x005f, 0x007f, 0x007f, 0x023f, 0x073b, 0x07ab, 0x07e8, 0x07f9, 0x07ff, 0xa152, 0xa8f1, 0x7132, 0x4132, 0x4131, 0x3911, 0x3910, 0x38f0, 0x30f0, 0x30ef, 0x28cf, 0x28ce, 0x28ce, 0x20ce, 0x20ce, 0x20ce, 0x20ad, 0x20ad, 0x20ad, 0x20ad, 0x20ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ce, 0x0119, 0x0119, 0x10d0, 0x18ad, 0x18ad, 0x18d0, 0x0119, 0x0119, 0x0119, 0x0118, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x08f7, 0x18ad, 0x20ad, 0x18ad, 0x20cd, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, + 0x18ad, 0x18ac, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x00f6, 0x0119, 0x0118, 0x18cf, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0xa8f1, 0xa8f1, 0xa8f2, 0xfd6d, 0xfd6d, 0xfd6d, 0xfd6d, 0xfd4d, 0xfd6d, 0xfd6d, 0xe46e, 0x8191, 0x9212, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xec71, 0xfd6d, 0xfd6d, 0xfd6d, 0xfd6d, 0xfd6d, 0xfd6d, 0xfd6d, 0xfd6d, 0xfd6d, 0xfd6d, 0xc36f, 0x8191, 0xaa93, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xf4ef, 0xfd6d, 0xfd6d, 0xfd6d, 0xfd6d, 0xfd6d, 0xfd6d, 0xfd6d, 0xfd6d, 0xfd6d, 0xfd6d, 0xc36f, 0x8191, 0xaa93, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xf4ef, 0xfd2d, 0x9211, 0x89b2, 0xcb75, 0xd396, 0xd375, 0xd395, 0xd396, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xec91, 0x8191, 0x8191, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xcb95, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xec71, 0xfd6d, 0xfd6d, 0xfd6d, 0xfd6d, 0xfd6d, 0xfd6d, 0xfd6d, 0xfd6d, 0xfd6d, 0xfd6d, 0xfd6d, 0xfd6d, 0xfd6d, 0xfd4d, 0xfd6d, 0xfd6d, 0xfd6d, 0xfd6d, 0xbb2f, 0x8191, 0xb2d4, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xc314, 0x8191, 0xaa93, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd375, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xec71, 0xfd6d, 0xfd6d, 0xfd6d, 0xfd6d, 0xfd6d, 0xfd6d, 0xfd6d, 0xfd6d, 0xa290, 0x8191, 0xc314, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xfd6e, 0xfd6f, 0xfd6f, 0xfd8f, 0xfd90, 0xfd90, 0xfd91, 0xfd91, 0xfd92, 0xa8f1, 0xa8f1, 0xa8f1, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x003f, 0x003f, 0x005f, 0x005f, 0x007f, 0x009f, 0x023f, 0x0779, 0x07aa, 0x07e8, 0x07fb, 0x07ff, 0xa8f1, 0xa8f1, 0x5932, 0x4932, 0x4131, 0x3911, 0x3910, 0x38f0, 0x30ef, 0x30ef, 0x28cf, 0x28ce, 0x28ce, 0x20ce, 0x20ce, 0x20ad, 0x20ad, 0x20ad, 0x20ad, 0x20ad, 0x20ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x20ad, 0x18ac, 0x0119, 0x0119, 0x10d3, 0x18ad, 0x18ad, 0x10d3, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x0119, 0x00f6, 0x20ae, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, + 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x20ad, 0x20ad, 0x20ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18cd, 0x0116, 0x0119, 0x0118, 0x18cf, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0xa8f1, 0xa8f1, 0xa8f1, 0xec6f, 0xfd8d, 0xfdad, 0xfd8d, 0xfdad, 0xfdad, 0xfdad, 0xe48e, 0x8191, 0x9a12, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xec91, 0xfdad, 0xfd8d, 0xfd8d, 0xfd8d, 0xfd8d, 0xfd8d, 0xfd8d, 0xfd8d, 0xfd8d, 0xfd8d, 0xc38f, 0x8191, 0xaa93, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xf52f, 0xfdad, 0xfd8d, 0xfdad, 0xfd8d, 0xfd8d, 0xfdad, 0xfd8d, 0xfd8d, 0xfdad, 0xfdad, 0xc38f, 0x8191, 0xaa93, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xf52f, 0xfd8d, 0xe4ae, 0x8991, 0x9a32, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xe491, 0x8191, 0x8191, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd396, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xec91, 0xfdad, 0xfdad, 0xfd8d, 0xfd8d, 0xfd8d, 0xfd8d, 0xfd8d, 0xfd8d, 0xfd8d, 0xfd8d, 0xfdad, 0xfdad, 0xfd8d, 0xfd8d, 0xfdad, 0xfdad, 0xfd8d, 0xfdad, 0xf52d, 0x8191, 0x91f2, 0xd395, 0xd395, 0xd395, 0xd395, 0xd376, 0xd395, 0xd395, 0xd396, 0xd395, 0xd395, 0xd395, 0xc314, 0x8191, 0xaa93, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xec91, 0xfd8d, 0xfd8d, 0xfdad, 0xfdad, 0xfdad, 0xfdad, 0xfdad, 0xfd8d, 0xa290, 0x8191, 0xc314, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xfdaf, 0xfdaf, 0xfdaf, 0xfdaf, 0xfdb0, 0xfdb0, 0xfdb1, 0xfdd1, 0xe4b2, 0xa911, 0xa8f1, 0xa8f1, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x003f, 0x005f, 0x005f, 0x007f, 0x007f, 0x009f, 0x02bf, 0x0778, 0x07c8, 0x07e9, 0x07fd, 0x173e, 0xa8f1, 0x9912, 0x4932, 0x4932, 0x4131, 0x4111, 0x3911, 0x38f0, 0x30ef, 0x30ef, 0x28cf, 0x28ce, 0x28ce, 0x20ce, 0x20ce, 0x20cd, 0x20ad, 0x20ad, 0x20ad, 0x20ad, 0x20ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x20ad, 0x08f4, 0x0119, 0x0119, 0x00f7, 0x08f6, 0x0119, 0x0119, 0x08f4, 0x20ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, + 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ac, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x00f7, 0x0119, 0x0118, 0x18cf, 0x18ad, 0x18ad, 0x18ad, 0x18ac, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18cd, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0xa911, 0xa911, 0xa911, 0xec8e, 0xfded, 0xfded, 0xfdcd, 0xfdcd, 0xfdcd, 0xfded, 0xe4ce, 0x8191, 0x9a12, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xecb1, 0xfdcd, 0xfdcd, 0xfdcd, 0xfdcd, 0xfdcd, 0xfdcd, 0xfdcd, 0xfdcd, 0xfdcd, 0xfdcd, 0xc3af, 0x8191, 0xaa93, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xf54f, 0xfdcd, 0xfdcd, 0xfded, 0xfdcd, 0xfdcd, 0xfdcd, 0xfdcd, 0xfdcd, 0xfded, 0xfdcd, 0xc3af, 0x8191, 0xaa93, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xf54f, 0xfded, 0xfdcd, 0xd44f, 0x8191, 0xb2b3, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd396, 0xd395, 0xd395, 0xd395, 0xd395, 0xecb1, 0x8991, 0x8191, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd396, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xecb1, 0xfdcd, 0xfdcd, 0xfdcd, 0xfdcd, 0xfdcd, 0xfdcd, 0xfdcd, 0xfdcd, 0xfdcd, 0xfdcd, 0xfdcd, 0xfdcd, 0xfdcd, 0xfdcd, 0xfdcd, 0xfdcd, 0xfdcd, 0xfdcd, 0xfdcd, 0xbb6f, 0x8191, 0xbaf4, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd375, 0xd395, 0xd395, 0xd395, 0xd395, 0xc314, 0x8191, 0xaa93, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xecb1, 0xfded, 0xfded, 0xfdcd, 0xfdcd, 0xfded, 0xfded, 0xfded, 0xfded, 0xa2b0, 0x8191, 0xc314, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd375, 0xfdee, 0xfdef, 0xfdef, 0xfdf0, 0xfdf0, 0xfdf0, 0xfdf1, 0xfdf1, 0xecb1, 0xa0f1, 0xa911, 0xa911, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x005f, 0x005f, 0x005f, 0x007f, 0x009f, 0x009f, 0x041f, 0x0797, 0x07c7, 0x07eb, 0x07fe, 0x2e5c, 0xa8f1, 0x7932, 0x4932, 0x4932, 0x4111, 0x3911, 0x3910, 0x38f0, 0x30ef, 0x30ef, 0x28ce, 0x28ce, 0x28ce, 0x20ce, 0x20ce, 0x20cd, 0x20ad, 0x20ad, 0x20ad, 0x20ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x20ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ae, 0x00f6, 0x0118, 0x0118, 0x0119, 0x0119, 0x00f6, 0x18ce, 0x18ad, 0x18ad, 0x20ad, 0x20ad, 0x20ad, 0x20ad, 0x20ad, 0x20ad, 0x20ad, 0x20ad, 0x20ad, 0x20ad, 0x20ad, 0x20ad, 0x20ad, 0x20ad, 0x20ad, 0x20ad, 0x20ad, 0x20ad, 0x18ad, 0x18ac, 0x18ad, 0x18ac, 0x20ad, 0x18ad, 0x18ad, 0x18ac, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, + 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ac, 0x20ad, 0x18ad, 0x20ad, 0x20ad, 0x20ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x00f7, 0x0118, 0x0117, 0x18cf, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ac, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ac, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0xa911, 0xa911, 0xa111, 0xe42e, 0xfe0d, 0xfe0d, 0xfe0d, 0xfe0d, 0xfe0d, 0xfe0d, 0xe4ee, 0x8191, 0x9a12, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xecd1, 0xfe0d, 0xfe0d, 0xfe0d, 0xfe0d, 0xfe0d, 0xfe0d, 0xfe0d, 0xfe0d, 0xfe0d, 0xfe0d, 0xc3cf, 0x8191, 0xaa93, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xf56f, 0xfe0d, 0xfe0d, 0xfe0d, 0xfe0d, 0xfe0d, 0xfe0d, 0xfe0d, 0xfe0d, 0xfe0d, 0xfe0d, 0xc3cf, 0x8191, 0xaa93, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xf56f, 0xfe0d, 0xfe0d, 0xfe0d, 0xd44f, 0x8191, 0xbad3, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd376, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd396, 0xd395, 0xd395, 0xecd1, 0x8191, 0x8191, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd375, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xecd1, 0xfe0d, 0xfe0d, 0xfe0d, 0xfe0d, 0xfe0d, 0xfe0d, 0xfe0d, 0xfe0d, 0xfe0d, 0xfe0d, 0xfe0d, 0xfe0d, 0xfe0d, 0xfe0d, 0xfe0d, 0xfe0d, 0xfe0d, 0xfe0d, 0xfe0d, 0xf5ad, 0x9a70, 0x89b1, 0xd375, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xc314, 0x8191, 0xaa93, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd396, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xecd1, 0xfe0d, 0xfe0d, 0xfe0d, 0xfe0e, 0xfe0d, 0xfe0e, 0xfe0e, 0xfe0e, 0xa2b0, 0x8191, 0xc314, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xfe0f, 0xfe0f, 0xfe0f, 0xfe30, 0xfe30, 0xfe30, 0xfe31, 0xfe31, 0xdc32, 0xa111, 0xa911, 0xa111, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x005f, 0x005f, 0x007f, 0x007f, 0x009f, 0x00bf, 0x043f, 0x0794, 0x07e6, 0x07ec, 0x07fe, 0x35db, 0xa911, 0x5133, 0x4932, 0x4132, 0x4111, 0x4111, 0x3910, 0x30f0, 0x30ef, 0x30ef, 0x28ce, 0x28ce, 0x20ce, 0x20ce, 0x20ce, 0x20cd, 0x20ad, 0x20ad, 0x20ad, 0x20ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x20ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0119, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x20ad, 0x10d1, 0x10d3, 0x10f2, 0x10d1, 0x20ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, + 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ac, 0x20ad, 0x18ad, 0x18ac, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ac, 0x18ad, 0x18ae, 0x00f6, 0x0119, 0x00f8, 0x18cf, 0x20ad, 0x18ad, 0x20ad, 0x18ac, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ac, 0x80f0, 0xa111, 0xa111, 0xc2b0, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xe50e, 0x8191, 0x9a12, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xecf1, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xc3ef, 0x8991, 0xaa93, 0xd395, 0xd395, 0xd395, 0xd375, 0xd395, 0xd395, 0xd395, 0xf58f, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xc3ef, 0x8191, 0xaa93, 0xd395, 0xd396, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xf58f, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xe50e, 0x89d1, 0xa253, 0xcb75, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd376, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xecf1, 0x8191, 0x8191, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xecf1, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xf60e, 0x9a70, 0x91f2, 0xcb75, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd396, 0xd395, 0xc314, 0x8191, 0xaa93, 0xd395, 0xd396, 0xd395, 0xd395, 0xd375, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xecf2, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4e, 0xfe4d, 0xfe4e, 0xfe4d, 0xfe4e, 0xa2d0, 0x8191, 0xc314, 0xd395, 0xd396, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xfe4e, 0xfe4f, 0xfe6f, 0xfe70, 0xfe50, 0xfe50, 0xfe71, 0xfe51, 0xba52, 0xa111, 0xa111, 0x78d5, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x005f, 0x007f, 0x007f, 0x009f, 0x00bf, 0x00bf, 0x043f, 0x07b3, 0x07c5, 0x07ee, 0x07ff, 0x5478, 0x6ad6, 0x4953, 0x4932, 0x4912, 0x4111, 0x3911, 0x3910, 0x30f0, 0x30ef, 0x28cf, 0x28ce, 0x28ce, 0x28ce, 0x20ce, 0x20cd, 0x20cd, 0x20ad, 0x20ad, 0x20ad, 0x20ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0118, 0x0118, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0118, 0x0119, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ac, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, + 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ac, 0x18ad, 0x20ad, 0x18ad, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ac, 0x18ad, 0x18ad, 0x18ac, 0x18ad, 0x18ad, 0x00f6, 0x0118, 0x00f8, 0x18cf, 0x18ac, 0x20ad, 0x20ad, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18ac, 0x60ef, 0xa111, 0xa111, 0xa112, 0xfe2d, 0xfe8d, 0xfe8d, 0xfe8d, 0xfe8d, 0xfe8d, 0xe54e, 0x8191, 0x9a12, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd375, 0xd395, 0xed11, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe8d, 0xc40f, 0x8191, 0xaa93, 0xd395, 0xd396, 0xd395, 0xd395, 0xd395, 0xd395, 0xd375, 0xf5cf, 0xfe6d, 0xfe8d, 0xfe8d, 0xfe8d, 0xfe8d, 0xfe8d, 0xfe8d, 0xfe8d, 0xfe8d, 0xfe6d, 0xc40f, 0x8191, 0xaa93, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xf5ce, 0xfe6d, 0xfe6d, 0xfe8d, 0xfe6c, 0xfe8d, 0xf62d, 0xc40f, 0x9a12, 0xb2d4, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xecf1, 0x8191, 0x8191, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xed11, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe8d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6c, 0xfe8d, 0xfe6d, 0xfe2d, 0xbbcf, 0x89b1, 0xbaf4, 0xd395, 0xd395, 0xd395, 0xd375, 0xd395, 0xd395, 0xd396, 0xc314, 0x8191, 0xaa93, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xed12, 0xfe8e, 0xfe8e, 0xfe8e, 0xfe8e, 0xfe8e, 0xfe8e, 0xfe8e, 0xfe8e, 0xa2d0, 0x8191, 0xc314, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xfe8f, 0xfe8f, 0xfe8f, 0xfe90, 0xfe90, 0xfe90, 0xfe91, 0xe471, 0xa111, 0xa112, 0xa111, 0x60d5, 0x001f, 0x283c, 0x7097, 0x405a, 0x001f, 0x001f, 0x001f, 0x003f, 0x007f, 0x009f, 0x00bf, 0x00bf, 0x00df, 0x045f, 0x07d2, 0x07e4, 0x07ef, 0x07ff, 0x2e3c, 0x2d1a, 0x5133, 0x4932, 0x4132, 0x3911, 0x3911, 0x38f0, 0x30f0, 0x30ef, 0x28cf, 0x28ce, 0x28ce, 0x20ce, 0x20ce, 0x20cd, 0x20cd, 0x20ad, 0x20ad, 0x20ad, 0x20ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0118, 0x0118, 0x18ad, 0x18ad, 0x18ac, 0x18ad, 0x18ad, 0x20ad, 0x18ac, 0x0119, 0x0118, 0x18ad, 0x18ac, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18cc, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, + 0x18ae, 0x18ad, 0x20ad, 0x18ac, 0x18ad, 0x18ad, 0x18ac, 0x20ad, 0x18ad, 0x20ad, 0x18cd, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x00f6, 0x0118, 0x00f7, 0x18cf, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x20ad, 0x18ac, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x28cd, 0xa111, 0xa111, 0xa111, 0xcbcf, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xf5ed, 0x89d1, 0x91d2, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd396, 0xd395, 0xed11, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xc42f, 0x81b1, 0xaa93, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xf5ef, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfecc, 0xfead, 0xc42f, 0x8191, 0xaa93, 0xd395, 0xd395, 0xd396, 0xd395, 0xd395, 0xd395, 0xd395, 0xf5ef, 0xfead, 0xfeac, 0xfead, 0xfead, 0xfeac, 0xfead, 0xfead, 0xf64d, 0xd4ce, 0xbbd0, 0xc3b2, 0xc314, 0xd395, 0xd375, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xed12, 0x8191, 0x8191, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd375, 0xd395, 0xd395, 0xd395, 0xed31, 0xfeac, 0xfeac, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xee0d, 0xcc6f, 0xbb51, 0xbad4, 0xcb55, 0xd395, 0xd395, 0xd395, 0xd395, 0xc334, 0x8191, 0xb294, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd375, 0xd395, 0xed11, 0xfeae, 0xfece, 0xfead, 0xfeae, 0xfead, 0xfece, 0xfeae, 0xfeae, 0xa2f0, 0x8191, 0xc314, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xd395, 0xdc34, 0xfeaf, 0xfed0, 0xfeaf, 0xfed0, 0xfeb0, 0xfed1, 0xe491, 0xa911, 0xa111, 0x9931, 0xa111, 0x58d6, 0x88b5, 0xb8d1, 0xb8d1, 0x5059, 0x001f, 0x001f, 0x001f, 0x001f, 0x007f, 0x009f, 0x00bf, 0x00ff, 0x00df, 0x047f, 0x07d2, 0x07e3, 0x07f1, 0x07ff, 0x07ff, 0x2cba, 0x4933, 0x4132, 0x4131, 0x4111, 0x38f0, 0x38f0, 0x30f0, 0x30ef, 0x28ef, 0x28ce, 0x28ce, 0x20ce, 0x20cd, 0x20cd, 0x20ad, 0x20ad, 0x20ad, 0x20ad, 0x20ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x0118, 0x0118, 0x18ad, 0x18ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ac, 0x0118, 0x0118, 0x18ad, 0x18ad, 0x18ad, 0x20ad, 0x18cd, 0x20ad, 0x20ad, 0x18ac, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, + 0x00f6, 0x18ad, 0x18ad, 0x18ac, 0x20ac, 0x18ac, 0x18ad, 0x18ac, 0x18ac, 0x18ad, 0x18ac, 0x20ac, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ac, 0x18ac, 0x18ad, 0x00f6, 0x0118, 0x0118, 0x18cf, 0x20ad, 0x18ac, 0x18ac, 0x18ad, 0x18ad, 0x18ac, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x20ac, 0x20ad, 0x18ad, 0x8110, 0x9911, 0xa111, 0xa171, 0xf5ed, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfeac, 0xfe6d, 0xf5cf, 0xf5ef, 0xf5cf, 0xf5cf, 0xf5ef, 0xf5cf, 0xfe4d, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfe4e, 0xf5ef, 0xf5ef, 0xf5cf, 0xf5ee, 0xf5ef, 0xf5ef, 0xf5ef, 0xfe8d, 0xfeac, 0xfeac, 0xfeac, 0xfeac, 0xfead, 0xfe8d, 0xfead, 0xfead, 0xfead, 0xfeac, 0xfeac, 0xfead, 0xf64d, 0xf5ef, 0xf5cf, 0xf5ef, 0xf5cf, 0xf5ef, 0xf5ef, 0xf5ef, 0xfe6e, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfeac, 0xfeac, 0xfead, 0xfead, 0xfead, 0xfead, 0xfeac, 0xfead, 0xfead, 0xf60e, 0xf5ef, 0xf5cf, 0xf5ef, 0xf5ef, 0xf5cf, 0xf64e, 0xfeac, 0xfead, 0xf5ef, 0xf5ef, 0xf5ef, 0xf5ef, 0xf5ef, 0xf5ef, 0xf5ef, 0xf5ef, 0xf5ef, 0xf5ef, 0xf5ef, 0xf5ef, 0xf5ef, 0xf5ef, 0xf5ef, 0xf5ef, 0xf5cf, 0xf5ef, 0xf5ef, 0xf5ef, 0xf5cf, 0xfe4d, 0xfeac, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfeac, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfeac, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfe6d, 0xf5ef, 0xf5ef, 0xf5cf, 0xf5cf, 0xfead, 0xf62e, 0xf5ef, 0xf5d0, 0xf5ef, 0xf5cf, 0xf5f0, 0xf5f0, 0xf5ef, 0xf5f0, 0xf5f0, 0xf5f0, 0xf5f0, 0xf5f0, 0xf5f0, 0xf5f0, 0xf5f0, 0xf5f0, 0xf5f0, 0xf5f0, 0xf5f0, 0xf5ef, 0xf5f0, 0xfe4f, 0xfece, 0xfeae, 0xfeae, 0xfeae, 0xfeae, 0xfeae, 0xfeae, 0xfeae, 0xfeae, 0xfeaf, 0xf610, 0xf5d0, 0xf5f0, 0xf5f0, 0xf5f0, 0xf5f0, 0xf610, 0xfeaf, 0xfeaf, 0xfeaf, 0xfed0, 0xfeb0, 0xfeb1, 0xe471, 0xb8d1, 0xa111, 0x9931, 0x9931, 0x9912, 0x6933, 0xb0f1, 0xb0d1, 0xb0d1, 0x283c, 0x001f, 0x001f, 0x001f, 0x003f, 0x007f, 0x00bf, 0x00df, 0x00ff, 0x011f, 0x047f, 0x07d1, 0x07e3, 0x07f3, 0x07ff, 0x07ff, 0x3b77, 0x4932, 0x4932, 0x4131, 0x4111, 0x38f0, 0x38f0, 0x30ef, 0x30ef, 0x28ef, 0x28ce, 0x28ce, 0x20ce, 0x20cd, 0x20cd, 0x20ad, 0x20ad, 0x20ad, 0x20ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ac, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ac, 0x18ad, 0x18ac, 0x18ad, 0x0118, 0x0118, 0x18ad, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ad, 0x20ad, 0x0118, 0x0118, 0x20ad, 0x20ac, 0x20ac, 0x18ad, 0x18ad, 0x18ac, 0x20ac, 0x18ad, 0x18ac, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, 0x18ad, + 0x0118, 0x00f6, 0x18cd, 0x18ac, 0x18ad, 0x18ac, 0x20ac, 0x18ac, 0x18ac, 0x18ad, 0x18ad, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18cc, 0x20ac, 0x18ad, 0x00f6, 0x0118, 0x0117, 0x18cf, 0x18ad, 0x18ac, 0x18ac, 0x18ad, 0x18ac, 0x20ad, 0x18ac, 0x20ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18cd, 0x18ac, 0x20ac, 0x38ce, 0x9931, 0x9931, 0x9931, 0xaa31, 0xfe2d, 0xfe8c, 0xfe8d, 0xfe8c, 0xfe8c, 0xfe8c, 0xfead, 0xfe8c, 0xfeac, 0xfeac, 0xfe8c, 0xfe8c, 0xfeac, 0xfead, 0xfe8d, 0xfe8c, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfe8c, 0xfe8c, 0xfeac, 0xfeac, 0xfead, 0xfe8c, 0xfead, 0xfe8c, 0xfe8d, 0xfe8d, 0xfe8c, 0xfead, 0xfe8c, 0xfe8c, 0xfead, 0xfead, 0xfeac, 0xfeac, 0xfe8c, 0xfe8c, 0xfeac, 0xfe8c, 0xfeac, 0xfead, 0xfead, 0xfe8d, 0xfe8c, 0xfead, 0xfe8d, 0xfe8c, 0xfe8d, 0xfe8c, 0xfe8d, 0xfeac, 0xfe8c, 0xfeac, 0xfe8d, 0xfead, 0xfead, 0xfe8c, 0xfeac, 0xfe8c, 0xfe8c, 0xfe8d, 0xfe8c, 0xfeac, 0xfe8d, 0xfe8c, 0xfead, 0xfead, 0xfe8c, 0xfe8c, 0xfe8c, 0xfead, 0xfe8c, 0xfeac, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfe8c, 0xfeac, 0xfe8d, 0xfeac, 0xfead, 0xfead, 0xfe8c, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfead, 0xfeac, 0xfe8c, 0xfead, 0xfe8c, 0xfe8d, 0xfe8d, 0xfe8d, 0xfe8d, 0xfead, 0xfead, 0xfead, 0xfe8d, 0xfead, 0xfead, 0xfead, 0xfead, 0xfe8d, 0xfe8e, 0xfead, 0xfeae, 0xfeae, 0xfead, 0xfeae, 0xfeae, 0xfeae, 0xfeae, 0xfeae, 0xfeae, 0xfeae, 0xfeae, 0xfeae, 0xfeae, 0xfeae, 0xfeae, 0xfe8e, 0xfe8e, 0xfeae, 0xfeae, 0xfeae, 0xfe8e, 0xfeae, 0xfeae, 0xfeae, 0xfe8e, 0xfe8e, 0xfeae, 0xfeaf, 0xfeae, 0xfeae, 0xfeaf, 0xfe8e, 0xfeaf, 0xfeaf, 0xfeaf, 0xfeaf, 0xfeaf, 0xfe8f, 0xfeb0, 0xfeaf, 0xfeb0, 0xfe90, 0xe471, 0xb8d2, 0xa111, 0x9911, 0x9931, 0x9931, 0x7132, 0x7133, 0xb0f1, 0xb0d1, 0xb0d2, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x007f, 0x00df, 0x00df, 0x011f, 0x011f, 0x049f, 0x07f0, 0x07e2, 0x07f4, 0x07ff, 0x07ff, 0x3af6, 0x4932, 0x4932, 0x4111, 0x3911, 0x3910, 0x38f0, 0x30ef, 0x30ef, 0x28ee, 0x28ce, 0x28ce, 0x20ce, 0x20cd, 0x20cd, 0x20ad, 0x20ad, 0x20ad, 0x18ac, 0x20ac, 0x18ad, 0x18ad, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x0118, 0x0118, 0x18ac, 0x18ac, 0x18ac, 0x20ac, 0x18ac, 0x20ad, 0x18ad, 0x0118, 0x0118, 0x18ac, 0x18ad, 0x18ad, 0x18ac, 0x18ad, 0x18ad, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, + 0x00f8, 0x0118, 0x00f5, 0x18ad, 0x20ac, 0x18ad, 0x20ad, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x20ad, 0x18cd, 0x0116, 0x0118, 0x0117, 0x18cf, 0x20ac, 0x20ac, 0x20ad, 0x18ac, 0x18ac, 0x20ac, 0x20ac, 0x18ac, 0x20ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x20ad, 0x20ac, 0x60ef, 0x9912, 0x9931, 0x9931, 0xb270, 0xf62d, 0xfe8c, 0xfe8c, 0xfe8d, 0xfe8d, 0xfe8d, 0xfe8c, 0xfe8d, 0xfe8c, 0xfe8c, 0xfe8c, 0xfe8c, 0xfe8d, 0xfe8d, 0xfe8d, 0xfe8c, 0xfe8c, 0xfe8c, 0xfe8c, 0xfe8c, 0xfe8c, 0xfe8c, 0xfe8c, 0xfe8c, 0xfe8d, 0xfe8c, 0xfe8c, 0xfe8d, 0xfe8d, 0xfe8d, 0xfe8c, 0xfe8d, 0xfe8c, 0xfe8d, 0xfe8d, 0xfe8d, 0xfe8d, 0xfe8c, 0xfe8d, 0xfe8d, 0xfe8d, 0xfe8d, 0xfe8d, 0xfe8d, 0xfe8d, 0xfe8d, 0xfe8d, 0xfe8c, 0xfe8d, 0xfe8c, 0xfe8c, 0xfe8c, 0xfe8c, 0xfe8d, 0xfe8c, 0xfe8c, 0xfe8c, 0xfe8d, 0xfe8d, 0xfe8c, 0xfe8c, 0xfe8c, 0xfe8d, 0xfe8d, 0xfe8c, 0xfe8c, 0xfe8d, 0xfe8c, 0xfe8c, 0xfe8c, 0xfe8c, 0xfe8d, 0xfe8d, 0xfe8c, 0xfe8d, 0xfe8c, 0xfe8c, 0xfe8c, 0xfe8d, 0xfe8d, 0xfe8d, 0xfe8d, 0xfe8d, 0xfe8d, 0xfe8d, 0xfe8d, 0xfe8d, 0xfe8d, 0xfe8d, 0xfe8d, 0xfe8d, 0xfe8d, 0xfe8d, 0xfe8d, 0xfe8d, 0xfe8d, 0xfe8d, 0xfe8c, 0xfe8c, 0xfe6d, 0xfe8d, 0xfe8c, 0xfe8d, 0xfe8c, 0xfe8c, 0xfe8c, 0xfe8c, 0xfe8c, 0xfe8c, 0xfe8c, 0xfe8c, 0xfe8c, 0xfe8c, 0xfe8c, 0xfe8d, 0xfe8d, 0xfe8d, 0xfe8d, 0xfe8d, 0xfe8c, 0xfe8d, 0xfe8d, 0xfe8d, 0xfe8d, 0xfe8d, 0xfe8d, 0xfe8d, 0xfe8d, 0xfe8d, 0xfe8d, 0xfe8e, 0xfe8d, 0xfe8d, 0xfe8d, 0xfe8d, 0xfe8d, 0xfe8e, 0xfe8e, 0xfe8e, 0xfe8e, 0xfe8e, 0xfe8e, 0xfe8e, 0xfe8e, 0xfe8e, 0xfe8e, 0xfe8e, 0xfe8e, 0xfe8e, 0xfe8e, 0xfe8e, 0xfe8e, 0xfe8e, 0xfe8f, 0xfe8e, 0xfe8e, 0xfe8f, 0xfe8f, 0xfe8e, 0xfe8f, 0xfe8f, 0xfe8e, 0xfe8f, 0xfe8e, 0xfe8f, 0xfe8f, 0xfe8f, 0xfe8f, 0xfe8f, 0xfe8f, 0xfe8f, 0xfe8f, 0xfe8f, 0xfe8f, 0xfe8f, 0xfe90, 0xfe90, 0xfeb0, 0xfeb0, 0xe471, 0xb8d1, 0xa111, 0x9931, 0x9931, 0x9912, 0x8911, 0x5174, 0x6953, 0xb0f1, 0xb0d1, 0x90b4, 0x001f, 0x001f, 0x001f, 0x001f, 0x003f, 0x009f, 0x00df, 0x00ff, 0x011f, 0x015f, 0x049f, 0x07f1, 0x07e2, 0x07f6, 0x07ff, 0x0f9f, 0x4a35, 0x4933, 0x4932, 0x4131, 0x3910, 0x3910, 0x38f0, 0x30ef, 0x30ef, 0x28ce, 0x28ce, 0x28ce, 0x20cd, 0x20cd, 0x20cd, 0x20ad, 0x20ad, 0x20ad, 0x18ac, 0x20ac, 0x20ac, 0x18ac, 0x18ac, 0x20ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x0118, 0x0118, 0x18ac, 0x18ac, 0x18ac, 0x20ac, 0x18ac, 0x18ad, 0x20ad, 0x0118, 0x0118, 0x18ce, 0x20ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x20ad, 0x20ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, + 0x18ce, 0x0117, 0x0118, 0x0115, 0x18ad, 0x20ac, 0x18ac, 0x20ac, 0x20ac, 0x18ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x18ad, 0x00f6, 0x0118, 0x0117, 0x18ce, 0x18ac, 0x20cc, 0x20ac, 0x18ac, 0x18ac, 0x20ac, 0x20ac, 0x20ac, 0x20ad, 0x18cc, 0x20ad, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x18ac, 0x20ac, 0x28ad, 0x8110, 0x9931, 0x9931, 0x9911, 0xaa31, 0xf5cd, 0xfe8c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6d, 0xfe6c, 0xfe6c, 0xfe6d, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe8c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6d, 0xfe6c, 0xfe6c, 0xfe6d, 0xfe6c, 0xfe6d, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6d, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6d, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe8c, 0xfe6d, 0xfe6d, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6c, 0xfe6d, 0xfe6c, 0xfe6d, 0xfe6c, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6c, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe8e, 0xfe8d, 0xfe8d, 0xfe6e, 0xfe8d, 0xfe6e, 0xfe6e, 0xfe6e, 0xfe6e, 0xfe6e, 0xfe6e, 0xfe6e, 0xfe6e, 0xfe6e, 0xfe6e, 0xfe6e, 0xfe6f, 0xfe6f, 0xfe6f, 0xfe6f, 0xfe8f, 0xfe8f, 0xfe6f, 0xfe6f, 0xfe6f, 0xfe8f, 0xfe6f, 0xfe6f, 0xfe8f, 0xfe8f, 0xfe6f, 0xfe6f, 0xfe8f, 0xfe6f, 0xfe6f, 0xfe8f, 0xfe8f, 0xfe6f, 0xfe8f, 0xfe8f, 0xfe6f, 0xfe90, 0xfe8f, 0xfe8f, 0xfe90, 0xfe90, 0xe471, 0xb0d1, 0xa111, 0x9931, 0x9931, 0x9931, 0x9912, 0x5953, 0x5153, 0x7133, 0xb0d1, 0xb0d1, 0x7896, 0x001f, 0x001f, 0x001f, 0x003f, 0x005f, 0x00bf, 0x011f, 0x011f, 0x013f, 0x017f, 0x04bf, 0x07f2, 0x07e2, 0x07f5, 0x07ff, 0x7336, 0x5153, 0x4933, 0x4932, 0x4131, 0x4110, 0x3910, 0x30ef, 0x30ef, 0x30ef, 0x28ce, 0x28ce, 0x28cd, 0x20cd, 0x20cd, 0x20cd, 0x20ad, 0x20ad, 0x20ad, 0x20ac, 0x20ac, 0x20ad, 0x18ac, 0x18ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x18ac, 0x20ac, 0x18ac, 0x18ac, 0x0118, 0x0118, 0x18ac, 0x20ac, 0x18ac, 0x20ac, 0x18ac, 0x18ac, 0x20ac, 0x00f5, 0x0117, 0x00f7, 0x18ce, 0x20ac, 0x20ac, 0x18ac, 0x20ac, 0x18ac, 0x18ac, 0x18ad, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, + 0x20ac, 0x18ae, 0x0117, 0x0118, 0x08f5, 0x18ad, 0x18ac, 0x18cd, 0x20ac, 0x18ac, 0x18ac, 0x18ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x08f3, 0x0118, 0x0117, 0x18ce, 0x20ac, 0x20ac, 0x18ac, 0x18ac, 0x20ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x18ac, 0x18ac, 0x20ac, 0x20ac, 0x18ac, 0x28ad, 0x9111, 0x9931, 0x9931, 0x9931, 0xa171, 0xcbcf, 0xf60d, 0xfe4d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe4d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6c, 0xfe6d, 0xfe4d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe4d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe4d, 0xfe6d, 0xfe6c, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe4d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe4d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6c, 0xfe6d, 0xfe4d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe4d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe4d, 0xfe6d, 0xfe6d, 0xfe6d, 0xfe4d, 0xfe6e, 0xfe6e, 0xfe4e, 0xfe6d, 0xfe6e, 0xfe6e, 0xfe6e, 0xfe6e, 0xfe6e, 0xfe6f, 0xfe6e, 0xfe6e, 0xfe6f, 0xfe6f, 0xfe6f, 0xfe6f, 0xfe6f, 0xfe6f, 0xfe6f, 0xfe6f, 0xfe6f, 0xfe6f, 0xfe6f, 0xfe6f, 0xfe6f, 0xfe6f, 0xfe6f, 0xfe6f, 0xfe6f, 0xfe6f, 0xfe70, 0xfe70, 0xfe6f, 0xfe70, 0xfe70, 0xfe70, 0xfe70, 0xfe70, 0xfe70, 0xfe70, 0xfe70, 0xfe70, 0xfe90, 0xfe70, 0xfe70, 0xfe70, 0xfe70, 0xfe71, 0xfe71, 0xfe71, 0xe471, 0xa8f1, 0xa111, 0x9931, 0x9932, 0x9931, 0x9931, 0x6933, 0x5153, 0x5953, 0x7153, 0xb0d1, 0xb0d1, 0x5878, 0x001f, 0x001f, 0x003f, 0x007f, 0x009f, 0x00ff, 0x013f, 0x013f, 0x017f, 0x019f, 0x033f, 0x07f3, 0x07e2, 0x07f3, 0x07ff, 0xa8f1, 0x6932, 0x4932, 0x4932, 0x4931, 0x4111, 0x3910, 0x3110, 0x30ef, 0x30ef, 0x28ce, 0x28ce, 0x28cd, 0x20cd, 0x20cd, 0x20cd, 0x20ad, 0x20ad, 0x20ad, 0x20ac, 0x20ac, 0x20ad, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x18ac, 0x20ac, 0x18ac, 0x18ac, 0x0118, 0x0118, 0x18ac, 0x20ac, 0x20ac, 0x18ac, 0x20ad, 0x20ac, 0x18ac, 0x18ad, 0x00f5, 0x0118, 0x0117, 0x18ce, 0x20ac, 0x18ac, 0x20ac, 0x18ac, 0x18ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, + 0x18ac, 0x20ac, 0x18ce, 0x08f5, 0x0118, 0x0118, 0x0118, 0x0118, 0x0118, 0x0118, 0x0118, 0x0118, 0x0118, 0x0118, 0x0118, 0x0118, 0x0118, 0x0118, 0x0118, 0x0118, 0x0118, 0x0118, 0x0118, 0x0118, 0x0118, 0x0118, 0x0118, 0x0118, 0x0118, 0x0118, 0x0118, 0x0118, 0x0118, 0x0118, 0x0118, 0x0118, 0x0118, 0x0118, 0x0118, 0x0118, 0x0118, 0x0118, 0x0118, 0x0118, 0x0118, 0x0118, 0x0118, 0x0118, 0x0118, 0x0118, 0x0118, 0x0118, 0x0118, 0x0118, 0x0118, 0x0118, 0x0118, 0x0118, 0x0118, 0x0118, 0x0118, 0x0118, 0x0118, 0x0118, 0x0118, 0x0118, 0x0118, 0x0118, 0x0118, 0x0118, 0x0118, 0x0118, 0x0118, 0x0118, 0x0118, 0x0118, 0x0117, 0x00f7, 0x18ce, 0x20ac, 0x18cc, 0x18ac, 0x18ac, 0x20ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x20ac, 0x18ac, 0x18ac, 0x18ac, 0x20ac, 0x28cd, 0x8111, 0x9931, 0x9912, 0x9931, 0x9931, 0x9911, 0xbab0, 0xdc6f, 0xe50f, 0xe50e, 0xfe4e, 0xfe6e, 0xfe4e, 0xfe6d, 0xfe4e, 0xfe4e, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4e, 0xfe4e, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4d, 0xfe4e, 0xfe4e, 0xfe4e, 0xfe4e, 0xfe6e, 0xfe6e, 0xfe4e, 0xfe4e, 0xfe4e, 0xfe6e, 0xfe6e, 0xfe4e, 0xfe6f, 0xfe6e, 0xfe6f, 0xfe6f, 0xfe6f, 0xfe6f, 0xfe6f, 0xfe6f, 0xfe4f, 0xfe6f, 0xfe70, 0xfe50, 0xfe70, 0xfe70, 0xfe70, 0xfe70, 0xfe70, 0xfe70, 0xfe70, 0xfe70, 0xfe70, 0xfe70, 0xfe70, 0xfe70, 0xfe70, 0xfe70, 0xfe70, 0xfe70, 0xfe71, 0xfe71, 0xfe71, 0xfe71, 0xfe71, 0xfe71, 0xfe71, 0xfe71, 0xfe71, 0xfe71, 0xfe71, 0xfe71, 0xfe71, 0xf612, 0xe531, 0xe512, 0xd472, 0xb271, 0x9931, 0x9931, 0x9931, 0x9911, 0x9931, 0x9911, 0x6153, 0x5153, 0x5954, 0x5954, 0x7154, 0xb0f1, 0xb0f1, 0x285c, 0x003f, 0x005f, 0x007f, 0x00bf, 0x00ff, 0x013f, 0x015f, 0x017f, 0x019f, 0x01bf, 0x02ff, 0x07f4, 0x07e3, 0x07f1, 0x2e5c, 0xa911, 0x6932, 0x5132, 0x4931, 0x4132, 0x4110, 0x3910, 0x3910, 0x30ef, 0x30ee, 0x28ce, 0x28ce, 0x28cd, 0x20cd, 0x20cd, 0x20cd, 0x20ac, 0x20ad, 0x20ad, 0x20ac, 0x20ac, 0x20ac, 0x18ac, 0x18ac, 0x20ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x20ac, 0x18ac, 0x18ac, 0x18ac, 0x0118, 0x0118, 0x18ac, 0x20ac, 0x18ac, 0x20ac, 0x20ac, 0x20ac, 0x18cc, 0x20ac, 0x18ad, 0x0115, 0x0118, 0x00f7, 0x18ae, 0x18ac, 0x20ac, 0x20ac, 0x18ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x18ac, 0x20ac, 0x20ac, 0x18ac, 0x20ac, 0x20ac, 0x10d0, 0x10d2, 0x08d2, 0x18ae, 0x20ac, 0x18ac, 0x18ac, 0x18ac, 0x20ac, 0x20ac, 0x20ac, 0x18ac, 0x18ac, 0x20ac, 0x18ac, 0x18ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x18ac, + 0x18ac, 0x20ac, 0x20ac, 0x18cd, 0x0116, 0x0117, 0x0118, 0x0118, 0x0117, 0x0117, 0x0118, 0x0118, 0x0117, 0x0117, 0x0117, 0x0117, 0x0117, 0x0117, 0x0117, 0x0117, 0x0117, 0x0117, 0x0117, 0x0117, 0x0117, 0x0117, 0x0117, 0x0117, 0x0117, 0x0117, 0x0117, 0x0117, 0x0117, 0x0117, 0x0117, 0x0117, 0x0117, 0x0117, 0x0117, 0x0117, 0x0117, 0x0117, 0x0117, 0x0117, 0x0117, 0x0117, 0x0117, 0x0117, 0x0117, 0x0117, 0x0117, 0x0117, 0x0117, 0x0117, 0x0117, 0x0117, 0x0117, 0x0117, 0x0117, 0x0117, 0x0117, 0x0117, 0x0117, 0x0117, 0x0117, 0x0117, 0x0117, 0x0117, 0x0117, 0x0117, 0x0117, 0x0117, 0x0117, 0x0117, 0x0117, 0x0117, 0x0117, 0x18ce, 0x18ac, 0x20ac, 0x20ac, 0x18ac, 0x20ac, 0x18ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x18ac, 0x20ac, 0x20ac, 0x20ac, 0x18ac, 0x20ac, 0x20ac, 0x28cc, 0x610f, 0x9911, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9932, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9912, 0x9931, 0x9931, 0x9931, 0x9931, 0x9911, 0x9931, 0x9911, 0x9931, 0x9931, 0x9911, 0x9911, 0x9931, 0x9931, 0x9911, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9911, 0x9911, 0x9931, 0x9932, 0x9931, 0x9931, 0x9911, 0x9931, 0x9931, 0x9912, 0x9931, 0x9931, 0x9931, 0x9931, 0x8912, 0x5153, 0x5953, 0x5153, 0x5974, 0x5974, 0x7953, 0xb0f1, 0xb0d1, 0x087f, 0x009f, 0x00bf, 0x00df, 0x011f, 0x015f, 0x019f, 0x019f, 0x019f, 0x01df, 0x01df, 0x01ff, 0x07f7, 0x07e3, 0x07ef, 0x5498, 0xa8f1, 0x7132, 0x4952, 0x4931, 0x4131, 0x4110, 0x3910, 0x30ef, 0x30ef, 0x30ee, 0x28ce, 0x28ce, 0x28cd, 0x20cd, 0x20cd, 0x20cd, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x18ac, 0x18ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x18ac, 0x18ac, 0x20ac, 0x20ac, 0x0117, 0x0117, 0x20ac, 0x18ac, 0x18ac, 0x18ac, 0x20ac, 0x18ac, 0x18ac, 0x20ac, 0x20ac, 0x18ad, 0x0115, 0x0117, 0x00f7, 0x18ae, 0x18ac, 0x18ac, 0x18ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x18ad, 0x00f5, 0x0117, 0x0118, 0x0117, 0x0117, 0x08f3, 0x20ac, 0x20ac, 0x18ac, 0x20ac, 0x18ac, 0x18ac, 0x20ac, 0x18ac, 0x18ac, 0x20ac, 0x20ac, 0x20cc, 0x18ac, 0x20ac, 0x18ac, 0x18ac, 0x18ac, + 0x20ac, 0x18ac, 0x18ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x18ac, 0x18ac, 0x18ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x18ac, 0x20ac, 0x20ac, 0x18ac, 0x20ac, 0x18ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x18ac, 0x18ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x18ac, 0x40ce, 0x7910, 0x9931, 0x9931, 0x9932, 0x9931, 0x9931, 0x9931, 0x9911, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9911, 0x9931, 0x9931, 0xa111, 0x9911, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9912, 0x7132, 0x5153, 0x5153, 0x5153, 0x5974, 0x5974, 0x6174, 0x9113, 0xb0f1, 0x98f3, 0x00df, 0x00ff, 0x011f, 0x013f, 0x017f, 0x01bf, 0x01bf, 0x01df, 0x01df, 0x01ff, 0x01ff, 0x021f, 0x06d9, 0x07e5, 0x07ec, 0x7355, 0xa8f1, 0x7932, 0x4932, 0x4931, 0x4131, 0x4110, 0x3910, 0x390f, 0x30ef, 0x30ee, 0x28ce, 0x28ce, 0x28cd, 0x28cd, 0x20cd, 0x20cd, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x18ac, 0x20ac, 0x20ac, 0x18ac, 0x0117, 0x00f7, 0x20ac, 0x18ac, 0x20ac, 0x18ac, 0x20ac, 0x20ac, 0x18ac, 0x20ac, 0x20ac, 0x20ac, 0x20ad, 0x00f5, 0x0117, 0x0116, 0x18cd, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x00f5, 0x0117, 0x0118, 0x08f5, 0x0116, 0x0117, 0x0117, 0x10f2, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x18ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x18ac, 0x18ac, 0x20ab, 0x20ac, 0x20ac, + 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x18ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x18ab, 0x30cc, 0x58cf, 0x7910, 0x9931, 0x9931, 0x9912, 0x9931, 0x9931, 0x9911, 0x9931, 0x9911, 0x9932, 0x9931, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9911, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9911, 0x9911, 0x9931, 0x9931, 0x9911, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9911, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0xa111, 0x9911, 0x8932, 0x6932, 0x5152, 0x5153, 0x5953, 0x5953, 0x5974, 0x6174, 0x6175, 0x7954, 0xa8f1, 0xb0f1, 0x80f5, 0x013f, 0x017f, 0x019f, 0x01bf, 0x01df, 0x01ff, 0x01df, 0x01ff, 0x021f, 0x023f, 0x023f, 0x023f, 0x057d, 0x07e8, 0x07e9, 0x82d5, 0xa0f1, 0x8132, 0x5132, 0x4931, 0x4131, 0x4110, 0x38f0, 0x38ef, 0x30ef, 0x30ee, 0x28ce, 0x28cd, 0x28cd, 0x28cd, 0x20cd, 0x20cd, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x18ac, 0x20ac, 0x20ac, 0x00f7, 0x0117, 0x10d0, 0x18ac, 0x18ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x18ac, 0x20ac, 0x18ac, 0x18ac, 0x18cd, 0x00f5, 0x0117, 0x08f5, 0x18ad, 0x20ac, 0x20cc, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x18ac, 0x20ac, 0x20ac, 0x18ad, 0x0117, 0x0117, 0x10d0, 0x20ac, 0x20ac, 0x08f3, 0x0117, 0x0115, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x18ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20cc, 0x20ac, 0x20ac, 0x20ac, 0x20cc, + 0x20ac, 0x20ac, 0x20ac, 0x20ab, 0x20ab, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x18ac, 0x20ac, 0x20ac, 0x18ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x18cc, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ab, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20cc, 0x20ad, 0x20cd, 0x20cd, 0x28cd, 0x28cd, 0x28cd, 0x28cd, 0x28cd, 0x28ce, 0x28ee, 0x28ee, 0x30ee, 0x30ef, 0x30ef, 0x30ee, 0x38ef, 0x5110, 0x6110, 0x5910, 0x6930, 0x7931, 0x8131, 0x8130, 0x9931, 0xa932, 0xa131, 0xb131, 0xc912, 0xc911, 0xc8f2, 0xc8f2, 0xc8f2, 0xc8d1, 0xc0d1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0d1, 0xb8b1, 0xc0d1, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8d1, 0xb0d1, 0xb8d1, 0xb8d1, 0xb0d1, 0xb0d1, 0xb0f1, 0xb0d1, 0xb0d1, 0xb0d1, 0xb0f1, 0xb0f1, 0xb0f1, 0x5158, 0x01bf, 0x01df, 0x01ff, 0x021f, 0x023f, 0x023f, 0x021f, 0x023f, 0x025f, 0x025f, 0x025f, 0x025f, 0x041f, 0x07ed, 0x07e4, 0x7ab4, 0xa911, 0x9112, 0x5132, 0x4931, 0x4111, 0x4110, 0x3910, 0x38ef, 0x30ef, 0x30ee, 0x30ee, 0x28cd, 0x28cd, 0x28cd, 0x20cd, 0x20cc, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x18ac, 0x10d0, 0x0117, 0x00f7, 0x10d0, 0x20ac, 0x20cc, 0x18ac, 0x18ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x00f5, 0x0117, 0x0117, 0x0117, 0x0117, 0x0117, 0x0117, 0x0117, 0x0117, 0x0117, 0x0117, 0x0117, 0x0117, 0x0117, 0x0117, 0x0117, 0x0117, 0x0117, 0x0117, 0x0117, 0x0117, 0x0117, 0x0117, 0x0117, 0x0117, 0x0117, 0x0117, 0x0117, 0x0117, 0x0117, 0x0117, 0x0117, 0x0117, 0x0117, 0x0117, 0x20ac, 0x20ac, 0x20ac, 0x10ef, 0x0117, 0x0117, 0x20ac, 0x20ac, 0x20ab, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x18ac, 0x20ac, 0x20ac, 0x20ab, 0x20ac, 0x20ac, 0x20ac, 0x20ac, + 0x20ac, 0x18ac, 0x18ac, 0x18cc, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x18ac, 0x20ac, 0x20ac, 0x20ac, 0x20cc, 0x20ac, 0x20ab, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x18ac, 0x20ac, 0x20ac, 0x20ac, 0x18ac, 0x20ac, 0x20ab, 0x18ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ab, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20cc, 0x20cd, 0x20cd, 0x28cd, 0x28cd, 0x28cd, 0x28cd, 0x28ad, 0x28ce, 0x30ce, 0x30ce, 0x30ee, 0x8151, 0xb192, 0xc9b3, 0xc9b2, 0xc992, 0xc992, 0xc992, 0xc972, 0xc972, 0xc972, 0xc952, 0xc952, 0xc932, 0xc932, 0xc932, 0xc912, 0xc912, 0xc111, 0xc8f1, 0xc8f1, 0xc8d1, 0xc0d1, 0xc8b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0d1, 0xb8b1, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8d1, 0xb0d2, 0xb8d1, 0xb8d1, 0xb8d1, 0xb0d1, 0xb0f1, 0xb0f1, 0xb0f1, 0xb0f1, 0xb0f1, 0xb0f1, 0xb0f1, 0xa8f1, 0x39bb, 0x021f, 0x023f, 0x025f, 0x027f, 0x027f, 0x025f, 0x025f, 0x027f, 0x027f, 0x027f, 0x027f, 0x027f, 0x029f, 0x07f3, 0x07e2, 0x9972, 0xa911, 0xa112, 0x4952, 0x4932, 0x4131, 0x4110, 0x3910, 0x38ef, 0x30ef, 0x30ee, 0x30ee, 0x28cd, 0x28cd, 0x28cd, 0x20cd, 0x20cc, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x18ac, 0x20ac, 0x20ac, 0x20ac, 0x08f2, 0x0117, 0x0116, 0x10d0, 0x20ac, 0x20ab, 0x18ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x18ac, 0x20ac, 0x20ad, 0x00f4, 0x00f7, 0x0117, 0x0117, 0x0117, 0x0117, 0x0117, 0x0117, 0x0117, 0x0117, 0x0117, 0x0117, 0x0117, 0x0117, 0x0117, 0x0117, 0x0117, 0x0117, 0x0117, 0x0117, 0x0117, 0x0117, 0x0117, 0x0117, 0x0117, 0x0117, 0x0117, 0x0117, 0x0116, 0x0117, 0x0116, 0x0117, 0x0116, 0x0117, 0x18cf, 0x20ac, 0x20ac, 0x10d1, 0x00f7, 0x0115, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ab, 0x20ab, 0x20ac, 0x03b7, 0x03b7, 0x03b7, 0x03b7, 0x03b8, 0x03b7, 0x03b7, 0x03b7, 0x03b7, + 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ab, 0x20ab, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ab, 0x20ac, 0x20ab, 0x20ab, 0x20ab, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x18ac, 0x20ac, 0x18cc, 0x18ac, 0x20ab, 0x20ac, 0x20ac, 0x20ab, 0x20ac, 0x20ac, 0x18ac, 0x20ab, 0x20ab, 0x20ac, 0x20ac, 0x20ab, 0x20ab, 0x20ac, 0x20ac, 0x20ab, 0x20ab, 0x20ac, 0x20ab, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20cc, 0x20cc, 0x20cc, 0x28cd, 0x28cd, 0x28cd, 0x28cd, 0x30cd, 0x28ee, 0x30ee, 0x490e, 0xa9b2, 0xc9d3, 0xc9d3, 0xc9b3, 0xc9b3, 0xc992, 0xc992, 0xc972, 0xc972, 0xc972, 0xc952, 0xc952, 0xc952, 0xc932, 0xc932, 0xc912, 0xc912, 0xc912, 0xc0f2, 0xc8d1, 0xc0d1, 0xc0d1, 0xc8b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8d1, 0xb0d1, 0xb0d1, 0xb8d2, 0xb8d1, 0xb0f1, 0xb0d1, 0xb0f2, 0xb0f1, 0xb0f1, 0xb0f1, 0xa8f1, 0xa8f1, 0x123e, 0x029f, 0x02bf, 0x02bf, 0x02bf, 0x029f, 0x029f, 0x029f, 0x02bf, 0x02bf, 0x02bf, 0x029f, 0x029f, 0x02df, 0x06b9, 0x07e3, 0xa111, 0xa911, 0xa111, 0x5932, 0x4931, 0x4911, 0x4110, 0x4110, 0x390f, 0x38ef, 0x30ee, 0x30ee, 0x28cd, 0x28cd, 0x28cd, 0x20cd, 0x20cc, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ab, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ab, 0x20ac, 0x20ab, 0x20ab, 0x20ac, 0x08d3, 0x0116, 0x0117, 0x10cf, 0x20ac, 0x20ab, 0x20ab, 0x20ab, 0x20ac, 0x20ac, 0x20ab, 0x20ac, 0x18ab, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ab, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ab, 0x20ac, 0x20ab, 0x20ac, 0x00f4, 0x0117, 0x0116, 0x08f2, 0x08f2, 0x0117, 0x0116, 0x08f2, 0x20ac, 0x18ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x03b7, 0x03b7, 0x03b8, 0x03b7, 0x03b7, 0x03b7, 0x03b7, 0x03b7, 0x03b7, + 0x20ac, 0x20ab, 0x20ab, 0x20ab, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ab, 0x20ac, 0x20ac, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ac, 0x20ab, 0x20ab, 0x20ab, 0x20ac, 0x20ab, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ab, 0x20ac, 0x20ab, 0x20ac, 0x20ac, 0x20ab, 0x20ab, 0x18ac, 0x20ac, 0x20ab, 0x20ac, 0x20ac, 0x20ac, 0x18ab, 0x20ab, 0x20ab, 0x20ac, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20cc, 0x20cd, 0x28cd, 0x28cd, 0x28cd, 0x28cd, 0x28cd, 0x28cd, 0x30ed, 0x692f, 0xc9d3, 0xc9d3, 0xc9b3, 0xc9b3, 0xc9b3, 0xc992, 0xc992, 0xc972, 0xc972, 0xc972, 0xc952, 0xc952, 0xc932, 0xc932, 0xc132, 0xc912, 0xc912, 0xc8f2, 0xc8f1, 0xc8d1, 0xc0d1, 0xc0d1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xc0b1, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8d1, 0xb0d1, 0xb8d1, 0xb0f1, 0xb0d1, 0xb0d1, 0xb0f1, 0xb0d1, 0xb0f1, 0xb0f1, 0xb0f1, 0xb0f1, 0xb0f1, 0xb0f1, 0xa8f1, 0x9933, 0x02df, 0x02df, 0x02ff, 0x02ff, 0x02df, 0x02bf, 0x02df, 0x02df, 0x02df, 0x02df, 0x02df, 0x02bf, 0x02bf, 0x02ff, 0x051e, 0x07e8, 0xa912, 0xa111, 0xa111, 0x6932, 0x4931, 0x4931, 0x4130, 0x410f, 0x390f, 0x38ee, 0x30ee, 0x30ee, 0x28cd, 0x28cd, 0x28cd, 0x20cd, 0x20cc, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ab, 0x20ab, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ab, 0x20ac, 0x20ab, 0x20ab, 0x20ac, 0x20ab, 0x20ab, 0x08f2, 0x0116, 0x0117, 0x10d0, 0x20ab, 0x20ab, 0x20ac, 0x20ab, 0x20ac, 0x20ab, 0x20ab, 0x20ac, 0x20ab, 0x20ab, 0x20ac, 0x20ac, 0x18cb, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x18ab, 0x20ab, 0x18ae, 0x0115, 0x0117, 0x0116, 0x0116, 0x0116, 0x00f4, 0x18cc, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x03b8, 0x03b8, 0x03b7, 0x03b7, 0x03b7, 0x03b8, 0x03b7, 0x03b7, 0x03b7, + 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ac, 0x20ac, 0x20ac, 0x28ac, 0x20cc, 0x28cc, 0x28cc, 0x28cc, 0x28cd, 0x28cd, 0x28ed, 0x28cd, 0x30cd, 0x9191, 0xc9d3, 0xc9d3, 0xc9b3, 0xc9b3, 0xc992, 0xc9b3, 0xc992, 0xc992, 0xc972, 0xc972, 0xc952, 0xc952, 0xc932, 0xc932, 0xc912, 0xc932, 0xc912, 0xc112, 0xc8f2, 0xc8f2, 0xc8d1, 0xc8d1, 0x9095, 0x9095, 0x9075, 0x8875, 0x6078, 0x6059, 0x6059, 0x6058, 0x6058, 0x6078, 0x6078, 0x6059, 0x6078, 0x6078, 0x5878, 0x6078, 0x88b4, 0x88b5, 0x88b5, 0xb8d1, 0xb8d1, 0xb8d1, 0xb8d1, 0xb0f1, 0xb0f1, 0xb0d1, 0xb0d1, 0xb0f1, 0xb0f1, 0xb0f1, 0xb0f1, 0xb0f1, 0xb0f1, 0xa8f1, 0xa8f1, 0xa8f1, 0x69d6, 0x033f, 0x033f, 0x033f, 0x031f, 0x02ff, 0x02ff, 0x02ff, 0x02ff, 0x02ff, 0x02ff, 0x02ff, 0x02df, 0x02ff, 0x035f, 0x03ff, 0x07f0, 0x8a4f, 0xa111, 0xa111, 0x8132, 0x4931, 0x4931, 0x4110, 0x410f, 0x390f, 0x30ee, 0x30ee, 0x30cd, 0x30cd, 0x28cd, 0x28cd, 0x28cc, 0x28cc, 0x20cc, 0x20ac, 0x20ac, 0x20ac, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x08f2, 0x0116, 0x0116, 0x10cf, 0x20ab, 0x20ab, 0x20ab, 0x20ac, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ac, 0x20ab, 0x20ab, 0x20cc, 0x08d1, 0x08f3, 0x08f3, 0x10d0, 0x20ab, 0x20ac, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x03b7, 0x03b8, 0x03b7, 0x03b7, 0x03b7, 0x03b7, 0x03b7, 0x03b7, 0x03b7, + 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20cc, 0x20ac, 0x28cc, 0x28cc, 0x28cc, 0x20cc, 0x28cc, 0x28cc, 0x28cd, 0x40ee, 0xa9b2, 0xc9d3, 0xc9d3, 0xc9b3, 0xc9b2, 0xc9b3, 0xc992, 0xc992, 0xc972, 0xc972, 0xc952, 0xc952, 0xc952, 0xc932, 0xc932, 0x90d5, 0x88d6, 0x6098, 0x5879, 0x303c, 0x305c, 0x081e, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x003f, 0x005f, 0x007f, 0x009f, 0x00bf, 0x00df, 0x291c, 0x411a, 0x6118, 0x8915, 0xb0d1, 0xb0f1, 0xb0f1, 0xb0f1, 0xb0f1, 0xb0f1, 0xb0f1, 0xb0f1, 0xb0f2, 0xa8f1, 0xb0f1, 0x429a, 0x039f, 0x039f, 0x035f, 0x035f, 0x033f, 0x033f, 0x033f, 0x033f, 0x033f, 0x033f, 0x031f, 0x031f, 0x031f, 0x037f, 0x03ff, 0x06d7, 0x7acf, 0xa111, 0xa111, 0x9912, 0x5131, 0x4931, 0x4110, 0x410f, 0x40ef, 0x38ee, 0x30ee, 0x30ed, 0x30cd, 0x28cd, 0x28cd, 0x28cc, 0x28cc, 0x20cc, 0x20cc, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x08f2, 0x0116, 0x0116, 0x10cf, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20cb, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x03b7, 0x03b7, 0x03b7, 0x03b7, 0x03b7, 0x20ab, 0x20ab, 0x20ab, 0x20ab, + 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20cb, 0x20cb, 0x20cb, 0x28cc, 0x28cc, 0x28cc, 0x28cd, 0x28cc, 0x490e, 0xc1d3, 0xc9d3, 0xc9d3, 0xc9b3, 0xc9b3, 0xc9b3, 0xc9b3, 0xc992, 0xc992, 0xc972, 0xc952, 0x98f5, 0x60b8, 0x407b, 0x183e, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x003f, 0x003f, 0x007f, 0x007f, 0x009f, 0x00bf, 0x00ff, 0x011f, 0x013f, 0x017f, 0x019f, 0x01df, 0x021f, 0x21fd, 0x49d9, 0x7996, 0xa112, 0xa8f1, 0xb0f1, 0xa8f1, 0xa8f1, 0xa8f1, 0xa8f1, 0x139e, 0x03df, 0x03bf, 0x039f, 0x039f, 0x037f, 0x037f, 0x037f, 0x037f, 0x035f, 0x035f, 0x033f, 0x033f, 0x035f, 0x03bf, 0x041f, 0x05de, 0x7ad1, 0xa111, 0xa111, 0xa111, 0x5931, 0x4931, 0x4130, 0x4130, 0x40ef, 0x38ee, 0x30ee, 0x30ed, 0x30ed, 0x28cc, 0x28cc, 0x28cc, 0x28cc, 0x20cb, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x08f2, 0x0115, 0x0115, 0x10cf, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x18ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x03b7, 0x03b7, 0x03b7, 0x03b7, 0x03b7, 0x03b7, 0x03b7, 0x03b7, 0x03b8, + 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20cb, 0x28cc, 0x28cc, 0x28cc, 0x28cc, 0x28cc, 0x692f, 0xc9f3, 0xc9d3, 0xc9d3, 0xc9b2, 0xc9b3, 0xc992, 0xc9b2, 0xc972, 0xb973, 0x80f7, 0x387b, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x003f, 0x003f, 0x005f, 0x007f, 0x009f, 0x00bf, 0x00df, 0x00ff, 0x013f, 0x015f, 0x019f, 0x01bf, 0x01ff, 0x023f, 0x025f, 0x029f, 0x02df, 0x02ff, 0x033f, 0x2adc, 0x5a58, 0x8994, 0xa8f1, 0xa8f1, 0x81d4, 0x041f, 0x041f, 0x03ff, 0x03df, 0x03bf, 0x03bf, 0x03bf, 0x03bf, 0x03bf, 0x039f, 0x037f, 0x035f, 0x037f, 0x039f, 0x03ff, 0x047f, 0x04ff, 0x6375, 0xa112, 0xa111, 0xa111, 0x7111, 0x4931, 0x4110, 0x4110, 0x390f, 0x38ee, 0x30ee, 0x30ed, 0x30ed, 0x28cc, 0x28cc, 0x28cc, 0x28cc, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20aa, 0x08f1, 0x0115, 0x0115, 0x10cf, 0x20ab, 0x20ab, 0x20ab, 0x20ca, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x03b7, 0x03b7, 0x03b7, 0x03b7, 0x03b7, 0x03b7, 0x03b7, 0x03b7, 0x03b7, + 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20cb, 0x28ac, 0x28cc, 0x28cc, 0x28cc, 0x692e, 0xc9f3, 0xc9d2, 0xc9d3, 0xc9b3, 0xc9b3, 0xc992, 0xc993, 0x80f7, 0x389b, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x083c, 0x085b, 0x105b, 0x2078, 0x2098, 0x2097, 0x2097, 0x2097, 0x2097, 0x2097, 0x2098, 0x187a, 0x105b, 0x085d, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x003f, 0x005f, 0x007f, 0x009f, 0x00df, 0x00ff, 0x011f, 0x015f, 0x017f, 0x01bf, 0x01ff, 0x021f, 0x025f, 0x029f, 0x02df, 0x02ff, 0x033f, 0x037f, 0x03bf, 0x03df, 0x041f, 0x043f, 0x0c3f, 0x2bbc, 0x0c3f, 0x045f, 0x043f, 0x041f, 0x041f, 0x03ff, 0x03ff, 0x03ff, 0x03df, 0x03df, 0x03bf, 0x039f, 0x037f, 0x039f, 0x03df, 0x043f, 0x04bf, 0x053f, 0x5398, 0xa111, 0xa111, 0xa111, 0x9111, 0x4931, 0x4910, 0x4110, 0x410f, 0x38ee, 0x38ee, 0x30ed, 0x30cd, 0x30cd, 0x28cc, 0x28cc, 0x28cc, 0x28cb, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20aa, 0x20ab, 0x20ab, 0x20ab, 0x08f1, 0x0115, 0x0115, 0x10ce, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20aa, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20aa, 0x20ab, 0x20ab, 0x20aa, 0x20ab, 0x20aa, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x1378, 0x1378, 0x1358, 0x1358, 0x1378, 0x1378, 0x1358, 0x1378, 0x1358, + 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20cb, 0x28cb, 0x28cb, 0x28cc, 0x28cb, 0x614e, 0xd1f3, 0xc9f3, 0xc9d3, 0xc9b2, 0xc9b3, 0xb173, 0x60d9, 0x081e, 0x003d, 0x083b, 0x1878, 0x1877, 0x28d2, 0x28d2, 0x40ee, 0x38ee, 0x390f, 0x390f, 0x390f, 0x410e, 0x410f, 0x410f, 0x410f, 0x410f, 0x410f, 0x410f, 0x410f, 0x4110, 0x410f, 0x4910, 0x4130, 0x38f3, 0x28b6, 0x189a, 0x003e, 0x001f, 0x001f, 0x003f, 0x005f, 0x005f, 0x007f, 0x00bf, 0x00df, 0x00ff, 0x013f, 0x015f, 0x019f, 0x01df, 0x021f, 0x023f, 0x027f, 0x029f, 0x02ff, 0x033f, 0x035f, 0x039f, 0x03df, 0x041f, 0x045f, 0x047f, 0x04bf, 0x04df, 0x04df, 0x04bf, 0x04bf, 0x047f, 0x047f, 0x043f, 0x043f, 0x043f, 0x041f, 0x041f, 0x03ff, 0x03df, 0x03bf, 0x03bf, 0x03df, 0x043f, 0x047f, 0x04df, 0x057f, 0x3c1a, 0xa111, 0xa111, 0xa111, 0xa111, 0x5931, 0x4910, 0x4110, 0x410f, 0x390e, 0x38ee, 0x30ed, 0x30ed, 0x30cc, 0x28cc, 0x28cc, 0x28cb, 0x28cb, 0x20cb, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20ab, 0x20aa, 0x20aa, 0x20ab, 0x20aa, 0x08f1, 0x0115, 0x0115, 0x10cf, 0x20ab, 0x20aa, 0x20ab, 0x20aa, 0x20ab, 0x20ab, 0x20ab, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20aa, 0x20aa, 0x20ab, 0x20ab, 0x20aa, 0x20ab, 0x20ab, 0x20ab, 0x3af9, 0x3ad9, 0x3ad9, 0x3ad9, 0x3ad9, 0x3ad9, 0x3af9, 0x3af9, 0x3af9, + 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20cb, 0x28cb, 0x20cb, 0x28ab, 0x692e, 0xc9d3, 0xc9d3, 0xc9d3, 0xc9b3, 0xb1b2, 0x58f3, 0x1895, 0x28b2, 0x30ed, 0x38ed, 0x30ed, 0x38ed, 0x38ed, 0x38ed, 0x38ee, 0x390e, 0x390e, 0x38ee, 0x38ee, 0x390e, 0x390e, 0x390e, 0x390e, 0x410f, 0x390e, 0x410f, 0x410f, 0x410f, 0x410f, 0x410f, 0x410f, 0x4110, 0x410f, 0x492f, 0x4930, 0x4910, 0x38f3, 0x20b8, 0x087d, 0x007f, 0x009f, 0x00df, 0x00ff, 0x011f, 0x015f, 0x017f, 0x019f, 0x01df, 0x021f, 0x025f, 0x02bf, 0x02df, 0x031f, 0x035f, 0x039f, 0x03df, 0x041f, 0x045f, 0x049f, 0x04df, 0x04ff, 0x051f, 0x051f, 0x053f, 0x04ff, 0x04df, 0x04bf, 0x049f, 0x047f, 0x047f, 0x045f, 0x045f, 0x043f, 0x041f, 0x03ff, 0x03df, 0x03ff, 0x043f, 0x045f, 0x04bf, 0x053f, 0x05bf, 0x2cdc, 0xa112, 0xa111, 0xa111, 0xa111, 0x7131, 0x4930, 0x4130, 0x410f, 0x390e, 0x38ee, 0x30ed, 0x30ed, 0x30cc, 0x28cc, 0x28cc, 0x28cb, 0x28cb, 0x28ab, 0x20cb, 0x20ab, 0x20ab, 0x20ab, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20ab, 0x20ab, 0x20aa, 0x08f1, 0x0115, 0x0114, 0x10ce, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20ab, 0x20ab, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20ab, 0x20aa, 0x20aa, 0x20aa, 0x20ab, 0x20aa, 0x20ab, 0x20aa, 0x20aa, 0x20ab, 0x20aa, 0x20aa, 0x20aa, 0x20ab, 0x20ab, 0x20aa, 0x20aa, 0x20aa, 0x20ab, 0x625a, 0x625b, 0x5a5a, 0x5a5a, 0x625b, 0x20ca, 0x20aa, 0x20aa, 0x20aa, + 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20aa, 0x20aa, 0x20aa, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x28ab, 0x28cb, 0x28cb, 0x612e, 0xc9f3, 0xc9d3, 0xc9d3, 0xb992, 0x692e, 0x28cc, 0x28ec, 0x30cd, 0x30ed, 0x30ed, 0x30ed, 0x30ed, 0x30ed, 0x38ed, 0x30ed, 0x38ed, 0x38ed, 0x390e, 0x38ee, 0x38ee, 0x38ee, 0x390f, 0x38ee, 0x40ee, 0x40ee, 0x390f, 0x390e, 0x410e, 0x40ef, 0x410f, 0x410f, 0x410f, 0x410f, 0x410f, 0x410f, 0x410f, 0x412f, 0x4910, 0x4910, 0x4930, 0x4113, 0x28f8, 0x08fe, 0x013f, 0x015f, 0x019f, 0x01df, 0x021f, 0x023f, 0x029f, 0x02bf, 0x031f, 0x035f, 0x039f, 0x03df, 0x041f, 0x045f, 0x049f, 0x04df, 0x051f, 0x053f, 0x057f, 0x059f, 0x057f, 0x055f, 0x053f, 0x04ff, 0x04ff, 0x04df, 0x04bf, 0x049f, 0x049f, 0x047f, 0x045f, 0x043f, 0x041f, 0x041f, 0x043f, 0x045f, 0x04bf, 0x04ff, 0x055f, 0x05df, 0x0e1f, 0xa111, 0xa111, 0xa111, 0xa112, 0x8931, 0x4930, 0x4130, 0x410f, 0x410e, 0x38ee, 0x30ed, 0x30ed, 0x30cc, 0x28cc, 0x28cc, 0x28cc, 0x28cb, 0x28cb, 0x20cb, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20aa, 0x20ab, 0x20aa, 0x20ab, 0x20aa, 0x20aa, 0x08f1, 0x0115, 0x0114, 0x10cf, 0x20ab, 0x20ab, 0x20aa, 0x20aa, 0x20aa, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20aa, 0x20ab, 0x20aa, 0x20ab, 0x20cb, 0x10cf, 0x10ef, 0x10ef, 0x18ce, 0x20aa, 0x20ab, 0x20aa, 0x20aa, 0x20ab, 0x20aa, 0x20aa, 0x20aa, 0x20ab, 0x81db, 0x81dc, 0x81db, 0x81db, 0x81bc, 0x81bb, 0x81bc, 0x81dc, 0x81dc, + 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20ca, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20ab, 0x20ab, 0x20aa, 0x20ab, 0x20ab, 0x20cb, 0x20ab, 0x20ab, 0x20cb, 0x28ab, 0x20cb, 0x612e, 0xd1f3, 0xc9f3, 0xc1b2, 0x612e, 0x28cc, 0x28cc, 0x28cc, 0x28cc, 0x30cc, 0x30cc, 0x30cd, 0x30ed, 0x30ed, 0x30ed, 0x30ed, 0x30ed, 0x30ed, 0x38ed, 0x38ee, 0x38ee, 0x38ee, 0x38ee, 0x38ee, 0x38ee, 0x38ee, 0x38ee, 0x38ee, 0x38ee, 0x390e, 0x38ee, 0x390e, 0x390e, 0x390e, 0x410f, 0x410f, 0x410f, 0x410f, 0x410f, 0x410f, 0x4130, 0x4930, 0x4930, 0x4931, 0x4930, 0x4133, 0x197a, 0x01de, 0x021f, 0x027f, 0x02bf, 0x02ff, 0x033f, 0x037f, 0x03bf, 0x03ff, 0x045f, 0x049f, 0x04df, 0x051f, 0x057f, 0x059f, 0x05df, 0x05df, 0x05df, 0x05bf, 0x059f, 0x055f, 0x055f, 0x053f, 0x051f, 0x04ff, 0x04df, 0x04df, 0x04bf, 0x047f, 0x045f, 0x043f, 0x043f, 0x047f, 0x04bf, 0x04ff, 0x053f, 0x05bf, 0x061f, 0x069f, 0x9972, 0xa111, 0xa111, 0xa111, 0xa111, 0x5130, 0x4910, 0x410f, 0x390f, 0x390e, 0x38ed, 0x30ed, 0x30cd, 0x28cc, 0x28cc, 0x28cc, 0x28cb, 0x28cb, 0x20cb, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20aa, 0x20aa, 0x20ab, 0x20ab, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x08f1, 0x0115, 0x00f4, 0x18cc, 0x20aa, 0x20ab, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20ab, 0x20aa, 0x18cc, 0x00f3, 0x0115, 0x0114, 0x0115, 0x00f4, 0x00f2, 0x20cb, 0x20ab, 0x20aa, 0x20aa, 0x20aa, 0x20ab, 0x20aa, 0x20aa, 0xa93d, 0xa93d, 0xa95c, 0xa93d, 0xa95c, 0xa95d, 0xa93c, 0xa95d, 0xa93d, + 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20ab, 0x20ab, 0x20aa, 0x20ab, 0x20ab, 0x20aa, 0x20ab, 0x20ab, 0x20cb, 0x28ab, 0x510d, 0xd1f3, 0xc9d2, 0x816f, 0x30cc, 0x28ac, 0x28cc, 0x28cc, 0x28cc, 0x28cc, 0x28cc, 0x30cc, 0x30cc, 0x30cd, 0x30ed, 0x30ed, 0x30cd, 0x30ed, 0x30ed, 0x30ed, 0x30ed, 0x30ed, 0x38ed, 0x38ed, 0x38ed, 0x38ed, 0x38ee, 0x38ee, 0x38ee, 0x38ee, 0x38ee, 0x38ee, 0x390e, 0x390e, 0x390e, 0x390e, 0x390e, 0x410f, 0x410f, 0x410f, 0x410f, 0x4110, 0x410f, 0x4910, 0x4930, 0x4930, 0x4930, 0x4931, 0x4932, 0x31b6, 0x0a9d, 0x02ff, 0x035f, 0x039f, 0x03ff, 0x043f, 0x047f, 0x04bf, 0x051f, 0x055f, 0x05bf, 0x05df, 0x061f, 0x063f, 0x063f, 0x05ff, 0x05df, 0x05bf, 0x059f, 0x059f, 0x057f, 0x055f, 0x053f, 0x051f, 0x04ff, 0x04df, 0x04bf, 0x047f, 0x047f, 0x047f, 0x049f, 0x04df, 0x053f, 0x057f, 0x05ff, 0x065f, 0x06df, 0x7a95, 0xa111, 0xa111, 0xa111, 0xa111, 0x6911, 0x4930, 0x410f, 0x410f, 0x390e, 0x38ee, 0x30ed, 0x30cd, 0x28cc, 0x28cc, 0x28cc, 0x28cb, 0x28cb, 0x20cb, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20aa, 0x20aa, 0x20ab, 0x20ab, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20ab, 0x08f1, 0x0114, 0x0114, 0x18cd, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20ab, 0x20aa, 0x08f2, 0x0115, 0x0114, 0x0115, 0x0114, 0x0115, 0x0114, 0x10ef, 0x20ab, 0x20ab, 0x20aa, 0x20aa, 0x20aa, 0x20cb, 0x20ab, 0xc8be, 0xd0be, 0xc8be, 0xc8be, 0xd0be, 0xc8be, 0xd0be, 0xd0be, 0xc8be, + 0x20ca, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20aa, 0x20cb, 0x20cb, 0x20ab, 0x20ab, 0x40ec, 0xc1d2, 0xc1b3, 0x490d, 0x28cb, 0x28cc, 0x28cc, 0x28cc, 0x28cc, 0x28cc, 0x28cc, 0x28cc, 0x28cc, 0x30cc, 0x30cc, 0x30ec, 0x30cd, 0x30cd, 0x30ed, 0x30ed, 0x30ed, 0x30ed, 0x30ed, 0x30ed, 0x30ed, 0x30ed, 0x30ed, 0x30ed, 0x30ed, 0x38ed, 0x38ed, 0x38ed, 0x38ed, 0x38ee, 0x38ee, 0x38ee, 0x38ee, 0x38ee, 0x38ee, 0x390e, 0x390e, 0x390f, 0x410f, 0x410f, 0x410f, 0x410f, 0x4910, 0x4910, 0x4930, 0x4931, 0x4951, 0x4951, 0x39d5, 0x131c, 0x041f, 0x047f, 0x04bf, 0x051f, 0x055f, 0x059f, 0x05df, 0x061f, 0x067f, 0x069f, 0x069f, 0x067f, 0x065f, 0x061f, 0x05ff, 0x05ff, 0x05bf, 0x059f, 0x057f, 0x055f, 0x053f, 0x051f, 0x04ff, 0x04df, 0x04bf, 0x04bf, 0x04bf, 0x04df, 0x051f, 0x057f, 0x05bf, 0x063f, 0x069f, 0x071f, 0x5438, 0xa111, 0xa111, 0xa111, 0xa111, 0x8111, 0x4930, 0x410f, 0x410f, 0x390e, 0x38ee, 0x30ed, 0x30ed, 0x30cc, 0x28cc, 0x28cc, 0x28cb, 0x28cb, 0x20cb, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20aa, 0x20aa, 0x20ab, 0x20ab, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x08f1, 0x0115, 0x00f4, 0x18cc, 0x20aa, 0x20ab, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20ab, 0x20ab, 0x20aa, 0x18cc, 0x00f5, 0x0115, 0x00f4, 0x0115, 0x0115, 0x0114, 0x0115, 0x00f4, 0x20aa, 0x20ab, 0x20aa, 0x20ab, 0x20aa, 0x20ab, 0x20aa, 0xf03f, 0xf03f, 0xf03f, 0xf03f, 0xf03f, 0xf03f, 0xf03f, 0xf03f, 0xf03f, + 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20ab, 0x20ab, 0x20aa, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x30cb, 0xa992, 0xa9b1, 0x30cb, 0x28cb, 0x28cb, 0x28cb, 0x28cb, 0x28cc, 0x28cc, 0x28cc, 0x28cc, 0x28cc, 0x28cc, 0x28cc, 0x30cc, 0x30cc, 0x30cc, 0x30cc, 0x30ec, 0x30ec, 0x30cd, 0x30ed, 0x30ed, 0x30cd, 0x30ed, 0x30ed, 0x30ed, 0x30ed, 0x30ed, 0x30ed, 0x30ed, 0x30ed, 0x30ed, 0x38ed, 0x38ed, 0x38ed, 0x38ed, 0x38ee, 0x38ee, 0x38ee, 0x390e, 0x390e, 0x390e, 0x410f, 0x410f, 0x410f, 0x410f, 0x410f, 0x412f, 0x4930, 0x4930, 0x5130, 0x4931, 0x5131, 0x3a15, 0x237b, 0x053f, 0x059f, 0x5358, 0x349b, 0x0e1f, 0x06bf, 0x06ff, 0x06ff, 0x06df, 0x06bf, 0x069f, 0x065f, 0x063f, 0x061f, 0x05ff, 0x05df, 0x05bf, 0x059f, 0x057f, 0x055f, 0x051f, 0x04ff, 0x04df, 0x04df, 0x04ff, 0x051f, 0x055f, 0x059f, 0x05ff, 0x065f, 0x06df, 0x073f, 0x359b, 0xa111, 0xa111, 0xa111, 0xa111, 0xa111, 0x4930, 0x4910, 0x412f, 0x390e, 0x38ee, 0x30ed, 0x30ed, 0x30cc, 0x28cc, 0x28cc, 0x28cb, 0x28cb, 0x20cb, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20aa, 0x20ab, 0x20ab, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20ab, 0x20ab, 0x20ab, 0x00f3, 0x0115, 0x0114, 0x0115, 0x0115, 0x0115, 0x0115, 0x0115, 0x0115, 0x0115, 0x0115, 0x0115, 0x0115, 0x0115, 0x0115, 0x0115, 0x0115, 0x0115, 0x0115, 0x0115, 0x0115, 0x0115, 0x0115, 0x0115, 0x0115, 0x0115, 0x0115, 0x0115, 0x0115, 0x0115, 0x0114, 0x0114, 0x0114, 0x0115, 0x0114, 0x0114, 0x0115, 0x0115, 0x0114, 0x0114, 0x0114, 0x20ab, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20ab, 0x20aa, 0x20ab, 0x20aa, 0x20ab, 0x20aa, 0x20aa, 0x20ab, 0x20aa, 0x20ca, + 0x790f, 0x68ee, 0x50ed, 0x38cc, 0x20ab, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20ab, 0x20ab, 0x20aa, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x692f, 0x816f, 0x20ab, 0x20cb, 0x20ab, 0x28cb, 0x28cb, 0x28cb, 0x28ab, 0x28cb, 0x28cc, 0x28cc, 0x28cc, 0x28cc, 0x28cc, 0x28cc, 0x28cc, 0x28cc, 0x28cc, 0x28cc, 0x30cc, 0x30cc, 0x30cc, 0x30cd, 0x30cd, 0x30cd, 0x30cd, 0x30cd, 0x30cd, 0x30cd, 0x30cd, 0x30ed, 0x30ed, 0x30ed, 0x30ed, 0x30ed, 0x30ed, 0x30ed, 0x30ed, 0x38ed, 0x38ee, 0x38ee, 0x38ee, 0x38ee, 0x390e, 0x390e, 0x410f, 0x410f, 0x410f, 0x410f, 0x412f, 0x4930, 0x4930, 0x4930, 0x4931, 0x4931, 0x5131, 0x49d4, 0x243a, 0xa132, 0xa8f1, 0xa8f1, 0xa8f1, 0x8295, 0x8295, 0x5418, 0x351b, 0x06df, 0x069f, 0x067f, 0x065f, 0x063f, 0x05ff, 0x05ff, 0x05bf, 0x059f, 0x057f, 0x055f, 0x053f, 0x051f, 0x051f, 0x053f, 0x057f, 0x059f, 0x05df, 0x063f, 0x069f, 0x06ff, 0x077f, 0x0f5f, 0xa111, 0xa111, 0xa111, 0xa111, 0x9931, 0x6911, 0x4930, 0x410f, 0x390e, 0x38ee, 0x30ed, 0x30ed, 0x30cd, 0x30cc, 0x28cc, 0x28cb, 0x28cb, 0x28cb, 0x20cb, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20aa, 0x20ab, 0x20ab, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20ab, 0x18cb, 0x00f2, 0x0115, 0x0114, 0x0115, 0x0115, 0x0115, 0x0115, 0x0115, 0x0115, 0x0115, 0x0115, 0x0115, 0x0115, 0x0115, 0x0115, 0x0115, 0x0115, 0x0115, 0x0115, 0x0115, 0x0115, 0x0115, 0x0115, 0x0115, 0x0115, 0x0115, 0x0115, 0x0115, 0x0115, 0x0115, 0x0114, 0x00f5, 0x0114, 0x0115, 0x0114, 0x0115, 0x0115, 0x0115, 0x0115, 0x0114, 0x20ab, 0x20ab, 0x20aa, 0x20aa, 0x20ab, 0x20aa, 0x20aa, 0x20ab, 0x20ab, 0x20aa, 0x20aa, 0x20ab, 0x20ab, 0x20ab, 0x20aa, 0x20ab, + 0x8130, 0x8930, 0x8930, 0x8910, 0x8930, 0x790f, 0x690e, 0x48cd, 0x38cc, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20ca, 0x20ca, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20aa, 0x20aa, 0x20cb, 0x20ab, 0x20ab, 0x20aa, 0x20ab, 0x20ab, 0x20cb, 0x20ab, 0x28cb, 0x28ab, 0x28cb, 0x28cb, 0x28cb, 0x28cb, 0x28cc, 0x28cc, 0x28cc, 0x28cc, 0x28cc, 0x28cc, 0x28cc, 0x28cc, 0x28cc, 0x28cc, 0x28cc, 0x28cc, 0x30cc, 0x30cc, 0x28cc, 0x28cc, 0x28cc, 0x28cc, 0x30cc, 0x30cc, 0x30cc, 0x30cc, 0x30cd, 0x30cd, 0x30ed, 0x30ed, 0x30ed, 0x30ed, 0x30ed, 0x30ed, 0x30ee, 0x38ed, 0x38ed, 0x390e, 0x390e, 0x390e, 0x410e, 0x410f, 0x410f, 0x410f, 0x410f, 0x4130, 0x4930, 0x4930, 0x4930, 0x5131, 0x5131, 0x6992, 0xa8f1, 0xa911, 0xa8f1, 0xa911, 0xa8f1, 0xa8f1, 0xa8f1, 0xa172, 0x4c39, 0x2d5c, 0x069f, 0x065f, 0x063f, 0x061f, 0x05ff, 0x05df, 0x059f, 0x057f, 0x055f, 0x055f, 0x055f, 0x057f, 0x059f, 0x05df, 0x061f, 0x067f, 0x06df, 0x073f, 0x079f, 0x07df, 0x8254, 0xa111, 0xa131, 0xa111, 0x9911, 0x8131, 0x4910, 0x410f, 0x410e, 0x38ee, 0x38ed, 0x30ed, 0x30cd, 0x30cc, 0x28cc, 0x28cb, 0x28cb, 0x28cb, 0x20cb, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20ab, 0x20aa, 0x20aa, 0x20aa, 0x20ab, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20ab, 0x20aa, 0x20aa, 0x08f2, 0x00f5, 0x0114, 0x0114, 0x0115, 0x0115, 0x0114, 0x10f0, 0x20aa, 0x20aa, 0x20ab, 0x20aa, 0x20aa, 0x20aa, 0x20ab, 0x20ab, 0x20aa, 0x20ab, 0x20aa, 0x20aa, 0x20aa, 0x20ab, 0x20aa, 0x20ab, + 0x8930, 0x8910, 0x8910, 0x8930, 0x8930, 0x8930, 0x8910, 0x8930, 0x8910, 0x8130, 0x710f, 0x60ee, 0x48ed, 0x38cc, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20aa, 0x20ab, 0x20aa, 0x20ab, 0x20ab, 0x20cb, 0x20ab, 0x20ab, 0x20ab, 0x28ab, 0x28ab, 0x20cb, 0x20cb, 0x28cb, 0x28cb, 0x28cb, 0x28cb, 0x28cb, 0x28cb, 0x28cb, 0x28cc, 0x28cc, 0x28cc, 0x28cc, 0x28cc, 0x28cc, 0x28cc, 0x28cc, 0x28cc, 0x28cc, 0x28cc, 0x28cc, 0x28cc, 0x28cc, 0x28cc, 0x28cc, 0x28cc, 0x28cc, 0x28cc, 0x28cc, 0x30cc, 0x30ec, 0x30ec, 0x30ed, 0x30ed, 0x30ed, 0x30ed, 0x30ed, 0x38ee, 0x38ee, 0x38ee, 0x38ee, 0x38ee, 0x390e, 0x390f, 0x410f, 0x410f, 0x410f, 0x412f, 0x4930, 0x4910, 0x4930, 0x5131, 0x5131, 0x6931, 0xa111, 0xa8f1, 0xa8f1, 0xa8f1, 0xa8f1, 0xa911, 0xa111, 0xa911, 0xa0f1, 0x9972, 0x4419, 0x067f, 0x065f, 0x061f, 0x05ff, 0x05df, 0x05bf, 0x059f, 0x059f, 0x05bf, 0x05bf, 0x05df, 0x061f, 0x065f, 0x06bf, 0x06ff, 0x075f, 0x07bf, 0x07ff, 0x5498, 0xa131, 0xa111, 0xa111, 0xa111, 0x9911, 0x4930, 0x410f, 0x410f, 0x38ee, 0x38ee, 0x30ed, 0x30cd, 0x30cc, 0x28cc, 0x28cc, 0x28cb, 0x28cb, 0x20cb, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20ab, 0x20ab, 0x20aa, 0x20ab, 0x20ab, 0x20aa, 0x20ab, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20ca, 0x20aa, 0x20aa, 0x20ab, 0x20cc, 0x00f3, 0x00f4, 0x0114, 0x0114, 0x0114, 0x08f2, 0x20cb, 0x20aa, 0x20aa, 0x20ab, 0x20aa, 0x20ab, 0x20aa, 0x20ab, 0x20aa, 0x20aa, 0x20ca, 0x20aa, 0x20ca, 0x20aa, 0x20aa, 0x20aa, 0x20ab, + 0x8110, 0x8910, 0x8910, 0x8910, 0x8910, 0x8910, 0x8930, 0x8910, 0x8930, 0x8930, 0x8930, 0x8930, 0x8930, 0x8930, 0x8130, 0x710f, 0x58ed, 0x48cc, 0x30cb, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20ab, 0x20ab, 0x20aa, 0x20ab, 0x20ab, 0x20ab, 0x20aa, 0x20aa, 0x20ca, 0x20aa, 0x20ab, 0x20ab, 0x20ab, 0x20cb, 0x20ab, 0x20ab, 0x28cb, 0x20cb, 0x28cb, 0x28cb, 0x28cb, 0x28cb, 0x28cb, 0x28cb, 0x28cb, 0x28cb, 0x28cb, 0x28cc, 0x28cc, 0x28cc, 0x28cc, 0x28cc, 0x28cc, 0x28cc, 0x28cc, 0x28cc, 0x28cc, 0x28cc, 0x28cc, 0x28cc, 0x28cc, 0x28cc, 0x28cc, 0x28cc, 0x28cc, 0x28cc, 0x30cc, 0x30cc, 0x30cc, 0x30ec, 0x30ec, 0x30cd, 0x30ed, 0x30ed, 0x30ed, 0x38ed, 0x38ee, 0x390e, 0x390e, 0x390e, 0x390f, 0x410f, 0x410f, 0x490f, 0x412f, 0x4910, 0x4930, 0x4931, 0x4931, 0x5931, 0x9111, 0xa8f1, 0xa8f1, 0xa911, 0xa8f1, 0xa8f1, 0xa911, 0xa911, 0xa911, 0xa111, 0x7a55, 0x34bb, 0x065f, 0x061f, 0x05ff, 0x05df, 0x05df, 0x05df, 0x05df, 0x05ff, 0x063f, 0x065f, 0x069f, 0x06df, 0x071f, 0x077f, 0x07bf, 0x07ff, 0x2e3c, 0x9911, 0xa111, 0xa111, 0x9931, 0x9931, 0x6910, 0x410f, 0x410f, 0x38ee, 0x38ee, 0x30ed, 0x30ed, 0x30cc, 0x28cc, 0x28cc, 0x28cb, 0x28cb, 0x20cb, 0x20cb, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20ab, 0x20aa, 0x20cb, 0x20aa, 0x20aa, 0x20aa, 0x20ab, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20ab, 0x20aa, 0x20aa, 0x20aa, 0x20cb, 0x10cf, 0x10d0, 0x10ef, 0x10ce, 0x20aa, 0x20ab, 0x20aa, 0x20ab, 0x20aa, 0x20ab, 0x20aa, 0x20ab, 0x20ab, 0x20ca, 0x20aa, 0x20ab, 0x20aa, 0x20aa, 0x20ab, 0x20aa, 0x20aa, 0x20ab, + 0x8910, 0x8910, 0x8910, 0x810f, 0x890f, 0x890f, 0x8910, 0x8910, 0x8910, 0x8910, 0x8910, 0x8910, 0x8910, 0x8910, 0x8910, 0x8930, 0x8930, 0x8930, 0x8930, 0x8930, 0x690f, 0x58ee, 0x40cd, 0x30cc, 0x20ab, 0x20ca, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20ab, 0x20ab, 0x20ab, 0x20aa, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20cb, 0x20cb, 0x20cb, 0x20cb, 0x28cb, 0x28cb, 0x28cb, 0x28cb, 0x28cb, 0x28cb, 0x28cb, 0x28cb, 0x28cb, 0x28cb, 0x28cb, 0x28cb, 0x28cb, 0x28cb, 0x28cb, 0x28cb, 0x28cb, 0x28cb, 0x28cb, 0x28cb, 0x28cb, 0x28cb, 0x28cb, 0x28cc, 0x28cc, 0x28cc, 0x28cc, 0x28cc, 0x28cc, 0x28cc, 0x28cc, 0x30cc, 0x30cc, 0x30ec, 0x30cd, 0x30ed, 0x30ed, 0x30ed, 0x30ed, 0x38ee, 0x38ee, 0x38ee, 0x38ee, 0x390e, 0x410f, 0x410f, 0x410f, 0x410f, 0x4910, 0x4930, 0x4931, 0x5131, 0x7931, 0xa911, 0xa8f1, 0xa911, 0xa911, 0xa911, 0xa911, 0xa8f1, 0xa111, 0xa111, 0xa111, 0xa111, 0x91b3, 0x62f6, 0x347b, 0x061f, 0x061f, 0x063f, 0x063f, 0x065f, 0x067f, 0x06bf, 0x071f, 0x073f, 0x079f, 0x07df, 0x07ff, 0x07ff, 0xa111, 0x9912, 0x9911, 0x9931, 0x9932, 0x8131, 0x4130, 0x410f, 0x410e, 0x38ee, 0x30ee, 0x30ed, 0x30cd, 0x28cc, 0x28cc, 0x28cb, 0x28cb, 0x28cb, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20aa, 0x20ab, 0x20ab, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, + 0x810f, 0x810f, 0x810f, 0x890f, 0x8910, 0x8910, 0x8110, 0x8110, 0x8110, 0x8110, 0x8910, 0x8130, 0x8910, 0x8910, 0x8910, 0x8910, 0x8910, 0x8910, 0x8910, 0x8910, 0x8930, 0x8910, 0x8930, 0x8930, 0x810f, 0x710f, 0x50ed, 0x40cc, 0x28ab, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20ab, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20cb, 0x20cb, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20cb, 0x20ab, 0x28ab, 0x28ab, 0x28ab, 0x28ab, 0x28ab, 0x28ab, 0x28cb, 0x28cb, 0x28cb, 0x28cb, 0x28cb, 0x28cb, 0x28cb, 0x28cb, 0x28cb, 0x28cb, 0x28cb, 0x28cb, 0x28cb, 0x28cb, 0x28cb, 0x28cb, 0x28cb, 0x28cb, 0x28cb, 0x28cb, 0x28cb, 0x28cc, 0x28cc, 0x28cc, 0x28cc, 0x28cc, 0x28cc, 0x28cc, 0x30cc, 0x30cc, 0x30cd, 0x30ed, 0x30ed, 0x30ed, 0x30ed, 0x38ee, 0x38ee, 0x38ee, 0x38ee, 0x390f, 0x410f, 0x410f, 0x410f, 0x4910, 0x4930, 0x4930, 0x4930, 0x7111, 0xa911, 0xa911, 0xa911, 0xa911, 0xa111, 0xa911, 0xa911, 0xa111, 0xa111, 0xa111, 0xa111, 0xa111, 0xa111, 0x91b3, 0x349b, 0x065f, 0x067f, 0x069f, 0x06bf, 0x06ff, 0x073f, 0x077f, 0x07bf, 0x07ff, 0x07ff, 0x07ff, 0x7ad4, 0xa111, 0x9911, 0xa111, 0x9931, 0x9931, 0x4930, 0x410f, 0x390e, 0x38ee, 0x30ee, 0x30ed, 0x30ed, 0x28cc, 0x28cc, 0x28cb, 0x28cb, 0x28cb, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20aa, 0x20ab, 0x20ab, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, + 0x890f, 0x890f, 0x810f, 0x810f, 0x810f, 0x810f, 0x810f, 0x810f, 0x890f, 0x890f, 0x8910, 0x8910, 0x8110, 0x8910, 0x8910, 0x8910, 0x8910, 0x8910, 0x8910, 0x8910, 0x8910, 0x8910, 0x8910, 0x8930, 0x8930, 0x8930, 0x8130, 0x8930, 0x8930, 0x810f, 0x710f, 0x50ed, 0x38cc, 0x28ab, 0x20ab, 0x20ab, 0x20ca, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20ca, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20ca, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20cb, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x28ab, 0x28ab, 0x28ab, 0x28ab, 0x20cb, 0x20cb, 0x20cb, 0x20cb, 0x20cb, 0x20cb, 0x20cb, 0x20cb, 0x20cb, 0x20cb, 0x20cb, 0x20cb, 0x28cb, 0x28cb, 0x20cb, 0x20cb, 0x28cb, 0x28cb, 0x28cb, 0x28cb, 0x28cb, 0x28cb, 0x28cb, 0x28cb, 0x28cc, 0x28cc, 0x28cc, 0x28cc, 0x28cc, 0x30cc, 0x30cc, 0x30ec, 0x30cd, 0x30ed, 0x30ed, 0x30ed, 0x38ed, 0x38ee, 0x38ee, 0x390e, 0x390e, 0x410f, 0x410f, 0x4110, 0x4930, 0x4930, 0x5130, 0x8111, 0xa111, 0xa911, 0xa111, 0xa111, 0xa911, 0xa112, 0xa111, 0xa911, 0xa111, 0xa112, 0xa0f1, 0xa111, 0xa111, 0xa111, 0x7a75, 0x15fd, 0x06bf, 0x06ff, 0x071f, 0x075f, 0x079f, 0x07bf, 0x07ff, 0x07ff, 0x07ff, 0x5499, 0x9931, 0x9911, 0x9931, 0x9931, 0x9931, 0x6930, 0x410f, 0x390e, 0x390e, 0x38ee, 0x30ed, 0x30cd, 0x30cc, 0x28cc, 0x28cc, 0x28cb, 0x28cb, 0x20cb, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, + 0x810f, 0x810f, 0x810f, 0x810f, 0x810f, 0x810f, 0x810f, 0x810f, 0x810f, 0x810f, 0x810f, 0x810f, 0x810f, 0x810f, 0x8110, 0x8110, 0x8910, 0x8910, 0x8910, 0x8910, 0x8930, 0x8930, 0x8910, 0x8910, 0x8910, 0x8910, 0x8910, 0x8930, 0x8130, 0x8930, 0x8930, 0x8130, 0x8930, 0x8930, 0x790f, 0x690e, 0x50ed, 0x38cc, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20cb, 0x20cb, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20cb, 0x20cb, 0x28ab, 0x20ab, 0x28ab, 0x28ab, 0x20cb, 0x20cb, 0x20cb, 0x20cb, 0x20cb, 0x28cb, 0x28cb, 0x28cb, 0x28cb, 0x28cb, 0x28cb, 0x28cb, 0x28cc, 0x28cc, 0x28cc, 0x28cc, 0x28cc, 0x28cc, 0x30cc, 0x30ec, 0x30cd, 0x30ed, 0x30ed, 0x30ed, 0x38ed, 0x38ee, 0x38ee, 0x40ee, 0x410f, 0x410f, 0x410f, 0x4130, 0x4930, 0x4930, 0x5931, 0x90f1, 0xa911, 0xa912, 0xa111, 0xa111, 0xa111, 0xa911, 0xa911, 0xa111, 0xa112, 0xa111, 0xa111, 0xa111, 0xa111, 0x9972, 0x353b, 0x071f, 0x073f, 0x077f, 0x07bf, 0x07df, 0x07ff, 0x07ff, 0x07ff, 0x2e3c, 0xa111, 0x9931, 0x9931, 0x9931, 0x9931, 0x8931, 0x410f, 0x410f, 0x38ee, 0x38ee, 0x30ed, 0x30ed, 0x30cc, 0x28cc, 0x28cc, 0x28cb, 0x28cb, 0x20cb, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, + 0x810f, 0x80ef, 0x810f, 0x810f, 0x810f, 0x810f, 0x890f, 0x890f, 0x890f, 0x810f, 0x810f, 0x810f, 0x810f, 0x810f, 0x810f, 0x810f, 0x810f, 0x810f, 0x8110, 0x8110, 0x8910, 0x8110, 0x8110, 0x8130, 0x8910, 0x8910, 0x8910, 0x8910, 0x8910, 0x8910, 0x8910, 0x8910, 0x8910, 0x8910, 0x8930, 0x8130, 0x8130, 0x8930, 0x8930, 0x790f, 0x690e, 0x50ed, 0x38cc, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20aa, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20cb, 0x20cb, 0x28ab, 0x20cb, 0x20cb, 0x20cb, 0x28cb, 0x28cb, 0x28cb, 0x28cb, 0x28cb, 0x28cc, 0x28cc, 0x28cc, 0x28cc, 0x28cc, 0x30cc, 0x30cd, 0x30cd, 0x30ed, 0x30ed, 0x30ed, 0x38ee, 0x390e, 0x390e, 0x390e, 0x410f, 0x410f, 0x412f, 0x4130, 0x4930, 0x4930, 0x8111, 0xa911, 0xa111, 0xa111, 0xa111, 0xa111, 0xa111, 0xa111, 0xa111, 0xa111, 0xa111, 0xa112, 0xa112, 0xa111, 0xa111, 0x4499, 0x077f, 0x079f, 0x07bf, 0x07df, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x9931, 0xa111, 0x9931, 0x9931, 0x9931, 0x9931, 0x490f, 0x410f, 0x38ee, 0x30ee, 0x38ed, 0x30ed, 0x30cc, 0x28cc, 0x28cc, 0x28cb, 0x28cb, 0x20cb, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, + 0x90ef, 0x88ef, 0x80ef, 0x810f, 0x80ef, 0x80ef, 0x80ef, 0x810f, 0x810f, 0x890f, 0x810f, 0x810f, 0x810f, 0x810f, 0x810f, 0x810f, 0x810f, 0x810f, 0x810f, 0x810f, 0x810f, 0x810f, 0x890f, 0x890f, 0x810f, 0x8110, 0x8910, 0x8910, 0x8910, 0x8910, 0x8910, 0x8910, 0x8910, 0x8910, 0x8910, 0x8910, 0x8930, 0x8910, 0x8930, 0x8930, 0x8930, 0x8930, 0x8930, 0x8130, 0x710f, 0x60ee, 0x48ed, 0x38ec, 0x20aa, 0x20aa, 0x20cb, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20ab, 0x20ab, 0x20ab, 0x20aa, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20cb, 0x20cb, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20cb, 0x20cb, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20cb, 0x20cb, 0x28ab, 0x28ab, 0x20cb, 0x28cb, 0x28cb, 0x28cb, 0x28cb, 0x28cc, 0x28cc, 0x28cc, 0x28cc, 0x30cc, 0x30cc, 0x30cd, 0x30cd, 0x30ed, 0x30ed, 0x38ed, 0x310e, 0x38ee, 0x390e, 0x390e, 0x410f, 0x410f, 0x412f, 0x4930, 0x4930, 0x7131, 0xa111, 0xa111, 0xa112, 0xa111, 0xa0f1, 0xa111, 0xa111, 0xa112, 0xa111, 0xa111, 0xa111, 0xa111, 0xa111, 0xa131, 0x6397, 0x07bf, 0x07df, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x7ad4, 0x9931, 0x9931, 0x9931, 0x9931, 0x9912, 0x7130, 0x390f, 0x38ee, 0x38ee, 0x38ed, 0x30ed, 0x30cc, 0x28cc, 0x28cc, 0x28cb, 0x28cb, 0x28ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, + 0x990f, 0x990f, 0x910f, 0x910f, 0x890f, 0x88ef, 0x810f, 0x80ef, 0x810f, 0x810f, 0x810f, 0x810f, 0x810f, 0x810f, 0x810f, 0x810f, 0x810f, 0x890f, 0x890f, 0x890f, 0x810f, 0x810f, 0x810f, 0x810f, 0x810f, 0x810f, 0x810f, 0x810f, 0x8910, 0x8110, 0x8110, 0x8910, 0x8910, 0x8910, 0x8910, 0x8910, 0x8910, 0x8910, 0x8910, 0x8930, 0x8910, 0x8910, 0x8910, 0x8930, 0x8930, 0x8130, 0x8930, 0x8930, 0x8930, 0x710f, 0x58ee, 0x48ed, 0x30cb, 0x20ab, 0x20aa, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20cb, 0x20cb, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20cb, 0x20cb, 0x20cb, 0x20cb, 0x28cb, 0x28cb, 0x28cb, 0x28cb, 0x28cc, 0x28cc, 0x28cc, 0x28cc, 0x28cc, 0x30cc, 0x30ec, 0x30ec, 0x30ed, 0x38ee, 0x30ed, 0x38ed, 0x390e, 0x38ee, 0x410e, 0x410f, 0x410f, 0x4930, 0x4930, 0x6931, 0xa111, 0xa111, 0xa112, 0xa111, 0xa111, 0xa111, 0xa111, 0xa111, 0xa111, 0xa111, 0xa111, 0xa112, 0x9931, 0x9911, 0x6397, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07fe, 0x5c14, 0x9931, 0x9911, 0x9931, 0x9931, 0x9931, 0x9131, 0x410f, 0x390e, 0x390e, 0x30ed, 0x30ed, 0x30cc, 0x28cc, 0x28cc, 0x28cb, 0x28cb, 0x28ab, 0x20cb, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, + 0x910f, 0x98ef, 0x910f, 0x910f, 0x98ef, 0x990f, 0x910f, 0x890f, 0x88ef, 0x80ef, 0x810f, 0x810f, 0x810f, 0x810f, 0x810f, 0x810f, 0x810f, 0x810f, 0x810f, 0x810f, 0x810f, 0x810f, 0x890f, 0x810f, 0x810f, 0x810f, 0x890f, 0x890f, 0x810f, 0x810f, 0x8110, 0x8910, 0x8910, 0x8110, 0x8110, 0x8910, 0x8110, 0x8110, 0x8910, 0x8910, 0x8910, 0x8930, 0x8930, 0x8910, 0x8930, 0x8930, 0x8930, 0x8930, 0x8930, 0x8930, 0x8930, 0x8930, 0x8930, 0x8130, 0x710f, 0x58ed, 0x40ed, 0x30cb, 0x20ab, 0x20ab, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20cb, 0x20cb, 0x20cb, 0x28cb, 0x28cb, 0x28cb, 0x28cb, 0x28cb, 0x28cb, 0x28cc, 0x28cc, 0x28cc, 0x28cc, 0x30cc, 0x30cd, 0x30ed, 0x30ed, 0x38ed, 0x30ee, 0x38ee, 0x390e, 0x390e, 0x410f, 0x410f, 0x4130, 0x4930, 0x5931, 0x7911, 0x9131, 0xa111, 0xa111, 0xa111, 0xa111, 0xa111, 0xa111, 0xa111, 0xa111, 0xa111, 0x9931, 0xa111, 0x9931, 0x5498, 0x07ff, 0x07ff, 0x07ff, 0x07ff, 0x07fe, 0x35f5, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x510f, 0x390e, 0x390e, 0x38ed, 0x30ed, 0x30cc, 0x30cc, 0x28cc, 0x28cb, 0x28cb, 0x28ab, 0x20cb, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, + 0x890f, 0x88ef, 0x88ef, 0x88ef, 0x88ef, 0x88ef, 0x88ef, 0x88ef, 0x88ef, 0x890f, 0x810f, 0x80ef, 0x80ef, 0x80ef, 0x80ef, 0x810f, 0x810f, 0x810f, 0x80ef, 0x810f, 0x810f, 0x810f, 0x810f, 0x890f, 0x890f, 0x890f, 0x890f, 0x890f, 0x810f, 0x810f, 0x810f, 0x810f, 0x810f, 0x810f, 0x810f, 0x810f, 0x810f, 0x810f, 0x8910, 0x8910, 0x8910, 0x8910, 0x8910, 0x890f, 0x8910, 0x8910, 0x8930, 0x8930, 0x8930, 0x8930, 0x8930, 0x8930, 0x8930, 0x8930, 0x8910, 0x8930, 0x8930, 0x8930, 0x8130, 0x68ef, 0x50ed, 0x40cc, 0x28cb, 0x20ab, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20ab, 0x20aa, 0x20aa, 0x20aa, 0x20ab, 0x20ab, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20ab, 0x20aa, 0x20aa, 0x20ab, 0x20aa, 0x20aa, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20ab, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20ab, 0x20aa, 0x20aa, 0x20ab, 0x20ab, 0x20aa, 0x20ab, 0x20aa, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20aa, 0x20ab, 0x20aa, 0x20aa, 0x20ab, 0x20aa, 0x20aa, 0x20aa, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20aa, 0x20ab, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20ab, 0x20aa, 0x20aa, 0x20aa, 0x20ab, 0x20ab, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20ab, 0x20ab, 0x20ab, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20aa, 0x20aa, 0x20ab, 0x20aa, 0x20aa, 0x20ab, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20ab, 0x20aa, 0x20ab, 0x20aa, 0x20aa, 0x20aa, 0x20ab, 0x20aa, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20ab, 0x20ab, 0x20ab, 0x20aa, 0x20ab, 0x20ab, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20cb, 0x28ab, 0x28cb, 0x20cb, 0x28ab, 0x28cb, 0x28cc, 0x28cc, 0x28cc, 0x28cc, 0x28cc, 0x28cc, 0x30cc, 0x30cd, 0x30ed, 0x30ed, 0x38ed, 0x38ee, 0x38ee, 0x390e, 0x410f, 0x410f, 0x412f, 0x4130, 0x4930, 0x4930, 0x6131, 0x8931, 0xa111, 0xa111, 0xa111, 0xa131, 0xa111, 0xa111, 0x9931, 0xa111, 0xa111, 0xa111, 0xa111, 0x3d7a, 0x07ff, 0x07ff, 0x07ff, 0x07fe, 0x07f6, 0x9911, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x7911, 0x390e, 0x38ee, 0x30ee, 0x30ed, 0x30cd, 0x30cc, 0x28cc, 0x28cc, 0x28cb, 0x28ab, 0x28ab, 0x20ab, 0x20ab, 0x20ca, 0x20ab, 0x20aa, 0x20ab, 0x20ab, 0x20aa, 0x20ab, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20aa, 0x20aa, 0x20ab, 0x20aa, 0x20aa, 0x20ab, 0x20ab, 0x20aa, 0x20aa, 0x20ab, 0x20aa, 0x20ab, 0x20ab, 0x20aa, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20ab, 0x20ab, 0x20aa, 0x20ab, 0x20aa, 0x20aa, 0x20ab, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x18aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, + 0x78ee, 0x78ee, 0x80ee, 0x80ee, 0x80ee, 0x78ee, 0x80ee, 0x80ee, 0x80ef, 0x80ef, 0x80ef, 0x80ee, 0x80ef, 0x810f, 0x80ef, 0x80ef, 0x80ef, 0x80ef, 0x810f, 0x80ef, 0x810f, 0x810f, 0x810f, 0x810f, 0x810f, 0x810f, 0x890f, 0x890f, 0x810f, 0x810f, 0x810f, 0x810f, 0x810f, 0x810f, 0x810f, 0x810f, 0x890f, 0x890f, 0x8910, 0x8110, 0x8130, 0x8910, 0x810f, 0x8110, 0x810f, 0x8910, 0x8910, 0x8910, 0x8930, 0x8930, 0x8910, 0x8930, 0x8930, 0x8930, 0x8930, 0x8130, 0x8930, 0x8910, 0x8930, 0x8130, 0x8930, 0x8930, 0x8930, 0x8110, 0x690f, 0x50ed, 0x38cc, 0x28ab, 0x20ab, 0x20aa, 0x20aa, 0x20ab, 0x20aa, 0x20aa, 0x20aa, 0x20ab, 0x20cb, 0x20ab, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20ab, 0x20ab, 0x20ab, 0x20aa, 0x20cb, 0x20aa, 0x20aa, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20ab, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20ab, 0x20ab, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20ab, 0x20aa, 0x20aa, 0x20ab, 0x20aa, 0x20ab, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20ab, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20ab, 0x20aa, 0x20ab, 0x20aa, 0x20aa, 0x20ab, 0x20aa, 0x20aa, 0x20ca, 0x20aa, 0x20aa, 0x20aa, 0x20ab, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20ab, 0x20aa, 0x18aa, 0x20ab, 0x20aa, 0x20ab, 0x20ab, 0x20ab, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20aa, 0x20aa, 0x20aa, 0x20ab, 0x20ab, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20aa, 0x20ca, 0x20aa, 0x20aa, 0x20ab, 0x20aa, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x28cb, 0x20ab, 0x20cb, 0x20cb, 0x28cb, 0x28cb, 0x28cc, 0x28cc, 0x28cc, 0x28cc, 0x28cc, 0x30cc, 0x30ec, 0x30ed, 0x30ed, 0x30ed, 0x38ee, 0x38ee, 0x390e, 0x390e, 0x410f, 0x410f, 0x410f, 0x4930, 0x4930, 0x5131, 0x6131, 0x9911, 0xa111, 0xa111, 0xa111, 0x9931, 0xa111, 0xa111, 0xa112, 0x9931, 0x9911, 0x9192, 0x1ebd, 0x07ff, 0x07ff, 0x07fe, 0x07f6, 0x7a71, 0x9931, 0x9931, 0x9932, 0x9931, 0x9931, 0x9111, 0x410e, 0x38ee, 0x30ed, 0x30ed, 0x30ed, 0x28cc, 0x28cc, 0x28cb, 0x28cb, 0x20ab, 0x28ab, 0x20ab, 0x20ab, 0x20ab, 0x20aa, 0x20aa, 0x20ab, 0x20aa, 0x20aa, 0x20ab, 0x20aa, 0x20ab, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20ab, 0x20ca, 0x20aa, 0x20aa, 0x20ab, 0x20aa, 0x20aa, 0x20ab, 0x20aa, 0x20aa, 0x20ab, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20ab, 0x20aa, 0x20aa, 0x20aa, 0x20ab, 0x20ab, 0x20aa, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x208a, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, + 0x78ee, 0x78ee, 0x78ee, 0x78ee, 0x80ee, 0x78ee, 0x78ee, 0x80ee, 0x80ee, 0x80ef, 0x80ef, 0x80ee, 0x80ef, 0x80ef, 0x80ef, 0x80ef, 0x80ef, 0x810f, 0x810e, 0x810f, 0x80ef, 0x80ef, 0x80ef, 0x80ef, 0x810f, 0x810f, 0x810f, 0x810f, 0x810f, 0x810f, 0x810f, 0x890f, 0x890f, 0x890f, 0x890f, 0x890f, 0x890f, 0x890f, 0x890f, 0x8110, 0x810f, 0x890f, 0x890f, 0x810f, 0x810f, 0x810f, 0x890f, 0x8910, 0x8910, 0x8910, 0x8910, 0x8910, 0x8130, 0x8910, 0x8930, 0x8130, 0x8930, 0x8930, 0x8910, 0x8910, 0x8130, 0x8930, 0x8930, 0x8930, 0x8930, 0x8130, 0x8130, 0x8930, 0x710f, 0x690e, 0x50ed, 0x38cc, 0x28ab, 0x20ab, 0x20ab, 0x20aa, 0x20aa, 0x20aa, 0x20ab, 0x20cb, 0x20aa, 0x20ab, 0x20ab, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20aa, 0x20ab, 0x20ab, 0x20ab, 0x20aa, 0x20ab, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20aa, 0x20aa, 0x20ab, 0x20ab, 0x20aa, 0x20aa, 0x20aa, 0x20ab, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20ab, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20ca, 0x20aa, 0x20ab, 0x20aa, 0x20aa, 0x20ab, 0x20aa, 0x20aa, 0x20ab, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20ab, 0x20aa, 0x20ab, 0x20aa, 0x20ab, 0x20aa, 0x20aa, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20ab, 0x20aa, 0x20ab, 0x20ab, 0x20aa, 0x20ca, 0x20aa, 0x20ab, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20aa, 0x20ab, 0x20aa, 0x20ab, 0x20ab, 0x20ac, 0x20cd, 0x20cd, 0x20cd, 0x20cd, 0x20cd, 0x20cd, 0x20cd, 0x20cd, 0x20cd, 0x20cd, 0x20cd, 0x20cd, 0x20cd, 0x20cd, 0x20cd, 0x20cd, 0x20cd, 0x20cd, 0x20cd, 0x20cd, 0x20cd, 0x20cd, 0x20cd, 0x20cd, 0x20cd, 0x20cd, 0x20cd, 0x20cd, 0x20cc, 0x20cd, 0x20cd, 0x20cd, 0x20cd, 0x20cd, 0x20cd, 0x20cd, 0x20cd, 0x20cd, 0x20cd, 0x20cd, 0x20cd, 0x20cd, 0x20cd, 0x20cd, 0x20cd, 0x20cd, 0x20cd, 0x20cd, 0x20cd, 0x20cd, 0x20cd, 0x20cd, 0x20cd, 0x20cd, 0x20cd, 0x20cd, 0x20cd, 0x20cd, 0x20cd, 0x20cd, 0x20cd, 0x28cd, 0x28cd, 0x28cd, 0x28cd, 0x20cd, 0x28ce, 0x28ce, 0x28ce, 0x28ee, 0x28ce, 0x28ee, 0x30ee, 0x30ef, 0x30ef, 0x30ef, 0x390f, 0x390f, 0x3910, 0x3910, 0x4110, 0x4131, 0x4931, 0x4931, 0x4932, 0x4952, 0x5152, 0x9132, 0xa111, 0xa111, 0xa111, 0x9912, 0x9931, 0x9931, 0x9911, 0x9931, 0x9912, 0x8274, 0x07ff, 0x07ff, 0x07fd, 0x07f6, 0x5c32, 0x9911, 0x9931, 0x9932, 0x9931, 0x9931, 0x9931, 0x5910, 0x390f, 0x30ef, 0x30ef, 0x30ee, 0x30ce, 0x28cd, 0x28ee, 0x28ed, 0x28cd, 0x20cd, 0x20ac, 0x20cd, 0x20cd, 0x20ad, 0x20cd, 0x20ad, 0x20cc, 0x20cc, 0x20ad, 0x20cc, 0x20ac, 0x20cc, 0x20cc, 0x20ac, 0x20ac, 0x20cc, 0x20cc, 0x20cc, 0x20cc, 0x20cc, 0x20cc, 0x20cc, 0x20cc, 0x20cc, 0x20cc, 0x20cc, 0x20cc, 0x20cc, 0x20cd, 0x20ad, 0x18cc, 0x20cc, 0x20ac, 0x20cc, 0x20ad, 0x20cc, 0x20ac, 0x20ac, 0x20cc, 0x18cc, 0x18cc, 0x20cc, 0x20cc, 0x20cc, 0x20cc, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x20ac, 0x18ac, 0x20ac, 0x20ac, 0x20ac, 0x20cc, 0x18ac, 0x18ac, 0x20ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ac, 0x18ab, 0x18ab, 0x18ab, 0x18ac, 0x18ac, 0x18ac, 0x18ab, + 0x78d0, 0x78d0, 0x78d0, 0x78f0, 0x78f0, 0x78f1, 0x78f0, 0x78f0, 0x78f0, 0x78f1, 0x78f1, 0x80f0, 0x78f1, 0x78f0, 0x80f1, 0x80d1, 0x80f1, 0x80f1, 0x80f1, 0x80f1, 0x80f0, 0x80f0, 0x80f0, 0x80f0, 0x80f0, 0x80f0, 0x80f0, 0x8111, 0x8110, 0x8110, 0x8110, 0x8111, 0x8111, 0x8111, 0x8111, 0x8111, 0x8110, 0x8110, 0x8110, 0x8111, 0x8911, 0x8110, 0x8110, 0x8111, 0x8110, 0x8911, 0x8911, 0x8911, 0x8111, 0x8911, 0x8911, 0x8910, 0x8911, 0x8911, 0x8911, 0x8911, 0x8111, 0x8131, 0x8131, 0x8931, 0x8911, 0x8911, 0x8911, 0x8911, 0x8931, 0x8911, 0x8131, 0x8131, 0x8931, 0x8130, 0x8131, 0x8911, 0x8931, 0x7931, 0x6111, 0x4911, 0x30d2, 0x18f2, 0x10f2, 0x18d2, 0x18d2, 0x10f2, 0x18d2, 0x10f2, 0x10f2, 0x10f2, 0x10f2, 0x10f2, 0x10f2, 0x10f2, 0x10f2, 0x10f2, 0x18d2, 0x18d2, 0x18f2, 0x18f2, 0x18f2, 0x18f2, 0x18f2, 0x18f2, 0x18f2, 0x18f2, 0x18f2, 0x18f2, 0x18f2, 0x18f2, 0x18d2, 0x18f2, 0x18f2, 0x18f2, 0x18f2, 0x18f2, 0x18f2, 0x18f2, 0x18f2, 0x18f2, 0x18f2, 0x18f2, 0x18f2, 0x18f2, 0x18f2, 0x18f2, 0x18f2, 0x18f2, 0x18f2, 0x18f2, 0x18f2, 0x18f2, 0x18f2, 0x18f2, 0x18f2, 0x18f2, 0x18f2, 0x18f3, 0x18f3, 0x18f2, 0x20f2, 0x18f2, 0x18f2, 0x20f2, 0x18f3, 0x18f3, 0x20f3, 0x20f3, 0x20f3, 0x20f3, 0x20f3, 0x20f3, 0x20f3, 0x20f3, 0x20f3, 0x20f3, 0x20f3, 0x20f3, 0x20f3, 0x20f3, 0x20f3, 0x20f2, 0x18f3, 0x20f3, 0x20f3, 0x20f3, 0x20f3, 0x20f3, 0x20f3, 0x2113, 0x20f3, 0x20f3, 0x2113, 0x20f3, 0x20f3, 0x2113, 0x20f3, 0x20f3, 0x20f3, 0x20f3, 0x20f3, 0x20f3, 0x2113, 0x2113, 0x20f3, 0x20f3, 0x20f3, 0x20f3, 0x20f3, 0x20f3, 0x20f3, 0x20f3, 0x20f3, 0x2113, 0x20f3, 0x2113, 0x2113, 0x2113, 0x28f3, 0x28f3, 0x2113, 0x28f3, 0x28f3, 0x2913, 0x2113, 0x2113, 0x2113, 0x2113, 0x2113, 0x2113, 0x2113, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2113, 0x2913, 0x2914, 0x2113, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2914, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2113, 0x2113, 0x2113, 0x2113, 0x2113, 0x2113, 0x2113, 0x2113, 0x2913, 0x2913, 0x28f3, 0x28f3, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x28f3, 0x2913, 0x2113, 0x2913, 0x2914, 0x2913, 0x2913, 0x2914, 0x2914, 0x2914, 0x2914, 0x2914, 0x3134, 0x3134, 0x3134, 0x3134, 0x3134, 0x3934, 0x3934, 0x3935, 0x3955, 0x4155, 0x4155, 0x4176, 0x4176, 0x4976, 0x4977, 0x5176, 0x9132, 0xa111, 0xa111, 0x9931, 0x9911, 0xa111, 0x9931, 0x9931, 0x9912, 0x9931, 0x5c38, 0x07ff, 0x07fd, 0x07f6, 0x44f2, 0x9911, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x7933, 0x3955, 0x3135, 0x3134, 0x3114, 0x2133, 0x2113, 0x2113, 0x20f3, 0x20f3, 0x2113, 0x1912, 0x18f2, 0x20f3, 0x18f2, 0x18f3, 0x18f2, 0x18f3, 0x18f3, 0x18f3, 0x18f2, 0x18f2, 0x18f2, 0x18f2, 0x18f2, 0x18f2, 0x18f2, 0x18f2, 0x18f2, 0x18f2, 0x18d2, 0x18d2, 0x18d2, 0x18d2, 0x18f2, 0x18f2, 0x18f2, 0x18f2, 0x18f2, 0x18d2, 0x18f2, 0x18d2, 0x10f2, 0x18f2, 0x18d2, 0x10f2, 0x18f2, 0x18f2, 0x18f2, 0x18f2, 0x18f2, 0x18f2, 0x10f2, 0x10f2, 0x18f2, 0x18f2, 0x10f2, 0x10f2, 0x10f2, 0x10d2, 0x10d2, 0x10d2, 0x18d2, 0x18d2, 0x18d2, 0x18d2, 0x18d2, 0x18d2, 0x18d2, 0x18d2, 0x10d2, 0x10d2, 0x10d2, 0x10d1, 0x10d1, 0x10d1, 0x10d1, 0x10d1, 0x10d1, 0x10d1, 0x10d1, 0x10d1, 0x10d1, 0x10d1, 0x10d1, 0x10d1, 0x10d1, 0x10d1, 0x10d1, 0x10d1, 0x10d1, 0x10d1, 0x10d1, 0x10d1, 0x10d1, 0x10d1, 0x10d1, 0x10d1, 0x10b1, 0x10b1, 0x10b1, 0x10b1, 0x10d0, 0x10b0, 0x10d0, 0x10b0, 0x10b0, 0x10d0, 0x10b0, 0x08b0, 0x08b0, 0x08b0, 0x08b0, 0x08b0, + 0x0051, 0x0071, 0x0071, 0x0071, 0x0071, 0x0051, 0x0071, 0x0070, 0x0870, 0x0870, 0x0071, 0x0071, 0x0091, 0x0870, 0x0071, 0x0091, 0x0071, 0x0871, 0x0871, 0x0891, 0x0871, 0x0871, 0x0871, 0x0871, 0x0891, 0x0891, 0x0891, 0x0891, 0x0871, 0x0871, 0x0871, 0x0892, 0x0892, 0x0892, 0x0892, 0x0892, 0x0892, 0x0891, 0x0891, 0x0891, 0x0892, 0x0891, 0x0891, 0x08b1, 0x08b1, 0x08b1, 0x08b2, 0x10b2, 0x08b1, 0x08b2, 0x08b1, 0x08b2, 0x08b2, 0x08b2, 0x10b2, 0x10b2, 0x10b2, 0x10b2, 0x10b2, 0x08b2, 0x10b2, 0x10b2, 0x08b2, 0x08b2, 0x10b2, 0x10b2, 0x10b2, 0x10b2, 0x10b2, 0x10d2, 0x10d2, 0x10d2, 0x10f2, 0x10d2, 0x10d2, 0x10d2, 0x10d2, 0x10d2, 0x18d2, 0x18d2, 0x10f2, 0x18d2, 0x18d2, 0x10d2, 0x18d2, 0x18d2, 0x18d2, 0x18d2, 0x18d2, 0x18d2, 0x18d2, 0x18d2, 0x18f2, 0x18f2, 0x18f2, 0x18f2, 0x18f2, 0x18f2, 0x18f2, 0x18f2, 0x18f2, 0x18f2, 0x18f2, 0x18f2, 0x18d2, 0x18f2, 0x18f2, 0x18d2, 0x18d2, 0x18f2, 0x18f2, 0x18f2, 0x18f2, 0x18f2, 0x18f2, 0x18f2, 0x18f2, 0x18f2, 0x18f2, 0x18f2, 0x18f2, 0x18f2, 0x18f2, 0x18f2, 0x18f2, 0x18f2, 0x18f2, 0x18f2, 0x18f2, 0x18f3, 0x18f3, 0x18f3, 0x18f3, 0x18f3, 0x18f2, 0x18f3, 0x18f3, 0x20f2, 0x18f3, 0x18f3, 0x18f3, 0x18f3, 0x18f3, 0x18f3, 0x20f3, 0x20f3, 0x20f3, 0x20f3, 0x20f3, 0x20f3, 0x20f3, 0x20f3, 0x20f3, 0x20f3, 0x20f3, 0x20f3, 0x20f3, 0x20f3, 0x20f3, 0x20f3, 0x20f3, 0x20f3, 0x20f3, 0x2112, 0x20f3, 0x20f3, 0x20f3, 0x20f3, 0x2113, 0x20f2, 0x20f3, 0x20f2, 0x20f3, 0x20f3, 0x20f3, 0x20f3, 0x20f3, 0x20f3, 0x20f3, 0x20f3, 0x20f3, 0x20f3, 0x20f3, 0x20f3, 0x20f3, 0x20f3, 0x20f3, 0x20f3, 0x2113, 0x28f3, 0x2113, 0x20f3, 0x2113, 0x28f3, 0x20f3, 0x2113, 0x2113, 0x2113, 0x2113, 0x2113, 0x2113, 0x2113, 0x28f3, 0x28f3, 0x2113, 0x2113, 0x2113, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2113, 0x2913, 0x2913, 0x2913, 0x2914, 0x2913, 0x2913, 0x28f3, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x28f3, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2113, 0x2913, 0x2913, 0x2914, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2913, 0x2113, 0x2113, 0x2113, 0x2113, 0x2113, 0x2113, 0x2113, 0x2113, 0x2113, 0x2113, 0x2113, 0x2113, 0x2913, 0x28f3, 0x28f3, 0x2913, 0x2113, 0x2913, 0x2913, 0x2113, 0x2113, 0x28f3, 0x2913, 0x2113, 0x2914, 0x2914, 0x2914, 0x2914, 0x2914, 0x2914, 0x2914, 0x2914, 0x3134, 0x3134, 0x3134, 0x3135, 0x3935, 0x3935, 0x3955, 0x3955, 0x4155, 0x4156, 0x4176, 0x4976, 0x4956, 0x5176, 0x9132, 0xa111, 0xa112, 0xa111, 0x9931, 0x9931, 0x9911, 0x9932, 0x9931, 0x9911, 0x2e5c, 0x07fc, 0x07f6, 0x2e53, 0x9931, 0x9931, 0x9931, 0x9911, 0x9911, 0x9931, 0x9132, 0x3134, 0x3134, 0x3134, 0x2934, 0x2914, 0x2913, 0x2113, 0x2113, 0x20f3, 0x2112, 0x20f3, 0x20d3, 0x1912, 0x18f2, 0x18f3, 0x18f2, 0x18f2, 0x18f2, 0x18d2, 0x18f2, 0x20f2, 0x18f2, 0x18f2, 0x18f2, 0x18f2, 0x18f2, 0x18f2, 0x18f2, 0x18f2, 0x18d2, 0x18d2, 0x18d2, 0x18d2, 0x18f2, 0x18f2, 0x18f2, 0x18f2, 0x18d2, 0x18f2, 0x18f2, 0x18f2, 0x18f2, 0x10f2, 0x10f2, 0x18f2, 0x18f2, 0x18d2, 0x18f2, 0x10f2, 0x18f2, 0x18d2, 0x10f2, 0x18f2, 0x10f2, 0x10f2, 0x10f2, 0x10f2, 0x10f2, 0x10f2, 0x10d2, 0x10d2, 0x10f2, 0x10f2, 0x10d2, 0x10d2, 0x10d2, 0x10d2, 0x10d2, 0x10d2, 0x10d2, 0x10d1, 0x10d1, 0x10d2, 0x10d1, 0x10d1, 0x10d1, 0x10d1, 0x10d1, 0x10d1, 0x10d1, 0x10d1, 0x10d1, 0x10d1, 0x10d1, 0x10d1, 0x10d1, 0x10d1, 0x10d1, 0x10d1, 0x10d1, 0x10d1, 0x10d1, 0x10d1, 0x10b0, 0x10b0, 0x10b0, 0x10b0, 0x10b0, 0x10b0, 0x10b0, 0x10b0, 0x08b0, 0x10b0, 0x10b0, 0x08b0, 0x08b0, 0x10b0, 0x10d0, 0x08d0, 0x08b0, 0x08b0, 0x08b0, 0x08b0, + 0x0cdc, 0x0cdc, 0x0cdb, 0x0cdc, 0x0cfb, 0x0cdc, 0x14dc, 0x14fc, 0x0cdc, 0x14fc, 0x14dc, 0x0cfc, 0x0cfc, 0x14fc, 0x0cfc, 0x14fc, 0x14fc, 0x14fc, 0x14fc, 0x14fc, 0x14fc, 0x14fc, 0x151c, 0x151c, 0x151c, 0x151c, 0x151c, 0x151c, 0x151c, 0x151c, 0x151c, 0x151c, 0x151c, 0x151c, 0x151c, 0x151c, 0x151c, 0x151c, 0x153c, 0x153c, 0x153c, 0x153c, 0x151c, 0x153c, 0x153c, 0x153c, 0x153c, 0x153c, 0x153c, 0x153c, 0x153c, 0x153c, 0x153c, 0x155c, 0x153c, 0x153c, 0x1d5c, 0x1d5c, 0x1d5c, 0x155c, 0x155c, 0x155c, 0x1d5c, 0x1d5c, 0x1d5c, 0x1d5c, 0x1d5c, 0x155c, 0x1d5c, 0x1d5c, 0x1d5c, 0x1d5c, 0x1d5c, 0x1d5c, 0x1d5c, 0x1d5c, 0x157c, 0x1d7c, 0x1d7c, 0x1d7c, 0x1d7c, 0x1d7c, 0x1d7c, 0x1d7c, 0x1d7c, 0x1d7c, 0x1d7c, 0x1d7c, 0x1d7c, 0x1d7c, 0x1d7c, 0x1d7c, 0x1d9c, 0x1d9c, 0x1d9c, 0x1d9c, 0x1d9c, 0x1d9c, 0x1d9c, 0x1d9c, 0x1d9d, 0x1d9d, 0x1d9d, 0x1d9d, 0x259c, 0x1dbc, 0x1d9d, 0x259d, 0x1d9c, 0x259c, 0x259c, 0x259c, 0x259c, 0x259c, 0x25bd, 0x25bd, 0x25bd, 0x25bd, 0x25bd, 0x25bd, 0x25bd, 0x25bd, 0x25bd, 0x25bd, 0x25bd, 0x25bd, 0x25bd, 0x25bd, 0x25dd, 0x25dd, 0x25bd, 0x25bd, 0x1ddd, 0x25dd, 0x25dd, 0x25dd, 0x25bd, 0x25dd, 0x25dd, 0x25dd, 0x25dd, 0x25dd, 0x25dd, 0x25dd, 0x25dd, 0x25dd, 0x25fd, 0x25fd, 0x25fd, 0x25fd, 0x25fd, 0x25fd, 0x25fd, 0x25fd, 0x25fd, 0x25fd, 0x25fd, 0x25fd, 0x2dfd, 0x25fd, 0x25fd, 0x25fd, 0x25fd, 0x2dfd, 0x2dfd, 0x2dfd, 0x2dfd, 0x2dfd, 0x25fd, 0x2dfe, 0x2dfd, 0x2dfd, 0x2e1d, 0x2e1d, 0x2e1d, 0x2e1d, 0x2e1d, 0x2e1d, 0x2e1d, 0x2e1d, 0x2e1d, 0x2e1d, 0x2e1d, 0x2e1d, 0x2e1d, 0x2e1d, 0x2e1d, 0x2e1d, 0x2e1d, 0x2e1d, 0x2e3e, 0x2e1d, 0x2e1d, 0x2e1d, 0x2e1d, 0x2e3d, 0x2e3d, 0x2e3e, 0x2e3e, 0x2e3e, 0x2e3d, 0x2e3d, 0x2e3d, 0x2e3d, 0x2e3d, 0x2e3d, 0x2e3d, 0x2e3d, 0x2e3d, 0x2e3d, 0x2e3d, 0x2e3d, 0x2e3d, 0x2e3d, 0x2e3d, 0x2e3d, 0x2e3d, 0x2e3d, 0x2e3d, 0x2e3d, 0x2e3e, 0x2e3e, 0x2e3e, 0x2e3d, 0x2e3e, 0x2e3e, 0x2e3e, 0x2e3e, 0x2e3e, 0x2e3e, 0x2e3e, 0x2e3e, 0x2e3e, 0x2e3e, 0x2e3e, 0x2e3e, 0x2e5e, 0x2e5e, 0x2e5e, 0x2e5e, 0x2e5e, 0x2e5e, 0x2e5e, 0x2e5e, 0x2e5e, 0x2e5e, 0x2e5e, 0x2e5e, 0x2e5e, 0x2e5e, 0x2e5e, 0x2e5e, 0x365e, 0x2e5e, 0x2e5e, 0x2e5e, 0x2e3e, 0x365e, 0x365e, 0x2e5d, 0x2e5e, 0x2e5e, 0x2e5e, 0x2e5e, 0x2e5e, 0x2e5e, 0x2e5e, 0x2e5e, 0x2e5e, 0x2e5e, 0x2e3e, 0x2e3e, 0x2e3e, 0x2e3e, 0x2e3e, 0x2e3e, 0x2e3e, 0x2e3e, 0x2e3e, 0x2e3e, 0x2e3e, 0x2e3e, 0x2e3e, 0x2e3e, 0x2e3d, 0x2e3d, 0x2e3d, 0x2e3e, 0x2e3d, 0x2e3e, 0x2e3d, 0x363d, 0x2e3d, 0x2e3d, 0x2e3d, 0x2e3d, 0x2e3d, 0x2e3d, 0x2e3d, 0x2e3d, 0x2e3d, 0x2e3d, 0x2e3d, 0x2e3d, 0x2e3d, 0x2e3d, 0x2e3d, 0x2e3d, 0x2e3d, 0x2e3d, 0x2e3d, 0x2e3d, 0x2e1d, 0x2e1d, 0x2e1d, 0x2e1d, 0x2e1d, 0x2e1d, 0x2e1d, 0x2e1d, 0x2e1d, 0x2e1d, 0x2e1d, 0x2e1d, 0x2e1d, 0x2e1d, 0x2e1d, 0x2e1d, 0x2e1d, 0x361d, 0x361d, 0x361d, 0x361d, 0x361d, 0x3e1d, 0x3e1d, 0x3e1d, 0x3e1d, 0x3e1d, 0x3e1e, 0x461e, 0x461d, 0x4dfe, 0x4dfd, 0x4e3e, 0x4dfe, 0x55dd, 0x9214, 0x9931, 0x9931, 0x9931, 0x9932, 0x9931, 0x9911, 0x9911, 0x9931, 0x7a74, 0x07fb, 0x07f6, 0x07f6, 0x9931, 0x9931, 0x9911, 0x9932, 0x9931, 0x9931, 0x9931, 0x4cfb, 0x3dfe, 0x35dd, 0x35dd, 0x2ddd, 0x2ddd, 0x2ddd, 0x2ddd, 0x25dd, 0x25dd, 0x25bd, 0x25bd, 0x25dd, 0x25dd, 0x25bd, 0x25dc, 0x25bd, 0x25bd, 0x25bd, 0x1dbd, 0x25bc, 0x1dbd, 0x1dbd, 0x1dbc, 0x1dbc, 0x1dbc, 0x1dbc, 0x1dbc, 0x1dbc, 0x1d9d, 0x1d9d, 0x1d9d, 0x1d9d, 0x1d9d, 0x1d9d, 0x1d9d, 0x1d9c, 0x1d9c, 0x1dbc, 0x1d9c, 0x1d9c, 0x1d9c, 0x1d9c, 0x1d9d, 0x1d9c, 0x1d9d, 0x1d9c, 0x1d7c, 0x1d7c, 0x1d7d, 0x1d7c, 0x1d7c, 0x1d7c, 0x1d7c, 0x1d7c, 0x1d7c, 0x1d7c, 0x1d7c, 0x1d7c, 0x1d7c, 0x1d7c, 0x1d7c, 0x1d7c, 0x1d5c, 0x1d5c, 0x1d5c, 0x1d5c, 0x1d5c, 0x1d5c, 0x157c, 0x1d5c, 0x1d5c, 0x1d5c, 0x1d5c, 0x1d5c, 0x1d5c, 0x155c, 0x155c, 0x155c, 0x1d5c, 0x153c, 0x153c, 0x153c, 0x153c, 0x153c, 0x153c, 0x153c, 0x153c, 0x153c, 0x153c, 0x153c, 0x153c, 0x153c, 0x153c, 0x153c, 0x153c, 0x153c, 0x151c, 0x151c, 0x151c, 0x151c, 0x151c, 0x151b, 0x151b, 0x151b, 0x151c, 0x151c, 0x151c, 0x151c, 0x151c, 0x151c, 0x151c, 0x151c, + 0x0bfb, 0x0bfb, 0x0bfb, 0x0bfb, 0x0bfb, 0x0c1b, 0x0c1b, 0x0c1b, 0x0c1b, 0x141b, 0x141b, 0x145b, 0x14dc, 0x0cdb, 0x14bc, 0x143b, 0x141b, 0x0c1b, 0x0c1b, 0x141c, 0x141b, 0x141b, 0x141b, 0x141b, 0x141b, 0x141b, 0x143b, 0x143b, 0x143b, 0x143b, 0x143b, 0x143b, 0x143b, 0x143b, 0x143b, 0x143b, 0x143b, 0x143b, 0x143b, 0x143b, 0x143c, 0x143b, 0x145b, 0x151c, 0x0d1b, 0x151c, 0x145b, 0x143b, 0x145c, 0x143b, 0x145c, 0x1c5b, 0x143b, 0x145c, 0x145c, 0x145c, 0x145c, 0x145c, 0x145b, 0x145c, 0x145b, 0x145b, 0x1c5c, 0x145c, 0x147c, 0x147c, 0x147c, 0x145c, 0x1c7c, 0x1c5c, 0x147c, 0x147c, 0x1c7c, 0x1cdc, 0x1d5c, 0x155c, 0x1cbc, 0x1c7c, 0x1c7c, 0x1c7c, 0x1c7c, 0x1c7c, 0x1c7c, 0x1c7b, 0x1c7c, 0x1c7c, 0x1c7c, 0x1c7c, 0x1c7c, 0x1c7c, 0x1c9c, 0x1c9c, 0x1c9c, 0x1c9c, 0x1c9c, 0x1c9c, 0x1c9c, 0x1c9c, 0x1c9c, 0x1c9c, 0x1c9c, 0x1c9c, 0x249c, 0x1c9c, 0x1d9d, 0x1d7c, 0x1cfc, 0x1c9c, 0x1cbc, 0x1cbc, 0x1cbc, 0x1cbc, 0x1cbc, 0x1cbc, 0x1cbc, 0x1cbc, 0x1cbc, 0x1cbc, 0x1cbc, 0x1cbc, 0x1cbc, 0x1cbc, 0x1cbc, 0x1cbc, 0x24bc, 0x1cbc, 0x1cbc, 0x24bc, 0x24bc, 0x24bc, 0x1cbc, 0x24dc, 0x24dc, 0x24dc, 0x253d, 0x25bd, 0x253d, 0x24dd, 0x24bc, 0x24bc, 0x24dd, 0x24dd, 0x24dd, 0x24dd, 0x24dd, 0x24dd, 0x24dd, 0x24dd, 0x24dd, 0x24dd, 0x24dd, 0x24dd, 0x24dd, 0x24dd, 0x24dd, 0x24dd, 0x24fd, 0x24dc, 0x24dc, 0x24fd, 0x24fd, 0x24fc, 0x24dd, 0x24fd, 0x251c, 0x25fd, 0x255d, 0x24fd, 0x24fd, 0x24fd, 0x24fd, 0x24fc, 0x24fd, 0x24fd, 0x24fd, 0x24fd, 0x24fd, 0x24fd, 0x24fd, 0x24fd, 0x2cfd, 0x2cfd, 0x2cfd, 0x2cfd, 0x2cfd, 0x2cfd, 0x2cfd, 0x2cfd, 0x251d, 0x24fd, 0x24fd, 0x251d, 0x2d1d, 0x24fd, 0x2cfd, 0x25bd, 0x25bd, 0x253c, 0x2cfc, 0x2d1d, 0x251d, 0x2cfd, 0x2cfd, 0x2d1d, 0x2d1d, 0x2d1d, 0x2d1d, 0x2d1d, 0x2d1d, 0x2d1d, 0x2d1d, 0x2d1d, 0x2d1d, 0x2d1d, 0x2d1d, 0x2d1d, 0x2d1d, 0x2d1d, 0x2d1d, 0x2d1d, 0x2d1d, 0x2d1d, 0x2d1d, 0x2d1d, 0x2d1c, 0x2d5d, 0x2dde, 0x2d1d, 0x2d1d, 0x2d1d, 0x2d1d, 0x2d1d, 0x2d1d, 0x2d1d, 0x2d1d, 0x2d1d, 0x2d3d, 0x2d3d, 0x2d3d, 0x2d3d, 0x2d3d, 0x2d3d, 0x2d3d, 0x2d3d, 0x2d3d, 0x2d3d, 0x2d3d, 0x2d3d, 0x2d3d, 0x2d3d, 0x2d3d, 0x2d3d, 0x2d1d, 0x2d3d, 0x2d1d, 0x2d1d, 0x2e1d, 0x2d1d, 0x2d1d, 0x2d1d, 0x2d3d, 0x2d3d, 0x2d3d, 0x2d3d, 0x2d3d, 0x2d3d, 0x2d3d, 0x2d3d, 0x2d3d, 0x2d3d, 0x2d3d, 0x2d3d, 0x2d3d, 0x2d3d, 0x2d3d, 0x2d3d, 0x2d1d, 0x2d1d, 0x2d1d, 0x2d1d, 0x2d1d, 0x2d1d, 0x2d1d, 0x2d1d, 0x2d1d, 0x2d1d, 0x2d1d, 0x2ddd, 0x2d5d, 0x2d1d, 0x2d1d, 0x2d1d, 0x2d1d, 0x2d1d, 0x2d1d, 0x2d1d, 0x2d1d, 0x2d1d, 0x2d1d, 0x2d1d, 0x2d1d, 0x2d1d, 0x2d1d, 0x2d1d, 0x2d1d, 0x2d1d, 0x2d1d, 0x2d1d, 0x2cfd, 0x2cfd, 0x2cfd, 0x2cfd, 0x2d1d, 0x2d1d, 0x2cfd, 0x2cfd, 0x2cfd, 0x2dbd, 0x2dbd, 0x2cfd, 0x2d1d, 0x251c, 0x251c, 0x2cfd, 0x2cfd, 0x2cfd, 0x2cfd, 0x2cfd, 0x2cfd, 0x2cfd, 0x2cfd, 0x2cfd, 0x34fd, 0x34fd, 0x34fd, 0x34fd, 0x34fd, 0x3cfd, 0x3cfd, 0x3cfd, 0x3cfd, 0x3d1d, 0x451d, 0x451d, 0x451d, 0x4d1d, 0x4d1d, 0x553d, 0x91b3, 0x9931, 0x9911, 0x9931, 0x9931, 0x9931, 0xa112, 0x9931, 0x9931, 0x5496, 0x07f7, 0x07f7, 0x8a13, 0xa111, 0x9931, 0x9931, 0x9912, 0x9932, 0x9911, 0x6318, 0x34dd, 0x34dd, 0x2cdd, 0x2cdc, 0x2cdd, 0x2cbc, 0x24dc, 0x24bc, 0x24bc, 0x253c, 0x25bd, 0x253c, 0x24bc, 0x24bc, 0x24bc, 0x1cbc, 0x24bc, 0x1cbc, 0x1cbc, 0x24bc, 0x1cbc, 0x1cbc, 0x1cbc, 0x1cbc, 0x1cbc, 0x1cbc, 0x1c9c, 0x1c9c, 0x1c9c, 0x1c9c, 0x1c9c, 0x1c9c, 0x1c9c, 0x1c9c, 0x1c9c, 0x1c9c, 0x1c9c, 0x1c7c, 0x1c9c, 0x1cdc, 0x1d7c, 0x1d5c, 0x1c9c, 0x1c9c, 0x1c7b, 0x1c7c, 0x1c9c, 0x1c7b, 0x1c9c, 0x1c9c, 0x1c9c, 0x1c7c, 0x1c9c, 0x1c7c, 0x1c7c, 0x1c7c, 0x1c7c, 0x147c, 0x147c, 0x147c, 0x1c7c, 0x1c7c, 0x1c7c, 0x1c7c, 0x1c7c, 0x1c7c, 0x1c7c, 0x1c7c, 0x1c5c, 0x1c9c, 0x153c, 0x155c, 0x14bc, 0x145b, 0x145b, 0x1c5c, 0x147b, 0x145b, 0x145b, 0x145b, 0x145b, 0x145b, 0x145b, 0x145b, 0x145c, 0x145c, 0x143b, 0x143b, 0x143b, 0x143b, 0x143b, 0x143b, 0x143b, 0x143b, 0x143b, 0x143b, 0x143b, 0x143b, 0x143b, 0x143b, 0x151c, 0x14fb, 0x14fc, 0x145b, 0x143b, 0x143b, 0x141b, 0x141b, 0x141b, 0x141b, 0x141b, 0x141b, + 0x0a5a, 0x0a5a, 0x0a5a, 0x0a5a, 0x0a7a, 0x0a5a, 0x0afa, 0x0c1b, 0x0cbb, 0x0c9b, 0x0b9b, 0x0a9a, 0x125a, 0x0a7a, 0x0a7a, 0x0a7a, 0x0a7a, 0x127a, 0x127a, 0x0a7a, 0x127a, 0x127a, 0x127a, 0x127a, 0x127a, 0x127a, 0x127a, 0x127a, 0x127a, 0x127a, 0x127a, 0x127a, 0x127a, 0x127a, 0x127a, 0x129a, 0x129a, 0x129a, 0x133b, 0x145b, 0x0d1c, 0x149c, 0x131b, 0x129b, 0x129b, 0x129a, 0x129a, 0x129a, 0x129a, 0x129a, 0x129a, 0x129a, 0x129a, 0x129a, 0x129a, 0x129a, 0x129a, 0x129b, 0x129a, 0x129b, 0x129b, 0x129b, 0x129b, 0x129b, 0x129b, 0x129a, 0x129b, 0x1abb, 0x129b, 0x131b, 0x147c, 0x153b, 0x145c, 0x12fb, 0x1abb, 0x12ba, 0x1abb, 0x1abb, 0x12bb, 0x1abb, 0x1abb, 0x1abb, 0x1abb, 0x1abb, 0x1abb, 0x1abb, 0x1abb, 0x1abb, 0x1abb, 0x1abb, 0x1abb, 0x1abb, 0x1abb, 0x1abb, 0x1abb, 0x1abb, 0x1adb, 0x1adb, 0x1adb, 0x1adb, 0x1b3b, 0x1cfc, 0x157c, 0x1c1c, 0x1adb, 0x1adb, 0x1adb, 0x1adb, 0x1adb, 0x1adb, 0x1adb, 0x1adb, 0x1adb, 0x1adb, 0x1adb, 0x1adb, 0x1adb, 0x1adb, 0x1adb, 0x1adb, 0x1adb, 0x1adb, 0x22db, 0x22db, 0x1adb, 0x1adb, 0x1adb, 0x1adb, 0x22db, 0x22db, 0x22fb, 0x231c, 0x1d1c, 0x1d5c, 0x235b, 0x22dc, 0x22db, 0x22dc, 0x22fb, 0x22fc, 0x22dc, 0x22dc, 0x22fc, 0x22fc, 0x22fc, 0x22fc, 0x22fc, 0x22fc, 0x22fb, 0x22fb, 0x22fb, 0x22fb, 0x22fc, 0x22fc, 0x22fc, 0x22fc, 0x22fc, 0x22fc, 0x22fc, 0x22fc, 0x231b, 0x22fc, 0x233c, 0x253c, 0x1cfd, 0x22fc, 0x22fc, 0x22fb, 0x22fc, 0x22fc, 0x22fc, 0x22fc, 0x22fc, 0x22fc, 0x22fc, 0x22fc, 0x22fc, 0x22fc, 0x22fc, 0x22fc, 0x22fc, 0x22fc, 0x22fc, 0x22fc, 0x231c, 0x231c, 0x231c, 0x231c, 0x231c, 0x2afc, 0x2afc, 0x231c, 0x2b1c, 0x2b1c, 0x259c, 0x247c, 0x231c, 0x231c, 0x2b1c, 0x231c, 0x231c, 0x2b1c, 0x231c, 0x2b1c, 0x2b1c, 0x2b1c, 0x2b1c, 0x2b1c, 0x2b1c, 0x2b1c, 0x2b1c, 0x2b1c, 0x2b1c, 0x2b1c, 0x2b1c, 0x2b1c, 0x2b1c, 0x2b1c, 0x2b1c, 0x2b1c, 0x2b1c, 0x2b1c, 0x2b1c, 0x2b1c, 0x2b1c, 0x25bd, 0x2bbc, 0x2b1c, 0x2b1c, 0x2b1c, 0x2b1c, 0x2b1c, 0x2b1c, 0x2b1c, 0x2b1c, 0x2b1c, 0x2b1c, 0x2b1c, 0x2b1c, 0x2b1c, 0x2b1c, 0x2b1c, 0x2b1c, 0x2b1c, 0x2b1c, 0x2b1c, 0x2b1c, 0x2b1c, 0x2b1c, 0x2b1c, 0x2b1c, 0x2b1c, 0x2b1c, 0x231c, 0x2b1c, 0x2b1c, 0x25dd, 0x2b1c, 0x2b1c, 0x2b1c, 0x2b1c, 0x2b1c, 0x2b1c, 0x2b1c, 0x2b1c, 0x2b1c, 0x2b1c, 0x2b1c, 0x2b1c, 0x2b1c, 0x2b1c, 0x2b1c, 0x2b1c, 0x2b1c, 0x2b1c, 0x2b1c, 0x2b1c, 0x2b1c, 0x2b1c, 0x2b1c, 0x2b1c, 0x2b1c, 0x2b1c, 0x2b1c, 0x2b1c, 0x231c, 0x2b1c, 0x2b7c, 0x259d, 0x2b1c, 0x2b1c, 0x231c, 0x2b1c, 0x2b1c, 0x2b1c, 0x2b1c, 0x2b1c, 0x2b1c, 0x2b1c, 0x2b1c, 0x231c, 0x231c, 0x231c, 0x231c, 0x231c, 0x231c, 0x231c, 0x231c, 0x231c, 0x231c, 0x231c, 0x231c, 0x231c, 0x231c, 0x231c, 0x231c, 0x231c, 0x231c, 0x245d, 0x259c, 0x22fc, 0x2afc, 0x231c, 0x2afc, 0x22fc, 0x231c, 0x231c, 0x2b1c, 0x2b1c, 0x2b1c, 0x2b1c, 0x2afc, 0x2b1c, 0x2b1c, 0x2b1c, 0x331c, 0x331c, 0x331c, 0x331c, 0x331c, 0x3b1c, 0x3b3d, 0x3b3d, 0x3b3d, 0x433c, 0x433d, 0x4b3d, 0x435d, 0x5a9a, 0x9932, 0x9931, 0x9911, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x1737, 0x07f9, 0x72d4, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x8194, 0x331c, 0x32fc, 0x2afb, 0x2afc, 0x2afb, 0x22fb, 0x22dc, 0x22dc, 0x22fb, 0x22db, 0x22db, 0x235c, 0x1d5c, 0x1d1d, 0x231b, 0x1adb, 0x1adb, 0x1adb, 0x22db, 0x1abb, 0x1adb, 0x1adb, 0x1adb, 0x1adb, 0x1adb, 0x1adb, 0x1abb, 0x1abb, 0x1adb, 0x1adb, 0x1adb, 0x1adb, 0x1adb, 0x1adb, 0x1adb, 0x1adb, 0x1adb, 0x1adb, 0x1abb, 0x1abb, 0x1abb, 0x1adb, 0x1bfc, 0x1d5c, 0x14dc, 0x1b3b, 0x1abb, 0x1adb, 0x1abb, 0x1abb, 0x12db, 0x1abb, 0x1abb, 0x1abb, 0x1abb, 0x1abb, 0x1abb, 0x1abb, 0x1abb, 0x1abb, 0x1abb, 0x1abb, 0x1abb, 0x1abb, 0x1abb, 0x1abb, 0x1abb, 0x129b, 0x12bb, 0x129a, 0x12ba, 0x129a, 0x12db, 0x143b, 0x151b, 0x14bb, 0x1afb, 0x12ba, 0x129a, 0x129a, 0x129a, 0x129a, 0x129a, 0x129a, 0x129a, 0x129a, 0x129a, 0x129a, 0x129a, 0x129a, 0x129a, 0x129a, 0x129a, 0x129a, 0x129a, 0x129a, 0x129a, 0x129a, 0x129a, 0x129a, 0x127a, 0x127a, 0x127a, 0x131b, 0x147c, 0x14db, 0x145b, 0x131a, 0x127a, 0x127a, 0x127a, 0x127a, + 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b5a, 0x0c1b, 0x0c9b, 0x0c9b, 0x0bba, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b3a, 0x0b1a, 0x0b1a, 0x0b3a, 0x0b1a, 0x0b1a, 0x0b3a, 0x0b3a, 0x0b3b, 0x0b3a, 0x0b3a, 0x0b3b, 0x133b, 0x0b3b, 0x0b3b, 0x0b3b, 0x133a, 0x0b3a, 0x0c3b, 0x14dc, 0x14bc, 0x13fb, 0x0b3a, 0x133b, 0x133b, 0x133b, 0x135b, 0x0b5b, 0x135b, 0x135b, 0x135b, 0x135b, 0x135b, 0x135b, 0x135a, 0x135b, 0x135b, 0x0b5a, 0x135b, 0x135b, 0x135b, 0x135b, 0x0b5b, 0x135b, 0x135b, 0x135b, 0x135b, 0x135b, 0x135b, 0x13fb, 0x151c, 0x14fc, 0x13db, 0x135b, 0x137b, 0x137b, 0x137b, 0x137b, 0x135b, 0x137b, 0x137b, 0x137b, 0x137b, 0x137b, 0x137b, 0x137b, 0x137b, 0x137b, 0x137b, 0x137b, 0x137b, 0x137b, 0x1b7b, 0x137b, 0x1b5b, 0x1b7b, 0x137b, 0x137b, 0x137b, 0x139b, 0x1bbb, 0x14fb, 0x153c, 0x13fb, 0x1b7b, 0x139b, 0x1b7b, 0x1b7c, 0x1b9b, 0x1b7b, 0x1b7b, 0x1b9b, 0x1b9b, 0x1b9b, 0x1b9b, 0x1b9b, 0x1b9b, 0x1b9b, 0x1b9c, 0x1b9b, 0x1b9b, 0x1b9b, 0x139c, 0x1b9b, 0x1b9b, 0x1b9b, 0x1b9b, 0x1b9b, 0x1b9b, 0x1b9b, 0x1b9c, 0x1b9b, 0x1d3c, 0x1d5c, 0x1bfb, 0x1b9c, 0x1bbb, 0x1b9b, 0x1bbc, 0x1b9b, 0x1b9b, 0x1bbb, 0x1bbb, 0x1bbb, 0x1bbb, 0x1bbb, 0x1bbb, 0x1bbb, 0x1bbb, 0x1bbc, 0x1bbb, 0x1bbb, 0x1bbc, 0x1bbb, 0x1bbc, 0x1bbb, 0x1bbb, 0x1bbc, 0x1bbb, 0x1bbc, 0x1bbb, 0x1bbc, 0x1bbb, 0x1cdc, 0x1d7d, 0x23fc, 0x1bdc, 0x1bbc, 0x1bbc, 0x1bbc, 0x1bbc, 0x1bbc, 0x1bbc, 0x23bc, 0x23bc, 0x23bc, 0x23bc, 0x23bc, 0x23bc, 0x23bc, 0x23bc, 0x1bbc, 0x1bbc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23bc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x247c, 0x1d9c, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x241c, 0x259d, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x1dbd, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x1dbd, 0x243c, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x23bc, 0x23dc, 0x23dc, 0x259c, 0x247c, 0x23bc, 0x23bc, 0x23dc, 0x23bc, 0x23dc, 0x23dc, 0x23bc, 0x23bc, 0x23bc, 0x23dc, 0x23dc, 0x23dc, 0x23dc, 0x2bdc, 0x2bdc, 0x2bdc, 0x2bdc, 0x2bdc, 0x33dc, 0x33dc, 0x33dc, 0x33dc, 0x3bdc, 0x3bfc, 0x3bfc, 0x3bdc, 0x43fc, 0x43fd, 0x6b18, 0x9931, 0x9931, 0x9931, 0x9931, 0x9911, 0x9931, 0x9932, 0x9931, 0x6b53, 0x07fa, 0x5437, 0x9931, 0x9931, 0x9911, 0x9931, 0x9931, 0x9912, 0x9931, 0x2bbc, 0x2bbc, 0x2bbc, 0x2bbb, 0x23bb, 0x23bb, 0x239b, 0x1b9b, 0x1b9b, 0x1b9b, 0x1b9b, 0x1b9b, 0x1bdb, 0x1d5c, 0x1d1c, 0x1b9b, 0x1b9b, 0x139b, 0x139c, 0x1b9b, 0x1b7b, 0x1b7b, 0x139b, 0x1b9b, 0x1b9b, 0x1b7b, 0x1b9b, 0x139b, 0x1b7b, 0x1b7b, 0x1b9b, 0x1b9b, 0x137b, 0x137b, 0x137b, 0x137b, 0x1b9b, 0x137b, 0x137b, 0x137b, 0x137b, 0x137b, 0x139b, 0x1bbb, 0x151c, 0x151c, 0x13db, 0x137b, 0x137b, 0x135b, 0x137b, 0x137b, 0x137b, 0x137b, 0x137b, 0x137b, 0x137b, 0x137b, 0x137b, 0x137b, 0x135b, 0x135b, 0x135b, 0x137b, 0x135b, 0x135b, 0x135b, 0x135b, 0x135b, 0x135b, 0x135b, 0x135a, 0x135b, 0x133b, 0x13da, 0x14fb, 0x0cfb, 0x141b, 0x133a, 0x135b, 0x133b, 0x135b, 0x135b, 0x135a, 0x135b, 0x133b, 0x133b, 0x133b, 0x133b, 0x133a, 0x133b, 0x0b5b, 0x133b, 0x133a, 0x0b3a, 0x133a, 0x133a, 0x0b3b, 0x0b3b, 0x0b3b, 0x0b3a, 0x133a, 0x0b1a, 0x0b3b, 0x0b3a, 0x0bda, 0x14bb, 0x0cbb, 0x0c1b, 0x0b3a, 0x0b3b, 0x0b3a, + 0x0bdb, 0x0c7b, 0x0c7b, 0x0c1a, 0x0b3a, 0x0b1a, 0x0afa, 0x0afa, 0x0afa, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b3a, 0x0c1b, 0x0cbb, 0x0c9b, 0x0bbb, 0x0b5a, 0x0b3a, 0x0b3a, 0x0b3a, 0x0b3a, 0x0b1a, 0x0b3a, 0x0b3a, 0x0b3a, 0x0b3a, 0x0b3a, 0x0b3a, 0x133a, 0x133a, 0x133a, 0x0b3a, 0x133b, 0x0b3a, 0x133a, 0x0b3a, 0x133a, 0x0b3a, 0x135a, 0x133a, 0x133b, 0x133a, 0x133b, 0x0b3a, 0x0c7b, 0x0cfb, 0x147b, 0x137b, 0x0b5b, 0x0b5b, 0x135a, 0x135a, 0x135b, 0x135a, 0x135a, 0x135a, 0x135a, 0x135b, 0x135b, 0x135b, 0x135b, 0x135b, 0x135b, 0x135b, 0x135b, 0x135b, 0x135b, 0x135b, 0x135b, 0x137b, 0x135a, 0x135a, 0x137b, 0x135a, 0x135b, 0x139b, 0x14bb, 0x14fb, 0x13fb, 0x137b, 0x137b, 0x135b, 0x137b, 0x137a, 0x137a, 0x137b, 0x137b, 0x137b, 0x137b, 0x137b, 0x137b, 0x137b, 0x137b, 0x137b, 0x137b, 0x137b, 0x137b, 0x1b7b, 0x1b7b, 0x137b, 0x137b, 0x137b, 0x137b, 0x137b, 0x137b, 0x137b, 0x137b, 0x1bbb, 0x153c, 0x151c, 0x1b7b, 0x139b, 0x137b, 0x139b, 0x139b, 0x1b9b, 0x139b, 0x1b9b, 0x1b9b, 0x139b, 0x139b, 0x139b, 0x139b, 0x139b, 0x139b, 0x139b, 0x139b, 0x1b9b, 0x1b9b, 0x1b9b, 0x1b9b, 0x1b9b, 0x13bb, 0x139b, 0x1b9b, 0x139b, 0x1b9b, 0x1b9b, 0x1b9c, 0x1c3b, 0x1d5c, 0x1c3c, 0x1b9b, 0x1bbb, 0x1b9b, 0x1b9b, 0x1b9b, 0x1b9b, 0x1b9b, 0x1b9b, 0x1b9b, 0x1bbb, 0x1bbb, 0x1bbb, 0x1bbb, 0x1bbb, 0x1bbb, 0x1bbb, 0x1bbb, 0x1b9b, 0x1bbb, 0x1bbb, 0x1bbb, 0x1bbb, 0x1bbb, 0x1bbb, 0x1bbb, 0x1bbb, 0x1bbc, 0x1bbb, 0x1bbb, 0x1c9c, 0x1d1c, 0x1bbb, 0x1bbb, 0x1bbb, 0x1bbb, 0x1bbb, 0x1bbb, 0x1bbb, 0x1bbb, 0x1bbb, 0x1bbb, 0x1bbb, 0x1bbb, 0x1bbb, 0x1bbb, 0x1bbb, 0x1bbb, 0x1bbb, 0x1bbb, 0x1bbb, 0x1bbb, 0x1bbb, 0x1bbb, 0x1bbb, 0x1bbb, 0x1bbb, 0x1bbb, 0x1bdb, 0x1bbb, 0x1bbb, 0x1bbb, 0x1cfc, 0x1c7c, 0x1bbb, 0x1bdb, 0x1bbc, 0x1bbc, 0x1bbc, 0x1bbc, 0x1bbc, 0x1bbc, 0x1bbc, 0x1bbc, 0x1bbc, 0x1bbc, 0x1bbc, 0x1bbc, 0x1bbc, 0x1bbc, 0x1bbc, 0x1bbc, 0x1bbc, 0x1bbc, 0x1bbc, 0x1bbc, 0x1bbc, 0x1bbc, 0x1bbc, 0x1bbc, 0x1bbb, 0x1bdc, 0x23bc, 0x1bbb, 0x1d7c, 0x1bbb, 0x1bdc, 0x1bbb, 0x1bbc, 0x1bbc, 0x1bbc, 0x1bbc, 0x1bbc, 0x1bbc, 0x1bbc, 0x1bbc, 0x1bbc, 0x1bbc, 0x1bbc, 0x1bbc, 0x1bbc, 0x1bbc, 0x1bbc, 0x1bbc, 0x1bbb, 0x1bbb, 0x1bbb, 0x1bbb, 0x1bbb, 0x1bbb, 0x1bbb, 0x1bbb, 0x1bbc, 0x1b9c, 0x1bdc, 0x1bbb, 0x1c5b, 0x1cfb, 0x1bbb, 0x1bbb, 0x1bbb, 0x1bbb, 0x1bbb, 0x1bbb, 0x1bbb, 0x1bbb, 0x1bbb, 0x1bbb, 0x1bbb, 0x1bbb, 0x1bbb, 0x1bbb, 0x1bbb, 0x1bbb, 0x1bbb, 0x1bbb, 0x1bbc, 0x1bbc, 0x1bbc, 0x1bbc, 0x1bbc, 0x1bbc, 0x1bbc, 0x1bbc, 0x1bbb, 0x1bbb, 0x1bbb, 0x1b9b, 0x1d3c, 0x1cbc, 0x1bbb, 0x1bbb, 0x1b9b, 0x1b9c, 0x1b9c, 0x1b9b, 0x1b9b, 0x1bbb, 0x1b9c, 0x1b9b, 0x1bbb, 0x239b, 0x23bc, 0x23bc, 0x23bc, 0x23bc, 0x23bc, 0x2bbc, 0x2bbc, 0x2bbc, 0x2bbc, 0x33bc, 0x33bc, 0x33dc, 0x3bdc, 0x3bdc, 0x3bdc, 0x3bdc, 0x8194, 0x9931, 0x9931, 0x9931, 0x9911, 0x9931, 0x9931, 0x9911, 0x9931, 0x2659, 0x4c98, 0x9931, 0x9931, 0x9931, 0x9931, 0x9911, 0x9931, 0x9931, 0x4b19, 0x23bc, 0x239b, 0x239b, 0x239b, 0x1b9b, 0x1b9b, 0x1b9b, 0x1b7b, 0x1b7b, 0x1b7b, 0x1b7b, 0x137b, 0x137b, 0x137b, 0x14bb, 0x151b, 0x13db, 0x137b, 0x137a, 0x137b, 0x137b, 0x137a, 0x137b, 0x137b, 0x137b, 0x135b, 0x137b, 0x135b, 0x135b, 0x135b, 0x137b, 0x137b, 0x137b, 0x137b, 0x137b, 0x135b, 0x135b, 0x135b, 0x135b, 0x135b, 0x135b, 0x135b, 0x135a, 0x135b, 0x135a, 0x13bb, 0x14db, 0x14bb, 0x137b, 0x135a, 0x135b, 0x0b5a, 0x135b, 0x135b, 0x135a, 0x0b5a, 0x135a, 0x135b, 0x135a, 0x135a, 0x135a, 0x135a, 0x0b5a, 0x0b5a, 0x135a, 0x133a, 0x135a, 0x133a, 0x0b3a, 0x133b, 0x133a, 0x0b3a, 0x133b, 0x133b, 0x133a, 0x0b3a, 0x0b3a, 0x0c5b, 0x0cbb, 0x0c5b, 0x0b7a, 0x0b3a, 0x0b3b, 0x0b1a, 0x133b, 0x0b3a, 0x0b1a, 0x0b3a, 0x0b3a, 0x0b3a, 0x0b1a, 0x0b3a, 0x0b1a, 0x0b1a, 0x0b3a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b3a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b3a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b9a, 0x0c9b, 0x0c9b, + 0x0bda, 0x02f9, 0x01f9, 0x0978, 0x0978, 0x0978, 0x0978, 0x0978, 0x0978, 0x0979, 0x0979, 0x0978, 0x0979, 0x0979, 0x0979, 0x0979, 0x0178, 0x0178, 0x0979, 0x0979, 0x0979, 0x0978, 0x0979, 0x0178, 0x0979, 0x0978, 0x0979, 0x0979, 0x0979, 0x0979, 0x0a1a, 0x0b1a, 0x0c3a, 0x0c1b, 0x0ada, 0x09f9, 0x0979, 0x0979, 0x0979, 0x0979, 0x0979, 0x0979, 0x0979, 0x0999, 0x0999, 0x0979, 0x0999, 0x0999, 0x0979, 0x0999, 0x0999, 0x0999, 0x0999, 0x0999, 0x0999, 0x0999, 0x0999, 0x0999, 0x0999, 0x0999, 0x0999, 0x0999, 0x09f9, 0x0b1a, 0x0c7b, 0x0c1b, 0x0aba, 0x0999, 0x0999, 0x0999, 0x0999, 0x0999, 0x0999, 0x0999, 0x0999, 0x0999, 0x0999, 0x0999, 0x1199, 0x0999, 0x0999, 0x0999, 0x0999, 0x0999, 0x1199, 0x11ba, 0x11ba, 0x11b9, 0x09b9, 0x11ba, 0x1199, 0x11ba, 0x11ba, 0x1199, 0x11da, 0x0b3a, 0x0c9b, 0x0bfb, 0x127a, 0x11ba, 0x119a, 0x11ba, 0x11ba, 0x11ba, 0x11ba, 0x11ba, 0x11ba, 0x119a, 0x11ba, 0x11ba, 0x11ba, 0x11ba, 0x11ba, 0x11ba, 0x11ba, 0x11ba, 0x11ba, 0x11ba, 0x11ba, 0x11ba, 0x11ba, 0x119a, 0x11ba, 0x11ba, 0x11ba, 0x11ba, 0x11ba, 0x12ba, 0x14bb, 0x13fb, 0x11db, 0x11ba, 0x11ba, 0x11ba, 0x11ba, 0x11ba, 0x11ba, 0x11ba, 0x11da, 0x11ba, 0x11ba, 0x11ba, 0x11ba, 0x11ba, 0x11ba, 0x11ba, 0x11ba, 0x11ba, 0x11ba, 0x11ba, 0x11bb, 0x11ba, 0x11da, 0x11ba, 0x11da, 0x11ba, 0x11ba, 0x11da, 0x11ba, 0x127a, 0x14db, 0x137b, 0x11da, 0x19ba, 0x11da, 0x11da, 0x11da, 0x11da, 0x11da, 0x11da, 0x11da, 0x11da, 0x11da, 0x11da, 0x11da, 0x11da, 0x11da, 0x19da, 0x19da, 0x19da, 0x11da, 0x11db, 0x11db, 0x11db, 0x11db, 0x11db, 0x11db, 0x11db, 0x19db, 0x11da, 0x19da, 0x1a3b, 0x14fb, 0x1afb, 0x19da, 0x11db, 0x19da, 0x19da, 0x19da, 0x19da, 0x19da, 0x19da, 0x19da, 0x19da, 0x19da, 0x19da, 0x19da, 0x19da, 0x19da, 0x19da, 0x19da, 0x19da, 0x19db, 0x19db, 0x19db, 0x19db, 0x19db, 0x19db, 0x19db, 0x19db, 0x19da, 0x19db, 0x19da, 0x1a1b, 0x153c, 0x1a3b, 0x19da, 0x19da, 0x19db, 0x19db, 0x19db, 0x19db, 0x19db, 0x19db, 0x19db, 0x19db, 0x19da, 0x19da, 0x19da, 0x19da, 0x19da, 0x19da, 0x19da, 0x19da, 0x19da, 0x19da, 0x19da, 0x19da, 0x19da, 0x19da, 0x19da, 0x19da, 0x19db, 0x19db, 0x19da, 0x19db, 0x153b, 0x19db, 0x19da, 0x19db, 0x19da, 0x19da, 0x19da, 0x19da, 0x19da, 0x19da, 0x19da, 0x19da, 0x19da, 0x19da, 0x19da, 0x19da, 0x19da, 0x19da, 0x19da, 0x19da, 0x19da, 0x19da, 0x19da, 0x19da, 0x19da, 0x19da, 0x19da, 0x19da, 0x11db, 0x19db, 0x19da, 0x19db, 0x19fb, 0x153c, 0x123a, 0x19da, 0x19da, 0x11da, 0x11da, 0x11da, 0x11da, 0x11da, 0x19da, 0x11db, 0x19db, 0x19db, 0x19db, 0x19db, 0x19db, 0x19db, 0x19db, 0x19db, 0x19db, 0x19db, 0x11ba, 0x11ba, 0x11ba, 0x11ba, 0x11ba, 0x11ba, 0x19db, 0x19ba, 0x11da, 0x11ba, 0x1abb, 0x14fb, 0x1a5b, 0x19ba, 0x19ba, 0x11da, 0x11da, 0x19db, 0x19db, 0x19da, 0x19db, 0x19ba, 0x19da, 0x19da, 0x19db, 0x19db, 0x19db, 0x21db, 0x21db, 0x21db, 0x21fb, 0x21fb, 0x29fb, 0x29fb, 0x29fb, 0x29fb, 0x31fb, 0x321b, 0x31fb, 0x321b, 0x41fa, 0x9912, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9912, 0x72d4, 0x4c98, 0x9931, 0x9911, 0x9931, 0x9931, 0x9931, 0x9911, 0x9931, 0x5996, 0x21db, 0x21da, 0x19da, 0x19da, 0x19da, 0x11da, 0x11da, 0x11ba, 0x11ba, 0x11ba, 0x11ba, 0x11ba, 0x11ba, 0x11ba, 0x11d9, 0x137a, 0x149b, 0x131a, 0x11ba, 0x119a, 0x11b9, 0x11ba, 0x11ba, 0x119a, 0x11ba, 0x119a, 0x11ba, 0x11ba, 0x11ba, 0x11ba, 0x11ba, 0x11ba, 0x11ba, 0x11ba, 0x11ba, 0x0999, 0x1199, 0x1199, 0x1199, 0x1199, 0x11ba, 0x11ba, 0x1199, 0x0999, 0x09b9, 0x0999, 0x0a1a, 0x0bfb, 0x0c9b, 0x131a, 0x09da, 0x119a, 0x0999, 0x0999, 0x0999, 0x1199, 0x099a, 0x0999, 0x0999, 0x0999, 0x0999, 0x0999, 0x0999, 0x0999, 0x0999, 0x0999, 0x0999, 0x0999, 0x0999, 0x0999, 0x0999, 0x0999, 0x0999, 0x0999, 0x0999, 0x0999, 0x0999, 0x0999, 0x0aba, 0x0bda, 0x0c5b, 0x0b3a, 0x09f9, 0x0999, 0x0979, 0x0999, 0x0999, 0x0999, 0x0999, 0x0999, 0x0979, 0x0979, 0x0979, 0x0999, 0x0979, 0x0999, 0x0979, 0x0979, 0x0979, 0x0979, 0x0979, 0x0979, 0x0978, 0x0979, 0x0979, 0x0178, 0x0199, 0x0179, 0x0979, 0x0999, 0x02b9, + 0x02b9, 0x02b9, 0x02b9, 0x02b9, 0x02b9, 0x02b9, 0x02b9, 0x02b9, 0x02b9, 0x02b9, 0x0ab9, 0x02b9, 0x02b9, 0x02b9, 0x02b9, 0x02b9, 0x02b9, 0x0ab9, 0x02b9, 0x02b9, 0x02d9, 0x02d9, 0x02b9, 0x0ab9, 0x0ad9, 0x02d9, 0x0ad9, 0x0ab9, 0x0ab9, 0x03ba, 0x043a, 0x043a, 0x0359, 0x02d9, 0x0ad9, 0x02d9, 0x0ad9, 0x02d9, 0x02d9, 0x0ad9, 0x0ad9, 0x0ad9, 0x02d9, 0x0ad9, 0x02d9, 0x02d9, 0x0ada, 0x0afa, 0x02fa, 0x02fa, 0x02d9, 0x02fa, 0x0ada, 0x0afa, 0x02fa, 0x0afa, 0x0afa, 0x0ad9, 0x0afa, 0x0ada, 0x0afa, 0x0b5a, 0x0c5b, 0x047a, 0x0bba, 0x0af9, 0x0afa, 0x0afa, 0x0afa, 0x0af9, 0x0af9, 0x0afa, 0x0afa, 0x0afa, 0x0afa, 0x0afa, 0x0afa, 0x0afa, 0x0afa, 0x0afa, 0x0afa, 0x0afa, 0x0afa, 0x0afa, 0x0b1a, 0x0b1a, 0x0afa, 0x0afa, 0x0b1a, 0x0afa, 0x0b1a, 0x0afa, 0x0b1a, 0x0b1a, 0x0c3a, 0x0c9a, 0x0bda, 0x0b1a, 0x0afa, 0x0afa, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b3a, 0x0b1a, 0x0b1a, 0x0b3a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0bdb, 0x14bb, 0x0bfa, 0x0b1a, 0x0b1a, 0x0b3a, 0x0b3a, 0x0b1a, 0x0b1a, 0x0b3a, 0x0b3a, 0x131a, 0x0b3a, 0x0b1a, 0x0b3a, 0x0b3a, 0x0b3a, 0x0b3a, 0x0b3a, 0x0b3a, 0x0b3a, 0x0b3a, 0x133b, 0x133b, 0x133a, 0x0b3a, 0x0b3a, 0x0b3a, 0x0b3a, 0x0b3a, 0x133a, 0x0b3a, 0x137a, 0x0cdb, 0x0c5b, 0x133b, 0x133b, 0x0b3a, 0x133a, 0x133a, 0x133a, 0x133a, 0x133a, 0x133a, 0x133a, 0x133b, 0x133b, 0x133b, 0x133b, 0x133b, 0x133b, 0x133b, 0x133b, 0x133b, 0x133b, 0x133b, 0x135b, 0x135b, 0x135b, 0x135b, 0x133b, 0x133b, 0x135a, 0x0b5b, 0x133b, 0x143a, 0x147b, 0x135b, 0x135a, 0x133b, 0x135a, 0x135a, 0x135a, 0x135a, 0x135a, 0x135a, 0x135a, 0x135a, 0x135a, 0x135a, 0x135a, 0x135a, 0x135a, 0x135a, 0x135a, 0x135a, 0x135a, 0x135a, 0x135b, 0x135b, 0x135b, 0x135b, 0x135b, 0x135b, 0x135b, 0x135b, 0x135a, 0x13bb, 0x14db, 0x135b, 0x135b, 0x135b, 0x135b, 0x135b, 0x135b, 0x135b, 0x135b, 0x135b, 0x135b, 0x135b, 0x135b, 0x135b, 0x135b, 0x135b, 0x135b, 0x135b, 0x135b, 0x135b, 0x135b, 0x135b, 0x135b, 0x135b, 0x135b, 0x135b, 0x135b, 0x135b, 0x135b, 0x135a, 0x135b, 0x133b, 0x14fb, 0x135a, 0x135b, 0x135a, 0x135b, 0x135b, 0x135b, 0x135b, 0x135b, 0x135b, 0x135b, 0x135b, 0x135b, 0x135b, 0x135b, 0x135b, 0x135b, 0x135b, 0x135b, 0x135b, 0x135a, 0x135a, 0x135a, 0x135a, 0x135a, 0x135a, 0x135a, 0x135a, 0x133a, 0x135b, 0x135a, 0x135b, 0x135b, 0x149b, 0x13fb, 0x133a, 0x135b, 0x135b, 0x135a, 0x135a, 0x135a, 0x135b, 0x135b, 0x135b, 0x133b, 0x133b, 0x133b, 0x133b, 0x133b, 0x133b, 0x133b, 0x133b, 0x133b, 0x133b, 0x133b, 0x133b, 0x133b, 0x133b, 0x133b, 0x133b, 0x133a, 0x133b, 0x133a, 0x135a, 0x133a, 0x143b, 0x147b, 0x133a, 0x133a, 0x133a, 0x133a, 0x133b, 0x133a, 0x133a, 0x133b, 0x133a, 0x133a, 0x133a, 0x135b, 0x133b, 0x133b, 0x1b3b, 0x1b5b, 0x1b5b, 0x1b3b, 0x1b5b, 0x235b, 0x235b, 0x235b, 0x235b, 0x2b5b, 0x2b5b, 0x2b7b, 0x2b7b, 0x335b, 0x7235, 0x9911, 0x9931, 0x9931, 0x9931, 0x9911, 0x9931, 0x9931, 0x9931, 0x72d5, 0x9932, 0x9932, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x71b4, 0x1b3b, 0x1b3b, 0x133a, 0x133b, 0x133a, 0x131a, 0x131a, 0x131a, 0x131a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b3a, 0x0afa, 0x0b1a, 0x0afa, 0x0bda, 0x0cbb, 0x0bda, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0afa, 0x0afa, 0x0afa, 0x0afa, 0x0afa, 0x0b1a, 0x0afa, 0x0afa, 0x0afa, 0x0afa, 0x0afa, 0x0afa, 0x0afa, 0x0afa, 0x0afa, 0x0bba, 0x049b, 0x0c3a, 0x0b3a, 0x0afa, 0x0afa, 0x0afa, 0x0afa, 0x0afa, 0x0afa, 0x02fa, 0x0afa, 0x0ada, 0x0ada, 0x0afa, 0x0afa, 0x0afa, 0x0afa, 0x0afa, 0x0afa, 0x0afa, 0x02da, 0x0ada, 0x0ada, 0x0ada, 0x02d9, 0x02d9, 0x02da, 0x02fa, 0x02d9, 0x0ad9, 0x0ad9, 0x0b5a, 0x045a, 0x045a, 0x033a, 0x0ad9, 0x02d9, 0x02d9, 0x02da, 0x0ada, 0x02d9, 0x02d9, 0x02d9, 0x02d9, 0x02d9, 0x02d9, 0x0ab9, 0x0ab9, 0x02d9, 0x02d9, 0x0ab9, 0x02d9, 0x02d9, 0x02d9, 0x02d9, 0x02d9, 0x0ab9, 0x02b9, 0x02d9, 0x02b9, 0x02d9, 0x0ab9, + 0x0299, 0x0299, 0x0298, 0x0298, 0x0298, 0x0299, 0x0299, 0x0299, 0x0299, 0x0298, 0x0299, 0x0299, 0x0299, 0x0299, 0x0299, 0x0299, 0x0299, 0x0299, 0x0299, 0x0299, 0x0299, 0x02b8, 0x02b9, 0x0299, 0x02b8, 0x039a, 0x041a, 0x03fa, 0x0339, 0x02b9, 0x02b9, 0x02b9, 0x02b9, 0x02b9, 0x02b9, 0x02b9, 0x02b9, 0x02b9, 0x02b9, 0x02b9, 0x02b9, 0x02b9, 0x02b9, 0x02b9, 0x02b9, 0x02b9, 0x02b9, 0x02b9, 0x02b9, 0x02b9, 0x02b9, 0x02b9, 0x02d9, 0x02b9, 0x02b9, 0x02d9, 0x02b9, 0x02d9, 0x03ba, 0x043a, 0x03fa, 0x02f9, 0x02d9, 0x02d9, 0x0ab9, 0x0ab9, 0x02d9, 0x02b9, 0x02d9, 0x02d9, 0x02d9, 0x02d9, 0x02d9, 0x0ad9, 0x0ad9, 0x02d9, 0x02d9, 0x02d9, 0x02d9, 0x02d9, 0x02d9, 0x02d9, 0x02d9, 0x02d9, 0x02d9, 0x02d9, 0x02f9, 0x02d9, 0x02da, 0x0ada, 0x0afa, 0x0bfa, 0x0c5b, 0x0bfa, 0x0ad9, 0x02fa, 0x02f9, 0x02f9, 0x0af9, 0x02f9, 0x0af9, 0x02d9, 0x02f9, 0x0af9, 0x0afa, 0x0afa, 0x0afa, 0x0afa, 0x0afa, 0x0afa, 0x0afa, 0x0afa, 0x0afa, 0x0afa, 0x0afa, 0x0afa, 0x0afa, 0x0afa, 0x0afa, 0x0afa, 0x0af9, 0x0afa, 0x0afa, 0x0afa, 0x0c1a, 0x0c7b, 0x0b5a, 0x0afa, 0x0af9, 0x0b1a, 0x0afa, 0x0afa, 0x0afa, 0x0b1a, 0x0afa, 0x0afa, 0x0b1a, 0x0afa, 0x0afa, 0x0afa, 0x0afa, 0x0afa, 0x0afa, 0x0afa, 0x0afa, 0x0b1a, 0x0b1a, 0x0b1a, 0x031a, 0x0afa, 0x0b1a, 0x0b1a, 0x0afa, 0x0b1a, 0x0b1a, 0x0b1a, 0x0afa, 0x0c3a, 0x0c5a, 0x0b1a, 0x0afa, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0c5b, 0x0c1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b3a, 0x0c7b, 0x0b7a, 0x0b3a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0cbb, 0x0b1a, 0x0b3a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b7a, 0x0cbb, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0bda, 0x0c7b, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x0b1a, 0x131a, 0x131a, 0x131a, 0x131a, 0x131a, 0x1b1a, 0x1b3a, 0x1b3a, 0x1b3a, 0x1b3a, 0x233a, 0x233a, 0x233b, 0x2b3b, 0x2b5b, 0x3ad9, 0x9931, 0x9931, 0x9931, 0x9912, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9911, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x8993, 0x1b1a, 0x131a, 0x131a, 0x12fa, 0x0afa, 0x0afa, 0x0afa, 0x0afa, 0x0afa, 0x0afa, 0x0afa, 0x0afa, 0x0afa, 0x0afa, 0x0afa, 0x0afa, 0x02fa, 0x0afa, 0x035a, 0x045a, 0x0c3a, 0x0afa, 0x02da, 0x0afa, 0x0af9, 0x02f9, 0x0afa, 0x0afa, 0x0afa, 0x02d9, 0x02d9, 0x02d9, 0x02d9, 0x02d9, 0x02d9, 0x02d9, 0x02d9, 0x02d9, 0x02d9, 0x02d9, 0x02d9, 0x02d9, 0x02d9, 0x02d9, 0x0ad9, 0x02d9, 0x02da, 0x0ad9, 0x0ad9, 0x02ba, 0x02d9, 0x039a, 0x043a, 0x03da, 0x02d9, 0x0ab9, 0x02d9, 0x0ab9, 0x02b9, 0x02d9, 0x02b9, 0x02b9, 0x02d9, 0x02d9, 0x02d9, 0x02d9, 0x02d9, 0x02b9, 0x0ab9, 0x02b9, 0x02b9, 0x02b9, 0x02b9, 0x02d9, 0x02b9, 0x02d9, 0x02b9, 0x02b9, 0x02b9, 0x02b9, 0x02b9, 0x02b9, 0x02b9, 0x02d9, 0x03fa, 0x041a, 0x03b9, 0x02b9, 0x02b9, 0x0299, 0x02b9, 0x02b9, 0x02b9, 0x02b9, 0x0299, 0x02b9, 0x02b9, 0x02b9, 0x02b9, 0x0299, 0x02b9, 0x02b9, 0x0299, 0x0299, 0x0299, 0x0299, 0x0299, 0x0299, 0x0299, 0x02b8, 0x02b8, + 0x0117, 0x0137, 0x0137, 0x0137, 0x0137, 0x0137, 0x0117, 0x0137, 0x0137, 0x0137, 0x0117, 0x0117, 0x0137, 0x0137, 0x0137, 0x0117, 0x0117, 0x0137, 0x0137, 0x0137, 0x0137, 0x0137, 0x0198, 0x02b8, 0x0399, 0x0359, 0x0258, 0x0198, 0x0137, 0x0137, 0x0117, 0x0158, 0x0137, 0x0137, 0x0138, 0x0137, 0x0138, 0x0138, 0x0137, 0x0137, 0x0137, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0137, 0x0137, 0x0138, 0x0138, 0x0137, 0x0158, 0x0259, 0x0399, 0x0399, 0x0258, 0x0158, 0x0158, 0x0138, 0x0138, 0x0158, 0x0138, 0x0158, 0x0137, 0x0138, 0x0158, 0x0138, 0x0138, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0138, 0x0158, 0x0158, 0x0158, 0x0138, 0x0238, 0x03b9, 0x03da, 0x0259, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0138, 0x0178, 0x0158, 0x0158, 0x0159, 0x01b9, 0x037a, 0x0bda, 0x0218, 0x0958, 0x0159, 0x0159, 0x0958, 0x0158, 0x0158, 0x0158, 0x0158, 0x0958, 0x0959, 0x0158, 0x0159, 0x0179, 0x0158, 0x0159, 0x0159, 0x0159, 0x0159, 0x0158, 0x0158, 0x0158, 0x0158, 0x0979, 0x0179, 0x0958, 0x0979, 0x0159, 0x0178, 0x0159, 0x0958, 0x033a, 0x041a, 0x01f9, 0x0959, 0x0179, 0x0958, 0x0959, 0x0158, 0x0159, 0x0159, 0x0159, 0x0159, 0x0979, 0x0979, 0x0979, 0x0979, 0x0179, 0x0179, 0x0179, 0x0179, 0x0179, 0x0179, 0x0179, 0x0179, 0x0979, 0x0979, 0x0959, 0x0959, 0x0979, 0x0979, 0x0979, 0x0979, 0x0979, 0x0a79, 0x043a, 0x0199, 0x0959, 0x0179, 0x0179, 0x0979, 0x0979, 0x0979, 0x0979, 0x0979, 0x0979, 0x0979, 0x0979, 0x0979, 0x0979, 0x0979, 0x0979, 0x0979, 0x0979, 0x0979, 0x0979, 0x0979, 0x0179, 0x0179, 0x0179, 0x0179, 0x0179, 0x0179, 0x0179, 0x0179, 0x0979, 0x0179, 0x09b9, 0x0c3b, 0x0179, 0x0979, 0x0179, 0x0179, 0x0979, 0x0979, 0x0979, 0x0979, 0x0979, 0x0979, 0x0979, 0x0979, 0x0979, 0x0979, 0x0979, 0x0979, 0x0979, 0x0979, 0x0979, 0x0979, 0x0979, 0x0979, 0x0979, 0x0979, 0x0979, 0x0979, 0x0979, 0x0979, 0x0979, 0x0179, 0x0979, 0x0179, 0x0c7a, 0x0979, 0x0179, 0x0179, 0x0979, 0x0979, 0x0979, 0x0979, 0x0979, 0x0979, 0x0979, 0x0979, 0x0979, 0x0979, 0x0979, 0x0979, 0x0979, 0x0979, 0x0979, 0x0979, 0x0179, 0x0179, 0x0179, 0x0179, 0x0179, 0x0179, 0x0179, 0x0179, 0x0179, 0x0179, 0x0979, 0x0979, 0x0979, 0x0979, 0x0bfa, 0x0259, 0x0979, 0x0979, 0x0979, 0x0979, 0x0979, 0x0959, 0x0979, 0x0979, 0x0979, 0x0979, 0x0979, 0x0979, 0x0979, 0x0979, 0x0979, 0x0979, 0x0979, 0x0979, 0x0979, 0x0979, 0x0979, 0x0979, 0x0979, 0x0979, 0x0179, 0x0958, 0x0979, 0x0178, 0x0958, 0x0159, 0x0999, 0x0bda, 0x02d9, 0x0159, 0x0959, 0x0159, 0x0979, 0x0959, 0x0979, 0x0959, 0x0979, 0x0979, 0x0979, 0x0979, 0x0979, 0x0979, 0x0979, 0x0979, 0x1179, 0x1179, 0x1179, 0x1179, 0x1179, 0x1999, 0x1999, 0x199a, 0x1999, 0x2199, 0x219a, 0x21ba, 0x7154, 0x9931, 0x9911, 0x9931, 0x9931, 0x9931, 0x9911, 0x9931, 0x9931, 0x9931, 0x9931, 0x9911, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x1179, 0x1179, 0x1179, 0x0979, 0x0979, 0x0958, 0x0958, 0x0958, 0x0958, 0x0158, 0x0158, 0x0158, 0x0958, 0x0158, 0x0158, 0x0158, 0x0158, 0x0159, 0x0158, 0x01d8, 0x0399, 0x0399, 0x01d9, 0x0158, 0x0158, 0x0138, 0x0138, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0138, 0x0158, 0x0158, 0x0157, 0x0158, 0x0158, 0x0158, 0x0158, 0x0138, 0x0218, 0x0379, 0x03b9, 0x0258, 0x0158, 0x0138, 0x0158, 0x0138, 0x0138, 0x0158, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0137, 0x0137, 0x0138, 0x0138, 0x0137, 0x0138, 0x0137, 0x0138, 0x0137, 0x0138, 0x0138, 0x0138, 0x0137, 0x0238, 0x0359, 0x0399, 0x0298, 0x0178, 0x0137, 0x0137, 0x0137, 0x0137, 0x0137, 0x0137, 0x0137, 0x0137, 0x0117, 0x0117, 0x0137, 0x0137, 0x0137, 0x0137, 0x0137, 0x0137, 0x0137, 0x0137, 0x0117, 0x0137, 0x0137, + 0x0116, 0x0116, 0x0116, 0x00f7, 0x00f6, 0x0116, 0x0117, 0x0116, 0x0116, 0x0117, 0x0116, 0x0116, 0x0117, 0x0117, 0x0116, 0x0117, 0x0117, 0x0117, 0x0117, 0x0137, 0x0238, 0x0318, 0x0379, 0x0297, 0x0197, 0x0117, 0x0117, 0x0117, 0x0117, 0x0117, 0x0137, 0x0116, 0x0117, 0x0117, 0x0117, 0x0117, 0x0117, 0x0137, 0x0117, 0x0117, 0x0117, 0x0117, 0x0117, 0x0137, 0x0117, 0x0117, 0x0117, 0x0117, 0x0117, 0x0117, 0x0117, 0x0137, 0x0117, 0x0177, 0x02d8, 0x0399, 0x0318, 0x01d7, 0x0117, 0x0137, 0x0117, 0x0137, 0x0137, 0x0137, 0x0137, 0x0117, 0x0137, 0x0117, 0x0137, 0x0117, 0x0117, 0x0137, 0x0137, 0x0137, 0x0137, 0x0137, 0x0137, 0x0137, 0x0137, 0x0137, 0x0137, 0x0137, 0x0137, 0x0137, 0x0137, 0x0138, 0x0137, 0x01d8, 0x0339, 0x0399, 0x0238, 0x0137, 0x0137, 0x0138, 0x0138, 0x0137, 0x0137, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0137, 0x0137, 0x0138, 0x0138, 0x0137, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0157, 0x0138, 0x0278, 0x03d9, 0x02b9, 0x0178, 0x0158, 0x0138, 0x0138, 0x0158, 0x0138, 0x0137, 0x0137, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0137, 0x0158, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0158, 0x0158, 0x0158, 0x0138, 0x0138, 0x0938, 0x0158, 0x0158, 0x0158, 0x0178, 0x0339, 0x0399, 0x0178, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x01d9, 0x03f9, 0x01f9, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x02d9, 0x0319, 0x0158, 0x0158, 0x0158, 0x0159, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0959, 0x0158, 0x0158, 0x0159, 0x041a, 0x0959, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x02b9, 0x0319, 0x0158, 0x0158, 0x0138, 0x0138, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0138, 0x0158, 0x01d8, 0x03f9, 0x01f8, 0x0138, 0x0138, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0958, 0x0958, 0x0958, 0x0958, 0x0958, 0x1158, 0x1158, 0x1158, 0x1178, 0x1179, 0x1979, 0x1979, 0x1979, 0x1979, 0x1999, 0x2179, 0x3178, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9911, 0x9931, 0x9911, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x3157, 0x0958, 0x1158, 0x0958, 0x0958, 0x0938, 0x0938, 0x0938, 0x0938, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0137, 0x0137, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0298, 0x03f9, 0x0298, 0x0137, 0x0138, 0x0137, 0x0137, 0x0137, 0x0137, 0x0137, 0x0137, 0x0137, 0x0137, 0x0137, 0x0137, 0x0137, 0x0137, 0x0137, 0x0137, 0x0137, 0x0137, 0x0137, 0x0137, 0x0137, 0x0117, 0x0137, 0x0137, 0x0117, 0x0137, 0x0137, 0x0138, 0x0117, 0x0137, 0x0238, 0x0379, 0x0379, 0x0238, 0x0137, 0x0137, 0x0117, 0x0117, 0x0117, 0x0117, 0x0137, 0x0117, 0x0117, 0x0137, 0x0137, 0x0137, 0x0137, 0x0137, 0x0137, 0x0137, 0x0117, 0x0117, 0x0117, 0x0117, 0x0137, 0x0117, 0x0117, 0x0136, 0x0117, 0x0117, 0x0117, 0x0136, 0x0137, 0x01b7, 0x02b8, 0x0399, 0x02b8, 0x0197, 0x0137, 0x0117, 0x0137, 0x0117, 0x0117, 0x0117, 0x0117, 0x0117, 0x0116, 0x0117, 0x0117, 0x0117, 0x0117, 0x0116, 0x0117, 0x0117, 0x0117, 0x0117, 0x0117, + 0x00f6, 0x00f6, 0x00f6, 0x00f6, 0x00f6, 0x00f6, 0x00f6, 0x00f6, 0x00f6, 0x00f6, 0x00f6, 0x00f6, 0x00f6, 0x00f6, 0x0116, 0x00f6, 0x0116, 0x01b7, 0x02b7, 0x0378, 0x02b7, 0x01d6, 0x0116, 0x00f7, 0x00f6, 0x0116, 0x00f6, 0x0116, 0x0116, 0x00f6, 0x00f6, 0x0116, 0x0116, 0x0116, 0x0116, 0x0116, 0x0116, 0x0116, 0x0116, 0x0116, 0x0116, 0x0116, 0x0116, 0x0117, 0x0116, 0x0116, 0x0116, 0x0116, 0x0116, 0x0116, 0x0136, 0x0197, 0x02f8, 0x0378, 0x0297, 0x0177, 0x0116, 0x0116, 0x0117, 0x0116, 0x0116, 0x0117, 0x0117, 0x0116, 0x0117, 0x0117, 0x0117, 0x0117, 0x0116, 0x0116, 0x0116, 0x0117, 0x0117, 0x0117, 0x0117, 0x0117, 0x0117, 0x0117, 0x0117, 0x0117, 0x0117, 0x0117, 0x0117, 0x0117, 0x0117, 0x01d7, 0x0318, 0x0379, 0x0238, 0x0117, 0x0117, 0x0117, 0x0117, 0x0117, 0x0117, 0x0117, 0x0117, 0x0117, 0x0117, 0x0117, 0x0137, 0x0117, 0x0117, 0x0117, 0x0117, 0x0117, 0x0117, 0x0137, 0x0117, 0x0117, 0x0117, 0x0117, 0x0117, 0x0117, 0x0117, 0x0117, 0x0137, 0x0117, 0x0117, 0x0177, 0x0318, 0x0379, 0x01d7, 0x0137, 0x0117, 0x0137, 0x0117, 0x0137, 0x0136, 0x0117, 0x0117, 0x0137, 0x0137, 0x0117, 0x0117, 0x0137, 0x0137, 0x0137, 0x0117, 0x0137, 0x0137, 0x0137, 0x0117, 0x0117, 0x0117, 0x0137, 0x0137, 0x0137, 0x0137, 0x0137, 0x0138, 0x0137, 0x0117, 0x0157, 0x0359, 0x02f8, 0x0157, 0x0117, 0x0137, 0x0117, 0x0137, 0x0117, 0x0137, 0x0137, 0x0137, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0137, 0x0137, 0x0137, 0x0137, 0x0137, 0x0137, 0x0137, 0x0158, 0x0359, 0x0278, 0x0137, 0x0138, 0x0137, 0x0138, 0x0138, 0x0137, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0137, 0x0138, 0x03b9, 0x01b8, 0x0137, 0x0138, 0x0138, 0x0137, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0137, 0x0137, 0x0137, 0x0138, 0x03f9, 0x0137, 0x0138, 0x0137, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0137, 0x0138, 0x0118, 0x0138, 0x0138, 0x0178, 0x03f9, 0x0158, 0x0137, 0x0137, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0137, 0x0137, 0x0137, 0x0138, 0x0138, 0x0137, 0x0137, 0x0118, 0x0238, 0x03b9, 0x0177, 0x0137, 0x0138, 0x0137, 0x0117, 0x0137, 0x0138, 0x0137, 0x0137, 0x0137, 0x0137, 0x0937, 0x0938, 0x0938, 0x0938, 0x0938, 0x0938, 0x0958, 0x1158, 0x1158, 0x1158, 0x1158, 0x1158, 0x1958, 0x1958, 0x1959, 0x1978, 0x6934, 0x9931, 0x9931, 0x9912, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9912, 0x9931, 0x9911, 0x9931, 0x9931, 0x9931, 0x9932, 0x4135, 0x0938, 0x0957, 0x0937, 0x0937, 0x0937, 0x0937, 0x0117, 0x0117, 0x0117, 0x0117, 0x0117, 0x0117, 0x0117, 0x0117, 0x0117, 0x0137, 0x0137, 0x0117, 0x0117, 0x0117, 0x0117, 0x0197, 0x0318, 0x0338, 0x01b7, 0x0117, 0x0117, 0x0117, 0x0117, 0x0117, 0x0117, 0x0117, 0x0117, 0x0117, 0x0117, 0x0117, 0x0117, 0x0117, 0x0117, 0x0117, 0x0117, 0x0117, 0x0117, 0x0117, 0x0116, 0x0117, 0x0117, 0x0117, 0x0116, 0x0117, 0x0116, 0x0117, 0x0116, 0x0117, 0x00f7, 0x0217, 0x0339, 0x02f8, 0x0197, 0x0136, 0x0116, 0x0117, 0x0116, 0x0116, 0x0116, 0x0116, 0x0116, 0x0116, 0x0116, 0x0116, 0x0116, 0x0116, 0x0116, 0x0116, 0x0116, 0x0116, 0x0116, 0x0116, 0x0117, 0x0116, 0x0116, 0x0116, 0x0116, 0x0116, 0x0117, 0x0116, 0x0116, 0x0116, 0x0156, 0x0237, 0x0358, 0x02d8, 0x01f7, 0x0116, 0x00f6, 0x0116, 0x0116, 0x0116, 0x0116, 0x0116, 0x0116, 0x00f6, 0x00f6, 0x0116, 0x00f6, 0x00f6, 0x00f6, 0x00f6, 0x00f6, 0x0116, + 0x0297, 0x0297, 0x0297, 0x0297, 0x0297, 0x0297, 0x0297, 0x0297, 0x0297, 0x0297, 0x02b7, 0x0297, 0x02b7, 0x02b7, 0x02b7, 0x02b7, 0x0318, 0x0357, 0x0338, 0x02d7, 0x02b7, 0x02b7, 0x02b7, 0x02b7, 0x02b7, 0x02b7, 0x02b7, 0x02b7, 0x02b7, 0x02b7, 0x02b7, 0x02b7, 0x02b7, 0x02b7, 0x02b7, 0x02b7, 0x02b7, 0x02b7, 0x02b8, 0x02b7, 0x02b7, 0x02b7, 0x02b7, 0x02b7, 0x02b7, 0x02b7, 0x02b7, 0x02b8, 0x02b8, 0x02b7, 0x0317, 0x0358, 0x0338, 0x02f7, 0x02d7, 0x02b7, 0x02b7, 0x02b7, 0x02d7, 0x02d7, 0x02d7, 0x02d7, 0x02d7, 0x02d7, 0x02d7, 0x02d7, 0x02d7, 0x02d7, 0x02d7, 0x02d8, 0x02d8, 0x02d7, 0x02d7, 0x02d7, 0x02d8, 0x02d8, 0x02d7, 0x02d8, 0x02d7, 0x02d8, 0x02d8, 0x02d8, 0x02d7, 0x02d7, 0x02f7, 0x0358, 0x0378, 0x02f7, 0x02d8, 0x02d8, 0x02d8, 0x02d7, 0x02d7, 0x02d7, 0x02d7, 0x02d7, 0x02d7, 0x02d8, 0x02d8, 0x02d8, 0x02d8, 0x02d8, 0x02d8, 0x02d8, 0x02d8, 0x02d8, 0x02d8, 0x02d8, 0x02d8, 0x02d8, 0x02d8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02d7, 0x02f8, 0x02f8, 0x0398, 0x0378, 0x02f8, 0x02d8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x0378, 0x0398, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x0318, 0x02f8, 0x0318, 0x02f7, 0x02f8, 0x02f8, 0x0318, 0x0358, 0x0399, 0x0318, 0x02f8, 0x02f8, 0x0318, 0x0318, 0x02f8, 0x0318, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x0318, 0x0318, 0x0318, 0x0318, 0x0318, 0x0318, 0x0318, 0x0318, 0x0318, 0x0318, 0x0318, 0x0318, 0x0318, 0x0318, 0x0318, 0x0318, 0x0318, 0x0338, 0x03b8, 0x0318, 0x0318, 0x02f8, 0x0318, 0x0318, 0x0318, 0x0318, 0x0318, 0x0318, 0x0318, 0x0318, 0x0318, 0x0318, 0x0318, 0x0318, 0x0318, 0x0318, 0x0318, 0x0318, 0x0318, 0x0318, 0x0318, 0x0318, 0x0318, 0x0318, 0x0318, 0x0318, 0x0318, 0x0318, 0x0318, 0x0318, 0x0318, 0x0318, 0x03b8, 0x0318, 0x0318, 0x0318, 0x0318, 0x0318, 0x0318, 0x0318, 0x0318, 0x0318, 0x0318, 0x0318, 0x0318, 0x0318, 0x0318, 0x0318, 0x0318, 0x0318, 0x0318, 0x0318, 0x0318, 0x0318, 0x0318, 0x0318, 0x0318, 0x0318, 0x0318, 0x0318, 0x0318, 0x0318, 0x02f8, 0x0318, 0x0318, 0x02f8, 0x0318, 0x0378, 0x0338, 0x02f8, 0x02f8, 0x0318, 0x02f8, 0x0318, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x0318, 0x0318, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x0378, 0x0338, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x0af8, 0x0af8, 0x0af8, 0x0af8, 0x0b18, 0x0b18, 0x1318, 0x1319, 0x1319, 0x1319, 0x1319, 0x1319, 0x1b18, 0x2af8, 0x9931, 0x9931, 0x9931, 0x9931, 0x9911, 0x9931, 0x9931, 0x9932, 0x9931, 0x9911, 0x9931, 0x9932, 0x9931, 0x9931, 0x9931, 0x5215, 0x0af8, 0x0af8, 0x02f8, 0x02f8, 0x02f8, 0x02f8, 0x02d8, 0x02d8, 0x02d8, 0x02d8, 0x02d8, 0x02d8, 0x02d8, 0x02d8, 0x02d8, 0x02d8, 0x02d8, 0x02d8, 0x02d8, 0x02d8, 0x02d7, 0x02d8, 0x02d8, 0x0378, 0x0378, 0x02d7, 0x02d8, 0x02d7, 0x02d7, 0x02d8, 0x02d8, 0x02d7, 0x02d7, 0x02d7, 0x02d7, 0x02d7, 0x02d8, 0x02d8, 0x02d7, 0x02d7, 0x02d7, 0x02d7, 0x02d8, 0x02d7, 0x02d7, 0x02d7, 0x02d7, 0x02d7, 0x02d7, 0x02d7, 0x02b7, 0x02d7, 0x02d7, 0x02d7, 0x02b7, 0x02b7, 0x02f7, 0x0358, 0x0358, 0x02f7, 0x02b7, 0x02b7, 0x02b7, 0x02b7, 0x02b7, 0x02b7, 0x02b7, 0x02b7, 0x02b7, 0x02b7, 0x02b7, 0x02b7, 0x02b7, 0x02b7, 0x02b7, 0x02b7, 0x02b7, 0x02b7, 0x02b7, 0x02b7, 0x02b7, 0x02b7, 0x02b7, 0x02b7, 0x02b7, 0x02b7, 0x02b7, 0x02b7, 0x02b7, 0x02b7, 0x02d7, 0x0338, 0x0357, 0x02f7, 0x0297, 0x0297, 0x02b7, 0x02b7, 0x02b7, 0x02b7, 0x02b7, 0x02b7, 0x0297, 0x0297, 0x0297, 0x02b7, 0x0297, 0x0297, 0x02b7, 0x0297, + 0x0175, 0x0155, 0x0155, 0x0156, 0x0175, 0x0176, 0x0175, 0x0175, 0x0175, 0x0175, 0x0175, 0x01b6, 0x0257, 0x02f7, 0x02d7, 0x0216, 0x0176, 0x0155, 0x0175, 0x0156, 0x0175, 0x0175, 0x0175, 0x0175, 0x0175, 0x0175, 0x0175, 0x0175, 0x0175, 0x0175, 0x0175, 0x0175, 0x0176, 0x0176, 0x0155, 0x0176, 0x0176, 0x0176, 0x0175, 0x0176, 0x0175, 0x0156, 0x0176, 0x0176, 0x0176, 0x0155, 0x01b6, 0x0296, 0x0337, 0x0296, 0x01d6, 0x0176, 0x0196, 0x0176, 0x0176, 0x0176, 0x0176, 0x0176, 0x0176, 0x0176, 0x0176, 0x0176, 0x0176, 0x0176, 0x0176, 0x0176, 0x0176, 0x0176, 0x0176, 0x0196, 0x0176, 0x0176, 0x0176, 0x0196, 0x0196, 0x0176, 0x0176, 0x0196, 0x0176, 0x0196, 0x0176, 0x01b6, 0x02f8, 0x0317, 0x0217, 0x0196, 0x0176, 0x0196, 0x0196, 0x0196, 0x0196, 0x0176, 0x0196, 0x0196, 0x0196, 0x0196, 0x0196, 0x0196, 0x0196, 0x0196, 0x0196, 0x0196, 0x0196, 0x0196, 0x0196, 0x0196, 0x0196, 0x0196, 0x0196, 0x0176, 0x0196, 0x0196, 0x0196, 0x0196, 0x0196, 0x0196, 0x01f7, 0x0337, 0x02d7, 0x01b6, 0x0197, 0x0196, 0x0196, 0x0176, 0x0196, 0x0196, 0x0196, 0x0196, 0x0196, 0x0196, 0x0196, 0x0196, 0x0196, 0x0196, 0x0196, 0x0196, 0x0196, 0x0196, 0x0196, 0x0196, 0x0196, 0x0196, 0x0197, 0x0196, 0x0196, 0x0196, 0x0196, 0x0196, 0x0196, 0x0196, 0x0196, 0x0237, 0x0358, 0x0217, 0x0196, 0x0196, 0x0196, 0x0196, 0x0196, 0x0196, 0x0196, 0x0196, 0x0196, 0x0196, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0196, 0x0196, 0x0197, 0x0197, 0x0196, 0x0196, 0x0277, 0x0318, 0x01b6, 0x0196, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x01b7, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x01b6, 0x02f7, 0x0257, 0x0197, 0x01b6, 0x01b7, 0x01b6, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x01b7, 0x01b6, 0x01b7, 0x0378, 0x01b7, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x01b6, 0x01f7, 0x0358, 0x0196, 0x0196, 0x01b6, 0x0196, 0x01b6, 0x0197, 0x0196, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0197, 0x0196, 0x0196, 0x0197, 0x0197, 0x02f7, 0x02f7, 0x0196, 0x0196, 0x0196, 0x0196, 0x0197, 0x0196, 0x0197, 0x01b6, 0x01b6, 0x0196, 0x0196, 0x0196, 0x0197, 0x0197, 0x0197, 0x09b7, 0x0997, 0x09b7, 0x09b7, 0x09b7, 0x11b7, 0x11b7, 0x11d7, 0x11b7, 0x11b7, 0x11b7, 0x7153, 0x9931, 0x9911, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x6174, 0x09b6, 0x0196, 0x0197, 0x0196, 0x0196, 0x0196, 0x0196, 0x0196, 0x0196, 0x0196, 0x0196, 0x0196, 0x0196, 0x0196, 0x0196, 0x0196, 0x0196, 0x0196, 0x0176, 0x0196, 0x0196, 0x0196, 0x0196, 0x0177, 0x0196, 0x02b7, 0x0337, 0x0216, 0x0196, 0x0196, 0x0196, 0x0176, 0x0176, 0x0176, 0x0176, 0x0196, 0x0196, 0x0176, 0x0176, 0x0196, 0x0176, 0x0176, 0x0176, 0x0176, 0x0176, 0x0176, 0x0176, 0x0176, 0x0176, 0x0176, 0x0176, 0x0176, 0x0176, 0x0176, 0x0176, 0x0176, 0x0175, 0x0196, 0x0195, 0x0216, 0x02f7, 0x0317, 0x0216, 0x0176, 0x0176, 0x0176, 0x0176, 0x0175, 0x0175, 0x0176, 0x0176, 0x0175, 0x0175, 0x0175, 0x0175, 0x0175, 0x0175, 0x0175, 0x0175, 0x0175, 0x0175, 0x0175, 0x0175, 0x0175, 0x0175, 0x0175, 0x0175, 0x0175, 0x0175, 0x0175, 0x0176, 0x0175, 0x0155, 0x0196, 0x0256, 0x0317, 0x02b7, 0x01b6, 0x0176, 0x0175, 0x0175, 0x0175, 0x0175, 0x0175, 0x0155, 0x0155, 0x0175, 0x0155, 0x0155, 0x0155, + 0x00b3, 0x00b3, 0x00b3, 0x00b3, 0x00b4, 0x00d3, 0x00d3, 0x00b4, 0x00d4, 0x0174, 0x0235, 0x02d6, 0x0235, 0x0174, 0x00d4, 0x00d4, 0x00b4, 0x00d4, 0x00b4, 0x00d4, 0x00b4, 0x00b4, 0x00b4, 0x00b4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00b4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00b4, 0x00d4, 0x00d4, 0x00d4, 0x0135, 0x0235, 0x02d6, 0x0236, 0x0134, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d4, 0x00d4, 0x00d4, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x0115, 0x0236, 0x0317, 0x0256, 0x00f4, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00f5, 0x00f5, 0x00d5, 0x00f5, 0x00d5, 0x00d5, 0x00f5, 0x01f6, 0x0317, 0x01f6, 0x00f5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00f5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00f5, 0x00f5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00f5, 0x00d5, 0x00f5, 0x01b6, 0x0337, 0x01b6, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x0155, 0x0337, 0x0156, 0x00d5, 0x00d5, 0x00f6, 0x00f6, 0x00f6, 0x00f5, 0x00d6, 0x00d6, 0x00f6, 0x00f6, 0x00f6, 0x00f6, 0x00f6, 0x00f6, 0x00f6, 0x00f6, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f6, 0x00d5, 0x00f6, 0x00f6, 0x00f5, 0x00f5, 0x00f5, 0x00f6, 0x0115, 0x0338, 0x0115, 0x00f6, 0x00f5, 0x00f6, 0x00f5, 0x00d6, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00d5, 0x00f6, 0x00d5, 0x00f5, 0x0357, 0x00f5, 0x00f6, 0x00f6, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f6, 0x00f5, 0x00d5, 0x00d5, 0x00d6, 0x00d6, 0x00d5, 0x00f5, 0x02f7, 0x0176, 0x00f5, 0x00d5, 0x00f5, 0x00f6, 0x00f6, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00d5, 0x00f5, 0x00d5, 0x0116, 0x02f7, 0x01d6, 0x00d6, 0x00d5, 0x00f5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00f5, 0x00d5, 0x00d5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x08f6, 0x08f6, 0x08f6, 0x08f6, 0x0916, 0x0916, 0x10f6, 0x1117, 0x1116, 0x3135, 0x9931, 0x9931, 0x9931, 0x9931, 0x9911, 0x9931, 0x9931, 0x9931, 0x9911, 0x9912, 0x9931, 0x9931, 0x9931, 0x9931, 0x7113, 0x08f5, 0x08f6, 0x00f5, 0x00f5, 0x00f5, 0x00f5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d5, 0x00d4, 0x00d5, 0x00d5, 0x00d5, 0x01d6, 0x02f7, 0x0236, 0x0114, 0x00d5, 0x00d5, 0x00d4, 0x00d5, 0x00d5, 0x00d5, 0x00d4, 0x00d5, 0x00d4, 0x00d5, 0x00d5, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00b4, 0x00d4, 0x00d4, 0x00f4, 0x01d5, 0x02d6, 0x0236, 0x0114, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00b4, 0x00b4, 0x00b4, 0x00b4, 0x00b4, 0x00b4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d3, 0x0114, 0x01f5, 0x02b5, 0x0235, 0x0154, 0x00d3, 0x00b3, 0x00b3, 0x00d3, 0x00b3, 0x00b3, 0x00b3, 0x00b3, 0x00b3, 0x00b3, + 0x00b1, 0x00b2, 0x00b1, 0x00b2, 0x00b2, 0x00b2, 0x00f2, 0x01d3, 0x0253, 0x0234, 0x0173, 0x00d2, 0x0092, 0x00b1, 0x00b1, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x0092, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b3, 0x00b2, 0x0153, 0x0234, 0x0274, 0x01b3, 0x00f3, 0x00b2, 0x00b2, 0x00b3, 0x00b3, 0x00b2, 0x00b3, 0x00b3, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b3, 0x00b3, 0x00b3, 0x00b3, 0x00b3, 0x00b3, 0x00b3, 0x00b3, 0x00b3, 0x00b3, 0x00b3, 0x00b3, 0x00b3, 0x00b3, 0x00b3, 0x00b3, 0x00b3, 0x00d3, 0x01b4, 0x02b5, 0x01f4, 0x0113, 0x00b3, 0x00d3, 0x00b3, 0x00b3, 0x00b3, 0x00b3, 0x00b3, 0x00b3, 0x00b3, 0x00d3, 0x00b3, 0x00b3, 0x00b3, 0x00b3, 0x00b3, 0x00b3, 0x00b3, 0x00b3, 0x00b3, 0x00d3, 0x00b3, 0x00d3, 0x00d4, 0x00b3, 0x00b3, 0x00d4, 0x00b3, 0x00b3, 0x00d4, 0x00b3, 0x00d3, 0x0133, 0x0275, 0x0255, 0x0134, 0x00d3, 0x00b3, 0x00d3, 0x00d3, 0x00d4, 0x00d4, 0x00b4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00b4, 0x00d4, 0x00b4, 0x00d4, 0x00d4, 0x00b4, 0x00b4, 0x01d4, 0x02b5, 0x0134, 0x00d4, 0x00b4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00f4, 0x02b5, 0x01b5, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x01b5, 0x0255, 0x00d5, 0x00b4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x02f6, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x01f5, 0x0235, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00b4, 0x00b4, 0x00b4, 0x00b4, 0x00b4, 0x00b4, 0x00b4, 0x00d4, 0x00d4, 0x00b4, 0x0154, 0x02b5, 0x0134, 0x00d4, 0x00b4, 0x00b4, 0x00d4, 0x00d4, 0x00d4, 0x00b4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x00d4, 0x08d4, 0x08d4, 0x08d4, 0x08f4, 0x08f4, 0x08f4, 0x08f5, 0x10f4, 0x10d5, 0x7912, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9911, 0x9931, 0x9931, 0x9931, 0x8132, 0x00d4, 0x00d4, 0x00d4, 0x00d3, 0x00d3, 0x00d3, 0x00d3, 0x00d3, 0x00b3, 0x00d3, 0x00b3, 0x00b3, 0x00b3, 0x00b3, 0x00b3, 0x00b3, 0x00b3, 0x00b3, 0x00b3, 0x00b3, 0x00b3, 0x00b3, 0x00b3, 0x00b3, 0x00b2, 0x00b3, 0x00d3, 0x00d3, 0x0214, 0x0295, 0x0153, 0x00b3, 0x00b3, 0x00b3, 0x00b2, 0x00b3, 0x00b3, 0x00b3, 0x00b2, 0x00b2, 0x00b2, 0x00b3, 0x00b3, 0x00b3, 0x00b3, 0x00b3, 0x00b3, 0x00b3, 0x00b3, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00d2, 0x01b3, 0x0274, 0x01d3, 0x00f2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b1, 0x00b2, 0x0092, 0x00b2, 0x00b1, 0x0172, 0x0253, 0x0233, 0x0152, 0x00b1, 0x0091, 0x00b1, 0x0091, 0x00b1, 0x00b1, 0x0091, 0x00b1, + 0x0090, 0x0090, 0x0090, 0x00b0, 0x0151, 0x0212, 0x0232, 0x0191, 0x00f0, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0091, 0x0090, 0x0091, 0x00b1, 0x0171, 0x0232, 0x0213, 0x0151, 0x0090, 0x00b0, 0x0090, 0x0091, 0x00b1, 0x00b0, 0x0090, 0x00b1, 0x00b1, 0x0091, 0x0091, 0x0091, 0x0091, 0x0091, 0x0091, 0x0091, 0x0091, 0x0091, 0x0091, 0x0091, 0x0091, 0x0091, 0x0091, 0x0091, 0x0091, 0x0091, 0x00b1, 0x00b1, 0x0091, 0x0091, 0x0091, 0x00d1, 0x0172, 0x0253, 0x01b2, 0x00d1, 0x00b1, 0x0091, 0x0091, 0x0091, 0x00b1, 0x0091, 0x00b1, 0x00b1, 0x0091, 0x00b1, 0x00b1, 0x00b1, 0x00b1, 0x00b1, 0x00b1, 0x00b1, 0x00b1, 0x00b1, 0x00b1, 0x00b1, 0x00b1, 0x00b1, 0x00b1, 0x00b1, 0x00b1, 0x00b1, 0x00b1, 0x00b1, 0x00b1, 0x0091, 0x0091, 0x00d2, 0x01b2, 0x0273, 0x0172, 0x00b1, 0x00b2, 0x00b1, 0x00b1, 0x00b2, 0x00b1, 0x00b1, 0x00b2, 0x00b1, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b1, 0x00b1, 0x00b2, 0x00b2, 0x00b1, 0x00b2, 0x00b2, 0x00b2, 0x01d3, 0x0253, 0x0112, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x0213, 0x01d3, 0x0092, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x0253, 0x0153, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x0294, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00f2, 0x0293, 0x00d2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b1, 0x00b2, 0x0172, 0x0253, 0x00b1, 0x00b1, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b1, 0x00b1, 0x00b1, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x00b2, 0x08b2, 0x08b2, 0x08b2, 0x08d2, 0x08b2, 0x08d2, 0x08d3, 0x10d3, 0x40f2, 0x9911, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9911, 0x9931, 0x9931, 0x9931, 0x9931, 0x9911, 0x00d2, 0x00b2, 0x00b1, 0x00b1, 0x00b1, 0x00b1, 0x00b1, 0x00b1, 0x00b1, 0x00b1, 0x00b1, 0x00b1, 0x00b1, 0x00b1, 0x00b1, 0x00b1, 0x00b1, 0x00b1, 0x00b1, 0x0091, 0x00b1, 0x00b1, 0x00b1, 0x00b1, 0x00b1, 0x00b1, 0x00b1, 0x00b1, 0x0091, 0x0131, 0x0252, 0x01f2, 0x00b1, 0x00b1, 0x00b1, 0x0091, 0x0091, 0x00b1, 0x0091, 0x0091, 0x00b0, 0x0091, 0x0091, 0x0091, 0x0091, 0x0091, 0x0091, 0x0091, 0x0091, 0x0091, 0x0091, 0x0091, 0x0091, 0x0091, 0x0091, 0x0090, 0x0090, 0x0091, 0x0091, 0x0091, 0x00b1, 0x0090, 0x00b0, 0x0091, 0x00b0, 0x01b2, 0x0252, 0x01b1, 0x00d0, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0111, 0x01d1, 0x0232, 0x0191, 0x00b0, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, + 0x008f, 0x0130, 0x01b1, 0x0232, 0x01b1, 0x0110, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x008f, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x00d0, 0x0191, 0x0232, 0x01d1, 0x00f0, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x00b0, 0x0171, 0x0232, 0x01d1, 0x00f1, 0x0090, 0x0090, 0x0090, 0x0070, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0111, 0x0212, 0x01d1, 0x00d0, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x00b0, 0x01d2, 0x01f2, 0x00b0, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x00b0, 0x00b0, 0x0171, 0x0212, 0x00b0, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x00b0, 0x00b0, 0x0090, 0x0090, 0x00b0, 0x00b0, 0x00b0, 0x00b0, 0x00b0, 0x00b0, 0x00b0, 0x00b0, 0x00b0, 0x00b0, 0x00b0, 0x00b0, 0x00b0, 0x00b0, 0x00b0, 0x00b0, 0x0090, 0x0090, 0x0090, 0x00b0, 0x00b0, 0x0090, 0x0090, 0x00f1, 0x0252, 0x00b0, 0x0090, 0x00b0, 0x0090, 0x0090, 0x00b0, 0x00b0, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x00b0, 0x00b0, 0x0090, 0x0090, 0x0272, 0x00b0, 0x0090, 0x00b0, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x00b0, 0x00b0, 0x00b0, 0x00b0, 0x0090, 0x0090, 0x0090, 0x0090, 0x01d1, 0x0171, 0x0091, 0x00b0, 0x00b0, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x01d1, 0x01d1, 0x0090, 0x00b0, 0x0090, 0x0090, 0x0090, 0x00b0, 0x00b0, 0x00b0, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0091, 0x0091, 0x0091, 0x0091, 0x08b1, 0x08b1, 0x08b1, 0x08b1, 0x08b1, 0x08b1, 0x08b1, 0x8912, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9911, 0x9931, 0x9931, 0x9931, 0x9911, 0x9911, 0x9912, 0x9931, 0x0091, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x00b0, 0x01b1, 0x0252, 0x0131, 0x0090, 0x0090, 0x00b0, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x00b0, 0x01b1, 0x0232, 0x0191, 0x00b0, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0070, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x00b0, 0x0191, 0x0252, 0x01b1, 0x0110, 0x0090, 0x0090, 0x0090, + 0x0212, 0x01f1, 0x0150, 0x00af, 0x008f, 0x008f, 0x006f, 0x0090, 0x0090, 0x0070, 0x006f, 0x006f, 0x008f, 0x008f, 0x0070, 0x0070, 0x006f, 0x008f, 0x006f, 0x008f, 0x0090, 0x0090, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x0090, 0x006f, 0x008f, 0x008f, 0x008f, 0x0130, 0x01d1, 0x0212, 0x0191, 0x00b0, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x008f, 0x0090, 0x0090, 0x0090, 0x0090, 0x008f, 0x0090, 0x0090, 0x0090, 0x008f, 0x008f, 0x0090, 0x0090, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x0090, 0x0090, 0x008f, 0x0090, 0x0151, 0x0211, 0x01d1, 0x00f0, 0x008f, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x008f, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x00b0, 0x0191, 0x0232, 0x0151, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x00b0, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x00b0, 0x01f2, 0x01d1, 0x00b0, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0110, 0x0252, 0x00d0, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x01b1, 0x0191, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x00b0, 0x0090, 0x0090, 0x0252, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0151, 0x0232, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x00b0, 0x01f1, 0x0171, 0x00b0, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0091, 0x00b0, 0x00b0, 0x00b1, 0x08b1, 0x08b0, 0x08b1, 0x08b1, 0x50f1, 0x9931, 0x9931, 0x9911, 0x9931, 0x9931, 0x9931, 0x9931, 0x9911, 0x9931, 0x9911, 0x9931, 0x9911, 0x9931, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0070, 0x0090, 0x0090, 0x0090, 0x0090, 0x00f1, 0x0211, 0x01d2, 0x00d0, 0x0090, 0x0090, 0x008f, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x008f, 0x0090, 0x0090, 0x008f, 0x0090, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x0090, 0x008f, 0x0090, 0x00b0, 0x01b1, 0x0232, 0x0151, 0x00b0, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x008f, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x008f, 0x008f, 0x008f, 0x0090, 0x008f, 0x008f, 0x008f, 0x0090, 0x008f, 0x0090, 0x008f, 0x00b0, 0x0151, 0x0211, 0x0212, 0x0130, 0x00af, + 0x00cf, 0x008f, 0x008f, 0x006f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x00af, 0x0130, 0x01f2, 0x0212, 0x0131, 0x00af, 0x006f, 0x008f, 0x008f, 0x006f, 0x008f, 0x008f, 0x008f, 0x006f, 0x006f, 0x008f, 0x006f, 0x0090, 0x008f, 0x008f, 0x006f, 0x008f, 0x008f, 0x008f, 0x006f, 0x006f, 0x006f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x0130, 0x0212, 0x01f2, 0x00f0, 0x0070, 0x008f, 0x006f, 0x008f, 0x0090, 0x008f, 0x008f, 0x008f, 0x008f, 0x0090, 0x0090, 0x0090, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x008f, 0x008f, 0x0090, 0x008f, 0x008f, 0x008f, 0x008f, 0x00d0, 0x0212, 0x01d2, 0x00d0, 0x0090, 0x008f, 0x0090, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x0090, 0x008f, 0x008f, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x008f, 0x0090, 0x0090, 0x00f0, 0x0232, 0x01b1, 0x0090, 0x0090, 0x0090, 0x0090, 0x008f, 0x008f, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0232, 0x0130, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x00b0, 0x0232, 0x00d0, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x008f, 0x008f, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0252, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0232, 0x00f0, 0x0090, 0x0070, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x00f0, 0x0232, 0x00f1, 0x00b0, 0x008f, 0x008f, 0x0090, 0x008f, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x00b0, 0x00b0, 0x0890, 0x08b0, 0x0891, 0x10b0, 0x9931, 0x9911, 0x9911, 0x9931, 0x9931, 0x9931, 0x9911, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x008f, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x0090, 0x008f, 0x008f, 0x0090, 0x0191, 0x0212, 0x0150, 0x008f, 0x0090, 0x008f, 0x008f, 0x008f, 0x0090, 0x0090, 0x0090, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x0090, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x0090, 0x0090, 0x006f, 0x008f, 0x006f, 0x0070, 0x008f, 0x006f, 0x008f, 0x008f, 0x006f, 0x00d0, 0x01d2, 0x0212, 0x0150, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x006f, 0x008f, 0x008f, 0x0090, 0x008f, 0x008f, 0x008f, 0x008f, 0x006f, 0x008f, 0x008f, 0x008f, 0x006f, 0x008f, 0x008f, 0x008f, 0x0110, 0x01d1, 0x0212, + 0x006f, 0x008f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x008f, 0x006f, 0x008f, 0x008f, 0x006f, 0x008f, 0x008f, 0x008f, 0x008f, 0x006f, 0x006f, 0x008f, 0x006f, 0x006f, 0x006f, 0x008f, 0x008f, 0x006f, 0x00af, 0x0171, 0x0212, 0x01d1, 0x0110, 0x006f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x006f, 0x006f, 0x008f, 0x008f, 0x008f, 0x008f, 0x006f, 0x006f, 0x008f, 0x008f, 0x008f, 0x008f, 0x006f, 0x008f, 0x006f, 0x0110, 0x01f2, 0x0212, 0x0130, 0x008f, 0x006f, 0x008f, 0x006f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x006f, 0x008f, 0x008f, 0x008f, 0x008f, 0x006f, 0x008f, 0x008f, 0x008f, 0x008f, 0x0171, 0x0232, 0x0151, 0x008f, 0x006f, 0x008f, 0x008f, 0x006f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x0070, 0x0090, 0x008f, 0x008f, 0x008f, 0x008f, 0x006f, 0x008f, 0x006f, 0x00f0, 0x0212, 0x0151, 0x006f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x008f, 0x008f, 0x0090, 0x008f, 0x008f, 0x008f, 0x008f, 0x0070, 0x0090, 0x01f1, 0x01b1, 0x0070, 0x008f, 0x008f, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x008f, 0x008f, 0x008f, 0x0090, 0x008f, 0x008f, 0x0130, 0x01f1, 0x0090, 0x0090, 0x0090, 0x0090, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x0252, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x008f, 0x0191, 0x01b1, 0x0090, 0x008f, 0x008f, 0x008f, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x008f, 0x0090, 0x0090, 0x008f, 0x0090, 0x006f, 0x008f, 0x0131, 0x0232, 0x00d0, 0x0090, 0x008f, 0x008f, 0x008f, 0x0090, 0x0090, 0x008f, 0x008f, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x60f1, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x0150, 0x0090, 0x0090, 0x0090, 0x006f, 0x0090, 0x006f, 0x008f, 0x008f, 0x0070, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x006f, 0x0110, 0x01f2, 0x01d1, 0x00cf, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x006f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x006f, 0x008f, 0x006f, 0x006f, 0x00f0, 0x01b2, 0x0232, 0x0150, 0x008f, 0x006f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x006f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x006f, 0x008f, 0x008f, 0x008f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x00f0, + 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x008f, 0x006f, 0x006e, 0x008f, 0x006e, 0x006e, 0x00ef, 0x01b1, 0x0212, 0x0191, 0x00d0, 0x006f, 0x006f, 0x008e, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x008f, 0x006f, 0x008f, 0x008f, 0x006f, 0x006f, 0x008f, 0x006f, 0x006f, 0x006f, 0x008f, 0x006f, 0x006f, 0x00ef, 0x01d1, 0x01f1, 0x0130, 0x008f, 0x006f, 0x006f, 0x006f, 0x006f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x0070, 0x008f, 0x006f, 0x008f, 0x0110, 0x0232, 0x01b1, 0x00af, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x006f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x006f, 0x008f, 0x006f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x006f, 0x0110, 0x0252, 0x0130, 0x008f, 0x006f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x006f, 0x0170, 0x01f2, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x006f, 0x008f, 0x008f, 0x01d2, 0x0130, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x006f, 0x008f, 0x008f, 0x0252, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x00cf, 0x0232, 0x00af, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x006f, 0x008f, 0x008f, 0x006f, 0x006f, 0x006f, 0x008f, 0x0191, 0x0212, 0x006f, 0x008f, 0x008f, 0x006f, 0x006f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x008f, 0x18af, 0x9911, 0x9912, 0x9911, 0x9931, 0x9931, 0x9931, 0x9911, 0x9931, 0x9931, 0xa111, 0x9931, 0xa111, 0x29d2, 0x01b1, 0x008f, 0x006f, 0x008f, 0x006f, 0x008f, 0x008f, 0x006f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x006f, 0x006f, 0x0150, 0x0232, 0x0150, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x008f, 0x006f, 0x006f, 0x006f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x008f, 0x006f, 0x006f, 0x008f, 0x008f, 0x006f, 0x006f, 0x008f, 0x00f0, 0x01d1, 0x01f1, 0x0130, 0x008f, 0x006f, 0x008f, 0x006f, 0x006f, 0x008f, 0x006f, 0x006f, 0x006f, 0x006f, 0x008f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x008f, 0x006f, 0x006e, 0x008f, + 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006f, 0x006e, 0x0130, 0x01d1, 0x0212, 0x0150, 0x00af, 0x006e, 0x006e, 0x008e, 0x006e, 0x006f, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006e, 0x006f, 0x006f, 0x00cf, 0x01b1, 0x0212, 0x0130, 0x006e, 0x006e, 0x006f, 0x006f, 0x006f, 0x008f, 0x006f, 0x008f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x008f, 0x008f, 0x006f, 0x006f, 0x006f, 0x008f, 0x006f, 0x006f, 0x006f, 0x006f, 0x008f, 0x01b1, 0x0232, 0x010f, 0x008f, 0x006f, 0x006f, 0x006f, 0x006f, 0x008f, 0x008f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x008f, 0x008f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x0150, 0x0232, 0x00cf, 0x006f, 0x006f, 0x008e, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x008f, 0x006f, 0x010f, 0x0212, 0x00af, 0x006f, 0x008f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x008f, 0x008f, 0x006f, 0x006f, 0x008f, 0x00af, 0x0212, 0x00af, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x008f, 0x008f, 0x006f, 0x006f, 0x0252, 0x006f, 0x008f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x008f, 0x006f, 0x006f, 0x01d1, 0x0130, 0x008f, 0x008f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x008f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x01f1, 0x01b1, 0x008f, 0x006f, 0x006f, 0x008f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x008f, 0x006f, 0x0090, 0x8111, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9912, 0x9932, 0x9931, 0x9931, 0x28d0, 0x01f2, 0x01d1, 0x008f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006e, 0x008f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x008f, 0x006f, 0x00cf, 0x01f1, 0x01f1, 0x00cf, 0x006f, 0x006f, 0x006f, 0x006e, 0x006e, 0x008f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006e, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006e, 0x006f, 0x00f0, 0x01d1, 0x01f1, 0x0110, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006f, 0x006e, 0x006e, 0x006e, + 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x008e, 0x0150, 0x0212, 0x01d1, 0x0110, 0x008e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x00af, 0x01d1, 0x0212, 0x0150, 0x008f, 0x006e, 0x006f, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x008e, 0x0110, 0x0212, 0x01b1, 0x008f, 0x006f, 0x006e, 0x006f, 0x006f, 0x006e, 0x008f, 0x006e, 0x006e, 0x006e, 0x006f, 0x006f, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006f, 0x008f, 0x006e, 0x006e, 0x006f, 0x006f, 0x008e, 0x006e, 0x0191, 0x01f1, 0x00cf, 0x006f, 0x006f, 0x006e, 0x008f, 0x006e, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x008f, 0x008f, 0x006e, 0x006e, 0x006f, 0x00cf, 0x0212, 0x0110, 0x008f, 0x006f, 0x006e, 0x008f, 0x006f, 0x006e, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x0150, 0x0191, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x0232, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x0110, 0x01f1, 0x008f, 0x006e, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x00af, 0x0212, 0x0110, 0x006f, 0x006f, 0x008f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x008f, 0x008f, 0x008f, 0x008f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x48d0, 0x9931, 0x9931, 0x9911, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x008e, 0x008f, 0x01b1, 0x01f2, 0x00af, 0x006f, 0x006e, 0x008f, 0x006e, 0x008f, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x0150, 0x0232, 0x0150, 0x008e, 0x006e, 0x006e, 0x006e, 0x006e, 0x008e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006f, 0x006e, 0x006e, 0x006e, 0x0110, 0x01f1, 0x01f1, 0x0110, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, + 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x00ae, 0x0190, 0x0212, 0x0190, 0x00cf, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x00af, 0x0170, 0x0212, 0x0150, 0x008e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x008e, 0x01b1, 0x0212, 0x00ef, 0x006e, 0x006e, 0x006e, 0x006f, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006f, 0x006e, 0x006e, 0x008e, 0x01d1, 0x01f1, 0x008f, 0x006f, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x00ae, 0x01f1, 0x0170, 0x006f, 0x006e, 0x006e, 0x006e, 0x006f, 0x006e, 0x006e, 0x006f, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x0211, 0x00cf, 0x008f, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x0232, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x008f, 0x0212, 0x00cf, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x00ef, 0x0212, 0x00cf, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x006e, 0x108f, 0x9911, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x006e, 0x006f, 0x006e, 0x0190, 0x0212, 0x00cf, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x00af, 0x01b1, 0x01f2, 0x00ef, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x010f, 0x01f1, 0x01b1, 0x00ef, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, + 0x006e, 0x006e, 0x006e, 0x004d, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x004e, 0x006e, 0x004e, 0x006e, 0x006e, 0x004e, 0x006e, 0x00ef, 0x01b1, 0x01f1, 0x0150, 0x008f, 0x006e, 0x006e, 0x004e, 0x004e, 0x004e, 0x004e, 0x006e, 0x006e, 0x004e, 0x004e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x008e, 0x0170, 0x0212, 0x0171, 0x008e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x0130, 0x0212, 0x0170, 0x008e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x004e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x00af, 0x01d1, 0x0190, 0x008e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x0190, 0x01f1, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x00ef, 0x0211, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x0232, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x0170, 0x0190, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x0150, 0x01f1, 0x008e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x68f0, 0x9931, 0x9931, 0x9911, 0x9931, 0x9931, 0x9931, 0x9911, 0x9931, 0x9931, 0x9931, 0x006e, 0x006e, 0x006e, 0x006e, 0x010f, 0x0212, 0x00ef, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x004e, 0x006e, 0x0130, 0x01f2, 0x0170, 0x008e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x004e, 0x004e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x010f, 0x01d1, 0x01b1, 0x00cf, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x004e, 0x006e, + 0x006e, 0x006d, 0x004d, 0x006d, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x004d, 0x006e, 0x0130, 0x01d1, 0x01d1, 0x010f, 0x006e, 0x006d, 0x006d, 0x006e, 0x004e, 0x006e, 0x006e, 0x006e, 0x004d, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x004d, 0x004d, 0x004d, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x004e, 0x006e, 0x006d, 0x006e, 0x006e, 0x0170, 0x0212, 0x0170, 0x008e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x008e, 0x01b1, 0x01f2, 0x00cf, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x00af, 0x0212, 0x0191, 0x006e, 0x006e, 0x004e, 0x006e, 0x006e, 0x006e, 0x004e, 0x008e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x010f, 0x0212, 0x008e, 0x006e, 0x006e, 0x004e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x0190, 0x0150, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x0232, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x008e, 0x0211, 0x008e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x0190, 0x01b1, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x38b0, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9911, 0x9931, 0x9912, 0x004e, 0x006e, 0x006e, 0x004e, 0x006e, 0x010f, 0x0212, 0x010f, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x004e, 0x004e, 0x006e, 0x006e, 0x006e, 0x006e, 0x008e, 0x01b1, 0x01d1, 0x00cf, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x004e, 0x004e, 0x006e, 0x006e, 0x006d, 0x004d, 0x008e, 0x0150, 0x01f1, 0x01b1, 0x00cf, 0x004d, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x004d, 0x006e, 0x006e, 0x006d, + 0x004d, 0x006d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x006d, 0x004d, 0x008e, 0x0170, 0x01f1, 0x01b1, 0x00ef, 0x004d, 0x004d, 0x006d, 0x004d, 0x006d, 0x006d, 0x004d, 0x006d, 0x006d, 0x004d, 0x006d, 0x006d, 0x006d, 0x004d, 0x006d, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x008e, 0x012f, 0x01f1, 0x0170, 0x008e, 0x006d, 0x006d, 0x006e, 0x004d, 0x006e, 0x006e, 0x006e, 0x004d, 0x004d, 0x006d, 0x006e, 0x006e, 0x004e, 0x004d, 0x006e, 0x006e, 0x006d, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x004e, 0x004e, 0x004d, 0x0130, 0x01f2, 0x0150, 0x006d, 0x006d, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x004e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x004e, 0x00ef, 0x0212, 0x010f, 0x004e, 0x006e, 0x004e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x004e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x004e, 0x004e, 0x00af, 0x0212, 0x00cf, 0x004e, 0x006e, 0x004e, 0x004e, 0x006e, 0x006e, 0x006e, 0x004e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x004e, 0x006e, 0x008e, 0x0232, 0x008e, 0x004e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x0232, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x004e, 0x006e, 0x004e, 0x006e, 0x006e, 0x01d1, 0x010f, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x004e, 0x006e, 0x006e, 0x004e, 0x006e, 0x004e, 0x006e, 0x008e, 0x01f1, 0x012f, 0x004e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x004e, 0x004e, 0x006e, 0x086e, 0x9911, 0x9931, 0x9931, 0x9931, 0x9931, 0x9912, 0x9931, 0x9931, 0x9911, 0x9931, 0x004e, 0x006d, 0x006e, 0x006e, 0x006e, 0x006e, 0x00ae, 0x0211, 0x0190, 0x004e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x004e, 0x006e, 0x004e, 0x006e, 0x006e, 0x004d, 0x00ef, 0x01f2, 0x0190, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006d, 0x006d, 0x004e, 0x006e, 0x006e, 0x006e, 0x006e, 0x004d, 0x006e, 0x006e, 0x006e, 0x006d, 0x006d, 0x006d, 0x004d, 0x006e, 0x006e, 0x006d, 0x004e, 0x006e, 0x012f, 0x01f1, 0x0190, 0x008e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006e, 0x004d, 0x006d, 0x006d, + 0x006d, 0x004d, 0x004d, 0x006d, 0x004d, 0x004d, 0x004d, 0x006d, 0x006d, 0x004d, 0x006d, 0x004d, 0x00ce, 0x0190, 0x0211, 0x0170, 0x008e, 0x004d, 0x006d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004e, 0x004d, 0x004d, 0x006d, 0x004d, 0x006d, 0x0150, 0x01f1, 0x01b1, 0x00ce, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x006e, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x006e, 0x006d, 0x004d, 0x004d, 0x004e, 0x004d, 0x004d, 0x006d, 0x006d, 0x008e, 0x01b1, 0x01d1, 0x00ce, 0x006d, 0x004d, 0x004d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x004d, 0x006e, 0x004d, 0x006e, 0x006e, 0x004e, 0x006d, 0x010f, 0x0212, 0x00ef, 0x006d, 0x006e, 0x006e, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x004d, 0x006d, 0x006e, 0x006e, 0x006e, 0x004d, 0x006e, 0x004d, 0x006e, 0x01d1, 0x0150, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x004e, 0x0130, 0x0191, 0x006e, 0x006e, 0x004e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x004e, 0x0232, 0x004e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x004e, 0x006e, 0x004d, 0x004d, 0x004e, 0x010f, 0x01d1, 0x006e, 0x006e, 0x006e, 0x006e, 0x006d, 0x004e, 0x004e, 0x004d, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006d, 0x006d, 0x00ce, 0x0212, 0x00ce, 0x006e, 0x006e, 0x006e, 0x006e, 0x006d, 0x004d, 0x004d, 0x006d, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x004e, 0x70f0, 0x9932, 0x9931, 0x9931, 0x9911, 0x9931, 0x9911, 0x9931, 0x9931, 0x8110, 0x006e, 0x006e, 0x004d, 0x006d, 0x006d, 0x006d, 0x006d, 0x008e, 0x01d1, 0x0190, 0x006d, 0x006d, 0x004e, 0x006e, 0x006e, 0x004d, 0x006d, 0x006e, 0x004d, 0x004d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x006e, 0x0171, 0x01f2, 0x00ef, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x006d, 0x004d, 0x004d, 0x004d, 0x004d, 0x006d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x008e, 0x012f, 0x01f1, 0x0170, 0x008e, 0x004d, 0x006d, 0x004d, 0x004d, 0x004d, 0x004d, 0x006d, 0x004d, 0x004d, 0x006d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, + 0x004d, 0x004d, 0x004d, 0x006d, 0x004d, 0x004d, 0x006d, 0x004d, 0x004d, 0x006d, 0x00ef, 0x01d1, 0x01d1, 0x012f, 0x008d, 0x004d, 0x006d, 0x006d, 0x004d, 0x004d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x006d, 0x004d, 0x004d, 0x004d, 0x006d, 0x00ef, 0x01f1, 0x01b0, 0x00ce, 0x004d, 0x004d, 0x006d, 0x004d, 0x004d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x006d, 0x004d, 0x004d, 0x004d, 0x0150, 0x01f1, 0x0150, 0x006d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x006d, 0x004d, 0x004e, 0x004d, 0x004d, 0x004d, 0x0150, 0x01f1, 0x00ae, 0x006d, 0x004d, 0x004d, 0x004d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x004d, 0x006d, 0x006d, 0x004d, 0x006d, 0x004d, 0x006d, 0x006d, 0x006d, 0x0170, 0x01b1, 0x006d, 0x006d, 0x004d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006d, 0x004e, 0x006e, 0x01d1, 0x010f, 0x006d, 0x006d, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x004d, 0x006d, 0x006e, 0x004e, 0x0212, 0x004d, 0x004d, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x004d, 0x006d, 0x006d, 0x006d, 0x006e, 0x01f1, 0x008e, 0x006d, 0x006e, 0x004d, 0x004d, 0x006d, 0x006d, 0x004e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006e, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x004d, 0x006d, 0x004d, 0x010f, 0x01f1, 0x006d, 0x006d, 0x004d, 0x006e, 0x006d, 0x006d, 0x006d, 0x004d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x004e, 0x006d, 0x006d, 0x004d, 0x40cf, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x70f0, 0x004d, 0x006d, 0x004d, 0x004d, 0x006d, 0x006d, 0x004d, 0x004d, 0x006d, 0x0191, 0x01b1, 0x006d, 0x004d, 0x006d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x006d, 0x004d, 0x006d, 0x004d, 0x006d, 0x004d, 0x006d, 0x00ee, 0x01f1, 0x0190, 0x008e, 0x004d, 0x006d, 0x006d, 0x004d, 0x006d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x006d, 0x004d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x006d, 0x004d, 0x004d, 0x006d, 0x006d, 0x004d, 0x004d, 0x006d, 0x0150, 0x0212, 0x0170, 0x008e, 0x006d, 0x006d, 0x004d, 0x004d, 0x004d, 0x006d, 0x004d, 0x006d, 0x004d, 0x004d, 0x006d, 0x004d, 0x006d, 0x006d, 0x006d, 0x006d, + 0x0211, 0x0211, 0x0212, 0x01f2, 0x0212, 0x01f2, 0x01f1, 0x0211, 0x0211, 0x01f1, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x01f1, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x01f1, 0x0211, 0x0211, 0x0211, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0211, 0x0212, 0x01f1, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0211, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0232, 0x0212, 0x0211, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0232, 0x0232, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0211, 0x0232, 0x0212, 0x0232, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0232, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0232, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x11f1, 0x9931, 0x9911, 0x9931, 0x9931, 0x9931, 0x9932, 0x9931, 0x9931, 0x5991, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, 0x01f1, 0x0212, 0x0211, 0x0212, 0x0212, 0x01f2, 0x0212, 0x0211, 0x01f1, 0x0211, 0x0211, 0x01f1, 0x0212, 0x0212, 0x0212, 0x0212, 0x0212, + 0x004d, 0x004d, 0x004c, 0x004c, 0x004d, 0x00ae, 0x0170, 0x01f1, 0x0170, 0x00ce, 0x004d, 0x004c, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004d, 0x004d, 0x004c, 0x004c, 0x004d, 0x004d, 0x004d, 0x004c, 0x004d, 0x004d, 0x004d, 0x00ef, 0x01d1, 0x01d1, 0x00ee, 0x004c, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004c, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x012f, 0x0212, 0x012f, 0x004d, 0x004d, 0x006d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x006d, 0x01b1, 0x01d1, 0x006d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x00ae, 0x0212, 0x00ae, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x004d, 0x004d, 0x0150, 0x014f, 0x004d, 0x006d, 0x004d, 0x004d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x004d, 0x006d, 0x004d, 0x004d, 0x0212, 0x004d, 0x004d, 0x004d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x00ae, 0x01f1, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x01b1, 0x0150, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x006d, 0x004d, 0x006d, 0x004d, 0x88f0, 0x9931, 0x9931, 0x9931, 0x9931, 0x9912, 0x9911, 0x9931, 0x40af, 0x004d, 0x006d, 0x004d, 0x004d, 0x006d, 0x004d, 0x006d, 0x004d, 0x004d, 0x004d, 0x004d, 0x010f, 0x0212, 0x00ae, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x006d, 0x004d, 0x004c, 0x006d, 0x00ce, 0x01d1, 0x0190, 0x008e, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x008d, 0x0170, 0x01f1, 0x012f, 0x006d, 0x004c, 0x004c, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, + 0x004c, 0x004c, 0x004c, 0x00ee, 0x0190, 0x01d1, 0x012f, 0x008d, 0x004c, 0x004c, 0x004c, 0x004d, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004d, 0x004d, 0x004d, 0x004c, 0x004c, 0x004c, 0x00ae, 0x0190, 0x01d1, 0x00ee, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004c, 0x004d, 0x004d, 0x00ae, 0x01b1, 0x01b1, 0x008d, 0x004c, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x006d, 0x008d, 0x01b1, 0x0170, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x006d, 0x01d1, 0x010f, 0x004d, 0x004d, 0x004d, 0x004d, 0x006d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x01f1, 0x008e, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x0212, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x01d1, 0x00ee, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x006d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x008d, 0x01f1, 0x00ef, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004c, 0x004d, 0x004d, 0x004d, 0x004d, 0x50cf, 0x9911, 0x9931, 0x9911, 0x9931, 0x9931, 0x9931, 0xa111, 0x186e, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004c, 0x004d, 0x00ef, 0x01f1, 0x00ef, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004c, 0x004c, 0x004d, 0x006d, 0x0150, 0x01f1, 0x010f, 0x004d, 0x004c, 0x004c, 0x006c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004d, 0x004d, 0x008e, 0x0190, 0x01d1, 0x012f, 0x006d, 0x004c, 0x006c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, + 0x006d, 0x010f, 0x01b1, 0x01d1, 0x00ee, 0x006d, 0x002c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x002c, 0x004c, 0x004c, 0x004c, 0x00ae, 0x0190, 0x01d1, 0x00ee, 0x004d, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004d, 0x004d, 0x004d, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x012f, 0x01f1, 0x012f, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004d, 0x004c, 0x004c, 0x004c, 0x008e, 0x01f1, 0x014f, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004d, 0x006d, 0x0170, 0x0190, 0x004d, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x010f, 0x01d1, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004c, 0x004d, 0x004d, 0x0212, 0x004d, 0x004c, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x010e, 0x01b0, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x00ae, 0x01f1, 0x00ad, 0x004d, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x308e, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x9111, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x008d, 0x01f1, 0x012f, 0x006d, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x008d, 0x01b0, 0x01b1, 0x008d, 0x004d, 0x004c, 0x004c, 0x002c, 0x004c, 0x004c, 0x002c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x00cd, 0x0191, 0x01d1, 0x012f, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, + 0x01d1, 0x0170, 0x00ae, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x008d, 0x0190, 0x01d1, 0x010f, 0x006d, 0x002c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x00ae, 0x01d1, 0x0190, 0x008d, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x00ee, 0x01f1, 0x00ee, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x012f, 0x01b0, 0x006d, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x0170, 0x010f, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004d, 0x004c, 0x004c, 0x004c, 0x0212, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x006d, 0x01f1, 0x008d, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x006c, 0x004c, 0x012f, 0x01b0, 0x006d, 0x004c, 0x006c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x084d, 0x9931, 0x9931, 0x9931, 0x9931, 0x9911, 0x9931, 0x68f0, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x008d, 0x01b0, 0x016f, 0x004d, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x012f, 0x0211, 0x010f, 0x004d, 0x002c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x002c, 0x004c, 0x004c, 0x004c, 0x00ad, 0x0190, 0x01d1, 0x00ee, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, + 0x006c, 0x004c, 0x004c, 0x004c, 0x002c, 0x004c, 0x002c, 0x002c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x008d, 0x0150, 0x01f1, 0x012f, 0x006c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x002c, 0x006d, 0x014f, 0x01d1, 0x010f, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x002c, 0x00ee, 0x01d1, 0x00ce, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x00ae, 0x01f1, 0x008e, 0x004c, 0x004c, 0x002c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x008d, 0x0211, 0x004d, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x0212, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x0150, 0x012f, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x0170, 0x0170, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x80f0, 0x9931, 0x9931, 0x9931, 0x9931, 0x9931, 0x388e, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x006d, 0x01b0, 0x01b1, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x008e, 0x01b0, 0x01b0, 0x00ad, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x00ad, 0x01b0, 0x01b1, 0x00ee, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, + 0x004c, 0x004c, 0x002c, 0x002b, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x002b, 0x002b, 0x002b, 0x002b, 0x002c, 0x002c, 0x002c, 0x002c, 0x002b, 0x004c, 0x004c, 0x004c, 0x004b, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x002c, 0x004c, 0x004c, 0x002c, 0x004c, 0x008d, 0x0150, 0x01d1, 0x012f, 0x006c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x00ad, 0x01b0, 0x0190, 0x006c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x0150, 0x01f1, 0x008d, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x002c, 0x004c, 0x004c, 0x01d1, 0x00ee, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x010f, 0x016f, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x01f1, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x00ad, 0x01f1, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x006c, 0x01d1, 0x010e, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x50cf, 0xa111, 0x9931, 0x9931, 0x9931, 0x9931, 0x084c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x002c, 0x004c, 0x014f, 0x01b1, 0x008d, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x010e, 0x01d1, 0x014f, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x002c, 0x00ce, 0x01b1, 0x01b1, 0x00ee, 0x004c, 0x002c, 0x004c, + 0x004b, 0x002b, 0x004c, 0x004b, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x004b, 0x004c, 0x004b, 0x004c, 0x004c, 0x004c, 0x002b, 0x004c, 0x004b, 0x004b, 0x002b, 0x002b, 0x004c, 0x002c, 0x004c, 0x004c, 0x012f, 0x01f1, 0x014f, 0x006c, 0x004b, 0x004c, 0x002c, 0x004b, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x002c, 0x002c, 0x002c, 0x002c, 0x002c, 0x002c, 0x002c, 0x002c, 0x004c, 0x004c, 0x004c, 0x004c, 0x002b, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004b, 0x004c, 0x014f, 0x01d1, 0x00ee, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x0150, 0x01b0, 0x006d, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x0190, 0x014f, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x01b1, 0x00ce, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x01f1, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x01b1, 0x00ee, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x008d, 0x01f1, 0x00ae, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x388e, 0x9931, 0x9931, 0x9931, 0x9931, 0x68d0, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x002c, 0x004c, 0x012e, 0x01d1, 0x008d, 0x004c, 0x004c, 0x004b, 0x004c, 0x004b, 0x004c, 0x004c, 0x004c, 0x004c, 0x002c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x002c, 0x004c, 0x002c, 0x004c, 0x008c, 0x0170, 0x01b1, 0x00ad, 0x004c, 0x004c, 0x002b, 0x002b, 0x004c, 0x004c, 0x002b, 0x004b, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004b, 0x004b, 0x002b, 0x002b, 0x004b, 0x002b, 0x002c, 0x00ee, 0x01b1, 0x0190, 0x00ad, 0x002b, + 0x004b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x004b, 0x004b, 0x004b, 0x004b, 0x002b, 0x002b, 0x002b, 0x002b, 0x004b, 0x002b, 0x004b, 0x004b, 0x004b, 0x004c, 0x004c, 0x004b, 0x002b, 0x004c, 0x004b, 0x004b, 0x004b, 0x006c, 0x010e, 0x01d1, 0x014f, 0x006c, 0x004b, 0x004b, 0x002b, 0x004b, 0x004b, 0x004c, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x002b, 0x004b, 0x004c, 0x004c, 0x002c, 0x004b, 0x004b, 0x002b, 0x002b, 0x004b, 0x00cd, 0x01b1, 0x0170, 0x008c, 0x004b, 0x002c, 0x004b, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x002c, 0x004c, 0x002c, 0x004b, 0x004b, 0x004c, 0x0190, 0x0190, 0x004c, 0x004b, 0x004c, 0x004c, 0x002c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x002c, 0x004c, 0x004c, 0x004c, 0x002c, 0x004c, 0x004c, 0x012f, 0x0190, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x002c, 0x004c, 0x004c, 0x004c, 0x004c, 0x00ad, 0x01d1, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x01f2, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x010e, 0x0170, 0x002b, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x00ce, 0x01d1, 0x004c, 0x004c, 0x004c, 0x002b, 0x004c, 0x004c, 0x004c, 0x002c, 0x002c, 0x004c, 0x002c, 0x004c, 0x004c, 0x004c, 0x004c, 0x104c, 0xa111, 0x9931, 0x9931, 0x9931, 0x288d, 0x004b, 0x004c, 0x002b, 0x002b, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004b, 0x004c, 0x002b, 0x004b, 0x004c, 0x002b, 0x004b, 0x00ee, 0x01f2, 0x00cd, 0x004b, 0x004c, 0x002b, 0x004c, 0x004c, 0x002b, 0x004b, 0x002b, 0x002b, 0x002c, 0x004b, 0x004c, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x004c, 0x004c, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x004b, 0x002b, 0x004c, 0x002b, 0x00ee, 0x01d1, 0x012f, 0x004c, 0x002b, 0x004c, 0x002b, 0x002b, 0x004b, 0x002b, 0x004b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004c, 0x002b, 0x004c, 0x00ee, 0x01b1, 0x0170, + 0x004b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x004b, 0x002b, 0x002b, 0x004b, 0x004b, 0x002b, 0x004c, 0x010e, 0x01b1, 0x0170, 0x008c, 0x002b, 0x004b, 0x002b, 0x004b, 0x002c, 0x002c, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x002b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x006c, 0x0170, 0x01d1, 0x00cd, 0x004b, 0x004b, 0x004c, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x004b, 0x004b, 0x004c, 0x004b, 0x004b, 0x008d, 0x0190, 0x014f, 0x004c, 0x002b, 0x004b, 0x004c, 0x004c, 0x004b, 0x002b, 0x004c, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x002b, 0x002b, 0x002b, 0x004c, 0x004c, 0x004c, 0x004b, 0x004c, 0x002b, 0x00cd, 0x01d1, 0x008c, 0x004c, 0x004c, 0x002b, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004b, 0x004c, 0x002b, 0x004b, 0x004b, 0x004b, 0x002b, 0x014f, 0x012e, 0x002c, 0x004b, 0x004c, 0x004b, 0x004c, 0x002b, 0x002b, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x01f1, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x002b, 0x004c, 0x01f1, 0x006c, 0x002b, 0x004b, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004b, 0x002c, 0x004c, 0x004c, 0x002b, 0x004c, 0x014f, 0x01b0, 0x004c, 0x004c, 0x004c, 0x004c, 0x004b, 0x004b, 0x004c, 0x004b, 0x004b, 0x002b, 0x004c, 0x002b, 0x004b, 0x004c, 0x004c, 0x9931, 0x9931, 0x9931, 0x8910, 0x002c, 0x004b, 0x004c, 0x002b, 0x004b, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x002c, 0x002b, 0x004c, 0x002b, 0x004c, 0x002b, 0x002b, 0x004c, 0x004c, 0x004b, 0x00ac, 0x01d1, 0x010f, 0x004b, 0x002c, 0x004c, 0x002c, 0x004c, 0x004b, 0x004b, 0x004b, 0x002b, 0x002b, 0x004c, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004c, 0x004b, 0x002b, 0x004c, 0x002b, 0x006c, 0x014f, 0x01d1, 0x00cd, 0x002b, 0x004b, 0x004b, 0x004b, 0x004b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x002b, 0x002b, 0x002b, 0x004b, 0x002b, 0x004b, 0x004b, 0x002b, 0x004b, 0x002b, 0x004c, 0x010e, + 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x00ed, 0x01b1, 0x0170, 0x008d, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x004b, 0x002b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x004b, 0x002b, 0x004b, 0x002b, 0x002b, 0x002b, 0x00ad, 0x01d1, 0x016f, 0x004c, 0x004b, 0x002b, 0x002b, 0x002b, 0x004b, 0x002b, 0x002b, 0x002b, 0x004b, 0x004b, 0x002b, 0x002b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x002b, 0x004b, 0x002b, 0x008d, 0x01d1, 0x012f, 0x002b, 0x004b, 0x002b, 0x002b, 0x002b, 0x004c, 0x002b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x002b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x002b, 0x006c, 0x01d1, 0x00cd, 0x004b, 0x002b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004c, 0x002b, 0x004c, 0x004b, 0x004c, 0x004b, 0x004c, 0x01d1, 0x006c, 0x004c, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x002b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x01f1, 0x002b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x002b, 0x002b, 0x014f, 0x010e, 0x004b, 0x004b, 0x002c, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x002b, 0x004b, 0x004c, 0x004b, 0x004b, 0x0190, 0x012f, 0x004b, 0x004c, 0x002b, 0x004b, 0x002b, 0x004b, 0x004b, 0x004b, 0x004b, 0x002b, 0x004c, 0x004b, 0x004b, 0x002b, 0x70f0, 0x9931, 0x9931, 0x48ae, 0x004b, 0x004b, 0x004c, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x002b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x008c, 0x01b1, 0x014f, 0x002b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x002b, 0x004b, 0x002b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x004b, 0x004b, 0x004b, 0x004b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x004b, 0x002b, 0x002b, 0x002b, 0x002b, 0x00cd, 0x01d1, 0x0150, 0x004b, 0x002b, 0x002b, 0x002b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x004b, 0x002b, 0x002b, 0x002b, 0x002b, 0x004b, 0x002b, 0x002b, 0x002b, 0x004b, 0x004b, 0x002b, + 0x002a, 0x002a, 0x004a, 0x004a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002a, 0x004a, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x00cd, 0x01b0, 0x0170, 0x00ac, 0x002a, 0x004b, 0x002b, 0x004b, 0x002b, 0x004b, 0x002b, 0x002b, 0x002b, 0x004a, 0x002a, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x004b, 0x002b, 0x002b, 0x004b, 0x004b, 0x016f, 0x01d1, 0x00ad, 0x002b, 0x002a, 0x002b, 0x002b, 0x004b, 0x002b, 0x004b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x004b, 0x004b, 0x002b, 0x00ce, 0x01d1, 0x00cd, 0x002b, 0x004b, 0x002b, 0x004b, 0x002b, 0x004b, 0x002b, 0x002b, 0x002b, 0x004b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x004b, 0x002b, 0x002b, 0x002b, 0x002b, 0x004b, 0x0190, 0x012f, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x002b, 0x002b, 0x004b, 0x002b, 0x002b, 0x002b, 0x00ee, 0x0190, 0x002b, 0x004b, 0x002b, 0x004b, 0x002b, 0x002b, 0x002b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x01f2, 0x002b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x002b, 0x002b, 0x00ad, 0x01b1, 0x002b, 0x002c, 0x002b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x004b, 0x004b, 0x002b, 0x002b, 0x006c, 0x01d1, 0x00ce, 0x002b, 0x002b, 0x002b, 0x004b, 0x002b, 0x002b, 0x002b, 0x004b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x60cf, 0x9931, 0x9931, 0x104c, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x004b, 0x002b, 0x004b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x004b, 0x0190, 0x0190, 0x004c, 0x002b, 0x002b, 0x004b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x004b, 0x002b, 0x002b, 0x002b, 0x004b, 0x002b, 0x002b, 0x002b, 0x004b, 0x014f, 0x01b1, 0x00ad, 0x002b, 0x002b, 0x002a, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002a, 0x002b, 0x002b, 0x002b, 0x002b, 0x002a, 0x004b, 0x004b, 0x002b, 0x002b, 0x004a, 0x002a, + 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x00cd, 0x0190, 0x01b0, 0x00cd, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x004a, 0x002a, 0x004a, 0x002a, 0x002a, 0x004a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x004a, 0x002b, 0x002a, 0x004b, 0x00cd, 0x01d1, 0x012f, 0x004b, 0x004b, 0x002a, 0x004b, 0x002b, 0x002b, 0x004a, 0x002b, 0x002b, 0x004b, 0x004b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x002b, 0x004b, 0x00ce, 0x01d1, 0x00ad, 0x004b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x004b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x004b, 0x002b, 0x002b, 0x004b, 0x002b, 0x002b, 0x002b, 0x004b, 0x014f, 0x0190, 0x002b, 0x002b, 0x002b, 0x004b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x004b, 0x002b, 0x002b, 0x004b, 0x004b, 0x004b, 0x0190, 0x00cd, 0x004b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x004b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x004b, 0x002b, 0x004b, 0x01d1, 0x002b, 0x004b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x004b, 0x002b, 0x002b, 0x01b0, 0x00ad, 0x002b, 0x004b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x004b, 0x004b, 0x004b, 0x002b, 0x002b, 0x004b, 0x002b, 0x004b, 0x00ad, 0x01d1, 0x008c, 0x002b, 0x002b, 0x002b, 0x002b, 0x004b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x48ae, 0x9931, 0x68f0, 0x004b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x004b, 0x004b, 0x004b, 0x002b, 0x002b, 0x002b, 0x002b, 0x004b, 0x014f, 0x0190, 0x006c, 0x002b, 0x002b, 0x002b, 0x002b, 0x004b, 0x004b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x004a, 0x004b, 0x004b, 0x002a, 0x002b, 0x004b, 0x002b, 0x002b, 0x002a, 0x002b, 0x004a, 0x00ac, 0x0190, 0x0170, 0x006c, 0x004a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, + 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x0029, 0x008c, 0x0170, 0x0190, 0x00cd, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x006b, 0x016f, 0x0190, 0x008c, 0x002a, 0x004a, 0x002a, 0x004a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x012f, 0x01b1, 0x006c, 0x004b, 0x002b, 0x002b, 0x002b, 0x004a, 0x002b, 0x002b, 0x002b, 0x002a, 0x002a, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x004b, 0x004b, 0x002b, 0x004b, 0x002b, 0x004b, 0x00cd, 0x01b1, 0x004b, 0x002b, 0x002b, 0x004a, 0x002b, 0x002b, 0x004b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x006c, 0x01d1, 0x004b, 0x002b, 0x004b, 0x002b, 0x004b, 0x002b, 0x002b, 0x004b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x01d1, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x004b, 0x002b, 0x010e, 0x014f, 0x004b, 0x004b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x004a, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x010e, 0x0190, 0x004b, 0x002a, 0x002b, 0x002a, 0x002b, 0x002b, 0x002a, 0x002b, 0x004b, 0x002b, 0x002b, 0x004b, 0x308d, 0x9911, 0x206c, 0x004b, 0x002b, 0x002b, 0x002a, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x004b, 0x004b, 0x002a, 0x004b, 0x004a, 0x004b, 0x004a, 0x002a, 0x002b, 0x002b, 0x004b, 0x002a, 0x002a, 0x002a, 0x002b, 0x010e, 0x01b1, 0x008c, 0x002a, 0x004a, 0x002b, 0x002a, 0x004a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x004b, 0x010e, 0x01b0, 0x00ed, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, + 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x002a, 0x0029, 0x0029, 0x0029, 0x002a, 0x002a, 0x002a, 0x0029, 0x008b, 0x016f, 0x01b0, 0x00cd, 0x002a, 0x0029, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x00ed, 0x01b1, 0x010e, 0x004a, 0x002a, 0x002a, 0x0029, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x004b, 0x014f, 0x016f, 0x004b, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002b, 0x002a, 0x002a, 0x008b, 0x01b1, 0x008c, 0x002b, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002b, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002b, 0x002a, 0x002b, 0x002a, 0x002a, 0x012e, 0x012f, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x01d2, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002b, 0x002a, 0x004b, 0x01d1, 0x006b, 0x002a, 0x002b, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002b, 0x002a, 0x014f, 0x014f, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x186b, 0x88f1, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x00cd, 0x01b1, 0x00cd, 0x002a, 0x004a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x0029, 0x00ac, 0x0190, 0x016f, 0x006b, 0x002a, 0x002a, 0x002a, 0x0029, 0x002a, 0x002a, 0x0029, 0x0029, 0x0029, 0x0029, 0x002a, 0x0029, 0x0029, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x0029, 0x0029, 0x0029, 0x0029, + 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x008b, 0x014f, 0x0190, 0x00ed, 0x004a, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x002a, 0x0029, 0x0029, 0x002a, 0x002a, 0x002a, 0x006a, 0x014f, 0x0190, 0x00ab, 0x0029, 0x002a, 0x0029, 0x0029, 0x0029, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x0029, 0x004a, 0x0170, 0x016f, 0x004a, 0x002a, 0x002a, 0x002a, 0x0029, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x004a, 0x0170, 0x00ed, 0x004a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x0190, 0x008c, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x01d1, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x012f, 0x010e, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x0029, 0x002a, 0x004b, 0x0190, 0x00ed, 0x002a, 0x002a, 0x002a, 0x002a, 0x004a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x286b, 0x0029, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x00ac, 0x01b1, 0x00ed, 0x0029, 0x002a, 0x0029, 0x0029, 0x002a, 0x002a, 0x0029, 0x002a, 0x0029, 0x002a, 0x002a, 0x0029, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x0029, 0x0029, 0x002a, 0x0029, 0x0029, 0x0029, 0x0029, 0x002a, 0x00ee, 0x01b1, 0x010d, 0x0029, 0x0029, 0x0029, 0x002a, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, + 0x0028, 0x0028, 0x0028, 0x0028, 0x0029, 0x0029, 0x0028, 0x0028, 0x0028, 0x0029, 0x0029, 0x0028, 0x0028, 0x0029, 0x0029, 0x0029, 0x0009, 0x0029, 0x0049, 0x012e, 0x0190, 0x00ed, 0x004a, 0x0028, 0x0029, 0x0029, 0x0029, 0x0009, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x00cc, 0x01b0, 0x010e, 0x0049, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x006b, 0x0190, 0x012e, 0x0049, 0x002a, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x0029, 0x0029, 0x0029, 0x012e, 0x016f, 0x002a, 0x0029, 0x002a, 0x002a, 0x0029, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x00ac, 0x0190, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x01d1, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x0029, 0x002a, 0x0029, 0x00ac, 0x0190, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x0029, 0x002a, 0x008b, 0x01b1, 0x008b, 0x0029, 0x002a, 0x0029, 0x0029, 0x0029, 0x002a, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x002a, 0x002a, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x006b, 0x01b0, 0x012e, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x008b, 0x0170, 0x014f, 0x006a, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0009, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, + 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0029, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0069, 0x010d, 0x01b1, 0x00ed, 0x0049, 0x0028, 0x0028, 0x0028, 0x0028, 0x0029, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0029, 0x0029, 0x0029, 0x0029, 0x0028, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0028, 0x006a, 0x014f, 0x016f, 0x008b, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0028, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x006a, 0x01b0, 0x00ed, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0049, 0x00cd, 0x01b0, 0x004a, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x014f, 0x00cd, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x01d1, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x002a, 0x0029, 0x0029, 0x0029, 0x002a, 0x0190, 0x00ab, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x004a, 0x0029, 0x0029, 0x00cc, 0x01b1, 0x0049, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0049, 0x016f, 0x012e, 0x004a, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0028, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0028, 0x0028, 0x0009, 0x00ed, 0x01b1, 0x00ed, 0x0008, 0x0028, 0x0029, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0029, 0x0029, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, + 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0049, 0x010e, 0x0191, 0x010e, 0x0069, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x00ed, 0x01b1, 0x00ec, 0x0008, 0x0028, 0x0028, 0x0029, 0x0008, 0x0029, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0028, 0x0029, 0x00ab, 0x01b1, 0x00ac, 0x0029, 0x0029, 0x0029, 0x0028, 0x0029, 0x0029, 0x0029, 0x0028, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0028, 0x0029, 0x0029, 0x006a, 0x01b1, 0x006a, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x004a, 0x01b1, 0x006a, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x01b1, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x00ed, 0x012e, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0028, 0x0029, 0x0029, 0x0029, 0x0029, 0x012e, 0x016f, 0x0029, 0x0029, 0x0029, 0x0029, 0x0028, 0x0029, 0x0029, 0x0029, 0x0028, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0029, 0x0029, 0x0028, 0x0029, 0x0049, 0x012e, 0x016f, 0x0029, 0x0028, 0x0028, 0x0029, 0x0029, 0x0029, 0x0009, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0008, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0029, 0x0028, 0x0028, 0x006a, 0x014f, 0x0170, 0x008a, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, + 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0029, 0x00ed, 0x0190, 0x010e, 0x004a, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0008, 0x0028, 0x0028, 0x0028, 0x0029, 0x006a, 0x016f, 0x014f, 0x006a, 0x0028, 0x0029, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0029, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x00cc, 0x0190, 0x008a, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0049, 0x0190, 0x00cc, 0x0028, 0x0028, 0x0028, 0x0029, 0x0029, 0x0029, 0x0028, 0x0028, 0x0028, 0x0029, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0029, 0x0028, 0x00cc, 0x012e, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x01b1, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0029, 0x0028, 0x0028, 0x004a, 0x01b1, 0x0049, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0029, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0029, 0x0028, 0x0029, 0x0029, 0x0028, 0x016f, 0x00ed, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0008, 0x0029, 0x0028, 0x0029, 0x0028, 0x0008, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0008, 0x0028, 0x0028, 0x0028, 0x010d, 0x0190, 0x006a, 0x0028, 0x0029, 0x0028, 0x0028, 0x0029, 0x0028, 0x0029, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x00cc, 0x0190, 0x00ed, 0x0049, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, + 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0029, 0x0028, 0x0028, 0x0029, 0x0028, 0x0049, 0x00ed, 0x0190, 0x012f, 0x0069, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0029, 0x0028, 0x0028, 0x0029, 0x0028, 0x0028, 0x0028, 0x0029, 0x00ec, 0x01b0, 0x00ed, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0029, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0029, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x010e, 0x0190, 0x006a, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0029, 0x0028, 0x012e, 0x012e, 0x0028, 0x0029, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0029, 0x016f, 0x00ab, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x01b1, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x012e, 0x00ec, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0029, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0049, 0x0190, 0x00ab, 0x0029, 0x0028, 0x0029, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0029, 0x0028, 0x0028, 0x0029, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0029, 0x0028, 0x0028, 0x00cc, 0x0190, 0x00ab, 0x0028, 0x0028, 0x0028, 0x0028, 0x0008, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0008, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0029, 0x0049, 0x014e, 0x0170, 0x008b, 0x0028, 0x0029, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, + 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0029, 0x0028, 0x0028, 0x00cc, 0x0190, 0x014f, 0x008a, 0x0028, 0x0028, 0x0028, 0x0028, 0x0029, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x008a, 0x014f, 0x012f, 0x006a, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0029, 0x012e, 0x014f, 0x0049, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0029, 0x0028, 0x0028, 0x0028, 0x0008, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x00cc, 0x016f, 0x0049, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x006a, 0x0190, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x01b1, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0029, 0x008b, 0x018f, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0029, 0x0028, 0x0028, 0x00ab, 0x0190, 0x006a, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0008, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0029, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0029, 0x00ac, 0x0190, 0x00ac, 0x0028, 0x0029, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x00ac, 0x0190, 0x012e, 0x0049, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, + 0x0028, 0x0028, 0x0028, 0x0029, 0x0028, 0x0028, 0x0028, 0x00cb, 0x0170, 0x014f, 0x008a, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0029, 0x0009, 0x0028, 0x0049, 0x00ed, 0x0190, 0x00cc, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0029, 0x0028, 0x0028, 0x014f, 0x014f, 0x0049, 0x0028, 0x0028, 0x0028, 0x0028, 0x0008, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x006a, 0x0190, 0x006a, 0x0028, 0x0028, 0x0028, 0x0028, 0x0008, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x010e, 0x00ed, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x01b1, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0029, 0x0028, 0x0028, 0x0029, 0x0028, 0x0028, 0x0028, 0x0170, 0x008a, 0x0029, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x00ed, 0x014f, 0x0048, 0x0029, 0x0028, 0x0028, 0x0028, 0x0029, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x006a, 0x0190, 0x010d, 0x0028, 0x0028, 0x0028, 0x0028, 0x0029, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0049, 0x012e, 0x0190, 0x00ab, 0x0028, 0x0028, 0x0029, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0029, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, + 0x0028, 0x0028, 0x0028, 0x0008, 0x0028, 0x00ac, 0x0170, 0x0170, 0x008b, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0029, 0x0028, 0x0028, 0x008a, 0x016f, 0x014e, 0x0069, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0008, 0x0029, 0x0028, 0x006a, 0x0170, 0x010e, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0048, 0x0190, 0x00ab, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0008, 0x0028, 0x0190, 0x006a, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x01b1, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0029, 0x00cd, 0x010d, 0x0008, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x012f, 0x012e, 0x0008, 0x0028, 0x0028, 0x0028, 0x0008, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0049, 0x014f, 0x010e, 0x0049, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x00ab, 0x0190, 0x010e, 0x0029, 0x0028, 0x0028, 0x0028, 0x0028, 0x0029, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, + 0x0028, 0x0028, 0x0028, 0x008a, 0x016f, 0x016f, 0x00ac, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0029, 0x0008, 0x0028, 0x0028, 0x0028, 0x0028, 0x0048, 0x010d, 0x0190, 0x00cc, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x006a, 0x0190, 0x00ed, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0008, 0x0008, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x014f, 0x010d, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0029, 0x00cb, 0x016f, 0x0028, 0x0029, 0x0028, 0x0028, 0x0029, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x01b1, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0008, 0x0028, 0x0028, 0x0028, 0x0028, 0x0069, 0x01b1, 0x0049, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0049, 0x0170, 0x00cc, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0029, 0x0028, 0x0028, 0x0029, 0x014f, 0x014f, 0x0049, 0x0029, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0029, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0008, 0x0028, 0x0028, 0x0028, 0x0028, 0x0029, 0x010d, 0x01b0, 0x00cc, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, + 0x0028, 0x008b, 0x014f, 0x0170, 0x00ab, 0x0028, 0x0028, 0x0029, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0029, 0x0028, 0x008b, 0x0170, 0x014e, 0x0049, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x00ab, 0x0191, 0x00ab, 0x0028, 0x0028, 0x0028, 0x0029, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0029, 0x00ec, 0x016f, 0x0049, 0x0008, 0x0028, 0x0029, 0x0028, 0x0028, 0x0028, 0x0029, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0029, 0x012e, 0x00cc, 0x0028, 0x0028, 0x0029, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x01b1, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0029, 0x0028, 0x0028, 0x0028, 0x012e, 0x00cc, 0x0028, 0x0028, 0x0028, 0x0028, 0x0029, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x006a, 0x0191, 0x008a, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0008, 0x0028, 0x0028, 0x010e, 0x0170, 0x006a, 0x0008, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0029, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x008a, 0x0170, 0x014f, 0x004a, 0x0028, 0x0028, 0x0028, 0x0029, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, + 0x012f, 0x0190, 0x00ec, 0x0029, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0049, 0x012e, 0x0190, 0x00ab, 0x0028, 0x0029, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x00ed, 0x0190, 0x006a, 0x0028, 0x0028, 0x0029, 0x0028, 0x0029, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0029, 0x0028, 0x0028, 0x0028, 0x00aa, 0x0190, 0x008a, 0x0028, 0x0029, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0049, 0x01b1, 0x0049, 0x0008, 0x0028, 0x0028, 0x0029, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x01b1, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0029, 0x0028, 0x0028, 0x0028, 0x0028, 0x0029, 0x00ab, 0x0170, 0x0028, 0x0028, 0x0029, 0x0028, 0x0028, 0x0008, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x00ac, 0x0190, 0x0048, 0x0029, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0029, 0x0028, 0x0028, 0x0028, 0x00ec, 0x0190, 0x008b, 0x0028, 0x0028, 0x0029, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0029, 0x0029, 0x0028, 0x0028, 0x0048, 0x00ed, 0x0190, 0x00cc, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, + 0x00ec, 0x0049, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0029, 0x0028, 0x0029, 0x0008, 0x00ab, 0x0190, 0x012e, 0x0049, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x010e, 0x0170, 0x006a, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0029, 0x0028, 0x0028, 0x0069, 0x0190, 0x008b, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0029, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x00ed, 0x010e, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x01b1, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0029, 0x0190, 0x006a, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x010d, 0x014f, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0029, 0x0029, 0x0008, 0x00cb, 0x0191, 0x00cc, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0029, 0x0028, 0x0028, 0x0028, 0x006b, 0x014f, 0x014e, 0x006a, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, + 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0029, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0049, 0x012e, 0x0190, 0x00ab, 0x0028, 0x0028, 0x0028, 0x0029, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x012f, 0x014f, 0x0029, 0x0028, 0x0029, 0x0029, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x014f, 0x00ed, 0x0029, 0x0028, 0x0008, 0x0029, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0029, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0170, 0x008a, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x01b1, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0029, 0x0028, 0x0029, 0x0028, 0x0029, 0x0028, 0x00ed, 0x010e, 0x0028, 0x0028, 0x0028, 0x0029, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0049, 0x014f, 0x00ed, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x006a, 0x0190, 0x00ed, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0008, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x00ed, 0x0191, 0x00ed, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 +}; + +#endif // HAS_GRAPHICAL_TFT diff --git a/Marlin/src/lcd/tft/images/cancel_64x64x4.cpp b/Marlin/src/lcd/tft/images/cancel_64x64x4.cpp new file mode 100644 index 000000000..502b592d8 --- /dev/null +++ b/Marlin/src/lcd/tft/images/cancel_64x64x4.cpp @@ -0,0 +1,94 @@ +/** + * Marlin 3D Printer Firmware + * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin] + * + * Based on Sprinter and grbl. + * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + */ + +#include "../../../inc/MarlinConfigPre.h" + +#if HAS_GRAPHICAL_TFT + +extern const uint8_t cancel_64x64x4[2048] = { + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x77, 0x78, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x77, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x88, 0x77, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x78, 0x77, 0x78, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x78, 0xdd, 0xb7, 0x78, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x8d, 0xba, 0x77, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x8d, 0xff, 0xfa, 0x77, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x78, 0xdf, 0xff, 0xa7, 0x78, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x78, 0xdf, 0xff, 0xff, 0xa7, 0x78, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x8d, 0xff, 0xff, 0xfa, 0x77, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x8d, 0xff, 0xff, 0xff, 0xfa, 0x77, 0x88, 0x88, 0x88, 0x88, 0x88, 0x78, 0xdf, 0xff, 0xff, 0xff, 0xa7, 0x78, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x78, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xa7, 0x78, 0x88, 0x88, 0x88, 0x87, 0x8d, 0xff, 0xff, 0xff, 0xff, 0xfa, 0x77, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x8d, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfa, 0x77, 0x88, 0x88, 0x88, 0x78, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xa7, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x8d, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xa7, 0x78, 0x88, 0x87, 0x8d, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x97, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x7a, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfa, 0x77, 0x88, 0x78, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfd, 0x76, 0x78, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x77, 0x9f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xa7, 0x77, 0x8d, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc7, 0x66, 0x78, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x69, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfa, 0x78, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x76, 0x66, 0x78, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x76, 0x9f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xad, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc7, 0x66, 0x67, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x69, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfd, 0x76, 0x66, 0x78, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x76, 0x9f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc7, 0x66, 0x67, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x69, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x76, 0x66, 0x78, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x76, 0x9f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc7, 0x66, 0x67, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x69, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x76, 0x66, 0x78, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x76, 0x9f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc7, 0x66, 0x67, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x6a, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfd, 0x66, 0x66, 0x78, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x8c, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x96, 0x67, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x78, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf9, 0x67, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x8d, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xa7, 0x78, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x78, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfa, 0x77, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x8d, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xa7, 0x78, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x78, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfa, 0x77, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x8d, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xa7, 0x78, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x78, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x79, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfa, 0x77, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x8d, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc7, 0x66, 0x9f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xa7, 0x78, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x78, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x76, 0x66, 0x69, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfa, 0x78, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x8d, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc7, 0x66, 0x67, 0x76, 0x9f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x97, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x7b, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x76, 0x66, 0x78, 0x87, 0x69, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xd7, 0x68, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x7a, 0xff, 0xff, 0xff, 0xff, 0xff, 0xd7, 0x66, 0x67, 0x88, 0x88, 0x76, 0x9f, 0xff, 0xff, 0xff, 0xff, 0xfd, 0x76, 0x67, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x76, 0x9f, 0xff, 0xff, 0xff, 0xfc, 0x76, 0x66, 0x78, 0x88, 0x88, 0x87, 0x69, 0xff, 0xff, 0xff, 0xff, 0xd7, 0x66, 0x67, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x69, 0xff, 0xff, 0xff, 0xc7, 0x66, 0x67, 0x88, 0x88, 0x88, 0x88, 0x76, 0x9f, 0xff, 0xff, 0xfd, 0x76, 0x66, 0x78, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x76, 0x9f, 0xff, 0xfc, 0x76, 0x66, 0x78, 0x88, 0x88, 0x88, 0x88, 0x87, 0x69, 0xff, 0xff, 0xd7, 0x66, 0x67, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x69, 0xff, 0xd7, 0x66, 0x67, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x76, 0x9f, 0xdd, 0x76, 0x66, 0x78, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x76, 0xa9, 0x76, 0x66, 0x78, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x68, 0x77, 0x66, 0x67, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x66, 0x66, 0x67, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x76, 0x66, 0x66, 0x78, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x77, 0x66, 0x78, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x66, 0x67, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x86, 0x78, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x77, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x77, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88 +}; + +#endif // HAS_GRAPHICAL_TFT diff --git a/Marlin/src/lcd/tft/images/chamber_64x64x4.cpp b/Marlin/src/lcd/tft/images/chamber_64x64x4.cpp new file mode 100644 index 000000000..8ec4350fe --- /dev/null +++ b/Marlin/src/lcd/tft/images/chamber_64x64x4.cpp @@ -0,0 +1,161 @@ +/** + * Marlin 3D Printer Firmware + * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin] + * + * Based on Sprinter and grbl. + * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + */ + +#include "../../../inc/MarlinConfigPre.h" + +#if HAS_GRAPHICAL_TFT + +extern const uint8_t chamber_64x64x4[2048] = { + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x87, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x87, 0xae, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xea, 0x78, 0x88, 0x88, + 0x88, 0x88, 0x87, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfa, 0x67, 0x88, 0x88, + 0x88, 0x88, 0x87, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf9, 0x46, 0x88, 0x88, + 0x88, 0x88, 0x87, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf9, 0x46, 0x88, 0x88, + 0x88, 0x88, 0x87, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf9, 0x46, 0x88, 0x88, + 0x88, 0x88, 0x87, 0xbf, 0xff, 0xf8, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x8f, 0xff, 0xf9, 0x46, 0x88, 0x88, + 0x88, 0x88, 0x87, 0xbf, 0xff, 0xf9, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0xbf, 0xff, 0xf9, 0x46, 0x88, 0x88, + 0x88, 0x88, 0x87, 0xbf, 0xff, 0xf9, 0x45, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0xbf, 0xff, 0xf9, 0x46, 0x88, 0x88, + 0x88, 0x88, 0x87, 0xbf, 0xff, 0xf9, 0x46, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0xbf, 0xff, 0xf9, 0x46, 0x88, 0x88, + 0x88, 0x88, 0x87, 0xbf, 0xff, 0xf9, 0x46, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0xbf, 0xff, 0xf9, 0x46, 0x88, 0x88, + 0x88, 0x88, 0x87, 0xbf, 0xff, 0xf9, 0x56, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0xbf, 0xff, 0xf9, 0x46, 0x88, 0x88, + 0x88, 0x88, 0x87, 0xbf, 0xff, 0xf9, 0x46, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0xbf, 0xff, 0xf9, 0x46, 0x88, 0x88, + 0x88, 0x88, 0x87, 0xbf, 0xff, 0xf9, 0x56, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0xbf, 0xff, 0xf9, 0x46, 0x88, 0x88, + 0x88, 0x88, 0x87, 0xbf, 0xff, 0xf9, 0x46, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0xbf, 0xff, 0xf9, 0x46, 0x88, 0x88, + 0x88, 0x88, 0x87, 0xbf, 0xff, 0xf9, 0x46, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0xbf, 0xff, 0xf9, 0x46, 0x88, 0x88, + 0x88, 0x88, 0x87, 0xbf, 0xff, 0xf9, 0x56, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0xbf, 0xff, 0xf9, 0x46, 0x88, 0x88, + 0x88, 0x88, 0x87, 0xbf, 0xff, 0xf9, 0x46, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0xbf, 0xff, 0xf9, 0x46, 0x88, 0x88, + 0x88, 0x88, 0x87, 0xbf, 0xff, 0xf9, 0x46, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0xbf, 0xff, 0xf9, 0x46, 0x88, 0x88, + 0x88, 0x88, 0x87, 0xbf, 0xff, 0xf9, 0x56, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0xbf, 0xff, 0xf9, 0x46, 0x88, 0x88, + 0x88, 0x88, 0x87, 0xbf, 0xff, 0xf9, 0x46, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0xbf, 0xff, 0xf9, 0x46, 0x88, 0x88, + 0x88, 0x88, 0x87, 0xbf, 0xff, 0xf9, 0x46, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0xbf, 0xff, 0xf9, 0x46, 0x88, 0x88, + 0x88, 0x88, 0x87, 0xbf, 0xff, 0xf9, 0x56, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0xbf, 0xff, 0xf9, 0x46, 0x88, 0x88, + 0x88, 0x88, 0x87, 0xbf, 0xff, 0xf9, 0x46, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0xbf, 0xff, 0xf9, 0x46, 0x88, 0x88, + 0x88, 0x88, 0x87, 0xbf, 0xff, 0xf9, 0x46, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0xbf, 0xff, 0xf9, 0x46, 0x88, 0x88, + 0x88, 0x88, 0x87, 0xbf, 0xff, 0xf9, 0x56, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0xbf, 0xff, 0xf9, 0x46, 0x88, 0x88, + 0x88, 0x88, 0x87, 0xbf, 0xff, 0xf9, 0x46, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0xbf, 0xff, 0xf9, 0x46, 0x88, 0x88, + 0x88, 0x88, 0x87, 0xbf, 0xff, 0xf9, 0x46, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0xbf, 0xff, 0xf9, 0x46, 0x88, 0x88, + 0x88, 0x88, 0x87, 0xbf, 0xff, 0xf9, 0x56, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0xbf, 0xff, 0xf9, 0x46, 0x88, 0x88, + 0x88, 0x88, 0x87, 0xbf, 0xff, 0xf9, 0x46, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0xbf, 0xff, 0xf9, 0x46, 0x88, 0x88, + 0x88, 0x88, 0x87, 0xbf, 0xff, 0xf9, 0x46, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0xbf, 0xff, 0xf9, 0x46, 0x88, 0x88, + 0x88, 0x88, 0x87, 0xbf, 0xff, 0xf9, 0x56, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0xbf, 0xff, 0xf9, 0x46, 0x88, 0x88, + 0x88, 0x88, 0x87, 0xbf, 0xff, 0xf9, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0xbf, 0xff, 0xf9, 0x46, 0x88, 0x88, + 0x88, 0x88, 0x87, 0xbf, 0xff, 0xf9, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0xbf, 0xff, 0xf9, 0x46, 0x88, 0x88, + 0x88, 0x88, 0x87, 0xbf, 0xff, 0xfe, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xef, 0xff, 0xf9, 0x46, 0x88, 0x88, + 0x88, 0x88, 0x87, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf9, 0x46, 0x88, 0x88, + 0x88, 0x88, 0x87, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf9, 0x46, 0x88, 0x88, + 0x88, 0x88, 0x87, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf9, 0x46, 0x88, 0x88, + 0x88, 0x88, 0x87, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf9, 0x56, 0x88, 0x88, + 0x88, 0x88, 0x87, 0x89, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x86, 0x56, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x75, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x56, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x87, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x57, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x87, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88 +}; + +extern const uint8_t chamber_heated_64x64x4[2048] = { + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x87, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x87, 0xae, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xea, 0x78, 0x88, 0x88, + 0x88, 0x88, 0x87, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfa, 0x67, 0x88, 0x88, + 0x88, 0x88, 0x87, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf9, 0x46, 0x88, 0x88, + 0x88, 0x88, 0x87, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf9, 0x46, 0x88, 0x88, + 0x88, 0x88, 0x87, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf9, 0x46, 0x88, 0x88, + 0x88, 0x88, 0x87, 0xbf, 0xff, 0xf8, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x8f, 0xff, 0xf9, 0x46, 0x88, 0x88, + 0x88, 0x88, 0x87, 0xbf, 0xff, 0xf9, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0xbf, 0xff, 0xf9, 0x46, 0x88, 0x88, + 0x88, 0x88, 0x87, 0xbf, 0xff, 0xf9, 0x45, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0xbf, 0xff, 0xf9, 0x46, 0x88, 0x88, + 0x88, 0x88, 0x87, 0xbf, 0xff, 0xf9, 0x46, 0x88, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0xbf, 0xff, 0xf9, 0x46, 0x88, 0x88, + 0x88, 0x88, 0x87, 0xbf, 0xff, 0xf9, 0x46, 0x88, 0x88, 0x77, 0x9b, 0x97, 0x88, 0x88, 0x87, 0x8b, 0xa8, 0x78, 0x88, 0x87, 0x8b, 0xb8, 0x78, 0x88, 0x88, 0x87, 0xbf, 0xff, 0xf9, 0x46, 0x88, 0x88, + 0x88, 0x88, 0x87, 0xbf, 0xff, 0xf9, 0x56, 0x88, 0x88, 0x79, 0xff, 0xf9, 0x78, 0x88, 0x78, 0xdf, 0xfb, 0x78, 0x88, 0x77, 0xcf, 0xfc, 0x87, 0x88, 0x88, 0x87, 0xbf, 0xff, 0xf9, 0x46, 0x88, 0x88, + 0x88, 0x88, 0x87, 0xbf, 0xff, 0xf9, 0x46, 0x88, 0x88, 0x7a, 0xff, 0xfd, 0x77, 0x88, 0x79, 0xff, 0xff, 0x87, 0x88, 0x78, 0xdf, 0xff, 0x97, 0x88, 0x88, 0x87, 0xbf, 0xff, 0xf9, 0x46, 0x88, 0x88, + 0x88, 0x88, 0x87, 0xbf, 0xff, 0xf9, 0x56, 0x88, 0x88, 0x79, 0xff, 0xff, 0x86, 0x88, 0x78, 0xdf, 0xff, 0xb6, 0x88, 0x77, 0xcf, 0xff, 0xc6, 0x78, 0x88, 0x87, 0xbf, 0xff, 0xf9, 0x46, 0x88, 0x88, + 0x88, 0x88, 0x87, 0xbf, 0xff, 0xf9, 0x46, 0x88, 0x88, 0x87, 0xbf, 0xff, 0xb6, 0x78, 0x87, 0x9f, 0xff, 0xd6, 0x78, 0x87, 0x8e, 0xff, 0xf7, 0x68, 0x88, 0x87, 0xbf, 0xff, 0xf9, 0x46, 0x88, 0x88, + 0x88, 0x88, 0x87, 0xbf, 0xff, 0xf9, 0x46, 0x88, 0x88, 0x88, 0x7d, 0xff, 0xe5, 0x67, 0x87, 0x7b, 0xff, 0xf7, 0x57, 0x88, 0x79, 0xff, 0xfa, 0x57, 0x88, 0x87, 0xbf, 0xff, 0xf9, 0x46, 0x88, 0x88, + 0x88, 0x88, 0x87, 0xbf, 0xff, 0xf9, 0x56, 0x88, 0x88, 0x87, 0x8d, 0xff, 0xe6, 0x57, 0x87, 0x8c, 0xff, 0xf7, 0x57, 0x88, 0x7a, 0xff, 0xfa, 0x56, 0x88, 0x87, 0xbf, 0xff, 0xf9, 0x46, 0x88, 0x88, + 0x88, 0x88, 0x87, 0xbf, 0xff, 0xf9, 0x46, 0x88, 0x88, 0x87, 0x9f, 0xff, 0xd5, 0x57, 0x87, 0x8e, 0xff, 0xe6, 0x57, 0x88, 0x7c, 0xff, 0xf8, 0x56, 0x88, 0x87, 0xbf, 0xff, 0xf9, 0x46, 0x88, 0x88, + 0x88, 0x88, 0x87, 0xbf, 0xff, 0xf9, 0x46, 0x88, 0x88, 0x77, 0xcf, 0xff, 0xa5, 0x57, 0x87, 0xaf, 0xff, 0xd5, 0x57, 0x87, 0x9f, 0xff, 0xe6, 0x56, 0x88, 0x87, 0xbf, 0xff, 0xf9, 0x46, 0x88, 0x88, + 0x88, 0x88, 0x87, 0xbf, 0xff, 0xf9, 0x56, 0x88, 0x88, 0x79, 0xff, 0xff, 0x75, 0x57, 0x78, 0xef, 0xff, 0xa5, 0x57, 0x87, 0xcf, 0xff, 0xb5, 0x56, 0x88, 0x87, 0xbf, 0xff, 0xf9, 0x46, 0x88, 0x88, + 0x88, 0x88, 0x87, 0xbf, 0xff, 0xf9, 0x46, 0x88, 0x87, 0x7c, 0xff, 0xfb, 0x55, 0x67, 0x7b, 0xff, 0xfe, 0x65, 0x57, 0x79, 0xff, 0xff, 0x85, 0x57, 0x88, 0x87, 0xbf, 0xff, 0xf9, 0x46, 0x88, 0x88, + 0x88, 0x88, 0x87, 0xbf, 0xff, 0xf9, 0x46, 0x88, 0x87, 0x9f, 0xff, 0xf7, 0x55, 0x67, 0x8e, 0xff, 0xf8, 0x55, 0x67, 0x7d, 0xff, 0xfb, 0x55, 0x67, 0x88, 0x87, 0xbf, 0xff, 0xf9, 0x46, 0x88, 0x88, + 0x88, 0x88, 0x87, 0xbf, 0xff, 0xf9, 0x56, 0x88, 0x87, 0xcf, 0xff, 0xb5, 0x55, 0x77, 0x9f, 0xff, 0xd6, 0x55, 0x77, 0x8f, 0xff, 0xe7, 0x55, 0x68, 0x88, 0x87, 0xbf, 0xff, 0xf9, 0x46, 0x88, 0x88, + 0x88, 0x88, 0x87, 0xbf, 0xff, 0xf9, 0x46, 0x88, 0x77, 0xdf, 0xff, 0x75, 0x56, 0x87, 0xbf, 0xff, 0xa5, 0x56, 0x77, 0xaf, 0xff, 0xb5, 0x55, 0x78, 0x88, 0x87, 0xbf, 0xff, 0xf9, 0x46, 0x88, 0x88, + 0x88, 0x88, 0x87, 0xbf, 0xff, 0xf9, 0x46, 0x88, 0x78, 0xef, 0xfd, 0x65, 0x67, 0x77, 0xcf, 0xff, 0x85, 0x57, 0x87, 0xbf, 0xff, 0x95, 0x56, 0x88, 0x88, 0x87, 0xbf, 0xff, 0xf9, 0x46, 0x88, 0x88, + 0x88, 0x88, 0x87, 0xbf, 0xff, 0xf9, 0x56, 0x88, 0x78, 0xef, 0xfd, 0x55, 0x68, 0x77, 0xcf, 0xff, 0x75, 0x68, 0x87, 0xbf, 0xff, 0x95, 0x67, 0x88, 0x88, 0x87, 0xbf, 0xff, 0xf9, 0x46, 0x88, 0x88, + 0x88, 0x88, 0x87, 0xbf, 0xff, 0xf9, 0x46, 0x88, 0x78, 0xdf, 0xff, 0x65, 0x78, 0x77, 0xbf, 0xff, 0x95, 0x68, 0x87, 0xaf, 0xff, 0xb5, 0x68, 0x88, 0x88, 0x87, 0xbf, 0xff, 0xf9, 0x46, 0x88, 0x88, + 0x88, 0x88, 0x87, 0xbf, 0xff, 0xf9, 0x46, 0x88, 0x87, 0x9f, 0xff, 0xf8, 0x68, 0x87, 0x8e, 0xff, 0xf9, 0x68, 0x87, 0x7c, 0xff, 0xfc, 0x67, 0x88, 0x88, 0x87, 0xbf, 0xff, 0xf9, 0x46, 0x88, 0x88, + 0x88, 0x88, 0x87, 0xbf, 0xff, 0xf9, 0x56, 0x88, 0x88, 0x7b, 0xff, 0xfa, 0x58, 0x88, 0x7b, 0xff, 0xfc, 0x57, 0x88, 0x78, 0xff, 0xfe, 0x67, 0x88, 0x88, 0x87, 0xbf, 0xff, 0xf9, 0x46, 0x88, 0x88, + 0x88, 0x88, 0x87, 0xbf, 0xff, 0xf9, 0x46, 0x88, 0x88, 0x77, 0xdf, 0xd7, 0x57, 0x88, 0x87, 0xbf, 0xf8, 0x56, 0x88, 0x87, 0xaf, 0xfa, 0x56, 0x78, 0x88, 0x87, 0xbf, 0xff, 0xf9, 0x46, 0x88, 0x88, + 0x88, 0x88, 0x87, 0xbf, 0xff, 0xf9, 0x46, 0x88, 0x88, 0x87, 0x69, 0x75, 0x56, 0x88, 0x87, 0x68, 0x85, 0x56, 0x78, 0x87, 0x68, 0x85, 0x55, 0x78, 0x88, 0x87, 0xbf, 0xff, 0xf9, 0x46, 0x88, 0x88, + 0x88, 0x88, 0x87, 0xbf, 0xff, 0xf9, 0x56, 0x88, 0x88, 0x88, 0x65, 0x55, 0x57, 0x88, 0x88, 0x75, 0x55, 0x56, 0x88, 0x88, 0x75, 0x55, 0x56, 0x78, 0x88, 0x87, 0xbf, 0xff, 0xf9, 0x46, 0x88, 0x88, + 0x88, 0x88, 0x87, 0xbf, 0xff, 0xf9, 0x77, 0x77, 0x77, 0x77, 0x76, 0x55, 0x67, 0x77, 0x77, 0x76, 0x55, 0x67, 0x77, 0x77, 0x76, 0x55, 0x57, 0x77, 0x77, 0x77, 0xbf, 0xff, 0xf9, 0x46, 0x88, 0x88, + 0x88, 0x88, 0x87, 0xbf, 0xff, 0xf9, 0x88, 0x88, 0x88, 0x88, 0x88, 0x77, 0x88, 0x88, 0x88, 0x88, 0x87, 0x88, 0x88, 0x88, 0x88, 0x87, 0x88, 0x88, 0x88, 0x88, 0xbf, 0xff, 0xf9, 0x46, 0x88, 0x88, + 0x88, 0x88, 0x87, 0xbf, 0xff, 0xfe, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xef, 0xff, 0xf9, 0x46, 0x88, 0x88, + 0x88, 0x88, 0x87, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf9, 0x46, 0x88, 0x88, + 0x88, 0x88, 0x87, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf9, 0x46, 0x88, 0x88, + 0x88, 0x88, 0x87, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf9, 0x46, 0x88, 0x88, + 0x88, 0x88, 0x87, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf9, 0x56, 0x88, 0x88, + 0x88, 0x88, 0x87, 0x89, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x86, 0x56, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x75, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x56, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x87, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x57, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x87, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88 +}; + +#endif // HAS_GRAPHICAL_TFT diff --git a/Marlin/src/lcd/tft/images/confirm_64x64x4.cpp b/Marlin/src/lcd/tft/images/confirm_64x64x4.cpp new file mode 100644 index 000000000..1ecb09834 --- /dev/null +++ b/Marlin/src/lcd/tft/images/confirm_64x64x4.cpp @@ -0,0 +1,94 @@ +/** + * Marlin 3D Printer Firmware + * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin] + * + * Based on Sprinter and grbl. + * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + */ + +#include "../../../inc/MarlinConfigPre.h" + +#if HAS_GRAPHICAL_TFT + +extern const uint8_t confirm_64x64x4[2048] = { + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x77, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x78, 0xa8, 0x78, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x7c, 0xfc, 0x77, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x77, 0xcf, 0xff, 0xc7, 0x78, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x7c, 0xff, 0xff, 0xfb, 0x77, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x77, 0xcf, 0xff, 0xff, 0xff, 0xb7, 0x78, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x7c, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x77, 0xcf, 0xff, 0xff, 0xff, 0xff, 0xff, 0x87, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x77, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x7c, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfa, 0x55, 0x78, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x78, 0xa8, 0x78, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x78, 0xcf, 0xff, 0xff, 0xff, 0xff, 0xff, 0x94, 0x44, 0x68, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x8d, 0xfb, 0x77, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x7c, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfa, 0x44, 0x45, 0x78, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x78, 0xdf, 0xff, 0xb7, 0x78, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x77, 0xcf, 0xff, 0xff, 0xff, 0xff, 0xff, 0x94, 0x44, 0x57, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x87, 0x8d, 0xff, 0xff, 0xfb, 0x77, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x7c, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf9, 0x44, 0x45, 0x78, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x78, 0xdf, 0xff, 0xff, 0xff, 0xb7, 0x78, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x77, 0xcf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xa4, 0x44, 0x57, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x87, 0x8d, 0xff, 0xff, 0xff, 0xff, 0xfb, 0x77, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x7c, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf9, 0x44, 0x45, 0x78, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x87, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xb7, 0x78, 0x88, 0x88, 0x88, 0x88, 0x88, 0x77, 0xcf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xa4, 0x44, 0x57, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x87, 0x8c, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfb, 0x77, 0x88, 0x88, 0x88, 0x88, 0x87, 0x7c, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfa, 0x44, 0x45, 0x78, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x76, 0xaf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xa7, 0x78, 0x88, 0x88, 0x88, 0x77, 0xcf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xa4, 0x44, 0x57, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x86, 0x4b, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfb, 0x77, 0x88, 0x88, 0x87, 0x8c, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfa, 0x44, 0x45, 0x78, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x64, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xb7, 0x78, 0x88, 0x77, 0xcf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xa4, 0x44, 0x57, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x86, 0x4b, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfb, 0x77, 0x87, 0x7c, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf9, 0x44, 0x45, 0x78, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x64, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xb7, 0x78, 0xcf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xa4, 0x44, 0x57, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x86, 0x4b, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfb, 0x7c, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfa, 0x44, 0x45, 0x78, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x65, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xff, 0x94, 0x44, 0x57, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x86, 0x5b, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfa, 0x44, 0x45, 0x78, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x64, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x94, 0x44, 0x57, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x86, 0x5b, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfa, 0x44, 0x45, 0x78, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x64, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x94, 0x44, 0x57, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x86, 0x4b, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf9, 0x44, 0x45, 0x78, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x65, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xa4, 0x44, 0x57, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x86, 0x4b, 0xff, 0xff, 0xff, 0xff, 0xfa, 0x44, 0x45, 0x78, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x65, 0xbf, 0xff, 0xff, 0xff, 0x94, 0x44, 0x57, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x86, 0x4b, 0xff, 0xff, 0xfa, 0x44, 0x45, 0x78, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x64, 0xbf, 0xff, 0x94, 0x44, 0x57, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x86, 0x4b, 0xfa, 0x44, 0x45, 0x78, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x65, 0x75, 0x44, 0x57, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x86, 0x44, 0x45, 0x78, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x65, 0x57, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x78, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88 +}; + +#endif // HAS_GRAPHICAL_TFT diff --git a/Marlin/src/lcd/tft/images/decrease_64x64x4.cpp b/Marlin/src/lcd/tft/images/decrease_64x64x4.cpp new file mode 100644 index 000000000..3514433c8 --- /dev/null +++ b/Marlin/src/lcd/tft/images/decrease_64x64x4.cpp @@ -0,0 +1,94 @@ +/** + * Marlin 3D Printer Firmware + * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin] + * + * Based on Sprinter and grbl. + * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + */ + +#include "../../../inc/MarlinConfigPre.h" + +#if HAS_GRAPHICAL_TFT + +extern const uint8_t decrease_64x64x4[2048] = { + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x78, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0xaf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc7, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0xaf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xb5, 0x78, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0xaf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xb3, 0x58, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0xaf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xb3, 0x58, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0xaf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xb3, 0x58, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0xaf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xb3, 0x58, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0xaf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xb3, 0x58, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0xaf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xb3, 0x58, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0xad, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0x94, 0x58, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x85, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x58, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x86, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x58, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x68, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88 +}; + +#endif // HAS_GRAPHICAL_TFT diff --git a/Marlin/src/lcd/tft/images/directory_32x32x4.cpp b/Marlin/src/lcd/tft/images/directory_32x32x4.cpp new file mode 100644 index 000000000..0297f03fb --- /dev/null +++ b/Marlin/src/lcd/tft/images/directory_32x32x4.cpp @@ -0,0 +1,62 @@ +/** + * Marlin 3D Printer Firmware + * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin] + * + * Based on Sprinter and grbl. + * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + */ + +#include "../../../inc/MarlinConfigPre.h" + +#if HAS_GRAPHICAL_TFT + +extern const uint8_t directory_32x32x4[512] = { + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x87, 0x9f, 0xff, 0xff, 0xff, 0xff, 0xf7, 0x78, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x87, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfa, 0x78, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x87, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x68, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x87, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x87, 0x77, 0x77, 0x77, 0x77, 0x77, 0x88, 0x88, + 0x88, 0x87, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfa, 0x78, 0x88, + 0x88, 0x87, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x78, 0x88, + 0x88, 0x87, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x68, 0x88, + 0x88, 0x87, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x68, 0x88, + 0x88, 0x88, 0x76, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x68, 0x88, + 0x88, 0x87, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x68, 0x88, + 0x88, 0x87, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x68, 0x88, + 0x88, 0x87, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x68, 0x88, + 0x88, 0x87, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x68, 0x88, + 0x88, 0x87, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x68, 0x88, + 0x88, 0x87, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x68, 0x88, + 0x88, 0x87, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x68, 0x88, + 0x88, 0x87, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x68, 0x88, + 0x88, 0x87, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x68, 0x88, + 0x88, 0x87, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x68, 0x88, + 0x88, 0x87, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x68, 0x88, + 0x88, 0x87, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x68, 0x88, + 0x88, 0x87, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x68, 0x88, + 0x88, 0x88, 0x77, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x86, 0x68, 0x88, + 0x88, 0x88, 0x87, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x67, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88 +}; + +#endif // HAS_GRAPHICAL_TFT diff --git a/Marlin/src/lcd/tft/images/down_32x32x4.cpp b/Marlin/src/lcd/tft/images/down_32x32x4.cpp new file mode 100644 index 000000000..b71c0e5e7 --- /dev/null +++ b/Marlin/src/lcd/tft/images/down_32x32x4.cpp @@ -0,0 +1,62 @@ +/** + * Marlin 3D Printer Firmware + * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin] + * + * Based on Sprinter and grbl. + * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + */ + +#include "../../../inc/MarlinConfigPre.h" + +#if HAS_GRAPHICAL_TFT + +extern const uint8_t down_32x32x4[512] = { + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x77, 0x78, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x77, 0x88, 0x88, 0x88, + 0x88, 0x87, 0x78, 0x78, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x77, 0x98, 0x88, 0x88, 0x88, + 0x88, 0x87, 0x8f, 0xb4, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x78, 0xfa, 0x48, 0x88, 0x88, + 0x88, 0x78, 0xff, 0xfa, 0x38, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x8f, 0xff, 0x84, 0x88, 0x88, + 0x88, 0x7f, 0xff, 0xff, 0xa3, 0x88, 0x88, 0x88, 0x88, 0x87, 0x78, 0xff, 0xff, 0xfa, 0x47, 0x88, + 0x88, 0x7a, 0xff, 0xff, 0xfa, 0x38, 0x88, 0x88, 0x88, 0x77, 0x8f, 0xff, 0xff, 0xc5, 0x35, 0x88, + 0x88, 0x77, 0x9f, 0xff, 0xff, 0xa3, 0x88, 0x88, 0x87, 0x79, 0xff, 0xff, 0xfc, 0x43, 0x46, 0x88, + 0x88, 0x87, 0x79, 0xff, 0xff, 0xfa, 0x47, 0x88, 0x77, 0x9f, 0xff, 0xff, 0xc4, 0x34, 0x78, 0x88, + 0x88, 0x88, 0x77, 0x9f, 0xff, 0xff, 0xa4, 0x78, 0x79, 0xff, 0xff, 0xfc, 0x43, 0x47, 0x88, 0x88, + 0x88, 0x88, 0x87, 0x79, 0xff, 0xff, 0xf9, 0x47, 0x9f, 0xff, 0xff, 0xc3, 0x34, 0x78, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x77, 0x9f, 0xff, 0xff, 0x96, 0xff, 0xff, 0xfc, 0x33, 0x47, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x87, 0x79, 0xff, 0xff, 0xff, 0xff, 0xff, 0xd3, 0x44, 0x78, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x77, 0x9f, 0xff, 0xff, 0xff, 0xfd, 0x34, 0x47, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x87, 0x79, 0xff, 0xff, 0xff, 0xc3, 0x44, 0x78, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x77, 0x9f, 0xff, 0xfc, 0x33, 0x47, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x79, 0xff, 0xc3, 0x34, 0x78, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x77, 0xac, 0x43, 0x47, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x86, 0x34, 0x78, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x66, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88 +}; + +#endif // HAS_GRAPHICAL_TFT diff --git a/Marlin/src/lcd/tft/images/fan_64x64x4.cpp b/Marlin/src/lcd/tft/images/fan_64x64x4.cpp new file mode 100644 index 000000000..02801ddbc --- /dev/null +++ b/Marlin/src/lcd/tft/images/fan_64x64x4.cpp @@ -0,0 +1,161 @@ +/** + * Marlin 3D Printer Firmware + * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin] + * + * Based on Sprinter and grbl. + * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + */ + +#include "../../../inc/MarlinConfigPre.h" + +#if HAS_GRAPHICAL_TFT + +extern const uint8_t fan0_64x64x4[2048] = { + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x77, 0x78, 0x9a, 0xcc, 0xcb, 0xba, 0x98, 0x77, 0x78, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x77, 0x89, 0xbc, 0xef, 0xff, 0xff, 0xff, 0xed, 0xb9, 0x77, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x77, 0x9b, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc9, 0x77, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x8b, 0xef, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xb7, 0x78, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0xaf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfa, 0x78, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0xaf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x77, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x8d, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x96, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x78, 0xef, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xa4, 0x78, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x86, 0x8f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xa4, 0x58, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x59, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x84, 0x58, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x75, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x64, 0x58, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x86, 0x6d, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x44, 0x58, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x68, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x45, 0x68, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x76, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc5, 0x45, 0x78, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x8f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x74, 0x46, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x8d, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf9, 0x44, 0x57, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x7b, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc5, 0x44, 0x68, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x7a, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfd, 0x64, 0x45, 0x78, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x7a, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe7, 0x44, 0x57, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x7a, 0xff, 0xff, 0xef, 0xff, 0xff, 0x84, 0x44, 0x68, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x7b, 0xfe, 0xa7, 0x67, 0xbf, 0xf9, 0x44, 0x45, 0x78, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x7c, 0xc6, 0x44, 0x44, 0x48, 0x94, 0x44, 0x57, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x77, 0x77, 0x88, 0x88, 0x88, 0x87, 0x8a, 0x64, 0x44, 0x44, 0x44, 0x44, 0x45, 0x78, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x77, 0x77, 0x77, 0x77, 0x77, 0x78, 0x88, 0x87, 0x54, 0x6a, 0xcb, 0x86, 0x54, 0x57, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x87, 0x78, 0x9a, 0xbb, 0xbb, 0xba, 0x98, 0x87, 0x77, 0x87, 0x46, 0xef, 0xff, 0xfa, 0x76, 0x88, 0x78, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x78, 0xad, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xdb, 0xa9, 0x87, 0x7c, 0xff, 0xff, 0xfd, 0x77, 0xac, 0x87, 0x78, 0x88, 0x88, 0x88, 0x88, 0x88, 0x77, 0x78, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x87, 0x8c, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x87, 0x9f, 0xff, 0xff, 0xff, 0x75, 0x9f, 0xea, 0x87, 0x77, 0x77, 0x77, 0x77, 0x77, 0x78, 0x87, 0x78, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x77, 0xcf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x66, 0x8f, 0xff, 0xff, 0xff, 0x74, 0x8e, 0xff, 0xda, 0x98, 0x87, 0x78, 0x89, 0xab, 0xcd, 0xda, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x79, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x54, 0x7c, 0xff, 0xff, 0xfc, 0x54, 0x8f, 0xff, 0xff, 0xee, 0xdc, 0xdd, 0xee, 0xff, 0xff, 0xff, 0x97, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x7a, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x74, 0x78, 0xcf, 0xff, 0xd6, 0x44, 0x9f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x95, 0x78, 0x88, + 0x88, 0x88, 0x88, 0x7b, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc5, 0x77, 0x58, 0xa9, 0x54, 0x45, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x84, 0x68, 0x88, + 0x88, 0x88, 0x88, 0x7b, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfb, 0x77, 0x64, 0x44, 0x44, 0x5b, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x74, 0x68, 0x88, + 0x88, 0x88, 0x88, 0x7b, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xda, 0x86, 0x54, 0x59, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfd, 0x54, 0x68, 0x88, + 0x88, 0x88, 0x88, 0x7a, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xb8, 0x76, 0x7e, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfb, 0x44, 0x68, 0x88, + 0x88, 0x88, 0x88, 0x79, 0xef, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xb7, 0x66, 0x78, 0x8c, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x45, 0x78, 0x88, + 0x88, 0x88, 0x88, 0x78, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe8, 0x44, 0x44, 0x57, 0x7a, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe6, 0x45, 0x78, 0x88, + 0x88, 0x88, 0x88, 0x87, 0xaf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfd, 0x64, 0x44, 0x45, 0x68, 0x78, 0xef, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xb4, 0x46, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x87, 0x8e, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe6, 0x44, 0x45, 0x67, 0x88, 0x77, 0xcf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x84, 0x47, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x87, 0x7b, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x84, 0x45, 0x57, 0x88, 0x88, 0x87, 0x9f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x64, 0x57, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x78, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfb, 0x44, 0x46, 0x88, 0x88, 0x88, 0x87, 0x8d, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf9, 0x44, 0x68, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x77, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf7, 0x44, 0x57, 0x88, 0x88, 0x88, 0x88, 0x7a, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xd5, 0x44, 0x68, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x87, 0x8e, 0xff, 0xff, 0xff, 0xff, 0xff, 0xb5, 0x45, 0x78, 0x88, 0x88, 0x88, 0x88, 0x78, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x74, 0x45, 0x78, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x77, 0xef, 0xff, 0xff, 0xff, 0xff, 0x84, 0x46, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x9f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x44, 0x46, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x85, 0x8f, 0xff, 0xff, 0xff, 0xfd, 0x54, 0x57, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x7c, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xa4, 0x44, 0x68, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x59, 0xff, 0xff, 0xff, 0xfb, 0x44, 0x68, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x77, 0xef, 0xff, 0xff, 0xff, 0xff, 0xfb, 0x54, 0x45, 0x78, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x75, 0x9f, 0xff, 0xff, 0xf7, 0x45, 0x78, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x86, 0x7e, 0xff, 0xff, 0xff, 0xff, 0xa5, 0x44, 0x57, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x59, 0xff, 0xff, 0xd5, 0x45, 0x78, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x57, 0xdf, 0xff, 0xff, 0xd8, 0x44, 0x45, 0x78, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x75, 0x8d, 0xff, 0x84, 0x46, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x75, 0x59, 0xcc, 0xc9, 0x64, 0x44, 0x57, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x55, 0x76, 0x44, 0x57, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x54, 0x55, 0x54, 0x44, 0x45, 0x78, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x75, 0x44, 0x44, 0x68, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x76, 0x44, 0x44, 0x45, 0x67, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x65, 0x45, 0x78, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x76, 0x55, 0x67, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x77, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x77, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88 +}; + +extern const uint8_t fan1_64x64x4[2048] = { + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x78, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x77, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x65, 0x56, 0x78, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x75, 0x45, 0x67, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x65, 0x44, 0x44, 0x46, 0x78, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x64, 0x44, 0x45, 0x78, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x75, 0x44, 0x44, 0x55, 0x54, 0x57, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x54, 0x46, 0x75, 0x57, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x54, 0x44, 0x69, 0xcc, 0xc9, 0x55, 0x78, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x86, 0x44, 0x8f, 0xfd, 0x85, 0x78, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x75, 0x44, 0x48, 0xdf, 0xff, 0xff, 0xd7, 0x57, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x75, 0x45, 0xdf, 0xff, 0xf9, 0x57, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x87, 0x54, 0x45, 0xaf, 0xff, 0xff, 0xff, 0xfe, 0x76, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x75, 0x47, 0xff, 0xff, 0xff, 0x95, 0x78, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x75, 0x44, 0x5b, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe7, 0x78, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x64, 0x4b, 0xff, 0xff, 0xff, 0xf9, 0x57, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x64, 0x44, 0xaf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x78, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x54, 0x5d, 0xff, 0xff, 0xff, 0xff, 0x85, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x86, 0x44, 0x48, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x97, 0x88, 0x88, 0x88, 0x88, 0x88, 0x86, 0x44, 0x8f, 0xff, 0xff, 0xff, 0xff, 0xe7, 0x78, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x75, 0x44, 0x7e, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xd8, 0x78, 0x88, 0x88, 0x88, 0x88, 0x75, 0x45, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x87, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x64, 0x45, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfa, 0x78, 0x88, 0x88, 0x88, 0x87, 0x54, 0x47, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xb7, 0x78, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x64, 0x49, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfd, 0x87, 0x88, 0x88, 0x88, 0x86, 0x44, 0x4b, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x78, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x87, 0x54, 0x6e, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x97, 0x88, 0x88, 0x87, 0x55, 0x44, 0x8f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfb, 0x77, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x87, 0x44, 0x8f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc7, 0x78, 0x87, 0x65, 0x44, 0x46, 0xef, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x87, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x86, 0x44, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe8, 0x78, 0x65, 0x44, 0x44, 0x6d, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xa7, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x75, 0x46, 0xef, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfa, 0x77, 0x54, 0x44, 0x48, 0xef, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xd8, 0x78, 0x88, 0x88, + 0x88, 0x88, 0x75, 0x48, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x88, 0x76, 0x67, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe9, 0x78, 0x88, 0x88, + 0x88, 0x88, 0x64, 0x4b, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x76, 0x78, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfa, 0x78, 0x88, 0x88, + 0x88, 0x88, 0x64, 0x5d, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xd9, 0x54, 0x56, 0x8a, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfb, 0x78, 0x88, 0x88, + 0x88, 0x88, 0x64, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfb, 0x54, 0x44, 0x44, 0x67, 0x7b, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfb, 0x78, 0x88, 0x88, + 0x88, 0x88, 0x64, 0x8f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xd5, 0x44, 0x59, 0xa8, 0x57, 0x75, 0xcf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfb, 0x78, 0x88, 0x88, + 0x88, 0x88, 0x75, 0x9f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x94, 0x46, 0xdf, 0xff, 0xc8, 0x74, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfa, 0x78, 0x88, 0x88, + 0x88, 0x88, 0x87, 0x9f, 0xff, 0xff, 0xfe, 0xed, 0xdc, 0xde, 0xef, 0xff, 0xff, 0x84, 0x5c, 0xff, 0xff, 0xfc, 0x74, 0x5e, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf9, 0x78, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x8a, 0xdd, 0xcb, 0xa9, 0x88, 0x77, 0x88, 0x9a, 0xdf, 0xfe, 0x84, 0x7f, 0xff, 0xff, 0xff, 0x86, 0x6e, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc7, 0x78, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x77, 0x88, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x8a, 0xef, 0x95, 0x7f, 0xff, 0xff, 0xff, 0x97, 0x8e, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x87, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x77, 0x78, 0x88, 0x88, 0x88, 0x88, 0x88, 0x77, 0x8c, 0xa7, 0x7d, 0xff, 0xff, 0xfc, 0x77, 0x89, 0xab, 0xde, 0xff, 0xff, 0xff, 0xff, 0xfd, 0xa8, 0x78, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x78, 0x86, 0x7a, 0xff, 0xff, 0xe6, 0x47, 0x87, 0x77, 0x88, 0x9a, 0xbb, 0xbb, 0xba, 0x98, 0x77, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x54, 0x56, 0x8b, 0xca, 0x64, 0x57, 0x88, 0x88, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x75, 0x44, 0x44, 0x44, 0x44, 0x44, 0x6a, 0x87, 0x88, 0x88, 0x88, 0x87, 0x77, 0x78, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x54, 0x44, 0x98, 0x44, 0x44, 0x46, 0xcc, 0x77, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x75, 0x44, 0x49, 0xff, 0xb7, 0x67, 0xae, 0xfb, 0x78, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x64, 0x44, 0x8f, 0xff, 0xff, 0xef, 0xff, 0xfa, 0x78, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x54, 0x47, 0xef, 0xff, 0xff, 0xff, 0xff, 0xfa, 0x78, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x75, 0x44, 0x6d, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfa, 0x78, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x64, 0x45, 0xcf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfb, 0x78, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x54, 0x49, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfd, 0x87, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x86, 0x44, 0x7e, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x87, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x75, 0x45, 0xcf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xb6, 0x78, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x65, 0x48, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x68, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x54, 0x4c, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfd, 0x66, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x54, 0x6e, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xb5, 0x78, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x54, 0x8f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf9, 0x57, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x54, 0xaf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x86, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x74, 0xaf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe8, 0x78, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x86, 0x9f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfd, 0x87, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x7e, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xa7, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x7a, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xa7, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x77, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xeb, 0x87, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x79, 0xcf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xdb, 0x97, 0x78, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x79, 0xbd, 0xef, 0xff, 0xff, 0xff, 0xec, 0xb9, 0x87, 0x78, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x77, 0x78, 0x9a, 0xbb, 0xcc, 0xca, 0x98, 0x77, 0x77, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x77, 0x77, 0x77, 0x77, 0x77, 0x78, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88 +}; + +#endif // HAS_GRAPHICAL_TFT diff --git a/Marlin/src/lcd/tft/images/fan_fast_64x64x4.cpp b/Marlin/src/lcd/tft/images/fan_fast_64x64x4.cpp new file mode 100644 index 000000000..a315f8bf8 --- /dev/null +++ b/Marlin/src/lcd/tft/images/fan_fast_64x64x4.cpp @@ -0,0 +1,161 @@ +/** + * Marlin 3D Printer Firmware + * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin] + * + * Based on Sprinter and grbl. + * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + */ + +#include "../../../inc/MarlinConfigPre.h" + +#if HAS_GRAPHICAL_TFT + +extern const uint8_t fan_fast0_64x64x4[2048] = { + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x77, 0x77, 0x77, 0x77, 0x78, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x77, 0x78, 0x89, 0x98, 0x88, 0x77, 0x78, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x77, 0x77, 0x8a, 0xbd, 0xef, 0xfe, 0xec, 0xba, 0x87, 0x77, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x77, 0x89, 0xac, 0xef, 0xff, 0xff, 0xff, 0xff, 0xff, 0xec, 0x97, 0x78, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x77, 0x79, 0xcf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x87, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x89, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xd8, 0x78, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x78, 0xbd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x78, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x78, 0x9c, 0xed, 0xef, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x87, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x8a, 0xde, 0xdd, 0xce, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xa5, 0x78, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x78, 0xbd, 0xed, 0xdd, 0xdd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xa5, 0x68, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x8a, 0xdd, 0xdd, 0xdd, 0xdc, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xa5, 0x68, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x77, 0xac, 0xdd, 0xdd, 0xdd, 0xdd, 0xcd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x85, 0x68, 0x88, 0x87, 0x77, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x79, 0xcb, 0xcd, 0xdd, 0xdd, 0xdd, 0xdc, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfd, 0x65, 0x68, 0x88, 0x78, 0x88, 0x78, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x87, 0x8b, 0xca, 0xac, 0xdd, 0xdd, 0xdd, 0xdd, 0xce, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfa, 0x55, 0x68, 0x87, 0x8a, 0xba, 0x87, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x78, 0xac, 0xba, 0xaa, 0xbc, 0xdd, 0xdd, 0xdd, 0xcd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe6, 0x55, 0x78, 0x78, 0xac, 0xbb, 0x97, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x79, 0xcb, 0xaa, 0xaa, 0xaa, 0xbc, 0xdd, 0xdd, 0xdc, 0xef, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xa5, 0x56, 0x78, 0x8a, 0xcb, 0xaa, 0xa8, 0x78, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x87, 0x8b, 0xca, 0xaa, 0xaa, 0xaa, 0xaa, 0xcd, 0xdd, 0xdc, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfd, 0x65, 0x57, 0x87, 0x9c, 0xba, 0xaa, 0xb9, 0x67, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x87, 0x9b, 0xba, 0xaa, 0xaa, 0xaa, 0xaa, 0xab, 0xdd, 0xdd, 0xcf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe7, 0x55, 0x67, 0x79, 0xbb, 0xba, 0xaa, 0xaa, 0x77, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x87, 0x9c, 0xba, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xbd, 0xdd, 0xce, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x95, 0x55, 0x77, 0x9b, 0xcb, 0xaa, 0xaa, 0xaa, 0x96, 0x78, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x89, 0xaa, 0xab, 0xaa, 0xaa, 0xaa, 0xaa, 0xab, 0xdd, 0xce, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfb, 0x55, 0x56, 0x79, 0xbc, 0xba, 0xaa, 0xaa, 0xaa, 0xa6, 0x68, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x87, 0x67, 0x88, 0x9a, 0xaa, 0xaa, 0xaa, 0xaa, 0xcd, 0xcd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc5, 0x55, 0x68, 0xab, 0xcb, 0xaa, 0xaa, 0xaa, 0xab, 0xb8, 0x68, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x87, 0x55, 0x55, 0x56, 0x78, 0x9a, 0xaa, 0xaa, 0xbd, 0xce, 0xff, 0xfd, 0xde, 0xff, 0xfc, 0x65, 0x56, 0x9b, 0xcb, 0xba, 0xaa, 0xaa, 0xab, 0xcd, 0xdb, 0x67, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x76, 0x65, 0x55, 0x55, 0x57, 0x9a, 0xaa, 0xac, 0xde, 0xfb, 0x86, 0x67, 0x8c, 0xe8, 0x77, 0x8a, 0xcc, 0xba, 0xaa, 0xaa, 0xaa, 0xcd, 0xdd, 0xdd, 0x86, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x77, 0x77, 0x65, 0x55, 0x58, 0xaa, 0xab, 0xdd, 0x95, 0x55, 0x55, 0x56, 0x68, 0xaa, 0xbb, 0xbb, 0xaa, 0xaa, 0xaa, 0xcd, 0xdd, 0xdd, 0xdd, 0x95, 0x78, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x77, 0x77, 0x76, 0x55, 0x7a, 0xab, 0xc8, 0x55, 0x57, 0x87, 0x55, 0x56, 0xac, 0xaa, 0xaa, 0xaa, 0xab, 0xcd, 0xdd, 0xdd, 0xdd, 0xdd, 0xb5, 0x68, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x77, 0x78, 0x88, 0x88, 0x88, 0x76, 0x56, 0xab, 0x95, 0x55, 0xae, 0xff, 0xb7, 0x65, 0x7c, 0xdc, 0xcb, 0xcc, 0xcd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xc6, 0x57, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x87, 0x8a, 0xcd, 0xee, 0xee, 0xed, 0xcb, 0x96, 0x89, 0x65, 0x5a, 0xff, 0xff, 0xfc, 0x77, 0x9c, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xc6, 0x57, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x79, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xdb, 0x65, 0x6e, 0xff, 0xff, 0xfe, 0x77, 0x9e, 0xec, 0xcd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdc, 0xcc, 0xcd, 0xc6, 0x57, 0x88, + 0x88, 0x88, 0x88, 0x87, 0xaf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x65, 0x8f, 0xff, 0xff, 0xff, 0x75, 0x9f, 0xff, 0xdd, 0xcc, 0xcc, 0xcc, 0xcc, 0xdd, 0xdd, 0xdd, 0xc6, 0x57, 0x88, + 0x88, 0x88, 0x88, 0x78, 0xef, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x65, 0x8e, 0xff, 0xff, 0xfe, 0x65, 0x8f, 0xff, 0xff, 0xee, 0xdd, 0xdd, 0xee, 0xef, 0xff, 0xff, 0xd6, 0x57, 0x88, + 0x88, 0x88, 0x88, 0x7a, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x85, 0x7a, 0xff, 0xff, 0xfa, 0x55, 0x9f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xd6, 0x57, 0x88, + 0x88, 0x88, 0x88, 0x7b, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xb5, 0x77, 0x9d, 0xfd, 0xa5, 0x55, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xd6, 0x57, 0x88, + 0x88, 0x88, 0x88, 0x7b, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x67, 0x66, 0x66, 0x55, 0x58, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc5, 0x57, 0x88, + 0x88, 0x88, 0x88, 0x7b, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x97, 0x75, 0x55, 0x56, 0x9e, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x95, 0x57, 0x88, + 0x88, 0x88, 0x88, 0x7a, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfd, 0xa8, 0x66, 0x8d, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x65, 0x67, 0x88, + 0x88, 0x88, 0x88, 0x79, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xec, 0xcb, 0xbe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x55, 0x67, 0x88, + 0x88, 0x88, 0x88, 0x78, 0xef, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xdc, 0xdd, 0xcb, 0x7a, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf9, 0x55, 0x68, 0x88, + 0x88, 0x88, 0x88, 0x87, 0xcf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xed, 0xcd, 0xdb, 0xa9, 0x57, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe6, 0x55, 0x78, 0x88, + 0x88, 0x88, 0x88, 0x87, 0x9f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xcc, 0xdd, 0xba, 0xa8, 0x55, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xb5, 0x56, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x87, 0x8d, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xec, 0xdd, 0xdc, 0xaa, 0xa7, 0x55, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x85, 0x57, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x7a, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xdc, 0xdd, 0xdb, 0xaa, 0xa7, 0x56, 0x8f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfd, 0x65, 0x67, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x78, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xcd, 0xdd, 0xca, 0xaa, 0xa7, 0x56, 0x7c, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x55, 0x68, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x87, 0xaf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfd, 0xdd, 0xdd, 0xca, 0xaa, 0xa7, 0x56, 0x79, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xa5, 0x55, 0x78, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x7b, 0xff, 0xff, 0xff, 0xff, 0xff, 0xec, 0xdd, 0xdd, 0xba, 0xaa, 0xa8, 0x56, 0x87, 0xcf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x55, 0x56, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x76, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xdc, 0xdd, 0xdd, 0xba, 0xaa, 0xb9, 0x56, 0x87, 0x8e, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe6, 0x55, 0x67, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x86, 0x7e, 0xff, 0xff, 0xff, 0xff, 0xcd, 0xdd, 0xdd, 0xba, 0xaa, 0xa9, 0x56, 0x88, 0x7a, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x85, 0x55, 0x78, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x67, 0xef, 0xff, 0xff, 0xfe, 0xcd, 0xdd, 0xdd, 0xba, 0xaa, 0xaa, 0x76, 0x88, 0x76, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xe8, 0x55, 0x56, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x86, 0x7e, 0xff, 0xff, 0xfd, 0xcd, 0xdd, 0xdd, 0xba, 0xaa, 0xaa, 0x85, 0x78, 0x87, 0x6b, 0xff, 0xff, 0xff, 0xfd, 0x75, 0x55, 0x67, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x67, 0xdf, 0xff, 0xec, 0xdd, 0xdd, 0xdd, 0xba, 0xaa, 0xaa, 0xa6, 0x68, 0x88, 0x76, 0xae, 0xff, 0xfe, 0xa6, 0x55, 0x56, 0x78, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x76, 0x6b, 0xff, 0xdc, 0xdd, 0xdd, 0xdd, 0xba, 0xaa, 0xaa, 0xa7, 0x68, 0x88, 0x86, 0x56, 0x89, 0x86, 0x55, 0x55, 0x67, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x65, 0x8b, 0xdd, 0xdd, 0xdd, 0xdd, 0xba, 0xaa, 0xaa, 0xa9, 0x57, 0x88, 0x88, 0x65, 0x55, 0x55, 0x55, 0x56, 0x78, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x76, 0x55, 0x8b, 0xdd, 0xdd, 0xdd, 0xaa, 0xaa, 0xaa, 0xaa, 0x66, 0x88, 0x88, 0x87, 0x65, 0x55, 0x56, 0x78, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x65, 0x56, 0x8b, 0xdd, 0xdc, 0xaa, 0xaa, 0xaa, 0xba, 0x65, 0x78, 0x88, 0x88, 0x87, 0x77, 0x78, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x65, 0x55, 0x79, 0x99, 0x99, 0xaa, 0xaa, 0x97, 0x55, 0x78, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x65, 0x55, 0x55, 0x56, 0x66, 0x66, 0x65, 0x55, 0x78, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x66, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x78, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x76, 0x66, 0x66, 0x66, 0x66, 0x67, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88 +}; + +extern const uint8_t fan_fast1_64x64x4[2048] = { + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x66, 0x66, 0x66, 0x66, 0x66, 0x77, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x75, 0x55, 0x55, 0x55, 0x55, 0x55, 0x56, 0x67, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x75, 0x55, 0x66, 0x66, 0x66, 0x55, 0x55, 0x55, 0x67, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x75, 0x57, 0x9a, 0xaa, 0xa9, 0x99, 0x99, 0x75, 0x55, 0x67, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x77, 0x77, 0x88, 0x88, 0x88, 0x75, 0x6a, 0xba, 0xaa, 0xaa, 0xac, 0xdd, 0xdb, 0x86, 0x55, 0x68, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x76, 0x55, 0x55, 0x67, 0x88, 0x88, 0x86, 0x6a, 0xaa, 0xaa, 0xaa, 0xad, 0xdd, 0xdd, 0xdb, 0x85, 0x56, 0x78, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x76, 0x55, 0x55, 0x55, 0x55, 0x68, 0x88, 0x87, 0x59, 0xaa, 0xaa, 0xaa, 0xbd, 0xdd, 0xdd, 0xdd, 0xdb, 0x85, 0x67, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x65, 0x55, 0x56, 0x89, 0x86, 0x56, 0x88, 0x88, 0x67, 0xaa, 0xaa, 0xaa, 0xbd, 0xdd, 0xdd, 0xdc, 0xdf, 0xfb, 0x66, 0x78, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x76, 0x55, 0x56, 0xae, 0xff, 0xfe, 0xa6, 0x78, 0x88, 0x66, 0xaa, 0xaa, 0xaa, 0xbd, 0xdd, 0xdd, 0xdc, 0xef, 0xff, 0xd7, 0x67, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x87, 0x65, 0x55, 0x7d, 0xff, 0xff, 0xff, 0xfb, 0x67, 0x88, 0x75, 0x8a, 0xaa, 0xaa, 0xbd, 0xdd, 0xdd, 0xcd, 0xff, 0xff, 0xfe, 0x76, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x86, 0x55, 0x58, 0xef, 0xff, 0xff, 0xff, 0xff, 0xb6, 0x78, 0x86, 0x7a, 0xaa, 0xaa, 0xbd, 0xdd, 0xdd, 0xce, 0xff, 0xff, 0xff, 0xe7, 0x68, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x75, 0x55, 0x8e, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfa, 0x78, 0x86, 0x59, 0xaa, 0xaa, 0xbd, 0xdd, 0xdd, 0xcf, 0xff, 0xff, 0xff, 0xfe, 0x76, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x87, 0x65, 0x56, 0xef, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x87, 0x86, 0x59, 0xba, 0xaa, 0xbd, 0xdd, 0xdc, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xd6, 0x78, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x86, 0x55, 0x5c, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc7, 0x86, 0x58, 0xaa, 0xaa, 0xbd, 0xdd, 0xdc, 0xef, 0xff, 0xff, 0xff, 0xff, 0xfb, 0x78, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x75, 0x55, 0xaf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf9, 0x76, 0x57, 0xaa, 0xaa, 0xcd, 0xdd, 0xdd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xa7, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x65, 0x58, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x76, 0x57, 0xaa, 0xaa, 0xcd, 0xdd, 0xce, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xd8, 0x78, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x87, 0x65, 0x6d, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x86, 0x57, 0xaa, 0xab, 0xdd, 0xdc, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfa, 0x78, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x87, 0x55, 0x8f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xb5, 0x57, 0xaa, 0xac, 0xdd, 0xdc, 0xef, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfd, 0x87, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x86, 0x55, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xd5, 0x58, 0xaa, 0xbd, 0xdc, 0xce, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x97, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x75, 0x56, 0xef, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf7, 0x59, 0xab, 0xdd, 0xcd, 0xef, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc7, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x65, 0x59, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfa, 0x7b, 0xcd, 0xdc, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe8, 0x78, 0x88, 0x88, + 0x88, 0x87, 0x65, 0x5c, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xbb, 0xcc, 0xef, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf9, 0x78, 0x88, 0x88, + 0x88, 0x87, 0x65, 0x6e, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfd, 0x86, 0x68, 0xad, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfa, 0x78, 0x88, 0x88, + 0x88, 0x87, 0x55, 0x9f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x96, 0x55, 0x55, 0x77, 0x9e, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfb, 0x78, 0x88, 0x88, + 0x88, 0x87, 0x55, 0xcf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x55, 0x56, 0x66, 0x67, 0x68, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfb, 0x78, 0x88, 0x88, + 0x88, 0x87, 0x56, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xb5, 0x55, 0xad, 0xfd, 0x97, 0x75, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfb, 0x78, 0x88, 0x88, + 0x88, 0x87, 0x56, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x95, 0x5a, 0xff, 0xff, 0xfa, 0x75, 0x8f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfa, 0x78, 0x88, 0x88, + 0x88, 0x87, 0x56, 0xdf, 0xff, 0xff, 0xee, 0xed, 0xdd, 0xde, 0xef, 0xff, 0xff, 0x85, 0x6e, 0xff, 0xff, 0xfe, 0x85, 0x6e, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe8, 0x78, 0x88, 0x88, + 0x88, 0x87, 0x56, 0xcd, 0xdd, 0xdd, 0xdc, 0xcc, 0xcc, 0xcc, 0xcd, 0xdf, 0xff, 0x95, 0x7f, 0xff, 0xff, 0xff, 0x85, 0x6f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xa7, 0x88, 0x88, 0x88, + 0x88, 0x87, 0x56, 0xcd, 0xcc, 0xcc, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xcc, 0xee, 0x97, 0x7e, 0xff, 0xff, 0xfe, 0x65, 0x6b, 0xde, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xd9, 0x78, 0x88, 0x88, 0x88, + 0x88, 0x87, 0x56, 0xcd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdc, 0x97, 0x7c, 0xff, 0xff, 0xfa, 0x55, 0x69, 0x86, 0x9b, 0xcd, 0xee, 0xee, 0xed, 0xca, 0x87, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x87, 0x56, 0xcd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xcc, 0xcb, 0xcc, 0xdc, 0x75, 0x67, 0xbf, 0xfe, 0xa5, 0x55, 0x9b, 0xa6, 0x56, 0x78, 0x88, 0x88, 0x88, 0x77, 0x78, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x65, 0xbd, 0xdd, 0xdd, 0xdd, 0xdd, 0xcb, 0xaa, 0xaa, 0xaa, 0xac, 0xa6, 0x55, 0x57, 0x87, 0x55, 0x58, 0xcb, 0xaa, 0x75, 0x56, 0x77, 0x77, 0x78, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x75, 0x9d, 0xdd, 0xdd, 0xdd, 0xca, 0xaa, 0xaa, 0xab, 0xbb, 0xba, 0xa8, 0x66, 0x55, 0x55, 0x55, 0x9d, 0xdb, 0xaa, 0xa8, 0x55, 0x55, 0x67, 0x77, 0x78, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x86, 0x8d, 0xdd, 0xdd, 0xca, 0xaa, 0xaa, 0xaa, 0xbc, 0xca, 0x87, 0x78, 0xec, 0x87, 0x66, 0x8b, 0xfe, 0xdc, 0xaa, 0xaa, 0x97, 0x55, 0x55, 0x55, 0x66, 0x78, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x87, 0x6b, 0xdd, 0xcb, 0xaa, 0xaa, 0xaa, 0xbb, 0xcb, 0x96, 0x55, 0x6c, 0xff, 0xfe, 0xdd, 0xff, 0xfe, 0xcd, 0xba, 0xaa, 0xaa, 0x98, 0x76, 0x55, 0x55, 0x57, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x68, 0xbb, 0xaa, 0xaa, 0xaa, 0xab, 0xcb, 0xa8, 0x65, 0x55, 0xcf, 0xff, 0xff, 0xff, 0xff, 0xfd, 0xcd, 0xca, 0xaa, 0xaa, 0xaa, 0xaa, 0x98, 0x87, 0x67, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x66, 0xaa, 0xaa, 0xaa, 0xaa, 0xbc, 0xb9, 0x76, 0x55, 0x5b, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xcd, 0xdb, 0xaa, 0xaa, 0xaa, 0xaa, 0xab, 0xaa, 0xa9, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x76, 0x9a, 0xaa, 0xaa, 0xab, 0xcb, 0x97, 0x75, 0x55, 0x9f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xcd, 0xdd, 0xba, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xbc, 0x97, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x87, 0x7a, 0xaa, 0xaa, 0xbb, 0xb9, 0x77, 0x65, 0x57, 0xef, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xcd, 0xdd, 0xdb, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xbb, 0x97, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x87, 0x69, 0xba, 0xaa, 0xbc, 0x97, 0x87, 0x55, 0x6d, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xdc, 0xdd, 0xdd, 0xca, 0xaa, 0xaa, 0xaa, 0xaa, 0xcb, 0x87, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x78, 0xaa, 0xab, 0xca, 0x88, 0x76, 0x55, 0xaf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xec, 0xdd, 0xdd, 0xdc, 0xba, 0xaa, 0xaa, 0xab, 0xc9, 0x78, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x87, 0x9b, 0xbc, 0xa8, 0x78, 0x75, 0x56, 0xef, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfd, 0xcd, 0xdd, 0xdd, 0xdc, 0xba, 0xaa, 0xbc, 0xa8, 0x78, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x87, 0x8a, 0xba, 0x87, 0x88, 0x65, 0x5a, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xcd, 0xdd, 0xdd, 0xdd, 0xdc, 0xaa, 0xcb, 0x87, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x78, 0x88, 0x78, 0x88, 0x65, 0x6d, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xdc, 0xdd, 0xdd, 0xdd, 0xdd, 0xcb, 0xc9, 0x78, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x77, 0x88, 0x88, 0x65, 0x8f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfd, 0xcd, 0xdd, 0xdd, 0xdd, 0xdc, 0xa7, 0x78, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x65, 0xaf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xdc, 0xdd, 0xdd, 0xdd, 0xda, 0x87, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x65, 0xaf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfd, 0xdd, 0xdd, 0xed, 0xb8, 0x78, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x75, 0xaf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xcd, 0xde, 0xda, 0x87, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x8f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xed, 0xec, 0x98, 0x78, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x7c, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfd, 0xb8, 0x77, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x78, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xb9, 0x87, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x8c, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc9, 0x77, 0x78, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x77, 0x9c, 0xef, 0xff, 0xff, 0xff, 0xff, 0xff, 0xec, 0xa9, 0x87, 0x78, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x77, 0x8a, 0xbc, 0xee, 0xff, 0xed, 0xba, 0x87, 0x77, 0x78, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x77, 0x78, 0x88, 0x99, 0x88, 0x77, 0x78, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x77, 0x77, 0x77, 0x77, 0x78, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88 +}; + +#endif // HAS_GRAPHICAL_TFT diff --git a/Marlin/src/lcd/tft/images/fan_slow_64x64x4.cpp b/Marlin/src/lcd/tft/images/fan_slow_64x64x4.cpp new file mode 100644 index 000000000..baf065188 --- /dev/null +++ b/Marlin/src/lcd/tft/images/fan_slow_64x64x4.cpp @@ -0,0 +1,161 @@ +/** + * Marlin 3D Printer Firmware + * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin] + * + * Based on Sprinter and grbl. + * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + */ + +#include "../../../inc/MarlinConfigPre.h" + +#if HAS_GRAPHICAL_TFT + +extern const uint8_t fan_slow0_64x64x4[2048] = { + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x78, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x77, 0x89, 0x9a, 0xbb, 0xbb, 0xaa, 0x99, 0x87, 0x77, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x78, 0xab, 0xde, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xdb, 0x97, 0x77, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x79, 0xce, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfd, 0x97, 0x78, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x78, 0xae, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfa, 0x77, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x77, 0x8b, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xa7, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x89, 0xbc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe8, 0x78, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x78, 0xac, 0xcb, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfa, 0x78, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x8b, 0xcb, 0xbb, 0xbe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfb, 0x78, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x78, 0xbc, 0xbb, 0xbb, 0xbc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfb, 0x78, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x8a, 0xcb, 0xbb, 0xbb, 0xbb, 0xcf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfa, 0x78, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x8b, 0xcb, 0xbb, 0xbb, 0xbb, 0xbd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe9, 0x78, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x8a, 0xcc, 0xbb, 0xbb, 0xbb, 0xbb, 0xef, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xd7, 0x78, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x78, 0x9b, 0xcb, 0xbb, 0xbb, 0xbb, 0xcf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xa7, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x78, 0xac, 0xcb, 0xbb, 0xbb, 0xbc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfd, 0x87, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x89, 0xbc, 0xbb, 0xbb, 0xbb, 0xef, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfa, 0x78, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x77, 0x8a, 0xbc, 0xbb, 0xbb, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc7, 0x78, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x78, 0x9b, 0xcb, 0xbb, 0xcf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x87, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x79, 0xbc, 0xbb, 0xbe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfa, 0x78, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x9b, 0xcb, 0xbd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xb7, 0x78, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x77, 0x78, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x79, 0xcb, 0xbd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x77, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x88, 0x87, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x78, 0xac, 0xbd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc8, 0x78, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x78, 0xab, 0xa8, 0x78, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x9b, 0xbe, 0xff, 0xca, 0xab, 0xce, 0xfd, 0x87, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x78, 0xab, 0xcc, 0xca, 0x78, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x8b, 0xcf, 0xd9, 0x77, 0x77, 0x79, 0xc8, 0x77, 0x88, 0x88, 0x88, 0x88, 0x87, 0x78, 0x9b, 0xcc, 0xbb, 0xcb, 0x87, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x8a, 0xcc, 0x87, 0x77, 0x77, 0x77, 0x77, 0x88, 0x77, 0x77, 0x77, 0x77, 0x78, 0x9b, 0xcc, 0xbb, 0xbb, 0xcb, 0x87, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x77, 0x77, 0x77, 0x77, 0x77, 0x78, 0x88, 0x79, 0xb8, 0x77, 0x8a, 0xcb, 0x97, 0x77, 0x8a, 0xa9, 0x88, 0x88, 0x89, 0xab, 0xcc, 0xbb, 0xbb, 0xbb, 0xbc, 0x97, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x77, 0x78, 0x99, 0xaa, 0x99, 0x98, 0x87, 0x77, 0x79, 0x97, 0x78, 0xdf, 0xff, 0xea, 0x77, 0x8a, 0xcb, 0xbb, 0xbb, 0xbb, 0xcc, 0xbb, 0xbb, 0xbb, 0xbb, 0xbc, 0x97, 0x88, + 0x88, 0x88, 0x88, 0x87, 0x7a, 0xce, 0xff, 0xff, 0xff, 0xee, 0xdc, 0xa9, 0x88, 0x87, 0x8c, 0xff, 0xff, 0xfe, 0x97, 0x8c, 0xcb, 0xbc, 0xcc, 0xcb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbc, 0x97, 0x88, + 0x88, 0x88, 0x88, 0x78, 0xcf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xeb, 0x77, 0x9f, 0xff, 0xff, 0xff, 0xb7, 0x7c, 0xfd, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbc, 0x97, 0x88, + 0x88, 0x88, 0x87, 0x8d, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfd, 0x77, 0x9f, 0xff, 0xff, 0xff, 0xc7, 0x7b, 0xff, 0xec, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbc, 0xcd, 0xcc, 0x97, 0x88, + 0x88, 0x88, 0x87, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x77, 0x8e, 0xff, 0xff, 0xff, 0xa7, 0x7b, 0xff, 0xff, 0xed, 0xdc, 0xcc, 0xcd, 0xde, 0xff, 0xff, 0xfe, 0x97, 0x88, + 0x88, 0x88, 0x78, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x87, 0x7b, 0xff, 0xff, 0xfd, 0x87, 0x7d, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xa7, 0x88, + 0x88, 0x88, 0x79, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xa7, 0x78, 0xbe, 0xff, 0xc8, 0x77, 0x8e, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xa7, 0x88, + 0x88, 0x88, 0x79, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xd8, 0x77, 0x79, 0x99, 0x87, 0x78, 0xcf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xa7, 0x88, + 0x88, 0x88, 0x79, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfd, 0x87, 0x77, 0x77, 0x77, 0x8c, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x97, 0x88, + 0x88, 0x88, 0x78, 0xef, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xeb, 0x97, 0x78, 0x7b, 0xef, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfd, 0x87, 0x88, + 0x88, 0x88, 0x78, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xca, 0x98, 0x7c, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x78, 0x88, + 0x88, 0x88, 0x77, 0xcf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xdc, 0xcc, 0xa8, 0x7a, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfa, 0x78, 0x88, + 0x88, 0x88, 0x87, 0xaf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xec, 0xbb, 0xca, 0x87, 0x78, 0xef, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe8, 0x78, 0x88, + 0x88, 0x88, 0x87, 0x8e, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xbb, 0xbc, 0xa8, 0x78, 0x77, 0xcf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc7, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x7b, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xeb, 0xbb, 0xbb, 0x87, 0x88, 0x87, 0xaf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x97, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x79, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xcb, 0xbb, 0xca, 0x78, 0x88, 0x87, 0x8e, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfd, 0x87, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x77, 0xcf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfd, 0xbb, 0xbc, 0xb8, 0x78, 0x88, 0x87, 0x7c, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfa, 0x78, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x87, 0x9f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xeb, 0xbb, 0xbc, 0xa8, 0x78, 0x88, 0x88, 0x79, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc7, 0x78, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x87, 0x7c, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xdb, 0xbb, 0xbc, 0x97, 0x88, 0x88, 0x88, 0x87, 0xcf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x87, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x78, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xbb, 0xbb, 0xbc, 0x97, 0x88, 0x88, 0x88, 0x87, 0x9f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf9, 0x78, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x87, 0x9e, 0xff, 0xff, 0xff, 0xff, 0xfd, 0xbb, 0xbb, 0xbb, 0x87, 0x88, 0x88, 0x88, 0x87, 0x7c, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xb7, 0x78, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x79, 0xef, 0xff, 0xff, 0xff, 0xfc, 0xbb, 0xbb, 0xcb, 0x87, 0x88, 0x88, 0x88, 0x88, 0x78, 0xef, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfb, 0x77, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0xaf, 0xff, 0xff, 0xff, 0xeb, 0xbb, 0xbb, 0xcb, 0x87, 0x88, 0x88, 0x88, 0x88, 0x87, 0x9f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc7, 0x78, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x7a, 0xff, 0xff, 0xff, 0xdb, 0xbb, 0xbb, 0xcb, 0x87, 0x88, 0x88, 0x88, 0x88, 0x88, 0x7a, 0xef, 0xff, 0xff, 0xff, 0xfb, 0x77, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x77, 0xae, 0xff, 0xff, 0xcb, 0xbb, 0xbb, 0xcb, 0x87, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x9d, 0xff, 0xff, 0xfd, 0x97, 0x78, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x79, 0xdf, 0xfd, 0xbb, 0xbb, 0xbb, 0xcb, 0x87, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x78, 0xac, 0xcb, 0x98, 0x77, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x8a, 0xcc, 0xbb, 0xbb, 0xbb, 0xcb, 0x87, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x77, 0x77, 0x77, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x77, 0x8a, 0xbc, 0xbb, 0xbb, 0xcb, 0x87, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x78, 0x8a, 0xbc, 0xcb, 0xca, 0x87, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x77, 0x8a, 0xbb, 0xb9, 0x78, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x77, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x77, 0x78, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88 +}; + +extern const uint8_t fan_slow1_64x64x4[2048] = { + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x77, 0x78, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x78, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x79, 0xbb, 0xba, 0x87, 0x78, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x8a, 0xcb, 0xcc, 0xba, 0x88, 0x78, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x8b, 0xcb, 0xbb, 0xbc, 0xba, 0x87, 0x78, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x77, 0x77, 0x77, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x8b, 0xcb, 0xbb, 0xbb, 0xbc, 0xca, 0x87, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x78, 0x9b, 0xcc, 0xa8, 0x78, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x8b, 0xcb, 0xbb, 0xbb, 0xbd, 0xff, 0xd9, 0x77, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x77, 0x9d, 0xff, 0xff, 0xfd, 0x97, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x8b, 0xcb, 0xbb, 0xbb, 0xcf, 0xff, 0xfe, 0xa7, 0x78, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x7b, 0xff, 0xff, 0xff, 0xff, 0xea, 0x78, 0x88, 0x88, 0x88, 0x88, 0x87, 0x8b, 0xcb, 0xbb, 0xbb, 0xdf, 0xff, 0xff, 0xfa, 0x78, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x77, 0xcf, 0xff, 0xff, 0xff, 0xff, 0xff, 0x97, 0x88, 0x88, 0x88, 0x88, 0x87, 0x8b, 0xcb, 0xbb, 0xbb, 0xef, 0xff, 0xff, 0xff, 0xa7, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x87, 0x7b, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe8, 0x78, 0x88, 0x88, 0x88, 0x87, 0x8b, 0xcb, 0xbb, 0xbc, 0xff, 0xff, 0xff, 0xff, 0xe9, 0x78, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x77, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x77, 0x88, 0x88, 0x88, 0x87, 0x8b, 0xbb, 0xbb, 0xbd, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x97, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x79, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x97, 0x88, 0x88, 0x88, 0x87, 0x9c, 0xbb, 0xbb, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xd8, 0x78, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x87, 0x8e, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc7, 0x88, 0x88, 0x88, 0x87, 0x9c, 0xbb, 0xbb, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x77, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x77, 0xcf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf9, 0x78, 0x88, 0x88, 0x78, 0xac, 0xbb, 0xbb, 0xef, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x97, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x7a, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x77, 0x88, 0x88, 0x78, 0xbc, 0xbb, 0xbd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc7, 0x78, 0x88, 0x88, + 0x88, 0x88, 0x87, 0x8d, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x87, 0x88, 0x88, 0x7a, 0xcb, 0xbb, 0xcf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf9, 0x78, 0x88, 0x88, + 0x88, 0x88, 0x87, 0x9f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xa7, 0x88, 0x87, 0x8b, 0xbb, 0xbb, 0xef, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfb, 0x78, 0x88, 0x88, + 0x88, 0x88, 0x87, 0xcf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc7, 0x78, 0x78, 0xac, 0xbb, 0xbe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x87, 0x88, 0x88, + 0x88, 0x88, 0x78, 0xef, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe8, 0x77, 0x8a, 0xcb, 0xbc, 0xef, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xa7, 0x88, 0x88, + 0x88, 0x88, 0x7a, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfa, 0x78, 0xac, 0xcc, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc7, 0x78, 0x88, + 0x88, 0x88, 0x7c, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x78, 0x9a, 0xcf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xd8, 0x78, 0x88, + 0x88, 0x87, 0x8d, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xeb, 0x78, 0x77, 0x9b, 0xef, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe8, 0x78, 0x88, + 0x88, 0x87, 0x9e, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x87, 0x77, 0x77, 0x77, 0x8d, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf9, 0x78, 0x88, + 0x88, 0x87, 0xaf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc8, 0x77, 0x89, 0x99, 0x77, 0x78, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf9, 0x78, 0x88, + 0x88, 0x87, 0xaf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x87, 0x78, 0xcf, 0xfe, 0xb8, 0x77, 0xaf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf9, 0x78, 0x88, + 0x88, 0x87, 0xaf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfd, 0x77, 0x8d, 0xff, 0xff, 0xfb, 0x77, 0x8e, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xd8, 0x78, 0x88, + 0x88, 0x87, 0x9e, 0xff, 0xff, 0xfe, 0xdd, 0xcc, 0xcc, 0xdd, 0xef, 0xff, 0xfb, 0x77, 0xaf, 0xff, 0xff, 0xfe, 0x87, 0x7c, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xb7, 0x88, 0x88, + 0x88, 0x87, 0x9c, 0xcd, 0xcc, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbc, 0xef, 0xfb, 0x77, 0xcf, 0xff, 0xff, 0xff, 0x97, 0x7d, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfd, 0x87, 0x88, 0x88, + 0x88, 0x87, 0x9c, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbd, 0xfc, 0x77, 0xbf, 0xff, 0xff, 0xff, 0x97, 0x7b, 0xef, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc8, 0x78, 0x88, 0x88, + 0x88, 0x87, 0x9c, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xcc, 0xcc, 0xbb, 0xcc, 0x87, 0x9e, 0xff, 0xff, 0xfc, 0x87, 0x88, 0x89, 0xac, 0xde, 0xef, 0xff, 0xff, 0xfe, 0xca, 0x77, 0x88, 0x88, 0x88, + 0x88, 0x87, 0x9c, 0xbb, 0xbb, 0xbb, 0xbb, 0xbc, 0xcb, 0xbb, 0xbb, 0xbb, 0xca, 0x87, 0x7a, 0xef, 0xff, 0xd8, 0x77, 0x99, 0x77, 0x77, 0x88, 0x99, 0x9a, 0xa9, 0x98, 0x77, 0x78, 0x88, 0x88, 0x88, + 0x88, 0x87, 0x9c, 0xbb, 0xbb, 0xbb, 0xbc, 0xcb, 0xa9, 0x88, 0x88, 0x89, 0xaa, 0x87, 0x77, 0x9b, 0xca, 0x87, 0x78, 0xb9, 0x78, 0x88, 0x77, 0x77, 0x77, 0x77, 0x77, 0x78, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x87, 0x8b, 0xcb, 0xbb, 0xbc, 0xcb, 0x98, 0x77, 0x77, 0x77, 0x77, 0x78, 0x87, 0x77, 0x77, 0x77, 0x77, 0x8c, 0xca, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x87, 0x8b, 0xcb, 0xbc, 0xcb, 0x98, 0x77, 0x88, 0x88, 0x88, 0x88, 0x87, 0x78, 0xc9, 0x77, 0x77, 0x79, 0xdf, 0xcb, 0x87, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x7a, 0xcc, 0xcb, 0xa8, 0x77, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x8d, 0xfe, 0xcb, 0xaa, 0xcf, 0xfe, 0xbb, 0x97, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x78, 0xab, 0xa8, 0x77, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x78, 0xcf, 0xff, 0xff, 0xff, 0xff, 0xfd, 0xbc, 0xa8, 0x78, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x87, 0x88, 0x87, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x7c, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfd, 0xbb, 0xc9, 0x78, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x77, 0x78, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x77, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfd, 0xbb, 0xcb, 0x97, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x7a, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xbb, 0xbc, 0xb9, 0x77, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x8e, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xcb, 0xbb, 0xcb, 0x98, 0x78, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x77, 0xcf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xdb, 0xbb, 0xbc, 0xba, 0x87, 0x78, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x7a, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xeb, 0xbb, 0xbb, 0xbc, 0xb9, 0x87, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x8d, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xbb, 0xbb, 0xbb, 0xcc, 0xa8, 0x77, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0xaf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xcb, 0xbb, 0xbb, 0xbb, 0xcb, 0x98, 0x78, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x77, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xeb, 0xbb, 0xbb, 0xbb, 0xbc, 0xca, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x79, 0xef, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfd, 0xbb, 0xbb, 0xbb, 0xbb, 0xcb, 0x87, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x7a, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xcb, 0xbb, 0xbb, 0xbb, 0xca, 0x87, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x7b, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xbb, 0xbb, 0xbc, 0xb8, 0x78, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x7b, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xbb, 0xbb, 0xcb, 0x87, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x7a, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xdb, 0xcc, 0xa8, 0x78, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x78, 0xef, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xb9, 0x87, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0xaf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfb, 0x87, 0x78, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x7a, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xa8, 0x78, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x77, 0x9d, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xc9, 0x77, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x77, 0x9b, 0xde, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xdb, 0xa8, 0x77, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x77, 0x89, 0x9a, 0xab, 0xbb, 0xba, 0x99, 0x87, 0x77, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x78, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88 +}; + +#endif // HAS_GRAPHICAL_TFT diff --git a/Marlin/src/lcd/tft/images/feedrate_32x32x4.cpp b/Marlin/src/lcd/tft/images/feedrate_32x32x4.cpp new file mode 100644 index 000000000..3515b3827 --- /dev/null +++ b/Marlin/src/lcd/tft/images/feedrate_32x32x4.cpp @@ -0,0 +1,62 @@ +/** + * Marlin 3D Printer Firmware + * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin] + * + * Based on Sprinter and grbl. + * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + */ + +#include "../../../inc/MarlinConfigPre.h" + +#if HAS_GRAPHICAL_TFT + +extern const uint8_t feedrate_32x32x4[512] = { + 0x88, 0x88, 0x88, 0x88, 0x87, 0x77, 0x77, 0x78, 0x77, 0x77, 0x77, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x87, 0x77, 0x8a, 0xcd, 0xa8, 0xcc, 0xb9, 0x87, 0x78, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x77, 0x9c, 0xef, 0xff, 0xa8, 0xff, 0xff, 0xda, 0x87, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x87, 0x8b, 0xef, 0xff, 0xff, 0x97, 0xff, 0xff, 0xff, 0xd9, 0x77, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x78, 0xcf, 0xff, 0xff, 0xec, 0x76, 0xbd, 0xef, 0xff, 0xff, 0x97, 0x78, 0x88, 0x88, + 0x88, 0x87, 0x8d, 0xff, 0xff, 0xc9, 0x65, 0x55, 0x65, 0x6a, 0xef, 0xfb, 0x67, 0x87, 0x88, 0x88, + 0x88, 0x77, 0xcf, 0xff, 0xe9, 0x55, 0x55, 0x55, 0x65, 0x55, 0x6b, 0xb5, 0x7d, 0xb7, 0x78, 0x88, + 0x87, 0x7a, 0xff, 0xfe, 0x85, 0x55, 0x56, 0x67, 0x77, 0x66, 0x55, 0x57, 0xdf, 0xf8, 0x78, 0x88, + 0x87, 0x8e, 0xff, 0xf8, 0x55, 0x56, 0x67, 0x88, 0x88, 0x87, 0x76, 0x58, 0xff, 0xfc, 0x67, 0x88, + 0x77, 0xbf, 0xff, 0xa5, 0x55, 0x67, 0x88, 0x88, 0x87, 0x78, 0xb9, 0x66, 0xbf, 0xff, 0x86, 0x88, + 0x78, 0xdf, 0xfd, 0x65, 0x56, 0x78, 0x88, 0x87, 0x77, 0xae, 0xd8, 0x77, 0x7e, 0xff, 0xb5, 0x78, + 0x79, 0xff, 0xfa, 0x55, 0x67, 0x88, 0x88, 0x77, 0x9c, 0xff, 0x86, 0x56, 0x7b, 0xff, 0xe6, 0x68, + 0x7a, 0xff, 0xf7, 0x55, 0x78, 0x88, 0x87, 0x8b, 0xff, 0xfb, 0x55, 0x67, 0x79, 0xff, 0xf8, 0x68, + 0x7b, 0xff, 0xe6, 0x56, 0x78, 0x88, 0x78, 0xdf, 0xff, 0xe7, 0x55, 0x78, 0x79, 0xee, 0xe8, 0x57, + 0x7c, 0xff, 0xd6, 0x57, 0x88, 0x87, 0x7c, 0xff, 0xff, 0xa5, 0x56, 0x78, 0x78, 0x77, 0x76, 0x57, + 0x7c, 0xff, 0xd6, 0x57, 0x88, 0x87, 0x7c, 0xff, 0xfd, 0x65, 0x57, 0x88, 0x78, 0x98, 0x86, 0x57, + 0x7b, 0xff, 0xd6, 0x57, 0x88, 0x88, 0x79, 0xef, 0xe8, 0x55, 0x67, 0x88, 0x79, 0xff, 0xf9, 0x67, + 0x7b, 0xff, 0xf7, 0x57, 0x88, 0x88, 0x87, 0x78, 0x75, 0x55, 0x78, 0x88, 0x7a, 0xff, 0xf8, 0x67, + 0x79, 0xff, 0xf9, 0x57, 0x88, 0x88, 0x88, 0x65, 0x55, 0x56, 0x88, 0x87, 0x7c, 0xff, 0xd6, 0x56, + 0x78, 0xef, 0xfd, 0x57, 0x88, 0x88, 0x88, 0x76, 0x55, 0x67, 0x88, 0x87, 0x8f, 0xff, 0xb5, 0x57, + 0x77, 0xbf, 0xff, 0x96, 0x88, 0x88, 0x88, 0x88, 0x77, 0x78, 0x88, 0x77, 0xcf, 0xff, 0x85, 0x67, + 0x87, 0x8e, 0xff, 0xe8, 0x78, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x7a, 0xff, 0xfc, 0x55, 0x67, + 0x88, 0x7a, 0xff, 0xfd, 0x87, 0x78, 0x88, 0x88, 0x88, 0x88, 0x77, 0x9e, 0xff, 0xf7, 0x55, 0x68, + 0x88, 0x77, 0xbf, 0xff, 0xea, 0x77, 0x77, 0x88, 0x87, 0x77, 0x7a, 0xff, 0xff, 0x95, 0x56, 0x78, + 0x88, 0x87, 0x6c, 0xff, 0xff, 0xc9, 0x87, 0x77, 0x77, 0x89, 0xdf, 0xff, 0xfb, 0x55, 0x56, 0x88, + 0x88, 0x88, 0x76, 0xcf, 0xff, 0xff, 0xdc, 0xbb, 0xbc, 0xef, 0xff, 0xff, 0xa5, 0x55, 0x67, 0x88, + 0x88, 0x88, 0x86, 0x6a, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe8, 0x55, 0x55, 0x78, 0x88, + 0x88, 0x88, 0x87, 0x65, 0x7b, 0xef, 0xff, 0xff, 0xff, 0xff, 0xda, 0x65, 0x55, 0x57, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x86, 0x55, 0x79, 0xbd, 0xde, 0xdc, 0xb9, 0x65, 0x55, 0x56, 0x78, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x76, 0x55, 0x56, 0x66, 0x66, 0x55, 0x55, 0x55, 0x67, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x87, 0x76, 0x55, 0x55, 0x55, 0x55, 0x56, 0x67, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x77, 0x66, 0x66, 0x66, 0x77, 0x88, 0x88, 0x88, 0x88, 0x88 +}; + +#endif // HAS_GRAPHICAL_TFT diff --git a/Marlin/src/lcd/tft/images/flowrate_32x32x4.cpp b/Marlin/src/lcd/tft/images/flowrate_32x32x4.cpp new file mode 100644 index 000000000..d3c7fd187 --- /dev/null +++ b/Marlin/src/lcd/tft/images/flowrate_32x32x4.cpp @@ -0,0 +1,62 @@ +/** + * Marlin 3D Printer Firmware + * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin] + * + * Based on Sprinter and grbl. + * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + */ + +#include "../../../inc/MarlinConfigPre.h" + +#if HAS_GRAPHICAL_TFT + +extern const uint8_t flowrate_32x32x4[512] = { + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x77, 0x77, 0x88, 0x88, 0x88, 0x87, 0x77, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x77, 0x77, 0x88, 0x88, 0x88, 0x87, 0x77, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x77, 0x78, 0xce, 0xeb, 0x77, 0x77, 0x87, 0x7c, 0xea, 0x78, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x87, 0x89, 0x77, 0xef, 0xfd, 0x67, 0xa8, 0x77, 0x7e, 0xfb, 0x77, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x78, 0xdf, 0xba, 0xff, 0xfe, 0x8b, 0xfd, 0x87, 0x7d, 0xfa, 0x56, 0x87, 0x77, 0x88, 0x88, + 0x87, 0x8d, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc7, 0x7d, 0xfa, 0x56, 0x77, 0x87, 0x77, 0x88, + 0x87, 0x8e, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc6, 0x7d, 0xfa, 0x56, 0x9c, 0xdc, 0x97, 0x78, + 0x87, 0x78, 0xef, 0xff, 0xff, 0xff, 0xff, 0xfd, 0x65, 0x6d, 0xfa, 0x59, 0xff, 0xff, 0xfb, 0x77, + 0x88, 0x89, 0xef, 0xff, 0xa7, 0x7b, 0xff, 0xfd, 0x76, 0x5d, 0xf9, 0x7f, 0xff, 0xff, 0xff, 0x97, + 0x7a, 0xdf, 0xff, 0xfa, 0x55, 0x55, 0xcf, 0xff, 0xec, 0x9c, 0xf9, 0x9f, 0xff, 0xff, 0xff, 0xc6, + 0x7c, 0xff, 0xff, 0xf7, 0x55, 0x55, 0x8f, 0xff, 0xff, 0xac, 0xf9, 0xbf, 0xfd, 0x6c, 0xff, 0xe5, + 0x7c, 0xff, 0xff, 0xf7, 0x56, 0x77, 0xaf, 0xff, 0xff, 0x9b, 0xf9, 0xbf, 0xfe, 0x8d, 0xff, 0xe5, + 0x7a, 0xde, 0xff, 0xfb, 0x56, 0x77, 0xdf, 0xff, 0xed, 0x8c, 0xf9, 0x8f, 0xff, 0xff, 0xff, 0xb5, + 0x87, 0x67, 0xef, 0xff, 0xa8, 0x9c, 0xff, 0xfd, 0x76, 0x5d, 0xf9, 0x6d, 0xff, 0xff, 0xfe, 0x75, + 0x88, 0x66, 0xef, 0xff, 0xff, 0xff, 0xff, 0xfd, 0x65, 0x5c, 0xfa, 0x57, 0xdf, 0xff, 0xd8, 0x55, + 0x87, 0x7d, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc6, 0x6d, 0xfa, 0x55, 0x68, 0xa9, 0x65, 0x55, + 0x87, 0x8d, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc6, 0x7d, 0xfa, 0x56, 0x65, 0x55, 0x55, 0x56, + 0x88, 0x78, 0xdf, 0xa8, 0xff, 0xfe, 0x8a, 0xfc, 0x65, 0x6d, 0xfa, 0x56, 0x77, 0x65, 0x56, 0x67, + 0x88, 0x87, 0x78, 0x55, 0xef, 0xfd, 0x55, 0x86, 0x55, 0x5d, 0xfa, 0x56, 0x88, 0x77, 0x77, 0x88, + 0x88, 0x88, 0x65, 0x55, 0xbe, 0xea, 0x55, 0x55, 0x55, 0x6b, 0xd8, 0x56, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x77, 0x66, 0x76, 0x65, 0x56, 0x76, 0x68, 0xa9, 0x88, 0x88, 0x78, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x87, 0x77, 0x76, 0x55, 0x56, 0x87, 0x7b, 0xff, 0xff, 0xfb, 0x78, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x87, 0x66, 0x67, 0x88, 0x78, 0xef, 0xff, 0xe7, 0x67, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x77, 0x78, 0x88, 0x87, 0xaf, 0xff, 0x95, 0x56, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x7d, 0xfd, 0x65, 0x56, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x79, 0xf8, 0x55, 0x67, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x77, 0x96, 0x55, 0x78, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x65, 0x56, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x76, 0x67, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x77, 0x78, 0x88, 0x88, 0x88, 0x88 +}; + +#endif // HAS_GRAPHICAL_TFT diff --git a/Marlin/src/lcd/tft/images/heated_bed_64x64x4.cpp b/Marlin/src/lcd/tft/images/heated_bed_64x64x4.cpp new file mode 100644 index 000000000..6bc96968d --- /dev/null +++ b/Marlin/src/lcd/tft/images/heated_bed_64x64x4.cpp @@ -0,0 +1,161 @@ +/** + * Marlin 3D Printer Firmware + * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin] + * + * Based on Sprinter and grbl. + * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + */ + +#include "../../../inc/MarlinConfigPre.h" + +#if HAS_GRAPHICAL_TFT + +extern const uint8_t bed_64x64x4[2048] = { + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x78, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x87, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x87, 0xae, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xea, 0x78, 0x88, 0x88, + 0x88, 0x88, 0x87, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfa, 0x67, 0x88, 0x88, + 0x88, 0x88, 0x87, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf9, 0x46, 0x88, 0x88, + 0x88, 0x88, 0x87, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf9, 0x46, 0x88, 0x88, + 0x88, 0x88, 0x87, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf9, 0x56, 0x88, 0x88, + 0x88, 0x88, 0x87, 0x89, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x86, 0x56, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x75, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x56, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x87, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x57, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x87, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88 +}; + +extern const uint8_t bed_heated_64x64x4[2048] = { + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x77, 0x78, 0x88, 0x88, 0x88, 0x77, 0x77, 0x88, 0x88, 0x88, 0x77, 0x77, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x77, 0x9b, 0x97, 0x88, 0x88, 0x87, 0x8b, 0xa8, 0x78, 0x88, 0x87, 0x8b, 0xb8, 0x78, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x79, 0xff, 0xf9, 0x78, 0x88, 0x78, 0xdf, 0xfb, 0x78, 0x88, 0x77, 0xcf, 0xfc, 0x87, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x7a, 0xff, 0xfd, 0x77, 0x88, 0x79, 0xff, 0xff, 0x87, 0x88, 0x78, 0xdf, 0xff, 0x97, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x79, 0xff, 0xff, 0x86, 0x88, 0x78, 0xdf, 0xff, 0xb6, 0x88, 0x77, 0xcf, 0xff, 0xc6, 0x78, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0xbf, 0xff, 0xb6, 0x78, 0x87, 0x9f, 0xff, 0xd6, 0x78, 0x87, 0x8e, 0xff, 0xf7, 0x68, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x7d, 0xff, 0xe6, 0x68, 0x87, 0x7d, 0xff, 0xe7, 0x68, 0x88, 0x7a, 0xff, 0xf9, 0x57, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x7d, 0xff, 0xe5, 0x67, 0x87, 0x7b, 0xff, 0xf7, 0x57, 0x88, 0x79, 0xff, 0xfa, 0x57, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x8d, 0xff, 0xe6, 0x57, 0x87, 0x8c, 0xff, 0xf7, 0x57, 0x88, 0x7a, 0xff, 0xfa, 0x56, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x9f, 0xff, 0xd5, 0x57, 0x87, 0x8e, 0xff, 0xe6, 0x57, 0x88, 0x7c, 0xff, 0xf8, 0x56, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x77, 0xcf, 0xff, 0xa5, 0x57, 0x87, 0xaf, 0xff, 0xd5, 0x57, 0x87, 0x9f, 0xff, 0xe6, 0x56, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x79, 0xff, 0xff, 0x75, 0x57, 0x78, 0xef, 0xff, 0xa5, 0x57, 0x87, 0xcf, 0xff, 0xb5, 0x56, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x7c, 0xff, 0xfb, 0x55, 0x67, 0x7b, 0xff, 0xfe, 0x65, 0x57, 0x79, 0xff, 0xff, 0x85, 0x57, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x9f, 0xff, 0xf7, 0x55, 0x67, 0x8e, 0xff, 0xf8, 0x55, 0x67, 0x7d, 0xff, 0xfb, 0x55, 0x67, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0xcf, 0xff, 0xb5, 0x55, 0x77, 0x9f, 0xff, 0xd6, 0x55, 0x77, 0x8f, 0xff, 0xe7, 0x55, 0x68, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x77, 0xdf, 0xff, 0x75, 0x56, 0x87, 0xbf, 0xff, 0xa5, 0x56, 0x77, 0xaf, 0xff, 0xb5, 0x55, 0x78, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x78, 0xef, 0xfd, 0x65, 0x67, 0x77, 0xcf, 0xff, 0x85, 0x57, 0x87, 0xbf, 0xff, 0x95, 0x56, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x78, 0xef, 0xfd, 0x55, 0x68, 0x77, 0xcf, 0xff, 0x75, 0x68, 0x87, 0xbf, 0xff, 0x95, 0x67, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x78, 0xdf, 0xff, 0x65, 0x78, 0x77, 0xbf, 0xff, 0x95, 0x68, 0x87, 0xaf, 0xff, 0xb5, 0x68, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0xcf, 0xff, 0xb5, 0x78, 0x87, 0xaf, 0xff, 0xd6, 0x68, 0x87, 0x9f, 0xff, 0xe7, 0x68, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x9f, 0xff, 0xf8, 0x68, 0x87, 0x8e, 0xff, 0xf9, 0x68, 0x87, 0x7c, 0xff, 0xfc, 0x67, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x7b, 0xff, 0xfa, 0x58, 0x88, 0x7b, 0xff, 0xfc, 0x57, 0x88, 0x78, 0xff, 0xfe, 0x67, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x77, 0xdf, 0xd7, 0x57, 0x88, 0x87, 0xbf, 0xf8, 0x56, 0x88, 0x87, 0xaf, 0xfa, 0x56, 0x78, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x69, 0x75, 0x56, 0x88, 0x87, 0x68, 0x85, 0x56, 0x78, 0x87, 0x68, 0x85, 0x55, 0x78, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x65, 0x55, 0x57, 0x88, 0x88, 0x75, 0x55, 0x56, 0x88, 0x88, 0x75, 0x55, 0x56, 0x78, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x76, 0x55, 0x67, 0x77, 0x77, 0x76, 0x55, 0x67, 0x77, 0x77, 0x76, 0x55, 0x57, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x87, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x77, 0x88, 0x88, 0x88, 0x88, 0x87, 0x88, 0x88, 0x88, 0x88, 0x87, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x87, 0xae, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xea, 0x78, 0x88, 0x88, + 0x88, 0x88, 0x87, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfa, 0x67, 0x88, 0x88, + 0x88, 0x88, 0x87, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf9, 0x46, 0x88, 0x88, + 0x88, 0x88, 0x87, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf9, 0x46, 0x88, 0x88, + 0x88, 0x88, 0x87, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf9, 0x56, 0x88, 0x88, + 0x88, 0x88, 0x87, 0x89, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x86, 0x56, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x75, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x56, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x87, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x57, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x87, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88 +}; + +#endif // HAS_GRAPHICAL_TFT diff --git a/Marlin/src/lcd/tft/images/hotend_64x64x4.cpp b/Marlin/src/lcd/tft/images/hotend_64x64x4.cpp new file mode 100644 index 000000000..7dbf5f0ab --- /dev/null +++ b/Marlin/src/lcd/tft/images/hotend_64x64x4.cpp @@ -0,0 +1,94 @@ +/** + * Marlin 3D Printer Firmware + * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin] + * + * Based on Sprinter and grbl. + * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + */ + +#include "../../../inc/MarlinConfigPre.h" + +#if HAS_GRAPHICAL_TFT + +extern const uint8_t hotend_64x64x4[2048] = { + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x78, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x7a, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xa7, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x7c, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xb7, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x7c, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xa5, 0x78, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x7c, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xa5, 0x68, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x7c, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xa5, 0x68, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x7c, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xa5, 0x68, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x7c, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xa5, 0x68, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x7c, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xa5, 0x68, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x7c, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xa5, 0x68, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x7c, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xa5, 0x68, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x7c, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xa5, 0x68, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x7c, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xa5, 0x68, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x7c, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xa5, 0x68, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x7c, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xa5, 0x68, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x7c, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xa5, 0x68, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x7c, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xa5, 0x68, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x77, 0x77, 0x77, 0x7c, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x95, 0x67, 0x77, 0x78, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x87, 0x8a, 0xaa, 0xaa, 0xad, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xb8, 0x9a, 0xaa, 0x97, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x87, 0x9f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc7, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x87, 0x9e, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xb5, 0x78, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x87, 0x9e, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xb4, 0x68, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x87, 0x9e, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xb4, 0x68, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x87, 0x9e, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xb4, 0x68, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x87, 0x9e, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xb4, 0x68, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x87, 0x9e, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xb4, 0x68, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x87, 0x9f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xb4, 0x68, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x87, 0x9e, 0xee, 0xee, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xee, 0xa5, 0x68, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x76, 0x66, 0x9e, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xa7, 0x77, 0x65, 0x68, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x86, 0x55, 0x55, 0x57, 0xef, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe9, 0x55, 0x55, 0x55, 0x68, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x66, 0x66, 0x65, 0x6c, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfd, 0x75, 0x55, 0x55, 0x66, 0x78, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x77, 0x77, 0x77, 0x65, 0xaf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc6, 0x55, 0x56, 0x77, 0x77, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x76, 0x58, 0xef, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfa, 0x55, 0x55, 0x67, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x65, 0x7d, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x85, 0x55, 0x56, 0x78, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x56, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc7, 0x55, 0x55, 0x78, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x75, 0x59, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfa, 0x55, 0x55, 0x67, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x65, 0x7e, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x95, 0x55, 0x56, 0x78, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x56, 0xcf, 0xff, 0xff, 0xff, 0xd7, 0x55, 0x55, 0x67, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x75, 0x5a, 0xff, 0xff, 0xfb, 0x65, 0x55, 0x67, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x65, 0x8d, 0xfe, 0xa5, 0x55, 0x56, 0x78, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x86, 0x56, 0x87, 0x55, 0x55, 0x67, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x75, 0x55, 0x55, 0x57, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x65, 0x56, 0x78, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x77, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88 +}; + +#endif // HAS_GRAPHICAL_TFT diff --git a/Marlin/src/lcd/tft/images/increase_64x64x4.cpp b/Marlin/src/lcd/tft/images/increase_64x64x4.cpp new file mode 100644 index 000000000..c6f34d1af --- /dev/null +++ b/Marlin/src/lcd/tft/images/increase_64x64x4.cpp @@ -0,0 +1,94 @@ +/** + * Marlin 3D Printer Firmware + * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin] + * + * Based on Sprinter and grbl. + * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + */ + +#include "../../../inc/MarlinConfigPre.h" + +#if HAS_GRAPHICAL_TFT + +extern const uint8_t increase_64x64x4[2048] = { + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x77, 0x77, 0x77, 0x77, 0x78, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x7a, 0xff, 0xff, 0xff, 0xff, 0xc7, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x7a, 0xff, 0xff, 0xff, 0xff, 0xb6, 0x78, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x7a, 0xff, 0xff, 0xff, 0xff, 0xb6, 0x78, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x7a, 0xff, 0xff, 0xff, 0xff, 0xb6, 0x68, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x7a, 0xff, 0xff, 0xff, 0xff, 0xb6, 0x68, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x7a, 0xff, 0xff, 0xff, 0xff, 0xb6, 0x68, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x7a, 0xff, 0xff, 0xff, 0xff, 0xb6, 0x68, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x7a, 0xff, 0xff, 0xff, 0xff, 0xb6, 0x68, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x7a, 0xff, 0xff, 0xff, 0xff, 0xb6, 0x68, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x7a, 0xff, 0xff, 0xff, 0xff, 0xb6, 0x68, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x7a, 0xff, 0xff, 0xff, 0xff, 0xb6, 0x68, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x77, 0x77, 0x77, 0x77, 0x77, 0x7a, 0xff, 0xff, 0xff, 0xff, 0xb5, 0x67, 0x77, 0x77, 0x77, 0x77, 0x77, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x7b, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcd, 0xff, 0xff, 0xff, 0xff, 0xdb, 0xbc, 0xcc, 0xcc, 0xcc, 0xcc, 0xc8, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x78, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x7e, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf7, 0x67, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x7e, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf7, 0x67, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x7e, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf7, 0x67, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x7e, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf7, 0x67, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x7e, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf7, 0x67, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x7e, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf7, 0x67, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf7, 0x67, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x89, 0x99, 0x99, 0x99, 0x99, 0x99, 0x9b, 0xff, 0xff, 0xff, 0xff, 0xd9, 0x99, 0x99, 0x99, 0x99, 0x99, 0x96, 0x67, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x66, 0x66, 0x66, 0x66, 0x66, 0x69, 0xff, 0xff, 0xff, 0xff, 0xb6, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x67, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x66, 0x66, 0x66, 0x66, 0x66, 0x69, 0xff, 0xff, 0xff, 0xff, 0xb6, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x67, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x77, 0x77, 0x77, 0x77, 0x77, 0x7a, 0xff, 0xff, 0xff, 0xff, 0xb6, 0x67, 0x77, 0x77, 0x77, 0x77, 0x77, 0x78, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x7a, 0xff, 0xff, 0xff, 0xff, 0xb6, 0x78, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x7a, 0xff, 0xff, 0xff, 0xff, 0xb6, 0x68, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x7a, 0xff, 0xff, 0xff, 0xff, 0xb6, 0x68, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x7a, 0xff, 0xff, 0xff, 0xff, 0xb6, 0x68, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x7a, 0xff, 0xff, 0xff, 0xff, 0xb6, 0x68, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x7a, 0xff, 0xff, 0xff, 0xff, 0xb6, 0x68, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x7a, 0xff, 0xff, 0xff, 0xff, 0xb6, 0x68, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x7a, 0xff, 0xff, 0xff, 0xff, 0xb6, 0x68, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x7a, 0xee, 0xee, 0xee, 0xee, 0xa6, 0x68, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x76, 0x66, 0x66, 0x66, 0x66, 0x68, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x76, 0x66, 0x66, 0x66, 0x66, 0x68, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x76, 0x66, 0x66, 0x66, 0x66, 0x78, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88 +}; + +#endif // HAS_GRAPHICAL_TFT diff --git a/Marlin/src/lcd/tft/images/left_32x32x4.cpp b/Marlin/src/lcd/tft/images/left_32x32x4.cpp new file mode 100644 index 000000000..a855f0c19 --- /dev/null +++ b/Marlin/src/lcd/tft/images/left_32x32x4.cpp @@ -0,0 +1,62 @@ +/** + * Marlin 3D Printer Firmware + * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin] + * + * Based on Sprinter and grbl. + * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + */ + +#include "../../../inc/MarlinConfigPre.h" + +#if HAS_GRAPHICAL_TFT + +extern const uint8_t left_32x32x4[512] = { + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x77, 0x77, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x77, 0xaf, 0x87, 0x78, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x7a, 0xff, 0xf7, 0x78, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x77, 0xaf, 0xff, 0xff, 0x87, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x7a, 0xff, 0xff, 0xfb, 0x46, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x77, 0xaf, 0xff, 0xff, 0xa3, 0x34, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x7a, 0xff, 0xff, 0xfb, 0x34, 0x47, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x77, 0xaf, 0xff, 0xff, 0xb3, 0x44, 0x78, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x79, 0xff, 0xff, 0xfb, 0x34, 0x48, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x77, 0x9f, 0xff, 0xff, 0xa3, 0x44, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x87, 0x79, 0xff, 0xff, 0xfa, 0x34, 0x48, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x77, 0xaf, 0xff, 0xff, 0xa3, 0x34, 0x78, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x87, 0x7a, 0xff, 0xff, 0xfa, 0x33, 0x47, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x87, 0x8d, 0xff, 0xff, 0xf6, 0x34, 0x78, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x87, 0x76, 0xbf, 0xff, 0xff, 0x67, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x87, 0x3b, 0xff, 0xff, 0xf8, 0x77, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x73, 0xcf, 0xff, 0xff, 0x87, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x3c, 0xff, 0xff, 0xf8, 0x78, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x83, 0xcf, 0xff, 0xff, 0x77, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x3b, 0xff, 0xff, 0xf7, 0x78, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x74, 0xbf, 0xff, 0xff, 0x87, 0x78, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x4b, 0xff, 0xff, 0xf8, 0x78, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x74, 0xbf, 0xff, 0xff, 0x87, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x4b, 0xff, 0xf9, 0x46, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x74, 0xcf, 0x93, 0x34, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x4b, 0x34, 0x47, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x73, 0x34, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x47, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88 +}; + +#endif // HAS_GRAPHICAL_TFT diff --git a/Marlin/src/lcd/tft/images/leveling_32x32x4.cpp b/Marlin/src/lcd/tft/images/leveling_32x32x4.cpp new file mode 100644 index 000000000..f0bb73e93 --- /dev/null +++ b/Marlin/src/lcd/tft/images/leveling_32x32x4.cpp @@ -0,0 +1,62 @@ +/** + * Marlin 3D Printer Firmware + * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin] + * + * Based on Sprinter and grbl. + * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + */ + +#include "../../../inc/MarlinConfigPre.h" + +#if HAS_GRAPHICAL_TFT + +extern const uint8_t leveling_32x32x4[512] = { + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x87, 0x89, 0x99, 0x99, 0x99, 0x99, 0x87, 0x78, 0x88, 0x77, 0x78, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x87, 0xaf, 0xff, 0xff, 0xff, 0xff, 0xe6, 0x88, 0x87, 0x7b, 0x77, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x87, 0xaf, 0xff, 0xff, 0xff, 0xff, 0xc4, 0x88, 0x87, 0x8f, 0x97, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x77, 0xaf, 0xff, 0xff, 0xff, 0xff, 0xd4, 0x88, 0x77, 0xef, 0xf5, 0x88, 0x88, 0x88, + 0x88, 0x87, 0x77, 0xaf, 0xff, 0xff, 0xff, 0xff, 0xc5, 0x88, 0x7a, 0xff, 0xfc, 0x78, 0x88, 0x88, + 0x88, 0x87, 0x8f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x97, 0x7a, 0x88, 0x88, 0x58, 0x88, 0x88, + 0x88, 0x87, 0x8f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x66, 0x87, 0x45, 0x55, 0x57, 0x88, 0x88, + 0x88, 0x87, 0x8f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x76, 0x88, 0x77, 0x78, 0x88, 0x88, 0x88, + 0x88, 0x87, 0x85, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xc5, 0x56, 0x7c, 0xff, 0xfe, 0x67, 0x88, 0x88, + 0x88, 0x88, 0x86, 0x55, 0xef, 0xff, 0xff, 0xf9, 0x45, 0x57, 0x86, 0xff, 0xf5, 0x57, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x87, 0x4c, 0xff, 0xff, 0x74, 0x57, 0x88, 0x87, 0x8f, 0xa4, 0x68, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x84, 0x9f, 0xd5, 0x45, 0x78, 0x88, 0x88, 0x7c, 0x55, 0x88, 0x88, 0x88, + 0x87, 0x77, 0x77, 0x77, 0x88, 0x65, 0x55, 0x68, 0x87, 0x77, 0x77, 0x86, 0x57, 0x87, 0x77, 0x78, + 0x77, 0x77, 0x77, 0x77, 0x77, 0x76, 0x56, 0x77, 0x77, 0x77, 0x77, 0x77, 0x67, 0x77, 0x77, 0x77, + 0x7b, 0xfe, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xef, 0xb7, + 0x7c, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xb6, + 0x7c, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xb5, + 0x78, 0x67, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x66, + 0x87, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x67, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88 +}; + +#endif // HAS_GRAPHICAL_TFT diff --git a/Marlin/src/lcd/tft/images/menu_64x64x4.cpp b/Marlin/src/lcd/tft/images/menu_64x64x4.cpp new file mode 100644 index 000000000..89cd56b8d --- /dev/null +++ b/Marlin/src/lcd/tft/images/menu_64x64x4.cpp @@ -0,0 +1,94 @@ +/** + * Marlin 3D Printer Firmware + * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin] + * + * Based on Sprinter and grbl. + * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + */ + +#include "../../../inc/MarlinConfigPre.h" + +#if HAS_GRAPHICAL_TFT + +extern const uint8_t menu_64x64x4[2048] = { + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x87, 0x77, 0x77, 0x88, 0x88, 0x87, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x78, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x79, 0xaa, 0x98, 0x88, 0x88, 0x88, 0x9a, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0x98, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x87, 0x9e, 0xff, 0xfa, 0x78, 0x88, 0x8a, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf9, 0x78, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x87, 0xaf, 0xff, 0xfb, 0x66, 0x88, 0x8b, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x67, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x87, 0xaf, 0xff, 0xfb, 0x66, 0x88, 0x8b, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf9, 0x67, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x87, 0x9f, 0xff, 0xfa, 0x66, 0x88, 0x8a, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x67, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x8a, 0xbb, 0xa7, 0x67, 0x88, 0x88, 0xab, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xa6, 0x67, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x87, 0x66, 0x66, 0x67, 0x88, 0x88, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x67, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x87, 0x66, 0x66, 0x67, 0x88, 0x88, 0x76, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x67, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x77, 0x77, 0x78, 0x88, 0x88, 0x87, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x78, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x87, 0x77, 0x77, 0x88, 0x88, 0x87, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x78, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x79, 0xaa, 0x98, 0x88, 0x88, 0x88, 0x9a, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0x98, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x87, 0x9e, 0xff, 0xfa, 0x78, 0x88, 0x8a, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf9, 0x78, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x87, 0xaf, 0xff, 0xfb, 0x66, 0x88, 0x8b, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x67, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x87, 0xaf, 0xff, 0xfb, 0x66, 0x88, 0x8b, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf9, 0x67, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x87, 0x9f, 0xff, 0xfa, 0x66, 0x88, 0x8a, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x67, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x8a, 0xbb, 0xa7, 0x67, 0x88, 0x88, 0xab, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xa6, 0x67, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x87, 0x66, 0x66, 0x67, 0x88, 0x88, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x67, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x87, 0x66, 0x66, 0x67, 0x88, 0x88, 0x76, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x67, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x77, 0x77, 0x78, 0x88, 0x88, 0x87, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x78, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x87, 0x77, 0x77, 0x88, 0x88, 0x87, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x78, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x79, 0xaa, 0x98, 0x88, 0x88, 0x88, 0x9a, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0x98, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x87, 0x9e, 0xff, 0xfa, 0x78, 0x88, 0x8a, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf9, 0x78, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x87, 0xaf, 0xff, 0xfb, 0x66, 0x88, 0x8b, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x67, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x87, 0xaf, 0xff, 0xfb, 0x66, 0x88, 0x8b, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf9, 0x67, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x87, 0x9f, 0xff, 0xfa, 0x66, 0x88, 0x8a, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x67, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x8a, 0xbb, 0xa7, 0x67, 0x88, 0x88, 0xab, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xa6, 0x67, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x87, 0x66, 0x66, 0x67, 0x88, 0x88, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x67, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x87, 0x66, 0x66, 0x67, 0x88, 0x88, 0x76, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x67, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x77, 0x77, 0x78, 0x88, 0x88, 0x87, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x78, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x87, 0x77, 0x77, 0x88, 0x88, 0x87, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x78, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x79, 0xaa, 0x98, 0x88, 0x88, 0x88, 0x9a, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0x98, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x87, 0x9e, 0xff, 0xfa, 0x78, 0x88, 0x8a, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf9, 0x78, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x87, 0xaf, 0xff, 0xfb, 0x66, 0x88, 0x8b, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x67, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x87, 0xaf, 0xff, 0xfb, 0x66, 0x88, 0x8b, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf9, 0x67, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x87, 0x9f, 0xff, 0xfa, 0x66, 0x88, 0x8a, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x67, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x8a, 0xbb, 0xa7, 0x67, 0x88, 0x88, 0xab, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xa6, 0x67, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x87, 0x66, 0x66, 0x67, 0x88, 0x88, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x67, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x87, 0x66, 0x66, 0x67, 0x88, 0x88, 0x76, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x67, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x77, 0x77, 0x78, 0x88, 0x88, 0x87, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x78, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x87, 0x77, 0x77, 0x88, 0x88, 0x87, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x78, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x79, 0xaa, 0x98, 0x88, 0x88, 0x88, 0x9a, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0x98, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x87, 0x9e, 0xff, 0xfa, 0x78, 0x88, 0x8a, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf9, 0x78, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x87, 0xaf, 0xff, 0xfb, 0x66, 0x88, 0x8b, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x67, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x87, 0xaf, 0xff, 0xfb, 0x66, 0x88, 0x8b, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf9, 0x67, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x87, 0x9f, 0xff, 0xfa, 0x66, 0x88, 0x8a, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x67, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x8a, 0xbb, 0xa7, 0x67, 0x88, 0x88, 0xab, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xa6, 0x67, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x87, 0x66, 0x66, 0x67, 0x88, 0x88, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x67, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x87, 0x66, 0x66, 0x67, 0x88, 0x88, 0x76, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x67, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x77, 0x77, 0x78, 0x88, 0x88, 0x87, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x78, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88 +}; + +#endif // HAS_GRAPHICAL_TFT diff --git a/Marlin/src/lcd/tft/images/pause_64x64x4.cpp b/Marlin/src/lcd/tft/images/pause_64x64x4.cpp new file mode 100644 index 000000000..b88651c10 --- /dev/null +++ b/Marlin/src/lcd/tft/images/pause_64x64x4.cpp @@ -0,0 +1,94 @@ +/** + * Marlin 3D Printer Firmware + * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin] + * + * Based on Sprinter and grbl. + * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + */ + +#include "../../../inc/MarlinConfigPre.h" + +#if HAS_GRAPHICAL_TFT + +extern const uint8_t pause_64x64x4[2048] = { + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x77, 0x77, 0x77, 0x77, 0x78, 0x88, 0x88, 0x88, 0x88, 0x87, 0x77, 0x77, 0x77, 0x77, 0x78, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x9f, 0xff, 0xff, 0xff, 0xff, 0xd8, 0x78, 0x88, 0x88, 0x87, 0x8d, 0xff, 0xff, 0xff, 0xff, 0xf9, 0x78, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x9f, 0xff, 0xff, 0xff, 0xff, 0xe8, 0x78, 0x88, 0x88, 0x87, 0x8e, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x77, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x9f, 0xff, 0xff, 0xff, 0xff, 0xe7, 0x67, 0x88, 0x88, 0x87, 0x8e, 0xff, 0xff, 0xff, 0xff, 0xf7, 0x67, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x9f, 0xff, 0xff, 0xff, 0xff, 0xe7, 0x67, 0x88, 0x88, 0x87, 0x8e, 0xff, 0xff, 0xff, 0xff, 0xf7, 0x67, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x9f, 0xff, 0xff, 0xff, 0xff, 0xe7, 0x67, 0x88, 0x88, 0x87, 0x8e, 0xff, 0xff, 0xff, 0xff, 0xf7, 0x67, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x9f, 0xff, 0xff, 0xff, 0xff, 0xe7, 0x67, 0x88, 0x88, 0x87, 0x8e, 0xff, 0xff, 0xff, 0xff, 0xf7, 0x67, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x9f, 0xff, 0xff, 0xff, 0xff, 0xe7, 0x67, 0x88, 0x88, 0x87, 0x8e, 0xff, 0xff, 0xff, 0xff, 0xf7, 0x67, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x9f, 0xff, 0xff, 0xff, 0xff, 0xe7, 0x67, 0x88, 0x88, 0x87, 0x8e, 0xff, 0xff, 0xff, 0xff, 0xf7, 0x67, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x9f, 0xff, 0xff, 0xff, 0xff, 0xe7, 0x67, 0x88, 0x88, 0x87, 0x8e, 0xff, 0xff, 0xff, 0xff, 0xf7, 0x67, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x9f, 0xff, 0xff, 0xff, 0xff, 0xe7, 0x67, 0x88, 0x88, 0x87, 0x8e, 0xff, 0xff, 0xff, 0xff, 0xf7, 0x67, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x9f, 0xff, 0xff, 0xff, 0xff, 0xe7, 0x67, 0x88, 0x88, 0x87, 0x8e, 0xff, 0xff, 0xff, 0xff, 0xf7, 0x67, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x9f, 0xff, 0xff, 0xff, 0xff, 0xe7, 0x67, 0x88, 0x88, 0x87, 0x8e, 0xff, 0xff, 0xff, 0xff, 0xf7, 0x67, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x9f, 0xff, 0xff, 0xff, 0xff, 0xe7, 0x67, 0x88, 0x88, 0x87, 0x8e, 0xff, 0xff, 0xff, 0xff, 0xf7, 0x67, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x9f, 0xff, 0xff, 0xff, 0xff, 0xe7, 0x67, 0x88, 0x88, 0x87, 0x8e, 0xff, 0xff, 0xff, 0xff, 0xf7, 0x67, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x9f, 0xff, 0xff, 0xff, 0xff, 0xe7, 0x67, 0x88, 0x88, 0x87, 0x8e, 0xff, 0xff, 0xff, 0xff, 0xf7, 0x67, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x9f, 0xff, 0xff, 0xff, 0xff, 0xe7, 0x67, 0x88, 0x88, 0x87, 0x8e, 0xff, 0xff, 0xff, 0xff, 0xf7, 0x67, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x9f, 0xff, 0xff, 0xff, 0xff, 0xe7, 0x67, 0x88, 0x88, 0x87, 0x8e, 0xff, 0xff, 0xff, 0xff, 0xf7, 0x67, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x9f, 0xff, 0xff, 0xff, 0xff, 0xe7, 0x67, 0x88, 0x88, 0x87, 0x8e, 0xff, 0xff, 0xff, 0xff, 0xf7, 0x67, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x9f, 0xff, 0xff, 0xff, 0xff, 0xe7, 0x67, 0x88, 0x88, 0x87, 0x8e, 0xff, 0xff, 0xff, 0xff, 0xf7, 0x67, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x9f, 0xff, 0xff, 0xff, 0xff, 0xe7, 0x67, 0x88, 0x88, 0x87, 0x8e, 0xff, 0xff, 0xff, 0xff, 0xf7, 0x67, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x9f, 0xff, 0xff, 0xff, 0xff, 0xe7, 0x67, 0x88, 0x88, 0x87, 0x8e, 0xff, 0xff, 0xff, 0xff, 0xf7, 0x67, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x9f, 0xff, 0xff, 0xff, 0xff, 0xe7, 0x67, 0x88, 0x88, 0x87, 0x8e, 0xff, 0xff, 0xff, 0xff, 0xf7, 0x67, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x9f, 0xff, 0xff, 0xff, 0xff, 0xe7, 0x67, 0x88, 0x88, 0x87, 0x8e, 0xff, 0xff, 0xff, 0xff, 0xf7, 0x67, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x9f, 0xff, 0xff, 0xff, 0xff, 0xe7, 0x67, 0x88, 0x88, 0x87, 0x8e, 0xff, 0xff, 0xff, 0xff, 0xf7, 0x67, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x9f, 0xff, 0xff, 0xff, 0xff, 0xe7, 0x67, 0x88, 0x88, 0x87, 0x8e, 0xff, 0xff, 0xff, 0xff, 0xf7, 0x67, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x9f, 0xff, 0xff, 0xff, 0xff, 0xe7, 0x67, 0x88, 0x88, 0x87, 0x8e, 0xff, 0xff, 0xff, 0xff, 0xf7, 0x67, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x9f, 0xff, 0xff, 0xff, 0xff, 0xe7, 0x67, 0x88, 0x88, 0x87, 0x8e, 0xff, 0xff, 0xff, 0xff, 0xf7, 0x67, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x9f, 0xff, 0xff, 0xff, 0xff, 0xe7, 0x67, 0x88, 0x88, 0x87, 0x8e, 0xff, 0xff, 0xff, 0xff, 0xf7, 0x67, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x9f, 0xff, 0xff, 0xff, 0xff, 0xe7, 0x67, 0x88, 0x88, 0x87, 0x8e, 0xff, 0xff, 0xff, 0xff, 0xf7, 0x67, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x9f, 0xff, 0xff, 0xff, 0xff, 0xe7, 0x67, 0x88, 0x88, 0x87, 0x8e, 0xff, 0xff, 0xff, 0xff, 0xf7, 0x67, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x9f, 0xff, 0xff, 0xff, 0xff, 0xe7, 0x67, 0x88, 0x88, 0x87, 0x8e, 0xff, 0xff, 0xff, 0xff, 0xf7, 0x67, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x9f, 0xff, 0xff, 0xff, 0xff, 0xe7, 0x67, 0x88, 0x88, 0x87, 0x8e, 0xff, 0xff, 0xff, 0xff, 0xf7, 0x67, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x9f, 0xff, 0xff, 0xff, 0xff, 0xe7, 0x67, 0x88, 0x88, 0x87, 0x8e, 0xff, 0xff, 0xff, 0xff, 0xf7, 0x67, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x9f, 0xff, 0xff, 0xff, 0xff, 0xe7, 0x67, 0x88, 0x88, 0x87, 0x8e, 0xff, 0xff, 0xff, 0xff, 0xf7, 0x67, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x9f, 0xff, 0xff, 0xff, 0xff, 0xe7, 0x67, 0x88, 0x88, 0x87, 0x8e, 0xff, 0xff, 0xff, 0xff, 0xf7, 0x67, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x9f, 0xff, 0xff, 0xff, 0xff, 0xd7, 0x67, 0x88, 0x88, 0x87, 0x8d, 0xff, 0xff, 0xff, 0xff, 0xf7, 0x67, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x77, 0x77, 0x77, 0x77, 0x76, 0x67, 0x88, 0x88, 0x88, 0x88, 0x77, 0x77, 0x77, 0x77, 0x76, 0x67, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x66, 0x66, 0x66, 0x66, 0x66, 0x67, 0x88, 0x88, 0x88, 0x87, 0x66, 0x66, 0x66, 0x66, 0x66, 0x67, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x66, 0x66, 0x66, 0x66, 0x66, 0x77, 0x88, 0x88, 0x88, 0x87, 0x76, 0x66, 0x66, 0x66, 0x66, 0x67, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x77, 0x77, 0x77, 0x77, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x77, 0x77, 0x77, 0x77, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88 +}; + +#endif // HAS_GRAPHICAL_TFT diff --git a/Marlin/src/lcd/tft/images/refresh_32x32x4.cpp b/Marlin/src/lcd/tft/images/refresh_32x32x4.cpp new file mode 100644 index 000000000..48ca294ca --- /dev/null +++ b/Marlin/src/lcd/tft/images/refresh_32x32x4.cpp @@ -0,0 +1,62 @@ +/** + * Marlin 3D Printer Firmware + * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin] + * + * Based on Sprinter and grbl. + * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + */ + +#include "../../../inc/MarlinConfigPre.h" + +#if HAS_GRAPHICAL_TFT + +extern const uint8_t refresh_32x32x4[512] = { + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x78, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x79, 0x87, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x9f, 0x67, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x79, 0xff, 0x57, 0x78, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0xaf, 0xff, 0x9a, 0x87, 0x78, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x79, 0xff, 0xff, 0xff, 0xfe, 0x97, 0x78, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0xaf, 0xff, 0xce, 0xff, 0xfd, 0x77, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x77, 0x88, 0x6a, 0xff, 0x55, 0x5c, 0xff, 0xd7, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x87, 0xa7, 0x78, 0x86, 0x9f, 0x57, 0x75, 0x8f, 0xfb, 0x78, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x78, 0xfc, 0x78, 0x88, 0x69, 0x67, 0x88, 0x69, 0xff, 0x78, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x7c, 0xff, 0x58, 0x88, 0x87, 0x58, 0x88, 0x86, 0xff, 0xa7, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x7e, 0xfa, 0x58, 0x88, 0x88, 0x88, 0x88, 0x87, 0xbf, 0xe5, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x7f, 0xf8, 0x68, 0x88, 0x88, 0x88, 0x88, 0x87, 0xaf, 0xf5, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x7f, 0xf8, 0x68, 0x88, 0x88, 0x88, 0x88, 0x87, 0xaf, 0xf5, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x7e, 0xfa, 0x68, 0x88, 0x88, 0x88, 0x88, 0x87, 0xcf, 0xe5, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x7c, 0xff, 0x68, 0x88, 0x87, 0x78, 0x88, 0x77, 0xff, 0xa5, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x78, 0xff, 0xa7, 0x88, 0x78, 0xb7, 0x88, 0x77, 0xbf, 0x66, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x87, 0xbf, 0xf9, 0x77, 0x77, 0xfb, 0x78, 0x88, 0x68, 0x57, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x6d, 0xff, 0xd8, 0x77, 0xff, 0xb7, 0x78, 0x87, 0x68, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x85, 0xcf, 0xff, 0xfd, 0xff, 0xfb, 0x78, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x57, 0xef, 0xff, 0xff, 0xff, 0x87, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x55, 0x89, 0xff, 0xf8, 0x47, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x65, 0xff, 0x75, 0x78, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0xf7, 0x57, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x78, 0x75, 0x78, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x67, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88 +}; + +#endif // HAS_GRAPHICAL_TFT diff --git a/Marlin/src/lcd/tft/images/right_32x32x4.cpp b/Marlin/src/lcd/tft/images/right_32x32x4.cpp new file mode 100644 index 000000000..6ca5867e9 --- /dev/null +++ b/Marlin/src/lcd/tft/images/right_32x32x4.cpp @@ -0,0 +1,62 @@ +/** + * Marlin 3D Printer Firmware + * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin] + * + * Based on Sprinter and grbl. + * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + */ + +#include "../../../inc/MarlinConfigPre.h" + +#if HAS_GRAPHICAL_TFT + +extern const uint8_t right_32x32x4[512] = { + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x77, 0x77, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x77, 0x8f, 0xa7, 0x78, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x87, 0x78, 0xff, 0xf9, 0x77, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x87, 0x8f, 0xff, 0xff, 0x97, 0x78, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x87, 0x7b, 0xff, 0xff, 0xf9, 0x77, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x84, 0xaf, 0xff, 0xff, 0x97, 0x78, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x3a, 0xff, 0xff, 0xf9, 0x77, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x83, 0xaf, 0xff, 0xff, 0x97, 0x78, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x3a, 0xff, 0xff, 0xf9, 0x77, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x83, 0xaf, 0xff, 0xff, 0x97, 0x78, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x4a, 0xff, 0xff, 0xf9, 0x77, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x74, 0x9f, 0xff, 0xff, 0x97, 0x78, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x49, 0xff, 0xff, 0xfa, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x76, 0xff, 0xff, 0xfc, 0x67, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x77, 0x9f, 0xff, 0xff, 0xc4, 0x36, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x79, 0xff, 0xff, 0xfc, 0x33, 0x46, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x77, 0x9f, 0xff, 0xff, 0xc3, 0x34, 0x78, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x79, 0xff, 0xff, 0xfd, 0x33, 0x47, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x8f, 0xff, 0xff, 0xd3, 0x44, 0x78, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x78, 0xff, 0xff, 0xfc, 0x34, 0x47, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x77, 0x8f, 0xff, 0xff, 0xc3, 0x44, 0x78, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x87, 0x78, 0xff, 0xff, 0xfc, 0x33, 0x47, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x87, 0x9f, 0xff, 0xff, 0xc4, 0x34, 0x78, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x87, 0x8a, 0xff, 0xfc, 0x43, 0x47, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x84, 0x8f, 0xc4, 0x34, 0x78, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x4a, 0x53, 0x47, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x84, 0x34, 0x78, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x56, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88 +}; + +#endif // HAS_GRAPHICAL_TFT diff --git a/Marlin/src/lcd/tft/images/sd_64x64x4.cpp b/Marlin/src/lcd/tft/images/sd_64x64x4.cpp new file mode 100644 index 000000000..6991ff68c --- /dev/null +++ b/Marlin/src/lcd/tft/images/sd_64x64x4.cpp @@ -0,0 +1,94 @@ +/** + * Marlin 3D Printer Firmware + * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin] + * + * Based on Sprinter and grbl. + * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + */ + +#include "../../../inc/MarlinConfigPre.h" + +#if HAS_GRAPHICAL_TFT + +extern const uint8_t sd_64x64x4[2048] = { + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x78, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x8c, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfd, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x78, 0xcf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfd, 0x66, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x8c, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x45, 0x78, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x77, 0xcf, 0xff, 0xff, 0xff, 0xff, 0xed, 0xff, 0xfe, 0xdf, 0xff, 0xfd, 0xef, 0xff, 0xde, 0xff, 0xff, 0xfc, 0x55, 0x78, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x7b, 0xff, 0xff, 0xff, 0xff, 0xff, 0x85, 0xbf, 0xfa, 0x4b, 0xff, 0xa4, 0xaf, 0xfb, 0x59, 0xff, 0xff, 0xfc, 0x55, 0x78, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x77, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0x84, 0xbf, 0xf9, 0x3a, 0xff, 0xa3, 0x9f, 0xfb, 0x48, 0xff, 0xff, 0xfc, 0x55, 0x78, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x7b, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x84, 0xbf, 0xf9, 0x4b, 0xff, 0xa4, 0xaf, 0xfb, 0x49, 0xff, 0xff, 0xfc, 0x55, 0x78, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x77, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x84, 0xcf, 0xf9, 0x4b, 0xff, 0xa4, 0xaf, 0xfb, 0x49, 0xff, 0xff, 0xfc, 0x55, 0x78, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x7b, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x84, 0xcf, 0xf9, 0x4b, 0xff, 0xa4, 0xaf, 0xfb, 0x49, 0xff, 0xff, 0xfc, 0x55, 0x78, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x84, 0xcf, 0xf9, 0x4b, 0xff, 0xa4, 0xaf, 0xfb, 0x49, 0xff, 0xff, 0xfc, 0x55, 0x78, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x7a, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x84, 0xbf, 0xf9, 0x3a, 0xff, 0xa3, 0xaf, 0xfb, 0x39, 0xff, 0xff, 0xfc, 0x55, 0x78, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x9e, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x96, 0xcf, 0xfa, 0x5b, 0xff, 0xb5, 0xbf, 0xfc, 0x5a, 0xff, 0xff, 0xfc, 0x55, 0x78, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x9f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xef, 0xff, 0xfe, 0xff, 0xff, 0xef, 0xff, 0xff, 0xfc, 0x55, 0x78, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x9f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x55, 0x78, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x9f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x55, 0x78, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x9f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x55, 0x78, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x9f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x55, 0x78, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x9f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x55, 0x78, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x9f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x55, 0x78, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x9f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x55, 0x78, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x9f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x55, 0x78, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x9f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x55, 0x78, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x9f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x55, 0x78, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x9f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x55, 0x78, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x9f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x55, 0x78, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x9f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x55, 0x78, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x9f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x55, 0x78, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x9f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x55, 0x78, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x9f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x55, 0x78, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x9f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x55, 0x78, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x9f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x55, 0x78, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x9f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x55, 0x78, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x9f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x55, 0x78, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x9f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x55, 0x78, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x9f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x55, 0x78, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x9f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x55, 0x78, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x9f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x55, 0x78, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x9f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x55, 0x78, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x9f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x55, 0x78, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x9e, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x55, 0x78, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x9f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x55, 0x78, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x9f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x55, 0x78, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x9f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x55, 0x78, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x9f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x55, 0x78, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x9f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x55, 0x78, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x9f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x55, 0x78, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x9f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x55, 0x78, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x9e, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x55, 0x78, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x76, 0x45, 0x78, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x86, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x45, 0x78, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x56, 0x78, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88 +}; + +#endif // HAS_GRAPHICAL_TFT diff --git a/Marlin/src/lcd/tft/images/settings_64x64x4.cpp b/Marlin/src/lcd/tft/images/settings_64x64x4.cpp new file mode 100644 index 000000000..7a9c84fdf --- /dev/null +++ b/Marlin/src/lcd/tft/images/settings_64x64x4.cpp @@ -0,0 +1,94 @@ +/** + * Marlin 3D Printer Firmware + * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin] + * + * Based on Sprinter and grbl. + * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + */ + +#include "../../../inc/MarlinConfigPre.h" + +#if HAS_GRAPHICAL_TFT + +extern const uint8_t settings_64x64x4[2048] = { + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x77, 0x77, 0x77, 0x77, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0xad, 0xdd, 0xdd, 0xd9, 0x78, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x78, 0x88, 0x77, 0xef, 0xff, 0xff, 0xfb, 0x78, 0x88, 0x87, 0x78, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x77, 0x87, 0x78, 0x79, 0xff, 0xff, 0xff, 0xfd, 0x67, 0x87, 0x78, 0x77, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x8d, 0xeb, 0x87, 0x7b, 0xff, 0xff, 0xff, 0xff, 0x75, 0x78, 0xce, 0xb7, 0x78, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x78, 0xdf, 0xff, 0xea, 0xaf, 0xff, 0xff, 0xff, 0xff, 0xd8, 0xbf, 0xff, 0xfb, 0x77, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x8e, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xb7, 0x78, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x78, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfb, 0x78, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x7a, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x77, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x78, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x56, 0x78, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x77, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xeb, 0x98, 0x8a, 0xcf, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x56, 0x78, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x7e, 0xff, 0xff, 0xff, 0xfb, 0x65, 0x55, 0x55, 0x57, 0xdf, 0xff, 0xff, 0xff, 0xb5, 0x56, 0x78, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x77, 0x6c, 0xff, 0xff, 0xff, 0x95, 0x56, 0x66, 0x66, 0x65, 0x5b, 0xff, 0xff, 0xff, 0x95, 0x57, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x77, 0x78, 0xaf, 0xff, 0xff, 0xfa, 0x56, 0x66, 0x67, 0x77, 0x77, 0x65, 0xdf, 0xff, 0xff, 0xd7, 0x67, 0x78, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x89, 0xce, 0xff, 0xff, 0xff, 0xd5, 0x56, 0x67, 0x88, 0x88, 0x88, 0x86, 0x7f, 0xff, 0xff, 0xff, 0xdb, 0x87, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x8f, 0xff, 0xff, 0xff, 0xff, 0x95, 0x66, 0x78, 0x88, 0x88, 0x88, 0x88, 0x6c, 0xff, 0xff, 0xff, 0xff, 0xd7, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x9f, 0xff, 0xff, 0xff, 0xfe, 0x75, 0x67, 0x88, 0x88, 0x88, 0x88, 0x88, 0x7a, 0xff, 0xff, 0xff, 0xff, 0xe6, 0x78, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x9f, 0xff, 0xff, 0xff, 0xfd, 0x65, 0x68, 0x88, 0x88, 0x88, 0x88, 0x88, 0x79, 0xff, 0xff, 0xff, 0xff, 0xd5, 0x67, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x9f, 0xff, 0xff, 0xff, 0xfd, 0x56, 0x78, 0x88, 0x88, 0x88, 0x88, 0x88, 0x79, 0xff, 0xff, 0xff, 0xff, 0xd5, 0x67, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x9f, 0xff, 0xff, 0xff, 0xfe, 0x66, 0x78, 0x88, 0x88, 0x88, 0x88, 0x88, 0x79, 0xff, 0xff, 0xff, 0xff, 0xd5, 0x67, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x9f, 0xff, 0xff, 0xff, 0xff, 0x75, 0x78, 0x88, 0x88, 0x88, 0x88, 0x88, 0x7b, 0xff, 0xff, 0xff, 0xff, 0xe5, 0x67, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x8c, 0xef, 0xff, 0xff, 0xff, 0xa5, 0x78, 0x88, 0x88, 0x88, 0x88, 0x87, 0x7e, 0xff, 0xff, 0xff, 0xfe, 0xa5, 0x67, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x66, 0x79, 0xcf, 0xff, 0xe7, 0x68, 0x88, 0x88, 0x88, 0x88, 0x77, 0xaf, 0xff, 0xff, 0xfc, 0x96, 0x56, 0x67, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x77, 0x77, 0x55, 0x55, 0x58, 0xdf, 0xfd, 0x77, 0x78, 0x88, 0x88, 0x87, 0x79, 0xff, 0xff, 0xff, 0xa5, 0x56, 0x66, 0x67, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x77, 0x9c, 0xdd, 0xdb, 0x96, 0x55, 0x5b, 0xff, 0xd8, 0x77, 0x77, 0x77, 0x77, 0xaf, 0xff, 0xff, 0xff, 0x95, 0x66, 0x66, 0x78, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x77, 0xad, 0xff, 0xff, 0xff, 0xfe, 0xb7, 0x55, 0xbf, 0xfe, 0xb9, 0x77, 0x78, 0x9c, 0xff, 0xff, 0xff, 0xff, 0xe6, 0x67, 0x78, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x87, 0x9e, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfd, 0x86, 0x6d, 0xff, 0xff, 0xed, 0xde, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfa, 0x68, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x87, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xd8, 0x69, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x77, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x7a, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x77, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x66, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x87, 0x78, 0xb7, 0x56, 0xaf, 0xff, 0xff, 0xff, 0xff, 0x86, 0xcf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe7, 0x56, 0x78, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x77, 0xaf, 0xff, 0xc6, 0x5d, 0xff, 0xff, 0xff, 0xff, 0xc6, 0x8c, 0xef, 0xff, 0xff, 0xff, 0xfd, 0xef, 0xff, 0xfe, 0x75, 0x66, 0x78, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x7a, 0xff, 0xff, 0xfc, 0x59, 0xff, 0xff, 0xff, 0xff, 0xf7, 0x66, 0x68, 0xbd, 0xff, 0xff, 0xa5, 0x7b, 0xff, 0xe7, 0x56, 0x66, 0x78, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x7b, 0xff, 0xff, 0xfd, 0x66, 0xff, 0xff, 0xff, 0xff, 0xf9, 0x66, 0x55, 0x56, 0x8a, 0xee, 0x65, 0x55, 0x7a, 0x75, 0x66, 0x68, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x79, 0xff, 0xff, 0xff, 0x75, 0xcf, 0xff, 0xff, 0xff, 0xff, 0xdb, 0x97, 0x55, 0x55, 0x66, 0x66, 0x66, 0x55, 0x56, 0x66, 0x78, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x87, 0x78, 0xff, 0xff, 0xfe, 0x65, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xca, 0x76, 0x55, 0x56, 0x78, 0x76, 0x66, 0x78, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x79, 0x97, 0x9d, 0xff, 0xd5, 0x6b, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x97, 0x66, 0x77, 0x88, 0x77, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x7b, 0xfd, 0xa7, 0x9a, 0x68, 0xef, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xda, 0x97, 0x77, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x79, 0xff, 0xff, 0xc9, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfd, 0xb8, 0x77, 0x77, 0x78, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x77, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xdb, 0x98, 0x77, 0x78, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x87, 0x9f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xba, 0x87, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x87, 0x7a, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xea, 0x78, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x76, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x89, 0xcf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x87, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x87, 0x59, 0xef, 0xff, 0xff, 0xff, 0xff, 0xb6, 0x55, 0x57, 0x9b, 0xef, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x96, 0x87, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x75, 0x6a, 0xdf, 0xff, 0xfe, 0xb8, 0x55, 0x66, 0x65, 0x55, 0x69, 0xbd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x85, 0x78, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x55, 0x67, 0x77, 0x76, 0x55, 0x66, 0x67, 0x76, 0x66, 0x55, 0x56, 0x7b, 0xef, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfd, 0x65, 0x78, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x76, 0x55, 0x55, 0x55, 0x66, 0x66, 0x78, 0x88, 0x87, 0x76, 0x65, 0x55, 0x68, 0xbd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfb, 0x55, 0x78, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x88, 0x76, 0x66, 0x66, 0x66, 0x78, 0x88, 0x88, 0x88, 0x88, 0x77, 0x66, 0x55, 0x55, 0x8a, 0xdf, 0xff, 0xff, 0xff, 0xf8, 0x56, 0x78, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x77, 0x77, 0x78, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x76, 0x65, 0x55, 0x67, 0x9c, 0xef, 0xff, 0xb5, 0x66, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x77, 0x76, 0x55, 0x55, 0x79, 0xb9, 0x56, 0x67, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x76, 0x66, 0x55, 0x55, 0x66, 0x67, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x77, 0x76, 0x56, 0x66, 0x78, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x77, 0x77, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88 +}; + +#endif // HAS_GRAPHICAL_TFT diff --git a/Marlin/src/lcd/tft/images/slider_8x16x4.cpp b/Marlin/src/lcd/tft/images/slider_8x16x4.cpp new file mode 100644 index 000000000..9fb8c42c2 --- /dev/null +++ b/Marlin/src/lcd/tft/images/slider_8x16x4.cpp @@ -0,0 +1,46 @@ +/** + * Marlin 3D Printer Firmware + * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin] + * + * Based on Sprinter and grbl. + * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + */ + +#include "../../../inc/MarlinConfigPre.h" + +#if HAS_GRAPHICAL_TFT + +extern const uint8_t slider_8x16x4[64] = { + 0x88, 0xff, 0xff, 0x88, + 0x8f, 0xff, 0xff, 0xf8, + 0x8f, 0xff, 0xff, 0xf8, + 0x8f, 0xff, 0xff, 0xf8, + 0x8f, 0xff, 0xff, 0xf8, + 0x8f, 0xff, 0xff, 0xf8, + 0x8f, 0xff, 0xff, 0xf8, + 0x8f, 0xff, 0xff, 0xf8, + 0x8f, 0xff, 0xff, 0xf8, + 0x8f, 0xff, 0xff, 0xf8, + 0x8f, 0xff, 0xff, 0xf8, + 0x8f, 0xff, 0xff, 0xf8, + 0x8f, 0xff, 0xff, 0xf8, + 0x8f, 0xff, 0xff, 0xf8, + 0x8f, 0xff, 0xff, 0xf8, + 0x88, 0xff, 0xff, 0x88, +}; + +#endif // HAS_GRAPHICAL_TFT diff --git a/Marlin/src/lcd/tft/images/up_32x32x4.cpp b/Marlin/src/lcd/tft/images/up_32x32x4.cpp new file mode 100644 index 000000000..59bae8aef --- /dev/null +++ b/Marlin/src/lcd/tft/images/up_32x32x4.cpp @@ -0,0 +1,62 @@ +/** + * Marlin 3D Printer Firmware + * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin] + * + * Based on Sprinter and grbl. + * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + */ + +#include "../../../inc/MarlinConfigPre.h" + +#if HAS_GRAPHICAL_TFT + +extern const uint8_t up_32x32x4[512] = { + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x77, 0x78, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x78, 0x78, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x77, 0xad, 0x67, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x7a, 0xff, 0xb3, 0x78, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x9f, 0xff, 0xfb, 0x38, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x87, 0x79, 0xff, 0xff, 0xff, 0xc3, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x77, 0x9f, 0xff, 0xff, 0xff, 0xfc, 0x38, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x87, 0x7a, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc3, 0x78, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x77, 0xaf, 0xff, 0xff, 0xa6, 0xff, 0xff, 0xfb, 0x47, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x87, 0x7a, 0xff, 0xff, 0xfa, 0x33, 0x6f, 0xff, 0xff, 0xb4, 0x78, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x77, 0xaf, 0xff, 0xff, 0xa3, 0x34, 0x78, 0xff, 0xff, 0xfb, 0x47, 0x88, 0x88, 0x88, + 0x88, 0x87, 0x7a, 0xff, 0xff, 0xfa, 0x33, 0x47, 0x87, 0x8f, 0xff, 0xff, 0xb4, 0x78, 0x88, 0x88, + 0x88, 0x77, 0xaf, 0xff, 0xff, 0xb3, 0x44, 0x78, 0x87, 0x78, 0xff, 0xff, 0xfb, 0x47, 0x88, 0x88, + 0x88, 0x7a, 0xff, 0xff, 0xfb, 0x34, 0x47, 0x88, 0x88, 0x87, 0x7f, 0xff, 0xff, 0xc4, 0x78, 0x88, + 0x88, 0x7f, 0xff, 0xff, 0xb3, 0x44, 0x88, 0x88, 0x88, 0x88, 0x77, 0xff, 0xff, 0xfb, 0x37, 0x88, + 0x88, 0x78, 0xff, 0xfa, 0x34, 0x48, 0x88, 0x88, 0x88, 0x88, 0x87, 0x8f, 0xff, 0x93, 0x34, 0x88, + 0x88, 0x77, 0x7f, 0xb3, 0x44, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x78, 0xf9, 0x34, 0x47, 0x88, + 0x88, 0x87, 0x78, 0x43, 0x47, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x77, 0x84, 0x34, 0x88, 0x88, + 0x88, 0x88, 0x87, 0x64, 0x78, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x76, 0x47, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88 +}; + +#endif // HAS_GRAPHICAL_TFT diff --git a/Marlin/src/lcd/tft/r65105.h b/Marlin/src/lcd/tft/r65105.h new file mode 100644 index 000000000..8d073f5d0 --- /dev/null +++ b/Marlin/src/lcd/tft/r65105.h @@ -0,0 +1,155 @@ +/** + * Marlin 3D Printer Firmware + * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin] + * + * Based on Sprinter and grbl. + * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + */ +#pragma once + +#include "tft.h" + +#include "../../inc/MarlinConfig.h" + +#define R61505_DRVCTL_SM 0x0400 +#define R61505_DRVCTL_SS 0x0100 // Select the shift direction of outputs from the source driver. 0 - from S1 to S720 / 1 - from S720 to S1 + +#define R61505_ETMOD_TRIGGER 0x8000 // 18-bit RAM when set; 16-bit RAM when not set +#define R61505_ETMOD_DFM 0x4000 +#define R61505_ETMOD_BGR 0x1000 // RGB-BGR ORDER +#define R61505_ETMOD_RGB 0x0000 + +#define R61505_ETMOD_HWM 0x0020 +#define R61505_ETMOD_ORG 0x0080 +#define R61505_ETMOD_ID1 0x0020 // 0 - Vertical Decrement / 1 - Vertical Increment +#define R61505_ETMOD_ID0 0x0010 // 0 - Horizontal Decrement / 1 - Horizontal Increment +#define R61505_ETMOD_AM 0x0008 // 0 - Horizontal / 1 - Vertical + +#define R61505_DRVCTRL_GS 0x8000 // Gate Scan direction + +// MKS Robin TFT v1.1 - 320x240 ; Cable on the left side +#define R61505_DRVCTL_DATA R61505_DRVCTL_SS +#define R61505_ETMOD_DATA R61505_ETMOD_BGR | R61505_ETMOD_ID1 | R61505_ETMOD_ID0 | R61505_ETMOD_AM +#define R61505_DRVCTRL_GSDIR R61505_DRVCTRL_GS + + +#define R61505_RDDID 0x00 // ID code - 0x1505 +#define R61505_DRVCTL 0x01 // Driver Output Control +#define R61505_LCDCTL 0x02 // LCD Driving Wave Control +#define R61505_ETMOD 0x03 // Entry Mode - Control the GRAM update direction +#define R61505_RESIZECTL 0x04 // Resizing Control Register +#define R61505_DISCTRL1 0x07 // Display Control 1 +#define R61505_DISCTRL2 0x08 // Display Control 2 +#define R61505_DISCTRL3 0x09 // Display Control 3 +#define R61505_DISCTRL4 0x0A // Display Control 4 +#define R61505_RGBCTRL1 0x0C // RGB Display Interface Control 1 +#define R61505_FMARKERPOS 0x0D // Frame Marker Position +#define R61505_RGBCTRL2 0x0F // RGB Display Interface Control 2 +#define R61505_PWCTRL1 0x10 // Power Control 1 +#define R61505_PWCTRL2 0x11 // Power Control 2 +#define R61505_PWCTRL3 0x12 // Power Control 3 +#define R61505_PWCTRL4 0x13 // Power Control 4 + +// With landscape screen orientation 'Horizontal' is Y and 'Vertical' is X +#define R61505_HASET 0x20 // GRAM Horizontal Address Set (0-255) +#define R61505_VASET 0x21 // GRAM Vertical Address Set (0-511) +#define R61505_RAMWR 0x22 // Write data to GRAM +#define R61505_RAMRD 0x22 // Read Data from GRAM + +#define R61505_PWCTRL7 0x29 // Power Control 7 +#define R61505_GAMCTRL1 0x30 // Gamma Control +#define R61505_GAMCTRL2 0x31 // Gamma Control +#define R61505_GAMCTRL3 0x32 // Gamma Control +#define R61505_GAMCTRL4 0x35 // Gamma Control +#define R61505_GAMCTRL5 0x36 // Gamma Control +#define R61505_GAMCTRL6 0x37 // Gamma Control +#define R61505_GAMCTRL7 0x38 // Gamma Control +#define R61505_GAMCTRL8 0x39 // Gamma Control +#define R61505_GAMCTRL9 0x3C // Gamma Control +#define R61505_GAMCTRLA 0x3D // Gamma Control + +// With landscape screen orientation 'Horizontal' is Y and 'Vertical' is X +#define R61505_HASTART 0x50 // Horizontal Address Start Position (0-255) +#define R61505_HAEND 0x51 // Horizontal Address End Position (0-255) +#define R61505_VASTART 0x52 // Vertical Address Start Position (0-511) +#define R61505_VAEND 0x53 // Vertical Address End Position (0-511) + +#define R61505_DRVCTRL 0x60 // Driver Output Control +#define R61505_BASE_IMAGE_CTRL 0x61 // Base Image Display Control +#define R61505_VSCROLL_CTRL 0x6A // Vertical Scroll Control + +#define R61505_PLTPOS1 0x80 // Partial Image 1 Display Position +#define R61505_PLTSTART1 0x81 // Partial Image 1 RAM Start Address +#define R61505_PLTEND1 0x82 // Partial Image 1 RAM End Address +#define R61505_PLTPOS2 0x83 // Partial Image 2 Display Position +#define R61505_PLTSTART2 0x84 // Partial Image 2 RAM Start Address +#define R61505_PLTEND2 0x85 // Partial Image 2 RAM End Address + +#define R61505_IFCTL1 0x90 // Panel Interface Control 1 +#define R61505_IFCTL2 0x92 // Panel Interface Control 2 +#define R61505_IFCTL3 0x93 // Panel Interface Control 3 +#define R61505_IFCTL4 0x95 // Panel Interface Control 4 +#define R61505_IFCTL5 0x97 // Panel Interface Control 5 +#define R61505_IFCTL6 0x98 // Panel Interface Control 6 + +#define R61505_OSC_CTRL 0xA4 // Oscillation Control + + +static const uint16_t r61505_init[] = { + DATASIZE_16BIT, + ESC_REG(R61505_DRVCTL), R61505_DRVCTL_DATA, + ESC_REG(R61505_LCDCTL), 0x0700, // LCD Driving Wave Control + ESC_REG(R61505_ETMOD), R61505_ETMOD_DATA, + + ESC_REG(R61505_RESIZECTL), 0x0000, + ESC_REG(R61505_DISCTRL1), 0x0173, + ESC_REG(R61505_DISCTRL2), 0x0202, + ESC_REG(R61505_DISCTRL3), 0x0000, + ESC_REG(R61505_DISCTRL4), 0x0000, + ESC_REG(R61505_RGBCTRL1), 0x0000, + ESC_REG(R61505_FMARKERPOS), 0x0000, + ESC_REG(R61505_RGBCTRL2), 0x0000, + + ESC_REG(R61505_PWCTRL1), 0x17B0, + ESC_REG(R61505_PWCTRL2), 0x0037, + ESC_REG(R61505_PWCTRL3), 0x0138, + ESC_REG(R61505_PWCTRL4), 0x1700, + ESC_REG(R61505_PWCTRL7), 0x000D, + + ESC_REG(R61505_GAMCTRL1), 0x0001, + ESC_REG(R61505_GAMCTRL2), 0x0606, + ESC_REG(R61505_GAMCTRL3), 0x0304, + ESC_REG(R61505_GAMCTRL4), 0x0103, + ESC_REG(R61505_GAMCTRL5), 0x011D, + ESC_REG(R61505_GAMCTRL6), 0x0404, + ESC_REG(R61505_GAMCTRL7), 0x0404, + ESC_REG(R61505_GAMCTRL8), 0x0404, + ESC_REG(R61505_GAMCTRL9), 0x0700, + ESC_REG(R61505_GAMCTRLA), 0x0A1F, + + ESC_REG(R61505_DRVCTRL), R61505_DRVCTRL_GSDIR | 0x2700, + ESC_REG(R61505_BASE_IMAGE_CTRL), 0x0001, + ESC_REG(R61505_VSCROLL_CTRL), 0x0000, + + ESC_REG(R61505_IFCTL1), 0x0010, + ESC_REG(R61505_IFCTL2), 0x0000, + ESC_REG(R61505_IFCTL3), 0x0003, + ESC_REG(R61505_IFCTL4), 0x0101, + ESC_REG(R61505_IFCTL5), 0x0000, + ESC_REG(R61505_IFCTL6), 0x0000, + ESC_END +}; diff --git a/Marlin/src/lcd/tft/st7735.h b/Marlin/src/lcd/tft/st7735.h new file mode 100644 index 000000000..30e77fbd9 --- /dev/null +++ b/Marlin/src/lcd/tft/st7735.h @@ -0,0 +1,128 @@ +/** + * Marlin 3D Printer Firmware + * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin] + * + * Based on Sprinter and grbl. + * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + */ +#pragma once + +#include "tft.h" + +#include "../../inc/MarlinConfig.h" + +#define ST7735_MADCTL_MY 0x80 // Row Address Order +#define ST7735_MADCTL_MX 0x40 // Column Address Order +#define ST7735_MADCTL_MV 0x20 // Row/Column Exchange +#define ST7735_MADCTL_ML 0x10 // Vertical Refresh Order +#define ST7735_MADCTL_BGR 0x08 // RGB-BGR ORDER +#define ST7735_MADCTL_RGB 0x00 +#define ST7735_MADCTL_MH 0x04 // Horizontal Refresh Order + +#define ST7735_ORIENTATION_UP 0x00 // 128x160 ; Cable on the upper side +#define ST7735_ORIENTATION_RIGHT ST7735_MADCTL_MV | ST7735_MADCTL_MY // 160x128 ; Cable on the right side +#define ST7735_ORIENTATION_LEFT ST7735_MADCTL_MV | ST7735_MADCTL_MX // 160x128 ; Cable on the left side +#define ST7735_ORIENTATION_DOWN ST7735_MADCTL_MX | ST7735_MADCTL_MY // 128x160 ; Cable on the lower side + +//#define ST7735_COLOR_BGR +#define ST7735_ORIENTATION ST7735_ORIENTATION_DOWN +#define ST7735_MADCTL_DATA (ST7735_ORIENTATION | TERN(ST7735_COLOR_BGR, ST7735_MADCTL_BGR, ST7735_MADCTL_RGB)) + +#define ST7735_NOP 0x00 // No Operation +#define ST7735_SWRESET 0x01 // Software reset +#define ST7735_RDDID 0x04 // Read Display ID +#define ST7735_RDDST 0x09 // Read Display Status +#define ST7735_RDDPM 0x0A // Read Display Power Mode +#define ST7735_RDDMADCTL 0x0B // Read Display MADCTL +#define ST7735_RDDCOLMOD 0x0C // Read Display Pixel Format +#define ST7735_RDDIM 0x0D // Read Display Image Mode +#define ST7735_RDDSM 0x0E // Read Display Signal Mode +#define ST7735_SLPIN 0x10 // Sleep In +#define ST7735_SLPOUT 0x11 // Sleep Out +#define ST7735_PTLON 0x12 // Partial Display Mode On +#define ST7735_NORON 0x13 // Normal Display Mode On +#define ST7735_INVOFF 0x20 // Display Inversion Off +#define ST7735_INVON 0x21 // Display Inversion On +#define ST7735_GAMSET 0x26 // Gamma Set +#define ST7735_DISPOFF 0x28 // Display Off // The delay time between DISPON and DISPOFF needs 120ms at least. +#define ST7735_DISPON 0x29 // Display On +#define ST7735_CASET 0x2A // Column Address Set +#define ST7735_RASET 0x2B // Row Address Set +#define ST7735_RAMWR 0x2C // Memory Write +#define ST7735_RAMRD 0x2E // Memory Read +#define ST7735_PTLAR 0x30 // Partial Area +#define ST7735_TEOFF 0x34 // Tearing Effect Line OFF +#define ST7735_TEON 0x35 // Tearing Effect Line ON +#define ST7735_MADCTL 0x36 // Memory Data Access Control +#define ST7735_IDMOFF 0x38 // Idle Mode Off +#define ST7735_IDMON 0x39 // Idle Mode On +#define ST7735_COLMOD 0x3A // Interface Pixel Format +#define ST7735_RDID1 0xDA // Read ID1 Value +#define ST7735_RDID2 0xDB // Read ID2 Value +#define ST7735_RDID3 0xDC // Read ID3 Value + +#define ST7735_FRMCTR1 0xB1 // Frame Rate Control (In normal mode/ Full colors) +#define ST7735_FRMCTR2 0xB2 // Frame Rate Control (In Idle mode/ 8-colors) +#define ST7735_FRMCTR3 0xB3 // Frame Rate Control (In Partial mode/ full colors) +#define ST7735_INVCTR 0xB4 // Display Inversion Control +#define ST7735_DISSET5 0xB6 // Display Function set 5 +#define ST7735_PWCTR1 0xC0 // Power Control 1 +#define ST7735_PWCTR2 0xC1 // Power Control 2 +#define ST7735_PWCTR3 0xC2 // Power Control 3 (in Normal mode/ Full colors) +#define ST7735_PWCTR4 0xC3 // Power Control 4 (in Idle mode/ 8-colors) +#define ST7735_PWCTR5 0xC4 // Power Control 5 (in Partial mode/ full-colors) +#define ST7735_VMCTR1 0xC5 // VCOM Control 1 +#define ST7735_VMOFCTR 0xC7 // VCOM Offset Control +#define ST7735_WRID2 0xD1 // Write ID2 Value +#define ST7735_WRID3 0xD2 // Write ID3 Value +#define ST7735_PWCTR6 0xFC // Power Control 5 (in Partial mode + Idle mode) +#define ST7735_NVFCTR1 0xD9 // EEPROM Control Status +#define ST7735_NVFCTR2 0xDE // EEPROM Read Command +#define ST7735_NVFCTR3 0xDF // EEPROM Write Command +#define ST7735_GMCTRP1 0xE0 // Gamma (‘+’polarity) Correction Characteristics Setting +#define ST7735_GMCTRN1 0xE1 // GMCTRN1 (E1h): Gamma ‘-’polarity Correction Characteristics Setting +#define ST7735_EXTCTRL 0xF0 // Extension Command Control +#define ST7735_VCOM4L 0xFF // Vcom 4 Level Control + +static const uint16_t st7735_init[] = { + DATASIZE_8BIT, + ESC_REG(ST7735_SWRESET), ESC_DELAY(100), + ESC_REG(ST7735_SLPOUT), ESC_DELAY(20), +/* + ESC_REG(ST7735_FRMCTR1), 0x0001, 0x002C, 0x002D, + ESC_REG(ST7735_FRMCTR2), 0x0001, 0x002C, 0x002D, + ESC_REG(ST7735_FRMCTR3), 0x0001, 0x002C, 0x002D, 0x0001, 0x002C, 0x002D, + ESC_REG(ST7735_INVCTR), 0x0007, + ESC_REG(ST7735_PWCTR1), 0x00A2, 0x0002, 0x0084, + ESC_REG(ST7735_PWCTR2), 0x00C5, + ESC_REG(ST7735_PWCTR3), 0x000A, 0x0000, + ESC_REG(ST7735_PWCTR4), 0x008A, 0x002A, + ESC_REG(ST7735_PWCTR5), 0x008A, 0x00EE, + ESC_REG(ST7735_VMCTR1), 0x000E, + ESC_REG(ST7735_INVOFF), +*/ + ESC_REG(ST7735_MADCTL), ST7735_MADCTL_DATA, + ESC_REG(ST7735_COLMOD), 0x0005, + + /* Gamma Correction. Colors with 'after-reset' settings are bleak */ + ESC_REG(ST7735_GMCTRP1), 0x0002, 0x001C, 0x0007, 0x0012, 0x0037, 0x0032, 0x0029, 0x002D, 0x0029, 0x0025, 0x002B, 0x0039, 0x0000, 0x0001, 0x0003, 0x0010, + ESC_REG(ST7735_GMCTRN1), 0x0003, 0x001D, 0x0007, 0x0006, 0x002E, 0x002C, 0x0029, 0x002D, 0x002E, 0x002E, 0x0037, 0x003F, 0x0000, 0x0000, 0x0002, 0x0010, + + ESC_REG(ST7735_NORON), + ESC_REG(ST7735_DISPON), + ESC_END +}; diff --git a/Marlin/src/lcd/tft/st7789v.h b/Marlin/src/lcd/tft/st7789v.h new file mode 100644 index 000000000..6ed7c0ce6 --- /dev/null +++ b/Marlin/src/lcd/tft/st7789v.h @@ -0,0 +1,148 @@ +/** + * Marlin 3D Printer Firmware + * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin] + * + * Based on Sprinter and grbl. + * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + */ +#pragma once + +#include "tft.h" + +#include "../../inc/MarlinConfig.h" + +#define ST7789V_MADCTL_MY 0x80 // Row Address Order +#define ST7789V_MADCTL_MX 0x40 // Column Address Order +#define ST7789V_MADCTL_MV 0x20 // Row/Column Exchange +#define ST7789V_MADCTL_ML 0x10 // Vertical Refresh Order +#define ST7789V_MADCTL_BGR 0x08 // RGB-BGR ORDER +#define ST7789V_MADCTL_RGB 0x00 +#define ST7789V_MADCTL_MH 0x04 // Horizontal Refresh Order + +#define ST7789V_ORIENTATION_UP ST7789V_MADCTL_MX | ST7789V_MADCTL_MY // 240x320 ; Cable on the upper side +#define ST7789V_ORIENTATION_RIGHT ST7789V_MADCTL_MX | ST7789V_MADCTL_MV // 320x240 ; Cable on the right side +#define ST7789V_ORIENTATION_LEFT ST7789V_MADCTL_MY | ST7789V_MADCTL_MV // 320x240 ; Cable on the left side +#define ST7789V_ORIENTATION_DOWN 0 // 240x320 ; Cable on the lower side + +//#define ST7789V_COLOR_BGR +#define ST7789V_ORIENTATION ST7789V_ORIENTATION_LEFT +#define ST7789V_MADCTL_DATA (ST7789V_ORIENTATION | TERN(ST7789V_COLOR_BGR, ST7789V_MADCTL_BGR, ST7789V_MADCTL_RGB)) + +#define ST7789V_NOP 0x00 // No Operation +#define ST7789V_SWRESET 0x01 // Software reset +#define ST7789V_RDDID 0x04 // Read Display ID +#define ST7789V_RDDST 0x09 // Read Display Status +#define ST7789V_RDDPM 0x0A // Read Display Power Mode +#define ST7789V_RDDMADCTL 0x0B // Read Display MADCTL +#define ST7789V_RDDCOLMOD 0x0C // Read Display Pixel Format +#define ST7789V_RDDIM 0x0D // Read Display Image Mode +#define ST7789V_RDDSM 0x0E // Read Display Signal Mode +#define ST7789V_RDDSDR 0x0F // Read Display Self-Diagnostic Result +#define ST7789V_SLPIN 0x10 // Sleep In +#define ST7789V_SLPOUT 0x11 // Sleep Out +#define ST7789V_PTLON 0x12 // Partial Display Mode On +#define ST7789V_NORON 0x13 // Normal Display Mode On +#define ST7789V_INVOFF 0x20 // Display Inversion Off +#define ST7789V_INVON 0x21 // Display Inversion On +#define ST7789V_GAMSET 0x26 // Gamma Set +#define ST7789V_DISPOFF 0x28 // Display Off +#define ST7789V_DISPON 0x29 // Display On +#define ST7789V_CASET 0x2A // Column Address Set +#define ST7789V_RASET 0x2B // Row Address Set +#define ST7789V_RAMWR 0x2C // Memory Write +#define ST7789V_RAMRD 0x2E // Memory Read +#define ST7789V_PTLAR 0x30 // Partial Area +#define ST7789V_VSCRDEF 0x33 // Vertical Scrolling Definition +#define ST7789V_TEOFF 0x34 // Tearing Effect Line OFF +#define ST7789V_TEON 0x35 // Tearing Effect Line ON +#define ST7789V_MADCTL 0x36 // Memory Data Access Control +#define ST7789V_VSCSAD 0x37 // Vertical Scroll Start Address of RAM +#define ST7789V_IDMOFF 0x38 // Idle Mode Off +#define ST7789V_IDMON 0x39 // Idle Mode On +#define ST7789V_COLMOD 0x3A // Interface Pixel Format +#define ST7789V_WRMEMC 0x3C // Write Memory Continue +#define ST7789V_RDMEMC 0x3E // Read Memory Continue +#define ST7789V_STE 0x44 // Set Tear Scanline +#define ST7789V_GSCAN 0x45 // Get Scanline +#define ST7789V_WRDISBV 0x51 // Write Display Brightness +#define ST7789V_RDDISBV 0x52 // Read Display Brightness +#define ST7789V_WRCTRLD 0x53 // Write CTRL Display +#define ST7789V_RDCTRLD 0x54 // Read CTRL Value Display +#define ST7789V_WRCACE 0x55 // Write Content Adaptive Brightness Control and Color Enhancement +#define ST7789V_RDCABC 0x56 // Read Content Adaptive Brightness Control +#define ST7789V_WRCABCMB 0x5E // Write CABC Minimum Brightness +#define ST7789V_RDCABCMB 0x5F // Read CABC Minimum Brightness +#define ST7789V_RDABCSDR 0x68 // Read Automatic Brightness Control Self-Diagnostic Result +#define ST7789V_RDID1 0xDA // Read ID1 Value +#define ST7789V_RDID2 0xDB // Read ID2 Value +#define ST7789V_RDID3 0xDC // Read ID3 Value + +#define ST7789V_RAMCTRL 0xB0 // RAM Control +#define ST7789V_RGBCTRL 0xB1 // RGB Interface Control +#define ST7789V_PORCTRL 0xB2 // Porch Setting +#define ST7789V_FRCTRL1 0xB3 // Frame Rate Control 1 (In partial mode/ idle colors) +#define ST7789V_GCTRL 0xB7 // Gate Control +#define ST7789V_DGMEN 0xBA // Digital Gamma Enable +#define ST7789V_VCOMS 0xBB // VCOM Setting +#define ST7789V_LCMCTRL 0xC0 // LCM Control +#define ST7789V_IDSET 0xC1 // ID Code Setting +#define ST7789V_VDVVRHEN 0xC2 // VDV and VRH Command Enable +#define ST7789V_VRHS 0xC3 // VRH Set +#define ST7789V_VDVS 0xC4 // VDV Set +#define ST7789V_VCMOFSET 0xC5 // VCOM Offset Set +#define ST7789V_FRCTRL2 0xC6 // Frame Rate Control in Normal Mode +#define ST7789V_CABCCTRL 0xC7 // CABC Control +#define ST7789V_REGSEL1 0xC8 // Register Value Selection 1 +#define ST7789V_REGSEL2 0xCA // Register Value Selection 2 +#define ST7789V_PWMFRSEL 0xCC // PWM Frequency Selection +#define ST7789V_PWCTRL1 0xD0 // Power Control 1 +#define ST7789V_VAPVANEN 0xD2 // Enable VAP/VAN signal output +#define ST7789V_CMD2EN 0xDF // Command 2 Enable +#define ST7789V_PVGAMCTRL 0xE0 // Positive Voltage Gamma Control +#define ST7789V_NVGAMCTRL 0xE1 // Negative Voltage Gamma Control +#define ST7789V_DGMLUTR 0xE2 // Digital Gamma Look-up Table for Red +#define ST7789V_DGMLUTB 0xE3 // Digital Gamma Look-up Table for Blue +#define ST7789V_GATECTRL 0xE4 // Gate Control +#define ST7789V_SPI2EN 0xE7 // SPI2 Enable +#define ST7789V_PWCTRL2 0xE8 // Power Control 2 +#define ST7789V_EQCTRL 0xE9 // Equalize time control +#define ST7789V_PROMCTRL 0xEC // Program Mode Control +#define ST7789V_PROMEN 0xFA // Program Mode Enable +#define ST7789V_NVMSET 0xFC // NVM Setting +#define ST7789V_PROMACT 0xFE // Program action + +static const uint16_t st7789v_init[] = { + DATASIZE_8BIT, + ESC_REG(ST7789V_SWRESET), ESC_DELAY(100), + ESC_REG(ST7789V_SLPOUT), ESC_DELAY(20), + + ESC_REG(ST7789V_PORCTRL), 0x000C, 0x000C, 0x0000, 0x0033, 0x0033, + ESC_REG(ST7789V_GCTRL), 0x0035, + ESC_REG(ST7789V_VCOMS), 0x001F, + ESC_REG(ST7789V_LCMCTRL), 0x002C, + ESC_REG(ST7789V_VDVVRHEN), 0x0001, 0x00C3, + ESC_REG(ST7789V_VDVS), 0x0020, + ESC_REG(ST7789V_FRCTRL2), 0x000F, + ESC_REG(ST7789V_PWCTRL1), 0x00A4, 0x00A1, + + ESC_REG(ST7789V_MADCTL), ST7789V_MADCTL_DATA, + ESC_REG(ST7789V_COLMOD), 0x0055, + + ESC_REG(ST7789V_NORON), + ESC_REG(ST7789V_DISPON), + ESC_END +}; diff --git a/Marlin/src/lcd/tft/st7796s.h b/Marlin/src/lcd/tft/st7796s.h new file mode 100644 index 000000000..7ddbcfae8 --- /dev/null +++ b/Marlin/src/lcd/tft/st7796s.h @@ -0,0 +1,175 @@ +/** + * Marlin 3D Printer Firmware + * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin] + * + * Based on Sprinter and grbl. + * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + */ +#pragma once + +#include "tft.h" + +#include "../../inc/MarlinConfig.h" + +#define ST7796S_MADCTL_MY 0x80 // Row Address Order +#define ST7796S_MADCTL_MX 0x40 // Column Address Order +#define ST7796S_MADCTL_MV 0x20 // Row/Column Exchange +#define ST7796S_MADCTL_ML 0x10 // Vertical Refresh Order +#define ST7796S_MADCTL_BGR 0x08 // RGB-BGR ORDER +#define ST7796S_MADCTL_RGB 0x00 +#define ST7796S_MADCTL_MH 0x04 // Horizontal Refresh Order + +#define ST7796S_COLOR_BGR +#define ST7796S_ORIENTATION ST7796S_MADCTL_MV +#define ST7796S_MADCTL_DATA (ST7796S_ORIENTATION | TERN(ST7796S_COLOR_BGR, ST7796S_MADCTL_BGR, ST7796S_MADCTL_RGB)) + +#define ST7796S_NOP 0x00 // No Operation +#define ST7796S_SWRESET 0x01 // Software reset +#define ST7796S_RDDID 0x04 // Read Display ID +#define ST7796S_RDNUMED 0x05 // Read Number of the Errors on DSI +#define ST7796S_RDDST 0x09 // Read Display Status +#define ST7796S_RDDPM 0x0A // Read Display Power Mode +#define ST7796S_RDDMADCTL 0x0B // Read Display MADCTL +#define ST7796S_RDDCOLMOD 0x0C // Read Display Pixel Format +#define ST7796S_RDDIM 0x0D // Read Display Image Mode +#define ST7796S_RDDSM 0x0E // Read Display Signal Status +#define ST7796S_RDDSDR 0x0F // Read Display Self-Diagnostic Result +#define ST7796S_SLPIN 0x10 // Sleep In +#define ST7796S_SLPOUT 0x11 // Sleep Out +#define ST7796S_PTLON 0x12 // Partial Display Mode On +#define ST7796S_NORON 0x13 // Normal Display Mode On +#define ST7796S_INVOFF 0x20 // Display Inversion Off +#define ST7796S_INVON 0x21 // Display Inversion On +#define ST7796S_DISPOFF 0x28 // Display Off +#define ST7796S_DISPON 0x29 // Display On +#define ST7796S_CASET 0x2A // Column Address Set +#define ST7796S_RASET 0x2B // Row Address Set +#define ST7796S_RAMWR 0x2C // Memory Write +#define ST7796S_RAMRD 0x2E // Memory Read +#define ST7796S_PTLAR 0x30 // Partial Area +#define ST7796S_VSCRDEF 0x33 // Vertical Scrolling Definition +#define ST7796S_TEOFF 0x34 // Tearing Effect Line OFF +#define ST7796S_TEON 0x35 // Tearing Effect Line On +#define ST7796S_MADCTL 0x36 // Memory Data Access Control +#define ST7796S_VSCSAD 0x37 // Vertical Scroll Start Address of RAM +#define ST7796S_IDMOFF 0x38 // Idle Mode Off +#define ST7796S_IDMON 0x39 // Idle Mode On +#define ST7796S_COLMOD 0x3A // Interface Pixel Format +#define ST7796S_WRMEMC 0x3C // Write Memory Continue +#define ST7796S_RDMEMC 0x3E // Read Memory Continue +#define ST7796S_STE 0x44 // Set Tear ScanLine +#define ST7796S_GSCAN 0x45 // Get ScanLine +#define ST7796S_WRDISBV 0x51 // Write Display Brightness +#define ST7796S_RDDISBV 0x52 // Read Display Brightness Value +#define ST7796S_WRCTRLD 0x53 // Write CTRL Display +#define ST7796S_RDCTRLD 0x54 // Read CTRL value Display +#define ST7796S_WRCABC 0x55 // Write Adaptive Brightness Control +#define ST7796S_RDCABC 0x56 // Read Content Adaptive Brightness Control +#define ST7796S_WRCABCMB 0x5E // Write CABC Minimum Brightness +#define ST7796S_RDCABCMB 0x5F // Read CABC Minimum Brightness +#define ST7796S_RDFCS 0xAA // Read First Checksum +#define ST7796S_RDCFCS 0xAF // Read Continue Checksum +#define ST7796S_RDID1 0xDA // Read ID1 +#define ST7796S_RDID2 0xDB // Read ID2 +#define ST7796S_RDID3 0xDC // Read ID3 + +#define ST7796S_IFMODE 0xB0 // Interface Mode Control +#define ST7796S_FRMCTR1 0xB1 // Frame Rate Control (In Normal Mode/Full Colors) +#define ST7796S_FRMCTR2 0xB2 // Frame Rate Control 2 (In Idle Mode/8 colors) +#define ST7796S_FRMCTR3 0xB3 // Frame Rate Control 3(In Partial Mode/Full Colors) +#define ST7796S_DIC 0xB4 // Display Inversion Control +#define ST7796S_BPC 0xB5 // Blanking Porch Control +#define ST7796S_DFC 0xB6 // Display Function Control +#define ST7796S_EM 0xB7 // Entry Mode Set +#define ST7796S_PWR1 0xC0 // Power Control 1 +#define ST7796S_PWR2 0xC1 // Power Control 2 +#define ST7796S_PWR3 0xC2 // Power Control 3 +#define ST7796S_VCMPCTL 0xC5 // VCOM Control +#define ST7796S_VCMOST 0xC6 // VCOM Offset Register +#define ST7796S_NVMADW 0xD0 // NVM Address/Data Write +#define ST7796S_NVMBPROG 0xD1 // NVM Byte Program +#define ST7796S_NVMSTRD 0xD2 // NVM Status Read +#define ST7796S_RDID4 0xD3 // Read ID4 +#define ST7796S_PGC 0xE0 // Positive Gamma Control +#define ST7796S_NGC 0xE1 // Negative Gamma Control +#define ST7796S_DGC1 0xE2 // Digital Gamma Control 1 +#define ST7796S_DGC2 0xE3 // Digital Gamma Control 2 +#define ST7796S_DOCA 0xE8 // Display Output Ctrl Adjust +#define ST7796S_CSCON 0xF0 // Command Set Control +#define ST7796S_SPIRC 0xFB // SPI Read Control + +static const uint16_t st7796s_init[] = { + DATASIZE_8BIT, + ESC_REG(ST7796S_SWRESET), ESC_DELAY(100), + ESC_REG(ST7796S_SLPOUT), ESC_DELAY(20), + + ESC_REG(ST7796S_CSCON), 0x00C3, // enable command 2 part I + ESC_REG(ST7796S_CSCON), 0x0096, // enable command 2 part II + + ESC_REG(ST7796S_MADCTL), ST7796S_MADCTL_DATA, + ESC_REG(ST7796S_COLMOD), 0x0055, + + ESC_REG(ST7796S_DIC), 0x0001, // 1-dot inversion + ESC_REG(ST7796S_EM), 0x00C6, + + ESC_REG(ST7796S_PWR2), 0x0015, + ESC_REG(ST7796S_PWR3), 0x00AF, + ESC_REG(ST7796S_VCMPCTL), 0x0022, + ESC_REG(ST7796S_VCMOST), 0x0000, + ESC_REG(ST7796S_DOCA), 0x0040, 0x008A, 0x0000, 0x0000, 0x0029, 0x0019, 0x00A5, 0x0033, + + /* Gamma Correction. */ + ESC_REG(ST7796S_PGC), 0x00F0, 0x0004, 0x0008, 0x0009, 0x0008, 0x0015, 0x002F, 0x0042, 0x0046, 0x0028, 0x0015, 0x0016, 0x0029, 0x002D, + ESC_REG(ST7796S_NGC), 0x00F0, 0x0004, 0x0009, 0x0009, 0x0008, 0x0015, 0x002E, 0x0046, 0x0046, 0x0028, 0x0015, 0x0015, 0x0029, 0x002D, + + ESC_REG(ST7796S_NORON), + ESC_REG(ST7796S_WRCTRLD), 0x0024, + ESC_REG(ST7796S_CSCON), 0x003C, // disable command 2 part I + ESC_REG(ST7796S_CSCON), 0x0069, // disable command 2 part II + ESC_REG(ST7796S_DISPON), + ESC_END +}; + +static const uint16_t lerdge_st7796s_init[] = { + DATASIZE_8BIT, + ESC_REG(ST7796S_CSCON), 0x00C3, // enable command 2 part I + ESC_REG(ST7796S_CSCON), 0x0096, // enable command 2 part II + + ESC_REG(ST7796S_MADCTL), ST7796S_MADCTL_DATA, + ESC_REG(ST7796S_COLMOD), 0x0055, + + ESC_REG(ST7796S_DIC), 0x0001, // 1-dot inversion + ESC_REG(ST7796S_EM), 0x00C6, + + ESC_REG(ST7796S_PWR2), 0x0015, + ESC_REG(ST7796S_PWR3), 0x00AF, + ESC_REG(0xC3), 0x0009, // Register not documented in datasheet + ESC_REG(ST7796S_VCMPCTL), 0x0022, + ESC_REG(ST7796S_VCMOST), 0x0000, + ESC_REG(ST7796S_DOCA), 0x0040, 0x008A, 0x0000, 0x0000, 0x0029, 0x0019, 0x00A5, 0x0033, + + /* Gamma Correction. */ + ESC_REG(ST7796S_PGC), 0x00F0, 0x0004, 0x0008, 0x0009, 0x0008, 0x0015, 0x002F, 0x0042, 0x0046, 0x0028, 0x0015, 0x0016, 0x0029, 0x002D, + ESC_REG(ST7796S_NGC), 0x00F0, 0x0004, 0x0009, 0x0009, 0x0008, 0x0015, 0x002E, 0x0046, 0x0046, 0x0028, 0x0015, 0x0015, 0x0029, 0x002D, + + ESC_REG(ST7796S_INVON), // Display inversion ON + ESC_REG(ST7796S_WRCTRLD), 0x0024, + ESC_REG(ST7796S_CSCON), 0x003C, // disable command 2 part I + ESC_REG(ST7796S_CSCON), 0x0069, // disable command 2 part II + ESC_REG(ST7796S_DISPON), + ESC_END +}; diff --git a/Marlin/src/lcd/tft/tft.cpp b/Marlin/src/lcd/tft/tft.cpp new file mode 100644 index 000000000..81fe6788e --- /dev/null +++ b/Marlin/src/lcd/tft/tft.cpp @@ -0,0 +1,199 @@ +/** + * Marlin 3D Printer Firmware + * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin] + * + * Based on Sprinter and grbl. + * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + */ + +#include "../../inc/MarlinConfig.h" + +#if HAS_GRAPHICAL_TFT + +#include "tft.h" +#include "st7735.h" +#include "st7789v.h" +#include "st7796s.h" +#include "r65105.h" +#include "ili9328.h" +#include "ili9341.h" +#include "ili9488.h" + +//#define DEBUG_GRAPHICAL_TFT +#define DEBUG_OUT ENABLED(DEBUG_GRAPHICAL_TFT) +#include "../../core/debug_out.h" + +uint16_t TFT::buffer[]; +uint32_t TFT::lcd_id = 0xFFFFFFFF; + +void TFT::init() { + if (lcd_id != 0xFFFFFFFF) return; + + io.Init(); + + #if TFT_DRIVER != AUTO + lcd_id = TFT_DRIVER; + #endif + + #if TFT_DRIVER == ST7735 + write_esc_sequence(st7735_init); + #elif TFT_DRIVER == ST7789 + write_esc_sequence(st7789v_init); + #elif TFT_DRIVER == ST7796 + write_esc_sequence(st7796s_init); + #elif TFT_DRIVER == R61505 + write_esc_sequence(r61505_init); + #elif TFT_DRIVER == ILI9328 + write_esc_sequence(ili9328_init); + #elif TFT_DRIVER == ILI9341 + write_esc_sequence(ili9341_init); + #elif TFT_DRIVER == ILI9488 + write_esc_sequence(ili9488_init); + #elif TFT_DRIVER == LERDGE_ST7796 + lcd_id = ST7796; + write_esc_sequence(lerdge_st7796s_init); + + #elif TFT_DRIVER == AUTO // autodetect + + lcd_id = io.GetID() & 0xFFFF; + + switch (lcd_id) { + case ST7796: // ST7796S 480x320 + DEBUG_ECHO_MSG(" ST7796S"); + write_esc_sequence(st7796s_init); + break; + case ST7789: // ST7789V 320x240 + DEBUG_ECHO_MSG(" ST7789V"); + write_esc_sequence(st7789v_init); + break; + case ST7735: // ST7735 160x128 + DEBUG_ECHO_MSG(" ST7735"); + write_esc_sequence(st7735_init); + break; + case R61505: // R61505U 320x240 + DEBUG_ECHO_MSG(" R61505U"); + write_esc_sequence(r61505_init); + break; + case ILI9328: // ILI9328 320x240 + DEBUG_ECHO_MSG(" ILI9328"); + write_esc_sequence(ili9328_init); + break; + case ILI9341: // ILI9341 320x240 + DEBUG_ECHO_MSG(" ILI9341"); + write_esc_sequence(ili9341_init); + break; + case ILI9488: // ILI9488 480x320 + DEBUG_ECHO_MSG(" ILI9488"); + write_esc_sequence(ili9488_init); + break; + default: + lcd_id = 0; + } + #else + #error Unsupported TFT driver + #endif +} + +void TFT::set_window(uint16_t Xmin, uint16_t Ymin, uint16_t Xmax, uint16_t Ymax) { + #ifdef OFFSET_X + Xmin += OFFSET_X; Xmax += OFFSET_X; + #endif + #ifdef OFFSET_Y + Ymin += OFFSET_Y; Ymax += OFFSET_Y; + #endif + + switch (lcd_id) { + case ST7735: // ST7735 160x128 + case ST7789: // ST7789V 320x240 + case ST7796: // ST7796 480x320 + case ILI9341: // ILI9341 320x240 + case ILI9488: // ILI9488 480x320 + io.DataTransferBegin(DATASIZE_8BIT); + + // CASET: Column Address Set + io.WriteReg(ILI9341_CASET); + io.WriteData((Xmin >> 8) & 0xFF); + io.WriteData(Xmin & 0xFF); + io.WriteData((Xmax >> 8) & 0xFF); + io.WriteData(Xmax & 0xFF); + + // RASET: Row Address Set + io.WriteReg(ILI9341_PASET); + io.WriteData((Ymin >> 8) & 0xFF); + io.WriteData(Ymin & 0xFF); + io.WriteData((Ymax >> 8) & 0xFF); + io.WriteData(Ymax & 0xFF); + + // RAMWR: Memory Write + io.WriteReg(ILI9341_RAMWR); + break; + case R61505: // R61505U 320x240 + case ILI9328: // ILI9328 320x240 + io.DataTransferBegin(DATASIZE_16BIT); + + // Mind the mess: with landscape screen orientation 'Horizontal' is Y and 'Vertical' is X + io.WriteReg(ILI9328_HASTART); + io.WriteData(Ymin); + io.WriteReg(ILI9328_HAEND); + io.WriteData(Ymax); + io.WriteReg(ILI9328_VASTART); + io.WriteData(Xmin); + io.WriteReg(ILI9328_VAEND); + io.WriteData(Xmax); + + io.WriteReg(ILI9328_HASET); + io.WriteData(Ymin); + io.WriteReg(ILI9328_VASET); + io.WriteData(Xmin); + + io.WriteReg(ILI9328_RAMWR); + break; + default: + break; + } + + io.DataTransferEnd(); +} + +void TFT::write_esc_sequence(const uint16_t *Sequence) { + uint16_t dataWidth, data; + + dataWidth = *Sequence++; + io.DataTransferBegin(dataWidth); + + for (;;) { + data = *Sequence++; + if (data != 0xFFFF) { + io.WriteData(data); + continue; + } + data = *Sequence++; + if (data == 0x7FFF) return; + if (data == 0xFFFF) + io.WriteData(0xFFFF); + else if (data & 0x8000) + delay(data & 0x7FFF); + else if ((data & 0xFF00) == 0) + io.WriteReg(data); + } + + io.DataTransferEnd(); +} + +TFT tft; + +#endif // HAS_GRAPHICAL_TFT diff --git a/Marlin/src/lcd/tft/tft.h b/Marlin/src/lcd/tft/tft.h new file mode 100644 index 000000000..6d429109c --- /dev/null +++ b/Marlin/src/lcd/tft/tft.h @@ -0,0 +1,113 @@ +/** + * Marlin 3D Printer Firmware + * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin] + * + * Based on Sprinter and grbl. + * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + */ +#pragma once + +#include "tft_queue.h" +#include "canvas.h" +#include "tft_color.h" +#include "tft_string.h" +#include "tft_image.h" +#include "tft_io.h" + +#include "../../inc/MarlinConfig.h" + +#if HAS_UI_320x240 + #define TFT_WIDTH 320 + #define TFT_HEIGHT 240 +#elif HAS_UI_480x320 + #define TFT_WIDTH 480 + #define TFT_HEIGHT 320 +#else + #error "Unsupported display resolution!" +#endif + +#define ST7735 0x89F0 +#define ST7789 0x8552 +#define ST7796 0x7796 +#define R61505 0x1505 +#define ILI9328 0x9328 +#define ILI9341 0x9341 +#define ILI9488 0x9488 +#define LERDGE_ST7796 0xFFFE +#define AUTO 0xFFFF + +#ifndef TFT_DRIVER + #define TFT_DRIVER AUTO +#endif + +#ifndef TFT_BUFFER_SIZE + #ifdef STM32F103xB + #define TFT_BUFFER_SIZE 1024 + #elif defined(STM32F103xE) + #define TFT_BUFFER_SIZE 19200 // 320 * 60 + #elif defined(STM32F1) + #define TFT_BUFFER_SIZE 8192 + #else + #define TFT_BUFFER_SIZE 19200 // 320 * 60 + #endif +#endif + +#if TFT_BUFFER_SIZE > 65535 + // DMA Count parameter is uint16_t + #error "TFT_BUFFER_SIZE can not exceed 65535" +#endif + +#define ESC_REG(x) 0xFFFF, 0x00FF & (uint16_t)x +#define ESC_DELAY(x) 0xFFFF, 0x8000 | (x & 0x7FFF) +#define ESC_END 0xFFFF, 0x7FFF +#define ESC_FFFF 0xFFFF, 0xFFFF + +class TFT { + private: + static uint32_t lcd_id; + static TFT_String string; + static TFT_IO io; + + public: + static TFT_Queue queue; + + static uint16_t buffer[TFT_BUFFER_SIZE]; + + static void init(); + static inline void set_font(const uint8_t *Font) { string.set_font(Font); } + static inline void add_glyphs(const uint8_t *Font) { string.add_glyphs(Font); } + + static void set_window(uint16_t Xmin, uint16_t Ymin, uint16_t Xmax, uint16_t Ymax); + static void write_esc_sequence(const uint16_t *Sequence); + + static inline bool is_busy() { return io.isBusy(); } + static inline void abort() { io.Abort(); } + static inline void write_multiple(uint16_t Data, uint16_t Count) { io.WriteMultiple(Data, Count); } + static inline void write_sequence(uint16_t *Data, uint16_t Count) { io.WriteSequence(Data, Count); } + + static inline void fill(uint16_t x, uint16_t y, uint16_t width, uint16_t height, uint16_t color) { queue.fill(x, y, width, height, color); } + static inline void canvas(uint16_t x, uint16_t y, uint16_t width, uint16_t height) { queue.canvas(x, y, width, height); } + static inline void set_background(uint16_t color) { queue.set_background(color); } + static inline void add_text(uint16_t x, uint16_t y, uint16_t color, TFT_String tft_string, uint16_t maxWidth = 0) { queue.add_text(x, y, color, tft_string.string(), maxWidth); } + static inline void add_text(uint16_t x, uint16_t y, uint16_t color, const char *string, uint16_t maxWidth = 0) { queue.add_text(x, y, color, (uint8_t *)string, maxWidth); } + static inline void add_image(int16_t x, int16_t y, MarlinImage image, uint16_t *colors) { queue.add_image(x, y, image, colors); } + static inline void add_image(int16_t x, int16_t y, MarlinImage image, uint16_t color_main = COLOR_WHITE, uint16_t color_background = COLOR_BACKGROUND, uint16_t color_shadow = COLOR_BLACK) { queue.add_image(x, y, image, color_main, color_background, color_shadow); } + static inline void add_bar(uint16_t x, uint16_t y, uint16_t width, uint16_t height, uint16_t color) { queue.add_bar(x, y, width, height, color); } + static inline void add_rectangle(uint16_t x, uint16_t y, uint16_t width, uint16_t height, uint16_t color) { queue.add_rectangle(x, y, width, height, color); } +}; + +extern TFT tft; diff --git a/Marlin/src/lcd/tft/tft_color.h b/Marlin/src/lcd/tft/tft_color.h new file mode 100644 index 000000000..d2c5d8e7d --- /dev/null +++ b/Marlin/src/lcd/tft/tft_color.h @@ -0,0 +1,112 @@ +/** + * Marlin 3D Printer Firmware + * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin] + * + * Based on Sprinter and grbl. + * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + */ +#pragma once + +#define RED(color) ((color >> 8) & 0xF8) +#define GREEN(color) ((color >> 3) & 0xFC) +#define BLUE(color) ((color << 3) & 0xF8) +#define RGB(red, green, blue) (((red << 8) & 0xF800) | ((green << 3) & 0x07E0) | ((blue >> 3) & 0x001F)) +#define COLOR(color) RGB(((color >> 16) & 0xFF), ((color >> 8) & 0xFF), (color & 0xFF)) +#define HALF(color) RGB(RED(color) >> 1, GREEN(color) >> 1, BLUE(color) >> 1) + +// see https://ee-programming-notepad.blogspot.com/2016/10/16-bit-color-generator-picker.html + +#define COLOR_BLACK 0x0000 // #000000 +#define COLOR_WHITE 0xFFFF // #FFFFFF +#define COLOR_SILVER 0xC618 // #C0C0C0 +#define COLOR_GREY 0x7BEF // #808080 +#define COLOR_DARKGREY 0x4208 // #404040 +#define COLOR_DARKGREY2 0x39E7 // #303030 +#define COLOR_DARK 0x0003 // Some dark color + +#define COLOR_RED 0xF800 // #FF0000 +#define COLOR_SCARLET 0xF904 // #FF2020 +#define COLOR_LIME 0x7E00 // #00FF00 +#define COLOR_BLUE 0x001F // #0000FF +#define COLOR_YELLOW 0xFFE0 // #FFFF00 +#define COLOR_MAGENTA 0xF81F // #FF00FF +#define COLOR_FUCHSIA 0xF81F // #FF00FF +#define COLOR_CYAN 0x07FF // #00FFFF +#define COLOR_AQUA 0x07FF // #00FFFF +#define COLOR_DODGER_BLUE 0x041F // #0080FF +#define COLOR_VIVID_VIOLET 0x7933 // #772399 + +#define COLOR_DARK_PURPLE 0x9930 // #992380 + +#define COLOR_MAROON 0x7800 // #800000 +#define COLOR_GREEN 0x03E0 // #008000 +#define COLOR_NAVY 0x000F // #000080 +#define COLOR_OLIVE 0x8400 // #808000 +#define COLOR_PURPLE 0x8010 // #800080 +#define COLOR_TEAL 0x0410 // #008080 + +#define COLOR_ORANGE 0xFC00 // #FF7F00 +#define COLOR_VIVID_GREEN 0x7FE0 // #7FFF00 +#define COLOR_DARK_ORANGE 0xFC40 // #FF8C00 +#define COLOR_CORAL_RED 0xF9E7 // #FF3F3F + +#define COLOR_DARK_PURPLE 0x9930 // #992380 + + +#define COLOR_BACKGROUND 0x20AC // #1E156E +#define COLOR_SELECTION_BG 0x9930 // #992380 +#define COLOR_WEBSITE_URL 0x03B7 + +#define COLOR_INACTIVE COLOR_GREY +#define COLOR_COLD COLOR_AQUA +#define COLOR_HOTEND COLOR_SCARLET +#define COLOR_HEATED_BED COLOR_DARK_ORANGE +#define COLOR_CHAMBER COLOR_DARK_ORANGE +#define COLOR_FAN COLOR_AQUA + +#define COLOR_AXIS_HOMED COLOR_WHITE +#define COLOR_AXIS_NOT_HOMED COLOR_YELLOW + +#define COLOR_RATE_100 COLOR_VIVID_GREEN +#define COLOR_RATE_ALTERED COLOR_YELLOW + +#define COLOR_PRINT_TIME COLOR_AQUA + +#define COLOR_PROGRESS_FRAME COLOR_WHITE +#define COLOR_PROGRESS_BAR COLOR_BLUE +#define COLOR_PROGRESS_BG COLOR_BLACK + +#define COLOR_STATUS_MESSAGE COLOR_YELLOW + +#define COLOR_CONTROL_ENABLED COLOR_WHITE +#define COLOR_CONTROL_DISABLED COLOR_GREY +#define COLOR_CONTROL_CANCEL COLOR_SCARLET +#define COLOR_CONTROL_CONFIRM COLOR_VIVID_GREEN +#define COLOR_BUSY COLOR_SILVER + +#define COLOR_MENU_TEXT COLOR_YELLOW +#define COLOR_MENU_VALUE COLOR_WHITE + +#define COLOR_SLIDER COLOR_WHITE +#define COLOR_SLIDER_INACTIVE COLOR_GREY + +#define COLOR_UBL COLOR_WHITE + +#define COLOR_TOUCH_CALIBRATION COLOR_WHITE + +#define COLOR_KILL_SCREEN_BG COLOR_MAROON +#define COLOR_KILL_SCREEN_TEXT COLOR_WHITE diff --git a/Marlin/src/lcd/tft/tft_image.cpp b/Marlin/src/lcd/tft/tft_image.cpp new file mode 100644 index 000000000..9e4dc1629 --- /dev/null +++ b/Marlin/src/lcd/tft/tft_image.cpp @@ -0,0 +1,69 @@ +/** + * Marlin 3D Printer Firmware + * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin] + * + * Based on Sprinter and grbl. + * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + */ + +#include "tft_image.h" +#include "cstddef" + +const tImage NoLogo = { (void *)NULL, 0, 0, NOCOLORS }; + +const tImage MarlinLogo112x38x1 = { (void *)marlin_logo_112x38x1, 112, 38, GREYSCALE1 }; +const tImage MarlinLogo228x255x2 = { (void *)marlin_logo_228x255x2, 228, 255, GREYSCALE2 }; +const tImage MarlinLogo228x255x4 = { (void *)marlin_logo_228x255x4, 228, 255, GREYSCALE4 }; +const tImage MarlinLogo195x59x16 = { (void *)marlin_logo_195x59x16, 195, 59, HIGHCOLOR }; +const tImage MarlinLogo320x240x16 = { (void *)marlin_logo_320x240x16, 320, 240, HIGHCOLOR }; +const tImage MarlinLogo480x320x16 = { (void *)marlin_logo_480x320x16, 480, 320, HIGHCOLOR }; +const tImage Background320x30x16 = { (void *)background_320x30x16, 320, 30, HIGHCOLOR }; + +const tImage HotEnd_64x64x4 = { (void *)hotend_64x64x4, 64, 64, GREYSCALE4 }; +const tImage Bed_64x64x4 = { (void *)bed_64x64x4, 64, 64, GREYSCALE4 }; +const tImage Bed_Heated_64x64x4 = { (void *)bed_heated_64x64x4, 64, 64, GREYSCALE4 }; +const tImage Chamber_64x64x4 = { (void *)chamber_64x64x4, 64, 64, GREYSCALE4 }; +const tImage Chamber_Heated_64x64x4 = { (void *)chamber_heated_64x64x4, 64, 64, GREYSCALE4 }; +const tImage Fan0_64x64x4 = { (void *)fan0_64x64x4, 64, 64, GREYSCALE4 }; +const tImage Fan1_64x64x4 = { (void *)fan1_64x64x4, 64, 64, GREYSCALE4 }; +const tImage Fan_Slow0_64x64x4 = { (void *)fan_slow0_64x64x4, 64, 64, GREYSCALE4 }; +const tImage Fan_Slow1_64x64x4 = { (void *)fan_slow1_64x64x4, 64, 64, GREYSCALE4 }; +const tImage Fan_Fast0_64x64x4 = { (void *)fan_fast0_64x64x4, 64, 64, GREYSCALE4 }; +const tImage Fan_Fast1_64x64x4 = { (void *)fan_fast1_64x64x4, 64, 64, GREYSCALE4 }; +const tImage SD_64x64x4 = { (void *)sd_64x64x4, 64, 64, GREYSCALE4 }; +const tImage Menu_64x64x4 = { (void *)menu_64x64x4, 64, 64, GREYSCALE4 }; +const tImage Settings_64x64x4 = { (void *)settings_64x64x4, 64, 64, GREYSCALE4 }; +const tImage Confirm_64x64x4 = { (void *)confirm_64x64x4, 64, 64, GREYSCALE4 }; +const tImage Cancel_64x64x4 = { (void *)cancel_64x64x4, 64, 64, GREYSCALE4 }; +const tImage Increase_64x64x4 = { (void *)increase_64x64x4, 64, 64, GREYSCALE4 }; +const tImage Decrease_64x64x4 = { (void *)decrease_64x64x4, 64, 64, GREYSCALE4 }; +const tImage Pause_64x64x4 = { (void *)pause_64x64x4, 64, 64, GREYSCALE4 }; + +const tImage Feedrate_32x32x4 = { (void *)feedrate_32x32x4, 32, 32, GREYSCALE4 }; +const tImage Flowrate_32x32x4 = { (void *)flowrate_32x32x4, 32, 32, GREYSCALE4 }; +const tImage Directory_32x32x4 = { (void *)directory_32x32x4, 32, 32, GREYSCALE4 }; +const tImage Back_32x32x4 = { (void *)back_32x32x4, 32, 32, GREYSCALE4 }; +const tImage Up_32x32x4 = { (void *)up_32x32x4, 32, 32, GREYSCALE4 }; +const tImage Down_32x32x4 = { (void *)down_32x32x4, 32, 32, GREYSCALE4 }; +const tImage Left_32x32x4 = { (void *)left_32x32x4, 32, 32, GREYSCALE4 }; +const tImage Right_32x32x4 = { (void *)right_32x32x4, 32, 32, GREYSCALE4 }; +const tImage Refresh_32x32x4 = { (void *)refresh_32x32x4, 32, 32, GREYSCALE4 }; +const tImage Leveling_32x32x4 = { (void *)leveling_32x32x4, 32, 32, GREYSCALE4 }; + +const tImage Slider8x16x4 = { (void *)slider_8x16x4, 8, 16, GREYSCALE4 }; + +extern const tImage Images[imgCount]; diff --git a/Marlin/src/lcd/tft/tft_image.h b/Marlin/src/lcd/tft/tft_image.h new file mode 100644 index 000000000..cf4806596 --- /dev/null +++ b/Marlin/src/lcd/tft/tft_image.h @@ -0,0 +1,160 @@ +/** + * Marlin 3D Printer Firmware + * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin] + * + * Based on Sprinter and grbl. + * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + */ +#pragma once + +#include "stdint.h" + + +extern const uint8_t marlin_logo_112x38x1[]; +extern const uint8_t marlin_logo_228x255x2[]; +extern const uint8_t marlin_logo_228x255x4[]; +extern const uint16_t marlin_logo_195x59x16[]; +extern const uint16_t marlin_logo_320x240x16[]; +extern const uint16_t marlin_logo_480x320x16[]; +extern const uint16_t background_320x30x16[]; + +extern const uint8_t hotend_64x64x4[]; +extern const uint8_t bed_64x64x4[], bed_heated_64x64x4[]; +extern const uint8_t chamber_64x64x4[], chamber_heated_64x64x4[]; +extern const uint8_t fan0_64x64x4[], fan1_64x64x4[]; +extern const uint8_t fan_slow0_64x64x4[], fan_slow1_64x64x4[]; +extern const uint8_t fan_fast0_64x64x4[], fan_fast1_64x64x4[]; +extern const uint8_t sd_64x64x4[]; +extern const uint8_t menu_64x64x4[]; +extern const uint8_t settings_64x64x4[]; +extern const uint8_t confirm_64x64x4[]; +extern const uint8_t cancel_64x64x4[]; +extern const uint8_t increase_64x64x4[]; +extern const uint8_t decrease_64x64x4[]; +extern const uint8_t pause_64x64x4[]; + +extern const uint8_t feedrate_32x32x4[]; +extern const uint8_t flowrate_32x32x4[]; +extern const uint8_t directory_32x32x4[]; +extern const uint8_t back_32x32x4[]; +extern const uint8_t up_32x32x4[]; +extern const uint8_t down_32x32x4[]; +extern const uint8_t left_32x32x4[]; +extern const uint8_t right_32x32x4[]; +extern const uint8_t refresh_32x32x4[]; +extern const uint8_t leveling_32x32x4[]; + +extern const uint8_t slider_8x16x4[]; + +enum MarlinImage : uint8_t { + imgBootScreen = 0x00, + imgHotEnd, + imgBed, + imgBedHeated, + imgChamber, + imgChamberHeated, + imgFanIdle, + imgFanSlow0, + imgFanSlow1, + imgFanFast0, + imgFanFast1, + imgFeedRate, + imgFlowRate, + imgSD, + imgMenu, + imgSettings, + imgDirectory, + imgConfirm, + imgCancel, + imgIncrease, + imgDecrease, + imgBack, + imgUp, + imgDown, + imgLeft, + imgRight, + imgRefresh, + imgLeveling, + imgSlider, + imgCount, + noImage = imgCount, + imgPageUp = imgLeft, + imgPageDown = imgRight +}; + +enum colorMode_t : uint8_t { + NOCOLORS = 0x00, + MONOCHROME = 0x01, // 1 bit per pixel + GREYSCALE1 = 0x01, // 1 bit per pixel + GREYSCALE2, // 2 bits per pixel + GREYSCALE4, // 4 bits per pixel + HIGHCOLOR // 16 bits per pixel +}; + +typedef colorMode_t ColorMode; + +typedef struct __attribute__((__packed__)) { + void *data; + uint16_t width; + uint16_t height; + colorMode_t colorMode; +} tImage; + +extern const tImage NoLogo; + +extern const tImage MarlinLogo112x38x1; +extern const tImage MarlinLogo228x255x2; +extern const tImage MarlinLogo228x255x4; +extern const tImage MarlinLogo195x59x16; +extern const tImage MarlinLogo320x240x16; +extern const tImage MarlinLogo480x320x16; +extern const tImage Background320x30x16; + +extern const tImage HotEnd_64x64x4; +extern const tImage Bed_64x64x4; +extern const tImage Bed_Heated_64x64x4; +extern const tImage Chamber_64x64x4; +extern const tImage Chamber_Heated_64x64x4; +extern const tImage Fan0_64x64x4; +extern const tImage Fan1_64x64x4; +extern const tImage Fan_Slow0_64x64x4; +extern const tImage Fan_Slow1_64x64x4; +extern const tImage Fan_Fast0_64x64x4; +extern const tImage Fan_Fast1_64x64x4; +extern const tImage SD_64x64x4; +extern const tImage Menu_64x64x4; +extern const tImage Settings_64x64x4; +extern const tImage Confirm_64x64x4; +extern const tImage Cancel_64x64x4; +extern const tImage Increase_64x64x4; +extern const tImage Decrease_64x64x4; +extern const tImage Pause_64x64x4; + +extern const tImage Feedrate_32x32x4; +extern const tImage Flowrate_32x32x4; +extern const tImage Directory_32x32x4; +extern const tImage Back_32x32x4; +extern const tImage Up_32x32x4; +extern const tImage Down_32x32x4; +extern const tImage Left_32x32x4; +extern const tImage Right_32x32x4; +extern const tImage Refresh_32x32x4; +extern const tImage Leveling_32x32x4; + +extern const tImage Slider8x16x4; + +extern const tImage Images[imgCount]; diff --git a/Marlin/src/lcd/tft/tft_io.h b/Marlin/src/lcd/tft/tft_io.h new file mode 100644 index 000000000..bffe92b0f --- /dev/null +++ b/Marlin/src/lcd/tft/tft_io.h @@ -0,0 +1,30 @@ +/** + * Marlin 3D Printer Firmware + * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin] + * + * Based on Sprinter and grbl. + * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + */ +#pragma once + +#include "../../inc/MarlinConfig.h" + +#if HAS_SPI_TFT + #include HAL_PATH(../../HAL, tft/tft_spi.h) +#elif HAS_FSMC_TFT + #include HAL_PATH(../../HAL, tft/tft_fsmc.h) +#endif diff --git a/Marlin/src/lcd/tft/tft_queue.cpp b/Marlin/src/lcd/tft/tft_queue.cpp new file mode 100644 index 000000000..e77afaf71 --- /dev/null +++ b/Marlin/src/lcd/tft/tft_queue.cpp @@ -0,0 +1,346 @@ +/** + * Marlin 3D Printer Firmware + * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin] + * + * Based on Sprinter and grbl. + * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + */ + +#include "../../inc/MarlinConfig.h" + +#if HAS_GRAPHICAL_TFT + +#include "tft_queue.h" +#include "tft.h" +#include "tft_image.h" + +uint8_t TFT_Queue::queue[]; +uint8_t *TFT_Queue::end_of_queue = queue; +uint8_t *TFT_Queue::current_task = NULL; +uint8_t *TFT_Queue::last_task = NULL; + +void TFT_Queue::reset() { + tft.abort(); + + end_of_queue = queue; + current_task = NULL; + last_task = NULL; +} + +void TFT_Queue::async() { + if (current_task == NULL) return; + queueTask_t *task = (queueTask_t *)current_task; + + // Check IO busy status + if (tft.is_busy()) return; + + if (task->state == TASK_STATE_COMPLETED) { + task = (queueTask_t *)task->nextTask; + current_task = (uint8_t *)task; + } + + finish_sketch(); + + switch (task->type) { + case TASK_END_OF_QUEUE: reset(); break; + case TASK_FILL: fill(task); break; + case TASK_CANVAS: canvas(task); break; + } +} + +void TFT_Queue::finish_sketch() { + if (last_task == NULL) return; + queueTask_t *task = (queueTask_t *)last_task; + + if (task->state == TASK_STATE_SKETCH) { + *end_of_queue = TASK_END_OF_QUEUE; + task->nextTask = end_of_queue; + task->state = TASK_STATE_READY; + + if (current_task == NULL) current_task = (uint8_t *)task; + } +} + +void TFT_Queue::fill(queueTask_t *task) { + uint16_t count; + parametersFill_t *task_parameters = (parametersFill_t *)(((uint8_t *)task) + sizeof(queueTask_t)); + + if (task->state == TASK_STATE_READY) { + tft.set_window(task_parameters->x, task_parameters->y, task_parameters->x + task_parameters->width - 1, task_parameters->y + task_parameters->height - 1); + task->state = TASK_STATE_IN_PROGRESS; + } + + if (task_parameters->count > 65535) { + count = 65535; + task_parameters->count -= 65535; + } + else { + count = task_parameters->count; + task_parameters->count = 0; + task->state = TASK_STATE_COMPLETED; + } + + tft.write_multiple(task_parameters->color, count); +} + +void TFT_Queue::canvas(queueTask_t *task) { + parametersCanvas_t *task_parameters = (parametersCanvas_t *)(((uint8_t *)task) + sizeof(queueTask_t)); + + uint16_t i; + uint8_t *item = ((uint8_t *)task_parameters) + sizeof(parametersCanvas_t); + + if (task->state == TASK_STATE_READY) { + task->state = TASK_STATE_IN_PROGRESS; + Canvas.New(task_parameters->x, task_parameters->y, task_parameters->width, task_parameters->height); + } + Canvas.Continue(); + + for (i = 0; i < task_parameters->count; i++) { + switch (*item) { + case CANVAS_SET_BACKGROUND: + Canvas.SetBackground(((parametersCanvasBackground_t *)item)->color); + item += sizeof(parametersCanvasBackground_t); + break; + case CANVAS_ADD_TEXT: + Canvas.AddText(((parametersCanvasText_t *)item)->x, ((parametersCanvasText_t *)item)->y, ((parametersCanvasText_t *)item)->color, item + sizeof(parametersCanvasText_t), ((parametersCanvasText_t *)item)->maxWidth); + item += sizeof(parametersCanvasText_t) + ((parametersCanvasText_t *)item)->stringLength; + break; + + case CANVAS_ADD_IMAGE: + MarlinImage image; + uint16_t *colors; + colorMode_t color_mode; + + image = ((parametersCanvasImage_t *)item)->image; + colors = (uint16_t *)(item + sizeof(parametersCanvasImage_t)); + Canvas.AddImage(((parametersCanvasImage_t *)item)->x, ((parametersCanvasImage_t *)item)->y, image, colors); + + item = (uint8_t *)colors; + color_mode = Images[image].colorMode; + + switch (color_mode) { + case GREYSCALE1: + item += sizeof(uint16_t); + break; + case GREYSCALE2: + item += sizeof(uint16_t) * 3; + break; + case GREYSCALE4: + item += sizeof(uint16_t) * 15; + break; + default: + break; + } + break; + + case CANVAS_ADD_BAR: + Canvas.AddBar(((parametersCanvasBar_t *)item)->x, ((parametersCanvasBar_t *)item)->y, ((parametersCanvasBar_t *)item)->width, ((parametersCanvasBar_t *)item)->height, ((parametersCanvasBar_t *)item)->color); + item += sizeof(parametersCanvasBar_t); + break; + case CANVAS_ADD_RECTANGLE: + Canvas.AddRectangle(((parametersCanvasRectangle_t *)item)->x, ((parametersCanvasRectangle_t *)item)->y, ((parametersCanvasRectangle_t *)item)->width, ((parametersCanvasRectangle_t *)item)->height, ((parametersCanvasRectangle_t *)item)->color); + item += sizeof(parametersCanvasRectangle_t); + break; + } + } + + if (Canvas.ToScreen()) task->state = TASK_STATE_COMPLETED; +} + + +void TFT_Queue::fill(uint16_t x, uint16_t y, uint16_t width, uint16_t height, uint16_t color) { + finish_sketch(); + + queueTask_t *task = (queueTask_t *)end_of_queue; + last_task = (uint8_t *)task; + + end_of_queue += sizeof(queueTask_t); + parametersFill_t *task_parameters = (parametersFill_t *)end_of_queue; + end_of_queue += sizeof(parametersFill_t); + + task_parameters->x = x; + task_parameters->y = y; + task_parameters->width = width; + task_parameters->height = height; + task_parameters->color = color; + task_parameters->count = width * height; + + *end_of_queue = TASK_END_OF_QUEUE; + task->nextTask = end_of_queue; + task->state = TASK_STATE_READY; + task->type = TASK_FILL; + + if (current_task == NULL) current_task = (uint8_t *)task; +} + +void TFT_Queue::canvas(uint16_t x, uint16_t y, uint16_t width, uint16_t height) { + finish_sketch(); + + queueTask_t *task = (queueTask_t *)end_of_queue; + last_task = (uint8_t *) task; + + task->state = TASK_STATE_SKETCH; + task->type = TASK_CANVAS; + task->nextTask = NULL; + + end_of_queue += sizeof(queueTask_t); + parametersCanvas_t *task_parameters = (parametersCanvas_t *)end_of_queue; + end_of_queue += sizeof(parametersCanvas_t); + + task_parameters->x = x; + task_parameters->y = y; + task_parameters->width = width; + task_parameters->height = height; + task_parameters->count = 0; + + if (current_task == NULL) current_task = (uint8_t *)task; +} + +void TFT_Queue::set_background(uint16_t color) { + parametersCanvas_t *task_parameters = (parametersCanvas_t *)(((uint8_t *)last_task) + sizeof(queueTask_t)); + parametersCanvasBackground_t *parameters = (parametersCanvasBackground_t *)end_of_queue; + + parameters->type = CANVAS_SET_BACKGROUND; + parameters->color = color; + + end_of_queue += sizeof(parametersCanvasBackground_t); + task_parameters->count++; +} + +void TFT_Queue::add_text(uint16_t x, uint16_t y, uint16_t color, uint8_t *string, uint16_t maxWidth) { + parametersCanvas_t *task_parameters = (parametersCanvas_t *)(((uint8_t *)last_task) + sizeof(queueTask_t)); + parametersCanvasText_t *parameters = (parametersCanvasText_t *)end_of_queue; + + uint8_t *pointer = string; + + parameters->type = CANVAS_ADD_TEXT; + parameters->x = x; + parameters->y = y; + parameters->color = color; + parameters->stringLength = 0; + parameters->maxWidth = maxWidth; + + end_of_queue += sizeof(parametersCanvasText_t); + + /* TODO: Deal with maxWidth */ + while ((*(end_of_queue++) = *pointer++) != 0x00); + + parameters->stringLength = pointer - string; + task_parameters->count++; +} + +void TFT_Queue::add_image(int16_t x, int16_t y, MarlinImage image, uint16_t *colors) { + parametersCanvas_t *task_parameters = (parametersCanvas_t *)(((uint8_t *)last_task) + sizeof(queueTask_t)); + parametersCanvasImage_t *parameters = (parametersCanvasImage_t *)end_of_queue; + + parameters->type = CANVAS_ADD_IMAGE; + parameters->x = x; + parameters->y = y; + parameters->image = image; + + end_of_queue += sizeof(parametersCanvasImage_t); + task_parameters->count++; + + colorMode_t color_mode = Images[image].colorMode; + + if (color_mode == HIGHCOLOR) return; + + uint16_t *color = (uint16_t *)end_of_queue; + uint8_t number_of_color = 0; + + switch (color_mode) { + case GREYSCALE1: number_of_color = 1; break; + case GREYSCALE2: number_of_color = 3; break; + case GREYSCALE4: number_of_color = 15; break; + default: + break; + } + + while (number_of_color--) { + *color++ = *colors++; + } + + end_of_queue = (uint8_t *)color; +} + +uint16_t gradient(uint16_t colorA, uint16_t colorB, uint16_t factor) { + uint16_t red, green, blue; + + red = ( RED(colorA) * factor + RED(colorB) * (256 - factor)) >> 8; + green = (GREEN(colorA) * factor + GREEN(colorB) * (256 - factor)) >> 8; + blue = ( BLUE(colorA) * factor + BLUE(colorB) * (256 - factor)) >> 8; + + return RGB(red, green, blue); +} + +void TFT_Queue::add_image(int16_t x, int16_t y, MarlinImage image, uint16_t color_main, uint16_t color_background, uint16_t color_shadow) { + uint16_t colors[16]; + colorMode_t color_mode = Images[image].colorMode; + uint16_t i; + + switch (color_mode) { + case GREYSCALE1: + colors[1] = color_main; + break; + case GREYSCALE2: + for (i = 1; i < 4; i++) + colors[i] = gradient(color_main, color_background, (i << 8) / 3); + break; + case GREYSCALE4: + for (i = 1; i < 8; i++) + colors[i] = gradient(color_background, color_shadow, i << 5); + for (i = 8; i < 16; i++) + colors[i] = gradient(color_main, color_background, ((i - 8) << 8) / 7); + break; + default: + break; + } + + add_image(x, y, image, colors + 1); +} + +void TFT_Queue::add_bar(uint16_t x, uint16_t y, uint16_t width, uint16_t height, uint16_t color) { + parametersCanvas_t *task_parameters = (parametersCanvas_t *)(((uint8_t *)last_task) + sizeof(queueTask_t)); + parametersCanvasBar_t *parameters = (parametersCanvasBar_t *)end_of_queue; + + parameters->type = CANVAS_ADD_BAR; + parameters->x = x; + parameters->y = y; + parameters->width = width; + parameters->height = height; + parameters->color = color; + + end_of_queue += sizeof(parametersCanvasBar_t); + task_parameters->count++; +} + +void TFT_Queue::add_rectangle(uint16_t x, uint16_t y, uint16_t width, uint16_t height, uint16_t color) { + parametersCanvas_t *task_parameters = (parametersCanvas_t *)(((uint8_t *)last_task) + sizeof(queueTask_t)); + parametersCanvasRectangle_t *parameters = (parametersCanvasRectangle_t *)end_of_queue; + + parameters->type = CANVAS_ADD_RECTANGLE; + parameters->x = x; + parameters->y = y; + parameters->width = width; + parameters->height = height; + parameters->color = color; + + end_of_queue += sizeof(parametersCanvasRectangle_t); + task_parameters->count++; +} + +#endif // HAS_GRAPHICAL_TFT diff --git a/Marlin/src/lcd/tft/tft_queue.h b/Marlin/src/lcd/tft/tft_queue.h new file mode 100644 index 000000000..9aa0d5b6c --- /dev/null +++ b/Marlin/src/lcd/tft/tft_queue.h @@ -0,0 +1,140 @@ +/** + * Marlin 3D Printer Firmware + * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin] + * + * Based on Sprinter and grbl. + * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + */ +#pragma once + +#include "../../inc/MarlinConfig.h" +#include "tft_string.h" +#include "tft_image.h" + +#define QUEUE_SIZE 8192 + +enum QueueTaskType : uint8_t { + TASK_END_OF_QUEUE = 0x00, + TASK_FILL, + TASK_CANVAS, +}; + +enum QueueTaskState : uint8_t { + TASK_STATE_READY = 0x00, + TASK_STATE_IN_PROGRESS, + TASK_STATE_COMPLETED, + TASK_STATE_SKETCH = 0xFF, +}; + +enum CanvasSubtype : uint8_t { + CANVAS_SET_BACKGROUND = 0x00, + CANVAS_ADD_TEXT, + CANVAS_ADD_IMAGE, + CANVAS_ADD_BAR, + CANVAS_ADD_RECTANGLE, +}; + +typedef struct __attribute__((__packed__)) { + QueueTaskType type; + QueueTaskState state; + uint8_t *nextTask; +} queueTask_t; + +typedef struct __attribute__((__packed__)) { + uint16_t x; + uint16_t y; + uint16_t width; + uint16_t height; + uint16_t color; + uint32_t count; +} parametersFill_t; + +typedef struct __attribute__((__packed__)) { + uint16_t x; + uint16_t y; + uint16_t width; + uint16_t height; + uint32_t count; +} parametersCanvas_t; + +typedef struct __attribute__((__packed__)) { + CanvasSubtype type; + uint16_t color; +} parametersCanvasBackground_t; + +typedef struct __attribute__((__packed__)) { + CanvasSubtype type; + uint16_t x; + uint16_t y; + uint16_t color; + uint32_t count; + uint16_t maxWidth; + uint16_t stringLength; +} parametersCanvasText_t; + +typedef struct __attribute__((__packed__)) { + CanvasSubtype type; + int16_t x; + int16_t y; + MarlinImage image; +} parametersCanvasImage_t; + +typedef struct __attribute__((__packed__)) { + CanvasSubtype type; + uint16_t x; + uint16_t y; + uint16_t width; + uint16_t height; + uint16_t color; +} parametersCanvasBar_t; + +typedef struct __attribute__((__packed__)) { + CanvasSubtype type; + uint16_t x; + uint16_t y; + uint16_t width; + uint16_t height; + uint16_t color; +} parametersCanvasRectangle_t; + +class TFT_Queue { + private: + static uint8_t queue[QUEUE_SIZE]; + static uint8_t *end_of_queue; + static uint8_t *current_task; + static uint8_t *last_task; + + static void finish_sketch(); + static void fill(queueTask_t *task); + static void canvas(queueTask_t *task); + + public: + static void reset(); + static void async(); + static void sync() { while (current_task != NULL) async(); } + + static void fill(uint16_t x, uint16_t y, uint16_t width, uint16_t height, uint16_t color); + static void canvas(uint16_t x, uint16_t y, uint16_t width, uint16_t height); + static void set_background(uint16_t color); + static void add_text(uint16_t x, uint16_t y, uint16_t color, uint8_t *string, uint16_t maxWidth); + + static void add_image(int16_t x, int16_t y, MarlinImage image, uint16_t *colors); + static void add_image(int16_t x, int16_t y, MarlinImage image, uint16_t color_main, uint16_t color_background, uint16_t color_shadow); + + static void add_bar(uint16_t x, uint16_t y, uint16_t width, uint16_t height, uint16_t color); + static void add_rectangle(uint16_t x, uint16_t y, uint16_t width, uint16_t height, uint16_t color); +}; diff --git a/Marlin/src/lcd/tft/tft_string.cpp b/Marlin/src/lcd/tft/tft_string.cpp new file mode 100644 index 000000000..f4e203445 --- /dev/null +++ b/Marlin/src/lcd/tft/tft_string.cpp @@ -0,0 +1,159 @@ +/** + * Marlin 3D Printer Firmware + * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin] + * + * Based on Sprinter and grbl. + * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + */ + +#include "../../inc/MarlinConfig.h" + +#if HAS_GRAPHICAL_TFT + +#include "tft_string.h" +#include "../fontutils.h" + +//#define DEBUG_TFT_FONT +#define DEBUG_OUT ENABLED(DEBUG_TFT_FONT) +#include "../../core/debug_out.h" + +glyph_t *TFT_String::glyphs[256]; +font_t *TFT_String::font_header; + +uint8_t TFT_String::data[]; +uint16_t TFT_String::span; +uint16_t TFT_String::length; + +void TFT_String::set_font(const uint8_t *font) { + font_header = (font_t *)font; + uint32_t glyph; + + for (glyph = 0; glyph < 256; glyph++) glyphs[glyph] = NULL; + + DEBUG_ECHOLNPAIR("Format: ", font_header->Format); + DEBUG_ECHOLNPAIR("BBXWidth: ", font_header->BBXWidth); + DEBUG_ECHOLNPAIR("BBXHeight: ", font_header->BBXHeight); + DEBUG_ECHOLNPAIR("BBXOffsetX: ", font_header->BBXOffsetX); + DEBUG_ECHOLNPAIR("BBXOffsetY: ", font_header->BBXOffsetY); + DEBUG_ECHOLNPAIR("CapitalAHeight: ", font_header->CapitalAHeight); + DEBUG_ECHOLNPAIR("Encoding65Pos: ", font_header->Encoding65Pos); + DEBUG_ECHOLNPAIR("Encoding97Pos: ", font_header->Encoding97Pos); + DEBUG_ECHOLNPAIR("FontStartEncoding: ", font_header->FontStartEncoding); + DEBUG_ECHOLNPAIR("FontEndEncoding: ", font_header->FontEndEncoding); + DEBUG_ECHOLNPAIR("LowerGDescent: ", font_header->LowerGDescent); + DEBUG_ECHOLNPAIR("FontAscent: ", font_header->FontAscent); + DEBUG_ECHOLNPAIR("FontDescent: ", font_header->FontDescent); + DEBUG_ECHOLNPAIR("FontXAscent: ", font_header->FontXAscent); + DEBUG_ECHOLNPAIR("FontXDescent: ", font_header->FontXDescent); + + add_glyphs(font); +} + +void TFT_String::add_glyphs(const uint8_t *font) { + uint32_t glyph; + uint8_t *pointer = (uint8_t *)font + sizeof(font_t); + + for (glyph = ((font_t *)font)->FontStartEncoding; glyph <= ((font_t *)font)->FontEndEncoding; glyph++) { + if (*pointer != NO_GLYPH) { + glyphs[glyph] = (glyph_t *)pointer; + pointer += sizeof(glyph_t) + ((glyph_t *)pointer)->DataSize; + } + else { + pointer++; + } + } +} + +void TFT_String::set() { + *data = 0x00; + span = 0; + length = 0; +} + +uint8_t read_byte(uint8_t *byte) { return *byte; } + +void TFT_String::add(uint8_t *string, uint8_t index, uint8_t *itemString) { + uint8_t character; + wchar_t wchar; + + while (*string) { + string = get_utf8_value_cb(string, read_byte, &wchar); + if (wchar > 255) + wchar |= 0x0080; + character = (uint8_t) (wchar & 0x00FF); + + if (character == '=' || character == '~' || character == '*') { + if (index >= 0) { + if (character == '*') + add_character('E'); + add_character(index + ((character == '=') ? '0' : LCD_FIRST_TOOL)); + } + else { + add(index == -2 ? GET_TEXT(MSG_CHAMBER) : GET_TEXT(MSG_BED)); + } + continue; + } + else if (character == '$' && itemString) { + add(itemString); + continue; + } + + add_character(character); + } + eol(); +} + +void TFT_String::add_character(uint8_t character) { + if (length < MAX_STRING_LENGTH) { + data[length] = character; + length++; + span += glyph(character)->DWidth; + } +} + +void TFT_String::rtrim(uint8_t character) { + while (length) { + if (data[length - 1] == 0x20 || data[length - 1] == character) { + length--; + span -= glyph(data[length])->DWidth; + eol(); + } + else { + break; + } + } +} + +void TFT_String::ltrim(uint8_t character) { + uint16_t i, j; + for (i = 0; (i < length) && (data[i] == 0x20 || data[i] == character); i++) { + span -= glyph(data[i])->DWidth; + } + if (i == 0) return; + for (j = 0; i < length; data[j++] = data[i++]); + length = j; + eol(); +} + +void TFT_String::trim(uint8_t character) { + rtrim(character); + ltrim(character); +} + +TFT_String tft_string; + +#endif // HAS_GRAPHICAL_TFT diff --git a/Marlin/src/lcd/tft/tft_string.h b/Marlin/src/lcd/tft/tft_string.h new file mode 100644 index 000000000..b4c94953f --- /dev/null +++ b/Marlin/src/lcd/tft/tft_string.h @@ -0,0 +1,104 @@ +/** + * Marlin 3D Printer Firmware + * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin] + * + * Based on Sprinter and grbl. + * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + */ +#pragma once + +#include + +extern const uint8_t ISO10646_1_5x7[]; +extern const uint8_t font10x20[]; + +extern const uint8_t Helvetica12Bold[]; + +extern const uint8_t Helvetica14[], Helvetica14_symbols[]; +extern const uint8_t Helvetica18[], Helvetica18_symbols[]; + +#define NO_GLYPH 0xFF + +typedef struct __attribute__((__packed__)) { + uint8_t Format; + uint8_t BBXWidth; + uint8_t BBXHeight; + int8_t BBXOffsetX; + int8_t BBXOffsetY; + uint8_t CapitalAHeight; + uint16_t Encoding65Pos; + uint16_t Encoding97Pos; + uint8_t FontStartEncoding; + uint8_t FontEndEncoding; + int8_t LowerGDescent; + int8_t FontAscent; + int8_t FontDescent; + int8_t FontXAscent; + int8_t FontXDescent; +} font_t; + +typedef struct __attribute__((__packed__)) { + uint8_t BBXWidth; + uint8_t BBXHeight; + uint8_t DataSize; + int8_t DWidth; + int8_t BBXOffsetX; + int8_t BBXOffsetY; +} glyph_t; + +#define MAX_STRING_LENGTH 64 + +class TFT_String { + private: + static glyph_t *glyphs[256]; + static font_t *font_header; + + static uint8_t data[MAX_STRING_LENGTH + 1]; + static uint16_t span; // in pixels + static uint16_t length; // in characters + + static void add_character(uint8_t character); + static void eol() { data[length] = 0x00; } + + public: + static void set_font(const uint8_t *font); + static void add_glyphs(const uint8_t *font); + + static font_t *font() { return font_header; }; + static uint16_t font_height() { return font_header->FontAscent - font_header->FontDescent; } + static glyph_t *glyph(uint8_t character) { return glyphs[character] == NULL ? glyphs[0x3F] : glyphs[character]; } /* Use '?' for unknown glyphs */ + static inline glyph_t *glyph(uint8_t *character) { return glyph(*character); } + + static void set(); + static void add(uint8_t character) { add_character(character); eol(); } + static void add(uint8_t *string) { while (*string) { add_character(*string++); } eol(); } + static void add(uint8_t *string, uint8_t index, uint8_t *itemString = NULL); + static void set(uint8_t *string) { set(); add(string); }; + static void set(uint8_t *string, uint8_t index, const char *itemString = NULL) { set(); add(string, index, (uint8_t *)itemString); }; + static inline void set(const char *string) { set((uint8_t *)string); } + static inline void set(const char *string, uint8_t index, const char *itemString = NULL) { set((uint8_t *)string, index, itemString); } + static inline void add(const char *string) { add((uint8_t *)string); } + + static void trim(uint8_t character = 0x20); + static void rtrim(uint8_t character = 0x20); + static void ltrim(uint8_t character = 0x20); + static uint16_t width() { return span; } + static uint8_t *string() { return data; } + static uint16_t center(uint16_t width) { return span > width ? 0 : (width - span) / 2; } +}; + +extern TFT_String tft_string; diff --git a/Marlin/src/lcd/tft/touch.cpp b/Marlin/src/lcd/tft/touch.cpp new file mode 100644 index 000000000..3407389f2 --- /dev/null +++ b/Marlin/src/lcd/tft/touch.cpp @@ -0,0 +1,293 @@ +/** + * Marlin 3D Printer Firmware + * Copyright (c) 2019 MarlinFirmware [https://github.com/MarlinFirmware/Marlin] + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + */ + +#include "../../inc/MarlinConfig.h" + +#if ENABLED(TOUCH_SCREEN) + +#include "touch.h" +#include "pinconfig.h" + +#include "../ultralcd.h" +#include "../menu/menu.h" +#include "../../module/temperature.h" +#include "../../module/planner.h" + +#if ENABLED(AUTO_BED_LEVELING_UBL) + #include "../../feature/bedlevel/bedlevel.h" +#endif + +#include "tft.h" + +int16_t Touch::x, Touch::y; +touch_control_t Touch::controls[]; +touch_control_t *Touch::current_control; +uint16_t Touch::controls_count; +millis_t Touch::now = 0; +millis_t Touch::time_to_hold; +millis_t Touch::repeat_delay; +millis_t Touch::touch_time; +TouchControlType Touch::touch_control_type = NONE; +touch_calibration_t Touch::calibration; +#if ENABLED(TOUCH_SCREEN_CALIBRATION) + calibrationState Touch::calibration_state = CALIBRATION_NONE; + touch_calibration_point_t Touch::calibration_points[4]; +#endif + +void Touch::init() { + calibration_reset(); + reset(); + io.Init(); +} + +void Touch::add_control(TouchControlType type, uint16_t x, uint16_t y, uint16_t width, uint16_t height, int32_t data) { + if (controls_count == MAX_CONTROLS) return; + + controls[controls_count].type = type; + controls[controls_count].x = x; + controls[controls_count].y = y; + controls[controls_count].width = width; + controls[controls_count].height = height; + controls[controls_count].data = data; + controls_count++; +} + +void Touch::idle() { + uint16_t i; + int16_t _x, _y; + + if (now == millis()) return; + now = millis(); + + if (get_point(&_x, &_y)) { + #if LCD_TIMEOUT_TO_STATUS + ui.return_to_status_ms = now + LCD_TIMEOUT_TO_STATUS; + #endif + + if (touch_time) { + #if ENABLED(TOUCH_SCREEN_CALIBRATION) + if (touch_control_type == NONE && ELAPSED(now, touch_time + TOUCH_SCREEN_HOLD_TO_CALIBRATE_MS) && ui.on_status_screen()) + ui.goto_screen(touch_screen_calibration); + #endif + return; + } + + if (time_to_hold == 0) time_to_hold = now + MINIMUM_HOLD_TIME; + if (PENDING(now, time_to_hold)) return; + + if (x != 0 && y != 0) { + if (current_control) { + if (WITHIN(x, current_control->x - FREE_MOVE_RANGE, current_control->x + current_control->width + FREE_MOVE_RANGE) && WITHIN(y, current_control->y - FREE_MOVE_RANGE, current_control->y + current_control->height + FREE_MOVE_RANGE)) { + NOLESS(x, current_control->x); + NOMORE(x, current_control->x + current_control->width); + NOLESS(y, current_control->y); + NOMORE(y, current_control->y + current_control->height); + touch(current_control); + } + else { + current_control = NULL; + } + } + else { + for (i = 0; i < controls_count; i++) { + if ((WITHIN(x, controls[i].x, controls[i].x + controls[i].width) && WITHIN(y, controls[i].y, controls[i].y + controls[i].height)) || (TERN(TOUCH_SCREEN_CALIBRATION, controls[i].type == CALIBRATE, false))) { + touch_control_type = controls[i].type; + touch(&controls[i]); + break; + } + } + } + + if (current_control == NULL) + touch_time = now; + } + x = _x; + y = _y; + } + else { + x = y = 0; + current_control = NULL; + touch_time = 0; + touch_control_type = NONE; + time_to_hold = 0; + repeat_delay = TOUCH_REPEAT_DELAY; + } +} + +void Touch::touch(touch_control_t *control) { + switch (control->type) { + #if ENABLED(TOUCH_SCREEN_CALIBRATION) + case CALIBRATE: + ui.refresh(); + + if (calibration_state < CALIBRATION_SUCCESS) { + calibration_points[calibration_state].x = int16_t(control->data >> 16); + calibration_points[calibration_state].y = int16_t(control->data & 0xFFFF); + calibration_points[calibration_state].raw_x = x; + calibration_points[calibration_state].raw_y = y; + } + + switch (calibration_state) { + case CALIBRATION_POINT_1: calibration_state = CALIBRATION_POINT_2; break; + case CALIBRATION_POINT_2: calibration_state = CALIBRATION_POINT_3; break; + case CALIBRATION_POINT_3: calibration_state = CALIBRATION_POINT_4; break; + case CALIBRATION_POINT_4: + if (validate_precision_x(0, 1) && validate_precision_x(2, 3) && validate_precision_y(0, 2) && validate_precision_y(1, 3)) { + calibration_state = CALIBRATION_SUCCESS; + calibration.x = ((calibration_points[2].x - calibration_points[0].x) << 17) / (calibration_points[3].raw_x + calibration_points[2].raw_x - calibration_points[1].raw_x - calibration_points[0].raw_x); + calibration.y = ((calibration_points[1].y - calibration_points[0].y) << 17) / (calibration_points[3].raw_y - calibration_points[2].raw_y + calibration_points[1].raw_y - calibration_points[0].raw_y); + calibration.offset_x = calibration_points[0].x - int16_t(((calibration_points[0].raw_x + calibration_points[1].raw_x) * calibration.x) >> 17); + calibration.offset_y = calibration_points[0].y - int16_t(((calibration_points[0].raw_y + calibration_points[2].raw_y) * calibration.y) >> 17); + calibration.orientation = TOUCH_LANDSCAPE; + } + else if (validate_precision_y(0, 1) && validate_precision_y(2, 3) && validate_precision_x(0, 2) && validate_precision_x(1, 3)) { + calibration_state = CALIBRATION_SUCCESS; + calibration.x = ((calibration_points[2].x - calibration_points[0].x) << 17) / (calibration_points[3].raw_y + calibration_points[2].raw_y - calibration_points[1].raw_y - calibration_points[0].raw_y); + calibration.y = ((calibration_points[1].y - calibration_points[0].y) << 17) / (calibration_points[3].raw_x - calibration_points[2].raw_x + calibration_points[1].raw_x - calibration_points[0].raw_x); + calibration.offset_x = calibration_points[0].x - int16_t(((calibration_points[0].raw_y + calibration_points[1].raw_y) * calibration.x) >> 17); + calibration.offset_y = calibration_points[0].y - int16_t(((calibration_points[0].raw_x + calibration_points[2].raw_x) * calibration.y) >> 17); + calibration.orientation = TOUCH_PORTRAIT; + } + else { + calibration_state = CALIBRATION_FAIL; + calibration_reset(); + } + + if (calibration_state == CALIBRATION_SUCCESS) { + SERIAL_ECHOLN("Touch screen calibration completed"); + SERIAL_ECHOLNPAIR("TOUCH_CALIBRATION_X ", calibration.x); + SERIAL_ECHOLNPAIR("TOUCH_CALIBRATION_Y ", calibration.y); + SERIAL_ECHOLNPAIR("TOUCH_OFFSET_X ", calibration.offset_x); + SERIAL_ECHOLNPAIR("TOUCH_OFFSET_Y ", calibration.offset_y); + SERIAL_ECHO("TOUCH_ORIENTATION "); if (calibration.orientation == TOUCH_LANDSCAPE) SERIAL_ECHOLN("TOUCH_LANDSCAPE"); else SERIAL_ECHOLN("TOUCH_PORTRAIT"); + } + break; + default: break; + } + break; + #endif // TOUCH_SCREEN_CALIBRATION + + case MENU_SCREEN: ui.goto_screen((screenFunc_t)control->data); break; + case BACK: ui.goto_previous_screen(); break; + case CLICK: ui.lcd_clicked = true; break; + #if HAS_RESUME_CONTINUE + case RESUME_CONTINUE: extern bool wait_for_user; wait_for_user = false; break; + #endif + case CANCEL: ui.encoderPosition = 0; ui.selection = false; ui.lcd_clicked = true; break; + case CONFIRM: ui.encoderPosition = 1; ui.selection = true; ui.lcd_clicked = true; break; + case MENU_ITEM: ui.encoderPosition = control->data; ui.refresh(); break; + case PAGE_UP: + encoderTopLine = encoderTopLine > LCD_HEIGHT ? encoderTopLine - LCD_HEIGHT : 0; + ui.encoderPosition = ui.encoderPosition > LCD_HEIGHT ? ui.encoderPosition - LCD_HEIGHT : 0; + ui.refresh(); + break; + case PAGE_DOWN: + encoderTopLine = encoderTopLine + 2 * LCD_HEIGHT < screen_items ? encoderTopLine + LCD_HEIGHT : screen_items - LCD_HEIGHT; + ui.encoderPosition = ui.encoderPosition + LCD_HEIGHT < (uint32_t)screen_items ? ui.encoderPosition + LCD_HEIGHT : screen_items; + ui.refresh(); + break; + case SLIDER: hold(control); ui.encoderPosition = (x - control->x) * control->data / control->width; break; + case INCREASE: hold(control, repeat_delay - 5); TERN(AUTO_BED_LEVELING_UBL, ui.external_control ? ubl.encoder_diff++ : ui.encoderPosition++, ui.encoderPosition++); break; + case DECREASE: hold(control, repeat_delay - 5); TERN(AUTO_BED_LEVELING_UBL, ui.external_control ? ubl.encoder_diff-- : ui.encoderPosition--, ui.encoderPosition--); break; + case HEATER: + int8_t heater; + heater = control->data; + ui.clear_lcd(); + if (heater >= 0) { // HotEnd + #if HOTENDS == 1 + MenuItem_int3::action((const char *)GET_TEXT_F(MSG_NOZZLE), &thermalManager.temp_hotend[0].target, 0, thermalManager.heater_maxtemp[0] - 15, []{ thermalManager.start_watching_hotend(0); }); + #else + MenuItemBase::itemIndex = heater; + MenuItem_int3::action((const char *)GET_TEXT_F(MSG_NOZZLE_N), &thermalManager.temp_hotend[heater].target, 0, thermalManager.heater_maxtemp[heater] - 15, []{ thermalManager.start_watching_hotend(MenuItemBase::itemIndex); }); + #endif + } + #if HAS_HEATED_BED + else if (heater == H_BED) { + MenuItem_int3::action((const char *)GET_TEXT_F(MSG_BED), &thermalManager.temp_bed.target, 0, BED_MAXTEMP - 10, thermalManager.start_watching_bed); + } + #endif + #if HAS_HEATED_CHAMBER + else if (heater == H_CHAMBER) { + MenuItem_int3::action((const char *)GET_TEXT_F(MSG_CHAMBER), &thermalManager.temp_chamber.target, 0, CHAMBER_MAXTEMP - 10, thermalManager.start_watching_chamber); + } + #endif + break; + case FAN: + ui.clear_lcd(); + static uint8_t fan, fan_speed; + fan = 0; + fan_speed = thermalManager.fan_speed[fan]; + MenuItem_percent::action((const char *)GET_TEXT_F(MSG_FIRST_FAN_SPEED), &fan_speed, 0, 255, []{ thermalManager.set_fan_speed(fan, fan_speed); }); + break; + case FEEDRATE: + ui.clear_lcd(); + MenuItem_int3::action((const char *)GET_TEXT_F(MSG_SPEED), &feedrate_percentage, 10, 999); + break; + case FLOWRATE: + ui.clear_lcd(); + MenuItemBase::itemIndex = control->data; + #if EXTRUDERS == 1 + MenuItem_int3::action((const char *)GET_TEXT_F(MSG_FLOW), &planner.flow_percentage[MenuItemBase::itemIndex], 10, 999, []{ planner.refresh_e_factor(MenuItemBase::itemIndex); }); + #else + MenuItem_int3::action((const char *)GET_TEXT_F(MSG_FLOW_N), &planner.flow_percentage[MenuItemBase::itemIndex], 10, 999, []{ planner.refresh_e_factor(MenuItemBase::itemIndex); }); + #endif + break; + + #if ENABLED(AUTO_BED_LEVELING_UBL) + case UBL: hold(control, UBL_REPEAT_DELAY); ui.encoderPosition += control->data; break; + #endif + + default: break; + } +} + +void Touch::hold(touch_control_t *control, millis_t delay) { + current_control = control; + if (delay) { + repeat_delay = delay > MIN_REPEAT_DELAY ? delay : MIN_REPEAT_DELAY; + time_to_hold = now + repeat_delay; + } + ui.refresh(); +} + +bool Touch::get_point(int16_t *x, int16_t *y) { + bool is_touched = (calibration.orientation == TOUCH_PORTRAIT ? io.getRawPoint(y, x) : io.getRawPoint(x, y)); + + if (is_touched && calibration.orientation != TOUCH_ORIENTATION_NONE) { + *x = int16_t((int32_t(*x) * calibration.x) >> 16) + calibration.offset_x; + *y = int16_t((int32_t(*y) * calibration.y) >> 16) + calibration.offset_y; + } + return is_touched; +} +Touch touch; + +bool MarlinUI::touch_pressed() { + return touch.is_clicked(); +} + +void add_control(uint16_t x, uint16_t y, TouchControlType control_type, int32_t data, MarlinImage image, bool is_enabled, uint16_t color_enabled, uint16_t color_disabled) { + uint16_t width = Images[image].width; + uint16_t height = Images[image].height; + tft.canvas(x, y, width, height); + tft.add_image(0, 0, image, is_enabled ? color_enabled : color_disabled); + if (is_enabled) + touch.add_control(control_type, x, y, width, height, data); +} + +#endif // TOUCH_SCREEN diff --git a/Marlin/src/lcd/tft/touch.h b/Marlin/src/lcd/tft/touch.h new file mode 100644 index 000000000..f3e53ae46 --- /dev/null +++ b/Marlin/src/lcd/tft/touch.h @@ -0,0 +1,180 @@ +/** + * Marlin 3D Printer Firmware + * Copyright (c) 2019 MarlinFirmware [https://github.com/MarlinFirmware/Marlin] + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + */ +#pragma once + +#include "../../inc/MarlinConfigPre.h" + +#if ENABLED(TOUCH_SCREEN) + +#include "tft_color.h" +#include "tft_image.h" + +#include HAL_PATH(../../HAL, tft/xpt2046.h) +#define TOUCH_DRIVER XPT2046 + +#ifndef TOUCH_SCREEN_CALIBRATION_PRECISION + #define TOUCH_SCREEN_CALIBRATION_PRECISION 80 +#endif + +#ifndef TOUCH_SCREEN_HOLD_TO_CALIBRATE_MS + #define TOUCH_SCREEN_HOLD_TO_CALIBRATE_MS 2500 +#endif + +#define TOUCH_ORIENTATION_NONE 0 +#define TOUCH_LANDSCAPE 1 +#define TOUCH_PORTRAIT 2 + +#if !(defined(TOUCH_CALIBRATION_X) || defined(TOUCH_CALIBRATION_Y) || defined(TOUCH_OFFSET_X) || defined(TOUCH_OFFSET_Y) || defined(TOUCH_ORIENTATION)) + #if defined(XPT2046_X_CALIBRATION) && defined(XPT2046_Y_CALIBRATION) && defined(XPT2046_X_OFFSET) && defined(XPT2046_Y_OFFSET) + #define TOUCH_CALIBRATION_X XPT2046_X_CALIBRATION + #define TOUCH_CALIBRATION_Y XPT2046_Y_CALIBRATION + #define TOUCH_OFFSET_X XPT2046_X_OFFSET + #define TOUCH_OFFSET_Y XPT2046_Y_OFFSET + #define TOUCH_ORIENTATION TOUCH_LANDSCAPE + #else + #define TOUCH_CALIBRATION_X 0 + #define TOUCH_CALIBRATION_Y 0 + #define TOUCH_OFFSET_X 0 + #define TOUCH_OFFSET_Y 0 + #define TOUCH_ORIENTATION TOUCH_ORIENTATION_NONE + #endif +#endif + +// Menu Navigation +extern int8_t encoderTopLine, encoderLine, screen_items; + +enum TouchControlType : uint16_t { + NONE = 0x0000, + CALIBRATE, + MENU_SCREEN, + MENU_ITEM, + BACK, + PAGE_UP, + PAGE_DOWN, + CLICK, + RESUME_CONTINUE, + SLIDER, + INCREASE, + DECREASE, + CANCEL, + CONFIRM, + HEATER, + FAN, + FEEDRATE, + FLOWRATE, + UBL, +}; + +typedef void (*screenFunc_t)(); + +void add_control(uint16_t x, uint16_t y, TouchControlType control_type, int32_t data, MarlinImage image, bool is_enabled = true, uint16_t color_enabled = COLOR_CONTROL_ENABLED, uint16_t color_disabled = COLOR_CONTROL_DISABLED); +inline void add_control(uint16_t x, uint16_t y, TouchControlType control_type, MarlinImage image, bool is_enabled = true, uint16_t color_enabled = COLOR_CONTROL_ENABLED, uint16_t color_disabled = COLOR_CONTROL_DISABLED) { add_control(x, y, control_type, 0, image, is_enabled, color_enabled, color_disabled); } +inline void add_control(uint16_t x, uint16_t y, screenFunc_t screen, MarlinImage image, bool is_enabled = true, uint16_t color_enabled = COLOR_CONTROL_ENABLED, uint16_t color_disabled = COLOR_CONTROL_DISABLED) { add_control(x, y, MENU_SCREEN, (int32_t)screen, image, is_enabled, color_enabled, color_disabled); } + +typedef struct __attribute__((__packed__)) { + TouchControlType type; + uint16_t x; + uint16_t y; + uint16_t width; + uint16_t height; + int32_t data; +} touch_control_t; + +typedef struct __attribute__((__packed__)) { + int32_t x; + int32_t y; + int16_t offset_x; + int16_t offset_y; + uint8_t orientation; +} touch_calibration_t; + +typedef struct __attribute__((__packed__)) { + uint16_t x; + uint16_t y; + int16_t raw_x; + int16_t raw_y; +} touch_calibration_point_t; + +enum calibrationState : uint8_t { + CALIBRATION_POINT_1 = 0x00, + CALIBRATION_POINT_2, + CALIBRATION_POINT_3, + CALIBRATION_POINT_4, + CALIBRATION_SUCCESS, + CALIBRATION_FAIL, + CALIBRATION_NONE, +}; + +#define MAX_CONTROLS 16 +#define MINIMUM_HOLD_TIME 15 +#define TOUCH_REPEAT_DELAY 75 +#define MIN_REPEAT_DELAY 25 +#define UBL_REPEAT_DELAY 125 +#define FREE_MOVE_RANGE 32 + +class Touch { + private: + static TOUCH_DRIVER io; + static int16_t x, y; + + static touch_control_t controls[MAX_CONTROLS]; + static touch_control_t *current_control; + static uint16_t controls_count; + + static millis_t now; + static millis_t time_to_hold; + static millis_t repeat_delay; + static millis_t touch_time; + static TouchControlType touch_control_type; + + static inline bool get_point(int16_t *x, int16_t *y); + static void touch(touch_control_t *control); + static void hold(touch_control_t *control, millis_t delay = 0); + + #if ENABLED(TOUCH_SCREEN_CALIBRATION) + static calibrationState calibration_state; + static touch_calibration_point_t calibration_points[4]; + + static bool validate_precision(int32_t a, int32_t b) { return (a > b ? (100 * b) / a : (100 * a) / b) > TOUCH_SCREEN_CALIBRATION_PRECISION; } + static bool validate_precision_x(uint8_t a, uint8_t b) { return validate_precision(calibration_points[a].raw_x, calibration_points[b].raw_x); } + static bool validate_precision_y(uint8_t a, uint8_t b) { return validate_precision(calibration_points[a].raw_y, calibration_points[b].raw_y); } + #endif // TOUCH_SCREEN_CALIBRATION + + public: + static void init(); + static void reset() { controls_count = 0; touch_time = -1; current_control = NULL; } + static void clear() { controls_count = 0; } + static void idle(); + static bool is_clicked() { return touch_control_type == CLICK; } + + static void add_control(TouchControlType type, uint16_t x, uint16_t y, uint16_t width, uint16_t height, int32_t data = 0); + + static touch_calibration_t calibration; + static void calibration_reset() { calibration = {TOUCH_CALIBRATION_X, TOUCH_CALIBRATION_Y, TOUCH_OFFSET_X, TOUCH_OFFSET_Y, TOUCH_ORIENTATION}; } + + #if ENABLED(TOUCH_SCREEN_CALIBRATION) + static calibrationState calibration_start() { calibration = {0, 0, 0, 0, TOUCH_ORIENTATION_NONE}; return calibration_state = CALIBRATION_POINT_1; } + static void calibration_end() { calibration_state = CALIBRATION_NONE; } + static calibrationState get_calibration_state() { return calibration_state; } + #endif // TOUCH_SCREEN_CALIBRATION +}; + +extern Touch touch; + +#endif // TOUCH_SCREEN diff --git a/Marlin/src/lcd/tft/ui_320x240.cpp b/Marlin/src/lcd/tft/ui_320x240.cpp new file mode 100644 index 000000000..0b800abc3 --- /dev/null +++ b/Marlin/src/lcd/tft/ui_320x240.cpp @@ -0,0 +1,653 @@ +/** + * Marlin 3D Printer Firmware + * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin] + * + * Based on Sprinter and grbl. + * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + */ + +#include "../../inc/MarlinConfigPre.h" + +#if HAS_UI_320x240 + +#include "ui_320x240.h" + +#include "../ultralcd.h" +#include "../menu/menu.h" +#include "../../libs/numtostr.h" + +#include "../../sd/cardreader.h" +#include "../../module/temperature.h" +#include "../../module/printcounter.h" +#include "../../module/planner.h" +#include "../../module/motion.h" + +#if DISABLED(LCD_PROGRESS_BAR) && BOTH(FILAMENT_LCD_DISPLAY, SDSUPPORT) + #include "../../feature/filwidth.h" + #include "../../gcode/parser.h" +#endif + +#if ENABLED(AUTO_BED_LEVELING_UBL) + #include "../../feature/bedlevel/bedlevel.h" +#endif + +#if !HAS_LCD_MENU + #error "Seriously? High resolution TFT screen without menu?" +#endif + +static bool draw_menu_navigation = false; + +void MarlinUI::tft_idle() { + #if ENABLED(TOUCH_SCREEN) + if (draw_menu_navigation) { + add_control(48, 206, PAGE_UP, imgPageUp, encoderTopLine > 0); + add_control(240, 206, PAGE_DOWN, imgPageDown, encoderTopLine + LCD_HEIGHT < screen_items); + add_control(144, 206, BACK, imgBack); + draw_menu_navigation = false; + } + #endif + + tft.queue.async(); + TERN_(TOUCH_SCREEN, touch.idle()); +} + +void MarlinUI::init_lcd() { + tft.init(); + tft.set_font(MENU_FONT_NAME); + #ifdef SYMBOLS_FONT_NAME + tft.add_glyphs(SYMBOLS_FONT_NAME); + #endif + TERN_(TOUCH_SCREEN, touch.init()); + clear_lcd(); +} + +bool MarlinUI::detected() { return true; } + +void MarlinUI::clear_lcd() { + #if ENABLED(TOUCH_SCREEN) + touch.reset(); + draw_menu_navigation = false; + #endif + + tft.queue.reset(); + tft.fill(0, 0, TFT_WIDTH, TFT_HEIGHT, COLOR_BACKGROUND); +} + +#if ENABLED(SHOW_BOOTSCREEN) + #ifndef BOOTSCREEN_TIMEOUT + #define BOOTSCREEN_TIMEOUT 1500 + #endif + + void MarlinUI::show_bootscreen() { + tft.queue.reset(); + + tft.canvas(0, 0, TFT_WIDTH, TFT_HEIGHT); + tft.add_image(0, 0, imgBootScreen); // MarlinLogo320x240x16 + + #ifdef WEBSITE_URL + tft.add_text(4, 188, COLOR_WEBSITE_URL, WEBSITE_URL); + #endif + + tft.queue.sync(); + safe_delay(BOOTSCREEN_TIMEOUT); + clear_lcd(); + } +#endif // SHOW_BOOTSCREEN + +void MarlinUI::draw_kill_screen() { + tft.queue.reset(); + tft.fill(0, 0, TFT_WIDTH, TFT_HEIGHT, COLOR_KILL_SCREEN_BG); + + tft.canvas(0, 60, TFT_WIDTH, 20); + tft.set_background(COLOR_KILL_SCREEN_BG); + tft_string.set(status_message); + tft_string.trim(); + tft.add_text(tft_string.center(TFT_WIDTH), 0, COLOR_KILL_SCREEN_TEXT, tft_string); + + tft.canvas(0, 120, TFT_WIDTH, 20); + tft.set_background(COLOR_KILL_SCREEN_BG); + tft_string.set(GET_TEXT(MSG_HALTED)); + tft_string.trim(); + tft.add_text(tft_string.center(TFT_WIDTH), 0, COLOR_KILL_SCREEN_TEXT, tft_string); + + tft.canvas(0, 160, TFT_WIDTH, 20); + tft.set_background(COLOR_KILL_SCREEN_BG); + tft_string.set(GET_TEXT(MSG_PLEASE_RESET)); + tft_string.trim(); + tft.add_text(tft_string.center(TFT_WIDTH), 0, COLOR_KILL_SCREEN_TEXT, tft_string); + + tft.queue.sync(); +} + +void draw_heater_status(uint16_t x, uint16_t y, const int8_t Heater) { + MarlinImage image = imgHotEnd; + uint16_t Color; + float currentTemperature, targetTemperature; + + if (Heater >= 0) { // HotEnd + currentTemperature = thermalManager.degHotend(Heater); + targetTemperature = thermalManager.degTargetHotend(Heater); + } +#if HAS_HEATED_BED + else if (Heater == H_BED) { + currentTemperature = thermalManager.degBed(); + targetTemperature = thermalManager.degTargetBed(); + } +#endif // HAS_HEATED_BED +#if HAS_TEMP_CHAMBER + else if (Heater == H_CHAMBER) { + currentTemperature = thermalManager.degChamber(); + #if HAS_HEATED_CHAMBER + targetTemperature = thermalManager.degTargetChamber(); + #else + targetTemperature = ABSOLUTE_ZERO; + #endif + } +#endif // HAS_TEMP_CHAMBER + else return; + + TERN_(TOUCH_SCREEN, if (targetTemperature >= 0) touch.add_control(HEATER, x, y, 64, 100, Heater)); + tft.canvas(x, y, 64, 100); + tft.set_background(COLOR_BACKGROUND); + + Color = currentTemperature < 0 ? COLOR_INACTIVE : COLOR_COLD; + + if (Heater >= 0) { // HotEnd + if (currentTemperature >= 50) Color = COLOR_HOTEND; + } + #if HAS_HEATED_BED + else if (Heater == H_BED) { + if (currentTemperature >= 50) Color = COLOR_HEATED_BED; + image = targetTemperature > 0 ? imgBedHeated : imgBed; + } + #endif // HAS_HEATED_BED + #if HAS_TEMP_CHAMBER + else if (Heater == H_CHAMBER) { + if (currentTemperature >= 50) Color = COLOR_CHAMBER; + image = targetTemperature > 0 ? imgChamberHeated : imgChamber; + } + #endif // HAS_TEMP_CHAMBER + + tft.add_image(0, 18, image, Color); + + tft_string.set((uint8_t *)i16tostr3rj(currentTemperature + 0.5)); + tft_string.add(LCD_STR_DEGREE); + tft_string.trim(); + tft.add_text(tft_string.center(64) + 2, 72, Color, tft_string); + + if (targetTemperature >= 0) { + tft_string.set((uint8_t *)i16tostr3rj(targetTemperature + 0.5)); + tft_string.add(LCD_STR_DEGREE); + tft_string.trim(); + tft.add_text(tft_string.center(64) + 2, 8, Color, tft_string); + + } +} + +void draw_fan_status(uint16_t x, uint16_t y, const bool blink) { + TERN_(TOUCH_SCREEN, touch.add_control(FAN, x, y, 64, 100)); + tft.canvas(x, y, 64, 100); + tft.set_background(COLOR_BACKGROUND); + + uint8_t fanSpeed = thermalManager.fan_speed[0]; + MarlinImage image; + + if (fanSpeed >= 127) + image = blink ? imgFanFast1 : imgFanFast0; + else if (fanSpeed > 0) + image = blink ? imgFanSlow1 : imgFanSlow0; + else + image = imgFanIdle; + + tft.add_image(0, 10, image, COLOR_FAN); + + tft_string.set((uint8_t *)ui8tostr4pctrj(thermalManager.fan_speed[0])); + tft_string.trim(); + tft.add_text(tft_string.center(64) + 6, 72, COLOR_FAN, tft_string); +} + +void MarlinUI::draw_status_screen() { + const bool blink = get_blink(); + + TERN_(TOUCH_SCREEN, touch.clear()); + + // heaters and fan + uint16_t i, x, y = POS_Y; + + for (i = 0 ; i < ITEMS_COUNT; i++) { + x = (320 / ITEMS_COUNT - 64) / 2 + (320 * i / ITEMS_COUNT); + switch (i) { + #ifdef ITEM_E0 + case ITEM_E0: draw_heater_status(x, y, H_E0); break; + #endif + #ifdef ITEM_E1 + case ITEM_E1: draw_heater_status(x, y, H_E1); break; + #endif + #ifdef ITEM_E2 + case ITEM_E2: draw_heater_status(x, y, H_E2); break; + #endif + #ifdef ITEM_BED + case ITEM_BED: draw_heater_status(x, y, H_BED); break; + #endif + #ifdef ITEM_CHAMBER + case ITEM_CHAMBER: draw_heater_status(x, y, H_CHAMBER); break; + #endif + #ifdef ITEM_FAN + case ITEM_FAN: draw_fan_status(x, y, blink); break; + #endif + } + } + + // coordinates + tft.canvas(4, 103, 312, 24); + tft.set_background(COLOR_BACKGROUND); + tft.add_rectangle(0, 0, 312, 24, COLOR_AXIS_HOMED); + + uint16_t color; + uint16_t offset; + bool is_homed; + + tft.add_text( 10, 3, COLOR_AXIS_HOMED , "X"); + tft.add_text(127, 3, COLOR_AXIS_HOMED , "Y"); + tft.add_text(219, 3, COLOR_AXIS_HOMED , "Z"); + + is_homed = TEST(axis_homed, X_AXIS); + tft_string.set(blink & !is_homed ? "?" : ftostr4sign(LOGICAL_X_POSITION(current_position.x))); + tft.add_text( 68 - tft_string.width(), 3, is_homed ? COLOR_AXIS_HOMED : COLOR_AXIS_NOT_HOMED, tft_string); + + is_homed = TEST(axis_homed, Y_AXIS); + tft_string.set(blink & !is_homed ? "?" : ftostr4sign(LOGICAL_Y_POSITION(current_position.y))); + tft.add_text(185 - tft_string.width(), 3, is_homed ? COLOR_AXIS_HOMED : COLOR_AXIS_NOT_HOMED, tft_string); + + is_homed = TEST(axis_homed, Z_AXIS); + if (blink & !is_homed) { + tft_string.set("?"); + offset = 25; // ".00" + } + else { + const float z = LOGICAL_Z_POSITION(current_position.z); + tft_string.set(ftostr52sp((int16_t)z)); + tft_string.rtrim(); + offset = tft_string.width(); + + tft_string.set(ftostr52sp(z)); + offset += 25 - tft_string.width(); + } + tft.add_text(301 - tft_string.width() - offset, 3, is_homed ? COLOR_AXIS_HOMED : COLOR_AXIS_NOT_HOMED, tft_string); + + // feed rate + tft.canvas(70, 136, 80, 32); + tft.set_background(COLOR_BACKGROUND); + color = feedrate_percentage == 100 ? COLOR_RATE_100 : COLOR_RATE_ALTERED; + tft.add_image(0, 0, imgFeedRate, color); + tft_string.set(i16tostr3rj(feedrate_percentage)); + tft_string.add('%'); + tft.add_text(32, 6, color , tft_string); + TERN_(TOUCH_SCREEN, touch.add_control(FEEDRATE, 70, 136, 80, 32)); + + // flow rate + tft.canvas(170, 136, 80, 32); + tft.set_background(COLOR_BACKGROUND); + color = planner.flow_percentage[0] == 100 ? COLOR_RATE_100 : COLOR_RATE_ALTERED; + tft.add_image(0, 0, imgFlowRate, color); + tft_string.set(i16tostr3rj(planner.flow_percentage[active_extruder])); + tft_string.add('%'); + tft.add_text(32, 6, color , tft_string); + TERN_(TOUCH_SCREEN, touch.add_control(FLOWRATE, 170, 136, 80, 32, active_extruder)); + + // print duration + char buffer[14]; + duration_t elapsed = print_job_timer.duration(); + elapsed.toDigital(buffer); + + tft.canvas(96, 176, 128, 20); + tft.set_background(COLOR_BACKGROUND); + tft_string.set(buffer); + tft.add_text(tft_string.center(128), 0, COLOR_PRINT_TIME, tft_string); + + // progress bar + const uint8_t progress = ui.get_progress_percent(); + tft.canvas(4, 198, 312, 9); + tft.set_background(COLOR_PROGRESS_BG); + tft.add_rectangle(0, 0, 312, 9, COLOR_PROGRESS_FRAME); + if (progress) + tft.add_bar(1, 1, (310 * progress) / 100, 7, COLOR_PROGRESS_BAR); + + // status message + tft.canvas(0, 216, 320, 20); + tft.set_background(COLOR_BACKGROUND); + tft_string.set(status_message); + tft_string.trim(); + tft.add_text(tft_string.center(TFT_WIDTH), 0, COLOR_STATUS_MESSAGE, tft_string); + + #if ENABLED(TOUCH_SCREEN) + add_control(256, 130, menu_main, imgSettings); + TERN_(SDSUPPORT, add_control(0, 130, menu_media, imgSD, card.isMounted() && !printingIsActive(), COLOR_CONTROL_ENABLED, card.isMounted() && printingIsActive() ? COLOR_BUSY : COLOR_CONTROL_DISABLED)); + #endif +} + +// Draw a static item with no left-right margin required. Centered by default. +void MenuItem_static::draw(const uint8_t row, PGM_P const pstr, const uint8_t style/*=SS_DEFAULT*/, const char * const valstr/*=nullptr*/) { + menu_item(row); + tft_string.set(pstr, itemIndex, itemString); + if (valstr) + tft_string.add(valstr); + tft.add_text(tft_string.center(TFT_WIDTH), MENU_TEXT_Y_OFFSET, COLOR_YELLOW, tft_string); +} + +// Draw a generic menu item with pre_char (if selected) and post_char +void MenuItemBase::_draw(const bool sel, const uint8_t row, PGM_P const pstr, const char pre_char, const char post_char) { + menu_item(row, sel); + + uint8_t *string = (uint8_t *)pstr; + MarlinImage image = noImage; + switch (*string) { + case 0x01: image = imgRefresh; break; // LCD_STR_REFRESH + case 0x02: image = imgDirectory; break; // LCD_STR_FOLDER + } + + uint8_t offset = MENU_TEXT_X_OFFSET; + if (image != noImage) { + string++; + offset = 32; + tft.add_image(0, 0, image, COLOR_MENU_TEXT, sel ? COLOR_SELECTION_BG : COLOR_BACKGROUND); + } + + tft_string.set(string, itemIndex, itemString); + tft.add_text(offset, MENU_TEXT_Y_OFFSET, COLOR_MENU_TEXT, tft_string); +} + +// Draw a menu item with a (potentially) editable value +void MenuEditItemBase::draw(const bool sel, const uint8_t row, PGM_P const pstr, const char* const data, const bool pgm) { + menu_item(row, sel); + + tft_string.set(pstr, itemIndex, itemString); + tft.add_text(MENU_TEXT_X_OFFSET, MENU_TEXT_Y_OFFSET, COLOR_MENU_TEXT, tft_string); + if (data) { + tft_string.set(data); + tft.add_text(TFT_WIDTH - MENU_TEXT_X_OFFSET - tft_string.width(), MENU_TEXT_Y_OFFSET, COLOR_MENU_VALUE, tft_string); + } +} + +// Low-level draw_edit_screen can be used to draw an edit screen from anyplace +void MenuEditItemBase::draw_edit_screen(PGM_P const pstr, const char* const value/*=nullptr*/) { + ui.encoder_direction_normal(); + TERN_(TOUCH_SCREEN, touch.clear()); + + uint16_t line = 1; + + menu_line(line++); + tft_string.set(pstr, itemIndex, itemString); + tft_string.trim(); + tft.add_text(tft_string.center(TFT_WIDTH), MENU_TEXT_Y_OFFSET, COLOR_MENU_TEXT, tft_string); + + TERN_(AUTO_BED_LEVELING_UBL, if (ui.external_control) line++); // ftostr52() will overwrite *value so *value has to be displayed first + + menu_line(line); + tft_string.set(value); + tft_string.trim(); + tft.add_text(tft_string.center(TFT_WIDTH), MENU_TEXT_Y_OFFSET, COLOR_MENU_VALUE, tft_string); + + #if ENABLED(AUTO_BED_LEVELING_UBL) + if (ui.external_control) { + menu_line(line - 1); + + tft_string.set(X_LBL); + tft.add_text(52, MENU_TEXT_Y_OFFSET, COLOR_MENU_TEXT, tft_string); + tft_string.set(ftostr52(LOGICAL_X_POSITION(current_position.x))); + tft_string.trim(); + tft.add_text(144 - tft_string.width(), MENU_TEXT_Y_OFFSET, COLOR_MENU_VALUE, tft_string); + + tft_string.set(Y_LBL); + tft.add_text(176, MENU_TEXT_Y_OFFSET, COLOR_MENU_TEXT, tft_string); + tft_string.set(ftostr52(LOGICAL_X_POSITION(current_position.y))); + tft_string.trim(); + tft.add_text(268 - tft_string.width(), MENU_TEXT_Y_OFFSET, COLOR_MENU_VALUE, tft_string); + } + #endif + + extern screenFunc_t _manual_move_func_ptr; + if (ui.currentScreen != _manual_move_func_ptr && !ui.external_control) { + + #define SLIDER_LENGHT 224 + #define SLIDER_Y_POSITION 140 + + tft.canvas((TFT_WIDTH - SLIDER_LENGHT) / 2, SLIDER_Y_POSITION, SLIDER_LENGHT, 16); + tft.set_background(COLOR_BACKGROUND); + + int16_t position = (SLIDER_LENGHT - 2) * ui.encoderPosition / maxEditValue; + tft.add_bar(0, 7, 1, 2, ui.encoderPosition == 0 ? COLOR_SLIDER_INACTIVE : COLOR_SLIDER); + tft.add_bar(1, 6, position, 4, COLOR_SLIDER); + tft.add_bar(position + 1, 6, SLIDER_LENGHT - 2 - position, 4, COLOR_SLIDER_INACTIVE); + tft.add_bar(SLIDER_LENGHT - 1, 7, 1, 2, int32_t(ui.encoderPosition) == maxEditValue ? COLOR_SLIDER : COLOR_SLIDER_INACTIVE); + + #if ENABLED(TOUCH_SCREEN) + tft.add_image((SLIDER_LENGHT - 8) * ui.encoderPosition / maxEditValue, 0, imgSlider, COLOR_SLIDER); + touch.add_control(SLIDER, (TFT_WIDTH - SLIDER_LENGHT) / 2, SLIDER_Y_POSITION - 8, SLIDER_LENGHT, 32, maxEditValue); + #endif + } + + #if ENABLED(TOUCH_SCREEN) + add_control(32, 176, DECREASE, imgDecrease); + add_control(224, 176, INCREASE, imgIncrease); + add_control(128, 176, CLICK, imgConfirm); + #endif +} + +// The Select Screen presents a prompt and two "buttons" +void MenuItem_confirm::draw_select_screen(PGM_P const yes, PGM_P const no, const bool yesno, PGM_P const pref, const char * const string/*=nullptr*/, PGM_P const suff/*=nullptr*/) { + uint16_t line = 1; + + if (string == NULL) line++; + + menu_line(line++); + tft_string.set(pref); + tft_string.trim(); + tft.add_text(tft_string.center(TFT_WIDTH), MENU_TEXT_Y_OFFSET, COLOR_MENU_TEXT, tft_string); + + if (string) { + menu_line(line++); + tft_string.set(string); + tft_string.trim(); + tft.add_text(tft_string.center(TFT_WIDTH), MENU_TEXT_Y_OFFSET, COLOR_MENU_TEXT, tft_string); + } + + if (suff) { + menu_line(line); + tft_string.set(suff); + tft_string.trim(); + tft.add_text(tft_string.center(TFT_WIDTH), MENU_TEXT_Y_OFFSET, COLOR_MENU_TEXT, tft_string); + } + #if ENABLED(TOUCH_SCREEN) + add_control(48, 176, CANCEL, imgCancel, true, yesno ? HALF(COLOR_CONTROL_CANCEL) : COLOR_CONTROL_CANCEL); + add_control(208, 176, CONFIRM, imgConfirm, true, yesno ? COLOR_CONTROL_CONFIRM : HALF(COLOR_CONTROL_CONFIRM)); + #endif +} + +#if ENABLED(SDSUPPORT) + void MenuItem_sdbase::draw(const bool sel, const uint8_t row, PGM_P const, CardReader &theCard, const bool isDir) { + menu_item(row, sel); + if (isDir) + tft.add_image(0, 0, imgDirectory, COLOR_MENU_TEXT, sel ? COLOR_SELECTION_BG : COLOR_BACKGROUND); + tft.add_text(32, MENU_TEXT_Y_OFFSET, COLOR_MENU_TEXT, theCard.longest_filename()); + } +#endif + +#if ENABLED(ADVANCED_PAUSE_FEATURE) + void MarlinUI::draw_hotend_status(const uint8_t row, const uint8_t extruder) { + #if ENABLED(TOUCH_SCREEN) + touch.clear(); + draw_menu_navigation = false; + touch.add_control(RESUME_CONTINUE , 0, 0, 320, 240); + #endif + + menu_line(row); + tft_string.set(GET_TEXT(MSG_FILAMENT_CHANGE_NOZZLE)); + tft_string.add('E'); + tft_string.add((char)('1' + extruder)); + tft_string.add(' '); + tft_string.add(i16tostr3rj(thermalManager.degHotend(extruder))); + tft_string.add(LCD_STR_DEGREE); + tft_string.add(" / "); + tft_string.add(i16tostr3rj(thermalManager.degTargetHotend(extruder))); + tft_string.add(LCD_STR_DEGREE); + tft_string.trim(); + tft.add_text(tft_string.center(TFT_WIDTH), MENU_TEXT_Y_OFFSET, COLOR_MENU_TEXT, tft_string); + } +#endif // ADVANCED_PAUSE_FEATURE + +#if ENABLED(AUTO_BED_LEVELING_UBL) + #define GRID_OFFSET_X 8 + #define GRID_OFFSET_Y 8 + #define GRID_WIDTH 144 + #define GRID_HEIGHT 144 + #define CONTROL_OFFSET 8 + + void MarlinUI::ubl_plot(const uint8_t x_plot, const uint8_t y_plot) { + + tft.canvas(GRID_OFFSET_X, GRID_OFFSET_Y, GRID_WIDTH, GRID_HEIGHT); + tft.set_background(COLOR_BACKGROUND); + tft.add_rectangle(0, 0, GRID_WIDTH, GRID_HEIGHT, COLOR_WHITE); + + for (uint16_t x = 0; x < GRID_MAX_POINTS_X ; x++) + for (uint16_t y = 0; y < GRID_MAX_POINTS_Y ; y++) + if (position_is_reachable({ ubl.mesh_index_to_xpos(x), ubl.mesh_index_to_ypos(y) })) + tft.add_bar(1 + (x * 2 + 1) * (GRID_WIDTH - 4) / GRID_MAX_POINTS_X / 2, GRID_HEIGHT - 3 - ((y * 2 + 1) * (GRID_HEIGHT - 4) / GRID_MAX_POINTS_Y / 2), 2, 2, COLOR_UBL); + + tft.add_rectangle((x_plot * 2 + 1) * (GRID_WIDTH - 4) / GRID_MAX_POINTS_X / 2 - 1, GRID_HEIGHT - 5 - ((y_plot * 2 + 1) * (GRID_HEIGHT - 4) / GRID_MAX_POINTS_Y / 2), 6, 6, COLOR_UBL); + + const xy_pos_t pos = { ubl.mesh_index_to_xpos(x_plot), ubl.mesh_index_to_ypos(y_plot) }, + lpos = pos.asLogical(); + + tft.canvas(216, GRID_OFFSET_Y + (GRID_HEIGHT - 32) / 2 - 32, 96, 32); + tft.set_background(COLOR_BACKGROUND); + tft_string.set(X_LBL); + tft.add_text(0, MENU_TEXT_Y_OFFSET, COLOR_MENU_TEXT, tft_string); + tft_string.set(ftostr52(lpos.x)); + tft_string.trim(); + tft.add_text(96 - tft_string.width(), MENU_TEXT_Y_OFFSET, COLOR_MENU_VALUE, tft_string); + + tft.canvas(216, GRID_OFFSET_Y + (GRID_HEIGHT - 32) / 2, 96, 32); + tft.set_background(COLOR_BACKGROUND); + tft_string.set(Y_LBL); + tft.add_text(0, MENU_TEXT_Y_OFFSET, COLOR_MENU_TEXT, tft_string); + tft_string.set(ftostr52(lpos.y)); + tft_string.trim(); + tft.add_text(96 - tft_string.width(), MENU_TEXT_Y_OFFSET, COLOR_MENU_VALUE, tft_string); + + tft.canvas(216, GRID_OFFSET_Y + (GRID_HEIGHT - 32) / 2 + 32, 96, 32); + tft.set_background(COLOR_BACKGROUND); + tft_string.set(Z_LBL); + tft.add_text(0, MENU_TEXT_Y_OFFSET, COLOR_MENU_TEXT, tft_string); + tft_string.set(isnan(ubl.z_values[x_plot][y_plot]) ? "-----" : ftostr43sign(ubl.z_values[x_plot][y_plot])); + tft_string.trim(); + tft.add_text(96 - tft_string.width(), MENU_TEXT_Y_OFFSET, COLOR_MENU_VALUE, tft_string); + + + tft.canvas(GRID_OFFSET_X + (GRID_WIDTH - 32) / 2, GRID_OFFSET_Y + GRID_HEIGHT + CONTROL_OFFSET - 1, 32, 32); + tft.set_background(COLOR_BACKGROUND); + tft_string.set(ui8tostr3rj(x_plot)); + tft_string.trim(); + tft.add_text(tft_string.center(32), MENU_TEXT_Y_OFFSET, COLOR_MENU_VALUE, tft_string); + + tft.canvas(GRID_OFFSET_X + GRID_WIDTH + CONTROL_OFFSET, GRID_OFFSET_Y + (GRID_HEIGHT - 27) / 2, 32, 32); + tft.set_background(COLOR_BACKGROUND); + tft_string.set(ui8tostr3rj(y_plot)); + tft_string.trim(); + tft.add_text(tft_string.center(32), MENU_TEXT_Y_OFFSET, COLOR_MENU_VALUE, tft_string); + + #if ENABLED(TOUCH_SCREEN) + touch.clear(); + draw_menu_navigation = false; + add_control(GRID_OFFSET_X + GRID_WIDTH + CONTROL_OFFSET, GRID_OFFSET_Y + CONTROL_OFFSET, UBL, ENCODER_STEPS_PER_MENU_ITEM * GRID_MAX_POINTS_X, imgUp); + add_control(GRID_OFFSET_X + GRID_WIDTH + CONTROL_OFFSET, GRID_OFFSET_Y + GRID_HEIGHT - CONTROL_OFFSET - 32, UBL, - ENCODER_STEPS_PER_MENU_ITEM * GRID_MAX_POINTS_X, imgDown); + add_control(GRID_OFFSET_X + CONTROL_OFFSET, GRID_OFFSET_Y + GRID_HEIGHT + CONTROL_OFFSET, UBL, - ENCODER_STEPS_PER_MENU_ITEM, imgLeft); + add_control(GRID_OFFSET_X + GRID_WIDTH - CONTROL_OFFSET - 32, GRID_OFFSET_Y + GRID_HEIGHT + CONTROL_OFFSET, UBL, ENCODER_STEPS_PER_MENU_ITEM, imgRight); + add_control(224, GRID_OFFSET_Y + GRID_HEIGHT + CONTROL_OFFSET, CLICK, imgLeveling); + add_control(144, 206, BACK, imgBack); + #endif + } +#endif // AUTO_BED_LEVELING_UBL + +#if ENABLED(TOUCH_SCREEN_CALIBRATION) + void MarlinUI::touch_calibration() { + static uint16_t x, y; + + calibrationState calibration_stage = touch.get_calibration_state(); + + if (calibration_stage == CALIBRATION_NONE) { + defer_status_screen(true); + clear_lcd(); + calibration_stage = touch.calibration_start(); + } + else { + tft.canvas(x - 15, y - 15, 31, 31); + tft.set_background(COLOR_BACKGROUND); + } + + x = 20; y = 20; + touch.clear(); + + if (calibration_stage < CALIBRATION_SUCCESS) { + switch(calibration_stage) { + case CALIBRATION_POINT_1: tft_string.set("Top Left"); break; + case CALIBRATION_POINT_2: y = TFT_HEIGHT - 21; tft_string.set("Bottom Left"); break; + case CALIBRATION_POINT_3: x = TFT_WIDTH - 21; tft_string.set("Top Right"); break; + case CALIBRATION_POINT_4: x = TFT_WIDTH - 21; y = TFT_HEIGHT - 21; tft_string.set("Bottom Right"); break; + default: break; + } + + tft.canvas(x - 15, y - 15, 31, 31); + tft.set_background(COLOR_BACKGROUND); + tft.add_bar(0, 15, 31, 1, COLOR_TOUCH_CALIBRATION); + tft.add_bar(15, 0, 1, 31, COLOR_TOUCH_CALIBRATION); + + touch.add_control(CALIBRATE, 0, 0, TFT_WIDTH, TFT_HEIGHT, uint32_t(x) << 16 | uint32_t(y)); + } + else { + tft_string.set(calibration_stage == CALIBRATION_SUCCESS ? "Calibration Completed" : "Calibration Failed"); + defer_status_screen(false); + touch.calibration_end(); + touch.add_control(BACK, 0, 0, TFT_WIDTH, TFT_HEIGHT); + } + + tft.canvas(0, (TFT_HEIGHT - tft_string.font_height()) >> 1, TFT_WIDTH, tft_string.font_height()); + tft.set_background(COLOR_BACKGROUND); + tft.add_text(tft_string.center(TFT_WIDTH), 0, COLOR_MENU_TEXT, tft_string); + } +#endif // TOUCH_SCREEN_CALIBRATION + +void menu_line(const uint8_t row, uint16_t color) { + tft.canvas(0, 2 + 34 * row, TFT_WIDTH, 32); + tft.set_background(color); +} + +void menu_pause_option(); + +void menu_item(const uint8_t row, bool sel ) { + #if ENABLED(TOUCH_SCREEN) + if (row == 0) { + touch.clear(); + draw_menu_navigation = TERN(ADVANCED_PAUSE_FEATURE, ui.currentScreen != menu_pause_option, true); + } + #endif + + menu_line(row, sel ? COLOR_SELECTION_BG : COLOR_BACKGROUND); + TERN_(TOUCH_SCREEN, touch.add_control(sel ? CLICK : MENU_ITEM, 0, 2 + 34 * row, 320, 32, encoderTopLine + row)); +} + +#endif // HAS_UI_320x240 diff --git a/Marlin/src/lcd/tft/ui_320x240.h b/Marlin/src/lcd/tft/ui_320x240.h new file mode 100644 index 000000000..ed69acbcd --- /dev/null +++ b/Marlin/src/lcd/tft/ui_320x240.h @@ -0,0 +1,106 @@ +/** + * Marlin 3D Printer Firmware + * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin] + * + * Based on Sprinter and grbl. + * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + */ +#pragma once + +#include "../../inc/MarlinConfigPre.h" + +#include "tft.h" +#include "tft_image.h" + +#if ENABLED(TOUCH_SCREEN) + #include "touch.h" +#endif + +void draw_heater_status(uint16_t x, uint16_t y, const int8_t Heater); +void draw_fan_status(uint16_t x, uint16_t y, const bool blink); + +#define MENU_TEXT_X_OFFSET 10 +#define MENU_TEXT_Y_OFFSET 7 +void menu_line(const uint8_t row, uint16_t color = COLOR_BACKGROUND); +void menu_item(const uint8_t row, bool sel = false); + +#define MENU_FONT_NAME Helvetica14 +#define SYMBOLS_FONT_NAME Helvetica14_symbols + +#define ABSOLUTE_ZERO -273.15 + +const tImage Images[imgCount] = { + MarlinLogo320x240x16, + HotEnd_64x64x4, + Bed_64x64x4, + Bed_Heated_64x64x4, + Chamber_64x64x4, + Chamber_Heated_64x64x4, + Fan0_64x64x4, + Fan_Slow0_64x64x4, + Fan_Slow1_64x64x4, + Fan_Fast0_64x64x4, + Fan_Fast1_64x64x4, + Feedrate_32x32x4, + Flowrate_32x32x4, + SD_64x64x4, + Menu_64x64x4, + Settings_64x64x4, + Directory_32x32x4, + Confirm_64x64x4, + Cancel_64x64x4, + Increase_64x64x4, + Decrease_64x64x4, + Back_32x32x4, + Up_32x32x4, + Down_32x32x4, + Left_32x32x4, + Right_32x32x4, + Refresh_32x32x4, + Leveling_32x32x4, + Slider8x16x4, +}; + +#if HAS_TEMP_CHAMBER && HOTENDS > 1 + #define ITEM_E0 0 + #define ITEM_E1 1 + #define ITEM_BED 2 + #define ITEM_CHAMBER 3 + #define ITEM_FAN 4 + #define ITEMS_COUNT 5 + #define POS_Y 0 +#elif HAS_TEMP_CHAMBER + #define ITEM_E0 0 + #define ITEM_BED 1 + #define ITEM_CHAMBER 2 + #define ITEM_FAN 3 + #define ITEMS_COUNT 4 + #define POS_Y 0 +#elif HOTENDS > 1 + #define ITEM_E0 0 + #define ITEM_E1 1 + #define ITEM_BED 2 + #define ITEM_FAN 3 + #define ITEMS_COUNT 4 + #define POS_Y 0 +#else + #define ITEM_E0 0 + #define ITEM_BED 1 + #define ITEM_FAN 2 + #define ITEMS_COUNT 3 + #define POS_Y 0 +#endif diff --git a/Marlin/src/lcd/tft/ui_480x320.cpp b/Marlin/src/lcd/tft/ui_480x320.cpp new file mode 100644 index 000000000..3eeed903c --- /dev/null +++ b/Marlin/src/lcd/tft/ui_480x320.cpp @@ -0,0 +1,657 @@ +/** + * Marlin 3D Printer Firmware + * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin] + * + * Based on Sprinter and grbl. + * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + */ + +#include "../../inc/MarlinConfigPre.h" + +#if HAS_UI_480x320 + +#include "ui_480x320.h" + +#include "../ultralcd.h" +#include "../menu/menu.h" +#include "../../libs/numtostr.h" + +#include "../../sd/cardreader.h" +#include "../../module/temperature.h" +#include "../../module/printcounter.h" +#include "../../module/planner.h" +#include "../../module/motion.h" + +#if DISABLED(LCD_PROGRESS_BAR) && BOTH(FILAMENT_LCD_DISPLAY, SDSUPPORT) + #include "../../feature/filwidth.h" + #include "../../gcode/parser.h" +#endif + +#if ENABLED(AUTO_BED_LEVELING_UBL) + #include "../../feature/bedlevel/bedlevel.h" +#endif + +#if !HAS_LCD_MENU + #error "Seriously? High resolution TFT screen without menu?" +#endif + +static bool draw_menu_navigation = false; + +void MarlinUI::tft_idle() { + #if ENABLED(TOUCH_SCREEN) + if (draw_menu_navigation) { + add_control(104, 286, PAGE_UP, imgPageUp, encoderTopLine > 0); + add_control(344, 286, PAGE_DOWN, imgPageDown, encoderTopLine + LCD_HEIGHT < screen_items); + add_control(224, 286, BACK, imgBack); + draw_menu_navigation = false; + } + #endif + + tft.queue.async(); + TERN_(TOUCH_SCREEN, touch.idle()); +} + +void MarlinUI::init_lcd() { + tft.init(); + tft.set_font(MENU_FONT_NAME); + #ifdef SYMBOLS_FONT_NAME + tft.add_glyphs(SYMBOLS_FONT_NAME); + #endif + TERN_(TOUCH_SCREEN, touch.init()); + clear_lcd(); +} + +bool MarlinUI::detected() { return true; } + +void MarlinUI::clear_lcd() { + #if ENABLED(TOUCH_SCREEN) + touch.reset(); + draw_menu_navigation = false; + #endif + + tft.queue.reset(); + tft.fill(0, 0, TFT_WIDTH, TFT_HEIGHT, COLOR_BACKGROUND); +} + +#if ENABLED(SHOW_BOOTSCREEN) + #ifndef BOOTSCREEN_TIMEOUT + #define BOOTSCREEN_TIMEOUT 1500 + #endif + + #undef BOOTSCREEN_TIMEOUT + #define BOOTSCREEN_TIMEOUT 5000 + + void MarlinUI::show_bootscreen() { + tft.queue.reset(); + + tft.canvas(0, 0, TFT_WIDTH, TFT_HEIGHT); + tft.set_background(COLOR_BACKGROUND); + tft.add_image(142, 130, imgBootScreen); // MarlinLogo195x59x16 + + #ifdef WEBSITE_URL + tft.add_text(8, 250, COLOR_WEBSITE_URL, WEBSITE_URL); + #endif + + tft.queue.sync(); + safe_delay(BOOTSCREEN_TIMEOUT); + clear_lcd(); + } +#endif // SHOW_BOOTSCREEN + +void MarlinUI::draw_kill_screen() { + tft.queue.reset(); + tft.fill(0, 0, TFT_WIDTH, TFT_HEIGHT, COLOR_KILL_SCREEN_BG); + + uint16_t line = 2; + + menu_line(line++, COLOR_KILL_SCREEN_BG); + tft_string.set(status_message); + tft_string.trim(); + tft.add_text(tft_string.center(TFT_WIDTH), 0, COLOR_MENU_TEXT, tft_string); + + line++; + menu_line(line++, COLOR_KILL_SCREEN_BG); + tft_string.set(GET_TEXT(MSG_HALTED)); + tft_string.trim(); + tft.add_text(tft_string.center(TFT_WIDTH), 0, COLOR_MENU_TEXT, tft_string); + + menu_line(line++, COLOR_KILL_SCREEN_BG); + tft_string.set(GET_TEXT(MSG_PLEASE_RESET)); + tft_string.trim(); + tft.add_text(tft_string.center(TFT_WIDTH), 0, COLOR_MENU_TEXT, tft_string); + + tft.queue.sync(); +} + +void draw_heater_status(uint16_t x, uint16_t y, const int8_t Heater) { + MarlinImage image = imgHotEnd; + uint16_t Color; + float currentTemperature, targetTemperature; + + if (Heater >= 0) { // HotEnd + currentTemperature = thermalManager.degHotend(Heater); + targetTemperature = thermalManager.degTargetHotend(Heater); + } +#if HAS_HEATED_BED + else if (Heater == H_BED) { + currentTemperature = thermalManager.degBed(); + targetTemperature = thermalManager.degTargetBed(); + } +#endif // HAS_HEATED_BED +#if HAS_TEMP_CHAMBER + else if (Heater == H_CHAMBER) { + currentTemperature = thermalManager.degChamber(); + #if HAS_HEATED_CHAMBER + targetTemperature = thermalManager.degTargetChamber(); + #else + targetTemperature = ABSOLUTE_ZERO; + #endif + } +#endif // HAS_TEMP_CHAMBER + else return; + + TERN_(TOUCH_SCREEN, if (targetTemperature >= 0) touch.add_control(HEATER, x, y, 80, 120, Heater)); + tft.canvas(x, y, 80, 120); + tft.set_background(COLOR_BACKGROUND); + + Color = currentTemperature < 0 ? COLOR_INACTIVE : COLOR_COLD; + + if (Heater >= 0) { // HotEnd + if (currentTemperature >= 50) Color = COLOR_HOTEND; + } + #if HAS_HEATED_BED + else if (Heater == H_BED) { + if (currentTemperature >= 50) Color = COLOR_HEATED_BED; + image = targetTemperature > 0 ? imgBedHeated : imgBed; + } + #endif // HAS_HEATED_BED + #if HAS_TEMP_CHAMBER + else if (Heater == H_CHAMBER) { + if (currentTemperature >= 50) Color = COLOR_CHAMBER; + image = targetTemperature > 0 ? imgChamberHeated : imgChamber; + } + #endif // HAS_TEMP_CHAMBER + + tft.add_image(8, 28, image, Color); + + tft_string.set((uint8_t *)i16tostr3rj(currentTemperature + 0.5)); + tft_string.add(LCD_STR_DEGREE); + tft_string.trim(); + tft.add_text(tft_string.center(80) + 2, 82, Color, tft_string); + + if (targetTemperature >= 0) { + tft_string.set((uint8_t *)i16tostr3rj(targetTemperature + 0.5)); + tft_string.add(LCD_STR_DEGREE); + tft_string.trim(); + tft.add_text(tft_string.center(80) + 2, 8, Color, tft_string); + } +} + +void draw_fan_status(uint16_t x, uint16_t y, const bool blink) { + TERN_(TOUCH_SCREEN, touch.add_control(FAN, x, y, 80, 120)); + tft.canvas(x, y, 80, 120); + tft.set_background(COLOR_BACKGROUND); + + uint8_t fanSpeed = thermalManager.fan_speed[0]; + MarlinImage image; + + if (fanSpeed >= 127) + image = blink ? imgFanFast1 : imgFanFast0; + else if (fanSpeed > 0) + image = blink ? imgFanSlow1 : imgFanSlow0; + else + image = imgFanIdle; + + tft.add_image(8, 20, image, COLOR_FAN); + + tft_string.set((uint8_t *)ui8tostr4pctrj(thermalManager.fan_speed[0])); + tft_string.trim(); + tft.add_text(tft_string.center(80) + 6, 82, COLOR_FAN, tft_string); +} + +void MarlinUI::draw_status_screen() { + const bool blink = get_blink(); + + TERN_(TOUCH_SCREEN, touch.clear()); + + // heaters and fan + uint16_t i, x, y = POS_Y; + + for (i = 0 ; i < ITEMS_COUNT; i++) { + x = (TFT_WIDTH / ITEMS_COUNT - 80) / 2 + (TFT_WIDTH * i / ITEMS_COUNT); + switch (i) { + #ifdef ITEM_E0 + case ITEM_E0: draw_heater_status(x, y, H_E0); break; + #endif + #ifdef ITEM_E1 + case ITEM_E1: draw_heater_status(x, y, H_E1); break; + #endif + #ifdef ITEM_E2 + case ITEM_E2: draw_heater_status(x, y, H_E2); break; + #endif + #ifdef ITEM_BED + case ITEM_BED: draw_heater_status(x, y, H_BED); break; + #endif + #ifdef ITEM_CHAMBER + case ITEM_CHAMBER: draw_heater_status(x, y, H_CHAMBER); break; + #endif + #ifdef ITEM_FAN + case ITEM_FAN: draw_fan_status(x, y, blink); break; + #endif + } + } + + // coordinates + tft.canvas(4, 132, TFT_WIDTH - 8, 34); + tft.set_background(COLOR_BACKGROUND); + tft.add_rectangle(0, 0, TFT_WIDTH - 8, 34, COLOR_AXIS_HOMED); + + uint16_t color; + uint16_t offset; + bool is_homed; + + tft.add_text( 16, 3, COLOR_AXIS_HOMED , "X"); + tft.add_text(192, 3, COLOR_AXIS_HOMED , "Y"); + tft.add_text(330, 3, COLOR_AXIS_HOMED , "Z"); + + is_homed = TEST(axis_homed, X_AXIS); + tft_string.set(blink & !is_homed ? "?" : ftostr4sign(LOGICAL_X_POSITION(current_position.x))); + tft.add_text(102 - tft_string.width(), 3, is_homed ? COLOR_AXIS_HOMED : COLOR_AXIS_NOT_HOMED, tft_string); + + is_homed = TEST(axis_homed, Y_AXIS); + tft_string.set(blink & !is_homed ? "?" : ftostr4sign(LOGICAL_Y_POSITION(current_position.y))); + tft.add_text(280 - tft_string.width(), 3, is_homed ? COLOR_AXIS_HOMED : COLOR_AXIS_NOT_HOMED, tft_string); + + is_homed = TEST(axis_homed, Z_AXIS); + if (blink & !is_homed) { + tft_string.set("?"); + offset = 32; // ".00" + } + else { + const float z = LOGICAL_Z_POSITION(current_position.z); + tft_string.set(ftostr52sp((int16_t)z)); + tft_string.rtrim(); + offset = tft_string.width(); + + tft_string.set(ftostr52sp(z)); + offset += 32 - tft_string.width(); + } + tft.add_text(455 - tft_string.width() - offset, 3, is_homed ? COLOR_AXIS_HOMED : COLOR_AXIS_NOT_HOMED, tft_string); + + // feed rate + tft.canvas(96, 180, 100, 32); + tft.set_background(COLOR_BACKGROUND); + color = feedrate_percentage == 100 ? COLOR_RATE_100 : COLOR_RATE_ALTERED; + tft.add_image(0, 0, imgFeedRate, color); + tft_string.set(i16tostr3rj(feedrate_percentage)); + tft_string.add('%'); + tft.add_text(36, 1, color , tft_string); + TERN_(TOUCH_SCREEN, touch.add_control(FEEDRATE, 96, 176, 100, 32)); + + // flow rate + tft.canvas(284, 180, 100, 32); + tft.set_background(COLOR_BACKGROUND); + color = planner.flow_percentage[0] == 100 ? COLOR_RATE_100 : COLOR_RATE_ALTERED; + tft.add_image(0, 0, imgFlowRate, color); + tft_string.set(i16tostr3rj(planner.flow_percentage[active_extruder])); + tft_string.add('%'); + tft.add_text(36, 1, color , tft_string); + TERN_(TOUCH_SCREEN, touch.add_control(FLOWRATE, 284, 176, 100, 32, active_extruder)); + + // print duration + char buffer[14]; + duration_t elapsed = print_job_timer.duration(); + elapsed.toDigital(buffer); + + tft.canvas((TFT_WIDTH - 128) / 2, 224, 128, 29); + tft.set_background(COLOR_BACKGROUND); + tft_string.set(buffer); + tft.add_text(tft_string.center(128), 0, COLOR_PRINT_TIME, tft_string); + + // progress bar + const uint8_t progress = ui.get_progress_percent(); + tft.canvas(4, 260, TFT_WIDTH - 8, 9); + tft.set_background(COLOR_PROGRESS_BG); + tft.add_rectangle(0, 0, TFT_WIDTH - 8, 9, COLOR_PROGRESS_FRAME); + if (progress) + tft.add_bar(1, 1, ((TFT_WIDTH - 10) * progress) / 100, 7, COLOR_PROGRESS_BAR); + + // status message + tft.canvas(0, 280, TFT_WIDTH, 29); + tft.set_background(COLOR_BACKGROUND); + tft_string.set(status_message); + tft_string.trim(); + tft.add_text(tft_string.center(TFT_WIDTH), 0, COLOR_STATUS_MESSAGE, tft_string); + + + #if ENABLED(TOUCH_SCREEN) + add_control(404, 180, menu_main, imgSettings); + TERN_(SDSUPPORT, add_control(12, 180, menu_media, imgSD, card.isMounted() && !printingIsActive(), COLOR_CONTROL_ENABLED, card.isMounted() && printingIsActive() ? COLOR_BUSY : COLOR_CONTROL_DISABLED)); + #endif +} + +// Draw a static item with no left-right margin required. Centered by default. +void MenuItem_static::draw(const uint8_t row, PGM_P const pstr, const uint8_t style/*=SS_DEFAULT*/, const char * const valstr/*=nullptr*/) { + menu_item(row); + tft_string.set(pstr, itemIndex, itemString); + if (valstr) + tft_string.add(valstr); + tft.add_text(tft_string.center(TFT_WIDTH), MENU_TEXT_Y_OFFSET, COLOR_YELLOW, tft_string); +} + +// Draw a generic menu item with pre_char (if selected) and post_char +void MenuItemBase::_draw(const bool sel, const uint8_t row, PGM_P const pstr, const char pre_char, const char post_char) { + menu_item(row, sel); + + uint8_t *string = (uint8_t *)pstr; + MarlinImage image = noImage; + switch (*string) { + case 0x01: image = imgRefresh; break; // LCD_STR_REFRESH + case 0x02: image = imgDirectory; break; // LCD_STR_FOLDER + } + + uint8_t offset = MENU_TEXT_X_OFFSET; + if (image != noImage) { + string++; + offset = 42; + tft.add_image(5, 5, image, COLOR_MENU_TEXT, sel ? COLOR_SELECTION_BG : COLOR_BACKGROUND); + } + + tft_string.set(string, itemIndex, itemString); + tft.add_text(offset, MENU_TEXT_Y_OFFSET, COLOR_MENU_TEXT, tft_string); +} + +// Draw a menu item with a (potentially) editable value +void MenuEditItemBase::draw(const bool sel, const uint8_t row, PGM_P const pstr, const char* const data, const bool pgm) { + menu_item(row, sel); + + tft_string.set(pstr, itemIndex, itemString); + tft.add_text(MENU_TEXT_X_OFFSET, MENU_TEXT_Y_OFFSET, COLOR_MENU_TEXT, tft_string); + if (data) { + tft_string.set(data); + tft.add_text(TFT_WIDTH - MENU_TEXT_X_OFFSET - tft_string.width(), MENU_TEXT_Y_OFFSET, COLOR_MENU_VALUE, tft_string); + } +} + +// Low-level draw_edit_screen can be used to draw an edit screen from anyplace +void MenuEditItemBase::draw_edit_screen(PGM_P const pstr, const char* const value/*=nullptr*/) { + ui.encoder_direction_normal(); + TERN_(TOUCH_SCREEN, touch.clear()); + + uint16_t line = 1; + + menu_line(line++); + tft_string.set(pstr, itemIndex, itemString); + tft_string.trim(); + tft.add_text(tft_string.center(TFT_WIDTH), MENU_TEXT_Y_OFFSET, COLOR_MENU_TEXT, tft_string); + + TERN_(AUTO_BED_LEVELING_UBL, if (ui.external_control) line++); // ftostr52() will overwrite *value so *value has to be displayed first + + menu_line(line); + tft_string.set(value); + tft_string.trim(); + tft.add_text(tft_string.center(TFT_WIDTH), MENU_TEXT_Y_OFFSET, COLOR_MENU_VALUE, tft_string); + + #if ENABLED(AUTO_BED_LEVELING_UBL) + if (ui.external_control) { + menu_line(line - 1); + + tft_string.set(X_LBL); + tft.add_text((TFT_WIDTH / 2 - 120), MENU_TEXT_Y_OFFSET, COLOR_MENU_TEXT, tft_string); + tft_string.set(ftostr52(LOGICAL_X_POSITION(current_position.x))); + tft_string.trim(); + tft.add_text((TFT_WIDTH / 2 - 16) - tft_string.width(), MENU_TEXT_Y_OFFSET, COLOR_MENU_VALUE, tft_string); + + tft_string.set(Y_LBL); + tft.add_text((TFT_WIDTH / 2 + 16), MENU_TEXT_Y_OFFSET, COLOR_MENU_TEXT, tft_string); + tft_string.set(ftostr52(LOGICAL_X_POSITION(current_position.y))); + tft_string.trim(); + tft.add_text((TFT_WIDTH / 2 + 120) - tft_string.width(), MENU_TEXT_Y_OFFSET, COLOR_MENU_VALUE, tft_string); + } + #endif + + extern screenFunc_t _manual_move_func_ptr; + if (ui.currentScreen != _manual_move_func_ptr && !ui.external_control) { + + #define SLIDER_LENGHT 336 + #define SLIDER_Y_POSITION 186 + + tft.canvas((TFT_WIDTH - SLIDER_LENGHT) / 2, SLIDER_Y_POSITION, SLIDER_LENGHT, 16); + tft.set_background(COLOR_BACKGROUND); + + int16_t position = (SLIDER_LENGHT - 2) * ui.encoderPosition / maxEditValue; + tft.add_bar(0, 7, 1, 2, ui.encoderPosition == 0 ? COLOR_SLIDER_INACTIVE : COLOR_SLIDER); + tft.add_bar(1, 6, position, 4, COLOR_SLIDER); + tft.add_bar(position + 1, 6, SLIDER_LENGHT - 2 - position, 4, COLOR_SLIDER_INACTIVE); + tft.add_bar(SLIDER_LENGHT - 1, 7, 1, 2, int32_t(ui.encoderPosition) == maxEditValue ? COLOR_SLIDER : COLOR_SLIDER_INACTIVE); + + #if ENABLED(TOUCH_SCREEN) + tft.add_image((SLIDER_LENGHT - 8) * ui.encoderPosition / maxEditValue, 0, imgSlider, COLOR_SLIDER); + touch.add_control(SLIDER, (TFT_WIDTH - SLIDER_LENGHT) / 2, SLIDER_Y_POSITION - 8, SLIDER_LENGHT, 32, maxEditValue); + #endif + } + + #if ENABLED(TOUCH_SCREEN) + add_control(64, 256, DECREASE, imgDecrease); + add_control(352, 256, INCREASE, imgIncrease); + add_control(208, 256, CLICK, imgConfirm); + #endif +} + +// The Select Screen presents a prompt and two "buttons" +void MenuItem_confirm::draw_select_screen(PGM_P const yes, PGM_P const no, const bool yesno, PGM_P const pref, const char * const string/*=nullptr*/, PGM_P const suff/*=nullptr*/) { + uint16_t line = 1; + + if (string == NULL) line++; + + menu_line(line++); + tft_string.set(pref); + tft_string.trim(); + tft.add_text(tft_string.center(TFT_WIDTH), 0, COLOR_MENU_TEXT, tft_string); + + if (string) { + menu_line(line++); + tft_string.set(string); + tft_string.trim(); + tft.add_text(tft_string.center(TFT_WIDTH), 0, COLOR_MENU_TEXT, tft_string); + } + + if (suff) { + menu_line(line); + tft_string.set(suff); + tft_string.trim(); + tft.add_text(tft_string.center(TFT_WIDTH), 0, COLOR_MENU_TEXT, tft_string); + } + #if ENABLED(TOUCH_SCREEN) + add_control(88, 256, CANCEL, imgCancel, true, yesno ? HALF(COLOR_CONTROL_CANCEL) : COLOR_CONTROL_CANCEL); + add_control(328, 256, CONFIRM, imgConfirm, true, yesno ? COLOR_CONTROL_CONFIRM : HALF(COLOR_CONTROL_CONFIRM)); + #endif +} + +#if ENABLED(SDSUPPORT) + void MenuItem_sdbase::draw(const bool sel, const uint8_t row, PGM_P const, CardReader &theCard, const bool isDir) { + menu_item(row, sel); + if (isDir) + tft.add_image(5, 5, imgDirectory, COLOR_MENU_TEXT, sel ? COLOR_SELECTION_BG : COLOR_BACKGROUND); + tft.add_text(42, MENU_TEXT_Y_OFFSET, COLOR_MENU_TEXT, theCard.longest_filename()); + } +#endif + +#if ENABLED(ADVANCED_PAUSE_FEATURE) + void MarlinUI::draw_hotend_status(const uint8_t row, const uint8_t extruder) { + #if ENABLED(TOUCH_SCREEN) + touch.clear(); + draw_menu_navigation = false; + touch.add_control(RESUME_CONTINUE , 0, 0, TFT_WIDTH, TFT_HEIGHT); + #endif + + menu_line(row); + tft_string.set(GET_TEXT(MSG_FILAMENT_CHANGE_NOZZLE)); + tft_string.add('E'); + tft_string.add((char)('1' + extruder)); + tft_string.add(' '); + tft_string.add(i16tostr3rj(thermalManager.degHotend(extruder))); + tft_string.add(LCD_STR_DEGREE); + tft_string.add(" / "); + tft_string.add(i16tostr3rj(thermalManager.degTargetHotend(extruder))); + tft_string.add(LCD_STR_DEGREE); + tft_string.trim(); + tft.add_text(tft_string.center(TFT_WIDTH), 0, COLOR_MENU_TEXT, tft_string); + } +#endif // ADVANCED_PAUSE_FEATURE + +#if ENABLED(AUTO_BED_LEVELING_UBL) + #define GRID_OFFSET_X 8 + #define GRID_OFFSET_Y 8 + #define GRID_WIDTH 192 + #define GRID_HEIGHT 192 + #define CONTROL_OFFSET 16 + + void MarlinUI::ubl_plot(const uint8_t x_plot, const uint8_t y_plot) { + + tft.canvas(GRID_OFFSET_X, GRID_OFFSET_Y, GRID_WIDTH, GRID_HEIGHT); + tft.set_background(COLOR_BACKGROUND); + tft.add_rectangle(0, 0, GRID_WIDTH, GRID_HEIGHT, COLOR_WHITE); + + for (uint16_t x = 0; x < GRID_MAX_POINTS_X ; x++) + for (uint16_t y = 0; y < GRID_MAX_POINTS_Y ; y++) + if (position_is_reachable({ ubl.mesh_index_to_xpos(x), ubl.mesh_index_to_ypos(y) })) + tft.add_bar(1 + (x * 2 + 1) * (GRID_WIDTH - 4) / GRID_MAX_POINTS_X / 2, GRID_HEIGHT - 3 - ((y * 2 + 1) * (GRID_HEIGHT - 4) / GRID_MAX_POINTS_Y / 2), 2, 2, COLOR_UBL); + + tft.add_rectangle((x_plot * 2 + 1) * (GRID_WIDTH - 4) / GRID_MAX_POINTS_X / 2 - 1, GRID_HEIGHT - 5 - ((y_plot * 2 + 1) * (GRID_HEIGHT - 4) / GRID_MAX_POINTS_Y / 2), 6, 6, COLOR_UBL); + + const xy_pos_t pos = { ubl.mesh_index_to_xpos(x_plot), ubl.mesh_index_to_ypos(y_plot) }, + lpos = pos.asLogical(); + + tft.canvas(320, GRID_OFFSET_Y + (GRID_HEIGHT - 43) / 2 - 43, 120, 43); + tft.set_background(COLOR_BACKGROUND); + tft_string.set(X_LBL); + tft.add_text(0, MENU_TEXT_Y_OFFSET, COLOR_MENU_TEXT, tft_string); + tft_string.set(ftostr52(lpos.x)); + tft_string.trim(); + tft.add_text(120 - tft_string.width(), MENU_TEXT_Y_OFFSET, COLOR_MENU_VALUE, tft_string); + + tft.canvas(320, GRID_OFFSET_Y + (GRID_HEIGHT - 43) / 2, 120, 43); + tft.set_background(COLOR_BACKGROUND); + tft_string.set(Y_LBL); + tft.add_text(0, MENU_TEXT_Y_OFFSET, COLOR_MENU_TEXT, tft_string); + tft_string.set(ftostr52(lpos.y)); + tft_string.trim(); + tft.add_text(120 - tft_string.width(), MENU_TEXT_Y_OFFSET, COLOR_MENU_VALUE, tft_string); + + tft.canvas(320, GRID_OFFSET_Y + (GRID_HEIGHT - 43) / 2 + 43, 120, 43); + tft.set_background(COLOR_BACKGROUND); + tft_string.set(Z_LBL); + tft.add_text(0, MENU_TEXT_Y_OFFSET, COLOR_MENU_TEXT, tft_string); + tft_string.set(isnan(ubl.z_values[x_plot][y_plot]) ? "-----" : ftostr43sign(ubl.z_values[x_plot][y_plot])); + tft_string.trim(); + tft.add_text(120 - tft_string.width(), MENU_TEXT_Y_OFFSET, COLOR_MENU_VALUE, tft_string); + + + tft.canvas(GRID_OFFSET_X + (GRID_WIDTH - 48) / 2, GRID_OFFSET_Y + GRID_HEIGHT + CONTROL_OFFSET - 5, 48, 43); + tft.set_background(COLOR_BACKGROUND); + tft_string.set(ui8tostr3rj(x_plot)); + tft_string.trim(); + tft.add_text(tft_string.center(48), MENU_TEXT_Y_OFFSET, COLOR_MENU_VALUE, tft_string); + + tft.canvas(GRID_OFFSET_X + GRID_WIDTH + CONTROL_OFFSET + 16 - 24, GRID_OFFSET_Y + (GRID_HEIGHT - 43) / 2, 48, 43); + tft.set_background(COLOR_BACKGROUND); + tft_string.set(ui8tostr3rj(y_plot)); + tft_string.trim(); + tft.add_text(tft_string.center(48), MENU_TEXT_Y_OFFSET, COLOR_MENU_VALUE, tft_string); + + #if ENABLED(TOUCH_SCREEN) + touch.clear(); + draw_menu_navigation = false; + add_control(GRID_OFFSET_X + GRID_WIDTH + CONTROL_OFFSET, GRID_OFFSET_Y + CONTROL_OFFSET, UBL, ENCODER_STEPS_PER_MENU_ITEM * GRID_MAX_POINTS_X, imgUp); + add_control(GRID_OFFSET_X + GRID_WIDTH + CONTROL_OFFSET, GRID_OFFSET_Y + GRID_HEIGHT - CONTROL_OFFSET - 32, UBL, - ENCODER_STEPS_PER_MENU_ITEM * GRID_MAX_POINTS_X, imgDown); + add_control(GRID_OFFSET_X + CONTROL_OFFSET, GRID_OFFSET_Y + GRID_HEIGHT + CONTROL_OFFSET, UBL, - ENCODER_STEPS_PER_MENU_ITEM, imgLeft); + add_control(GRID_OFFSET_X + GRID_WIDTH - CONTROL_OFFSET - 32, GRID_OFFSET_Y + GRID_HEIGHT + CONTROL_OFFSET, UBL, ENCODER_STEPS_PER_MENU_ITEM, imgRight); + add_control(320, GRID_OFFSET_Y + GRID_HEIGHT + CONTROL_OFFSET, CLICK, imgLeveling); + add_control(224, 286, BACK, imgBack); + #endif + } +#endif // AUTO_BED_LEVELING_UBL + +#if ENABLED(TOUCH_SCREEN_CALIBRATION) + void MarlinUI::touch_calibration() { + static uint16_t x, y; + + calibrationState calibration_stage = touch.get_calibration_state(); + + if (calibration_stage == CALIBRATION_NONE) { + defer_status_screen(true); + clear_lcd(); + calibration_stage = touch.calibration_start(); + } + else { + tft.canvas(x - 15, y - 15, 31, 31); + tft.set_background(COLOR_BACKGROUND); + } + + x = 20; y = 20; + touch.clear(); + + if (calibration_stage < CALIBRATION_SUCCESS) { + switch(calibration_stage) { + case CALIBRATION_POINT_1: tft_string.set("Top Left"); break; + case CALIBRATION_POINT_2: y = TFT_HEIGHT - 21; tft_string.set("Bottom Left"); break; + case CALIBRATION_POINT_3: x = TFT_WIDTH - 21; tft_string.set("Top Right"); break; + case CALIBRATION_POINT_4: x = TFT_WIDTH - 21; y = TFT_HEIGHT - 21; tft_string.set("Bottom Right"); break; + default: break; + } + + tft.canvas(x - 15, y - 15, 31, 31); + tft.set_background(COLOR_BACKGROUND); + tft.add_bar(0, 15, 31, 1, COLOR_TOUCH_CALIBRATION); + tft.add_bar(15, 0, 1, 31, COLOR_TOUCH_CALIBRATION); + + touch.add_control(CALIBRATE, 0, 0, TFT_WIDTH, TFT_HEIGHT, uint32_t(x) << 16 | uint32_t(y)); + } + else { + tft_string.set(calibration_stage == CALIBRATION_SUCCESS ? "Calibration Completed" : "Calibration Failed"); + defer_status_screen(false); + touch.calibration_end(); + touch.add_control(BACK, 0, 0, TFT_WIDTH, TFT_HEIGHT); + } + + tft.canvas(0, (TFT_HEIGHT - tft_string.font_height()) >> 1, TFT_WIDTH, tft_string.font_height()); + tft.set_background(COLOR_BACKGROUND); + tft.add_text(tft_string.center(TFT_WIDTH), 0, COLOR_MENU_TEXT, tft_string); + } +#endif // TOUCH_SCREEN_CALIBRATION + +void menu_line(const uint8_t row, uint16_t color) { + tft.canvas(0, 4 + 45 * row, TFT_WIDTH, 43); + tft.set_background(color); +} + +void menu_pause_option(); + +void menu_item(const uint8_t row, bool sel ) { + #if ENABLED(TOUCH_SCREEN) + if (row == 0) { + touch.clear(); + draw_menu_navigation = TERN(ADVANCED_PAUSE_FEATURE, ui.currentScreen != menu_pause_option, true); + } + #endif + + menu_line(row, sel ? COLOR_SELECTION_BG : COLOR_BACKGROUND); + TERN_(TOUCH_SCREEN, touch.add_control(sel ? CLICK : MENU_ITEM, 0, 4 + 45 * row, TFT_WIDTH, 43, encoderTopLine + row)); +} + +#endif // HAS_UI_480x320 diff --git a/Marlin/src/lcd/tft/ui_480x320.h b/Marlin/src/lcd/tft/ui_480x320.h new file mode 100644 index 000000000..d803df4a2 --- /dev/null +++ b/Marlin/src/lcd/tft/ui_480x320.h @@ -0,0 +1,106 @@ +/** + * Marlin 3D Printer Firmware + * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin] + * + * Based on Sprinter and grbl. + * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + */ +#pragma once + +#include "../../inc/MarlinConfigPre.h" + +#include "tft.h" +#include "tft_image.h" + +#if ENABLED(TOUCH_SCREEN) + #include "touch.h" +#endif + +void draw_heater_status(uint16_t x, uint16_t y, const int8_t Heater); +void draw_fan_status(uint16_t x, uint16_t y, const bool blink); + +#define MENU_TEXT_X_OFFSET 16 +#define MENU_TEXT_Y_OFFSET 7 +void menu_line(const uint8_t row, uint16_t color = COLOR_BACKGROUND); +void menu_item(const uint8_t row, bool sel = false); + +#define MENU_FONT_NAME Helvetica18 +#define SYMBOLS_FONT_NAME Helvetica18_symbols + +#define ABSOLUTE_ZERO -273.15 + +const tImage Images[imgCount] = { + MarlinLogo195x59x16, + HotEnd_64x64x4, + Bed_64x64x4, + Bed_Heated_64x64x4, + Chamber_64x64x4, + Chamber_Heated_64x64x4, + Fan0_64x64x4, + Fan_Slow0_64x64x4, + Fan_Slow1_64x64x4, + Fan_Fast0_64x64x4, + Fan_Fast1_64x64x4, + Feedrate_32x32x4, + Flowrate_32x32x4, + SD_64x64x4, + Menu_64x64x4, + Settings_64x64x4, + Directory_32x32x4, + Confirm_64x64x4, + Cancel_64x64x4, + Increase_64x64x4, + Decrease_64x64x4, + Back_32x32x4, + Up_32x32x4, + Down_32x32x4, + Left_32x32x4, + Right_32x32x4, + Refresh_32x32x4, + Leveling_32x32x4, + Slider8x16x4, +}; + +#if HAS_TEMP_CHAMBER && HOTENDS > 1 + #define ITEM_E0 0 + #define ITEM_E1 1 + #define ITEM_BED 2 + #define ITEM_CHAMBER 3 + #define ITEM_FAN 4 + #define ITEMS_COUNT 5 + #define POS_Y 4 +#elif HAS_TEMP_CHAMBER + #define ITEM_E0 0 + #define ITEM_BED 1 + #define ITEM_CHAMBER 2 + #define ITEM_FAN 3 + #define ITEMS_COUNT 4 + #define POS_Y 4 +#elif HOTENDS > 1 + #define ITEM_E0 0 + #define ITEM_E1 1 + #define ITEM_BED 2 + #define ITEM_FAN 3 + #define ITEMS_COUNT 4 + #define POS_Y 4 +#else + #define ITEM_E0 0 + #define ITEM_BED 1 + #define ITEM_FAN 2 + #define ITEMS_COUNT 3 + #define POS_Y 4 +#endif diff --git a/Marlin/src/lcd/ultralcd.cpp b/Marlin/src/lcd/ultralcd.cpp index 88a9c36b3..92e3f136c 100644 --- a/Marlin/src/lcd/ultralcd.cpp +++ b/Marlin/src/lcd/ultralcd.cpp @@ -149,7 +149,7 @@ constexpr uint8_t epps = ENCODER_PULSES_PER_STEP; #if HAS_SLOW_BUTTONS volatile uint8_t MarlinUI::slow_buttons; #endif - #if ENABLED(TOUCH_BUTTONS) + #if HAS_TOUCH_XPT2046 #include "../feature/touch/xpt2046.h" bool MarlinUI::on_edit_screen = false; #endif @@ -229,7 +229,7 @@ millis_t MarlinUI::next_button_update_ms; // = 0 int8_t MarlinUI::encoderDirection = ENCODERBASE; #endif - #if ENABLED(TOUCH_BUTTONS) + #if HAS_TOUCH_XPT2046 uint8_t MarlinUI::touch_buttons; uint8_t MarlinUI::repeat_delay; #endif @@ -802,6 +802,9 @@ void MarlinUI::quick_feedback(const bool clear_buttons/*=true*/) { LCDViewAction MarlinUI::lcdDrawUpdate = LCDVIEW_CLEAR_CALL_REDRAW; millis_t next_lcd_update_ms; +#if HAS_LCD_MENU && LCD_TIMEOUT_TO_STATUS + millis_t MarlinUI::return_to_status_ms = 0; +#endif void MarlinUI::update() { @@ -809,7 +812,6 @@ void MarlinUI::update() { millis_t ms = millis(); #if HAS_LCD_MENU && LCD_TIMEOUT_TO_STATUS > 0 - static millis_t return_to_status_ms = 0; #define RESET_STATUS_TIMEOUT() (return_to_status_ms = ms + LCD_TIMEOUT_TO_STATUS) #else #define RESET_STATUS_TIMEOUT() NOOP @@ -838,7 +840,7 @@ void MarlinUI::update() { quick_feedback(); // - Always make a click sound }; - #if ENABLED(TOUCH_BUTTONS) + #if HAS_TOUCH_XPT2046 if (touch_buttons) { RESET_STATUS_TIMEOUT(); if (touch_buttons & (EN_A | EN_B)) { // Menu arrows, in priority @@ -859,7 +861,7 @@ void MarlinUI::update() { } else // keep wait_for_unclick value - #endif // TOUCH_BUTTONS + #endif // HAS_TOUCH_XPT2046 { // Integrated LCD click handling via button_pressed @@ -881,7 +883,7 @@ void MarlinUI::update() { next_lcd_update_ms = ms + LCD_UPDATE_INTERVAL; - #if ENABLED(TOUCH_BUTTONS) + #if HAS_TOUCH_XPT2046 if (on_status_screen()) next_lcd_update_ms += (LCD_UPDATE_INTERVAL) * 2; @@ -1078,6 +1080,8 @@ void MarlinUI::update() { } // switch } // ELAPSED(ms, next_lcd_update_ms) + + TERN_(HAS_GRAPHICAL_TFT, tft_idle()); } #if HAS_ADC_BUTTONS @@ -1224,7 +1228,7 @@ void MarlinUI::update() { #if HAS_SLOW_BUTTONS | slow_buttons #endif - #if BOTH(TOUCH_BUTTONS, HAS_ENCODER_ACTION) + #if BOTH(HAS_TOUCH_XPT2046, HAS_ENCODER_ACTION) | (touch_buttons & TERN(HAS_ENCODER_WHEEL, ~(EN_A | EN_B), 0xFF)) #endif ); @@ -1533,7 +1537,7 @@ void MarlinUI::update() { #endif - #if ENABLED(TOUCH_BUTTONS) + #if HAS_TOUCH_XPT2046 // // Screen Click diff --git a/Marlin/src/lcd/ultralcd.h b/Marlin/src/lcd/ultralcd.h index f3c06177b..662adef0c 100644 --- a/Marlin/src/lcd/ultralcd.h +++ b/Marlin/src/lcd/ultralcd.h @@ -74,7 +74,7 @@ uint8_t get_ADC_keyValue(); #endif - #define LCD_UPDATE_INTERVAL TERN(TOUCH_BUTTONS, 50, 100) + #define LCD_UPDATE_INTERVAL TERN(HAS_TOUCH_XPT2046, 50, 100) #if HAS_LCD_MENU @@ -149,7 +149,7 @@ #define BUTTON_PRESSED(BN) !READ(BTN_## BN) - #if BUTTON_EXISTS(ENC) || ENABLED(TOUCH_BUTTONS) + #if BUTTON_EXISTS(ENC) || HAS_TOUCH_XPT2046 #define BLEN_C 2 #define EN_C _BV(BLEN_C) #endif @@ -215,7 +215,7 @@ #endif -#if BUTTON_EXISTS(BACK) || ENABLED(TOUCH_BUTTONS) +#if BUTTON_EXISTS(BACK) || HAS_TOUCH_XPT2046 #define BLEN_D 3 #define EN_D _BV(BLEN_D) #define LCD_BACK_CLICKED() (buttons & EN_D) @@ -451,7 +451,7 @@ public: static void draw_hotend_status(const uint8_t row, const uint8_t extruder); #endif - #if ENABLED(TOUCH_BUTTONS) + #if HAS_TOUCH_XPT2046 static bool on_edit_screen; static void screen_click(const uint8_t row, const uint8_t col, const uint8_t x, const uint8_t y); #endif @@ -501,8 +501,11 @@ public: #endif #if HAS_LCD_MENU + #if LCD_TIMEOUT_TO_STATUS + static millis_t return_to_status_ms; + #endif - #if ENABLED(TOUCH_BUTTONS) + #if HAS_TOUCH_XPT2046 static uint8_t touch_buttons; static uint8_t repeat_delay; #endif @@ -633,7 +636,7 @@ public: #endif static void update_buttons(); - static inline bool button_pressed() { return BUTTON_CLICK(); } + static inline bool button_pressed() { return BUTTON_CLICK() || TERN(TOUCH_SCREEN, touch_pressed(), false); } #if EITHER(AUTO_BED_LEVELING_UBL, G26_MESH_VALIDATION) static void wait_for_release(); #endif @@ -668,6 +671,10 @@ public: #endif + #if ENABLED(TOUCH_SCREEN_CALIBRATION) + static void touch_calibration(); + #endif + private: #if HAS_DISPLAY @@ -681,6 +688,12 @@ private: static constexpr bool defer_return_to_status = false; #endif static void draw_status_screen(); + #if HAS_GRAPHICAL_TFT + static void tft_idle(); + #if ENABLED(TOUCH_SCREEN) + static bool touch_pressed(); + #endif + #endif #endif }; diff --git a/Marlin/src/module/configuration_store.cpp b/Marlin/src/module/configuration_store.cpp index 72ff05762..b9f44eb6f 100644 --- a/Marlin/src/module/configuration_store.cpp +++ b/Marlin/src/module/configuration_store.cpp @@ -140,6 +140,10 @@ #define HAS_CASE_LIGHT_BRIGHTNESS 1 #endif +#if ENABLED(TOUCH_SCREEN_CALIBRATION) + #include "../lcd/tft/touch.h" +#endif + #pragma pack(push, 1) // No padding between variables typedef struct { uint16_t X, Y, Z, X2, Y2, Z2, Z3, Z4, E0, E1, E2, E3, E4, E5, E6, E7; } tmc_stepper_current_t; @@ -403,6 +407,13 @@ typedef struct SettingsDataStruct { uint8_t case_light_brightness; #endif + // + // TOUCH_SCREEN_CALIBRATION + // + #if ENABLED(TOUCH_SCREEN_CALIBRATION) + touch_calibration_t touch_calibration; + #endif + } SettingsData; //static_assert(sizeof(SettingsData) <= MARLIN_EEPROM_SIZE, "EEPROM too small to contain SettingsData!"); @@ -1334,6 +1345,13 @@ void MarlinSettings::postprocess() { EEPROM_WRITE(case_light_brightness); #endif + // + // TOUCH_SCREEN_CALIBRATION + // + #if ENABLED(TOUCH_SCREEN_CALIBRATION) + EEPROM_WRITE(touch.calibration); + #endif + // // Validate CRC and Data Size // @@ -2167,6 +2185,14 @@ void MarlinSettings::postprocess() { EEPROM_READ(case_light_brightness); #endif + // + // TOUCH_SCREEN_CALIBRATION + // + #if ENABLED(TOUCH_SCREEN_CALIBRATION) + _FIELD_TEST(touch.calibration); + EEPROM_READ(touch.calibration); + #endif + eeprom_error = size_error(eeprom_index - (EEPROM_OFFSET)); if (eeprom_error) { DEBUG_ECHO_START(); @@ -2469,6 +2495,11 @@ void MarlinSettings::reset() { // TERN_(HAS_CASE_LIGHT_BRIGHTNESS, case_light_brightness = CASE_LIGHT_DEFAULT_BRIGHTNESS); + // + // TOUCH_SCREEN_CALIBRATION + // + TERN_(TOUCH_SCREEN_CALIBRATION, touch.calibration_reset()); + // // Magnetic Parking Extruder // diff --git a/Marlin/src/pins/pins.h b/Marlin/src/pins/pins.h index 1b78b0f76..1f120e0c1 100644 --- a/Marlin/src/pins/pins.h +++ b/Marlin/src/pins/pins.h @@ -503,7 +503,7 @@ #elif MB(CHITU3D) #include "stm32f1/pins_CHITU3D.h" // STM32F1 env:STM32F103RE #elif MB(MKS_ROBIN) - #include "stm32f1/pins_MKS_ROBIN.h" // STM32F1 env:mks_robin + #include "stm32f1/pins_MKS_ROBIN.h" // STM32F1 env:mks_robin env:mks_robin_stm32 #elif MB(MKS_ROBIN_MINI) #include "stm32f1/pins_MKS_ROBIN_MINI.h" // STM32F1 env:mks_robin_mini #elif MB(MKS_ROBIN_NANO) @@ -632,6 +632,12 @@ #elif MB(AGCM4_RAMPS_144) #include "samd/pins_RAMPS_144.h" // SAMD51 env:SAMD51_grandcentral_m4 +// +// Custom board (with custom PIO env) +// +#elif MB(CUSTOM) + #include "pins_custom.h" // env:custom + // // Linux Native Debug board // diff --git a/Marlin/src/pins/stm32f1/pins_CHITU3D_V5.h b/Marlin/src/pins/stm32f1/pins_CHITU3D_V5.h index 5a672d29b..b2eda4797 100644 --- a/Marlin/src/pins/stm32f1/pins_CHITU3D_V5.h +++ b/Marlin/src/pins/stm32f1/pins_CHITU3D_V5.h @@ -108,7 +108,7 @@ // TronXY TFT Support // //#define FSMC_GRAPHICAL_TFT -//#define TOUCH_BUTTONS +//#define HAS_TOUCH_XPT2046 1 #if ENABLED(FSMC_GRAPHICAL_TFT) #define FSMC_UPSCALE 3 @@ -126,7 +126,7 @@ #define FSMC_DMA_DEV DMA2 #define FSMC_DMA_CHANNEL DMA_CH5 - #if ENABLED(TOUCH_BUTTONS) + #if NEED_TOUCH_PINS #define TOUCH_CS_PIN PB7 // SPI1_NSS #define TOUCH_SCK_PIN PA5 // SPI1_SCK #define TOUCH_MISO_PIN PA6 // SPI1_MISO diff --git a/Marlin/src/pins/stm32f1/pins_CHITU3D_V6.h b/Marlin/src/pins/stm32f1/pins_CHITU3D_V6.h index be71d3f2c..39db37a1a 100644 --- a/Marlin/src/pins/stm32f1/pins_CHITU3D_V6.h +++ b/Marlin/src/pins/stm32f1/pins_CHITU3D_V6.h @@ -132,7 +132,7 @@ #define FSMC_DMA_DEV DMA2 #define FSMC_DMA_CHANNEL DMA_CH5 - #if ENABLED(TOUCH_BUTTONS) + #if NEED_TOUCH_PINS #define TOUCH_CS_PIN PB7 // SPI1_NSS #define TOUCH_SCK_PIN PA5 // SPI1_SCK #define TOUCH_MISO_PIN PA6 // SPI1_MISO diff --git a/Marlin/src/pins/stm32f1/pins_JGAURORA_A5S_A1.h b/Marlin/src/pins/stm32f1/pins_JGAURORA_A5S_A1.h index c68c05926..dcd1c868f 100644 --- a/Marlin/src/pins/stm32f1/pins_JGAURORA_A5S_A1.h +++ b/Marlin/src/pins/stm32f1/pins_JGAURORA_A5S_A1.h @@ -126,7 +126,7 @@ // // Touch support // -#if ENABLED(TOUCH_BUTTONS) +#if NEED_TOUCH_PINS #define TOUCH_CS_PIN PA4 #define TOUCH_INT_PIN PC4 #endif diff --git a/Marlin/src/pins/stm32f1/pins_LONGER3D_LK.h b/Marlin/src/pins/stm32f1/pins_LONGER3D_LK.h index e99b70270..2f5dbd010 100644 --- a/Marlin/src/pins/stm32f1/pins_LONGER3D_LK.h +++ b/Marlin/src/pins/stm32f1/pins_LONGER3D_LK.h @@ -135,7 +135,7 @@ * mixed up MOSI and MISO pins. SPI is managed in SW, and needs pins * declared below. */ -#if ENABLED(TOUCH_BUTTONS) +#if NEED_TOUCH_PINS #define TOUCH_CS_PIN PB12 // pin 51 SPI2_NSS #define TOUCH_SCK_PIN PB13 // pin 52 #define TOUCH_MOSI_PIN PB14 // pin 53 diff --git a/Marlin/src/pins/stm32f1/pins_MKS_ROBIN.h b/Marlin/src/pins/stm32f1/pins_MKS_ROBIN.h index 86b6f613d..5193ddad2 100644 --- a/Marlin/src/pins/stm32f1/pins_MKS_ROBIN.h +++ b/Marlin/src/pins/stm32f1/pins_MKS_ROBIN.h @@ -27,7 +27,7 @@ * https://github.com/makerbase-mks/MKS-Robin/tree/master/MKS%20Robin/Hardware */ -#ifndef __STM32F1__ +#if !defined(STM32F1) && !defined(STM32F1xx) #error "Oops! Select an STM32F1 board in 'Tools > Board.'" #elif HOTENDS > 2 || E_STEPPERS > 2 #error "MKS Robin supports up to 2 hotends / E-steppers. Comment out this line to continue." @@ -43,7 +43,14 @@ // // Enable SD EEPROM to prevent infinite boot loop // -#define SDCARD_EEPROM_EMULATION +#ifdef ARDUINO_ARCH_STM32 + #define FLASH_EEPROM_EMULATION + #define EEPROM_PAGE_SIZE (0x800U) // 2KB + #define EEPROM_START_ADDRESS (0x8000000UL + (STM32_FLASH_SIZE) * 1024UL - (EEPROM_PAGE_SIZE) * 2UL) + #define MARLIN_EEPROM_SIZE (EEPROM_PAGE_SIZE) +#else + #define SDCARD_EEPROM_EMULATION +#endif // // Servos @@ -112,35 +119,47 @@ #define PS_ON_PIN PA3 // PW_OFF #define FIL_RUNOUT_PIN PF11 // MT_DET -#define BEEPER_PIN PC13 +#ifdef ARDUINO_ARCH_STM32F1 + #define BEEPER_PIN PC13 +#else + #define BEEPER_PIN -1 +#endif #define LED_PIN PB2 -/** - * Note: MKS Robin TFT screens use various TFT controllers - * Supported screens are based on the ILI9341, ST7789V and ILI9328 (320x240) - * ILI9488 is not supported - * Define init sequences for other screens in u8g_dev_tft_320x240_upscale_from_128x64.cpp - * - * If the screen stays white, disable 'LCD_RESET_PIN' - * to let the bootloader init the screen. - * - * Setting an 'LCD_RESET_PIN' may cause a flicker when entering the LCD menu - * because Marlin uses the reset as a failsafe to revive a glitchy LCD. - */ -//#define LCD_RESET_PIN PF6 -#define LCD_BACKLIGHT_PIN PG11 -#define FSMC_CS_PIN PG12 // NE4 -#define FSMC_RS_PIN PF0 // A0 +#ifdef HAS_GRAPHICAL_TFT + #define TFT_RESET_PIN PF6 + #define TFT_BACKLIGHT_PIN PG11 + #define TFT_CS_PIN PG12 // NE4 + #define TFT_RS_PIN PF0 // A0 +#else + /** + * Note: MKS Robin TFT screens use various TFT controllers + * Supported screens are based on the ILI9341, ST7789V and ILI9328 (320x240) + * ILI9488 is not supported + * Define init sequences for other screens in u8g_dev_tft_320x240_upscale_from_128x64.cpp + * + * If the screen stays white, disable 'LCD_RESET_PIN' + * to let the bootloader init the screen. + * + * Setting an 'LCD_RESET_PIN' may cause a flicker when entering the LCD menu + * because Marlin uses the reset as a failsafe to revive a glitchy LCD. + */ + //#define LCD_RESET_PIN PF6 + #define LCD_BACKLIGHT_PIN PG11 + #define FSMC_CS_PIN PG12 // NE4 + #define FSMC_RS_PIN PF0 // A0 -#define LCD_USE_DMA_FSMC // Use DMA transfers to send data to the TFT -#define FSMC_DMA_DEV DMA2 -#define FSMC_DMA_CHANNEL DMA_CH5 + #define LCD_USE_DMA_FSMC // Use DMA transfers to send data to the TFT + #define FSMC_DMA_DEV DMA2 + #define FSMC_DMA_CHANNEL DMA_CH5 +#endif -#if ENABLED(TOUCH_BUTTONS) +#if NEED_TOUCH_PINS #define TOUCH_CS_PIN PB1 // SPI2_NSS #define TOUCH_SCK_PIN PB13 // SPI2_SCK #define TOUCH_MISO_PIN PB14 // SPI2_MISO #define TOUCH_MOSI_PIN PB15 // SPI2_MOSI + #define TOUCH_INT_PIN -1 #endif // SPI1(PA7) & SPI3(PB5) not available @@ -150,7 +169,6 @@ #define SCK_PIN PB13 // SPI2 #define MISO_PIN PB14 // SPI2 #define MOSI_PIN PB15 // SPI2 - #define SS_PIN -1 // PB12 is X- #define SD_DETECT_PIN PF12 // SD_CD #else // SD as custom software SPI (SDIO pins) diff --git a/Marlin/src/pins/stm32f1/pins_MKS_ROBIN_MINI.h b/Marlin/src/pins/stm32f1/pins_MKS_ROBIN_MINI.h index a4c179afc..73e1b12b8 100644 --- a/Marlin/src/pins/stm32f1/pins_MKS_ROBIN_MINI.h +++ b/Marlin/src/pins/stm32f1/pins_MKS_ROBIN_MINI.h @@ -128,7 +128,7 @@ #define LCD_RESET_PIN PC6 #define LCD_BACKLIGHT_PIN PD13 - #if ENABLED(TOUCH_BUTTONS) + #if NEED_TOUCH_PINS #define TOUCH_CS_PIN PC2 #define TOUCH_SCK_PIN PB13 #define TOUCH_MOSI_PIN PB15 diff --git a/Marlin/src/pins/stm32f1/pins_MKS_ROBIN_NANO.h b/Marlin/src/pins/stm32f1/pins_MKS_ROBIN_NANO.h index 610f4b573..844fb6b0d 100644 --- a/Marlin/src/pins/stm32f1/pins_MKS_ROBIN_NANO.h +++ b/Marlin/src/pins/stm32f1/pins_MKS_ROBIN_NANO.h @@ -210,7 +210,7 @@ #define LCD_RESET_PIN PC6 // FSMC_RST #define LCD_BACKLIGHT_PIN PD13 - #if ENABLED(TOUCH_BUTTONS) + #if NEED_TOUCH_PINS #define TOUCH_CS_PIN PA7 // SPI2_NSS #define TOUCH_SCK_PIN PB13 // SPI2_SCK #define TOUCH_MISO_PIN PB14 // SPI2_MISO diff --git a/Marlin/src/pins/stm32f1/pins_MKS_ROBIN_NANO_V2.h b/Marlin/src/pins/stm32f1/pins_MKS_ROBIN_NANO_V2.h index afbcc8f32..3c950a38e 100644 --- a/Marlin/src/pins/stm32f1/pins_MKS_ROBIN_NANO_V2.h +++ b/Marlin/src/pins/stm32f1/pins_MKS_ROBIN_NANO_V2.h @@ -293,8 +293,8 @@ #define TOUCH_BUTTONS_HW_SPI #define TOUCH_BUTTONS_HW_SPI_DEVICE 1 - //#define TOUCH_BUTTONS - #if ENABLED(TOUCH_BUTTONS) + //#define TOUCH_SCREEN + #if NEED_TOUCH_PINS #define TOUCH_CS_PIN PE14 // SPI1_NSS #define TOUCH_SCK_PIN PA5 // SPI1_SCK #define TOUCH_MISO_PIN PA6 // SPI1_MISO diff --git a/Marlin/src/pins/stm32f1/pins_MKS_ROBIN_PRO.h b/Marlin/src/pins/stm32f1/pins_MKS_ROBIN_PRO.h index 2d6c98eb1..3ca59a93a 100644 --- a/Marlin/src/pins/stm32f1/pins_MKS_ROBIN_PRO.h +++ b/Marlin/src/pins/stm32f1/pins_MKS_ROBIN_PRO.h @@ -221,7 +221,7 @@ #define LCD_RESET_PIN PF6 #define LCD_BACKLIGHT_PIN PD13 - #if ENABLED(TOUCH_BUTTONS) + #if NEED_TOUCH_PINS #define TOUCH_CS_PIN PA7 #else #define BEEPER_PIN PC5 diff --git a/Marlin/src/pins/stm32f1/pins_STM3R_MINI.h b/Marlin/src/pins/stm32f1/pins_STM3R_MINI.h index 16e665621..eb7fc9493 100644 --- a/Marlin/src/pins/stm32f1/pins_STM3R_MINI.h +++ b/Marlin/src/pins/stm32f1/pins_STM3R_MINI.h @@ -143,7 +143,7 @@ #endif #endif - #if ENABLED(TOUCH_BUTTONS) + #if NEED_TOUCH_PINS #define TOUCH_CS_PIN PB12 // SPI2_NSS #define TOUCH_SCK_PIN PB13 diff --git a/Marlin/src/pins/stm32f1/pins_TRIGORILLA_PRO.h b/Marlin/src/pins/stm32f1/pins_TRIGORILLA_PRO.h index 2ca5897e9..c0a0c016b 100644 --- a/Marlin/src/pins/stm32f1/pins_TRIGORILLA_PRO.h +++ b/Marlin/src/pins/stm32f1/pins_TRIGORILLA_PRO.h @@ -129,7 +129,7 @@ #define FSMC_DMA_DEV DMA2 #define FSMC_DMA_CHANNEL DMA_CH5 -#if ENABLED(TOUCH_BUTTONS) +#if NEED_TOUCH_PINS #define TOUCH_CS_PIN PB7 // SPI2_NSS #define TOUCH_SCK_PIN PA5 // SPI2_SCK #define TOUCH_MISO_PIN PA6 // SPI2_MISO diff --git a/buildroot/bin/opt_add b/buildroot/bin/opt_add index 2c1eb3000..2306ebdaa 100755 --- a/buildroot/bin/opt_add +++ b/buildroot/bin/opt_add @@ -1,3 +1,3 @@ #!/usr/bin/env bash -eval "echo '#define ${@}' >>Marlin/Configuration_adv.h" +eval "echo '#define ${@}' | cat - Marlin/Configuration.h > temp && mv temp Marlin/Configuration.h" diff --git a/buildroot/bin/use_example_configs b/buildroot/bin/use_example_configs index 4510f689f..96be67e53 100755 --- a/buildroot/bin/use_example_configs +++ b/buildroot/bin/use_example_configs @@ -1,15 +1,18 @@ #!/usr/bin/env bash +IFS=: read -r PART1 PART2 <<< "$@" +[ -n "${PART2}" ] && { REPO="$PART1" ; RDIR="$PART2" ; } \ + || { REPO=bugfix-2.0.x ; RDIR="$PART1" ; } +EXAMPLES="https://raw.githubusercontent.com/MarlinFirmware/Configurations/$REPO/config/examples" + restore_configs -EXAMPLES="https://raw.githubusercontent.com/MarlinFirmware/Configurations/bugfix-2.0.x/config/examples" - cd Marlin -wget -q "$EXAMPLES/$@/Configuration.h" -O wgot && mv wgot Configuration.h -wget -q "$EXAMPLES/$@/Configuration_adv.h" -O wgot && mv wgot Configuration_adv.h -wget -q "$EXAMPLES/$@/_Bootscreen.h" -O wgot && mv wgot _Bootscreen.h -wget -q "$EXAMPLES/$@/_Statusscreen.h" -O wgot && mv wgot _Statusscreen.h +wget -q "$EXAMPLES/$RDIR/Configuration.h" -O wgot && mv wgot Configuration.h +wget -q "$EXAMPLES/$RDIR/Configuration_adv.h" -O wgot && mv wgot Configuration_adv.h +wget -q "$EXAMPLES/$RDIR/_Bootscreen.h" -O wgot && mv wgot _Bootscreen.h +wget -q "$EXAMPLES/$RDIR/_Statusscreen.h" -O wgot && mv wgot _Statusscreen.h rm -f wgot cd - >/dev/null diff --git a/buildroot/share/PlatformIO/scripts/mks_encrypt.py b/buildroot/share/PlatformIO/scripts/mks_encrypt.py new file mode 100644 index 000000000..0d53cdfbe --- /dev/null +++ b/buildroot/share/PlatformIO/scripts/mks_encrypt.py @@ -0,0 +1,32 @@ +import os,sys +Import("env") + +from SCons.Script import DefaultEnvironment +board = DefaultEnvironment().BoardConfig() + +# Encrypt ${PROGNAME}.bin and save it as build.firmware ('Robin.bin') +def encrypt(source, target, env): + key = [0xA3, 0xBD, 0xAD, 0x0D, 0x41, 0x11, 0xBB, 0x8D, 0xDC, 0x80, 0x2D, 0xD0, 0xD2, 0xC4, 0x9B, 0x1E, 0x26, 0xEB, 0xE3, 0x33, 0x4A, 0x15, 0xE4, 0x0A, 0xB3, 0xB1, 0x3C, 0x93, 0xBB, 0xAF, 0xF7, 0x3E] + + firmware = open(target[0].path, "rb") + robin = open(target[0].dir.path +'/'+ board.get("build.firmware"), "wb") + length = os.path.getsize(target[0].path) + position = 0 + try: + while position < length: + byte = firmware.read(1) + if position >= 320 and position < 31040: + byte = chr(ord(byte) ^ key[position & 31]) + if sys.version_info[0] > 2: + byte = bytes(byte, 'latin1') + robin.write(byte) + position += 1 + finally: + firmware.close() + robin.close() + +if 'firmware' in board.get("build").keys(): + env.AddPostAction("$BUILD_DIR/${PROGNAME}.bin", encrypt); +else: + print("You need to define output file via board_build.firmware = 'filename' parameter", file=sys.stderr) + exit(1); diff --git a/buildroot/share/PlatformIO/variants/CHITU_F103/wirish/boards.cpp b/buildroot/share/PlatformIO/variants/CHITU_F103/wirish/boards.cpp index 93ae23151..2210e9844 100755 --- a/buildroot/share/PlatformIO/variants/CHITU_F103/wirish/boards.cpp +++ b/buildroot/share/PlatformIO/variants/CHITU_F103/wirish/boards.cpp @@ -123,7 +123,7 @@ static void setup_clocks(void) { #if !USE_HSI_CLOCK // Enable HSE, and wait until it's ready. rcc_turn_on_clk(RCC_CLK_HSE); - while (!rcc_is_clk_ready(RCC_CLK_HSE)) + while(!rcc_is_clk_ready(RCC_CLK_HSE)) ; #endif // Configure AHBx, APBx, etc. prescalers and the main PLL. diff --git a/buildroot/share/PlatformIO/variants/MARLIN_F103Vx/PeripheralPins.c b/buildroot/share/PlatformIO/variants/MARLIN_F103Vx/PeripheralPins.c new file mode 100644 index 000000000..c9d2bb88b --- /dev/null +++ b/buildroot/share/PlatformIO/variants/MARLIN_F103Vx/PeripheralPins.c @@ -0,0 +1,425 @@ +/* + ******************************************************************************* + * Copyright (c) 2020, STMicroelectronics + * All rights reserved. + * + * This software component is licensed by ST under BSD 3-Clause license, + * the "License"; You may not use this file except in compliance with the + * License. You may obtain a copy of the License at: + * opensource.org/licenses/BSD-3-Clause + * + ******************************************************************************* + * Automatically generated from STM32F103V(F-G)Tx.xml + */ +#include "Arduino.h" +#include "PeripheralPins.h" + +/* ===== + * Note: Commented lines are alternative possibilities which are not used per default. + * If you change them, you will have to know what you do + * ===== + */ + +//*** ADC *** + +#ifdef HAL_ADC_MODULE_ENABLED +WEAK const PinMap PinMap_ADC[] = { + {PA_0, ADC1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 0, 0)}, // ADC1_IN0 + // {PA_0, ADC2, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 0, 0)}, // ADC2_IN0 +#if defined(STM32F103xE) || defined(STM32F103xG) + // {PA_0, ADC3, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 0, 0)}, // ADC3_IN0 +#endif + {PA_1, ADC1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 1, 0)}, // ADC1_IN1 + // {PA_1, ADC2, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 1, 0)}, // ADC2_IN1 +#if defined(STM32F103xE) || defined(STM32F103xG) + // {PA_1, ADC3, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 1, 0)}, // ADC3_IN1 +#endif + {PA_2, ADC1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 2, 0)}, // ADC1_IN2 + // {PA_2, ADC2, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 2, 0)}, // ADC2_IN2 +#if defined(STM32F103xE) || defined(STM32F103xG) + // {PA_2, ADC3, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 2, 0)}, // ADC3_IN2 +#endif + {PA_3, ADC1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 3, 0)}, // ADC1_IN3 + // {PA_3, ADC2, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 3, 0)}, // ADC2_IN3 +#if defined(STM32F103xE) || defined(STM32F103xG) + // {PA_3, ADC3, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 3, 0)}, // ADC3_IN3 +#endif + {PA_4, ADC1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 4, 0)}, // ADC1_IN4 + // {PA_4, ADC2, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 4, 0)}, // ADC2_IN4 + {PA_5, ADC1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 5, 0)}, // ADC1_IN5 + // {PA_5, ADC2, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 5, 0)}, // ADC2_IN5 + {PA_6, ADC1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 6, 0)}, // ADC1_IN6 + // {PA_6, ADC2, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 6, 0)}, // ADC2_IN6 + {PA_7, ADC1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 7, 0)}, // ADC1_IN7 + // {PA_7, ADC2, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 7, 0)}, // ADC2_IN7 + {PB_0, ADC1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 8, 0)}, // ADC1_IN8 + // {PB_0, ADC2, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 8, 0)}, // ADC2_IN8 + {PB_1, ADC1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 9, 0)}, // ADC1_IN9 + // {PB_1, ADC2, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 9, 0)}, // ADC2_IN9 + {PC_0, ADC1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 10, 0)}, // ADC1_IN10 + // {PC_0, ADC2, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 10, 0)}, // ADC2_IN10 +#if defined(STM32F103xE) || defined(STM32F103xG) + // {PC_0, ADC3, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 10, 0)}, // ADC3_IN10 +#endif + {PC_1, ADC1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 11, 0)}, // ADC1_IN11 + // {PC_1, ADC2, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 11, 0)}, // ADC2_IN11 +#if defined(STM32F103xE) || defined(STM32F103xG) + // {PC_1, ADC3, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 11, 0)}, // ADC3_IN11 +#endif + {PC_2, ADC1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 12, 0)}, // ADC1_IN12 + // {PC_2, ADC2, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 12, 0)}, // ADC2_IN12 +#if defined(STM32F103xE) || defined(STM32F103xG) + // {PC_2, ADC3, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 12, 0)}, // ADC3_IN12 +#endif + {PC_3, ADC1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 13, 0)}, // ADC1_IN13 + // {PC_3, ADC2, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 13, 0)}, // ADC2_IN13 +#if defined(STM32F103xE) || defined(STM32F103xG) + // {PC_3, ADC3, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 13, 0)}, // ADC3_IN13 +#endif + {PC_4, ADC1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 14, 0)}, // ADC1_IN14 + // {PC_4, ADC2, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 14, 0)}, // ADC2_IN14 + {PC_5, ADC1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 15, 0)}, // ADC1_IN15 + // {PC_5, ADC2, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 15, 0)}, // ADC2_IN15 + {NC, NP, 0} +}; +#endif + +//*** DAC *** + +#if defined(STM32F103xE) || defined(STM32F103xG) +#ifdef HAL_DAC_MODULE_ENABLED +WEAK const PinMap PinMap_DAC[] = { + {PA_4, DAC1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 1, 0)}, // DAC_OUT1 + {PA_5, DAC1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 2, 0)}, // DAC_OUT2 + {NC, NP, 0} +}; +#endif +#endif + +//*** I2C *** + +#ifdef HAL_I2C_MODULE_ENABLED +WEAK const PinMap PinMap_I2C_SDA[] = { + {PB_7, I2C1, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_NOPULL, AFIO_NONE)}, + {PB_9, I2C1, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_NOPULL, AFIO_I2C1_ENABLE)}, + {PB_11, I2C2, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_NOPULL, AFIO_NONE)}, + {NC, NP, 0} +}; +#endif + +#ifdef HAL_I2C_MODULE_ENABLED +WEAK const PinMap PinMap_I2C_SCL[] = { + {PB_6, I2C1, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_NOPULL, AFIO_NONE)}, + {PB_8, I2C1, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_NOPULL, AFIO_I2C1_ENABLE)}, + {PB_10, I2C2, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_NOPULL, AFIO_NONE)}, + {NC, NP, 0} +}; +#endif + +//*** PWM *** + +#ifdef HAL_TIM_MODULE_ENABLED +WEAK const PinMap PinMap_PWM[] = { + {PA_0, TIM2, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_NONE, 1, 0)}, // TIM2_CH1 + // {PA_0, TIM2, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_TIM2_PARTIAL_2, 1, 0)}, // TIM2_CH1 +#if defined(STM32F103xE) || defined(STM32F103xG) + // {PA_0, TIM5, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_NONE, 1, 0)}, // TIM5_CH1 +#endif + {PA_1, TIM2, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_NONE, 2, 0)}, // TIM2_CH2 + // {PA_1, TIM2, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_TIM2_PARTIAL_2, 2, 0)}, // TIM2_CH2 +#if defined(STM32F103xE) || defined(STM32F103xG) + // {PA_1, TIM5, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_NONE, 2, 0)}, // TIM5_CH2 +#endif + {PA_2, TIM2, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_NONE, 3, 0)}, // TIM2_CH3 + // {PA_2, TIM2, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_TIM2_PARTIAL_1, 3, 0)}, // TIM2_CH3 +#if defined(STM32F103xE) || defined(STM32F103xG) + // {PA_2, TIM5, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_NONE, 3, 0)}, // TIM5_CH3 +#endif +#ifdef STM32F103xG + // {PA_2, TIM9, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_NONE, 1, 0)}, // TIM9_CH1 +#endif + // {PA_3, TIM2, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_TIM2_PARTIAL_1, 4, 0)}, // TIM2_CH4 +#if defined(STM32F103xE) || defined(STM32F103xG) + // {PA_3, TIM2, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_NONE, 4, 0)}, // TIM2_CH4 + {PA_3, TIM5, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_NONE, 4, 0)}, // TIM5_CH4 +#else + {PA_3, TIM2, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_NONE, 4, 0)}, // TIM2_CH4 +#endif +#if defined(STM32F103xG) + // {PA_3, TIM9, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_NONE, 2, 0)}, // TIM9_CH2 +#endif + {PA_6, TIM3, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_NONE, 1, 0)}, // TIM3_CH1 +#if defined(STM32F103xG) + // {PA_6, TIM13, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_NONE, 1, 0)}, // TIM13_CH1 +#endif + {PA_7, TIM1, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_TIM1_PARTIAL, 1, 1)}, // TIM1_CH1N + // {PA_7, TIM3, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_NONE, 2, 0)}, // TIM3_CH2 + // {PA_7, TIM8, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_NONE, 1, 1)}, // TIM8_CH1N +#if defined(STM32F103xG) + // {PA_7, TIM14, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_NONE, 1, 0)}, // TIM14_CH1 +#endif + {PA_8, TIM1, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_NONE, 1, 0)}, // TIM1_CH1 + // {PA_8, TIM1, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_TIM1_PARTIAL, 1, 0)}, // TIM1_CH1 + {PA_9, TIM1, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_NONE, 2, 0)}, // TIM1_CH2 + // {PA_9, TIM1, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_TIM1_PARTIAL, 2, 0)}, // TIM1_CH2 + {PA_10, TIM1, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_NONE, 3, 0)}, // TIM1_CH3 + // {PA_10, TIM1, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_TIM1_PARTIAL, 3, 0)}, // TIM1_CH3 + {PA_11, TIM1, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_NONE, 4, 0)}, // TIM1_CH4 + // {PA_11, TIM1, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_TIM1_PARTIAL, 4, 0)}, // TIM1_CH4 + {PA_15, TIM2, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_TIM2_PARTIAL_1, 1, 0)}, // TIM2_CH1 + // {PA_15, TIM2, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_TIM2_ENABLE, 1, 0)}, // TIM2_CH1 + // {PB_0, TIM1, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_TIM1_PARTIAL, 2, 1)}, // TIM1_CH2N + {PB_0, TIM3, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_NONE, 3, 0)}, // TIM3_CH3 + // {PB_0, TIM3, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_TIM3_PARTIAL, 3, 0)}, // TIM3_CH3 +#if defined(STM32F103xE) || defined(STM32F103xG) + // {PB_0, TIM8, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_NONE, 2, 1)}, // TIM8_CH2N +#endif + {PB_1, TIM1, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_TIM1_PARTIAL, 3, 1)}, // TIM1_CH3N + // {PB_1, TIM3, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_NONE, 4, 0)}, // TIM3_CH4 + // {PB_1, TIM3, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_TIM3_PARTIAL, 4, 0)}, // TIM3_CH4 +#if defined(STM32F103xE) || defined(STM32F103xG) + // {PB_1, TIM8, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_NONE, 3, 1)}, // TIM8_CH3N +#endif + {PB_3, TIM2, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_TIM2_PARTIAL_1, 2, 0)}, // TIM2_CH2 + // {PB_3, TIM2, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_TIM2_ENABLE, 2, 0)}, // TIM2_CH2 + {PB_4, TIM3, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_TIM3_PARTIAL, 1, 0)}, // TIM3_CH1 + {PB_5, TIM3, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_TIM3_PARTIAL, 2, 0)}, // TIM3_CH2 + {PB_6, TIM4, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_NONE, 1, 0)}, // TIM4_CH1 + {PB_7, TIM4, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_NONE, 2, 0)}, // TIM4_CH2 + {PB_8, TIM4, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_NONE, 3, 0)}, // TIM4_CH3 +#if defined(STM32F103xG) + // {PB_8, TIM10, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_NONE, 1, 0)}, // TIM10_CH1 +#endif + {PB_9, TIM4, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_NONE, 4, 0)}, // TIM4_CH4 +#if defined(STM32F103xG) + // {PB_9, TIM11, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_NONE, 1, 0)}, // TIM11_CH1 +#endif + {PB_10, TIM2, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_TIM2_PARTIAL_2, 3, 0)}, // TIM2_CH3 + // {PB_10, TIM2, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_TIM2_ENABLE, 3, 0)}, // TIM2_CH3 + {PB_11, TIM2, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_TIM2_PARTIAL_2, 4, 0)}, // TIM2_CH4 + // {PB_11, TIM2, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_TIM2_ENABLE, 4, 0)}, // TIM2_CH4 + {PB_13, TIM1, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_NONE, 1, 1)}, // TIM1_CH1N + {PB_14, TIM1, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_NONE, 2, 1)}, // TIM1_CH2N +#if defined(STM32F103xG) + // {PB_14, TIM12, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_NONE, 1, 0)}, // TIM12_CH1 +#endif + {PB_15, TIM1, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_NONE, 3, 1)}, // TIM1_CH3N +#if defined(STM32F103xG) + // {PB_15, TIM12, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_NONE, 2, 0)}, // TIM12_CH2 +#endif + {PC_6, TIM3, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_TIM3_ENABLE, 1, 0)}, // TIM3_CH1 +#if defined(STM32F103xE) || defined(STM32F103xG) + // {PC_6, TIM8, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_NONE, 1, 0)}, // TIM8_CH1 +#endif + {PC_7, TIM3, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_TIM3_ENABLE, 2, 0)}, // TIM3_CH2 +#if defined(STM32F103xE) || defined(STM32F103xG) + // {PC_7, TIM8, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_NONE, 2, 0)}, // TIM8_CH2 +#endif + {PC_8, TIM3, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_TIM3_ENABLE, 3, 0)}, // TIM3_CH3 + // {PC_8, TIM8, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_NONE, 3, 0)}, // TIM8_CH3 + {PC_9, TIM3, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_TIM3_ENABLE, 4, 0)}, // TIM3_CH4 +#if defined(STM32F103xE) || defined(STM32F103xG) + // {PC_9, TIM8, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_NONE, 4, 0)}, // TIM8_CH4 +#endif + {PD_12, TIM4, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_TIM4_ENABLE, 1, 0)}, // TIM4_CH1 + {PD_13, TIM4, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_TIM4_ENABLE, 2, 0)}, // TIM4_CH2 + {PD_14, TIM4, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_TIM4_ENABLE, 3, 0)}, // TIM4_CH3 + {PD_15, TIM4, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_TIM4_ENABLE, 4, 0)}, // TIM4_CH4 +#if defined(STM32F103xG) + {PE_5, TIM9, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_TIM9_ENABLE, 1, 0)}, // TIM9_CH1 + {PE_6, TIM9, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_TIM9_ENABLE, 2, 0)}, // TIM9_CH2 +#endif + {PE_8, TIM1, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_TIM1_ENABLE, 1, 1)}, // TIM1_CH1N + {PE_9, TIM1, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_TIM1_ENABLE, 1, 0)}, // TIM1_CH1 + {PE_10, TIM1, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_TIM1_ENABLE, 2, 1)}, // TIM1_CH2N + {PE_11, TIM1, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_TIM1_ENABLE, 2, 0)}, // TIM1_CH2 + {PE_12, TIM1, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_TIM1_ENABLE, 3, 1)}, // TIM1_CH3N + {PE_13, TIM1, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_TIM1_ENABLE, 3, 0)}, // TIM1_CH3 + {PE_14, TIM1, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_TIM1_ENABLE, 4, 0)}, // TIM1_CH4 + {NC, NP, 0} +}; +#endif + +//*** SERIAL *** + +#ifdef HAL_UART_MODULE_ENABLED +WEAK const PinMap PinMap_UART_TX[] = { + {PA_2, USART2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_NONE)}, + {PA_9, USART1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_NONE)}, + {PB_6, USART1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_USART1_ENABLE)}, + {PB_10, USART3, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_NONE)}, +#if defined(STM32F103xE) || defined(STM32F103xG) + // {PC_10, USART3, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_USART3_PARTIAL)}, + {PC_10, UART4, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_NONE)}, +#else + {PC_10, USART3, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_USART3_PARTIAL)}, +#endif +#if defined(STM32F103xE) || defined(STM32F103xG) + {PC_12, UART5, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_NONE)}, +#endif + {PD_5, USART2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_USART2_ENABLE)}, + {PD_8, USART3, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_USART3_ENABLE)}, + {NC, NP, 0} +}; +#endif + +#ifdef HAL_UART_MODULE_ENABLED +WEAK const PinMap PinMap_UART_RX[] = { + {PA_3, USART2, STM_PIN_DATA(STM_MODE_INPUT, GPIO_PULLUP, AFIO_NONE)}, + {PA_10, USART1, STM_PIN_DATA(STM_MODE_INPUT, GPIO_PULLUP, AFIO_NONE)}, + {PB_7, USART1, STM_PIN_DATA(STM_MODE_INPUT, GPIO_PULLUP, AFIO_USART1_ENABLE)}, + {PB_11, USART3, STM_PIN_DATA(STM_MODE_INPUT, GPIO_PULLUP, AFIO_NONE)}, +#if defined(STM32F103xE) || defined(STM32F103xG) + // {PC_11, USART3, STM_PIN_DATA(STM_MODE_INPUT, GPIO_PULLUP, AFIO_USART3_PARTIAL)}, + {PC_11, UART4, STM_PIN_DATA(STM_MODE_INPUT, GPIO_PULLUP, AFIO_NONE)}, +#else + {PC_11, USART3, STM_PIN_DATA(STM_MODE_INPUT, GPIO_PULLUP, AFIO_USART3_PARTIAL)}, +#endif +#if defined(STM32F103xE) || defined(STM32F103xG) + {PD_2, UART5, STM_PIN_DATA(STM_MODE_INPUT, GPIO_PULLUP, AFIO_NONE)}, +#endif + {PD_6, USART2, STM_PIN_DATA(STM_MODE_INPUT, GPIO_PULLUP, AFIO_USART2_ENABLE)}, + {PD_9, USART3, STM_PIN_DATA(STM_MODE_INPUT, GPIO_PULLUP, AFIO_USART3_ENABLE)}, + {NC, NP, 0} +}; +#endif + +#ifdef HAL_UART_MODULE_ENABLED +WEAK const PinMap PinMap_UART_RTS[] = { + {PA_1, USART2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_NONE)}, + {PA_12, USART1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_NONE)}, + {PB_14, USART3, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_NONE)}, + // {PB_14, USART3, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_USART3_PARTIAL)}, + {PD_4, USART2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_USART2_ENABLE)}, + {PD_12, USART3, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_USART3_ENABLE)}, + {NC, NP, 0} +}; +#endif + +#ifdef HAL_UART_MODULE_ENABLED +WEAK const PinMap PinMap_UART_CTS[] = { + {PA_0, USART2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_NONE)}, + {PA_11, USART1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_NONE)}, + {PB_13, USART3, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_NONE)}, + // {PB_13, USART3, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_USART3_PARTIAL)}, + {PD_3, USART2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_USART2_ENABLE)}, + {PD_11, USART3, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_USART3_ENABLE)}, + {NC, NP, 0} +}; +#endif + +//*** SPI *** + +#ifdef HAL_SPI_MODULE_ENABLED +WEAK const PinMap PinMap_SPI_MOSI[] = { + {PA_7, SPI1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_NONE)}, +#if defined(STM32F103xE) || defined(STM32F103xG) + // {PB_5, SPI1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_SPI1_ENABLE)}, + {PB_5, SPI3, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_NONE)}, +#else + {PB_5, SPI1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_SPI1_ENABLE)}, +#endif + {PB_15, SPI2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_NONE)}, + {NC, NP, 0} +}; +#endif + +#ifdef HAL_SPI_MODULE_ENABLED +WEAK const PinMap PinMap_SPI_MISO[] = { + {PA_6, SPI1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_NONE)}, +#if defined(STM32F103xE) || defined(STM32F103xG) + // {PB_4, SPI1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_SPI1_ENABLE)}, + {PB_4, SPI3, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_NONE)}, +#else + {PB_4, SPI1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_SPI1_ENABLE)}, +#endif + {PB_14, SPI2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_NONE)}, + {NC, NP, 0} +}; +#endif + +#ifdef HAL_SPI_MODULE_ENABLED +WEAK const PinMap PinMap_SPI_SCLK[] = { + {PA_5, SPI1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_NONE)}, +#if defined(STM32F103xE) || defined(STM32F103xG) + // {PB_3, SPI1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_SPI1_ENABLE)}, + {PB_3, SPI3, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_NONE)}, +#else + {PB_3, SPI1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_SPI1_ENABLE)}, +#endif + {PB_13, SPI2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_NONE)}, + {NC, NP, 0} +}; +#endif + +#ifdef HAL_SPI_MODULE_ENABLED +WEAK const PinMap PinMap_SPI_SSEL[] = { + {PA_4, SPI1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_NONE)}, +#if defined(STM32F103xE) || defined(STM32F103xG) + // {PA_15, SPI1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_SPI1_ENABLE)}, + {PA_15, SPI3, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_NONE)}, +#else + {PA_15, SPI1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_SPI1_ENABLE)}, +#endif + {PB_12, SPI2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_NONE)}, + {NC, NP, 0} +}; +#endif + +//*** CAN *** + +#ifdef HAL_CAN_MODULE_ENABLED +WEAK const PinMap PinMap_CAN_RD[] = { + {PA_11, CAN1, STM_PIN_DATA(STM_MODE_INPUT, GPIO_NOPULL, AFIO_NONE)}, + {PB_8, CAN1, STM_PIN_DATA(STM_MODE_INPUT, GPIO_NOPULL, AFIO_CAN1_2)}, + {PD_0, CAN1, STM_PIN_DATA(STM_MODE_INPUT, GPIO_NOPULL, AFIO_CAN1_3)}, + {NC, NP, 0} +}; +#endif + +#ifdef HAL_CAN_MODULE_ENABLED +WEAK const PinMap PinMap_CAN_TD[] = { + {PA_12, CAN1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, AFIO_NONE)}, + {PB_9, CAN1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, AFIO_CAN1_2)}, + {PD_1, CAN1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, AFIO_CAN1_3)}, + {NC, NP, 0} +}; +#endif + +//*** No ETHERNET *** + +//*** No QUADSPI *** + +//*** USB *** + +#ifdef HAL_PCD_MODULE_ENABLED +WEAK const PinMap PinMap_USB[] = { + {PA_11, USB, STM_PIN_DATA(STM_MODE_INPUT, GPIO_NOPULL, AFIO_NONE)}, // USB_DM + {PA_12, USB, STM_PIN_DATA(STM_MODE_INPUT, GPIO_NOPULL, AFIO_NONE)}, // USB_DP + {NC, NP, 0} +}; +#endif + +//*** No USB_OTG_FS *** + +//*** No USB_OTG_HS *** + +//*** SD *** + +#if defined(STM32F103xE) || defined(STM32F103xG) +#ifdef HAL_SD_MODULE_ENABLED +WEAK const PinMap PinMap_SD[] = { + {PB_8, SDIO, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_NONE)}, // SDIO_D4 + {PB_9, SDIO, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_NONE)}, // SDIO_D5 + {PC_6, SDIO, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_NONE)}, // SDIO_D6 + {PC_7, SDIO, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_NONE)}, // SDIO_D7 + {PC_8, SDIO, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_NONE)}, // SDIO_D0 + {PC_9, SDIO, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_NONE)}, // SDIO_D1 + {PC_10, SDIO, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_NONE)}, // SDIO_D2 + {PC_11, SDIO, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_NONE)}, // SDIO_D3 + {PC_12, SDIO, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, AFIO_NONE)}, // SDIO_CK + {PD_2, SDIO, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, AFIO_NONE)}, // SDIO_CMD + {NC, NP, 0} +}; +#endif +#endif diff --git a/buildroot/share/PlatformIO/variants/MARLIN_F103Vx/PinNamesVar.h b/buildroot/share/PlatformIO/variants/MARLIN_F103Vx/PinNamesVar.h new file mode 100644 index 000000000..d9076b4df --- /dev/null +++ b/buildroot/share/PlatformIO/variants/MARLIN_F103Vx/PinNamesVar.h @@ -0,0 +1,30 @@ +/* SYS_WKUP */ +#ifdef PWR_WAKEUP_PIN1 + SYS_WKUP1 = PA_0, +#endif +#ifdef PWR_WAKEUP_PIN2 + SYS_WKUP2 = NC, +#endif +#ifdef PWR_WAKEUP_PIN3 + SYS_WKUP3 = NC, +#endif +#ifdef PWR_WAKEUP_PIN4 + SYS_WKUP4 = NC, +#endif +#ifdef PWR_WAKEUP_PIN5 + SYS_WKUP5 = NC, +#endif +#ifdef PWR_WAKEUP_PIN6 + SYS_WKUP6 = NC, +#endif +#ifdef PWR_WAKEUP_PIN7 + SYS_WKUP7 = NC, +#endif +#ifdef PWR_WAKEUP_PIN8 + SYS_WKUP8 = NC, +#endif +/* USB */ +#ifdef USBCON + USB_DM = PA_11, + USB_DP = PA_12, +#endif diff --git a/buildroot/share/PlatformIO/variants/MARLIN_F103Vx/ldscript.ld b/buildroot/share/PlatformIO/variants/MARLIN_F103Vx/ldscript.ld new file mode 100644 index 000000000..c9197c8b4 --- /dev/null +++ b/buildroot/share/PlatformIO/variants/MARLIN_F103Vx/ldscript.ld @@ -0,0 +1,200 @@ +/* +****************************************************************************** +** + +** File : LinkerScript.ld +** +** Author : Auto-generated by STM32CubeIDE +** +** Abstract : Linker script for STM32F103V(8/B/C/E/F/GTx Device from STM32F1 series +** 64/128/256/512/768/1024Kbytes FLASH +** 20/20/48/64/64/96/96Kbytes RAM +** +** Set heap size, stack size and stack location according +** to application requirements. +** +** Set memory bank area and size if external memory is used. +** +** Target : STMicroelectronics STM32 +** +** Distribution: The file is distributed as is without any warranty +** of any kind. +** +***************************************************************************** +** @attention +** +**

© COPYRIGHT(c) 2019 STMicroelectronics

+** +** Redistribution and use in source and binary forms, with or without modification, +** are permitted provided that the following conditions are met: +** 1. Redistributions of source code must retain the above copyright notice, +** this list of conditions and the following disclaimer. +** 2. Redistributions in binary form must reproduce the above copyright notice, +** this list of conditions and the following disclaimer in the documentation +** and/or other materials provided with the distribution. +** 3. Neither the name of STMicroelectronics nor the names of its contributors +** may be used to endorse or promote products derived from this software +** without specific prior written permission. +** +** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +** AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +** IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +** DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +** FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +** DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +** SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +** CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +** OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +** +***************************************************************************** +*/ + +/* Entry Point */ +ENTRY(Reset_Handler) + +/* Highest address of the user mode stack */ +_estack = 0x20000000 + LD_MAX_DATA_SIZE; /* end of "RAM" Ram type memory */ +_Min_Heap_Size = 0x200; /* required amount of heap */ +_Min_Stack_Size = 0x400; /* required amount of stack */ + +/* Memories definition */ +MEMORY +{ + RAM (xrw) : ORIGIN = 0x20000000, LENGTH = LD_MAX_DATA_SIZE + FLASH (rx) : ORIGIN = 0x8000000 + LD_FLASH_OFFSET, LENGTH = LD_MAX_SIZE - LD_FLASH_OFFSET +} + +/* Sections */ +SECTIONS +{ + /* The startup code into "FLASH" Rom type memory */ + .isr_vector : + { + . = ALIGN(4); + KEEP(*(.isr_vector)) /* Startup code */ + . = ALIGN(4); + } >FLASH + + /* The program code and other data into "FLASH" Rom type memory */ + .text : + { + . = ALIGN(4); + *(.text) /* .text sections (code) */ + *(.text*) /* .text* sections (code) */ + *(.glue_7) /* glue arm to thumb code */ + *(.glue_7t) /* glue thumb to arm code */ + *(.eh_frame) + + KEEP (*(.init)) + KEEP (*(.fini)) + + . = ALIGN(4); + _etext = .; /* define a global symbols at end of code */ + } >FLASH + + /* Constant data into "FLASH" Rom type memory */ + .rodata : + { + . = ALIGN(4); + *(.rodata) /* .rodata sections (constants, strings, etc.) */ + *(.rodata*) /* .rodata* sections (constants, strings, etc.) */ + . = ALIGN(4); + } >FLASH + + .ARM.extab : { + . = ALIGN(4); + *(.ARM.extab* .gnu.linkonce.armextab.*) + . = ALIGN(4); + } >FLASH + .ARM : { + . = ALIGN(4); + __exidx_start = .; + *(.ARM.exidx*) + __exidx_end = .; + . = ALIGN(4); + } >FLASH + + .preinit_array : + { + . = ALIGN(4); + PROVIDE_HIDDEN (__preinit_array_start = .); + KEEP (*(.preinit_array*)) + PROVIDE_HIDDEN (__preinit_array_end = .); + . = ALIGN(4); + } >FLASH + .init_array : + { + . = ALIGN(4); + PROVIDE_HIDDEN (__init_array_start = .); + KEEP (*(SORT(.init_array.*))) + KEEP (*(.init_array*)) + PROVIDE_HIDDEN (__init_array_end = .); + . = ALIGN(4); + } >FLASH + .fini_array : + { + . = ALIGN(4); + PROVIDE_HIDDEN (__fini_array_start = .); + KEEP (*(SORT(.fini_array.*))) + KEEP (*(.fini_array*)) + PROVIDE_HIDDEN (__fini_array_end = .); + . = ALIGN(4); + } >FLASH + + /* Used by the startup to initialize data */ + _sidata = LOADADDR(.data); + + /* Initialized data sections into "RAM" Ram type memory */ + .data : + { + . = ALIGN(4); + _sdata = .; /* create a global symbol at data start */ + *(.data) /* .data sections */ + *(.data*) /* .data* sections */ + + . = ALIGN(4); + _edata = .; /* define a global symbol at data end */ + } >RAM AT> FLASH + + + /* Uninitialized data section into "RAM" Ram type memory */ + . = ALIGN(4); + .bss : + { + /* This is used by the startup in order to initialize the .bss secion */ + _sbss = .; /* define a global symbol at bss start */ + __bss_start__ = _sbss; + *(.bss) + *(.bss*) + *(COMMON) + + . = ALIGN(4); + _ebss = .; /* define a global symbol at bss end */ + __bss_end__ = _ebss; + } >RAM + + /* User_heap_stack section, used to check that there is enough "RAM" Ram type memory left */ + ._user_heap_stack : + { + . = ALIGN(8); + PROVIDE ( end = . ); + PROVIDE ( _end = . ); + . = . + _Min_Heap_Size; + . = . + _Min_Stack_Size; + . = ALIGN(8); + } >RAM + + + + /* Remove information from the compiler libraries */ + /DISCARD/ : + { + libc.a ( * ) + libm.a ( * ) + libgcc.a ( * ) + } + + .ARM.attributes 0 : { *(.ARM.attributes) } +} + diff --git a/buildroot/share/PlatformIO/variants/MARLIN_F103Vx/variant.cpp b/buildroot/share/PlatformIO/variants/MARLIN_F103Vx/variant.cpp new file mode 100644 index 000000000..25b4b5114 --- /dev/null +++ b/buildroot/share/PlatformIO/variants/MARLIN_F103Vx/variant.cpp @@ -0,0 +1,235 @@ +/* + ******************************************************************************* + * Copyright (c) 2019, STMicroelectronics + * All rights reserved. + * + * This software component is licensed by ST under BSD 3-Clause license, + * the "License"; You may not use this file except in compliance with the + * License. You may obtain a copy of the License at: + * opensource.org/licenses/BSD-3-Clause + * + ******************************************************************************* + */ + +#include "pins_arduino.h" + +#ifdef __cplusplus +extern "C" { +#endif + +// Digital PinName array +const PinName digitalPin[] = { + PA_0, //D0 + PA_1, //D1 + PA_2, //D2 + PA_3, //D3 + PA_4, //D4 + PA_5, //D5 + PA_6, //D6 + PA_7, //D7 + PA_8, //D8 + PA_9, //D9 + PA_10, //D10 + PA_11, //D11 + PA_12, //D12 + PA_13, //D13 + PA_14, //D14 + PA_15, //D15 + + PB_0, //D16 + PB_1, //D17 + PB_2, //D18 + PB_3, //D19 + PB_4, //D20 + PB_5, //D21 + PB_6, //D22 + PB_7, //D23 + PB_8, //D24 + PB_9, //D25 + PB_10, //D26 + PB_11, //D27 + PB_12, //D28 + PB_13, //D29 + PB_14, //D30 + PB_15, //D31 + + PC_0, //D32 + PC_1, //D33 + PC_2, //D34 + PC_3, //D35 + PC_4, //D36 + PC_5, //D37 + PC_6, //D38 + PC_7, //D39 + PC_8, //D40 + PC_9, //D41 + PC_10, //D42 + PC_11, //D43 + PC_12, //D44 + PC_13, //D45 + PC_14, //D46 + PC_15, //D47 + + PD_0, //D48 + PD_1, //D49 + PD_2, //D50 + PD_3, //D51 + PD_4, //D52 + PD_5, //D53 + PD_6, //D54 + PD_7, //D55 + PD_8, //D56 + PD_9, //D57 + PD_10, //D58 + PD_11, //D59 + PD_12, //D60 + PD_13, //D61 + PD_14, //D62 + PD_15, //D63 + + PE_0, //D64 + PE_1, //D65 + PE_2, //D66 + PE_3, //D67 + PE_4, //D68 + PE_5, //D69 + PE_6, //D70 + PE_7, //D71 + PE_8, //D72 + PE_9, //D73 + PE_10, //D74 + PE_11, //D75 + PE_12, //D76 + PE_13, //D77 + PE_14, //D78 + PE_15, //D79 +}; + +// Analog (Ax) pin number array +const uint32_t analogInputPin[] = { + 0, // A0, PA0 + 1, // A1, PA1 + 2, // A2, PA2 + 3, // A3, PA3 + 4, // A4, PA4 + 5, // A5, PA5 + 6, // A6, PA6 + 7, // A7, PA7 + 16, // A8, PB0 + 17, // A9, PB1 + 32, // A10, PC0 + 33, // A11, PC1 + 34, // A12, PC2 + 35, // A13, PC3 + 36, // A14, PC4 + 37, // A15, PC5 +}; + +/******************************************************************************/ +/* PLL (clocked by HSE) used as System clock source */ +/******************************************************************************/ +static bool SetSysClock_PLL_HSE(bool bypass) +{ + RCC_OscInitTypeDef RCC_OscInitStruct = {}; + RCC_ClkInitTypeDef RCC_ClkInitStruct = {}; + RCC_PeriphCLKInitTypeDef PeriphClkInit = {}; + bool ret = false; + + /* Initializes the CPU, AHB and APB busses clocks */ + RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSE; + if (bypass == false) { + RCC_OscInitStruct.HSEState = RCC_HSE_ON; + } else { + RCC_OscInitStruct.HSEState = RCC_HSE_BYPASS; + } + RCC_OscInitStruct.HSEPredivValue = RCC_HSE_PREDIV_DIV1; + RCC_OscInitStruct.HSIState = RCC_HSI_ON; + RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON; + RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE; + RCC_OscInitStruct.PLL.PLLMUL = RCC_PLL_MUL9; + if (HAL_RCC_OscConfig(&RCC_OscInitStruct) == HAL_OK) { + /* Initializes the CPU, AHB and APB busses clocks */ + RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK | RCC_CLOCKTYPE_SYSCLK + | RCC_CLOCKTYPE_PCLK1 | RCC_CLOCKTYPE_PCLK2; + RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK; + RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1; + RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV2; + RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1; + + if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_2) == HAL_OK) { + PeriphClkInit.PeriphClockSelection = RCC_PERIPHCLK_ADC | RCC_PERIPHCLK_USB; + PeriphClkInit.AdcClockSelection = RCC_ADCPCLK2_DIV6; + PeriphClkInit.UsbClockSelection = RCC_USBCLKSOURCE_PLL_DIV1_5; + if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInit) == HAL_OK) { + ret = true; + } + } + } + return ret; +} + +/******************************************************************************/ +/* PLL (clocked by HSI) used as System clock source */ +/******************************************************************************/ +bool SetSysClock_PLL_HSI(void) +{ + RCC_OscInitTypeDef RCC_OscInitStruct = {}; + RCC_ClkInitTypeDef RCC_ClkInitStruct = {}; + RCC_PeriphCLKInitTypeDef PeriphClkInit = {}; + bool ret = false; + + /* Initializes the CPU, AHB and APB busses clocks */ + RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSI | RCC_OSCILLATORTYPE_HSE; + RCC_OscInitStruct.HSIState = RCC_HSI_ON; + RCC_OscInitStruct.HSEState = RCC_HSE_OFF; + RCC_OscInitStruct.HSICalibrationValue = RCC_HSICALIBRATION_DEFAULT; + RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON; + RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSI_DIV2; + RCC_OscInitStruct.PLL.PLLMUL = RCC_PLL_MUL12; + if (HAL_RCC_OscConfig(&RCC_OscInitStruct) == HAL_OK) { + /* Initializes the CPU, AHB and APB busses clocks */ + RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK | RCC_CLOCKTYPE_SYSCLK + | RCC_CLOCKTYPE_PCLK1 | RCC_CLOCKTYPE_PCLK2; + RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK; + RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1; + RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV2; + RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1; + + if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_1) == HAL_OK) { + PeriphClkInit.PeriphClockSelection = RCC_PERIPHCLK_ADC | RCC_PERIPHCLK_USB; + PeriphClkInit.AdcClockSelection = RCC_ADCPCLK2_DIV4; + PeriphClkInit.UsbClockSelection = RCC_USBCLKSOURCE_PLL; + if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInit) == HAL_OK) { + ret = true; + } + } + } + return ret; +} + +WEAK void SystemClock_Config(void) +{ + /* + * If HSE_VALUE is not 8MHz and you want use it, then: + * - Redefine HSE_VALUE to the correct HSE_VALUE + * - Redefine SystemClock_Config() with the correct settings + */ +#if HSE_VALUE == 8000000U + /* 1- Try to start with HSE and external 8MHz xtal */ + if (SetSysClock_PLL_HSE(false) == false) { + /* 2- If fail try to start with HSE and external clock */ + if (SetSysClock_PLL_HSE(true) == false) { +#endif + /* 3- If fail start with HSI clock */ + if (SetSysClock_PLL_HSI() == false) { + Error_Handler(); + } +#if HSE_VALUE == 8000000U + } + } +#endif +} + +#ifdef __cplusplus +} +#endif diff --git a/buildroot/share/PlatformIO/variants/MARLIN_F103Vx/variant.h b/buildroot/share/PlatformIO/variants/MARLIN_F103Vx/variant.h new file mode 100644 index 000000000..b622b3937 --- /dev/null +++ b/buildroot/share/PlatformIO/variants/MARLIN_F103Vx/variant.h @@ -0,0 +1,181 @@ +/* + ******************************************************************************* + * Copyright (c) 2019, STMicroelectronics + * All rights reserved. + * + * This software component is licensed by ST under BSD 3-Clause license, + * the "License"; You may not use this file except in compliance with the + * License. You may obtain a copy of the License at: + * opensource.org/licenses/BSD-3-Clause + * + ******************************************************************************* + */ + +#ifndef _VARIANT_ARDUINO_STM32_ +#define _VARIANT_ARDUINO_STM32_ + +#ifdef __cplusplus +extern "C" { +#endif // __cplusplus + +/*---------------------------------------------------------------------------- + * Pins + *----------------------------------------------------------------------------*/ +#define PA0 0 +#define PA1 1 +#define PA2 2 +#define PA3 3 +#define PA4 4 +#define PA5 5 +#define PA6 6 +#define PA7 7 +#define PA8 8 +#define PA9 9 +#define PA10 10 +#define PA11 11 +#define PA12 12 +#define PA13 13 +#define PA14 14 +#define PA15 15 + +#define PB0 16 +#define PB1 17 +#define PB2 18 +#define PB3 19 +#define PB4 20 +#define PB5 21 +#define PB6 22 +#define PB7 23 +#define PB8 24 +#define PB9 25 +#define PB10 26 +#define PB11 27 +#define PB12 28 +#define PB13 29 +#define PB14 30 +#define PB15 31 + +#define PC0 32 +#define PC1 33 +#define PC2 34 +#define PC3 35 +#define PC4 36 +#define PC5 37 +#define PC6 38 +#define PC7 39 +#define PC8 40 +#define PC9 41 +#define PC10 42 +#define PC11 43 +#define PC12 44 +#define PC13 45 +#define PC14 46 +#define PC15 47 + +#define PD0 48 +#define PD1 49 +#define PD2 50 +#define PD3 51 +#define PD4 52 +#define PD5 53 +#define PD6 54 +#define PD7 55 +#define PD8 56 +#define PD9 57 +#define PD10 58 +#define PD11 59 +#define PD12 60 +#define PD13 61 +#define PD14 62 +#define PD15 63 + +#define PE0 64 +#define PE1 65 +#define PE2 66 +#define PE3 67 +#define PE4 68 +#define PE5 69 +#define PE6 70 +#define PE7 71 +#define PE8 72 +#define PE9 73 +#define PE10 74 +#define PE11 75 +#define PE12 76 +#define PE13 77 +#define PE14 78 +#define PE15 79 + +// This must be a literal +#define NUM_DIGITAL_PINS 80 +#define NUM_ANALOG_INPUTS 16 + +// On-board LED pin number +#ifndef LED_BUILTIN +#define LED_BUILTIN PB11 +#endif + +// On-board user button +#ifndef USER_BTN +#define USER_BTN PC13 +#endif + +// SPI Definitions +#define PIN_SPI_SS PC4 +#define PIN_SPI_MOSI PA7 +#define PIN_SPI_MISO PA6 +#define PIN_SPI_SCK PA5 + +// I2C Definitions +#define PIN_WIRE_SDA PB7 +#define PIN_WIRE_SCL PB6 + +// Timer Definitions (optional) +// Use TIM6/TIM7 when possible as servo and tone don't need GPIO output pin +#define TIMER_TONE TIM3 +#define TIMER_SERVO TIM2 + +// UART Definitions +// Define here Serial instance number to map on Serial generic name +#define SERIAL_UART_INSTANCE 1 + +// Extra HAL modules +#if defined(STM32F103xE) || defined(STM32F103xG) +#define HAL_DAC_MODULE_ENABLED +#define HAL_SD_MODULE_ENABLED +#define HAL_SRAM_MODULE_ENABLED +#endif + +// Default pin used for 'Serial' instance (ex: ST-Link) +// Mandatory for Firmata +#define PIN_SERIAL_RX PA10 +#define PIN_SERIAL_TX PA9 + +#ifdef __cplusplus +} // extern "C" +#endif +/*---------------------------------------------------------------------------- + * Arduino objects - C++ only + *----------------------------------------------------------------------------*/ + +#ifdef __cplusplus + // These serial port names are intended to allow libraries and architecture-neutral + // sketches to automatically default to the correct port name for a particular type + // of use. For example, a GPS module would normally connect to SERIAL_PORT_HARDWARE_OPEN, + // the first hardware serial port whose RX/TX pins are not dedicated to another use. + // + // SERIAL_PORT_MONITOR Port which normally prints to the Arduino Serial Monitor + // + // SERIAL_PORT_USBVIRTUAL Port which is USB virtual serial + // + // SERIAL_PORT_LINUXBRIDGE Port which connects to a Linux system via Bridge library + // + // SERIAL_PORT_HARDWARE Hardware serial port, physical RX & TX pins. + // + // SERIAL_PORT_HARDWARE_OPEN Hardware serial ports which are open for use. Their RX & TX + // pins are NOT connected to anything by default. + #define SERIAL_PORT_MONITOR Serial + #define SERIAL_PORT_HARDWARE Serial1 +#endif + +#endif /* _VARIANT_ARDUINO_STM32_ */ diff --git a/buildroot/share/PlatformIO/variants/MARLIN_F103Zx/PeripheralPins.c b/buildroot/share/PlatformIO/variants/MARLIN_F103Zx/PeripheralPins.c new file mode 100644 index 000000000..5736e5206 --- /dev/null +++ b/buildroot/share/PlatformIO/variants/MARLIN_F103Zx/PeripheralPins.c @@ -0,0 +1,368 @@ +/* + ******************************************************************************* + * Copyright (c) 2019, STMicroelectronics + * All rights reserved. + * + * This software component is licensed by ST under BSD 3-Clause license, + * the "License"; You may not use this file except in compliance with the + * License. You may obtain a copy of the License at: + * opensource.org/licenses/BSD-3-Clause + * + ******************************************************************************* + * Automatically generated from STM32F103Z(C-D-E|F-G))Tx.xml + */ +#include "Arduino.h" +#include "PeripheralPins.h" + +/* ===== + * Note: Commented lines are alternative possibilities which are not used per default. + * If you change them, you will have to know what you do + * ===== + */ + +//*** ADC *** + +#ifdef HAL_ADC_MODULE_ENABLED +WEAK const PinMap PinMap_ADC[] = { + {PA_0, ADC1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 0, 0)}, // ADC1_IN0 + // {PA_0, ADC2, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 0, 0)}, // ADC2_IN0 + // {PA_0, ADC3, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 0, 0)}, // ADC3_IN0 + {PA_1, ADC1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 1, 0)}, // ADC1_IN1 + // {PA_1, ADC2, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 1, 0)}, // ADC2_IN1 + // {PA_1, ADC3, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 1, 0)}, // ADC3_IN1 + // {PA_2, ADC1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 2, 0)}, // ADC1_IN2 + {PA_2, ADC2, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 2, 0)}, // ADC2_IN2 + // {PA_2, ADC3, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 2, 0)}, // ADC3_IN2 + {PA_3, ADC1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 3, 0)}, // ADC1_IN3 + // {PA_3, ADC2, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 3, 0)}, // ADC2_IN3 + // {PA_3, ADC3, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 3, 0)}, // ADC3_IN3 + // {PA_4, ADC1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 4, 0)}, // ADC1_IN4 + {PA_4, ADC2, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 4, 0)}, // ADC2_IN4 + {PA_5, ADC1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 5, 0)}, // ADC1_IN5 + // {PA_5, ADC2, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 5, 0)}, // ADC2_IN5 + // {PA_6, ADC1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 6, 0)}, // ADC1_IN6 + {PA_6, ADC2, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 6, 0)}, // ADC2_IN6 + {PA_7, ADC1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 7, 0)}, // ADC1_IN7 + // {PA_7, ADC2, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 7, 0)}, // ADC2_IN7 + // {PB_0, ADC1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 8, 0)}, // ADC1_IN8 + {PB_0, ADC2, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 8, 0)}, // ADC2_IN8 + {PB_1, ADC1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 9, 0)}, // ADC1_IN9 + // {PB_1, ADC2, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 9, 0)}, // ADC2_IN9 + // {PC_0, ADC1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 10, 0)}, // ADC1_IN10 + {PC_0, ADC2, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 10, 0)}, // ADC2_IN10 + // {PC_0, ADC3, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 10, 0)}, // ADC3_IN10 + {PC_1, ADC1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 11, 0)}, // ADC1_IN11 + // {PC_1, ADC2, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 11, 0)}, // ADC2_IN11 + // {PC_1, ADC3, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 11, 0)}, // ADC3_IN11 + // {PC_2, ADC1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 12, 0)}, // ADC1_IN12 + {PC_2, ADC2, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 12, 0)}, // ADC2_IN12 + // {PC_2, ADC3, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 12, 0)}, // ADC3_IN12 + {PC_3, ADC1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 13, 0)}, // ADC1_IN13 + // {PC_3, ADC2, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 13, 0)}, // ADC2_IN13 + // {PC_3, ADC3, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 13, 0)}, // ADC3_IN13 + // {PC_4, ADC1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 14, 0)}, // ADC1_IN14 + {PC_4, ADC2, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 14, 0)}, // ADC2_IN14 + {PC_5, ADC1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 15, 0)}, // ADC1_IN15 + // {PC_5, ADC2, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 15, 0)}, // ADC2_IN15 + {PF_6, ADC3, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 4, 0)}, // ADC3_IN4 + {PF_7, ADC3, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 5, 0)}, // ADC3_IN5 + {PF_8, ADC3, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 6, 0)}, // ADC3_IN6 + {PF_9, ADC3, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 7, 0)}, // ADC3_IN7 + {PF_10, ADC3, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 8, 0)}, // ADC3_IN8 + {NC, NP, 0} +}; +#endif + +//*** DAC *** + +#ifdef HAL_DAC_MODULE_ENABLED +WEAK const PinMap PinMap_DAC[] = { + {PA_4, DAC1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 1, 0)}, // DAC_OUT1 + {PA_5, DAC1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 2, 0)}, // DAC_OUT2 + {NC, NP, 0} +}; +#endif + +//*** I2C *** + +#ifdef HAL_I2C_MODULE_ENABLED +WEAK const PinMap PinMap_I2C_SDA[] = { + {PB_7, I2C1, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_NOPULL, AFIO_NONE)}, + {PB_9, I2C1, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_NOPULL, AFIO_I2C1_ENABLE)}, + {PB_11, I2C2, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_NOPULL, AFIO_NONE)}, + {NC, NP, 0} +}; +#endif + +#ifdef HAL_I2C_MODULE_ENABLED +WEAK const PinMap PinMap_I2C_SCL[] = { + {PB_6, I2C1, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_NOPULL, AFIO_NONE)}, + {PB_8, I2C1, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_NOPULL, AFIO_I2C1_ENABLE)}, + {PB_10, I2C2, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_NOPULL, AFIO_NONE)}, + {NC, NP, 0} +}; +#endif + +//*** PWM *** + +#ifdef HAL_TIM_MODULE_ENABLED +WEAK const PinMap PinMap_PWM[] = { + {PA_0, TIM2, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_NONE, 1, 0)}, // TIM2_CH1 + // {PA_0, TIM2, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_TIM2_PARTIAL_2, 1, 0)}, // TIM2_CH1 + // {PA_0, TIM5, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_NONE, 1, 0)}, // TIM5_CH1 + // {PA_1, TIM2, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_NONE, 2, 0)}, // TIM2_CH2 + // {PA_1, TIM2, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_TIM2_PARTIAL_2, 2, 0)}, // TIM2_CH2 + {PA_1, TIM5, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_NONE, 2, 0)}, // TIM5_CH2 + {PA_2, TIM2, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_NONE, 3, 0)}, // TIM2_CH3 + // {PA_2, TIM2, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_TIM2_PARTIAL_1, 3, 0)}, // TIM2_CH3 + // {PA_2, TIM5, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_NONE, 3, 0)}, // TIM5_CH3 +#ifdef STM32F103xG + // {PA_2, TIM9, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_NONE, 1, 0)}, // TIM9_CH1 +#endif + // {PA_3, TIM2, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_NONE, 4, 0)}, // TIM2_CH4 + // {PA_3, TIM2, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_TIM2_PARTIAL_1, 4, 0)}, // TIM2_CH4 + {PA_3, TIM5, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_NONE, 4, 0)}, // TIM5_CH4 +#ifdef STM32F103xG + // {PA_3, TIM9, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_NONE, 2, 0)}, // TIM9_CH2 +#endif + {PA_6, TIM3, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_NONE, 1, 0)}, // TIM3_CH1 +#ifdef STM32F103xG + // {PA_6, TIM13, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_NONE, 1, 0)}, // TIM13_CH1 +#endif + // {PA_7, TIM1, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_TIM1_PARTIAL, 1, 1)}, // TIM1_CH1N + // {PA_7, TIM3, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_NONE, 2, 0)}, // TIM3_CH2 + {PA_7, TIM8, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_NONE, 1, 1)}, // TIM8_CH1N +#ifdef STM32F103xG + // {PA_7, TIM14, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_NONE, 1, 0)}, // TIM14_CH1 +#endif + {PA_8, TIM1, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_NONE, 1, 0)}, // TIM1_CH1 + // {PA_8, TIM1, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_TIM1_PARTIAL, 1, 0)}, // TIM1_CH1 + {PA_9, TIM1, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_NONE, 2, 0)}, // TIM1_CH2 + // {PA_9, TIM1, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_TIM1_PARTIAL, 2, 0)}, // TIM1_CH2 + {PA_10, TIM1, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_NONE, 3, 0)}, // TIM1_CH3 + // {PA_10, TIM1, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_TIM1_PARTIAL, 3, 0)}, // TIM1_CH3 + {PA_11, TIM1, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_NONE, 4, 0)}, // TIM1_CH4 + // {PA_11, TIM1, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_TIM1_PARTIAL, 4, 0)}, // TIM1_CH4 + {PA_15, TIM2, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_TIM2_PARTIAL_1, 1, 0)}, // TIM2_CH1 + // {PA_15, TIM2, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_TIM2_ENABLE, 1, 0)}, // TIM2_CH1 + // {PB_0, TIM1, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_TIM1_PARTIAL, 2, 1)}, // TIM1_CH2N + {PB_0, TIM3, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_NONE, 3, 0)}, // TIM3_CH3 + // {PB_0, TIM3, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_TIM3_PARTIAL, 3, 0)}, // TIM3_CH3 + {PB_0, TIM8, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_NONE, 2, 1)}, // TIM8_CH2N + {PB_1, TIM1, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_TIM1_PARTIAL, 3, 1)}, // TIM1_CH3N + // {PB_1, TIM3, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_NONE, 4, 0)}, // TIM3_CH4 + // {PB_1, TIM3, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_TIM3_PARTIAL, 4, 0)}, // TIM3_CH4 + // {PB_1, TIM8, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_NONE, 3, 1)}, // TIM8_CH3N + {PB_3, TIM2, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_TIM2_PARTIAL_1, 2, 0)}, // TIM2_CH2 + // {PB_3, TIM2, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_TIM2_ENABLE, 2, 0)}, // TIM2_CH2 + {PB_4, TIM3, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_TIM3_PARTIAL, 1, 0)}, // TIM3_CH1 + {PB_5, TIM3, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_TIM3_PARTIAL, 2, 0)}, // TIM3_CH2 + {PB_6, TIM4, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_NONE, 1, 0)}, // TIM4_CH1 + {PB_7, TIM4, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_NONE, 2, 0)}, // TIM4_CH2 + {PB_8, TIM4, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_NONE, 3, 0)}, // TIM4_CH3 +#ifdef STM32F103xG + // {PB_8, TIM10, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_NONE, 1, 0)}, // TIM10_CH1 +#endif + {PB_9, TIM4, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_NONE, 4, 0)}, // TIM4_CH4 +#ifdef STM32F103xG + // {PB_9, TIM11, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_NONE, 1, 0)}, // TIM11_CH1 +#endif + // {PB_10, TIM2, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_TIM2_PARTIAL_2, 3, 0)}, // TIM2_CH3 + {PB_10, TIM2, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_TIM2_ENABLE, 3, 0)}, // TIM2_CH3 + // {PB_11, TIM2, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_TIM2_PARTIAL_2, 4, 0)}, // TIM2_CH4 + {PB_11, TIM2, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_TIM2_ENABLE, 4, 0)}, // TIM2_CH4 + {PB_13, TIM1, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_NONE, 1, 1)}, // TIM1_CH1N + {PB_14, TIM1, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_NONE, 2, 1)}, // TIM1_CH2N +#ifdef STM32F103xG + // {PB_14, TIM12, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_NONE, 1, 0)}, // TIM12_CH1 +#endif + {PB_15, TIM1, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_NONE, 3, 1)}, // TIM1_CH3N +#ifdef STM32F103xG + // {PB_15, TIM12, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_NONE, 2, 0)}, // TIM12_CH2 +#endif + // {PC_6, TIM3, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_TIM3_ENABLE, 1, 0)}, // TIM3_CH1 + {PC_6, TIM8, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_NONE, 1, 0)}, // TIM8_CH1 + // {PC_7, TIM3, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_TIM3_ENABLE, 2, 0)}, // TIM3_CH2 + {PC_7, TIM8, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_NONE, 2, 0)}, // TIM8_CH2 + {PC_8, TIM3, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_TIM3_ENABLE, 3, 0)}, // TIM3_CH3 + // {PC_8, TIM8, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_NONE, 3, 0)}, // TIM8_CH3 + {PC_9, TIM3, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_TIM3_ENABLE, 4, 0)}, // TIM3_CH4 + // {PC_9, TIM8, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_NONE, 4, 0)}, // TIM8_CH4 + {PD_12, TIM4, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_TIM4_ENABLE, 1, 0)}, // TIM4_CH1 + {PD_13, TIM4, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_TIM4_ENABLE, 2, 0)}, // TIM4_CH2 + {PD_14, TIM4, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_TIM4_ENABLE, 3, 0)}, // TIM4_CH3 + {PD_15, TIM4, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_TIM4_ENABLE, 4, 0)}, // TIM4_CH4 +#ifdef STM32F103xG + {PE_5, TIM9, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_TIM9_ENABLE, 1, 0)}, // TIM9_CH1 + {PE_6, TIM9, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_TIM9_ENABLE, 2, 0)}, // TIM9_CH2 +#endif + {PE_8, TIM1, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_TIM1_ENABLE, 1, 1)}, // TIM1_CH1N + {PE_9, TIM1, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_TIM1_ENABLE, 1, 0)}, // TIM1_CH1 + {PE_10, TIM1, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_TIM1_ENABLE, 2, 1)}, // TIM1_CH2N + {PE_11, TIM1, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_TIM1_ENABLE, 2, 0)}, // TIM1_CH2 + {PE_12, TIM1, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_TIM1_ENABLE, 3, 1)}, // TIM1_CH3N + {PE_13, TIM1, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_TIM1_ENABLE, 3, 0)}, // TIM1_CH3 + {PE_14, TIM1, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_TIM1_ENABLE, 4, 0)}, // TIM1_CH4 +#ifdef STM32F103xG + {PF_6, TIM10, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_TIM10_ENABLE, 1, 0)}, // TIM10_CH1 + {PF_7, TIM11, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_TIM11_ENABLE, 1, 0)}, // TIM11_CH1 + {PF_8, TIM13, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_TIM13_ENABLE, 1, 0)}, // TIM13_CH1 + {PF_9, TIM14, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_TIM14_ENABLE, 1, 0)}, // TIM14_CH1 +#endif + {NC, NP, 0} +}; +#endif + +//*** SERIAL *** + +#ifdef HAL_UART_MODULE_ENABLED +WEAK const PinMap PinMap_UART_TX[] = { + {PA_2, USART2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_NONE)}, + {PA_9, USART1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_NONE)}, + {PB_6, USART1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_USART1_ENABLE)}, + {PB_10, USART3, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_NONE)}, + {PC_10, UART4, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_NONE)}, + // {PC_10, USART3, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_USART3_PARTIAL)}, + {PC_12, UART5, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_NONE)}, + {PD_5, USART2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_USART2_ENABLE)}, + {PD_8, USART3, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_USART3_ENABLE)}, + {NC, NP, 0} +}; +#endif + +#ifdef HAL_UART_MODULE_ENABLED +WEAK const PinMap PinMap_UART_RX[] = { + {PA_3, USART2, STM_PIN_DATA(STM_MODE_INPUT, GPIO_PULLUP, AFIO_NONE)}, + {PA_10, USART1, STM_PIN_DATA(STM_MODE_INPUT, GPIO_PULLUP, AFIO_NONE)}, + {PB_7, USART1, STM_PIN_DATA(STM_MODE_INPUT, GPIO_PULLUP, AFIO_USART1_ENABLE)}, + {PB_11, USART3, STM_PIN_DATA(STM_MODE_INPUT, GPIO_PULLUP, AFIO_NONE)}, + {PC_11, UART4, STM_PIN_DATA(STM_MODE_INPUT, GPIO_PULLUP, AFIO_NONE)}, + // {PC_11, USART3, STM_PIN_DATA(STM_MODE_INPUT, GPIO_PULLUP, AFIO_USART3_PARTIAL)}, + {PD_2, UART5, STM_PIN_DATA(STM_MODE_INPUT, GPIO_PULLUP, AFIO_NONE)}, + {PD_6, USART2, STM_PIN_DATA(STM_MODE_INPUT, GPIO_PULLUP, AFIO_USART2_ENABLE)}, + {PD_9, USART3, STM_PIN_DATA(STM_MODE_INPUT, GPIO_PULLUP, AFIO_USART3_ENABLE)}, + {NC, NP, 0} +}; +#endif + +#ifdef HAL_UART_MODULE_ENABLED +WEAK const PinMap PinMap_UART_RTS[] = { + {PA_1, USART2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_NONE)}, + {PA_12, USART1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_NONE)}, + {PB_14, USART3, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_NONE)}, + // {PB_14, USART3, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_USART3_PARTIAL)}, + {PD_4, USART2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_USART2_ENABLE)}, + {PD_12, USART3, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_USART3_ENABLE)}, + {NC, NP, 0} +}; +#endif + +#ifdef HAL_UART_MODULE_ENABLED +WEAK const PinMap PinMap_UART_CTS[] = { + {PA_0, USART2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_NONE)}, + {PA_11, USART1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_NONE)}, + {PB_13, USART3, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_NONE)}, + // {PB_13, USART3, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_USART3_PARTIAL)}, + {PD_3, USART2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_USART2_ENABLE)}, + {PD_11, USART3, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_USART3_ENABLE)}, + {NC, NP, 0} +}; +#endif + +//*** SPI *** + +#ifdef HAL_SPI_MODULE_ENABLED +WEAK const PinMap PinMap_SPI_MOSI[] = { + {PA_7, SPI1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_NONE)}, + // {PB_5, SPI1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_SPI1_ENABLE)}, + {PB_5, SPI3, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_NONE)}, + {PB_15, SPI2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_NONE)}, + {NC, NP, 0} +}; +#endif + +#ifdef HAL_SPI_MODULE_ENABLED +WEAK const PinMap PinMap_SPI_MISO[] = { + {PA_6, SPI1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_NONE)}, + // {PB_4, SPI1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_SPI1_ENABLE)}, + {PB_4, SPI3, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_NONE)}, + {PB_14, SPI2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_NONE)}, + {NC, NP, 0} +}; +#endif + +#ifdef HAL_SPI_MODULE_ENABLED +WEAK const PinMap PinMap_SPI_SCLK[] = { + {PA_5, SPI1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_NONE)}, + // {PB_3, SPI1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_SPI1_ENABLE)}, + {PB_3, SPI3, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_NONE)}, + {PB_13, SPI2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_NONE)}, + {NC, NP, 0} +}; +#endif + +#ifdef HAL_SPI_MODULE_ENABLED +WEAK const PinMap PinMap_SPI_SSEL[] = { + {PA_4, SPI1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_NONE)}, + // {PA_15, SPI1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_SPI1_ENABLE)}, + {PA_15, SPI3, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_NONE)}, + {PB_12, SPI2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_NONE)}, + {NC, NP, 0} +}; +#endif + +//*** CAN *** + +#ifdef HAL_CAN_MODULE_ENABLED +WEAK const PinMap PinMap_CAN_RD[] = { + {PA_11, CAN1, STM_PIN_DATA(STM_MODE_INPUT, GPIO_NOPULL, AFIO_NONE)}, + {PB_8, CAN1, STM_PIN_DATA(STM_MODE_INPUT, GPIO_NOPULL, AFIO_CAN1_2)}, + {PD_0, CAN1, STM_PIN_DATA(STM_MODE_INPUT, GPIO_NOPULL, AFIO_CAN1_3)}, + {NC, NP, 0} +}; +#endif + +#ifdef HAL_CAN_MODULE_ENABLED +WEAK const PinMap PinMap_CAN_TD[] = { + {PA_12, CAN1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, AFIO_NONE)}, + {PB_9, CAN1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, AFIO_CAN1_2)}, + {PD_1, CAN1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, AFIO_CAN1_3)}, + {NC, NP, 0} +}; +#endif + +//*** No ETHERNET *** + +//*** No QUADSPI *** + +//*** USB *** + +#ifdef HAL_PCD_MODULE_ENABLED +WEAK const PinMap PinMap_USB[] = { + {PA_11, USB, STM_PIN_DATA(STM_MODE_INPUT, GPIO_NOPULL, AFIO_NONE)}, // USB_DM + {PA_12, USB, STM_PIN_DATA(STM_MODE_INPUT, GPIO_NOPULL, AFIO_NONE)}, // USB_DP + {NC, NP, 0} +}; +#endif + +//*** No USB_OTG_FS *** + +//*** No USB_OTG_HS *** + +//*** SD *** + +#ifdef HAL_SD_MODULE_ENABLED +WEAK const PinMap PinMap_SD[] = { + // {PB_8, SDIO, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_NONE)}, // SDIO_D4 + // {PB_9, SDIO, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_NONE)}, // SDIO_D5 + // {PC_6, SDIO, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_NONE)}, // SDIO_D6 + // {PC_7, SDIO, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_NONE)}, // SDIO_D7 + {PC_8, SDIO, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_NONE)}, // SDIO_D0 + {PC_9, SDIO, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_NONE)}, // SDIO_D1 + {PC_10, SDIO, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_NONE)}, // SDIO_D2 + {PC_11, SDIO, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_NONE)}, // SDIO_D3 + {PC_12, SDIO, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, AFIO_NONE)}, // SDIO_CK + {PD_2, SDIO, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, AFIO_NONE)}, // SDIO_CMD + {NC, NP, 0} +}; +#endif diff --git a/buildroot/share/PlatformIO/variants/MARLIN_F103Zx/PinNamesVar.h b/buildroot/share/PlatformIO/variants/MARLIN_F103Zx/PinNamesVar.h new file mode 100644 index 000000000..d9076b4df --- /dev/null +++ b/buildroot/share/PlatformIO/variants/MARLIN_F103Zx/PinNamesVar.h @@ -0,0 +1,30 @@ +/* SYS_WKUP */ +#ifdef PWR_WAKEUP_PIN1 + SYS_WKUP1 = PA_0, +#endif +#ifdef PWR_WAKEUP_PIN2 + SYS_WKUP2 = NC, +#endif +#ifdef PWR_WAKEUP_PIN3 + SYS_WKUP3 = NC, +#endif +#ifdef PWR_WAKEUP_PIN4 + SYS_WKUP4 = NC, +#endif +#ifdef PWR_WAKEUP_PIN5 + SYS_WKUP5 = NC, +#endif +#ifdef PWR_WAKEUP_PIN6 + SYS_WKUP6 = NC, +#endif +#ifdef PWR_WAKEUP_PIN7 + SYS_WKUP7 = NC, +#endif +#ifdef PWR_WAKEUP_PIN8 + SYS_WKUP8 = NC, +#endif +/* USB */ +#ifdef USBCON + USB_DM = PA_11, + USB_DP = PA_12, +#endif diff --git a/buildroot/share/PlatformIO/variants/MARLIN_F103Zx/hal_conf_custom.h b/buildroot/share/PlatformIO/variants/MARLIN_F103Zx/hal_conf_custom.h new file mode 100644 index 000000000..014943f31 --- /dev/null +++ b/buildroot/share/PlatformIO/variants/MARLIN_F103Zx/hal_conf_custom.h @@ -0,0 +1,412 @@ +/** + ****************************************************************************** + * @file stm32f1xx_hal_conf_default.h + * @brief HAL default configuration file. + ****************************************************************************** + * @attention + * + *

© Copyright (c) 2017 STMicroelectronics. + * All rights reserved.

+ * + * This software component is licensed by ST under BSD 3-Clause license, + * the "License"; You may not use this file except in compliance with the + * License. You may obtain a copy of the License at: + * opensource.org/licenses/BSD-3-Clause + * + ****************************************************************************** + */ + +/* Define to prevent recursive inclusion -------------------------------------*/ +#ifndef __STM32F1xx_HAL_CONF_DEFAULT_H +#define __STM32F1xx_HAL_CONF_DEFAULT_H + +#ifdef __cplusplus +extern "C" { +#endif + +/* Exported types ------------------------------------------------------------*/ +/* Exported constants --------------------------------------------------------*/ + +/* ########################## Module Selection ############################## */ +/** + * @brief Include the default list of modules to be used in the HAL driver + * and manage module deactivation + */ +#include "stm32yyxx_hal_conf.h" +#if 0 +/** + * @brief This is the list of modules to be used in the HAL driver + */ +#define HAL_MODULE_ENABLED +#define HAL_ADC_MODULE_ENABLED +#define HAL_CAN_MODULE_ENABLED +/*#define HAL_CAN_LEGACY_MODULE_ENABLED*/ +#define HAL_CEC_MODULE_ENABLED +#define HAL_CORTEX_MODULE_ENABLED +#define HAL_CRC_MODULE_ENABLED +#define HAL_DAC_MODULE_ENABLED +#define HAL_DMA_MODULE_ENABLED +#define HAL_ETH_MODULE_ENABLED +#define HAL_EXTI_MODULE_ENABLED +#define HAL_FLASH_MODULE_ENABLED +#define HAL_GPIO_MODULE_ENABLED +#define HAL_HCD_MODULE_ENABLED +#define HAL_I2C_MODULE_ENABLED +#define HAL_I2S_MODULE_ENABLED +#define HAL_IRDA_MODULE_ENABLED +#define HAL_IWDG_MODULE_ENABLED +#define HAL_NAND_MODULE_ENABLED +#define HAL_NOR_MODULE_ENABLED +#define HAL_PCCARD_MODULE_ENABLED +#define HAL_PCD_MODULE_ENABLED +#define HAL_PWR_MODULE_ENABLED +#define HAL_RCC_MODULE_ENABLED +#define HAL_RTC_MODULE_ENABLED +#define HAL_SD_MODULE_ENABLED +#define HAL_SMARTCARD_MODULE_ENABLED +#define HAL_SPI_MODULE_ENABLED +#define HAL_SRAM_MODULE_ENABLED +#define HAL_TIM_MODULE_ENABLED +#define HAL_UART_MODULE_ENABLED +#define HAL_USART_MODULE_ENABLED +#define HAL_WWDG_MODULE_ENABLED +#define HAL_MMC_MODULE_ENABLED +#endif + +/* ########################## Oscillator Values adaptation ####################*/ +/** + * @brief Adjust the value of External High Speed oscillator (HSE) used in your application. + * This value is used by the RCC HAL module to compute the system frequency + * (when HSE is used as system clock source, directly or through the PLL). + */ +#if !defined (HSE_VALUE) +#if defined(USE_STM3210C_EVAL) +#define HSE_VALUE 25000000U /*!< Value of the External oscillator in Hz */ +#else +#define HSE_VALUE 8000000U /*!< Value of the External oscillator in Hz */ +#endif +#endif /* HSE_VALUE */ + +#if !defined (HSE_STARTUP_TIMEOUT) +#define HSE_STARTUP_TIMEOUT 100U /*!< Time out for HSE start up, in ms */ +#endif /* HSE_STARTUP_TIMEOUT */ + +/** + * @brief Internal High Speed oscillator (HSI) value. + * This value is used by the RCC HAL module to compute the system frequency + * (when HSI is used as system clock source, directly or through the PLL). + */ +#if !defined (HSI_VALUE) +#define HSI_VALUE 8000000U /*!< Value of the Internal oscillator in Hz */ +#endif /* HSI_VALUE */ + +/** + * @brief Internal Low Speed oscillator (LSI) value. + */ +#if !defined (LSI_VALUE) +#define LSI_VALUE 40000U /*!< LSI Typical Value in Hz */ +#endif /* LSI_VALUE */ /*!< Value of the Internal Low Speed oscillator in Hz + The real value may vary depending on the variations + in voltage and temperature. */ +/** + * @brief External Low Speed oscillator (LSE) value. + * This value is used by the UART, RTC HAL module to compute the system frequency + */ +#if !defined (LSE_VALUE) +#define LSE_VALUE 32768U /*!< Value of the External Low Speed oscillator in Hz */ +#endif /* LSE_VALUE */ + +#if !defined (LSE_STARTUP_TIMEOUT) +#define LSE_STARTUP_TIMEOUT 5000U /*!< Time out for LSE start up, in ms */ +#endif /* LSE_STARTUP_TIMEOUT */ + +/* Tip: To avoid modifying this file each time you need to use different HSE, + === you can define the HSE value in your toolchain compiler preprocessor. */ + +/* ########################### System Configuration ######################### */ +/** + * @brief This is the HAL system configuration section + */ +#if !defined(VDD_VALUE) +#define VDD_VALUE 3300U /*!< Value of VDD in mv */ +#endif +#if !defined (TICK_INT_PRIORITY) +#define TICK_INT_PRIORITY 0x00U /*!< tick interrupt priority */ +#endif +#if !defined (USE_RTOS) +#define USE_RTOS 0U +#endif +#if !defined (PREFETCH_ENABLE) +#define PREFETCH_ENABLE 1U +#endif + +#define USE_HAL_ADC_REGISTER_CALLBACKS 0U /* ADC register callback disabled */ +#define USE_HAL_CAN_REGISTER_CALLBACKS 0U /* CAN register callback disabled */ +#define USE_HAL_CEC_REGISTER_CALLBACKS 0U /* CEC register callback disabled */ +#define USE_HAL_DAC_REGISTER_CALLBACKS 0U /* DAC register callback disabled */ +#define USE_HAL_ETH_REGISTER_CALLBACKS 0U /* ETH register callback disabled */ +#define USE_HAL_HCD_REGISTER_CALLBACKS 0U /* HCD register callback disabled */ +#define USE_HAL_I2C_REGISTER_CALLBACKS 0U /* I2C register callback disabled */ +#define USE_HAL_I2S_REGISTER_CALLBACKS 0U /* I2S register callback disabled */ +#define USE_HAL_MMC_REGISTER_CALLBACKS 0U /* MMC register callback disabled */ +#define USE_HAL_NAND_REGISTER_CALLBACKS 0U /* NAND register callback disabled */ +#define USE_HAL_NOR_REGISTER_CALLBACKS 0U /* NOR register callback disabled */ +#define USE_HAL_PCCARD_REGISTER_CALLBACKS 0U /* PCCARD register callback disabled */ +#define USE_HAL_PCD_REGISTER_CALLBACKS 0U /* PCD register callback disabled */ +#define USE_HAL_RTC_REGISTER_CALLBACKS 0U /* RTC register callback disabled */ +#define USE_HAL_SD_REGISTER_CALLBACKS 0U /* SD register callback disabled */ +#define USE_HAL_SMARTCARD_REGISTER_CALLBACKS 0U /* SMARTCARD register callback disabled */ +#define USE_HAL_IRDA_REGISTER_CALLBACKS 0U /* IRDA register callback disabled */ +#define USE_HAL_SRAM_REGISTER_CALLBACKS 0U /* SRAM register callback disabled */ +#define USE_HAL_SPI_REGISTER_CALLBACKS 0U /* SPI register callback disabled */ +#define USE_HAL_TIM_REGISTER_CALLBACKS 0U /* TIM register callback disabled */ +#define USE_HAL_UART_REGISTER_CALLBACKS 0U /* UART register callback disabled */ +#define USE_HAL_USART_REGISTER_CALLBACKS 0U /* USART register callback disabled */ +#define USE_HAL_WWDG_REGISTER_CALLBACKS 0U /* WWDG register callback disabled */ + +/* ########################## Assert Selection ############################## */ +/** + * @brief Uncomment the line below to expanse the "assert_param" macro in the + * HAL drivers code + */ +/* #define USE_FULL_ASSERT 1U */ + +/* ################## Ethernet peripheral configuration ##################### */ + +/* Section 1 : Ethernet peripheral configuration */ + +/* MAC ADDRESS: MAC_ADDR0:MAC_ADDR1:MAC_ADDR2:MAC_ADDR3:MAC_ADDR4:MAC_ADDR5 */ +#define MAC_ADDR0 2U +#define MAC_ADDR1 0U +#define MAC_ADDR2 0U +#define MAC_ADDR3 0U +#define MAC_ADDR4 0U +#define MAC_ADDR5 0U + +/* Definition of the Ethernet driver buffers size and count */ +#define ETH_RX_BUF_SIZE ETH_MAX_PACKET_SIZE /* buffer size for receive */ +#define ETH_TX_BUF_SIZE ETH_MAX_PACKET_SIZE /* buffer size for transmit */ +#define ETH_RXBUFNB 8U /* 8 Rx buffers of size ETH_RX_BUF_SIZE */ +#define ETH_TXBUFNB 4U /* 4 Tx buffers of size ETH_TX_BUF_SIZE */ + +/* Section 2: PHY configuration section */ + +/* DP83848 PHY Address*/ +#define DP83848_PHY_ADDRESS 0x01U +/* PHY Reset delay these values are based on a 1 ms Systick interrupt*/ +#define PHY_RESET_DELAY 0x000000FFU +/* PHY Configuration delay */ +#define PHY_CONFIG_DELAY 0x00000FFFU + +#define PHY_READ_TO 0x0000FFFFU +#define PHY_WRITE_TO 0x0000FFFFU + +/* Section 3: Common PHY Registers */ + +#define PHY_BCR ((uint16_t)0x0000) /*!< Transceiver Basic Control Register */ +#define PHY_BSR ((uint16_t)0x0001) /*!< Transceiver Basic Status Register */ + +#define PHY_RESET ((uint16_t)0x8000) /*!< PHY Reset */ +#define PHY_LOOPBACK ((uint16_t)0x4000) /*!< Select loop-back mode */ +#define PHY_FULLDUPLEX_100M ((uint16_t)0x2100) /*!< Set the full-duplex mode at 100 Mb/s */ +#define PHY_HALFDUPLEX_100M ((uint16_t)0x2000) /*!< Set the half-duplex mode at 100 Mb/s */ +#define PHY_FULLDUPLEX_10M ((uint16_t)0x0100) /*!< Set the full-duplex mode at 10 Mb/s */ +#define PHY_HALFDUPLEX_10M ((uint16_t)0x0000) /*!< Set the half-duplex mode at 10 Mb/s */ +#define PHY_AUTONEGOTIATION ((uint16_t)0x1000) /*!< Enable auto-negotiation function */ +#define PHY_RESTART_AUTONEGOTIATION ((uint16_t)0x0200) /*!< Restart auto-negotiation function */ +#define PHY_POWERDOWN ((uint16_t)0x0800) /*!< Select the power down mode */ +#define PHY_ISOLATE ((uint16_t)0x0400) /*!< Isolate PHY from MII */ + +#define PHY_AUTONEGO_COMPLETE ((uint16_t)0x0020) /*!< Auto-Negotiation process completed */ +#define PHY_LINKED_STATUS ((uint16_t)0x0004) /*!< Valid link established */ +#define PHY_JABBER_DETECTION ((uint16_t)0x0002) /*!< Jabber condition detected */ + +/* Section 4: Extended PHY Registers */ + +#define PHY_SR ((uint16_t)0x0010) /*!< PHY status register Offset */ +#define PHY_MICR ((uint16_t)0x0011) /*!< MII Interrupt Control Register */ +#define PHY_MISR ((uint16_t)0x0012) /*!< MII Interrupt Status and Misc. Control Register */ + +#define PHY_LINK_STATUS ((uint16_t)0x0001) /*!< PHY Link mask */ +#define PHY_SPEED_STATUS ((uint16_t)0x0002) /*!< PHY Speed mask */ +#define PHY_DUPLEX_STATUS ((uint16_t)0x0004) /*!< PHY Duplex mask */ + +#define PHY_MICR_INT_EN ((uint16_t)0x0002) /*!< PHY Enable interrupts */ +#define PHY_MICR_INT_OE ((uint16_t)0x0001) /*!< PHY Enable output interrupt events */ + +#define PHY_MISR_LINK_INT_EN ((uint16_t)0x0020) /*!< Enable Interrupt on change of link status */ +#define PHY_LINK_INTERRUPT ((uint16_t)0x2000) /*!< PHY link status interrupt mask */ + +/* ################## SPI peripheral configuration ########################## */ + +/* CRC FEATURE: Use to activate CRC feature inside HAL SPI Driver +* Activated: CRC code is present inside driver +* Deactivated: CRC code cleaned from driver +*/ +#if !defined (USE_SPI_CRC) +#define USE_SPI_CRC 0U +#endif + +/* Includes ------------------------------------------------------------------*/ +/** + * @brief Include module's header file + */ + +#ifdef HAL_RCC_MODULE_ENABLED +#include "stm32f1xx_hal_rcc.h" +#endif /* HAL_RCC_MODULE_ENABLED */ + +#ifdef HAL_GPIO_MODULE_ENABLED +#include "stm32f1xx_hal_gpio.h" +#endif /* HAL_GPIO_MODULE_ENABLED */ + +#ifdef HAL_EXTI_MODULE_ENABLED +#include "stm32f1xx_hal_exti.h" +#endif /* HAL_EXTI_MODULE_ENABLED */ + +#ifdef HAL_DMA_MODULE_ENABLED +#include "stm32f1xx_hal_dma.h" +#endif /* HAL_DMA_MODULE_ENABLED */ + +#ifdef HAL_ETH_MODULE_ENABLED +#include "stm32f1xx_hal_eth.h" +#endif /* HAL_ETH_MODULE_ENABLED */ + +#ifdef HAL_CAN_MODULE_ENABLED +#include "stm32f1xx_hal_can.h" +#endif /* HAL_CAN_MODULE_ENABLED */ + +#ifdef HAL_CAN_LEGACY_MODULE_ENABLED + #include "Legacy/stm32f1xx_hal_can_legacy.h" +#endif /* HAL_CAN_LEGACY_MODULE_ENABLED */ + +#ifdef HAL_CEC_MODULE_ENABLED +#include "stm32f1xx_hal_cec.h" +#endif /* HAL_CEC_MODULE_ENABLED */ + +#ifdef HAL_CORTEX_MODULE_ENABLED +#include "stm32f1xx_hal_cortex.h" +#endif /* HAL_CORTEX_MODULE_ENABLED */ + +#ifdef HAL_ADC_MODULE_ENABLED +#include "stm32f1xx_hal_adc.h" +#endif /* HAL_ADC_MODULE_ENABLED */ + +#ifdef HAL_CRC_MODULE_ENABLED +#include "stm32f1xx_hal_crc.h" +#endif /* HAL_CRC_MODULE_ENABLED */ + +#ifdef HAL_DAC_MODULE_ENABLED +#include "stm32f1xx_hal_dac.h" +#endif /* HAL_DAC_MODULE_ENABLED */ + +#ifdef HAL_FLASH_MODULE_ENABLED +#include "stm32f1xx_hal_flash.h" +#endif /* HAL_FLASH_MODULE_ENABLED */ + +#ifdef HAL_SRAM_MODULE_ENABLED +#include "stm32f1xx_hal_sram.h" +#endif /* HAL_SRAM_MODULE_ENABLED */ + +#ifdef HAL_NOR_MODULE_ENABLED +#include "stm32f1xx_hal_nor.h" +#endif /* HAL_NOR_MODULE_ENABLED */ + +#ifdef HAL_I2C_MODULE_ENABLED +#include "stm32f1xx_hal_i2c.h" +#endif /* HAL_I2C_MODULE_ENABLED */ + +#ifdef HAL_I2S_MODULE_ENABLED +#include "stm32f1xx_hal_i2s.h" +#endif /* HAL_I2S_MODULE_ENABLED */ + +#ifdef HAL_IWDG_MODULE_ENABLED +#include "stm32f1xx_hal_iwdg.h" +#endif /* HAL_IWDG_MODULE_ENABLED */ + +#ifdef HAL_PWR_MODULE_ENABLED +#include "stm32f1xx_hal_pwr.h" +#endif /* HAL_PWR_MODULE_ENABLED */ + +#ifdef HAL_RTC_MODULE_ENABLED +#include "stm32f1xx_hal_rtc.h" +#endif /* HAL_RTC_MODULE_ENABLED */ + +#ifdef HAL_PCCARD_MODULE_ENABLED +#include "stm32f1xx_hal_pccard.h" +#endif /* HAL_PCCARD_MODULE_ENABLED */ + +#ifdef HAL_SD_MODULE_ENABLED +#include "stm32f1xx_hal_sd.h" +#endif /* HAL_SD_MODULE_ENABLED */ + +#ifdef HAL_NAND_MODULE_ENABLED +#include "stm32f1xx_hal_nand.h" +#endif /* HAL_NAND_MODULE_ENABLED */ + +#ifdef HAL_SPI_MODULE_ENABLED +#include "stm32f1xx_hal_spi.h" +#endif /* HAL_SPI_MODULE_ENABLED */ + +#ifdef HAL_TIM_MODULE_ENABLED +#include "stm32f1xx_hal_tim.h" +#endif /* HAL_TIM_MODULE_ENABLED */ + +#ifdef HAL_UART_MODULE_ENABLED +#include "stm32f1xx_hal_uart.h" +#endif /* HAL_UART_MODULE_ENABLED */ + +#ifdef HAL_USART_MODULE_ENABLED +#include "stm32f1xx_hal_usart.h" +#endif /* HAL_USART_MODULE_ENABLED */ + +#ifdef HAL_IRDA_MODULE_ENABLED +#include "stm32f1xx_hal_irda.h" +#endif /* HAL_IRDA_MODULE_ENABLED */ + +#ifdef HAL_SMARTCARD_MODULE_ENABLED +#include "stm32f1xx_hal_smartcard.h" +#endif /* HAL_SMARTCARD_MODULE_ENABLED */ + +#ifdef HAL_WWDG_MODULE_ENABLED +#include "stm32f1xx_hal_wwdg.h" +#endif /* HAL_WWDG_MODULE_ENABLED */ + +#ifdef HAL_PCD_MODULE_ENABLED +#include "stm32f1xx_hal_pcd.h" +#endif /* HAL_PCD_MODULE_ENABLED */ + +#ifdef HAL_HCD_MODULE_ENABLED +#include "stm32f1xx_hal_hcd.h" +#endif /* HAL_HCD_MODULE_ENABLED */ + +#ifdef HAL_MMC_MODULE_ENABLED +#include "stm32f1xx_hal_mmc.h" +#endif /* HAL_MMC_MODULE_ENABLED */ + +/* Exported macro ------------------------------------------------------------*/ +#ifdef USE_FULL_ASSERT +/** + * @brief The assert_param macro is used for function's parameters check. + * @param expr If expr is false, it calls assert_failed function + * which reports the name of the source file and the source + * line number of the call that failed. + * If expr is true, it returns no value. + * @retval None + */ +#define assert_param(expr) ((expr) ? (void)0U : assert_failed((uint8_t *)__FILE__, __LINE__)) +/* Exported functions ------------------------------------------------------- */ +void assert_failed(uint8_t *file, uint32_t line); +#else +#define assert_param(expr) ((void)0U) +#endif /* USE_FULL_ASSERT */ + + +#ifdef __cplusplus +} +#endif + +#endif /* __STM32F1xx_HAL_CONF_DEFAULT_H */ + + +/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ diff --git a/buildroot/share/PlatformIO/variants/MARLIN_F103Zx/ldscript.ld b/buildroot/share/PlatformIO/variants/MARLIN_F103Zx/ldscript.ld new file mode 100644 index 000000000..098e83b06 --- /dev/null +++ b/buildroot/share/PlatformIO/variants/MARLIN_F103Zx/ldscript.ld @@ -0,0 +1,200 @@ +/* +****************************************************************************** +** + +** File : LinkerScript.ld +** +** Author : Auto-generated by STM32CubeIDE +** +** Abstract : Linker script for STM32F103Z(C/D/E/G/GTx Device from STM32F1 series +** 256/386/512K/786/1024bytes FLASH +** 48/64/96Kbytes RAM +** +** Set heap size, stack size and stack location according +** to application requirements. +** +** Set memory bank area and size if external memory is used. +** +** Target : STMicroelectronics STM32 +** +** Distribution: The file is distributed as is without any warranty +** of any kind. +** +***************************************************************************** +** @attention +** +**

© COPYRIGHT(c) 2019 STMicroelectronics

+** +** Redistribution and use in source and binary forms, with or without modification, +** are permitted provided that the following conditions are met: +** 1. Redistributions of source code must retain the above copyright notice, +** this list of conditions and the following disclaimer. +** 2. Redistributions in binary form must reproduce the above copyright notice, +** this list of conditions and the following disclaimer in the documentation +** and/or other materials provided with the distribution. +** 3. Neither the name of STMicroelectronics nor the names of its contributors +** may be used to endorse or promote products derived from this software +** without specific prior written permission. +** +** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +** AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +** IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +** DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +** FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +** DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +** SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +** CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +** OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +** +***************************************************************************** +*/ + +/* Entry Point */ +ENTRY(Reset_Handler) + +/* Highest address of the user mode stack */ +_estack = 0x20000000 + LD_MAX_DATA_SIZE; /* end of "RAM" Ram type memory */ +_Min_Heap_Size = 0x200; /* required amount of heap */ +_Min_Stack_Size = 0x400; /* required amount of stack */ + +/* Memories definition */ +MEMORY +{ + RAM (xrw) : ORIGIN = 0x20000000, LENGTH = LD_MAX_DATA_SIZE + FLASH (rx) : ORIGIN = 0x8000000 + LD_FLASH_OFFSET, LENGTH = LD_MAX_SIZE - LD_FLASH_OFFSET +} + +/* Sections */ +SECTIONS +{ + /* The startup code into "FLASH" Rom type memory */ + .isr_vector : + { + . = ALIGN(4); + KEEP(*(.isr_vector)) /* Startup code */ + . = ALIGN(4); + } >FLASH + + /* The program code and other data into "FLASH" Rom type memory */ + .text : + { + . = ALIGN(4); + *(.text) /* .text sections (code) */ + *(.text*) /* .text* sections (code) */ + *(.glue_7) /* glue arm to thumb code */ + *(.glue_7t) /* glue thumb to arm code */ + *(.eh_frame) + + KEEP (*(.init)) + KEEP (*(.fini)) + + . = ALIGN(4); + _etext = .; /* define a global symbols at end of code */ + } >FLASH + + /* Constant data into "FLASH" Rom type memory */ + .rodata : + { + . = ALIGN(4); + *(.rodata) /* .rodata sections (constants, strings, etc.) */ + *(.rodata*) /* .rodata* sections (constants, strings, etc.) */ + . = ALIGN(4); + } >FLASH + + .ARM.extab : { + . = ALIGN(4); + *(.ARM.extab* .gnu.linkonce.armextab.*) + . = ALIGN(4); + } >FLASH + .ARM : { + . = ALIGN(4); + __exidx_start = .; + *(.ARM.exidx*) + __exidx_end = .; + . = ALIGN(4); + } >FLASH + + .preinit_array : + { + . = ALIGN(4); + PROVIDE_HIDDEN (__preinit_array_start = .); + KEEP (*(.preinit_array*)) + PROVIDE_HIDDEN (__preinit_array_end = .); + . = ALIGN(4); + } >FLASH + .init_array : + { + . = ALIGN(4); + PROVIDE_HIDDEN (__init_array_start = .); + KEEP (*(SORT(.init_array.*))) + KEEP (*(.init_array*)) + PROVIDE_HIDDEN (__init_array_end = .); + . = ALIGN(4); + } >FLASH + .fini_array : + { + . = ALIGN(4); + PROVIDE_HIDDEN (__fini_array_start = .); + KEEP (*(SORT(.fini_array.*))) + KEEP (*(.fini_array*)) + PROVIDE_HIDDEN (__fini_array_end = .); + . = ALIGN(4); + } >FLASH + + /* Used by the startup to initialize data */ + _sidata = LOADADDR(.data); + + /* Initialized data sections into "RAM" Ram type memory */ + .data : + { + . = ALIGN(4); + _sdata = .; /* create a global symbol at data start */ + *(.data) /* .data sections */ + *(.data*) /* .data* sections */ + + . = ALIGN(4); + _edata = .; /* define a global symbol at data end */ + } >RAM AT> FLASH + + + /* Uninitialized data section into "RAM" Ram type memory */ + . = ALIGN(4); + .bss : + { + /* This is used by the startup in order to initialize the .bss secion */ + _sbss = .; /* define a global symbol at bss start */ + __bss_start__ = _sbss; + *(.bss) + *(.bss*) + *(COMMON) + + . = ALIGN(4); + _ebss = .; /* define a global symbol at bss end */ + __bss_end__ = _ebss; + } >RAM + + /* User_heap_stack section, used to check that there is enough "RAM" Ram type memory left */ + ._user_heap_stack : + { + . = ALIGN(8); + PROVIDE ( end = . ); + PROVIDE ( _end = . ); + . = . + _Min_Heap_Size; + . = . + _Min_Stack_Size; + . = ALIGN(8); + } >RAM + + + + /* Remove information from the compiler libraries */ + /DISCARD/ : + { + libc.a ( * ) + libm.a ( * ) + libgcc.a ( * ) + } + + .ARM.attributes 0 : { *(.ARM.attributes) } +} + diff --git a/buildroot/share/PlatformIO/variants/MARLIN_F103Zx/variant.cpp b/buildroot/share/PlatformIO/variants/MARLIN_F103Zx/variant.cpp new file mode 100644 index 000000000..ff7ab771c --- /dev/null +++ b/buildroot/share/PlatformIO/variants/MARLIN_F103Zx/variant.cpp @@ -0,0 +1,222 @@ +/* + ******************************************************************************* + * Copyright (c) 2019, STMicroelectronics + * All rights reserved. + * + * This software component is licensed by ST under BSD 3-Clause license, + * the "License"; You may not use this file except in compliance with the + * License. You may obtain a copy of the License at: + * opensource.org/licenses/BSD-3-Clause + * + ******************************************************************************* + */ + +#include "pins_arduino.h" + +#ifdef __cplusplus +extern "C" { +#endif + +// Digital PinName array +const PinName digitalPin[] = { + PA_0, //D0 + PA_1, //D1 + PA_2, //D2 + PA_3, //D3 + PA_4, //D4 + PA_5, //D5 + PA_6, //D6 + PA_7, //D7 + PA_8, //D8 + PA_9, //D9 + PA_10, //D10 + PA_11, //D11 + PA_12, //D12 + PA_13, //D13 + PA_14, //D14 + PA_15, //D15 + + PB_0, //D16 + PB_1, //D17 + PB_2, //D18 + PB_3, //D19 + PB_4, //D20 + PB_5, //D21 + PB_6, //D22 + PB_7, //D23 + PB_8, //D24 + PB_9, //D25 + PB_10, //D26 + PB_11, //D27 + PB_12, //D28 + PB_13, //D29 + PB_14, //D30 + PB_15, //D31 + + PC_0, //D32 + PC_1, //D33 + PC_2, //D34 + PC_3, //D35 + PC_4, //D36 + PC_5, //D37 + PC_6, //D38 + PC_7, //D39 + PC_8, //D40 + PC_9, //D41 + PC_10, //D42 + PC_11, //D43 + PC_12, //D44 + PC_13, //D45 + PC_14, //D46 + PC_15, //D47 + + PD_0, //D48 + PD_1, //D49 + PD_2, //D50 + PD_3, //D51 + PD_4, //D52 + PD_5, //D53 + PD_6, //D54 + PD_7, //D55 + PD_8, //D56 + PD_9, //D57 + PD_10, //D58 + PD_11, //D59 + PD_12, //D60 + PD_13, //D61 + PD_14, //D62 + PD_15, //D63 + + PE_0, //D64 + PE_1, //D65 + PE_2, //D66 + PE_3, //D67 + PE_4, //D68 + PE_5, //D69 + PE_6, //D70 + PE_7, //D71 + PE_8, //D72 + PE_9, //D73 + PE_10, //D74 + PE_11, //D75 + PE_12, //D76 + PE_13, //D77 + PE_14, //D78 + PE_15, //D79 + + PF_0, //D80 + PF_1, //D81 + PF_2, //D82 + PF_3, //D83 + PF_4, //D84 + PF_5, //D85 + PF_6, //D86 + PF_7, //D87 + PF_8, //D88 + PF_9, //D89 + PF_10, //D90 + PF_11, //D91 + PF_12, //D92 + PF_13, //D93 + PF_14, //D94 + PF_15, //D95 + + PG_0, //D96 + PG_1, //D97 + PG_2, //D98 + PG_3, //D99 + PG_4, //D100 + PG_5, //D101 + PG_6, //D102 + PG_7, //D103 + PG_8, //D104 + PG_9, //D105 + PG_10, //D106 + PG_11, //D107 + PG_12, //D108 + PG_13, //D109 + PG_14, //D110 + PG_15 //D111 +}; + +// Analog (Ax) pin number array +const uint32_t analogInputPin[] = { + 0, // A0, PA0 + 1, // A1, PA1 + 2, // A2, PA2 + 3, // A3, PA3 + 4, // A4, PA4 + 5, // A5, PA5 + 6, // A6, PA6 + 7, // A7, PA7 + 16, // A8, PB0 + 17, // A9, PB1 + 32, // A10, PC0 + 33, // A11, PC1 + 34, // A12, PC2 + 35, // A13, PC3 + 36, // A14, PC4 + 37, // A15, PC5 + 86, // A16, PF6 + 87, // A17, PF7 + 88, // A18, PF8 + 89, // A19, PF9 + 90 // A20, PF10 +}; + +#ifdef __cplusplus +} +#endif + +// ---------------------------------------------------------------------------- + +#ifdef __cplusplus +extern "C" { +#endif + +/** + * @brief System Clock Configuration + * @param None + * @retval None + */ +WEAK void SystemClock_Config(void) +{ + RCC_OscInitTypeDef RCC_OscInitStruct = {}; + RCC_ClkInitTypeDef RCC_ClkInitStruct = {}; + RCC_PeriphCLKInitTypeDef PeriphClkInit = {}; + + /* Initializes the CPU, AHB and APB busses clocks */ + RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSE; + RCC_OscInitStruct.HSEState = RCC_HSE_ON; + RCC_OscInitStruct.HSEPredivValue = RCC_HSE_PREDIV_DIV1; + RCC_OscInitStruct.HSIState = RCC_HSI_ON; + RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON; + RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE; + RCC_OscInitStruct.PLL.PLLMUL = RCC_PLL_MUL9; + if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK) { + Error_Handler(); + } + /* Initializes the CPU, AHB and APB busses clocks */ + RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK | RCC_CLOCKTYPE_SYSCLK + | RCC_CLOCKTYPE_PCLK1 | RCC_CLOCKTYPE_PCLK2; + RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK; + RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1; + RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV2; + RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1; + + if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_2) != HAL_OK) { + Error_Handler(); + } + + PeriphClkInit.PeriphClockSelection = RCC_PERIPHCLK_ADC | RCC_PERIPHCLK_USB; + PeriphClkInit.AdcClockSelection = RCC_ADCPCLK2_DIV6; + PeriphClkInit.UsbClockSelection = RCC_USBCLKSOURCE_PLL_DIV1_5; + if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInit) != HAL_OK) { + Error_Handler(); + } +} + + +#ifdef __cplusplus +} +#endif diff --git a/buildroot/share/PlatformIO/variants/MARLIN_F103Zx/variant.h b/buildroot/share/PlatformIO/variants/MARLIN_F103Zx/variant.h new file mode 100644 index 000000000..fb878f8b7 --- /dev/null +++ b/buildroot/share/PlatformIO/variants/MARLIN_F103Zx/variant.h @@ -0,0 +1,232 @@ +/* + ******************************************************************************* + * Copyright (c) 2019, STMicroelectronics + * All rights reserved. + * + * This software component is licensed by ST under BSD 3-Clause license, + * the "License"; You may not use this file except in compliance with the + * License. You may obtain a copy of the License at: + * opensource.org/licenses/BSD-3-Clause + * + ******************************************************************************* + */ + +#ifndef _VARIANT_ARDUINO_STM32_ +#define _VARIANT_ARDUINO_STM32_ + +#ifdef __cplusplus +extern "C" { +#endif // __cplusplus + +/*---------------------------------------------------------------------------- + * Pins + *----------------------------------------------------------------------------*/ +#define PA0 0 +#define PA1 1 +#define PA2 2 +#define PA3 3 +#define PA4 4 +#define PA5 5 +#define PA6 6 +#define PA7 7 +#define PA8 8 +#define PA9 9 +#define PA10 10 +#define PA11 11 +#define PA12 12 +#define PA13 13 +#define PA14 14 +#define PA15 15 + +#define PB0 16 +#define PB1 17 +#define PB2 18 +#define PB3 19 +#define PB4 20 +#define PB5 21 +#define PB6 22 +#define PB7 23 +#define PB8 24 +#define PB9 25 +#define PB10 26 +#define PB11 27 +#define PB12 28 +#define PB13 29 +#define PB14 30 +#define PB15 31 + +#define PC0 32 +#define PC1 33 +#define PC2 34 +#define PC3 35 +#define PC4 36 +#define PC5 37 +#define PC6 38 +#define PC7 39 +#define PC8 40 +#define PC9 41 +#define PC10 42 +#define PC11 43 +#define PC12 44 +#define PC13 45 +#define PC14 46 +#define PC15 47 + +#define PD0 48 +#define PD1 49 +#define PD2 50 +#define PD3 51 +#define PD4 52 +#define PD5 53 +#define PD6 54 +#define PD7 55 +#define PD8 56 +#define PD9 57 +#define PD10 58 +#define PD11 59 +#define PD12 60 +#define PD13 61 +#define PD14 62 +#define PD15 63 + +#define PE0 64 +#define PE1 65 +#define PE2 66 +#define PE3 67 +#define PE4 68 +#define PE5 69 +#define PE6 70 +#define PE7 71 +#define PE8 72 +#define PE9 73 +#define PE10 74 +#define PE11 75 +#define PE12 76 +#define PE13 77 +#define PE14 78 +#define PE15 79 + +#define PF0 80 +#define PF1 81 +#define PF2 82 +#define PF3 83 +#define PF4 84 +#define PF5 85 +#define PF6 86 +#define PF7 87 +#define PF8 88 +#define PF9 89 +#define PF10 90 +#define PF11 91 +#define PF12 92 +#define PF13 93 +#define PF14 94 +#define PF15 95 + +#define PG0 96 +#define PG1 97 +#define PG2 98 +#define PG3 99 +#define PG4 100 +#define PG5 101 +#define PG6 102 +#define PG7 103 +#define PG8 104 +#define PG9 105 +#define PG10 106 +#define PG11 107 +#define PG12 108 +#define PG13 109 +#define PG14 110 +#define PG15 111 + +// This must be a literal +#define NUM_DIGITAL_PINS 112 +#define NUM_ANALOG_INPUTS 21 + +// On-board LED pin number +#ifdef ARDUINO_VCCGND_F103ZET6_MINI +#define LED_BUILTIN PG15 +#elif defined(ARDUINO_VCCGND_F103ZET6) +#define LED_BUILTIN PC13 +#elif !defined(LED_BUILTIN) +#define LED_BUILTIN PC13 +#endif + +// On-board user button +#ifndef USER_BTN +#define USER_BTN PB1 +#endif + +// SPI Definitions +#ifdef ARDUINO_VCCGND_F103ZET6 +#define PIN_SPI_SS PA15 +#define PIN_SPI_MOSI PB5 +#define PIN_SPI_MISO PB4 +#define PIN_SPI_SCK PB3 +#else +#define PIN_SPI_SS PC4 +#define PIN_SPI_MOSI PA7 +#define PIN_SPI_MISO PA6 +#define PIN_SPI_SCK PA5 +#endif + +// I2C Definitions +#define PIN_WIRE_SDA PB7 +#define PIN_WIRE_SCL PB6 + +// Timer Definitions (optional) +// Use TIM6/TIM7 when possible as servo and tone don't need GPIO output pin +#define TIMER_TONE TIM6 +#define TIMER_SERVO TIM7 + +// UART Definitions +// Define here Serial instance number to map on Serial generic name +#define SERIAL_UART_INSTANCE 1 + +// Default pin used for 'Serial' instance (ex: ST-Link) +// Mandatory for Firmata +#define PIN_SERIAL_RX PA10 +#define PIN_SERIAL_TX PA9 + +// Default pin used for 'Serial2' instance +#define PIN_SERIAL2_RX PA3 +#define PIN_SERIAL2_TX PA2 + +// Default pin used for 'Serial3' instance +#define PIN_SERIAL3_RX PB11 +#define PIN_SERIAL3_TX PB10 + +/* Extra HAL modules */ +#define HAL_DAC_MODULE_ENABLED +#define HAL_SD_MODULE_ENABLED +#define HAL_SRAM_MODULE_ENABLED + +#ifdef __cplusplus +} // extern "C" +#endif +/*---------------------------------------------------------------------------- + * Arduino objects - C++ only + *----------------------------------------------------------------------------*/ + +#ifdef __cplusplus + // These serial port names are intended to allow libraries and architecture-neutral + // sketches to automatically default to the correct port name for a particular type + // of use. For example, a GPS module would normally connect to SERIAL_PORT_HARDWARE_OPEN, + // the first hardware serial port whose RX/TX pins are not dedicated to another use. + // + // SERIAL_PORT_MONITOR Port which normally prints to the Arduino Serial Monitor + // + // SERIAL_PORT_USBVIRTUAL Port which is USB virtual serial + // + // SERIAL_PORT_LINUXBRIDGE Port which connects to a Linux system via Bridge library + // + // SERIAL_PORT_HARDWARE Hardware serial port, physical RX & TX pins. + // + // SERIAL_PORT_HARDWARE_OPEN Hardware serial ports which are open for use. Their RX & TX + // pins are NOT connected to anything by default. + #define SERIAL_PORT_MONITOR Serial + #define SERIAL_PORT_HARDWARE Serial1 +#endif + +#endif /* _VARIANT_ARDUINO_STM32_ */ diff --git a/buildroot/tests/mks_robin-tests b/buildroot/tests/mks_robin-tests index 99d41ef4a..d63506220 100644 --- a/buildroot/tests/mks_robin-tests +++ b/buildroot/tests/mks_robin-tests @@ -1,13 +1,16 @@ #!/usr/bin/env bash # -# Build tests for STM32F1 genericSTM32F103ZE +# Build tests for MKS Robin +# (STM32F1 genericSTM32F103ZE) # # exit on first failure set -e use_example_configs Mks/Robin -exec_test $1 $2 "Default Configuration" +opt_disable TFT_320x240 +opt_enable FSMC_GRAPHICAL_TFT +exec_test $1 $2 "MKS Robin base configuration" # cleanup restore_configs diff --git a/buildroot/tests/mks_robin_mini-tests b/buildroot/tests/mks_robin_mini-tests index c8ba5a5a4..1c40ea453 100644 --- a/buildroot/tests/mks_robin_mini-tests +++ b/buildroot/tests/mks_robin_mini-tests @@ -1,6 +1,7 @@ #!/usr/bin/env bash # -# Build tests for STM32F1 genericSTM32F103VE +# Build tests for MKS Robin mini +# (STM32F1 genericSTM32F103VE) # # exit on first failure @@ -10,7 +11,7 @@ use_example_configs Mks/Robin opt_set MOTHERBOARD BOARD_MKS_ROBIN_MINI opt_set EXTRUDERS 1 opt_set TEMP_SENSOR_1 0 -exec_test $1 $2 "Default Configuration" +exec_test $1 $2 "MKS Robin mini" # cleanup restore_configs diff --git a/buildroot/tests/mks_robin_nano-tests b/buildroot/tests/mks_robin_nano-tests index 809fd6e6f..d3df7e2e5 100644 --- a/buildroot/tests/mks_robin_nano-tests +++ b/buildroot/tests/mks_robin_nano-tests @@ -1,6 +1,7 @@ #!/usr/bin/env bash # -# Build tests for STM32F1 genericSTM32F103VE +# Build tests for MKS Robin nano +# (STM32F1 genericSTM32F103VE) # # exit on first failure @@ -8,7 +9,7 @@ set -e use_example_configs Mks/Robin opt_set MOTHERBOARD BOARD_MKS_ROBIN_NANO -exec_test $1 $2 "Default Configuration" +exec_test $1 $2 "MKS Robin nano" # cleanup restore_configs diff --git a/buildroot/tests/mks_robin_stm32-tests b/buildroot/tests/mks_robin_stm32-tests new file mode 100644 index 000000000..4aa146fa5 --- /dev/null +++ b/buildroot/tests/mks_robin_stm32-tests @@ -0,0 +1,13 @@ +#!/usr/bin/env bash +# +# Build tests for MKS Robin (HAL/STM32) +# + +# exit on first failure +set -e + +use_example_configs Mks/Robin +exec_test $1 $2 "MKS Robin base configuration" + +# cleanup +restore_configs diff --git a/platformio.ini b/platformio.ini index 24d416444..2f7059e48 100644 --- a/platformio.ini +++ b/platformio.ini @@ -26,7 +26,7 @@ include_dir = Marlin # [common] default_src_filter = + - - + - - - - - + - - - - - - - - - - - @@ -62,6 +62,7 @@ USES_LIQUIDCRYSTAL = LiquidCrystal@1.5.0 USES_LIQUIDTWI2 = LiquidTWI2@1.2.7 DWIN_CREALITY_LCD = src_filter=+ HAS_CHARACTER_LCD = src_filter=+ +HAS_GRAPHICAL_TFT = src_filter=+ HAS_LCD_MENU = src_filter=+ HAS_DGUS_LCD = src_filter=+ TOUCH_UI_FTDI_EVE = src_filter=+ @@ -603,6 +604,28 @@ extra_scripts = ${common.extra_scripts} build_flags = ${common_stm32f1.build_flags} -DSS_TIMER=4 -DSTM32_XL_DENSITY +# MKS Robin (STM32F103ZET6) +# Uses HAL STM32 to support Marlin UI for TFT screen with optional touch panel +# +[env:mks_robin_stm32] +platform = ${common_stm32.platform} +extends = common_stm32 +board = genericSTM32F103ZE +board_build.core = stm32 +board_build.variant = MARLIN_F103Zx +board_build.ldscript = ldscript.ld +board_build.offset = 0x7000 +board_build.firmware = Robin.bin +build_flags = ${common_stm32.build_flags} + -DENABLE_HWSERIAL3 -DTRANSFER_CLOCK_DIV=8 +build_unflags = ${common_stm32.build_unflags} + -DUSBCON -DUSBD_USE_CDC +extra_scripts = ${common.extra_scripts} + pre:buildroot/share/PlatformIO/scripts/generic_create_variant.py + buildroot/share/PlatformIO/scripts/stm32_bootloader.py + buildroot/share/PlatformIO/scripts/mks_encrypt.py +lib_deps = + # # MKS Robin Pro (STM32F103ZET6) # From f3b37229fa9e7fead9c89fb4b477ba7f9d544c72 Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Tue, 28 Jul 2020 18:13:20 -0500 Subject: [PATCH 020/194] Update include_tree --- platformio.ini | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/platformio.ini b/platformio.ini index 2f7059e48..0b1155aba 100644 --- a/platformio.ini +++ b/platformio.ini @@ -991,4 +991,4 @@ src_filter = ${common.default_src_filter} + platform = atmelavr board = megaatmega2560 build_flags = -c -H -std=gnu++11 -Wall -Os -D__MARLIN_FIRMWARE__ -src_filter = + +src_filter = + From cc50c4956d3743ec5fe11e1c118d105cf6672304 Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Thu, 30 Jul 2020 02:07:29 -0500 Subject: [PATCH 021/194] Add monitor_flags --- platformio.ini | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/platformio.ini b/platformio.ini index 0b1155aba..790d6f9d0 100644 --- a/platformio.ini +++ b/platformio.ini @@ -89,6 +89,15 @@ extra_scripts = ${common.extra_scripts} build_flags = ${common.build_flags} lib_deps = ${common.lib_deps} monitor_speed = 250000 +monitor_flags = + --quiet + --echo + --eol + LF + --filter + colorize + --filter + time ################################# # # From 90158f9f679e2d18b10450bca0f3f2966b7756cd Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Thu, 30 Jul 2020 02:27:52 -0500 Subject: [PATCH 022/194] Repair config order --- Marlin/Configuration.h | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/Marlin/Configuration.h b/Marlin/Configuration.h index 363ea2f35..9d1f7862b 100644 --- a/Marlin/Configuration.h +++ b/Marlin/Configuration.h @@ -2166,18 +2166,18 @@ // //#define TFT_DRIVER AUTO -// -// FSMC display (MKS Robin, Alfawise U20, JGAurora A5S, REXYZ A1, etc.) -// Upscaled 128x64 Marlin UI -// -//#define FSMC_GRAPHICAL_TFT - // // SPI display (MKS Robin Nano V2.0, MKS Gen L V2.0) // Upscaled 128x64 Marlin UI // //#define SPI_GRAPHICAL_TFT +// +// FSMC display (MKS Robin, Alfawise U20, JGAurora A5S, REXYZ A1, etc.) +// Upscaled 128x64 Marlin UI +// +//#define FSMC_GRAPHICAL_TFT + // // TFT LVGL UI // From b058aee1d4664ca7ee8053c5e3d7f2d12b5c5881 Mon Sep 17 00:00:00 2001 From: thinkyhead Date: Fri, 31 Jul 2020 00:09:42 +0000 Subject: [PATCH 023/194] [cron] Bump distribution date (2020-07-31) --- Marlin/src/inc/Version.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Marlin/src/inc/Version.h b/Marlin/src/inc/Version.h index 199f09221..6afa9175d 100644 --- a/Marlin/src/inc/Version.h +++ b/Marlin/src/inc/Version.h @@ -42,7 +42,7 @@ * version was tagged. */ #ifndef STRING_DISTRIBUTION_DATE - #define STRING_DISTRIBUTION_DATE "2020-07-30" + #define STRING_DISTRIBUTION_DATE "2020-07-31" #endif /** From 6b0d154956989e3222fce41f9563bdc8b527e386 Mon Sep 17 00:00:00 2001 From: thinkyhead Date: Sat, 1 Aug 2020 00:09:59 +0000 Subject: [PATCH 024/194] [cron] Bump distribution date (2020-08-01) --- Marlin/src/inc/Version.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Marlin/src/inc/Version.h b/Marlin/src/inc/Version.h index 6afa9175d..06e0adb12 100644 --- a/Marlin/src/inc/Version.h +++ b/Marlin/src/inc/Version.h @@ -42,7 +42,7 @@ * version was tagged. */ #ifndef STRING_DISTRIBUTION_DATE - #define STRING_DISTRIBUTION_DATE "2020-07-31" + #define STRING_DISTRIBUTION_DATE "2020-08-01" #endif /** From 2465f2fd746169bca31ec43a956211bed15839c6 Mon Sep 17 00:00:00 2001 From: thinkyhead Date: Sun, 2 Aug 2020 00:10:12 +0000 Subject: [PATCH 025/194] [cron] Bump distribution date (2020-08-02) --- Marlin/src/inc/Version.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Marlin/src/inc/Version.h b/Marlin/src/inc/Version.h index 06e0adb12..7eeafdb7b 100644 --- a/Marlin/src/inc/Version.h +++ b/Marlin/src/inc/Version.h @@ -42,7 +42,7 @@ * version was tagged. */ #ifndef STRING_DISTRIBUTION_DATE - #define STRING_DISTRIBUTION_DATE "2020-08-01" + #define STRING_DISTRIBUTION_DATE "2020-08-02" #endif /** From 5847f9c71848ca26e8c5abe7acd4a62989f4296b Mon Sep 17 00:00:00 2001 From: thinkyhead Date: Mon, 3 Aug 2020 00:10:15 +0000 Subject: [PATCH 026/194] [cron] Bump distribution date (2020-08-03) --- Marlin/src/inc/Version.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Marlin/src/inc/Version.h b/Marlin/src/inc/Version.h index 7eeafdb7b..b8e0c8375 100644 --- a/Marlin/src/inc/Version.h +++ b/Marlin/src/inc/Version.h @@ -42,7 +42,7 @@ * version was tagged. */ #ifndef STRING_DISTRIBUTION_DATE - #define STRING_DISTRIBUTION_DATE "2020-08-02" + #define STRING_DISTRIBUTION_DATE "2020-08-03" #endif /** From 1d240ce5a3a5222ae43204fed3bbaf368fa93c2e Mon Sep 17 00:00:00 2001 From: Slats <2580606+mslattery@users.noreply.github.com> Date: Sun, 2 Aug 2020 21:00:06 -0400 Subject: [PATCH 027/194] Translated DWIN screen titles (#18893) Co-authored-by: Scott Lahteine --- Marlin/src/lcd/dwin/dwin.cpp | 20 +++-- Marlin/src/lcd/dwin/dwin_lcd.cpp | 135 ++++++++++++++++++++++++------- 2 files changed, 116 insertions(+), 39 deletions(-) diff --git a/Marlin/src/lcd/dwin/dwin.cpp b/Marlin/src/lcd/dwin/dwin.cpp index f8c1819c5..0daaf3982 100644 --- a/Marlin/src/lcd/dwin/dwin.cpp +++ b/Marlin/src/lcd/dwin/dwin.cpp @@ -379,6 +379,10 @@ inline void Draw_Title(const char * const title) { DWIN_Draw_String(false, false, HEADER_FONT, White, Background_blue, 14, 4, (char*)title); } +inline void Draw_Title(const __FlashStringHelper * title) { + DWIN_Draw_String(false, false, HEADER_FONT, White, Background_blue, 14, 4, (char*)title); +} + inline void Clear_Menu_Area(void) { DWIN_Draw_Rectangle(1, Background_black, 0, 31, 272, 360); } @@ -568,7 +572,7 @@ inline void Draw_Prepare_Menu() { } else { #ifdef USE_STRING_HEADINGS - Draw_Title("Prepare"); // TODO: GET_TEXT_F + Draw_Title(GET_TEXT_F(MSG_PREPARE)); #else DWIN_Frame_AreaCopy(1, 178, 2, 271 - 42, 479 - 464 - 1, 14, 8); // "Prepare" #endif @@ -611,7 +615,7 @@ inline void Draw_Control_Menu() { } else { #ifdef USE_STRING_HEADINGS - Draw_Title("Control"); // TODO: GET_TEXT_F + Draw_Title(GET_TEXT_F(MSG_CONTROL)); #else DWIN_Frame_AreaCopy(1, 128, 2, 271 - 95, 479 - 467, 14, 8); #endif @@ -656,7 +660,7 @@ inline void Draw_Tune_Menu() { } else { #ifdef USE_STRING_HEADINGS - Draw_Title("Tune"); // TODO: GET_TEXT + Draw_Title(GET_TEXT_F(MSG_TUNE)); #else DWIN_Frame_AreaCopy(1, 94, 2, 271 - 145, 479 - 467, 14, 9); #endif @@ -730,7 +734,7 @@ inline void Draw_Motion_Menu() { } else { #ifdef USE_STRING_HEADINGS - Draw_Title("Motion"); // TODO: GET_TEXT_F + Draw_Title(GET_TEXT_F(MSG_MOTION)); #else DWIN_Frame_AreaCopy(1, 144, 16, 271 - 82, 479 - 453, 14, 8); #endif @@ -947,7 +951,7 @@ void Goto_MainMenu(void) { } else { #ifdef USE_STRING_HEADINGS - Draw_Title("Home"); // TODO: GET_TEXT + Draw_Title(GET_TEXT_F(MSG_MAIN)); #else DWIN_Frame_AreaCopy(1, 0, 2, 271 - 232, 479 - 467, 14, 9); #endif @@ -1714,7 +1718,7 @@ inline void Draw_Info_Menu() { } else { #ifdef USE_STRING_HEADINGS - Draw_Title("Info"); // TODO: GET_TEXT_F + Draw_Title(GET_TEXT_F(MSG_INFO_SCREEN)); #else DWIN_Frame_AreaCopy(1, 190, 16, 271 - 56, 479 - 453, 14, 8); #endif @@ -2091,7 +2095,7 @@ inline void Draw_Move_Menu() { } else { #ifdef USE_STRING_HEADINGS - Draw_Title("Move"); // TODO: GET_TEXT_F + Draw_Title(GET_TEXT_F(MSG_MOVE_AXIS)); #else DWIN_Frame_AreaCopy(1, 231, 2, 271 - 6, 479 - 467, 14, 8); #endif @@ -2245,7 +2249,7 @@ void Draw_Temperature_Menu() { } else { #ifdef USE_STRING_HEADINGS - Draw_Title("Temperature"); // TODO: GET_TEXT_F + Draw_Title(GET_TEXT_F(MSG_TEMPERATURE)); #else DWIN_Frame_AreaCopy(1, 56, 16, 271 - 130, 479 - 450 - 1, 14, 8); #endif diff --git a/Marlin/src/lcd/dwin/dwin_lcd.cpp b/Marlin/src/lcd/dwin/dwin_lcd.cpp index 3c14a9593..0ca6b8a3a 100644 --- a/Marlin/src/lcd/dwin/dwin_lcd.cpp +++ b/Marlin/src/lcd/dwin/dwin_lcd.cpp @@ -21,11 +21,11 @@ */ /******************************************************************************** - * @file dwin_lcd.c + * @file dwin_lcd.cpp * @author LEO / Creality3D * @date 2019/07/18 * @version 2.0.1 - * @brief 迪文å±æŽ§åˆ¶æ“作函数 + * @brief DWIN screen control functions ********************************************************************************/ #include "../../inc/MarlinConfigPre.h" @@ -68,7 +68,15 @@ inline void DWIN_String(size_t &i, char * const string) { i += len; } -/*å‘é€å½“å‰BUF中的数æ®ä»¥åŠåŒ…å°¾æ•°æ® len:整包数æ®é•¿åº¦*/ +inline void DWIN_String(size_t &i, const __FlashStringHelper * string) { + if (!string) return; + const size_t len = strlen_P((PGM_P)string); // cast it to PGM_P, which is basically const char *, and measure it using the _P version of strlen. + if (len == 0) return; + memcpy(&DWIN_SendBuf[i+1], string, len); + i += len; +} + +// Send the data in the buffer and the packet end inline void DWIN_Send(size_t &i) { ++i; LOOP_L_N(n, i) { MYSERIAL1.write(DWIN_SendBuf[n]); @@ -77,8 +85,9 @@ inline void DWIN_Send(size_t &i) { delayMicroseconds(1); } } -/*----------------------------------------------系统å˜é‡å‡½æ•°----------------------------------------------*/ -/*æ¡æ‰‹ 1: æ¡æ‰‹æˆåŠŸ 2: æ¡æ‰‹å¤±è´¥*/ +/*-------------------------------------- System variable function --------------------------------------*/ + +// Handshake (1: Success, 0: Fail) bool DWIN_Handshake(void) { size_t i = 0; DWIN_Byte(i, 0x00); @@ -105,7 +114,8 @@ bool DWIN_Handshake(void) { && databuf[3] == 'K' ); } -/*设定背光亮度 luminance:亮度(0x00~0xFF)*/ +// Set the backlight luminance +// luminance: (0x00-0xFF) void DWIN_Backlight_SetLuminance(const uint8_t luminance) { size_t i = 0; DWIN_Byte(i, 0x30); @@ -113,7 +123,8 @@ void DWIN_Backlight_SetLuminance(const uint8_t luminance) { DWIN_Send(i); } -/*设定画é¢æ˜¾ç¤ºæ–¹å‘ dir:0,0°; 1,90°; 2,180°; 3,270°*/ +// Set screen display direction +// dir: 0=0°, 1=90°, 2=180°, 3=270° void DWIN_Frame_SetDir(uint8_t dir) { size_t i = 0; DWIN_Byte(i, 0x34); @@ -123,15 +134,17 @@ void DWIN_Frame_SetDir(uint8_t dir) { DWIN_Send(i); } -/*更新显示*/ +// Update display void DWIN_UpdateLCD(void) { size_t i = 0; DWIN_Byte(i, 0x3D); DWIN_Send(i); } -/*----------------------------------------------绘图相关函数----------------------------------------------*/ -/*ç”»é¢æ¸…å± color:清å±é¢œè‰²*/ +/*---------------------------------------- Drawing functions ----------------------------------------*/ + +// Clear screen +// color: Clear screen color void DWIN_Frame_Clear(const uint16_t color) { size_t i = 0; DWIN_Byte(i, 0x01); @@ -139,7 +152,10 @@ void DWIN_Frame_Clear(const uint16_t color) { DWIN_Send(i); } -/*ç”»é¢ç”»çº¿ color:线段颜色 xStart:X起始åæ ‡ yStart:Y起始åæ ‡ xEnd:X终止åæ ‡ yEnd:Y终止åæ ‡*/ +// Draw a line +// color: Line segment color +// xStart/yStart: Start point +// xEnd/yEnd: End point void DWIN_Draw_Line(uint16_t color, uint16_t xStart, uint16_t yStart, uint16_t xEnd, uint16_t yEnd) { size_t i = 0; DWIN_Byte(i, 0x03); @@ -151,7 +167,11 @@ void DWIN_Draw_Line(uint16_t color, uint16_t xStart, uint16_t yStart, uint16_t x DWIN_Send(i); } -/*ç”»é¢ç”»çŸ©å½¢ mode:0,外框;1,å¡«å……;2,异或填充 color:颜色 xStart/yStart:矩形左上åæ ‡ xEnd/yEnd:矩形å³ä¸‹åæ ‡*/ +// Draw a rectangle +// mode: 0=frame, 1=fill, 2=XOR fill +// color: Rectangle color +// xStart/yStart: upper left point +// xEnd/yEnd: lower right point void DWIN_Draw_Rectangle(uint8_t mode, uint16_t color, uint16_t xStart, uint16_t yStart, uint16_t xEnd, uint16_t yEnd) { size_t i = 0; @@ -165,8 +185,14 @@ void DWIN_Draw_Rectangle(uint8_t mode, uint16_t color, DWIN_Send(i); } -/*ç”»é¢åŒºåŸŸç§»åŠ¨ mode:0,环移;1,平移 dir:0,å‘左移动;1,å‘å³ç§»åŠ¨;2,å‘上移动;3,å‘下移动 dis:移动è·ç¦» - color:填充颜色 xStart/yStart:选定区域左上åæ ‡ xEnd/yEnd:选定区域å³ä¸‹åæ ‡*/ +// +// Move a screen area +// mode: 0, circle shift; 1, translation +// dir: 0=left, 1=right, 2=up, 3=down +// dis: Distance +// color: Fill color +// xStart/yStart: upper left point +// xEnd/yEnd: bottom right point void DWIN_Frame_AreaMove(uint8_t mode, uint8_t dir, uint16_t dis, uint16_t color, uint16_t xStart, uint16_t yStart, uint16_t xEnd, uint16_t yEnd) { size_t i = 0; @@ -181,14 +207,21 @@ void DWIN_Frame_AreaMove(uint8_t mode, uint8_t dir, uint16_t dis, DWIN_Send(i); } -/*----------------------------------------------文本相关函数----------------------------------------------*/ -/*ç”»é¢æ˜¾ç¤ºå­—符串 widthAdjust:true,自调整字符宽度;false,ä¸è°ƒæ•´å­—符宽度 bShow:true,显示背景色;false,ä¸æ˜¾ç¤ºèƒŒæ™¯è‰² size:å­—å·å¤§å° - color:字符颜色 bColor:背景颜色 x/y:字符串左上åæ ‡ *string:字符串*/ +/*---------------------------------------- Text related functions ----------------------------------------*/ + +// Draw a string +// widthAdjust: true=self-adjust character width; false=no adjustment +// bShow: true=display background color; false=don't display background color +// size: Font size +// color: Character color +// bColor: Background color +// x/y: Upper-left coordinate of the string +// *string: The string void DWIN_Draw_String(bool widthAdjust, bool bShow, uint8_t size, uint16_t color, uint16_t bColor, uint16_t x, uint16_t y, char *string) { size_t i = 0; DWIN_Byte(i, 0x11); - DWIN_Byte(i, (widthAdjust? 0x80:0x00) | (bShow? 0x40:0x00) | size); + DWIN_Byte(i, (widthAdjust * 0x80) | (bShow * 0x40) | size); DWIN_Word(i, color); DWIN_Word(i, bColor); DWIN_Word(i, x); @@ -197,13 +230,34 @@ void DWIN_Draw_String(bool widthAdjust, bool bShow, uint8_t size, DWIN_Send(i); } -/*ç”»é¢æ˜¾ç¤ºæ­£æ•´æ•° bShow:true,显示背景色;false,ä¸æ˜¾ç¤ºèƒŒæ™¯è‰² zeroFill:true,补零;false,ä¸è¡¥é›¶ zeroMode:1,无效0显示为0; 0,无效0显示为空格 size:å­—å·å¤§å° - color:字符颜色 bColor:背景颜色 iNum:ä½æ•° x/y:å˜é‡å·¦ä¸Šåæ ‡ value:æ•´åž‹å˜é‡*/ +void DWIN_Draw_String(bool widthAdjust, bool bShow, uint8_t size, + uint16_t color, uint16_t bColor, uint16_t x, uint16_t y, const __FlashStringHelper *string) { + size_t i = 0; + DWIN_Byte(i, 0x11); + DWIN_Byte(i, (widthAdjust * 0x80) | (bShow * 0x40) | size); + DWIN_Word(i, color); + DWIN_Word(i, bColor); + DWIN_Word(i, x); + DWIN_Word(i, y); + DWIN_String(i, string); + DWIN_Send(i); +} + +// Draw a positive integer +// bShow: true=display background color; false=don't display background color +// zeroFill: true=zero fill; false=no zero fill +// zeroMode: 1=leading 0 displayed as 0; 0=leading 0 displayed as a space +// size: Font size +// color: Character color +// bColor: Background color +// iNum: Number of digits +// x/y: Upper-left coordinate +// value: Integer value void DWIN_Draw_IntValue(uint8_t bShow, bool zeroFill, uint8_t zeroMode, uint8_t size, uint16_t color, uint16_t bColor, uint8_t iNum, uint16_t x, uint16_t y, uint16_t value) { size_t i = 0; DWIN_Byte(i, 0x14); - DWIN_Byte(i, (bShow? 0x80:0x00) | (zeroFill? 0x20:0x00) | (zeroMode? 0x10:0x00) | size); + DWIN_Byte(i, (bShow * 0x80) | (zeroFill * 0x20) | (zeroMode * 0x10) | size); DWIN_Word(i, color); DWIN_Word(i, bColor); DWIN_Byte(i, iNum); @@ -214,7 +268,7 @@ void DWIN_Draw_IntValue(uint8_t bShow, bool zeroFill, uint8_t zeroMode, uint8_t for (char count = 0; count < 8; count++) { DWIN_Byte(i, value); value >>= 8; - if ((value&0xFF) == 0x00) break; + if (!(value & 0xFF)) break; } #else // Write a big-endian 64 bit integer @@ -229,14 +283,23 @@ void DWIN_Draw_IntValue(uint8_t bShow, bool zeroFill, uint8_t zeroMode, uint8_t DWIN_Send(i); } -/*ç”»é¢æ˜¾ç¤ºæµ®ç‚¹æ•° bShow:true,显示背景色;false,ä¸æ˜¾ç¤ºèƒŒæ™¯è‰² zeroFill:true,补零;false,ä¸è¡¥é›¶ zeroMode:1,无效0显示为0; 0,无效0显示为空格 size:å­—å·å¤§å° - color:字符颜色 bColor:背景颜色 iNum:æ•´æ•°ä½æ•° fNum:å°æ•°ä½æ•° x/y:å˜é‡å·¦ä¸Šåæ ‡ value:浮点数å˜é‡*/ +// Draw a floating point number +// bShow: true=display background color; false=don't display background color +// zeroFill: true=zero fill; false=no zero fill +// zeroMode: 1=leading 0 displayed as 0; 0=leading 0 displayed as a space +// size: Font size +// color: Character color +// bColor: Background color +// iNum: Number of whole digits +// fNum: Number of decimal digits +// x/y: Upper-left point +// value: Float value void DWIN_Draw_FloatValue(uint8_t bShow, bool zeroFill, uint8_t zeroMode, uint8_t size, uint16_t color, uint16_t bColor, uint8_t iNum, uint8_t fNum, uint16_t x, uint16_t y, long value) { //uint8_t *fvalue = (uint8_t*)&value; size_t i = 0; DWIN_Byte(i, 0x14); - DWIN_Byte(i, (bShow? 0x80:0x00) | (zeroFill? 0x20:0x00) | (zeroMode? 0x10:0x00) | size); + DWIN_Byte(i, (bShow * 0x80) | (zeroFill * 0x20) | (zeroMode * 0x10) | size); DWIN_Word(i, color); DWIN_Word(i, bColor); DWIN_Byte(i, iNum); @@ -253,16 +316,21 @@ void DWIN_Draw_FloatValue(uint8_t bShow, bool zeroFill, uint8_t zeroMode, uint8_ DWIN_Send(i); } -/*----------------------------------------------图片相关函数----------------------------------------------*/ -/*jpg图片显示并缓存在#0虚拟显示区 id:图片ID*/ +/*---------------------------------------- Picture related functions ----------------------------------------*/ + +// Draw JPG and cached in #0 virtual display area +// id: Picture ID void DWIN_JPG_ShowAndCache(const uint8_t id) { size_t i = 0; DWIN_Word(i, 0x2200); DWIN_Byte(i, id); - DWIN_Send(i); //AA 23 00 00 00 00 08 00 01 02 03 CC 33 C3 3C + DWIN_Send(i); // AA 23 00 00 00 00 08 00 01 02 03 CC 33 C3 3C } -/*图标显示 libID:图标库ID picID:图标ID x/y:图标左上åæ ‡*/ +// Draw an Icon +// libID: Icon library ID +// picID: Icon ID +// x/y: Upper-left point void DWIN_ICON_Show(uint8_t libID, uint8_t picID, uint16_t x, uint16_t y) { NOMORE(x, DWIN_WIDTH - 1); NOMORE(y, DWIN_HEIGHT - 1); // -- ozy -- srl @@ -275,7 +343,8 @@ void DWIN_ICON_Show(uint8_t libID, uint8_t picID, uint16_t x, uint16_t y) { DWIN_Send(i); } -/*jpg图片解压到#1虚拟显示区 id:图片ID*/ +// Unzip the JPG picture to virtual display area #1 +// id: picture ID void DWIN_JPG_CacheToN(uint8_t n, uint8_t id) { size_t i = 0; DWIN_Byte(i, 0x25); @@ -284,7 +353,11 @@ void DWIN_JPG_CacheToN(uint8_t n, uint8_t id) { DWIN_Send(i); } -/*从虚拟显示区å¤åˆ¶åŒºåŸŸè‡³å½“å‰ç”»é¢ cacheID:è™šæ‹ŸåŒºå· xStart/yStart:虚拟区左上åæ ‡ xEnd/yEnd:虚拟区å³ä¸‹åæ ‡ x/y:当å‰ç”»é¢ç²˜è´´åæ ‡*/ +// Copy area from virtual display area to current screen +// cacheID: virtual area number +// xStart/yStart: Upper-left of virtual area +// xEnd/yEnd: Lower-right of virtual area +// x/y: Screen paste point void DWIN_Frame_AreaCopy(uint8_t cacheID, uint16_t xStart, uint16_t yStart, uint16_t xEnd, uint16_t yEnd, uint16_t x, uint16_t y) { size_t i = 0; From dd587d45db4bb7b4e59d8d81b2ac889339231022 Mon Sep 17 00:00:00 2001 From: Sebastien Andrivet Date: Mon, 3 Aug 2020 03:10:16 +0200 Subject: [PATCH 028/194] Fix Duplicator i3 Plus pin diagram (#18862) --- Marlin/src/pins/ramps/pins_DUPLICATOR_I3_PLUS.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Marlin/src/pins/ramps/pins_DUPLICATOR_I3_PLUS.h b/Marlin/src/pins/ramps/pins_DUPLICATOR_I3_PLUS.h index 21c3f6dbf..de80851df 100644 --- a/Marlin/src/pins/ramps/pins_DUPLICATOR_I3_PLUS.h +++ b/Marlin/src/pins/ramps/pins_DUPLICATOR_I3_PLUS.h @@ -113,7 +113,7 @@ * # Pin | ATMEGA2560 Pin | Arduino # * ################################## * # 1 | 52 / PG1 (!RD) | 40 # - * # 2 | 95 / PF2 (A2) | 2 # + * # 2 | 95 / PF2 (A2) | 56 # * # 3 | 54 / PC1 (A9) | 36 # * # 4 | 53 / PC0 (A8) | 37 # * # 5 | 56 / PC3 (A11) | 34 # From c175cce56e28e578b808309a09e48b1a92da70a3 Mon Sep 17 00:00:00 2001 From: FLYmaker <49380822+FLYmaker@users.noreply.github.com> Date: Mon, 3 Aug 2020 09:13:57 +0800 Subject: [PATCH 029/194] Fix FLYF407ZG pins (#18865) --- Marlin/src/pins/stm32f4/pins_FLYF407ZG.h | 42 ++- .../variants/FLY_F407ZG/PeripheralPins.c | 338 +++++++++--------- .../variants/FLY_F407ZG/variant.cpp | 226 ++++++------ .../PlatformIO/variants/FLY_F407ZG/variant.h | 235 ++++++------ 4 files changed, 442 insertions(+), 399 deletions(-) diff --git a/Marlin/src/pins/stm32f4/pins_FLYF407ZG.h b/Marlin/src/pins/stm32f4/pins_FLYF407ZG.h index 497db5817..499edc8dc 100644 --- a/Marlin/src/pins/stm32f4/pins_FLYF407ZG.h +++ b/Marlin/src/pins/stm32f4/pins_FLYF407ZG.h @@ -31,7 +31,26 @@ #define BOARD_WEBSITE_URL "github.com/FLYmaker/FLYF407ZG" #define DEFAULT_MACHINE_NAME BOARD_INFO_NAME -#define MARLIN_EEPROM_SIZE 0x1000 // 4KB +// +// EEPROM Emulation +// +#if NO_EEPROM_SELECTED + #define FLASH_EEPROM_EMULATION + //#define SRAM_EEPROM_EMULATION + //#define I2C_EEPROM +#endif + +#if ENABLED(FLASH_EEPROM_EMULATION) + // Decrease delays and flash wear by spreading writes across + // the 128kB sector allocated for EEPROM emulation. + #define FLASH_EEPROM_LEVELING +#elif ENABLED(I2C_EEPROM) + #define MARLIN_EEPROM_SIZE 0x2000 // 8KB +#endif + +#ifndef MARLIN_EEPROM_SIZE + #define MARLIN_EEPROM_SIZE 0x1000 // 4KB +#endif // // Servos @@ -139,14 +158,14 @@ #define HEATER_2_PIN PE6 #define HEATER_3_PIN PE5 #define HEATER_4_PIN PE4 -#define HEATER_5_PIN PA2 +#define HEATER_5_PIN PE3 #define HEATER_BED_PIN PE2 #ifndef FAN_PIN #define FAN_PIN PF8 #endif #define FAN1_PIN PF9 -#define FAN2_PIN PE3 +#define FAN2_PIN PA2 #define FAN3_PIN PA1 #define FAN4_PIN PE13 #define FAN5_PIN PB11 @@ -168,8 +187,8 @@ #endif #if SD_CONNECTION_IS(ONBOARD) - #define SDIO_SUPPORT // Use SDIO for onboard SD + #define SDIO_SUPPORT // Use SDIO for onboard SD #ifndef SDIO_SUPPORT #define SOFTWARE_SPI // Use soft SPI for onboard SD #define SDSS SDIO_D3_PIN @@ -177,6 +196,15 @@ #define MISO_PIN SDIO_D0_PIN #define MOSI_PIN SDIO_CMD_PIN #endif + +#elif SD_CONNECTION_IS(LCD) + + #define SCK_PIN PB13 + #define MISO_PIN PB14 + #define MOSI_PIN PB15 + #define SDSS PF11 + #define SD_DETECT_PIN PB2 + #endif // @@ -232,11 +260,7 @@ // // LCD / Controller // -#define SCK_PIN PB13 -#define MISO_PIN PB14 -#define MOSI_PIN PB15 -#define SDSS PF11 -#define SD_DETECT_PIN PB2 + #define BEEPER_PIN PB10 #define LCD_PINS_RS PE12 #define LCD_PINS_ENABLE PE14 diff --git a/buildroot/share/PlatformIO/variants/FLY_F407ZG/PeripheralPins.c b/buildroot/share/PlatformIO/variants/FLY_F407ZG/PeripheralPins.c index 5cce88b17..d621325aa 100644 --- a/buildroot/share/PlatformIO/variants/FLY_F407ZG/PeripheralPins.c +++ b/buildroot/share/PlatformIO/variants/FLY_F407ZG/PeripheralPins.c @@ -45,26 +45,26 @@ const PinMap PinMap_ADC[] = { {PA_0, ADC1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 0, 0)}, // ADC1_IN0 // {PA_0, ADC2, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 0, 0)}, // ADC2_IN0 // {PA_0, ADC3, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 0, 0)}, // ADC3_IN0 - {PA_1, ADC1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 1, 0)}, // ADC1_IN1 + //{PA_1, ADC1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 1, 0)}, // ADC1_IN1 // {PA_1, ADC2, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 1, 0)}, // ADC2_IN1 // {PA_1, ADC3, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 1, 0)}, // ADC3_IN1 // {PA_2, ADC1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 2, 0)}, // ADC1_IN2 - {PA_2, ADC2, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 2, 0)}, // ADC2_IN2 + //{PA_2, ADC2, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 2, 0)}, // ADC2_IN2 // {PA_2, ADC3, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 2, 0)}, // ADC3_IN2 // {PA_3, ADC1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 3, 0)}, // ADC1_IN3 // {PA_3, ADC2, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 3, 0)}, // ADC2_IN3 - {PA_3, ADC3, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 3, 0)}, // ADC3_IN3 - {PA_4, ADC1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 4, 0)}, // ADC1_IN4 + //{PA_3, ADC3, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 3, 0)}, // ADC3_IN3 + //{PA_4, ADC1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 4, 0)}, // ADC1_IN4 // {PA_4, ADC2, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 4, 0)}, // ADC2_IN4 // {PA_5, ADC1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 5, 0)}, // ADC1_IN5 - {PA_5, ADC2, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 5, 0)}, // ADC2_IN5 - {PA_6, ADC1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 6, 0)}, // ADC1_IN6 + //{PA_5, ADC2, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 5, 0)}, // ADC2_IN5 + //{PA_6, ADC1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 6, 0)}, // ADC1_IN6 // {PA_6, ADC2, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 6, 0)}, // ADC2_IN6 - {PA_7, ADC1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 7, 0)}, // ADC1_IN7 + //{PA_7, ADC1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 7, 0)}, // ADC1_IN7 // {PA_7, ADC2, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 7, 0)}, // ADC2_IN7 // {PB_0, ADC1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 8, 0)}, // ADC1_IN8 - {PB_0, ADC2, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 8, 0)}, // ADC2_IN8 - {PB_1, ADC1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 9, 0)}, // ADC1_IN9 + //{PB_0, ADC2, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 8, 0)}, // ADC2_IN8 + //{PB_1, ADC1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 9, 0)}, // ADC1_IN9 // {PB_1, ADC2, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 9, 0)}, // ADC2_IN9 // {PC_0, ADC1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 10, 0)}, // ADC1_IN10 // {PC_0, ADC2, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 10, 0)}, // ADC2_IN10 @@ -73,21 +73,21 @@ const PinMap PinMap_ADC[] = { // {PC_1, ADC2, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 11, 0)}, // ADC2_IN11 // {PC_1, ADC3, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 11, 0)}, // ADC3_IN11 // {PC_2, ADC1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 12, 0)}, // ADC1_IN12 - {PC_2, ADC2, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 12, 0)}, // ADC2_IN12 + //{PC_2, ADC2, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 12, 0)}, // ADC2_IN12 // {PC_2, ADC3, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 12, 0)}, // ADC3_IN12 // {PC_3, ADC1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 13, 0)}, // ADC1_IN13 // {PC_3, ADC2, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 13, 0)}, // ADC2_IN13 - {PC_3, ADC3, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 13, 0)}, // ADC3_IN13 + //{PC_3, ADC3, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 13, 0)}, // ADC3_IN13 // {PC_4, ADC1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 14, 0)}, // ADC1_IN14 - {PC_4, ADC2, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 14, 0)}, // ADC2_IN14 + //{PC_4, ADC2, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 14, 0)}, // ADC2_IN14 // {PC_5, ADC1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 15, 0)}, // ADC1_IN15 - {PC_5, ADC2, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 15, 0)}, // ADC2_IN15 + //{PC_5, ADC2, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 15, 0)}, // ADC2_IN15 {PF_3, ADC3, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 9, 0)}, // ADC3_IN9 {PF_4, ADC3, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 14, 0)}, // ADC3_IN14 {PF_5, ADC3, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 15, 0)}, // ADC3_IN15 - {PF_6, ADC3, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 4, 0)}, // ADC3_IN4 - {PF_7, ADC3, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 5, 0)}, // ADC3_IN5 - {PF_8, ADC3, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 6, 0)}, // ADC3_IN6 + //{PF_6, ADC3, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 4, 0)}, // ADC3_IN4 + //{PF_7, ADC3, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 5, 0)}, // ADC3_IN5 + //{PF_8, ADC3, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 6, 0)}, // ADC3_IN6 // {PF_9, ADC3, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 7, 0)}, // ADC3_IN7 {PF_10, ADC3, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 8, 0)}, // ADC3_IN8 {NC, NP, 0} @@ -98,8 +98,8 @@ const PinMap PinMap_ADC[] = { #ifdef HAL_DAC_MODULE_ENABLED const PinMap PinMap_DAC[] = { - {PA_4, DAC1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 1, 0)}, // DAC_OUT1 - {PA_5, DAC1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 2, 0)}, // DAC_OUT2 + // {PA_4, DAC1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 1, 0)}, // DAC_OUT1 + // {PA_5, DAC1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 2, 0)}, // DAC_OUT2 {NC, NP, 0} }; #endif @@ -109,21 +109,21 @@ const PinMap PinMap_DAC[] = { #ifdef HAL_I2C_MODULE_ENABLED const PinMap PinMap_I2C_SDA[] = { {PB_7, I2C1, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_NOPULL, GPIO_AF4_I2C1)}, - {PB_9, I2C1, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_NOPULL, GPIO_AF4_I2C1)}, - {PB_11, I2C2, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_NOPULL, GPIO_AF4_I2C2)}, - {PC_9, I2C3, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_NOPULL, GPIO_AF4_I2C3)}, - {PF_0, I2C2, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_NOPULL, GPIO_AF4_I2C2)}, + //{PB_9, I2C1, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_NOPULL, GPIO_AF4_I2C1)}, + //{PB_11, I2C2, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_NOPULL, GPIO_AF4_I2C2)}, + //{PC_9, I2C3, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_NOPULL, GPIO_AF4_I2C3)}, + //{PF_0, I2C2, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_NOPULL, GPIO_AF4_I2C2)}, {NC, NP, 0} }; #endif #ifdef HAL_I2C_MODULE_ENABLED const PinMap PinMap_I2C_SCL[] = { - {PA_8, I2C3, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_NOPULL, GPIO_AF4_I2C3)}, + //{PA_8, I2C3, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_NOPULL, GPIO_AF4_I2C3)}, {PB_6, I2C1, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_NOPULL, GPIO_AF4_I2C1)}, - {PB_8, I2C1, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_NOPULL, GPIO_AF4_I2C1)}, - {PB_10, I2C2, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_NOPULL, GPIO_AF4_I2C2)}, - {PF_1, I2C2, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_NOPULL, GPIO_AF4_I2C2)}, + //{PB_8, I2C1, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_NOPULL, GPIO_AF4_I2C1)}, + //{PB_10, I2C2, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_NOPULL, GPIO_AF4_I2C2)}, + //{PF_1, I2C2, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_NOPULL, GPIO_AF4_I2C2)}, {NC, NP, 0} }; #endif @@ -132,78 +132,93 @@ const PinMap PinMap_I2C_SCL[] = { #ifdef HAL_TIM_MODULE_ENABLED const PinMap PinMap_PWM[] = { - {PA_0, TIM2, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM2, 1, 0)}, // TIM2_CH1 + + + + {PA_1, TIM2, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM2, 2, 0)}, // TIM2_CH2 + {PA_2, TIM2, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM2, 3, 0)}, // TIM2_CH3 + {PA_8, TIM1, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM1, 1, 0)}, // TIM1_CH1 + {PB_8, TIM4, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM4, 3, 0)}, // TIM4_CH3 + {PB_9, TIM4, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM4, 4, 0)}, // TIM4_CH4 + {PB_11, TIM2, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM2, 4, 0)}, // TIM2_CH4 + {PC_6, TIM3, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM3, 1, 0)}, // TIM3_CH1 + {PC_7, TIM3, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM3, 2, 0)}, // TIM3_CH2 + {PD_12, TIM4, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM4, 1, 0)}, // TIM4_CH1 + {PD_13, TIM4, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM4, 2, 0)}, // TIM4_CH2 + {PD_14, TIM4, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM4, 3, 0)}, // TIM4_CH3 + {PD_15, TIM4, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM4, 4, 0)}, // TIM4_CH4 + {PE_5, TIM9, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF3_TIM9, 1, 0)}, // TIM9_CH1 + {PE_6, TIM9, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF3_TIM9, 2, 0)}, // TIM9_CH2 + //{PE_11, TIM1, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM1, 2, 0)}, // TIM1_CH2 + {PE_13, TIM1, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM1, 3, 0)}, // TIM1_CH3 + {PF_6, TIM10, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF3_TIM10, 1, 0)}, // TIM10_CH1 + {PF_7, TIM11, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF3_TIM11, 1, 0)}, // TIM11_CH1 + {PF_8, TIM13, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF9_TIM13, 1, 0)}, // TIM13_CH1 + {PF_9, TIM14, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF9_TIM14, 1, 0)}, // TIM14_CH1 + //{PA_0, TIM2, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM2, 1, 0)}, // TIM2_CH1 // {PA_0, TIM5, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM5, 1, 0)}, // TIM5_CH1 - {PA_1, TIM2, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM2, 2, 0)}, // TIM2_CH2 + // {PA_1, TIM5, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM5, 2, 0)}, // TIM5_CH2 - {PA_2, TIM2, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM2, 3, 0)}, // TIM2_CH3 + // {PA_2, TIM5, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM5, 3, 0)}, // TIM5_CH3 // {PA_2, TIM9, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF3_TIM9, 1, 0)}, // TIM9_CH1 - {PA_3, TIM2, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM2, 4, 0)}, // TIM2_CH4 - // {PA_3, TIM5, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM5, 4, 0)}, // TIM5_CH4 + //{PA_3, TIM2, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM2, 4, 0)}, // TIM2_CH4 + // {PA_3, TIM5, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM5, 4, 0)}, // TIM5_CH4 // {PA_3, TIM9, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF3_TIM9, 2, 0)}, // TIM9_CH2 - {PA_5, TIM2, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM2, 1, 0)}, // TIM2_CH1 + // {PA_5, TIM2, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM2, 1, 0)}, // TIM2_CH1 // {PA_5, TIM8, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF3_TIM8, 1, 1)}, // TIM8_CH1N - {PA_6, TIM3, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM3, 1, 0)}, // TIM3_CH1 + // {PA_6, TIM3, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM3, 1, 0)}, // TIM3_CH1 // {PA_6, TIM13, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF9_TIM13, 1, 0)}, // TIM13_CH1 // {PA_7, TIM1, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM1, 1, 1)}, // TIM1_CH1N - {PA_7, TIM3, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM3, 2, 0)}, // TIM3_CH2 +// {PA_7, TIM3, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM3, 2, 0)}, // TIM3_CH2 // {PA_7, TIM8, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF3_TIM8, 1, 1)}, // TIM8_CH1N // {PA_7, TIM14, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF9_TIM14, 1, 0)}, // TIM14_CH1 - {PA_8, TIM1, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM1, 1, 0)}, // TIM1_CH1 - {PA_9, TIM1, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM1, 2, 0)}, // TIM1_CH2 - {PA_10, TIM1, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM1, 3, 0)}, // TIM1_CH3 - {PA_11, TIM1, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM1, 4, 0)}, // TIM1_CH4 + + // {PA_9, TIM1, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM1, 2, 0)}, // TIM1_CH2 + // {PA_10, TIM1, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM1, 3, 0)}, // TIM1_CH3 + // {PA_11, TIM1, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM1, 4, 0)}, // TIM1_CH4 // {PA_15, TIM2, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM2, 1, 0)}, // TIM2_CH1 // {PB_0, TIM1, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM1, 2, 1)}, // TIM1_CH2N - {PB_0, TIM3, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM3, 3, 0)}, // TIM3_CH3 +// {PB_0, TIM3, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM3, 3, 0)}, // TIM3_CH3 // {PB_0, TIM8, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF3_TIM8, 2, 1)}, // TIM8_CH2N // {PB_1, TIM1, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM1, 3, 1)}, // TIM1_CH3N - {PB_1, TIM3, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM3, 4, 0)}, // TIM3_CH4 + // {PB_1, TIM3, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM3, 4, 0)}, // TIM3_CH4 // {PB_1, TIM8, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF3_TIM8, 3, 1)}, // TIM8_CH3N // {PB_3, TIM2, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM2, 2, 0)}, // TIM2_CH2 - {PB_4, TIM3, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM3, 1, 0)}, // TIM3_CH1 - {PB_5, TIM3, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM3, 2, 0)}, // TIM3_CH2 - {PB_6, TIM4, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM4, 1, 0)}, // TIM4_CH1 - {PB_7, TIM4, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM4, 2, 0)}, // TIM4_CH2 - {PB_8, TIM4, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM4, 3, 0)}, // TIM4_CH3 - {PB_8, TIM10, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF3_TIM10, 1, 0)}, // TIM10_CH1 - {PB_9, TIM4, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM4, 4, 0)}, // TIM4_CH4 - {PB_9, TIM11, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF3_TIM11, 1, 0)}, // TIM11_CH1 - {PB_10, TIM2, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM2, 3, 0)}, // TIM2_CH3 - {PB_11, TIM2, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM2, 4, 0)}, // TIM2_CH4 - {PB_13, TIM1, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM1, 1, 1)}, // TIM1_CH1N - {PB_14, TIM1, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM1, 2, 1)}, // TIM1_CH2N - {PB_14, TIM8, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF3_TIM8, 2, 1)}, // TIM8_CH2N - {PB_14, TIM12, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF9_TIM12, 1, 0)}, // TIM12_CH1 - {PB_15, TIM1, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM1, 3, 1)}, // TIM1_CH3N - {PB_15, TIM8, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF3_TIM8, 3, 1)}, // TIM8_CH3N - {PB_15, TIM12, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF9_TIM12, 2, 0)}, // TIM12_CH2 - {PC_6, TIM3, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM3, 1, 0)}, // TIM3_CH1 - {PC_6, TIM8, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF3_TIM8, 1, 0)}, // TIM8_CH1 - {PC_7, TIM3, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM3, 2, 0)}, // TIM3_CH2 - {PC_7, TIM8, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF3_TIM8, 2, 0)}, // TIM8_CH2 - {PC_8, TIM3, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM3, 3, 0)}, // TIM3_CH3 - {PC_8, TIM8, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF3_TIM8, 3, 0)}, // TIM8_CH3 - {PC_9, TIM3, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM3, 4, 0)}, // TIM3_CH4 - {PC_9, TIM8, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF3_TIM8, 4, 0)}, // TIM8_CH4 - {PD_12, TIM4, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM4, 1, 0)}, // TIM4_CH1 - {PD_13, TIM4, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM4, 2, 0)}, // TIM4_CH2 - {PD_14, TIM4, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM4, 3, 0)}, // TIM4_CH3 - {PD_15, TIM4, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM4, 4, 0)}, // TIM4_CH4 - {PE_5, TIM9, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF3_TIM9, 1, 0)}, // TIM9_CH1 - {PE_6, TIM9, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF3_TIM9, 2, 0)}, // TIM9_CH2 - {PE_8, TIM1, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM1, 1, 1)}, // TIM1_CH1N - {PE_9, TIM1, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM1, 1, 0)}, // TIM1_CH1 - {PE_10, TIM1, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM1, 2, 1)}, // TIM1_CH2N - {PE_11, TIM1, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM1, 2, 0)}, // TIM1_CH2 - {PE_12, TIM1, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM1, 3, 1)}, // TIM1_CH3N - {PE_13, TIM1, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM1, 3, 0)}, // TIM1_CH3 - {PE_14, TIM1, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM1, 4, 0)}, // TIM1_CH4 - {PF_6, TIM10, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF3_TIM10, 1, 0)}, // TIM10_CH1 - {PF_7, TIM11, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF3_TIM11, 1, 0)}, // TIM11_CH1 - {PF_8, TIM13, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF9_TIM13, 1, 0)}, // TIM13_CH1 - {PF_9, TIM14, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF9_TIM14, 1, 0)}, // TIM14_CH1 + //{PB_4, TIM3, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM3, 1, 0)}, // TIM3_CH1 + //{PB_5, TIM3, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM3, 2, 0)}, // TIM3_CH2 + //{PB_6, TIM4, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM4, 1, 0)}, // TIM4_CH1 + //{PB_7, TIM4, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM4, 2, 0)}, // TIM4_CH2 + + // {PB_8, TIM10, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF3_TIM10, 1, 0)}, // TIM10_CH1 + + // {PB_9, TIM11, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF3_TIM11, 1, 0)}, // TIM11_CH1 + // {PB_10, TIM2, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM2, 3, 0)}, // TIM2_CH3 + + // {PB_13, TIM1, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM1, 1, 1)}, // TIM1_CH1N + // {PB_14, TIM1, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM1, 2, 1)}, // TIM1_CH2N + //{PB_14, TIM8, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF3_TIM8, 2, 1)}, // TIM8_CH2N + //{PB_14, TIM12, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF9_TIM12, 1, 0)}, // TIM12_CH1 + //{PB_15, TIM1, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM1, 3, 1)}, // TIM1_CH3N + // {PB_15, TIM8, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF3_TIM8, 3, 1)}, // TIM8_CH3N + // {PB_15, TIM12, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF9_TIM12, 2, 0)}, // TIM12_CH2 + + //{PC_6, TIM8, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF3_TIM8, 1, 0)}, // TIM8_CH1 + + //{PC_7, TIM8, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF3_TIM8, 2, 0)}, // TIM8_CH2 + // {PC_8, TIM3, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM3, 3, 0)}, // TIM3_CH3 + // {PC_8, TIM8, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF3_TIM8, 3, 0)}, // TIM8_CH3 + // {PC_9, TIM3, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM3, 4, 0)}, // TIM3_CH4 + // {PC_9, TIM8, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF3_TIM8, 4, 0)}, // TIM8_CH4 + + //{PE_8, TIM1, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM1, 1, 1)}, // TIM1_CH1N + //{PE_9, TIM1, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM1, 1, 0)}, // TIM1_CH1 + //{PE_10, TIM1, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM1, 2, 1)}, // TIM1_CH2N + + // {PE_12, TIM1, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM1, 3, 1)}, // TIM1_CH3N + + //{PE_14, TIM1, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM1, 4, 0)}, // TIM1_CH4 + {NC, NP, 0} }; #endif @@ -212,17 +227,17 @@ const PinMap PinMap_PWM[] = { #ifdef HAL_UART_MODULE_ENABLED const PinMap PinMap_UART_TX[] = { - {PA_0, UART4, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF8_UART4)}, - {PA_2, USART2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF7_USART2)}, + //{PA_0, UART4, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF8_UART4)}, + //{PA_2, USART2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF7_USART2)}, {PA_9, USART1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF7_USART1)}, - {PB_6, USART1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF7_USART1)}, - {PB_10, USART3, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF7_USART3)}, - {PC_6, USART6, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF8_USART6)}, - // {PC_10, UART4, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF8_UART4)}, - {PC_10, USART3, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF7_USART3)}, - {PC_12, UART5, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF8_UART5)}, - {PD_5, USART2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF7_USART2)}, - {PD_8, USART3, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF7_USART3)}, + //{PB_6, USART1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF7_USART1)}, + //{PB_10, USART3, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF7_USART3)}, + //{PC_6, USART6, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF8_USART6)}, + //{PC_10, UART4, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF8_UART4)}, + //{PC_10, USART3, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF7_USART3)}, + //{PC_12, UART5, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF8_UART5)}, + //{PD_5, USART2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF7_USART2)}, + //{PD_8, USART3, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF7_USART3)}, {PG_14, USART6, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF8_USART6)}, {NC, NP, 0} }; @@ -230,17 +245,17 @@ const PinMap PinMap_UART_TX[] = { #ifdef HAL_UART_MODULE_ENABLED const PinMap PinMap_UART_RX[] = { - {PA_1, UART4, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF8_UART4)}, - {PA_3, USART2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF7_USART2)}, + //{PA_1, UART4, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF8_UART4)}, + //{PA_3, USART2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF7_USART2)}, {PA_10, USART1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF7_USART1)}, - {PB_7, USART1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF7_USART1)}, - {PB_11, USART3, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF7_USART3)}, - {PC_7, USART6, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF8_USART6)}, - // {PC_11, UART4, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF8_UART4)}, - {PC_11, USART3, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF7_USART3)}, - {PD_2, UART5, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF8_UART5)}, - {PD_6, USART2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF7_USART2)}, - {PD_9, USART3, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF7_USART3)}, + //{PB_7, USART1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF7_USART1)}, + //{PB_11, USART3, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF7_USART3)}, + //{PC_7, USART6, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF8_USART6)}, + //{PC_11, UART4, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF8_UART4)}, + //{PC_11, USART3, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF7_USART3)}, + //{PD_2, UART5, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF8_UART5)}, + //{PD_6, USART2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF7_USART2)}, + //{PD_9, USART3, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF7_USART3)}, {PG_9, USART6, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF8_USART6)}, {NC, NP, 0} }; @@ -248,26 +263,26 @@ const PinMap PinMap_UART_RX[] = { #ifdef HAL_UART_MODULE_ENABLED const PinMap PinMap_UART_RTS[] = { - {PA_1, USART2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF7_USART2)}, - {PA_12, USART1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF7_USART1)}, - {PB_14, USART3, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF7_USART3)}, - {PD_4, USART2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF7_USART2)}, - {PD_12, USART3, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF7_USART3)}, - {PG_8, USART6, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF8_USART6)}, - {PG_12, USART6, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF8_USART6)}, +// {PA_1, USART2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF7_USART2)}, +// {PA_12, USART1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF7_USART1)}, +// {PB_14, USART3, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF7_USART3)}, +// {PD_4, USART2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF7_USART2)}, +// {PD_12, USART3, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF7_USART3)}, +// {PG_8, USART6, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF8_USART6)}, +// {PG_12, USART6, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF8_USART6)}, {NC, NP, 0} }; #endif #ifdef HAL_UART_MODULE_ENABLED const PinMap PinMap_UART_CTS[] = { - {PA_0, USART2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF7_USART2)}, - {PA_11, USART1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF7_USART1)}, - {PB_13, USART3, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF7_USART3)}, - {PD_3, USART2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF7_USART2)}, - {PD_11, USART3, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF7_USART3)}, - {PG_13, USART6, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF8_USART6)}, - {PG_15, USART6, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF8_USART6)}, +// {PA_0, USART2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF7_USART2)}, +// {PA_11, USART1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF7_USART1)}, +// {PB_13, USART3, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF7_USART3)}, +// {PD_3, USART2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF7_USART2)}, +// {PD_11, USART3, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF7_USART3)}, +// {PG_13, USART6, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF8_USART6)}, +// {PG_15, USART6, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF8_USART6)}, {NC, NP, 0} }; #endif @@ -277,11 +292,11 @@ const PinMap PinMap_UART_CTS[] = { #ifdef HAL_SPI_MODULE_ENABLED const PinMap PinMap_SPI_MOSI[] = { {PA_7, SPI1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_SPI1)}, - {PB_5, SPI1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_SPI1)}, +//{PB_5, SPI1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_SPI1)}, {PB_5, SPI3, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF6_SPI3)}, {PB_15, SPI2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_SPI2)}, - {PC_3, SPI2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_SPI2)}, - {PC_12, SPI3, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF6_SPI3)}, +//{PC_3, SPI2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_SPI2)}, +//{PC_12, SPI3, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF6_SPI3)}, {NC, NP, 0} }; #endif @@ -289,11 +304,11 @@ const PinMap PinMap_SPI_MOSI[] = { #ifdef HAL_SPI_MODULE_ENABLED const PinMap PinMap_SPI_MISO[] = { {PA_6, SPI1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_SPI1)}, - {PB_4, SPI1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_SPI1)}, +//{PB_4, SPI1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_SPI1)}, {PB_4, SPI3, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF6_SPI3)}, {PB_14, SPI2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_SPI2)}, - {PC_2, SPI2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_SPI2)}, - {PC_11, SPI3, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF6_SPI3)}, +//{PC_2, SPI2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_SPI2)}, +//{PC_11, SPI3, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF6_SPI3)}, {NC, NP, 0} }; #endif @@ -301,11 +316,11 @@ const PinMap PinMap_SPI_MISO[] = { #ifdef HAL_SPI_MODULE_ENABLED const PinMap PinMap_SPI_SCLK[] = { {PA_5, SPI1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_SPI1)}, - {PB_3, SPI1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_SPI1)}, +//{PB_3, SPI1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_SPI1)}, {PB_3, SPI3, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF6_SPI3)}, - {PB_10, SPI2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_SPI2)}, +//{PB_10, SPI2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_SPI2)}, {PB_13, SPI2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_SPI2)}, - {PC_10, SPI3, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF6_SPI3)}, +//{PC_10, SPI3, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF6_SPI3)}, {NC, NP, 0} }; #endif @@ -313,11 +328,11 @@ const PinMap PinMap_SPI_SCLK[] = { #ifdef HAL_SPI_MODULE_ENABLED const PinMap PinMap_SPI_SSEL[] = { {PA_4, SPI1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_SPI1)}, - {PA_4, SPI3, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF6_SPI3)}, - {PA_15, SPI1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_SPI1)}, - {PA_15, SPI3, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF6_SPI3)}, - {PB_9, SPI2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_SPI2)}, - {PB_12, SPI2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_SPI2)}, +//{PA_4, SPI3, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF6_SPI3)}, +//{PA_15, SPI1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_SPI1)}, +//{PA_15, SPI3, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF6_SPI3)}, +//{PB_9, SPI2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_SPI2)}, +//{PB_12, SPI2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_SPI2)}, {NC, NP, 0} }; #endif @@ -326,22 +341,22 @@ const PinMap PinMap_SPI_SSEL[] = { #ifdef HAL_CAN_MODULE_ENABLED const PinMap PinMap_CAN_RD[] = { - {PA_11, CAN1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF9_CAN1)}, - {PB_5, CAN2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF9_CAN2)}, - {PB_8, CAN1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF9_CAN1)}, - {PB_12, CAN2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF9_CAN2)}, - {PD_0, CAN1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF9_CAN1)}, +//{PA_11, CAN1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF9_CAN1)}, +//{PB_5, CAN2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF9_CAN2)}, +//{PB_8, CAN1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF9_CAN1)}, +//{PB_12, CAN2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF9_CAN2)}, +//{PD_0, CAN1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF9_CAN1)}, {NC, NP, 0} }; #endif #ifdef HAL_CAN_MODULE_ENABLED const PinMap PinMap_CAN_TD[] = { - {PA_12, CAN1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF9_CAN1)}, - {PB_6, CAN2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF9_CAN2)}, - {PB_9, CAN1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF9_CAN1)}, - {PB_13, CAN2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF9_CAN2)}, - {PD_1, CAN1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF9_CAN1)}, +//{PA_12, CAN1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF9_CAN1)}, +//{PB_6, CAN2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF9_CAN2)}, +//{PB_9, CAN1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF9_CAN1)}, +//{PB_13, CAN2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF9_CAN2)}, +//{PD_1, CAN1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF9_CAN1)}, {NC, NP, 0} }; #endif @@ -349,7 +364,7 @@ const PinMap PinMap_CAN_TD[] = { //*** ETHERNET *** #ifdef HAL_ETH_MODULE_ENABLED -const PinMap PinMap_Ethernet[] = { +const PinMap PinMap_Ethernet[] = {/* {PA_0, ETH, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF11_ETH)}, // ETH_CRS {PA_1, ETH, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF11_ETH)}, // ETH_REF_CLK|ETH_RX_CLK {PA_2, ETH, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF11_ETH)}, // ETH_MDIO @@ -374,6 +389,7 @@ const PinMap PinMap_Ethernet[] = { {PG_13, ETH, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF11_ETH)}, // ETH_TXD0 {PG_14, ETH, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF11_ETH)}, // ETH_TXD1 {NC, NP, 0} + */ }; #endif @@ -394,26 +410,26 @@ const PinMap PinMap_USB_OTG_FS[] = { #ifdef HAL_PCD_MODULE_ENABLED const PinMap PinMap_USB_OTG_HS[] = { -#ifdef USE_USB_HS_IN_FS - {PA_4, USB_OTG_HS, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF12_OTG_HS_FS)}, // USB_OTG_HS_SOF - {PB_12, USB_OTG_HS, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_PULLUP, GPIO_AF12_OTG_HS_FS)}, // USB_OTG_HS_ID - {PB_13, USB_OTG_HS, STM_PIN_DATA(STM_MODE_INPUT, GPIO_NOPULL, GPIO_AF_NONE)}, // USB_OTG_HS_VBUS - {PB_14, USB_OTG_HS, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF12_OTG_HS_FS)}, // USB_OTG_HS_DM - {PB_15, USB_OTG_HS, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF12_OTG_HS_FS)}, // USB_OTG_HS_DP -#else - {PA_3, USB_OTG_HS, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF10_OTG_HS)}, // USB_OTG_HS_ULPI_D0 - {PA_5, USB_OTG_HS, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF10_OTG_HS)}, // USB_OTG_HS_ULPI_CK - {PB_0, USB_OTG_HS, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF10_OTG_HS)}, // USB_OTG_HS_ULPI_D1 - {PB_1, USB_OTG_HS, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF10_OTG_HS)}, // USB_OTG_HS_ULPI_D2 - {PB_5, USB_OTG_HS, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF10_OTG_HS)}, // USB_OTG_HS_ULPI_D7 - {PB_10, USB_OTG_HS, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF10_OTG_HS)}, // USB_OTG_HS_ULPI_D3 - {PB_11, USB_OTG_HS, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF10_OTG_HS)}, // USB_OTG_HS_ULPI_D4 - {PB_12, USB_OTG_HS, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF10_OTG_HS)}, // USB_OTG_HS_ULPI_D5 - {PB_13, USB_OTG_HS, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF10_OTG_HS)}, // USB_OTG_HS_ULPI_D6 - {PC_0, USB_OTG_HS, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF10_OTG_HS)}, // USB_OTG_HS_ULPI_STP - {PC_2, USB_OTG_HS, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF10_OTG_HS)}, // USB_OTG_HS_ULPI_DIR - {PC_3, USB_OTG_HS, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF10_OTG_HS)}, // USB_OTG_HS_ULPI_NXT -#endif /* USE_USB_HS_IN_FS */ +//#ifdef USE_USB_HS_IN_FS +// {PA_4, USB_OTG_HS, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF12_OTG_HS_FS)}, // USB_OTG_HS_SOF +// {PB_12, USB_OTG_HS, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_PULLUP, GPIO_AF12_OTG_HS_FS)}, // USB_OTG_HS_ID +// {PB_13, USB_OTG_HS, STM_PIN_DATA(STM_MODE_INPUT, GPIO_NOPULL, GPIO_AF_NONE)}, // USB_OTG_HS_VBUS +// {PB_14, USB_OTG_HS, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF12_OTG_HS_FS)}, // USB_OTG_HS_DM +// {PB_15, USB_OTG_HS, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF12_OTG_HS_FS)}, // USB_OTG_HS_DP +// #else +// {PA_3, USB_OTG_HS, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF10_OTG_HS)}, // USB_OTG_HS_ULPI_D0 +// {PA_5, USB_OTG_HS, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF10_OTG_HS)}, // USB_OTG_HS_ULPI_CK +// {PB_0, USB_OTG_HS, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF10_OTG_HS)}, // USB_OTG_HS_ULPI_D1 +// {PB_1, USB_OTG_HS, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF10_OTG_HS)}, // USB_OTG_HS_ULPI_D2 +// {PB_5, USB_OTG_HS, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF10_OTG_HS)}, // USB_OTG_HS_ULPI_D7 +// {PB_10, USB_OTG_HS, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF10_OTG_HS)}, // USB_OTG_HS_ULPI_D3 +// {PB_11, USB_OTG_HS, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF10_OTG_HS)}, // USB_OTG_HS_ULPI_D4 +// {PB_12, USB_OTG_HS, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF10_OTG_HS)}, // USB_OTG_HS_ULPI_D5 +// {PB_13, USB_OTG_HS, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF10_OTG_HS)}, // USB_OTG_HS_ULPI_D6 +// {PC_0, USB_OTG_HS, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF10_OTG_HS)}, // USB_OTG_HS_ULPI_STP +// {PC_2, USB_OTG_HS, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF10_OTG_HS)}, // USB_OTG_HS_ULPI_DIR +// {PC_3, USB_OTG_HS, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF10_OTG_HS)}, // USB_OTG_HS_ULPI_NXT +//#endif /* USE_USB_HS_IN_FS */ {NC, NP, 0} }; #endif diff --git a/buildroot/share/PlatformIO/variants/FLY_F407ZG/variant.cpp b/buildroot/share/PlatformIO/variants/FLY_F407ZG/variant.cpp index 82cfc573d..1c7aedd9a 100644 --- a/buildroot/share/PlatformIO/variants/FLY_F407ZG/variant.cpp +++ b/buildroot/share/PlatformIO/variants/FLY_F407ZG/variant.cpp @@ -36,118 +36,120 @@ extern "C" { const PinName digitalPin[] = { - PB_12, - PB_13, - PB_14, - PB_15, - PD_8, - PD_9, - PD_10, - PD_11, - PD_12, - PD_13, - PD_14, - PD_15, - PG_2, - PG_3, - PG_4, - PG_5, - PG_6, - PG_7, - PG_8, - PC_6, - PC_7, - PC_8, - PC_9, - PA_8, - PA_9, - PA_10, - PA_11, - PA_12, - PA_13, - PA_14, - PA_15, - PC_10, - PC_11, - PC_12, - PD_0, - PD_1, - PD_2, - PD_3, - PD_4, - PD_5, - PD_6, - PD_7, - PG_9, - PG_10, - PG_11, - PG_12, - PG_13, - PG_14, - PG_15, - PB_3, - PB_4, - PB_5, - PB_6, - PB_7, - PB_8, - PB_9, - PB_10, - PB_11, - PE_14, - PE_15, - PE_12, - PE_13, - PE_10, - PE_11, - PE_8, - PE_9, - PG_1, - PE_7, - PF_15, - PG_0, - PF_13, - PF_14, - PF_11, - PF_12, - PB_2, - PB_1, - PC_5, - PB_0, - PA_7, - PC_4, - PA_5, - PA_6, - PA_3, - PA_4, - PA_1, - PA_2, - PC_3, - PA_0, - PC_1, - PC_2, - PC_0, - PF_8, - PF_6, - PF_7, - PF_9, - PF_10, - PF_4, - PF_5, - PF_2, - PF_3, - PF_0, - PF_1, - PE_6, - PC_13, - PE_4, - PE_5, - PE_2, - PE_3, - PE_0, - PE_1, - PC_14, - PC_15, +PA_1, +PA_2, +PA_3, +PA_4, +PA_5, +PA_6, +PA_7, +PA_8, +PA_9, +PA_10, +PA_11, +PA_12, +PA_13, +PA_14, +PA_15, +PB_0, +PB_1, +PB_2, +PB_3, +PB_4, +PB_5, +PB_6, +PB_7, +PB_8, +PB_9, +PB_10, +PB_11, +PB_12, +PB_13, +PB_14, +PB_15, +PC_2, +PC_3, +PC_4, +PC_5, +PC_6, +PC_7, +PC_8, +PC_9, +PC_10, +PC_11, +PC_12, +PC_13, +PC_14, +PC_15, +PD_0, +PD_1, +PD_2, +PD_3, +PD_4, +PD_5, +PD_6, +PD_7, +PD_8, +PD_9, +PD_10, +PD_11, +PD_12, +PD_13, +PD_14, +PD_15, +PE_0, +PE_1, +PE_11, +PE_3, +PE_4, +PE_5, +PE_6, +PE_7, +PE_8, +PE_9, +PE_10, +PE_2, +PE_12, +PE_13, +PE_14, +PE_15, +PF_0, +PF_1, +PF_2, +PF_6, +PF_7, +PF_8, +PF_9, +PF_11, +PF_12, +PF_13, +PF_14, +PF_15, +PG_0, +PG_1, +PG_2, +PG_3, +PG_4, +PG_5, +PG_6, +PG_7, +PG_8, +PG_9, +PG_10, +PG_11, +PG_12, +PG_13, +PG_14, +PG_15, +PH_0, +PH_1, +PA_0, +PC_1, +PC_0, +PF_10, +PF_5, +PF_4, +PF_3, }; #ifdef __cplusplus diff --git a/buildroot/share/PlatformIO/variants/FLY_F407ZG/variant.h b/buildroot/share/PlatformIO/variants/FLY_F407ZG/variant.h index 87033a68e..ae973c89c 100644 --- a/buildroot/share/PlatformIO/variants/FLY_F407ZG/variant.h +++ b/buildroot/share/PlatformIO/variants/FLY_F407ZG/variant.h @@ -38,126 +38,127 @@ extern "C" { * Pins *----------------------------------------------------------------------------*/ -// Left Side -#define PB12 0 -#define PB13 1 -#define PB14 2 -#define PB15 3 -#define PD8 4 -#define PD9 5 -#define PD10 6 -#define PD11 7 -#define PD12 8 -#define PD13 9 -#define PD14 10 -#define PD15 11 -#define PG2 12 -#define PG3 13 -#define PG4 14 -#define PG5 15 -#define PG6 16 -#define PG7 17 -#define PG8 18 -#define PC6 19 -#define PC7 20 -#define PC8 21 -#define PC9 22 -#define PA8 23 -#define PA9 24 -#define PA10 25 -#define PA11 26 // USB_DM -#define PA12 27 // USB_DP -#define PA13 28 -#define PA14 29 -#define PA15 30 -#define PC10 31 -#define PC11 32 -#define PC12 33 -#define PD0 34 -#define PD1 35 -#define PD2 36 -#define PD3 37 -#define PD4 38 -#define PD5 39 -#define PD6 40 -#define PD7 41 -#define PG9 42 -#define PG10 43 -#define PG11 44 -#define PG12 45 -#define PG13 46 -#define PG14 47 -#define PG15 48 -#define PB3 49 -#define PB4 50 -#define PB5 51 -#define PB6 52 -#define PB7 53 -#define PB8 54 -#define PB9 55 -// Right Side -#define PB10 56 -#define PB11 57 -#define PE14 58 -#define PE15 59 -#define PE12 60 -#define PE13 61 -#define PE10 62 -#define PE11 63 -#define PE8 64 -#define PE9 65 -#define PG1 66 -#define PE7 67 -#define PF15 68 -#define PG0 69 -#define PF13 70 -#define PF14 71 -#define PF11 72 -#define PF12 73 -#define PB2 74 -#define PB1 75 // A0 -#define PC5 76 // A1 -#define PB0 77 // A2 -#define PA7 78 // A3 -#define PC4 79 // A4 -#define PA5 80 // A5 -#define PA6 81 // A6 -#define PA3 82 // A7 -#define PA4 83 // A8 -#define PA1 84 // A9 -#define PA2 85 // A10 -#define PC3 86 // A11 -#define PA0 87 // A12/PA_0(WK_UP): BUT K_UP) -#define PC1 88 // A13 -#define PC2 89 // A14 -#define PC0 90 // A15 -#define PF8 91 // A16 -#define PF6 92 // A17 -#define PF7 93 // A18 -#define PF9 94 // LED D1 (active low) -#define PF10 95 // LED D2 (active low) -#define PF4 96 -#define PF5 97 -#define PF2 98 -#define PF3 99 -#define PF0 100 -#define PF1 101 -#define PE6 102 -#define PC13 103 -#define PE4 104 // BUT K0 -#define PE5 105 // BUT K1 -#define PE2 106 -#define PE3 107 -#define PE0 108 -#define PE1 109 -#define PC14 110 -#define PC15 111 +#define PA1 0 +#define PA2 1 +#define PA3 2 +#define PA4 3 +#define PA5 4 +#define PA6 5 +#define PA7 6 +#define PA8 7 +#define PA9 8 +#define PA10 9 +#define PA11 10 +#define PA12 11 +#define PA13 12 +#define PA14 13 +#define PA15 14 +#define PB0 15 +#define PB1 16 +#define PB2 17 +#define PB3 18 +#define PB4 19 +#define PB5 20 +#define PB6 21 +#define PB7 22 +#define PB8 23 +#define PB9 24 +#define PB10 25 +#define PB11 26 +#define PB12 27 +#define PB13 28 +#define PB14 29 +#define PB15 30 +#define PC2 31 +#define PC3 32 +#define PC4 33 +#define PC5 34 +#define PC6 35 +#define PC7 36 +#define PC8 37 +#define PC9 38 +#define PC10 39 +#define PC11 40 +#define PC12 41 +#define PC13 42 +#define PC14 43 +#define PC15 44 +#define PD0 45 +#define PD1 46 +#define PD2 47 +#define PD3 48 +#define PD4 49 +#define PD5 50 +#define PD6 51 +#define PD7 52 +#define PD8 53 +#define PD9 54 +#define PD10 55 +#define PD11 56 +#define PD12 57 +#define PD13 58 +#define PD14 59 +#define PD15 60 +#define PE0 61 +#define PE1 62 +#define PE11 63 +#define PE3 64 +#define PE4 65 +#define PE5 66 +#define PE6 67 +#define PE7 68 +#define PE8 69 +#define PE9 70 +#define PE10 71 +#define PE2 72 +#define PE12 73 +#define PE13 74 +#define PE14 75 +#define PE15 76 +#define PF0 77 +#define PF1 78 +#define PF2 79 +#define PF6 80 +#define PF7 81 +#define PF8 82 +#define PF9 83 +#define PF11 84 +#define PF12 85 +#define PF13 86 +#define PF14 87 +#define PF15 88 +#define PG0 89 +#define PG1 90 +#define PG2 91 +#define PG3 92 +#define PG4 93 +#define PG5 94 +#define PG6 95 +#define PG7 96 +#define PG8 97 +#define PG9 98 +#define PG10 99 +#define PG11 100 +#define PG12 101 +#define PG13 102 +#define PG14 103 +#define PG15 104 +#define PH0 105 +#define PH1 106 +#define PA0 107 +#define PC1 108 +#define PC0 109 +#define PF10 110 +#define PF5 111 +#define PF4 112 +#define PF3 113 + // This must be a literal -#define NUM_DIGITAL_PINS 112 +#define NUM_DIGITAL_PINS 114 // This must be a literal with a value less than or equal to MAX_ANALOG_INPUTS -#define NUM_ANALOG_INPUTS 23 -#define NUM_ANALOG_FIRST 75 +#define NUM_ANALOG_INPUTS 7 +#define NUM_ANALOG_FIRST 107 // Below SPI and I2C definitions already done in the core From 5701387ab9bc4f493f2db84694133e0fe8dce232 Mon Sep 17 00:00:00 2001 From: ellensp Date: Mon, 3 Aug 2020 13:16:12 +1200 Subject: [PATCH 030/194] Fix Spindle/Laser PWM DC (#18871) --- Marlin/src/feature/spindle_laser.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Marlin/src/feature/spindle_laser.cpp b/Marlin/src/feature/spindle_laser.cpp index 3dcf6e928..68261f2fc 100644 --- a/Marlin/src/feature/spindle_laser.cpp +++ b/Marlin/src/feature/spindle_laser.cpp @@ -66,6 +66,9 @@ void SpindleLaser::init() { void SpindleLaser::set_ocr(const uint8_t ocr) { WRITE(SPINDLE_LASER_ENA_PIN, SPINDLE_LASER_ACTIVE_HIGH); // turn spindle on analogWrite(pin_t(SPINDLE_LASER_PWM_PIN), ocr ^ SPINDLE_LASER_PWM_OFF); + #if NEEDS_HARDWARE_PWM && SPINDLE_LASER_FREQUENCY + set_pwm_duty(pin_t(SPINDLE_LASER_PWM_PIN), ocr ^ SPINDLE_LASER_PWM_OFF); + #endif } void SpindleLaser::ocr_off() { WRITE(SPINDLE_LASER_ENA_PIN, !SPINDLE_LASER_ACTIVE_HIGH); // Turn spindle off From 4d36baf3759dcf951e815ed18012adac2f504930 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Claus=20N=C3=A4veke?= Date: Mon, 3 Aug 2020 03:17:43 +0200 Subject: [PATCH 031/194] No mks_robin extra_scripts in Trigorilla build (#18872) --- platformio.ini | 1 + 1 file changed, 1 insertion(+) diff --git a/platformio.ini b/platformio.ini index 790d6f9d0..450fffcc0 100644 --- a/platformio.ini +++ b/platformio.ini @@ -651,6 +651,7 @@ extra_scripts = ${common.extra_scripts} [env:trigorilla_pro] platform = ${common_stm32f1.platform} extends = env:mks_robin +extra_scripts = ${common.extra_scripts} # # MKS Robin E3D (STM32F103RCT6) and From 5e3411029d594ade5b4a496ac43864b9fa52fbdc Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Sun, 2 Aug 2020 20:34:24 -0500 Subject: [PATCH 032/194] Clean up some PeripheralPins --- .../variants/FLY_F407ZG/PeripheralPins.c | 355 +++++++++--------- .../variants/MARLIN_F407VE/PeripheralPins.c | 30 +- 2 files changed, 174 insertions(+), 211 deletions(-) diff --git a/buildroot/share/PlatformIO/variants/FLY_F407ZG/PeripheralPins.c b/buildroot/share/PlatformIO/variants/FLY_F407ZG/PeripheralPins.c index d621325aa..0ac1d25ce 100644 --- a/buildroot/share/PlatformIO/variants/FLY_F407ZG/PeripheralPins.c +++ b/buildroot/share/PlatformIO/variants/FLY_F407ZG/PeripheralPins.c @@ -31,7 +31,6 @@ #include #include - /* ===== * Note: Commented lines are alternative possibilities which are not used per default. * If you change them, you will have to know what you do @@ -41,46 +40,46 @@ //*** ADC *** #ifdef HAL_ADC_MODULE_ENABLED -const PinMap PinMap_ADC[] = { +WEAK const PinMap PinMap_ADC[] = { {PA_0, ADC1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 0, 0)}, // ADC1_IN0 - // {PA_0, ADC2, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 0, 0)}, // ADC2_IN0 - // {PA_0, ADC3, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 0, 0)}, // ADC3_IN0 + //{PA_0, ADC2, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 0, 0)}, // ADC2_IN0 + //{PA_0, ADC3, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 0, 0)}, // ADC3_IN0 //{PA_1, ADC1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 1, 0)}, // ADC1_IN1 - // {PA_1, ADC2, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 1, 0)}, // ADC2_IN1 - // {PA_1, ADC3, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 1, 0)}, // ADC3_IN1 - // {PA_2, ADC1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 2, 0)}, // ADC1_IN2 + //{PA_1, ADC2, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 1, 0)}, // ADC2_IN1 + //{PA_1, ADC3, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 1, 0)}, // ADC3_IN1 + //{PA_2, ADC1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 2, 0)}, // ADC1_IN2 //{PA_2, ADC2, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 2, 0)}, // ADC2_IN2 - // {PA_2, ADC3, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 2, 0)}, // ADC3_IN2 - // {PA_3, ADC1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 3, 0)}, // ADC1_IN3 - // {PA_3, ADC2, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 3, 0)}, // ADC2_IN3 + //{PA_2, ADC3, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 2, 0)}, // ADC3_IN2 + //{PA_3, ADC1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 3, 0)}, // ADC1_IN3 + //{PA_3, ADC2, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 3, 0)}, // ADC2_IN3 //{PA_3, ADC3, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 3, 0)}, // ADC3_IN3 //{PA_4, ADC1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 4, 0)}, // ADC1_IN4 - // {PA_4, ADC2, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 4, 0)}, // ADC2_IN4 - // {PA_5, ADC1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 5, 0)}, // ADC1_IN5 + //{PA_4, ADC2, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 4, 0)}, // ADC2_IN4 + //{PA_5, ADC1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 5, 0)}, // ADC1_IN5 //{PA_5, ADC2, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 5, 0)}, // ADC2_IN5 //{PA_6, ADC1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 6, 0)}, // ADC1_IN6 - // {PA_6, ADC2, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 6, 0)}, // ADC2_IN6 + //{PA_6, ADC2, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 6, 0)}, // ADC2_IN6 //{PA_7, ADC1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 7, 0)}, // ADC1_IN7 - // {PA_7, ADC2, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 7, 0)}, // ADC2_IN7 - // {PB_0, ADC1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 8, 0)}, // ADC1_IN8 + //{PA_7, ADC2, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 7, 0)}, // ADC2_IN7 + //{PB_0, ADC1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 8, 0)}, // ADC1_IN8 //{PB_0, ADC2, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 8, 0)}, // ADC2_IN8 //{PB_1, ADC1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 9, 0)}, // ADC1_IN9 - // {PB_1, ADC2, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 9, 0)}, // ADC2_IN9 - // {PC_0, ADC1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 10, 0)}, // ADC1_IN10 - // {PC_0, ADC2, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 10, 0)}, // ADC2_IN10 + //{PB_1, ADC2, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 9, 0)}, // ADC2_IN9 + //{PC_0, ADC1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 10, 0)}, // ADC1_IN10 + //{PC_0, ADC2, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 10, 0)}, // ADC2_IN10 {PC_0, ADC3, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 10, 0)}, // ADC3_IN10 {PC_1, ADC1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 11, 0)}, // ADC1_IN11 - // {PC_1, ADC2, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 11, 0)}, // ADC2_IN11 - // {PC_1, ADC3, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 11, 0)}, // ADC3_IN11 - // {PC_2, ADC1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 12, 0)}, // ADC1_IN12 + //{PC_1, ADC2, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 11, 0)}, // ADC2_IN11 + //{PC_1, ADC3, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 11, 0)}, // ADC3_IN11 + //{PC_2, ADC1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 12, 0)}, // ADC1_IN12 //{PC_2, ADC2, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 12, 0)}, // ADC2_IN12 - // {PC_2, ADC3, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 12, 0)}, // ADC3_IN12 - // {PC_3, ADC1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 13, 0)}, // ADC1_IN13 - // {PC_3, ADC2, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 13, 0)}, // ADC2_IN13 + //{PC_2, ADC3, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 12, 0)}, // ADC3_IN12 + //{PC_3, ADC1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 13, 0)}, // ADC1_IN13 + //{PC_3, ADC2, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 13, 0)}, // ADC2_IN13 //{PC_3, ADC3, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 13, 0)}, // ADC3_IN13 - // {PC_4, ADC1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 14, 0)}, // ADC1_IN14 + //{PC_4, ADC1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 14, 0)}, // ADC1_IN14 //{PC_4, ADC2, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 14, 0)}, // ADC2_IN14 - // {PC_5, ADC1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 15, 0)}, // ADC1_IN15 + //{PC_5, ADC1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 15, 0)}, // ADC1_IN15 //{PC_5, ADC2, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 15, 0)}, // ADC2_IN15 {PF_3, ADC3, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 9, 0)}, // ADC3_IN9 {PF_4, ADC3, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 14, 0)}, // ADC3_IN14 @@ -88,7 +87,7 @@ const PinMap PinMap_ADC[] = { //{PF_6, ADC3, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 4, 0)}, // ADC3_IN4 //{PF_7, ADC3, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 5, 0)}, // ADC3_IN5 //{PF_8, ADC3, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 6, 0)}, // ADC3_IN6 - // {PF_9, ADC3, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 7, 0)}, // ADC3_IN7 + //{PF_9, ADC3, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 7, 0)}, // ADC3_IN7 {PF_10, ADC3, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 8, 0)}, // ADC3_IN8 {NC, NP, 0} }; @@ -97,9 +96,9 @@ const PinMap PinMap_ADC[] = { //*** DAC *** #ifdef HAL_DAC_MODULE_ENABLED -const PinMap PinMap_DAC[] = { - // {PA_4, DAC1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 1, 0)}, // DAC_OUT1 - // {PA_5, DAC1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 2, 0)}, // DAC_OUT2 +WEAK const PinMap PinMap_DAC[] = { + //{PA_4, DAC1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 1, 0)}, // DAC_OUT1 + //{PA_5, DAC1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 2, 0)}, // DAC_OUT2 {NC, NP, 0} }; #endif @@ -107,7 +106,7 @@ const PinMap PinMap_DAC[] = { //*** I2C *** #ifdef HAL_I2C_MODULE_ENABLED -const PinMap PinMap_I2C_SDA[] = { +WEAK const PinMap PinMap_I2C_SDA[] = { {PB_7, I2C1, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_NOPULL, GPIO_AF4_I2C1)}, //{PB_9, I2C1, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_NOPULL, GPIO_AF4_I2C1)}, //{PB_11, I2C2, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_NOPULL, GPIO_AF4_I2C2)}, @@ -115,10 +114,8 @@ const PinMap PinMap_I2C_SDA[] = { //{PF_0, I2C2, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_NOPULL, GPIO_AF4_I2C2)}, {NC, NP, 0} }; -#endif -#ifdef HAL_I2C_MODULE_ENABLED -const PinMap PinMap_I2C_SCL[] = { +WEAK const PinMap PinMap_I2C_SCL[] = { //{PA_8, I2C3, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_NOPULL, GPIO_AF4_I2C3)}, {PB_6, I2C1, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_NOPULL, GPIO_AF4_I2C1)}, //{PB_8, I2C1, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_NOPULL, GPIO_AF4_I2C1)}, @@ -131,91 +128,88 @@ const PinMap PinMap_I2C_SCL[] = { //*** PWM *** #ifdef HAL_TIM_MODULE_ENABLED -const PinMap PinMap_PWM[] = { - - - - {PA_1, TIM2, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM2, 2, 0)}, // TIM2_CH2 - {PA_2, TIM2, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM2, 3, 0)}, // TIM2_CH3 - {PA_8, TIM1, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM1, 1, 0)}, // TIM1_CH1 - {PB_8, TIM4, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM4, 3, 0)}, // TIM4_CH3 - {PB_9, TIM4, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM4, 4, 0)}, // TIM4_CH4 - {PB_11, TIM2, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM2, 4, 0)}, // TIM2_CH4 - {PC_6, TIM3, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM3, 1, 0)}, // TIM3_CH1 - {PC_7, TIM3, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM3, 2, 0)}, // TIM3_CH2 - {PD_12, TIM4, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM4, 1, 0)}, // TIM4_CH1 - {PD_13, TIM4, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM4, 2, 0)}, // TIM4_CH2 - {PD_14, TIM4, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM4, 3, 0)}, // TIM4_CH3 - {PD_15, TIM4, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM4, 4, 0)}, // TIM4_CH4 - {PE_5, TIM9, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF3_TIM9, 1, 0)}, // TIM9_CH1 - {PE_6, TIM9, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF3_TIM9, 2, 0)}, // TIM9_CH2 - //{PE_11, TIM1, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM1, 2, 0)}, // TIM1_CH2 - {PE_13, TIM1, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM1, 3, 0)}, // TIM1_CH3 - {PF_6, TIM10, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF3_TIM10, 1, 0)}, // TIM10_CH1 - {PF_7, TIM11, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF3_TIM11, 1, 0)}, // TIM11_CH1 - {PF_8, TIM13, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF9_TIM13, 1, 0)}, // TIM13_CH1 - {PF_9, TIM14, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF9_TIM14, 1, 0)}, // TIM14_CH1 +WEAK const PinMap PinMap_PWM[] = { + {PA_1, TIM2, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM2, 2, 0)}, // TIM2_CH2 + {PA_2, TIM2, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM2, 3, 0)}, // TIM2_CH3 + {PA_8, TIM1, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM1, 1, 0)}, // TIM1_CH1 + {PB_8, TIM4, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM4, 3, 0)}, // TIM4_CH3 + {PB_9, TIM4, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM4, 4, 0)}, // TIM4_CH4 + {PB_11, TIM2, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM2, 4, 0)}, // TIM2_CH4 + {PC_6, TIM3, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM3, 1, 0)}, // TIM3_CH1 + {PC_7, TIM3, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM3, 2, 0)}, // TIM3_CH2 + {PD_12, TIM4, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM4, 1, 0)}, // TIM4_CH1 + {PD_13, TIM4, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM4, 2, 0)}, // TIM4_CH2 + {PD_14, TIM4, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM4, 3, 0)}, // TIM4_CH3 + {PD_15, TIM4, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM4, 4, 0)}, // TIM4_CH4 + {PE_5, TIM9, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF3_TIM9, 1, 0)}, // TIM9_CH1 + {PE_6, TIM9, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF3_TIM9, 2, 0)}, // TIM9_CH2 + //{PE_11, TIM1, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM1, 2, 0)}, // TIM1_CH2 + {PE_13, TIM1, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM1, 3, 0)}, // TIM1_CH3 + {PF_6, TIM10, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF3_TIM10, 1, 0)}, // TIM10_CH1 + {PF_7, TIM11, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF3_TIM11, 1, 0)}, // TIM11_CH1 + {PF_8, TIM13, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF9_TIM13, 1, 0)}, // TIM13_CH1 + {PF_9, TIM14, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF9_TIM14, 1, 0)}, // TIM14_CH1 //{PA_0, TIM2, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM2, 1, 0)}, // TIM2_CH1 - // {PA_0, TIM5, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM5, 1, 0)}, // TIM5_CH1 - - // {PA_1, TIM5, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM5, 2, 0)}, // TIM5_CH2 + //{PA_0, TIM5, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM5, 1, 0)}, // TIM5_CH1 - // {PA_2, TIM5, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM5, 3, 0)}, // TIM5_CH3 - // {PA_2, TIM9, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF3_TIM9, 1, 0)}, // TIM9_CH1 + //{PA_1, TIM5, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM5, 2, 0)}, // TIM5_CH2 + + //{PA_2, TIM5, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM5, 3, 0)}, // TIM5_CH3 + //{PA_2, TIM9, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF3_TIM9, 1, 0)}, // TIM9_CH1 //{PA_3, TIM2, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM2, 4, 0)}, // TIM2_CH4 - // {PA_3, TIM5, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM5, 4, 0)}, // TIM5_CH4 - // {PA_3, TIM9, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF3_TIM9, 2, 0)}, // TIM9_CH2 - // {PA_5, TIM2, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM2, 1, 0)}, // TIM2_CH1 - // {PA_5, TIM8, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF3_TIM8, 1, 1)}, // TIM8_CH1N - // {PA_6, TIM3, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM3, 1, 0)}, // TIM3_CH1 - // {PA_6, TIM13, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF9_TIM13, 1, 0)}, // TIM13_CH1 - // {PA_7, TIM1, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM1, 1, 1)}, // TIM1_CH1N -// {PA_7, TIM3, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM3, 2, 0)}, // TIM3_CH2 - // {PA_7, TIM8, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF3_TIM8, 1, 1)}, // TIM8_CH1N - // {PA_7, TIM14, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF9_TIM14, 1, 0)}, // TIM14_CH1 + //{PA_3, TIM5, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM5, 4, 0)}, // TIM5_CH4 + //{PA_3, TIM9, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF3_TIM9, 2, 0)}, // TIM9_CH2 + //{PA_5, TIM2, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM2, 1, 0)}, // TIM2_CH1 + //{PA_5, TIM8, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF3_TIM8, 1, 1)}, // TIM8_CH1N + //{PA_6, TIM3, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM3, 1, 0)}, // TIM3_CH1 + //{PA_6, TIM13, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF9_TIM13, 1, 0)}, // TIM13_CH1 + //{PA_7, TIM1, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM1, 1, 1)}, // TIM1_CH1N + //{PA_7, TIM3, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM3, 2, 0)}, // TIM3_CH2 + //{PA_7, TIM8, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF3_TIM8, 1, 1)}, // TIM8_CH1N + //{PA_7, TIM14, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF9_TIM14, 1, 0)}, // TIM14_CH1 - // {PA_9, TIM1, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM1, 2, 0)}, // TIM1_CH2 - // {PA_10, TIM1, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM1, 3, 0)}, // TIM1_CH3 - // {PA_11, TIM1, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM1, 4, 0)}, // TIM1_CH4 - // {PA_15, TIM2, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM2, 1, 0)}, // TIM2_CH1 - // {PB_0, TIM1, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM1, 2, 1)}, // TIM1_CH2N -// {PB_0, TIM3, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM3, 3, 0)}, // TIM3_CH3 - // {PB_0, TIM8, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF3_TIM8, 2, 1)}, // TIM8_CH2N - // {PB_1, TIM1, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM1, 3, 1)}, // TIM1_CH3N - // {PB_1, TIM3, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM3, 4, 0)}, // TIM3_CH4 - // {PB_1, TIM8, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF3_TIM8, 3, 1)}, // TIM8_CH3N - // {PB_3, TIM2, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM2, 2, 0)}, // TIM2_CH2 + //{PA_9, TIM1, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM1, 2, 0)}, // TIM1_CH2 + //{PA_10, TIM1, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM1, 3, 0)}, // TIM1_CH3 + //{PA_11, TIM1, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM1, 4, 0)}, // TIM1_CH4 + //{PA_15, TIM2, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM2, 1, 0)}, // TIM2_CH1 + //{PB_0, TIM1, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM1, 2, 1)}, // TIM1_CH2N + //{PB_0, TIM3, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM3, 3, 0)}, // TIM3_CH3 + //{PB_0, TIM8, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF3_TIM8, 2, 1)}, // TIM8_CH2N + //{PB_1, TIM1, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM1, 3, 1)}, // TIM1_CH3N + //{PB_1, TIM3, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM3, 4, 0)}, // TIM3_CH4 + //{PB_1, TIM8, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF3_TIM8, 3, 1)}, // TIM8_CH3N + //{PB_3, TIM2, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM2, 2, 0)}, // TIM2_CH2 //{PB_4, TIM3, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM3, 1, 0)}, // TIM3_CH1 //{PB_5, TIM3, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM3, 2, 0)}, // TIM3_CH2 //{PB_6, TIM4, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM4, 1, 0)}, // TIM4_CH1 //{PB_7, TIM4, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM4, 2, 0)}, // TIM4_CH2 - // {PB_8, TIM10, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF3_TIM10, 1, 0)}, // TIM10_CH1 + //{PB_8, TIM10, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF3_TIM10, 1, 0)}, // TIM10_CH1 - // {PB_9, TIM11, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF3_TIM11, 1, 0)}, // TIM11_CH1 - // {PB_10, TIM2, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM2, 3, 0)}, // TIM2_CH3 + //{PB_9, TIM11, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF3_TIM11, 1, 0)}, // TIM11_CH1 + //{PB_10, TIM2, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM2, 3, 0)}, // TIM2_CH3 - // {PB_13, TIM1, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM1, 1, 1)}, // TIM1_CH1N - // {PB_14, TIM1, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM1, 2, 1)}, // TIM1_CH2N + //{PB_13, TIM1, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM1, 1, 1)}, // TIM1_CH1N + //{PB_14, TIM1, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM1, 2, 1)}, // TIM1_CH2N //{PB_14, TIM8, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF3_TIM8, 2, 1)}, // TIM8_CH2N //{PB_14, TIM12, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF9_TIM12, 1, 0)}, // TIM12_CH1 //{PB_15, TIM1, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM1, 3, 1)}, // TIM1_CH3N - // {PB_15, TIM8, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF3_TIM8, 3, 1)}, // TIM8_CH3N - // {PB_15, TIM12, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF9_TIM12, 2, 0)}, // TIM12_CH2 + //{PB_15, TIM8, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF3_TIM8, 3, 1)}, // TIM8_CH3N + //{PB_15, TIM12, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF9_TIM12, 2, 0)}, // TIM12_CH2 //{PC_6, TIM8, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF3_TIM8, 1, 0)}, // TIM8_CH1 //{PC_7, TIM8, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF3_TIM8, 2, 0)}, // TIM8_CH2 - // {PC_8, TIM3, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM3, 3, 0)}, // TIM3_CH3 - // {PC_8, TIM8, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF3_TIM8, 3, 0)}, // TIM8_CH3 - // {PC_9, TIM3, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM3, 4, 0)}, // TIM3_CH4 - // {PC_9, TIM8, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF3_TIM8, 4, 0)}, // TIM8_CH4 + //{PC_8, TIM3, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM3, 3, 0)}, // TIM3_CH3 + //{PC_8, TIM8, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF3_TIM8, 3, 0)}, // TIM8_CH3 + //{PC_9, TIM3, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM3, 4, 0)}, // TIM3_CH4 + //{PC_9, TIM8, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF3_TIM8, 4, 0)}, // TIM8_CH4 //{PE_8, TIM1, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM1, 1, 1)}, // TIM1_CH1N //{PE_9, TIM1, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM1, 1, 0)}, // TIM1_CH1 //{PE_10, TIM1, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM1, 2, 1)}, // TIM1_CH2N - - // {PE_12, TIM1, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM1, 3, 1)}, // TIM1_CH3N + + //{PE_12, TIM1, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM1, 3, 1)}, // TIM1_CH3N //{PE_14, TIM1, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM1, 4, 0)}, // TIM1_CH4 @@ -226,7 +220,7 @@ const PinMap PinMap_PWM[] = { //*** SERIAL *** #ifdef HAL_UART_MODULE_ENABLED -const PinMap PinMap_UART_TX[] = { +WEAK const PinMap PinMap_UART_TX[] = { //{PA_0, UART4, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF8_UART4)}, //{PA_2, USART2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF7_USART2)}, {PA_9, USART1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF7_USART1)}, @@ -241,10 +235,8 @@ const PinMap PinMap_UART_TX[] = { {PG_14, USART6, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF8_USART6)}, {NC, NP, 0} }; -#endif -#ifdef HAL_UART_MODULE_ENABLED -const PinMap PinMap_UART_RX[] = { +WEAK const PinMap PinMap_UART_RX[] = { //{PA_1, UART4, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF8_UART4)}, //{PA_3, USART2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF7_USART2)}, {PA_10, USART1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF7_USART1)}, @@ -259,30 +251,26 @@ const PinMap PinMap_UART_RX[] = { {PG_9, USART6, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF8_USART6)}, {NC, NP, 0} }; -#endif -#ifdef HAL_UART_MODULE_ENABLED -const PinMap PinMap_UART_RTS[] = { -// {PA_1, USART2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF7_USART2)}, -// {PA_12, USART1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF7_USART1)}, -// {PB_14, USART3, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF7_USART3)}, -// {PD_4, USART2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF7_USART2)}, -// {PD_12, USART3, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF7_USART3)}, -// {PG_8, USART6, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF8_USART6)}, -// {PG_12, USART6, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF8_USART6)}, +WEAK const PinMap PinMap_UART_RTS[] = { + //{PA_1, USART2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF7_USART2)}, + //{PA_12, USART1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF7_USART1)}, + //{PB_14, USART3, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF7_USART3)}, + //{PD_4, USART2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF7_USART2)}, + //{PD_12, USART3, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF7_USART3)}, + //{PG_8, USART6, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF8_USART6)}, + //{PG_12, USART6, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF8_USART6)}, {NC, NP, 0} }; -#endif -#ifdef HAL_UART_MODULE_ENABLED -const PinMap PinMap_UART_CTS[] = { -// {PA_0, USART2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF7_USART2)}, -// {PA_11, USART1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF7_USART1)}, -// {PB_13, USART3, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF7_USART3)}, -// {PD_3, USART2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF7_USART2)}, -// {PD_11, USART3, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF7_USART3)}, -// {PG_13, USART6, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF8_USART6)}, -// {PG_15, USART6, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF8_USART6)}, +WEAK const PinMap PinMap_UART_CTS[] = { + //{PA_0, USART2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF7_USART2)}, + //{PA_11, USART1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF7_USART1)}, + //{PB_13, USART3, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF7_USART3)}, + //{PD_3, USART2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF7_USART2)}, + //{PD_11, USART3, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF7_USART3)}, + //{PG_13, USART6, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF8_USART6)}, + //{PG_15, USART6, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF8_USART6)}, {NC, NP, 0} }; #endif @@ -290,49 +278,43 @@ const PinMap PinMap_UART_CTS[] = { //*** SPI *** #ifdef HAL_SPI_MODULE_ENABLED -const PinMap PinMap_SPI_MOSI[] = { +WEAK const PinMap PinMap_SPI_MOSI[] = { {PA_7, SPI1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_SPI1)}, -//{PB_5, SPI1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_SPI1)}, + //{PB_5, SPI1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_SPI1)}, {PB_5, SPI3, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF6_SPI3)}, {PB_15, SPI2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_SPI2)}, -//{PC_3, SPI2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_SPI2)}, -//{PC_12, SPI3, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF6_SPI3)}, + //{PC_3, SPI2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_SPI2)}, + //{PC_12, SPI3, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF6_SPI3)}, {NC, NP, 0} }; -#endif -#ifdef HAL_SPI_MODULE_ENABLED -const PinMap PinMap_SPI_MISO[] = { +WEAK const PinMap PinMap_SPI_MISO[] = { {PA_6, SPI1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_SPI1)}, -//{PB_4, SPI1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_SPI1)}, + //{PB_4, SPI1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_SPI1)}, {PB_4, SPI3, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF6_SPI3)}, {PB_14, SPI2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_SPI2)}, -//{PC_2, SPI2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_SPI2)}, -//{PC_11, SPI3, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF6_SPI3)}, + //{PC_2, SPI2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_SPI2)}, + //{PC_11, SPI3, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF6_SPI3)}, {NC, NP, 0} }; -#endif -#ifdef HAL_SPI_MODULE_ENABLED -const PinMap PinMap_SPI_SCLK[] = { +WEAK const PinMap PinMap_SPI_SCLK[] = { {PA_5, SPI1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_SPI1)}, -//{PB_3, SPI1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_SPI1)}, + //{PB_3, SPI1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_SPI1)}, {PB_3, SPI3, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF6_SPI3)}, -//{PB_10, SPI2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_SPI2)}, + //{PB_10, SPI2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_SPI2)}, {PB_13, SPI2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_SPI2)}, -//{PC_10, SPI3, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF6_SPI3)}, + //{PC_10, SPI3, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF6_SPI3)}, {NC, NP, 0} }; -#endif -#ifdef HAL_SPI_MODULE_ENABLED -const PinMap PinMap_SPI_SSEL[] = { +WEAK const PinMap PinMap_SPI_SSEL[] = { {PA_4, SPI1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_SPI1)}, -//{PA_4, SPI3, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF6_SPI3)}, -//{PA_15, SPI1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_SPI1)}, -//{PA_15, SPI3, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF6_SPI3)}, -//{PB_9, SPI2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_SPI2)}, -//{PB_12, SPI2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_SPI2)}, + //{PA_4, SPI3, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF6_SPI3)}, + //{PA_15, SPI1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_SPI1)}, + //{PA_15, SPI3, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF6_SPI3)}, + //{PB_9, SPI2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_SPI2)}, + //{PB_12, SPI2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_SPI2)}, {NC, NP, 0} }; #endif @@ -340,23 +322,21 @@ const PinMap PinMap_SPI_SSEL[] = { //*** CAN *** #ifdef HAL_CAN_MODULE_ENABLED -const PinMap PinMap_CAN_RD[] = { -//{PA_11, CAN1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF9_CAN1)}, -//{PB_5, CAN2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF9_CAN2)}, -//{PB_8, CAN1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF9_CAN1)}, -//{PB_12, CAN2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF9_CAN2)}, -//{PD_0, CAN1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF9_CAN1)}, +WEAK const PinMap PinMap_CAN_RD[] = { + //{PA_11, CAN1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF9_CAN1)}, + //{PB_5, CAN2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF9_CAN2)}, + //{PB_8, CAN1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF9_CAN1)}, + //{PB_12, CAN2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF9_CAN2)}, + //{PD_0, CAN1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF9_CAN1)}, {NC, NP, 0} }; -#endif -#ifdef HAL_CAN_MODULE_ENABLED -const PinMap PinMap_CAN_TD[] = { -//{PA_12, CAN1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF9_CAN1)}, -//{PB_6, CAN2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF9_CAN2)}, -//{PB_9, CAN1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF9_CAN1)}, -//{PB_13, CAN2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF9_CAN2)}, -//{PD_1, CAN1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF9_CAN1)}, +WEAK const PinMap PinMap_CAN_TD[] = { + //{PA_12, CAN1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF9_CAN1)}, + //{PB_6, CAN2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF9_CAN2)}, + //{PB_9, CAN1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF9_CAN1)}, + //{PB_13, CAN2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF9_CAN2)}, + //{PD_1, CAN1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF9_CAN1)}, {NC, NP, 0} }; #endif @@ -364,7 +344,8 @@ const PinMap PinMap_CAN_TD[] = { //*** ETHERNET *** #ifdef HAL_ETH_MODULE_ENABLED -const PinMap PinMap_Ethernet[] = {/* +WEAK const PinMap PinMap_Ethernet[] = { + /* {PA_0, ETH, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF11_ETH)}, // ETH_CRS {PA_1, ETH, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF11_ETH)}, // ETH_REF_CLK|ETH_RX_CLK {PA_2, ETH, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF11_ETH)}, // ETH_MDIO @@ -398,38 +379,38 @@ const PinMap PinMap_Ethernet[] = {/* //*** USB *** #ifdef HAL_PCD_MODULE_ENABLED -const PinMap PinMap_USB_OTG_FS[] = { - // {PA_8, USB_OTG_FS, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF10_OTG_FS)}, // USB_OTG_FS_SOF - // {PA_9, USB_OTG_FS, STM_PIN_DATA(STM_MODE_INPUT, GPIO_NOPULL, GPIO_AF_NONE)}, // USB_OTG_FS_VBUS - // {PA_10, USB_OTG_FS, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_PULLUP, GPIO_AF10_OTG_FS)}, // USB_OTG_FS_ID +WEAK const PinMap PinMap_USB_OTG_FS[] = { + //{PA_8, USB_OTG_FS, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF10_OTG_FS)}, // USB_OTG_FS_SOF + //{PA_9, USB_OTG_FS, STM_PIN_DATA(STM_MODE_INPUT, GPIO_NOPULL, GPIO_AF_NONE)}, // USB_OTG_FS_VBUS + //{PA_10, USB_OTG_FS, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_PULLUP, GPIO_AF10_OTG_FS)}, // USB_OTG_FS_ID {PA_11, USB_OTG_FS, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF10_OTG_FS)}, // USB_OTG_FS_DM {PA_12, USB_OTG_FS, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF10_OTG_FS)}, // USB_OTG_FS_DP {NC, NP, 0} }; -#endif -#ifdef HAL_PCD_MODULE_ENABLED -const PinMap PinMap_USB_OTG_HS[] = { -//#ifdef USE_USB_HS_IN_FS -// {PA_4, USB_OTG_HS, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF12_OTG_HS_FS)}, // USB_OTG_HS_SOF -// {PB_12, USB_OTG_HS, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_PULLUP, GPIO_AF12_OTG_HS_FS)}, // USB_OTG_HS_ID -// {PB_13, USB_OTG_HS, STM_PIN_DATA(STM_MODE_INPUT, GPIO_NOPULL, GPIO_AF_NONE)}, // USB_OTG_HS_VBUS -// {PB_14, USB_OTG_HS, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF12_OTG_HS_FS)}, // USB_OTG_HS_DM -// {PB_15, USB_OTG_HS, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF12_OTG_HS_FS)}, // USB_OTG_HS_DP -// #else -// {PA_3, USB_OTG_HS, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF10_OTG_HS)}, // USB_OTG_HS_ULPI_D0 -// {PA_5, USB_OTG_HS, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF10_OTG_HS)}, // USB_OTG_HS_ULPI_CK -// {PB_0, USB_OTG_HS, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF10_OTG_HS)}, // USB_OTG_HS_ULPI_D1 -// {PB_1, USB_OTG_HS, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF10_OTG_HS)}, // USB_OTG_HS_ULPI_D2 -// {PB_5, USB_OTG_HS, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF10_OTG_HS)}, // USB_OTG_HS_ULPI_D7 -// {PB_10, USB_OTG_HS, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF10_OTG_HS)}, // USB_OTG_HS_ULPI_D3 -// {PB_11, USB_OTG_HS, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF10_OTG_HS)}, // USB_OTG_HS_ULPI_D4 -// {PB_12, USB_OTG_HS, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF10_OTG_HS)}, // USB_OTG_HS_ULPI_D5 -// {PB_13, USB_OTG_HS, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF10_OTG_HS)}, // USB_OTG_HS_ULPI_D6 -// {PC_0, USB_OTG_HS, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF10_OTG_HS)}, // USB_OTG_HS_ULPI_STP -// {PC_2, USB_OTG_HS, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF10_OTG_HS)}, // USB_OTG_HS_ULPI_DIR -// {PC_3, USB_OTG_HS, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF10_OTG_HS)}, // USB_OTG_HS_ULPI_NXT -//#endif /* USE_USB_HS_IN_FS */ +WEAK const PinMap PinMap_USB_OTG_HS[] = { + /* + #ifdef USE_USB_HS_IN_FS + {PA_4, USB_OTG_HS, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF12_OTG_HS_FS)}, // USB_OTG_HS_SOF + {PB_12, USB_OTG_HS, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_PULLUP, GPIO_AF12_OTG_HS_FS)}, // USB_OTG_HS_ID + {PB_13, USB_OTG_HS, STM_PIN_DATA(STM_MODE_INPUT, GPIO_NOPULL, GPIO_AF_NONE)}, // USB_OTG_HS_VBUS + {PB_14, USB_OTG_HS, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF12_OTG_HS_FS)}, // USB_OTG_HS_DM + {PB_15, USB_OTG_HS, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF12_OTG_HS_FS)}, // USB_OTG_HS_DP + #else + {PA_3, USB_OTG_HS, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF10_OTG_HS)}, // USB_OTG_HS_ULPI_D0 + {PA_5, USB_OTG_HS, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF10_OTG_HS)}, // USB_OTG_HS_ULPI_CK + {PB_0, USB_OTG_HS, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF10_OTG_HS)}, // USB_OTG_HS_ULPI_D1 + {PB_1, USB_OTG_HS, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF10_OTG_HS)}, // USB_OTG_HS_ULPI_D2 + {PB_5, USB_OTG_HS, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF10_OTG_HS)}, // USB_OTG_HS_ULPI_D7 + {PB_10, USB_OTG_HS, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF10_OTG_HS)}, // USB_OTG_HS_ULPI_D3 + {PB_11, USB_OTG_HS, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF10_OTG_HS)}, // USB_OTG_HS_ULPI_D4 + {PB_12, USB_OTG_HS, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF10_OTG_HS)}, // USB_OTG_HS_ULPI_D5 + {PB_13, USB_OTG_HS, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF10_OTG_HS)}, // USB_OTG_HS_ULPI_D6 + {PC_0, USB_OTG_HS, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF10_OTG_HS)}, // USB_OTG_HS_ULPI_STP + {PC_2, USB_OTG_HS, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF10_OTG_HS)}, // USB_OTG_HS_ULPI_DIR + {PC_3, USB_OTG_HS, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF10_OTG_HS)}, // USB_OTG_HS_ULPI_NXT + #endif // USE_USB_HS_IN_FS + */ {NC, NP, 0} }; #endif diff --git a/buildroot/share/PlatformIO/variants/MARLIN_F407VE/PeripheralPins.c b/buildroot/share/PlatformIO/variants/MARLIN_F407VE/PeripheralPins.c index 6b6cfdbcb..d3c76713b 100644 --- a/buildroot/share/PlatformIO/variants/MARLIN_F407VE/PeripheralPins.c +++ b/buildroot/share/PlatformIO/variants/MARLIN_F407VE/PeripheralPins.c @@ -122,9 +122,7 @@ WEAK const PinMap PinMap_I2C_SDA[] = { #endif {NC, NP, 0} }; -#endif -#ifdef HAL_I2C_MODULE_ENABLED WEAK const PinMap PinMap_I2C_SCL[] = { {PA_8, I2C3, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_NOPULL, GPIO_AF4_I2C3)}, {PB_6, I2C1, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_NOPULL, GPIO_AF4_I2C1)}, @@ -239,9 +237,7 @@ WEAK const PinMap PinMap_UART_TX[] = { #endif {NC, NP, 0} }; -#endif -#ifdef HAL_UART_MODULE_ENABLED WEAK const PinMap PinMap_UART_RX[] = { {PA_1, UART4, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF8_UART4)}, {PA_3, USART2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF7_USART2)}, @@ -259,9 +255,7 @@ WEAK const PinMap PinMap_UART_RX[] = { #endif {NC, NP, 0} }; -#endif -#ifdef HAL_UART_MODULE_ENABLED WEAK const PinMap PinMap_UART_RTS[] = { {PA_1, USART2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF7_USART2)}, {PA_12, USART1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF7_USART1)}, @@ -274,9 +268,7 @@ WEAK const PinMap PinMap_UART_RTS[] = { #endif {NC, NP, 0} }; -#endif -#ifdef HAL_UART_MODULE_ENABLED WEAK const PinMap PinMap_UART_CTS[] = { {PA_0, USART2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF7_USART2)}, {PA_11, USART1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF7_USART1)}, @@ -303,9 +295,7 @@ WEAK const PinMap PinMap_SPI_MOSI[] = { {PC_12, SPI3, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF6_SPI3)}, {NC, NP, 0} }; -#endif -#ifdef HAL_SPI_MODULE_ENABLED WEAK const PinMap PinMap_SPI_MISO[] = { {PA_6, SPI1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_SPI1)}, //{PB_4, SPI1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_SPI1)}, @@ -315,9 +305,7 @@ WEAK const PinMap PinMap_SPI_MISO[] = { {PC_11, SPI3, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF6_SPI3)}, {NC, NP, 0} }; -#endif -#ifdef HAL_SPI_MODULE_ENABLED WEAK const PinMap PinMap_SPI_SCLK[] = { {PA_5, SPI1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_SPI1)}, //{PB_3, SPI1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_SPI1)}, @@ -327,9 +315,7 @@ WEAK const PinMap PinMap_SPI_SCLK[] = { {PC_10, SPI3, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF6_SPI3)}, {NC, NP, 0} }; -#endif -#ifdef HAL_SPI_MODULE_ENABLED WEAK const PinMap PinMap_SPI_SSEL[] = { {PA_4, SPI1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_SPI1)}, //{PA_4, SPI3, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF6_SPI3)}, @@ -352,9 +338,7 @@ WEAK const PinMap PinMap_CAN_RD[] = { {PD_0, CAN1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF9_CAN1)}, {NC, NP, 0} }; -#endif -#ifdef HAL_CAN_MODULE_ENABLED WEAK const PinMap PinMap_CAN_TD[] = { {PA_12, CAN1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF9_CAN1)}, {PB_6, CAN2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF9_CAN2)}, @@ -388,12 +372,12 @@ WEAK const PinMap PinMap_Ethernet[] = { {PC_4, ETH, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF11_ETH)}, // ETH_RXD0 {PC_5, ETH, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF11_ETH)}, // ETH_RXD1 {PE_2, ETH, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF11_ETH)}, // ETH_TXD3 -#if defined(ARDUINO_BLACK_F407ZE) || defined(ARDUINO_BLACK_F407ZG) - {PG_8, ETH, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF11_ETH)}, // ETH_PPS_OUT - {PG_11, ETH, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF11_ETH)}, // ETH_TX_EN - {PG_13, ETH, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF11_ETH)}, // ETH_TXD0 - {PG_14, ETH, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF11_ETH)}, // ETH_TXD1 -#endif + #if defined(ARDUINO_BLACK_F407ZE) || defined(ARDUINO_BLACK_F407ZG) + {PG_8, ETH, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF11_ETH)}, // ETH_PPS_OUT + {PG_11, ETH, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF11_ETH)}, // ETH_TX_EN + {PG_13, ETH, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF11_ETH)}, // ETH_TXD0 + {PG_14, ETH, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF11_ETH)}, // ETH_TXD1 + #endif {NC, NP, 0} }; #endif @@ -411,9 +395,7 @@ WEAK const PinMap PinMap_USB_OTG_FS[] = { {PA_12, USB_OTG_FS, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF10_OTG_FS)}, // USB_OTG_FS_DP {NC, NP, 0} }; -#endif -#ifdef HAL_PCD_MODULE_ENABLED WEAK const PinMap PinMap_USB_OTG_HS[] = { #ifdef USE_USB_HS_IN_FS {PA_4, USB_OTG_HS, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF12_OTG_HS_FS)}, // USB_OTG_HS_SOF From ef749bb69dbf23ccce343eb028c46a8a620b3c18 Mon Sep 17 00:00:00 2001 From: thinkyhead Date: Tue, 4 Aug 2020 00:10:16 +0000 Subject: [PATCH 033/194] [cron] Bump distribution date (2020-08-04) --- Marlin/src/inc/Version.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Marlin/src/inc/Version.h b/Marlin/src/inc/Version.h index b8e0c8375..ce9146bb6 100644 --- a/Marlin/src/inc/Version.h +++ b/Marlin/src/inc/Version.h @@ -42,7 +42,7 @@ * version was tagged. */ #ifndef STRING_DISTRIBUTION_DATE - #define STRING_DISTRIBUTION_DATE "2020-08-03" + #define STRING_DISTRIBUTION_DATE "2020-08-04" #endif /** From ca0ebf10d10d3c8e99c83c123c5ff2a678cda900 Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Mon, 3 Aug 2020 21:55:37 -0500 Subject: [PATCH 034/194] Move scaled TFT / touch defines (#18915) --- .../STM32F1/dogm/u8g_com_stm32duino_hwspi.cpp | 4 +- Marlin/src/MarlinCore.cpp | 31 +++-- ...8g_dev_tft_320x240_upscale_from_128x64.cpp | 129 +++++++++--------- Marlin/src/lcd/dogm/ultralcd_DOGM.h | 21 --- .../extui/lib/mks_ui/mks_hardware_test.cpp | 3 +- .../lib/mks_ui/tft_lvgl_configuration.cpp | 40 +++--- Marlin/src/lcd/lcdprint.h | 22 +++ Marlin/src/lcd/scaled_tft.h | 50 +++++++ Marlin/src/{feature => lcd}/touch/xpt2046.cpp | 37 ++--- Marlin/src/{feature => lcd}/touch/xpt2046.h | 0 Marlin/src/lcd/ultralcd.cpp | 2 +- Marlin/src/pins/stm32f1/pins_CHITU3D_V5.h | 39 +++--- Marlin/src/pins/stm32f1/pins_CHITU3D_V6.h | 39 +++--- .../src/pins/stm32f1/pins_MKS_ROBIN_NANO_V2.h | 11 +- 14 files changed, 240 insertions(+), 188 deletions(-) create mode 100644 Marlin/src/lcd/scaled_tft.h rename Marlin/src/{feature => lcd}/touch/xpt2046.cpp (87%) rename Marlin/src/{feature => lcd}/touch/xpt2046.h (100%) diff --git a/Marlin/src/HAL/STM32F1/dogm/u8g_com_stm32duino_hwspi.cpp b/Marlin/src/HAL/STM32F1/dogm/u8g_com_stm32duino_hwspi.cpp index 286dcfb5d..206c3fda3 100644 --- a/Marlin/src/HAL/STM32F1/dogm/u8g_com_stm32duino_hwspi.cpp +++ b/Marlin/src/HAL/STM32F1/dogm/u8g_com_stm32duino_hwspi.cpp @@ -20,7 +20,7 @@ #include "../../../inc/MarlinConfig.h" -#if BOTH(HAS_GRAPHICAL_LCD, SPI_GRAPHICAL_TFT) && DISABLED(FORCE_SOFT_SPI) +#if ENABLED(SPI_GRAPHICAL_TFT) && DISABLED(FORCE_SOFT_SPI) #include "../HAL.h" #include @@ -232,5 +232,5 @@ uint8_t u8g_com_stm32duino_spi_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void return 1; } -#endif // HAS_GRAPHICAL_LCD +#endif // SPI_GRAPHICAL_TFT && !FORCE_SOFT_SPI #endif // STM32F1 diff --git a/Marlin/src/MarlinCore.cpp b/Marlin/src/MarlinCore.cpp index 98f4527ee..74e15250e 100644 --- a/Marlin/src/MarlinCore.cpp +++ b/Marlin/src/MarlinCore.cpp @@ -39,26 +39,27 @@ #include #include "core/utility.h" -#include "lcd/ultralcd.h" #include "module/motion.h" #include "module/planner.h" -#include "module/stepper.h" #include "module/endstops.h" -#include "module/probe.h" #include "module/temperature.h" -#include "sd/cardreader.h" #include "module/configuration_store.h" #include "module/printcounter.h" // PrintCounter or Stopwatch -#include "feature/closedloop.h" +#include "module/stepper.h" #include "module/stepper/indirection.h" -#include "libs/nozzle.h" - #include "gcode/gcode.h" #include "gcode/parser.h" #include "gcode/queue.h" +#include "sd/cardreader.h" + +#include "lcd/ultralcd.h" +#if HAS_TOUCH_XPT2046 + #include "lcd/touch/xpt2046.h" +#endif + #if HAS_TFT_LVGL_UI #include "lcd/extui/lib/mks_ui/tft_lvgl_configuration.h" #include "lcd/extui/lib/mks_ui/draw_ui.h" @@ -80,10 +81,6 @@ #include "feature/direct_stepping.h" #endif -#if HAS_TOUCH_XPT2046 - #include "feature/touch/xpt2046.h" -#endif - #if ENABLED(HOST_ACTION_COMMANDS) #include "feature/host_actions.h" #endif @@ -92,6 +89,10 @@ #include "libs/buzzer.h" #endif +#if ENABLED(EXTERNAL_CLOSED_LOOP_CONTROLLER) + #include "feature/closedloop.h" +#endif + #if HAS_I2C_DIGIPOT #include "feature/digipot/digipot.h" #endif @@ -176,6 +177,10 @@ #include "feature/runout.h" #endif +#if HAS_Z_SERVO_PROBE + #include "module/probe.h" +#endif + #if ENABLED(HOTEND_IDLE_TIMEOUT) #include "feature/hotend_idle.h" #endif @@ -1194,7 +1199,9 @@ void setup() { #endif #if HAS_TFT_LVGL_UI - if (!card.isMounted()) SETUP_RUN(card.mount()); // Mount SD to load graphics and fonts + #if ENABLED(SDSUPPORT) + if (!card.isMounted()) SETUP_RUN(card.mount()); // Mount SD to load graphics and fonts + #endif SETUP_RUN(tft_lvgl_init()); #endif diff --git a/Marlin/src/lcd/dogm/u8g_dev_tft_320x240_upscale_from_128x64.cpp b/Marlin/src/lcd/dogm/u8g_dev_tft_320x240_upscale_from_128x64.cpp index d081541c5..0f6cbcbb8 100644 --- a/Marlin/src/lcd/dogm/u8g_dev_tft_320x240_upscale_from_128x64.cpp +++ b/Marlin/src/lcd/dogm/u8g_dev_tft_320x240_upscale_from_128x64.cpp @@ -20,40 +20,39 @@ * */ -/* - - u8g_dev_tft_320x240_upscale_from_128x64.cpp - - Universal 8bit Graphics Library - - Copyright (c) 2011, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -*/ +/** + * u8g_dev_tft_320x240_upscale_from_128x64.cpp + * + * Universal 8bit Graphics Library + * + * Copyright (c) 2011, olikraus@gmail.com + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this list + * of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, this + * list of conditions and the following disclaimer in the documentation and/or other + * materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND + * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, + * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + */ #include "../../inc/MarlinConfig.h" @@ -80,14 +79,16 @@ extern void LCD_IO_WriteMultiple(uint16_t color, uint32_t count); #endif -#define WIDTH LCD_PIXEL_WIDTH +#define WIDTH LCD_PIXEL_WIDTH #define HEIGHT LCD_PIXEL_HEIGHT #define PAGE_HEIGHT 8 -#define X_LO LCD_PIXEL_OFFSET_X -#define Y_LO LCD_PIXEL_OFFSET_Y -#define X_HI (X_LO + (FSMC_UPSCALE) * WIDTH - 1) -#define Y_HI (Y_LO + (FSMC_UPSCALE) * HEIGHT - 1) +#include "../scaled_tft.h" + +#define UPSCALE0(M) ((M) * (FSMC_UPSCALE)) +#define UPSCALE(A,M) (UPSCALE0(M) + (A)) +#define X_HI (UPSCALE(LCD_PIXEL_OFFSET_X, WIDTH) - 1) +#define Y_HI (UPSCALE(LCD_PIXEL_OFFSET_Y, HEIGHT) - 1) // see https://ee-programming-notepad.blogspot.com/2016/10/16-bit-color-generator-picker.html @@ -153,7 +154,6 @@ static uint32_t lcd_id = 0; #define ILI9328_VASTART 0x52 /* Vertical address start position (0-511) */ #define ILI9328_VAEND 0x53 /* Vertical address end position (0-511) */ - static void setWindow_ili9328(u8g_t *u8g, u8g_dev_t *dev, uint16_t Xmin, uint16_t Ymin, uint16_t Xmax, uint16_t Ymax) { #if HAS_LCD_IO #define IO_REG_DATA(R,D) do { LCD_IO_WriteReg(R); LCD_IO_WriteData(D); }while(0) @@ -216,7 +216,6 @@ static void setWindow_st7789v(u8g_t *u8g, u8g_dev_t *dev, uint16_t Xmin, uint16_ static void setWindow_none(u8g_t *u8g, u8g_dev_t *dev, uint16_t Xmin, uint16_t Ymin, uint16_t Xmax, uint16_t Ymax) {} void (*setWindow)(u8g_t *u8g, u8g_dev_t *dev, uint16_t Xmin, uint16_t Ymin, uint16_t Xmax, uint16_t Ymax) = setWindow_none; - #define ESC_REG(x) 0xFFFF, 0x00FF & (uint16_t)x #define ESC_DELAY(x) 0xFFFF, 0x8000 | (x & 0x7FFF) #define ESC_END 0xFFFF, 0x7FFF @@ -552,20 +551,20 @@ static const uint16_t st9677_init[] = { #define BUTTON_SIZE_Y 20 // 14, 90, 166, 242, 185 are the original values upscaled 2x. - #define BUTTOND_X_LO (14 / 2) * (FSMC_UPSCALE) - #define BUTTOND_X_HI (BUTTOND_X_LO + (FSMC_UPSCALE) * BUTTON_SIZE_X - 1) + #define BUTTOND_X_LO UPSCALE0(14 / 2) + #define BUTTOND_X_HI (UPSCALE(BUTTOND_X_LO, BUTTON_SIZE_X) - 1) - #define BUTTONA_X_LO (90 / 2) * (FSMC_UPSCALE) - #define BUTTONA_X_HI (BUTTONA_X_LO + (FSMC_UPSCALE) * BUTTON_SIZE_X - 1) + #define BUTTONA_X_LO UPSCALE0(90 / 2) + #define BUTTONA_X_HI (UPSCALE(BUTTONA_X_LO, BUTTON_SIZE_X) - 1) - #define BUTTONB_X_LO (166 / 2) * (FSMC_UPSCALE) - #define BUTTONB_X_HI (BUTTONB_X_LO + (FSMC_UPSCALE) * BUTTON_SIZE_X - 1) + #define BUTTONB_X_LO UPSCALE0(166 / 2) + #define BUTTONB_X_HI (UPSCALE(BUTTONB_X_LO, BUTTON_SIZE_X) - 1) - #define BUTTONC_X_LO (242 / 2) * (FSMC_UPSCALE) - #define BUTTONC_X_HI (BUTTONC_X_LO + (FSMC_UPSCALE) * BUTTON_SIZE_X - 1) + #define BUTTONC_X_LO UPSCALE0(242 / 2) + #define BUTTONC_X_HI (UPSCALE(BUTTONC_X_LO, BUTTON_SIZE_X) - 1) - #define BUTTON_Y_LO (140 / 2) * (FSMC_UPSCALE) + 44 //184 2x, 254 3x - #define BUTTON_Y_HI (BUTTON_Y_LO + (FSMC_UPSCALE) * BUTTON_SIZE_Y - 1) + #define BUTTON_Y_LO UPSCALE0(140 / 2) + 44 // 184 2x, 254 3x + #define BUTTON_Y_HI (UPSCALE(BUTTON_Y_LO, BUTTON_SIZE_Y) - 1) void drawImage(const uint8_t *data, u8g_t *u8g, u8g_dev_t *dev, uint16_t length, uint16_t height, uint16_t color) { uint16_t buffer[BUTTON_SIZE_X * sq(FSMC_UPSCALE)]; @@ -584,8 +583,8 @@ static const uint16_t st9677_init[] = { } #if HAS_LCD_IO LOOP_S_L_N(n, 1, FSMC_UPSCALE) - for (uint16_t l = 0; l < length * (FSMC_UPSCALE); l++) - buffer[l + (length * (FSMC_UPSCALE) * n)] = buffer[l]; + for (uint16_t l = 0; l < UPSCALE0(length); l++) + buffer[l + n * UPSCALE0(length)] = buffer[l]; LCD_IO_WriteSequence(buffer, length * sq(FSMC_UPSCALE)); #else @@ -660,27 +659,27 @@ uint8_t u8g_dev_tft_320x240_upscale_from_128x64_fn(u8g_t *u8g, u8g_dev_t *dev, u } // Clear Screen - setWindow(u8g, dev, 0, 0, LCD_FULL_PIXEL_WIDTH - 1, LCD_FULL_PIXEL_HEIGHT - 1); + setWindow(u8g, dev, 0, 0, (LCD_FULL_PIXEL_WIDTH) - 1, (LCD_FULL_PIXEL_HEIGHT) - 1); #if HAS_LCD_IO - LCD_IO_WriteMultiple(TFT_MARLINBG_COLOR, LCD_FULL_PIXEL_WIDTH * LCD_FULL_PIXEL_HEIGHT); + LCD_IO_WriteMultiple(TFT_MARLINBG_COLOR, (LCD_FULL_PIXEL_WIDTH) * (LCD_FULL_PIXEL_HEIGHT)); #else - memset2(buffer, TFT_MARLINBG_COLOR, 160); - for (uint16_t i = 0; i < 960; i++) - u8g_WriteSequence(u8g, dev, 160, (uint8_t *)buffer); + memset2(buffer, TFT_MARLINBG_COLOR, (LCD_FULL_PIXEL_WIDTH) / 2); + for (uint16_t i = 0; i < (LCD_FULL_PIXEL_WIDTH) * 3; i++) + u8g_WriteSequence(u8g, dev, (LCD_FULL_PIXEL_WIDTH) / 2, (uint8_t *)buffer); #endif // Bottom buttons #if HAS_TOUCH_XPT2046 - setWindow(u8g, dev, BUTTOND_X_LO, BUTTON_Y_LO, BUTTOND_X_HI, BUTTON_Y_HI); + setWindow(u8g, dev, BUTTOND_X_LO, BUTTON_Y_LO, BUTTOND_X_HI, BUTTON_Y_HI); drawImage(buttonD, u8g, dev, 32, 20, TFT_BTCANCEL_COLOR); - setWindow(u8g, dev, BUTTONA_X_LO, BUTTON_Y_LO, BUTTONA_X_HI, BUTTON_Y_HI); + setWindow(u8g, dev, BUTTONA_X_LO, BUTTON_Y_LO, BUTTONA_X_HI, BUTTON_Y_HI); drawImage(buttonA, u8g, dev, 32, 20, TFT_BTARROWS_COLOR); - setWindow(u8g, dev, BUTTONB_X_LO, BUTTON_Y_LO, BUTTONB_X_HI, BUTTON_Y_HI); + setWindow(u8g, dev, BUTTONB_X_LO, BUTTON_Y_LO, BUTTONB_X_HI, BUTTON_Y_HI); drawImage(buttonB, u8g, dev, 32, 20, TFT_BTARROWS_COLOR); - setWindow(u8g, dev, BUTTONC_X_LO, BUTTON_Y_LO, BUTTONC_X_HI, BUTTON_Y_HI); + setWindow(u8g, dev, BUTTONC_X_LO, BUTTON_Y_LO, BUTTONC_X_HI, BUTTON_Y_HI); drawImage(buttonC, u8g, dev, 32, 20, TFT_BTOKMENU_COLOR); #endif // HAS_TOUCH_XPT2046 @@ -690,7 +689,7 @@ uint8_t u8g_dev_tft_320x240_upscale_from_128x64_fn(u8g_t *u8g, u8g_dev_t *dev, u case U8G_DEV_MSG_PAGE_FIRST: page = 0; - setWindow(u8g, dev, X_LO, Y_LO, X_HI, Y_HI); + setWindow(u8g, dev, LCD_PIXEL_OFFSET_X, LCD_PIXEL_OFFSET_Y, X_HI, Y_HI); break; case U8G_DEV_MSG_PAGE_NEXT: @@ -708,8 +707,8 @@ uint8_t u8g_dev_tft_320x240_upscale_from_128x64_fn(u8g_t *u8g, u8g_dev_t *dev, u } #if HAS_LCD_IO LOOP_S_L_N(n, 1, FSMC_UPSCALE) - for (uint16_t l = 0; l < WIDTH * (FSMC_UPSCALE); l++) - buffer[l + WIDTH * (FSMC_UPSCALE) * n] = buffer[l]; + for (uint16_t l = 0; l < UPSCALE0(WIDTH); l++) + buffer[l + n * UPSCALE0(WIDTH)] = buffer[l]; if (allow_async) { if (y > 0 || page > 1) LCD_IO_WaitSequence_Async(); diff --git a/Marlin/src/lcd/dogm/ultralcd_DOGM.h b/Marlin/src/lcd/dogm/ultralcd_DOGM.h index 5ebff37ed..40402fe5a 100644 --- a/Marlin/src/lcd/dogm/ultralcd_DOGM.h +++ b/Marlin/src/lcd/dogm/ultralcd_DOGM.h @@ -212,30 +212,9 @@ #endif #endif -// LCD_FULL_PIXEL_WIDTH = -// LCD_PIXEL_OFFSET_X + (LCD_PIXEL_WIDTH * 2) + LCD_PIXEL_OFFSET_X -#if TFT_SCALED_DOGLCD - #ifndef LCD_FULL_PIXEL_WIDTH - #define LCD_FULL_PIXEL_WIDTH 320 - #endif - #ifndef LCD_PIXEL_OFFSET_X - #define LCD_PIXEL_OFFSET_X 32 - #endif - #ifndef LCD_FULL_PIXEL_HEIGHT - #define LCD_FULL_PIXEL_HEIGHT 240 - #endif - #ifndef LCD_PIXEL_OFFSET_Y - #define LCD_PIXEL_OFFSET_Y 32 - #endif -#endif - // For selective rendering within a Y range #define PAGE_OVER(ya) ((ya) <= u8g.getU8g()->current_page.y1) // Does the current page follow a region top? #define PAGE_UNDER(yb) ((yb) >= u8g.getU8g()->current_page.y0) // Does the current page precede a region bottom? #define PAGE_CONTAINS(ya, yb) ((yb) >= u8g.getU8g()->current_page.y0 && (ya) <= u8g.getU8g()->current_page.y1) // Do two vertical regions overlap? -#ifndef FSMC_UPSCALE - #define FSMC_UPSCALE 2 -#endif - extern U8G_CLASS u8g; diff --git a/Marlin/src/lcd/extui/lib/mks_ui/mks_hardware_test.cpp b/Marlin/src/lcd/extui/lib/mks_ui/mks_hardware_test.cpp index b5b77c50b..00371d7ab 100644 --- a/Marlin/src/lcd/extui/lib/mks_ui/mks_hardware_test.cpp +++ b/Marlin/src/lcd/extui/lib/mks_ui/mks_hardware_test.cpp @@ -35,9 +35,10 @@ #include "pic_manager.h" #include +#include "../../../touch/xpt2046.h" + #include "../../../../MarlinCore.h" #include "../../../../module/temperature.h" -#include "../../../../feature/touch/xpt2046.h" #include "../../../../sd/cardreader.h" uint8_t pw_det_sta, pw_off_sta, mt_det_sta, mt_det2_sta, mt_det3_sta; diff --git a/Marlin/src/lcd/extui/lib/mks_ui/tft_lvgl_configuration.cpp b/Marlin/src/lcd/extui/lib/mks_ui/tft_lvgl_configuration.cpp index 96eedd329..fc5b8c1bf 100644 --- a/Marlin/src/lcd/extui/lib/mks_ui/tft_lvgl_configuration.cpp +++ b/Marlin/src/lcd/extui/lib/mks_ui/tft_lvgl_configuration.cpp @@ -41,8 +41,11 @@ #include "draw_ui.h" #include -#include "../../../../MarlinCore.h" -#include "../../../../feature/touch/xpt2046.h" +#include "../../../../inc/MarlinConfig.h" + +#if HAS_TOUCH_XPT2046 + #include "../../../touch/xpt2046.h" +#endif #if ENABLED(POWER_LOSS_RECOVERY) #include "../../../../feature/powerloss.h" @@ -50,6 +53,13 @@ #include +#ifndef LCD_FULL_PIXEL_WIDTH + #define LCD_FULL_PIXEL_WIDTH 480 +#endif +#ifndef LCD_FULL_PIXEL_HEIGHT + #define LCD_FULL_PIXEL_HEIGHT 320 +#endif + #if HAS_SPI_FLASH_FONT extern void init_gb2312_font(); #endif @@ -127,9 +137,8 @@ void LCD_WriteRAM_Prepare(void) { void tft_set_point(uint16_t x, uint16_t y, uint16_t point) { //if (DeviceCode == 0x9488) { - if ((x > 480) || (y > 320)) return; + if (x > (LCD_FULL_PIXEL_WIDTH) || y > (LCD_FULL_PIXEL_HEIGHT)) return; //} - //**if ( (x>320)||(y>240) ) return; tft_set_cursor(x, y); LCD_WriteRAM_Prepare(); @@ -187,10 +196,10 @@ void ili9320_SetWindows(uint16_t StartX, uint16_t StartY, uint16_t width, uint16 LCD_WriteReg(0x0052, StartY); LCD_WriteReg(0x0051, xEnd); LCD_WriteReg(0x0053, yEnd);*/ - LCD_WriteReg(0x0050, StartY); //Specify the start/end positions of the window address in the horizontal direction by an address unit - LCD_WriteReg(0x0051, yEnd); //Specify the start positions of the window address in the vertical direction by an address unit + LCD_WriteReg(0x0050, StartY); // Specify the start/end positions of the window address in the horizontal direction by an address unit + LCD_WriteReg(0x0051, yEnd); // Specify the start positions of the window address in the vertical direction by an address unit LCD_WriteReg(0x0052, 320 - xEnd); - LCD_WriteReg(0x0053, 320 - StartX - 1); //Specify the end positions of the window address in the vertical direction by an address unit + LCD_WriteReg(0x0053, 320 - StartX - 1); // Specify the end positions of the window address in the vertical direction by an address unit } else { @@ -224,16 +233,16 @@ void LCD_Clear(uint16_t Color) { if (DeviceCode == 0x9488) { tft_set_cursor(0, 0); - ili9320_SetWindows(0, 0, 480, 320); + ili9320_SetWindows(0, 0, LCD_FULL_PIXEL_WIDTH, LCD_FULL_PIXEL_HEIGHT); LCD_WriteRAM_Prepare(); #ifdef LCD_USE_DMA_FSMC - LCD_IO_WriteMultiple(Color, LCD_FULL_PIXEL_WIDTH * LCD_FULL_PIXEL_HEIGHT); + LCD_IO_WriteMultiple(Color, (LCD_FULL_PIXEL_WIDTH) * (LCD_FULL_PIXEL_HEIGHT)); #else - //index = (160*480); - for (index = 0; index < 320 * 480; index++) - LCD_IO_WriteData(Color); + //index = (LCD_FULL_PIXEL_HEIGHT) / 2 * (LCD_FULL_PIXEL_WIDTH); + for (index = 0; index < (LCD_FULL_PIXEL_HEIGHT) * (LCD_FULL_PIXEL_WIDTH); index++) + LCD_IO_WriteData(Color); #endif - //LCD_IO_WriteMultiple(Color, (480*320)); + //LCD_IO_WriteMultiple(Color, (LCD_FULL_PIXEL_WIDTH) * (LCD_FULL_PIXEL_HEIGHT)); //while(index --) LCD_IO_WriteData(Color); } else if (DeviceCode == 0x5761) { @@ -262,7 +271,6 @@ void LCD_Clear(uint16_t Color) { extern uint16_t ILI9488_ReadRAM(); - void init_tft() { uint16_t i; //************* Start Initial Sequence **********// @@ -393,7 +401,7 @@ void init_tft() { for (i = 0; i < 65535; i++); LCD_IO_WriteReg(0x0029); - ili9320_SetWindows(0, 0, 480, 320); + ili9320_SetWindows(0, 0, LCD_FULL_PIXEL_WIDTH, LCD_FULL_PIXEL_HEIGHT); LCD_Clear(0x0000); OUT_WRITE(LCD_BACKLIGHT_PIN, HIGH); @@ -486,7 +494,7 @@ void my_disp_flush(lv_disp_drv_t * disp, const lv_area_t * area, lv_color_t * co #if ENABLED(TFT_LVGL_UI_SPI) uint16_t i, width, height; uint16_t clr_temp; - uint8_t tbuf[480 * 2]; + uint8_t tbuf[(LCD_FULL_PIXEL_WIDTH) * 2]; SPI_TFT.spi_init(SPI_FULL_SPEED); diff --git a/Marlin/src/lcd/lcdprint.h b/Marlin/src/lcd/lcdprint.h index 341cc4f5c..8e611bde8 100644 --- a/Marlin/src/lcd/lcdprint.h +++ b/Marlin/src/lcd/lcdprint.h @@ -1,3 +1,25 @@ +/** + * Marlin 3D Printer Firmware + * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin] + * + * Based on Sprinter and grbl. + * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + */ + /** * @file lcdprint.h * @brief LCD print api diff --git a/Marlin/src/lcd/scaled_tft.h b/Marlin/src/lcd/scaled_tft.h new file mode 100644 index 000000000..f22bdf696 --- /dev/null +++ b/Marlin/src/lcd/scaled_tft.h @@ -0,0 +1,50 @@ +/** + * Marlin 3D Printer Firmware + * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin] + * + * Based on Sprinter and grbl. + * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + */ +#pragma once + +#include "../inc/MarlinConfig.h" + +#ifndef FSMC_UPSCALE + #define FSMC_UPSCALE 2 +#endif + +#ifndef LCD_FULL_PIXEL_WIDTH + #if FSMC_UPSCALE == 3 + #define LCD_FULL_PIXEL_WIDTH 480 + #else + #define LCD_FULL_PIXEL_WIDTH 320 + #endif +#endif +#ifndef LCD_FULL_PIXEL_HEIGHT + #if FSMC_UPSCALE == 3 + #define LCD_FULL_PIXEL_HEIGHT 320 + #else + #define LCD_FULL_PIXEL_HEIGHT 240 + #endif +#endif + +#ifndef LCD_PIXEL_OFFSET_X + #define LCD_PIXEL_OFFSET_X 48 +#endif +#ifndef LCD_PIXEL_OFFSET_Y + #define LCD_PIXEL_OFFSET_Y 48 +#endif diff --git a/Marlin/src/feature/touch/xpt2046.cpp b/Marlin/src/lcd/touch/xpt2046.cpp similarity index 87% rename from Marlin/src/feature/touch/xpt2046.cpp rename to Marlin/src/lcd/touch/xpt2046.cpp index b75f3ee2f..1fed5b78f 100644 --- a/Marlin/src/feature/touch/xpt2046.cpp +++ b/Marlin/src/lcd/touch/xpt2046.cpp @@ -21,11 +21,8 @@ #if HAS_TOUCH_XPT2046 -#if TFT_SCALED_DOGLCD - #include "../../lcd/dogm/ultralcd_DOGM.h" // for LCD_FULL_PIXEL_WIDTH, etc. -#endif - #include "xpt2046.h" +#include "../scaled_tft.h" #ifndef XPT2046_Z1_THRESHOLD #define XPT2046_Z1_THRESHOLD 10 @@ -35,12 +32,12 @@ * Draw and Touch processing * * LCD_PIXEL_WIDTH/HEIGHT (128x64) is the (emulated DOGM) Pixel Drawing resolution. - * TOUCH_SCREEN_WIDTH/HEIGHT (320x240) is the Touch Area resolution. + * TOUCH_SENSOR_WIDTH/HEIGHT (320x240) is the Touch Area resolution. * LCD_FULL_PIXEL_WIDTH/HEIGHT (320x240 or 480x320) is the Actual (FSMC) Display resolution. * * - All native (u8g) drawing is done in LCD_PIXEL_* (128x64) * - The DOGM pixels are is upscaled 2-3x (as needed) for display. - * - Touch coordinates use TOUCH_SCREEN_* resolution and are converted to + * - Touch coordinates use TOUCH_SENSOR_* resolution and are converted to * click and scroll-wheel events (emulating of a common DOGM display). * * TOUCH_SCREEN resolution exists to fit our calibration values. The original touch code was made @@ -54,21 +51,25 @@ * The Marlin screen touchable area starts at LCD_PIXEL_OFFSET_X/Y (translated to SCREEN_START_LEFT/TOP) * and spans LCD_PIXEL_WIDTH/HEIGHT (scaled to SCREEN_WIDTH/HEIGHT). */ -// Touch screen resolution independent of display resolution -#define TOUCH_SCREEN_HEIGHT 240 -#define TOUCH_SCREEN_WIDTH 320 // Coordinates in terms of touch area #define BUTTON_AREA_TOP 175 #define BUTTON_AREA_BOT 234 -#define SCREEN_START_TOP ((LCD_PIXEL_OFFSET_Y) * (TOUCH_SCREEN_HEIGHT) / (LCD_FULL_PIXEL_HEIGHT)) -#define SCREEN_START_LEFT ((LCD_PIXEL_OFFSET_X) * (TOUCH_SCREEN_WIDTH) / (LCD_FULL_PIXEL_WIDTH)) -#define SCREEN_HEIGHT ((LCD_PIXEL_HEIGHT * FSMC_UPSCALE) * (TOUCH_SCREEN_HEIGHT) / (LCD_FULL_PIXEL_HEIGHT)) -#define SCREEN_WIDTH ((LCD_PIXEL_WIDTH * FSMC_UPSCALE) * (TOUCH_SCREEN_WIDTH) / (LCD_FULL_PIXEL_WIDTH)) +// Touch sensor resolution independent of display resolution +#define TOUCH_SENSOR_WIDTH 320 +#define TOUCH_SENSOR_HEIGHT 240 + +#define SCREEN_WIDTH_PCT(X) ((X) * (TOUCH_SENSOR_WIDTH) / (LCD_FULL_PIXEL_WIDTH)) +#define SCREEN_HEIGHT_PCT(Y) ((Y) * (TOUCH_SENSOR_HEIGHT) / (LCD_FULL_PIXEL_HEIGHT)) + +#define SCREEN_START_LEFT SCREEN_WIDTH_PCT(LCD_PIXEL_OFFSET_X) +#define SCREEN_START_TOP SCREEN_HEIGHT_PCT(LCD_PIXEL_OFFSET_Y) +#define SCREEN_WIDTH SCREEN_WIDTH_PCT((LCD_PIXEL_WIDTH) * (FSMC_UPSCALE)) +#define SCREEN_HEIGHT SCREEN_HEIGHT_PCT((LCD_PIXEL_HEIGHT) * (FSMC_UPSCALE)) -#define TOUCHABLE_Y_HEIGHT SCREEN_HEIGHT #define TOUCHABLE_X_WIDTH SCREEN_WIDTH +#define TOUCHABLE_Y_HEIGHT SCREEN_HEIGHT #ifndef TOUCH_INT_PIN #define TOUCH_INT_PIN -1 @@ -125,8 +126,8 @@ uint8_t XPT2046::read_buttons() { if (!isTouched()) return 0; // Fingers must still be on the TS for a valid read. #if ENABLED(GRAPHICAL_TFT_ROTATE_180) - x = TOUCH_SCREEN_WIDTH - x; - y = TOUCH_SCREEN_HEIGHT - y; + x = TOUCH_SENSOR_WIDTH - x; + y = TOUCH_SENSOR_HEIGHT - y; #endif // Touch within the button area simulates an encoder button @@ -137,11 +138,11 @@ uint8_t XPT2046::read_buttons() { : WITHIN(x, 242, 305) ? EN_C : 0; - if (x > TOUCH_SCREEN_WIDTH || !WITHIN(y, SCREEN_START_TOP, SCREEN_START_TOP + SCREEN_HEIGHT)) return 0; + if (x > TOUCH_SENSOR_WIDTH || !WITHIN(y, SCREEN_START_TOP, SCREEN_START_TOP + SCREEN_HEIGHT)) return 0; // Column and row above BUTTON_AREA_TOP int8_t col = (x - (SCREEN_START_LEFT)) * (LCD_WIDTH) / (TOUCHABLE_X_WIDTH), - row = (y - (SCREEN_START_TOP)) * (LCD_HEIGHT) / (TOUCHABLE_Y_HEIGHT); + row = (y - (SCREEN_START_TOP)) * (LCD_HEIGHT) / (TOUCHABLE_Y_HEIGHT); // Send the touch to the UI (which will simulate the encoder wheel) MarlinUI::screen_click(row, col, x, y); diff --git a/Marlin/src/feature/touch/xpt2046.h b/Marlin/src/lcd/touch/xpt2046.h similarity index 100% rename from Marlin/src/feature/touch/xpt2046.h rename to Marlin/src/lcd/touch/xpt2046.h diff --git a/Marlin/src/lcd/ultralcd.cpp b/Marlin/src/lcd/ultralcd.cpp index 92e3f136c..b7dd4944e 100644 --- a/Marlin/src/lcd/ultralcd.cpp +++ b/Marlin/src/lcd/ultralcd.cpp @@ -150,7 +150,7 @@ constexpr uint8_t epps = ENCODER_PULSES_PER_STEP; volatile uint8_t MarlinUI::slow_buttons; #endif #if HAS_TOUCH_XPT2046 - #include "../feature/touch/xpt2046.h" + #include "touch/xpt2046.h" bool MarlinUI::on_edit_screen = false; #endif #endif diff --git a/Marlin/src/pins/stm32f1/pins_CHITU3D_V5.h b/Marlin/src/pins/stm32f1/pins_CHITU3D_V5.h index b2eda4797..31aa873b5 100644 --- a/Marlin/src/pins/stm32f1/pins_CHITU3D_V5.h +++ b/Marlin/src/pins/stm32f1/pins_CHITU3D_V5.h @@ -112,10 +112,6 @@ #if ENABLED(FSMC_GRAPHICAL_TFT) #define FSMC_UPSCALE 3 - #define LCD_FULL_PIXEL_WIDTH 480 - #define LCD_PIXEL_OFFSET_X 48 - #define LCD_FULL_PIXEL_HEIGHT 320 - #define LCD_PIXEL_OFFSET_Y 48 #define LCD_RESET_PIN PF11 #define LCD_BACKLIGHT_PIN PD13 @@ -161,7 +157,7 @@ #define HAS_BAK_VIEW_IN_FLASH 0 #define HAS_LOGO_IN_FLASH 0 - //SPI 2 + // SPI 2 #define W25QXX_CS_PIN PB12 #define W25QXX_MOSI_PIN PB15 #define W25QXX_MISO_PIN PB14 @@ -171,31 +167,32 @@ #define TOUCH_SCK_PIN PA5 // SPI1_SCK #define TOUCH_MISO_PIN PA6 // SPI1_MISO #define TOUCH_MOSI_PIN PA7 // SPI1_MOSI - // #define TOUCH_INT_PIN PB6 + //#define TOUCH_INT_PIN PB6 - #define SPI_TFT_CS_PIN TOUCH_CS_PIN - #define SPI_TFT_SCK_PIN TOUCH_SCK_PIN - #define SPI_TFT_MISO_PIN TOUCH_MISO_PIN - #define SPI_TFT_MOSI_PIN TOUCH_MOSI_PIN - #define SPI_TFT_DC_PIN PB6 - #define SPI_TFT_RST_PIN PF11 + #if ENABLED(TFT_LVGL_UI_SPI) + #define SPI_TFT_CS_PIN TOUCH_CS_PIN + #define SPI_TFT_SCK_PIN TOUCH_SCK_PIN + #define SPI_TFT_MISO_PIN TOUCH_MISO_PIN + #define SPI_TFT_MOSI_PIN TOUCH_MOSI_PIN + #define SPI_TFT_DC_PIN PB6 + #define SPI_TFT_RST_PIN PF11 + #endif #define LCD_RESET_PIN PF11 #define LCD_BACKLIGHT_PIN PD13 - #define FSMC_CS_PIN PD7 - #define FSMC_RS_PIN PD11 #define LCD_USE_DMA_FSMC // Use DMA transfers to send data to the TFT + #define FSMC_CS_PIN PD7 + #define FSMC_RS_PIN PD11 #define FSMC_DMA_DEV DMA2 #define FSMC_DMA_CHANNEL DMA_CH5 - #define LCD_FULL_PIXEL_WIDTH 480 - #define LCD_PIXEL_OFFSET_X 48 - #define LCD_FULL_PIXEL_HEIGHT 320 - #define LCD_PIXEL_OFFSET_Y 48 - - #define LCD_PIXEL_HEIGHT 320 - #define LCD_PIXEL_WIDTH 480 + #define LCD_PIXEL_WIDTH 480 + #define LCD_PIXEL_HEIGHT 320 + #define LCD_FULL_PIXEL_WIDTH LCD_PIXEL_WIDTH + #define LCD_FULL_PIXEL_HEIGHT LCD_PIXEL_HEIGHT + #define LCD_PIXEL_OFFSET_X 48 + #define LCD_PIXEL_OFFSET_Y 48 #define XPT2046_X_CALIBRATION -12316 #define XPT2046_Y_CALIBRATION 8981 diff --git a/Marlin/src/pins/stm32f1/pins_CHITU3D_V6.h b/Marlin/src/pins/stm32f1/pins_CHITU3D_V6.h index 39db37a1a..75aa9146f 100644 --- a/Marlin/src/pins/stm32f1/pins_CHITU3D_V6.h +++ b/Marlin/src/pins/stm32f1/pins_CHITU3D_V6.h @@ -118,10 +118,6 @@ // #if ENABLED(FSMC_GRAPHICAL_TFT) #define FSMC_UPSCALE 3 - #define LCD_FULL_PIXEL_WIDTH 480 - #define LCD_PIXEL_OFFSET_X 48 - #define LCD_FULL_PIXEL_HEIGHT 320 - #define LCD_PIXEL_OFFSET_Y 48 #define LCD_RESET_PIN PF11 #define LCD_BACKLIGHT_PIN PD13 @@ -166,7 +162,7 @@ #define HAS_BAK_VIEW_IN_FLASH 0 #define HAS_LOGO_IN_FLASH 0 - //SPI 2 + // SPI 2 #define W25QXX_CS_PIN PB12 #define W25QXX_MOSI_PIN PB15 #define W25QXX_MISO_PIN PB14 @@ -176,31 +172,32 @@ #define TOUCH_SCK_PIN PA5 // SPI1_SCK #define TOUCH_MISO_PIN PA6 // SPI1_MISO #define TOUCH_MOSI_PIN PA7 // SPI1_MOSI - // #define TOUCH_INT_PIN PB6 + //#define TOUCH_INT_PIN PB6 - #define SPI_TFT_CS_PIN TOUCH_CS_PIN - #define SPI_TFT_SCK_PIN TOUCH_SCK_PIN - #define SPI_TFT_MISO_PIN TOUCH_MISO_PIN - #define SPI_TFT_MOSI_PIN TOUCH_MOSI_PIN - #define SPI_TFT_DC_PIN PB6 - #define SPI_TFT_RST_PIN PF11 + #if ENABLED(TFT_LVGL_UI_SPI) + #define SPI_TFT_CS_PIN TOUCH_CS_PIN + #define SPI_TFT_SCK_PIN TOUCH_SCK_PIN + #define SPI_TFT_MISO_PIN TOUCH_MISO_PIN + #define SPI_TFT_MOSI_PIN TOUCH_MOSI_PIN + #define SPI_TFT_DC_PIN PB6 + #define SPI_TFT_RST_PIN PF11 + #endif #define LCD_RESET_PIN PF11 #define LCD_BACKLIGHT_PIN PD13 - #define FSMC_CS_PIN PD7 - #define FSMC_RS_PIN PD11 #define LCD_USE_DMA_FSMC // Use DMA transfers to send data to the TFT + #define FSMC_CS_PIN PD7 + #define FSMC_RS_PIN PD11 #define FSMC_DMA_DEV DMA2 #define FSMC_DMA_CHANNEL DMA_CH5 - #define LCD_FULL_PIXEL_WIDTH 480 - #define LCD_PIXEL_OFFSET_X 48 - #define LCD_FULL_PIXEL_HEIGHT 320 - #define LCD_PIXEL_OFFSET_Y 48 - - #define LCD_PIXEL_HEIGHT 320 - #define LCD_PIXEL_WIDTH 480 + #define LCD_PIXEL_WIDTH 480 + #define LCD_PIXEL_HEIGHT 320 + #define LCD_FULL_PIXEL_WIDTH LCD_PIXEL_WIDTH + #define LCD_FULL_PIXEL_HEIGHT LCD_PIXEL_HEIGHT + #define LCD_PIXEL_OFFSET_X 48 + #define LCD_PIXEL_OFFSET_Y 48 #define XPT2046_X_CALIBRATION -12316 #define XPT2046_Y_CALIBRATION 8981 diff --git a/Marlin/src/pins/stm32f1/pins_MKS_ROBIN_NANO_V2.h b/Marlin/src/pins/stm32f1/pins_MKS_ROBIN_NANO_V2.h index 3c950a38e..9f4e57dd7 100644 --- a/Marlin/src/pins/stm32f1/pins_MKS_ROBIN_NANO_V2.h +++ b/Marlin/src/pins/stm32f1/pins_MKS_ROBIN_NANO_V2.h @@ -294,7 +294,7 @@ #define TOUCH_BUTTONS_HW_SPI_DEVICE 1 //#define TOUCH_SCREEN - #if NEED_TOUCH_PINS + #if EITHER(TOUCH_SCREEN, NEED_TOUCH_PINS) #define TOUCH_CS_PIN PE14 // SPI1_NSS #define TOUCH_SCK_PIN PA5 // SPI1_SCK #define TOUCH_MISO_PIN PA6 // SPI1_MISO @@ -317,15 +317,6 @@ #ifndef FSMC_UPSCALE #define FSMC_UPSCALE 3 #endif - #ifndef LCD_FULL_PIXEL_WIDTH - #define LCD_FULL_PIXEL_WIDTH 480 - #endif - #ifndef LCD_PIXEL_OFFSET_X - #define LCD_PIXEL_OFFSET_X 48 - #endif - #ifndef LCD_FULL_PIXEL_HEIGHT - #define LCD_FULL_PIXEL_HEIGHT 320 - #endif #ifndef LCD_PIXEL_OFFSET_Y #define LCD_PIXEL_OFFSET_Y 32 #endif From 5823ebb446cc82a9a59eac9e1df5e5ab07bc291a Mon Sep 17 00:00:00 2001 From: Keith Bennett <13375512+thisiskeithb@users.noreply.github.com> Date: Mon, 3 Aug 2020 20:39:29 -0700 Subject: [PATCH 035/194] Assisted Tramming requires a probe (#18912) --- Marlin/Configuration_adv.h | 2 +- Marlin/src/inc/SanityCheck.h | 7 +++++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/Marlin/Configuration_adv.h b/Marlin/Configuration_adv.h index 37c997977..3fae47384 100644 --- a/Marlin/Configuration_adv.h +++ b/Marlin/Configuration_adv.h @@ -769,7 +769,7 @@ #endif // -// Add the G35 command to read bed corners to help adjust screws. +// Add the G35 command to read bed corners to help adjust screws. Requires a bed probe. // //#define ASSISTED_TRAMMING #if ENABLED(ASSISTED_TRAMMING) diff --git a/Marlin/src/inc/SanityCheck.h b/Marlin/src/inc/SanityCheck.h index 03b869aa6..5608fcff0 100644 --- a/Marlin/src/inc/SanityCheck.h +++ b/Marlin/src/inc/SanityCheck.h @@ -2072,6 +2072,13 @@ static_assert(hbm[Z_AXIS] >= 0, "HOMING_BUMP_MM.Z must be greater than or equal #endif #endif +/** + * G35 Assisted Tramming + */ +#if ENABLED(ASSISTED_TRAMMING) && !HAS_BED_PROBE + #error "ASSISTED_TRAMMING requires a bed probe." +#endif + /** * G38 Probe Target */ From 04c10eda92ee34ae45da75cd85c42211c23cf1e8 Mon Sep 17 00:00:00 2001 From: Victor Oliveira Date: Tue, 4 Aug 2020 01:41:23 -0300 Subject: [PATCH 036/194] Fix MKS Nano v1.2 FSMC display (#18901) --- Marlin/src/inc/SanityCheck.h | 2 +- ...8g_dev_tft_320x240_upscale_from_128x64.cpp | 54 ++++++++--- Marlin/src/pins/stm32f1/pins_MKS_ROBIN_NANO.h | 97 +++++-------------- 3 files changed, 66 insertions(+), 87 deletions(-) diff --git a/Marlin/src/inc/SanityCheck.h b/Marlin/src/inc/SanityCheck.h index 5608fcff0..e1b162a96 100644 --- a/Marlin/src/inc/SanityCheck.h +++ b/Marlin/src/inc/SanityCheck.h @@ -819,7 +819,7 @@ static_assert(Y_MAX_LENGTH >= Y_BED_SIZE, "Movement bounds (Y_MIN_POS, Y_MAX_POS */ #if ENABLED(ADVANCED_PAUSE_FEATURE) #if !HAS_RESUME_CONTINUE - #error "ADVANCED_PAUSE_FEATURE currently requires an LCD controller or EMERGENCY_PARSER." + #error "ADVANCED_PAUSE_FEATURE requires a supported LCD controller (or EMERGENCY_PARSER)." #elif DISABLED(NOZZLE_PARK_FEATURE) #error "ADVANCED_PAUSE_FEATURE requires NOZZLE_PARK_FEATURE." #elif !defined(FILAMENT_UNLOAD_PURGE_FEEDRATE) diff --git a/Marlin/src/lcd/dogm/u8g_dev_tft_320x240_upscale_from_128x64.cpp b/Marlin/src/lcd/dogm/u8g_dev_tft_320x240_upscale_from_128x64.cpp index 0f6cbcbb8..82bef7824 100644 --- a/Marlin/src/lcd/dogm/u8g_dev_tft_320x240_upscale_from_128x64.cpp +++ b/Marlin/src/lcd/dogm/u8g_dev_tft_320x240_upscale_from_128x64.cpp @@ -242,6 +242,7 @@ void (*setWindow)(u8g_t *u8g, u8g_dev_t *dev, uint16_t Xmin, uint16_t Ymin, uint } } #define WRITE_ESC_SEQUENCE(V) writeEscSequence(V) + #define WRITE_ESC_SEQUENCE16(V) writeEscSequence(V) #else void writeEscSequence8(u8g_t *u8g, u8g_dev_t *dev, const uint16_t *sequence) { uint16_t data; @@ -289,6 +290,8 @@ void (*setWindow)(u8g_t *u8g, u8g_dev_t *dev, uint16_t Xmin, uint16_t Ymin, uint } u8g_SetAddress(u8g, dev, 1); } + + #define WRITE_ESC_SEQUENCE16(V) writeEscSequence16(u8g, dev, V) #endif static const uint16_t st7789v_init[] = { @@ -378,7 +381,28 @@ static const uint16_t ili9341_init[] = { ESC_END }; -static const uint16_t st9677_init[] = { +static const uint16_t ili9488_init[] = { + ESC_REG(0x00E0), 0x0000, 0x0007, 0x000F, 0x000D, 0x001B, 0x000A, 0x003C, 0x0078, 0x004A, 0x0007, 0x000E, 0x0009, 0x001B, 0x001E, 0x000F, + ESC_REG(0x00E1), 0x0000, 0x0022, 0x0024, 0x0006, 0x0012, 0x0007, 0x0036, 0x0047, 0x0047, 0x0006, 0x000A, 0x0007, 0x0030, 0x0037, 0x000F, + ESC_REG(0x00C0), 0x0010, 0x0010, + ESC_REG(0x00C1), 0x0041, + ESC_REG(0x00C5), 0x0000, 0x0022, 0x0080, + ESC_REG(0x0036), TERN(GRAPHICAL_TFT_ROTATE_180, 0x00A8, 0x0068), + ESC_REG(0x003A), 0x0055, + ESC_REG(0x00B0), 0x0000, + ESC_REG(0x00B1), 0x00B0, 0x0011, + ESC_REG(0x00B4), 0x0002, + ESC_REG(0x00B6), 0x0002, 0x0042, + ESC_REG(0x00B7), 0x00C6, + ESC_REG(0x00E9), 0x0000, + ESC_REG(0x00F0), 0x00A9, 0x0051, 0x002C, 0x0082, + ESC_REG(0x0029), + ESC_REG(0x0011), + ESC_DELAY(100), + ESC_END +}; + +static const uint16_t st7796_init[] = { ESC_REG(0x0010), ESC_DELAY(120), ESC_REG(0x0001), ESC_DELAY(120), ESC_REG(0x0011), ESC_DELAY(120), @@ -588,8 +612,8 @@ static const uint16_t st9677_init[] = { LCD_IO_WriteSequence(buffer, length * sq(FSMC_UPSCALE)); #else - u8g_WriteSequence(u8g, dev, k << 1, (uint8_t*)buffer); - u8g_WriteSequence(u8g, dev, k << 1, (uint8_t*)buffer); + for (uint8_t i = FSMC_UPSCALE; i--;) + u8g_WriteSequence(u8g, dev, k << 1, (uint8_t*)buffer); #endif } } @@ -617,7 +641,7 @@ uint8_t u8g_dev_tft_320x240_upscale_from_128x64_fn(u8g_t *u8g, u8g_dev_t *dev, u uint16_t* buffer = &bufferA[0]; bool allow_async = DISABLED(SPI_GRAPHICAL_TFT); #else - uint16_t buffer[WIDTH*2]; // 16-bit RGB 565 pixel line buffer + uint16_t buffer[WIDTH * FSMC_UPSCALE]; // 16-bit RGB 565 pixel line buffer #endif switch (msg) { @@ -630,18 +654,21 @@ uint8_t u8g_dev_tft_320x240_upscale_from_128x64_fn(u8g_t *u8g, u8g_dev_t *dev, u setWindow = setWindow_st7789v; break; case 0x9328: // ILI9328 - WRITE_ESC_SEQUENCE(ili9328_init); + WRITE_ESC_SEQUENCE16(ili9328_init); setWindow = setWindow_ili9328; break; case 0x9341: // ILI9341 case 0x8066: // Anycubic / TronXY TFTs (480x320) - WRITE_ESC_SEQUENCE(ili9341_init); + WRITE_ESC_SEQUENCE(ili9488_init); setWindow = setWindow_st7789v; break; case 0x7796: - WRITE_ESC_SEQUENCE(TERN(HAS_LCD_IO, st9677_init, ili9341_init)); + WRITE_ESC_SEQUENCE(st7796_init); setWindow = setWindow_st7789v; break; + case 0x9488: + WRITE_ESC_SEQUENCE(ili9488_init); + setWindow = setWindow_st7789v; case 0x0404: // No connected display on FSMC lcd_id = 0; return 0; @@ -664,8 +691,8 @@ uint8_t u8g_dev_tft_320x240_upscale_from_128x64_fn(u8g_t *u8g, u8g_dev_t *dev, u LCD_IO_WriteMultiple(TFT_MARLINBG_COLOR, (LCD_FULL_PIXEL_WIDTH) * (LCD_FULL_PIXEL_HEIGHT)); #else memset2(buffer, TFT_MARLINBG_COLOR, (LCD_FULL_PIXEL_WIDTH) / 2); - for (uint16_t i = 0; i < (LCD_FULL_PIXEL_WIDTH) * 3; i++) - u8g_WriteSequence(u8g, dev, (LCD_FULL_PIXEL_WIDTH) / 2, (uint8_t *)buffer); + for (uint16_t i = 0; i < (LCD_FULL_PIXEL_HEIGHT) * sq(FSMC_UPSCALE); i++) + u8g_WriteSequence(u8g, dev, LCD_FULL_PIXEL_WIDTH / 2, (uint8_t *)buffer); #endif // Bottom buttons @@ -721,11 +748,10 @@ uint8_t u8g_dev_tft_320x240_upscale_from_128x64_fn(u8g_t *u8g, u8g_dev_t *dev, u LCD_IO_WriteSequence(buffer, COUNT(bufferA)); #else uint8_t* bufptr = (uint8_t*) buffer; - for (uint8_t i = 2; i--;) { - u8g_WriteSequence(u8g, dev, WIDTH, &bufptr[0]); - u8g_WriteSequence(u8g, dev, WIDTH, &bufptr[WIDTH]); - u8g_WriteSequence(u8g, dev, WIDTH, &bufptr[WIDTH*2]); - u8g_WriteSequence(u8g, dev, WIDTH, &bufptr[WIDTH*3]); + for (uint8_t i = FSMC_UPSCALE; i--;) { + LOOP_S_L_N(n, 0, FSMC_UPSCALE * 2) { + u8g_WriteSequence(u8g, dev, WIDTH, &bufptr[WIDTH * n]); + } } #endif } diff --git a/Marlin/src/pins/stm32f1/pins_MKS_ROBIN_NANO.h b/Marlin/src/pins/stm32f1/pins_MKS_ROBIN_NANO.h index 844fb6b0d..a68b48107 100644 --- a/Marlin/src/pins/stm32f1/pins_MKS_ROBIN_NANO.h +++ b/Marlin/src/pins/stm32f1/pins_MKS_ROBIN_NANO.h @@ -165,28 +165,7 @@ * to let the bootloader init the screen. */ -#if ENABLED(TFT_LVGL_UI_SPI) - - #define SPI_TFT_CS_PIN PD11 - #define SPI_TFT_SCK_PIN PA5 - #define SPI_TFT_MISO_PIN PA6 - #define SPI_TFT_MOSI_PIN PA7 - #define SPI_TFT_DC_PIN PD10 - #define SPI_TFT_RST_PIN PC6 - - #define LCD_BACKLIGHT_PIN PD13 - - #define TOUCH_CS_PIN PE14 // SPI1_NSS - #define TOUCH_SCK_PIN PA5 // SPI1_SCK - #define TOUCH_MISO_PIN PA6 // SPI1_MISO - #define TOUCH_MOSI_PIN PA7 // SPI1_MOSI - - #define BTN_EN1 PE8 - #define BTN_EN2 PE11 - #define BEEPER_PIN PC5 - #define BTN_ENC PE13 - -#elif ENABLED(TFT_LVGL_UI_FSMC) +#if ENABLED(TFT_LVGL_UI_FSMC) #define FSMC_CS_PIN PD7 // NE4 #define FSMC_RS_PIN PD11 // A0 @@ -198,15 +177,34 @@ #define LCD_BACKLIGHT_PIN PD13 -#endif +#elif ENABLED(FSMC_GRAPHICAL_TFT) -#if ENABLED(FSMC_GRAPHICAL_TFT) - //#define DOGLCD_MOSI -1 // prevent redefine Conditionals_post.h - //#define DOGLCD_SCK -1 + #define DOGLCD_MOSI -1 // prevent redefine Conditionals_post.h + #define DOGLCD_SCK -1 + + #ifndef FSMC_UPSCALE + #define FSMC_UPSCALE 3 + #endif + #ifndef LCD_FULL_PIXEL_WIDTH + #define LCD_FULL_PIXEL_WIDTH 480 + #endif + #ifndef LCD_PIXEL_OFFSET_X + #define LCD_PIXEL_OFFSET_X 48 + #endif + #ifndef LCD_FULL_PIXEL_HEIGHT + #define LCD_FULL_PIXEL_HEIGHT 320 + #endif + #ifndef LCD_PIXEL_OFFSET_Y + #define LCD_PIXEL_OFFSET_Y 32 + #endif #define FSMC_CS_PIN PD7 // NE4 #define FSMC_RS_PIN PD11 // A0 + #define LCD_USE_DMA_FSMC // Use DMA transfers to send data to the TFT + #define FSMC_DMA_DEV DMA2 + #define FSMC_DMA_CHANNEL DMA_CH5 + #define LCD_RESET_PIN PC6 // FSMC_RST #define LCD_BACKLIGHT_PIN PD13 @@ -216,54 +214,9 @@ #define TOUCH_MISO_PIN PB14 // SPI2_MISO #define TOUCH_MOSI_PIN PB15 // SPI2_MOSI #endif + #endif -#if HAS_SPI_LCD - - #define BEEPER_PIN PC5 - #define BTN_ENC PE13 - #define LCD_PINS_ENABLE PD13 - #define LCD_PINS_RS PC6 - #define BTN_EN1 PE8 - #define BTN_EN2 PE11 - #define LCD_BACKLIGHT_PIN -1 - - // MKS MINI12864 and MKS LCD12864B; If using MKS LCD12864A (Need to remove RPK2 resistor) - #if ENABLED(MKS_MINI_12864) - #define LCD_BACKLIGHT_PIN -1 - #define LCD_RESET_PIN -1 - #define DOGLCD_A0 PD11 - #define DOGLCD_CS PE15 - #define DOGLCD_SCK PA5 - #define DOGLCD_MOSI PA7 - - // Required for MKS_MINI_12864 with this board - #define MKS_LCD12864B - #undef SHOW_BOOTSCREEN - - #else // !MKS_MINI_12864 - - #define LCD_PINS_D4 PE14 - #if ENABLED(ULTIPANEL) - #define LCD_PINS_D5 PE15 - #define LCD_PINS_D6 PD11 - #define LCD_PINS_D7 PD10 - #endif - - #ifndef BOARD_ST7920_DELAY_1 - #define BOARD_ST7920_DELAY_1 DELAY_NS(125) - #endif - #ifndef BOARD_ST7920_DELAY_2 - #define BOARD_ST7920_DELAY_2 DELAY_NS(125) - #endif - #ifndef BOARD_ST7920_DELAY_3 - #define BOARD_ST7920_DELAY_3 DELAY_NS(125) - #endif - - #endif // !MKS_MINI_12864 - -#endif // HAS_SPI_LCD - #define SPI_FLASH #if ENABLED(SPI_FLASH) #define W25QXX_CS_PIN PB12 From 4856ac50281291790405a0fd35be88d035416b7a Mon Sep 17 00:00:00 2001 From: swissnorp <67485708+swissnorp@users.noreply.github.com> Date: Tue, 4 Aug 2020 07:31:45 +0200 Subject: [PATCH 037/194] Add Z_AFTER_DEACTIVATE to account for gravity (#18906) --- Marlin/Configuration.h | 6 ++--- Marlin/Configuration_adv.h | 24 ++++++++++++------- .../lcd/dogm/status_screen_lite_ST7920.cpp | 13 +++------- Marlin/src/module/planner.cpp | 7 ++++-- Marlin/src/module/stepper/indirection.h | 8 ++++++- 5 files changed, 33 insertions(+), 25 deletions(-) diff --git a/Marlin/Configuration.h b/Marlin/Configuration.h index 9d1f7862b..25efa79b7 100644 --- a/Marlin/Configuration.h +++ b/Marlin/Configuration.h @@ -1076,18 +1076,18 @@ #define Z_ENABLE_ON 0 #define E_ENABLE_ON 0 // For all extruders -// Disables axis stepper immediately when it's not being used. +// Disable axis steppers immediately when they're not being stepped. // WARNING: When motors turn off there is a chance of losing position accuracy! #define DISABLE_X false #define DISABLE_Y false #define DISABLE_Z false -// Warn on display about possibly reduced accuracy +// Turn off the display blinking that warns about possible accuracy reduction //#define DISABLE_REDUCED_ACCURACY_WARNING // @section extruder -#define DISABLE_E false // For all extruders +#define DISABLE_E false // Disable the extruder when not stepping #define DISABLE_INACTIVE_EXTRUDER // Keep only the active extruder enabled // @section machine diff --git a/Marlin/Configuration_adv.h b/Marlin/Configuration_adv.h index 3fae47384..de50995ff 100644 --- a/Marlin/Configuration_adv.h +++ b/Marlin/Configuration_adv.h @@ -809,24 +809,30 @@ #define INVERT_Z_STEP_PIN false #define INVERT_E_STEP_PIN false -// Default stepper release if idle. Set to 0 to deactivate. -// Steppers will shut down DEFAULT_STEPPER_DEACTIVE_TIME seconds after the last move when DISABLE_INACTIVE_? is true. -// Time can be set by M18 and M84. +/** + * Idle Stepper Shutdown + * Set DISABLE_INACTIVE_? 'true' to shut down axis steppers after an idle period. + * The Deactive Time can be overridden with M18 and M84. Set to 0 for No Timeout. + */ #define DEFAULT_STEPPER_DEACTIVE_TIME 120 #define DISABLE_INACTIVE_X true #define DISABLE_INACTIVE_Y true -#define DISABLE_INACTIVE_Z true // Set to false if the nozzle will fall down on your printed part when print has finished. +#define DISABLE_INACTIVE_Z true // Set 'false' if the nozzle could fall onto your printed part! #define DISABLE_INACTIVE_E true -#define DEFAULT_MINIMUMFEEDRATE 0.0 // minimum feedrate -#define DEFAULT_MINTRAVELFEEDRATE 0.0 +// If the Nozzle or Bed falls when the Z stepper is disabled, set its resting position here. +//#define Z_AFTER_DEACTIVATE Z_HOME_POS //#define HOME_AFTER_DEACTIVATE // Require rehoming after steppers are deactivated -// Minimum time that a segment needs to take if the buffer is emptied -#define DEFAULT_MINSEGMENTTIME 20000 // (µs) +// Minimum time that a segment needs to take as the buffer gets emptied +#define DEFAULT_MINSEGMENTTIME 20000 // (µs) Set with M205 B. -// Slow down the machine if the look ahead buffer is (by default) half full. +// Default Minimum Feedrates for printing and travel moves +#define DEFAULT_MINIMUMFEEDRATE 0.0 // (mm/s) Minimum feedrate. Set with M205 S. +#define DEFAULT_MINTRAVELFEEDRATE 0.0 // (mm/s) Minimum travel feedrate. Set with M205 T. + +// Slow down the machine if the lookahead buffer is (by default) half full. // Increase the slowdown divisor for larger buffer sizes. #define SLOWDOWN #if ENABLED(SLOWDOWN) diff --git a/Marlin/src/lcd/dogm/status_screen_lite_ST7920.cpp b/Marlin/src/lcd/dogm/status_screen_lite_ST7920.cpp index 9338ab82e..18894db3d 100644 --- a/Marlin/src/lcd/dogm/status_screen_lite_ST7920.cpp +++ b/Marlin/src/lcd/dogm/status_screen_lite_ST7920.cpp @@ -819,16 +819,9 @@ void ST7920_Lite_Status_Screen::update_status_or_position(bool forceUpdate) { } if (countdown == 0 && (forceUpdate || position_changed() - #if DISABLED(DISABLE_REDUCED_ACCURACY_WARNING) - || blink_changed() - #endif - )) { - draw_position(current_position, true - #if DISABLED(DISABLE_REDUCED_ACCURACY_WARNING) - && all_axes_known() - #endif - ); - } + || TERN(DISABLE_REDUCED_ACCURACY_WARNING, 0, blink_changed()) + )) + draw_position(current_position, TERN(DISABLE_REDUCED_ACCURACY_WARNING, 0, all_axes_known())); #endif } diff --git a/Marlin/src/module/planner.cpp b/Marlin/src/module/planner.cpp index 65a9e4e05..c2a9e6ac7 100644 --- a/Marlin/src/module/planner.cpp +++ b/Marlin/src/module/planner.cpp @@ -1281,7 +1281,7 @@ void Planner::recalculate() { void Planner::check_axes_activity() { #if ANY(DISABLE_X, DISABLE_Y, DISABLE_Z, DISABLE_E) - xyze_bool_t axis_active = { false }; + xyze_bool_t axis_active = { true, true, true, true }; #endif #if HAS_FAN @@ -1316,7 +1316,10 @@ void Planner::check_axes_activity() { #if ANY(DISABLE_X, DISABLE_Y, DISABLE_Z, DISABLE_E) for (uint8_t b = block_buffer_tail; b != block_buffer_head; b = next_block_index(b)) { block_t *block = &block_buffer[b]; - LOOP_XYZE(i) if (block->steps[i]) axis_active[i] = true; + if (ENABLED(DISABLE_X) && block->steps[X_AXIS]) axis_active[X_AXIS] = true; + if (ENABLED(DISABLE_Y) && block->steps[Y_AXIS]) axis_active[Y_AXIS] = true; + if (ENABLED(DISABLE_Z) && block->steps[Z_AXIS]) axis_active[Z_AXIS] = true; + if (ENABLED(DISABLE_E) && block->steps[E_AXIS]) axis_active[E_AXIS] = true; } #endif } diff --git a/Marlin/src/module/stepper/indirection.h b/Marlin/src/module/stepper/indirection.h index e3d3730c7..1fd1a72e7 100644 --- a/Marlin/src/module/stepper/indirection.h +++ b/Marlin/src/module/stepper/indirection.h @@ -848,7 +848,13 @@ void reset_stepper_drivers(); // Called by settings.load / settings.reset #define DISABLE_AXIS_Y() do{ DISABLE_STEPPER_Y(); DISABLE_STEPPER_Y2(); CBI(axis_known_position, Y_AXIS); }while(0) #define ENABLE_AXIS_Z() do{ ENABLE_STEPPER_Z(); ENABLE_STEPPER_Z2(); ENABLE_STEPPER_Z3(); ENABLE_STEPPER_Z4(); }while(0) -#define DISABLE_AXIS_Z() do{ DISABLE_STEPPER_Z(); DISABLE_STEPPER_Z2(); DISABLE_STEPPER_Z3(); DISABLE_STEPPER_Z4(); CBI(axis_known_position, Z_AXIS); }while(0) + +#ifdef Z_AFTER_DEACTIVATE + #define Z_RESET() do{ current_position.z = Z_AFTER_DEACTIVATE; planner.sync_plan_position(); }while(0) +#else + #define Z_RESET() +#endif +#define DISABLE_AXIS_Z() do{ DISABLE_STEPPER_Z(); DISABLE_STEPPER_Z2(); DISABLE_STEPPER_Z3(); DISABLE_STEPPER_Z4(); CBI(axis_known_position, Z_AXIS); Z_RESET(); }while(0) // // Extruder steppers enable / disable macros From b615431aa6c01eb8fec4b7e5e1e63321449c14a6 Mon Sep 17 00:00:00 2001 From: Giuliano Zaro <3684609+GMagician@users.noreply.github.com> Date: Tue, 4 Aug 2020 07:32:25 +0200 Subject: [PATCH 038/194] Update Italian language (#18886) --- Marlin/src/lcd/language/language_it.h | 1 + 1 file changed, 1 insertion(+) diff --git a/Marlin/src/lcd/language/language_it.h b/Marlin/src/lcd/language/language_it.h index 6de5d9e03..1a5bdb22e 100644 --- a/Marlin/src/lcd/language/language_it.h +++ b/Marlin/src/lcd/language/language_it.h @@ -64,6 +64,7 @@ namespace Language_it { PROGMEM Language_Str MSG_AUTO_HOME_Y = _UxGT("Home asse Y"); PROGMEM Language_Str MSG_AUTO_HOME_Z = _UxGT("Home asse Z"); PROGMEM Language_Str MSG_AUTO_Z_ALIGN = _UxGT("Allineam.automat. Z"); + PROGMEM Language_Str MSG_ASSISTED_TRAMMING = _UxGT("Tramming assistito"); PROGMEM Language_Str MSG_LEVEL_BED_HOMING = _UxGT("Home assi XYZ"); PROGMEM Language_Str MSG_LEVEL_BED_WAITING = _UxGT("Premi per iniziare"); PROGMEM Language_Str MSG_LEVEL_BED_NEXT_POINT = _UxGT("Punto successivo"); From 11b2bd835d743fe583065309340c9d99d1882a96 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Roman=20Morav=C4=8D=C3=ADk?= Date: Tue, 4 Aug 2020 07:32:47 +0200 Subject: [PATCH 039/194] Update Slovak language (#18884) --- Marlin/src/lcd/language/language_sk.h | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/Marlin/src/lcd/language/language_sk.h b/Marlin/src/lcd/language/language_sk.h index 321fa5e05..736e2069d 100644 --- a/Marlin/src/lcd/language/language_sk.h +++ b/Marlin/src/lcd/language/language_sk.h @@ -66,6 +66,7 @@ namespace Language_sk { PROGMEM Language_Str MSG_AUTO_HOME_Y = _UxGT("Domov os Y"); PROGMEM Language_Str MSG_AUTO_HOME_Z = _UxGT("Domov os Z"); PROGMEM Language_Str MSG_AUTO_Z_ALIGN = _UxGT("Auto-zarovn. Z"); + PROGMEM Language_Str MSG_ASSISTED_TRAMMING = _UxGT("Asist. vyrovnanie"); PROGMEM Language_Str MSG_LEVEL_BED_HOMING = _UxGT("Parkovanie XYZ"); PROGMEM Language_Str MSG_LEVEL_BED_WAITING = _UxGT("Kliknutím zaÄnete"); PROGMEM Language_Str MSG_LEVEL_BED_NEXT_POINT = _UxGT("ÄŽalší bod"); @@ -153,14 +154,12 @@ namespace Language_sk { PROGMEM Language_Str MSG_UBL_DONE_EDITING_MESH = _UxGT("Koniec úprav siete"); PROGMEM Language_Str MSG_UBL_BUILD_CUSTOM_MESH = _UxGT("Vlastná sieÅ¥"); PROGMEM Language_Str MSG_UBL_BUILD_MESH_MENU = _UxGT("VytvoriÅ¥ sieÅ¥"); - #if PREHEAT_COUNT - PROGMEM Language_Str MSG_UBL_BUILD_MESH_M = _UxGT("SieÅ¥ bodov $"); - PROGMEM Language_Str MSG_UBL_VALIDATE_MESH_M = _UxGT("Kontrola siete $"); - #endif + PROGMEM Language_Str MSG_UBL_BUILD_MESH_M = _UxGT("SieÅ¥ bodov ($)"); PROGMEM Language_Str MSG_UBL_BUILD_COLD_MESH = _UxGT("Studená sieÅ¥ bodov"); PROGMEM Language_Str MSG_UBL_MESH_HEIGHT_ADJUST = _UxGT("UpraviÅ¥ výšku siete"); PROGMEM Language_Str MSG_UBL_MESH_HEIGHT_AMOUNT = _UxGT("Výška"); PROGMEM Language_Str MSG_UBL_VALIDATE_MESH_MENU = _UxGT("SkontrolovaÅ¥ sieÅ¥"); + PROGMEM Language_Str MSG_UBL_VALIDATE_MESH_M = _UxGT("Kontrola siete ($)"); PROGMEM Language_Str MSG_UBL_VALIDATE_CUSTOM_MESH = _UxGT("Kontrola vlast.siete"); PROGMEM Language_Str MSG_G26_HEATING_BED = _UxGT("G26 ohrev podlž."); PROGMEM Language_Str MSG_G26_HEATING_NOZZLE = _UxGT("G26 ohrev trysky"); @@ -309,7 +308,9 @@ namespace Language_sk { PROGMEM Language_Str MSG_TEMPERATURE = _UxGT("Teplota"); PROGMEM Language_Str MSG_MOTION = _UxGT("Pohyb"); PROGMEM Language_Str MSG_FILAMENT = _UxGT("Filament"); - PROGMEM Language_Str MSG_VOLUMETRIC_ENABLED = _UxGT("E na mm³"); + PROGMEM Language_Str MSG_VOLUMETRIC_ENABLED = _UxGT("E v mm³"); + PROGMEM Language_Str MSG_VOLUMETRIC_LIMIT = _UxGT("E Limit v mm³"); + PROGMEM Language_Str MSG_VOLUMETRIC_LIMIT_E = _UxGT("E Limit *"); PROGMEM Language_Str MSG_FILAMENT_DIAM = _UxGT("Priem. fil."); PROGMEM Language_Str MSG_FILAMENT_DIAM_E = _UxGT("Priem. fil. *"); PROGMEM Language_Str MSG_FILAMENT_UNLOAD = _UxGT("Vysunúť mm"); @@ -331,6 +332,10 @@ namespace Language_sk { PROGMEM Language_Str MSG_INFO_SCREEN = _UxGT("Info. obrazovka"); PROGMEM Language_Str MSG_PREPARE = _UxGT("Príprava tlaÄe"); PROGMEM Language_Str MSG_TUNE = _UxGT("Doladenie tlaÄe"); + PROGMEM Language_Str MSG_POWER_MONITOR = _UxGT("Monitor napájania"); + PROGMEM Language_Str MSG_CURRENT = _UxGT("Prúd"); + PROGMEM Language_Str MSG_VOLTAGE = _UxGT("Napätie"); + PROGMEM Language_Str MSG_POWER = _UxGT("Výkon"); PROGMEM Language_Str MSG_START_PRINT = _UxGT("SpustiÅ¥ tlaÄ"); PROGMEM Language_Str MSG_BUTTON_NEXT = _UxGT("ÄŽalší"); PROGMEM Language_Str MSG_BUTTON_INIT = _UxGT("Inicial."); From 3a00ebd758e0325c30f6bf9b5b55ef67f48c2162 Mon Sep 17 00:00:00 2001 From: Jeff Eberl Date: Mon, 3 Aug 2020 23:37:08 -0600 Subject: [PATCH 040/194] Change include to (#18880) --- Marlin/src/lcd/tft/tft_image.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Marlin/src/lcd/tft/tft_image.cpp b/Marlin/src/lcd/tft/tft_image.cpp index 9e4dc1629..ff60bee9a 100644 --- a/Marlin/src/lcd/tft/tft_image.cpp +++ b/Marlin/src/lcd/tft/tft_image.cpp @@ -21,7 +21,7 @@ */ #include "tft_image.h" -#include "cstddef" +#include const tImage NoLogo = { (void *)NULL, 0, 0, NOCOLORS }; From 181a35181b8c14c6304013ed31f28a1b86e4dab4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Claus=20N=C3=A4veke?= Date: Tue, 4 Aug 2020 10:02:08 +0200 Subject: [PATCH 041/194] Make ili9341 rotatable (e.g., Anycubic Predator) (#18877) --- Marlin/src/lcd/dogm/u8g_dev_tft_320x240_upscale_from_128x64.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Marlin/src/lcd/dogm/u8g_dev_tft_320x240_upscale_from_128x64.cpp b/Marlin/src/lcd/dogm/u8g_dev_tft_320x240_upscale_from_128x64.cpp index 82bef7824..205cafbcc 100644 --- a/Marlin/src/lcd/dogm/u8g_dev_tft_320x240_upscale_from_128x64.cpp +++ b/Marlin/src/lcd/dogm/u8g_dev_tft_320x240_upscale_from_128x64.cpp @@ -366,7 +366,7 @@ static const uint16_t ili9328_init[] = { static const uint16_t ili9341_init[] = { ESC_REG(0x0010), ESC_DELAY(10), ESC_REG(0x0001), ESC_DELAY(200), - ESC_REG(0x0036), 0x00E8, + ESC_REG(0x0036), TERN(GRAPHICAL_TFT_ROTATE_180, 0x00E8, 0x0028), ESC_REG(0x003A), 0x0055, ESC_REG(0x002A), 0x0000, 0x0000, 0x0001, 0x003F, ESC_REG(0x002B), 0x0000, 0x0000, 0x0000, 0x00EF, From 3b1f84a9b74888f0cbdde33296f26da64e2288b7 Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Tue, 4 Aug 2020 03:21:19 -0500 Subject: [PATCH 042/194] Followup to #18906 Z_AFTER_DEACTIVATE --- Marlin/src/lcd/dogm/status_screen_lite_ST7920.cpp | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/Marlin/src/lcd/dogm/status_screen_lite_ST7920.cpp b/Marlin/src/lcd/dogm/status_screen_lite_ST7920.cpp index 18894db3d..fba485d70 100644 --- a/Marlin/src/lcd/dogm/status_screen_lite_ST7920.cpp +++ b/Marlin/src/lcd/dogm/status_screen_lite_ST7920.cpp @@ -820,8 +820,7 @@ void ST7920_Lite_Status_Screen::update_status_or_position(bool forceUpdate) { if (countdown == 0 && (forceUpdate || position_changed() || TERN(DISABLE_REDUCED_ACCURACY_WARNING, 0, blink_changed()) - )) - draw_position(current_position, TERN(DISABLE_REDUCED_ACCURACY_WARNING, 0, all_axes_known())); + )) draw_position(current_position, TERN(DISABLE_REDUCED_ACCURACY_WARNING, 1, all_axes_known())); #endif } From 04b12dde492b44a2b1e18f2e38b126bc82edcfdf Mon Sep 17 00:00:00 2001 From: Victor Oliveira Date: Tue, 4 Aug 2020 06:50:05 -0300 Subject: [PATCH 043/194] SPI Flash data compression (#18879) --- .../lcd/extui/lib/mks_ui/SPIFlashStorage.cpp | 317 ++++++++++++++++++ .../lcd/extui/lib/mks_ui/SPIFlashStorage.h | 108 ++++++ .../src/lcd/extui/lib/mks_ui/pic_manager.cpp | 96 ++++-- Marlin/src/lcd/extui/lib/mks_ui/pic_manager.h | 4 +- Marlin/src/pins/stm32f1/pins_CHITU3D_V5.h | 4 +- 5 files changed, 489 insertions(+), 40 deletions(-) create mode 100644 Marlin/src/lcd/extui/lib/mks_ui/SPIFlashStorage.cpp create mode 100644 Marlin/src/lcd/extui/lib/mks_ui/SPIFlashStorage.h diff --git a/Marlin/src/lcd/extui/lib/mks_ui/SPIFlashStorage.cpp b/Marlin/src/lcd/extui/lib/mks_ui/SPIFlashStorage.cpp new file mode 100644 index 000000000..da87ce976 --- /dev/null +++ b/Marlin/src/lcd/extui/lib/mks_ui/SPIFlashStorage.cpp @@ -0,0 +1,317 @@ +/** + * Marlin 3D Printer Firmware + * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin] + * + * Based on Sprinter and grbl. + * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + */ + +#include "../../../../inc/MarlinConfigPre.h" + +#if HAS_TFT_LVGL_UI + +#include "SPIFlashStorage.h" + +uint8_t SPIFlashStorage::::m_pageData[SPI_FLASH_PageSize]; +uint32_t SPIFlashStorage::::m_currentPage; +uint16_t SPIFlashStorage::::m_pageDataUsed; +uint32_t SPIFlashStorage::::m_startAddress; + +#if HAS_SPI_FLASH_COMPRESSION + + uint8_t SPIFlashStorage::m_compressedData[SPI_FLASH_PageSize]; + uint16_t SPIFlashStorage::m_compressedDataUsed; + + template + static uint32_t rle_compress(T *output, uint32_t outputLength, T *input, uint32_t inputLength, uint32_t& inputProcessed) { + uint32_t count = 0, out = 0, index, i; + T pixel; + //32767 for uint16_t + //127 for uint16_t + //calculated at compile time + constexpr T max = (0xFFFFFFFF >> (8 * (4 - sizeof(T)))) / 2; + + inputProcessed = 0; + while (count < inputLength && out < outputLength) { + index = count; + pixel = input[index++]; + while (index < inputLength && index - count < max && input[index] == pixel) + index++; + if (index - count == 1) { + /* + * Failed to "replicate" the current pixel. See how many to copy. + * Avoid a replicate run of only 2-pixels after a literal run. There + * is no gain in this, and there is a risK of loss if the run after + * the two identical pixels is another literal run. So search for + * 3 identical pixels. + */ + while (index < inputLength && index - count < max && (input[index] != input[index - 1] || (index > 1 && input[index] != input[index - 2]))) + index++; + /* + * Check why this run stopped. If it found two identical pixels, reset + * the index so we can add a run. Do this twice: the previous run + * tried to detect a replicate run of at least 3 pixels. So we may be + * able to back up two pixels if such a replicate run was found. + */ + while (index < inputLength && input[index] == input[index - 1]) + index--; + // If the output buffer could overflow, stop at the remaining bytes + NOMORE(index, count + outputLength - out - 1); + output[out++] = (uint16_t)(count - index); + for (i = count; i < index; i++) + output[out++] = input[i]; + } + else { + // Need at least more 2 spaces + if (out > outputLength - 2) break; + output[out++] = (uint16_t)(index - count); + output[out++] = pixel; + } + count = index; + } + inputProcessed = count; + + // Padding + if (out == outputLength - 1) output[out++] = 0; + + return out; + } + + template + static uint32_t rle_uncompress(UT *output, uint32_t outputLength, UT *input, uint32_t inputLength, uint32_t &outputFilled) { + T count; + UT i; + uint32_t processedBytes = 0; + outputFilled = 0; + + while (outputLength > 0 && inputLength > 0) { + processedBytes++; + count = static_cast(*input++); + inputLength--; + if (count > 0) { // Replicate run + for (i = 0; i < count && outputLength > i; i++) + output[i] = *input; + outputFilled += i; + // If copy incomplete, change the input buffer to start with remaining data in the next call + if (i < count) { + // Change to process the difference in the next call + *(input - 1) = static_cast(count - i); + return processedBytes - 1; + } + input++; + inputLength--; + processedBytes++; + } + else if (count < 0) { // literal run + count = static_cast(-count); + // Copy, validating if the output have enough space + for (i = 0; i < count && outputLength > i; i++) + output[i] = input[i]; + outputFilled += i; + // If copy incomplete, change the input buffer to start with remaining data in the next call + if (i < count) { + input[i - 1] = static_cast((count - i) * -1); + // Back one + return processedBytes + i - 1; + } + input += count; + inputLength -= count; + processedBytes += count; + } + output += count; + outputLength -= count; + } + + return processedBytes; + } + +#endif // HAS_SPI_FLASH_COMPRESSION + +void SPIFlashStorage::beginWrite(uint32_t startAddress) { + m_pageDataUsed = 0; + m_currentPage = 0; + m_startAddress = startAddress; + #if HAS_SPI_FLASH_COMPRESSION + // Restart the compressed buffer, keep the pointers of the uncompressed buffer + m_compressedDataUsed = 0; + #endif +} + + +void SPIFlashStorage::endWrite() { + // Flush remaining data + #if HAS_SPI_FLASH_COMPRESSION + if (m_compressedDataUsed > 0) { + flushPage(); + savePage(m_compressedData); + } + #else + if (m_pageDataUsed > 0) flushPage(); + #endif +} + +void SPIFlashStorage::savePage(uint8_t* buffer) { + W25QXX.SPI_FLASH_BufferWrite(buffer, m_startAddress + (SPI_FLASH_PageSize * m_currentPage), SPI_FLASH_PageSize); + + // Test env + // char fname[256]; + // snprintf(fname, sizeof(fname), "./pages/page-%03d.data", m_currentPage); + // FILE *fp = fopen(fname, "wb"); + // fwrite(buffer, 1, m_compressedDataUsed, fp); + // fclose(fp); +} + +void SPIFlashStorage::loadPage(uint8_t* buffer) { + W25QXX.SPI_FLASH_BufferRead(buffer, m_startAddress + (SPI_FLASH_PageSize * m_currentPage), SPI_FLASH_PageSize); + + // Test env + // char fname[256]; + // memset(buffer, 0, SPI_FLASH_PageSize); + // snprintf(fname, sizeof(fname), "./pages/page-%03d.data", m_currentPage); + // FILE *fp = fopen(fname, "rb"); + // if (fp != NULL) { + // fread(buffer, 1, SPI_FLASH_PageSize, fp); + // fclose(fp); + // } +} + +void SPIFlashStorage::flushPage() { + #if HAS_SPI_FLASH_COMPRESSION + // Work com with compressed in memory + uint32_t inputProcessed; + uint32_t compressedSize = rle_compress((uint16_t *)(m_compressedData + m_compressedDataUsed), compressedDataFree() / 2, (uint16_t *)m_pageData, m_pageDataUsed / 2, inputProcessed) * 2; + inputProcessed *= 2; + m_compressedDataUsed += compressedSize; + + // Space remaining in the compressed buffer? + if (compressedDataFree() > 0) { + // Free the uncompressed buffer + m_pageDataUsed = 0; + return; + } + + // Part of the m_pageData was compressed, so ajust the pointers, freeing what was processed, shift the buffer + // TODO: To avoid this copy, use a circular buffer + memmove(m_pageData, m_pageData + inputProcessed, m_pageDataUsed - inputProcessed); + m_pageDataUsed -= inputProcessed; + + // No? So flush page with compressed data!! + uint8_t *buffer = m_compressedData; + #else + uint8_t *buffer = m_pageData; + #endif + + savePage(buffer); + + #if HAS_SPI_FLASH_COMPRESSION + // Restart the compressed buffer, keep the pointers of the uncompressed buffer + m_compressedDataUsed = 0; + #elif + m_pageDataUsed = 0; + #endif + m_currentPage++; +} + +void SPIFlashStorage::readPage() { + #if HAS_SPI_FLASH_COMPRESSION + if (compressedDataFree() == 0) { + loadPage(m_compressedData); + m_currentPage++; + m_compressedDataUsed = 0; + } + + // Need to uncompress data + if (pageDataFree() == 0) { + m_pageDataUsed = 0; + uint32_t outpuProcessed = 0; + uint32_t inputProcessed = rle_uncompress((uint16_t *)(m_pageData + m_pageDataUsed), pageDataFree() / 2, (uint16_t *)(m_compressedData + m_compressedDataUsed), compressedDataFree() / 2, outpuProcessed); + inputProcessed *= 2; + outpuProcessed *= 2; + if (outpuProcessed < pageDataFree()) { + m_pageDataUsed = SPI_FLASH_PageSize - outpuProcessed; + // TODO: To avoid this copy, use a circular buffer + memmove(m_pageData + m_pageDataUsed, m_pageData, outpuProcessed); + } + + m_compressedDataUsed += inputProcessed; + } + #else + loadPage(m_pageData); + m_pageDataUsed = 0; + m_currentPage++; + #endif +} + +uint16_t SPIFlashStorage::inData(uint8_t* data, uint16_t size) { + // Don't write more than we can + NOMORE(size, pageDataFree()); + memcpy(m_pageData + m_pageDataUsed, data, size); + m_pageDataUsed += size; + return size; +} + +void SPIFlashStorage::writeData(uint8_t* data, uint16_t size) { + // Flush a page if needed + if (pageDataFree() == 0) flushPage(); + + while (size > 0) { + uint16_t written = inData(data, size); + size -= written; + // Need to write more? Flush page and continue! + if (size > 0) { + flushPage(); + data += written; + } + } +} + +void SPIFlashStorage::beginRead(uint32_t startAddress) { + m_startAddress = startAddress; + m_currentPage = 0; + // Nothing in memory now + m_pageDataUsed = SPI_FLASH_PageSize; + #if HAS_SPI_FLASH_COMPRESSION + m_compressedDataUsed = sizeof(m_compressedData); + #endif +} + +uint16_t SPIFlashStorage::outData(uint8_t* data, uint16_t size) { + // Don't read more than we have + NOMORE(size > pageDataFree()); + memcpy(data, m_pageData + m_pageDataUsed, size); + m_pageDataUsed += size; + return size; +} + +void SPIFlashStorage::readData(uint8_t* data, uint16_t size) { + // Read a page if needed + if (pageDataFree() == 0) readPage(); + + while (size > 0) { + uint16_t read = outData(data, size); + size -= read; + // Need to write more? Flush page and continue! + if (size > 0) { + readPage(); + data += read; + } + } +} + +SPIFlashStorage SPIFlash; + +#endif // HAS_TFT_LVGL_UI diff --git a/Marlin/src/lcd/extui/lib/mks_ui/SPIFlashStorage.h b/Marlin/src/lcd/extui/lib/mks_ui/SPIFlashStorage.h new file mode 100644 index 000000000..c806068dd --- /dev/null +++ b/Marlin/src/lcd/extui/lib/mks_ui/SPIFlashStorage.h @@ -0,0 +1,108 @@ +/** + * Marlin 3D Printer Firmware + * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin] + * + * Based on Sprinter and grbl. + * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + */ +#pragma once + +#include "W25Qxx.h" + +#define HAS_SPI_FLASH_COMPRESSION 1 + +/** + * This class manages and optimizes SPI Flash data storage, + * keeping an internal buffer to write and save full SPI flash + * pages as needed. + * + * Since the data is always in the buffer, the class is also + * able to support fast on-the-fly RLE compression/decompression. + * + * In testing with the current LVGL_UI it compacts 2.9MB of icons + * (which have lots of runs) down to 370kB!!! As a result the UI + * refresh rate becomes faster and now all LVGL UI can fit into a + * tiny 2MB SPI Flash, such as the Chitu Board. + * + * == Usage == + * + * Writing: + * + * The class keeps an internal buffer that caches data until it + * fits into a full SPI Flash page. Each time the buffer fills up + * the page is saved to SPI Flash. Sequential writes are optimal. + * + * SPIFlashStorage.beginWrite(myStartAddress); + * while (there is data to write) + * SPIFlashStorage.addData(myBuffer, bufferSize); + * SPIFlashStorage.endWrite(); // Flush remaining buffer data + * + * Reading: + * + * When reading, it loads a full page from SPI Flash at once and + * keeps it in a private SRAM buffer. Data is loaded as needed to + * fullfill requests. Sequential reads are optimal. + * + * SPIFlashStorage.beginRead(myStartAddress); + * while (there is data to read) + * SPIFlashStorage.readData(myBuffer, bufferSize); + * + * Compression: + * + * The biggest advantage of this class is the RLE compression. + * With compression activated a second buffer holds the compressed + * data, so when writing data, as this buffer becomes full it is + * flushed to SPI Flash. + * + * The same goes for reading: A compressed page is read from SPI + * flash, and the data is uncompressed as needed to provide the + * requested amount of data. + */ +class SPIFlashStorage { +public: + // Write operation + static void beginWrite(uint32_t startAddress); + static void endWrite(); + static void writeData(uint8_t* data, uint16_t size); + + static // Read operation + static void beginRead(uint32_t startAddress); + static void readData(uint8_t* data, uint16_t size); + + static uint32_t getCurrentPage() { return m_currentPage; } + +private: + static void flushPage(); + static void savePage(uint8_t* buffer); + static void loadPage(uint8_t* buffer); + static void readPage(); + static uint16_t inData(uint8_t* data, uint16_t size); + static uint16_t outData(uint8_t* data, uint16_t size); + + static uint8_t m_pageData[SPI_FLASH_PageSize]; + static uint32_t m_currentPage; + static uint16_t m_pageDataUsed; + static inline uint16_t pageDataFree() { return SPI_FLASH_PageSize - m_pageDataUsed; } + static uint32_t m_startAddress; + #if HAS_SPI_FLASH_COMPRESSION + static uint8_t m_compressedData[SPI_FLASH_PageSize]; + static uint16_t m_compressedDataUsed; + static inline uint16_t compressedDataFree() { return SPI_FLASH_PageSize - m_compressedDataUsed; } + #endif +}; + +extern SPIFlashStorage SPIFlash; diff --git a/Marlin/src/lcd/extui/lib/mks_ui/pic_manager.cpp b/Marlin/src/lcd/extui/lib/mks_ui/pic_manager.cpp index 2a16bcf1b..771e3e062 100644 --- a/Marlin/src/lcd/extui/lib/mks_ui/pic_manager.cpp +++ b/Marlin/src/lcd/extui/lib/mks_ui/pic_manager.cpp @@ -23,16 +23,17 @@ #if HAS_TFT_LVGL_UI -#include "../../../../MarlinCore.h" - #include "string.h" - #include "pic_manager.h" -#include "W25Qxx.h" -#include "../../../../sd/cardreader.h" #include "draw_ready_print.h" #include "mks_hardware_test.h" +#include "SPIFlashStorage.h" +#include "W25Qxx.h" + +#include "../../../../MarlinCore.h" +#include "../../../../sd/cardreader.h" + extern uint16_t DeviceCode; extern unsigned char bmp_public_buf[17 * 1024]; @@ -205,11 +206,11 @@ static char assets[][LONG_FILENAME_LENGTH] = { }; #if HAS_SPI_FLASH_FONT - static char fonts[][LONG_FILENAME_LENGTH] = { - "FontUNIGBK.bin", - }; + static char fonts[][LONG_FILENAME_LENGTH] = { "FontUNIGBK.bin" }; #endif +static uint8_t currentFlashPage = 0; + uint32_t lv_get_pic_addr(uint8_t *Pname) { uint8_t Pic_cnt; uint8_t i, j; @@ -217,6 +218,8 @@ uint32_t lv_get_pic_addr(uint8_t *Pname) { uint32_t tmp_cnt = 0; uint32_t addr = 0; + currentFlashPage = 0; + #if ENABLED(MARLIN_DEV_MODE) SERIAL_ECHOLNPAIR("Getting picture SPI Flash Address: ", (const char*)Pname); #endif @@ -371,6 +374,10 @@ uint8_t public_buf[512]; return -1; } + #if ENABLED(MARLIN_DEV_MODE) + static uint32_t totalSizes = 0, totalCompressed = 0; + #endif + #define ASSET_TYPE_ICON 0 #define ASSET_TYPE_LOGO 1 #define ASSET_TYPE_TITLE_LOGO 2 @@ -398,43 +405,52 @@ uint8_t public_buf[512]; pfileSize = file.fileSize(); totalSizeLoaded += pfileSize; if (assetType == ASSET_TYPE_LOGO) { - while (1) { + do { pbr = file.read(public_buf, BMP_WRITE_BUF_LEN); - Pic_Logo_Write((uint8_t *)fn, public_buf, pbr); // - if (pbr < BMP_WRITE_BUF_LEN) break; - } + Pic_Logo_Write((uint8_t *)fn, public_buf, pbr); + } while (pbr >= BMP_WRITE_BUF_LEN); } else if (assetType == ASSET_TYPE_TITLE_LOGO) { - while (1) { + do { pbr = file.read(public_buf, BMP_WRITE_BUF_LEN); - Pic_TitleLogo_Write((uint8_t *)fn, public_buf, pbr); // - if (pbr < BMP_WRITE_BUF_LEN) break; - } + Pic_TitleLogo_Write((uint8_t *)fn, public_buf, pbr); + } while (pbr >= BMP_WRITE_BUF_LEN); } else if (assetType == ASSET_TYPE_G_PREVIEW) { - while (1) { + do { pbr = file.read(public_buf, BMP_WRITE_BUF_LEN); - default_view_Write(public_buf, pbr); // - if (pbr < BMP_WRITE_BUF_LEN) break; - } + default_view_Write(public_buf, pbr); + } while (pbr >= BMP_WRITE_BUF_LEN); } else if (assetType == ASSET_TYPE_ICON) { Pic_Write_Addr = Pic_Info_Write((uint8_t *)fn, pfileSize); - while (1) { - pbr = file.read(public_buf, BMP_WRITE_BUF_LEN); - W25QXX.SPI_FLASH_BufferWrite(public_buf, Pic_Write_Addr, pbr); - Pic_Write_Addr += pbr; - if (pbr < BMP_WRITE_BUF_LEN) break; - } + SPIFlash.beginWrite(Pic_Write_Addr); + #if HAS_SPI_FLASH_COMPRESSION + do { + pbr = file.read(public_buf, SPI_FLASH_PageSize); + TERN_(MARLIN_DEV_MODE, totalSizes += pbr); + SPIFlash.writeData(public_buf, SPI_FLASH_PageSize); + } while (pbr >= SPI_FLASH_PageSize); + #else + do { + pbr = file.read(public_buf, BMP_WRITE_BUF_LEN); + W25QXX.SPI_FLASH_BufferWrite(public_buf, Pic_Write_Addr, pbr); + Pic_Write_Addr += pbr; + } while (pbr >= BMP_WRITE_BUF_LEN); + #endif + #if ENABLED(MARLIN_DEV_MODE) + SERIAL_ECHOLNPAIR("Space used: ", fn, " - ", (SPIFlash.getCurrentPage() + 1) * SPI_FLASH_PageSize / 1024, "KB"); + totalCompressed += (SPIFlash.getCurrentPage() + 1) * SPI_FLASH_PageSize; + #endif + SPIFlash.endWrite(); } else if (assetType == ASSET_TYPE_FONT) { Pic_Write_Addr = UNIGBK_FLASH_ADDR; - while (1) { + do { pbr = file.read(public_buf, BMP_WRITE_BUF_LEN); W25QXX.SPI_FLASH_BufferWrite(public_buf, Pic_Write_Addr, pbr); Pic_Write_Addr += pbr; - if (pbr < BMP_WRITE_BUF_LEN) break; - } + } while (pbr >= BMP_WRITE_BUF_LEN); } file.close(); @@ -459,13 +475,13 @@ uint8_t public_buf[512]; disp_assets_update_progress("Reading files..."); dir_t d; while (dir.readDir(&d, card.longFilename) > 0) { - // if we dont get a long name, but gets a short one, try it + // If we dont get a long name, but gets a short one, try it if (card.longFilename[0] == 0 && d.name[0] != 0) dosName2LongName((const char*)d.name, card.longFilename); if (card.longFilename[0] == 0) continue; if (card.longFilename[0] == '.') continue; - uint8_t a = arrayFindStr(assets, COUNT(assets), card.longFilename); + int8_t a = arrayFindStr(assets, COUNT(assets), card.longFilename); if (a >= 0 && a < COUNT(assets)) { uint8_t assetType = ASSET_TYPE_ICON; if (strstr(assets[a], "_logo")) @@ -482,9 +498,8 @@ uint8_t public_buf[512]; #if HAS_SPI_FLASH_FONT a = arrayFindStr(fonts, COUNT(fonts), card.longFilename); - if (a >= 0 && a < COUNT(fonts)) { + if (a >= 0 && a < COUNT(fonts)) loadAsset(dir, d, fonts[a], ASSET_TYPE_FONT); - } #endif } dir.rename(&root, bakPath); @@ -496,11 +511,13 @@ uint8_t public_buf[512]; W25QXX.SPI_FLASH_BufferRead(&pic_counter, PIC_COUNTER_ADDR, 1); SERIAL_ECHOLNPAIR("Total assets loaded: ", pic_counter); #endif + + SERIAL_ECHOLNPAIR("Total Uncompressed: ", totalSizes, ", Compressed: ", totalCompressed); } #if HAS_SPI_FLASH_FONT void spi_flash_read_test() { W25QXX.SPI_FLASH_BufferRead(public_buf, UNIGBK_FLASH_ADDR, BMP_WRITE_BUF_LEN); } - #endif // HAS_SPI_FLASH_FONT + #endif #endif // SDSUPPORT @@ -531,8 +548,15 @@ void Pic_Read(uint8_t *Pname, uint8_t *P_Rbuff) { } void lv_pic_test(uint8_t *P_Rbuff, uint32_t addr, uint32_t size) { - W25QXX.init(SPI_QUARTER_SPEED); - W25QXX.SPI_FLASH_BufferRead((uint8_t *)P_Rbuff, addr, size); + #if HAS_SPI_FLASH_COMPRESSION + if (currentFlashPage == 0) + SPIFlash.beginRead(addr); + SPIFlash.readData(P_Rbuff, size); + currentFlashPage++; + #else + W25QXX.init(SPI_QUARTER_SPEED); + W25QXX.SPI_FLASH_BufferRead((uint8_t *)P_Rbuff, addr, size); + #endif } #if HAS_SPI_FLASH_FONT diff --git a/Marlin/src/lcd/extui/lib/mks_ui/pic_manager.h b/Marlin/src/lcd/extui/lib/mks_ui/pic_manager.h index 3ef4ee4f8..d97b54a65 100644 --- a/Marlin/src/lcd/extui/lib/mks_ui/pic_manager.h +++ b/Marlin/src/lcd/extui/lib/mks_ui/pic_manager.h @@ -63,7 +63,7 @@ extern "C" { /* C-declarations for C++ */ #define DEFAULT_VIEW_MAX_SIZE (200*200*2) #define FLASH_VIEW_MAX_SIZE (200*200*2) -#define PER_PIC_MAX_SPACE_TFT35 (32*1024) +#define PER_PIC_MAX_SPACE_TFT35 (9*1024) #define PER_PIC_MAX_SPACE_TFT32 (16*1024) #define PER_FONT_MAX_SPACE (16*1024) @@ -88,7 +88,7 @@ extern "C" { /* C-declarations for C++ */ #define PIC_OTHER_SIZE_ADDR_TFT32 0x5EE000 // font - #define FONTINFOADDR 0x183000 // 6M -- font addr + #define FONTINFOADDR 0x150000 // 6M -- font addr #define UNIGBK_FLASH_ADDR (FONTINFOADDR+4096) // 4*1024 #else diff --git a/Marlin/src/pins/stm32f1/pins_CHITU3D_V5.h b/Marlin/src/pins/stm32f1/pins_CHITU3D_V5.h index 31aa873b5..b6863d252 100644 --- a/Marlin/src/pins/stm32f1/pins_CHITU3D_V5.h +++ b/Marlin/src/pins/stm32f1/pins_CHITU3D_V5.h @@ -150,10 +150,10 @@ #define SPI_FLASH_SIZE 0x200000 // 2MB #if HAS_TFT_LVGL_UI - #define HAS_SPI_FLASH_FONT 0 + #define HAS_SPI_FLASH_FONT 1 #define HAS_GCODE_PREVIEW 1 #define HAS_GCODE_DEFAULT_VIEW_IN_FLASH 0 - #define HAS_LANG_SELECT_SCREEN 0 + #define HAS_LANG_SELECT_SCREEN 1 #define HAS_BAK_VIEW_IN_FLASH 0 #define HAS_LOGO_IN_FLASH 0 From 99fb65f359030879fcec2855a77fc2298c7aaec2 Mon Sep 17 00:00:00 2001 From: thinkyhead Date: Wed, 5 Aug 2020 00:10:17 +0000 Subject: [PATCH 044/194] [cron] Bump distribution date (2020-08-05) --- Marlin/src/inc/Version.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Marlin/src/inc/Version.h b/Marlin/src/inc/Version.h index ce9146bb6..e7fa18a11 100644 --- a/Marlin/src/inc/Version.h +++ b/Marlin/src/inc/Version.h @@ -42,7 +42,7 @@ * version was tagged. */ #ifndef STRING_DISTRIBUTION_DATE - #define STRING_DISTRIBUTION_DATE "2020-08-04" + #define STRING_DISTRIBUTION_DATE "2020-08-05" #endif /** From 3341fc6728581408222805d07e3d3835e1df8dfc Mon Sep 17 00:00:00 2001 From: thinkyhead Date: Thu, 6 Aug 2020 00:10:09 +0000 Subject: [PATCH 045/194] [cron] Bump distribution date (2020-08-06) --- Marlin/src/inc/Version.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Marlin/src/inc/Version.h b/Marlin/src/inc/Version.h index e7fa18a11..5b63f3129 100644 --- a/Marlin/src/inc/Version.h +++ b/Marlin/src/inc/Version.h @@ -42,7 +42,7 @@ * version was tagged. */ #ifndef STRING_DISTRIBUTION_DATE - #define STRING_DISTRIBUTION_DATE "2020-08-05" + #define STRING_DISTRIBUTION_DATE "2020-08-06" #endif /** From 6da477e6bf675c10e1eb5c3279a06dffeb0c3947 Mon Sep 17 00:00:00 2001 From: swissnorp <67485708+swissnorp@users.noreply.github.com> Date: Thu, 6 Aug 2020 05:38:23 +0200 Subject: [PATCH 046/194] Move Cancel Object menu, fix canceled item index (#18930) --- Marlin/src/lcd/menu/menu_advanced.cpp | 5 ----- Marlin/src/lcd/menu/menu_cancelobject.cpp | 2 +- Marlin/src/lcd/menu/menu_main.cpp | 6 ++++++ 3 files changed, 7 insertions(+), 6 deletions(-) diff --git a/Marlin/src/lcd/menu/menu_advanced.cpp b/Marlin/src/lcd/menu/menu_advanced.cpp index 81baa6156..1c37b2f2d 100644 --- a/Marlin/src/lcd/menu/menu_advanced.cpp +++ b/Marlin/src/lcd/menu/menu_advanced.cpp @@ -53,7 +53,6 @@ void menu_tmc(); void menu_backlash(); -void menu_cancelobject(); #if ENABLED(DAC_STEPPER_CURRENT) @@ -560,10 +559,6 @@ void menu_advanced_settings() { SUBMENU(MSG_BACKLASH, menu_backlash); #endif - #if ENABLED(CANCEL_OBJECTS) - SUBMENU(MSG_CANCEL_OBJECT, []{ editable.int8 = -1; ui.goto_screen(menu_cancelobject); }); - #endif - #if ENABLED(DAC_STEPPER_CURRENT) SUBMENU(MSG_DRIVE_STRENGTH, menu_dac); #endif diff --git a/Marlin/src/lcd/menu/menu_cancelobject.cpp b/Marlin/src/lcd/menu/menu_cancelobject.cpp index 095e4eb7b..55b88c45b 100644 --- a/Marlin/src/lcd/menu/menu_cancelobject.cpp +++ b/Marlin/src/lcd/menu/menu_cancelobject.cpp @@ -43,7 +43,7 @@ static void lcd_cancel_object_confirm() { }; MenuItem_confirm::confirm_screen( []{ - cancelable.cancel_object(MenuItemBase::itemIndex - 1); + cancelable.cancel_object(MenuItemBase::itemIndex); ui.completion_feedback(); ui.goto_previous_screen(); }, diff --git a/Marlin/src/lcd/menu/menu_main.cpp b/Marlin/src/lcd/menu/menu_main.cpp index 51b67209d..059290c52 100644 --- a/Marlin/src/lcd/menu/menu_main.cpp +++ b/Marlin/src/lcd/menu/menu_main.cpp @@ -51,6 +51,7 @@ #endif void menu_tune(); +void menu_cancelobject(); void menu_motion(); void menu_temperature(); void menu_configuration(); @@ -110,7 +111,12 @@ void menu_main() { ); }); #endif + SUBMENU(MSG_TUNE, menu_tune); + + #if ENABLED(CANCEL_OBJECTS) && DISABLED(SLIM_LCD_MENUS) + SUBMENU(MSG_CANCEL_OBJECT, []{ editable.int8 = -1; ui.goto_screen(menu_cancelobject); }); + #endif } else { From d922c002ca3d5de89f4ae2f309d1713100bec977 Mon Sep 17 00:00:00 2001 From: Victor Oliveira Date: Thu, 6 Aug 2020 00:40:08 -0300 Subject: [PATCH 047/194] Followup to LVGL patch (#18920) --- Marlin/src/lcd/extui/lib/mks_ui/SPIFlashStorage.cpp | 11 ++++++----- Marlin/src/lcd/extui/lib/mks_ui/SPIFlashStorage.h | 2 +- Marlin/src/lcd/extui/lib/mks_ui/pic_manager.cpp | 4 ++-- 3 files changed, 9 insertions(+), 8 deletions(-) diff --git a/Marlin/src/lcd/extui/lib/mks_ui/SPIFlashStorage.cpp b/Marlin/src/lcd/extui/lib/mks_ui/SPIFlashStorage.cpp index da87ce976..9d3adc1ba 100644 --- a/Marlin/src/lcd/extui/lib/mks_ui/SPIFlashStorage.cpp +++ b/Marlin/src/lcd/extui/lib/mks_ui/SPIFlashStorage.cpp @@ -24,12 +24,13 @@ #if HAS_TFT_LVGL_UI +#include "../../../../inc/MarlinConfig.h" #include "SPIFlashStorage.h" -uint8_t SPIFlashStorage::::m_pageData[SPI_FLASH_PageSize]; -uint32_t SPIFlashStorage::::m_currentPage; -uint16_t SPIFlashStorage::::m_pageDataUsed; -uint32_t SPIFlashStorage::::m_startAddress; +uint8_t SPIFlashStorage::m_pageData[SPI_FLASH_PageSize]; +uint32_t SPIFlashStorage::m_currentPage; +uint16_t SPIFlashStorage::m_pageDataUsed; +uint32_t SPIFlashStorage::m_startAddress; #if HAS_SPI_FLASH_COMPRESSION @@ -291,7 +292,7 @@ void SPIFlashStorage::beginRead(uint32_t startAddress) { uint16_t SPIFlashStorage::outData(uint8_t* data, uint16_t size) { // Don't read more than we have - NOMORE(size > pageDataFree()); + NOMORE(size, pageDataFree()); memcpy(data, m_pageData + m_pageDataUsed, size); m_pageDataUsed += size; return size; diff --git a/Marlin/src/lcd/extui/lib/mks_ui/SPIFlashStorage.h b/Marlin/src/lcd/extui/lib/mks_ui/SPIFlashStorage.h index c806068dd..5a1241370 100644 --- a/Marlin/src/lcd/extui/lib/mks_ui/SPIFlashStorage.h +++ b/Marlin/src/lcd/extui/lib/mks_ui/SPIFlashStorage.h @@ -79,7 +79,7 @@ public: static void endWrite(); static void writeData(uint8_t* data, uint16_t size); - static // Read operation + // Read operation static void beginRead(uint32_t startAddress); static void readData(uint8_t* data, uint16_t size); diff --git a/Marlin/src/lcd/extui/lib/mks_ui/pic_manager.cpp b/Marlin/src/lcd/extui/lib/mks_ui/pic_manager.cpp index 771e3e062..3f87c5183 100644 --- a/Marlin/src/lcd/extui/lib/mks_ui/pic_manager.cpp +++ b/Marlin/src/lcd/extui/lib/mks_ui/pic_manager.cpp @@ -482,7 +482,7 @@ uint8_t public_buf[512]; if (card.longFilename[0] == '.') continue; int8_t a = arrayFindStr(assets, COUNT(assets), card.longFilename); - if (a >= 0 && a < COUNT(assets)) { + if (a >= 0 && a < (int8_t)COUNT(assets)) { uint8_t assetType = ASSET_TYPE_ICON; if (strstr(assets[a], "_logo")) assetType = ASSET_TYPE_LOGO; @@ -498,7 +498,7 @@ uint8_t public_buf[512]; #if HAS_SPI_FLASH_FONT a = arrayFindStr(fonts, COUNT(fonts), card.longFilename); - if (a >= 0 && a < COUNT(fonts)) + if (a >= 0 && a < (int8_t)COUNT(fonts)) loadAsset(dir, d, fonts[a], ASSET_TYPE_FONT); #endif } From c61e980c9c3e8f04c265f1adaaa5be447a213c22 Mon Sep 17 00:00:00 2001 From: Keith Bennett <13375512+thisiskeithb@users.noreply.github.com> Date: Wed, 5 Aug 2020 20:42:03 -0700 Subject: [PATCH 048/194] Add Chitu 3D V6 2nd Filament Runout pin (#18922) --- Marlin/src/pins/stm32f1/pins_CHITU3D_V6.h | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/Marlin/src/pins/stm32f1/pins_CHITU3D_V6.h b/Marlin/src/pins/stm32f1/pins_CHITU3D_V6.h index 75aa9146f..7a3777da4 100644 --- a/Marlin/src/pins/stm32f1/pins_CHITU3D_V6.h +++ b/Marlin/src/pins/stm32f1/pins_CHITU3D_V6.h @@ -111,7 +111,13 @@ #define BEEPER_PIN PB0 //#define LED_PIN PD3 //#define POWER_LOSS_PIN PG2 // PG4 PW_DET -#define FIL_RUNOUT_PIN PA15 // MT_DET + +#ifndef FIL_RUNOUT_PIN + #define FIL_RUNOUT_PIN PA15 // MT_DET +#endif +#ifndef FIL_RUNOUT2_PIN + #define FIL_RUNOUT2_PIN PF13 +#endif // // TronXY TFT Support From 41718cf55fadd1ded5bfe270c5a8ec73b8dbc76a Mon Sep 17 00:00:00 2001 From: Victor Oliveira Date: Thu, 6 Aug 2020 00:44:30 -0300 Subject: [PATCH 049/194] Request files needed to test a PR (#18925) --- .github/pull_request_template.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md index 9298b2b96..d82fb0f9e 100644 --- a/.github/pull_request_template.md +++ b/.github/pull_request_template.md @@ -14,6 +14,10 @@ We must be able to understand your proposed change from this description. If we +### Configurations + + + ### Related Issues From a9912681b40ebaea6b452a41fb0d25ec9c93c8fc Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Thu, 6 Aug 2020 00:49:15 -0500 Subject: [PATCH 050/194] General cleanup --- Marlin/src/core/multi_language.cpp | 0 Marlin/src/feature/spindle_laser.cpp | 2 +- Marlin/src/gcode/gcode.cpp | 2 +- Marlin/src/inc/Conditionals_post.h | 2 +- Marlin/src/lcd/menu/menu_motion.cpp | 2 +- Marlin/src/lcd/menu/menu_tmc.cpp | 2 +- Marlin/src/lcd/menu/menu_touch_screen.cpp | 4 +++- Marlin/src/lcd/ultralcd.cpp | 2 +- 8 files changed, 9 insertions(+), 7 deletions(-) delete mode 100644 Marlin/src/core/multi_language.cpp diff --git a/Marlin/src/core/multi_language.cpp b/Marlin/src/core/multi_language.cpp deleted file mode 100644 index e69de29bb..000000000 diff --git a/Marlin/src/feature/spindle_laser.cpp b/Marlin/src/feature/spindle_laser.cpp index 68261f2fc..9d2ee7d9e 100644 --- a/Marlin/src/feature/spindle_laser.cpp +++ b/Marlin/src/feature/spindle_laser.cpp @@ -68,7 +68,7 @@ void SpindleLaser::init() { analogWrite(pin_t(SPINDLE_LASER_PWM_PIN), ocr ^ SPINDLE_LASER_PWM_OFF); #if NEEDS_HARDWARE_PWM && SPINDLE_LASER_FREQUENCY set_pwm_duty(pin_t(SPINDLE_LASER_PWM_PIN), ocr ^ SPINDLE_LASER_PWM_OFF); - #endif + #endif } void SpindleLaser::ocr_off() { WRITE(SPINDLE_LASER_ENA_PIN, !SPINDLE_LASER_ACTIVE_HIGH); // Turn spindle off diff --git a/Marlin/src/gcode/gcode.cpp b/Marlin/src/gcode/gcode.cpp index 8d103d52b..7c1083f7f 100644 --- a/Marlin/src/gcode/gcode.cpp +++ b/Marlin/src/gcode/gcode.cpp @@ -874,7 +874,7 @@ void GcodeSuite::process_parsed_command(const bool no_ok/*=false*/) { #if ENABLED(TOUCH_SCREEN_CALIBRATION) case 995: M995(); break; // M995: Touch screen calibration for TFT display #endif - + #if ENABLED(PLATFORM_M997_SUPPORT) case 997: M997(); break; // M997: Perform in-application firmware update #endif diff --git a/Marlin/src/inc/Conditionals_post.h b/Marlin/src/inc/Conditionals_post.h index b7f92fcb2..5534acaf2 100644 --- a/Marlin/src/inc/Conditionals_post.h +++ b/Marlin/src/inc/Conditionals_post.h @@ -2436,7 +2436,7 @@ */ #if PIN_EXISTS(BEEPER) || EITHER(LCD_USE_I2C_BUZZER, PCA9632_BUZZER) #define HAS_BUZZER 1 - #if DISABLED(LCD_USE_I2C_BUZZER, PCA9632_BUZZER) + #if NONE(LCD_USE_I2C_BUZZER, PCA9632_BUZZER) #define USE_BEEPER 1 #endif #endif diff --git a/Marlin/src/lcd/menu/menu_motion.cpp b/Marlin/src/lcd/menu/menu_motion.cpp index 5887bf9d4..60118a301 100644 --- a/Marlin/src/lcd/menu/menu_motion.cpp +++ b/Marlin/src/lcd/menu/menu_motion.cpp @@ -350,7 +350,7 @@ void menu_motion() { #if ENABLED(ASSISTED_TRAMMING) GCODES_ITEM(MSG_ASSISTED_TRAMMING, PSTR("G35")); #endif - + // // Level Bed // diff --git a/Marlin/src/lcd/menu/menu_tmc.cpp b/Marlin/src/lcd/menu/menu_tmc.cpp index e74619d29..f2f26886f 100644 --- a/Marlin/src/lcd/menu/menu_tmc.cpp +++ b/Marlin/src/lcd/menu/menu_tmc.cpp @@ -26,7 +26,7 @@ #include "../../inc/MarlinConfigPre.h" -#if HAS_TRINAMIC_CONFIG && HAS_LCD_MENU +#if HAS_LCD_MENU && HAS_TRINAMIC_CONFIG #include "menu.h" #include "../../module/stepper/indirection.h" diff --git a/Marlin/src/lcd/menu/menu_touch_screen.cpp b/Marlin/src/lcd/menu/menu_touch_screen.cpp index 1f315f181..71fb7b755 100644 --- a/Marlin/src/lcd/menu/menu_touch_screen.cpp +++ b/Marlin/src/lcd/menu/menu_touch_screen.cpp @@ -22,13 +22,15 @@ #include "../../inc/MarlinConfigPre.h" -#if ENABLED(TOUCH_SCREEN_CALIBRATION) +#if BOTH(HAS_LCD_MENU, TOUCH_SCREEN_CALIBRATION) #include "menu.h" #include "../ultralcd.h" void touch_screen_calibration() { + ui.touch_calibration(); + } #endif // TOUCH_SCREEN_CALIBRATION diff --git a/Marlin/src/lcd/ultralcd.cpp b/Marlin/src/lcd/ultralcd.cpp index b7dd4944e..6482cf33d 100644 --- a/Marlin/src/lcd/ultralcd.cpp +++ b/Marlin/src/lcd/ultralcd.cpp @@ -74,7 +74,7 @@ constexpr uint8_t epps = ENCODER_PULSES_PER_STEP; #endif #endif -#if ENABLED(PCA9632_BUZZER) || USE_BEEPER +#if EITHER(PCA9632_BUZZER, USE_BEEPER) #include "../libs/buzzer.h" // for BUZZ() macro #if ENABLED(PCA9632_BUZZER) #include "../feature/leds/pca9632.h" From d69c2a90b7721c2b779d31572faff5fd848d8ea0 Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Wed, 5 Aug 2020 23:21:41 -0500 Subject: [PATCH 051/194] Simple rename of hex_print --- .../src/HAL/STM32_F4_F7/STM32F7/TMC2660.cpp | 2 +- Marlin/src/feature/bedlevel/ubl/ubl_G29.cpp | 2 +- Marlin/src/feature/tmc_util.cpp | 2 +- Marlin/src/gcode/calibrate/M100.cpp | 2 +- Marlin/src/gcode/eeprom/M500-M504.cpp | 2 +- Marlin/src/gcode/parser.h | 2 +- Marlin/src/inc/Conditionals_adv.h | 5 ++ Marlin/src/libs/hex_print.cpp | 90 +++++++++++++++++++ .../{hex_print_routines.h => hex_print.h} | 0 Marlin/src/libs/hex_print_routines.cpp | 90 ------------------- 10 files changed, 101 insertions(+), 96 deletions(-) create mode 100644 Marlin/src/libs/hex_print.cpp rename Marlin/src/libs/{hex_print_routines.h => hex_print.h} (100%) delete mode 100644 Marlin/src/libs/hex_print_routines.cpp diff --git a/Marlin/src/HAL/STM32_F4_F7/STM32F7/TMC2660.cpp b/Marlin/src/HAL/STM32_F4_F7/STM32F7/TMC2660.cpp index b03045902..4d116f440 100644 --- a/Marlin/src/HAL/STM32_F4_F7/STM32F7/TMC2660.cpp +++ b/Marlin/src/HAL/STM32_F4_F7/STM32F7/TMC2660.cpp @@ -40,7 +40,7 @@ #include "../../../module/stepper/indirection.h" #include "../../../module/printcounter.h" #include "../../../libs/duration_t.h" -#include "../../../libs/hex_print_routines.h" +#include "../../../libs/hex_print.h" //some default values used in initialization #define DEFAULT_MICROSTEPPING_VALUE 32 diff --git a/Marlin/src/feature/bedlevel/ubl/ubl_G29.cpp b/Marlin/src/feature/bedlevel/ubl/ubl_G29.cpp index f8219ac7e..760d2cdd1 100644 --- a/Marlin/src/feature/bedlevel/ubl/ubl_G29.cpp +++ b/Marlin/src/feature/bedlevel/ubl/ubl_G29.cpp @@ -28,7 +28,7 @@ #include "../../../MarlinCore.h" #include "../../../HAL/shared/eeprom_api.h" - #include "../../../libs/hex_print_routines.h" + #include "../../../libs/hex_print.h" #include "../../../module/configuration_store.h" #include "../../../lcd/ultralcd.h" #include "../../../module/stepper.h" diff --git a/Marlin/src/feature/tmc_util.cpp b/Marlin/src/feature/tmc_util.cpp index 495d6a9f5..781253079 100644 --- a/Marlin/src/feature/tmc_util.cpp +++ b/Marlin/src/feature/tmc_util.cpp @@ -34,7 +34,7 @@ #if ENABLED(TMC_DEBUG) #include "../module/planner.h" - #include "../libs/hex_print_routines.h" + #include "../libs/hex_print.h" #if ENABLED(MONITOR_DRIVER_STATUS) static uint16_t report_tmc_status_interval; // = 0 #endif diff --git a/Marlin/src/gcode/calibrate/M100.cpp b/Marlin/src/gcode/calibrate/M100.cpp index ea054125b..f03b13e23 100644 --- a/Marlin/src/gcode/calibrate/M100.cpp +++ b/Marlin/src/gcode/calibrate/M100.cpp @@ -26,7 +26,7 @@ #include "../gcode.h" #include "../queue.h" -#include "../../libs/hex_print_routines.h" +#include "../../libs/hex_print.h" #include "../../MarlinCore.h" // for idle() diff --git a/Marlin/src/gcode/eeprom/M500-M504.cpp b/Marlin/src/gcode/eeprom/M500-M504.cpp index 5aee68ba9..30fa2b6e2 100644 --- a/Marlin/src/gcode/eeprom/M500-M504.cpp +++ b/Marlin/src/gcode/eeprom/M500-M504.cpp @@ -60,7 +60,7 @@ void GcodeSuite::M502() { #if ENABLED(EEPROM_SETTINGS) #if ENABLED(MARLIN_DEV_MODE) - #include "../../libs/hex_print_routines.h" + #include "../../libs/hex_print.h" #endif /** diff --git a/Marlin/src/gcode/parser.h b/Marlin/src/gcode/parser.h index 5474e5e5f..eb614c33b 100644 --- a/Marlin/src/gcode/parser.h +++ b/Marlin/src/gcode/parser.h @@ -31,7 +31,7 @@ //#define DEBUG_GCODE_PARSER #if ENABLED(DEBUG_GCODE_PARSER) - #include "../libs/hex_print_routines.h" + #include "../libs/hex_print.h" #endif #if ENABLED(TEMPERATURE_UNITS_SUPPORT) diff --git a/Marlin/src/inc/Conditionals_adv.h b/Marlin/src/inc/Conditionals_adv.h index 7b35dc775..a057034ab 100644 --- a/Marlin/src/inc/Conditionals_adv.h +++ b/Marlin/src/inc/Conditionals_adv.h @@ -378,3 +378,8 @@ #if ENABLED(EEPROM_SETTINGS) && NONE(I2C_EEPROM, SPI_EEPROM, QSPI_EEPROM, FLASH_EEPROM_EMULATION, SRAM_EEPROM_EMULATION, SDCARD_EEPROM_EMULATION) #define NO_EEPROM_SELECTED 1 #endif + +// Flag whether hex_print.cpp is used +#if ANY(AUTO_BED_LEVELING_UBL, M100_FREE_MEMORY_WATCHER, DEBUG_GCODE_PARSER, TMC_DEBUG, MARLIN_DEV_MODE) + #define NEED_HEX_PRINT 1 +#endif diff --git a/Marlin/src/libs/hex_print.cpp b/Marlin/src/libs/hex_print.cpp new file mode 100644 index 000000000..6bcc00e42 --- /dev/null +++ b/Marlin/src/libs/hex_print.cpp @@ -0,0 +1,90 @@ +/** + * Marlin 3D Printer Firmware + * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin] + * + * Based on Sprinter and grbl. + * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + */ + +#include "../inc/MarlinConfig.h" +#include "../gcode/parser.h" + +#if NEED_HEX_PRINT + +#include "hex_print.h" + +#ifdef CPU_32_BIT + constexpr int byte_start = 4; + static char _hex[] = "0x00000000"; +#else + constexpr int byte_start = 0; + static char _hex[] = "0x0000"; +#endif + +char* hex_byte(const uint8_t b) { + _hex[byte_start + 4] = hex_nybble(b >> 4); + _hex[byte_start + 5] = hex_nybble(b); + return &_hex[byte_start + 4]; +} + +inline void _hex_word(const uint16_t w) { + _hex[byte_start + 2] = hex_nybble(w >> 12); + _hex[byte_start + 3] = hex_nybble(w >> 8); + _hex[byte_start + 4] = hex_nybble(w >> 4); + _hex[byte_start + 5] = hex_nybble(w); +} + +char* hex_word(const uint16_t w) { + _hex_word(w); + return &_hex[byte_start + 2]; +} + +#ifdef CPU_32_BIT + char* hex_long(const uint32_t l) { + _hex[2] = hex_nybble(l >> 28); + _hex[3] = hex_nybble(l >> 24); + _hex[4] = hex_nybble(l >> 20); + _hex[5] = hex_nybble(l >> 16); + _hex_word((uint16_t)(l & 0xFFFF)); + return &_hex[2]; + } +#endif + +char* hex_address(const void * const w) { + #ifdef CPU_32_BIT + (void)hex_long((ptr_int_t)w); + #else + (void)hex_word((ptr_int_t)w); + #endif + return _hex; +} + +void print_hex_nybble(const uint8_t n) { SERIAL_CHAR(hex_nybble(n)); } +void print_hex_byte(const uint8_t b) { SERIAL_ECHO(hex_byte(b)); } +void print_hex_word(const uint16_t w) { SERIAL_ECHO(hex_word(w)); } +void print_hex_address(const void * const w) { SERIAL_ECHO(hex_address(w)); } + +void print_hex_long(const uint32_t w, const char delimiter) { + SERIAL_ECHOPGM("0x"); + for (int B = 24; B >= 8; B -= 8){ + print_hex_byte(w >> B); + SERIAL_CHAR(delimiter); + } + print_hex_byte(w); +} + +#endif // NEED_HEX_PRINT diff --git a/Marlin/src/libs/hex_print_routines.h b/Marlin/src/libs/hex_print.h similarity index 100% rename from Marlin/src/libs/hex_print_routines.h rename to Marlin/src/libs/hex_print.h diff --git a/Marlin/src/libs/hex_print_routines.cpp b/Marlin/src/libs/hex_print_routines.cpp deleted file mode 100644 index 5909ffd7d..000000000 --- a/Marlin/src/libs/hex_print_routines.cpp +++ /dev/null @@ -1,90 +0,0 @@ -/** - * Marlin 3D Printer Firmware - * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin] - * - * Based on Sprinter and grbl. - * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - */ - -#include "../inc/MarlinConfig.h" -#include "../gcode/parser.h" - -#if ANY(AUTO_BED_LEVELING_UBL, M100_FREE_MEMORY_WATCHER, DEBUG_GCODE_PARSER, TMC_DEBUG, MARLIN_DEV_MODE) - - #include "hex_print_routines.h" - - #ifdef CPU_32_BIT - constexpr int byte_start = 4; - static char _hex[] = "0x00000000"; - #else - constexpr int byte_start = 0; - static char _hex[] = "0x0000"; - #endif - - char* hex_byte(const uint8_t b) { - _hex[byte_start + 4] = hex_nybble(b >> 4); - _hex[byte_start + 5] = hex_nybble(b); - return &_hex[byte_start + 4]; - } - - inline void _hex_word(const uint16_t w) { - _hex[byte_start + 2] = hex_nybble(w >> 12); - _hex[byte_start + 3] = hex_nybble(w >> 8); - _hex[byte_start + 4] = hex_nybble(w >> 4); - _hex[byte_start + 5] = hex_nybble(w); - } - - char* hex_word(const uint16_t w) { - _hex_word(w); - return &_hex[byte_start + 2]; - } - - #ifdef CPU_32_BIT - char* hex_long(const uint32_t l) { - _hex[2] = hex_nybble(l >> 28); - _hex[3] = hex_nybble(l >> 24); - _hex[4] = hex_nybble(l >> 20); - _hex[5] = hex_nybble(l >> 16); - _hex_word((uint16_t)(l & 0xFFFF)); - return &_hex[2]; - } - #endif - - char* hex_address(const void * const w) { - #ifdef CPU_32_BIT - (void)hex_long((ptr_int_t)w); - #else - (void)hex_word((ptr_int_t)w); - #endif - return _hex; - } - - void print_hex_nybble(const uint8_t n) { SERIAL_CHAR(hex_nybble(n)); } - void print_hex_byte(const uint8_t b) { SERIAL_ECHO(hex_byte(b)); } - void print_hex_word(const uint16_t w) { SERIAL_ECHO(hex_word(w)); } - void print_hex_address(const void * const w) { SERIAL_ECHO(hex_address(w)); } - - void print_hex_long(const uint32_t w, const char delimiter) { - SERIAL_ECHOPGM("0x"); - for (int B = 24; B >= 8; B -= 8){ - print_hex_byte(w >> B); - SERIAL_CHAR(delimiter); - } - print_hex_byte(w); - } - -#endif // AUTO_BED_LEVELING_UBL || M100_FREE_MEMORY_WATCHER || DEBUG_GCODE_PARSER From 7a5d408bc0ad461c0bdbfaa4acdfe24356d7e058 Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Thu, 6 Aug 2020 04:19:56 -0500 Subject: [PATCH 052/194] Conditions cleanup --- Marlin/src/feature/leds/printer_event_leds.cpp | 2 +- Marlin/src/feature/leds/printer_event_leds.h | 2 +- Marlin/src/inc/Conditionals_adv.h | 5 +++++ Marlin/src/inc/Conditionals_post.h | 2 +- Marlin/src/lcd/menu/menu_ubl.cpp | 2 +- Marlin/src/libs/least_squares_fit.cpp | 4 ++-- 6 files changed, 11 insertions(+), 6 deletions(-) diff --git a/Marlin/src/feature/leds/printer_event_leds.cpp b/Marlin/src/feature/leds/printer_event_leds.cpp index 58084da83..31c628c28 100644 --- a/Marlin/src/feature/leds/printer_event_leds.cpp +++ b/Marlin/src/feature/leds/printer_event_leds.cpp @@ -21,7 +21,7 @@ */ /** - * printer_event_leds.cpp - LED color changing based on printer status + * feature/leds/printer_event_leds.cpp - LED color changing based on printer status */ #include "../../inc/MarlinConfigPre.h" diff --git a/Marlin/src/feature/leds/printer_event_leds.h b/Marlin/src/feature/leds/printer_event_leds.h index 0295f9f5a..86ec292aa 100644 --- a/Marlin/src/feature/leds/printer_event_leds.h +++ b/Marlin/src/feature/leds/printer_event_leds.h @@ -22,7 +22,7 @@ #pragma once /** - * printer_event_leds.h - LED color changing based on printer status + * feature/leds/printer_event_leds.h - LED color changing based on printer status */ #include "leds.h" diff --git a/Marlin/src/inc/Conditionals_adv.h b/Marlin/src/inc/Conditionals_adv.h index a057034ab..277131289 100644 --- a/Marlin/src/inc/Conditionals_adv.h +++ b/Marlin/src/inc/Conditionals_adv.h @@ -383,3 +383,8 @@ #if ANY(AUTO_BED_LEVELING_UBL, M100_FREE_MEMORY_WATCHER, DEBUG_GCODE_PARSER, TMC_DEBUG, MARLIN_DEV_MODE) #define NEED_HEX_PRINT 1 #endif + +// Flag whether least_squares_fit.cpp is used +#if ANY(AUTO_BED_LEVELING_UBL, AUTO_BED_LEVELING_LINEAR, Z_STEPPER_ALIGN_KNOWN_STEPPER_POSITIONS) + #define NEED_LSF 1 +#endif diff --git a/Marlin/src/inc/Conditionals_post.h b/Marlin/src/inc/Conditionals_post.h index 5534acaf2..a93e0527b 100644 --- a/Marlin/src/inc/Conditionals_post.h +++ b/Marlin/src/inc/Conditionals_post.h @@ -1955,7 +1955,7 @@ #if PIN_EXISTS(DIGIPOTSS) #define HAS_DIGIPOTSS 1 #endif -#if ANY_PIN(MOTOR_CURRENT_PWM_X, MOTOR_CURRENT_PWM_Y, MOTOR_CURRENT_PWM_XY, MOTOR_CURRENT_PWM_Z, MOTOR_CURRENT_PWM_E) +#if ANY_PIN(MOTOR_CURRENT_PWM_X, MOTOR_CURRENT_PWM_Y, MOTOR_CURRENT_PWM_XY, MOTOR_CURRENT_PWM_Z, MOTOR_CURRENT_PWM_E) #define HAS_MOTOR_CURRENT_PWM 1 #endif diff --git a/Marlin/src/lcd/menu/menu_ubl.cpp b/Marlin/src/lcd/menu/menu_ubl.cpp index 8a5095c88..997130a91 100644 --- a/Marlin/src/lcd/menu/menu_ubl.cpp +++ b/Marlin/src/lcd/menu/menu_ubl.cpp @@ -451,7 +451,7 @@ void ubl_map_screen() { #if IS_KINEMATIC // Index of the mesh point upon entry - const uint32_t old_pos_index = grid_index(x_plot, y_plot); + const int32_t old_pos_index = grid_index(x_plot, y_plot); // Direction from new (unconstrained) encoder value const int8_t step_dir = int32_t(ui.encoderPosition) < old_pos_index ? -1 : 1; #endif diff --git a/Marlin/src/libs/least_squares_fit.cpp b/Marlin/src/libs/least_squares_fit.cpp index ce3a342b9..ef6ef9e90 100644 --- a/Marlin/src/libs/least_squares_fit.cpp +++ b/Marlin/src/libs/least_squares_fit.cpp @@ -34,7 +34,7 @@ #include "../inc/MarlinConfig.h" -#if ANY(AUTO_BED_LEVELING_UBL, AUTO_BED_LEVELING_LINEAR, Z_STEPPER_ALIGN_KNOWN_STEPPER_POSITIONS) +#if NEED_LSF #include "least_squares_fit.h" @@ -67,4 +67,4 @@ int finish_incremental_LSF(struct linear_fit_data *lsf) { return 0; } -#endif // AUTO_BED_LEVELING_UBL || ENABLED(AUTO_BED_LEVELING_LINEAR) +#endif // NEED_LSF From 6bcfb58cd4b208cf042fa4a66faf14f382d33d07 Mon Sep 17 00:00:00 2001 From: Marco Burato Date: Thu, 6 Aug 2020 12:38:18 +0200 Subject: [PATCH 053/194] More Anycubic + Trigorilla mappings, ExtUI (#18903) --- Marlin/Configuration.h | 16 +- Marlin/src/HAL/AVR/HAL.h | 11 + Marlin/src/HAL/AVR/MarlinSerial.cpp | 18 + Marlin/src/HAL/AVR/MarlinSerial.h | 17 + Marlin/src/inc/Conditionals_LCD.h | 2 +- Marlin/src/inc/SanityCheck.h | 6 +- .../extui/lib/anycubic/anycubic_serial.cpp | 290 ---------- .../lcd/extui/lib/anycubic/anycubic_serial.h | 145 ----- .../anycubic_i3mega_lcd.cpp} | 327 ++++++----- .../anycubic_i3mega_lcd.h} | 14 +- Marlin/src/lcd/extui/ui_api.cpp | 8 +- Marlin/src/lcd/extui/ui_api.h | 4 +- Marlin/src/lcd/extui_anycubic_chiron_lcd.cpp | 536 ++++++++++++++++++ ..._tft.cpp => extui_anycubic_i3mega_lcd.cpp} | 8 +- Marlin/src/pins/ramps/pins_TRIGORILLA_14.h | 100 ++-- platformio.ini | 2 +- 16 files changed, 837 insertions(+), 667 deletions(-) delete mode 100644 Marlin/src/lcd/extui/lib/anycubic/anycubic_serial.cpp delete mode 100644 Marlin/src/lcd/extui/lib/anycubic/anycubic_serial.h rename Marlin/src/lcd/extui/lib/{anycubic/anycubic_tft.cpp => anycubic_i3mega/anycubic_i3mega_lcd.cpp} (75%) rename Marlin/src/lcd/extui/lib/{anycubic/anycubic_tft.h => anycubic_i3mega/anycubic_i3mega_lcd.h} (77%) create mode 100644 Marlin/src/lcd/extui_anycubic_chiron_lcd.cpp rename Marlin/src/lcd/{extui_anycubic_tft.cpp => extui_anycubic_i3mega_lcd.cpp} (95%) diff --git a/Marlin/Configuration.h b/Marlin/Configuration.h index 25efa79b7..75ee1eb99 100644 --- a/Marlin/Configuration.h +++ b/Marlin/Configuration.h @@ -2136,6 +2136,16 @@ // //#define TOUCH_UI_FTDI_EVE +// +// Touch-screen LCD for Anycubic printers +// +//#define ANYCUBIC_LCD_I3MEGA +//#define ANYCUBIC_LCD_CHIRON +#if EITHER(ANYCUBIC_LCD_I3MEGA, ANYCUBIC_LCD_CHIRON) + #define ANYCUBIC_LCD_SERIAL_PORT 3 + //#define ANYCUBIC_LCD_DEBUG +#endif + // // Third-party or vendor-customized controller interfaces. // Sources should be installed in 'src/lcd/extensible_ui'. @@ -2188,12 +2198,6 @@ //#define TFT_LVGL_UI_FSMC // Robin nano v1.2 uses FSMC //#define TFT_LVGL_UI_SPI // Robin nano v2.0 uses SPI -// -// Anycubic Mega TFT (AI3M) -// -//#define ANYCUBIC_TFT_MODEL -//#define ANYCUBIC_TFT_DEBUG - //============================================================================= //============================ Other Controllers ============================ //============================================================================= diff --git a/Marlin/src/HAL/AVR/HAL.h b/Marlin/src/HAL/AVR/HAL.h index b0e0674c7..609375e38 100644 --- a/Marlin/src/HAL/AVR/HAL.h +++ b/Marlin/src/HAL/AVR/HAL.h @@ -120,6 +120,17 @@ typedef int8_t pin_t; #define DGUS_SERIAL_GET_TX_BUFFER_FREE DGUS_SERIAL.get_tx_buffer_free #endif +#ifdef ANYCUBIC_LCD_SERIAL_PORT + #if !WITHIN(ANYCUBIC_LCD_SERIAL_PORT, -1, 3) + #error "ANYCUBIC_LCD_SERIAL_PORT must be from -1 to 3. Please update your configuration." + #elif ANYCUBIC_LCD_SERIAL_PORT == SERIAL_PORT + #error "ANYCUBIC_LCD_SERIAL_PORT must be different than SERIAL_PORT. Please update your configuration." + #elif defined(SERIAL_PORT_2) && ANYCUBIC_LCD_SERIAL_PORT == SERIAL_PORT_2 + #error "ANYCUBIC_LCD_SERIAL_PORT must be different than SERIAL_PORT_2. Please update your configuration." + #endif + #define ANYCUBIC_LCD_SERIAL anycubicLcdSerial +#endif + // ------------------------ // Public functions // ------------------------ diff --git a/Marlin/src/HAL/AVR/MarlinSerial.cpp b/Marlin/src/HAL/AVR/MarlinSerial.cpp index f41ef2011..3d44a3f59 100644 --- a/Marlin/src/HAL/AVR/MarlinSerial.cpp +++ b/Marlin/src/HAL/AVR/MarlinSerial.cpp @@ -792,6 +792,24 @@ #endif +#ifdef ANYCUBIC_LCD_SERIAL_PORT + + ISR(SERIAL_REGNAME(USART,ANYCUBIC_LCD_SERIAL_PORT,_RX_vect)) { + MarlinSerial>::store_rxd_char(); + } + + ISR(SERIAL_REGNAME(USART,ANYCUBIC_LCD_SERIAL_PORT,_UDRE_vect)) { + MarlinSerial>::_tx_udr_empty_irq(); + } + + // Preinstantiate + template class MarlinSerial>; + + // Instantiate + MarlinSerial> anycubicLcdSerial; + +#endif + // For AT90USB targets use the UART for BT interfacing #if defined(USBCON) && ENABLED(BLUETOOTH) HardwareSerial bluetoothSerial; diff --git a/Marlin/src/HAL/AVR/MarlinSerial.h b/Marlin/src/HAL/AVR/MarlinSerial.h index 1182d86ac..e8bfc5583 100644 --- a/Marlin/src/HAL/AVR/MarlinSerial.h +++ b/Marlin/src/HAL/AVR/MarlinSerial.h @@ -312,6 +312,23 @@ extern MarlinSerial> internalDgusSerial; #endif +#ifdef ANYCUBIC_LCD_SERIAL_PORT + template + struct AnycubicLcdSerialCfg { + static constexpr int PORT = serial; + static constexpr unsigned int RX_SIZE = 64; + static constexpr unsigned int TX_SIZE = 128; + static constexpr bool XONOFF = false; + static constexpr bool EMERGENCYPARSER = false; + static constexpr bool DROPPED_RX = false; + static constexpr bool RX_OVERRUNS = false; + static constexpr bool RX_FRAMING_ERRORS = false; + static constexpr bool MAX_RX_QUEUED = false; + }; + + extern MarlinSerial> anycubicLcdSerial; +#endif + // Use the UART for Bluetooth in AT90USB configurations #if defined(USBCON) && ENABLED(BLUETOOTH) extern HardwareSerial bluetoothSerial; diff --git a/Marlin/src/inc/Conditionals_LCD.h b/Marlin/src/inc/Conditionals_LCD.h index c309822f9..4ffd6fddc 100644 --- a/Marlin/src/inc/Conditionals_LCD.h +++ b/Marlin/src/inc/Conditionals_LCD.h @@ -411,7 +411,7 @@ #endif // Extensible UI serial touch screens. (See src/lcd/extui) -#if ANY(HAS_DGUS_LCD, MALYAN_LCD, TOUCH_UI_FTDI_EVE) +#if ANY(HAS_DGUS_LCD, MALYAN_LCD, TOUCH_UI_FTDI_EVE, ANYCUBIC_LCD_I3MEGA, ANYCUBIC_LCD_CHIRON) #define IS_EXTUI #define EXTENSIBLE_UI #endif diff --git a/Marlin/src/inc/SanityCheck.h b/Marlin/src/inc/SanityCheck.h index e1b162a96..d296eb2f1 100644 --- a/Marlin/src/inc/SanityCheck.h +++ b/Marlin/src/inc/SanityCheck.h @@ -515,6 +515,8 @@ #error "DIGIPOT_I2C is now DIGIPOT_MCP4451 (or DIGIPOT_MCP4018). Please update Configuration_adv.h." #elif defined(TOUCH_BUTTONS) #error "TOUCH_BUTTONS is now TOUCH_SCREEN. Please update your Configuration.h." +#elif defined(ANYCUBIC_TFT_MODEL) + #error "ANYCUBIC_TFT_MODEL is now ANYCUBIC_LCD_I3MEGA. Please update your Configuration.h." #endif #ifdef FIL_RUNOUT_INVERTING @@ -2237,7 +2239,9 @@ static_assert(hbm[Z_AXIS] >= 0, "HOMING_BUMP_MM.Z must be greater than or equal + ENABLED(TFT_320x240_SPI) \ + ENABLED(FSMC_GRAPHICAL_TFT) \ + ENABLED(TFT_LVGL_UI_FSMC) \ - + ENABLED(TFT_LVGL_UI_SPI) + + ENABLED(TFT_LVGL_UI_SPI) \ + + ENABLED(ANYCUBIC_LCD_I3MEGA) \ + + ENABLED(ANYCUBIC_LCD_CHIRON) #error "Please select no more than one LCD controller option." #endif diff --git a/Marlin/src/lcd/extui/lib/anycubic/anycubic_serial.cpp b/Marlin/src/lcd/extui/lib/anycubic/anycubic_serial.cpp deleted file mode 100644 index fd5f2691b..000000000 --- a/Marlin/src/lcd/extui/lib/anycubic/anycubic_serial.cpp +++ /dev/null @@ -1,290 +0,0 @@ -/* - anycubic_serial.cpp --- Support for Anycubic i3 Mega TFT serial connection - Created by Christian Hopp on 09.12.17. - - Original file: - HardwareSerial.cpp - Hardware serial library for Wiring - Copyright (c) 2006 Nicholas Zambetti. All right reserved. - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - Modified 23 November 2006 by David A. Mellis - Modified 28 September 2010 by Mark Sproul - Modified 14 August 2012 by Alarus -*/ - -#include "../../../../inc/MarlinConfig.h" - -#if ENABLED(ANYCUBIC_TFT_MODEL) - -#include - -// This next line disables the entire anycubic_serial.cpp, -// to support AtTiny series and other chips without a UART -#ifdef UBRR3H - -#include "anycubic_serial.h" - -#include -#include -#include -#include -#include "wiring_private.h" - -// Define constants and variables for buffering incoming serial data. We're -// using a ring buffer (I think), in which head is the index of the location -// to which to write the next incoming character and tail is the index of the -// location from which to read. -#if (RAMEND < 1000) - #define SERIAL_BUFFER_SIZE 64 -#else - #define SERIAL_BUFFER_SIZE 128 -#endif - -struct ring_buffer { - unsigned char buffer[SERIAL_BUFFER_SIZE]; - volatile unsigned int head; - volatile unsigned int tail; -}; - -ring_buffer rx_buffer_ajg = { { 0 }, 0, 0 }; -ring_buffer tx_buffer_ajg = { { 0 }, 0, 0 }; - -inline void store_char(unsigned char c, ring_buffer *buffer) { - int i = (unsigned int)(buffer->head + 1) % SERIAL_BUFFER_SIZE; - - // if we should be storing the received character into the location - // just before the tail (meaning that the head would advance to the - // current location of the tail), we're about to overflow the buffer - // and so we don't write the character or advance the head. - if (i != buffer->tail) { - buffer->buffer[buffer->head] = c; - buffer->head = i; - } -} - -#if defined(USART3_RX_vect) && defined(UDR3) - void serialEvent3() __attribute__((weak)); - void serialEvent3() {} - #define serialEvent3_implemented - ISR(USART3_RX_vect) { - if (bit_is_clear(UCSR3A, UPE3)) { - unsigned char c = UDR3; - store_char(c, &rx_buffer_ajg); - } - else { - unsigned char c = UDR3; - } - } -#endif - -#ifdef USART3_UDRE_vect - - ISR(USART3_UDRE_vect) { - if (tx_buffer_ajg.head == tx_buffer_ajg.tail) { - // Buffer empty, so disable interrupts - cbi(UCSR3B, UDRIE3); - } - else { - // There is more data in the output buffer. Send the next byte - unsigned char c = tx_buffer_ajg.buffer[tx_buffer_ajg.tail]; - tx_buffer_ajg.tail = (tx_buffer_ajg.tail + 1) % SERIAL_BUFFER_SIZE; - - UDR3 = c; - } - } - -#endif - -// Constructors //////////////////////////////////////////////////////////////// - -AnycubicSerialClass::AnycubicSerialClass(ring_buffer *rx_buffer, ring_buffer *tx_buffer, - volatile uint8_t *ubrrh, volatile uint8_t *ubrrl, - volatile uint8_t *ucsra, volatile uint8_t *ucsrb, - volatile uint8_t *ucsrc, volatile uint8_t *udr, - uint8_t rxen, uint8_t txen, uint8_t rxcie, uint8_t udrie, uint8_t u2x -) { - _rx_buffer = rx_buffer; - _tx_buffer = tx_buffer; - _ubrrh = ubrrh; - _ubrrl = ubrrl; - _ucsra = ucsra; - _ucsrb = ucsrb; - _ucsrc = ucsrc; - _udr = udr; - _rxen = rxen; - _txen = txen; - _rxcie = rxcie; - _udrie = udrie; - _u2x = u2x; -} - -// Public Methods ////////////////////////////////////////////////////////////// - -void AnycubicSerialClass::begin(unsigned long baud) { - uint16_t baud_setting; - bool use_u2x = true; - - #if F_CPU == 16000000UL - // hardcoded exception for compatibility with the bootloader shipped - // with the Duemilanove and previous boards and the firmware on the 8U2 - // on the Uno and Mega 2560. - if (baud == 57600) use_u2x = false; - #endif - -try_again: - - if (use_u2x) { - *_ucsra = 1 << _u2x; - baud_setting = (F_CPU / 4 / baud - 1) / 2; - } else { - *_ucsra = 0; - baud_setting = (F_CPU / 8 / baud - 1) / 2; - } - - if ((baud_setting > 4095) && use_u2x) { - use_u2x = false; - goto try_again; - } - - // assign the baud_setting, a.k.a. ubbr (USART Baud Rate Register) - *_ubrrh = baud_setting >> 8; - *_ubrrl = baud_setting; - - transmitting = false; - - sbi(*_ucsrb, _rxen); - sbi(*_ucsrb, _txen); - sbi(*_ucsrb, _rxcie); - cbi(*_ucsrb, _udrie); -} - -void AnycubicSerialClass::begin(unsigned long baud, byte config) { - uint16_t baud_setting; - uint8_t current_config; - bool use_u2x = true; - - #if F_CPU == 16000000UL - // hardcoded exception for compatibility with the bootloader shipped - // with the Duemilanove and previous boards and the firmware on the 8U2 - // on the Uno and Mega 2560. - if (baud == 57600) use_u2x = false; - #endif - -try_again: - - if (use_u2x) { - *_ucsra = 1 << _u2x; - baud_setting = (F_CPU / 4 / baud - 1) / 2; - } - else { - *_ucsra = 0; - baud_setting = (F_CPU / 8 / baud - 1) / 2; - } - - if ((baud_setting > 4095) && use_u2x) { - use_u2x = false; - goto try_again; - } - - // assign the baud_setting, a.k.a. ubbr (USART Baud Rate Register) - *_ubrrh = baud_setting >> 8; - *_ubrrl = baud_setting; - - //set the data bits, parity, and stop bits - #ifdef __AVR_ATmega8__ - config |= 0x80; // select UCSRC register (shared with UBRRH) - #endif - *_ucsrc = config; - - sbi(*_ucsrb, _rxen); - sbi(*_ucsrb, _txen); - sbi(*_ucsrb, _rxcie); - cbi(*_ucsrb, _udrie); -} - -void AnycubicSerialClass::end() { - // wait for transmission of outgoing data - while (_tx_buffer->head != _tx_buffer->tail) - ; - - cbi(*_ucsrb, _rxen); - cbi(*_ucsrb, _txen); - cbi(*_ucsrb, _rxcie); - cbi(*_ucsrb, _udrie); - - // clear any received data - _rx_buffer->head = _rx_buffer->tail; -} - -int AnycubicSerialClass::available(void) { - return (int)(SERIAL_BUFFER_SIZE + _rx_buffer->head - _rx_buffer->tail) % SERIAL_BUFFER_SIZE; -} - -int AnycubicSerialClass::peek(void) { - if (_rx_buffer->head == _rx_buffer->tail) { - return -1; - } else { - return _rx_buffer->buffer[_rx_buffer->tail]; - } -} - -int AnycubicSerialClass::read(void) { - // if the head isn't ahead of the tail, we don't have any characters - if (_rx_buffer->head == _rx_buffer->tail) { - return -1; - } else { - unsigned char c = _rx_buffer->buffer[_rx_buffer->tail]; - _rx_buffer->tail = (unsigned int)(_rx_buffer->tail + 1) % SERIAL_BUFFER_SIZE; - return c; - } -} - -void AnycubicSerialClass::flush() { - // UDR is kept full while the buffer is not empty, so TXC triggers when EMPTY && SENT - while (transmitting && ! (*_ucsra & _BV(TXC0))); - transmitting = false; -} - -size_t AnycubicSerialClass::write(uint8_t c) { - int i = (_tx_buffer->head + 1) % SERIAL_BUFFER_SIZE; - - // If the output buffer is full, there's nothing for it other than to - // wait for the interrupt handler to empty it a bit - // ???: return 0 here instead? - while (i == _tx_buffer->tail) - ; - - _tx_buffer->buffer[_tx_buffer->head] = c; - _tx_buffer->head = i; - - sbi(*_ucsrb, _udrie); - // clear the TXC bit -- "can be cleared by writing a one to its bit location" - transmitting = true; - sbi(*_ucsra, TXC0); - - return 1; -} - -AnycubicSerialClass::operator bool() { - return true; -} - -// Preinstantiate Objects ////////////////////////////////////////////////////// - -AnycubicSerialClass AnycubicSerial(&rx_buffer_ajg, &tx_buffer_ajg, &UBRR3H, &UBRR3L, &UCSR3A, &UCSR3B, &UCSR3C, &UDR3, RXEN3, TXEN3, RXCIE3, UDRIE3, U2X3); - -#endif // UBRR3H -#endif // ANYCUBIC_TFT_MODEL diff --git a/Marlin/src/lcd/extui/lib/anycubic/anycubic_serial.h b/Marlin/src/lcd/extui/lib/anycubic/anycubic_serial.h deleted file mode 100644 index ed4c19b63..000000000 --- a/Marlin/src/lcd/extui/lib/anycubic/anycubic_serial.h +++ /dev/null @@ -1,145 +0,0 @@ -/* - anycubic_serial.h --- Support for Anycubic i3 Mega TFT serial connection - Created by Christian Hopp on 09.12.17. - - Original file: - - HardwareSerial.h - Hardware serial library for Wiring - Copyright (c) 2006 Nicholas Zambetti. All right reserved. - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - Modified 28 September 2010 by Mark Sproul - Modified 14 August 2012 by Alarus -*/ -#pragma once - -#include -#include - -#include "Stream.h" - -#define FORCE_INLINE __attribute__((always_inline)) inline - -struct ring_buffer; - -class AnycubicSerialClass : public Stream { - private: - ring_buffer *_rx_buffer; - ring_buffer *_tx_buffer; - volatile uint8_t *_ubrrh; - volatile uint8_t *_ubrrl; - volatile uint8_t *_ucsra; - volatile uint8_t *_ucsrb; - volatile uint8_t *_ucsrc; - volatile uint8_t *_udr; - uint8_t _rxen; - uint8_t _txen; - uint8_t _rxcie; - uint8_t _udrie; - uint8_t _u2x; - bool transmitting; - public: - AnycubicSerialClass(ring_buffer *rx_buffer, ring_buffer *tx_buffer, - volatile uint8_t *ubrrh, volatile uint8_t *ubrrl, - volatile uint8_t *ucsra, volatile uint8_t *ucsrb, - volatile uint8_t *ucsrc, volatile uint8_t *udr, - uint8_t rxen, uint8_t txen, uint8_t rxcie, uint8_t udrie, uint8_t u2x - ); - void begin(unsigned long); - void begin(unsigned long, uint8_t); - void end(); - virtual int available(void); - virtual int peek(void); - virtual int read(void); - virtual void flush(void); - virtual size_t write(uint8_t); - inline size_t write(unsigned long n) { return write((uint8_t)n); } - inline size_t write(long n) { return write((uint8_t)n); } - inline size_t write(unsigned int n) { return write((uint8_t)n); } - inline size_t write(int n) { return write((uint8_t)n); } - using Print::write; // pull in write(str) and write(buf, size) from Print - operator bool(); -}; - -// Define config for Serial.begin(baud, config); -#define SERIAL_5N1 0x00 -#define SERIAL_6N1 0x02 -#define SERIAL_7N1 0x04 -#define SERIAL_8N1 0x06 -#define SERIAL_5N2 0x08 -#define SERIAL_6N2 0x0A -#define SERIAL_7N2 0x0C -#define SERIAL_8N2 0x0E -#define SERIAL_5E1 0x20 -#define SERIAL_6E1 0x22 -#define SERIAL_7E1 0x24 -#define SERIAL_8E1 0x26 -#define SERIAL_5E2 0x28 -#define SERIAL_6E2 0x2A -#define SERIAL_7E2 0x2C -#define SERIAL_8E2 0x2E -#define SERIAL_5O1 0x30 -#define SERIAL_6O1 0x32 -#define SERIAL_7O1 0x34 -#define SERIAL_8O1 0x36 -#define SERIAL_5O2 0x38 -#define SERIAL_6O2 0x3A -#define SERIAL_7O2 0x3C -#define SERIAL_8O2 0x3E - -extern void serialEventRun(void) __attribute__((weak)); - -#define ANYCUBIC_SERIAL_PROTOCOL(x) (AnycubicSerial.print(x)) -#define ANYCUBIC_SERIAL_PROTOCOL_F(x,y) (AnycubicSerial.print(x, y)) -#define ANYCUBIC_SERIAL_PROTOCOLPGM(x) (AnycubicSerialprintPGM(PSTR(x))) -#define ANYCUBIC_SERIAL_(x) (AnycubicSerial.print(x), AnycubicSerial.write('\n')) -#define ANYCUBIC_SERIAL_PROTOCOLLN(x) (AnycubicSerial.print(x), AnycubicSerial.write('\r'), AnycubicSerial.write('\n')) -#define ANYCUBIC_SERIAL_PROTOCOLLNPGM(x) (AnycubicSerialprintPGM(PSTR(x)), AnycubicSerial.write('\r'), AnycubicSerial.write('\n')) - -#define ANYCUBIC_SERIAL_START() (AnycubicSerial.write('\r'), AnycubicSerial.write('\n')) -#define ANYCUBIC_SERIAL_CMD_SEND(x) (AnycubicSerialprintPGM(PSTR(x)), AnycubicSerial.write('\r'), AnycubicSerial.write('\n')) -#define ANYCUBIC_SERIAL_ENTER() (AnycubicSerial.write('\r'), AnycubicSerial.write('\n')) -#define ANYCUBIC_SERIAL_SPACE() (AnycubicSerial.write(' ')) - -const char newErr[] PROGMEM = "ERR "; -const char newSucc[] PROGMEM = "OK"; - -#define ANYCUBIC_SERIAL_ERROR_START (AnycubicSerialprintPGM(newErr)) -#define ANYCUBIC_SERIAL_ERROR(x) ANYCUBIC_SERIAL_PROTOCOL(x) -#define ANYCUBIC_SERIAL_ERRORPGM(x) ANYCUBIC_SERIAL_PROTOCOLPGM(x) -#define ANYCUBIC_SERIAL_ERRORLN(x) ANYCUBIC_SERIAL_PROTOCOLLN(x) -#define ANYCUBIC_SERIAL_ERRORLNPGM(x) ANYCUBIC_SERIAL_PROTOCOLLNPGM(x) - -//##define ANYCUBIC_SERIAL_ECHO_START (AnycubicSerialprintPGM(newSucc)) -#define ANYCUBIC_SERIAL_ECHOLN(x) ANYCUBIC_SERIAL_PROTOCOLLN(x) -#define ANYCUBIC_SERIAL_SUCC_START (AnycubicSerialprintPGM(newSucc)) -#define ANYCUBIC_SERIAL_ECHOPAIR(name,value) (serial_echopair_P(PSTR(name),(value))) -#define ANYCUBIC_SERIAL_ECHOPGM(x) ANYCUBIC_SERIAL_PROTOCOLPGM(x) -#define ANYCUBIC_SERIAL_ECHO(x) ANYCUBIC_SERIAL_PROTOCOL(x) - -#ifdef UBRR3H - - extern AnycubicSerialClass AnycubicSerial; - - FORCE_INLINE void AnycubicSerialprintPGM(const char *str) { - char ch = pgm_read_byte(str); - while (ch) { - AnycubicSerial.write(ch); - ch = pgm_read_byte(++str); - } - } - -#endif diff --git a/Marlin/src/lcd/extui/lib/anycubic/anycubic_tft.cpp b/Marlin/src/lcd/extui/lib/anycubic_i3mega/anycubic_i3mega_lcd.cpp similarity index 75% rename from Marlin/src/lcd/extui/lib/anycubic/anycubic_tft.cpp rename to Marlin/src/lcd/extui/lib/anycubic_i3mega/anycubic_i3mega_lcd.cpp index 718b47fee..1c9b9299f 100644 --- a/Marlin/src/lcd/extui/lib/anycubic/anycubic_tft.cpp +++ b/Marlin/src/lcd/extui/lib/anycubic_i3mega/anycubic_i3mega_lcd.cpp @@ -1,5 +1,5 @@ /** - * anycubic_tft.cpp --- Support for Anycubic i3 Mega TFT + * anycubic_i3mega_lcd.cpp --- Support for Anycubic i3 Mega TFT * Created by Christian Hopp on 09.12.17. * Improved by David Ramiro * Converted to ext_iu by John BouAntoun 21 June 2020 @@ -21,15 +21,29 @@ #include "../../../../inc/MarlinConfigPre.h" -#if ENABLED(ANYCUBIC_TFT_MODEL) +#if ENABLED(ANYCUBIC_LCD_I3MEGA) -#include "anycubic_tft.h" -#include "anycubic_serial.h" +#include "anycubic_i3mega_lcd.h" #include "../../../../inc/MarlinConfig.h" #include "../../ui_api.h" #include "../../../../MarlinCore.h" // for quickstop_stepper and disable_steppers +// command sending macro's with debugging capability +#define SEND_PGM(x) send_P(PSTR(x)) +#define SENDLINE_PGM(x) sendLine_P(PSTR(x)) +#define SEND_PGM_VAL(x,y) (send_P(PSTR(x)), sendLine(itostr3(y))) +#define SEND(x) send(x) +#define SENDLINE(x) sendLine(x) +#if ENABLED(ANYCUBIC_LCD_DEBUG) + #define SENDLINE_DBG_PGM(x,y) (sendLine_P(PSTR(x)), SERIAL_ECHOLNPGM(y)) + #define SENDLINE_DBG_PGM_VAL(x,y,z) (sendLine_P(PSTR(x)), SERIAL_ECHOPGM(y), SERIAL_ECHOLN(z)) +#else + #define SENDLINE_DBG_PGM(x,y) sendLine_P(PSTR(x)) + #define SENDLINE_DBG_PGM_VAL(x,y,z) sendLine_P(PSTR(x)) +#endif + + AnycubicTFTClass AnycubicTFT; char _conv[8]; @@ -43,6 +57,30 @@ char *itostr2(const uint8_t &x) { return _conv; } +static void sendNewLine(void) { + ANYCUBIC_LCD_SERIAL.write('\r'); + ANYCUBIC_LCD_SERIAL.write('\n'); +} + +static void send(const char *str) { + ANYCUBIC_LCD_SERIAL.print(str); +} + +static void sendLine(const char *str) { + send(str); + sendNewLine(); +} + +static void send_P(PGM_P str) { + while (const char c = pgm_read_byte(str++)) + ANYCUBIC_LCD_SERIAL.write(c); +} + +static void sendLine_P(PGM_P str) { + send_P(str); + sendNewLine(); +} + #ifndef ULTRA_LCD #define DIGIT(n) ('0' + (n)) #define DIGIMOD(n, f) DIGIT((n) / (f) % 10) @@ -74,8 +112,8 @@ char *itostr2(const uint8_t &x) { AnycubicTFTClass::AnycubicTFTClass() {} void AnycubicTFTClass::OnSetup() { - AnycubicSerial.begin(115200); - ANYCUBIC_SENDCOMMAND_DBG_PGM("J17", "TFT Serial Debug: Main board reset... J17"); // J17 Main board reset + ANYCUBIC_LCD_SERIAL.begin(115200); + SENDLINE_DBG_PGM("J17", "TFT Serial Debug: Main board reset... J17"); // J17 Main board reset ExtUI::delay_ms(10); // initialise the state of the key pins running on the tft @@ -92,7 +130,7 @@ void AnycubicTFTClass::OnSetup() { mediaPauseState = AMPAUSESTATE_NOT_PAUSED; // DoSDCardStateCheck(); - ANYCUBIC_SENDCOMMAND_DBG_PGM("J12", "TFT Serial Debug: Ready... J12"); // J12 Ready + SENDLINE_DBG_PGM("J12", "TFT Serial Debug: Ready... J12"); // J12 Ready ExtUI::delay_ms(10); DoFilamentRunoutCheck(); @@ -101,7 +139,7 @@ void AnycubicTFTClass::OnSetup() { #if ENABLED(STARTUP_CHIME) ExtUI::injectCommands_P(PSTR("M300 P250 S554\nM300 P250 S554\nM300 P250 S740\nM300 P250 S554\nM300 P250 S740\nM300 P250 S554\nM300 P500 S831")); #endif - #if ENABLED(ANYCUBIC_TFT_DEBUG) + #if ENABLED(ANYCUBIC_LCD_DEBUG) SERIAL_ECHOLNPGM("TFT Serial Debug: Finished startup"); #endif } @@ -112,7 +150,7 @@ void AnycubicTFTClass::OnCommandScan() { if (ELAPSED(ms, nextStopCheck)) { nextStopCheck = ms + 1000UL; if (mediaPrintingState == AMPRINTSTATE_STOP_REQUESTED && IsNozzleHomed()) { - #if ENABLED(ANYCUBIC_TFT_DEBUG) + #if ENABLED(ANYCUBIC_LCD_DEBUG) SERIAL_ECHOLNPGM("TFT Serial Debug: Finished stopping print, releasing motors ..."); #endif mediaPrintingState = AMPRINTSTATE_NOT_PRINTING; @@ -120,7 +158,7 @@ void AnycubicTFTClass::OnCommandScan() { ExtUI::injectCommands_P(PSTR("M84\nM27")); // disable stepper motors and force report of SD status ExtUI::delay_ms(200); // tell printer to release resources of print to indicate it is done - ANYCUBIC_SENDCOMMAND_DBG_PGM("J14", "TFT Serial Debug: SD Print Stopped... J14"); + SENDLINE_DBG_PGM("J14", "TFT Serial Debug: SD Print Stopped... J14"); } } @@ -134,11 +172,11 @@ void AnycubicTFTClass::OnCommandScan() { } void AnycubicTFTClass::OnKillTFT() { - ANYCUBIC_SENDCOMMAND_DBG_PGM("J11", "TFT Serial Debug: Kill command... J11"); + SENDLINE_DBG_PGM("J11", "TFT Serial Debug: Kill command... J11"); } void AnycubicTFTClass::OnSDCardStateChange(bool isInserted) { - #if ENABLED(ANYCUBIC_TFT_DEBUG) + #if ENABLED(ANYCUBIC_LCD_DEBUG) SERIAL_ECHOPGM("TFT Serial Debug: OnSDCardStateChange event triggered..."); SERIAL_ECHO(itostr2(isInserted)); SERIAL_EOL(); @@ -147,21 +185,21 @@ void AnycubicTFTClass::OnSDCardStateChange(bool isInserted) { } void AnycubicTFTClass::OnSDCardError() { - #if ENABLED(ANYCUBIC_TFT_DEBUG) + #if ENABLED(ANYCUBIC_LCD_DEBUG) SERIAL_ECHOLNPGM("TFT Serial Debug: OnSDCardError event triggered..."); #endif - ANYCUBIC_SENDCOMMAND_DBG_PGM("J21", "TFT Serial Debug: On SD Card Error ... J21"); + SENDLINE_DBG_PGM("J21", "TFT Serial Debug: On SD Card Error ... J21"); } void AnycubicTFTClass::OnFilamentRunout() { - #if ENABLED(ANYCUBIC_TFT_DEBUG) + #if ENABLED(ANYCUBIC_LCD_DEBUG) SERIAL_ECHOLNPGM("TFT Serial Debug: FilamentRunout triggered..."); #endif DoFilamentRunoutCheck(); } void AnycubicTFTClass::OnUserConfirmRequired(const char * const msg) { - #if ENABLED(ANYCUBIC_TFT_DEBUG) + #if ENABLED(ANYCUBIC_LCD_DEBUG) SERIAL_ECHOPGM("TFT Serial Debug: OnUserConfirmRequired triggered... "); SERIAL_ECHOLN(msg); #endif @@ -181,36 +219,36 @@ void AnycubicTFTClass::OnUserConfirmRequired(const char * const msg) { mediaPrintingState = AMPRINTSTATE_PAUSED; mediaPauseState = AMPAUSESTATE_PARKED; // enable continue button - ANYCUBIC_SENDCOMMAND_DBG_PGM("J18", "TFT Serial Debug: UserConfirm SD print paused done... J18"); + SENDLINE_DBG_PGM("J18", "TFT Serial Debug: UserConfirm SD print paused done... J18"); } else if (strcmp_P(msg, PSTR("Load Filament")) == 0) { mediaPrintingState = AMPRINTSTATE_PAUSED; mediaPauseState = AMPAUSESTATE_FILAMENT_OUT; // enable continue button - ANYCUBIC_SENDCOMMAND_DBG_PGM("J18", "TFT Serial Debug: UserConfirm Filament is out... J18"); - ANYCUBIC_SENDCOMMAND_DBG_PGM("J23", "TFT Serial Debug: UserConfirm Blocking filament prompt... J23"); + SENDLINE_DBG_PGM("J18", "TFT Serial Debug: UserConfirm Filament is out... J18"); + SENDLINE_DBG_PGM("J23", "TFT Serial Debug: UserConfirm Blocking filament prompt... J23"); } else if (strcmp_P(msg, PSTR("Filament Purging...")) == 0) { mediaPrintingState = AMPRINTSTATE_PAUSED; mediaPauseState = AMPAUSESTATE_PARKING; // TODO: JBA I don't think J05 just disables the continue button, i think it injects a rogue M25. So taking this out // disable continue button - // ANYCUBIC_SENDCOMMAND_DBG_PGM("J05", "TFT Serial Debug: UserConfirm SD Filament Purging... J05"); // J05 printing pause + // SENDLINE_DBG_PGM("J05", "TFT Serial Debug: UserConfirm SD Filament Purging... J05"); // J05 printing pause // enable continue button - ANYCUBIC_SENDCOMMAND_DBG_PGM("J18", "TFT Serial Debug: UserConfirm Filament is purging... J18"); + SENDLINE_DBG_PGM("J18", "TFT Serial Debug: UserConfirm Filament is purging... J18"); } else if (strcmp_P(msg, PSTR("HeaterTimeout")) == 0) { mediaPrintingState = AMPRINTSTATE_PAUSED; mediaPauseState = AMPAUSESTATE_HEATER_TIMEOUT; // enable continue button - ANYCUBIC_SENDCOMMAND_DBG_PGM("J18", "TFT Serial Debug: UserConfirm SD Heater timeout... J18"); + SENDLINE_DBG_PGM("J18", "TFT Serial Debug: UserConfirm SD Heater timeout... J18"); } else if (strcmp_P(msg, PSTR("Reheat finished.")) == 0) { mediaPrintingState = AMPRINTSTATE_PAUSED; mediaPauseState = AMPAUSESTATE_REHEAT_FINISHED; // enable continue button - ANYCUBIC_SENDCOMMAND_DBG_PGM("J18", "TFT Serial Debug: UserConfirm SD Reheat done... J18"); + SENDLINE_DBG_PGM("J18", "TFT Serial Debug: UserConfirm SD Reheat done... J18"); } #endif } @@ -360,7 +398,7 @@ void AnycubicTFTClass::HandleSpecialMenu() { default: break; } - #if ENABLED(ANYCUBIC_TFT_DEBUG) + #if ENABLED(ANYCUBIC_LCD_DEBUG) } else { SERIAL_ECHOPGM("TFT Serial Debug: Attempted to HandleSpecialMenu on non-special menu... "); @@ -375,14 +413,13 @@ void AnycubicTFTClass::RenderCurrentFileList() { SelectedDirectory[0] = 0; SelectedFile[0] = 0; - ANYCUBIC_SERIAL_PROTOCOLPGM("FN "); // Filelist start - ANYCUBIC_SERIAL_ENTER(); + SENDLINE_PGM("FN "); // Filelist start if (!ExtUI::isMediaInserted() && !SpecialMenu) { - ANYCUBIC_SENDCOMMAND_DBG_PGM("J02", "TFT Serial Debug: No SD Card mounted to render Current File List... J02"); + SENDLINE_DBG_PGM("J02", "TFT Serial Debug: No SD Card mounted to render Current File List... J02"); - ANYCUBIC_SERIAL_PROTOCOLLNPGM(""); - ANYCUBIC_SERIAL_PROTOCOLLNPGM(""); + SENDLINE_PGM(""); + SENDLINE_PGM(""); } else { if (CodeSeen('S')) @@ -393,8 +430,7 @@ void AnycubicTFTClass::RenderCurrentFileList() { else RenderCurrentFolder(selectedNumber); } - ANYCUBIC_SERIAL_PROTOCOLPGM("END"); // Filelist stop - ANYCUBIC_SERIAL_ENTER(); + SENDLINE_PGM("END"); // Filelist stop #endif // SDSUPPORT } @@ -402,58 +438,58 @@ void AnycubicTFTClass::RenderSpecialMenu(uint16_t selectedNumber) { switch (selectedNumber) { #if ENABLED(PROBE_MANUALLY) case 0: // First Page - ANYCUBIC_SERIAL_PROTOCOLLNPGM("<01ZUp0.1>"); - ANYCUBIC_SERIAL_PROTOCOLLNPGM(""); - ANYCUBIC_SERIAL_PROTOCOLLNPGM("<02ZUp0.02>"); - ANYCUBIC_SERIAL_PROTOCOLLNPGM(""); - ANYCUBIC_SERIAL_PROTOCOLLNPGM("<03ZDn0.02>"); - ANYCUBIC_SERIAL_PROTOCOLLNPGM(""); - ANYCUBIC_SERIAL_PROTOCOLLNPGM("<04ZDn0.1>"); - ANYCUBIC_SERIAL_PROTOCOLLNPGM(""); + SENDLINE_PGM("<01ZUp0.1>"); + SENDLINE_PGM(""); + SENDLINE_PGM("<02ZUp0.02>"); + SENDLINE_PGM(""); + SENDLINE_PGM("<03ZDn0.02>"); + SENDLINE_PGM(""); + SENDLINE_PGM("<04ZDn0.1>"); + SENDLINE_PGM(""); break; case 4: // Second Page - ANYCUBIC_SERIAL_PROTOCOLLNPGM("<05PrehtBed>"); - ANYCUBIC_SERIAL_PROTOCOLLNPGM(""); - ANYCUBIC_SERIAL_PROTOCOLLNPGM("<06SMeshLvl>"); - ANYCUBIC_SERIAL_PROTOCOLLNPGM(""); - ANYCUBIC_SERIAL_PROTOCOLLNPGM("<07MeshNPnt>"); - ANYCUBIC_SERIAL_PROTOCOLLNPGM(""); - ANYCUBIC_SERIAL_PROTOCOLLNPGM("<08HtEndPID>"); - ANYCUBIC_SERIAL_PROTOCOLLNPGM(""); + SENDLINE_PGM("<05PrehtBed>"); + SENDLINE_PGM(""); + SENDLINE_PGM("<06SMeshLvl>"); + SENDLINE_PGM(""); + SENDLINE_PGM("<07MeshNPnt>"); + SENDLINE_PGM(""); + SENDLINE_PGM("<08HtEndPID>"); + SENDLINE_PGM(""); break; case 8: // Third Page - ANYCUBIC_SERIAL_PROTOCOLLNPGM("<09HtBedPID>"); - ANYCUBIC_SERIAL_PROTOCOLLNPGM(""); - ANYCUBIC_SERIAL_PROTOCOLLNPGM("<10FWDeflts>"); - ANYCUBIC_SERIAL_PROTOCOLLNPGM(""); - ANYCUBIC_SERIAL_PROTOCOLLNPGM("<11SvEEPROM>"); - ANYCUBIC_SERIAL_PROTOCOLLNPGM(""); - ANYCUBIC_SERIAL_PROTOCOLLNPGM(""); - ANYCUBIC_SERIAL_PROTOCOLLNPGM(""); + SENDLINE_PGM("<09HtBedPID>"); + SENDLINE_PGM(""); + SENDLINE_PGM("<10FWDeflts>"); + SENDLINE_PGM(""); + SENDLINE_PGM("<11SvEEPROM>"); + SENDLINE_PGM(""); + SENDLINE_PGM(""); + SENDLINE_PGM(""); break; #else case 0: // First Page - ANYCUBIC_SERIAL_PROTOCOLLNPGM("<01PrehtBed>"); - ANYCUBIC_SERIAL_PROTOCOLLNPGM(""); - ANYCUBIC_SERIAL_PROTOCOLLNPGM("<02ABL>"); - ANYCUBIC_SERIAL_PROTOCOLLNPGM(""); - ANYCUBIC_SERIAL_PROTOCOLLNPGM("<03HtEndPID>"); - ANYCUBIC_SERIAL_PROTOCOLLNPGM(""); - ANYCUBIC_SERIAL_PROTOCOLLNPGM("<04HtBedPID>"); - ANYCUBIC_SERIAL_PROTOCOLLNPGM(""); + SENDLINE_PGM("<01PrehtBed>"); + SENDLINE_PGM(""); + SENDLINE_PGM("<02ABL>"); + SENDLINE_PGM(""); + SENDLINE_PGM("<03HtEndPID>"); + SENDLINE_PGM(""); + SENDLINE_PGM("<04HtBedPID>"); + SENDLINE_PGM(""); break; case 4: // Second Page - ANYCUBIC_SERIAL_PROTOCOLLNPGM("<05FWDeflts>"); - ANYCUBIC_SERIAL_PROTOCOLLNPGM(""); - ANYCUBIC_SERIAL_PROTOCOLLNPGM("<06SvEEPROM>"); - ANYCUBIC_SERIAL_PROTOCOLLNPGM(""); - ANYCUBIC_SERIAL_PROTOCOLLNPGM("<07SendM108>"); - ANYCUBIC_SERIAL_PROTOCOLLNPGM(""); - ANYCUBIC_SERIAL_PROTOCOLLNPGM(""); - ANYCUBIC_SERIAL_PROTOCOLLNPGM(""); + SENDLINE_PGM("<05FWDeflts>"); + SENDLINE_PGM(""); + SENDLINE_PGM("<06SvEEPROM>"); + SENDLINE_PGM(""); + SENDLINE_PGM("<07SendM108>"); + SENDLINE_PGM(""); + SENDLINE_PGM(""); + SENDLINE_PGM(""); break; #endif // PROBE_MANUALLY @@ -477,30 +513,30 @@ void AnycubicTFTClass::RenderCurrentFolder(uint16_t selectedNumber) { for (cnt = selectedNumber; cnt <= max_files; cnt++) { if (cnt == 0) { // Special Entry if (currentFileList.isAtRootDir()) { - ANYCUBIC_SERIAL_PROTOCOLLNPGM(""); - ANYCUBIC_SERIAL_PROTOCOLLNPGM(""); + SENDLINE_PGM(""); + SENDLINE_PGM(""); } else { - ANYCUBIC_SERIAL_PROTOCOLLNPGM("/.."); - ANYCUBIC_SERIAL_PROTOCOLLNPGM("/.."); + SENDLINE_PGM("/.."); + SENDLINE_PGM("/.."); } } else { currentFileList.seek(cnt - 1, false); - #if ENABLED(ANYCUBIC_TFT_DEBUG) + #if ENABLED(ANYCUBIC_LCD_DEBUG) SERIAL_ECHOLN(currentFileList.filename()); #endif if (currentFileList.isDir()) { - ANYCUBIC_SERIAL_PROTOCOLPGM("/"); - ANYCUBIC_SERIAL_PROTOCOLLN(currentFileList.shortFilename()); - ANYCUBIC_SERIAL_PROTOCOLPGM("/"); - ANYCUBIC_SERIAL_PROTOCOLLN(currentFileList.longFilename()); + SEND_PGM("/"); + SENDLINE(currentFileList.shortFilename()); + SEND_PGM("/"); + SENDLINE(currentFileList.longFilename()); } else { - ANYCUBIC_SERIAL_PROTOCOLLN(currentFileList.shortFilename()); - ANYCUBIC_SERIAL_PROTOCOLLN(currentFileList.longFilename()); + SENDLINE(currentFileList.shortFilename()); + SENDLINE(currentFileList.longFilename()); } } } @@ -509,7 +545,7 @@ void AnycubicTFTClass::RenderCurrentFolder(uint16_t selectedNumber) { void AnycubicTFTClass::OnPrintTimerStarted() { #if ENABLED(SDSUPPORT) if (mediaPrintingState == AMPRINTSTATE_PRINTING) - ANYCUBIC_SENDCOMMAND_DBG_PGM("J04", "TFT Serial Debug: Starting SD Print... J04"); // J04 Starting Print + SENDLINE_DBG_PGM("J04", "TFT Serial Debug: Starting SD Print... J04"); // J04 Starting Print #endif } @@ -528,7 +564,7 @@ void AnycubicTFTClass::OnPrintTimerStopped() { if (mediaPrintingState == AMPRINTSTATE_PRINTING) { mediaPrintingState = AMPRINTSTATE_NOT_PRINTING; mediaPauseState = AMPAUSESTATE_NOT_PAUSED; - ANYCUBIC_SENDCOMMAND_DBG_PGM("J14", "TFT Serial Debug: SD Print Completed... J14"); + SENDLINE_DBG_PGM("J14", "TFT Serial Debug: SD Print Completed... J14"); } // otherwise it was stopped by the printer so don't send print completed signal to TFT #endif @@ -536,8 +572,8 @@ void AnycubicTFTClass::OnPrintTimerStopped() { void AnycubicTFTClass::GetCommandFromTFT() { char *starpos = NULL; - while (AnycubicSerial.available() > 0 && TFTbuflen < TFTBUFSIZE) { - serial3_char = AnycubicSerial.read(); + while (ANYCUBIC_LCD_SERIAL.available() > 0 && TFTbuflen < TFTBUFSIZE) { + serial3_char = ANYCUBIC_LCD_SERIAL.read(); if (serial3_char == '\n' || serial3_char == '\r' || serial3_char == ':' || @@ -553,7 +589,7 @@ void AnycubicTFTClass::GetCommandFromTFT() { TFTstrchr_pointer = strchr(TFTcmdbuffer[TFTbufindw], 'A'); a_command = ((int)((strtod(&TFTcmdbuffer[TFTbufindw][TFTstrchr_pointer - TFTcmdbuffer[TFTbufindw] + 1], NULL)))); - #if ENABLED(ANYCUBIC_TFT_DEBUG) + #if ENABLED(ANYCUBIC_LCD_DEBUG) if ((a_command > 7) && (a_command != 20)) { // No debugging of status polls, please! SERIAL_ECHOPGM("TFT Serial Command: "); SERIAL_ECHOLN(TFTcmdbuffer[TFTbufindw]); @@ -563,25 +599,25 @@ void AnycubicTFTClass::GetCommandFromTFT() { switch (a_command) { case 0: { // A0 GET HOTEND TEMP float hotendActualTemp = ExtUI::getActualTemp_celsius((ExtUI::extruder_t) (ExtUI::extruder_t) ExtUI::E0); - ANYCUBIC_SENDCOMMANDPGM_VAL("A0V ", int(hotendActualTemp + 0.5)); + SEND_PGM_VAL("A0V ", int(hotendActualTemp + 0.5)); } break; case 1: { // A1 GET HOTEND TARGET TEMP float hotendTargetTemp = ExtUI::getTargetTemp_celsius((ExtUI::extruder_t) (ExtUI::extruder_t) ExtUI::E0); - ANYCUBIC_SENDCOMMANDPGM_VAL("A1V ", int(hotendTargetTemp + 0.5)); + SEND_PGM_VAL("A1V ", int(hotendTargetTemp + 0.5)); } break; case 2: { // A2 GET HOTBED TEMP float heatedBedActualTemp = ExtUI::getActualTemp_celsius((ExtUI::heater_t) ExtUI::BED); - ANYCUBIC_SENDCOMMANDPGM_VAL("A2V ", int(heatedBedActualTemp + 0.5)); + SEND_PGM_VAL("A2V ", int(heatedBedActualTemp + 0.5)); } break; case 3: { // A3 GET HOTBED TARGET TEMP float heatedBedTargetTemp = ExtUI::getTargetTemp_celsius((ExtUI::heater_t) ExtUI::BED); - ANYCUBIC_SENDCOMMANDPGM_VAL("A3V ", int(heatedBedTargetTemp + 0.5)); + SEND_PGM_VAL("A3V ", int(heatedBedTargetTemp + 0.5)); } break; @@ -589,7 +625,7 @@ void AnycubicTFTClass::GetCommandFromTFT() { { float fanPercent = ExtUI::getActualFan_percent(ExtUI::FAN0); fanPercent = constrain(fanPercent, 0, 100); - ANYCUBIC_SENDCOMMANDPGM_VAL("A4V ", int(fanPercent)); + SEND_PGM_VAL("A4V ", int(fanPercent)); } break; @@ -598,58 +634,46 @@ void AnycubicTFTClass::GetCommandFromTFT() { float xPostition = ExtUI::getAxisPosition_mm(ExtUI::X); float yPostition = ExtUI::getAxisPosition_mm(ExtUI::Y); float zPostition = ExtUI::getAxisPosition_mm(ExtUI::Z); - ANYCUBIC_SERIAL_PROTOCOLPGM("A5V"); - ANYCUBIC_SERIAL_SPACE(); - ANYCUBIC_SERIAL_PROTOCOLPGM("X: "); - ANYCUBIC_SERIAL_PROTOCOL(xPostition); - ANYCUBIC_SERIAL_SPACE(); - ANYCUBIC_SERIAL_PROTOCOLPGM("Y: "); - ANYCUBIC_SERIAL_PROTOCOL(yPostition); - ANYCUBIC_SERIAL_SPACE(); - ANYCUBIC_SERIAL_PROTOCOLPGM("Z: "); - ANYCUBIC_SERIAL_PROTOCOL(zPostition); - ANYCUBIC_SERIAL_SPACE(); - ANYCUBIC_SERIAL_ENTER(); + SEND_PGM("A5V X: "); + ANYCUBIC_LCD_SERIAL.print(xPostition); + SEND_PGM(" Y: "); + ANYCUBIC_LCD_SERIAL.print(yPostition); + SEND_PGM(" Z: "); + ANYCUBIC_LCD_SERIAL.print(zPostition); + SENDLINE_PGM(""); } break; case 6: // A6 GET SD CARD PRINTING STATUS #if ENABLED(SDSUPPORT) if (ExtUI::isPrintingFromMedia()) { - ANYCUBIC_SERIAL_PROTOCOLPGM("A6V "); + SEND_PGM("A6V "); if (ExtUI::isMediaInserted()) { - ANYCUBIC_SERIAL_PROTOCOL(itostr3(int(ExtUI::getProgress_percent()))); - ANYCUBIC_SERIAL_ENTER(); + SENDLINE(itostr3(int(ExtUI::getProgress_percent()))); } else { - ANYCUBIC_SENDCOMMAND_DBG_PGM("J02", "TFT Serial Debug: No SD Card mounted to return printing status... J02"); + SENDLINE_DBG_PGM("J02", "TFT Serial Debug: No SD Card mounted to return printing status... J02"); } } else { - ANYCUBIC_SERIAL_PROTOCOLPGM("A6V ---"); - ANYCUBIC_SERIAL_ENTER(); + SENDLINE_PGM("A6V ---"); } #endif break; case 7: { // A7 GET PRINTING TIME uint32_t elapsedSeconds = ExtUI::getProgress_seconds_elapsed(); - ANYCUBIC_SERIAL_PROTOCOLPGM("A7V "); + SEND_PGM("A7V "); if (elapsedSeconds != 0) { // print time uint32_t elapsedMinutes = elapsedSeconds / 60; - ANYCUBIC_SERIAL_PROTOCOL(itostr2(elapsedMinutes / 60)); - ANYCUBIC_SERIAL_SPACE(); - ANYCUBIC_SERIAL_PROTOCOLPGM("H"); - ANYCUBIC_SERIAL_SPACE(); - ANYCUBIC_SERIAL_PROTOCOL(itostr2(elapsedMinutes % 60)); - ANYCUBIC_SERIAL_SPACE(); - ANYCUBIC_SERIAL_PROTOCOLPGM("M"); + SEND(itostr2(elapsedMinutes / 60)); + SEND_PGM(" H "); + SEND(itostr2(elapsedMinutes % 60)); + SENDLINE_PGM(" M"); } else { - ANYCUBIC_SERIAL_SPACE(); - ANYCUBIC_SERIAL_PROTOCOLPGM("999:999"); + SENDLINE_PGM(" 999:999"); } - ANYCUBIC_SERIAL_ENTER(); } break; @@ -693,15 +717,15 @@ void AnycubicTFTClass::GetCommandFromTFT() { if (TFTstrchr_pointer[4] == '/') { strcpy(SelectedDirectory, TFTstrchr_pointer + 5); SelectedFile[0] = 0; - ANYCUBIC_SENDCOMMAND_DBG_PGM("J21", "TFT Serial Debug: Clear file selection... J21 "); // J21 Not File Selected - ANYCUBIC_SERIAL_ENTER(); + SENDLINE_DBG_PGM("J21", "TFT Serial Debug: Clear file selection... J21 "); // J21 Not File Selected + SENDLINE_PGM(""); } else if (TFTstrchr_pointer[4] == '<') { strcpy(SelectedDirectory, TFTstrchr_pointer + 4); SpecialMenu = true; SelectedFile[0] = 0; - ANYCUBIC_SENDCOMMAND_DBG_PGM("J21", "TFT Serial Debug: Clear file selection... J21 "); // J21 Not File Selected - ANYCUBIC_SERIAL_ENTER(); + SENDLINE_DBG_PGM("J21", "TFT Serial Debug: Clear file selection... J21 "); // J21 Not File Selected + SENDLINE_PGM(""); } else { SelectedDirectory[0] = 0; @@ -710,7 +734,7 @@ void AnycubicTFTClass::GetCommandFromTFT() { *(starpos - 1) = '\0'; strcpy(SelectedFile, TFTstrchr_pointer + 4); - ANYCUBIC_SENDCOMMAND_DBG_PGM_VAL("J20", "TFT Serial Debug: File Selected... J20 ", SelectedFile); // J20 File Selected + SENDLINE_DBG_PGM_VAL("J20", "TFT Serial Debug: File Selected... J20 ", SelectedFile); // J20 File Selected } } #endif @@ -766,7 +790,7 @@ void AnycubicTFTClass::GetCommandFromTFT() { } ExtUI::setTargetFan_percent(fanPercent, ExtUI::FAN0); - ANYCUBIC_SERIAL_ENTER(); + SENDLINE_PGM(""); } break; @@ -776,7 +800,7 @@ void AnycubicTFTClass::GetCommandFromTFT() { disable_all_steppers(); } - ANYCUBIC_SERIAL_ENTER(); + SENDLINE_PGM(""); break; case 20: { // A20 read printing speed @@ -785,7 +809,7 @@ void AnycubicTFTClass::GetCommandFromTFT() { if (CodeSeen('S')) feedrate_percentage = constrain(CodeValue(), 40, 999); else - ANYCUBIC_SENDCOMMANDPGM_VAL("A20V ", feedrate_percentage); + SEND_PGM_VAL("A20V ", feedrate_percentage); } break; @@ -855,14 +879,14 @@ void AnycubicTFTClass::GetCommandFromTFT() { if (strlen(commandStr) > 0) { sprintf_P(fullCommandStr, PSTR("G91\n%s\nG90"), commandStr); - #if ENABLED(ANYCUBIC_TFT_DEBUG) + #if ENABLED(ANYCUBIC_LCD_DEBUG) SERIAL_ECHOPGM("TFT Serial Debug: A22 Move final request with gcode... "); SERIAL_ECHOLN(fullCommandStr); #endif ExtUI::injectCommands(fullCommandStr); } } - ANYCUBIC_SERIAL_ENTER(); + SENDLINE_PGM(""); break; case 23: // A23 preheat pla @@ -872,8 +896,7 @@ void AnycubicTFTClass::GetCommandFromTFT() { ExtUI::setTargetTemp_celsius(PREHEAT_1_TEMP_BED, (ExtUI::heater_t) ExtUI::BED); ExtUI::setTargetTemp_celsius(PREHEAT_1_TEMP_HOTEND, (ExtUI::extruder_t) ExtUI::E0); - ANYCUBIC_SERIAL_SUCC_START; - ANYCUBIC_SERIAL_ENTER(); + SENDLINE_PGM("OK"); } break; @@ -884,8 +907,7 @@ void AnycubicTFTClass::GetCommandFromTFT() { ExtUI::setTargetTemp_celsius(PREHEAT_2_TEMP_BED, (ExtUI::heater_t) ExtUI::BED); ExtUI::setTargetTemp_celsius(PREHEAT_2_TEMP_HOTEND, (ExtUI::extruder_t) ExtUI::E0); - ANYCUBIC_SERIAL_SUCC_START; - ANYCUBIC_SERIAL_ENTER(); + SENDLINE_PGM("OK"); } break; @@ -894,7 +916,7 @@ void AnycubicTFTClass::GetCommandFromTFT() { ExtUI::setTargetTemp_celsius(0, (ExtUI::heater_t) ExtUI::BED); ExtUI::setTargetTemp_celsius(0, (ExtUI::extruder_t) ExtUI::E0); - ANYCUBIC_SENDCOMMAND_DBG_PGM("J12", "TFT Serial Debug: Cooling down... J12"); // J12 cool down + SENDLINE_DBG_PGM("J12", "TFT Serial Debug: Cooling down... J12"); // J12 cool down } break; @@ -915,7 +937,7 @@ void AnycubicTFTClass::GetCommandFromTFT() { } } else { - ANYCUBIC_SENDCOMMAND_DBG_PGM("J02", "TFT Serial Debug: No SD Card mounted to refresh SD A26... J02"); + SENDLINE_DBG_PGM("J02", "TFT Serial Debug: No SD Card mounted to refresh SD A26... J02"); } SelectedDirectory[0] = 0; @@ -931,13 +953,12 @@ void AnycubicTFTClass::GetCommandFromTFT() { NOOP; else if (CodeSeen('C')) NOOP; - ANYCUBIC_SERIAL_ENTER(); + SENDLINE_PGM(""); break; case 33: // A33 get version info - ANYCUBIC_SERIAL_PROTOCOLPGM("J33 "); - ANYCUBIC_SERIAL_PROTOCOLPGM(DETAILED_BUILD_VERSION); - ANYCUBIC_SERIAL_ENTER(); + SEND_PGM("J33 "); + SENDLINE_PGM(DETAILED_BUILD_VERSION); break; default: @@ -959,9 +980,9 @@ void AnycubicTFTClass::DoSDCardStateCheck() { #if ENABLED(SDSUPPORT) && PIN_EXISTS(SD_DETECT) bool isInserted = ExtUI::isMediaInserted(); if (isInserted) - ANYCUBIC_SENDCOMMAND_DBG_PGM("J00", "TFT Serial Debug: SD card state changed... isInserted"); + SENDLINE_DBG_PGM("J00", "TFT Serial Debug: SD card state changed... isInserted"); else - ANYCUBIC_SENDCOMMAND_DBG_PGM("J01", "TFT Serial Debug: SD card state changed... !isInserted"); + SENDLINE_DBG_PGM("J01", "TFT Serial Debug: SD card state changed... !isInserted"); #endif } @@ -976,10 +997,10 @@ void AnycubicTFTClass::DoFilamentRunoutCheck() { ExtUI::injectCommands_P(PSTR("\nM300 P200 S1567\nM300 P200 S1174\nM300 P200 S1567\nM300 P200 S1174\nM300 P2000 S1567")); // tell the user that the filament has run out and wait - ANYCUBIC_SENDCOMMAND_DBG_PGM("J23", "TFT Serial Debug: Blocking filament prompt... J23"); + SENDLINE_DBG_PGM("J23", "TFT Serial Debug: Blocking filament prompt... J23"); } else { - ANYCUBIC_SENDCOMMAND_DBG_PGM("J15", "TFT Serial Debug: Non blocking filament runout... J15"); + SENDLINE_DBG_PGM("J15", "TFT Serial Debug: Non blocking filament runout... J15"); } } #endif // FILAMENT_RUNOUT_SENSOR @@ -988,7 +1009,7 @@ void AnycubicTFTClass::DoFilamentRunoutCheck() { void AnycubicTFTClass::StartPrint() { #if ENABLED(SDSUPPORT) if (!ExtUI::isPrinting() && strlen(SelectedFile) > 0) { - #if ENABLED(ANYCUBIC_TFT_DEBUG) + #if ENABLED(ANYCUBIC_LCD_DEBUG) SERIAL_ECHOPGM("TFT Serial Debug: About to print file ... "); SERIAL_ECHO(ExtUI::isPrinting()); SERIAL_ECHOPGM(" "); @@ -1006,7 +1027,7 @@ void AnycubicTFTClass::PausePrint() { if (ExtUI::isPrintingFromMedia() && mediaPrintingState != AMPRINTSTATE_STOP_REQUESTED && mediaPauseState == AMPAUSESTATE_NOT_PAUSED) { mediaPrintingState = AMPRINTSTATE_PAUSE_REQUESTED; mediaPauseState = AMPAUSESTATE_NOT_PAUSED; // need the userconfirm method to update pause state - ANYCUBIC_SENDCOMMAND_DBG_PGM("J05", "TFT Serial Debug: SD print pause started... J05"); // J05 printing pause + SENDLINE_DBG_PGM("J05", "TFT Serial Debug: SD print pause started... J05"); // J05 printing pause // for some reason pausing the print doesn't retract the extruder so force a manual one here ExtUI::injectCommands_P(PSTR("G91\nG1 E-2 F1800\nG90")); @@ -1019,7 +1040,7 @@ void AnycubicTFTClass::ResumePrint() { #if ENABLED(SDSUPPORT) #if ENABLED(FILAMENT_RUNOUT_SENSOR) if (READ(FIL_RUNOUT_PIN)) { - #if ENABLED(ANYCUBIC_TFT_DEBUG) + #if ENABLED(ANYCUBIC_LCD_DEBUG) SERIAL_ECHOLNPGM("TFT Serial Debug: Resume Print with filament sensor still tripped... "); #endif @@ -1027,7 +1048,7 @@ void AnycubicTFTClass::ResumePrint() { DoFilamentRunoutCheck(); // re-enable the continue button - ANYCUBIC_SENDCOMMAND_DBG_PGM("J18", "TFT Serial Debug: Resume Print with filament sensor still tripped... J18"); + SENDLINE_DBG_PGM("J18", "TFT Serial Debug: Resume Print with filament sensor still tripped... J18"); return; } #endif @@ -1036,7 +1057,7 @@ void AnycubicTFTClass::ResumePrint() { mediaPauseState = AMPAUSESTATE_REHEATING; // TODO: JBA I don't think J05 just disables the continue button, i think it injects a rogue M25. So taking this out // // disable the continue button - // ANYCUBIC_SENDCOMMAND_DBG_PGM("J05", "TFT Serial Debug: Resume called with heater timeout... J05"); // J05 printing pause + // SENDLINE_DBG_PGM("J05", "TFT Serial Debug: Resume called with heater timeout... J05"); // J05 printing pause // reheat the nozzle ExtUI::setUserConfirmed(); @@ -1045,7 +1066,7 @@ void AnycubicTFTClass::ResumePrint() { mediaPrintingState = AMPRINTSTATE_PRINTING; mediaPauseState = AMPAUSESTATE_NOT_PAUSED; - ANYCUBIC_SENDCOMMAND_DBG_PGM("J04", "TFT Serial Debug: SD print resumed... J04"); // J04 printing form sd card now + SENDLINE_DBG_PGM("J04", "TFT Serial Debug: SD print resumed... J04"); // J04 printing form sd card now ExtUI::resumePrint(); } #endif @@ -1055,7 +1076,7 @@ void AnycubicTFTClass::StopPrint() { #if ENABLED(SDSUPPORT) mediaPrintingState = AMPRINTSTATE_STOP_REQUESTED; mediaPauseState = AMPAUSESTATE_NOT_PAUSED; - ANYCUBIC_SENDCOMMAND_DBG_PGM("J16", "TFT Serial Debug: SD print stop called... J16"); + SENDLINE_DBG_PGM("J16", "TFT Serial Debug: SD print stop called... J16"); // for some reason stopping the print doesn't retract the extruder so force a manual one here ExtUI::injectCommands_P(PSTR("G91\nG1 E-2 F1800\nG90")); @@ -1063,4 +1084,4 @@ void AnycubicTFTClass::StopPrint() { #endif } -#endif // ANYCUBIC_TFT_MODEL +#endif // ANYCUBIC_LCD_I3MEGA diff --git a/Marlin/src/lcd/extui/lib/anycubic/anycubic_tft.h b/Marlin/src/lcd/extui/lib/anycubic_i3mega/anycubic_i3mega_lcd.h similarity index 77% rename from Marlin/src/lcd/extui/lib/anycubic/anycubic_tft.h rename to Marlin/src/lcd/extui/lib/anycubic_i3mega/anycubic_i3mega_lcd.h index 324dfd213..ee011f1df 100644 --- a/Marlin/src/lcd/extui/lib/anycubic/anycubic_tft.h +++ b/Marlin/src/lcd/extui/lib/anycubic_i3mega/anycubic_i3mega_lcd.h @@ -1,5 +1,5 @@ /** - * anycubic_tft.h --- Support for Anycubic i3 Mega TFT + * anycubic_i3mega_lcd.h --- Support for Anycubic i3 Mega TFT * Created by Christian Hopp on 09.12.17. * Improved by David Ramiro * Converted to ext_iu by John BouAntoun 21 June 2020 @@ -23,18 +23,6 @@ #include "../../../../inc/MarlinConfigPre.h" #include "../../../../sd/SdFatConfig.h" // for the FILENAME_LENGTH macro -// command sending macro's with debugging capability -#define ANYCUBIC_SENDCOMMANDPGM(x) ANYCUBIC_SERIAL_PROTOCOLLNPGM(x) -#define ANYCUBIC_SENDCOMMANDPGM_VAL(x,y) (ANYCUBIC_SERIAL_PROTOCOLPGM(x), ANYCUBIC_SERIAL_PROTOCOLLN(itostr3(y))) -#define ANYCUBIC_SENDCOMMAND(x) ANYCUBIC_SERIAL_PROTOCOLLN(x) -#if ENABLED(ANYCUBIC_TFT_DEBUG) - #define ANYCUBIC_SENDCOMMAND_DBG_PGM(x,y) (ANYCUBIC_SERIAL_PROTOCOLLNPGM(x), SERIAL_ECHOLNPGM(y)) - #define ANYCUBIC_SENDCOMMAND_DBG_PGM_VAL(x,y,z) (ANYCUBIC_SERIAL_PROTOCOLLNPGM(x), SERIAL_ECHOPGM(y), SERIAL_ECHOLN(z)) -#else - #define ANYCUBIC_SENDCOMMAND_DBG_PGM(x,y) (ANYCUBIC_SERIAL_PROTOCOLLNPGM(x)) - #define ANYCUBIC_SENDCOMMAND_DBG_PGM_VAL(x,y,z) (ANYCUBIC_SERIAL_PROTOCOLLNPGM(x)) -#endif - char *itostr2(const uint8_t &x); #ifndef ULTRA_LCD char *itostr3(const int); diff --git a/Marlin/src/lcd/extui/ui_api.cpp b/Marlin/src/lcd/extui/ui_api.cpp index b5dbb11a0..451aa1f12 100644 --- a/Marlin/src/lcd/extui/ui_api.cpp +++ b/Marlin/src/lcd/extui/ui_api.cpp @@ -304,7 +304,7 @@ namespace ExtUI { return epos; } - void setAxisPosition_mm(const float position, const axis_t axis) { + void setAxisPosition_mm(const float position, const axis_t axis, const feedRate_t feedrate/*=0*/) { // Start with no limits to movement float min = current_position[axis] - 1000, max = current_position[axis] + 1000; @@ -337,14 +337,14 @@ namespace ExtUI { #endif current_position[axis] = constrain(position, min, max); - line_to_current_position(manual_feedrate_mm_s[axis]); + line_to_current_position(feedrate ?: manual_feedrate_mm_s[axis]); } - void setAxisPosition_mm(const float position, const extruder_t extruder) { + void setAxisPosition_mm(const float position, const extruder_t extruder, const feedRate_t feedrate/*=0*/) { setActiveTool(extruder, true); current_position.e = position; - line_to_current_position(manual_feedrate_mm_s.e); + line_to_current_position(feedrate ?: manual_feedrate_mm_s.e); } void setActiveTool(const extruder_t extruder, bool no_move) { diff --git a/Marlin/src/lcd/extui/ui_api.h b/Marlin/src/lcd/extui/ui_api.h index ae6f31d43..ca12d79a8 100644 --- a/Marlin/src/lcd/extui/ui_api.h +++ b/Marlin/src/lcd/extui/ui_api.h @@ -164,8 +164,8 @@ namespace ExtUI { void setTargetTemp_celsius(const float, const heater_t); void setTargetTemp_celsius(const float, const extruder_t); void setTargetFan_percent(const float, const fan_t); - void setAxisPosition_mm(const float, const axis_t); - void setAxisPosition_mm(const float, const extruder_t); + void setAxisPosition_mm(const float, const axis_t, const feedRate_t=0); + void setAxisPosition_mm(const float, const extruder_t, const feedRate_t=0); void setAxisSteps_per_mm(const float, const axis_t); void setAxisSteps_per_mm(const float, const extruder_t); void setAxisMaxFeedrate_mm_s(const feedRate_t, const axis_t); diff --git a/Marlin/src/lcd/extui_anycubic_chiron_lcd.cpp b/Marlin/src/lcd/extui_anycubic_chiron_lcd.cpp new file mode 100644 index 000000000..9d00db335 --- /dev/null +++ b/Marlin/src/lcd/extui_anycubic_chiron_lcd.cpp @@ -0,0 +1,536 @@ +/** + * Marlin 3D Printer Firmware + * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin] + * + * Based on Sprinter and grbl. + * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + */ + +/** + * extui_anycubic_chiron_lcd.cpp + * + * Anycubic Chiron TFT support for Marlin + */ + +#include "../inc/MarlinConfigPre.h" + +#if ENABLED(ANYCUBIC_LCD_CHIRON) + +#include "extui/ui_api.h" + +#if ENABLED(AUTO_BED_LEVELING_BILINEAR) + #if GRID_MAX_POINTS_X != 5 || GRID_MAX_POINTS_Y != 5 + #error ANYCUBIC CHIRON LCD requires a 5x5 bed leveling grid (GRID_MAX_POINTS_X and GRID_MAX_POINTS_Y) + #endif +#else + #error ANYCUBIC CHIRON LCD requires AUTO_BED_LEVELING_BILINEAR enabled +#endif + +#if DISABLED(FILAMENT_RUNOUT_SENSOR) + #error ANYCUBIC CHIRON LCD requires FILAMENT_RUNOUT_SENSOR enabled +#endif + +#if ENABLED(POWER_LOSS_RECOVERY) + #error ANYCUBIC CHIRON LCD does not currently support POWER_LOSS_RECOVERY +#endif + +static bool is_auto_leveling = false; +static bool is_printing_from_sd = false; +static bool is_out_of_filament = false; + +static void sendNewLine(void) { + ANYCUBIC_LCD_SERIAL.write('\r'); + ANYCUBIC_LCD_SERIAL.write('\n'); +} + +static void send(const char *str) { + ANYCUBIC_LCD_SERIAL.print(str); +} + +static void sendLine(const char *str) { + send(str); + sendNewLine(); +} + +static void send_P(PGM_P str) { + while (const char c = pgm_read_byte(str++)) + ANYCUBIC_LCD_SERIAL.write(c); +} + +static void sendLine_P(PGM_P str) { + send_P(str); + sendNewLine(); +} + +static void sendValue_P(PGM_P prefix, int value) { + send_P(prefix); + ANYCUBIC_LCD_SERIAL.print(value); +} + +static void sendValue_P(PGM_P prefix, float value) { + send_P(prefix); + ANYCUBIC_LCD_SERIAL.print(value); +} + +static void sendValueLine_P(PGM_P prefix, int value) { + send_P(prefix); + ANYCUBIC_LCD_SERIAL.print(value); + sendNewLine(); +} + +static void sendValueLine_P(PGM_P prefix, float value) { + send_P(prefix); + ANYCUBIC_LCD_SERIAL.print(value); + sendNewLine(); +} + +static int parseIntArgument(const char *buffer, char letterId) { + char *p = strchr(buffer, letterId); + if (!p) + return -1; + return atoi(p+1); +} + +static float parseFloatArgument(const char *buffer, char letterId) { + char *p = strchr(buffer, letterId); + if (!p) + return NAN; + return strtof(p+1, nullptr); +} + +static int mmToHundredths(float x) { + // Round + if (x >= 0) + x += 0.005f; + else + x -= 0.005f; + return (int)(x * 100.0f); +} + +static float hundredthsToMm(int x) { + return x / 100.0f; +} + +#define SEND_PGM(str) send_P(PSTR(str)) +#define SENDLINE_PGM(str) sendLine_P(PSTR(str)) +#define SENDVALUE_PGM(prefix, value) sendValue_P(PSTR(prefix), value) +#define SENDVALUELINE_PGM(prefix, value) sendValueLine_P(PSTR(prefix), value) + +namespace ExtUI { + + static void moveAxis(float delta, feedRate_t feedrate, axis_t axis) { + float pos = getAxisPosition_mm(axis); + pos += delta; + setAxisPosition_mm(pos, axis, feedrate); + } + + static void handleCmd(const char *rx) { + static FileList fileList; + static char selectedFileShortName[8+1+3+1]; + + if (rx[0] != 'A') { + SERIAL_ECHOPGM("Unexpected RX: "); + SERIAL_ECHOLN(rx); + + return; + } + + const int cmd = atoi(&rx[1]); + + // Uncomment for debugging RX + //if (cmd > 7 && cmd != 20) { + // SERIAL_ECHOPGM("RX: "); + // SERIAL_ECHOLN(rx); + //} + + switch (cmd) { + case 0: // Get Hotend Actual Temperature + SENDVALUELINE_PGM("A0V ", (int)getActualTemp_celsius(E0)); + break; + case 1: // Get Hotend Target Temperature + SENDVALUELINE_PGM("A1V ", (int)getTargetTemp_celsius(E0)); + break; + case 2: // Get Bed Actual Temperature + SENDVALUELINE_PGM("A2V ", (int)getActualTemp_celsius(BED)); + break; + case 3: // Get Bed Target Temperature + SENDVALUELINE_PGM("A3V ", (int)getTargetTemp_celsius(BED)); + break; + case 4: // Get Fan Speed + SENDVALUELINE_PGM("A4V ", (int)getTargetFan_percent(FAN0)); + break; + case 5: // Get Current Coordinates + SENDVALUE_PGM("A5V X: ", getAxisPosition_mm(X)); + SENDVALUE_PGM(" Y: ", getAxisPosition_mm(Y)); + SENDVALUE_PGM(" Z: ", getAxisPosition_mm(Z)); + sendNewLine(); + break; + case 6: // Get SD Card Print Status + if (isPrintingFromMedia()) + SENDVALUELINE_PGM("A6V ", (int)getProgress_percent()); + else + SENDLINE_PGM("A6V ---"); + break; + case 7: // Get Printing Time + if (isPrinting()) { + const int totalMinutes = getProgress_seconds_elapsed() / 60; + SENDVALUE_PGM("A7V ", (int)(totalMinutes/60)); + SENDVALUE_PGM(" H ", (int)(totalMinutes%60)); + SENDLINE_PGM(" M"); + } else { + SENDLINE_PGM("A7V 999:999"); + } + break; + case 8: // Get SD Card File List + if (isMediaInserted()) { + const int startIndex = parseIntArgument(rx, 'S'); + SENDLINE_PGM("FN "); + for (int i = 0, fileIndex = 0, numFiles = 0; i < (int)fileList.count() && numFiles < 4; i++) { + fileList.seek(i); + if (!fileList.isDir()) { + if (fileIndex >= startIndex) { + sendLine(fileList.shortFilename()); + sendLine(fileList.longFilename()); + numFiles++; + } + fileIndex++; + } + } + SENDLINE_PGM("END"); + } else { + SENDLINE_PGM("J02"); + } + break; + case 9: // Pause SD Card Print + if (isPrintingFromMedia()) { + pausePrint(); + is_printing_from_sd = false; + SENDLINE_PGM("J05"); + } else { + SENDLINE_PGM("J16"); // Print stopped + } + break; + case 10: // Resume SD Card Print + if (is_out_of_filament) { + is_out_of_filament = false; + // Filament change did eject the old filament automatically, + // now continue and load the new one + setUserConfirmed(); + SENDLINE_PGM("J04"); // Printing from SD card + } else if (isPrintingFromMediaPaused()) { + resumePrint(); + SENDLINE_PGM("J04"); // Printing from SD card + } + break; + case 11: // Stop SD Card Print + if (isPrintingFromMedia()) { + stopPrint(); + is_printing_from_sd = false; + SENDLINE_PGM("J16"); // Print stopped + } + break; + //case 12: // Kill + // break; + case 13: // Select File + if (!isPrinting()) { + // Store selected file name + char *p = strchr(rx, ' '); + if (p != nullptr && strlen(p+1) < sizeof(selectedFileShortName)) { + strcpy(selectedFileShortName, p+1); + SENDLINE_PGM("J20"); // Open succeeded + } + else + SENDLINE_PGM("J21"); // Open failed + } + break; + case 14: // Start Print + if (!isPrinting() && strcmp(selectedFileShortName, "") != 0) { + printFile(selectedFileShortName); + is_printing_from_sd = true; + SENDLINE_PGM("J04"); // Printing from SD card + } + break; + case 15: // Resume from power outage + // This is not supported, just report print as completed + SENDLINE_PGM("J16"); // Print stopped + break; + case 16: // Set Hotend Target Temperature + { + int temp = parseIntArgument(rx, 'S'); + if (temp >= 0) + setTargetTemp_celsius(temp, E0); + } + break; + case 17: // Set Bed Target Temperature + { + int temp = parseIntArgument(rx, 'S'); + if (temp >= 0) + setTargetTemp_celsius(temp, BED); + } + break; + case 18: // Set Fan Speed + { + int temp = parseIntArgument(rx, 'S'); + if (temp >= 0) + setTargetFan_percent(temp, FAN0); + } + break; + case 19: // Disable Motors + injectCommands_P(PSTR("M84")); + break; + case 20: // Get/Set Printing Speed + { + int newPerc = parseIntArgument(rx, 'S'); + if (newPerc >= 0) + setFeedrate_percent(newPerc); + else + SENDVALUELINE_PGM("A20V ", (int)getFeedrate_percent()); + } + break; + case 21: // Home axes + if (!isPrinting()) { + const bool hasX = strchr(rx, 'X') != nullptr, + hasY = strchr(rx, 'Y') != nullptr, + hasZ = strchr(rx, 'Z') != nullptr, + hasC = strchr(rx, 'C') != nullptr; + if (hasX || hasY || hasZ) { + if (hasX) injectCommands_P(PSTR("G28 X")); + if (hasY) injectCommands_P(PSTR("G28 Y")); + if (hasZ) injectCommands_P(PSTR("G28 Z")); + } else if (hasC) { + injectCommands_P(PSTR("G28")); + } + } + break; + case 22: // Move axes + if (!isPrinting()) { + const int feedrate = parseIntArgument(rx, 'F') / 60; + float delta; + if (!isnan(delta = parseFloatArgument(rx, 'X'))) + moveAxis(delta, feedrate, X); + else if (!isnan(delta = parseFloatArgument(rx, 'Y'))) + moveAxis(delta, feedrate, Y); + else if (!isnan(delta = parseFloatArgument(rx, 'Z'))) + moveAxis(delta, feedrate, Z); + } + break; + case 23: // Preheat PLA + setTargetTemp_celsius(PREHEAT_1_TEMP_HOTEND, E0); + setTargetTemp_celsius(PREHEAT_1_TEMP_BED, BED); + SENDLINE_PGM("OK"); + break; + case 24: // Preheat ABS + setTargetTemp_celsius(PREHEAT_2_TEMP_HOTEND, E0); + setTargetTemp_celsius(PREHEAT_2_TEMP_BED, BED); + SENDLINE_PGM("OK"); + break; + case 25: // Cool down + setTargetTemp_celsius(0, E0); + setTargetTemp_celsius(0, BED); + SENDLINE_PGM("J12"); + break; + case 26: // Refresh SD Card + fileList.refresh(); + break; + //case 27: // Adjust Servo Angles + // break; + //case 28: // Filament Test + // break; + case 29: // Get Bed Autolevel Grid + { + int x = parseIntArgument(rx, 'X'), + y = parseIntArgument(rx, 'Y'); + if (x != -1 && y != -1) { + xy_uint8_t coord; + coord.set(x, y); + const int value = mmToHundredths(getMeshPoint(coord)); + SENDVALUELINE_PGM("A29V ", value); + } + } + break; + case 30: // Autolevel + if (strchr(rx, 'S')) { // Autoleveling started by clicking "PROBE" and then "OK" + // Note: + // We check for completion by monitoring the command queue. + // Since it will become empty *while* processing the last injected command, + // we enqueue an extra 10ms delay so we can the determine when all the others + // have completed. + if (isMachineHomed()) + injectCommands_P(PSTR("G29\nG4 P10")); + else + injectCommands_P(PSTR("G28\nG29\nG4 P10")); + is_auto_leveling = true; + } else { // Entering Autoleveling screen + if (isPrinting()) + SENDLINE_PGM("J24"); // Disallow autoleveling + else + SENDLINE_PGM("J26"); // Allow autoleveling + } + break; + case 31: // Set Bed Autolevel Z offset + if (strchr(rx, 'G')) { // Get + SENDVALUELINE_PGM("A31V ", getZOffset_mm()); + } else if (strchr(rx, 'S')) { // Set + float delta = parseFloatArgument(rx, 'S'); + delta = constrain(delta, -1.0, 1.0); + setZOffset_mm(getZOffset_mm() + delta); + + SENDVALUELINE_PGM("A31V ", getZOffset_mm()); + } else if (strchr(rx, 'D')) { // Save + injectCommands_P(PSTR("M500")); + } + break; + //case 32: // ? + // break; + case 33: // Get Version Info + SENDLINE_PGM("J33 " SHORT_BUILD_VERSION); + break; + case 34: // Set Bed Autolevel Grid + { + int x = parseIntArgument(rx, 'X'), + y = parseIntArgument(rx, 'Y'), + v = parseIntArgument(rx, 'V'); + if (x != -1 && y != -1 && v != -1) { // Set new value + float value = hundredthsToMm(v); + value = constrain(value, -10, 10); + + xy_uint8_t coord; + coord.set(x, y); + setMeshPoint(coord, value); + } else if (strchr(rx, 'S')) { // Save (apply new values) + injectCommands_P(PSTR("M500")); + } else if (strchr(rx, 'C')) { // Cancel (discard new values) + injectCommands_P(PSTR("M501")); + } + } + break; + } + } + + #define RX_LEN_MAX 63 + static void parseSerialRx() { + static char rxBuffer[RX_LEN_MAX+1]; + static uint8_t rxLen = 0; + + while (ANYCUBIC_LCD_SERIAL.available()) { + const char c = ANYCUBIC_LCD_SERIAL.read(); + switch (c) { + case '\r': case '\n': + if (rxLen > 0 && rxLen <= RX_LEN_MAX) { + rxBuffer[rxLen] = '\0'; // Terminate string + handleCmd(rxBuffer); + } + rxLen = 0; + break; + default: + if (rxLen < RX_LEN_MAX) + rxBuffer[rxLen++] = c; + else { + rxLen = 0xFF; // Overrun + SERIAL_ECHOPGM("Warning: dropping long received line"); + } + break; + } + } + } + + static void detectPrintFromSdCompletion() { + // Note: printFile() queues some commands that actually start the print, so isPrintingFromMedia() + // initially returns false + if (is_printing_from_sd && !commandsInQueue() && !isPrintingFromMedia()) { + is_printing_from_sd = false; + SENDLINE_PGM("J14"); // Print done + } + } + + static void detectAutolevelingCompletion() { + if (is_auto_leveling && !commandsInQueue()) { + is_auto_leveling = false; + injectCommands_P(PSTR("M500")); + SENDLINE_PGM("J25"); // Autoleveling done + } + } + + void onStartup() { + ANYCUBIC_LCD_SERIAL.begin(115200); + sendNewLine(); + SENDLINE_PGM("J17"); // Reset + delay_ms(10); + SENDLINE_PGM("J12"); // Ready + } + + void onIdle() { + parseSerialRx(); + detectAutolevelingCompletion(); + detectPrintFromSdCompletion(); + } + + void onPrinterKilled(PGM_P const error, PGM_P const component) { } + + void onMediaInserted() { + SENDLINE_PGM("J00"); // SD Inserted + } + + void onMediaError() { } + + void onMediaRemoved() { + SENDLINE_PGM("J01"); // SD Removed + } + + void onPlayTone(const uint16_t frequency, const uint16_t duration) { + tone(BEEPER_PIN, frequency, duration); + } + + void onPrintTimerStarted() { } + + void onPrintTimerPaused() { } + + void onPrintTimerStopped() { } + + void onFilamentRunout(const extruder_t extruder) { + is_out_of_filament = true; + SENDLINE_PGM("J23"); // Filament runout + SENDLINE_PGM("J18"); // Print paused + // Note: printer will unload filament automatically + } + + void onUserConfirmRequired(const char * const msg) { } + + void onStatusChanged(const char * const msg) { } + + void onFactoryReset() { } + + void onStoreSettings(char *buff) { } + + void onLoadSettings(const char *buff) { } + + void onConfigurationStoreWritten(bool success) { } + + void onConfigurationStoreRead(bool success) { } + + void onMeshUpdate(const int8_t xpos, const int8_t ypos, const float zval) { } + + #if ENABLED(POWER_LOSS_RECOVERY) + void onPowerLossResume() { } + #endif + + #if HAS_PID_HEATING + void onPidTuning(const result_t rst) { } + #endif +} + +#endif // ANYCUBIC_LCD_CHIRON diff --git a/Marlin/src/lcd/extui_anycubic_tft.cpp b/Marlin/src/lcd/extui_anycubic_i3mega_lcd.cpp similarity index 95% rename from Marlin/src/lcd/extui_anycubic_tft.cpp rename to Marlin/src/lcd/extui_anycubic_i3mega_lcd.cpp index 6383ee7b5..360ea75de 100644 --- a/Marlin/src/lcd/extui_anycubic_tft.cpp +++ b/Marlin/src/lcd/extui_anycubic_i3mega_lcd.cpp @@ -21,14 +21,14 @@ */ /** - * extui_anycubic_tft.cpp + * extui_anycubic_i3mega_lcd.cpp */ #include "../inc/MarlinConfigPre.h" -#if BOTH(ANYCUBIC_TFT_MODEL, EXTENSIBLE_UI) +#if ENABLED(ANYCUBIC_LCD_I3MEGA) -#include "extui/lib/anycubic/anycubic_tft.h" +#include "extui/lib/anycubic_i3mega/anycubic_i3mega_lcd.h" #include "extui/ui_api.h" #include // for the ::tone() call @@ -101,4 +101,4 @@ namespace ExtUI { #endif } -#endif // ANYCUBIC_TFT_MODEL && EXTENSIBLE_UI +#endif // ANYCUBIC_LCD_I3MEGA diff --git a/Marlin/src/pins/ramps/pins_TRIGORILLA_14.h b/Marlin/src/pins/ramps/pins_TRIGORILLA_14.h index 6382d3af5..708f8fa26 100644 --- a/Marlin/src/pins/ramps/pins_TRIGORILLA_14.h +++ b/Marlin/src/pins/ramps/pins_TRIGORILLA_14.h @@ -27,6 +27,16 @@ #define BOARD_INFO_NAME "Anycubic RAMPS 1.4" +// Board labeled pins: + +#define TG_HEATER_BED_PIN 8 +#define TG_HEATER_0_PIN 10 +#define TG_HEATER_1_PIN 45 // Anycubic Kossel: Unused + +#define TG_FAN0_PIN 9 // Anycubic Kossel: Usually the part cooling fan +#define TG_FAN1_PIN 7 // Anycubic Kossel: Unused +#define TG_FAN2_PIN 44 // Anycubic Kossel: Hotend fan + // // Servos // @@ -37,52 +47,6 @@ #define SERVO3_PIN 6 #endif -// -// Limit Switches -// -//#define ANYCUBIC_4_MAX_PRO_ENDSTOPS - -#define X_MIN_PIN 3 - -#if ENABLED(ANYCUBIC_4_MAX_PRO_ENDSTOPS) - #define X_MAX_PIN 43 -#else - #define X_MAX_PIN 43 -#endif - -#if ENABLED(ANYCUBIC_4_MAX_PRO_ENDSTOPS) - #define Y_STOP_PIN 19 -#else - #define Y_STOP_PIN 42 -#endif - -#define Z_STOP_PIN 18 - -// -// Z Probe (when not Z_MIN_PIN) -// -#define Z_MIN_PROBE_PIN 2 - -#ifndef FIL_RUNOUT_PIN - #define FIL_RUNOUT_PIN 19 -#endif - -// -// Heaters / Fans -// -#define TG_HEATER_BED_PIN 8 -#define TG_HEATER_0_PIN 10 -#define TG_HEATER_1_PIN 45 // Anycubic Kossel: Unused - -#define TG_FAN0_PIN 9 // Anycubic Kossel: Usually the part cooling fan -#define TG_FAN1_PIN 7 // Anycubic Kossel: Unused -#define TG_FAN2_PIN 44 // Anycubic Kossel: Hotend fan - -#define CONTROLLER_FAN_PIN TG_FAN1_PIN - -#define BEEPER_PIN 31 -#define SD_DETECT_PIN 49 - // Remap MOSFET pins to common usages: #define RAMPS_D10_PIN TG_HEATER_0_PIN // HEATER_0_PIN is always RAMPS_D10_PIN in pins_RAMPS.h @@ -100,7 +64,11 @@ #elif TEMP_SENSOR_BED // EFB (Anycubic Kossel default) #define RAMPS_D9_PIN TG_FAN0_PIN - #define RAMPS_D8_PIN TG_HEATER_BED_PIN + #if ENABLED(ANYCUBIC_CHIRON) + #define RAMPS_D8_PIN TG_HEATER_1_PIN // Heated bed is connected to HEATER1 output + #else + #define RAMPS_D8_PIN TG_HEATER_BED_PIN + #endif #else // EFF #define RAMPS_D9_PIN TG_FAN1_PIN @@ -116,6 +84,44 @@ #define E0_AUTO_FAN_PIN TG_FAN2_PIN // Used in Anycubic Kossel example config #endif +#if ENABLED(ANYCUBIC_I3MEGA) + #define CONTROLLER_FAN_PIN TG_FAN1_PIN +#endif + +// +// AnyCubic standard pin mappings +// +// On most printers, endstops are NOT all wired to the appropriate pins on the Trigorilla board. +// For instance, on a Chiron, Y axis goes to an aux connector. +// There are also other things that have been wired in creative ways. +// To enable PIN definitions for a specific printer model, #define the appropriate symbol after +// MOTHERBOARD in Configuration.h + +// +// Limit Switches +// +//#define ANYCUBIC_4_MAX_PRO_ENDSTOPS + +#if ENABLED(ANYCUBIC_4_MAX_PRO_ENDSTOPS) + #define X_MAX_PIN 43 + #define Y_STOP_PIN 19 +#elif EITHER(ANYCUBIC_CHIRON, ANYCUBIC_I3MEGA) + #define Y_STOP_PIN 42 + #define Z2_MIN_PIN 43 + #ifndef Z_MIN_PROBE_PIN + #define Z_MIN_PROBE_PIN 2 + #endif + #ifndef FIL_RUNOUT_PIN + #if ENABLED(ANYCUBIC_CHIRON) + #define FIL_RUNOUT_PIN 33 + #else + #define FIL_RUNOUT_PIN 19 + #endif + #endif + #define BEEPER_PIN 31 + #define SD_DETECT_PIN 49 +#endif + #include "pins_RAMPS.h" // diff --git a/platformio.ini b/platformio.ini index 450fffcc0..029ce6588 100644 --- a/platformio.ini +++ b/platformio.ini @@ -66,7 +66,7 @@ HAS_GRAPHICAL_TFT = src_filter=+ HAS_LCD_MENU = src_filter=+ HAS_DGUS_LCD = src_filter=+ TOUCH_UI_FTDI_EVE = src_filter=+ -ANYCUBIC_TFT_MODEL = src_filter=+ +ANYCUBIC_LCD_I3MEGA = src_filter=+ USB_FLASH_DRIVE_SUPPORT = src_filter=+ AUTO_BED_LEVELING_(3POINT|(BI)?LINEAR) = src_filter=+ + MESH_BED_LEVELING = src_filter=+ + From 99ba866d8d3c9abc16558ca12ba34efb9a7922e5 Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Thu, 6 Aug 2020 08:14:00 -0500 Subject: [PATCH 054/194] Optimize G-code / feature dependencies (#18919) --- Marlin/src/MarlinCore.cpp | 6 +- ...{binary_protocol.cpp => binary_stream.cpp} | 4 +- .../{binary_protocol.h => binary_stream.h} | 0 Marlin/src/feature/caselight.cpp | 48 +-- Marlin/src/feature/caselight.h | 26 +- Marlin/src/feature/e_parser.cpp | 2 +- Marlin/src/feature/e_parser.h | 2 +- Marlin/src/gcode/feature/caselight/M355.cpp | 76 +++-- Marlin/src/gcode/gcode.cpp | 2 +- Marlin/src/gcode/gcode.h | 4 +- Marlin/src/gcode/host/M115.cpp | 4 +- Marlin/src/gcode/queue.cpp | 5 +- Marlin/src/inc/Conditionals_LCD.h | 15 - Marlin/src/inc/Conditionals_post.h | 5 +- .../screens/advanced_settings_menu.cpp | 8 +- .../ftdi_eve_touch_ui/screens/main_menu.cpp | 2 +- .../lib/ftdi_eve_touch_ui/screens/screens.cpp | 2 +- .../lib/ftdi_eve_touch_ui/screens/screens.h | 4 +- Marlin/src/lcd/extui/ui_api.cpp | 14 +- Marlin/src/lcd/menu/menu_led.cpp | 8 +- .../libs/heatshrink/heatshrink_decoder.cpp | 31 +- .../src/libs/heatshrink/heatshrink_decoder.h | 27 +- Marlin/src/module/configuration_store.cpp | 12 +- .../PlatformIO/scripts/common-dependencies.h | 88 +++++ .../PlatformIO/scripts/common-dependencies.py | 110 +++--- platformio.ini | 316 ++++++++++++++++-- 26 files changed, 632 insertions(+), 189 deletions(-) rename Marlin/src/feature/{binary_protocol.cpp => binary_stream.cpp} (95%) rename Marlin/src/feature/{binary_protocol.h => binary_stream.h} (100%) diff --git a/Marlin/src/MarlinCore.cpp b/Marlin/src/MarlinCore.cpp index 74e15250e..8c5966f74 100644 --- a/Marlin/src/MarlinCore.cpp +++ b/Marlin/src/MarlinCore.cpp @@ -189,7 +189,7 @@ #include "feature/leds/tempstat.h" #endif -#if HAS_CASE_LIGHT +#if ENABLED(CASE_LIGHT_ENABLE) #include "feature/caselight.h" #endif @@ -1082,11 +1082,11 @@ void setup() { OUT_WRITE(STAT_LED_BLUE_PIN, LOW); // OFF #endif - #if HAS_CASE_LIGHT + #if ENABLED(CASE_LIGHT_ENABLE) #if DISABLED(CASE_LIGHT_USE_NEOPIXEL) if (PWM_PIN(CASE_LIGHT_PIN)) SET_PWM(CASE_LIGHT_PIN); else SET_OUTPUT(CASE_LIGHT_PIN); #endif - SETUP_RUN(update_case_light()); + SETUP_RUN(caselight.update_brightness()); #endif #if ENABLED(MK2_MULTIPLEXER) diff --git a/Marlin/src/feature/binary_protocol.cpp b/Marlin/src/feature/binary_stream.cpp similarity index 95% rename from Marlin/src/feature/binary_protocol.cpp rename to Marlin/src/feature/binary_stream.cpp index 5884a05f4..81e110339 100644 --- a/Marlin/src/feature/binary_protocol.cpp +++ b/Marlin/src/feature/binary_stream.cpp @@ -25,7 +25,7 @@ #if ENABLED(BINARY_FILE_TRANSFER) #include "../sd/cardreader.h" -#include "binary_protocol.h" +#include "binary_stream.h" char* SDFileTransferProtocol::Packet::Open::data = nullptr; size_t SDFileTransferProtocol::data_waiting, SDFileTransferProtocol::transfer_timeout, SDFileTransferProtocol::idle_timeout; @@ -33,4 +33,4 @@ bool SDFileTransferProtocol::transfer_active, SDFileTransferProtocol::dummy_tran BinaryStream binaryStream[NUM_SERIAL]; -#endif // BINARY_FILE_TRANSFER +#endif diff --git a/Marlin/src/feature/binary_protocol.h b/Marlin/src/feature/binary_stream.h similarity index 100% rename from Marlin/src/feature/binary_protocol.h rename to Marlin/src/feature/binary_stream.h diff --git a/Marlin/src/feature/caselight.cpp b/Marlin/src/feature/caselight.cpp index 4287a0f26..8a128bb12 100644 --- a/Marlin/src/feature/caselight.cpp +++ b/Marlin/src/feature/caselight.cpp @@ -22,14 +22,17 @@ #include "../inc/MarlinConfig.h" -#if HAS_CASE_LIGHT +#if ENABLED(CASE_LIGHT_ENABLE) -uint8_t case_light_brightness = CASE_LIGHT_DEFAULT_BRIGHTNESS; -bool case_light_on = CASE_LIGHT_DEFAULT_ON; +#include "caselight.h" + +CaseLight caselight; + +uint8_t CaseLight::brightness = CASE_LIGHT_DEFAULT_BRIGHTNESS; +bool CaseLight::on = CASE_LIGHT_DEFAULT_ON; #if ENABLED(CASE_LIGHT_USE_NEOPIXEL) - #include "leds/leds.h" - LEDColor case_light_color = + LEDColor CaseLight::color = #ifdef CASE_LIGHT_NEOPIXEL_COLOR CASE_LIGHT_NEOPIXEL_COLOR #else @@ -38,34 +41,33 @@ bool case_light_on = CASE_LIGHT_DEFAULT_ON; ; #endif -/** - * The following are needed because ARM chips ignore a "WRITE(CASE_LIGHT_PIN,x)" command to the pins that - * are directly controlled by the PWM module. In order to turn them off the brightness level needs to be - * set to off. Since we can't use the pwm register to save the last brightness level we need a variable - * to save it. - */ -uint8_t case_light_brightness_sav; // saves brighness info so can restore when "M355 S1" received -bool case_light_arg_flag; // flag to notify if S or P argument type - #ifndef INVERT_CASE_LIGHT #define INVERT_CASE_LIGHT false #endif -void update_case_light() { +void CaseLight::update(const bool sflag) { + /** + * The brightness_sav (and sflag) is needed because ARM chips ignore + * a "WRITE(CASE_LIGHT_PIN,x)" command to the pins that are directly + * controlled by the PWM module. In order to turn them off the brightness + * level needs to be set to OFF. Since we can't use the PWM register to + * save the last brightness level we need a variable to save it. + */ + static uint8_t brightness_sav; // Save brightness info for restore on "M355 S1" - if (!(case_light_arg_flag && !case_light_on)) - case_light_brightness_sav = case_light_brightness; // save brightness except if this is an S0 argument - if (case_light_arg_flag && case_light_on) - case_light_brightness = case_light_brightness_sav; // restore last brightens if this is an S1 argument + if (on || !sflag) + brightness_sav = brightness; // Save brightness except for M355 S0 + if (sflag && on) + brightness = brightness_sav; // Restore last brightness for M355 S1 #if ENABLED(CASE_LIGHT_USE_NEOPIXEL) || DISABLED(CASE_LIGHT_NO_BRIGHTNESS) - const uint8_t i = case_light_on ? case_light_brightness : 0, n10ct = INVERT_CASE_LIGHT ? 255 - i : i; + const uint8_t i = on ? brightness : 0, n10ct = INVERT_CASE_LIGHT ? 255 - i : i; #endif #if ENABLED(CASE_LIGHT_USE_NEOPIXEL) leds.set_color( - MakeLEDColor(case_light_color.r, case_light_color.g, case_light_color.b, case_light_color.w, n10ct), + MakeLEDColor(color.r, color.g, color.b, color.w, n10ct), false ); @@ -83,11 +85,11 @@ void update_case_light() { else #endif { - const bool s = case_light_on ? !INVERT_CASE_LIGHT : INVERT_CASE_LIGHT; + const bool s = on ? !INVERT_CASE_LIGHT : INVERT_CASE_LIGHT; WRITE(CASE_LIGHT_PIN, s ? HIGH : LOW); } #endif // !CASE_LIGHT_USE_NEOPIXEL } -#endif // HAS_CASE_LIGHT +#endif // CASE_LIGHT_ENABLE diff --git a/Marlin/src/feature/caselight.h b/Marlin/src/feature/caselight.h index ff01b1a67..9d1e76da2 100644 --- a/Marlin/src/feature/caselight.h +++ b/Marlin/src/feature/caselight.h @@ -21,9 +21,25 @@ */ #pragma once -extern uint8_t case_light_brightness; -extern bool case_light_on; -extern uint8_t case_light_brightness_sav; // saves brighness info when case_light_on is false -extern bool case_light_arg_flag; // flag to notify if S or P argument type +#include "../inc/MarlinConfigPre.h" -void update_case_light(); +#if ENABLED(CASE_LIGHT_USE_NEOPIXEL) + #include "leds/leds.h" +#endif + +class CaseLight { +public: + static uint8_t brightness; + static bool on; + + static void update(const bool sflag); + static inline void update_brightness() { update(false); } + static inline void update_enabled() { update(true); } + +private: + #if ENABLED(CASE_LIGHT_USE_NEOPIXEL) + static LEDColor color; + #endif +}; + +extern CaseLight caselight; diff --git a/Marlin/src/feature/e_parser.cpp b/Marlin/src/feature/e_parser.cpp index 85b1845a6..a4c2d0dac 100644 --- a/Marlin/src/feature/e_parser.cpp +++ b/Marlin/src/feature/e_parser.cpp @@ -21,7 +21,7 @@ */ /** - * emergency_parser.cpp - Intercept special commands directly in the serial stream + * e_parser.cpp - Intercept special commands directly in the serial stream */ #include "../inc/MarlinConfigPre.h" diff --git a/Marlin/src/feature/e_parser.h b/Marlin/src/feature/e_parser.h index 73e459680..8d11463ec 100644 --- a/Marlin/src/feature/e_parser.h +++ b/Marlin/src/feature/e_parser.h @@ -22,7 +22,7 @@ #pragma once /** - * emergency_parser.h - Intercept special commands directly in the serial stream + * e_parser.h - Intercept special commands directly in the serial stream */ #include "../inc/MarlinConfigPre.h" diff --git a/Marlin/src/gcode/feature/caselight/M355.cpp b/Marlin/src/gcode/feature/caselight/M355.cpp index 4d2acd189..bb6b57f66 100644 --- a/Marlin/src/gcode/feature/caselight/M355.cpp +++ b/Marlin/src/gcode/feature/caselight/M355.cpp @@ -20,45 +20,47 @@ * */ -#include "../../gcode.h" - #include "../../../inc/MarlinConfig.h" -#if HAS_CASE_LIGHT - #include "../../../feature/caselight.h" +#if ENABLED(CASE_LIGHT_ENABLE) - /** - * M355: Turn case light on/off and set brightness - * - * P Set case light brightness (PWM pin required - ignored otherwise) - * - * S Set case light on/off - * - * When S turns on the light on a PWM pin then the current brightness level is used/restored - * - * M355 P200 S0 turns off the light & sets the brightness level - * M355 S1 turns on the light with a brightness of 200 (assuming a PWM pin) - */ - void GcodeSuite::M355() { - uint8_t args = 0; - if (parser.seenval('P')) { - ++args, case_light_brightness = parser.value_byte(); - case_light_arg_flag = false; - } - if (parser.seenval('S')) { - ++args, case_light_on = parser.value_bool(); - case_light_arg_flag = true; - } - if (args) update_case_light(); +#include "../../../feature/caselight.h" +#include "../../gcode.h" - // always report case light status - SERIAL_ECHO_START(); - if (!case_light_on) { - SERIAL_ECHOLNPGM("Case light: off"); - } - else { - if (!PWM_PIN(CASE_LIGHT_PIN)) SERIAL_ECHOLNPGM("Case light: on"); - else SERIAL_ECHOLNPAIR("Case light: ", case_light_brightness); - } +/** + * M355: Turn case light on/off and set brightness + * + * P Set case light brightness (PWM pin required - ignored otherwise) + * + * S Set case light on/off + * + * When S turns on the light on a PWM pin then the current brightness level is used/restored + * + * M355 P200 S0 turns off the light & sets the brightness level + * M355 S1 turns on the light with a brightness of 200 (assuming a PWM pin) + */ +void GcodeSuite::M355() { + bool didset = false; + if (parser.seenval('P')) { + didset = true; + caselight.brightness = parser.value_byte(); } -#endif // HAS_CASE_LIGHT + const bool sflag = parser.seenval('S'); + if (sflag) { + didset = true; + caselight.on = parser.value_bool(); + } + if (didset) caselight.update(sflag); + + // Always report case light status + SERIAL_ECHO_START(); + SERIAL_ECHOPGM("Case light: "); + if (!caselight.on) + SERIAL_ECHOLNPGM(STR_OFF); + else { + if (!PWM_PIN(CASE_LIGHT_PIN)) SERIAL_ECHOLNPGM(STR_ON); + else SERIAL_ECHOLN(int(caselight.brightness)); + } +} + +#endif // CASE_LIGHT_ENABLE diff --git a/Marlin/src/gcode/gcode.cpp b/Marlin/src/gcode/gcode.cpp index 7c1083f7f..f1692ee80 100644 --- a/Marlin/src/gcode/gcode.cpp +++ b/Marlin/src/gcode/gcode.cpp @@ -842,7 +842,7 @@ void GcodeSuite::process_parsed_command(const bool no_ok/*=false*/) { case 351: M351(); break; // M351: Toggle MS1 MS2 pins directly, S# determines MS1 or MS2, X# sets the pin high/low. #endif - #if HAS_CASE_LIGHT + #if ENABLED(CASE_LIGHT_ENABLE) case 355: M355(); break; // M355: Set case light brightness #endif diff --git a/Marlin/src/gcode/gcode.h b/Marlin/src/gcode/gcode.h index 7c469458c..7e89e809d 100644 --- a/Marlin/src/gcode/gcode.h +++ b/Marlin/src/gcode/gcode.h @@ -702,7 +702,7 @@ private: static void M351(); #endif - TERN_(HAS_CASE_LIGHT, static void M355()); + TERN_(CASE_LIGHT_ENABLE, static void M355()); TERN_(REPETIER_GCODE_M360, static void M360()); @@ -845,7 +845,7 @@ private: TERN_(MAGNETIC_PARKING_EXTRUDER, static void M951()); TERN_(TOUCH_SCREEN_CALIBRATION, static void M995()); - + TERN_(PLATFORM_M997_SUPPORT, static void M997()); static void M999(); diff --git a/Marlin/src/gcode/host/M115.cpp b/Marlin/src/gcode/host/M115.cpp index c3ff9c8c1..cd64c563f 100644 --- a/Marlin/src/gcode/host/M115.cpp +++ b/Marlin/src/gcode/host/M115.cpp @@ -93,8 +93,8 @@ void GcodeSuite::M115() { cap_line(PSTR("SOFTWARE_POWER"), ENABLED(PSU_CONTROL)); // TOGGLE_LIGHTS (M355) - cap_line(PSTR("TOGGLE_LIGHTS"), ENABLED(HAS_CASE_LIGHT)); - cap_line(PSTR("CASE_LIGHT_BRIGHTNESS"), TERN0(HAS_CASE_LIGHT, PWM_PIN(CASE_LIGHT_PIN))); + cap_line(PSTR("TOGGLE_LIGHTS"), ENABLED(CASE_LIGHT_ENABLE)); + cap_line(PSTR("CASE_LIGHT_BRIGHTNESS"), TERN0(CASE_LIGHT_ENABLE, PWM_PIN(CASE_LIGHT_PIN))); // EMERGENCY_PARSER (M108, M112, M410, M876) cap_line(PSTR("EMERGENCY_PARSER"), ENABLED(EMERGENCY_PARSER)); diff --git a/Marlin/src/gcode/queue.cpp b/Marlin/src/gcode/queue.cpp index c77db0bf2..b9169d90e 100644 --- a/Marlin/src/gcode/queue.cpp +++ b/Marlin/src/gcode/queue.cpp @@ -40,7 +40,7 @@ GCodeQueue queue; #endif #if ENABLED(BINARY_FILE_TRANSFER) - #include "../feature/binary_protocol.h" + #include "../feature/binary_stream.h" #endif #if ENABLED(POWER_LOSS_RECOVERY) @@ -628,11 +628,10 @@ void GCodeQueue::advance() { #if ENABLED(SERIAL_STATS_DROPPED_RX) SERIAL_ECHOLNPAIR("Dropped bytes: ", MYSERIAL0.dropped()); #endif - #if ENABLED(SERIAL_STATS_MAX_RX_QUEUED) SERIAL_ECHOLNPAIR("Max RX Queue Size: ", MYSERIAL0.rxMaxEnqueued()); #endif - #endif // !defined(__AVR__) || !defined(USBCON) + #endif ok_to_send(); } diff --git a/Marlin/src/inc/Conditionals_LCD.h b/Marlin/src/inc/Conditionals_LCD.h index 4ffd6fddc..cabca762a 100644 --- a/Marlin/src/inc/Conditionals_LCD.h +++ b/Marlin/src/inc/Conditionals_LCD.h @@ -430,14 +430,6 @@ #endif #endif -#if ENABLED(SR_LCD_3W_NL) - // Feature checks for SR_LCD_3W_NL -#elif EITHER(LCD_I2C_TYPE_MCP23017, LCD_I2C_TYPE_MCP23008) - #define USES_LIQUIDTWI2 -#elif ANY(HAS_CHARACTER_LCD, LCD_I2C_TYPE_PCF8575, LCD_I2C_TYPE_PCA8574, SR_LCD_2W_NL, LCM1602) - #define USES_LIQUIDCRYSTAL -#endif - #if ENABLED(ULTIPANEL) && DISABLED(NO_LCD_MENUS) #define HAS_LCD_MENU 1 #endif @@ -774,10 +766,3 @@ #ifndef EXTRUDE_MINTEMP #define EXTRUDE_MINTEMP 170 #endif - -/** - * To check if we need the folder src/features/leds - */ -#if ANY(TEMP_STAT_LEDS, HAS_COLOR_LEDS, HAS_CASE_LIGHT, PRINTER_EVENT_LEDS, LED_BACKLIGHT_TIMEOUT, PCA9632_BUZZER, LED_CONTROL_MENU, NEOPIXEL_LED) - #define HAS_LED_FEATURE 1 -#endif diff --git a/Marlin/src/inc/Conditionals_post.h b/Marlin/src/inc/Conditionals_post.h index a93e0527b..556d57b66 100644 --- a/Marlin/src/inc/Conditionals_post.h +++ b/Marlin/src/inc/Conditionals_post.h @@ -1944,9 +1944,6 @@ #if PIN_EXISTS(PHOTOGRAPH) #define HAS_PHOTOGRAPH 1 #endif -#if PIN_EXISTS(CASE_LIGHT) && ENABLED(CASE_LIGHT_ENABLE) - #define HAS_CASE_LIGHT 1 -#endif // Digital control #if PIN_EXISTS(STEPPER_RESET) @@ -2223,7 +2220,7 @@ /** * MIN/MAX case light PWM scaling */ -#if HAS_CASE_LIGHT +#if ENABLED(CASE_LIGHT_ENABLE) #ifndef CASE_LIGHT_MAX_PWM #define CASE_LIGHT_MAX_PWM 255 #elif !WITHIN(CASE_LIGHT_MAX_PWM, 1, 255) diff --git a/Marlin/src/lcd/extui/lib/ftdi_eve_touch_ui/screens/advanced_settings_menu.cpp b/Marlin/src/lcd/extui/lib/ftdi_eve_touch_ui/screens/advanced_settings_menu.cpp index 12bfe5e68..35040734b 100644 --- a/Marlin/src/lcd/extui/lib/ftdi_eve_touch_ui/screens/advanced_settings_menu.cpp +++ b/Marlin/src/lcd/extui/lib/ftdi_eve_touch_ui/screens/advanced_settings_menu.cpp @@ -38,7 +38,7 @@ void AdvancedSettingsMenu::onRedraw(draw_mode_t what) { } #ifdef TOUCH_UI_PORTRAIT - #if EITHER(HAS_CASE_LIGHT, SENSORLESS_HOMING) + #if EITHER(CASE_LIGHT_ENABLE, SENSORLESS_HOMING) #define GRID_ROWS 9 #else #define GRID_ROWS 8 @@ -59,7 +59,7 @@ void AdvancedSettingsMenu::onRedraw(draw_mode_t what) { #define BACKLASH_POS BTN_POS(2,7), BTN_SIZE(1,1) #define CASE_LIGHT_POS BTN_POS(1,8), BTN_SIZE(1,1) #define TMC_HOMING_THRS_POS BTN_POS(2,8), BTN_SIZE(1,1) - #if EITHER(HAS_CASE_LIGHT, SENSORLESS_HOMING) + #if EITHER(CASE_LIGHT_ENABLE, SENSORLESS_HOMING) #define BACK_POS BTN_POS(1,9), BTN_SIZE(2,1) #else #define BACK_POS BTN_POS(1,8), BTN_SIZE(2,1) @@ -91,7 +91,7 @@ void AdvancedSettingsMenu::onRedraw(draw_mode_t what) { .font(Theme::font_medium) .enabled(ENABLED(HAS_BED_PROBE)) .tag(2) .button( ZPROBE_ZOFFSET_POS, GET_TEXT_F(MSG_ZPROBE_ZOFFSET)) - .enabled(ENABLED(HAS_CASE_LIGHT)) + .enabled(ENABLED(CASE_LIGHT_ENABLE)) .tag(16).button( CASE_LIGHT_POS, GET_TEXT_F(MSG_CASE_LIGHT)) .tag(3) .button( STEPS_PER_MM_POS, GET_TEXT_F(MSG_STEPS_PER_MM)) .enabled(ENABLED(HAS_TRINAMIC_CONFIG)) @@ -149,7 +149,7 @@ bool AdvancedSettingsMenu::onTouchEnd(uint8_t tag) { case 14: GOTO_SCREEN(StepperBumpSensitivityScreen); break; #endif case 15: GOTO_SCREEN(DisplayTuningScreen); break; - #if HAS_CASE_LIGHT + #if ENABLED(CASE_LIGHT_ENABLE) case 16: GOTO_SCREEN(CaseLightScreen); break; #endif default: return false; diff --git a/Marlin/src/lcd/extui/lib/ftdi_eve_touch_ui/screens/main_menu.cpp b/Marlin/src/lcd/extui/lib/ftdi_eve_touch_ui/screens/main_menu.cpp index 12cb8d089..dfb23daa5 100644 --- a/Marlin/src/lcd/extui/lib/ftdi_eve_touch_ui/screens/main_menu.cpp +++ b/Marlin/src/lcd/extui/lib/ftdi_eve_touch_ui/screens/main_menu.cpp @@ -137,7 +137,7 @@ bool MainMenu::onTouchEnd(uint8_t tag) { case 4: GOTO_SCREEN(MoveAxisScreen); break; case 5: injectCommands_P(PSTR("M84")); break; case 6: GOTO_SCREEN(TemperatureScreen); break; - #if BOTH(TOUCH_UI_COCOA_PRESS, HAS_CASE_LIGHT) + #if BOTH(TOUCH_UI_COCOA_PRESS, CASE_LIGHT_ENABLE) case 7: GOTO_SCREEN(CaseLightScreen); break; #else case 7: GOTO_SCREEN(ChangeFilamentScreen); break; diff --git a/Marlin/src/lcd/extui/lib/ftdi_eve_touch_ui/screens/screens.cpp b/Marlin/src/lcd/extui/lib/ftdi_eve_touch_ui/screens/screens.cpp index 82d1831e6..01438aeb9 100644 --- a/Marlin/src/lcd/extui/lib/ftdi_eve_touch_ui/screens/screens.cpp +++ b/Marlin/src/lcd/extui/lib/ftdi_eve_touch_ui/screens/screens.cpp @@ -83,7 +83,7 @@ SCREEN_TABLE { #else DECL_SCREEN(JerkScreen), #endif -#if HAS_CASE_LIGHT +#if ENABLED(CASE_LIGHT_ENABLE) DECL_SCREEN(CaseLightScreen), #endif #if EITHER(LIN_ADVANCE, FILAMENT_RUNOUT_SENSOR) diff --git a/Marlin/src/lcd/extui/lib/ftdi_eve_touch_ui/screens/screens.h b/Marlin/src/lcd/extui/lib/ftdi_eve_touch_ui/screens/screens.h index 276727fc4..92e6b230f 100644 --- a/Marlin/src/lcd/extui/lib/ftdi_eve_touch_ui/screens/screens.h +++ b/Marlin/src/lcd/extui/lib/ftdi_eve_touch_ui/screens/screens.h @@ -63,7 +63,7 @@ enum { #else JERK_SCREEN_CACHE, #endif -#if HAS_CASE_LIGHT +#if ENABLED(CASE_LIGHT_ENABLE) CASE_LIGHT_SCREEN_CACHE, #endif #if EITHER(LIN_ADVANCE, FILAMENT_RUNOUT_SENSOR) @@ -579,7 +579,7 @@ class DefaultAccelerationScreen : public BaseNumericAdjustmentScreen, public Cac }; #endif -#if HAS_CASE_LIGHT +#if ENABLED(CASE_LIGHT_ENABLE) class CaseLightScreen : public BaseNumericAdjustmentScreen, public CachedScreen { public: static void onRedraw(draw_mode_t); diff --git a/Marlin/src/lcd/extui/ui_api.cpp b/Marlin/src/lcd/extui/ui_api.cpp index 451aa1f12..c19275449 100644 --- a/Marlin/src/lcd/extui/ui_api.cpp +++ b/Marlin/src/lcd/extui/ui_api.cpp @@ -599,18 +599,18 @@ namespace ExtUI { #endif #endif - #if HAS_CASE_LIGHT - bool getCaseLightState() { return case_light_on; } + #if ENABLED(CASE_LIGHT_ENABLE) + bool getCaseLightState() { return caselight.on; } void setCaseLightState(const bool value) { - case_light_on = value; - update_case_light(); + caselight.on = value; + caselight.update_enabled(); } #if DISABLED(CASE_LIGHT_NO_BRIGHTNESS) - float getCaseLightBrightness_percent() { return ui8_to_percent(case_light_brightness); } + float getCaseLightBrightness_percent() { return ui8_to_percent(caselight.brightness); } void setCaseLightBrightness_percent(const float value) { - case_light_brightness = map(constrain(value, 0, 100), 0, 100, 0, 255); - update_case_light(); + caselight.brightness = map(constrain(value, 0, 100), 0, 100, 0, 255); + caselight.update_brightness(); } #endif #endif diff --git a/Marlin/src/lcd/menu/menu_led.cpp b/Marlin/src/lcd/menu/menu_led.cpp index 2719b3d85..ac56ca0e5 100644 --- a/Marlin/src/lcd/menu/menu_led.cpp +++ b/Marlin/src/lcd/menu/menu_led.cpp @@ -76,8 +76,8 @@ void menu_case_light() { START_MENU(); BACK_ITEM(MSG_CONFIGURATION); - EDIT_ITEM(percent, MSG_CASE_LIGHT_BRIGHTNESS, &case_light_brightness, 0, 255, update_case_light, true); - EDIT_ITEM(bool, MSG_CASE_LIGHT, (bool*)&case_light_on, update_case_light); + EDIT_ITEM(percent, MSG_CASE_LIGHT_BRIGHTNESS, &caselight.brightness, 0, 255, caselight.update_brightness, true); + EDIT_ITEM(bool, MSG_CASE_LIGHT, (bool*)&caselight.on, caselight.update_enabled); END_MENU(); } #endif @@ -97,7 +97,7 @@ void menu_led() { #endif SUBMENU(MSG_CUSTOM_LEDS, menu_led_custom); #endif - // + // // Set Case light on/off/brightness // #if ENABLED(CASE_LIGHT_MENU) @@ -106,7 +106,7 @@ void menu_led() { SUBMENU(MSG_CASE_LIGHT, menu_case_light); else #endif - EDIT_ITEM(bool, MSG_CASE_LIGHT, (bool*)&case_light_on, update_case_light); + EDIT_ITEM(bool, MSG_CASE_LIGHT, (bool*)&caselight.on, caselight.update_enabled); #endif END_MENU(); } diff --git a/Marlin/src/libs/heatshrink/heatshrink_decoder.cpp b/Marlin/src/libs/heatshrink/heatshrink_decoder.cpp index 4684af975..3f0f828cd 100644 --- a/Marlin/src/libs/heatshrink/heatshrink_decoder.cpp +++ b/Marlin/src/libs/heatshrink/heatshrink_decoder.cpp @@ -1,9 +1,36 @@ +/** + * Marlin 3D Printer Firmware + * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin] + * + * Based on Sprinter and grbl. + * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + */ + +#include "../../inc/MarlinConfigPre.h" + +#if ENABLED(BINARY_FILE_TRANSFER) + /** * libs/heatshrink/heatshrink_decoder.cpp */ +#include "heatshrink_decoder.h" + #include #include -#include "heatshrink_decoder.h" #pragma GCC optimize ("O3") @@ -353,3 +380,5 @@ static void push_byte(heatshrink_decoder *hsd, output_info *oi, uint8_t byte) { oi->buf[(*oi->output_size)++] = byte; (void)hsd; } + +#endif // BINARY_FILE_TRANSFER diff --git a/Marlin/src/libs/heatshrink/heatshrink_decoder.h b/Marlin/src/libs/heatshrink/heatshrink_decoder.h index 11fafe617..eb113aa5e 100644 --- a/Marlin/src/libs/heatshrink/heatshrink_decoder.h +++ b/Marlin/src/libs/heatshrink/heatshrink_decoder.h @@ -1,13 +1,36 @@ +/** + * Marlin 3D Printer Firmware + * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin] + * + * Based on Sprinter and grbl. + * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + */ + /** * libs/heatshrink/heatshrink_decoder.h */ #pragma once -#include -#include #include "heatshrink_common.h" #include "heatshrink_config.h" +#include +#include + typedef enum { HSDR_SINK_OK, /* data sunk, ready to poll */ HSDR_SINK_FULL, /* out of space in internal buffer */ diff --git a/Marlin/src/module/configuration_store.cpp b/Marlin/src/module/configuration_store.cpp index b9f44eb6f..28e15cfeb 100644 --- a/Marlin/src/module/configuration_store.cpp +++ b/Marlin/src/module/configuration_store.cpp @@ -404,7 +404,7 @@ typedef struct SettingsDataStruct { // HAS_CASE_LIGHT_BRIGHTNESS // #if HAS_CASE_LIGHT_BRIGHTNESS - uint8_t case_light_brightness; + uint8_t caselight_brightness; // M355 P #endif // @@ -465,7 +465,7 @@ void MarlinSettings::postprocess() { TERN_(HAS_LINEAR_E_JERK, planner.recalculate_max_e_jerk()); - TERN_(HAS_CASE_LIGHT_BRIGHTNESS, update_case_light()); + TERN_(HAS_CASE_LIGHT_BRIGHTNESS, caselight.update_brightness()); // Refresh steps_to_mm with the reciprocal of axis_steps_per_mm // and init stepper.count[], planner.position[] with current_position @@ -1342,7 +1342,7 @@ void MarlinSettings::postprocess() { // Case Light Brightness // #if HAS_CASE_LIGHT_BRIGHTNESS - EEPROM_WRITE(case_light_brightness); + EEPROM_WRITE(caselight.brightness); #endif // @@ -2181,8 +2181,8 @@ void MarlinSettings::postprocess() { // Case Light Brightness // #if HAS_CASE_LIGHT_BRIGHTNESS - _FIELD_TEST(case_light_brightness); - EEPROM_READ(case_light_brightness); + _FIELD_TEST(caselight_brightness); + EEPROM_READ(caselight.brightness); #endif // @@ -2493,7 +2493,7 @@ void MarlinSettings::reset() { // // Case Light Brightness // - TERN_(HAS_CASE_LIGHT_BRIGHTNESS, case_light_brightness = CASE_LIGHT_DEFAULT_BRIGHTNESS); + TERN_(HAS_CASE_LIGHT_BRIGHTNESS, caselight.brightness = CASE_LIGHT_DEFAULT_BRIGHTNESS); // // TOUCH_SCREEN_CALIBRATION diff --git a/buildroot/share/PlatformIO/scripts/common-dependencies.h b/buildroot/share/PlatformIO/scripts/common-dependencies.h index a1f8b095a..d18cb8c28 100644 --- a/buildroot/share/PlatformIO/scripts/common-dependencies.h +++ b/buildroot/share/PlatformIO/scripts/common-dependencies.h @@ -65,3 +65,91 @@ #ifdef HAL_PATH #include HAL_PATH(../../../../Marlin/src/HAL, inc/Conditionals_post.h) #endif + +// +// Conditionals only used for [features] +// +#if ENABLED(SR_LCD_3W_NL) + // Feature checks for SR_LCD_3W_NL +#elif EITHER(LCD_I2C_TYPE_MCP23017, LCD_I2C_TYPE_MCP23008) + #define USES_LIQUIDTWI2 +#elif ANY(HAS_CHARACTER_LCD, LCD_I2C_TYPE_PCF8575, LCD_I2C_TYPE_PCA8574, SR_LCD_2W_NL, LCM1602) + #define USES_LIQUIDCRYSTAL +#endif + +#if BOTH(ANYCUBIC_LCD_I3MEGA, EXTENSIBLE_UI) + #define HAS_ANYCUBIC_TFT_EXTUI +#endif + +#if SAVED_POSITIONS + #define HAS_SAVED_POSITIONS +#endif + +#if ENABLED(HOST_PROMPT_SUPPORT) && DISABLED(EMERGENCY_PARSER) + #define HAS_GCODE_M876 +#endif + +#if PREHEAT_COUNT + #define HAS_PREHEAT_COUNT +#endif + +#if EXTRUDERS + #define HAS_EXTRUDERS + #if EXTRUDERS > 1 + #define HAS_MULTI_EXTRUDER + #endif +#endif + +#if HAS_LCD_MENU + #if ENABLED(BACKLASH_GCODE) + #define HAS_MENU_BACKLASH + #endif + #if ENABLED(LEVEL_BED_CORNERS) + #define HAS_MENU_BED_CORNERS + #endif + #if ENABLED(CANCEL_OBJECTS) + #define HAS_MENU_CANCELOBJECT + #endif + #if ENABLED(CUSTOM_USER_MENUS) + #define HAS_MENU_CUSTOM + #endif + #if EITHER(DELTA_CALIBRATION_MENU, DELTA_AUTO_CALIBRATION) + #define HAS_MENU_DELTA_CALIBRATE + #endif + #if EITHER(LED_CONTROL_MENU, CASE_LIGHT_MENU) + #define HAS_MENU_LED + #endif + #if ENABLED(ADVANCED_PAUSE_FEATURE) + #define HAS_MENU_FILAMENT + #endif + #if ENABLED(SDSUPPORT) + #define HAS_MENU_MEDIA + #endif + #if ENABLED(MIXING_EXTRUDER) + #define HAS_MENU_MIXER + #endif + #if ENABLED(POWER_LOSS_RECOVERY) + #define HAS_MENU_JOB_RECOVERY + #endif + #if HAS_POWER_MONITOR + #define HAS_MENU_POWER_MONITOR + #endif + #if HAS_CUTTER + #define HAS_MENU_CUTTER + #endif + #if HAS_TEMPERATURE + #define HAS_MENU_TEMPERATURE + #endif + #if ENABLED(MMU2_MENUS) + #define HAS_MENU_MMU2 + #endif + #if HAS_TRINAMIC_CONFIG + #define HAS_MENU_TMC + #endif + #if ENABLED(TOUCH_SCREEN_CALIBRATION) + #define HAS_MENU_TOUCH_SCREEN + #endif + #if ENABLED(AUTO_BED_LEVELING_UBL) + #define HAS_MENU_UBL + #endif +#endif diff --git a/buildroot/share/PlatformIO/scripts/common-dependencies.py b/buildroot/share/PlatformIO/scripts/common-dependencies.py index 37efaa374..ec708b116 100644 --- a/buildroot/share/PlatformIO/scripts/common-dependencies.py +++ b/buildroot/share/PlatformIO/scripts/common-dependencies.py @@ -6,41 +6,56 @@ import subprocess import os import re try: - import configparser + import configparser except ImportError: - import ConfigParser as configparser + import ConfigParser as configparser from platformio.managers.package import PackageManager Import("env") -FEATURE_DEPENDENCIES = {} +FEATURE_CONFIG = {} + +def add_to_feat_cnf(feature, flines): + feat = FEATURE_CONFIG[feature] + atoms = re.sub(',\\s*', '\n', flines).strip().split('\n') + for dep in atoms: + parts = dep.split('=') + name = parts.pop(0) + rest = '='.join(parts) + if name in ['extra_scripts', 'src_filter', 'lib_ignore']: + feat[name] = rest + else: + feat['lib_deps'] += [dep] def load_config(): config = configparser.ConfigParser() config.read("platformio.ini") items = config.items('features') for key in items: - ukey = key[0].upper() - if not ukey in FEATURE_DEPENDENCIES: - FEATURE_DEPENDENCIES[ukey] = { - 'lib_deps': [] - } - deps = re.sub(',\\s*', '\n', key[1]).strip().split('\n') - for dep in deps: - parts = dep.split('=') - name = parts.pop(0) - rest = '='.join(parts) - if name in ['extra_scripts', 'src_filter', 'lib_ignore']: - FEATURE_DEPENDENCIES[ukey][name] = rest - else: - FEATURE_DEPENDENCIES[ukey]['lib_deps'] += [dep] + feature = key[0].upper() + if not feature in FEATURE_CONFIG: + FEATURE_CONFIG[feature] = { 'lib_deps': [] } + add_to_feat_cnf(feature, key[1]) + + # Add options matching marlin.MY_OPTION to the pile + all_opts = env.GetProjectOptions() + for n in all_opts: + mat = re.match(r'marlin\.(.+)', n[0]) + if mat: + try: + val = env.GetProjectOption(n[0]) + except: + val = None + if val: + add_to_feat_cnf(mat.group(1).upper(), val) def get_all_known_libs(): known_libs = [] - for feature in FEATURE_DEPENDENCIES: - if not 'lib_deps' in FEATURE_DEPENDENCIES[feature]: + for feature in FEATURE_CONFIG: + feat = FEATURE_CONFIG[feature] + if not 'lib_deps' in feat: continue - for dep in FEATURE_DEPENDENCIES[feature]['lib_deps']: + for dep in feat['lib_deps']: name, _, _ = PackageManager.parse_pkg_uri(dep) known_libs.append(name) return known_libs @@ -64,21 +79,23 @@ def force_ignore_unused_libs(): known_libs = get_all_known_libs() diff = (list(set(known_libs) - set(env_libs))) lib_ignore = env.GetProjectOption('lib_ignore') + diff - print("Ignoring libs:", lib_ignore) + print("Ignore libraries:", lib_ignore) set_env_field('lib_ignore', lib_ignore) -def install_features_dependencies(): +def apply_features_config(): load_config() - for feature in FEATURE_DEPENDENCIES: + for feature in FEATURE_CONFIG: if not env.MarlinFeatureIsEnabled(feature): continue - if 'lib_deps' in FEATURE_DEPENDENCIES[feature]: + feat = FEATURE_CONFIG[feature] + + if 'lib_deps' in feat and len(feat['lib_deps']): print("Adding lib_deps for %s... " % feature) - # deps to add + # feat to add deps_to_add = {} - for dep in FEATURE_DEPENDENCIES[feature]['lib_deps']: + for dep in feat['lib_deps']: name, _, _ = PackageManager.parse_pkg_uri(dep) deps_to_add[name] = dep @@ -101,27 +118,27 @@ def install_features_dependencies(): # Only add the missing dependencies set_env_field('lib_deps', deps + list(deps_to_add.values())) - if 'extra_scripts' in FEATURE_DEPENDENCIES[feature]: - print("Executing extra_scripts for %s... " % feature) - env.SConscript(FEATURE_DEPENDENCIES[feature]['extra_scripts'], exports="env") + if 'extra_scripts' in feat: + print("Running extra_scripts for %s... " % feature) + env.SConscript(feat['extra_scripts'], exports="env") - if 'src_filter' in FEATURE_DEPENDENCIES[feature]: + if 'src_filter' in feat: print("Adding src_filter for %s... " % feature) src_filter = ' '.join(env.GetProjectOption('src_filter')) # first we need to remove the references to the same folder - my_srcs = re.findall( r'[+-](<.*?>)', FEATURE_DEPENDENCIES[feature]['src_filter']) + my_srcs = re.findall( r'[+-](<.*?>)', feat['src_filter']) cur_srcs = re.findall( r'[+-](<.*?>)', src_filter) for d in my_srcs: if d in cur_srcs: src_filter = re.sub(r'[+-]' + d, '', src_filter) - src_filter = FEATURE_DEPENDENCIES[feature]['src_filter'] + ' ' + src_filter + src_filter = feat['src_filter'] + ' ' + src_filter set_env_field('src_filter', [src_filter]) env.Replace(SRC_FILTER=src_filter) - if 'lib_ignore' in FEATURE_DEPENDENCIES[feature]: - print("Ignoring libs for %s... " % feature) - lib_ignore = env.GetProjectOption('lib_ignore') + [FEATURE_DEPENDENCIES[feature]['lib_ignore']] + if 'lib_ignore' in feat: + print("Adding lib_ignore for %s... " % feature) + lib_ignore = env.GetProjectOption('lib_ignore') + [feat['lib_ignore']] set_env_field('lib_ignore', lib_ignore) # @@ -170,7 +187,7 @@ def search_compiler(): # Use the compiler to get a list of all enabled features # def load_marlin_features(): - if "MARLIN_FEATURES" in env: + if 'MARLIN_FEATURES' in env: return # Process defines @@ -199,16 +216,27 @@ def load_marlin_features(): feature = define[8:].strip().decode().split(' ') feature, definition = feature[0], ' '.join(feature[1:]) marlin_features[feature] = definition - env["MARLIN_FEATURES"] = marlin_features + env['MARLIN_FEATURES'] = marlin_features # # Return True if a matching feature is enabled # def MarlinFeatureIsEnabled(env, feature): load_marlin_features() - r = re.compile(feature) - matches = list(filter(r.match, env["MARLIN_FEATURES"])) - return len(matches) > 0 + r = re.compile('^' + feature + '$') + found = list(filter(r.match, env['MARLIN_FEATURES'])) + + # Defines could still be 'false' or '0', so check + some_on = False + if len(found): + for f in found: + val = env['MARLIN_FEATURES'][f] + if val in [ '', '1', 'true' ]: + some_on = True + elif val in env['MARLIN_FEATURES']: + some_on = env.MarlinFeatureIsEnabled(val) + + return some_on # # Add a method for other PIO scripts to query enabled features @@ -218,5 +246,5 @@ env.AddMethod(MarlinFeatureIsEnabled) # # Add dependencies for enabled Marlin features # -install_features_dependencies() +apply_features_config() force_ignore_unused_libs() diff --git a/platformio.ini b/platformio.ini index 029ce6588..6c3214d54 100644 --- a/platformio.ini +++ b/platformio.ini @@ -26,15 +26,160 @@ include_dir = Marlin # [common] default_src_filter = + - - + - - - - - - - - - - - + - - - - + - + - - - + - - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - + - + - + - + - + - + - - - - + - + - - - - - - - - + - - + - + - - + - - + - + - - - - - - + - - + - + - + - + - - + - - + - + - + - + - + - + - + - + - + - + - + - + - - + - + - + - - + - - + - + - - + - + - + - - + - - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - + - + - + - - + - + - + - + - + - - + - extra_scripts = pre:buildroot/share/PlatformIO/scripts/common-dependencies.py pre:buildroot/share/PlatformIO/scripts/common-cxxflags.py @@ -49,12 +194,17 @@ HAS_TFT_LVGL_UI = lvgl=https://github.com/makerbase-mks/MKS-LittlevGL/ar src_filter=+ extra_scripts=download_mks_assets.py HAS_TRINAMIC_CONFIG = TMCStepper@~0.7.1 - src_filter=+ + src_filter=+ + + + + +HAS_STEALTHCHOP = src_filter=+ SR_LCD_3W_NL = SailfishLCD=https://github.com/mikeshub/SailfishLCD/archive/master.zip -DIGIPOT_MCP4... = SlowSoftI2CMaster +HAS_I2C_DIGIPOT = SlowSoftI2CMaster + src_filter=+ HAS_TMC26X = TMC26XStepper=https://github.com/trinamic/TMC26XStepper/archive/master.zip + src_filter=+ HAS_L64XX = Arduino-L6470@0.8.0 + src_filter=+ + + NEOPIXEL_LED = Adafruit NeoPixel@1.5.0 + src_filter=+ MAX6675_IS_MAX31865 = Adafruit MAX31865 library@~1.1.0 HAS_GRAPHICAL_LCD = U8glib-HAL@0.4.1 src_filter=+ @@ -64,17 +214,143 @@ DWIN_CREALITY_LCD = src_filter=+ HAS_CHARACTER_LCD = src_filter=+ HAS_GRAPHICAL_TFT = src_filter=+ HAS_LCD_MENU = src_filter=+ -HAS_DGUS_LCD = src_filter=+ -TOUCH_UI_FTDI_EVE = src_filter=+ +HAS_GAMES = src_filter=+ +MARLIN_BRICKOUT = src_filter=+ +MARLIN_INVADERS = src_filter=+ +MARLIN_MAZE = src_filter=+ +MARLIN_SNAKE = src_filter=+ +HAS_MENU_BACKLASH = src_filter=+ +HAS_MENU_BED_CORNERS = src_filter=+ +LCD_BED_LEVELING = src_filter=+ +HAS_MENU_CANCELOBJECT = src_filter=+ +HAS_MENU_DELTA_CALIBRATE = src_filter=+ +HAS_MENU_FILAMENT = src_filter=+ +LCD_INFO_MENU = src_filter=+ +HAS_MENU_JOB_RECOVERY = src_filter=+ +HAS_MENU_LED = src_filter=+ +HAS_MENU_MEDIA = src_filter=+ +HAS_MENU_MIXER = src_filter=+ +HAS_MENU_MMU2 = src_filter=+ +HAS_MENU_POWER_MONITOR = src_filter=+ +HAS_MENU_CUTTER = src_filter=+ +HAS_MENU_TEMPERATURE = src_filter=+ +HAS_MENU_TMC = src_filter=+ +HAS_MENU_TOUCH_SCREEN = src_filter=+ +HAS_MENU_UBL = src_filter=+ ANYCUBIC_LCD_I3MEGA = src_filter=+ +HAS_DGUS_LCD = src_filter=+ + +TOUCH_UI_FTDI_EVE = src_filter=+ +HAS_ANYCUBIC_TFT_EXTUI = src_filter=+ +EXTUI_EXAMPLE = src_filter=+ +MALYAN_LCD = src_filter=+ +HAS_SPI_LCD = src_filter=+ USB_FLASH_DRIVE_SUPPORT = src_filter=+ -AUTO_BED_LEVELING_(3POINT|(BI)?LINEAR) = src_filter=+ + +AUTO_BED_LEVELING_BILINEAR = src_filter=+ +AUTO_BED_LEVELING_(3POINT|(BI)?LINEAR) = src_filter=+ MESH_BED_LEVELING = src_filter=+ + AUTO_BED_LEVELING_UBL = src_filter=+ + +BACKLASH_COMPENSATION = src_filter=+ +BARICUDA = src_filter=+ + +BINARY_FILE_TRANSFER = src_filter=+ + +BLTOUCH = src_filter=+ +CANCEL_OBJECTS = src_filter=+ + +CASE_LIGHT_ENABLE = src_filter=+ + +EXTERNAL_CLOSED_LOOP_CONTROLLER = src_filter=+ + +USE_CONTROLLER_FAN = src_filter=+ DAC_STEPPER_CURRENT = src_filter=+ -HAS_I2C_DIGIPOT = src_filter=+ -HAS_LED_FEATURE = src_filter=+ -(ESP3D_)?WIFISUPPORT = AsyncTCP, ESP Async WebServer +DIRECT_STEPPING = src_filter=+ + +EMERGENCY_PARSER = src_filter=+ - +I2C_POSITION_ENCODERS = src_filter=+ +HAS_FANMUX = src_filter=+ +FILAMENT_WIDTH_SENSOR = src_filter=+ + +FWRETRACT = src_filter=+ + +HOST_ACTION_COMMANDS = src_filter=+ +HOTEND_IDLE_TIMEOUT = src_filter=+ +JOYSTICK = src_filter=+ +BLINKM = src_filter=+ +HAS_COLOR_LEDS = src_filter=+ + +PCA9533 = src_filter=+ +PCA9632 = src_filter=+ +PRINTER_EVENT_LEDS = src_filter=+ +TEMP_STAT_LEDS = src_filter=+ +MAX7219_DEBUG = src_filter=+ + +MIXING_EXTRUDER = src_filter=+ + +PRUSA_MMU2 = src_filter=+ + +ADVANCED_PAUSE_FEATURE = src_filter=+ + + +AUTO_POWER_CONTROL = src_filter=+ +HAS_POWER_MONITOR = src_filter=+ + +POWER_LOSS_RECOVERY = src_filter=+ + +PROBE_TEMP_COMPENSATION = src_filter=+ + +HAS_FILAMENT_SENSOR = src_filter=+ + +MK2_MULTIPLEXER = src_filter=+ +EXT_SOLENOID|MANUAL_SOLENOID_CONTROL = src_filter=+ +HAS_CUTTER = src_filter=+ + +EXPERIMENTAL_I2CBUS = src_filter=+ + +Z_STEPPER_AUTO_ALIGN = src_filter=+ + +G26_MESH_VALIDATION = src_filter=+ +ASSISTED_TRAMMING = src_filter=+ +HAS_MESH = src_filter=+ +HAS_LEVELING = src_filter=+ +DELTA_AUTO_CALIBRATION = src_filter=+ +CALIBRATION_GCODE = src_filter=+ +Z_MIN_PROBE_REPEATABILITY_TEST = src_filter=+ +M100_FREE_MEMORY_WATCHER = src_filter=+ +BACKLASH_GCODE = src_filter=+ +IS_KINEMATIC = src_filter=+ +HAS_EXTRA_ENDSTOPS = src_filter=+ +SKEW_CORRECTION_GCODE = src_filter=+ +PINS_DEBUGGING = src_filter=- +NO_VOLUMETRICS = src_filter=- +HAS_MULTI_EXTRUDER = src_filter=+ +HAS_HOTEND_OFFSET = src_filter=+ +EDITABLE_SERVO_ANGLES = src_filter=+ +PREVENT_COLD_EXTRUSION = src_filter=+ +HAS_USER_THERMISTORS = src_filter=+ +SD_ABORT_ON_ENDSTOP_HIT = src_filter=+ +COOLANT_CONTROL = src_filter=+ +HAS_SOFTWARE_ENDSTOPS = src_filter=+ +HAS_DUPLICATION_MODE = src_filter=+ +LIN_ADVANCE = src_filter=+ +PHOTO_GCODE = src_filter=+ +CONTROLLER_FAN_EDITABLE = src_filter=+ +GCODE_MACROS = src_filter=+ +GRADIENT_MIX = src_filter=+ +HAS_SAVED_POSITIONS = src_filter=+ + +PARK_HEAD_ON_PAUSE = src_filter=+ +FILAMENT_LOAD_UNLOAD_GCODES = src_filter=+ +CNC_WORKSPACE_PLANES = src_filter=+ +CNC_COORDINATE_SYSTEMS = src_filter=+ +HAS_M206_COMMAND = src_filter=+ +EXPECTED_PRINTER_CHECK = src_filter=+ +HOST_KEEPALIVE_FEATURE = src_filter=+ +REPETIER_GCODE_M360 = src_filter=+ +HAS_GCODE_M876 = src_filter=+ +HAS_RESUME_CONTINUE = src_filter=+ +HAS_PREHEAT_COUNT = src_filter=+ +HAS_LCD_CONTRAST = src_filter=+ +LCD_SET_PROGRESS_MANUALLY = src_filter=+ +TOUCH_SCREEN_CALIBRATION = src_filter=+ +ARC_SUPPORT = src_filter=+ +GCODE_MOTION_MODES = src_filter=+ +BABYSTEPPING = src_filter=+ +Z_PROBE_SLED = src_filter=+ +G38_PROBE_TARGET = src_filter=+ +MAGNETIC_PARKING_EXTRUDER = src_filter=+ +SDSUPPORT = src_filter=+ +HAS_EXTRUDERS = src_filter=+ + +INCH_MODE_SUPPORT = src_filter=+ +TEMPERATURE_UNITS_SUPPORT = src_filter=+ +NEED_HEX_PRINT = src_filter=+ +NEED_LSF = src_filter=+ +NOZZLE_PARK_FEATURE = src_filter=+ + +NOZZLE_CLEAN_FEATURE = src_filter=+ + +DELTA = src_filter=+ + +BEZIER_CURVE_SUPPORT = src_filter=+ + +PRINTCOUNTER = src_filter=+ +HAS_BED_PROBE = src_filter=+ + + + +IS_SCARA = src_filter=+ +MORGAN_SCARA = src_filter=+ +(ESP3D_)?WIFISUPPORT = AsyncTCP, ESP Async WebServer ESP3DLib=https://github.com/luc-github/ESP3DLib.git arduinoWebSockets=https://github.com/Links2004/arduinoWebSockets.git ESP32SSDP=https://github.com/luc-github/ESP32SSDP.git @@ -268,14 +544,13 @@ src_filter = ${common.default_src_filter} + [env:DUE_USB] platform = atmelsam +extends = env:DUE board = dueUSB -src_filter = ${common.default_src_filter} + [env:DUE_debug] # Used when WATCHDOG_RESET_MANUAL is enabled platform = atmelsam -board = due -src_filter = ${common.default_src_filter} + +extends = env:DUE build_flags = ${common.build_flags} -funwind-tables -mpoke-function-name @@ -285,8 +560,7 @@ build_flags = ${common.build_flags} # [common_DUE_archim] platform = atmelsam -board = due -src_filter = ${common.default_src_filter} + +extends = env:DUE build_flags = ${common.build_flags} -DARDUINO_SAM_ARCHIM -DARDUINO_ARCH_SAM -D__SAM3X8E__ -DUSBCON extra_scripts = ${common.extra_scripts} @@ -320,7 +594,7 @@ src_filter = ${common.default_src_filter} + lib_deps = ${common.lib_deps} SoftwareSerialM Adafruit SPIFlash - SdFat - Adafruit Fork +marlin.SDSUPPORT = SdFat - Adafruit Fork debug_tool = jlink ################################# @@ -342,8 +616,8 @@ extra_scripts = ${common.extra_scripts} src_filter = ${common.default_src_filter} + lib_deps = ${common.lib_deps} Servo - LiquidCrystal@1.0.0 - Adafruit NeoPixel=https://github.com/p3p/Adafruit_NeoPixel/archive/1.5.0.zip +marlin.USES_LIQUIDCRYSTAL = LiquidCrystal@1.0.0 +marlin.NEOPIXEL_LED = Adafruit NeoPixel=https://github.com/p3p/Adafruit_NeoPixel/archive/1.5.0.zip build_flags = ${common.build_flags} -DU8G_HAL_LINKS -IMarlin/src/HAL/LPC1768/include -IMarlin/src/HAL/LPC1768/u8g # debug options for backtrace #-funwind-tables @@ -426,9 +700,9 @@ extra_scripts = ${common.extra_scripts} pre:buildroot/share/PlatformIO/scripts/STM32F1_create_variant.py buildroot/share/PlatformIO/scripts/STM32F103RC_MEEB_3DP.py lib_deps = ${common.lib_deps} - Adafruit NeoPixel=https://github.com/ccccmagicboy/Adafruit_NeoPixel#meeb_3dp_use SoftwareSerialM USBComposite for STM32F1@0.91 +marlin.NEOPIXEL_LED = Adafruit NeoPixel=https://github.com/ccccmagicboy/Adafruit_NeoPixel#meeb_3dp_use debug_tool = stlink upload_protocol = dfu From b2abeff9ad9fe5182afd0fd7d3e730c0894ff361 Mon Sep 17 00:00:00 2001 From: Victor Oliveira Date: Thu, 6 Aug 2020 10:15:19 -0300 Subject: [PATCH 055/194] MKS Robin Nano CI Tests (#18927) --- .github/workflows/test-builds.yml | 2 +- .../src/lcd/extui/lib/mks_ui/pic_manager.cpp | 3 +- buildroot/tests/mks_robin_nano-tests | 15 ------- buildroot/tests/mks_robin_nano35-tests | 39 +++++++++++++++++++ 4 files changed, 41 insertions(+), 18 deletions(-) delete mode 100644 buildroot/tests/mks_robin_nano-tests create mode 100644 buildroot/tests/mks_robin_nano35-tests diff --git a/.github/workflows/test-builds.yml b/.github/workflows/test-builds.yml index bcc42fbd6..fdb81fbdc 100644 --- a/.github/workflows/test-builds.yml +++ b/.github/workflows/test-builds.yml @@ -78,6 +78,7 @@ jobs: - mks_robin_pro - STM32F103RET6_creality - LERDGEX + - mks_robin_nano35 # Put lengthy tests last @@ -94,7 +95,6 @@ jobs: #- at90usb1286_dfu #- STM32F103CB_malyan #- mks_robin_mini - #- mks_robin_nano steps: diff --git a/Marlin/src/lcd/extui/lib/mks_ui/pic_manager.cpp b/Marlin/src/lcd/extui/lib/mks_ui/pic_manager.cpp index 3f87c5183..072213e49 100644 --- a/Marlin/src/lcd/extui/lib/mks_ui/pic_manager.cpp +++ b/Marlin/src/lcd/extui/lib/mks_ui/pic_manager.cpp @@ -510,9 +510,8 @@ uint8_t public_buf[512]; uint8_t pic_counter = 0; W25QXX.SPI_FLASH_BufferRead(&pic_counter, PIC_COUNTER_ADDR, 1); SERIAL_ECHOLNPAIR("Total assets loaded: ", pic_counter); + SERIAL_ECHOLNPAIR("Total Uncompressed: ", totalSizes, ", Compressed: ", totalCompressed); #endif - - SERIAL_ECHOLNPAIR("Total Uncompressed: ", totalSizes, ", Compressed: ", totalCompressed); } #if HAS_SPI_FLASH_FONT diff --git a/buildroot/tests/mks_robin_nano-tests b/buildroot/tests/mks_robin_nano-tests deleted file mode 100644 index d3df7e2e5..000000000 --- a/buildroot/tests/mks_robin_nano-tests +++ /dev/null @@ -1,15 +0,0 @@ -#!/usr/bin/env bash -# -# Build tests for MKS Robin nano -# (STM32F1 genericSTM32F103VE) -# - -# exit on first failure -set -e - -use_example_configs Mks/Robin -opt_set MOTHERBOARD BOARD_MKS_ROBIN_NANO -exec_test $1 $2 "MKS Robin nano" - -# cleanup -restore_configs diff --git a/buildroot/tests/mks_robin_nano35-tests b/buildroot/tests/mks_robin_nano35-tests new file mode 100644 index 000000000..ac7205087 --- /dev/null +++ b/buildroot/tests/mks_robin_nano35-tests @@ -0,0 +1,39 @@ +#!/usr/bin/env bash +# +# Build tests for MKS Robin nano +# (STM32F1 genericSTM32F103VE) +# + +# exit on first failure +set -e + +use_example_configs Mks/Robin +opt_set MOTHERBOARD BOARD_MKS_ROBIN_NANO +opt_disable TFT_320x240 +opt_enable TOUCH_SCREEN +opt_enable FSMC_GRAPHICAL_TFT +exec_test $1 $2 "MKS Robin nano v1.2 Emulated DOGM FSMC" + +use_example_configs Mks/Robin +opt_set MOTHERBOARD BOARD_MKS_ROBIN_NANO_V2 +opt_disable TFT_320x240 +opt_enable TOUCH_SCREEN +opt_enable SPI_GRAPHICAL_TFT +exec_test $1 $2 "MKS Robin v2 nano Emulated DOGM SPI" + +use_example_configs Mks/Robin +opt_set MOTHERBOARD BOARD_MKS_ROBIN_NANO +opt_disable TFT_320x240 +opt_disable TOUCH_SCREEN +opt_enable TFT_LVGL_UI_FSMC +exec_test $1 $2 "MKS Robin nano v1.2 LVGL FSMC" + +use_example_configs Mks/Robin +opt_set MOTHERBOARD BOARD_MKS_ROBIN_NANO_V2 +opt_disable TFT_320x240 +opt_disable TOUCH_SCREEN +opt_enable TFT_LVGL_UI_SPI +exec_test $1 $2 "MKS Robin v2 nano LVGL SPI" + +# cleanup +restore_configs From 4c8bb99059ae1e06319b4b9e9f5bb6914b5c8c1d Mon Sep 17 00:00:00 2001 From: Radek <46979052+radek8@users.noreply.github.com> Date: Fri, 7 Aug 2020 00:21:55 +0200 Subject: [PATCH 056/194] Increase Manual E Move Feedrate to 2mm/s (#18937) --- Marlin/Configuration_adv.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Marlin/Configuration_adv.h b/Marlin/Configuration_adv.h index de50995ff..a3013611c 100644 --- a/Marlin/Configuration_adv.h +++ b/Marlin/Configuration_adv.h @@ -1025,7 +1025,7 @@ // @section lcd #if EITHER(ULTIPANEL, EXTENSIBLE_UI) - #define MANUAL_FEEDRATE { 50*60, 50*60, 4*60, 60 } // Feedrates for manual moves along X, Y, Z, E from panel + #define MANUAL_FEEDRATE { 50*60, 50*60, 4*60, 2*60 } // Feedrates for manual moves along X, Y, Z, E from panel #define SHORT_MANUAL_Z_MOVE 0.025 // (mm) Smallest manual Z move (< 0.1mm) #if ENABLED(ULTIPANEL) #define MANUAL_E_MOVES_RELATIVE // Display extruder move distance rather than "position" From c3fdc7f81ec015fff664c4cddb61077e503e6a3f Mon Sep 17 00:00:00 2001 From: Victor Oliveira Date: Thu, 6 Aug 2020 19:33:42 -0300 Subject: [PATCH 057/194] Apply PIO-supported custom_option for deps (#18935) --- buildroot/share/PlatformIO/scripts/common-dependencies.py | 4 ++-- platformio.ini | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/buildroot/share/PlatformIO/scripts/common-dependencies.py b/buildroot/share/PlatformIO/scripts/common-dependencies.py index ec708b116..e09c639ad 100644 --- a/buildroot/share/PlatformIO/scripts/common-dependencies.py +++ b/buildroot/share/PlatformIO/scripts/common-dependencies.py @@ -37,10 +37,10 @@ def load_config(): FEATURE_CONFIG[feature] = { 'lib_deps': [] } add_to_feat_cnf(feature, key[1]) - # Add options matching marlin.MY_OPTION to the pile + # Add options matching custom_marlin.MY_OPTION to the pile all_opts = env.GetProjectOptions() for n in all_opts: - mat = re.match(r'marlin\.(.+)', n[0]) + mat = re.match(r'custom_marlin\.(.+)', n[0]) if mat: try: val = env.GetProjectOption(n[0]) diff --git a/platformio.ini b/platformio.ini index 6c3214d54..ee4d4e12f 100644 --- a/platformio.ini +++ b/platformio.ini @@ -594,7 +594,7 @@ src_filter = ${common.default_src_filter} + lib_deps = ${common.lib_deps} SoftwareSerialM Adafruit SPIFlash -marlin.SDSUPPORT = SdFat - Adafruit Fork +custom_marlin.SDSUPPORT = SdFat - Adafruit Fork debug_tool = jlink ################################# @@ -616,8 +616,8 @@ extra_scripts = ${common.extra_scripts} src_filter = ${common.default_src_filter} + lib_deps = ${common.lib_deps} Servo -marlin.USES_LIQUIDCRYSTAL = LiquidCrystal@1.0.0 -marlin.NEOPIXEL_LED = Adafruit NeoPixel=https://github.com/p3p/Adafruit_NeoPixel/archive/1.5.0.zip +custom_marlin.USES_LIQUIDCRYSTAL = LiquidCrystal@1.0.0 +custom_marlin.NEOPIXEL_LED = Adafruit NeoPixel=https://github.com/p3p/Adafruit_NeoPixel/archive/1.5.0.zip build_flags = ${common.build_flags} -DU8G_HAL_LINKS -IMarlin/src/HAL/LPC1768/include -IMarlin/src/HAL/LPC1768/u8g # debug options for backtrace #-funwind-tables @@ -702,7 +702,7 @@ extra_scripts = ${common.extra_scripts} lib_deps = ${common.lib_deps} SoftwareSerialM USBComposite for STM32F1@0.91 -marlin.NEOPIXEL_LED = Adafruit NeoPixel=https://github.com/ccccmagicboy/Adafruit_NeoPixel#meeb_3dp_use +custom_marlin.NEOPIXEL_LED = Adafruit NeoPixel=https://github.com/ccccmagicboy/Adafruit_NeoPixel#meeb_3dp_use debug_tool = stlink upload_protocol = dfu From 821d9e374eec799979363fd38f7a8ce3bd90a8fe Mon Sep 17 00:00:00 2001 From: thinkyhead Date: Fri, 7 Aug 2020 00:10:58 +0000 Subject: [PATCH 058/194] [cron] Bump distribution date (2020-08-07) --- Marlin/src/inc/Version.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Marlin/src/inc/Version.h b/Marlin/src/inc/Version.h index 5b63f3129..2a6e9a3c4 100644 --- a/Marlin/src/inc/Version.h +++ b/Marlin/src/inc/Version.h @@ -42,7 +42,7 @@ * version was tagged. */ #ifndef STRING_DISTRIBUTION_DATE - #define STRING_DISTRIBUTION_DATE "2020-08-06" + #define STRING_DISTRIBUTION_DATE "2020-08-07" #endif /** From 35e11e5f8bf873a399e722d048669e72cc492a29 Mon Sep 17 00:00:00 2001 From: Victor Oliveira Date: Thu, 6 Aug 2020 22:52:01 -0300 Subject: [PATCH 059/194] Followup fixes to LVGL for Chitu (#18940) --- Marlin/src/lcd/extui/lib/mks_ui/pic_manager.h | 2 +- Marlin/src/pins/stm32f1/pins_CHITU3D_V5.h | 29 ++++++++++--------- Marlin/src/pins/stm32f1/pins_CHITU3D_V6.h | 29 ++++++++++--------- 3 files changed, 33 insertions(+), 27 deletions(-) diff --git a/Marlin/src/lcd/extui/lib/mks_ui/pic_manager.h b/Marlin/src/lcd/extui/lib/mks_ui/pic_manager.h index d97b54a65..c71bdbd73 100644 --- a/Marlin/src/lcd/extui/lib/mks_ui/pic_manager.h +++ b/Marlin/src/lcd/extui/lib/mks_ui/pic_manager.h @@ -25,7 +25,7 @@ extern "C" { /* C-declarations for C++ */ #endif -#include "../../inc/MarlinConfigPre.h" +#include "../../../../inc/MarlinConfig.h" #include diff --git a/Marlin/src/pins/stm32f1/pins_CHITU3D_V5.h b/Marlin/src/pins/stm32f1/pins_CHITU3D_V5.h index b6863d252..6a3936588 100644 --- a/Marlin/src/pins/stm32f1/pins_CHITU3D_V5.h +++ b/Marlin/src/pins/stm32f1/pins_CHITU3D_V5.h @@ -147,21 +147,24 @@ #endif #endif -#define SPI_FLASH_SIZE 0x200000 // 2MB +// SPI Flash +#define SPI_FLASH_SIZE 0x200000 // 2MB +#define HAS_SPI_FLASH 1 + +// SPI 2 +#define W25QXX_CS_PIN PB12 +#define W25QXX_MOSI_PIN PB15 +#define W25QXX_MISO_PIN PB14 +#define W25QXX_SCK_PIN PB13 #if HAS_TFT_LVGL_UI - #define HAS_SPI_FLASH_FONT 1 - #define HAS_GCODE_PREVIEW 1 - #define HAS_GCODE_DEFAULT_VIEW_IN_FLASH 0 - #define HAS_LANG_SELECT_SCREEN 1 - #define HAS_BAK_VIEW_IN_FLASH 0 - #define HAS_LOGO_IN_FLASH 0 - - // SPI 2 - #define W25QXX_CS_PIN PB12 - #define W25QXX_MOSI_PIN PB15 - #define W25QXX_MISO_PIN PB14 - #define W25QXX_SCK_PIN PB13 + #define HAS_SPI_FLASH_FONT 1 + #define HAS_GCODE_PREVIEW 1 + #define HAS_GCODE_DEFAULT_VIEW_IN_FLASH 0 + #define HAS_LANG_SELECT_SCREEN 1 + #define HAS_BAK_VIEW_IN_FLASH 0 + #define HAS_LOGO_IN_FLASH 0 + #define HAS_TOUCH_XPT2046 1 #define TOUCH_CS_PIN PB7 // SPI1_NSS #define TOUCH_SCK_PIN PA5 // SPI1_SCK diff --git a/Marlin/src/pins/stm32f1/pins_CHITU3D_V6.h b/Marlin/src/pins/stm32f1/pins_CHITU3D_V6.h index 7a3777da4..be64512b5 100644 --- a/Marlin/src/pins/stm32f1/pins_CHITU3D_V6.h +++ b/Marlin/src/pins/stm32f1/pins_CHITU3D_V6.h @@ -158,21 +158,24 @@ #endif #endif -#define SPI_FLASH_SIZE 0x200000 // 2MB +// SPI Flash +#define SPI_FLASH_SIZE 0x200000 // 2MB +#define HAS_SPI_FLASH 1 + +// SPI 2 +#define W25QXX_CS_PIN PB12 +#define W25QXX_MOSI_PIN PB15 +#define W25QXX_MISO_PIN PB14 +#define W25QXX_SCK_PIN PB13 #if HAS_TFT_LVGL_UI - #define HAS_SPI_FLASH_FONT 0 - #define HAS_GCODE_PREVIEW 1 - #define HAS_GCODE_DEFAULT_VIEW_IN_FLASH 0 - #define HAS_LANG_SELECT_SCREEN 0 - #define HAS_BAK_VIEW_IN_FLASH 0 - #define HAS_LOGO_IN_FLASH 0 - - // SPI 2 - #define W25QXX_CS_PIN PB12 - #define W25QXX_MOSI_PIN PB15 - #define W25QXX_MISO_PIN PB14 - #define W25QXX_SCK_PIN PB13 + #define HAS_SPI_FLASH_FONT 0 + #define HAS_GCODE_PREVIEW 1 + #define HAS_GCODE_DEFAULT_VIEW_IN_FLASH 0 + #define HAS_LANG_SELECT_SCREEN 0 + #define HAS_BAK_VIEW_IN_FLASH 0 + #define HAS_LOGO_IN_FLASH 0 + #define HAS_TOUCH_XPT2046 1 #define TOUCH_CS_PIN PB7 // SPI1_NSS #define TOUCH_SCK_PIN PA5 // SPI1_SCK From 5e08efb0fc0e5991f70c19f55112025145128b59 Mon Sep 17 00:00:00 2001 From: Victor Oliveira Date: Fri, 7 Aug 2020 03:53:43 -0300 Subject: [PATCH 060/194] Fix LVGL "C" brace (#18942) --- Marlin/src/lcd/extui/lib/mks_ui/pic_manager.h | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Marlin/src/lcd/extui/lib/mks_ui/pic_manager.h b/Marlin/src/lcd/extui/lib/mks_ui/pic_manager.h index c71bdbd73..354e11a54 100644 --- a/Marlin/src/lcd/extui/lib/mks_ui/pic_manager.h +++ b/Marlin/src/lcd/extui/lib/mks_ui/pic_manager.h @@ -21,10 +21,6 @@ */ #pragma once -#ifdef __cplusplus -extern "C" { /* C-declarations for C++ */ -#endif - #include "../../../../inc/MarlinConfig.h" #include @@ -125,6 +121,10 @@ extern "C" { /* C-declarations for C++ */ // SD card information first addr #define VAR_INF_ADDR 0x000000 +#ifdef __cplusplus +extern "C" { /* C-declarations for C++ */ +#endif + union union32 { uint8_t bytes[4]; uint32_t dwords; From cec035688df8e3c072476404f7b4cdb6fafce087 Mon Sep 17 00:00:00 2001 From: Victor Oliveira Date: Fri, 7 Aug 2020 03:55:15 -0300 Subject: [PATCH 061/194] Fix / optimize FSMC init (#18941) --- .../STM32F1/dogm/u8g_com_stm32duino_fsmc.cpp | 18 +++++++----------- Marlin/src/lcd/extui/lib/mks_ui/tft_fsmc.cpp | 18 +++++++----------- 2 files changed, 14 insertions(+), 22 deletions(-) diff --git a/Marlin/src/HAL/STM32F1/dogm/u8g_com_stm32duino_fsmc.cpp b/Marlin/src/HAL/STM32F1/dogm/u8g_com_stm32duino_fsmc.cpp index 0f3887d29..445e53b67 100644 --- a/Marlin/src/HAL/STM32F1/dogm/u8g_com_stm32duino_fsmc.cpp +++ b/Marlin/src/HAL/STM32F1/dogm/u8g_com_stm32duino_fsmc.cpp @@ -171,16 +171,17 @@ LCD_CONTROLLER_TypeDef *LCD; void LCD_IO_Init(uint8_t cs, uint8_t rs) { uint32_t controllerAddress; + struct fsmc_nor_psram_reg_map* fsmcPsramRegion; if (fsmcInit) return; fsmcInit = 1; switch (cs) { - case FSMC_CS_NE1: controllerAddress = (uint32_t)FSMC_NOR_PSRAM_REGION1; break; + case FSMC_CS_NE1: controllerAddress = (uint32_t)FSMC_NOR_PSRAM_REGION1; fsmcPsramRegion = FSMC_NOR_PSRAM1_BASE; break; #if ENABLED(STM32_XL_DENSITY) - case FSMC_CS_NE2: controllerAddress = (uint32_t)FSMC_NOR_PSRAM_REGION2; break; - case FSMC_CS_NE3: controllerAddress = (uint32_t)FSMC_NOR_PSRAM_REGION3; break; - case FSMC_CS_NE4: controllerAddress = (uint32_t)FSMC_NOR_PSRAM_REGION4; break; + case FSMC_CS_NE2: controllerAddress = (uint32_t)FSMC_NOR_PSRAM_REGION2; fsmcPsramRegion = FSMC_NOR_PSRAM2_BASE; break; + case FSMC_CS_NE3: controllerAddress = (uint32_t)FSMC_NOR_PSRAM_REGION3; fsmcPsramRegion = FSMC_NOR_PSRAM3_BASE; break; + case FSMC_CS_NE4: controllerAddress = (uint32_t)FSMC_NOR_PSRAM_REGION4; fsmcPsramRegion = FSMC_NOR_PSRAM4_BASE; break; #endif default: return; } @@ -246,13 +247,8 @@ void LCD_IO_Init(uint8_t cs, uint8_t rs) { gpio_set_mode(PIN_MAP[cs].gpio_device, PIN_MAP[cs].gpio_bit, GPIO_AF_OUTPUT_PP); //FSMC_CS_NEx gpio_set_mode(PIN_MAP[rs].gpio_device, PIN_MAP[rs].gpio_bit, GPIO_AF_OUTPUT_PP); //FSMC_RS_Ax - #if ENABLED(STM32_XL_DENSITY) - FSMC_NOR_PSRAM4_BASE->BCR = FSMC_BCR_WREN | FSMC_BCR_MTYP_SRAM | FSMC_BCR_MWID_16BITS | FSMC_BCR_MBKEN; - FSMC_NOR_PSRAM4_BASE->BTR = (FSMC_DATA_SETUP_TIME << 8) | FSMC_ADDRESS_SETUP_TIME; - #else // PSRAM1 for STM32F103V (high density) - FSMC_NOR_PSRAM1_BASE->BCR = FSMC_BCR_WREN | FSMC_BCR_MTYP_SRAM | FSMC_BCR_MWID_16BITS | FSMC_BCR_MBKEN; - FSMC_NOR_PSRAM1_BASE->BTR = (FSMC_DATA_SETUP_TIME << 8) | FSMC_ADDRESS_SETUP_TIME; - #endif + fsmcPsramRegion->BCR = FSMC_BCR_WREN | FSMC_BCR_MTYP_SRAM | FSMC_BCR_MWID_16BITS | FSMC_BCR_MBKEN; + fsmcPsramRegion->BTR = (FSMC_DATA_SETUP_TIME << 8) | FSMC_ADDRESS_SETUP_TIME; afio_remap(AFIO_REMAP_FSMC_NADV); diff --git a/Marlin/src/lcd/extui/lib/mks_ui/tft_fsmc.cpp b/Marlin/src/lcd/extui/lib/mks_ui/tft_fsmc.cpp index a039cbe0c..a257d0348 100644 --- a/Marlin/src/lcd/extui/lib/mks_ui/tft_fsmc.cpp +++ b/Marlin/src/lcd/extui/lib/mks_ui/tft_fsmc.cpp @@ -104,16 +104,17 @@ void LCD_IO_Init(uint8_t cs, uint8_t rs) { uint32_t controllerAddress; + struct fsmc_nor_psram_reg_map* fsmcPsramRegion; if (fsmcInit) return; fsmcInit = 1; switch (cs) { - case FSMC_CS_NE1: controllerAddress = (uint32_t)FSMC_NOR_PSRAM_REGION1; break; + case FSMC_CS_NE1: controllerAddress = (uint32_t)FSMC_NOR_PSRAM_REGION1; fsmcPsramRegion = FSMC_NOR_PSRAM1_BASE; break; #if ENABLED(STM32_XL_DENSITY) - case FSMC_CS_NE2: controllerAddress = (uint32_t)FSMC_NOR_PSRAM_REGION2; break; - case FSMC_CS_NE3: controllerAddress = (uint32_t)FSMC_NOR_PSRAM_REGION3; break; - case FSMC_CS_NE4: controllerAddress = (uint32_t)FSMC_NOR_PSRAM_REGION4; break; + case FSMC_CS_NE2: controllerAddress = (uint32_t)FSMC_NOR_PSRAM_REGION2; fsmcPsramRegion = FSMC_NOR_PSRAM2_BASE; break; + case FSMC_CS_NE3: controllerAddress = (uint32_t)FSMC_NOR_PSRAM_REGION3; fsmcPsramRegion = FSMC_NOR_PSRAM3_BASE; break; + case FSMC_CS_NE4: controllerAddress = (uint32_t)FSMC_NOR_PSRAM_REGION4; fsmcPsramRegion = FSMC_NOR_PSRAM4_BASE; break; #endif default: return; } @@ -179,13 +180,8 @@ gpio_set_mode(PIN_MAP[cs].gpio_device, PIN_MAP[cs].gpio_bit, GPIO_AF_OUTPUT_PP); //FSMC_CS_NEx gpio_set_mode(PIN_MAP[rs].gpio_device, PIN_MAP[rs].gpio_bit, GPIO_AF_OUTPUT_PP); //FSMC_RS_Ax - #if ENABLED(STM32_XL_DENSITY) - FSMC_NOR_PSRAM4_BASE->BCR = FSMC_BCR_WREN | FSMC_BCR_MTYP_SRAM | FSMC_BCR_MWID_16BITS | FSMC_BCR_MBKEN; - FSMC_NOR_PSRAM4_BASE->BTR = (FSMC_DATA_SETUP_TIME << 8) | FSMC_ADDRESS_SETUP_TIME; - #else // PSRAM1 for STM32F103V (high density) - FSMC_NOR_PSRAM1_BASE->BCR = FSMC_BCR_WREN | FSMC_BCR_MTYP_SRAM | FSMC_BCR_MWID_16BITS | FSMC_BCR_MBKEN; - FSMC_NOR_PSRAM1_BASE->BTR = (FSMC_DATA_SETUP_TIME << 8) | FSMC_ADDRESS_SETUP_TIME; - #endif + fsmcPsramRegion->BCR = FSMC_BCR_WREN | FSMC_BCR_MTYP_SRAM | FSMC_BCR_MWID_16BITS | FSMC_BCR_MBKEN; + fsmcPsramRegion->BTR = (FSMC_DATA_SETUP_TIME << 8) | FSMC_ADDRESS_SETUP_TIME; afio_remap(AFIO_REMAP_FSMC_NADV); From da4eaebdc9c1adc7387e302fe6516ed009974edd Mon Sep 17 00:00:00 2001 From: wmariz <11435639+wmariz@users.noreply.github.com> Date: Fri, 7 Aug 2020 19:03:59 -0300 Subject: [PATCH 062/194] ZoneStar Z6FB (#18918) Co-authored-by: Scott Lahteine --- Marlin/Configuration.h | 11 +- Marlin/src/core/boards.h | 1 + Marlin/src/inc/Conditionals_LCD.h | 13 ++ Marlin/src/inc/Conditionals_post.h | 4 + Marlin/src/inc/SanityCheck.h | 5 +- Marlin/src/lcd/dogm/ultralcd_DOGM.cpp | 2 +- Marlin/src/lcd/dogm/ultralcd_DOGM.h | 118 +++++----- Marlin/src/lcd/extui_anycubic_chiron_lcd.cpp | 6 +- Marlin/src/pins/pins.h | 2 + Marlin/src/pins/sanguino/pins_ZMIB_V2.h | 234 +++++++++++++++++++ Marlin/src/sd/Sd2Card.cpp | 11 +- platformio.ini | 1 - 12 files changed, 340 insertions(+), 68 deletions(-) create mode 100644 Marlin/src/pins/sanguino/pins_ZMIB_V2.h diff --git a/Marlin/Configuration.h b/Marlin/Configuration.h index 75ee1eb99..3ad7dfdab 100644 --- a/Marlin/Configuration.h +++ b/Marlin/Configuration.h @@ -2089,7 +2089,7 @@ //#define OLED_PANEL_TINYBOY2 // -// MKS OLED 1.3" 128 × 64 FULL GRAPHICS CONTROLLER +// MKS OLED 1.3" 128×64 FULL GRAPHICS CONTROLLER // https://reprap.org/wiki/MKS_12864OLED // // Tiny, but very sharp OLED display @@ -2097,6 +2097,13 @@ //#define MKS_12864OLED // Uses the SH1106 controller (default) //#define MKS_12864OLED_SSD1306 // Uses the SSD1306 controller +// +// Zonestar OLED 128×64 FULL GRAPHICS CONTROLLER +// +//#define ZONESTAR_12864LCD // Graphical (DOGM) with ST7920 controller +//#define ZONESTAR_12864OLED // 1.3" OLED with SH1106 controller (default) +//#define ZONESTAR_12864OLED_SSD1306 // 0.96" OLED with SSD1306 controller + // // Einstart S OLED SSD1306 // @@ -2108,7 +2115,7 @@ //#define OVERLORD_OLED // -// FYSETC OLED 2.42" 128 × 64 FULL GRAPHICS CONTROLLER with WS2812 RGB +// FYSETC OLED 2.42" 128×64 FULL GRAPHICS CONTROLLER with WS2812 RGB // Where to find : https://www.aliexpress.com/item/4000345255731.html //#define FYSETC_242_OLED_12864 // Uses the SSD1309 controller diff --git a/Marlin/src/core/boards.h b/Marlin/src/core/boards.h index eb33258e2..32b9168a6 100644 --- a/Marlin/src/core/boards.h +++ b/Marlin/src/core/boards.h @@ -171,6 +171,7 @@ #define BOARD_STB_11 1508 // STB V1.1 #define BOARD_AZTEEG_X1 1509 // Azteeg X1 #define BOARD_ANET_10 1510 // Anet 1.0 (Melzi clone) +#define BOARD_ZMIB_V2 1511 // ZoneStar ZMIB V2 // // Other ATmega644P, ATmega644, ATmega1284P diff --git a/Marlin/src/inc/Conditionals_LCD.h b/Marlin/src/inc/Conditionals_LCD.h index cabca762a..d8c8103a4 100644 --- a/Marlin/src/inc/Conditionals_LCD.h +++ b/Marlin/src/inc/Conditionals_LCD.h @@ -62,6 +62,19 @@ #define ENCODER_STEPS_PER_MENU_ITEM 1 #define ENCODER_FEEDRATE_DEADZONE 2 +#elif ENABLED(ZONESTAR_12864LCD) + #define DOGLCD + #define IS_RRD_SC + #define U8GLIB_ST7920 + +#elif ENABLED(ZONESTAR_12864OLED) + #define IS_RRD_SC + #define U8GLIB_SH1106 + +#elif ENABLED(ZONESTAR_12864OLED_SSD1306) + #define IS_RRD_SC + #define IS_U8GLIB_SSD1306 + #elif ENABLED(RADDS_DISPLAY) #define IS_ULTIPANEL #define ENCODER_PULSES_PER_STEP 2 diff --git a/Marlin/src/inc/Conditionals_post.h b/Marlin/src/inc/Conditionals_post.h index 556d57b66..6243d82aa 100644 --- a/Marlin/src/inc/Conditionals_post.h +++ b/Marlin/src/inc/Conditionals_post.h @@ -312,6 +312,10 @@ #define _LCD_CONTRAST_INIT 17 #elif ENABLED(MINIPANEL) #define _LCD_CONTRAST_INIT 150 +#elif ENABLED(ZONESTAR_12864OLED) + #define _LCD_CONTRAST_MIN 64 + #define _LCD_CONTRAST_INIT 128 + #define _LCD_CONTRAST_MAX 255 #endif #ifdef _LCD_CONTRAST_INIT diff --git a/Marlin/src/inc/SanityCheck.h b/Marlin/src/inc/SanityCheck.h index d296eb2f1..7fbfda4fe 100644 --- a/Marlin/src/inc/SanityCheck.h +++ b/Marlin/src/inc/SanityCheck.h @@ -2227,6 +2227,9 @@ static_assert(hbm[Z_AXIS] >= 0, "HOMING_BUMP_MM.Z must be greater than or equal + ENABLED(OLED_PANEL_TINYBOY2) \ + ENABLED(MKS_12864OLED) \ + ENABLED(MKS_12864OLED_SSD1306) \ + + ENABLED(ZONESTAR_12864LCD) \ + + ENABLED(ZONESTAR_12864OLED) \ + + ENABLED(ZONESTAR_12864OLED_SSD1306) \ + ENABLED(U8GLIB_SH1106_EINSTART) \ + ENABLED(OVERLORD_OLED) \ + ENABLED(FYSETC_242_OLED_12864) \ @@ -2242,7 +2245,7 @@ static_assert(hbm[Z_AXIS] >= 0, "HOMING_BUMP_MM.Z must be greater than or equal + ENABLED(TFT_LVGL_UI_SPI) \ + ENABLED(ANYCUBIC_LCD_I3MEGA) \ + ENABLED(ANYCUBIC_LCD_CHIRON) - #error "Please select no more than one LCD controller option." + #error "Please select only one LCD controller option." #endif #undef IS_RRD_SC diff --git a/Marlin/src/lcd/dogm/ultralcd_DOGM.cpp b/Marlin/src/lcd/dogm/ultralcd_DOGM.cpp index 22f460afe..c6c67bf97 100644 --- a/Marlin/src/lcd/dogm/ultralcd_DOGM.cpp +++ b/Marlin/src/lcd/dogm/ultralcd_DOGM.cpp @@ -246,7 +246,7 @@ void MarlinUI::init_lcd() { OUT_WRITE(LCD_BACKLIGHT_PIN, DISABLED(DELAYED_BACKLIGHT_INIT)); // Illuminate after reset or right away #endif - #if ANY(MKS_12864OLED, MKS_12864OLED_SSD1306, FYSETC_242_OLED_12864) + #if ANY(MKS_12864OLED, MKS_12864OLED_SSD1306, FYSETC_242_OLED_12864, ZONESTAR_12864OLED) SET_OUTPUT(LCD_PINS_DC); #ifndef LCD_RESET_PIN #define LCD_RESET_PIN LCD_PINS_RS diff --git a/Marlin/src/lcd/dogm/ultralcd_DOGM.h b/Marlin/src/lcd/dogm/ultralcd_DOGM.h index 40402fe5a..228cee684 100644 --- a/Marlin/src/lcd/dogm/ultralcd_DOGM.h +++ b/Marlin/src/lcd/dogm/ultralcd_DOGM.h @@ -33,6 +33,9 @@ //#define ALTERNATIVE_LCD #if ENABLED(REPRAPWORLD_GRAPHICAL_LCD) + + // RepRapWorld Graphical LCD + #define U8G_CLASS U8GLIB_ST7920_128X64_4X #if DISABLED(SDSUPPORT) && (LCD_PINS_D4 == SCK_PIN) && (LCD_PINS_ENABLE == MOSI_PIN) #define U8G_PARAM LCD_PINS_RS @@ -43,6 +46,7 @@ #elif ENABLED(U8GLIB_ST7920) // RepRap Discount Full Graphics Smart Controller + // and other variant LCDs using ST7920 #if DISABLED(SDSUPPORT) && (LCD_PINS_D4 == SCK_PIN) && (LCD_PINS_ENABLE == MOSI_PIN) #define U8G_CLASS U8GLIB_ST7920_128X64_4X_HAL // 2 stripes, HW SPI (Shared with SD card. Non-standard LCD adapter on AVR.) @@ -88,43 +92,28 @@ #define FORCE_SOFT_SPI // SW-SPI #endif -#elif ENABLED(MKS_12864OLED_SSD1306) +#elif ANY(FYSETC_MINI_12864, MKS_MINI_12864, ENDER2_STOCKDISPLAY) + + // The FYSETC Mini 12864 display // "4 stripes" + + // The MKS_MINI_12864 V1/V2 aren't exact copies of the MiniPanel. + // Panel management is in u8g_dev_uc1701_mini12864_HAL.cpp with + // extra delays added to remove glitches seen with fast MCUs. + + #define U8G_CLASS U8GLIB_MINI12864_2X_HAL // 8 stripes (HW-SPI) + +#elif ENABLED(MINIPANEL) + + #if ENABLED(ALTERNATIVE_LCD) + #define U8G_CLASS U8GLIB_MINI12864 + #else + #define U8G_CLASS U8GLIB_MINI12864_2X // 8 stripes (HW-SPI) + #endif + +#elif EITHER(MKS_12864OLED_SSD1306, FYSETC_242_OLED_12864) // MKS 128x64 (SSD1306) OLED I2C LCD - - #define FORCE_SOFT_SPI // SW-SPI - - #if ENABLED(ALTERNATIVE_LCD) - #define U8G_CLASS U8GLIB_SSD1306_128X64_2X // 4 stripes - #else - #define U8G_CLASS U8GLIB_SSD1306_128X64 // 8 stripes - #endif - -#elif ENABLED(U8GLIB_SSD1306) - - // Generic SSD1306 OLED I2C LCD - - #if ENABLED(ALTERNATIVE_LCD) - #define U8G_CLASS U8GLIB_SSD1306_128X64_2X_I2C_2_WIRE // 4 stripes - #else - #define U8G_CLASS U8GLIB_SSD1306_128X64_2X // 4 stripes - #endif - #define U8G_PARAM (U8G_I2C_OPT_NONE | U8G_I2C_OPT_FAST) - -#elif ENABLED(MKS_12864OLED) - - // MKS 128x64 (SH1106) OLED I2C LCD - - #define FORCE_SOFT_SPI // SW-SPI - - #if ENABLED(ALTERNATIVE_LCD) - #define U8G_CLASS U8GLIB_SH1106_128X64_2X // 4 stripes - #else - #define U8G_CLASS U8GLIB_SH1106_128X64 // 8 stripes - #endif - -#elif ENABLED(FYSETC_242_OLED_12864) - + // - or - // FYSETC OLED 2.42" 128 × 64 FULL GRAPHICS CONTROLLER #define FORCE_SOFT_SPI // SW-SPI @@ -135,6 +124,37 @@ #define U8G_CLASS U8GLIB_SSD1306_128X64 // 8 stripes #endif +#elif ENABLED(ZONESTAR_12864OLED_SSD1306) + + // Zonestar SSD1306 OLED SPI LCD + + #define FORCE_SOFT_SPI // SW-SPI + #if ENABLED(ALTERNATIVE_LCD) + #define U8G_CLASS U8GLIB_SH1306_128X64_2X // 4 stripes + #else + #define U8G_CLASS U8GLIB_SH1306_128X64 // 8 stripes + #endif + +#elif EITHER(MKS_12864OLED, ZONESTAR_12864OLED) + + // MKS 128x64 (SH1106) OLED I2C LCD + // - or - + // Zonestar SH1106 OLED SPI LCD + + #define FORCE_SOFT_SPI // SW-SPI + #if ENABLED(ALTERNATIVE_LCD) + #define U8G_CLASS U8GLIB_SH1106_128X64_2X // 4 stripes + #else + #define U8G_CLASS U8GLIB_SH1106_128X64 // 8 stripes + #endif + +#elif ENABLED(U8GLIB_SH1106_EINSTART) + + // Connected via motherboard header + + #define U8G_CLASS U8GLIB_SH1106_128X64 + #define U8G_PARAM DOGLCD_SCK, DOGLCD_MOSI, DOGLCD_CS, LCD_PINS_DC, LCD_PINS_RS + #elif ENABLED(U8GLIB_SH1106) // Generic SH1106 OLED I2C LCD @@ -153,34 +173,16 @@ #define U8G_CLASS U8GLIB_SSD1309_128X64 #define U8G_PARAM (U8G_I2C_OPT_NONE | U8G_I2C_OPT_FAST) // I2C -#elif ENABLED(FYSETC_MINI_12864) +#elif ENABLED(U8GLIB_SSD1306) - // The FYSETC Mini 12864 display - - #define U8G_CLASS U8GLIB_MINI12864_2X_HAL // 4 stripes - -#elif EITHER(MKS_MINI_12864, ENDER2_STOCKDISPLAY) - - // The MKS_MINI_12864 V1/V2 aren't exact copies of the MiniPanel. - // Panel management is in u8g_dev_uc1701_mini12864_HAL.cpp with - // extra delays added to remove glitches seen with fast MCUs. - - #define U8G_CLASS U8GLIB_MINI12864_2X_HAL // 8 stripes (HW-SPI) - -#elif ENABLED(MINIPANEL) + // Generic SSD1306 OLED I2C LCD #if ENABLED(ALTERNATIVE_LCD) - #define U8G_CLASS U8GLIB_MINI12864 + #define U8G_CLASS U8GLIB_SSD1306_128X64_2X_I2C_2_WIRE // 4 stripes #else - #define U8G_CLASS U8GLIB_MINI12864_2X // 8 stripes (HW-SPI) + #define U8G_CLASS U8GLIB_SSD1306_128X64_2X // 4 stripes #endif - -#elif ENABLED(U8GLIB_SH1106_EINSTART) - - // Connected via motherboard header - - #define U8G_CLASS U8GLIB_SH1106_128X64 - #define U8G_PARAM DOGLCD_SCK, DOGLCD_MOSI, DOGLCD_CS, LCD_PINS_DC, LCD_PINS_RS + #define U8G_PARAM (U8G_I2C_OPT_NONE | U8G_I2C_OPT_FAST) #elif TFT_SCALED_DOGLCD diff --git a/Marlin/src/lcd/extui_anycubic_chiron_lcd.cpp b/Marlin/src/lcd/extui_anycubic_chiron_lcd.cpp index 9d00db335..15cc96711 100644 --- a/Marlin/src/lcd/extui_anycubic_chiron_lcd.cpp +++ b/Marlin/src/lcd/extui_anycubic_chiron_lcd.cpp @@ -16,7 +16,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * along with this program. If not, see . * */ @@ -145,7 +145,7 @@ namespace ExtUI { if (rx[0] != 'A') { SERIAL_ECHOPGM("Unexpected RX: "); SERIAL_ECHOLN(rx); - + return; } @@ -490,7 +490,7 @@ namespace ExtUI { void onMediaRemoved() { SENDLINE_PGM("J01"); // SD Removed } - + void onPlayTone(const uint16_t frequency, const uint16_t duration) { tone(BEEPER_PIN, frequency, duration); } diff --git a/Marlin/src/pins/pins.h b/Marlin/src/pins/pins.h index 1f120e0c1..9b6be5a6e 100644 --- a/Marlin/src/pins/pins.h +++ b/Marlin/src/pins/pins.h @@ -300,6 +300,8 @@ #include "sanguino/pins_STB_11.h" // ATmega644P, ATmega1284P env:sanguino644p env:sanguino1284p #elif MB(AZTEEG_X1) #include "sanguino/pins_AZTEEG_X1.h" // ATmega644P, ATmega1284P env:sanguino644p env:sanguino1284p +#elif MB(ZMIB_V2) + #include "sanguino/pins_ZMIB_V2.h" // ATmega644P, ATmega1284P env:sanguino_atmega644p env:sanguino_atmega1284p // // Other ATmega644P, ATmega644, ATmega1284P diff --git a/Marlin/src/pins/sanguino/pins_ZMIB_V2.h b/Marlin/src/pins/sanguino/pins_ZMIB_V2.h new file mode 100644 index 000000000..262199e31 --- /dev/null +++ b/Marlin/src/pins/sanguino/pins_ZMIB_V2.h @@ -0,0 +1,234 @@ +/** + * Marlin 3D Printer Firmware + * Copyright (C) 2016 MarlinFirmware [https://github.com/MarlinFirmware/Marlin] + * + * Based on Sprinter and grbl. + * Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + */ +#pragma once + +#if !defined(__AVR_ATmega644P__) && !defined(__AVR_ATmega1284P__) + #error "Oops! Select 'Sanguino' in 'Tools > Boards' and 'ATmega644P' or 'ATmega1284P' in 'Tools > Processor.'" +#endif + +#define BOARD_INFO_NAME "Zonestar ZMIB_V2" +#define BOARD_WEBSITE_URL "https://www.aliexpress.com/item/32957490744.html" + +#define IS_ZMIB_V2 + +/** + * ZMIB pin assignments + * + * The ZMIB board needs a bootloader installed before Marlin can be uploaded. + * If you don't have a chip programmer you can use a spare Arduino plus a few + * electronic components to write the bootloader. + * + * See http://www.instructables.com/id/Burn-Arduino-Bootloader-with-Arduino-MEGA/ + */ + +/** + * PIN: 0 Port: B0 HEATER_0_PIN + * PIN: 1 Port: B1 HEATER_BED_PIN + * PIN: 2 Port: B2 EXP1_4(BTN_EN2) + * PIN: 3 Port: B3 V1: SD_DETECT_PIN + * PIN: 3 Port: B3 V2: EXP1_6 + * PIN: 4 Port: B4 SDSS + * PIN: 4 Port: B4 V1: EXP1_6 + * PIN: 5 Port: B5 AVR_MOSI_PIN + * . MOSI_PIN + * PIN: 6 Port: B6 AVR_MISO_PIN + * . EXP1_9(MISO_PIN) + * PIN: 7 Port: B7 AVR_SCK_PIN + * . EXP1_10(SCK_PIN) + * PIN: 8 Port: D0 RXD + * PIN: 9 Port: D1 TXD + * PIN: 10 Port: D2 EXP1_8 + * PIN: 11 Port: D3 EXP1_7 + * PIN: 12 Port: D4 EXP1_5(BTN_EN1) + * PIN: 13 Port: D5 Z_MIN_PIN + * PIN: 14 Port: D6 E1_DIR_PIN + * PIN: 15 Port: D7 E1_STEP_PIN + * PIN: 16 Port: C0 Z_DIR_PIN + * PIN: 17 Port: C1 Z_STEP_PIN + * PIN: 18 Port: C2 Y_MIN_PIN + * PIN: 19 Port: C3 Y_DIR_PIN + * PIN: 20 Port: C4 Y_STEP_PIN + * PIN: 21 Port: C5 X_MIN_PIN + * PIN: 22 Port: C6 X_DIR_PIN + * PIN: 23 Port: C7 X_STEP_PIN + * PIN: 24 Port: A7 X_ENABLE_PIN + * Y_ENABLE_PIN + * Z_ENABLE_PIN + * E0_ENABLE_PIN + * E1_ENABLE_PIN + * PIN: 25 Port: A6 FIL_RUNOUT_PIN + * PIN: 26 Port: A5 E0_DIR_PIN + * PIN: 27 Port: A4 E0_STEP_PIN + * PIN: 28 Port: A3 FAN_PIN + * PIN: 29 Port: A2 EXP1_3(BTN_ENC) + * ADC_KEY_PIN + * PIN: 30 Port: A1 TEMP_0_PIN + * PIN: 31 Port: A0 TEMP_BED_PIN + */ + +// +// Limit Switches +// +#define X_MIN_PIN 21 +#define Y_MIN_PIN 18 + +#if EITHER(Z6S_ZFAULT, Z6BS_ZFAULT) + #define Z_MIN_PIN 25 +#else + #define Z_MIN_PIN 13 +#endif + +// +// Steppers +// +#define X_STEP_PIN 23 +#define X_DIR_PIN 22 +#define X_ENABLE_PIN 24 + +#define Y_STEP_PIN 20 +#define Y_DIR_PIN 19 +#define Y_ENABLE_PIN 24 + +#if EITHER(Z6S_ZFAULT, Z6BS_ZFAULT) + #define Z_STEP_PIN 27 + #define Z_DIR_PIN 26 +#else + #define Z_STEP_PIN 17 + #define Z_DIR_PIN 16 +#endif + +#define Z_ENABLE_PIN 24 + +#if EITHER(Z6S_ZFAULT, Z6BS_ZFAULT) + #define E0_STEP_PIN 15 + #define E0_DIR_PIN 14 +#else + #define E0_STEP_PIN 27 + #define E0_DIR_PIN 26 +#endif + +#define E0_ENABLE_PIN 24 + +#define E1_STEP_PIN 15 +#define E1_DIR_PIN 14 +#define E1_ENABLE_PIN 24 + +// +// Temperature Sensors +// +#define TEMP_0_PIN 1 // Analog Input +#define TEMP_BED_PIN 0 // Analog Input + +// +// Heaters / Fans +// +#define HEATER_0_PIN 0 +#define HEATER_BED_PIN 1 +#define FAN_PIN 28 +#define FAN1_PIN -1 + +// +//filament run out sensor +// +#if EITHER(Z6S_ZFAULT, Z6BS_ZFAULT) + #define FIL_RUNOUT_PIN 13 +#else + #define FIL_RUNOUT_PIN 25 // Z-MIN +#endif + +// +// SD card +// +#if ENABLED(SDSUPPORT) + #define SDSS 4 +#endif +#define SD_DETECT_PIN -1 + +/*=================================================== + * ZMIB Version 1 - EXP1 Connector + * MOSI(D5) TX1(D11) ENA(D12) ENC(D29/A2) 5V + * SCK(D7) RX1(D10) SCS(D4) ENB(D2) GND + *=================================================== + * ZMIB Version 2 - EXP1 Connector + * MOSI(D5) TX1(D11) ENA(D12) ENC(D29/A2) 5V + * SCK(D7) RX1(D10) SCS(D3) ENB(D2) GND + *=================================================== + * LCD 128x64 + *==================================================*/ + +#if ENABLED(ZONESTAR_12864LCD) + // + // LCD 128x64 + // + #define LCDSCREEN_NAME "ZONESTAR_12864LCD" + #define FORCE_SOFT_SPI + //#define LCD_SDSS 11 + #define LCD_PINS_RS 11 // ST7920_CS_PIN LCD_PIN_RS (PIN4 of LCD module) + #ifdef IS_ZMIB_V2 + #define LCD_PINS_ENABLE 3 // ST7920_DAT_PIN LCD_PIN_R/W (PIN5 of LCD module) + #else + #define LCD_PINS_ENABLE 4 // ST7920_DAT_PIN LCD_PIN_R/W (PIN5 of LCD module) + #endif + #define LCD_PINS_D4 10 // ST7920_CLK_PIN LCD_PIN_ENABLE (PIN6 of LCD module) + + // Alter timing for graphical display + #define ST7920_DELAY_1 DELAY_2_NOP + #define ST7920_DELAY_2 DELAY_2_NOP + #define ST7920_DELAY_3 DELAY_2_NOP + +#elif EITHER(ZONESTAR_12864OLED, ZONESTAR_12864OLED_SSD1306) + // + // OLED 128x64 + // + #define LCDSCREEN_NAME "ZONESTAR 12864OLED" + #define FORCE_SOFT_SPI + #ifdef IS_ZMIB_V2 + #define LCD_PINS_RS 3 // RESET + #else + #define LCD_PINS_RS 4 // RESET + #endif + #define LCD_PINS_DC 10 // DC + #define DOGLCD_CS 11 // CS + #if ENABLED(OLED_HW_IIC) + #error "Oops! can't choose HW IIC for ZMIB board!!" + #elif ENABLED(OLED_HW_SPI) + // HW SPI + #define DOGLCD_A0 LCD_PINS_DC // A0 = DC + #else + // SW SPI + #define DOGLCD_A0 LCD_PINS_DC // A0 = DC + #define DOGLCD_MOSI AVR_MOSI_PIN // SDA + #define DOGLCD_SCK AVR_SCK_PIN // SCK + #endif + +#endif + +// +// All the above are also RRDSC with rotary encoder +// +#if ENABLED(REPRAP_DISCOUNT_SMART_CONTROLLER) + #define BTN_EN1 2 + #define BTN_EN2 12 + #define BTN_ENC 29 + #define BEEPER_PIN -1 + #define KILL_PIN -1 +#endif diff --git a/Marlin/src/sd/Sd2Card.cpp b/Marlin/src/sd/Sd2Card.cpp index c56d690b2..6ff2793e9 100644 --- a/Marlin/src/sd/Sd2Card.cpp +++ b/Marlin/src/sd/Sd2Card.cpp @@ -240,8 +240,15 @@ bool Sd2Card::init(const uint8_t sckRateID, const pin_t chipSelectPin) { watchdog_refresh(); // In case init takes too long // Set pin modes - extDigitalWrite(chipSelectPin_, HIGH); // For some CPUs pinMode can write the wrong data so init desired data value first - pinMode(chipSelectPin_, OUTPUT); // Solution for #8746 by @benlye + #if ENABLED(ZONESTAR_12864OLED) + if (chipSelectPin_ != DOGLCD_CS) { + SET_OUTPUT(DOGLCD_CS); + WRITE(DOGLCD_CS, HIGH); + } + #else + extDigitalWrite(chipSelectPin_, HIGH); // For some CPUs pinMode can write the wrong data so init desired data value first + pinMode(chipSelectPin_, OUTPUT); // Solution for #8746 by @benlye + #endif spiBegin(); // Set SCK rate for initialization commands diff --git a/platformio.ini b/platformio.ini index ee4d4e12f..fdb120ae8 100644 --- a/platformio.ini +++ b/platformio.ini @@ -869,7 +869,6 @@ board = genericSTM32F103VE platform_packages = tool-stm32duino extra_scripts = ${common.extra_scripts} buildroot/share/PlatformIO/scripts/mks_robin_nano35.py -lib_deps = ${common_stm32f1.lib_deps} build_flags = ${common_stm32f1.build_flags} -DMCU_STM32F103VE -DSS_TIMER=4 debug_tool = jlink From f2f1d8fa2113d077d6c3cb2feb10971122467f69 Mon Sep 17 00:00:00 2001 From: ellensp Date: Sat, 8 Aug 2020 10:59:09 +1200 Subject: [PATCH 063/194] HW PWM sanity checks for SPINDLE_LASER_FREQUENCY (#18947) --- Marlin/src/HAL/DUE/inc/SanityCheck.h | 4 ++-- Marlin/src/HAL/ESP32/inc/SanityCheck.h | 4 ++-- Marlin/src/HAL/LINUX/inc/SanityCheck.h | 4 ++-- Marlin/src/HAL/LPC1768/fast_pwm.cpp | 2 +- Marlin/src/HAL/LPC1768/inc/SanityCheck.h | 4 ++++ Marlin/src/HAL/SAMD51/inc/SanityCheck.h | 4 ++-- Marlin/src/HAL/STM32/inc/SanityCheck.h | 4 ++-- Marlin/src/HAL/STM32F1/inc/SanityCheck.h | 4 ++-- Marlin/src/HAL/STM32_F4_F7/inc/SanityCheck.h | 4 ++-- Marlin/src/HAL/TEENSY31_32/inc/SanityCheck.h | 4 ++-- Marlin/src/HAL/TEENSY35_36/inc/SanityCheck.h | 4 ++-- 11 files changed, 23 insertions(+), 19 deletions(-) diff --git a/Marlin/src/HAL/DUE/inc/SanityCheck.h b/Marlin/src/HAL/DUE/inc/SanityCheck.h index cdea34436..688069650 100644 --- a/Marlin/src/HAL/DUE/inc/SanityCheck.h +++ b/Marlin/src/HAL/DUE/inc/SanityCheck.h @@ -52,8 +52,8 @@ #endif #endif -#if ENABLED(FAST_PWM_FAN) - #error "FAST_PWM_FAN is not yet implemented for this platform." +#if ENABLED(FAST_PWM_FAN) || SPINDLE_LASER_FREQUENCY + #error "Features requiring Hardware PWM (FAST_PWM_FAN, SPINDLE_LASER_FREQUENCY) are not yet supported on DUE." #endif #if HAS_TMC_SW_SERIAL diff --git a/Marlin/src/HAL/ESP32/inc/SanityCheck.h b/Marlin/src/HAL/ESP32/inc/SanityCheck.h index 7653f6fe7..f57a6c591 100644 --- a/Marlin/src/HAL/ESP32/inc/SanityCheck.h +++ b/Marlin/src/HAL/ESP32/inc/SanityCheck.h @@ -25,8 +25,8 @@ #error "EMERGENCY_PARSER is not yet implemented for ESP32. Disable EMERGENCY_PARSER to continue." #endif -#if ENABLED(FAST_PWM_FAN) - #error "FAST_PWM_FAN is not yet implemented for this platform." +#if ENABLED(FAST_PWM_FAN) || SPINDLE_LASER_FREQUENCY + #error "Features requiring Hardware PWM (FAST_PWM_FAN, SPINDLE_LASER_FREQUENCY) are not yet supported on ESP32." #endif #if HAS_TMC_SW_SERIAL diff --git a/Marlin/src/HAL/LINUX/inc/SanityCheck.h b/Marlin/src/HAL/LINUX/inc/SanityCheck.h index 8d23cdabb..84167c97a 100644 --- a/Marlin/src/HAL/LINUX/inc/SanityCheck.h +++ b/Marlin/src/HAL/LINUX/inc/SanityCheck.h @@ -30,8 +30,8 @@ #error "SPINDLE_LASER_PWM_PIN must use SERVO0, SERVO1 or SERVO3 connector" #endif -#if ENABLED(FAST_PWM_FAN) - #error "FAST_PWM_FAN is not yet implemented for this platform." +#if ENABLED(FAST_PWM_FAN) || SPINDLE_LASER_FREQUENCY + #error "Features requiring Hardware PWM (FAST_PWM_FAN, SPINDLE_LASER_FREQUENCY) are not yet supported on LINUX." #endif #if HAS_TMC_SW_SERIAL diff --git a/Marlin/src/HAL/LPC1768/fast_pwm.cpp b/Marlin/src/HAL/LPC1768/fast_pwm.cpp index 46507ac0d..dd440b5e7 100644 --- a/Marlin/src/HAL/LPC1768/fast_pwm.cpp +++ b/Marlin/src/HAL/LPC1768/fast_pwm.cpp @@ -35,5 +35,5 @@ void set_pwm_duty(const pin_t pin, const uint16_t v, const uint16_t v_size/*=255 LPC176x::pwm_write_ratio(pin, invert ? 1.0f - (float)v / v_size : (float)v / v_size); } -#endif // FAST_PWM_FAN || SPINDLE_LASER_PWM +#endif // NEEDS_HARDWARE_PWM #endif // TARGET_LPC1768 diff --git a/Marlin/src/HAL/LPC1768/inc/SanityCheck.h b/Marlin/src/HAL/LPC1768/inc/SanityCheck.h index 964538962..0a4e59c6c 100644 --- a/Marlin/src/HAL/LPC1768/inc/SanityCheck.h +++ b/Marlin/src/HAL/LPC1768/inc/SanityCheck.h @@ -59,6 +59,10 @@ */ static_assert(!(NUM_SERVOS && ENABLED(FAST_PWM_FAN)), "BLTOUCH and Servos are incompatible with FAST_PWM_FAN on LPC176x boards."); +#if SPINDLE_LASER_FREQUENCY + static_assert(!NUM_SERVOS, "BLTOUCH and Servos are incompatible with SPINDLE_LASER_FREQUENCY on LPC176x boards."); +#endif + /** * Test LPC176x-specific configuration values for errors at compile-time. */ diff --git a/Marlin/src/HAL/SAMD51/inc/SanityCheck.h b/Marlin/src/HAL/SAMD51/inc/SanityCheck.h index ee04e2e2e..5d610acac 100644 --- a/Marlin/src/HAL/SAMD51/inc/SanityCheck.h +++ b/Marlin/src/HAL/SAMD51/inc/SanityCheck.h @@ -47,6 +47,6 @@ #error "SDIO_SUPPORT is not supported on SAMD51." #endif -#if ENABLED(FAST_PWM_FAN) - #error "FAST_PWM_FAN is not yet implemented for this platform." +#if ENABLED(FAST_PWM_FAN) || SPINDLE_LASER_FREQUENCY + #error "Features requiring Hardware PWM (FAST_PWM_FAN, SPINDLE_LASER_FREQUENCY) are not yet supported on SAMD51." #endif diff --git a/Marlin/src/HAL/STM32/inc/SanityCheck.h b/Marlin/src/HAL/STM32/inc/SanityCheck.h index 37ca3d5a3..30d0750d9 100644 --- a/Marlin/src/HAL/STM32/inc/SanityCheck.h +++ b/Marlin/src/HAL/STM32/inc/SanityCheck.h @@ -28,8 +28,8 @@ // #error "SPINDLE_LASER_PWM_PIN must use SERVO0, SERVO1 or SERVO3 connector" //#endif -#if ENABLED(FAST_PWM_FAN) - #error "FAST_PWM_FAN is not yet implemented for this platform." +#if ENABLED(FAST_PWM_FAN) || SPINDLE_LASER_FREQUENCY + #error "Features requiring Hardware PWM (FAST_PWM_FAN, SPINDLE_LASER_FREQUENCY) are not yet supported on STM32." #endif #if ENABLED(SDCARD_EEPROM_EMULATION) && DISABLED(SDSUPPORT) diff --git a/Marlin/src/HAL/STM32F1/inc/SanityCheck.h b/Marlin/src/HAL/STM32F1/inc/SanityCheck.h index ec7e8cf17..c0cb48695 100644 --- a/Marlin/src/HAL/STM32F1/inc/SanityCheck.h +++ b/Marlin/src/HAL/STM32F1/inc/SanityCheck.h @@ -29,8 +29,8 @@ #error "EMERGENCY_PARSER is not yet implemented for STM32F1. Disable EMERGENCY_PARSER to continue." #endif -#if ENABLED(FAST_PWM_FAN) - #error "FAST_PWM_FAN is not yet implemented for this platform." +#if ENABLED(FAST_PWM_FAN) || SPINDLE_LASER_FREQUENCY + #error "Features requiring Hardware PWM (FAST_PWM_FAN, SPINDLE_LASER_FREQUENCY) are not yet supported on STM32F1." #endif #if !defined(HAVE_SW_SERIAL) && HAS_TMC_SW_SERIAL diff --git a/Marlin/src/HAL/STM32_F4_F7/inc/SanityCheck.h b/Marlin/src/HAL/STM32_F4_F7/inc/SanityCheck.h index 53b15ba19..9bb36f3bb 100644 --- a/Marlin/src/HAL/STM32_F4_F7/inc/SanityCheck.h +++ b/Marlin/src/HAL/STM32_F4_F7/inc/SanityCheck.h @@ -32,8 +32,8 @@ #error "EMERGENCY_PARSER is not yet implemented for STM32F4/7. Disable EMERGENCY_PARSER to continue." #endif -#if ENABLED(FAST_PWM_FAN) - #error "FAST_PWM_FAN is not yet implemented for this platform." +#if ENABLED(FAST_PWM_FAN) || SPINDLE_LASER_FREQUENCY + #error "Features requiring Hardware PWM (FAST_PWM_FAN, SPINDLE_LASER_FREQUENCY) are not yet supported on STM32F4/F7." #endif #if HAS_TMC_SW_SERIAL diff --git a/Marlin/src/HAL/TEENSY31_32/inc/SanityCheck.h b/Marlin/src/HAL/TEENSY31_32/inc/SanityCheck.h index 0b731a61d..3932ee6a7 100644 --- a/Marlin/src/HAL/TEENSY31_32/inc/SanityCheck.h +++ b/Marlin/src/HAL/TEENSY31_32/inc/SanityCheck.h @@ -29,8 +29,8 @@ #error "EMERGENCY_PARSER is not yet implemented for Teensy 3.1/3.2. Disable EMERGENCY_PARSER to continue." #endif -#if ENABLED(FAST_PWM_FAN) - #error "FAST_PWM_FAN is not yet implemented for this platform." +#if ENABLED(FAST_PWM_FAN) || SPINDLE_LASER_FREQUENCY + #error "Features requiring Hardware PWM (FAST_PWM_FAN, SPINDLE_LASER_FREQUENCY) are not yet supported on Teensy 3.1/3.2." #endif #if HAS_TMC_SW_SERIAL diff --git a/Marlin/src/HAL/TEENSY35_36/inc/SanityCheck.h b/Marlin/src/HAL/TEENSY35_36/inc/SanityCheck.h index 36b801808..ee80e4269 100644 --- a/Marlin/src/HAL/TEENSY35_36/inc/SanityCheck.h +++ b/Marlin/src/HAL/TEENSY35_36/inc/SanityCheck.h @@ -29,8 +29,8 @@ #error "EMERGENCY_PARSER is not yet implemented for Teensy 3.5/3.6. Disable EMERGENCY_PARSER to continue." #endif -#if ENABLED(FAST_PWM_FAN) - #error "FAST_PWM_FAN is not yet implemented for this platform." +#if ENABLED(FAST_PWM_FAN) || SPINDLE_LASER_FREQUENCY + #error "Features requiring Hardware PWM (FAST_PWM_FAN, SPINDLE_LASER_FREQUENCY) are not yet supported on Teensy 3.5/3.6." #endif #if HAS_TMC_SW_SERIAL From 7b2f7a94fa596e4fd24e6f7b318c68514fcf1806 Mon Sep 17 00:00:00 2001 From: cbaugher Date: Fri, 7 Aug 2020 18:06:25 -0500 Subject: [PATCH 064/194] Fix Z height after tool change (#18951) --- Marlin/src/module/tool_change.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Marlin/src/module/tool_change.cpp b/Marlin/src/module/tool_change.cpp index 225f4cbb9..5d2dc7d3b 100644 --- a/Marlin/src/module/tool_change.cpp +++ b/Marlin/src/module/tool_change.cpp @@ -1132,7 +1132,8 @@ void tool_change(const uint8_t new_tool, bool no_move/*=false*/) { #if ENABLED(TOOLCHANGE_PARK) if (toolchange_settings.enable_park) do_blocking_move_to_xy_z(destination, destination.z, MMM_TO_MMS(TOOLCHANGE_PARK_XY_FEEDRATE)); #else - do_blocking_move_to_xy(destination); + do_blocking_move_to_xy(destination, planner.settings.max_feedrate_mm_s[X_AXIS]); + do_blocking_move_to_z(destination, planner.settings.max_feedrate_mm_s[Z_AXIS]); #endif #endif From b68e591e58ee196f52760e654a9d97fe973cbd95 Mon Sep 17 00:00:00 2001 From: thinkyhead Date: Sat, 8 Aug 2020 00:10:15 +0000 Subject: [PATCH 065/194] [cron] Bump distribution date (2020-08-08) --- Marlin/src/inc/Version.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Marlin/src/inc/Version.h b/Marlin/src/inc/Version.h index 2a6e9a3c4..a2bc2337f 100644 --- a/Marlin/src/inc/Version.h +++ b/Marlin/src/inc/Version.h @@ -42,7 +42,7 @@ * version was tagged. */ #ifndef STRING_DISTRIBUTION_DATE - #define STRING_DISTRIBUTION_DATE "2020-08-07" + #define STRING_DISTRIBUTION_DATE "2020-08-08" #endif /** From b3ca43fe7840cc37e80eff37e34a64992588107e Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Fri, 7 Aug 2020 19:30:35 -0500 Subject: [PATCH 066/194] Use uintptr_t for pointer-to-int --- Marlin/src/gcode/calibrate/M100.cpp | 8 ++++---- Marlin/src/libs/hex_print.cpp | 12 ++++++------ Marlin/src/libs/hex_print.h | 6 ------ 3 files changed, 10 insertions(+), 16 deletions(-) diff --git a/Marlin/src/gcode/calibrate/M100.cpp b/Marlin/src/gcode/calibrate/M100.cpp index f03b13e23..5ec709fb4 100644 --- a/Marlin/src/gcode/calibrate/M100.cpp +++ b/Marlin/src/gcode/calibrate/M100.cpp @@ -156,8 +156,8 @@ inline int32_t count_test_bytes(const char * const start_free_memory) { // Start and end the dump on a nice 16 byte boundary // (even though the values are not 16-byte aligned). // - start_free_memory = (char*)(ptr_int_t(uint32_t(start_free_memory) & ~0xFUL)); // Align to 16-byte boundary - end_free_memory = (char*)(ptr_int_t(uint32_t(end_free_memory) | 0xFUL)); // Align end_free_memory to the 15th byte (at or above end_free_memory) + start_free_memory = (char*)(uintptr_t(uint32_t(start_free_memory) & ~0xFUL)); // Align to 16-byte boundary + end_free_memory = (char*)(uintptr_t(uint32_t(end_free_memory) | 0xFUL)); // Align end_free_memory to the 15th byte (at or above end_free_memory) // Dump command main loop while (start_free_memory < end_free_memory) { @@ -189,8 +189,8 @@ inline int32_t count_test_bytes(const char * const start_free_memory) { // Round the start and end locations to produce full lines of output // dump_free_memory( - (char*)(ptr_int_t(uint32_t(start) & ~0xFUL)), // Align to 16-byte boundary - (char*)(ptr_int_t(uint32_t(end) | 0xFUL)) // Align end_free_memory to the 15th byte (at or above end_free_memory) + (char*)(uintptr_t(uint32_t(start) & ~0xFUL)), // Align to 16-byte boundary + (char*)(uintptr_t(uint32_t(end) | 0xFUL)) // Align end_free_memory to the 15th byte (at or above end_free_memory) ); } diff --git a/Marlin/src/libs/hex_print.cpp b/Marlin/src/libs/hex_print.cpp index 6bcc00e42..360b50e5e 100644 --- a/Marlin/src/libs/hex_print.cpp +++ b/Marlin/src/libs/hex_print.cpp @@ -20,12 +20,12 @@ * */ -#include "../inc/MarlinConfig.h" -#include "../gcode/parser.h" +#include "../inc/MarlinConfigPre.h" #if NEED_HEX_PRINT #include "hex_print.h" +#include "../core/serial.h" #ifdef CPU_32_BIT constexpr int byte_start = 4; @@ -54,7 +54,7 @@ char* hex_word(const uint16_t w) { } #ifdef CPU_32_BIT - char* hex_long(const uint32_t l) { + char* hex_long(const uintptr_t l) { _hex[2] = hex_nybble(l >> 28); _hex[3] = hex_nybble(l >> 24); _hex[4] = hex_nybble(l >> 20); @@ -66,9 +66,9 @@ char* hex_word(const uint16_t w) { char* hex_address(const void * const w) { #ifdef CPU_32_BIT - (void)hex_long((ptr_int_t)w); + (void)hex_long((uintptr_t)w); #else - (void)hex_word((ptr_int_t)w); + (void)hex_word((uintptr_t)w); #endif return _hex; } @@ -78,7 +78,7 @@ void print_hex_byte(const uint8_t b) { SERIAL_ECHO(hex_byte(b)); } void print_hex_word(const uint16_t w) { SERIAL_ECHO(hex_word(w)); } void print_hex_address(const void * const w) { SERIAL_ECHO(hex_address(w)); } -void print_hex_long(const uint32_t w, const char delimiter) { +void print_hex_long(const uintptr_t w, const char delimiter) { SERIAL_ECHOPGM("0x"); for (int B = 24; B >= 8; B -= 8){ print_hex_byte(w >> B); diff --git a/Marlin/src/libs/hex_print.h b/Marlin/src/libs/hex_print.h index 2fac6c989..40baa15bc 100644 --- a/Marlin/src/libs/hex_print.h +++ b/Marlin/src/libs/hex_print.h @@ -39,9 +39,3 @@ void print_hex_byte(const uint8_t b); void print_hex_word(const uint16_t w); void print_hex_address(const void * const w); void print_hex_long(const uint32_t w, const char delimiter); - -#ifdef CPU_32_BIT - typedef uint32_t ptr_int_t; -#else - typedef uint16_t ptr_int_t; -#endif From 18adfe87bcd516436db001b53a0e09e58246c9e2 Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Fri, 7 Aug 2020 20:51:40 -0500 Subject: [PATCH 067/194] configuration_store => settings --- Marlin/src/MarlinCore.cpp | 2 +- Marlin/src/feature/bedlevel/ubl/ubl.cpp | 2 +- Marlin/src/feature/bedlevel/ubl/ubl_G29.cpp | 2 +- Marlin/src/gcode/bedlevel/M420.cpp | 2 +- Marlin/src/gcode/eeprom/M500-M504.cpp | 2 +- Marlin/src/lcd/dwin/dwin.cpp | 2 +- .../lib/ftdi_eve_touch_ui/screens/interface_settings_screen.cpp | 2 +- Marlin/src/lcd/menu/menu_advanced.cpp | 2 +- Marlin/src/lcd/menu/menu_ubl.cpp | 2 +- Marlin/src/lcd/ultralcd.cpp | 2 +- Marlin/src/module/{configuration_store.cpp => settings.cpp} | 2 +- Marlin/src/module/{configuration_store.h => settings.h} | 0 Marlin/src/sd/cardreader.cpp | 2 +- 13 files changed, 12 insertions(+), 12 deletions(-) rename Marlin/src/module/{configuration_store.cpp => settings.cpp} (99%) rename Marlin/src/module/{configuration_store.h => settings.h} (100%) diff --git a/Marlin/src/MarlinCore.cpp b/Marlin/src/MarlinCore.cpp index 8c5966f74..a8c4407be 100644 --- a/Marlin/src/MarlinCore.cpp +++ b/Marlin/src/MarlinCore.cpp @@ -43,7 +43,7 @@ #include "module/planner.h" #include "module/endstops.h" #include "module/temperature.h" -#include "module/configuration_store.h" +#include "module/settings.h" #include "module/printcounter.h" // PrintCounter or Stopwatch #include "module/stepper.h" diff --git a/Marlin/src/feature/bedlevel/ubl/ubl.cpp b/Marlin/src/feature/bedlevel/ubl/ubl.cpp index 63b448234..809caecf4 100644 --- a/Marlin/src/feature/bedlevel/ubl/ubl.cpp +++ b/Marlin/src/feature/bedlevel/ubl/ubl.cpp @@ -31,7 +31,7 @@ #include "../../../MarlinCore.h" #include "../../../gcode/gcode.h" - #include "../../../module/configuration_store.h" + #include "../../../module/settings.h" #include "../../../module/planner.h" #include "../../../module/motion.h" #include "../../../module/probe.h" diff --git a/Marlin/src/feature/bedlevel/ubl/ubl_G29.cpp b/Marlin/src/feature/bedlevel/ubl/ubl_G29.cpp index 760d2cdd1..69a66420f 100644 --- a/Marlin/src/feature/bedlevel/ubl/ubl_G29.cpp +++ b/Marlin/src/feature/bedlevel/ubl/ubl_G29.cpp @@ -29,7 +29,7 @@ #include "../../../MarlinCore.h" #include "../../../HAL/shared/eeprom_api.h" #include "../../../libs/hex_print.h" - #include "../../../module/configuration_store.h" + #include "../../../module/settings.h" #include "../../../lcd/ultralcd.h" #include "../../../module/stepper.h" #include "../../../module/planner.h" diff --git a/Marlin/src/gcode/bedlevel/M420.cpp b/Marlin/src/gcode/bedlevel/M420.cpp index d51543417..96122c18f 100644 --- a/Marlin/src/gcode/bedlevel/M420.cpp +++ b/Marlin/src/gcode/bedlevel/M420.cpp @@ -30,7 +30,7 @@ #include "../../module/probe.h" #if ENABLED(EEPROM_SETTINGS) - #include "../../module/configuration_store.h" + #include "../../module/settings.h" #endif #if ENABLED(EXTENSIBLE_UI) diff --git a/Marlin/src/gcode/eeprom/M500-M504.cpp b/Marlin/src/gcode/eeprom/M500-M504.cpp index 30fa2b6e2..26c50a612 100644 --- a/Marlin/src/gcode/eeprom/M500-M504.cpp +++ b/Marlin/src/gcode/eeprom/M500-M504.cpp @@ -21,7 +21,7 @@ */ #include "../gcode.h" -#include "../../module/configuration_store.h" +#include "../../module/settings.h" #include "../../core/serial.h" #include "../../inc/MarlinConfig.h" diff --git a/Marlin/src/lcd/dwin/dwin.cpp b/Marlin/src/lcd/dwin/dwin.cpp index 0daaf3982..74a0e6d8f 100644 --- a/Marlin/src/lcd/dwin/dwin.cpp +++ b/Marlin/src/lcd/dwin/dwin.cpp @@ -47,7 +47,7 @@ #include "../../feature/powerloss.h" #include "../../feature/babystep.h" -#include "../../module/configuration_store.h" +#include "../../module/settings.h" #include "../../module/temperature.h" #include "../../module/printcounter.h" #include "../../module/motion.h" diff --git a/Marlin/src/lcd/extui/lib/ftdi_eve_touch_ui/screens/interface_settings_screen.cpp b/Marlin/src/lcd/extui/lib/ftdi_eve_touch_ui/screens/interface_settings_screen.cpp index b52096a13..def31e4a4 100644 --- a/Marlin/src/lcd/extui/lib/ftdi_eve_touch_ui/screens/interface_settings_screen.cpp +++ b/Marlin/src/lcd/extui/lib/ftdi_eve_touch_ui/screens/interface_settings_screen.cpp @@ -29,7 +29,7 @@ #include "../archim2-flash/flash_storage.h" -#include "../../../../../module/configuration_store.h" +#include "../../../../../module/settings.h" #if ENABLED(LULZBOT_PRINTCOUNTER) #include "../../../../../module/printcounter.h" diff --git a/Marlin/src/lcd/menu/menu_advanced.cpp b/Marlin/src/lcd/menu/menu_advanced.cpp index 1c37b2f2d..34def4d3b 100644 --- a/Marlin/src/lcd/menu/menu_advanced.cpp +++ b/Marlin/src/lcd/menu/menu_advanced.cpp @@ -48,7 +48,7 @@ #endif #if ENABLED(SD_FIRMWARE_UPDATE) - #include "../../module/configuration_store.h" + #include "../../module/settings.h" #endif void menu_tmc(); diff --git a/Marlin/src/lcd/menu/menu_ubl.cpp b/Marlin/src/lcd/menu/menu_ubl.cpp index 997130a91..d1c1e6dd0 100644 --- a/Marlin/src/lcd/menu/menu_ubl.cpp +++ b/Marlin/src/lcd/menu/menu_ubl.cpp @@ -33,7 +33,7 @@ #include "../../gcode/queue.h" #include "../../module/motion.h" #include "../../module/planner.h" -#include "../../module/configuration_store.h" +#include "../../module/settings.h" #include "../../feature/bedlevel/bedlevel.h" static int16_t ubl_storage_slot = 0, diff --git a/Marlin/src/lcd/ultralcd.cpp b/Marlin/src/lcd/ultralcd.cpp index 6482cf33d..670c916dd 100644 --- a/Marlin/src/lcd/ultralcd.cpp +++ b/Marlin/src/lcd/ultralcd.cpp @@ -123,7 +123,7 @@ constexpr uint8_t epps = ENCODER_PULSES_PER_STEP; #include "lcdprint.h" #include "../sd/cardreader.h" -#include "../module/configuration_store.h" +#include "../module/settings.h" #include "../module/temperature.h" #include "../module/planner.h" #include "../module/motion.h" diff --git a/Marlin/src/module/configuration_store.cpp b/Marlin/src/module/settings.cpp similarity index 99% rename from Marlin/src/module/configuration_store.cpp rename to Marlin/src/module/settings.cpp index 28e15cfeb..3df2067f5 100644 --- a/Marlin/src/module/configuration_store.cpp +++ b/Marlin/src/module/settings.cpp @@ -44,7 +44,7 @@ // Can be disabled for production build. //#define DEBUG_EEPROM_READWRITE -#include "configuration_store.h" +#include "settings.h" #include "endstops.h" #include "planner.h" diff --git a/Marlin/src/module/configuration_store.h b/Marlin/src/module/settings.h similarity index 100% rename from Marlin/src/module/configuration_store.h rename to Marlin/src/module/settings.h diff --git a/Marlin/src/sd/cardreader.cpp b/Marlin/src/sd/cardreader.cpp index bc1f88083..864552516 100644 --- a/Marlin/src/sd/cardreader.cpp +++ b/Marlin/src/sd/cardreader.cpp @@ -36,7 +36,7 @@ #include "../module/planner.h" // for synchronize #include "../module/printcounter.h" #include "../gcode/queue.h" -#include "../module/configuration_store.h" +#include "../module/settings.h" #include "../module/stepper/indirection.h" #if ENABLED(EMERGENCY_PARSER) From fd646d0d66f8e89972db83d2c1f8e79cea573c21 Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Fri, 7 Aug 2020 20:37:55 -0500 Subject: [PATCH 068/194] Clean up whitespace --- .../PlatformIO/variants/FLY_F407ZG/PeripheralPins.c | 12 ------------ .../PlatformIO/variants/MARLIN_F103Zx/ldscript.ld | 9 +++------ 2 files changed, 3 insertions(+), 18 deletions(-) diff --git a/buildroot/share/PlatformIO/variants/FLY_F407ZG/PeripheralPins.c b/buildroot/share/PlatformIO/variants/FLY_F407ZG/PeripheralPins.c index 0ac1d25ce..bd2a47062 100644 --- a/buildroot/share/PlatformIO/variants/FLY_F407ZG/PeripheralPins.c +++ b/buildroot/share/PlatformIO/variants/FLY_F407ZG/PeripheralPins.c @@ -151,9 +151,7 @@ WEAK const PinMap PinMap_PWM[] = { {PF_9, TIM14, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF9_TIM14, 1, 0)}, // TIM14_CH1 //{PA_0, TIM2, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM2, 1, 0)}, // TIM2_CH1 //{PA_0, TIM5, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM5, 1, 0)}, // TIM5_CH1 - //{PA_1, TIM5, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM5, 2, 0)}, // TIM5_CH2 - //{PA_2, TIM5, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM5, 3, 0)}, // TIM5_CH3 //{PA_2, TIM9, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF3_TIM9, 1, 0)}, // TIM9_CH1 //{PA_3, TIM2, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM2, 4, 0)}, // TIM2_CH4 @@ -167,7 +165,6 @@ WEAK const PinMap PinMap_PWM[] = { //{PA_7, TIM3, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM3, 2, 0)}, // TIM3_CH2 //{PA_7, TIM8, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF3_TIM8, 1, 1)}, // TIM8_CH1N //{PA_7, TIM14, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF9_TIM14, 1, 0)}, // TIM14_CH1 - //{PA_9, TIM1, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM1, 2, 0)}, // TIM1_CH2 //{PA_10, TIM1, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM1, 3, 0)}, // TIM1_CH3 //{PA_11, TIM1, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM1, 4, 0)}, // TIM1_CH4 @@ -183,12 +180,9 @@ WEAK const PinMap PinMap_PWM[] = { //{PB_5, TIM3, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM3, 2, 0)}, // TIM3_CH2 //{PB_6, TIM4, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM4, 1, 0)}, // TIM4_CH1 //{PB_7, TIM4, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM4, 2, 0)}, // TIM4_CH2 - //{PB_8, TIM10, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF3_TIM10, 1, 0)}, // TIM10_CH1 - //{PB_9, TIM11, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF3_TIM11, 1, 0)}, // TIM11_CH1 //{PB_10, TIM2, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM2, 3, 0)}, // TIM2_CH3 - //{PB_13, TIM1, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM1, 1, 1)}, // TIM1_CH1N //{PB_14, TIM1, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM1, 2, 1)}, // TIM1_CH2N //{PB_14, TIM8, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF3_TIM8, 2, 1)}, // TIM8_CH2N @@ -196,23 +190,17 @@ WEAK const PinMap PinMap_PWM[] = { //{PB_15, TIM1, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM1, 3, 1)}, // TIM1_CH3N //{PB_15, TIM8, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF3_TIM8, 3, 1)}, // TIM8_CH3N //{PB_15, TIM12, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF9_TIM12, 2, 0)}, // TIM12_CH2 - //{PC_6, TIM8, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF3_TIM8, 1, 0)}, // TIM8_CH1 - //{PC_7, TIM8, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF3_TIM8, 2, 0)}, // TIM8_CH2 //{PC_8, TIM3, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM3, 3, 0)}, // TIM3_CH3 //{PC_8, TIM8, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF3_TIM8, 3, 0)}, // TIM8_CH3 //{PC_9, TIM3, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM3, 4, 0)}, // TIM3_CH4 //{PC_9, TIM8, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF3_TIM8, 4, 0)}, // TIM8_CH4 - //{PE_8, TIM1, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM1, 1, 1)}, // TIM1_CH1N //{PE_9, TIM1, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM1, 1, 0)}, // TIM1_CH1 //{PE_10, TIM1, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM1, 2, 1)}, // TIM1_CH2N - //{PE_12, TIM1, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM1, 3, 1)}, // TIM1_CH3N - //{PE_14, TIM1, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM1, 4, 0)}, // TIM1_CH4 - {NC, NP, 0} }; #endif diff --git a/buildroot/share/PlatformIO/variants/MARLIN_F103Zx/ldscript.ld b/buildroot/share/PlatformIO/variants/MARLIN_F103Zx/ldscript.ld index 098e83b06..09088b622 100644 --- a/buildroot/share/PlatformIO/variants/MARLIN_F103Zx/ldscript.ld +++ b/buildroot/share/PlatformIO/variants/MARLIN_F103Zx/ldscript.ld @@ -102,7 +102,7 @@ SECTIONS . = ALIGN(4); } >FLASH - .ARM.extab : { + .ARM.extab : { . = ALIGN(4); *(.ARM.extab* .gnu.linkonce.armextab.*) . = ALIGN(4); @@ -146,7 +146,7 @@ SECTIONS _sidata = LOADADDR(.data); /* Initialized data sections into "RAM" Ram type memory */ - .data : + .data : { . = ALIGN(4); _sdata = .; /* create a global symbol at data start */ @@ -157,7 +157,7 @@ SECTIONS _edata = .; /* define a global symbol at data end */ } >RAM AT> FLASH - + /* Uninitialized data section into "RAM" Ram type memory */ . = ALIGN(4); .bss : @@ -185,8 +185,6 @@ SECTIONS . = ALIGN(8); } >RAM - - /* Remove information from the compiler libraries */ /DISCARD/ : { @@ -197,4 +195,3 @@ SECTIONS .ARM.attributes 0 : { *(.ARM.attributes) } } - From 97cb0a8c3e3dbaeac07935938b145237a7285d8c Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Mon, 27 Jul 2020 18:09:52 -0500 Subject: [PATCH 069/194] General cleanup --- Marlin/src/gcode/control/M997.cpp | 2 ++ Marlin/src/module/settings.cpp | 3 +-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/Marlin/src/gcode/control/M997.cpp b/Marlin/src/gcode/control/M997.cpp index 6c28d42f4..cdff96f1a 100644 --- a/Marlin/src/gcode/control/M997.cpp +++ b/Marlin/src/gcode/control/M997.cpp @@ -28,7 +28,9 @@ * M997: Perform in-application firmware update */ void GcodeSuite::M997() { + flashFirmware(parser.intval('S')); + } #endif diff --git a/Marlin/src/module/settings.cpp b/Marlin/src/module/settings.cpp index 3df2067f5..34af8f2ea 100644 --- a/Marlin/src/module/settings.cpp +++ b/Marlin/src/module/settings.cpp @@ -2517,8 +2517,7 @@ void MarlinSettings::reset() { #if HAS_PROBE_XY_OFFSET LOOP_XYZ(a) probe.offset[a] = dpo[a]; #else - probe.offset.x = probe.offset.y = 0; - probe.offset.z = dpo[Z_AXIS]; + probe.offset.set(0, 0, dpo[Z_AXIS]); #endif #endif From b84c69072efb6bf00ce17ecf99196c73f5f6508f Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Sat, 8 Aug 2020 00:14:02 -0500 Subject: [PATCH 070/194] Patch hex_print --- Marlin/src/libs/hex_print.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Marlin/src/libs/hex_print.cpp b/Marlin/src/libs/hex_print.cpp index 360b50e5e..0f746d628 100644 --- a/Marlin/src/libs/hex_print.cpp +++ b/Marlin/src/libs/hex_print.cpp @@ -78,7 +78,7 @@ void print_hex_byte(const uint8_t b) { SERIAL_ECHO(hex_byte(b)); } void print_hex_word(const uint16_t w) { SERIAL_ECHO(hex_word(w)); } void print_hex_address(const void * const w) { SERIAL_ECHO(hex_address(w)); } -void print_hex_long(const uintptr_t w, const char delimiter) { +void print_hex_long(const uint32_t w, const char delimiter) { SERIAL_ECHOPGM("0x"); for (int B = 24; B >= 8; B -= 8){ print_hex_byte(w >> B); From ee69fb00a6d9aee92074510de7f34f81d9ae83af Mon Sep 17 00:00:00 2001 From: Victor Oliveira Date: Sat, 8 Aug 2020 02:32:30 -0300 Subject: [PATCH 071/194] Marlin Color UI (FSMC) for STM32F1 (#18952) --- Marlin/src/HAL/STM32F1/inc/Conditionals_LCD.h | 6 +- Marlin/src/HAL/STM32F1/tft/tft_fsmc.cpp | 236 ++++++++++++++++++ Marlin/src/HAL/STM32F1/tft/tft_fsmc.h | 64 +++++ Marlin/src/HAL/STM32F1/tft/xpt2046.cpp | 143 +++++++++++ Marlin/src/HAL/STM32F1/tft/xpt2046.h | 78 ++++++ Marlin/src/lcd/tft/touch.cpp | 1 - Marlin/src/pins/stm32f1/pins_CHITU3D_V5.h | 47 +++- Marlin/src/pins/stm32f1/pins_CHITU3D_V6.h | 23 ++ Marlin/src/pins/stm32f1/pins_MKS_ROBIN_NANO.h | 22 ++ 9 files changed, 604 insertions(+), 16 deletions(-) create mode 100644 Marlin/src/HAL/STM32F1/tft/tft_fsmc.cpp create mode 100644 Marlin/src/HAL/STM32F1/tft/tft_fsmc.h create mode 100644 Marlin/src/HAL/STM32F1/tft/xpt2046.cpp create mode 100644 Marlin/src/HAL/STM32F1/tft/xpt2046.h diff --git a/Marlin/src/HAL/STM32F1/inc/Conditionals_LCD.h b/Marlin/src/HAL/STM32F1/inc/Conditionals_LCD.h index 14977381e..0a1d6c820 100644 --- a/Marlin/src/HAL/STM32F1/inc/Conditionals_LCD.h +++ b/Marlin/src/HAL/STM32F1/inc/Conditionals_LCD.h @@ -26,12 +26,12 @@ #undef SD_CHECK_AND_RETRY #endif -#if HAS_GRAPHICAL_TFT - #error "Sorry! TFT displays are not available for HAL/STM32F1." +#if HAS_SPI_TFT + #error "Sorry! SPI TFT displays are not available for HAL/STM32F1 (yet)." #endif // This platform has 'touch/xpt2046', not 'tft/xpt2046' -#if ENABLED(TOUCH_SCREEN) +#if ENABLED(TOUCH_SCREEN) && !HAS_FSMC_TFT #undef TOUCH_SCREEN #undef TOUCH_SCREEN_CALIBRATION #define HAS_TOUCH_XPT2046 1 diff --git a/Marlin/src/HAL/STM32F1/tft/tft_fsmc.cpp b/Marlin/src/HAL/STM32F1/tft/tft_fsmc.cpp new file mode 100644 index 000000000..33cddd1e0 --- /dev/null +++ b/Marlin/src/HAL/STM32F1/tft/tft_fsmc.cpp @@ -0,0 +1,236 @@ +/** + * Marlin 3D Printer Firmware + * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin] + * + * Based on Sprinter and grbl. + * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + */ + +#include "../../../inc/MarlinConfig.h" + +#if HAS_FSMC_TFT + +#include "tft_fsmc.h" +#include +#include +#include + +LCD_CONTROLLER_TypeDef *TFT_FSMC::LCD; + +/** + * FSMC LCD IO + */ +#define __ASM __asm +#define __STATIC_INLINE static inline + +__attribute__((always_inline)) __STATIC_INLINE void __DSB() { + __ASM volatile ("dsb 0xF":::"memory"); +} + +#define FSMC_CS_NE1 PD7 + +#if ENABLED(STM32_XL_DENSITY) + #define FSMC_CS_NE2 PG9 + #define FSMC_CS_NE3 PG10 + #define FSMC_CS_NE4 PG12 + + #define FSMC_RS_A0 PF0 + #define FSMC_RS_A1 PF1 + #define FSMC_RS_A2 PF2 + #define FSMC_RS_A3 PF3 + #define FSMC_RS_A4 PF4 + #define FSMC_RS_A5 PF5 + #define FSMC_RS_A6 PF12 + #define FSMC_RS_A7 PF13 + #define FSMC_RS_A8 PF14 + #define FSMC_RS_A9 PF15 + #define FSMC_RS_A10 PG0 + #define FSMC_RS_A11 PG1 + #define FSMC_RS_A12 PG2 + #define FSMC_RS_A13 PG3 + #define FSMC_RS_A14 PG4 + #define FSMC_RS_A15 PG5 +#endif + +#define FSMC_RS_A16 PD11 +#define FSMC_RS_A17 PD12 +#define FSMC_RS_A18 PD13 +#define FSMC_RS_A19 PE3 +#define FSMC_RS_A20 PE4 +#define FSMC_RS_A21 PE5 +#define FSMC_RS_A22 PE6 +#define FSMC_RS_A23 PE2 + +#if ENABLED(STM32_XL_DENSITY) + #define FSMC_RS_A24 PG13 + #define FSMC_RS_A25 PG14 +#endif + +/* Timing configuration */ +#define FSMC_ADDRESS_SETUP_TIME 15 // AddressSetupTime +#define FSMC_DATA_SETUP_TIME 15 // DataSetupTime + +static uint8_t fsmcInit = 0; +void TFT_FSMC::Init() { + uint8_t cs = FSMC_CS_PIN, rs = FSMC_RS_PIN; + uint32_t controllerAddress; + + #if PIN_EXISTS(TFT_RESET) + OUT_WRITE(TFT_RESET_PIN, HIGH); + delay(100); + #endif + + #if PIN_EXISTS(TFT_BACKLIGHT) + OUT_WRITE(TFT_BACKLIGHT_PIN, HIGH); + #endif + + struct fsmc_nor_psram_reg_map* fsmcPsramRegion; + + if (fsmcInit) return; + fsmcInit = 1; + + switch (cs) { + case FSMC_CS_NE1: controllerAddress = (uint32_t)FSMC_NOR_PSRAM_REGION1; fsmcPsramRegion = FSMC_NOR_PSRAM1_BASE; break; + #if ENABLED(STM32_XL_DENSITY) + case FSMC_CS_NE2: controllerAddress = (uint32_t)FSMC_NOR_PSRAM_REGION2; fsmcPsramRegion = FSMC_NOR_PSRAM2_BASE; break; + case FSMC_CS_NE3: controllerAddress = (uint32_t)FSMC_NOR_PSRAM_REGION3; fsmcPsramRegion = FSMC_NOR_PSRAM3_BASE; break; + case FSMC_CS_NE4: controllerAddress = (uint32_t)FSMC_NOR_PSRAM_REGION4; fsmcPsramRegion = FSMC_NOR_PSRAM4_BASE; break; + #endif + default: return; + } + + #define _ORADDR(N) controllerAddress |= (_BV32(N) - 2) + + switch (rs) { + #if ENABLED(STM32_XL_DENSITY) + case FSMC_RS_A0: _ORADDR( 1); break; + case FSMC_RS_A1: _ORADDR( 2); break; + case FSMC_RS_A2: _ORADDR( 3); break; + case FSMC_RS_A3: _ORADDR( 4); break; + case FSMC_RS_A4: _ORADDR( 5); break; + case FSMC_RS_A5: _ORADDR( 6); break; + case FSMC_RS_A6: _ORADDR( 7); break; + case FSMC_RS_A7: _ORADDR( 8); break; + case FSMC_RS_A8: _ORADDR( 9); break; + case FSMC_RS_A9: _ORADDR(10); break; + case FSMC_RS_A10: _ORADDR(11); break; + case FSMC_RS_A11: _ORADDR(12); break; + case FSMC_RS_A12: _ORADDR(13); break; + case FSMC_RS_A13: _ORADDR(14); break; + case FSMC_RS_A14: _ORADDR(15); break; + case FSMC_RS_A15: _ORADDR(16); break; + #endif + case FSMC_RS_A16: _ORADDR(17); break; + case FSMC_RS_A17: _ORADDR(18); break; + case FSMC_RS_A18: _ORADDR(19); break; + case FSMC_RS_A19: _ORADDR(20); break; + case FSMC_RS_A20: _ORADDR(21); break; + case FSMC_RS_A21: _ORADDR(22); break; + case FSMC_RS_A22: _ORADDR(23); break; + case FSMC_RS_A23: _ORADDR(24); break; + #if ENABLED(STM32_XL_DENSITY) + case FSMC_RS_A24: _ORADDR(25); break; + case FSMC_RS_A25: _ORADDR(26); break; + #endif + default: return; + } + + rcc_clk_enable(RCC_FSMC); + + gpio_set_mode(GPIOD, 14, GPIO_AF_OUTPUT_PP); // FSMC_D00 + gpio_set_mode(GPIOD, 15, GPIO_AF_OUTPUT_PP); // FSMC_D01 + gpio_set_mode(GPIOD, 0, GPIO_AF_OUTPUT_PP); // FSMC_D02 + gpio_set_mode(GPIOD, 1, GPIO_AF_OUTPUT_PP); // FSMC_D03 + gpio_set_mode(GPIOE, 7, GPIO_AF_OUTPUT_PP); // FSMC_D04 + gpio_set_mode(GPIOE, 8, GPIO_AF_OUTPUT_PP); // FSMC_D05 + gpio_set_mode(GPIOE, 9, GPIO_AF_OUTPUT_PP); // FSMC_D06 + gpio_set_mode(GPIOE, 10, GPIO_AF_OUTPUT_PP); // FSMC_D07 + gpio_set_mode(GPIOE, 11, GPIO_AF_OUTPUT_PP); // FSMC_D08 + gpio_set_mode(GPIOE, 12, GPIO_AF_OUTPUT_PP); // FSMC_D09 + gpio_set_mode(GPIOE, 13, GPIO_AF_OUTPUT_PP); // FSMC_D10 + gpio_set_mode(GPIOE, 14, GPIO_AF_OUTPUT_PP); // FSMC_D11 + gpio_set_mode(GPIOE, 15, GPIO_AF_OUTPUT_PP); // FSMC_D12 + gpio_set_mode(GPIOD, 8, GPIO_AF_OUTPUT_PP); // FSMC_D13 + gpio_set_mode(GPIOD, 9, GPIO_AF_OUTPUT_PP); // FSMC_D14 + gpio_set_mode(GPIOD, 10, GPIO_AF_OUTPUT_PP); // FSMC_D15 + + gpio_set_mode(GPIOD, 4, GPIO_AF_OUTPUT_PP); // FSMC_NOE + gpio_set_mode(GPIOD, 5, GPIO_AF_OUTPUT_PP); // FSMC_NWE + + gpio_set_mode(PIN_MAP[cs].gpio_device, PIN_MAP[cs].gpio_bit, GPIO_AF_OUTPUT_PP); //FSMC_CS_NEx + gpio_set_mode(PIN_MAP[rs].gpio_device, PIN_MAP[rs].gpio_bit, GPIO_AF_OUTPUT_PP); //FSMC_RS_Ax + + fsmcPsramRegion->BCR = FSMC_BCR_WREN | FSMC_BCR_MTYP_SRAM | FSMC_BCR_MWID_16BITS | FSMC_BCR_MBKEN; + fsmcPsramRegion->BTR = (FSMC_DATA_SETUP_TIME << 8) | FSMC_ADDRESS_SETUP_TIME; + + afio_remap(AFIO_REMAP_FSMC_NADV); + + LCD = (LCD_CONTROLLER_TypeDef*)controllerAddress; +} + +void TFT_FSMC::Transmit(uint16_t Data) { + LCD->RAM = Data; + __DSB(); +} + +void TFT_FSMC::WriteReg(uint16_t Reg) { + LCD->REG = Reg; + __DSB(); +} + +uint32_t TFT_FSMC::GetID() { + uint32_t id; + WriteReg(0x0000); + id = LCD->RAM; + + if (id == 0) + id = ReadID(LCD_READ_ID); + if ((id & 0xFFFF) == 0 || (id & 0xFFFF) == 0xFFFF) + id = ReadID(LCD_READ_ID4); + return id; +} + + uint32_t TFT_FSMC::ReadID(uint16_t Reg) { + uint32_t id; + WriteReg(Reg); + id = LCD->RAM; // dummy read + id = Reg << 24; + id |= (LCD->RAM & 0x00FF) << 16; + id |= (LCD->RAM & 0x00FF) << 8; + id |= LCD->RAM & 0x00FF; + return id; + } + +bool TFT_FSMC::isBusy() { + return false; +} + +void TFT_FSMC::Abort() { + +} + +void TFT_FSMC::TransmitDMA(uint32_t MemoryIncrease, uint16_t *Data, uint16_t Count) { + dma_setup_transfer(FSMC_DMA_DEV, FSMC_DMA_CHANNEL, Data, DMA_SIZE_16BITS, &LCD->RAM, DMA_SIZE_16BITS, DMA_MEM_2_MEM | MemoryIncrease); + dma_set_num_transfers(FSMC_DMA_DEV, FSMC_DMA_CHANNEL, Count); + dma_clear_isr_bits(FSMC_DMA_DEV, FSMC_DMA_CHANNEL); + dma_enable(FSMC_DMA_DEV, FSMC_DMA_CHANNEL); + + while ((dma_get_isr_bits(FSMC_DMA_DEV, FSMC_DMA_CHANNEL) & 0x0A) == 0) {}; + dma_disable(FSMC_DMA_DEV, FSMC_DMA_CHANNEL); +} + +#endif // HAS_FSMC_TFT diff --git a/Marlin/src/HAL/STM32F1/tft/tft_fsmc.h b/Marlin/src/HAL/STM32F1/tft/tft_fsmc.h new file mode 100644 index 000000000..5c43361c0 --- /dev/null +++ b/Marlin/src/HAL/STM32F1/tft/tft_fsmc.h @@ -0,0 +1,64 @@ +/** + * Marlin 3D Printer Firmware + * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin] + * + * Based on Sprinter and grbl. + * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + */ +#pragma once + +#ifndef LCD_READ_ID + #define LCD_READ_ID 0x04 // Read display identification information (0xD3 on ILI9341) +#endif +#ifndef LCD_READ_ID4 + #define LCD_READ_ID4 0xD3 // Read display identification information (0xD3 on ILI9341) +#endif + +#include + +#define DATASIZE_8BIT DMA_SIZE_8BITS +#define DATASIZE_16BIT DMA_SIZE_16BITS +#define TFT_IO TFT_FSMC + +typedef struct { + __IO uint16_t REG; + __IO uint16_t RAM; +} LCD_CONTROLLER_TypeDef; + +class TFT_FSMC { + private: + static LCD_CONTROLLER_TypeDef *LCD; + + static uint32_t ReadID(uint16_t Reg); + static void Transmit(uint16_t Data); + static void TransmitDMA(uint32_t MemoryIncrease, uint16_t *Data, uint16_t Count); + + public: + static void Init(); + static uint32_t GetID(); + static bool isBusy(); + static void Abort(); + + static void DataTransferBegin(uint16_t DataWidth = DATASIZE_16BIT) {}; + static void DataTransferEnd() {}; + + static void WriteData(uint16_t Data) { Transmit(Data); } + static void WriteReg(uint16_t Reg); + + static void WriteSequence(uint16_t *Data, uint16_t Count) { TransmitDMA(DMA_PINC_MODE, Data, Count); } + static void WriteMultiple(uint16_t Color, uint16_t Count) { static uint16_t Data; Data = Color; TransmitDMA(DMA_CIRC_MODE, &Data, Count); } +}; diff --git a/Marlin/src/HAL/STM32F1/tft/xpt2046.cpp b/Marlin/src/HAL/STM32F1/tft/xpt2046.cpp new file mode 100644 index 000000000..dc34b0d5b --- /dev/null +++ b/Marlin/src/HAL/STM32F1/tft/xpt2046.cpp @@ -0,0 +1,143 @@ +/** + * Marlin 3D Printer Firmware + * Copyright (c) 2019 MarlinFirmware [https://github.com/MarlinFirmware/Marlin] + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + */ + +#include "../../../inc/MarlinConfig.h" + +#if HAS_TFT_XPT2046 + +#include "xpt2046.h" +#include + +uint16_t delta(uint16_t a, uint16_t b) { return a > b ? a - b : b - a; } + +#if ENABLED(TOUCH_BUTTONS_HW_SPI) + #include + + SPIClass XPT2046::SPIx(TOUCH_BUTTONS_HW_SPI_DEVICE); + + static void touch_spi_init(uint8_t spiRate) { + /** + * STM32F1 APB2 = 72MHz, APB1 = 36MHz, max SPI speed of this MCU if 18Mhz + * STM32F1 has 3 SPI ports, SPI1 in APB2, SPI2/SPI3 in APB1 + * so the minimum prescale of SPI1 is DIV4, SPI2/SPI3 is DIV2 + */ + uint8_t clock; + switch (spiRate) { + case SPI_FULL_SPEED: clock = SPI_CLOCK_DIV4; break; + case SPI_HALF_SPEED: clock = SPI_CLOCK_DIV4; break; + case SPI_QUARTER_SPEED: clock = SPI_CLOCK_DIV8; break; + case SPI_EIGHTH_SPEED: clock = SPI_CLOCK_DIV16; break; + case SPI_SPEED_5: clock = SPI_CLOCK_DIV32; break; + case SPI_SPEED_6: clock = SPI_CLOCK_DIV64; break; + default: clock = SPI_CLOCK_DIV2; // Default from the SPI library + } + XPT2046::SPIx.setModule(TOUCH_BUTTONS_HW_SPI_DEVICE); + XPT2046::SPIx.setClockDivider(clock); + XPT2046::SPIx.setBitOrder(MSBFIRST); + XPT2046::SPIx.setDataMode(SPI_MODE0); + } +#endif // TOUCH_BUTTONS_HW_SPI + +void XPT2046::Init() { + SET_INPUT(TOUCH_MISO_PIN); + SET_OUTPUT(TOUCH_MOSI_PIN); + SET_OUTPUT(TOUCH_SCK_PIN); + OUT_WRITE(TOUCH_CS_PIN, HIGH); + + #if PIN_EXISTS(TOUCH_INT) + // Optional Pendrive interrupt pin + SET_INPUT(TOUCH_INT_PIN); + #endif + + #if ENABLED(TOUCH_BUTTONS_HW_SPI) + touch_spi_init(SPI_SPEED_6); + #endif + + // Read once to enable pendrive status pin + getRawData(XPT2046_X); +} + +bool XPT2046::isTouched() { + return isBusy() ? false : ( + #if PIN_EXISTS(TOUCH_INT) + READ(TOUCH_INT_PIN) != HIGH + #else + getRawData(XPT2046_Z1) >= XPT2046_Z1_THRESHOLD + #endif + ); +} + +bool XPT2046::getRawPoint(int16_t *x, int16_t *y) { + if (isBusy()) return false; + if (!isTouched()) return false; + *x = getRawData(XPT2046_X); + *y = getRawData(XPT2046_Y); + return isTouched(); +} + +uint16_t XPT2046::getRawData(const XPTCoordinate coordinate) { + uint16_t data[3]; + + DataTransferBegin(); + + for (uint16_t i = 0; i < 3 ; i++) { + IO(coordinate); + data[i] = (IO() << 4) | (IO() >> 4); + } + + DataTransferEnd(); + + uint16_t delta01 = delta(data[0], data[1]), + delta02 = delta(data[0], data[2]), + delta12 = delta(data[1], data[2]); + + if (delta01 > delta02 || delta01 > delta12) + data[delta02 > delta12 ? 0 : 1] = data[2]; + + return (data[0] + data[1]) >> 1; +} + +uint16_t XPT2046::IO(uint16_t data) { + TERN(TOUCH_BUTTONS_HW_SPI, HardwareIO, SoftwareIO)(data); +} + +#if ENABLED(TOUCH_BUTTONS_HW_SPI) + uint16_t XPT2046::HardwareIO(uint16_t data) { + SPIx.begin(); + uint16_t result = SPIx.transfer(data); + SPIx.end(); + return result; + } +#endif + +uint16_t XPT2046::SoftwareIO(uint16_t data) { + uint16_t result = 0; + + for (uint8_t j = 0x80; j; j >>= 1) { + WRITE(TOUCH_SCK_PIN, LOW); + WRITE(TOUCH_MOSI_PIN, data & j ? HIGH : LOW); + if (READ(TOUCH_MISO_PIN)) result |= j; + WRITE(TOUCH_SCK_PIN, HIGH); + } + WRITE(TOUCH_SCK_PIN, LOW); + + return result; +} + +#endif // HAS_TFT_XPT2046 diff --git a/Marlin/src/HAL/STM32F1/tft/xpt2046.h b/Marlin/src/HAL/STM32F1/tft/xpt2046.h new file mode 100644 index 000000000..d2b7ad29b --- /dev/null +++ b/Marlin/src/HAL/STM32F1/tft/xpt2046.h @@ -0,0 +1,78 @@ +/** + * Marlin 3D Printer Firmware + * Copyright (c) 2019 MarlinFirmware [https://github.com/MarlinFirmware/Marlin] + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + */ +#pragma once + +#include "../../../inc/MarlinConfig.h" + +#if ENABLED(TOUCH_BUTTONS_HW_SPI) + #include +#endif + +#if !PIN_EXISTS(TOUCH_MISO) + #error "TOUCH_MISO_PIN is not defined." +#elif !PIN_EXISTS(TOUCH_MOSI) + #error "TOUCH_MOSI_PIN is not defined." +#elif !PIN_EXISTS(TOUCH_SCK) + #error "TOUCH_SCK_PIN is not defined." +#elif !PIN_EXISTS(TOUCH_CS) + #error "TOUCH_CS_PIN is not defined." +#endif + +#ifndef TOUCH_INT_PIN + #define TOUCH_INT_PIN -1 +#endif + +#define XPT2046_DFR_MODE 0x00 +#define XPT2046_SER_MODE 0x04 +#define XPT2046_CONTROL 0x80 + +enum XPTCoordinate : uint8_t { + XPT2046_X = 0x10 | XPT2046_CONTROL | XPT2046_DFR_MODE, + XPT2046_Y = 0x50 | XPT2046_CONTROL | XPT2046_DFR_MODE, + XPT2046_Z1 = 0x30 | XPT2046_CONTROL | XPT2046_DFR_MODE, + XPT2046_Z2 = 0x40 | XPT2046_CONTROL | XPT2046_DFR_MODE, +}; + +#if !defined(XPT2046_Z1_THRESHOLD) + #define XPT2046_Z1_THRESHOLD 10 +#endif + +class XPT2046 { +private: + static bool isBusy() { return false; } + + static uint16_t getRawData(const XPTCoordinate coordinate); + static bool isTouched(); + + static inline void DataTransferBegin() { WRITE(TOUCH_CS_PIN, LOW); }; + static inline void DataTransferEnd() { WRITE(TOUCH_CS_PIN, HIGH); }; + #if ENABLED(TOUCH_BUTTONS_HW_SPI) + static uint16_t HardwareIO(uint16_t data); + #endif + static uint16_t SoftwareIO(uint16_t data); + static uint16_t IO(uint16_t data = 0); + +public: + #if ENABLED(TOUCH_BUTTONS_HW_SPI) + static SPIClass SPIx; + #endif + + static void Init(); + static bool getRawPoint(int16_t *x, int16_t *y); +}; diff --git a/Marlin/src/lcd/tft/touch.cpp b/Marlin/src/lcd/tft/touch.cpp index 3407389f2..69f4ada86 100644 --- a/Marlin/src/lcd/tft/touch.cpp +++ b/Marlin/src/lcd/tft/touch.cpp @@ -22,7 +22,6 @@ #if ENABLED(TOUCH_SCREEN) #include "touch.h" -#include "pinconfig.h" #include "../ultralcd.h" #include "../menu/menu.h" diff --git a/Marlin/src/pins/stm32f1/pins_CHITU3D_V5.h b/Marlin/src/pins/stm32f1/pins_CHITU3D_V5.h index 6a3936588..6be67fc1a 100644 --- a/Marlin/src/pins/stm32f1/pins_CHITU3D_V5.h +++ b/Marlin/src/pins/stm32f1/pins_CHITU3D_V5.h @@ -148,8 +148,8 @@ #endif // SPI Flash -#define SPI_FLASH_SIZE 0x200000 // 2MB -#define HAS_SPI_FLASH 1 +#define SPI_FLASH_SIZE 0x200000 // 2MB +#define HAS_SPI_FLASH 1 // SPI 2 #define W25QXX_CS_PIN PB12 @@ -197,24 +197,47 @@ #define LCD_PIXEL_OFFSET_X 48 #define LCD_PIXEL_OFFSET_Y 48 - #define XPT2046_X_CALIBRATION -12316 - #define XPT2046_Y_CALIBRATION 8981 - #define XPT2046_X_OFFSET 340 - #define XPT2046_Y_OFFSET -20 + #define XPT2046_X_CALIBRATION -12316 + #define XPT2046_Y_CALIBRATION 8981 + #define XPT2046_X_OFFSET 340 + #define XPT2046_Y_OFFSET -20 #define USE_XPT2046 1 #define XPT2046_XY_SWAP 0 #define XPT2046_X_INV 1 #define XPT2046_Y_INV 0 - #define XPT2046_HOR_RES 480 - #define XPT2046_VER_RES 320 - #define XPT2046_X_MIN 140 - #define XPT2046_Y_MIN 200 + #define XPT2046_HOR_RES 480 + #define XPT2046_VER_RES 320 + #define XPT2046_X_MIN 140 + #define XPT2046_Y_MIN 200 #define XPT2046_X_MAX 1900 #define XPT2046_Y_MAX 1900 - #define XPT2046_AVG 4 - #define XPT2046_INV 0 + #define XPT2046_AVG 4 + #define XPT2046_INV 0 + +#elif ENABLED(TFT_480x320) + #define TFT_RESET_PIN PF11 + #define TFT_BACKLIGHT_PIN PD13 + + #define LCD_USE_DMA_FSMC // Use DMA transfers to send data to the TFT + #define FSMC_CS_PIN PD7 + #define FSMC_RS_PIN PD11 + #define FSMC_DMA_DEV DMA2 + #define FSMC_DMA_CHANNEL DMA_CH5 + + #define XPT2046_X_CALIBRATION -17181 + #define XPT2046_Y_CALIBRATION 11434 + #define XPT2046_X_OFFSET 501 + #define XPT2046_Y_OFFSET -9 + + #define TOUCH_CS_PIN PB7 // SPI1_NSS + #define TOUCH_SCK_PIN PA5 // SPI1_SCK + #define TOUCH_MISO_PIN PA6 // SPI1_MISO + #define TOUCH_MOSI_PIN PA7 // SPI1_MOSI + + #define TFT_DRIVER ILI9488 + #define TFT_BUFFER_SIZE 14400 #endif // SPI1(PA7)=LCD & SPI3(PB5)=STUFF, are not available diff --git a/Marlin/src/pins/stm32f1/pins_CHITU3D_V6.h b/Marlin/src/pins/stm32f1/pins_CHITU3D_V6.h index be64512b5..4633de40f 100644 --- a/Marlin/src/pins/stm32f1/pins_CHITU3D_V6.h +++ b/Marlin/src/pins/stm32f1/pins_CHITU3D_V6.h @@ -156,6 +156,29 @@ #define XPT2046_Y_OFFSET -20 #endif #endif + +#elif ENABLED(TFT_480x320) + #define TFT_RESET_PIN PF11 + #define TFT_BACKLIGHT_PIN PD13 + + #define LCD_USE_DMA_FSMC // Use DMA transfers to send data to the TFT + #define FSMC_CS_PIN PD7 + #define FSMC_RS_PIN PD11 + #define FSMC_DMA_DEV DMA2 + #define FSMC_DMA_CHANNEL DMA_CH5 + + #define XPT2046_X_CALIBRATION -17181 + #define XPT2046_Y_CALIBRATION 11434 + #define XPT2046_X_OFFSET 501 + #define XPT2046_Y_OFFSET -9 + + #define TOUCH_CS_PIN PB7 // SPI1_NSS + #define TOUCH_SCK_PIN PA5 // SPI1_SCK + #define TOUCH_MISO_PIN PA6 // SPI1_MISO + #define TOUCH_MOSI_PIN PA7 // SPI1_MOSI + + #define TFT_DRIVER ILI9488 + #define TFT_BUFFER_SIZE 14400 #endif // SPI Flash diff --git a/Marlin/src/pins/stm32f1/pins_MKS_ROBIN_NANO.h b/Marlin/src/pins/stm32f1/pins_MKS_ROBIN_NANO.h index a68b48107..d314c30fc 100644 --- a/Marlin/src/pins/stm32f1/pins_MKS_ROBIN_NANO.h +++ b/Marlin/src/pins/stm32f1/pins_MKS_ROBIN_NANO.h @@ -215,6 +215,28 @@ #define TOUCH_MOSI_PIN PB15 // SPI2_MOSI #endif +#elif ENABLED(TFT_480x320) + #define TFT_RESET_PIN PC6 + #define TFT_BACKLIGHT_PIN PD13 + + #define LCD_USE_DMA_FSMC // Use DMA transfers to send data to the TFT + #define FSMC_CS_PIN PD7 + #define FSMC_RS_PIN PD11 + #define FSMC_DMA_DEV DMA2 + #define FSMC_DMA_CHANNEL DMA_CH5 + + #define XPT2046_X_CALIBRATION -17181 + #define XPT2046_Y_CALIBRATION 11434 + #define XPT2046_X_OFFSET 501 + #define XPT2046_Y_OFFSET -9 + + #define TOUCH_CS_PIN PA7 // SPI2_NSS + #define TOUCH_SCK_PIN PB13 // SPI2_SCK + #define TOUCH_MISO_PIN PB14 // SPI2_MISO + #define TOUCH_MOSI_PIN PB15 // SPI2_MOSI + + #define TFT_DRIVER ILI9488 + #define TFT_BUFFER_SIZE 14400 #endif #define SPI_FLASH From c2d5b63a9882dc02f41017a5b2f24363a55fef8d Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Sat, 8 Aug 2020 18:21:44 -0500 Subject: [PATCH 072/194] Fix up STATIC_ITEM (#18962) --- Marlin/src/feature/powerloss.cpp | 2 +- Marlin/src/feature/powerloss.h | 2 +- Marlin/src/lcd/HD44780/ultralcd_HD44780.cpp | 12 +++++++----- Marlin/src/lcd/dogm/ultralcd_DOGM.cpp | 17 +++++++++-------- Marlin/src/lcd/language/language_en.h | 2 +- Marlin/src/lcd/lcdprint.h | 1 + Marlin/src/lcd/menu/menu.h | 20 +++++++++++--------- Marlin/src/lcd/menu/menu_addon.h | 2 +- Marlin/src/lcd/menu/menu_configuration.cpp | 4 ++-- Marlin/src/lcd/menu/menu_filament.cpp | 4 ++-- Marlin/src/lcd/menu/menu_info.cpp | 4 ++-- Marlin/src/lcd/menu/menu_led.cpp | 2 +- Marlin/src/lcd/menu/menu_mmu2.cpp | 4 ++-- Marlin/src/lcd/menu/menu_motion.cpp | 8 ++++---- Marlin/src/lcd/tft/ui_320x240.cpp | 6 +++--- Marlin/src/lcd/tft/ui_480x320.cpp | 6 +++--- 16 files changed, 51 insertions(+), 45 deletions(-) diff --git a/Marlin/src/feature/powerloss.cpp b/Marlin/src/feature/powerloss.cpp index 29a2cef97..9a3eee31b 100644 --- a/Marlin/src/feature/powerloss.cpp +++ b/Marlin/src/feature/powerloss.cpp @@ -21,7 +21,7 @@ */ /** - * power_loss_recovery.cpp - Resume an SD print after power-loss + * feature/powerloss.cpp - Resume an SD print after power-loss */ #include "../inc/MarlinConfigPre.h" diff --git a/Marlin/src/feature/powerloss.h b/Marlin/src/feature/powerloss.h index 30ea34342..10653493a 100644 --- a/Marlin/src/feature/powerloss.h +++ b/Marlin/src/feature/powerloss.h @@ -22,7 +22,7 @@ #pragma once /** - * power_loss_recovery.h - Resume an SD print after power-loss + * feature/powerloss.h - Resume an SD print after power-loss */ #include "../sd/cardreader.h" diff --git a/Marlin/src/lcd/HD44780/ultralcd_HD44780.cpp b/Marlin/src/lcd/HD44780/ultralcd_HD44780.cpp index a924528c3..22dd63f68 100644 --- a/Marlin/src/lcd/HD44780/ultralcd_HD44780.cpp +++ b/Marlin/src/lcd/HD44780/ultralcd_HD44780.cpp @@ -997,15 +997,17 @@ void MarlinUI::draw_status_screen() { #endif // ADVANCED_PAUSE_FEATURE // Draw a static item with no left-right margin required. Centered by default. - void MenuItem_static::draw(const uint8_t row, PGM_P const pstr, const uint8_t style/*=SS_DEFAULT*/, const char * const valstr/*=nullptr*/) { + void MenuItem_static::draw(const uint8_t row, PGM_P const pstr, const uint8_t style/*=SS_DEFAULT*/, const char * const vstr/*=nullptr*/) { int8_t n = LCD_WIDTH; lcd_moveto(0, row); - if ((style & SS_CENTER) && !valstr) { - int8_t pad = (LCD_WIDTH - utf8_strlen_P(pstr)) / 2; + const int8_t plen = pstr ? utf8_strlen_P(pstr) : 0, + vlen = vstr ? utf8_strlen(vstr) : 0; + if (style & SS_CENTER) { + int8_t pad = (LCD_WIDTH - plen - vlen) / 2; while (--pad >= 0) { lcd_put_wchar(' '); n--; } } - n = lcd_put_u8str_ind_P(pstr, itemIndex, itemString, n); - if (valstr) n -= lcd_put_u8str_max(valstr, n); + if (plen) n = lcd_put_u8str_ind_P(pstr, itemIndex, itemString, n); + if (vlen) n -= lcd_put_u8str_max(vstr, n); for (; n > 0; --n) lcd_put_wchar(' '); } diff --git a/Marlin/src/lcd/dogm/ultralcd_DOGM.cpp b/Marlin/src/lcd/dogm/ultralcd_DOGM.cpp index c6c67bf97..d17c336ee 100644 --- a/Marlin/src/lcd/dogm/ultralcd_DOGM.cpp +++ b/Marlin/src/lcd/dogm/ultralcd_DOGM.cpp @@ -347,20 +347,21 @@ void MarlinUI::clear_lcd() { } // Automatically cleared by Picture Loop } // Draw a static line of text in the same idiom as a menu item - void MenuItem_static::draw(const uint8_t row, PGM_P const pstr, const uint8_t style/*=SS_DEFAULT*/, const char * const valstr/*=nullptr*/) { + void MenuItem_static::draw(const uint8_t row, PGM_P const pstr, const uint8_t style/*=SS_DEFAULT*/, const char * const vstr/*=nullptr*/) { if (mark_as_selected(row, style & SS_INVERT)) { pixel_len_t n = LCD_PIXEL_WIDTH; // pixel width of string allowed - if ((style & SS_CENTER) && !valstr) - for (int8_t pad = (LCD_WIDTH - utf8_strlen_P(pstr)) / 2; pad > 0; --pad) { - lcd_put_wchar(' '); - n -= MENU_FONT_WIDTH; - } + const int8_t plen = pstr ? utf8_strlen_P(pstr) : 0, + vlen = vstr ? utf8_strlen(vstr) : 0; + if (style & SS_CENTER) { + int8_t pad = (LCD_WIDTH - plen - vlen) / 2; + while (--pad >= 0) n -= lcd_put_wchar(' '); + } - n = lcd_put_u8str_ind_P(pstr, itemIndex, itemString, n / (MENU_FONT_WIDTH)) * (MENU_FONT_WIDTH); - if (valstr) n -= lcd_put_u8str_max(valstr, n); + if (plen) n = lcd_put_u8str_ind_P(pstr, itemIndex, itemString, n / (MENU_FONT_WIDTH)) * (MENU_FONT_WIDTH); + if (vlen) n -= lcd_put_u8str_max(vstr, n); while (n > MENU_FONT_WIDTH) n -= lcd_put_wchar(' '); } } diff --git a/Marlin/src/lcd/language/language_en.h b/Marlin/src/lcd/language/language_en.h index 391cb598c..ca7ddd2b0 100644 --- a/Marlin/src/lcd/language/language_en.h +++ b/Marlin/src/lcd/language/language_en.h @@ -504,7 +504,7 @@ namespace Language_en { #if LCD_WIDTH >= 20 PROGMEM Language_Str MSG_INFO_PRINT_COUNT = _UxGT("Print Count"); PROGMEM Language_Str MSG_INFO_COMPLETED_PRINTS = _UxGT("Completed"); - PROGMEM Language_Str MSG_INFO_PRINT_TIME = _UxGT("Total Print time"); + PROGMEM Language_Str MSG_INFO_PRINT_TIME = _UxGT("Total Print Time"); PROGMEM Language_Str MSG_INFO_PRINT_LONGEST = _UxGT("Longest Job Time"); PROGMEM Language_Str MSG_INFO_PRINT_FILAMENT = _UxGT("Extruded Total"); #else diff --git a/Marlin/src/lcd/lcdprint.h b/Marlin/src/lcd/lcdprint.h index 8e611bde8..00139808a 100644 --- a/Marlin/src/lcd/lcdprint.h +++ b/Marlin/src/lcd/lcdprint.h @@ -99,6 +99,7 @@ #endif +#define SETCURSOR_X(col) SETCURSOR(col, _lcdLineNr) #define START_OF_UTF8_CHAR(C) (((C) & 0xC0u) != 0x80u) int lcd_glyph_height(); diff --git a/Marlin/src/lcd/menu/menu.h b/Marlin/src/lcd/menu/menu.h index d298376ce..7c3df79a1 100644 --- a/Marlin/src/lcd/menu/menu.h +++ b/Marlin/src/lcd/menu/menu.h @@ -83,7 +83,7 @@ class MenuItemBase { class MenuItem_static : public MenuItemBase { public: - static void draw(const uint8_t row, PGM_P const pstr, const uint8_t style=SS_DEFAULT, const char * const valstr=nullptr); + static void draw(const uint8_t row, PGM_P const pstr, const uint8_t style=SS_DEFAULT, const char * const vstr=nullptr); }; // CONFIRM_ITEM(LABEL,Y,N,FY,FN,V...), @@ -418,16 +418,17 @@ class MenuItem_bool : public MenuEditItemBase { }while(0) #define _MENU_ITEM_P(TYPE, V...) do { \ - _skipStatic = false; \ - if (_menuLineNr == _thisItemNr) \ + if (_menuLineNr == _thisItemNr) { \ + _skipStatic = false; \ _MENU_INNER_P(TYPE, ##V); \ + } \ NEXT_ITEM(); \ }while(0) // Indexed items set a global index value and optional data #define _MENU_ITEM_N_S_P(TYPE, N, S, V...) do{ \ - _skipStatic = false; \ if (_menuLineNr == _thisItemNr) { \ + _skipStatic = false; \ MenuItemBase::init(N, S); \ _MENU_INNER_P(TYPE, ##V); \ } \ @@ -436,8 +437,8 @@ class MenuItem_bool : public MenuEditItemBase { // Indexed items set a global index value #define _MENU_ITEM_N_P(TYPE, N, V...) do{ \ - _skipStatic = false; \ if (_menuLineNr == _thisItemNr) { \ + _skipStatic = false; \ MenuItemBase::itemIndex = N; \ _MENU_INNER_P(TYPE, ##V); \ } \ @@ -446,8 +447,8 @@ class MenuItem_bool : public MenuEditItemBase { // Items with a unique string #define _MENU_ITEM_S_P(TYPE, S, V...) do{ \ - _skipStatic = false; \ if (_menuLineNr == _thisItemNr) { \ + _skipStatic = false; \ MenuItemBase::itemString = S; \ _MENU_INNER_P(TYPE, ##V); \ } \ @@ -550,16 +551,17 @@ class MenuItem_bool : public MenuEditItemBase { // Indexed items set a global index value and optional data #define _CONFIRM_ITEM_P(PLABEL, V...) do { \ - _skipStatic = false; \ - if (_menuLineNr == _thisItemNr) \ + if (_menuLineNr == _thisItemNr) { \ + _skipStatic = false; \ _CONFIRM_ITEM_INNER_P(PLABEL, ##V); \ + } \ NEXT_ITEM(); \ }while(0) // Indexed items set a global index value #define _CONFIRM_ITEM_N_S_P(N, S, V...) do{ \ - _skipStatic = false; \ if (_menuLineNr == _thisItemNr) { \ + _skipStatic = false; \ MenuItemBase::init(N, S); \ _CONFIRM_ITEM_INNER_P(TYPE, ##V); \ } \ diff --git a/Marlin/src/lcd/menu/menu_addon.h b/Marlin/src/lcd/menu/menu_addon.h index c276c8865..b6eb8e163 100644 --- a/Marlin/src/lcd/menu/menu_addon.h +++ b/Marlin/src/lcd/menu/menu_addon.h @@ -25,6 +25,6 @@ #define MENU_ITEM_ADDON_START(X) do{ \ if (ui.should_draw() && _menuLineNr == _thisItemNr - 1) { \ - SETCURSOR(X, _lcdLineNr) + SETCURSOR_X(X) #define MENU_ITEM_ADDON_END() } }while(0) diff --git a/Marlin/src/lcd/menu/menu_configuration.cpp b/Marlin/src/lcd/menu/menu_configuration.cpp index ef3ad1ffe..26120fc5d 100644 --- a/Marlin/src/lcd/menu/menu_configuration.cpp +++ b/Marlin/src/lcd/menu/menu_configuration.cpp @@ -66,7 +66,7 @@ void menu_advanced_settings(); bar_percent += (int8_t)ui.encoderPosition; LIMIT(bar_percent, 0, 100); ui.encoderPosition = 0; - MenuItem_static::draw(0, GET_TEXT(MSG_PROGRESS_BAR_TEST), SS_CENTER|SS_INVERT); + MenuItem_static::draw(0, GET_TEXT(MSG_PROGRESS_BAR_TEST), SS_DEFAULT|SS_INVERT); lcd_put_int((LCD_WIDTH) / 2 - 2, LCD_HEIGHT - 2, bar_percent); lcd_put_wchar('%'); lcd_moveto(0, LCD_HEIGHT - 1); ui.draw_progress_bar(bar_percent); } @@ -307,7 +307,7 @@ void menu_advanced_settings(); #define MAXTEMP_ALL _MAX(REPEAT(HOTENDS, _MAXTEMP_ITEM) 0) const uint8_t m = MenuItemBase::itemIndex; START_MENU(); - STATIC_ITEM_P(ui.get_preheat_label(m), SS_CENTER|SS_INVERT); + STATIC_ITEM_P(ui.get_preheat_label(m), SS_DEFAULT|SS_INVERT); BACK_ITEM(MSG_CONFIGURATION); #if HAS_FAN editable.uint8 = uint8_t(ui.material_preset[m].fan_speed); diff --git a/Marlin/src/lcd/menu/menu_filament.cpp b/Marlin/src/lcd/menu/menu_filament.cpp index b430e0448..1b11438f4 100644 --- a/Marlin/src/lcd/menu/menu_filament.cpp +++ b/Marlin/src/lcd/menu/menu_filament.cpp @@ -87,7 +87,7 @@ void _menu_temp_filament_op(const PauseMode mode, const int8_t extruder) { _change_filament_mode = mode; _change_filament_extruder = extruder; START_MENU(); - if (LCD_HEIGHT >= 4) STATIC_ITEM_P(change_filament_header(mode), SS_CENTER|SS_INVERT); + if (LCD_HEIGHT >= 4) STATIC_ITEM_P(change_filament_header(mode), SS_DEFAULT|SS_INVERT); BACK_ITEM(MSG_BACK); #if PREHEAT_COUNT LOOP_L_N(m, PREHEAT_COUNT) @@ -266,7 +266,7 @@ void _lcd_pause_message(PGM_P const msg) { skip1 = !has2 && (LCD_HEIGHT) >= 5; START_SCREEN(); - STATIC_ITEM_P(pause_header(), SS_CENTER|SS_INVERT); // 1: Header + STATIC_ITEM_P(pause_header(), SS_DEFAULT|SS_INVERT); // 1: Header if (skip1) SKIP_ITEM(); // Move a single-line message down STATIC_ITEM_P(msg1); // 2: Message Line 1 if (has2) STATIC_ITEM_P(msg2); // 3: Message Line 2 diff --git a/Marlin/src/lcd/menu/menu_info.cpp b/Marlin/src/lcd/menu/menu_info.cpp index 697d4b767..b94be2e53 100644 --- a/Marlin/src/lcd/menu/menu_info.cpp +++ b/Marlin/src/lcd/menu/menu_info.cpp @@ -205,7 +205,7 @@ void menu_info_board() { if (ui.use_click()) return ui.go_back(); START_SCREEN(); - STATIC_ITEM_P(PSTR(BOARD_INFO_NAME), SS_CENTER|SS_INVERT); // MyPrinterController + STATIC_ITEM_P(PSTR(BOARD_INFO_NAME), SS_DEFAULT|SS_INVERT); // MyPrinterController #ifdef BOARD_WEBSITE_URL STATIC_ITEM_P(PSTR(BOARD_WEBSITE_URL), SS_LEFT); // www.my3dprinter.com #endif @@ -237,7 +237,7 @@ void menu_info_board() { void menu_info_printer() { if (ui.use_click()) return ui.go_back(); START_SCREEN(); - STATIC_ITEM(MSG_MARLIN, SS_CENTER|SS_INVERT); // Marlin + STATIC_ITEM(MSG_MARLIN, SS_DEFAULT|SS_INVERT); // Marlin STATIC_ITEM_P(PSTR(SHORT_BUILD_VERSION)); // x.x.x-Branch STATIC_ITEM_P(PSTR(STRING_DISTRIBUTION_DATE)); // YYYY-MM-DD HH:MM STATIC_ITEM_P(PSTR(MACHINE_NAME)); // My3DPrinter diff --git a/Marlin/src/lcd/menu/menu_led.cpp b/Marlin/src/lcd/menu/menu_led.cpp index ac56ca0e5..b117e0baa 100644 --- a/Marlin/src/lcd/menu/menu_led.cpp +++ b/Marlin/src/lcd/menu/menu_led.cpp @@ -37,7 +37,7 @@ void menu_led_presets() { START_MENU(); #if LCD_HEIGHT > 2 - STATIC_ITEM(MSG_LED_PRESETS, SS_CENTER|SS_INVERT); + STATIC_ITEM(MSG_LED_PRESETS, SS_DEFAULT|SS_INVERT); #endif BACK_ITEM(MSG_LED_CONTROL); ACTION_ITEM(MSG_SET_LEDS_WHITE, leds.set_white); diff --git a/Marlin/src/lcd/menu/menu_mmu2.cpp b/Marlin/src/lcd/menu/menu_mmu2.cpp index e9627b841..304e95887 100644 --- a/Marlin/src/lcd/menu/menu_mmu2.cpp +++ b/Marlin/src/lcd/menu/menu_mmu2.cpp @@ -131,7 +131,7 @@ inline void action_mmu2_choose(const uint8_t tool) { void menu_mmu2_choose_filament() { START_MENU(); #if LCD_HEIGHT > 2 - STATIC_ITEM(MSG_MMU2_CHOOSE_FILAMENT_HEADER, SS_CENTER|SS_INVERT); + STATIC_ITEM(MSG_MMU2_CHOOSE_FILAMENT_HEADER, SS_DEFAULT|SS_INVERT); #endif LOOP_L_N(i, 5) ACTION_ITEM_N(i, MSG_MMU2_FILAMENT_N, []{ action_mmu2_choose(MenuItemBase::itemIndex); }); END_MENU(); @@ -145,7 +145,7 @@ void menu_mmu2_pause() { currentTool = mmu2.get_current_tool(); START_MENU(); #if LCD_HEIGHT > 2 - STATIC_ITEM(MSG_FILAMENT_CHANGE_HEADER, SS_CENTER|SS_INVERT); + STATIC_ITEM(MSG_FILAMENT_CHANGE_HEADER, SS_DEFAULT|SS_INVERT); #endif ACTION_ITEM(MSG_MMU2_RESUME, []{ mmuMenuWait = false; }); ACTION_ITEM(MSG_MMU2_UNLOAD_FILAMENT, []{ mmu2.unload(); }); diff --git a/Marlin/src/lcd/menu/menu_motion.cpp b/Marlin/src/lcd/menu/menu_motion.cpp index 60118a301..622cd091c 100644 --- a/Marlin/src/lcd/menu/menu_motion.cpp +++ b/Marlin/src/lcd/menu/menu_motion.cpp @@ -178,12 +178,12 @@ void _menu_move_distance(const AxisEnum axis, const screenFunc_t func, const int START_MENU(); if (LCD_HEIGHT >= 4) { switch (axis) { - case X_AXIS: STATIC_ITEM(MSG_MOVE_X, SS_CENTER|SS_INVERT); break; - case Y_AXIS: STATIC_ITEM(MSG_MOVE_Y, SS_CENTER|SS_INVERT); break; - case Z_AXIS: STATIC_ITEM(MSG_MOVE_Z, SS_CENTER|SS_INVERT); break; + case X_AXIS: STATIC_ITEM(MSG_MOVE_X, SS_DEFAULT|SS_INVERT); break; + case Y_AXIS: STATIC_ITEM(MSG_MOVE_Y, SS_DEFAULT|SS_INVERT); break; + case Z_AXIS: STATIC_ITEM(MSG_MOVE_Z, SS_DEFAULT|SS_INVERT); break; default: TERN_(MANUAL_E_MOVES_RELATIVE, manual_move_e_origin = current_position.e); - STATIC_ITEM(MSG_MOVE_E, SS_CENTER|SS_INVERT); + STATIC_ITEM(MSG_MOVE_E, SS_DEFAULT|SS_INVERT); break; } } diff --git a/Marlin/src/lcd/tft/ui_320x240.cpp b/Marlin/src/lcd/tft/ui_320x240.cpp index 0b800abc3..a4ac1465e 100644 --- a/Marlin/src/lcd/tft/ui_320x240.cpp +++ b/Marlin/src/lcd/tft/ui_320x240.cpp @@ -341,11 +341,11 @@ void MarlinUI::draw_status_screen() { } // Draw a static item with no left-right margin required. Centered by default. -void MenuItem_static::draw(const uint8_t row, PGM_P const pstr, const uint8_t style/*=SS_DEFAULT*/, const char * const valstr/*=nullptr*/) { +void MenuItem_static::draw(const uint8_t row, PGM_P const pstr, const uint8_t style/*=SS_DEFAULT*/, const char * const vstr/*=nullptr*/) { menu_item(row); tft_string.set(pstr, itemIndex, itemString); - if (valstr) - tft_string.add(valstr); + if (vstr) + tft_string.add(vstr); tft.add_text(tft_string.center(TFT_WIDTH), MENU_TEXT_Y_OFFSET, COLOR_YELLOW, tft_string); } diff --git a/Marlin/src/lcd/tft/ui_480x320.cpp b/Marlin/src/lcd/tft/ui_480x320.cpp index 3eeed903c..c9f0bfd0e 100644 --- a/Marlin/src/lcd/tft/ui_480x320.cpp +++ b/Marlin/src/lcd/tft/ui_480x320.cpp @@ -345,11 +345,11 @@ void MarlinUI::draw_status_screen() { } // Draw a static item with no left-right margin required. Centered by default. -void MenuItem_static::draw(const uint8_t row, PGM_P const pstr, const uint8_t style/*=SS_DEFAULT*/, const char * const valstr/*=nullptr*/) { +void MenuItem_static::draw(const uint8_t row, PGM_P const pstr, const uint8_t style/*=SS_DEFAULT*/, const char * const vstr/*=nullptr*/) { menu_item(row); tft_string.set(pstr, itemIndex, itemString); - if (valstr) - tft_string.add(valstr); + if (vstr) + tft_string.add(vstr); tft.add_text(tft_string.center(TFT_WIDTH), MENU_TEXT_Y_OFFSET, COLOR_YELLOW, tft_string); } From e3c0891d2b6f956ab6dbb8b27e37f8215a1d4903 Mon Sep 17 00:00:00 2001 From: Victor Oliveira Date: Sat, 8 Aug 2020 20:40:12 -0300 Subject: [PATCH 073/194] Fix compiler search in non-default PIO installs (#18960) --- buildroot/share/PlatformIO/scripts/common-dependencies.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/buildroot/share/PlatformIO/scripts/common-dependencies.py b/buildroot/share/PlatformIO/scripts/common-dependencies.py index e09c639ad..6c1b571bf 100644 --- a/buildroot/share/PlatformIO/scripts/common-dependencies.py +++ b/buildroot/share/PlatformIO/scripts/common-dependencies.py @@ -156,16 +156,16 @@ def search_compiler(): # Find the current platform compiler by searching the $PATH if env['PLATFORM'] == 'win32': path_separator = ';' - path_regex = r'platformio\\packages.*\\bin' + path_regex = re.escape(env['PROJECT_PACKAGES_DIR']) + r'.*\\bin' gcc = "g++.exe" else: path_separator = ':' - path_regex = r'platformio/packages.*/bin' + path_regex = re.escape(env['PROJECT_PACKAGES_DIR']) + r'.*/bin' gcc = "g++" # Search for the compiler for path in env['ENV']['PATH'].split(path_separator): - if not re.search(path_regex, path): + if not re.search(path_regex, path, re.IGNORECASE): continue for file in os.listdir(path): if not file.endswith(gcc): From 2ef6c8ba970a217259f1b108eee42086c7d8faf4 Mon Sep 17 00:00:00 2001 From: Victor Oliveira Date: Sat, 8 Aug 2020 20:45:34 -0300 Subject: [PATCH 074/194] Marlin Color UI for STM32F1 (SPI) (#18958) --- Marlin/src/HAL/STM32F1/inc/Conditionals_LCD.h | 6 +- Marlin/src/HAL/STM32F1/tft/tft_spi.cpp | 144 ++++++++++++++++++ Marlin/src/HAL/STM32F1/tft/tft_spi.h | 65 ++++++++ Marlin/src/HAL/STM32F1/tft/xpt2046.cpp | 10 +- Marlin/src/lcd/tft/ili9488.h | 4 +- Marlin/src/pins/stm32f1/pins_MKS_ROBIN_NANO.h | 9 +- .../src/pins/stm32f1/pins_MKS_ROBIN_NANO_V2.h | 31 ++++ 7 files changed, 253 insertions(+), 16 deletions(-) create mode 100644 Marlin/src/HAL/STM32F1/tft/tft_spi.cpp create mode 100644 Marlin/src/HAL/STM32F1/tft/tft_spi.h diff --git a/Marlin/src/HAL/STM32F1/inc/Conditionals_LCD.h b/Marlin/src/HAL/STM32F1/inc/Conditionals_LCD.h index 0a1d6c820..09d79030b 100644 --- a/Marlin/src/HAL/STM32F1/inc/Conditionals_LCD.h +++ b/Marlin/src/HAL/STM32F1/inc/Conditionals_LCD.h @@ -26,12 +26,8 @@ #undef SD_CHECK_AND_RETRY #endif -#if HAS_SPI_TFT - #error "Sorry! SPI TFT displays are not available for HAL/STM32F1 (yet)." -#endif - // This platform has 'touch/xpt2046', not 'tft/xpt2046' -#if ENABLED(TOUCH_SCREEN) && !HAS_FSMC_TFT +#if ENABLED(TOUCH_SCREEN) && !HAS_FSMC_TFT && !HAS_SPI_TFT #undef TOUCH_SCREEN #undef TOUCH_SCREEN_CALIBRATION #define HAS_TOUCH_XPT2046 1 diff --git a/Marlin/src/HAL/STM32F1/tft/tft_spi.cpp b/Marlin/src/HAL/STM32F1/tft/tft_spi.cpp new file mode 100644 index 000000000..a64f90f2b --- /dev/null +++ b/Marlin/src/HAL/STM32F1/tft/tft_spi.cpp @@ -0,0 +1,144 @@ +/** + * Marlin 3D Printer Firmware + * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin] + * + * Based on Sprinter and grbl. + * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + */ + +#include "../../../inc/MarlinConfig.h" + +#if HAS_SPI_TFT + +#include "tft_spi.h" + +// TFT_SPI tft; + +SPIClass TFT_SPI::SPIx(1); + +#define SPI_TFT_CS_H OUT_WRITE(TFT_CS_PIN, HIGH) +#define SPI_TFT_CS_L OUT_WRITE(TFT_CS_PIN, LOW) + +#define SPI_TFT_DC_H OUT_WRITE(TFT_DC_PIN, HIGH) +#define SPI_TFT_DC_L OUT_WRITE(TFT_DC_PIN, LOW) + +#define SPI_TFT_RST_H OUT_WRITE(TFT_RST_PIN, HIGH) +#define SPI_TFT_RST_L OUT_WRITE(TFT_RST_PIN, LOW) + +#define SPI_TFT_BLK_H OUT_WRITE(TFT_BACKLIGHT_PIN, HIGH) +#define SPI_TFT_BLK_L OUT_WRITE(TFT_BACKLIGHT_PIN, LOW) + +void TFT_SPI::Init() { + #if PIN_EXISTS(TFT_RESET) + // OUT_WRITE(TFT_RESET_PIN, HIGH); + SPI_TFT_RST_H; + delay(100); + #endif + + #if PIN_EXISTS(TFT_BACKLIGHT) + // OUT_WRITE(TFT_BACKLIGHT_PIN, HIGH); + SPI_TFT_BLK_H; + #endif + + SPI_TFT_DC_H; + SPI_TFT_CS_H; + + /** + * STM32F1 APB2 = 72MHz, APB1 = 36MHz, max SPI speed of this MCU if 18Mhz + * STM32F1 has 3 SPI ports, SPI1 in APB2, SPI2/SPI3 in APB1 + * so the minimum prescale of SPI1 is DIV4, SPI2/SPI3 is DIV2 + */ + #if SPI_DEVICE == 1 + #define SPI_CLOCK_MAX SPI_CLOCK_DIV4 + #else + #define SPI_CLOCK_MAX SPI_CLOCK_DIV2 + #endif + uint8_t clock; + uint8_t spiRate = SPI_FULL_SPEED; + switch (spiRate) { + case SPI_FULL_SPEED: clock = SPI_CLOCK_MAX ; break; + case SPI_HALF_SPEED: clock = SPI_CLOCK_DIV4 ; break; + case SPI_QUARTER_SPEED: clock = SPI_CLOCK_DIV8 ; break; + case SPI_EIGHTH_SPEED: clock = SPI_CLOCK_DIV16; break; + case SPI_SPEED_5: clock = SPI_CLOCK_DIV32; break; + case SPI_SPEED_6: clock = SPI_CLOCK_DIV64; break; + default: clock = SPI_CLOCK_DIV2; // Default from the SPI library + } + SPIx.setModule(1); + SPIx.setClockDivider(clock); + SPIx.setBitOrder(MSBFIRST); + SPIx.setDataMode(SPI_MODE0); +} + +void TFT_SPI::DataTransferBegin(uint16_t DataSize) { + SPIx.setDataSize(DataSize); + SPIx.begin(); + SPI_TFT_CS_L; +} + +uint32_t TFT_SPI::GetID() { + uint32_t id; + id = ReadID(LCD_READ_ID); + + if ((id & 0xFFFF) == 0 || (id & 0xFFFF) == 0xFFFF) + id = ReadID(LCD_READ_ID4); + return id; +} + +uint32_t TFT_SPI::ReadID(uint16_t Reg) { + #if !PIN_EXISTS(TFT_MISO) + return 0; + #else + uint16_t d = 0; + DataTransferBegin(DATASIZE_8BIT); + WriteReg(Reg); + + SPI.read((uint8_t*)&d, 1); //dummy read + SPI.read((uint8_t*)&d, 1); + + DataTransferEnd(); + + return d >> 7; + #endif +} + +bool TFT_SPI::isBusy() { + return false; +} + +void TFT_SPI::Abort() { + DataTransferEnd(); +} + +void TFT_SPI::Transmit(uint16_t Data) { + SPIx.send(Data); +} + +void TFT_SPI::TransmitDMA(uint32_t MemoryIncrease, uint16_t *Data, uint16_t Count) { + DataTransferBegin(); + SPI_TFT_DC_H; + if (MemoryIncrease == DMA_MINC_ENABLE) { + SPIx.dmaSend(Data, Count, true); + } + else { + SPIx.dmaSend(Data, Count, false); + } + + DataTransferEnd(); +} + +#endif // HAS_SPI_TFT diff --git a/Marlin/src/HAL/STM32F1/tft/tft_spi.h b/Marlin/src/HAL/STM32F1/tft/tft_spi.h new file mode 100644 index 000000000..1d1c9b444 --- /dev/null +++ b/Marlin/src/HAL/STM32F1/tft/tft_spi.h @@ -0,0 +1,65 @@ +/** + * Marlin 3D Printer Firmware + * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin] + * + * Based on Sprinter and grbl. + * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + */ +#pragma once + +#include "../../../inc/MarlinConfig.h" + +#include + +#ifndef LCD_READ_ID + #define LCD_READ_ID 0x04 // Read display identification information (0xD3 on ILI9341) +#endif +#ifndef LCD_READ_ID4 + #define LCD_READ_ID4 0xD3 // Read display identification information (0xD3 on ILI9341) +#endif + +#define DATASIZE_8BIT DATA_SIZE_8BIT +#define DATASIZE_16BIT DATA_SIZE_16BIT +#define TFT_IO TFT_SPI + +#define DMA_MINC_ENABLE 1 +#define DMA_MINC_DISABLE 0 + +class TFT_SPI { +private: + static uint32_t ReadID(uint16_t Reg); + static void Transmit(uint16_t Data); + static void TransmitDMA(uint32_t MemoryIncrease, uint16_t *Data, uint16_t Count); + +public: + static SPIClass SPIx; + + static void Init(); + static uint32_t GetID(); + static bool isBusy(); + static void Abort(); + + static void DataTransferBegin(uint16_t DataWidth = DATA_SIZE_16BIT); + static void DataTransferEnd() { WRITE(TFT_CS_PIN, HIGH); SPIx.end(); }; + static void DataTransferAbort(); + + static void WriteData(uint16_t Data) { Transmit(Data); } + static void WriteReg(uint16_t Reg) { WRITE(TFT_A0_PIN, LOW); Transmit(Reg); WRITE(TFT_A0_PIN, HIGH); } + + static void WriteSequence(uint16_t *Data, uint16_t Count) { TransmitDMA(DMA_MINC_ENABLE, Data, Count); } + static void WriteMultiple(uint16_t Color, uint16_t Count) { static uint16_t Data; Data = Color; TransmitDMA(DMA_MINC_DISABLE, &Data, Count); } +}; diff --git a/Marlin/src/HAL/STM32F1/tft/xpt2046.cpp b/Marlin/src/HAL/STM32F1/tft/xpt2046.cpp index dc34b0d5b..e06cace74 100644 --- a/Marlin/src/HAL/STM32F1/tft/xpt2046.cpp +++ b/Marlin/src/HAL/STM32F1/tft/xpt2046.cpp @@ -65,9 +65,7 @@ void XPT2046::Init() { SET_INPUT(TOUCH_INT_PIN); #endif - #if ENABLED(TOUCH_BUTTONS_HW_SPI) - touch_spi_init(SPI_SPEED_6); - #endif + TERN_(TOUCH_BUTTONS_HW_SPI, touch_spi_init(SPI_SPEED_6)); // Read once to enable pendrive status pin getRawData(XPT2046_X); @@ -95,12 +93,14 @@ uint16_t XPT2046::getRawData(const XPTCoordinate coordinate) { uint16_t data[3]; DataTransferBegin(); + TERN_(TOUCH_BUTTONS_HW_SPI, SPIx.begin()); for (uint16_t i = 0; i < 3 ; i++) { IO(coordinate); data[i] = (IO() << 4) | (IO() >> 4); } + TERN_(TOUCH_BUTTONS_HW_SPI, SPIx.end()); DataTransferEnd(); uint16_t delta01 = delta(data[0], data[1]), @@ -114,14 +114,12 @@ uint16_t XPT2046::getRawData(const XPTCoordinate coordinate) { } uint16_t XPT2046::IO(uint16_t data) { - TERN(TOUCH_BUTTONS_HW_SPI, HardwareIO, SoftwareIO)(data); + return TERN(TOUCH_BUTTONS_HW_SPI, HardwareIO, SoftwareIO)(data); } #if ENABLED(TOUCH_BUTTONS_HW_SPI) uint16_t XPT2046::HardwareIO(uint16_t data) { - SPIx.begin(); uint16_t result = SPIx.transfer(data); - SPIx.end(); return result; } #endif diff --git a/Marlin/src/lcd/tft/ili9488.h b/Marlin/src/lcd/tft/ili9488.h index 135f94a57..6aad70486 100644 --- a/Marlin/src/lcd/tft/ili9488.h +++ b/Marlin/src/lcd/tft/ili9488.h @@ -39,7 +39,9 @@ #define ILI9488_ORIENTATION_DOWN ILI9488_MADCTL_MX // 320x480 ; Cable on the upper side #define ILI9488_COLOR_BGR -#define ILI9488_ORIENTATION ILI9488_ORIENTATION_LEFT +#ifndef ILI9488_ORIENTATION + #define ILI9488_ORIENTATION ILI9488_ORIENTATION_LEFT +#endif #define ILI9488_MADCTL_DATA (ILI9488_ORIENTATION | TERN(ILI9488_COLOR_BGR, ILI9488_MADCTL_BGR, ILI9488_MADCTL_RGB)) #define ILI9488_NOP 0x00 // No Operation diff --git a/Marlin/src/pins/stm32f1/pins_MKS_ROBIN_NANO.h b/Marlin/src/pins/stm32f1/pins_MKS_ROBIN_NANO.h index d314c30fc..afa9354aa 100644 --- a/Marlin/src/pins/stm32f1/pins_MKS_ROBIN_NANO.h +++ b/Marlin/src/pins/stm32f1/pins_MKS_ROBIN_NANO.h @@ -225,10 +225,10 @@ #define FSMC_DMA_DEV DMA2 #define FSMC_DMA_CHANNEL DMA_CH5 - #define XPT2046_X_CALIBRATION -17181 - #define XPT2046_Y_CALIBRATION 11434 - #define XPT2046_X_OFFSET 501 - #define XPT2046_Y_OFFSET -9 + #define XPT2046_X_CALIBRATION 17880 + #define XPT2046_Y_CALIBRATION -12234 + #define XPT2046_X_OFFSET -45 + #define XPT2046_Y_OFFSET 349 #define TOUCH_CS_PIN PA7 // SPI2_NSS #define TOUCH_SCK_PIN PB13 // SPI2_SCK @@ -237,6 +237,7 @@ #define TFT_DRIVER ILI9488 #define TFT_BUFFER_SIZE 14400 + #define ILI9488_ORIENTATION ILI9488_MADCTL_MX | ILI9488_MADCTL_MV #endif #define SPI_FLASH diff --git a/Marlin/src/pins/stm32f1/pins_MKS_ROBIN_NANO_V2.h b/Marlin/src/pins/stm32f1/pins_MKS_ROBIN_NANO_V2.h index 9f4e57dd7..4552f8cd9 100644 --- a/Marlin/src/pins/stm32f1/pins_MKS_ROBIN_NANO_V2.h +++ b/Marlin/src/pins/stm32f1/pins_MKS_ROBIN_NANO_V2.h @@ -344,6 +344,37 @@ #define MKS_LCD12864B #undef SHOW_BOOTSCREEN + #elif ENABLED(TFT_480x320_SPI) + #define TFT_CS_PIN PD11 + #define TFT_SCK_PIN PA5 + #define TFT_MISO_PIN PA6 + #define TFT_MOSI_PIN PA7 + #define TFT_DC_PIN PD10 + #define TFT_RST_PIN PC6 + #define TFT_A0_PIN TFT_DC_PIN + + #define TFT_RESET_PIN PC6 + #define TFT_BACKLIGHT_PIN PD13 + + #define XPT2046_X_CALIBRATION -17253 + #define XPT2046_Y_CALIBRATION 11579 + #define XPT2046_X_OFFSET 514 + #define XPT2046_Y_OFFSET -24 + + #define TOUCH_CS_PIN PE14 // SPI1_NSS + #define TOUCH_SCK_PIN PA5 // SPI1_SCK + #define TOUCH_MISO_PIN PA6 // SPI1_MISO + #define TOUCH_MOSI_PIN PA7 // SPI1_MOSI + + #define TFT_DRIVER ST7796 + #define TFT_BUFFER_SIZE 14400 + + #define LCD_READ_ID 0xD3 + #define LCD_USE_DMA_SPI + + #define TOUCH_BUTTONS_HW_SPI + #define TOUCH_BUTTONS_HW_SPI_DEVICE 1 + #else // !MKS_MINI_12864 #define LCD_PINS_D4 PE14 From 58cfdb8f57bd71dd7a5ecaa8dc04388fd6944a5a Mon Sep 17 00:00:00 2001 From: thinkyhead Date: Sun, 9 Aug 2020 00:10:45 +0000 Subject: [PATCH 075/194] [cron] Bump distribution date (2020-08-09) --- Marlin/src/inc/Version.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Marlin/src/inc/Version.h b/Marlin/src/inc/Version.h index a2bc2337f..33cd24dd0 100644 --- a/Marlin/src/inc/Version.h +++ b/Marlin/src/inc/Version.h @@ -42,7 +42,7 @@ * version was tagged. */ #ifndef STRING_DISTRIBUTION_DATE - #define STRING_DISTRIBUTION_DATE "2020-08-08" + #define STRING_DISTRIBUTION_DATE "2020-08-09" #endif /** From 0a1b8659871f681464f24c40b16aa64cd2f7ca8e Mon Sep 17 00:00:00 2001 From: Victor Oliveira Date: Sat, 8 Aug 2020 21:24:31 -0300 Subject: [PATCH 076/194] W25QXX SPI Flash support (#18897) Co-authored-by: Scott Lahteine --- Marlin/src/gcode/control/M993_M994.cpp | 92 +++++++++++++++++++ Marlin/src/gcode/gcode.cpp | 5 + Marlin/src/gcode/gcode.h | 7 ++ .../lcd/extui/lib/mks_ui/SPIFlashStorage.cpp | 2 + .../lcd/extui/lib/mks_ui/SPIFlashStorage.h | 2 +- Marlin/src/lcd/extui/lib/mks_ui/draw_ui.cpp | 2 +- .../extui/lib/mks_ui/mks_hardware_test.cpp | 1 - .../src/lcd/extui/lib/mks_ui/pic_manager.cpp | 4 +- Marlin/src/lcd/extui/lib/mks_ui/pic_manager.h | 4 + .../lib/mks_ui/tft_lvgl_configuration.cpp | 1 - .../{lcd/extui/lib/mks_ui => libs}/W25Qxx.cpp | 44 ++++----- .../{lcd/extui/lib/mks_ui => libs}/W25Qxx.h | 50 +--------- Marlin/src/pins/stm32f1/pins_MKS_ROBIN_NANO.h | 5 +- .../src/pins/stm32f1/pins_MKS_ROBIN_NANO_V2.h | 5 +- 14 files changed, 140 insertions(+), 84 deletions(-) create mode 100644 Marlin/src/gcode/control/M993_M994.cpp rename Marlin/src/{lcd/extui/lib/mks_ui => libs}/W25Qxx.cpp (90%) rename Marlin/src/{lcd/extui/lib/mks_ui => libs}/W25Qxx.h (67%) diff --git a/Marlin/src/gcode/control/M993_M994.cpp b/Marlin/src/gcode/control/M993_M994.cpp new file mode 100644 index 000000000..4e13aa9d7 --- /dev/null +++ b/Marlin/src/gcode/control/M993_M994.cpp @@ -0,0 +1,92 @@ +/** + * Marlin 3D Printer Firmware + * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin] + * + * Based on Sprinter and grbl. + * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + */ + +#include "../../inc/MarlinConfig.h" + +#if ALL(HAS_SPI_FLASH, SDSUPPORT, MARLIN_DEV_MODE) + +#include "../gcode.h" +#include "../../sd/cardreader.h" +#include "../../libs/W25Qxx.h" + +/** + * M993: Backup SPI Flash to SD + */ +void GcodeSuite::M993() { + if (!card.isMounted()) card.mount(); + + char fname[] = "spiflash.bin"; + card.openFileWrite(fname); + if (!card.isFileOpen()) { + SERIAL_ECHOLNPAIR("Failed to open ", fname, " to write."); + return; + } + + W25QXXFlash W25QXX; + + uint8_t buf[1024]; + uint32_t addr = 0; + W25QXX.init(SPI_QUARTER_SPEED); + SERIAL_ECHOPGM("Save SPI Flash"); + while (addr < SPI_FLASH_SIZE) { + W25QXX.SPI_FLASH_BufferRead(buf, addr, COUNT(buf)); + addr += COUNT(buf); + card.write(buf, COUNT(buf)); + if (addr % (COUNT(buf) * 10) == 0) SERIAL_CHAR('.'); + } + SERIAL_ECHOLNPGM(" done"); + + card.closefile(); +} + +/** + * M994: Load a backup from SD to SPI Flash + */ +void GcodeSuite::M994() { + if (!card.isMounted()) card.mount(); + + char fname[] = "spiflash.bin"; + card.openFileRead(fname); + if (!card.isFileOpen()) { + SERIAL_ECHOLNPAIR("Failed to open ", fname, " to read."); + return; + } + + W25QXXFlash W25QXX; + + uint8_t buf[1024]; + uint32_t addr = 0; + W25QXX.init(SPI_QUARTER_SPEED); + W25QXX.SPI_FLASH_BulkErase(); + SERIAL_ECHOPGM("Load SPI Flash"); + while(addr < SPI_FLASH_SIZE) { + card.read(buf, COUNT(buf)); + W25QXX.SPI_FLASH_BufferWrite(buf, addr, COUNT(buf)); + addr += COUNT(buf); + if (addr % (COUNT(buf) * 10) == 0) SERIAL_CHAR('.'); + } + SERIAL_ECHOLNPGM(" done"); + + card.closefile(); +} + +#endif // HAS_SPI_FLASH && SDSUPPORT && MARLIN_DEV_MODE diff --git a/Marlin/src/gcode/gcode.cpp b/Marlin/src/gcode/gcode.cpp index f1692ee80..2309953f8 100644 --- a/Marlin/src/gcode/gcode.cpp +++ b/Marlin/src/gcode/gcode.cpp @@ -871,6 +871,11 @@ void GcodeSuite::process_parsed_command(const bool no_ok/*=false*/) { case 422: M422(); break; // M422: Set Z Stepper automatic alignment position using probe #endif + #if BOTH(HAS_SPI_FLASH, SDSUPPORT) + case 993: M993(); break; // M993: Backup SPI Flash to SD + case 994: M994(); break; // M994: Load a Backup from SD to SPI Flash + #endif + #if ENABLED(TOUCH_SCREEN_CALIBRATION) case 995: M995(); break; // M995: Touch screen calibration for TFT display #endif diff --git a/Marlin/src/gcode/gcode.h b/Marlin/src/gcode/gcode.h index 7e89e809d..783781b9c 100644 --- a/Marlin/src/gcode/gcode.h +++ b/Marlin/src/gcode/gcode.h @@ -276,6 +276,8 @@ * ************ Custom codes - This can change to suit future G-code regulations * G425 - Calibrate using a conductive object. (Requires CALIBRATION_GCODE) * M928 - Start SD logging: "M928 filename.gco". Stop with M29. (Requires SDSUPPORT) + * M993 - Backup SPI Flash to SD + * M994 - Load a Backup from SD to SPI Flash * M995 - Touch screen calibration for TFT display * M997 - Perform in-application firmware update * M999 - Restart after being stopped by error @@ -846,6 +848,11 @@ private: TERN_(TOUCH_SCREEN_CALIBRATION, static void M995()); + #if BOTH(HAS_SPI_FLASH, SDSUPPORT) + static void M993(); + static void M994(); + #endif + TERN_(PLATFORM_M997_SUPPORT, static void M997()); static void M999(); diff --git a/Marlin/src/lcd/extui/lib/mks_ui/SPIFlashStorage.cpp b/Marlin/src/lcd/extui/lib/mks_ui/SPIFlashStorage.cpp index 9d3adc1ba..979c916e5 100644 --- a/Marlin/src/lcd/extui/lib/mks_ui/SPIFlashStorage.cpp +++ b/Marlin/src/lcd/extui/lib/mks_ui/SPIFlashStorage.cpp @@ -27,6 +27,8 @@ #include "../../../../inc/MarlinConfig.h" #include "SPIFlashStorage.h" +extern W25QXXFlash W25QXX; + uint8_t SPIFlashStorage::m_pageData[SPI_FLASH_PageSize]; uint32_t SPIFlashStorage::m_currentPage; uint16_t SPIFlashStorage::m_pageDataUsed; diff --git a/Marlin/src/lcd/extui/lib/mks_ui/SPIFlashStorage.h b/Marlin/src/lcd/extui/lib/mks_ui/SPIFlashStorage.h index 5a1241370..98c8067bd 100644 --- a/Marlin/src/lcd/extui/lib/mks_ui/SPIFlashStorage.h +++ b/Marlin/src/lcd/extui/lib/mks_ui/SPIFlashStorage.h @@ -21,7 +21,7 @@ */ #pragma once -#include "W25Qxx.h" +#include "../../../../libs/W25Qxx.h" #define HAS_SPI_FLASH_COMPRESSION 1 diff --git a/Marlin/src/lcd/extui/lib/mks_ui/draw_ui.cpp b/Marlin/src/lcd/extui/lib/mks_ui/draw_ui.cpp index e8899b9ad..5d87eb9f8 100644 --- a/Marlin/src/lcd/extui/lib/mks_ui/draw_ui.cpp +++ b/Marlin/src/lcd/extui/lib/mks_ui/draw_ui.cpp @@ -27,7 +27,6 @@ #include "SPI_TFT.h" #endif -#include "W25Qxx.h" #include "tft_lvgl_configuration.h" #include "pic_manager.h" @@ -50,6 +49,7 @@ #include "../../../../feature/pause.h" #endif +W25QXXFlash W25QXX; CFG_ITMES gCfgItems; UI_CFG uiCfg; DISP_STATE_STACK disp_state_stack; diff --git a/Marlin/src/lcd/extui/lib/mks_ui/mks_hardware_test.cpp b/Marlin/src/lcd/extui/lib/mks_ui/mks_hardware_test.cpp index 00371d7ab..a35ae2970 100644 --- a/Marlin/src/lcd/extui/lib/mks_ui/mks_hardware_test.cpp +++ b/Marlin/src/lcd/extui/lib/mks_ui/mks_hardware_test.cpp @@ -29,7 +29,6 @@ #include "tft_lvgl_configuration.h" #include "draw_ready_print.h" -#include "W25Qxx.h" #include "mks_hardware_test.h" #include "draw_ui.h" #include "pic_manager.h" diff --git a/Marlin/src/lcd/extui/lib/mks_ui/pic_manager.cpp b/Marlin/src/lcd/extui/lib/mks_ui/pic_manager.cpp index 072213e49..447303a88 100644 --- a/Marlin/src/lcd/extui/lib/mks_ui/pic_manager.cpp +++ b/Marlin/src/lcd/extui/lib/mks_ui/pic_manager.cpp @@ -29,10 +29,10 @@ #include "mks_hardware_test.h" #include "SPIFlashStorage.h" -#include "W25Qxx.h" +#include "../../../../libs/W25Qxx.h" -#include "../../../../MarlinCore.h" #include "../../../../sd/cardreader.h" +#include "../../../../MarlinCore.h" extern uint16_t DeviceCode; extern unsigned char bmp_public_buf[17 * 1024]; diff --git a/Marlin/src/lcd/extui/lib/mks_ui/pic_manager.h b/Marlin/src/lcd/extui/lib/mks_ui/pic_manager.h index 354e11a54..4d9d08a9b 100644 --- a/Marlin/src/lcd/extui/lib/mks_ui/pic_manager.h +++ b/Marlin/src/lcd/extui/lib/mks_ui/pic_manager.h @@ -23,6 +23,8 @@ #include "../../../../inc/MarlinConfig.h" +#include "../../../../libs/W25Qxx.h" + #include #include @@ -154,6 +156,8 @@ extern void spi_flash_read_test(); extern void default_view_Read(uint8_t *default_view_Rbuff, uint32_t default_view_Readsize); extern void flash_view_Read(uint8_t *flash_view_Rbuff, uint32_t flash_view_Readsize); +extern W25QXXFlash W25QXX; + #ifdef __cplusplus } /* C-declarations for C++ */ #endif diff --git a/Marlin/src/lcd/extui/lib/mks_ui/tft_lvgl_configuration.cpp b/Marlin/src/lcd/extui/lib/mks_ui/tft_lvgl_configuration.cpp index fc5b8c1bf..81b50a101 100644 --- a/Marlin/src/lcd/extui/lib/mks_ui/tft_lvgl_configuration.cpp +++ b/Marlin/src/lcd/extui/lib/mks_ui/tft_lvgl_configuration.cpp @@ -35,7 +35,6 @@ #include "tft_lvgl_configuration.h" #include "draw_ready_print.h" -#include "W25Qxx.h" #include "pic_manager.h" #include "mks_hardware_test.h" #include "draw_ui.h" diff --git a/Marlin/src/lcd/extui/lib/mks_ui/W25Qxx.cpp b/Marlin/src/libs/W25Qxx.cpp similarity index 90% rename from Marlin/src/lcd/extui/lib/mks_ui/W25Qxx.cpp rename to Marlin/src/libs/W25Qxx.cpp index 60b4d0b7e..d51dfb819 100644 --- a/Marlin/src/lcd/extui/lib/mks_ui/W25Qxx.cpp +++ b/Marlin/src/libs/W25Qxx.cpp @@ -19,13 +19,12 @@ * along with this program. If not, see . * */ -#include "../../../../inc/MarlinConfigPre.h" -#if 1 // ENABLED(SPI_FLASH) -#if HAS_TFT_LVGL_UI +#include "../inc/MarlinConfig.h" + +#if HAS_SPI_FLASH #include -#include "../../../../inc/MarlinConfig.h" #include "W25Qxx.h" @@ -45,9 +44,7 @@ #define W25QXX_CS_H OUT_WRITE(SPI_FLASH_CS_PIN, HIGH) #define W25QXX_CS_L OUT_WRITE(SPI_FLASH_CS_PIN, LOW) -ext_FLASH W25QXX; - -void ext_FLASH::init(uint8_t spiRate) { +void W25QXXFlash::init(uint8_t spiRate) { OUT_WRITE(SPI_FLASH_CS_PIN, HIGH); @@ -85,12 +82,12 @@ void ext_FLASH::init(uint8_t spiRate) { * * @details */ -uint8_t ext_FLASH::spi_flash_Rec() { +uint8_t W25QXXFlash::spi_flash_Rec() { uint8_t returnByte = SPI.transfer(ff); return returnByte; } -uint8_t ext_FLASH::spi_flash_read_write_byte(uint8_t data) { +uint8_t W25QXXFlash::spi_flash_read_write_byte(uint8_t data) { uint8_t returnByte = SPI.transfer(data); return returnByte; } @@ -104,7 +101,7 @@ uint8_t ext_FLASH::spi_flash_read_write_byte(uint8_t data) { * * @details Uses DMA */ -void ext_FLASH::spi_flash_Read(uint8_t* buf, uint16_t nbyte) { SPI.dmaTransfer(0, const_cast(buf), nbyte); } +void W25QXXFlash::spi_flash_Read(uint8_t* buf, uint16_t nbyte) { SPI.dmaTransfer(0, const_cast(buf), nbyte); } /** * @brief Send a single byte on SPI port @@ -113,7 +110,7 @@ void ext_FLASH::spi_flash_Read(uint8_t* buf, uint16_t nbyte) { SPI.dmaTransfer(0 * * @details */ -void ext_FLASH::spi_flash_Send(uint8_t b) { SPI.send(b); } +void W25QXXFlash::spi_flash_Send(uint8_t b) { SPI.send(b); } /** * @brief Write token and then write from 512 byte buffer to SPI (for SD card) @@ -123,12 +120,12 @@ void ext_FLASH::spi_flash_Send(uint8_t b) { SPI.send(b); } * * @details Use DMA */ -void ext_FLASH::spi_flash_SendBlock(uint8_t token, const uint8_t* buf) { +void W25QXXFlash::spi_flash_SendBlock(uint8_t token, const uint8_t* buf) { SPI.send(token); SPI.dmaSend(const_cast(buf), 512); } -uint16_t ext_FLASH::W25QXX_ReadID(void) { +uint16_t W25QXXFlash::W25QXX_ReadID(void) { uint16_t Temp = 0; W25QXX_CS_L; spi_flash_Send(0x90); @@ -141,7 +138,7 @@ uint16_t ext_FLASH::W25QXX_ReadID(void) { return Temp; } -void ext_FLASH::SPI_FLASH_WriteEnable(void) { +void W25QXXFlash::SPI_FLASH_WriteEnable(void) { /* Select the FLASH: Chip Select low */ W25QXX_CS_L; /* Send "Write Enable" instruction */ @@ -159,7 +156,7 @@ void ext_FLASH::SPI_FLASH_WriteEnable(void) { * Output : None * Return : None *******************************************************************************/ -void ext_FLASH::SPI_FLASH_WaitForWriteEnd(void) { +void W25QXXFlash::SPI_FLASH_WaitForWriteEnd(void) { uint8_t FLASH_Status = 0; /* Select the FLASH: Chip Select low */ @@ -178,7 +175,7 @@ void ext_FLASH::SPI_FLASH_WaitForWriteEnd(void) { W25QXX_CS_H; } -void ext_FLASH::SPI_FLASH_SectorErase(uint32_t SectorAddr) { +void W25QXXFlash::SPI_FLASH_SectorErase(uint32_t SectorAddr) { /* Send write enable instruction */ SPI_FLASH_WriteEnable(); @@ -200,7 +197,7 @@ void ext_FLASH::SPI_FLASH_SectorErase(uint32_t SectorAddr) { SPI_FLASH_WaitForWriteEnd(); } -void ext_FLASH::SPI_FLASH_BlockErase(uint32_t BlockAddr) { +void W25QXXFlash::SPI_FLASH_BlockErase(uint32_t BlockAddr) { SPI_FLASH_WriteEnable(); W25QXX_CS_L; /* Send Sector Erase instruction */ @@ -224,7 +221,7 @@ void ext_FLASH::SPI_FLASH_BlockErase(uint32_t BlockAddr) { * Output : None * Return : None *******************************************************************************/ -void ext_FLASH::SPI_FLASH_BulkErase(void) { +void W25QXXFlash::SPI_FLASH_BulkErase(void) { /* Send write enable instruction */ SPI_FLASH_WriteEnable(); @@ -253,7 +250,7 @@ void ext_FLASH::SPI_FLASH_BulkErase(void) { * Output : None * Return : None *******************************************************************************/ -void ext_FLASH::SPI_FLASH_PageWrite(uint8_t* pBuffer, uint32_t WriteAddr, uint16_t NumByteToWrite) { +void W25QXXFlash::SPI_FLASH_PageWrite(uint8_t* pBuffer, uint32_t WriteAddr, uint16_t NumByteToWrite) { /* Enable the write access to the FLASH */ SPI_FLASH_WriteEnable(); @@ -296,7 +293,7 @@ void ext_FLASH::SPI_FLASH_PageWrite(uint8_t* pBuffer, uint32_t WriteAddr, uint16 * Output : None * Return : None *******************************************************************************/ -void ext_FLASH::SPI_FLASH_BufferWrite(uint8_t* pBuffer, uint32_t WriteAddr, uint16_t NumByteToWrite) { +void W25QXXFlash::SPI_FLASH_BufferWrite(uint8_t* pBuffer, uint32_t WriteAddr, uint16_t NumByteToWrite) { uint8_t NumOfPage = 0, NumOfSingle = 0, Addr = 0, count = 0, temp = 0; Addr = WriteAddr % SPI_FLASH_PageSize; @@ -361,7 +358,7 @@ void ext_FLASH::SPI_FLASH_BufferWrite(uint8_t* pBuffer, uint32_t WriteAddr, uint * Output : None * Return : None *******************************************************************************/ -void ext_FLASH::SPI_FLASH_BufferRead(uint8_t* pBuffer, uint32_t ReadAddr, uint16_t NumByteToRead) { +void W25QXXFlash::SPI_FLASH_BufferRead(uint8_t* pBuffer, uint32_t ReadAddr, uint16_t NumByteToRead) { /* Select the FLASH: Chip Select low */ W25QXX_CS_L; @@ -389,7 +386,4 @@ void ext_FLASH::SPI_FLASH_BufferRead(uint8_t* pBuffer, uint32_t ReadAddr, uint16 W25QXX_CS_H; } -void ext_FLASH::lv_pic_read(uint8_t *P_Rbuff, uint32_t addr, uint32_t size) {SPI_FLASH_BufferRead((uint8_t *)P_Rbuff, addr, size);} - -#endif // HAS_TFT_LVGL_UI -#endif // 1 ... SPI_FLASH +#endif // HAS_SPI_FLASH diff --git a/Marlin/src/lcd/extui/lib/mks_ui/W25Qxx.h b/Marlin/src/libs/W25Qxx.h similarity index 67% rename from Marlin/src/lcd/extui/lib/mks_ui/W25Qxx.h rename to Marlin/src/libs/W25Qxx.h index 88d5d6c2f..81e964345 100644 --- a/Marlin/src/lcd/extui/lib/mks_ui/W25Qxx.h +++ b/Marlin/src/libs/W25Qxx.h @@ -52,49 +52,7 @@ #define SPI_FLASH_PageSize 256 #define SPI_FLASH_PerWritePageSize 256 -#if 0 - - #define PIC_NAME_MAX_LEN 50 - - #define LOGO_MAX_SIZE (300*1024) - #define TITLELOGO_MAX_SIZE (150*1024) - #define DEFAULT_VIEW_MAX_SIZE (200*200*2) - #define FLASH_VIEW_MAX_SIZE (200*200*2) - - //Robin 2 - #define PIC_NAME_ADDR 0x003000 - #define PIC_SIZE_ADDR 0x007000 - #define PIC_COUNTER_ADDR 0x008000 - #define PIC_LOGO_ADDR 0x009000 - //#define PIC_DATA_ADDR 0x02f000 - - #define DEFAULT_VIEW_ADDR 0XC5800 - #define BAK_VIEW_ADDR (DEFAULT_VIEW_ADDR+90*1024) - #define PIC_ICON_LOGO_ADDR (BAK_VIEW_ADDR+80*1024) - - #define PIC_DATA_ADDR (PIC_ICON_LOGO_ADDR+350*1024) - - #define FONTINFOADDR 0x600000 - #define UNIGBK_FLASH_ADDR (FONTINFOADDR+4096) // 4*1024 - #define GBK_FLASH_ADDR (UNIGBK_FLASH_ADDR+180224) // 176*1024 - - #define PER_PIC_MAX_SPACE (32*1024) - - union union32 { - uint8_t bytes[4]; - uint32_t dwords; - }; - - struct pic_msg { - uint8_t name[PIC_NAME_MAX_LEN]; - union union32 size; - }; - - typedef struct pic_msg PIC_MSG; - -#endif // if 0 - -class ext_FLASH { +class W25QXXFlash { public: void init(uint8_t spiRate); static uint8_t spi_flash_Rec(); @@ -111,14 +69,8 @@ public: static void SPI_FLASH_PageWrite(uint8_t* pBuffer, uint32_t WriteAddr, uint16_t NumByteToWrite); static void SPI_FLASH_BufferWrite(uint8_t* pBuffer, uint32_t WriteAddr, uint16_t NumByteToWrite); static void SPI_FLASH_BufferRead(uint8_t* pBuffer, uint32_t ReadAddr, uint16_t NumByteToRead); - //uint32_t lv_get_pic_addr(uint8_t *Pname); - void lv_pic_read(uint8_t *P_Rbuff, uint32_t addr, uint32_t size); }; -extern ext_FLASH W25QXX; - -//extern uint32_t lv_get_pic_addr(uint8_t *Pname); - //#ifdef __cplusplus //} /* C-declarations for C++ */ //#endif diff --git a/Marlin/src/pins/stm32f1/pins_MKS_ROBIN_NANO.h b/Marlin/src/pins/stm32f1/pins_MKS_ROBIN_NANO.h index afa9354aa..160406435 100644 --- a/Marlin/src/pins/stm32f1/pins_MKS_ROBIN_NANO.h +++ b/Marlin/src/pins/stm32f1/pins_MKS_ROBIN_NANO.h @@ -240,8 +240,9 @@ #define ILI9488_ORIENTATION ILI9488_MADCTL_MX | ILI9488_MADCTL_MV #endif -#define SPI_FLASH -#if ENABLED(SPI_FLASH) +#define HAS_SPI_FLASH 1 +#define SPI_FLASH_SIZE 0x1000000 // 16MB +#if HAS_SPI_FLASH #define W25QXX_CS_PIN PB12 #define W25QXX_MOSI_PIN PB15 #define W25QXX_MISO_PIN PB14 diff --git a/Marlin/src/pins/stm32f1/pins_MKS_ROBIN_NANO_V2.h b/Marlin/src/pins/stm32f1/pins_MKS_ROBIN_NANO_V2.h index 4552f8cd9..be363e453 100644 --- a/Marlin/src/pins/stm32f1/pins_MKS_ROBIN_NANO_V2.h +++ b/Marlin/src/pins/stm32f1/pins_MKS_ROBIN_NANO_V2.h @@ -398,8 +398,9 @@ #endif // HAS_SPI_LCD -#define SPI_FLASH -#if ENABLED(SPI_FLASH) +#define HAS_SPI_FLASH 1 +#define SPI_FLASH_SIZE 0x1000000 // 16MB +#if HAS_SPI_FLASH #define W25QXX_CS_PIN PB12 #define W25QXX_MOSI_PIN PB15 #define W25QXX_MISO_PIN PB14 From 852e5ae0421810ecc6f44631237208030e70751f Mon Sep 17 00:00:00 2001 From: sherwin-dc <59867245+sherwin-dc@users.noreply.github.com> Date: Sun, 9 Aug 2020 09:00:42 +0800 Subject: [PATCH 077/194] Password via G-code and MarlinUI (#18399) Co-authored-by: Scott Lahteine --- Marlin/Configuration.h | 31 +++ Marlin/src/MarlinCore.cpp | 14 +- Marlin/src/core/language.h | 7 + Marlin/src/core/macros.h | 51 +++-- Marlin/src/feature/password/password.cpp | 58 ++++++ Marlin/src/feature/password/password.h | 57 ++++++ .../src/gcode/feature/password/M510-M512.cpp | 83 ++++++++ Marlin/src/gcode/gcode.cpp | 25 +++ Marlin/src/gcode/gcode.h | 13 ++ Marlin/src/inc/SanityCheck.h | 11 ++ Marlin/src/lcd/language/language_en.h | 11 ++ Marlin/src/lcd/menu/menu_advanced.cpp | 8 + Marlin/src/lcd/menu/menu_main.cpp | 8 +- Marlin/src/lcd/menu/menu_password.cpp | 184 ++++++++++++++++++ Marlin/src/module/settings.cpp | 42 +++- .../PlatformIO/scripts/common-dependencies.h | 3 + buildroot/tests/DUE-tests | 2 +- buildroot/tests/rambo-tests | 1 + platformio.ini | 4 + 19 files changed, 588 insertions(+), 25 deletions(-) create mode 100644 Marlin/src/feature/password/password.cpp create mode 100644 Marlin/src/feature/password/password.h create mode 100644 Marlin/src/gcode/feature/password/M510-M512.cpp create mode 100644 Marlin/src/lcd/menu/menu_password.cpp diff --git a/Marlin/Configuration.h b/Marlin/Configuration.h index 3ad7dfdab..3b6155f96 100644 --- a/Marlin/Configuration.h +++ b/Marlin/Configuration.h @@ -1642,6 +1642,37 @@ */ //#define PRINTCOUNTER +/** + * Password + * + * Set a numerical password for the printer which can be requested: + * + * - When the printer boots up + * - Upon opening the 'Print from Media' Menu + * - When SD printing is completed or aborted + * + * The following G-codes can be used: + * + * M510 - Lock Printer. Blocks all commands except M511. + * M511 - Unlock Printer. + * M512 - Set, Change and Remove Password. + * + * If you forget the password and get locked out you'll need to re-flash + * the firmware with the feature disabled, reset EEPROM, and (optionally) + * re-flash the firmware again with this feature enabled. + */ +//#define PASSWORD_FEATURE +#if ENABLED(PASSWORD_FEATURE) + #define PASSWORD_LENGTH 4 // (#) Number of digits (1-9). 3 or 4 is recommended + #define PASSWORD_ON_STARTUP + #define PASSWORD_UNLOCK_GCODE // Unlock with the M511 P command. Disable to prevent brute-force attack. + #define PASSWORD_CHANGE_GCODE // Change the password with M512 P N. + //#define PASSWORD_ON_SD_PRINT_MENU // This does not prevent gcodes from running + //#define PASSWORD_AFTER_SD_PRINT_END + //#define PASSWORD_AFTER_SD_PRINT_ABORT + //#include "Configuration_Secure.h" // External file with PASSWORD_DEFAULT_VALUE +#endif + //============================================================================= //============================= LCD and SD support ============================ //============================================================================= diff --git a/Marlin/src/MarlinCore.cpp b/Marlin/src/MarlinCore.cpp index a8c4407be..39530395e 100644 --- a/Marlin/src/MarlinCore.cpp +++ b/Marlin/src/MarlinCore.cpp @@ -213,6 +213,10 @@ #include "libs/L64XX/L64XX_Marlin.h" #endif +#if ENABLED(PASSWORD_FEATURE) + #include "feature/password/password.h" +#endif + PGMSTR(NUL_STR, ""); PGMSTR(M112_KILL_STR, "M112 Shutdown"); PGMSTR(G28_STR, "G28"); @@ -452,11 +456,15 @@ void startOrResumeJob() { #ifdef EVENT_GCODE_SD_STOP queue.inject_P(PSTR(EVENT_GCODE_SD_STOP)); #endif + + TERN_(PASSWORD_AFTER_SD_PRINT_ABORT, password.lock_machine()); } inline void finishSDPrinting() { - if (queue.enqueue_one_P(PSTR("M1001"))) + if (queue.enqueue_one_P(PSTR("M1001"))) { marlin_state = MF_RUNNING; + TERN_(PASSWORD_AFTER_SD_PRINT_END, password.lock_machine()); + } } #endif // SDSUPPORT @@ -1205,6 +1213,10 @@ void setup() { SETUP_RUN(tft_lvgl_init()); #endif + #if ENABLED(PASSWORD_ON_STARTUP) + SETUP_RUN(password.lock_machine()); // Will not proceed until correct password provided + #endif + marlin_state = MF_RUNNING; SETUP_LOG("setup() completed."); diff --git a/Marlin/src/core/language.h b/Marlin/src/core/language.h index 5208b3e1b..48431455f 100644 --- a/Marlin/src/core/language.h +++ b/Marlin/src/core/language.h @@ -266,6 +266,13 @@ #define STR_DEBUG_COMMUNICATION "COMMUNICATION" #define STR_DEBUG_LEVELING "LEVELING" +#define STR_PRINTER_LOCKED "Printer locked! (Unlock with M511 or LCD)" +#define STR_WRONG_PASSWORD "Incorrect Password" +#define STR_PASSWORD_TOO_LONG "Password too long" +#define STR_PASSWORD_REMOVED "Password removed" +#define STR_REMINDER_SAVE_SETTINGS "Remember to save!" +#define STR_PASSWORD_SET "Password is " + // LCD Menu Messages #define LANGUAGE_DATA_INCL_(M) STRINGIFY_(fontdata/langdata_##M.h) diff --git a/Marlin/src/core/macros.h b/Marlin/src/core/macros.h index 3bd273872..5fc108101 100644 --- a/Marlin/src/core/macros.h +++ b/Marlin/src/core/macros.h @@ -342,15 +342,22 @@ #endif // Macros for adding -#define INC_0 1 -#define INC_1 2 -#define INC_2 3 -#define INC_3 4 -#define INC_4 5 -#define INC_5 6 -#define INC_6 7 -#define INC_7 8 -#define INC_8 9 +#define INC_0 1 +#define INC_1 2 +#define INC_2 3 +#define INC_3 4 +#define INC_4 5 +#define INC_5 6 +#define INC_6 7 +#define INC_7 8 +#define INC_8 9 +#define INC_9 10 +#define INC_10 11 +#define INC_11 12 +#define INC_12 13 +#define INC_13 14 +#define INC_14 15 +#define INC_15 16 #define INCREMENT_(n) INC_##n #define INCREMENT(n) INCREMENT_(n) @@ -367,16 +374,22 @@ #define ADD10(N) ADD5(ADD5(N)) // Macros for subtracting -#define DEC_0 0 -#define DEC_1 0 -#define DEC_2 1 -#define DEC_3 2 -#define DEC_4 3 -#define DEC_5 4 -#define DEC_6 5 -#define DEC_7 6 -#define DEC_8 7 -#define DEC_9 8 +#define DEC_0 0 +#define DEC_1 0 +#define DEC_2 1 +#define DEC_3 2 +#define DEC_4 3 +#define DEC_5 4 +#define DEC_6 5 +#define DEC_7 6 +#define DEC_8 7 +#define DEC_9 8 +#define DEC_10 9 +#define DEC_11 10 +#define DEC_12 11 +#define DEC_13 12 +#define DEC_14 13 +#define DEC_15 14 #define DECREMENT_(n) DEC_##n #define DECREMENT(n) DECREMENT_(n) diff --git a/Marlin/src/feature/password/password.cpp b/Marlin/src/feature/password/password.cpp new file mode 100644 index 000000000..c519ee7c9 --- /dev/null +++ b/Marlin/src/feature/password/password.cpp @@ -0,0 +1,58 @@ +/** + * Marlin 3D Printer Firmware + * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin] + * + * Based on Sprinter and grbl. + * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + */ + +#include "../../inc/MarlinConfigPre.h" + +#if ENABLED(PASSWORD_FEATURE) + +#include "password.h" +#include "../../gcode/gcode.h" +#include "../../core/serial.h" + +Password password; + +// public: +bool Password::is_set, Password::is_locked; +uint32_t Password::value, Password::value_entry; + +// +// Authenticate user with password. +// Called from Setup, after SD Prinitng Stops/Aborts, and M510 +// +void Password::lock_machine() { + is_locked = true; + TERN_(HAS_LCD_MENU, authenticate_user(ui.status_screen, screen_password_entry)); +} + +// +// Authentication check +// +void Password::authentication_check() { + if (value_entry == value) + is_locked = false; + else + SERIAL_ECHOLNPGM(STR_WRONG_PASSWORD); + + TERN_(HAS_LCD_MENU, authentication_done()); +} + +#endif // PASSWORD_FEATURE diff --git a/Marlin/src/feature/password/password.h b/Marlin/src/feature/password/password.h new file mode 100644 index 000000000..66f1c70ba --- /dev/null +++ b/Marlin/src/feature/password/password.h @@ -0,0 +1,57 @@ +/** + * Marlin 3D Printer Firmware + * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin] + * + * Based on Sprinter and grbl. + * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + */ +#pragma once + +#include "../../lcd/ultralcd.h" + +class Password { +public: + static bool is_set, is_locked; + static uint32_t value, value_entry; + + Password() { is_locked = false; } + + static void lock_machine(); + + #if HAS_LCD_MENU + static void access_menu_password(); + static void authentication_check(); + static void authentication_done(); + static void media_gatekeeper(); + + private: + static void authenticate_user(const screenFunc_t, const screenFunc_t); + static void menu_password(); + static void menu_password_entry(); + static void screen_password_entry(); + static void screen_set_password(); + static void start_over(); + + static void digit_entered(); + static void set_password_done(); + static void menu_password_report(); + + static void remove_password(); + #endif +}; + +extern Password password; diff --git a/Marlin/src/gcode/feature/password/M510-M512.cpp b/Marlin/src/gcode/feature/password/M510-M512.cpp new file mode 100644 index 000000000..bcdeb7b91 --- /dev/null +++ b/Marlin/src/gcode/feature/password/M510-M512.cpp @@ -0,0 +1,83 @@ +/** + * Marlin 3D Printer Firmware + * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin] + * + * Based on Sprinter and grbl. + * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + */ + +#include "../../../inc/MarlinConfigPre.h" + +#if ENABLED(PASSWORD_FEATURE) + +#include "../../../feature/password/password.h" +#include "../../../core/serial.h" +#include "../../gcode.h" + +// +// M510: Lock Printer +// +void GcodeSuite::M510() { + password.lock_machine(); +} + +// +// M511: Unlock Printer +// +#if ENABLED(PASSWORD_UNLOCK_GCODE) + + void GcodeSuite::M511() { + if (password.is_locked) { + password.value_entry = parser.ulongval('P'); + password.authentication_check(); + } + } + +#endif // PASSWORD_UNLOCK_GCODE + +// +// M512: Set/Change/Remove Password +// +#if ENABLED(PASSWORD_CHANGE_GCODE) + + void GcodeSuite::M512() { + if (password.is_set && parser.ulongval('P') != password.value) { + SERIAL_ECHOLNPGM(STR_WRONG_PASSWORD); + return; + } + + if (parser.seenval('N')) { + password.value_entry = parser.ulongval('N'); + + if (password.value_entry < CAT(1e, PASSWORD_LENGTH)) { + password.is_set = true; + password.value = password.value_entry; + SERIAL_ECHOLNPAIR(STR_PASSWORD_SET, password.value); // TODO: Update password.string + } + else + SERIAL_ECHOLNPGM(STR_PASSWORD_TOO_LONG); + } + else { + password.is_set = false; + SERIAL_ECHOLNPGM(STR_PASSWORD_REMOVED); + } + SERIAL_ECHOLNPGM(STR_REMINDER_SAVE_SETTINGS); + } + +#endif // PASSWORD_CHANGE_GCODE + +#endif // PASSWORD_FEATURE diff --git a/Marlin/src/gcode/gcode.cpp b/Marlin/src/gcode/gcode.cpp index 2309953f8..840df54f6 100644 --- a/Marlin/src/gcode/gcode.cpp +++ b/Marlin/src/gcode/gcode.cpp @@ -57,6 +57,10 @@ GcodeSuite gcode; #include "../feature/spindle_laser.h" #endif +#if ENABLED(PASSWORD_FEATURE) + #include "../feature/password/password.h" +#endif + #include "../MarlinCore.h" // for idle() // Inactivity shutdown @@ -241,6 +245,17 @@ void GcodeSuite::dwell(millis_t time) { void GcodeSuite::process_parsed_command(const bool no_ok/*=false*/) { KEEPALIVE_STATE(IN_HANDLER); + /** + * Block all Gcodes except M511 Unlock Printer, if printer is locked + * Will still block Gcodes if M511 is disabled, in which case the printer should be unlocked via LCD Menu + */ + #if ENABLED(PASSWORD_FEATURE) + if (password.is_locked && !(parser.command_letter == 'M' && parser.codenum == 511)) { + SERIAL_ECHO_MSG(STR_PRINTER_LOCKED); + return; + } + #endif + // Handle a known G, M, or T switch (parser.command_letter) { case 'G': switch (parser.codenum) { @@ -736,6 +751,16 @@ void GcodeSuite::process_parsed_command(const bool no_ok/*=false*/) { case 504: M504(); break; // M504: Validate EEPROM contents #endif + #if ENABLED(PASSWORD_FEATURE) + case 510: M510(); break; // M510: Lock Printer + #if ENABLED(PASSWORD_UNLOCK_GCODE) + case 511: M511(); break; // M511: Unlock Printer + #endif + #if ENABLED(PASSWORD_CHANGE_GCODE) + case 512: M512(); break; + #endif // M512: Set/Change/Remove Password + #endif + #if ENABLED(SDSUPPORT) case 524: M524(); break; // M524: Abort the current SD print job #endif diff --git a/Marlin/src/gcode/gcode.h b/Marlin/src/gcode/gcode.h index 783781b9c..e04cd637e 100644 --- a/Marlin/src/gcode/gcode.h +++ b/Marlin/src/gcode/gcode.h @@ -225,6 +225,9 @@ * M502 - Revert to the default "factory settings". ** Does not write them to EEPROM! ** * M503 - Print the current settings (in memory): "M503 S". S0 specifies compact output. * M504 - Validate EEPROM contents. (Requires EEPROM_SETTINGS) + * M510 - Lock Printer + * M511 - Unlock Printer + * M512 - Set/Change/Remove Password * M524 - Abort the current SD print job started with M24. (Requires SDSUPPORT) * M540 - Enable/disable SD card abort on endstop hit: "M540 S". (Requires SD_ABORT_ON_ENDSTOP_HIT) * M569 - Enable stealthChop on an axis. (Requires at least one _DRIVER_TYPE to be TMC2130/2160/2208/2209/5130/5160) @@ -760,6 +763,16 @@ private: #endif TERN_(EEPROM_SETTINGS, static void M504()); + #if ENABLED(PASSWORD_FEATURE) + static void M510(); + #if ENABLED(PASSWORD_UNLOCK_GCODE) + static void M511(); + #endif + #if ENABLED(PASSWORD_CHANGE_GCODE) + static void M512(); + #endif + #endif + TERN_(SDSUPPORT, static void M524()); TERN_(SD_ABORT_ON_ENDSTOP_HIT, static void M540()); diff --git a/Marlin/src/inc/SanityCheck.h b/Marlin/src/inc/SanityCheck.h index 7fbfda4fe..f9b65c8bf 100644 --- a/Marlin/src/inc/SanityCheck.h +++ b/Marlin/src/inc/SanityCheck.h @@ -3083,5 +3083,16 @@ static_assert( _ARR_TEST(3,0) && _ARR_TEST(3,1) && _ARR_TEST(3,2) #error "ESP3D_WIFISUPPORT or WIFISUPPORT requires an ESP32 controller." #endif +/** + * Sanity Check for Password Feature + */ +#if ENABLED(PASSWORD_FEATURE) + #if NONE(HAS_LCD_MENU, PASSWORD_UNLOCK_GCODE, PASSWORD_CHANGE_GCODE) + #error "Without PASSWORD_UNLOCK_GCODE, PASSWORD_CHANGE_GCODE, or a supported LCD there's no way to unlock the printer or set a password." + #elif DISABLED(EEPROM_SETTINGS) + #warning "PASSWORD_FEATURE settings will be lost on power-off without EEPROM_SETTINGS." + #endif +#endif + // Misc. Cleanup #undef _TEST_PWM diff --git a/Marlin/src/lcd/language/language_en.h b/Marlin/src/lcd/language/language_en.h index ca7ddd2b0..9f6178ae5 100644 --- a/Marlin/src/lcd/language/language_en.h +++ b/Marlin/src/lcd/language/language_en.h @@ -588,6 +588,17 @@ namespace Language_en { PROGMEM Language_Str MSG_BAD_PAGE = _UxGT("Bad page index"); PROGMEM Language_Str MSG_BAD_PAGE_SPEED = _UxGT("Bad page speed"); + PROGMEM Language_Str MSG_EDIT_PASSWORD = _UxGT("Edit Password"); + PROGMEM Language_Str MSG_LOGIN_REQUIRED = _UxGT("Login Required"); + PROGMEM Language_Str MSG_PASSWORD_SETTINGS = _UxGT("Password Settings"); + PROGMEM Language_Str MSG_ENTER_DIGIT = _UxGT("Enter Digit"); + PROGMEM Language_Str MSG_CHANGE_PASSWORD = _UxGT("Set/Edit Password"); + PROGMEM Language_Str MSG_REMOVE_PASSWORD = _UxGT("Remove Password"); + PROGMEM Language_Str MSG_PASSWORD_SET = _UxGT("Password is "); + PROGMEM Language_Str MSG_START_OVER = _UxGT("Start Over"); + PROGMEM Language_Str MSG_REMINDER_SAVE_SETTINGS = _UxGT("Remember to Save!"); + PROGMEM Language_Str MSG_PASSWORD_REMOVED = _UxGT("Password Removed"); + // // Filament Change screens show up to 3 lines on a 4-line display // ...or up to 2 lines on a 3-line display diff --git a/Marlin/src/lcd/menu/menu_advanced.cpp b/Marlin/src/lcd/menu/menu_advanced.cpp index 34def4d3b..e41786107 100644 --- a/Marlin/src/lcd/menu/menu_advanced.cpp +++ b/Marlin/src/lcd/menu/menu_advanced.cpp @@ -51,6 +51,10 @@ #include "../../module/settings.h" #endif +#if ENABLED(PASSWORD_FEATURE) + #include "../../feature/password/password.h" +#endif + void menu_tmc(); void menu_backlash(); @@ -603,6 +607,10 @@ void menu_advanced_settings() { }); #endif + #if ENABLED(PASSWORD_FEATURE) + SUBMENU(MSG_PASSWORD_SETTINGS, password.access_menu_password); + #endif + #if ENABLED(EEPROM_SETTINGS) && DISABLED(SLIM_LCD_MENUS) CONFIRM_ITEM(MSG_INIT_EEPROM, MSG_BUTTON_INIT, MSG_BUTTON_CANCEL, diff --git a/Marlin/src/lcd/menu/menu_main.cpp b/Marlin/src/lcd/menu/menu_main.cpp index 059290c52..9a1d2ece6 100644 --- a/Marlin/src/lcd/menu/menu_main.cpp +++ b/Marlin/src/lcd/menu/menu_main.cpp @@ -50,6 +50,10 @@ #include "../../lcd/menu/menu_mmu2.h" #endif +#if ENABLED(PASSWORD_FEATURE) + #include "../../feature/password/password.h" +#endif + void menu_tune(); void menu_cancelobject(); void menu_motion(); @@ -133,7 +137,7 @@ void menu_main() { if (card_detected) { if (!card_open) { - SUBMENU(MSG_MEDIA_MENU, menu_media); + SUBMENU(MSG_MEDIA_MENU, TERN(PASSWORD_ON_SD_PRINT_MENU, password.media_gatekeeper, menu_media)); MENU_ITEM(gcode, #if PIN_EXISTS(SD_DETECT) MSG_CHANGE_MEDIA, M21_STR @@ -240,7 +244,7 @@ void menu_main() { MSG_RELEASE_MEDIA, PSTR("M22") #endif ); - SUBMENU(MSG_MEDIA_MENU, menu_media); + SUBMENU(MSG_MEDIA_MENU, TERN(PASSWORD_ON_SD_PRINT_MENU, password.media_gatekeeper, menu_media)); } } else { diff --git a/Marlin/src/lcd/menu/menu_password.cpp b/Marlin/src/lcd/menu/menu_password.cpp new file mode 100644 index 000000000..f8e0b5672 --- /dev/null +++ b/Marlin/src/lcd/menu/menu_password.cpp @@ -0,0 +1,184 @@ +/** + * Marlin 3D Printer Firmware + * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin] + * + * Based on Sprinter and grbl. + * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + */ + +// +// Advanced Settings Menus +// + +#include "../../inc/MarlinConfigPre.h" + +#if BOTH(HAS_LCD_MENU, PASSWORD_FEATURE) + +#include "../../feature/password/password.h" + +#include "menu.h" +#include "menu_addon.h" + +void menu_advanced_settings(); + +screenFunc_t success_screen, fail_screen; +bool authenticating; // = false +char string[(PASSWORD_LENGTH) + 1]; +static uint8_t digit_no; + +// +// Screen for both editing and setting the password +// +void Password::menu_password_entry() { + START_MENU(); + + // "Login" or "New Code" + STATIC_ITEM_P(authenticating ? GET_TEXT(MSG_LOGIN_REQUIRED) : GET_TEXT(MSG_EDIT_PASSWORD), SS_CENTER|SS_INVERT); + + STATIC_ITEM_P(PSTR(""), SS_CENTER|SS_INVERT, string); + + // Make the digit edit item look like a sub-menu + PGM_P const label = GET_TEXT(MSG_ENTER_DIGIT); + EDIT_ITEM_P(uint8, label, &editable.uint8, 0, 9, digit_entered); + MENU_ITEM_ADDON_START(utf8_strlen_P(label) + 1); + lcd_put_wchar(' '); + lcd_put_wchar('1' + digit_no); + SETCURSOR_X(LCD_WIDTH - 1); + lcd_put_wchar('>'); + MENU_ITEM_ADDON_END(); + + ACTION_ITEM(MSG_START_OVER, start_over); + + if (!authenticating) BACK_ITEM(MSG_BUTTON_CANCEL); + + END_MENU(); +} + +// +// Authentication check +// +void Password::authentication_done() { + ui.goto_screen(is_locked ? fail_screen : success_screen); + ui.completion_feedback(!is_locked); +} + +// A single digit was completed +void Password::digit_entered() { + uint32_t multiplier = CAT(1e, PASSWORD_LENGTH); // 1e5 = 100000 + LOOP_LE_N(i, digit_no) multiplier /= 10; + value_entry += editable.uint8 * multiplier; + string[digit_no++] = '0' + editable.uint8; + + // Exit edit screen menu and go to another screen + ui.goto_previous_screen(); + ui.use_click(); + ui.goto_screen(menu_password_entry); + + // After password has been keyed in + if (digit_no == PASSWORD_LENGTH) { + if (authenticating) + authentication_check(); + else + set_password_done(); + } +} + +// +// Set/Change Password +// +void Password::screen_password_entry() { + value_entry = 0; + digit_no = 0; + editable.uint8 = 0; + memset(string, '-', PASSWORD_LENGTH); + string[PASSWORD_LENGTH] = '\0'; + menu_password_entry(); +} + +void Password::screen_set_password() { + authenticating = false; + screen_password_entry(); +} + +void Password::authenticate_user(const screenFunc_t in_succ_scr, const screenFunc_t in_fail_scr) { + success_screen = in_succ_scr; + fail_screen = in_fail_scr; + if (is_set) { + authenticating = true; + ui.goto_screen(screen_password_entry); + ui.defer_status_screen(); + ui.update(); + } + else { + ui.goto_screen(in_succ_scr); + is_locked = false; + } +} + +void Password::access_menu_password() { + authenticate_user(menu_password, menu_advanced_settings); +} + +#if ENABLED(PASSWORD_ON_SD_PRINT_MENU) + void Password::media_gatekeeper() { + authenticate_user(menu_media, menu_main); + } +#endif + +void Password::start_over() { + ui.goto_previous_screen(); // Goto previous screen, if any + ui.goto_screen(screen_password_entry); +} + +void Password::menu_password_report() { + START_SCREEN(); + BACK_ITEM(MSG_PASSWORD_SETTINGS); + STATIC_ITEM(MSG_PASSWORD_SET, SS_LEFT, string); + STATIC_ITEM(MSG_REMINDER_SAVE_SETTINGS, SS_LEFT); + END_SCREEN(); +} + +void Password::set_password_done() { + is_set = true; + value = value_entry; + ui.completion_feedback(true); + ui.goto_screen(menu_password_report); +} + +void Password::remove_password() { + is_set = false; + string[0] = '0'; + string[1] = '\0'; + ui.completion_feedback(true); + ui.goto_screen(menu_password_report); +} + +// +// Password Menu +// +void Password::menu_password() { + START_MENU(); + BACK_ITEM(MSG_ADVANCED_SETTINGS); + SUBMENU(MSG_CHANGE_PASSWORD, screen_set_password); + ACTION_ITEM(MSG_REMOVE_PASSWORD, []{ ui.save_previous_screen(); remove_password(); } ); + #if ENABLED(EEPROM_SETTINGS) + ACTION_ITEM(MSG_STORE_EEPROM, ui.store_settings); + #endif + END_MENU(); +} + +#endif // HAS_LCD_MENU && PASSWORD_FEATURE diff --git a/Marlin/src/module/settings.cpp b/Marlin/src/module/settings.cpp index 34af8f2ea..f1ab0fca6 100644 --- a/Marlin/src/module/settings.cpp +++ b/Marlin/src/module/settings.cpp @@ -140,6 +140,10 @@ #define HAS_CASE_LIGHT_BRIGHTNESS 1 #endif +#if ENABLED(PASSWORD_FEATURE) + #include "../feature/password/password.h" +#endif + #if ENABLED(TOUCH_SCREEN_CALIBRATION) #include "../lcd/tft/touch.h" #endif @@ -152,7 +156,7 @@ typedef struct { int16_t X, Y, Z, X2, Y2, Z2, Z3, Z4; typedef struct { bool X, Y, Z, X2, Y2, Z2, Z3, Z4, E0, E1, E2, E3, E4, E5, E6, E7; } tmc_stealth_enabled_t; // Limit an index to an array size -#define ALIM(I,ARR) _MIN(I, signed(COUNT(ARR) - 1)) +#define ALIM(I,ARR) _MIN(I, (signed)COUNT(ARR) - 1) // Defaults for reset / fill in on load static const uint32_t _DMA[] PROGMEM = DEFAULT_MAX_ACCELERATION; @@ -407,6 +411,14 @@ typedef struct SettingsDataStruct { uint8_t caselight_brightness; // M355 P #endif + // + // PASSWORD_FEATURE + // + #if ENABLED(PASSWORD_FEATURE) + bool password_is_set; + uint32_t password_value; + #endif + // // TOUCH_SCREEN_CALIBRATION // @@ -1345,6 +1357,14 @@ void MarlinSettings::postprocess() { EEPROM_WRITE(caselight.brightness); #endif + // + // Password feature + // + #if ENABLED(PASSWORD_FEATURE) + EEPROM_WRITE(password.is_set); + EEPROM_WRITE(password.value); + #endif + // // TOUCH_SCREEN_CALIBRATION // @@ -2185,6 +2205,15 @@ void MarlinSettings::postprocess() { EEPROM_READ(caselight.brightness); #endif + // + // Password feature + // + #if ENABLED(PASSWORD_FEATURE) + _FIELD_TEST(password_is_set); + EEPROM_READ(password.is_set); + EEPROM_READ(password.value); + #endif + // // TOUCH_SCREEN_CALIBRATION // @@ -2665,7 +2694,7 @@ void MarlinSettings::reset() { #define PID_DEFAULT(N,E) DEFAULT_##N #endif HOTEND_LOOP() { - PID_PARAM(Kp, e) = float(PID_DEFAULT(Kp, ALIM(e, defKp))); + PID_PARAM(Kp, e) = float(PID_DEFAULT(Kp, ALIM(e, defKp))); PID_PARAM(Ki, e) = scalePID_i(PID_DEFAULT(Ki, ALIM(e, defKi))); PID_PARAM(Kd, e) = scalePID_d(PID_DEFAULT(Kd, ALIM(e, defKd))); TERN_(PID_EXTRUSION_SCALING, PID_PARAM(Kc, e) = float(PID_DEFAULT(Kc, ALIM(e, defKc)))); @@ -2783,6 +2812,15 @@ void MarlinSettings::reset() { } #endif + #if ENABLED(PASSWORD_FEATURE) + #ifdef PASSWORD_DEFAULT_VALUE + password.is_set = true; + password.value = PASSWORD_DEFAULT_VALUE; + #else + password.is_set = false; + #endif + #endif + postprocess(); DEBUG_ECHO_START(); diff --git a/buildroot/share/PlatformIO/scripts/common-dependencies.h b/buildroot/share/PlatformIO/scripts/common-dependencies.h index d18cb8c28..c41027003 100644 --- a/buildroot/share/PlatformIO/scripts/common-dependencies.h +++ b/buildroot/share/PlatformIO/scripts/common-dependencies.h @@ -143,6 +143,9 @@ #if ENABLED(MMU2_MENUS) #define HAS_MENU_MMU2 #endif + #if ENABLED(PASSWORD_FEATURE) + #define HAS_MENU_PASSWORD + #endif #if HAS_TRINAMIC_CONFIG #define HAS_MENU_TMC #endif diff --git a/buildroot/tests/DUE-tests b/buildroot/tests/DUE-tests index 5c36db036..7f488f612 100755 --- a/buildroot/tests/DUE-tests +++ b/buildroot/tests/DUE-tests @@ -33,7 +33,7 @@ opt_set EXTRUDER_AUTO_FAN_SPEED 100 opt_set TEMP_SENSOR_CHAMBER 3 opt_add TEMP_CHAMBER_PIN 6 opt_set HEATER_CHAMBER_PIN 45 -exec_test $1 $2 "RAMPS4DUE_EFB with ABL (Bilinear), EXTENSIBLE_UI, S-Curve, many options." +exec_test $1 $2 "RAMPS4DUE_EFB with ABL (Bilinear), ExtUI, S-Curve, many options." restore_configs opt_set MOTHERBOARD BOARD_RADDS diff --git a/buildroot/tests/rambo-tests b/buildroot/tests/rambo-tests index 0b249e214..ec8af16c2 100644 --- a/buildroot/tests/rambo-tests +++ b/buildroot/tests/rambo-tests @@ -33,6 +33,7 @@ opt_enable REPRAP_DISCOUNT_SMART_CONTROLLER LCD_PROGRESS_BAR LCD_PROGRESS_BAR_TE PRINTCOUNTER SERVICE_NAME_1 SERVICE_INTERVAL_1 LEVEL_BED_CORNERS \ NOZZLE_PARK_FEATURE FILAMENT_RUNOUT_SENSOR FILAMENT_RUNOUT_DISTANCE_MM \ ADVANCED_PAUSE_FEATURE FILAMENT_LOAD_UNLOAD_GCODES FILAMENT_UNLOAD_ALL_EXTRUDERS \ + PASSWORD_FEATURE PASSWORD_ON_STARTUP PASSWORD_ON_SD_PRINT_MENU PASSWORD_AFTER_SD_PRINT_END PASSWORD_AFTER_SD_PRINT_ABORT \ AUTO_BED_LEVELING_BILINEAR Z_MIN_PROBE_REPEATABILITY_TEST DISTINCT_E_FACTORS \ SKEW_CORRECTION SKEW_CORRECTION_FOR_Z SKEW_CORRECTION_GCODE \ BACKLASH_COMPENSATION BACKLASH_GCODE BAUD_RATE_GCODE BEZIER_CURVE_SUPPORT \ diff --git a/platformio.ini b/platformio.ini index fdb120ae8..10990b4d2 100644 --- a/platformio.ini +++ b/platformio.ini @@ -41,6 +41,7 @@ default_src_filter = + - - + - - - + - - - - @@ -86,6 +87,7 @@ default_src_filter = + - - + - - - - + - - - - - - @@ -231,6 +233,7 @@ HAS_MENU_LED = src_filter=+ HAS_MENU_MEDIA = src_filter=+ HAS_MENU_MIXER = src_filter=+ HAS_MENU_MMU2 = src_filter=+ +HAS_MENU_PASSWORD = src_filter=+ HAS_MENU_POWER_MONITOR = src_filter=+ HAS_MENU_CUTTER = src_filter=+ HAS_MENU_TEMPERATURE = src_filter=+ @@ -276,6 +279,7 @@ TEMP_STAT_LEDS = src_filter=+ MAX7219_DEBUG = src_filter=+ + MIXING_EXTRUDER = src_filter=+ + PRUSA_MMU2 = src_filter=+ + +PASSWORD_FEATURE = src_filter=+ + ADVANCED_PAUSE_FEATURE = src_filter=+ + + AUTO_POWER_CONTROL = src_filter=+ HAS_POWER_MONITOR = src_filter=+ + From 8318d90e859219af9aa750ba2b91c7568f4dac55 Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Sat, 8 Aug 2020 20:13:15 -0500 Subject: [PATCH 078/194] Password followup --- Marlin/src/gcode/feature/password/M510-M512.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Marlin/src/gcode/feature/password/M510-M512.cpp b/Marlin/src/gcode/feature/password/M510-M512.cpp index bcdeb7b91..f26fb75fd 100644 --- a/Marlin/src/gcode/feature/password/M510-M512.cpp +++ b/Marlin/src/gcode/feature/password/M510-M512.cpp @@ -60,8 +60,8 @@ void GcodeSuite::M510() { return; } - if (parser.seenval('N')) { - password.value_entry = parser.ulongval('N'); + if (parser.seenval('S')) { + password.value_entry = parser.ulongval('S'); if (password.value_entry < CAT(1e, PASSWORD_LENGTH)) { password.is_set = true; From 837dc4727de20856ed9e633d42fce906d8702a15 Mon Sep 17 00:00:00 2001 From: cbaugher Date: Sun, 9 Aug 2020 15:46:47 -0500 Subject: [PATCH 079/194] Tool-change Z move followup (#18963) --- Marlin/src/module/tool_change.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Marlin/src/module/tool_change.cpp b/Marlin/src/module/tool_change.cpp index 5d2dc7d3b..d1017cea8 100644 --- a/Marlin/src/module/tool_change.cpp +++ b/Marlin/src/module/tool_change.cpp @@ -1133,7 +1133,7 @@ void tool_change(const uint8_t new_tool, bool no_move/*=false*/) { if (toolchange_settings.enable_park) do_blocking_move_to_xy_z(destination, destination.z, MMM_TO_MMS(TOOLCHANGE_PARK_XY_FEEDRATE)); #else do_blocking_move_to_xy(destination, planner.settings.max_feedrate_mm_s[X_AXIS]); - do_blocking_move_to_z(destination, planner.settings.max_feedrate_mm_s[Z_AXIS]); + do_blocking_move_to_z(destination.z, planner.settings.max_feedrate_mm_s[Z_AXIS]); #endif #endif From f7b261a363d50f1ca071cd46d859ac3eabc3b4b2 Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Sun, 9 Aug 2020 15:55:11 -0500 Subject: [PATCH 080/194] Shorthand values for M575 B --- Marlin/src/gcode/config/M575.cpp | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/Marlin/src/gcode/config/M575.cpp b/Marlin/src/gcode/config/M575.cpp index 4144c366d..3aa584465 100644 --- a/Marlin/src/gcode/config/M575.cpp +++ b/Marlin/src/gcode/config/M575.cpp @@ -33,7 +33,21 @@ * B - Baud rate (bits per second) */ void GcodeSuite::M575() { - const int32_t baud = parser.ulongval('B'); + int32_t baud = parser.ulongval('B'); + switch (baud) { + case 24: + case 96: + case 192: + case 384: + case 576: + case 1152: baud *= 100; break; + case 250: + case 500: baud *= 1000; break; + case 19: baud = 19200; break; + case 38: baud = 38400; break; + case 57: baud = 57600; break; + case 115: baud = 115200; break; + } switch (baud) { case 2400: case 9600: case 19200: case 38400: case 57600: case 115200: case 250000: case 500000: case 1000000: { From 81f5973afc6da027bb2eb51f3f76a864585c01f8 Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Sun, 9 Aug 2020 15:57:59 -0500 Subject: [PATCH 081/194] Followup for SPI Flash --- Marlin/src/gcode/gcode.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Marlin/src/gcode/gcode.cpp b/Marlin/src/gcode/gcode.cpp index 840df54f6..edbeca9c9 100644 --- a/Marlin/src/gcode/gcode.cpp +++ b/Marlin/src/gcode/gcode.cpp @@ -896,7 +896,7 @@ void GcodeSuite::process_parsed_command(const bool no_ok/*=false*/) { case 422: M422(); break; // M422: Set Z Stepper automatic alignment position using probe #endif - #if BOTH(HAS_SPI_FLASH, SDSUPPORT) + #if ALL(HAS_SPI_FLASH, SDSUPPORT, MARLIN_DEV_MODE) case 993: M993(); break; // M993: Backup SPI Flash to SD case 994: M994(); break; // M994: Load a Backup from SD to SPI Flash #endif From b15c207d0899e838d41bd1dd684917769b93b89d Mon Sep 17 00:00:00 2001 From: ftk Date: Mon, 10 Aug 2020 01:19:35 +0300 Subject: [PATCH 082/194] Remaining Time for LIGHTWEIGHT_UI (#18875) --- .../lcd/dogm/status_screen_lite_ST7920.cpp | 22 +++++++++++++++---- .../src/lcd/dogm/status_screen_lite_ST7920.h | 10 ++++----- 2 files changed, 23 insertions(+), 9 deletions(-) diff --git a/Marlin/src/lcd/dogm/status_screen_lite_ST7920.cpp b/Marlin/src/lcd/dogm/status_screen_lite_ST7920.cpp index fba485d70..211acc86c 100644 --- a/Marlin/src/lcd/dogm/status_screen_lite_ST7920.cpp +++ b/Marlin/src/lcd/dogm/status_screen_lite_ST7920.cpp @@ -591,16 +591,17 @@ void ST7920_Lite_Status_Screen::draw_fan_speed(const uint8_t value) { write_byte('%'); } -void ST7920_Lite_Status_Screen::draw_print_time(const duration_t &elapsed) { +void ST7920_Lite_Status_Screen::draw_print_time(const duration_t &elapsed, char suffix) { #if HOTENDS == 1 set_ddram_address(DDRAM_LINE_3); #else set_ddram_address(DDRAM_LINE_3 + 5); #endif char str[7]; - str[elapsed.toDigital(str)] = ' '; + int str_length = elapsed.toDigital(str); + str[str_length++] = suffix; begin_data(); - write_str(str, 6); + write_str(str, str_length); } void ST7920_Lite_Status_Screen::draw_feedrate_percentage(const uint16_t percentage) { @@ -714,6 +715,7 @@ void ST7920_Lite_Status_Screen::update_indicators(const bool forceUpdate) { if (forceUpdate || indicators_changed()) { const bool blink = ui.get_blink(); const duration_t elapsed = print_job_timer.duration(); + duration_t remaining = TERN0(USE_M73_REMAINING_TIME, ui.get_remaining_time()); const uint16_t feedrate_perc = feedrate_percentage; const int16_t extruder_1_temp = thermalManager.degHotend(0), extruder_1_target = thermalManager.degTargetHotend(0); @@ -738,7 +740,19 @@ void ST7920_Lite_Status_Screen::update_indicators(const bool forceUpdate) { #endif draw_fan_speed(thermalManager.fanPercent(spd)); - draw_print_time(elapsed); + + // Draw elapsed/remaining time + const bool show_remaining = ENABLED(SHOW_REMAINING_TIME) && (DISABLED(ROTATE_PROGRESS_DISPLAY) || blink); + if (show_remaining && !remaining.second()) { + const auto progress = ui.get_progress_percent(); + if (progress) + remaining = elapsed.second() * (100 - progress) / progress; + } + if (show_remaining && remaining.second()) + draw_print_time(remaining, 'R'); + else + draw_print_time(elapsed); + draw_feedrate_percentage(feedrate_perc); // Update the fan and bed animations diff --git a/Marlin/src/lcd/dogm/status_screen_lite_ST7920.h b/Marlin/src/lcd/dogm/status_screen_lite_ST7920.h index bc18c43f1..9f0815d09 100644 --- a/Marlin/src/lcd/dogm/status_screen_lite_ST7920.h +++ b/Marlin/src/lcd/dogm/status_screen_lite_ST7920.h @@ -80,14 +80,14 @@ class ST7920_Lite_Status_Screen { static void draw_fan_icon(const bool whichIcon); static void draw_heat_icon(const bool whichIcon, const bool heating); static void draw_temps(uint8_t line, const int16_t temp, const int16_t target, bool showTarget, bool targetStateChange); - static void draw_extruder_1_temp(const int16_t temp, const int16_t target, bool forceUpdate = false); - static void draw_extruder_2_temp(const int16_t temp, const int16_t target, bool forceUpdate = false); - static void draw_bed_temp(const int16_t temp, const int16_t target, bool forceUpdate = false); + static void draw_extruder_1_temp(const int16_t temp, const int16_t target, bool forceUpdate=false); + static void draw_extruder_2_temp(const int16_t temp, const int16_t target, bool forceUpdate=false); + static void draw_bed_temp(const int16_t temp, const int16_t target, bool forceUpdate=false); static void draw_fan_speed(const uint8_t value); - static void draw_print_time(const duration_t &elapsed); + static void draw_print_time(const duration_t &elapsed, char suffix=' '); static void draw_feedrate_percentage(const uint16_t percentage); static void draw_status_message(); - static void draw_position(const xyze_pos_t &pos, bool position_known = true); + static void draw_position(const xyze_pos_t &pos, bool position_known=true); static bool indicators_changed(); static bool position_changed(); From f642656bff4e71256ea491c344b3ddb695dd962d Mon Sep 17 00:00:00 2001 From: thinkyhead Date: Mon, 10 Aug 2020 00:10:53 +0000 Subject: [PATCH 083/194] [cron] Bump distribution date (2020-08-10) --- Marlin/src/inc/Version.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Marlin/src/inc/Version.h b/Marlin/src/inc/Version.h index 33cd24dd0..681bbfeca 100644 --- a/Marlin/src/inc/Version.h +++ b/Marlin/src/inc/Version.h @@ -42,7 +42,7 @@ * version was tagged. */ #ifndef STRING_DISTRIBUTION_DATE - #define STRING_DISTRIBUTION_DATE "2020-08-09" + #define STRING_DISTRIBUTION_DATE "2020-08-10" #endif /** From ce3df42e229ea563ef319f42cf5283f5a2ba3fa3 Mon Sep 17 00:00:00 2001 From: Giuliano Zaro <3684609+GMagician@users.noreply.github.com> Date: Mon, 10 Aug 2020 03:48:57 +0200 Subject: [PATCH 084/194] Fix DISABLE_[XYZE] code (#18970) Co-authored-by: Scott Lahteine --- Marlin/src/module/planner.cpp | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/Marlin/src/module/planner.cpp b/Marlin/src/module/planner.cpp index c2a9e6ac7..931daa332 100644 --- a/Marlin/src/module/planner.cpp +++ b/Marlin/src/module/planner.cpp @@ -1281,7 +1281,7 @@ void Planner::recalculate() { void Planner::check_axes_activity() { #if ANY(DISABLE_X, DISABLE_Y, DISABLE_Z, DISABLE_E) - xyze_bool_t axis_active = { true, true, true, true }; + xyze_bool_t axis_active = { false }; #endif #if HAS_FAN @@ -1316,10 +1316,10 @@ void Planner::check_axes_activity() { #if ANY(DISABLE_X, DISABLE_Y, DISABLE_Z, DISABLE_E) for (uint8_t b = block_buffer_tail; b != block_buffer_head; b = next_block_index(b)) { block_t *block = &block_buffer[b]; - if (ENABLED(DISABLE_X) && block->steps[X_AXIS]) axis_active[X_AXIS] = true; - if (ENABLED(DISABLE_Y) && block->steps[Y_AXIS]) axis_active[Y_AXIS] = true; - if (ENABLED(DISABLE_Z) && block->steps[Z_AXIS]) axis_active[Z_AXIS] = true; - if (ENABLED(DISABLE_E) && block->steps[E_AXIS]) axis_active[E_AXIS] = true; + if (ENABLED(DISABLE_X) && block->steps.x) axis_active.x = true; + if (ENABLED(DISABLE_Y) && block->steps.y) axis_active.y = true; + if (ENABLED(DISABLE_Z) && block->steps.z) axis_active.z = true; + if (ENABLED(DISABLE_E) && block->steps.e) axis_active.e = true; } #endif } From 911cdd4d2f90104c74a6f5ee3a5656388eeccfa7 Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Mon, 10 Aug 2020 01:44:11 -0500 Subject: [PATCH 085/194] Fix scripts using gawk and wget --- buildroot/bin/use_example_configs | 17 ++++++++++------- buildroot/share/fonts/uxggenpages.sh | 5 ++++- buildroot/share/git/ghtp | 9 ++++++--- buildroot/share/git/mfclean | 5 ++++- 4 files changed, 24 insertions(+), 12 deletions(-) diff --git a/buildroot/bin/use_example_configs b/buildroot/bin/use_example_configs index 96be67e53..a7fe39a85 100755 --- a/buildroot/bin/use_example_configs +++ b/buildroot/bin/use_example_configs @@ -1,18 +1,21 @@ #!/usr/bin/env bash IFS=: read -r PART1 PART2 <<< "$@" -[ -n "${PART2}" ] && { REPO="$PART1" ; RDIR="$PART2" ; } \ - || { REPO=bugfix-2.0.x ; RDIR="$PART1" ; } +[ -n "${PART2}" ] && { REPO="$PART1" ; RDIR="${PART2// /%20}" ; } \ + || { REPO=bugfix-2.0.x ; RDIR="${PART1// /%20}" ; } EXAMPLES="https://raw.githubusercontent.com/MarlinFirmware/Configurations/$REPO/config/examples" +which curl >/dev/null && TOOL='curl -L -s -S -f -o wgot' +which wget >/dev/null && TOOL='wget -q -O wgot' + restore_configs cd Marlin -wget -q "$EXAMPLES/$RDIR/Configuration.h" -O wgot && mv wgot Configuration.h -wget -q "$EXAMPLES/$RDIR/Configuration_adv.h" -O wgot && mv wgot Configuration_adv.h -wget -q "$EXAMPLES/$RDIR/_Bootscreen.h" -O wgot && mv wgot _Bootscreen.h -wget -q "$EXAMPLES/$RDIR/_Statusscreen.h" -O wgot && mv wgot _Statusscreen.h -rm -f wgot +$TOOL "$EXAMPLES/$RDIR/Configuration.h" >/dev/null 2>&1 && mv wgot Configuration.h +$TOOL "$EXAMPLES/$RDIR/Configuration_adv.h" >/dev/null 2>&1 && mv wgot Configuration.h +$TOOL "$EXAMPLES/$RDIR/_Bootscreen.h" >/dev/null 2>&1 && mv wgot Configuration.h +$TOOL "$EXAMPLES/$RDIR/_Statusscreen.h" >/dev/null 2>&1 && mv wgot Configuration.h +rm -f wgot cd - >/dev/null diff --git a/buildroot/share/fonts/uxggenpages.sh b/buildroot/share/fonts/uxggenpages.sh index 920783514..46ad438f9 100755 --- a/buildroot/share/fonts/uxggenpages.sh +++ b/buildroot/share/fonts/uxggenpages.sh @@ -139,11 +139,14 @@ BEGIN { } EOF +which awk >/dev/null && AWK=awk +which gawk >/dev/null && AWK=gawk + grep -Hrn _UxGT . | grep '"' \ | sed 's/_UxGT("/\n&/g;s/[^\n]*\n_UxGT("\([^"]*\)[^\n]*/\1 /g;s/.$//' \ | ${EXEC_GENPAGES} \ | sort -k 1n -k 2n | uniq \ - | gawk -v EXEC_PREFIX=${DN_EXEC} -f "proc.awk" \ + | "$AWK" -v EXEC_PREFIX=${DN_EXEC} -f "proc.awk" \ | while read PAGE BEGIN END UTF8BEGIN UTF8END; do \ if [ ! -f ${DN_DATA}/fontpage_${PAGE}_${BEGIN}_${END}.h ]; then \ ${EXEC_BDF2U8G} -u ${PAGE} -b ${BEGIN} -e ${END} ${FN_FONT} fontpage_${PAGE}_${BEGIN}_${END} ${DN_DATA}/fontpage_${PAGE}_${BEGIN}_${END}.h > /dev/null 2>&1 ; diff --git a/buildroot/share/git/ghtp b/buildroot/share/git/ghtp index f7a626301..a2fac985d 100755 --- a/buildroot/share/git/ghtp +++ b/buildroot/share/git/ghtp @@ -13,14 +13,17 @@ case "$1" in -[Hh]) TYPE=HTTPS ; MATCH="git@" ; FORMULA="$GH_SSH/$GH_HTTPS" ;; -[Ss]) TYPE=SSH ; MATCH="https:" ; FORMULA="$GH_HTTPS/$GH_SSH" ;; *) - echo "usage: `basename $0` -h | -s" 1>&2 + echo "Usage: `basename $0` -h | -s" 1>&2 echo -e " \e[0;92m-h\e[0m to switch to HTTPS" 1>&2 echo -e " \e[0;92m-s\e[0m to switch to SSH" 1>&2 exit 1 ;; esac -REMOTES=$(git remote -v | egrep "\t$MATCH" | gawk '{print $1 " " $2}' | sort -u | sed "s/$FORMULA/") +which awk >/dev/null && AWK=awk +which gawk >/dev/null && AWK=gawk + +REMOTES=$(git remote -v | egrep "\t$MATCH" | "$AWK" '{print $1 " " $2}' | sort -u | sed "s/$FORMULA/") if [[ -z $REMOTES ]]; then echo "Nothing to do." ; exit @@ -29,5 +32,5 @@ fi echo "$REMOTES" | xargs -n2 git remote set-url echo -n "Remotes set to $TYPE: " -echo "$REMOTES" | gawk '{printf "%s ", $1}' +echo "$REMOTES" | "$AWK" '{printf "%s ", $1}' echo diff --git a/buildroot/share/git/mfclean b/buildroot/share/git/mfclean index f38997405..b6ad2b514 100755 --- a/buildroot/share/git/mfclean +++ b/buildroot/share/git/mfclean @@ -6,6 +6,9 @@ # Great way to clean up your branches after messing around a lot # +which awk >/dev/null && AWK=awk +which gawk >/dev/null && AWK=gawk + KEEP="RC|RCBugFix|dev|master|bugfix-1|bugfix-2" echo "Fetching latest upstream and origin..." @@ -18,7 +21,7 @@ git branch --merged | egrep -v "^\*|$KEEP" | xargs -n 1 git branch -d echo echo "Pruning Remotely-deleted Branches..." -git branch -vv | egrep -v "^\*|$KEEP" | grep ': gone]' | gawk '{print $1}' | xargs -n 1 git branch -D +git branch -vv | egrep -v "^\*|$KEEP" | grep ': gone]' | "$AWK" '{print $1}' | xargs -n 1 git branch -D echo # List fork branches that don't match local branches From 276d78461eabf9c1e16994ab4a1c8fe4930b5523 Mon Sep 17 00:00:00 2001 From: thinkyhead Date: Tue, 11 Aug 2020 00:10:45 +0000 Subject: [PATCH 086/194] [cron] Bump distribution date (2020-08-11) --- Marlin/src/inc/Version.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Marlin/src/inc/Version.h b/Marlin/src/inc/Version.h index 681bbfeca..9b379ba9f 100644 --- a/Marlin/src/inc/Version.h +++ b/Marlin/src/inc/Version.h @@ -42,7 +42,7 @@ * version was tagged. */ #ifndef STRING_DISTRIBUTION_DATE - #define STRING_DISTRIBUTION_DATE "2020-08-10" + #define STRING_DISTRIBUTION_DATE "2020-08-11" #endif /** From d2d6c167dfb93dcd63a5f55552200f840fd3aea1 Mon Sep 17 00:00:00 2001 From: InsanityAutomation <38436470+InsanityAutomation@users.noreply.github.com> Date: Mon, 10 Aug 2020 21:04:40 -0400 Subject: [PATCH 087/194] Fix Ender-3 V2 DWIN with manual mesh, host prompt (#18981) --- Marlin/src/lcd/dwin/dwin.cpp | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/Marlin/src/lcd/dwin/dwin.cpp b/Marlin/src/lcd/dwin/dwin.cpp index 74a0e6d8f..87db3c4b2 100644 --- a/Marlin/src/lcd/dwin/dwin.cpp +++ b/Marlin/src/lcd/dwin/dwin.cpp @@ -53,6 +53,10 @@ #include "../../module/motion.h" #include "../../module/planner.h" +#if ENABLED(HOST_ACTION_COMMANDS) + #include "../../feature/host_actions.h" +#endif + #if HAS_LEVELING #include "../../feature/bedlevel/bedlevel.h" #endif @@ -124,7 +128,7 @@ constexpr uint16_t TROWS = 6, MROWS = TROWS - 1, // Total rows, and other #define MBASE(L) (49 + (L)*MLINE) -#define BABY_Z_VAR TERN(HAS_LEVELING, probe.offset.z, zprobe_zoffset) +#define BABY_Z_VAR TERN(HAS_BED_PROBE, probe.offset.z, zprobe_zoffset) /* Value Init */ HMI_value_t HMI_ValueStruct; @@ -1116,11 +1120,11 @@ void HMI_Zoffset(void) { if (HMI_ValueStruct.show_mode == -4) { checkkey = Prepare; - show_plus_or_minus(font8x16, Background_black, 2, 2, 202, MBASE(4 + MROWS - index_prepare), TERN(HAS_LEVELING, probe.offset.z * 100, HMI_ValueStruct.offset_value)); + show_plus_or_minus(font8x16, Background_black, 2, 2, 202, MBASE(4 + MROWS - index_prepare), TERN(HAS_BED_PROBE, probe.offset.z * 100, HMI_ValueStruct.offset_value)); } else { checkkey = Tune; - show_plus_or_minus(font8x16, Background_black, 2, 2, 202, MBASE(5 + MROWS - index_tune), TERN(HAS_LEVELING, probe.offset.z * 100, HMI_ValueStruct.offset_value)); + show_plus_or_minus(font8x16, Background_black, 2, 2, 202, MBASE(5 + MROWS - index_tune), TERN(HAS_BED_PROBE, probe.offset.z * 100, HMI_ValueStruct.offset_value)); } DWIN_UpdateLCD(); return; @@ -1484,7 +1488,7 @@ void update_variable(void) { DWIN_Draw_IntValue(true, true, 0, STAT_FONT, White, Background_black, 3, 33 + 2 * STAT_CHR_W, 429, feedrate_percentage); last_speed = feedrate_percentage; } - #if HAS_LEVELING + #if HAS_BED_PROBE if (last_probe_zoffset != probe.offset.z) { show_plus_or_minus(STAT_FONT, Background_black, 2, 2, 178 + STAT_CHR_W, 429, probe.offset.z * 100); last_probe_zoffset = probe.offset.z; @@ -2188,7 +2192,7 @@ void HMI_Prepare(void) { Popup_Window_Home(); break; case 4: // Z-offset - #if HAS_LEVELING + #if HAS_BED_PROBE checkkey = Homeoffset; HMI_ValueStruct.show_mode = -4; HMI_ValueStruct.offset_value = probe.offset.z * 100; @@ -3390,7 +3394,7 @@ void EachMomentUpdate(void) { else if (abort_flag && !HMI_flag.home_flag) { // Print Stop abort_flag = 0; HMI_ValueStruct.print_speed = feedrate_percentage = 100; - zprobe_zoffset = TERN(HAS_LEVELING, probe.offset.z, 0); + zprobe_zoffset = TERN(HAS_BED_PROBE, probe.offset.z, 0); planner.finish_and_disable(); From f62578efec85b155a0c969a1794b98bf1f6c19fe Mon Sep 17 00:00:00 2001 From: Marcio T Date: Mon, 10 Aug 2020 19:06:19 -0600 Subject: [PATCH 088/194] For FTDI800 compatibility, remove VERTEX_FORMAT dependency (#18982) --- .../screens/bed_mesh_screen.cpp | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/Marlin/src/lcd/extui/lib/ftdi_eve_touch_ui/screens/bed_mesh_screen.cpp b/Marlin/src/lcd/extui/lib/ftdi_eve_touch_ui/screens/bed_mesh_screen.cpp index f8a30e824..663555f05 100644 --- a/Marlin/src/lcd/extui/lib/ftdi_eve_touch_ui/screens/bed_mesh_screen.cpp +++ b/Marlin/src/lcd/extui/lib/ftdi_eve_touch_ui/screens/bed_mesh_screen.cpp @@ -88,7 +88,15 @@ void BedMeshScreen::drawMesh(int16_t x, int16_t y, int16_t w, int16_t h, ExtUI:: const float scale_z = ((val_max == val_min) ? 1 : 1/(val_max - val_min)) * autoscale_max; - // These equations determine the appearance of the grid on the screen. + /** + * The 3D points go through a 3D graphics pipeline to determine the final 2D point on the screen. + * This is written out as a stack of macros that each apply an affine transformation to the point. + * At compile time, the compiler should be able to reduce these expressions. + * + * The last transformation in the chain (TRANSFORM_5) is initially set to a no-op so we can measure + * the dimensions of the grid, but is later replaced with a scaling transform that scales the grid + * to fit. + */ #define TRANSFORM_5(X,Y,Z) (X), (Y) // No transform #define TRANSFORM_4(X,Y,Z) TRANSFORM_5((X)/(Z),(Y)/-(Z), 0) // Perspective @@ -119,8 +127,12 @@ void BedMeshScreen::drawMesh(int16_t x, int16_t y, int16_t w, int16_t h, ExtUI:: const float center_x = x + w/2; const float center_y = y + h/2; + // Now replace the last transformation in the chain with a scaling operation. + #undef TRANSFORM_5 - #define TRANSFORM_5(X,Y,Z) center_x + (X - grid_cx) * scale_x, center_y + (Y - grid_cy) * scale_y // Fit to bounds + #define TRANSFORM_6(X,Y,Z) (X)*16, (Y)*16 // Scale to 1/16 pixel units + #define TRANSFORM_5(X,Y,Z) TRANSFORM_6( center_x + ((X) - grid_cx) * scale_x, \ + center_y + ((Y) - grid_cy) * scale_y, 0) // Scale to bounds // Draw the grid @@ -128,7 +140,6 @@ void BedMeshScreen::drawMesh(int16_t x, int16_t y, int16_t w, int16_t h, ExtUI:: CommandProcessor cmd; cmd.cmd(SAVE_CONTEXT()) - .cmd(VERTEX_FORMAT(0)) .cmd(TAG_MASK(false)) .cmd(SAVE_CONTEXT()); From 6dd054895b4566f7d63a629f3ab5f5aa890db8af Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Mon, 10 Aug 2020 20:03:13 -0500 Subject: [PATCH 089/194] Add'l CI/git script tweaks, fixes --- buildroot/bin/use_example_configs | 6 +++--- buildroot/share/fonts/uxggenpages.sh | 3 +-- buildroot/share/git/ghtp | 3 +-- buildroot/share/git/mfclean | 3 +-- 4 files changed, 6 insertions(+), 9 deletions(-) diff --git a/buildroot/bin/use_example_configs b/buildroot/bin/use_example_configs index a7fe39a85..83c0f5485 100755 --- a/buildroot/bin/use_example_configs +++ b/buildroot/bin/use_example_configs @@ -13,9 +13,9 @@ restore_configs cd Marlin $TOOL "$EXAMPLES/$RDIR/Configuration.h" >/dev/null 2>&1 && mv wgot Configuration.h -$TOOL "$EXAMPLES/$RDIR/Configuration_adv.h" >/dev/null 2>&1 && mv wgot Configuration.h -$TOOL "$EXAMPLES/$RDIR/_Bootscreen.h" >/dev/null 2>&1 && mv wgot Configuration.h -$TOOL "$EXAMPLES/$RDIR/_Statusscreen.h" >/dev/null 2>&1 && mv wgot Configuration.h +$TOOL "$EXAMPLES/$RDIR/Configuration_adv.h" >/dev/null 2>&1 && mv wgot Configuration_adv.h +$TOOL "$EXAMPLES/$RDIR/_Bootscreen.h" >/dev/null 2>&1 && mv wgot _Bootscreen.h +$TOOL "$EXAMPLES/$RDIR/_Statusscreen.h" >/dev/null 2>&1 && mv wgot _Statusscreen.h rm -f wgot cd - >/dev/null diff --git a/buildroot/share/fonts/uxggenpages.sh b/buildroot/share/fonts/uxggenpages.sh index 46ad438f9..a99fd9902 100755 --- a/buildroot/share/fonts/uxggenpages.sh +++ b/buildroot/share/fonts/uxggenpages.sh @@ -139,8 +139,7 @@ BEGIN { } EOF -which awk >/dev/null && AWK=awk -which gawk >/dev/null && AWK=gawk +AWK=$(which gawk || which awk) grep -Hrn _UxGT . | grep '"' \ | sed 's/_UxGT("/\n&/g;s/[^\n]*\n_UxGT("\([^"]*\)[^\n]*/\1 /g;s/.$//' \ diff --git a/buildroot/share/git/ghtp b/buildroot/share/git/ghtp index a2fac985d..3c0e21e37 100755 --- a/buildroot/share/git/ghtp +++ b/buildroot/share/git/ghtp @@ -20,8 +20,7 @@ case "$1" in ;; esac -which awk >/dev/null && AWK=awk -which gawk >/dev/null && AWK=gawk +AWK=$(which gawk || which awk) REMOTES=$(git remote -v | egrep "\t$MATCH" | "$AWK" '{print $1 " " $2}' | sort -u | sed "s/$FORMULA/") diff --git a/buildroot/share/git/mfclean b/buildroot/share/git/mfclean index b6ad2b514..fd131c426 100755 --- a/buildroot/share/git/mfclean +++ b/buildroot/share/git/mfclean @@ -6,8 +6,7 @@ # Great way to clean up your branches after messing around a lot # -which awk >/dev/null && AWK=awk -which gawk >/dev/null && AWK=gawk +AWK=$(which gawk || which awk) KEEP="RC|RCBugFix|dev|master|bugfix-1|bugfix-2" From b14f630f26b95cd08ef047ba1a83cfb6dc2a537e Mon Sep 17 00:00:00 2001 From: Anders Sahlman <57940217+AndersSahlman@users.noreply.github.com> Date: Tue, 11 Aug 2020 03:21:48 +0200 Subject: [PATCH 090/194] MKS Robin new 320x240 TFT Color UI support (#18985) --- Marlin/src/lcd/tft/ili9341.h | 8 +- Marlin/src/lcd/tft/ili9488.h | 4 +- Marlin/src/pins/stm32f1/pins_MKS_ROBIN_MINI.h | 128 ++++++++++++------ 3 files changed, 96 insertions(+), 44 deletions(-) diff --git a/Marlin/src/lcd/tft/ili9341.h b/Marlin/src/lcd/tft/ili9341.h index 42a36b7e3..22709e4cf 100644 --- a/Marlin/src/lcd/tft/ili9341.h +++ b/Marlin/src/lcd/tft/ili9341.h @@ -38,8 +38,12 @@ #define ILI9341_ORIENTATION_LEFT ILI9341_MADCTL_MY | ILI9341_MADCTL_MX | ILI9341_MADCTL_MV // 320x240 ; Cable on the left side #define ILI9341_ORIENTATION_DOWN ILI9341_MADCTL_MX // 240x320 ; Cable on the upper side -#define ILI9341_COLOR_BGR -#define ILI9341_ORIENTATION ILI9341_ORIENTATION_LEFT +#ifndef ILI9341_COLOR_RGB + #define ILI9341_COLOR_BGR +#endif +#ifndef ILI9341_ORIENTATION + #define ILI9341_ORIENTATION ILI9341_ORIENTATION_LEFT +#endif #define ILI9341_MADCTL_DATA (ILI9341_ORIENTATION | TERN(ILI9341_COLOR_BGR, ILI9341_MADCTL_BGR, ILI9341_MADCTL_RGB)) #define ILI9341_NOP 0x00 // No Operation diff --git a/Marlin/src/lcd/tft/ili9488.h b/Marlin/src/lcd/tft/ili9488.h index 6aad70486..19fdc78e0 100644 --- a/Marlin/src/lcd/tft/ili9488.h +++ b/Marlin/src/lcd/tft/ili9488.h @@ -38,7 +38,9 @@ #define ILI9488_ORIENTATION_LEFT ILI9488_MADCTL_MY | ILI9488_MADCTL_MX | ILI9488_MADCTL_MV // 480x320 ; Cable on the left side #define ILI9488_ORIENTATION_DOWN ILI9488_MADCTL_MX // 320x480 ; Cable on the upper side -#define ILI9488_COLOR_BGR +#ifndef ILI9488_COLOR_RGB + #define ILI9488_COLOR_BGR +#endif #ifndef ILI9488_ORIENTATION #define ILI9488_ORIENTATION ILI9488_ORIENTATION_LEFT #endif diff --git a/Marlin/src/pins/stm32f1/pins_MKS_ROBIN_MINI.h b/Marlin/src/pins/stm32f1/pins_MKS_ROBIN_MINI.h index 73e1b12b8..716cb1637 100644 --- a/Marlin/src/pins/stm32f1/pins_MKS_ROBIN_MINI.h +++ b/Marlin/src/pins/stm32f1/pins_MKS_ROBIN_MINI.h @@ -22,34 +22,33 @@ #pragma once /** - * MKS Robin MINI (STM32F130VET6) board pin assignments + * MKS Robin mini (STM32F130VET6) board pin assignments */ #ifndef __STM32F1__ #error "Oops! Select an STM32F1 board in 'Tools > Board.'" #elif HOTENDS > 1 || E_STEPPERS > 1 - #error "MKS Robin mini supports up to 1 hotends / E-steppers. Comment out this line to continue." + #error "MKS Robin mini only supports 1 hotend / E-stepper. Comment out this line to continue." #endif -#define BOARD_INFO_NAME "MKS Robin mini" +#define BOARD_INFO_NAME "MKS Robin Mini" // // Release PB4 (Y_ENABLE_PIN) from JTAG NRST role // #define DISABLE_DEBUG +// +// EEPROM +// #if EITHER(NO_EEPROM_SELECTED, FLASH_EEPROM_EMULATION) #define FLASH_EEPROM_EMULATION - // 2K in a AT24C16N - #define EEPROM_PAGE_SIZE (0x800U) // 2KB - #define EEPROM_START_ADDRESS (0x8000000UL + (STM32_FLASH_SIZE) * 1024UL - (EEPROM_PAGE_SIZE) * 2UL) + #define EEPROM_PAGE_SIZE (0x800U) // 2KB + #define EEPROM_START_ADDRESS (0x8000000UL + (STM32_FLASH_SIZE) * 1024UL - (EEPROM_PAGE_SIZE) * 2UL) #define MARLIN_EEPROM_SIZE EEPROM_PAGE_SIZE // 2KB #endif -// -// Note: MKS Robin mini board is using SPI2 interface. -// -#define SPI_MODULE 2 +#define ENABLE_SPI2 // // Limit Switches @@ -82,6 +81,15 @@ #define E0_STEP_PIN PD6 #define E0_DIR_PIN PD3 + +// Motor current PWM pins +#define MOTOR_CURRENT_PWM_XY_PIN PA6 +#define MOTOR_CURRENT_PWM_Z_PIN PA7 +#define MOTOR_CURRENT_PWM_E_PIN PB0 +#define MOTOR_CURRENT_PWM_RANGE 1500 // (255 * (1000mA / 65535)) * 257 = 1000 is equal 1.6v Vref in turn equal 1Amp +#ifndef DEFAULT_PWM_MOTOR_CURRENT + #define DEFAULT_PWM_MOTOR_CURRENT { 800, 800, 800 } +#endif // // Temperature Sensors // @@ -91,64 +99,102 @@ // // Heaters / Fans // -#define HEATER_0_PIN PC3 // HEATER1 -#define HEATER_BED_PIN PA0 // HOT BED +#define HEATER_0_PIN PC3 +#define HEATER_BED_PIN PA0 #define FAN_PIN PB1 // FAN -// -// Thermocouples -// -//#define MAX6675_SS_PIN PE5 // TC1 - CS1 -//#define MAX6675_SS_PIN PE6 // TC2 - CS2 - // // Misc. Functions // #define POWER_LOSS_PIN PA2 // PW_DET #define PS_ON_PIN PA3 // PW_OFF -//#define LED_PIN PB2 +#define SERVO0_PIN PA8 // Enable BLTOUCH support on IO0 (WIFI connector) + +#define MT_DET_1_PIN PA4 +#define MT_DET_PIN_INVERTING false + +#define WIFI_IO0_PIN PC13 + +// +// SD Card +// +#ifndef SDCARD_CONNECTION + #define SDCARD_CONNECTION ONBOARD +#endif + +#define SDIO_SUPPORT +#define SDIO_CLOCK 4500000 // 4.5 MHz +#define SD_DETECT_PIN PD12 +#define ONBOARD_SD_CS_PIN PC11 // // LCD / Controller // #define BEEPER_PIN PC5 -#define SD_DETECT_PIN PD12 /** * Note: MKS Robin TFT screens use various TFT controllers. * If the screen stays white, disable 'LCD_RESET_PIN' * to let the bootloader init the screen. */ + #define XPT2046_X_CALIBRATION 12033 + #define XPT2046_Y_CALIBRATION -9047 + #define XPT2046_X_OFFSET -30 + #define XPT2046_Y_OFFSET 254 + #if ENABLED(FSMC_GRAPHICAL_TFT) + #define FSMC_CS_PIN PD7 // NE4 #define FSMC_RS_PIN PD11 // A0 - #define LCD_RESET_PIN PC6 + #define LCD_USE_DMA_FSMC // Use DMA transfers to send data to the TFT + #define FSMC_DMA_DEV DMA2 + #define FSMC_DMA_CHANNEL DMA_CH5 + + #define LCD_RESET_PIN PC6 // FSMC_RST #define LCD_BACKLIGHT_PIN PD13 #if NEED_TOUCH_PINS - #define TOUCH_CS_PIN PC2 - #define TOUCH_SCK_PIN PB13 - #define TOUCH_MOSI_PIN PB15 - #define TOUCH_MISO_PIN PB14 + #define TOUCH_CS_PIN PC2 // SPI2_NSS + #define TOUCH_SCK_PIN PB13 // SPI2_SCK + #define TOUCH_MISO_PIN PB14 // SPI2_MISO + #define TOUCH_MOSI_PIN PB15 // SPI2_MOSI #endif + +#elif ENABLED(TFT_320x240) //TFT32/28 + + #define TFT_RESET_PIN PC6 + #define TFT_BACKLIGHT_PIN PD13 + + #define LCD_USE_DMA_FSMC // Use DMA transfers to send data to the TFT + #define FSMC_CS_PIN PD7 + #define FSMC_RS_PIN PD11 + #define FSMC_DMA_DEV DMA2 + #define FSMC_DMA_CHANNEL DMA_CH5 + + #define TOUCH_CS_PIN PC2 // SPI2_NSS + #define TOUCH_SCK_PIN PB13 // SPI2_SCK + #define TOUCH_MISO_PIN PB14 // SPI2_MISO + #define TOUCH_MOSI_PIN PB15 // SPI2_MOSI + + #define TFT_DRIVER ILI9341 + #define TFT_BUFFER_SIZE 14400 + + // YV for normal screen mounting + #define ILI9341_ORIENTATION ILI9341_MADCTL_MY | ILI9341_MADCTL_MV + // XV for 180° rotated screen mounting + //#define ILI9341_ORIENTATION ILI9341_MADCTL_MX | ILI9341_MADCTL_MV + + #define ILI9341_COLOR_RGB #endif -// Motor current PWM pins -#define MOTOR_CURRENT_PWM_XY_PIN PA6 -#define MOTOR_CURRENT_PWM_Z_PIN PA7 -#define MOTOR_CURRENT_PWM_E_PIN PB0 -#define MOTOR_CURRENT_PWM_RANGE 1500 // (255 * (1000mA / 65535)) * 257 = 1000 is equal 1.6v Vref in turn equal 1Amp -#define DEFAULT_PWM_MOTOR_CURRENT { 1030, 1030, 1030 } // 1.05Amp per driver, here is XY, Z and E. This values determined empirically. - -// This is a kind of workaround in case native marlin "digipot" interface won't work. -// Required to enable related code in STM32F1/HAL.cpp -//#ifndef MKS_ROBIN_MINI_VREF_PWM -// #define MKS_ROBIN_MINI_VREF_PWM -//#endif - -//#define VREF_XY_PIN PA6 -//#define VREF_Z_PIN PA7 -//#define VREF_E1_PIN PB0 +#define HAS_SPI_FLASH 1 +#define SPI_FLASH_SIZE 0x1000000 // 16MB +#if HAS_SPI_FLASH + #define W25QXX_CS_PIN PB12 // Flash chip-select + #define W25QXX_MOSI_PIN PB15 + #define W25QXX_MISO_PIN PB14 + #define W25QXX_SCK_PIN PB13 +#endif From 9590fcd85567d578087568bdc8c478073f9808b7 Mon Sep 17 00:00:00 2001 From: Robby Candra Date: Tue, 11 Aug 2020 08:25:35 +0700 Subject: [PATCH 091/194] EVENT_GCODE_SD_STOP => ABORT (#18978) --- Marlin/Configuration_adv.h | 2 +- Marlin/src/MarlinCore.cpp | 4 ++-- Marlin/src/inc/SanityCheck.h | 6 ++++-- Marlin/src/lcd/dwin/dwin.cpp | 4 ++-- 4 files changed, 9 insertions(+), 7 deletions(-) diff --git a/Marlin/Configuration_adv.h b/Marlin/Configuration_adv.h index a3013611c..1b31f0bc3 100644 --- a/Marlin/Configuration_adv.h +++ b/Marlin/Configuration_adv.h @@ -1137,7 +1137,7 @@ //#define MENU_ADDAUTOSTART // Add a menu option to run auto#.g files - #define EVENT_GCODE_SD_STOP "G28XY" // G-code to run on Stop Print (e.g., "G28XY" or "G27") + #define EVENT_GCODE_SD_ABORT "G28XY" // G-code to run on SD Abort Print (e.g., "G28XY" or "G27") #if ENABLED(PRINTER_EVENT_LEDS) #define PE_LEDS_COMPLETED_TIME (30*60) // (seconds) Time to keep the LED "done" color before restoring normal illumination diff --git a/Marlin/src/MarlinCore.cpp b/Marlin/src/MarlinCore.cpp index 39530395e..30b6fbe3d 100644 --- a/Marlin/src/MarlinCore.cpp +++ b/Marlin/src/MarlinCore.cpp @@ -453,8 +453,8 @@ void startOrResumeJob() { #endif wait_for_heatup = false; TERN_(POWER_LOSS_RECOVERY, recovery.purge()); - #ifdef EVENT_GCODE_SD_STOP - queue.inject_P(PSTR(EVENT_GCODE_SD_STOP)); + #ifdef EVENT_GCODE_SD_ABORT + queue.inject_P(PSTR(EVENT_GCODE_SD_ABORT)); #endif TERN_(PASSWORD_AFTER_SD_PRINT_ABORT, password.lock_machine()); diff --git a/Marlin/src/inc/SanityCheck.h b/Marlin/src/inc/SanityCheck.h index f9b65c8bf..6fcd86798 100644 --- a/Marlin/src/inc/SanityCheck.h +++ b/Marlin/src/inc/SanityCheck.h @@ -517,6 +517,8 @@ #error "TOUCH_BUTTONS is now TOUCH_SCREEN. Please update your Configuration.h." #elif defined(ANYCUBIC_TFT_MODEL) #error "ANYCUBIC_TFT_MODEL is now ANYCUBIC_LCD_I3MEGA. Please update your Configuration.h." +#elif defined(EVENT_GCODE_SD_STOP) + #error "EVENT_GCODE_SD_STOP is now EVENT_GCODE_SD_ABORT. Please update your Configuration.h." #endif #ifdef FIL_RUNOUT_INVERTING @@ -742,8 +744,8 @@ static_assert(Y_MAX_LENGTH >= Y_BED_SIZE, "Movement bounds (Y_MIN_POS, Y_MAX_POS #endif #endif -#if defined(EVENT_GCODE_SD_STOP) && DISABLED(NOZZLE_PARK_FEATURE) - static_assert(nullptr == strstr(EVENT_GCODE_SD_STOP, "G27"), "NOZZLE_PARK_FEATURE is required to use G27 in EVENT_GCODE_SD_STOP."); +#if defined(EVENT_GCODE_SD_ABORT) && DISABLED(NOZZLE_PARK_FEATURE) + static_assert(nullptr == strstr(EVENT_GCODE_SD_ABORT, "G27"), "NOZZLE_PARK_FEATURE is required to use G27 in EVENT_GCODE_SD_ABORT."); #endif /** diff --git a/Marlin/src/lcd/dwin/dwin.cpp b/Marlin/src/lcd/dwin/dwin.cpp index 87db3c4b2..1aa2656dc 100644 --- a/Marlin/src/lcd/dwin/dwin.cpp +++ b/Marlin/src/lcd/dwin/dwin.cpp @@ -2072,9 +2072,9 @@ void HMI_PauseOrStop(void) { #ifdef ACTION_ON_CANCEL host_action_cancel(); #endif - #ifdef EVENT_GCODE_SD_STOP + #ifdef EVENT_GCODE_SD_ABORT Popup_Window_Home(); - queue.inject_P(PSTR(EVENT_GCODE_SD_STOP)); // For Ender 3 "G28 X Y" + queue.inject_P(PSTR(EVENT_GCODE_SD_ABORT)); #endif abort_flag = true; #endif From bd690f12bc7fc4abdd2fc5c6971b11b2635c4448 Mon Sep 17 00:00:00 2001 From: qwewer0 <57561110+qwewer0@users.noreply.github.com> Date: Tue, 11 Aug 2020 10:11:40 +0200 Subject: [PATCH 092/194] Mention units for MANUAL_FEEDRATE (#18993) --- Marlin/Configuration_adv.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Marlin/Configuration_adv.h b/Marlin/Configuration_adv.h index 1b31f0bc3..1c29af1f4 100644 --- a/Marlin/Configuration_adv.h +++ b/Marlin/Configuration_adv.h @@ -1025,7 +1025,7 @@ // @section lcd #if EITHER(ULTIPANEL, EXTENSIBLE_UI) - #define MANUAL_FEEDRATE { 50*60, 50*60, 4*60, 2*60 } // Feedrates for manual moves along X, Y, Z, E from panel + #define MANUAL_FEEDRATE { 50*60, 50*60, 4*60, 2*60 } // (mm/m) Feedrates for manual moves along X, Y, Z, E from panel #define SHORT_MANUAL_Z_MOVE 0.025 // (mm) Smallest manual Z move (< 0.1mm) #if ENABLED(ULTIPANEL) #define MANUAL_E_MOVES_RELATIVE // Display extruder move distance rather than "position" From ca4eaf92b4d1acda18a5ffba515efd5bd1be0e43 Mon Sep 17 00:00:00 2001 From: thinkyhead Date: Wed, 12 Aug 2020 00:10:11 +0000 Subject: [PATCH 093/194] [cron] Bump distribution date (2020-08-12) --- Marlin/src/inc/Version.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Marlin/src/inc/Version.h b/Marlin/src/inc/Version.h index 9b379ba9f..bead274b4 100644 --- a/Marlin/src/inc/Version.h +++ b/Marlin/src/inc/Version.h @@ -42,7 +42,7 @@ * version was tagged. */ #ifndef STRING_DISTRIBUTION_DATE - #define STRING_DISTRIBUTION_DATE "2020-08-11" + #define STRING_DISTRIBUTION_DATE "2020-08-12" #endif /** From ee28a1079582b39fa97d563f4df4824964552638 Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Wed, 12 Aug 2020 16:46:51 -0500 Subject: [PATCH 094/194] String interpolation for 2-digit numbers (#18998) --- Marlin/src/core/language.h | 4 ++-- Marlin/src/lcd/lcdprint.cpp | 18 ++++++++++++------ Marlin/src/lcd/tft/tft_string.cpp | 21 ++++++++++----------- Marlin/src/lcd/tft/tft_string.h | 6 +++--- 4 files changed, 27 insertions(+), 22 deletions(-) diff --git a/Marlin/src/core/language.h b/Marlin/src/core/language.h index 48431455f..f0ddbdd6d 100644 --- a/Marlin/src/core/language.h +++ b/Marlin/src/core/language.h @@ -353,7 +353,7 @@ * */ #if ENABLED(NUMBER_TOOLS_FROM_0) - #define LCD_FIRST_TOOL '0' + #define LCD_FIRST_TOOL 0 #define LCD_STR_N0 "0" #define LCD_STR_N1 "1" #define LCD_STR_N2 "2" @@ -363,7 +363,7 @@ #define LCD_STR_N6 "6" #define LCD_STR_N7 "7" #else - #define LCD_FIRST_TOOL '1' + #define LCD_FIRST_TOOL 1 #define LCD_STR_N0 "1" #define LCD_STR_N1 "2" #define LCD_STR_N2 "3" diff --git a/Marlin/src/lcd/lcdprint.cpp b/Marlin/src/lcd/lcdprint.cpp index c982cfe2a..0f7f945a9 100644 --- a/Marlin/src/lcd/lcdprint.cpp +++ b/Marlin/src/lcd/lcdprint.cpp @@ -44,22 +44,28 @@ lcd_uint_t lcd_put_u8str_ind_P(PGM_P const pstr, const int8_t ind, PGM_P const i if (ch == '=' || ch == '~' || ch == '*') { if (ind >= 0) { if (ch == '*') { lcd_put_wchar('E'); n--; } - if (n) { lcd_put_wchar(ind + ((ch == '=') ? '0' : LCD_FIRST_TOOL)); n--; } + if (n) { + int8_t inum = ind + ((ch == '=') ? 0 : LCD_FIRST_TOOL); + if (inum >= 10) { + lcd_put_wchar('0' + (inum / 10)); n--; + inum %= 10; + } + if (n) { lcd_put_wchar('0' + inum); n--; } + } } else { PGM_P const b = ind == -2 ? GET_TEXT(MSG_CHAMBER) : GET_TEXT(MSG_BED); n -= lcd_put_u8str_max_P(b, n * (MENU_FONT_WIDTH)) / (MENU_FONT_WIDTH); } if (n) n -= lcd_put_u8str_max_P((PGM_P)p, n * (MENU_FONT_WIDTH)) / (MENU_FONT_WIDTH); - continue; } else if (ch == '$' && inStr) { n -= lcd_put_u8str_max_P(inStr, n * (MENU_FONT_WIDTH)) / (MENU_FONT_WIDTH); - continue; } - - lcd_put_wchar(ch); - n--; + else { + lcd_put_wchar(ch); + n--; + } } return n; } diff --git a/Marlin/src/lcd/tft/tft_string.cpp b/Marlin/src/lcd/tft/tft_string.cpp index f4e203445..7e66c3d29 100644 --- a/Marlin/src/lcd/tft/tft_string.cpp +++ b/Marlin/src/lcd/tft/tft_string.cpp @@ -86,33 +86,32 @@ void TFT_String::set() { uint8_t read_byte(uint8_t *byte) { return *byte; } -void TFT_String::add(uint8_t *string, uint8_t index, uint8_t *itemString) { - uint8_t character; +void TFT_String::add(uint8_t *string, int8_t index, uint8_t *itemString) { wchar_t wchar; while (*string) { string = get_utf8_value_cb(string, read_byte, &wchar); - if (wchar > 255) - wchar |= 0x0080; - character = (uint8_t) (wchar & 0x00FF); + if (wchar > 255) wchar |= 0x0080; + uint8_t ch = uint8_t(wchar & 0x00FF); - if (character == '=' || character == '~' || character == '*') { + if (ch == '=' || ch == '~' || ch == '*') { if (index >= 0) { - if (character == '*') - add_character('E'); - add_character(index + ((character == '=') ? '0' : LCD_FIRST_TOOL)); + int8_t inum = index + ((ch == '=') ? 0 : LCD_FIRST_TOOL); + if (ch == '*') add_character('E'); + if (inum >= 10) { add_character('0' + (inum / 10)); inum %= 10; } + add_character('0' + inum); } else { add(index == -2 ? GET_TEXT(MSG_CHAMBER) : GET_TEXT(MSG_BED)); } continue; } - else if (character == '$' && itemString) { + else if (ch == '$' && itemString) { add(itemString); continue; } - add_character(character); + add_character(ch); } eol(); } diff --git a/Marlin/src/lcd/tft/tft_string.h b/Marlin/src/lcd/tft/tft_string.h index b4c94953f..d83d3af70 100644 --- a/Marlin/src/lcd/tft/tft_string.h +++ b/Marlin/src/lcd/tft/tft_string.h @@ -86,11 +86,11 @@ class TFT_String { static void set(); static void add(uint8_t character) { add_character(character); eol(); } static void add(uint8_t *string) { while (*string) { add_character(*string++); } eol(); } - static void add(uint8_t *string, uint8_t index, uint8_t *itemString = NULL); + static void add(uint8_t *string, int8_t index, uint8_t *itemString = NULL); static void set(uint8_t *string) { set(); add(string); }; - static void set(uint8_t *string, uint8_t index, const char *itemString = NULL) { set(); add(string, index, (uint8_t *)itemString); }; + static void set(uint8_t *string, int8_t index, const char *itemString = NULL) { set(); add(string, index, (uint8_t *)itemString); }; static inline void set(const char *string) { set((uint8_t *)string); } - static inline void set(const char *string, uint8_t index, const char *itemString = NULL) { set((uint8_t *)string, index, itemString); } + static inline void set(const char *string, int8_t index, const char *itemString = NULL) { set((uint8_t *)string, index, itemString); } static inline void add(const char *string) { add((uint8_t *)string); } static void trim(uint8_t character = 0x20); From 3b9e0c3dde3d1879fa59fa1244a050319dc1467a Mon Sep 17 00:00:00 2001 From: thinkyhead Date: Thu, 13 Aug 2020 00:10:41 +0000 Subject: [PATCH 095/194] [cron] Bump distribution date (2020-08-13) --- Marlin/src/inc/Version.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Marlin/src/inc/Version.h b/Marlin/src/inc/Version.h index bead274b4..3babd11a3 100644 --- a/Marlin/src/inc/Version.h +++ b/Marlin/src/inc/Version.h @@ -42,7 +42,7 @@ * version was tagged. */ #ifndef STRING_DISTRIBUTION_DATE - #define STRING_DISTRIBUTION_DATE "2020-08-12" + #define STRING_DISTRIBUTION_DATE "2020-08-13" #endif /** From ff5c8d35705df99f385a6b27163380a249c2e646 Mon Sep 17 00:00:00 2001 From: Victor Oliveira Date: Thu, 13 Aug 2020 20:31:59 -0300 Subject: [PATCH 096/194] Optimize LVGL with HAL TFT IO (SPI and FSMC) (#18974) --- Marlin/src/HAL/STM32F1/tft/tft_fsmc.cpp | 16 +- Marlin/src/HAL/STM32F1/tft/tft_fsmc.h | 7 + Marlin/src/HAL/STM32F1/tft/tft_spi.cpp | 15 +- Marlin/src/HAL/STM32F1/tft/tft_spi.h | 7 + Marlin/src/inc/Conditionals_adv.h | 2 +- Marlin/src/lcd/extui/lib/mks_ui/SPI_TFT.cpp | 186 ++---------- Marlin/src/lcd/extui/lib/mks_ui/SPI_TFT.h | 20 +- .../src/lcd/extui/lib/mks_ui/draw_dialog.cpp | 2 + Marlin/src/lcd/extui/lib/mks_ui/draw_ui.cpp | 69 +---- .../extui/lib/mks_ui/mks_hardware_test.cpp | 2 - Marlin/src/lcd/extui/lib/mks_ui/tft_fsmc.cpp | 260 ++-------------- .../lib/mks_ui/tft_lvgl_configuration.cpp | 280 +++--------------- Marlin/src/pins/stm32f1/pins_CHITU3D_V5.h | 25 +- Marlin/src/pins/stm32f1/pins_CHITU3D_V6.h | 25 +- Marlin/src/pins/stm32f1/pins_MKS_ROBIN_NANO.h | 11 + .../src/pins/stm32f1/pins_MKS_ROBIN_NANO_V2.h | 29 +- 16 files changed, 181 insertions(+), 775 deletions(-) diff --git a/Marlin/src/HAL/STM32F1/tft/tft_fsmc.cpp b/Marlin/src/HAL/STM32F1/tft/tft_fsmc.cpp index 33cddd1e0..e0047e7d5 100644 --- a/Marlin/src/HAL/STM32F1/tft/tft_fsmc.cpp +++ b/Marlin/src/HAL/STM32F1/tft/tft_fsmc.cpp @@ -22,7 +22,7 @@ #include "../../../inc/MarlinConfig.h" -#if HAS_FSMC_TFT +#if HAS_FSMC_TFT || ENABLED(TFT_LVGL_UI_FSMC) #include "tft_fsmc.h" #include @@ -224,13 +224,15 @@ void TFT_FSMC::Abort() { } void TFT_FSMC::TransmitDMA(uint32_t MemoryIncrease, uint16_t *Data, uint16_t Count) { - dma_setup_transfer(FSMC_DMA_DEV, FSMC_DMA_CHANNEL, Data, DMA_SIZE_16BITS, &LCD->RAM, DMA_SIZE_16BITS, DMA_MEM_2_MEM | MemoryIncrease); - dma_set_num_transfers(FSMC_DMA_DEV, FSMC_DMA_CHANNEL, Count); - dma_clear_isr_bits(FSMC_DMA_DEV, FSMC_DMA_CHANNEL); - dma_enable(FSMC_DMA_DEV, FSMC_DMA_CHANNEL); + #if defined(FSMC_DMA_DEV) && defined(FSMC_DMA_CHANNEL) + dma_setup_transfer(FSMC_DMA_DEV, FSMC_DMA_CHANNEL, Data, DMA_SIZE_16BITS, &LCD->RAM, DMA_SIZE_16BITS, DMA_MEM_2_MEM | MemoryIncrease); + dma_set_num_transfers(FSMC_DMA_DEV, FSMC_DMA_CHANNEL, Count); + dma_clear_isr_bits(FSMC_DMA_DEV, FSMC_DMA_CHANNEL); + dma_enable(FSMC_DMA_DEV, FSMC_DMA_CHANNEL); - while ((dma_get_isr_bits(FSMC_DMA_DEV, FSMC_DMA_CHANNEL) & 0x0A) == 0) {}; - dma_disable(FSMC_DMA_DEV, FSMC_DMA_CHANNEL); + while ((dma_get_isr_bits(FSMC_DMA_DEV, FSMC_DMA_CHANNEL) & 0x0A) == 0) {}; + dma_disable(FSMC_DMA_DEV, FSMC_DMA_CHANNEL); + #endif } #endif // HAS_FSMC_TFT diff --git a/Marlin/src/HAL/STM32F1/tft/tft_fsmc.h b/Marlin/src/HAL/STM32F1/tft/tft_fsmc.h index 5c43361c0..6fcfea8a1 100644 --- a/Marlin/src/HAL/STM32F1/tft/tft_fsmc.h +++ b/Marlin/src/HAL/STM32F1/tft/tft_fsmc.h @@ -61,4 +61,11 @@ class TFT_FSMC { static void WriteSequence(uint16_t *Data, uint16_t Count) { TransmitDMA(DMA_PINC_MODE, Data, Count); } static void WriteMultiple(uint16_t Color, uint16_t Count) { static uint16_t Data; Data = Color; TransmitDMA(DMA_CIRC_MODE, &Data, Count); } + static void WriteMultiple(uint16_t Color, uint32_t Count) { + static uint16_t Data; Data = Color; + while (Count > 0) { + TransmitDMA(DMA_CIRC_MODE, &Data, Count > 0xFFFF ? 0xFFFF : Count); + Count = Count > 0xFFFF ? Count - 0xFFFF : 0; + } + } }; diff --git a/Marlin/src/HAL/STM32F1/tft/tft_spi.cpp b/Marlin/src/HAL/STM32F1/tft/tft_spi.cpp index a64f90f2b..2610262b0 100644 --- a/Marlin/src/HAL/STM32F1/tft/tft_spi.cpp +++ b/Marlin/src/HAL/STM32F1/tft/tft_spi.cpp @@ -22,7 +22,7 @@ #include "../../../inc/MarlinConfig.h" -#if HAS_SPI_TFT +#if HAS_SPI_TFT || ENABLED(TFT_LVGL_UI_SPI) #include "tft_spi.h" @@ -103,16 +103,21 @@ uint32_t TFT_SPI::ReadID(uint16_t Reg) { #if !PIN_EXISTS(TFT_MISO) return 0; #else - uint16_t d = 0; + uint8_t d = 0; + uint32_t data = 0; + SPIx.setClockDivider(SPI_CLOCK_DIV16); DataTransferBegin(DATASIZE_8BIT); WriteReg(Reg); - SPI.read((uint8_t*)&d, 1); //dummy read - SPI.read((uint8_t*)&d, 1); + LOOP_L_N(i, 4) { + SPIx.read((uint8_t*)&d, 1); + data = (data << 8) | d; + } DataTransferEnd(); + SPIx.setClockDivider(SPI_CLOCK_MAX); - return d >> 7; + return data >> 7; #endif } diff --git a/Marlin/src/HAL/STM32F1/tft/tft_spi.h b/Marlin/src/HAL/STM32F1/tft/tft_spi.h index 1d1c9b444..bb26fc21b 100644 --- a/Marlin/src/HAL/STM32F1/tft/tft_spi.h +++ b/Marlin/src/HAL/STM32F1/tft/tft_spi.h @@ -62,4 +62,11 @@ public: static void WriteSequence(uint16_t *Data, uint16_t Count) { TransmitDMA(DMA_MINC_ENABLE, Data, Count); } static void WriteMultiple(uint16_t Color, uint16_t Count) { static uint16_t Data; Data = Color; TransmitDMA(DMA_MINC_DISABLE, &Data, Count); } + static void WriteMultiple(uint16_t Color, uint32_t Count) { + static uint16_t Data; Data = Color; + while (Count > 0) { + TransmitDMA(DMA_MINC_DISABLE, &Data, Count > 0xFFFF ? 0xFFFF : Count); + Count = Count > 0xFFFF ? Count - 0xFFFF : 0; + } + } }; diff --git a/Marlin/src/inc/Conditionals_adv.h b/Marlin/src/inc/Conditionals_adv.h index 277131289..fa4f0cd9b 100644 --- a/Marlin/src/inc/Conditionals_adv.h +++ b/Marlin/src/inc/Conditionals_adv.h @@ -252,7 +252,7 @@ #endif // Full Touch Screen needs 'tft/xpt2046' -#if ENABLED(TOUCH_SCREEN) +#if EITHER(TOUCH_SCREEN, HAS_TFT_LVGL_UI) #define HAS_TFT_XPT2046 1 #endif diff --git a/Marlin/src/lcd/extui/lib/mks_ui/SPI_TFT.cpp b/Marlin/src/lcd/extui/lib/mks_ui/SPI_TFT.cpp index 0febc4edb..607090ba3 100644 --- a/Marlin/src/lcd/extui/lib/mks_ui/SPI_TFT.cpp +++ b/Marlin/src/lcd/extui/lib/mks_ui/SPI_TFT.cpp @@ -54,112 +54,27 @@ TFT SPI_TFT; // use SPI1 for the spi tft. void TFT::spi_init(uint8_t spiRate) { - - SPI_TFT_CS_H; - - /** - * STM32F1 APB2 = 72MHz, APB1 = 36MHz, max SPI speed of this MCU if 18Mhz - * STM32F1 has 3 SPI ports, SPI1 in APB2, SPI2/SPI3 in APB1 - * so the minimum prescale of SPI1 is DIV4, SPI2/SPI3 is DIV2 - */ - uint8_t clock; - switch (spiRate) { - case SPI_FULL_SPEED: clock = SPI_CLOCK_DIV4; break; - case SPI_HALF_SPEED: clock = SPI_CLOCK_DIV4; break; - case SPI_QUARTER_SPEED: clock = SPI_CLOCK_DIV8; break; - case SPI_EIGHTH_SPEED: clock = SPI_CLOCK_DIV16; break; - case SPI_SPEED_5: clock = SPI_CLOCK_DIV32; break; - case SPI_SPEED_6: clock = SPI_CLOCK_DIV64; break; - default: clock = SPI_CLOCK_DIV2; // Default from the SPI library - } - SPI.setModule(1); - SPI.begin(); - SPI.setClockDivider(clock); - SPI.setBitOrder(MSBFIRST); - SPI.setDataMode(SPI_MODE0); -} - -uint8_t TFT::spi_Rec() { - uint8_t returnByte = SPI.transfer(ff); - return returnByte; -} - -uint8_t TFT::spi_read_write_byte(uint8_t data) { - uint8_t returnByte = SPI.transfer(data); - return returnByte; -} - -/** - * @brief Receive a number of bytes from the SPI port to a buffer - * - * @param buf Pointer to starting address of buffer to write to. - * @param nbyte Number of bytes to receive. - * @return Nothing - * - * @details Uses DMA - */ -void TFT::spi_Read(uint8_t* buf, uint16_t nbyte) {SPI.dmaTransfer(0, const_cast(buf), nbyte);} - -/** - * @brief Send a single byte on SPI port - * - * @param b Byte to send - * - * @details - */ -void TFT::spi_Send(uint8_t b) {SPI.send(b);} - -/** - * @brief Write token and then write from 512 byte buffer to SPI (for SD card) - * - * @param buf Pointer with buffer start address - * @return Nothing - * - * @details Use DMA - */ -void TFT::spi_SendBlock(uint8_t token, const uint8_t* buf) { - SPI.send(token); - SPI.dmaSend(const_cast(buf), 512); + tftio.Init(); } void TFT::LCD_WR_REG(uint8_t cmd) { - SPI_TFT_CS_L; - SPI_TFT_DC_L; - spi_Send(cmd); - SPI_TFT_CS_H; + tftio.WriteReg(cmd); } -void TFT::LCD_WR_DATA(uint8_t data) { - SPI_TFT_CS_L; - SPI_TFT_DC_H; - spi_Send(data); - SPI_TFT_CS_H; -} -void TFT::LCD_WriteRAM_Prepare() {LCD_WR_REG(0X2C);} -void TFT::SetCursor(uint16_t x, uint16_t y) { - LCD_WR_REG(0x2A); - LCD_WR_DATA(x >> 8); - LCD_WR_DATA(x); - LCD_WR_DATA(x >> 8); - LCD_WR_DATA(x); - LCD_WR_REG(0x2B); - LCD_WR_DATA(y >> 8); - LCD_WR_DATA(y); - LCD_WR_DATA(y >> 8); - LCD_WR_DATA(y); +void TFT::LCD_WR_DATA(uint8_t data) { + tftio.WriteData(data); } void TFT::SetPoint(uint16_t x, uint16_t y, uint16_t point) { if ((x > 480) || (y > 320)) return; - SetCursor(x, y); - - LCD_WriteRAM_Prepare(); - LCD_WR_DATA((uint8_t)(point >> 8)); - LCD_WR_DATA((uint8_t)point); + SetWindows(x, y, 1, 1); + tftio.WriteMultiple(point, (uint16_t)1); } void TFT::SetWindows(uint16_t x, uint16_t y, uint16_t with, uint16_t height) { + tftio.DataTransferBegin(DATASIZE_8BIT); + LCD_WR_REG(0x2A); LCD_WR_DATA(x >> 8); LCD_WR_DATA(x); @@ -171,6 +86,10 @@ void TFT::SetWindows(uint16_t x, uint16_t y, uint16_t with, uint16_t height) { LCD_WR_DATA(y); LCD_WR_DATA((y + height - 1) >> 8); LCD_WR_DATA(y + height - 1); + + LCD_WR_REG(0X2C); + + tftio.DataTransferEnd(); } void TFT::LCD_init() { @@ -180,6 +99,8 @@ void TFT::LCD_init() { delay(150); SPI_TFT_RST_H; + tftio.DataTransferBegin(DATASIZE_8BIT); + delay(120); LCD_WR_REG(0x11); delay(120); @@ -251,6 +172,8 @@ void TFT::LCD_init() { delay(120); // Delay 120ms LCD_WR_REG(0x29); // Display ON + tftio.DataTransferEnd(); + LCD_clear(0x0000); // LCD_Draw_Logo(); SPI_TFT_BLK_H; @@ -258,81 +181,18 @@ void TFT::LCD_init() { } void TFT::LCD_clear(uint16_t color) { - unsigned int i; - uint8_t tbuf[960]; - - SetCursor(0, 0); - SetWindows(0, 0, 480 - 1, 320 - 1); - LCD_WriteRAM_Prepare(); - SPI_TFT_CS_L; - SPI_TFT_DC_H; - for (i = 0; i < 960;) { - tbuf[i] = color >> 8; - tbuf[i + 1] = color; - i += 2; - } - for (i = 0; i < 320; i++) { - // for (m=0;m<480;m++) - // { - // LCD_WR_DATA(color>>8); - // LCD_WR_DATA(color); - SPI.dmaSend(tbuf, 960, true); - // SPI_TFT_CS_H; - // } - } - SPI_TFT_CS_H; + SetWindows(0, 0, (LCD_FULL_PIXEL_WIDTH) - 1, (LCD_FULL_PIXEL_HEIGHT) - 1); + tftio.WriteMultiple(color, (uint32_t)(LCD_FULL_PIXEL_WIDTH) * (LCD_FULL_PIXEL_HEIGHT)); } extern unsigned char bmp_public_buf[17 * 1024]; void TFT::LCD_Draw_Logo() { - uint16_t i,y_off = 0; - uint16_t *p_index; - uint16_t Color; - - #if 1 - for (y_off = 0; y_off < 320; y_off ++) { - Pic_Logo_Read((uint8_t *)"", (uint8_t *)bmp_public_buf, 960); - - SPI_TFT.spi_init(SPI_FULL_SPEED); - SetWindows(0, y_off, 480, 1); - LCD_WriteRAM_Prepare(); /* Prepare to write GRAM */ - for (i = 0; i < 960;) { - p_index = (uint16_t *)(&bmp_public_buf[i]); - Color = (*p_index >> 8); - *p_index = Color | ((*p_index & 0xFF) << 8); - i+=2; - } - SPI_TFT_CS_L; - SPI_TFT_DC_H; - SPI.dmaSend(bmp_public_buf,960,true); - SPI_TFT_CS_H; - } - - #else - - for (index = 0; index < 40; index ++) { - Pic_Logo_Read((uint8_t *)"", bmp_public_buf, 480*8*2); - i = 0; - SetCursor(0,0); - SetWindows(0, y_off * 8, 480, 8); - LCD_WriteRAM_Prepare(); /* Prepare to write GRAM */ - for (i = 0; i < 480 * 8 * 2;) { - p_index = (uint16_t *)(&bmp_public_buf[i]); - Color = (*p_index >> 8); - *p_index = Color | ((*p_index & 0xFF) << 8); - i += 2; - } - SPI_TFT_CS_L; - SPI_TFT_DC_H; - SPI.dmaSend(bmp_public_buf,480*8*2,true); - SPI_TFT_CS_H; - - y_off++; - } - #endif - - SetWindows(0, 0, 479, 319); + SetWindows(0, 0, LCD_FULL_PIXEL_WIDTH, LCD_FULL_PIXEL_HEIGHT); + for (uint16_t i = 0; i < (LCD_FULL_PIXEL_HEIGHT); i ++) { + Pic_Logo_Read((uint8_t *)"", (uint8_t *)bmp_public_buf, (LCD_FULL_PIXEL_WIDTH) * 2); + tftio.WriteSequence((uint16_t *)bmp_public_buf, LCD_FULL_PIXEL_WIDTH); + } } #endif // HAS_TFT_LVGL_UI_SPI diff --git a/Marlin/src/lcd/extui/lib/mks_ui/SPI_TFT.h b/Marlin/src/lcd/extui/lib/mks_ui/SPI_TFT.h index 9b6768431..c4b04e1c2 100644 --- a/Marlin/src/lcd/extui/lib/mks_ui/SPI_TFT.h +++ b/Marlin/src/lcd/extui/lib/mks_ui/SPI_TFT.h @@ -21,13 +21,13 @@ */ #pragma once -#include +#include "../../inc/MarlinConfigPre.h" -#define SPI_TFT_CS_H OUT_WRITE(SPI_TFT_CS_PIN, HIGH) -#define SPI_TFT_CS_L OUT_WRITE(SPI_TFT_CS_PIN, LOW) - -#define SPI_TFT_DC_H OUT_WRITE(SPI_TFT_DC_PIN, HIGH) -#define SPI_TFT_DC_L OUT_WRITE(SPI_TFT_DC_PIN, LOW) +#if ENABLED(TFT_LVGL_UI_SPI) + #include HAL_PATH(../../HAL, tft/tft_spi.h) +#elif ENABLED(TFT_LVGL_UI_FSMC) + #include HAL_PATH(../../HAL, tft/tft_fsmc.h) +#endif #define SPI_TFT_RST_H OUT_WRITE(SPI_TFT_RST_PIN, HIGH) #define SPI_TFT_RST_L OUT_WRITE(SPI_TFT_RST_PIN, LOW) @@ -37,20 +37,14 @@ class TFT { public: + TFT_IO tftio; void spi_init(uint8_t spiRate); - uint8_t spi_Rec(); - uint8_t spi_read_write_byte(uint8_t data); - void spi_Read(uint8_t* buf, uint16_t nbyte); - void spi_Send(uint8_t b); - void spi_SendBlock(uint8_t token, const uint8_t* buf); void LCD_WR_REG(uint8_t cmd); void LCD_WR_DATA(uint8_t data); - void SetCursor(uint16_t x, uint16_t y); void SetPoint(uint16_t x, uint16_t y, uint16_t point); void SetWindows(uint16_t x, uint16_t y, uint16_t with, uint16_t height); void LCD_init(); void LCD_clear(uint16_t color); - void LCD_WriteRAM_Prepare(); void LCD_Draw_Logo(); }; diff --git a/Marlin/src/lcd/extui/lib/mks_ui/draw_dialog.cpp b/Marlin/src/lcd/extui/lib/mks_ui/draw_dialog.cpp index 9ef27afc9..aad5e4362 100644 --- a/Marlin/src/lcd/extui/lib/mks_ui/draw_dialog.cpp +++ b/Marlin/src/lcd/extui/lib/mks_ui/draw_dialog.cpp @@ -51,6 +51,8 @@ #endif #include "../../../../gcode/gcode.h" +#include "pic_manager.h" + static lv_obj_t * scr; extern uint8_t sel_id; extern uint8_t once_flag; diff --git a/Marlin/src/lcd/extui/lib/mks_ui/draw_ui.cpp b/Marlin/src/lcd/extui/lib/mks_ui/draw_ui.cpp index 5d87eb9f8..dc5e4910e 100644 --- a/Marlin/src/lcd/extui/lib/mks_ui/draw_ui.cpp +++ b/Marlin/src/lcd/extui/lib/mks_ui/draw_ui.cpp @@ -500,14 +500,9 @@ char *creat_title_text() { } } - //SERIAL_ECHOLNPAIR("gPicturePreviewStart: ", gPicturePreviewStart, " PREVIEW_LITTLE_PIC_SIZE: ", PREVIEW_LITTLE_PIC_SIZE); - card.setIndex((gPicturePreviewStart + To_pre_view) + size * row + 8); #if ENABLED(TFT_LVGL_UI_SPI) - SPI_TFT.spi_init(SPI_FULL_SPEED); - //SPI_TFT.SetCursor(0,0); SPI_TFT.SetWindows(xpos_pixel, ypos_pixel + row, 200, 1); - SPI_TFT.LCD_WriteRAM_Prepare(); #else ili9320_SetWindows(xpos_pixel, ypos_pixel + row, 200, 1); LCD_WriteRAM_Prepare(); @@ -525,19 +520,11 @@ char *creat_title_text() { if (j >= 400) break; } #if ENABLED(TFT_LVGL_UI_SPI) - uint16_t Color, SpiColor; - SpiColor = (LV_COLOR_BACKGROUND.full >> 8) | ((LV_COLOR_BACKGROUND.full & 0xFF) << 8); - for (i = 0; i < 400;) { + for (i = 0; i < 400; i += 2) { p_index = (uint16_t *)(&bmp_public_buf[i]); - Color = (*p_index >> 8); - *p_index = Color | ((*p_index & 0xFF) << 8); - i += 2; - if (*p_index == 0x0000) *p_index = SpiColor; + if (*p_index == 0x0000) *p_index = LV_COLOR_BACKGROUND.full; } - SPI_TFT_CS_L; - SPI_TFT_DC_H; - SPI.dmaSend(bmp_public_buf, 400, true); - SPI_TFT_CS_H; + SPI_TFT.tftio.WriteSequence((uint16_t*)bmp_public_buf, 200); #else for (i = 0; i < 400;) { p_index = (uint16_t *)(&bmp_public_buf[i]); @@ -627,10 +614,7 @@ char *creat_title_text() { card.setIndex((PREVIEW_LITTLE_PIC_SIZE + To_pre_view) + size * row + 8); #if ENABLED(TFT_LVGL_UI_SPI) - SPI_TFT.spi_init(SPI_FULL_SPEED); - //SPI_TFT.SetCursor(0,0); SPI_TFT.SetWindows(xpos_pixel, ypos_pixel + row, 200, 1); - SPI_TFT.LCD_WriteRAM_Prepare(); #else ili9320_SetWindows(xpos_pixel, ypos_pixel + row, 200, 1); LCD_WriteRAM_Prepare(); @@ -750,9 +734,6 @@ char *creat_title_text() { void Draw_default_preview(int xpos_pixel, int ypos_pixel, uint8_t sel) { int index; int y_off = 0; - int _y; - uint16_t *p_index; - int i; for (index = 0; index < 10; index++) { // 200*200 #if HAS_BAK_VIEW_IN_FLASH @@ -761,58 +742,24 @@ char *creat_title_text() { } else { default_view_Read(bmp_public_buf, DEFAULT_VIEW_MAX_SIZE / 10); // 20k - #if ENABLED(TFT_LVGL_UI_SPI) - uint16_t Color; - for (i = 0; i < (DEFAULT_VIEW_MAX_SIZE / 10);) { - p_index = (uint16_t *)(&bmp_public_buf[i]); - Color = (*p_index >> 8); - *p_index = Color | ((*p_index & 0xff) << 8); - i += 2; - } - #endif } #else default_view_Read(bmp_public_buf, DEFAULT_VIEW_MAX_SIZE / 10); // 20k - #if ENABLED(TFT_LVGL_UI_SPI) - for (i = 0; i < (DEFAULT_VIEW_MAX_SIZE / 10);) { - p_index = (uint16_t *)(&bmp_public_buf[i]); - Color = (*p_index >> 8); - *p_index = Color | ((*p_index & 0xff) << 8); - i += 2; - } - #endif #endif - i = 0; #if ENABLED(TFT_LVGL_UI_SPI) - - //SPI_TFT.spi_init(SPI_FULL_SPEED); - //SPI_TFT.SetWindows(xpos_pixel, y_off * 20+ypos_pixel, 200,20); //200*200 - //SPI_TFT.LCD_WriteRAM_Prepare(); - int j = 0; - for (_y = y_off * 20; _y < (y_off + 1) * 20; _y++) { - SPI_TFT.spi_init(SPI_FULL_SPEED); - SPI_TFT.SetWindows(xpos_pixel, y_off * 20 + ypos_pixel + j, 200, 1); // 200*200 - SPI_TFT.LCD_WriteRAM_Prepare(); - - j++; - //memcpy(public_buf,&bmp_public_buf[i],400); - SPI_TFT_CS_L; - SPI_TFT_DC_H; - SPI.dmaSend(&bmp_public_buf[i], 400, true); - SPI_TFT_CS_H; - - i += 400; - if (i >= 8000) break; - } + SPI_TFT.SetWindows(xpos_pixel, y_off * 20 + ypos_pixel, 200, 20); // 200*200 + SPI_TFT.tftio.WriteSequence((uint16_t*)(bmp_public_buf), DEFAULT_VIEW_MAX_SIZE / 20); #else int x_off = 0; uint16_t temp_p; + int i = 0; + uint16_t *p_index; ili9320_SetWindows(xpos_pixel, y_off * 20 + ypos_pixel, 200, 20); // 200*200 LCD_WriteRAM_Prepare(); - for (_y = y_off * 20; _y < (y_off + 1) * 20; _y++) { + for (int _y = y_off * 20; _y < (y_off + 1) * 20; _y++) { for (x_off = 0; x_off < 200; x_off++) { if (sel == 1) { temp_p = (uint16_t)(bmp_public_buf[i] | bmp_public_buf[i + 1] << 8); diff --git a/Marlin/src/lcd/extui/lib/mks_ui/mks_hardware_test.cpp b/Marlin/src/lcd/extui/lib/mks_ui/mks_hardware_test.cpp index a35ae2970..a2795e933 100644 --- a/Marlin/src/lcd/extui/lib/mks_ui/mks_hardware_test.cpp +++ b/Marlin/src/lcd/extui/lib/mks_ui/mks_hardware_test.cpp @@ -590,8 +590,6 @@ void disp_char_1624(uint16_t x, uint16_t y, uint8_t c, uint16_t charColor, uint1 } void disp_string(uint16_t x, uint16_t y, const char * string, uint16_t charColor, uint16_t bkColor) { - // Select TFT SPI so it can receive data - TERN_(TFT_LVGL_UI_SPI, SPI_TFT.spi_init(SPI_FULL_SPEED)); while (*string != '\0') { disp_char_1624(x, y, *string, charColor, bkColor); string++; diff --git a/Marlin/src/lcd/extui/lib/mks_ui/tft_fsmc.cpp b/Marlin/src/lcd/extui/lib/mks_ui/tft_fsmc.cpp index a257d0348..62967b9d8 100644 --- a/Marlin/src/lcd/extui/lib/mks_ui/tft_fsmc.cpp +++ b/Marlin/src/lcd/extui/lib/mks_ui/tft_fsmc.cpp @@ -22,249 +22,39 @@ #include "../../../../inc/MarlinConfig.h" -#if HAS_TFT_LVGL_UI +#if ENABLED(TFT_LVGL_UI_FSMC) -#if defined(ARDUINO_ARCH_STM32F1) && PIN_EXISTS(FSMC_CS) // FSMC on 100/144 pins SoCs +#include HAL_PATH(../../HAL, tft/tft_fsmc.h) +TFT_IO tftio; - #include - #include - #include - #include +void LCD_IO_Init(uint8_t cs, uint8_t rs); +void LCD_IO_WriteData(uint16_t RegValue); +void LCD_IO_WriteReg(uint16_t Reg); +#ifdef LCD_USE_DMA_FSMC + void LCD_IO_WriteMultiple(uint16_t data, uint32_t count); + void LCD_IO_WriteSequence(uint16_t *data, uint16_t length); +#endif - /* Timing configuration */ - #define FSMC_ADDRESS_SETUP_TIME 15// AddressSetupTime - #define FSMC_DATA_SETUP_TIME 15// DataSetupTime +void LCD_IO_Init(uint8_t cs, uint8_t rs) { + tftio.Init(); +} - void LCD_IO_Init(uint8_t cs, uint8_t rs); - void LCD_IO_WriteData(uint16_t RegValue); - void LCD_IO_WriteReg(uint16_t Reg); - uint16_t LCD_IO_ReadData(uint16_t RegValue); - uint32_t LCD_IO_ReadData(uint16_t RegValue, uint8_t ReadSize); - uint16_t ILI9488_ReadRAM(); - #ifdef LCD_USE_DMA_FSMC - void LCD_IO_WriteMultiple(uint16_t data, uint32_t count); - void LCD_IO_WriteSequence(uint16_t *data, uint16_t length); - #endif +void LCD_IO_WriteData(uint16_t RegValue) { + tftio.WriteData(RegValue); +} - /** - * FSMC LCD IO - */ - #define __ASM __asm - #define __STATIC_INLINE static inline +void LCD_IO_WriteReg(uint16_t Reg) { + tftio.WriteReg(Reg); +} - __attribute__((always_inline)) __STATIC_INLINE void __DSB() {__ASM volatile ("dsb 0xF" ::: "memory");} - - #define FSMC_CS_NE1 PD7 - - #if ENABLED(STM32_XL_DENSITY) - #define FSMC_CS_NE2 PG9 - #define FSMC_CS_NE3 PG10 - #define FSMC_CS_NE4 PG12 - - #define FSMC_RS_A0 PF0 - #define FSMC_RS_A1 PF1 - #define FSMC_RS_A2 PF2 - #define FSMC_RS_A3 PF3 - #define FSMC_RS_A4 PF4 - #define FSMC_RS_A5 PF5 - #define FSMC_RS_A6 PF12 - #define FSMC_RS_A7 PF13 - #define FSMC_RS_A8 PF14 - #define FSMC_RS_A9 PF15 - #define FSMC_RS_A10 PG0 - #define FSMC_RS_A11 PG1 - #define FSMC_RS_A12 PG2 - #define FSMC_RS_A13 PG3 - #define FSMC_RS_A14 PG4 - #define FSMC_RS_A15 PG5 - #endif - - #define FSMC_RS_A16 PD11 - #define FSMC_RS_A17 PD12 - #define FSMC_RS_A18 PD13 - #define FSMC_RS_A19 PE3 - #define FSMC_RS_A20 PE4 - #define FSMC_RS_A21 PE5 - #define FSMC_RS_A22 PE6 - #define FSMC_RS_A23 PE2 - - #if ENABLED(STM32_XL_DENSITY) - #define FSMC_RS_A24 PG13 - #define FSMC_RS_A25 PG14 - #endif - - static uint8_t fsmcInit = 0; - - typedef struct { - __IO uint16_t REG; - __IO uint16_t RAM; - } LCD_CONTROLLER_TypeDef; - - LCD_CONTROLLER_TypeDef *LCD; - - void LCD_IO_Init(uint8_t cs, uint8_t rs) { - uint32_t controllerAddress; - struct fsmc_nor_psram_reg_map* fsmcPsramRegion; - - if (fsmcInit) return; - fsmcInit = 1; - - switch (cs) { - case FSMC_CS_NE1: controllerAddress = (uint32_t)FSMC_NOR_PSRAM_REGION1; fsmcPsramRegion = FSMC_NOR_PSRAM1_BASE; break; - #if ENABLED(STM32_XL_DENSITY) - case FSMC_CS_NE2: controllerAddress = (uint32_t)FSMC_NOR_PSRAM_REGION2; fsmcPsramRegion = FSMC_NOR_PSRAM2_BASE; break; - case FSMC_CS_NE3: controllerAddress = (uint32_t)FSMC_NOR_PSRAM_REGION3; fsmcPsramRegion = FSMC_NOR_PSRAM3_BASE; break; - case FSMC_CS_NE4: controllerAddress = (uint32_t)FSMC_NOR_PSRAM_REGION4; fsmcPsramRegion = FSMC_NOR_PSRAM4_BASE; break; - #endif - default: return; - } - - #define _ORADDR(N) controllerAddress |= (_BV32(N) - 2) - - switch (rs) { - #if ENABLED(STM32_XL_DENSITY) - case FSMC_RS_A0: _ORADDR( 1); break; - case FSMC_RS_A1: _ORADDR( 2); break; - case FSMC_RS_A2: _ORADDR( 3); break; - case FSMC_RS_A3: _ORADDR( 4); break; - case FSMC_RS_A4: _ORADDR( 5); break; - case FSMC_RS_A5: _ORADDR( 6); break; - case FSMC_RS_A6: _ORADDR( 7); break; - case FSMC_RS_A7: _ORADDR( 8); break; - case FSMC_RS_A8: _ORADDR( 9); break; - case FSMC_RS_A9: _ORADDR(10); break; - case FSMC_RS_A10: _ORADDR(11); break; - case FSMC_RS_A11: _ORADDR(12); break; - case FSMC_RS_A12: _ORADDR(13); break; - case FSMC_RS_A13: _ORADDR(14); break; - case FSMC_RS_A14: _ORADDR(15); break; - case FSMC_RS_A15: _ORADDR(16); break; - #endif - case FSMC_RS_A16: _ORADDR(17); break; - case FSMC_RS_A17: _ORADDR(18); break; - case FSMC_RS_A18: _ORADDR(19); break; - case FSMC_RS_A19: _ORADDR(20); break; - case FSMC_RS_A20: _ORADDR(21); break; - case FSMC_RS_A21: _ORADDR(22); break; - case FSMC_RS_A22: _ORADDR(23); break; - case FSMC_RS_A23: _ORADDR(24); break; - #if ENABLED(STM32_XL_DENSITY) - case FSMC_RS_A24: _ORADDR(25); break; - case FSMC_RS_A25: _ORADDR(26); break; - #endif - default: return; - } - - rcc_clk_enable(RCC_FSMC); - - gpio_set_mode(GPIOD, 14, GPIO_AF_OUTPUT_PP); // FSMC_D00 - gpio_set_mode(GPIOD, 15, GPIO_AF_OUTPUT_PP); // FSMC_D01 - gpio_set_mode(GPIOD, 0, GPIO_AF_OUTPUT_PP);// FSMC_D02 - gpio_set_mode(GPIOD, 1, GPIO_AF_OUTPUT_PP);// FSMC_D03 - gpio_set_mode(GPIOE, 7, GPIO_AF_OUTPUT_PP);// FSMC_D04 - gpio_set_mode(GPIOE, 8, GPIO_AF_OUTPUT_PP);// FSMC_D05 - gpio_set_mode(GPIOE, 9, GPIO_AF_OUTPUT_PP);// FSMC_D06 - gpio_set_mode(GPIOE, 10, GPIO_AF_OUTPUT_PP); // FSMC_D07 - gpio_set_mode(GPIOE, 11, GPIO_AF_OUTPUT_PP); // FSMC_D08 - gpio_set_mode(GPIOE, 12, GPIO_AF_OUTPUT_PP); // FSMC_D09 - gpio_set_mode(GPIOE, 13, GPIO_AF_OUTPUT_PP); // FSMC_D10 - gpio_set_mode(GPIOE, 14, GPIO_AF_OUTPUT_PP); // FSMC_D11 - gpio_set_mode(GPIOE, 15, GPIO_AF_OUTPUT_PP); // FSMC_D12 - gpio_set_mode(GPIOD, 8, GPIO_AF_OUTPUT_PP);// FSMC_D13 - gpio_set_mode(GPIOD, 9, GPIO_AF_OUTPUT_PP);// FSMC_D14 - gpio_set_mode(GPIOD, 10, GPIO_AF_OUTPUT_PP); // FSMC_D15 - - gpio_set_mode(GPIOD, 4, GPIO_AF_OUTPUT_PP);// FSMC_NOE - gpio_set_mode(GPIOD, 5, GPIO_AF_OUTPUT_PP);// FSMC_NWE - - gpio_set_mode(PIN_MAP[cs].gpio_device, PIN_MAP[cs].gpio_bit, GPIO_AF_OUTPUT_PP); //FSMC_CS_NEx - gpio_set_mode(PIN_MAP[rs].gpio_device, PIN_MAP[rs].gpio_bit, GPIO_AF_OUTPUT_PP); //FSMC_RS_Ax - - fsmcPsramRegion->BCR = FSMC_BCR_WREN | FSMC_BCR_MTYP_SRAM | FSMC_BCR_MWID_16BITS | FSMC_BCR_MBKEN; - fsmcPsramRegion->BTR = (FSMC_DATA_SETUP_TIME << 8) | FSMC_ADDRESS_SETUP_TIME; - - afio_remap(AFIO_REMAP_FSMC_NADV); - - LCD = (LCD_CONTROLLER_TypeDef*)controllerAddress; +#ifdef LCD_USE_DMA_FSMC + void LCD_IO_WriteMultiple(uint16_t color, uint32_t count) { + tftio.WriteMultiple(color, count); } - void LCD_IO_WriteData(uint16_t RegValue) { - LCD->RAM = RegValue; - __DSB(); + void LCD_IO_WriteSequence(uint16_t *data, uint16_t length) { + tftio.WriteSequence(data, length); } +#endif // LCD_USE_DMA_FSMC - void LCD_IO_WriteReg(uint16_t Reg) { - LCD->REG = Reg; - __DSB(); - } - - uint16_t LCD_IO_ReadData(uint16_t RegValue) { - LCD->REG = RegValue; - __DSB(); - - return LCD->RAM; - } - - uint16_t ILI9488_ReadRAM() { - uint16_t data; - data = LCD->RAM; - return data; - } - - uint32_t LCD_IO_ReadData(uint16_t RegValue, uint8_t ReadSize) { - volatile uint32_t data; - LCD->REG = RegValue; - __DSB(); - - data = LCD->RAM; // dummy read - data = LCD->RAM & 0x00FF; - - while (--ReadSize) { - data <<= 8; - data |= (LCD->RAM & 0x00FF); - } - return uint32_t(data); - } - - #ifdef LCD_USE_DMA_FSMC - - void LCD_IO_WriteMultiple(uint16_t color, uint32_t count) { - while (count > 0) { - dma_setup_transfer(FSMC_DMA_DEV, FSMC_DMA_CHANNEL, &color, DMA_SIZE_16BITS, &LCD->RAM, DMA_SIZE_16BITS, DMA_MEM_2_MEM); - dma_set_num_transfers(FSMC_DMA_DEV, FSMC_DMA_CHANNEL, count > 65535 ? 65535 : count); - dma_clear_isr_bits(FSMC_DMA_DEV, FSMC_DMA_CHANNEL); - dma_enable(FSMC_DMA_DEV, FSMC_DMA_CHANNEL); - - while ((dma_get_isr_bits(FSMC_DMA_DEV, FSMC_DMA_CHANNEL) & 0x0A) == 0) {} - dma_disable(FSMC_DMA_DEV, FSMC_DMA_CHANNEL); - - count = count > 65535 ? count - 65535 : 0; - } - } - - void LCD_IO_WriteSequence(uint16_t *data, uint16_t length) { - dma_setup_transfer(FSMC_DMA_DEV, FSMC_DMA_CHANNEL, data, DMA_SIZE_16BITS, &LCD->RAM, DMA_SIZE_16BITS, DMA_MEM_2_MEM | DMA_PINC_MODE); - dma_set_num_transfers(FSMC_DMA_DEV, FSMC_DMA_CHANNEL, length); - dma_clear_isr_bits(FSMC_DMA_DEV, FSMC_DMA_CHANNEL); - dma_enable(FSMC_DMA_DEV, FSMC_DMA_CHANNEL); - - while ((dma_get_isr_bits(FSMC_DMA_DEV, FSMC_DMA_CHANNEL) & 0x0A) == 0) {} - dma_disable(FSMC_DMA_DEV, FSMC_DMA_CHANNEL); - } - - void LCD_IO_WriteSequence_Async(uint16_t *data, uint16_t length) { - dma_setup_transfer(FSMC_DMA_DEV, FSMC_DMA_CHANNEL, data, DMA_SIZE_16BITS, &LCD->RAM, DMA_SIZE_16BITS, DMA_MEM_2_MEM | DMA_PINC_MODE); - dma_set_num_transfers(FSMC_DMA_DEV, FSMC_DMA_CHANNEL, length); - dma_clear_isr_bits(FSMC_DMA_DEV, FSMC_DMA_CHANNEL); - dma_enable(FSMC_DMA_DEV, FSMC_DMA_CHANNEL); - } - - void LCD_IO_WaitSequence_Async() { - while ((dma_get_isr_bits(FSMC_DMA_DEV, FSMC_DMA_CHANNEL) & 0x0A) == 0) {} - dma_disable(FSMC_DMA_DEV, FSMC_DMA_CHANNEL); - } - - #endif // LCD_USE_DMA_FSMC - -#endif // ARDUINO_ARCH_STM32F1 && FSMC_CS_PIN #endif // HAS_TFT_LVGL_UI diff --git a/Marlin/src/lcd/extui/lib/mks_ui/tft_lvgl_configuration.cpp b/Marlin/src/lcd/extui/lib/mks_ui/tft_lvgl_configuration.cpp index 81b50a101..391e12ba3 100644 --- a/Marlin/src/lcd/extui/lib/mks_ui/tft_lvgl_configuration.cpp +++ b/Marlin/src/lcd/extui/lib/mks_ui/tft_lvgl_configuration.cpp @@ -42,9 +42,8 @@ #include "../../../../inc/MarlinConfig.h" -#if HAS_TOUCH_XPT2046 - #include "../../../touch/xpt2046.h" -#endif +#include HAL_PATH(../../HAL, tft/xpt2046.h) +XPT2046 touch; #if ENABLED(POWER_LOSS_RECOVERY) #include "../../../../feature/powerloss.h" @@ -121,14 +120,14 @@ void tft_set_cursor(uint16_t x, uint16_t y) { void LCD_WriteRAM_Prepare(void) { #if 0 - if ((DeviceCode == 0x9325) || (DeviceCode == 0x9328) || (DeviceCode == 0x8989)) { - ClrCs - LCD->LCD_REG = R34; - SetCs - } - else { - LCD_WrtReg(0x002C); - } + switch (DeviceCode) { + case 0x9325: case 0x9328: case 0x8989: { + ClrCs + LCD->LCD_REG = R34; + SetCs + } break; + default: LCD_WrtReg(0x002C); + } #else LCD_IO_WriteReg(0x002C); #endif @@ -197,8 +196,8 @@ void ili9320_SetWindows(uint16_t StartX, uint16_t StartY, uint16_t width, uint16 LCD_WriteReg(0x0053, yEnd);*/ LCD_WriteReg(0x0050, StartY); // Specify the start/end positions of the window address in the horizontal direction by an address unit LCD_WriteReg(0x0051, yEnd); // Specify the start positions of the window address in the vertical direction by an address unit - LCD_WriteReg(0x0052, 320 - xEnd); - LCD_WriteReg(0x0053, 320 - StartX - 1); // Specify the end positions of the window address in the vertical direction by an address unit + LCD_WriteReg(0x0052, (LCD_FULL_PIXEL_HEIGHT) - xEnd); + LCD_WriteReg(0x0053, (LCD_FULL_PIXEL_HEIGHT) - StartX - 1); // Specify the end positions of the window address in the vertical direction by an address unit } else { @@ -268,28 +267,10 @@ void LCD_Clear(uint16_t Color) { } } -extern uint16_t ILI9488_ReadRAM(); - +#include HAL_PATH(../../HAL, tft/tft_fsmc.h) +extern TFT_IO tftio; void init_tft() { uint16_t i; - //************* Start Initial Sequence **********// - - //start lcd pins and dma - #if PIN_EXISTS(LCD_BACKLIGHT) - OUT_WRITE(LCD_BACKLIGHT_PIN, DISABLED(DELAYED_BACKLIGHT_INIT)); // Illuminate after reset or right away - #endif - - #if PIN_EXISTS(LCD_RESET) - // Perform a clean hardware reset with needed delays - OUT_WRITE(LCD_RESET_PIN, LOW); - _delay_ms(5); - WRITE(LCD_RESET_PIN, HIGH); - _delay_ms(5); - #endif - - #if PIN_EXISTS(LCD_BACKLIGHT) && ENABLED(DELAYED_BACKLIGHT_INIT) - WRITE(LCD_BACKLIGHT_PIN, HIGH); - #endif TERN_(HAS_LCD_CONTRAST, refresh_contrast()); @@ -303,12 +284,9 @@ void init_tft() { _delay_ms(5); - LCD_IO_WriteReg(0x00D3); - DeviceCode = ILI9488_ReadRAM(); //dummy read - DeviceCode = ILI9488_ReadRAM(); - DeviceCode = ILI9488_ReadRAM(); - DeviceCode <<= 8; - DeviceCode |= ILI9488_ReadRAM(); + DeviceCode = tftio.GetID() & 0xFFFF; + // Chitu and others + if (DeviceCode == 0x8066) DeviceCode = 0x9488; if (DeviceCode == 0x9488) { LCD_IO_WriteReg(0x00E0); @@ -436,7 +414,7 @@ void tft_lvgl_init() { //spi_flash_read_test(); - TERN_(HAS_TOUCH_XPT2046, touch.init()); + touch.Init(); lv_init(); @@ -492,35 +470,14 @@ void tft_lvgl_init() { void my_disp_flush(lv_disp_drv_t * disp, const lv_area_t * area, lv_color_t * color_p) { #if ENABLED(TFT_LVGL_UI_SPI) uint16_t i, width, height; - uint16_t clr_temp; - uint8_t tbuf[(LCD_FULL_PIXEL_WIDTH) * 2]; - - SPI_TFT.spi_init(SPI_FULL_SPEED); width = area->x2 - area->x1 + 1; height = area->y2 - area->y1 + 1; - for (int j = 0; j < height; j++) { - SPI_TFT.SetCursor(0, 0); - SPI_TFT.SetWindows((uint16_t)area->x1, (uint16_t)area->y1 + j, width, 1); - SPI_TFT.LCD_WriteRAM_Prepare(); - - for (i = 0; i < width * 2;) { - clr_temp = (uint16_t)(((uint16_t)color_p->ch.red << 11) - | ((uint16_t)color_p->ch.green << 5) - | ((uint16_t)color_p->ch.blue)); - - tbuf[i] = clr_temp >> 8; - tbuf[i + 1] = clr_temp; - i += 2; - color_p++; - } - SPI_TFT_CS_L; - SPI_TFT_DC_H; - SPI.dmaSend(tbuf, width * 2, true); - SPI_TFT_CS_H; + SPI_TFT.SetWindows((uint16_t)area->x1, (uint16_t)area->y1, width, height); + for (i = 0; i < height; i++) { + SPI_TFT.tftio.WriteSequence((uint16_t*)(color_p + width * i), width); } - lv_disp_flush_ready(disp); /* Indicate you are ready with the flushing*/ W25QXX.init(SPI_QUARTER_SPEED); @@ -556,174 +513,23 @@ unsigned int getTickDiff(unsigned int curTick, unsigned int lastTick) { return TICK_CYCLE * (lastTick <= curTick ? (curTick - lastTick) : (0xFFFFFFFF - lastTick + curTick)); } -#if ENABLED(TFT_LVGL_UI_SPI) +static bool get_point(int16_t *x, int16_t *y) { + bool is_touched = touch.getRawPoint(x, y); - #ifndef USE_XPT2046 - #define USE_XPT2046 1 - #define XPT2046_XY_SWAP 1 - #define XPT2046_X_INV 1 - #define XPT2046_Y_INV 0 - #endif - - #if USE_XPT2046 - #define XPT2046_HOR_RES 480 - #define XPT2046_VER_RES 320 - #define XPT2046_X_MIN 201 - #define XPT2046_Y_MIN 164 - #define XPT2046_X_MAX 3919 - #define XPT2046_Y_MAX 3776 - #define XPT2046_AVG 4 - #define XPT2046_INV 1 - #endif - -#else - - #ifndef USE_XPT2046 - #define USE_XPT2046 1 - #ifndef XPT2046_XY_SWAP - #define XPT2046_XY_SWAP 1 - #endif - #ifndef XPT2046_X_INV - #define XPT2046_X_INV 0 - #endif - #ifndef XPT2046_Y_INV - #define XPT2046_Y_INV 1 - #endif - #endif - - #if USE_XPT2046 - #ifndef XPT2046_HOR_RES - #define XPT2046_HOR_RES 480 - #endif - #ifndef XPT2046_VER_RES - #define XPT2046_VER_RES 320 - #endif - #ifndef XPT2046_X_MIN - #define XPT2046_X_MIN 201 - #endif - #ifndef XPT2046_Y_MIN - #define XPT2046_Y_MIN 164 - #endif - #ifndef XPT2046_X_MAX - #define XPT2046_X_MAX 3919 - #endif - #ifndef XPT2046_Y_MAX - #define XPT2046_Y_MAX 3776 - #endif - #ifndef XPT2046_AVG - #define XPT2046_AVG 4 - #endif - #ifndef XPT2046_INV - #define XPT2046_INV 0 - #endif - #endif - -#endif - -static void xpt2046_corr(uint16_t *x, uint16_t *y) { - #if XPT2046_XY_SWAP - int16_t swap_tmp; - swap_tmp = *x; - *x = *y; - *y = swap_tmp; - #endif - if ((*x) > XPT2046_X_MIN) (*x) -= XPT2046_X_MIN; else (*x) = 0; - if ((*y) > XPT2046_Y_MIN) (*y) -= XPT2046_Y_MIN; else (*y) = 0; - (*x) = uint32_t(uint32_t(*x) * XPT2046_HOR_RES) / (XPT2046_X_MAX - XPT2046_X_MIN); - (*y) = uint32_t(uint32_t(*y) * XPT2046_VER_RES) / (XPT2046_Y_MAX - XPT2046_Y_MIN); - #if XPT2046_X_INV - (*x) = XPT2046_HOR_RES - (*x); - #endif - #if XPT2046_Y_INV - (*y) = XPT2046_VER_RES - (*y); - #endif -} - -#define times 4 -#define CHX 0x90 -#define CHY 0xD0 - -int SPI2_ReadWrite2Bytes(void) { - #define SPI_READ_WRITE_BYTE(B) TERN(TFT_LVGL_UI_SPI, SPI_TFT.spi_read_write_byte, W25QXX.spi_flash_read_write_byte)(B) - const uint16_t t1 = SPI_READ_WRITE_BYTE(0xFF), - t2 = SPI_READ_WRITE_BYTE(0xFF); - return (((t1 << 8) | t2) >> 3) & 0x0FFF; -} - -uint16_t x_addata[times], y_addata[times]; -void XPT2046_Rd_Addata(uint16_t *X_Addata, uint16_t *Y_Addata) { - uint16_t i, j, k; - - TERN(TFT_LVGL_UI_SPI, SPI_TFT.spi_init, W25QXX.init)(SPI_SPEED_6); - - for (i = 0; i < times; i++) { - #if ENABLED(TFT_LVGL_UI_SPI) - OUT_WRITE(TOUCH_CS_PIN, LOW); - SPI_TFT.spi_read_write_byte(CHX); - y_addata[i] = SPI2_ReadWrite2Bytes(); - WRITE(TOUCH_CS_PIN, HIGH); - - OUT_WRITE(TOUCH_CS_PIN, LOW); - SPI_TFT.spi_read_write_byte(CHY); - x_addata[i] = SPI2_ReadWrite2Bytes(); - WRITE(TOUCH_CS_PIN, HIGH); - #else // #if HAS_TOUCH_XPT2046 - OUT_WRITE(TOUCH_CS_PIN, LOW); - W25QXX.spi_flash_read_write_byte(CHX); - y_addata[i] = SPI2_ReadWrite2Bytes(); - WRITE(TOUCH_CS_PIN, HIGH); - - OUT_WRITE(TOUCH_CS_PIN, LOW); - W25QXX.spi_flash_read_write_byte(CHY); - x_addata[i] = SPI2_ReadWrite2Bytes(); - WRITE(TOUCH_CS_PIN, HIGH); - #endif - - } - TERN(TFT_LVGL_UI_SPI,,W25QXX.init(SPI_QUARTER_SPEED)); - - for (i = 0; i < times; i++) - for (j = i + 1; j < times; j++) - if (x_addata[j] > x_addata[i]) { - k = x_addata[j]; - x_addata[j] = x_addata[i]; - x_addata[i] = k; - } - if (x_addata[times / 2 - 1] - x_addata[times / 2] > 50) { - *X_Addata = *Y_Addata = 0; - return; + if (is_touched) { + *x = int16_t((int32_t(*x) * XPT2046_X_CALIBRATION) >> 16) + XPT2046_X_OFFSET; + *y = int16_t((int32_t(*y) * XPT2046_Y_CALIBRATION) >> 16) + XPT2046_Y_OFFSET; } - *X_Addata = (x_addata[times / 2 - 1] + x_addata[times / 2]) / 2; + #if ENABLED(GRAPHICAL_TFT_ROTATE_180) + x = (LCD_FULL_PIXEL_WIDTH) - x; + y = (LCD_FULL_PIXEL_HEIGHT) - y; + #endif - for (i = 0; i < times; i++) - for (j = i + 1; j < times; j++) - if (y_addata[j] > y_addata[i]) { - k = y_addata[j]; - y_addata[j] = y_addata[i]; - y_addata[i] = k; - } - - if (y_addata[times / 2 - 1] - y_addata[times / 2] > 50) { - *X_Addata = *Y_Addata = 0; - return; - } - - *Y_Addata = (y_addata[times / 2 - 1] + y_addata[times / 2]) / 2; + return is_touched; } -#define ADC_VALID_OFFSET 10 - -uint8_t TOUCH_PressValid(uint16_t _usX, uint16_t _usY) { - if ( (_usX <= ADC_VALID_OFFSET) - || (_usY <= ADC_VALID_OFFSET) - || (_usX >= 4095 - ADC_VALID_OFFSET) - || (_usY >= 4095 - ADC_VALID_OFFSET) - ) return 0; - return 1; -} - -static lv_coord_t last_x = 0, last_y = 0; +static int16_t last_x = 0, last_y = 0; bool my_touchpad_read(lv_indev_drv_t * indev_driver, lv_indev_data_t * data) { uint32_t tmpTime, diffTime = 0; @@ -735,34 +541,24 @@ bool my_touchpad_read(lv_indev_drv_t * indev_driver, lv_indev_data_t * data) { //touchpad_get_xy(&last_x, &last_y); /*Save the pressed coordinates and the state*/ if (diffTime > 10) { - //use marlin touch code if enabled - #if HAS_TOUCH_XPT2046 - touch.getTouchPoint(reinterpret_cast(last_x), reinterpret_cast(last_y)); - #else - XPT2046_Rd_Addata((uint16_t *)&last_x, (uint16_t *)&last_y); - #endif - if (TOUCH_PressValid(last_x, last_y)) { + if (get_point(&last_x, &last_y)) { data->state = LV_INDEV_STATE_PR; - /* Set the coordinates (if released use the last pressed coordinates) */ + // Set the coordinates (if released use the last-pressed coordinates) - // SERIAL_ECHOLNPAIR("antes X: ", last_x, ", y: ", last_y); - xpt2046_corr((uint16_t *)&last_x, (uint16_t *)&last_y); - // SERIAL_ECHOLNPAIR("X: ", last_x, ", y: ", last_y); data->point.x = last_x; data->point.y = last_y; - last_x = 0; - last_y = 0; + last_x = last_y = 0; } - else { + else data->state = LV_INDEV_STATE_REL; - } + touch_time1 = tmpTime; } - return false; /*Return `false` because we are not buffering and no more data to read*/ + return false; // Return `false` since no data is buffering or left to read } #endif // HAS_TFT_LVGL_UI diff --git a/Marlin/src/pins/stm32f1/pins_CHITU3D_V5.h b/Marlin/src/pins/stm32f1/pins_CHITU3D_V5.h index 6be67fc1a..e4f001441 100644 --- a/Marlin/src/pins/stm32f1/pins_CHITU3D_V5.h +++ b/Marlin/src/pins/stm32f1/pins_CHITU3D_V5.h @@ -164,7 +164,6 @@ #define HAS_LANG_SELECT_SCREEN 1 #define HAS_BAK_VIEW_IN_FLASH 0 #define HAS_LOGO_IN_FLASH 0 - #define HAS_TOUCH_XPT2046 1 #define TOUCH_CS_PIN PB7 // SPI1_NSS #define TOUCH_SCK_PIN PA5 // SPI1_SCK @@ -183,6 +182,8 @@ #define LCD_RESET_PIN PF11 #define LCD_BACKLIGHT_PIN PD13 + #define TFT_RESET_PIN PF11 + #define TFT_BACKLIGHT_PIN PD13 #define LCD_USE_DMA_FSMC // Use DMA transfers to send data to the TFT #define FSMC_CS_PIN PD7 @@ -197,24 +198,10 @@ #define LCD_PIXEL_OFFSET_X 48 #define LCD_PIXEL_OFFSET_Y 48 - #define XPT2046_X_CALIBRATION -12316 - #define XPT2046_Y_CALIBRATION 8981 - #define XPT2046_X_OFFSET 340 - #define XPT2046_Y_OFFSET -20 - - #define USE_XPT2046 1 - #define XPT2046_XY_SWAP 0 - #define XPT2046_X_INV 1 - #define XPT2046_Y_INV 0 - - #define XPT2046_HOR_RES 480 - #define XPT2046_VER_RES 320 - #define XPT2046_X_MIN 140 - #define XPT2046_Y_MIN 200 - #define XPT2046_X_MAX 1900 - #define XPT2046_Y_MAX 1900 - #define XPT2046_AVG 4 - #define XPT2046_INV 0 + #define XPT2046_X_CALIBRATION -17181 + #define XPT2046_Y_CALIBRATION 11434 + #define XPT2046_X_OFFSET 501 + #define XPT2046_Y_OFFSET -9 #elif ENABLED(TFT_480x320) #define TFT_RESET_PIN PF11 diff --git a/Marlin/src/pins/stm32f1/pins_CHITU3D_V6.h b/Marlin/src/pins/stm32f1/pins_CHITU3D_V6.h index 4633de40f..3d36de824 100644 --- a/Marlin/src/pins/stm32f1/pins_CHITU3D_V6.h +++ b/Marlin/src/pins/stm32f1/pins_CHITU3D_V6.h @@ -198,7 +198,6 @@ #define HAS_LANG_SELECT_SCREEN 0 #define HAS_BAK_VIEW_IN_FLASH 0 #define HAS_LOGO_IN_FLASH 0 - #define HAS_TOUCH_XPT2046 1 #define TOUCH_CS_PIN PB7 // SPI1_NSS #define TOUCH_SCK_PIN PA5 // SPI1_SCK @@ -217,6 +216,8 @@ #define LCD_RESET_PIN PF11 #define LCD_BACKLIGHT_PIN PD13 + #define TFT_RESET_PIN PF11 + #define TFT_BACKLIGHT_PIN PD13 #define LCD_USE_DMA_FSMC // Use DMA transfers to send data to the TFT #define FSMC_CS_PIN PD7 @@ -231,24 +232,10 @@ #define LCD_PIXEL_OFFSET_X 48 #define LCD_PIXEL_OFFSET_Y 48 - #define XPT2046_X_CALIBRATION -12316 - #define XPT2046_Y_CALIBRATION 8981 - #define XPT2046_X_OFFSET 340 - #define XPT2046_Y_OFFSET -20 - - #define USE_XPT2046 1 - #define XPT2046_XY_SWAP 0 - #define XPT2046_X_INV 1 - #define XPT2046_Y_INV 0 - - #define XPT2046_HOR_RES 480 - #define XPT2046_VER_RES 320 - #define XPT2046_X_MIN 140 - #define XPT2046_Y_MIN 200 - #define XPT2046_X_MAX 1900 - #define XPT2046_Y_MAX 1900 - #define XPT2046_AVG 4 - #define XPT2046_INV 0 + #define XPT2046_X_CALIBRATION -17181 + #define XPT2046_Y_CALIBRATION 11434 + #define XPT2046_X_OFFSET 501 + #define XPT2046_Y_OFFSET -9 #endif // SPI1(PA7)=LCD & SPI3(PB5)=STUFF, are not available diff --git a/Marlin/src/pins/stm32f1/pins_MKS_ROBIN_NANO.h b/Marlin/src/pins/stm32f1/pins_MKS_ROBIN_NANO.h index 160406435..948663f6f 100644 --- a/Marlin/src/pins/stm32f1/pins_MKS_ROBIN_NANO.h +++ b/Marlin/src/pins/stm32f1/pins_MKS_ROBIN_NANO.h @@ -177,6 +177,17 @@ #define LCD_BACKLIGHT_PIN PD13 + #define XPT2046_X_CALIBRATION 17880 + #define XPT2046_Y_CALIBRATION -12234 + #define XPT2046_X_OFFSET -45 + #define XPT2046_Y_OFFSET 349 + + #define LCD_USE_DMA_FSMC // Use DMA transfers to send data to the TFT + #define FSMC_CS_PIN PD7 + #define FSMC_RS_PIN PD11 + #define FSMC_DMA_DEV DMA2 + #define FSMC_DMA_CHANNEL DMA_CH5 + #elif ENABLED(FSMC_GRAPHICAL_TFT) #define DOGLCD_MOSI -1 // prevent redefine Conditionals_post.h diff --git a/Marlin/src/pins/stm32f1/pins_MKS_ROBIN_NANO_V2.h b/Marlin/src/pins/stm32f1/pins_MKS_ROBIN_NANO_V2.h index be363e453..feac729c7 100644 --- a/Marlin/src/pins/stm32f1/pins_MKS_ROBIN_NANO_V2.h +++ b/Marlin/src/pins/stm32f1/pins_MKS_ROBIN_NANO_V2.h @@ -261,17 +261,30 @@ #define BTN_EN2 PE11 #define BTN_ENC PE13 -#elif ENABLED(TFT_LITTLE_VGL_UI) + #define TFT_CS_PIN PD11 + #define TFT_SCK_PIN PA5 + #define TFT_MISO_PIN PA6 + #define TFT_MOSI_PIN PA7 + #define TFT_DC_PIN PD10 + #define TFT_RST_PIN PC6 + #define TFT_A0_PIN TFT_DC_PIN - #define FSMC_CS_PIN PD7 // NE4 - #define FSMC_RS_PIN PD11 // A0 + #define TFT_RESET_PIN PC6 + #define TFT_BACKLIGHT_PIN PD13 - #define TOUCH_CS_PIN PA7 // SPI2_NSS - #define TOUCH_SCK_PIN PB13 // SPI2_SCK - #define TOUCH_MISO_PIN PB14 // SPI2_MISO - #define TOUCH_MOSI_PIN PB15 // SPI2_MOSI + #define XPT2046_X_CALIBRATION -17253 + #define XPT2046_Y_CALIBRATION 11579 + #define XPT2046_X_OFFSET 514 + #define XPT2046_Y_OFFSET -24 + #define TOUCH_BUTTONS_HW_SPI + #define TOUCH_BUTTONS_HW_SPI_DEVICE 1 - #define LCD_BACKLIGHT_PIN PD13 + #ifndef LCD_FULL_PIXEL_WIDTH + #define LCD_FULL_PIXEL_WIDTH 480 + #endif + #ifndef LCD_FULL_PIXEL_HEIGHT + #define LCD_FULL_PIXEL_HEIGHT 320 + #endif #endif From f01cb240d7c3da66832a0ef1366784a73f0f4425 Mon Sep 17 00:00:00 2001 From: thinkyhead Date: Fri, 14 Aug 2020 00:10:34 +0000 Subject: [PATCH 097/194] [cron] Bump distribution date (2020-08-14) --- Marlin/src/inc/Version.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Marlin/src/inc/Version.h b/Marlin/src/inc/Version.h index 3babd11a3..b0b9bfd96 100644 --- a/Marlin/src/inc/Version.h +++ b/Marlin/src/inc/Version.h @@ -42,7 +42,7 @@ * version was tagged. */ #ifndef STRING_DISTRIBUTION_DATE - #define STRING_DISTRIBUTION_DATE "2020-08-13" + #define STRING_DISTRIBUTION_DATE "2020-08-14" #endif /** From 567d77f1cb62dd444ee2c13350b60bc2032fc083 Mon Sep 17 00:00:00 2001 From: Tanguy Pruvot Date: Fri, 14 Aug 2020 05:32:01 +0200 Subject: [PATCH 098/194] TFT: Restore ILI9341 colors and reversed logic (#19010) Followup to #18877, #18901, #18817 --- .../lcd/dogm/u8g_dev_tft_320x240_upscale_from_128x64.cpp | 5 ++++- Marlin/src/pins/stm32f1/pins_LONGER3D_LK.h | 6 ++++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/Marlin/src/lcd/dogm/u8g_dev_tft_320x240_upscale_from_128x64.cpp b/Marlin/src/lcd/dogm/u8g_dev_tft_320x240_upscale_from_128x64.cpp index 205cafbcc..e42faf025 100644 --- a/Marlin/src/lcd/dogm/u8g_dev_tft_320x240_upscale_from_128x64.cpp +++ b/Marlin/src/lcd/dogm/u8g_dev_tft_320x240_upscale_from_128x64.cpp @@ -366,7 +366,7 @@ static const uint16_t ili9328_init[] = { static const uint16_t ili9341_init[] = { ESC_REG(0x0010), ESC_DELAY(10), ESC_REG(0x0001), ESC_DELAY(200), - ESC_REG(0x0036), TERN(GRAPHICAL_TFT_ROTATE_180, 0x00E8, 0x0028), + ESC_REG(0x0036), TERN(GRAPHICAL_TFT_ROTATE_180, 0x0028, 0x00E8), ESC_REG(0x003A), 0x0055, ESC_REG(0x002A), 0x0000, 0x0000, 0x0001, 0x003F, ESC_REG(0x002B), 0x0000, 0x0000, 0x0000, 0x00EF, @@ -658,6 +658,9 @@ uint8_t u8g_dev_tft_320x240_upscale_from_128x64_fn(u8g_t *u8g, u8g_dev_t *dev, u setWindow = setWindow_ili9328; break; case 0x9341: // ILI9341 + WRITE_ESC_SEQUENCE(ili9341_init); + setWindow = setWindow_st7789v; + break; case 0x8066: // Anycubic / TronXY TFTs (480x320) WRITE_ESC_SEQUENCE(ili9488_init); setWindow = setWindow_st7789v; diff --git a/Marlin/src/pins/stm32f1/pins_LONGER3D_LK.h b/Marlin/src/pins/stm32f1/pins_LONGER3D_LK.h index 2f5dbd010..490fb617d 100644 --- a/Marlin/src/pins/stm32f1/pins_LONGER3D_LK.h +++ b/Marlin/src/pins/stm32f1/pins_LONGER3D_LK.h @@ -130,6 +130,12 @@ #define DOGLCD_MOSI -1 // Prevent auto-define by Conditionals_post.h #define DOGLCD_SCK -1 +#define FSMC_UPSCALE 2 +#define LCD_FULL_PIXEL_WIDTH 320 +#define LCD_FULL_PIXEL_HEIGHT 240 +#define LCD_PIXEL_OFFSET_X 32 +#define LCD_PIXEL_OFFSET_Y 32 + /** * Note: Alfawise U20/U30 boards DON'T use SPI2, as the hardware designer * mixed up MOSI and MISO pins. SPI is managed in SW, and needs pins From 3ddb720722133386c6e22f1d93554eb46f8d7abc Mon Sep 17 00:00:00 2001 From: swissnorp <67485708+swissnorp@users.noreply.github.com> Date: Fri, 14 Aug 2020 05:37:57 +0200 Subject: [PATCH 099/194] Fix 'sync_plan_position' call (#19016) --- Marlin/src/module/stepper/indirection.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Marlin/src/module/stepper/indirection.h b/Marlin/src/module/stepper/indirection.h index 1fd1a72e7..e9705cd3c 100644 --- a/Marlin/src/module/stepper/indirection.h +++ b/Marlin/src/module/stepper/indirection.h @@ -850,7 +850,7 @@ void reset_stepper_drivers(); // Called by settings.load / settings.reset #define ENABLE_AXIS_Z() do{ ENABLE_STEPPER_Z(); ENABLE_STEPPER_Z2(); ENABLE_STEPPER_Z3(); ENABLE_STEPPER_Z4(); }while(0) #ifdef Z_AFTER_DEACTIVATE - #define Z_RESET() do{ current_position.z = Z_AFTER_DEACTIVATE; planner.sync_plan_position(); }while(0) + #define Z_RESET() do{ current_position.z = Z_AFTER_DEACTIVATE; sync_plan_position(); }while(0) #else #define Z_RESET() #endif From 506deedfdd2331947e6e5e4e996d611f9b964acf Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Thu, 13 Aug 2020 00:47:09 -0500 Subject: [PATCH 100/194] config-labels.py needs py3 --- buildroot/share/scripts/config-labels.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/buildroot/share/scripts/config-labels.py b/buildroot/share/scripts/config-labels.py index 8effb54ee..267aa2d27 100755 --- a/buildroot/share/scripts/config-labels.py +++ b/buildroot/share/scripts/config-labels.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 # # for python3.5 or higher #----------------------------------- From 16cb4303a4d9c7a86df9a843cd1ff71f41da88be Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Thu, 13 Aug 2020 21:17:48 -0500 Subject: [PATCH 101/194] Fix touch test --- Marlin/src/lcd/touch/xpt2046.cpp | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/Marlin/src/lcd/touch/xpt2046.cpp b/Marlin/src/lcd/touch/xpt2046.cpp index 1fed5b78f..4407d945d 100644 --- a/Marlin/src/lcd/touch/xpt2046.cpp +++ b/Marlin/src/lcd/touch/xpt2046.cpp @@ -133,12 +133,14 @@ uint8_t XPT2046::read_buttons() { // Touch within the button area simulates an encoder button if (y > BUTTON_AREA_TOP && y < BUTTON_AREA_BOT) return WITHIN(x, 14, 77) ? EN_D - : WITHIN(x, 90, 153) ? EN_A - : WITHIN(x, 166, 229) ? EN_B - : WITHIN(x, 242, 305) ? EN_C - : 0; + : WITHIN(x, 90, 153) ? EN_A + : WITHIN(x, 166, 229) ? EN_B + : WITHIN(x, 242, 305) ? EN_C + : 0; - if (x > TOUCH_SENSOR_WIDTH || !WITHIN(y, SCREEN_START_TOP, SCREEN_START_TOP + SCREEN_HEIGHT)) return 0; + if ( !WITHIN(x, SCREEN_START_LEFT, SCREEN_START_LEFT + SCREEN_WIDTH) + || !WITHIN(y, SCREEN_START_TOP, SCREEN_START_TOP + SCREEN_HEIGHT) + ) return 0; // Column and row above BUTTON_AREA_TOP int8_t col = (x - (SCREEN_START_LEFT)) * (LCD_WIDTH) / (TOUCHABLE_X_WIDTH), @@ -161,6 +163,7 @@ bool XPT2046::isTouched() { } #if ENABLED(TOUCH_BUTTONS_HW_SPI) + #include static void touch_spi_init(uint8_t spiRate) { From aaba9b7880886d10f15d8aeb8eb6104193d1da9b Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Thu, 13 Aug 2020 21:30:12 -0500 Subject: [PATCH 102/194] Clean up M80/M81, DWIN --- Marlin/src/gcode/control/M80_M81.cpp | 14 +++++--------- Marlin/src/lcd/dwin/dwin.cpp | 8 +++++--- Marlin/src/lcd/fontutils.h | 2 +- 3 files changed, 11 insertions(+), 13 deletions(-) diff --git a/Marlin/src/gcode/control/M80_M81.cpp b/Marlin/src/gcode/control/M80_M81.cpp index 0dede7ea6..3498bfbc3 100644 --- a/Marlin/src/gcode/control/M80_M81.cpp +++ b/Marlin/src/gcode/control/M80_M81.cpp @@ -22,15 +22,11 @@ #include "../gcode.h" #include "../../module/temperature.h" -#include "../../module/stepper.h" -#include "../../module/printcounter.h" // for print_job_timer +#include "../../module/printcounter.h" // for print_job_timer +#include "../../lcd/ultralcd.h" // for LCD_MESSAGEPGM_P #include "../../inc/MarlinConfig.h" -#if HAS_LCD_MENU - #include "../../lcd/ultralcd.h" -#endif - #if HAS_SUICIDE #include "../../MarlinCore.h" #endif @@ -39,6 +35,8 @@ #if ENABLED(AUTO_POWER_CONTROL) #include "../../feature/power.h" + #else + void restore_stepper_drivers(); #endif // Could be moved to a feature, but this is all the data @@ -108,7 +106,5 @@ void GcodeSuite::M81() { PSU_OFF(); #endif - #if HAS_LCD_MENU - LCD_MESSAGEPGM_P(PSTR(MACHINE_NAME " " STR_OFF ".")); - #endif + LCD_MESSAGEPGM_P(PSTR(MACHINE_NAME " " STR_OFF ".")); } diff --git a/Marlin/src/lcd/dwin/dwin.cpp b/Marlin/src/lcd/dwin/dwin.cpp index 1aa2656dc..8cd7af157 100644 --- a/Marlin/src/lcd/dwin/dwin.cpp +++ b/Marlin/src/lcd/dwin/dwin.cpp @@ -935,7 +935,8 @@ void Goto_PrintProcess(void) { // Copy into filebuf string before entry char * const name = card.longest_filename(); - DWIN_Draw_String(false, false, font8x16, White, Background_black, (DWIN_WIDTH - strlen(name) * MENU_CHR_W) / 2, 60, name); + const int8_t npos = _MAX(0, DWIN_WIDTH - strlen(name) * MENU_CHR_W) / 2; + DWIN_Draw_String(false, false, font8x16, White, Background_black, npos, 60, name); DWIN_ICON_Show(ICON, ICON_PrintTime, 17, 193); DWIN_ICON_Show(ICON, ICON_RemainTime, 150, 191); @@ -1523,7 +1524,7 @@ inline void make_name_without_ext(char *dst, char *src, int maxlen=MENU_CHAR_LIM if (!card.flag.filenameIsDir) while (pos && src[pos] != '.') pos--; // find last '.' (stop at 0) - int len = pos; // nul or '.' + size_t len = pos; // nul or '.' if (len > maxlen) { // Keep the name short pos = len = maxlen; // move nul down dst[--pos] = '.'; // insert dots @@ -3436,7 +3437,8 @@ void EachMomentUpdate(void) { Popup_Window_Resume(); draw_first_option(false); char * const name = card.longest_filename(); - DWIN_Draw_String(false, true, font8x16, Font_window, Background_window, (DWIN_WIDTH - strlen(name) * MENU_CHR_W) / 2, 252, name); + const int8_t npos = _MAX(0, DWIN_WIDTH - strlen(name) * (MENU_CHR_W)) / 2; + DWIN_Draw_String(false, true, font8x16, Font_window, Background_window, npos, 252, name); DWIN_UpdateLCD(); break; } diff --git a/Marlin/src/lcd/fontutils.h b/Marlin/src/lcd/fontutils.h index 8839e36a2..74c4a87fb 100644 --- a/Marlin/src/lcd/fontutils.h +++ b/Marlin/src/lcd/fontutils.h @@ -38,6 +38,6 @@ int pf_bsearch_r(void *userdata, size_t num_data, pf_bsearch_cb_comp_t cb_comp, /* Get the character, decoding multibyte UTF8 characters and returning a pointer to the start of the next UTF8 character */ uint8_t* get_utf8_value_cb(uint8_t *pstart, read_byte_cb_t cb_read_byte, wchar_t *pval); -/* Returns lenght of string in CHARACTERS, NOT BYTES */ +/* Returns length of string in CHARACTERS, NOT BYTES */ uint8_t utf8_strlen(const char *pstart); uint8_t utf8_strlen_P(PGM_P pstart); From 56b35fc1039843bd6884fea872e424018335c0cb Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Fri, 14 Aug 2020 00:16:12 -0500 Subject: [PATCH 103/194] Do runout.reset after EEPROM read --- Marlin/src/module/settings.cpp | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/Marlin/src/module/settings.cpp b/Marlin/src/module/settings.cpp index f1ab0fca6..c84bbb44a 100644 --- a/Marlin/src/module/settings.cpp +++ b/Marlin/src/module/settings.cpp @@ -626,7 +626,12 @@ void MarlinSettings::postprocess() { #endif EEPROM_WRITE(home_offset); #endif + } + // + // Hotend Offsets, if any + // + { #if HAS_HOTEND_OFFSET // Skip hotend 0 which must be 0 LOOP_S_L_N(e, 1, HOTENDS) @@ -1521,6 +1526,8 @@ void MarlinSettings::postprocess() { _FIELD_TEST(runout_sensor_enabled); EEPROM_READ(runout_sensor_enabled); + TERN_(HAS_FILAMENT_SENSOR, if (runout.enabled) runout.reset()); + float runout_distance_mm; EEPROM_READ(runout_distance_mm); #if HAS_FILAMENT_RUNOUT_DISTANCE From b11c3ddbedf9c84352b58f6620a9d0b801f66004 Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Fri, 14 Aug 2020 00:32:59 -0500 Subject: [PATCH 104/194] M80 followup --- Marlin/src/gcode/control/M80_M81.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Marlin/src/gcode/control/M80_M81.cpp b/Marlin/src/gcode/control/M80_M81.cpp index 3498bfbc3..6302bb5c6 100644 --- a/Marlin/src/gcode/control/M80_M81.cpp +++ b/Marlin/src/gcode/control/M80_M81.cpp @@ -21,8 +21,10 @@ */ #include "../gcode.h" + #include "../../module/temperature.h" -#include "../../module/printcounter.h" // for print_job_timer +#include "../../module/planner.h" // for planner.finish_and_disable +#include "../../module/printcounter.h" // for print_job_timer.stop #include "../../lcd/ultralcd.h" // for LCD_MESSAGEPGM_P #include "../../inc/MarlinConfig.h" From 1b28a28ced22b5b3c7eda639ba576826f28dce3d Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Fri, 14 Aug 2020 06:26:18 -0500 Subject: [PATCH 105/194] Unhide /src folders in Sublime --- buildroot/share/sublime/MarlinFirmware.sublime-project | 1 - 1 file changed, 1 deletion(-) diff --git a/buildroot/share/sublime/MarlinFirmware.sublime-project b/buildroot/share/sublime/MarlinFirmware.sublime-project index e437369ec..9b5234f7a 100644 --- a/buildroot/share/sublime/MarlinFirmware.sublime-project +++ b/buildroot/share/sublime/MarlinFirmware.sublime-project @@ -8,7 +8,6 @@ "MarlinFirmware/lib", "Marlin/lib", "datatmp", - "Marlin/*/src", ".vscode" ], "binary_file_patterns": From 5038cddfd54cf4b8484d10e7378fb2acd2b5f2ad Mon Sep 17 00:00:00 2001 From: ellensp Date: Sat, 15 Aug 2020 01:25:45 +1200 Subject: [PATCH 106/194] Add option to arrange Neopixel sets in series (#18992) --- Marlin/Configuration.h | 1 + Marlin/src/feature/leds/neopixel.cpp | 2 +- Marlin/src/feature/leds/neopixel.h | 27 ++++++++++++++++++++------- 3 files changed, 22 insertions(+), 8 deletions(-) diff --git a/Marlin/Configuration.h b/Marlin/Configuration.h index 3b6155f96..a4b6c51ae 100644 --- a/Marlin/Configuration.h +++ b/Marlin/Configuration.h @@ -2354,6 +2354,7 @@ #define NEOPIXEL_PIN 4 // LED driving pin //#define NEOPIXEL2_TYPE NEOPIXEL_TYPE //#define NEOPIXEL2_PIN 5 + #define NEOPIXEL2_INSERIES false // The default behaviour is 'false' with neopixel2 in parallel #define NEOPIXEL_PIXELS 30 // Number of LEDs in the strip, larger of 2 strips if 2 neopixel strips are used #define NEOPIXEL_IS_SEQUENTIAL // Sequential display for temperature change - LED by LED. Disable to change all LEDs at once. #define NEOPIXEL_BRIGHTNESS 127 // Initial brightness (0-255) diff --git a/Marlin/src/feature/leds/neopixel.cpp b/Marlin/src/feature/leds/neopixel.cpp index 5d80cfe5d..520d4d63b 100644 --- a/Marlin/src/feature/leds/neopixel.cpp +++ b/Marlin/src/feature/leds/neopixel.cpp @@ -38,7 +38,7 @@ Marlin_NeoPixel neo; int8_t Marlin_NeoPixel::neoindex; Adafruit_NeoPixel Marlin_NeoPixel::adaneo1(NEOPIXEL_PIXELS, NEOPIXEL_PIN, NEOPIXEL_TYPE + NEO_KHZ800) - #if MULTIPLE_NEOPIXEL_TYPES + #if EITHER(MULTIPLE_NEOPIXEL_TYPES, NEOPIXEL2_INSERIES) , Marlin_NeoPixel::adaneo2(NEOPIXEL_PIXELS, NEOPIXEL2_PIN, NEOPIXEL2_TYPE + NEO_KHZ800) #endif ; diff --git a/Marlin/src/feature/leds/neopixel.h b/Marlin/src/feature/leds/neopixel.h index 17057498d..0155785e9 100644 --- a/Marlin/src/feature/leds/neopixel.h +++ b/Marlin/src/feature/leds/neopixel.h @@ -61,7 +61,7 @@ class Marlin_NeoPixel { private: static Adafruit_NeoPixel adaneo1 - #if MULTIPLE_NEOPIXEL_TYPES + #if EITHER(MULTIPLE_NEOPIXEL_TYPES, NEOPIXEL2_INSERIES) , adaneo2 #endif ; @@ -82,23 +82,36 @@ public: static inline void begin() { adaneo1.begin(); - TERN_(MULTIPLE_NEOPIXEL_TYPES, adaneo2.begin()); + #if ENABLED(NEOPIXEL2_INSERIES) + adaneo2.begin(); + #else + TERN_(MULTIPLE_NEOPIXEL_TYPES, adaneo2.begin()); + #endif } static inline void set_pixel_color(const uint16_t n, const uint32_t c) { - adaneo1.setPixelColor(n, c); - TERN_(MULTIPLE_NEOPIXEL_TYPES, adaneo2.setPixelColor(n, c)); + #if ENABLED(NEOPIXEL2_INSERIES) + if (n >= NEOPIXEL_PIXELS) adaneo2.setPixelColor(n - (NEOPIXEL_PIXELS), c); + else adaneo1.setPixelColor(n, c); + #else + adaneo1.setPixelColor(n, c); + TERN_(MULTIPLE_NEOPIXEL_TYPES, adaneo2.setPixelColor(n, c)); + #endif } static inline void set_brightness(const uint8_t b) { adaneo1.setBrightness(b); - TERN_(MULTIPLE_NEOPIXEL_TYPES, adaneo2.setBrightness(b)); + #if ENABLED(NEOPIXEL2_INSERIES) + adaneo2.setBrightness(b); + #else + TERN_(MULTIPLE_NEOPIXEL_TYPES, adaneo2.setBrightness(b)); + #endif } static inline void show() { adaneo1.show(); #if PIN_EXISTS(NEOPIXEL2) - #if MULTIPLE_NEOPIXEL_TYPES + #if EITHER(MULTIPLE_NEOPIXEL_TYPES, NEOPIXEL2_INSERIES) adaneo2.show(); #else adaneo1.setPin(NEOPIXEL2_PIN); @@ -113,7 +126,7 @@ public: #endif // Accessors - static inline uint16_t pixels() { return adaneo1.numPixels(); } + static inline uint16_t pixels() { TERN(NEOPIXEL2_INSERIES, return adaneo1.numPixels() * 2, return adaneo1.numPixels()); } static inline uint8_t brightness() { return adaneo1.getBrightness(); } static inline uint32_t Color(uint8_t r, uint8_t g, uint8_t b, uint8_t w) { return adaneo1.Color(r, g, b, w); From e69bbc3531f4545fb55a5d2699aa2bf65621061b Mon Sep 17 00:00:00 2001 From: Tommy Hartmann Date: Fri, 14 Aug 2020 15:35:53 +0200 Subject: [PATCH 107/194] ENDER2_STOCKDISPLAY for BTT SKR 1.4 (and Turbo) (#19002) --- Marlin/src/pins/lpc1768/pins_BTT_SKR_V1_4.h | 24 +++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/Marlin/src/pins/lpc1768/pins_BTT_SKR_V1_4.h b/Marlin/src/pins/lpc1768/pins_BTT_SKR_V1_4.h index f467ba58c..83543703e 100644 --- a/Marlin/src/pins/lpc1768/pins_BTT_SKR_V1_4.h +++ b/Marlin/src/pins/lpc1768/pins_BTT_SKR_V1_4.h @@ -250,6 +250,30 @@ #define LCD_PINS_ENABLE P1_23 #define LCD_PINS_D4 P1_21 + #elif ENABLED(ENDER2_STOCKDISPLAY) + + /** Creality Ender-2 display pinout + * _____ + * 5V | 1 2 | GND + * (MOSI) 1.23 | 3 4 | 1.22 (LCD_RS) + * (LCD_A0) 1.21 | 5 6 | 1.20 (BTN_EN2) + * RESET 1.19 | 7 8 | 1.18 (BTN_EN1) + * (BTN_ENC) 0.28 | 9 10| 1.30 (SCK) + * ----- + * EXP1 + */ + + #define BTN_EN1 P1_18 + #define BTN_EN2 P1_20 + #define BTN_ENC P0_28 + + #define DOGLCD_CS P1_22 + #define DOGLCD_A0 P1_21 + #define DOGLCD_SCK P1_30 + #define DOGLCD_MOSI P1_23 + #define FORCE_SOFT_SPI + #define LCD_BACKLIGHT_PIN -1 + #else #define BTN_ENC P0_28 // (58) open-drain From 1b097d0467173ed99eb4ee403481522977303a9e Mon Sep 17 00:00:00 2001 From: Robby Candra Date: Fri, 14 Aug 2020 20:38:00 +0700 Subject: [PATCH 108/194] Wait for hotend temp before Resume move (#19009) --- Marlin/src/feature/pause.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/Marlin/src/feature/pause.cpp b/Marlin/src/feature/pause.cpp index 77f352c39..2cb9c2df7 100644 --- a/Marlin/src/feature/pause.cpp +++ b/Marlin/src/feature/pause.cpp @@ -582,6 +582,9 @@ void resume_print(const float &slow_load_length/*=0*/, const float &fast_load_le TERN_(HAS_LCD_MENU, lcd_pause_show_message(PAUSE_MESSAGE_RESUME)); + // Check Temperature before moving hotend + ensure_safe_temperature(); + // Retract to prevent oozing unscaled_e_move(-(PAUSE_PARK_RETRACT_LENGTH), feedRate_t(PAUSE_PARK_RETRACT_FEEDRATE)); @@ -594,8 +597,6 @@ void resume_print(const float &slow_load_length/*=0*/, const float &fast_load_le // Unretract unscaled_e_move(PAUSE_PARK_RETRACT_LENGTH, feedRate_t(PAUSE_PARK_RETRACT_FEEDRATE)); - ensure_safe_temperature(); - // Intelligent resuming #if ENABLED(FWRETRACT) // If retracted before goto pause From 6cfc4b571149847da25f7b10c37e9ebc3883bf26 Mon Sep 17 00:00:00 2001 From: Giuliano Zaro <3684609+GMagician@users.noreply.github.com> Date: Fri, 14 Aug 2020 15:41:44 +0200 Subject: [PATCH 109/194] Let laser/spindle use free AVR servo timers (#19011) --- Marlin/src/HAL/AVR/ServoTimers.h | 8 +++++--- Marlin/src/HAL/AVR/inc/SanityCheck.h | 3 ++- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/Marlin/src/HAL/AVR/ServoTimers.h b/Marlin/src/HAL/AVR/ServoTimers.h index 564714df6..598db6257 100644 --- a/Marlin/src/HAL/AVR/ServoTimers.h +++ b/Marlin/src/HAL/AVR/ServoTimers.h @@ -60,9 +60,11 @@ #if defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__) //#define _useTimer1 #define _useTimer3 - #define _useTimer4 - #if !HAS_MOTOR_CURRENT_PWM - #define _useTimer5 // Timer 5 is used for motor current PWM and can't be used for servos. + #if NUM_SERVOS > SERVOS_PER_TIMER + #define _useTimer4 + #if !HAS_MOTOR_CURRENT_PWM && SERVOS > 2 * SERVOS_PER_TIMER + #define _useTimer5 // Timer 5 is used for motor current PWM and can't be used for servos. + #endif #endif #elif defined(__AVR_ATmega32U4__) #define _useTimer3 diff --git a/Marlin/src/HAL/AVR/inc/SanityCheck.h b/Marlin/src/HAL/AVR/inc/SanityCheck.h index e55e45b73..731cf9286 100644 --- a/Marlin/src/HAL/AVR/inc/SanityCheck.h +++ b/Marlin/src/HAL/AVR/inc/SanityCheck.h @@ -36,9 +36,10 @@ * Sanity checks for Spindle / Laser PWM */ #if ENABLED(SPINDLE_LASER_PWM) + #include "../ServoTimers.h" // Needed to check timer availability (_useTimer3) #if SPINDLE_LASER_PWM_PIN == 4 || WITHIN(SPINDLE_LASER_PWM_PIN, 11, 13) #error "Counter/Timer for SPINDLE_LASER_PWM_PIN is used by a system interrupt." - #elif NUM_SERVOS > 0 && (WITHIN(SPINDLE_LASER_PWM_PIN, 2, 3) || SPINDLE_LASER_PWM_PIN == 5) + #elif NUM_SERVOS > 0 && defined(_useTimer3) && (WITHIN(SPINDLE_LASER_PWM_PIN, 2, 3) || SPINDLE_LASER_PWM_PIN == 5) #error "Counter/Timer for SPINDLE_LASER_PWM_PIN is used by the servo system." #endif #elif defined(SPINDLE_LASER_FREQUENCY) From 8f730cfb6e474f98f4ac284d443bac061634c497 Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Fri, 14 Aug 2020 08:45:48 -0500 Subject: [PATCH 110/194] Fix ExtUI base methods --- Marlin/src/lcd/extui/ui_api.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Marlin/src/lcd/extui/ui_api.cpp b/Marlin/src/lcd/extui/ui_api.cpp index c19275449..3df9c17f6 100644 --- a/Marlin/src/lcd/extui/ui_api.cpp +++ b/Marlin/src/lcd/extui/ui_api.cpp @@ -548,7 +548,7 @@ namespace ExtUI { void setAxisSteps_per_mm(const float value, const extruder_t extruder) { UNUSED_E(extruder); - planner.settings.axis_steps_per_mm[E_AXIS_N(axis - E0)] = value; + planner.settings.axis_steps_per_mm[E_AXIS_N(extruder - E0)] = value; } feedRate_t getAxisMaxFeedrate_mm_s(const axis_t axis) { @@ -557,7 +557,7 @@ namespace ExtUI { feedRate_t getAxisMaxFeedrate_mm_s(const extruder_t extruder) { UNUSED_E(extruder); - return planner.settings.max_feedrate_mm_s[E_AXIS_N(axis - E0)]; + return planner.settings.max_feedrate_mm_s[E_AXIS_N(extruder - E0)]; } void setAxisMaxFeedrate_mm_s(const feedRate_t value, const axis_t axis) { From f7ff3f0803a901c72ee7fd65736069f920cbcee2 Mon Sep 17 00:00:00 2001 From: thinkyhead Date: Sat, 15 Aug 2020 00:10:28 +0000 Subject: [PATCH 111/194] [cron] Bump distribution date (2020-08-15) --- Marlin/src/inc/Version.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Marlin/src/inc/Version.h b/Marlin/src/inc/Version.h index b0b9bfd96..c6abdd242 100644 --- a/Marlin/src/inc/Version.h +++ b/Marlin/src/inc/Version.h @@ -42,7 +42,7 @@ * version was tagged. */ #ifndef STRING_DISTRIBUTION_DATE - #define STRING_DISTRIBUTION_DATE "2020-08-14" + #define STRING_DISTRIBUTION_DATE "2020-08-15" #endif /** From 0e8cdd19389aa8004f5264371dc05461675fe83e Mon Sep 17 00:00:00 2001 From: thinkyhead Date: Sun, 16 Aug 2020 00:11:06 +0000 Subject: [PATCH 112/194] [cron] Bump distribution date (2020-08-16) --- Marlin/src/inc/Version.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Marlin/src/inc/Version.h b/Marlin/src/inc/Version.h index c6abdd242..58b40b521 100644 --- a/Marlin/src/inc/Version.h +++ b/Marlin/src/inc/Version.h @@ -42,7 +42,7 @@ * version was tagged. */ #ifndef STRING_DISTRIBUTION_DATE - #define STRING_DISTRIBUTION_DATE "2020-08-15" + #define STRING_DISTRIBUTION_DATE "2020-08-16" #endif /** From bb64aa7841b081ccada9384dd2401341601b24e2 Mon Sep 17 00:00:00 2001 From: Victor Oliveira Date: Sat, 15 Aug 2020 21:38:13 -0300 Subject: [PATCH 113/194] Update build script for PIO 4.4 (#19034) --- .github/workflows/test-builds.yml | 2 +- .../PlatformIO/scripts/common-dependencies.py | 24 ++++++++++++++----- 2 files changed, 19 insertions(+), 7 deletions(-) diff --git a/.github/workflows/test-builds.yml b/.github/workflows/test-builds.yml index fdb81fbdc..1467f1b33 100644 --- a/.github/workflows/test-builds.yml +++ b/.github/workflows/test-builds.yml @@ -106,7 +106,7 @@ jobs: - name: Install PlatformIO run: | - pip install -U https://github.com/platformio/platformio-core/archive/develop.zip + pip install -U https://github.com/platformio/platformio-core/archive/master.zip platformio update - name: Check out the PR diff --git a/buildroot/share/PlatformIO/scripts/common-dependencies.py b/buildroot/share/PlatformIO/scripts/common-dependencies.py index 6c1b571bf..d5f6fc195 100644 --- a/buildroot/share/PlatformIO/scripts/common-dependencies.py +++ b/buildroot/share/PlatformIO/scripts/common-dependencies.py @@ -9,12 +9,24 @@ try: import configparser except ImportError: import ConfigParser as configparser -from platformio.managers.package import PackageManager +try: + # PIO < 4.4 + from platformio.managers.package import PackageManager +except ImportError: + # PIO >= 4.4 + from platformio.package.meta import PackageSpec as PackageManager Import("env") FEATURE_CONFIG = {} +def parse_pkg_uri(spec): + if PackageManager.__name__ == 'PackageSpec': + return PackageManager(spec).name + else: + name, _, _ = PackageManager.parse_pkg_uri(spec) + return name + def add_to_feat_cnf(feature, flines): feat = FEATURE_CONFIG[feature] atoms = re.sub(',\\s*', '\n', flines).strip().split('\n') @@ -56,7 +68,7 @@ def get_all_known_libs(): if not 'lib_deps' in feat: continue for dep in feat['lib_deps']: - name, _, _ = PackageManager.parse_pkg_uri(dep) + name = parse_pkg_uri(dep) known_libs.append(name) return known_libs @@ -64,7 +76,7 @@ def get_all_env_libs(): env_libs = [] lib_deps = env.GetProjectOption('lib_deps') for dep in lib_deps: - name, _, _ = PackageManager.parse_pkg_uri(dep) + name = parse_pkg_uri(dep) env_libs.append(name) return env_libs @@ -96,20 +108,20 @@ def apply_features_config(): # feat to add deps_to_add = {} for dep in feat['lib_deps']: - name, _, _ = PackageManager.parse_pkg_uri(dep) + name = parse_pkg_uri(dep) deps_to_add[name] = dep # Does the env already have the dependency? deps = env.GetProjectOption('lib_deps') for dep in deps: - name, _, _ = PackageManager.parse_pkg_uri(dep) + name = parse_pkg_uri(dep) if name in deps_to_add: del deps_to_add[name] # Are there any libraries that should be ignored? lib_ignore = env.GetProjectOption('lib_ignore') for dep in deps: - name, _, _ = PackageManager.parse_pkg_uri(dep) + name = parse_pkg_uri(dep) if name in deps_to_add: del deps_to_add[name] From e70440b7cbbabc0bf44db45273ec1a4baaf7d5cf Mon Sep 17 00:00:00 2001 From: Julius Mumme Date: Sun, 16 Aug 2020 05:50:28 +0200 Subject: [PATCH 114/194] Fix IS_PROBE_PIN macro (#19024) --- Marlin/src/inc/Conditionals_post.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Marlin/src/inc/Conditionals_post.h b/Marlin/src/inc/Conditionals_post.h index 6243d82aa..29ab2cfc2 100644 --- a/Marlin/src/inc/Conditionals_post.h +++ b/Marlin/src/inc/Conditionals_post.h @@ -1622,7 +1622,7 @@ // // Is an endstop plug used for extra Z endstops or the probe? -#define IS_PROBE_PIN(A,M) (HAS_CUSTOM_PROBE_PIN && Z_MIN_PROBE_PIN == P) +#define IS_PROBE_PIN(A,M) (HAS_CUSTOM_PROBE_PIN && Z_MIN_PROBE_PIN == A##_##M##_PIN) #define IS_X2_ENDSTOP(A,M) (ENABLED(X_DUAL_ENDSTOPS) && X2_USE_ENDSTOP == _##A##M##_) #define IS_Y2_ENDSTOP(A,M) (ENABLED(Y_DUAL_ENDSTOPS) && Y2_USE_ENDSTOP == _##A##M##_) #define IS_Z2_ENDSTOP(A,M) (ENABLED(Z_MULTI_ENDSTOPS) && Z2_USE_ENDSTOP == _##A##M##_) From 19818a95a2bd10fe98431023a502229cbfa82f3a Mon Sep 17 00:00:00 2001 From: ellensp Date: Sun, 16 Aug 2020 15:57:07 +1200 Subject: [PATCH 115/194] Checks for CR10_STOCKDISPLAY with Creality v4 (#19019) --- Marlin/src/pins/stm32f1/pins_CREALITY_V4.h | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/Marlin/src/pins/stm32f1/pins_CREALITY_V4.h b/Marlin/src/pins/stm32f1/pins_CREALITY_V4.h index ed281eb00..c36b4561b 100644 --- a/Marlin/src/pins/stm32f1/pins_CREALITY_V4.h +++ b/Marlin/src/pins/stm32f1/pins_CREALITY_V4.h @@ -134,6 +134,10 @@ #define ONBOARD_SD_CS_PIN PA4 // SDSS #define SDIO_SUPPORT +#if ENABLED(CR10_STOCKDISPLAY) && NONE(RET6_12864_LCD, VET6_12864_LCD) + #error "Define RET6_12864_LCD or VET6_12864_LCD to select pins for CR10_STOCKDISPLAY with the Creality V4 controller." +#endif + #if ENABLED(RET6_12864_LCD) /* RET6 12864 LCD */ @@ -146,6 +150,7 @@ #define BTN_EN2 PB14 #define BEEPER_PIN PC6 + #elif ENABLED(VET6_12864_LCD) /* VET6 12864 LCD */ From ed775ac9859e8b525c94681c8d8dfe82b7010dfd Mon Sep 17 00:00:00 2001 From: thinkyhead Date: Mon, 17 Aug 2020 00:11:16 +0000 Subject: [PATCH 116/194] [cron] Bump distribution date (2020-08-17) --- Marlin/src/inc/Version.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Marlin/src/inc/Version.h b/Marlin/src/inc/Version.h index 58b40b521..7ae190fa9 100644 --- a/Marlin/src/inc/Version.h +++ b/Marlin/src/inc/Version.h @@ -42,7 +42,7 @@ * version was tagged. */ #ifndef STRING_DISTRIBUTION_DATE - #define STRING_DISTRIBUTION_DATE "2020-08-16" + #define STRING_DISTRIBUTION_DATE "2020-08-17" #endif /** From c55f47752069d687e57e4fe91a3b6e59828a657a Mon Sep 17 00:00:00 2001 From: thinkyhead Date: Tue, 18 Aug 2020 00:10:40 +0000 Subject: [PATCH 117/194] [cron] Bump distribution date (2020-08-18) --- Marlin/src/inc/Version.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Marlin/src/inc/Version.h b/Marlin/src/inc/Version.h index 7ae190fa9..cdcbf6583 100644 --- a/Marlin/src/inc/Version.h +++ b/Marlin/src/inc/Version.h @@ -42,7 +42,7 @@ * version was tagged. */ #ifndef STRING_DISTRIBUTION_DATE - #define STRING_DISTRIBUTION_DATE "2020-08-17" + #define STRING_DISTRIBUTION_DATE "2020-08-18" #endif /** From 167e42af996c2f8f745e8e2dfa6dbe0e9fa675e9 Mon Sep 17 00:00:00 2001 From: thinkyhead Date: Wed, 19 Aug 2020 00:11:56 +0000 Subject: [PATCH 118/194] [cron] Bump distribution date (2020-08-19) --- Marlin/src/inc/Version.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Marlin/src/inc/Version.h b/Marlin/src/inc/Version.h index cdcbf6583..9e9e5f3c7 100644 --- a/Marlin/src/inc/Version.h +++ b/Marlin/src/inc/Version.h @@ -42,7 +42,7 @@ * version was tagged. */ #ifndef STRING_DISTRIBUTION_DATE - #define STRING_DISTRIBUTION_DATE "2020-08-18" + #define STRING_DISTRIBUTION_DATE "2020-08-19" #endif /** From 2cbc84855bfd2d1ccb6d2861573fd612b3e86d0a Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Wed, 19 Aug 2020 01:49:38 -0500 Subject: [PATCH 119/194] Creality DWIN simple beeper --- Marlin/src/pins/stm32f1/pins_CREALITY_V4.h | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/Marlin/src/pins/stm32f1/pins_CREALITY_V4.h b/Marlin/src/pins/stm32f1/pins_CREALITY_V4.h index c36b4561b..5aab75712 100644 --- a/Marlin/src/pins/stm32f1/pins_CREALITY_V4.h +++ b/Marlin/src/pins/stm32f1/pins_CREALITY_V4.h @@ -170,7 +170,10 @@ #define BTN_EN2 PB12 //#define LCD_LED_PIN PB2 - #define BEEPER_PIN PB13 + #ifndef BEEPER_PIN + #define BEEPER_PIN PB13 + #undef SPEAKER + #endif #elif ENABLED(DWIN_VET6_CREALITY_LCD) From 092aad1813fdf61d6f34dcfee6737ab4a1015a19 Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Wed, 19 Aug 2020 00:49:23 -0500 Subject: [PATCH 120/194] Creality DWIN cleanup --- Marlin/src/lcd/dwin/dwin.cpp | 137 +++++++++++++++++------------------ Marlin/src/lcd/dwin/dwin.h | 4 +- 2 files changed, 70 insertions(+), 71 deletions(-) diff --git a/Marlin/src/lcd/dwin/dwin.cpp b/Marlin/src/lcd/dwin/dwin.cpp index 8cd7af157..e527c8dba 100644 --- a/Marlin/src/lcd/dwin/dwin.cpp +++ b/Marlin/src/lcd/dwin/dwin.cpp @@ -65,8 +65,6 @@ #include "../../module/probe.h" #endif -#include "../../libs/buzzer.h" - #ifndef MACHINE_SIZE #define MACHINE_SIZE "220x220x250" #endif @@ -1065,36 +1063,40 @@ void HMI_Move_Z(void) { } } -void HMI_Move_E(void) { - ENCODER_DiffState encoder_diffState = Encoder_ReceiveAnalyze(); - if (encoder_diffState != ENCODER_DIFF_NO) { - if (encoder_diffState == ENCODER_DIFF_CW) { - HMI_ValueStruct.Move_E_scale += EncoderRate.encoderMoveValue; - } - else if (encoder_diffState == ENCODER_DIFF_CCW) { - HMI_ValueStruct.Move_E_scale -= EncoderRate.encoderMoveValue; - } - else if (encoder_diffState == ENCODER_DIFF_ENTER) { - checkkey = AxisMove; - EncoderRate.encoderRateEnabled = 0; - last_E_scale = HMI_ValueStruct.Move_E_scale; - show_plus_or_minus(font8x16, Background_black, 3, 1, 216, MBASE(4), HMI_ValueStruct.Move_E_scale); - if (!planner.is_full()) { - planner.synchronize(); // Wait for planner moves to finish! - planner.buffer_line(current_position, MMM_TO_MMS(FEEDRATE_E), active_extruder); +#if EXTRUDERS + + void HMI_Move_E(void) { + ENCODER_DiffState encoder_diffState = Encoder_ReceiveAnalyze(); + if (encoder_diffState != ENCODER_DIFF_NO) { + if (encoder_diffState == ENCODER_DIFF_CW) { + HMI_ValueStruct.Move_E_scale += EncoderRate.encoderMoveValue; } + else if (encoder_diffState == ENCODER_DIFF_CCW) { + HMI_ValueStruct.Move_E_scale -= EncoderRate.encoderMoveValue; + } + else if (encoder_diffState == ENCODER_DIFF_ENTER) { + checkkey = AxisMove; + EncoderRate.encoderRateEnabled = 0; + last_E_scale = HMI_ValueStruct.Move_E_scale; + show_plus_or_minus(font8x16, Background_black, 3, 1, 216, MBASE(4), HMI_ValueStruct.Move_E_scale); + if (!planner.is_full()) { + planner.synchronize(); // Wait for planner moves to finish! + planner.buffer_line(current_position, MMM_TO_MMS(FEEDRATE_E), active_extruder); + } + DWIN_UpdateLCD(); + return; + } + if ((HMI_ValueStruct.Move_E_scale - last_E_scale) > (EXTRUDE_MAXLENGTH) * MINUNITMULT) + HMI_ValueStruct.Move_E_scale = last_E_scale + (EXTRUDE_MAXLENGTH) * MINUNITMULT; + else if ((last_E_scale - HMI_ValueStruct.Move_E_scale) > (EXTRUDE_MAXLENGTH) * MINUNITMULT) + HMI_ValueStruct.Move_E_scale = last_E_scale - (EXTRUDE_MAXLENGTH) * MINUNITMULT; + current_position.e = HMI_ValueStruct.Move_E_scale / 10; + show_plus_or_minus(font8x16, Select_Color, 3, 1, 216, MBASE(4), HMI_ValueStruct.Move_E_scale); DWIN_UpdateLCD(); - return; } - if ((HMI_ValueStruct.Move_E_scale - last_E_scale) > (EXTRUDE_MAXLENGTH) * MINUNITMULT) - HMI_ValueStruct.Move_E_scale = last_E_scale + (EXTRUDE_MAXLENGTH) * MINUNITMULT; - else if ((last_E_scale - HMI_ValueStruct.Move_E_scale) > (EXTRUDE_MAXLENGTH) * MINUNITMULT) - HMI_ValueStruct.Move_E_scale = last_E_scale - (EXTRUDE_MAXLENGTH) * MINUNITMULT; - current_position.e = HMI_ValueStruct.Move_E_scale / 10; - show_plus_or_minus(font8x16, Select_Color, 3, 1, 216, MBASE(4), HMI_ValueStruct.Move_E_scale); - DWIN_UpdateLCD(); } -} + +#endif void HMI_Zoffset(void) { ENCODER_DiffState encoder_diffState = Encoder_ReceiveAnalyze(); @@ -2096,7 +2098,9 @@ inline void Draw_Move_Menu() { DWIN_Frame_AreaCopy(1, 58, 118, 271 - 165, 479 - 347, LBLX, MBASE(1)); DWIN_Frame_AreaCopy(1, 109, 118, 271 - 114, 479 - 347, LBLX, MBASE(2)); DWIN_Frame_AreaCopy(1, 160, 118, 271 - 62, 479 - 347, LBLX, MBASE(3)); - DWIN_Frame_AreaCopy(1, 212, 118, 271 - 18, 479 - 348, LBLX, MBASE(4)); + #if HAS_HOTEND + DWIN_Frame_AreaCopy(1, 212, 118, 271 - 18, 479 - 348, LBLX, MBASE(4)); + #endif } else { #ifdef USE_STRING_HEADINGS @@ -2107,7 +2111,9 @@ inline void Draw_Move_Menu() { draw_move_en(MBASE(1)); say_x(33 + 3, MBASE(1)); // "Move X" draw_move_en(MBASE(2)); say_y(33 + 3, MBASE(2)); // "Move Y" draw_move_en(MBASE(3)); say_z(33 + 3, MBASE(3)); // "Move Z" - DWIN_Frame_AreaCopy(1, 123, 192, 271 - 95, 479 - 277, LBLX, MBASE(4)); // "Extruder" + #if HAS_HOTEND + DWIN_Frame_AreaCopy(1, 123, 192, 271 - 95, 479 - 277, LBLX, MBASE(4)); // "Extruder" + #endif } Draw_Back_First(select_axis.now == 0); @@ -2116,6 +2122,18 @@ inline void Draw_Move_Menu() { LOOP_L_N(i, MROWS) Draw_Menu_Line(i + 1, ICON_MoveX + i); } +#include "../../libs/buzzer.h" + +void HMI_AudioFeedback(const bool success=true) { + if (success) { + buzzer.tone(100, 659); + buzzer.tone(10, 0); + buzzer.tone(100, 698); + } + else + buzzer.tone(40, 440); +} + /* Prepare */ void HMI_Prepare(void) { ENCODER_DiffState encoder_diffState = get_encoder_state(); @@ -2202,8 +2220,7 @@ void HMI_Prepare(void) { #else // Apply workspace offset, making the current position 0,0,0 queue.inject_P(PSTR("G92 X0 Y0 Z0")); - buzzer.tone(100, 659); - buzzer.tone(100, 698); + HMI_AudioFeedback(); #endif break; case 5: // PLA preheat @@ -2347,27 +2364,17 @@ void HMI_Control(void) { select_motion.reset(); Draw_Motion_Menu(); break; - case 3: // write EEPROM - if (settings.save()) { - buzzer.tone(100, 659); - buzzer.tone(100, 698); - } - else - buzzer.tone(20, 440); - break; - case 4: // read EEPROM - if (settings.load()) { - buzzer.tone(100, 659); - buzzer.tone(100, 698); - } - else {buzzer.tone(20, 440);} - break; + case 3: { // write EEPROM + const bool success = settings.save(); + HMI_AudioFeedback(success); + } break; + case 4: { // read EEPROM + const bool success = settings.load(); + HMI_AudioFeedback(success); + } break; case 5: // resume EEPROM settings.reset(); - #if HAS_BUZZER - buzzer.tone(100, 659); - buzzer.tone(100, 698); - #endif + HMI_AudioFeedback(); break; case 6: // info checkkey = Info; @@ -3006,14 +3013,10 @@ void HMI_PLAPreheatSetting(void) { EncoderRate.encoderRateEnabled = 1; break; #endif - case 4: // save PLA configuration - if (settings.save()) { - buzzer.tone(100, 659); - buzzer.tone(100, 698); - } - else - buzzer.tone(20, 440); - break; + case 4: { // save PLA configuration + const bool success = settings.save(); + HMI_AudioFeedback(success); + } break; default: break; } } @@ -3064,14 +3067,10 @@ void HMI_ABSPreheatSetting(void) { EncoderRate.encoderRateEnabled = 1; break; #endif - case 4: // save PLA configuration - if (settings.save()) { - buzzer.tone(100, 659); - buzzer.tone(100, 698); - } - else - buzzer.tone(20, 440); - break; + case 4: { // save ABS configuration + const bool success = settings.save(); + HMI_AudioFeedback(success); + } break; default: break; } @@ -3496,11 +3495,11 @@ void DWIN_HandleScreen(void) { case Move_X: HMI_Move_X(); break; case Move_Y: HMI_Move_Y(); break; case Move_Z: HMI_Move_Z(); break; - case Extruder: HMI_Move_E(); break; - case Homeoffset: HMI_Zoffset(); break; #if HAS_HOTEND + case Extruder: HMI_Move_E(); break; case ETemp: HMI_ETemp(); break; #endif + case Homeoffset: HMI_Zoffset(); break; #if HAS_HEATED_BED case BedTemp: HMI_BedTemp(); break; #endif diff --git a/Marlin/src/lcd/dwin/dwin.h b/Marlin/src/lcd/dwin/dwin.h index 2d24d2504..cddc582fc 100644 --- a/Marlin/src/lcd/dwin/dwin.h +++ b/Marlin/src/lcd/dwin/dwin.h @@ -68,11 +68,11 @@ enum processID { Move_X, Move_Y, Move_Z, - Extruder, - Homeoffset, #if HAS_HOTEND + Extruder, ETemp, #endif + Homeoffset, #if HAS_HEATED_BED BedTemp, #endif From f205bff2ccdaea55e2dc9e6fa1f98820a9761d42 Mon Sep 17 00:00:00 2001 From: Giuliano Zaro <3684609+GMagician@users.noreply.github.com> Date: Wed, 19 Aug 2020 09:49:46 +0200 Subject: [PATCH 121/194] Fix PSU on for PID autotune (#19066) --- Marlin/src/feature/power.cpp | 5 ++--- Marlin/src/module/temperature.cpp | 1 + 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Marlin/src/feature/power.cpp b/Marlin/src/feature/power.cpp index 74850122c..5be554e5e 100644 --- a/Marlin/src/feature/power.cpp +++ b/Marlin/src/feature/power.cpp @@ -59,7 +59,6 @@ bool Power::is_power_needed() { // If any of the drivers or the bed are enabled... if (X_ENABLE_READ() == X_ENABLE_ON || Y_ENABLE_READ() == Y_ENABLE_ON || Z_ENABLE_READ() == Z_ENABLE_ON - || TERN0(HAS_HEATED_BED, thermalManager.temp_bed.soft_pwm_amount > 0) #if HAS_X2_ENABLE || X2_ENABLE_READ() == X_ENABLE_ON #endif @@ -75,8 +74,8 @@ bool Power::is_power_needed() { #endif ) return true; - HOTEND_LOOP() if (thermalManager.degTargetHotend(e) > 0) return true; - if (TERN0(HAS_HEATED_BED, thermalManager.degTargetBed() > 0)) return true; + HOTEND_LOOP() if (thermalManager.degTargetHotend(e) > 0 || thermalManager.temp_hotend[e].soft_pwm_amount > 0) return true; + if (TERN0(HAS_HEATED_BED, thermalManager.degTargetBed() > 0 || thermalManager.temp_bed.soft_pwm_amount > 0)) return true; #if HAS_HOTEND && AUTO_POWER_E_TEMP HOTEND_LOOP() if (thermalManager.degHotend(e) >= AUTO_POWER_E_TEMP) return true; diff --git a/Marlin/src/module/temperature.cpp b/Marlin/src/module/temperature.cpp index 1dc480a92..a217fc9ab 100644 --- a/Marlin/src/module/temperature.cpp +++ b/Marlin/src/module/temperature.cpp @@ -444,6 +444,7 @@ volatile bool Temperature::raw_temps_ready = false; LEDColor color = ONHEATINGSTART(); #endif + TERN_(AUTO_POWER_CONTROL, powerManager.power_on()); TERN_(NO_FAN_SLOWING_IN_PID_TUNING, adaptive_fan_slowing = false); // PID Tuning loop From 60b61de395a02bce6f1a7b4663780ae9b8ef4d11 Mon Sep 17 00:00:00 2001 From: Serhiy-K <52166448+Serhiy-K@users.noreply.github.com> Date: Wed, 19 Aug 2020 10:58:41 +0300 Subject: [PATCH 122/194] "SD init fail" status error (#19064) --- Marlin/src/lcd/language/language_en.h | 1 + Marlin/src/sd/cardreader.cpp | 7 ++++++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/Marlin/src/lcd/language/language_en.h b/Marlin/src/lcd/language/language_en.h index 9f6178ae5..3791a4ad1 100644 --- a/Marlin/src/lcd/language/language_en.h +++ b/Marlin/src/lcd/language/language_en.h @@ -48,6 +48,7 @@ namespace Language_en { PROGMEM Language_Str MSG_MEDIA_INSERTED = _UxGT("Media Inserted"); PROGMEM Language_Str MSG_MEDIA_REMOVED = _UxGT("Media Removed"); PROGMEM Language_Str MSG_MEDIA_WAITING = _UxGT("Waiting for media"); + PROGMEM Language_Str MSG_SD_INIT_FAIL = _UxGT("SD Init Fail"); PROGMEM Language_Str MSG_MEDIA_READ_ERROR = _UxGT("Media read error"); PROGMEM Language_Str MSG_MEDIA_USB_REMOVED = _UxGT("USB device removed"); PROGMEM Language_Str MSG_MEDIA_USB_FAILED = _UxGT("USB start failed"); diff --git a/Marlin/src/sd/cardreader.cpp b/Marlin/src/sd/cardreader.cpp index 864552516..3aa7156e7 100644 --- a/Marlin/src/sd/cardreader.cpp +++ b/Marlin/src/sd/cardreader.cpp @@ -376,8 +376,13 @@ void CardReader::mount() { flag.mounted = true; SERIAL_ECHO_MSG(STR_SD_CARD_OK); } - cdroot(); + if (flag.mounted) + cdroot(); + else { + spiInit(SPI_SPEED); // Return to base SPI speed + ui.set_status_P(GET_TEXT(MSG_SD_INIT_FAIL), -1); + } ui.refresh(); } From d3c51614760b87d4844b77f2459195ffc2cd9a62 Mon Sep 17 00:00:00 2001 From: Giuliano Zaro <3684609+GMagician@users.noreply.github.com> Date: Wed, 19 Aug 2020 09:59:37 +0200 Subject: [PATCH 123/194] Fix __ARM__ / __arm__ typo (#19063) --- Marlin/src/module/stepper.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Marlin/src/module/stepper.cpp b/Marlin/src/module/stepper.cpp index c9d87486f..e5f65a3cd 100644 --- a/Marlin/src/module/stepper.cpp +++ b/Marlin/src/module/stepper.cpp @@ -1264,7 +1264,7 @@ void Stepper::set_directions() { } FORCE_INLINE int32_t Stepper::_eval_bezier_curve(const uint32_t curr_step) { - #if defined(__ARM__) || defined(__thumb__) + #if defined(__arm__) || defined(__thumb__) // For ARM Cortex M3/M4 CPUs, we have the optimized assembler version, that takes 43 cycles to execute uint32_t flo = 0; From a62ae2aa2d74613fe15bf2b8ca4390fca53ebf01 Mon Sep 17 00:00:00 2001 From: Steven Haigh Date: Thu, 20 Aug 2020 09:58:18 +1000 Subject: [PATCH 124/194] Default Filament Runout Sensor enabled state (#19013) --- Marlin/Configuration.h | 9 +++++---- Marlin/src/feature/runout.cpp | 8 -------- Marlin/src/feature/runout.h | 35 ++++++++++++++++++++++++---------- Marlin/src/module/settings.cpp | 21 +++++++++++--------- 4 files changed, 42 insertions(+), 31 deletions(-) diff --git a/Marlin/Configuration.h b/Marlin/Configuration.h index a4b6c51ae..24d7c46a6 100644 --- a/Marlin/Configuration.h +++ b/Marlin/Configuration.h @@ -1178,10 +1178,11 @@ */ //#define FILAMENT_RUNOUT_SENSOR #if ENABLED(FILAMENT_RUNOUT_SENSOR) - #define NUM_RUNOUT_SENSORS 1 // Number of sensors, up to one per extruder. Define a FIL_RUNOUT#_PIN for each. - #define FIL_RUNOUT_STATE LOW // Pin state indicating that filament is NOT present. - #define FIL_RUNOUT_PULLUP // Use internal pullup for filament runout pins. - //#define FIL_RUNOUT_PULLDOWN // Use internal pulldown for filament runout pins. + #define FIL_RUNOUT_ENABLED_DEFAULT true // Enable the sensor on startup. Override with M412 followed by M500. + #define NUM_RUNOUT_SENSORS 1 // Number of sensors, up to one per extruder. Define a FIL_RUNOUT#_PIN for each. + #define FIL_RUNOUT_STATE LOW // Pin state indicating that filament is NOT present. + #define FIL_RUNOUT_PULLUP // Use internal pullup for filament runout pins. + //#define FIL_RUNOUT_PULLDOWN // Use internal pulldown for filament runout pins. // Set one or more commands to execute on filament runout. // (After 'M412 H' Marlin will ask the host to handle the process.) diff --git a/Marlin/src/feature/runout.cpp b/Marlin/src/feature/runout.cpp index 0b5c0ebc2..71f31f214 100644 --- a/Marlin/src/feature/runout.cpp +++ b/Marlin/src/feature/runout.cpp @@ -44,14 +44,6 @@ bool FilamentMonitorBase::enabled = true, #include "../module/tool_change.h" #endif -/** - * Called by FilamentSensorSwitch::run when filament is detected. - * Called by FilamentSensorEncoder::block_completed when motion is detected. - */ -void FilamentSensorBase::filament_present(const uint8_t extruder) { - runout.filament_present(extruder); // calls response.filament_present(extruder) -} - #if HAS_FILAMENT_RUNOUT_DISTANCE float RunoutResponseDelayed::runout_distance_mm = FILAMENT_RUNOUT_DISTANCE_MM; volatile float RunoutResponseDelayed::runout_mm_countdown[EXTRUDERS]; diff --git a/Marlin/src/feature/runout.h b/Marlin/src/feature/runout.h index 450ae1830..a7f836684 100644 --- a/Marlin/src/feature/runout.h +++ b/Marlin/src/feature/runout.h @@ -48,6 +48,24 @@ void event_filament_runout(); +template +class TFilamentMonitor; +class FilamentSensorEncoder; +class FilamentSensorSwitch; +class RunoutResponseDelayed; +class RunoutResponseDebounced; + +/********************************* TEMPLATE SPECIALIZATION *********************************/ + +typedef TFilamentMonitor< + TERN(HAS_FILAMENT_RUNOUT_DISTANCE, RunoutResponseDelayed, RunoutResponseDebounced), + TERN(FILAMENT_MOTION_SENSOR, FilamentSensorEncoder, FilamentSensorSwitch) + > FilamentMonitor; + +extern FilamentMonitor runout; + +/*******************************************************************************************/ + class FilamentMonitorBase { public: static bool enabled, filament_ran_out; @@ -121,7 +139,13 @@ class TFilamentMonitor : public FilamentMonitorBase { class FilamentSensorBase { protected: - static void filament_present(const uint8_t extruder); + /** + * Called by FilamentSensorSwitch::run when filament is detected. + * Called by FilamentSensorEncoder::block_completed when motion is detected. + */ + static inline void filament_present(const uint8_t extruder) { + runout.filament_present(extruder); // ...which calls response.filament_present(extruder) + } public: static inline void setup() { @@ -311,12 +335,3 @@ class FilamentSensorBase { }; #endif // !HAS_FILAMENT_RUNOUT_DISTANCE - -/********************************* TEMPLATE SPECIALIZATION *********************************/ - -typedef TFilamentMonitor< - TERN(HAS_FILAMENT_RUNOUT_DISTANCE, RunoutResponseDelayed, RunoutResponseDebounced), - TERN(FILAMENT_MOTION_SENSOR, FilamentSensorEncoder, FilamentSensorSwitch) - > FilamentMonitor; - -extern FilamentMonitor runout; diff --git a/Marlin/src/module/settings.cpp b/Marlin/src/module/settings.cpp index c84bbb44a..29b12e5ca 100644 --- a/Marlin/src/module/settings.cpp +++ b/Marlin/src/module/settings.cpp @@ -106,6 +106,9 @@ #if HAS_FILAMENT_SENSOR #include "../feature/runout.h" + #ifndef FIL_RUNOUT_ENABLED_DEFAULT + #define FIL_RUNOUT_ENABLED_DEFAULT true + #endif #endif #if ENABLED(EXTRA_LIN_ADVANCE_K) @@ -646,15 +649,16 @@ void MarlinSettings::postprocess() { #if HAS_FILAMENT_SENSOR const bool &runout_sensor_enabled = runout.enabled; #else - constexpr bool runout_sensor_enabled = true; + constexpr int8_t runout_sensor_enabled = -1; #endif + _FIELD_TEST(runout_sensor_enabled); + EEPROM_WRITE(runout_sensor_enabled); + #if HAS_FILAMENT_RUNOUT_DISTANCE const float &runout_distance_mm = runout.runout_distance(); #else constexpr float runout_distance_mm = 0; #endif - _FIELD_TEST(runout_sensor_enabled); - EEPROM_WRITE(runout_sensor_enabled); EEPROM_WRITE(runout_distance_mm); } @@ -1518,13 +1522,12 @@ void MarlinSettings::postprocess() { // Filament Runout Sensor // { - #if HAS_FILAMENT_SENSOR - const bool &runout_sensor_enabled = runout.enabled; - #else - bool runout_sensor_enabled; - #endif + int8_t runout_sensor_enabled; _FIELD_TEST(runout_sensor_enabled); EEPROM_READ(runout_sensor_enabled); + #if HAS_FILAMENT_SENSOR + runout.enabled = runout_sensor_enabled < 0 ? FIL_RUNOUT_ENABLED_DEFAULT : runout_sensor_enabled; + #endif TERN_(HAS_FILAMENT_SENSOR, if (runout.enabled) runout.reset()); @@ -2476,7 +2479,7 @@ void MarlinSettings::reset() { // #if HAS_FILAMENT_SENSOR - runout.enabled = true; + runout.enabled = FIL_RUNOUT_ENABLED_DEFAULT; runout.reset(); TERN_(HAS_FILAMENT_RUNOUT_DISTANCE, runout.set_runout_distance(FILAMENT_RUNOUT_DISTANCE_MM)); #endif From a4809b3a47fbaee73527f9fc1457d3aaa0a0f536 Mon Sep 17 00:00:00 2001 From: thinkyhead Date: Thu, 20 Aug 2020 00:11:10 +0000 Subject: [PATCH 125/194] [cron] Bump distribution date (2020-08-20) --- Marlin/src/inc/Version.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Marlin/src/inc/Version.h b/Marlin/src/inc/Version.h index 9e9e5f3c7..b48b75c9d 100644 --- a/Marlin/src/inc/Version.h +++ b/Marlin/src/inc/Version.h @@ -42,7 +42,7 @@ * version was tagged. */ #ifndef STRING_DISTRIBUTION_DATE - #define STRING_DISTRIBUTION_DATE "2020-08-19" + #define STRING_DISTRIBUTION_DATE "2020-08-20" #endif /** From 64e181979c347ff5a12eb33b03e527216088eca7 Mon Sep 17 00:00:00 2001 From: ellensp Date: Thu, 20 Aug 2020 12:18:39 +1200 Subject: [PATCH 126/194] Env mega2560ext adds pins 70-85 (#19022) --- .../copy_marlin_variant_to_framework.py | 14 +- .../variants/megaextendedpins/pins_arduino.h | 461 ++++++++++++++++++ platformio.ini | 17 +- 3 files changed, 488 insertions(+), 4 deletions(-) create mode 100755 buildroot/share/PlatformIO/variants/megaextendedpins/pins_arduino.h diff --git a/buildroot/share/PlatformIO/scripts/copy_marlin_variant_to_framework.py b/buildroot/share/PlatformIO/scripts/copy_marlin_variant_to_framework.py index 02957ec47..b66ba27fa 100644 --- a/buildroot/share/PlatformIO/scripts/copy_marlin_variant_to_framework.py +++ b/buildroot/share/PlatformIO/scripts/copy_marlin_variant_to_framework.py @@ -1,6 +1,7 @@ import os,shutil from SCons.Script import DefaultEnvironment from platformio import util +from platformio.managers.package import PackageManager def copytree(src, dst, symlinks=False, ignore=None): for item in os.listdir(src): @@ -16,7 +17,18 @@ platform = env.PioPlatform() board = env.BoardConfig() variant = board.get("build.variant") -FRAMEWORK_DIR = platform.get_package_dir("framework-arduinoststm32") +platform_packages = env.GetProjectOption('platform_packages') +# if there's no framework defined, take it from the class name of platform +framewords = { + "Ststm32Platform": "framework-arduinoststm32", + "AtmelavrPlatform": "framework-arduino-avr" +} +if len(platform_packages) == 0: + platform_name = framewords[platform.__class__.__name__] +else: + platform_name, _, _ = PackageManager.parse_pkg_uri(platform_packages[0]) + +FRAMEWORK_DIR = platform.get_package_dir(platform_name) assert os.path.isdir(FRAMEWORK_DIR) assert os.path.isdir("buildroot/share/PlatformIO/variants") diff --git a/buildroot/share/PlatformIO/variants/megaextendedpins/pins_arduino.h b/buildroot/share/PlatformIO/variants/megaextendedpins/pins_arduino.h new file mode 100755 index 000000000..77d0beca9 --- /dev/null +++ b/buildroot/share/PlatformIO/variants/megaextendedpins/pins_arduino.h @@ -0,0 +1,461 @@ +/* + pins_arduino.h - Pin definition functions for Arduino + Part of Arduino - http://www.arduino.cc/ + + Copyright (c) 2007 David A. Mellis + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General + Public License along with this library; if not, write to the + Free Software Foundation, Inc., 59 Temple Place, Suite 330, + Boston, MA 02111-1307 USA +*/ + +#ifndef Pins_Arduino_h +#define Pins_Arduino_h + +#include + +#define NUM_DIGITAL_PINS 86 +#define NUM_ANALOG_INPUTS 16 +#define analogInputToDigitalPin(p) ((p < 16) ? (p) + 54 : -1) +#define digitalPinHasPWM(p) (((p) >= 2 && (p) <= 13) || ((p) >= 44 && (p)<= 46)) + +#define PIN_SPI_SS (53) +#define PIN_SPI_MOSI (51) +#define PIN_SPI_MISO (50) +#define PIN_SPI_SCK (52) + +static const uint8_t SS = PIN_SPI_SS; +static const uint8_t MOSI = PIN_SPI_MOSI; +static const uint8_t MISO = PIN_SPI_MISO; +static const uint8_t SCK = PIN_SPI_SCK; + +#define PIN_WIRE_SDA (20) +#define PIN_WIRE_SCL (21) + +static const uint8_t SDA = PIN_WIRE_SDA; +static const uint8_t SCL = PIN_WIRE_SCL; + +#define LED_BUILTIN 13 + +#define PIN_A0 (54) +#define PIN_A1 (55) +#define PIN_A2 (56) +#define PIN_A3 (57) +#define PIN_A4 (58) +#define PIN_A5 (59) +#define PIN_A6 (60) +#define PIN_A7 (61) +#define PIN_A8 (62) +#define PIN_A9 (63) +#define PIN_A10 (64) +#define PIN_A11 (65) +#define PIN_A12 (66) +#define PIN_A13 (67) +#define PIN_A14 (68) +#define PIN_A15 (69) + +static const uint8_t A0 = PIN_A0; +static const uint8_t A1 = PIN_A1; +static const uint8_t A2 = PIN_A2; +static const uint8_t A3 = PIN_A3; +static const uint8_t A4 = PIN_A4; +static const uint8_t A5 = PIN_A5; +static const uint8_t A6 = PIN_A6; +static const uint8_t A7 = PIN_A7; +static const uint8_t A8 = PIN_A8; +static const uint8_t A9 = PIN_A9; +static const uint8_t A10 = PIN_A10; +static const uint8_t A11 = PIN_A11; +static const uint8_t A12 = PIN_A12; +static const uint8_t A13 = PIN_A13; +static const uint8_t A14 = PIN_A14; +static const uint8_t A15 = PIN_A15; + +// A majority of the pins are NOT PCINTs, SO BE WARNED (i.e. you cannot use them as receive pins) +// Only pins available for RECEIVE (TRANSMIT can be on any pin): +// (I've deliberately left out pin mapping to the Hardware USARTs - seems senseless to me) +// Pins: 10, 11, 12, 13, 50, 51, 52, 53, 62, 63, 64, 65, 66, 67, 68, 69 + +#define digitalPinToPCICR(p) ( (((p) >= 10) && ((p) <= 13)) || \ + (((p) >= 50) && ((p) <= 53)) || \ + (((p) >= 62) && ((p) <= 69)) ? (&PCICR) : ((uint8_t *)0) ) + +#define digitalPinToPCICRbit(p) ( (((p) >= 10) && ((p) <= 13)) || (((p) >= 50) && ((p) <= 53)) ? 0 : \ + ( (((p) >= 62) && ((p) <= 69)) ? 2 : \ + 0 ) ) + +#define digitalPinToPCMSK(p) ( (((p) >= 10) && ((p) <= 13)) || (((p) >= 50) && ((p) <= 53)) ? (&PCMSK0) : \ + ( (((p) >= 62) && ((p) <= 69)) ? (&PCMSK2) : \ + ((uint8_t *)0) ) ) + +#define digitalPinToPCMSKbit(p) ( (((p) >= 10) && ((p) <= 13)) ? ((p) - 6) : \ + ( ((p) == 50) ? 3 : \ + ( ((p) == 51) ? 2 : \ + ( ((p) == 52) ? 1 : \ + ( ((p) == 53) ? 0 : \ + ( (((p) >= 62) && ((p) <= 69)) ? ((p) - 62) : \ + 0 ) ) ) ) ) ) + +#define digitalPinToInterrupt(p) ((p) == 2 ? 0 : ((p) == 3 ? 1 : ((p) >= 18 && (p) <= 21 ? 23 - (p) : NOT_AN_INTERRUPT))) + +#ifdef ARDUINO_MAIN + +const uint16_t PROGMEM port_to_mode_PGM[] = { + NOT_A_PORT, + (uint16_t) &DDRA, + (uint16_t) &DDRB, + (uint16_t) &DDRC, + (uint16_t) &DDRD, + (uint16_t) &DDRE, + (uint16_t) &DDRF, + (uint16_t) &DDRG, + (uint16_t) &DDRH, + NOT_A_PORT, + (uint16_t) &DDRJ, + (uint16_t) &DDRK, + (uint16_t) &DDRL, +}; + +const uint16_t PROGMEM port_to_output_PGM[] = { + NOT_A_PORT, + (uint16_t) &PORTA, + (uint16_t) &PORTB, + (uint16_t) &PORTC, + (uint16_t) &PORTD, + (uint16_t) &PORTE, + (uint16_t) &PORTF, + (uint16_t) &PORTG, + (uint16_t) &PORTH, + NOT_A_PORT, + (uint16_t) &PORTJ, + (uint16_t) &PORTK, + (uint16_t) &PORTL, +}; + +const uint16_t PROGMEM port_to_input_PGM[] = { + NOT_A_PIN, + (uint16_t) &PINA, + (uint16_t) &PINB, + (uint16_t) &PINC, + (uint16_t) &PIND, + (uint16_t) &PINE, + (uint16_t) &PINF, + (uint16_t) &PING, + (uint16_t) &PINH, + NOT_A_PIN, + (uint16_t) &PINJ, + (uint16_t) &PINK, + (uint16_t) &PINL, +}; + +const uint8_t PROGMEM digital_pin_to_port_PGM[] = { + // PORTLIST + // ------------------------------------------- + PE , // PE 0 ** 0 ** USART0_RX + PE , // PE 1 ** 1 ** USART0_TX + PE , // PE 4 ** 2 ** PWM2 + PE , // PE 5 ** 3 ** PWM3 + PG , // PG 5 ** 4 ** PWM4 + PE , // PE 3 ** 5 ** PWM5 + PH , // PH 3 ** 6 ** PWM6 + PH , // PH 4 ** 7 ** PWM7 + PH , // PH 5 ** 8 ** PWM8 + PH , // PH 6 ** 9 ** PWM9 + PB , // PB 4 ** 10 ** PWM10 + PB , // PB 5 ** 11 ** PWM11 + PB , // PB 6 ** 12 ** PWM12 + PB , // PB 7 ** 13 ** PWM13 + PJ , // PJ 1 ** 14 ** USART3_TX + PJ , // PJ 0 ** 15 ** USART3_RX + PH , // PH 1 ** 16 ** USART2_TX + PH , // PH 0 ** 17 ** USART2_RX + PD , // PD 3 ** 18 ** USART1_TX + PD , // PD 2 ** 19 ** USART1_RX + PD , // PD 1 ** 20 ** I2C_SDA + PD , // PD 0 ** 21 ** I2C_SCL + PA , // PA 0 ** 22 ** D22 + PA , // PA 1 ** 23 ** D23 + PA , // PA 2 ** 24 ** D24 + PA , // PA 3 ** 25 ** D25 + PA , // PA 4 ** 26 ** D26 + PA , // PA 5 ** 27 ** D27 + PA , // PA 6 ** 28 ** D28 + PA , // PA 7 ** 29 ** D29 + PC , // PC 7 ** 30 ** D30 + PC , // PC 6 ** 31 ** D31 + PC , // PC 5 ** 32 ** D32 + PC , // PC 4 ** 33 ** D33 + PC , // PC 3 ** 34 ** D34 + PC , // PC 2 ** 35 ** D35 + PC , // PC 1 ** 36 ** D36 + PC , // PC 0 ** 37 ** D37 + PD , // PD 7 ** 38 ** D38 + PG , // PG 2 ** 39 ** D39 + PG , // PG 1 ** 40 ** D40 + PG , // PG 0 ** 41 ** D41 + PL , // PL 7 ** 42 ** D42 + PL , // PL 6 ** 43 ** D43 + PL , // PL 5 ** 44 ** D44 + PL , // PL 4 ** 45 ** D45 + PL , // PL 3 ** 46 ** D46 + PL , // PL 2 ** 47 ** D47 + PL , // PL 1 ** 48 ** D48 + PL , // PL 0 ** 49 ** D49 + PB , // PB 3 ** 50 ** SPI_MISO + PB , // PB 2 ** 51 ** SPI_MOSI + PB , // PB 1 ** 52 ** SPI_SCK + PB , // PB 0 ** 53 ** SPI_SS + PF , // PF 0 ** 54 ** A0 + PF , // PF 1 ** 55 ** A1 + PF , // PF 2 ** 56 ** A2 + PF , // PF 3 ** 57 ** A3 + PF , // PF 4 ** 58 ** A4 + PF , // PF 5 ** 59 ** A5 + PF , // PF 6 ** 60 ** A6 + PF , // PF 7 ** 61 ** A7 + PK , // PK 0 ** 62 ** A8 + PK , // PK 1 ** 63 ** A9 + PK , // PK 2 ** 64 ** A10 + PK , // PK 3 ** 65 ** A11 + PK , // PK 4 ** 66 ** A12 + PK , // PK 5 ** 67 ** A13 + PK , // PK 6 ** 68 ** A14 + PK , // PK 7 ** 69 ** A15 + PG , // PG 4 ** 70 ** D70 + PG , // PG 3 ** 71 ** D71 + PJ , // PJ 2 ** 72 ** D72 + PJ , // PJ 3 ** 73 ** D73 + PJ , // PJ 7 ** 74 ** D74 + PJ , // PJ 4 ** 75 ** D75 + PJ , // PJ 5 ** 76 ** D76 + PJ , // PJ 6 ** 77 ** D77 + PE , // PE 2 ** 78 ** D78 + PE , // PE 6 ** 79 ** D79 + PE , // PE 7 ** 80 ** D80 + PD , // PD 4 ** 81 ** D81 + PD , // PD 5 ** 82 ** D82 + PD , // PD 6 ** 83 ** D83 + PH , // PH 2 ** 84 ** D84 + PH , // PH 7 ** 85 ** D85 +}; + +const uint8_t PROGMEM digital_pin_to_bit_mask_PGM[] = { + // PIN IN PORT + // ------------------------------------------- + _BV( 0 ) , // PE 0 ** 0 ** USART0_RX + _BV( 1 ) , // PE 1 ** 1 ** USART0_TX + _BV( 4 ) , // PE 4 ** 2 ** PWM2 + _BV( 5 ) , // PE 5 ** 3 ** PWM3 + _BV( 5 ) , // PG 5 ** 4 ** PWM4 + _BV( 3 ) , // PE 3 ** 5 ** PWM5 + _BV( 3 ) , // PH 3 ** 6 ** PWM6 + _BV( 4 ) , // PH 4 ** 7 ** PWM7 + _BV( 5 ) , // PH 5 ** 8 ** PWM8 + _BV( 6 ) , // PH 6 ** 9 ** PWM9 + _BV( 4 ) , // PB 4 ** 10 ** PWM10 + _BV( 5 ) , // PB 5 ** 11 ** PWM11 + _BV( 6 ) , // PB 6 ** 12 ** PWM12 + _BV( 7 ) , // PB 7 ** 13 ** PWM13 + _BV( 1 ) , // PJ 1 ** 14 ** USART3_TX + _BV( 0 ) , // PJ 0 ** 15 ** USART3_RX + _BV( 1 ) , // PH 1 ** 16 ** USART2_TX + _BV( 0 ) , // PH 0 ** 17 ** USART2_RX + _BV( 3 ) , // PD 3 ** 18 ** USART1_TX + _BV( 2 ) , // PD 2 ** 19 ** USART1_RX + _BV( 1 ) , // PD 1 ** 20 ** I2C_SDA + _BV( 0 ) , // PD 0 ** 21 ** I2C_SCL + _BV( 0 ) , // PA 0 ** 22 ** D22 + _BV( 1 ) , // PA 1 ** 23 ** D23 + _BV( 2 ) , // PA 2 ** 24 ** D24 + _BV( 3 ) , // PA 3 ** 25 ** D25 + _BV( 4 ) , // PA 4 ** 26 ** D26 + _BV( 5 ) , // PA 5 ** 27 ** D27 + _BV( 6 ) , // PA 6 ** 28 ** D28 + _BV( 7 ) , // PA 7 ** 29 ** D29 + _BV( 7 ) , // PC 7 ** 30 ** D30 + _BV( 6 ) , // PC 6 ** 31 ** D31 + _BV( 5 ) , // PC 5 ** 32 ** D32 + _BV( 4 ) , // PC 4 ** 33 ** D33 + _BV( 3 ) , // PC 3 ** 34 ** D34 + _BV( 2 ) , // PC 2 ** 35 ** D35 + _BV( 1 ) , // PC 1 ** 36 ** D36 + _BV( 0 ) , // PC 0 ** 37 ** D37 + _BV( 7 ) , // PD 7 ** 38 ** D38 + _BV( 2 ) , // PG 2 ** 39 ** D39 + _BV( 1 ) , // PG 1 ** 40 ** D40 + _BV( 0 ) , // PG 0 ** 41 ** D41 + _BV( 7 ) , // PL 7 ** 42 ** D42 + _BV( 6 ) , // PL 6 ** 43 ** D43 + _BV( 5 ) , // PL 5 ** 44 ** D44 + _BV( 4 ) , // PL 4 ** 45 ** D45 + _BV( 3 ) , // PL 3 ** 46 ** D46 + _BV( 2 ) , // PL 2 ** 47 ** D47 + _BV( 1 ) , // PL 1 ** 48 ** D48 + _BV( 0 ) , // PL 0 ** 49 ** D49 + _BV( 3 ) , // PB 3 ** 50 ** SPI_MISO + _BV( 2 ) , // PB 2 ** 51 ** SPI_MOSI + _BV( 1 ) , // PB 1 ** 52 ** SPI_SCK + _BV( 0 ) , // PB 0 ** 53 ** SPI_SS + _BV( 0 ) , // PF 0 ** 54 ** A0 + _BV( 1 ) , // PF 1 ** 55 ** A1 + _BV( 2 ) , // PF 2 ** 56 ** A2 + _BV( 3 ) , // PF 3 ** 57 ** A3 + _BV( 4 ) , // PF 4 ** 58 ** A4 + _BV( 5 ) , // PF 5 ** 59 ** A5 + _BV( 6 ) , // PF 6 ** 60 ** A6 + _BV( 7 ) , // PF 7 ** 61 ** A7 + _BV( 0 ) , // PK 0 ** 62 ** A8 + _BV( 1 ) , // PK 1 ** 63 ** A9 + _BV( 2 ) , // PK 2 ** 64 ** A10 + _BV( 3 ) , // PK 3 ** 65 ** A11 + _BV( 4 ) , // PK 4 ** 66 ** A12 + _BV( 5 ) , // PK 5 ** 67 ** A13 + _BV( 6 ) , // PK 6 ** 68 ** A14 + _BV( 7 ) , // PK 7 ** 69 ** A15 + _BV( 4 ) , // PG 4 ** 70 ** D70 + _BV( 3 ) , // PG 3 ** 71 ** D71 + _BV( 2 ) , // PJ 2 ** 72 ** D72 + _BV( 3 ) , // PJ 3 ** 73 ** D73 + _BV( 7 ) , // PJ 7 ** 74 ** D74 + _BV( 4 ) , // PJ 4 ** 75 ** D75 + _BV( 5 ) , // PJ 5 ** 76 ** D76 + _BV( 6 ) , // PJ 6 ** 77 ** D77 + _BV( 2 ) , // PE 2 ** 78 ** D78 + _BV( 6 ) , // PE 6 ** 79 ** D79 + _BV( 7 ) , // PE 7 ** 80 ** D80 + _BV( 4 ) , // PD 4 ** 81 ** D81 + _BV( 5 ) , // PD 5 ** 82 ** D82 + _BV( 6 ) , // PD 6 ** 83 ** D83 + _BV( 2 ) , // PH 2 ** 84 ** D84 + _BV( 7 ) , // PH 7 ** 85 ** D85 +}; + +const uint8_t PROGMEM digital_pin_to_timer_PGM[] = { + // TIMERS + // ------------------------------------------- + NOT_ON_TIMER , // PE 0 ** 0 ** USART0_RX + NOT_ON_TIMER , // PE 1 ** 1 ** USART0_TX + TIMER3B , // PE 4 ** 2 ** PWM2 + TIMER3C , // PE 5 ** 3 ** PWM3 + TIMER0B , // PG 5 ** 4 ** PWM4 + TIMER3A , // PE 3 ** 5 ** PWM5 + TIMER4A , // PH 3 ** 6 ** PWM6 + TIMER4B , // PH 4 ** 7 ** PWM7 + TIMER4C , // PH 5 ** 8 ** PWM8 + TIMER2B , // PH 6 ** 9 ** PWM9 + TIMER2A , // PB 4 ** 10 ** PWM10 + TIMER1A , // PB 5 ** 11 ** PWM11 + TIMER1B , // PB 6 ** 12 ** PWM12 + TIMER0A , // PB 7 ** 13 ** PWM13 + NOT_ON_TIMER , // PJ 1 ** 14 ** USART3_TX + NOT_ON_TIMER , // PJ 0 ** 15 ** USART3_RX + NOT_ON_TIMER , // PH 1 ** 16 ** USART2_TX + NOT_ON_TIMER , // PH 0 ** 17 ** USART2_RX + NOT_ON_TIMER , // PD 3 ** 18 ** USART1_TX + NOT_ON_TIMER , // PD 2 ** 19 ** USART1_RX + NOT_ON_TIMER , // PD 1 ** 20 ** I2C_SDA + NOT_ON_TIMER , // PD 0 ** 21 ** I2C_SCL + NOT_ON_TIMER , // PA 0 ** 22 ** D22 + NOT_ON_TIMER , // PA 1 ** 23 ** D23 + NOT_ON_TIMER , // PA 2 ** 24 ** D24 + NOT_ON_TIMER , // PA 3 ** 25 ** D25 + NOT_ON_TIMER , // PA 4 ** 26 ** D26 + NOT_ON_TIMER , // PA 5 ** 27 ** D27 + NOT_ON_TIMER , // PA 6 ** 28 ** D28 + NOT_ON_TIMER , // PA 7 ** 29 ** D29 + NOT_ON_TIMER , // PC 7 ** 30 ** D30 + NOT_ON_TIMER , // PC 6 ** 31 ** D31 + NOT_ON_TIMER , // PC 5 ** 32 ** D32 + NOT_ON_TIMER , // PC 4 ** 33 ** D33 + NOT_ON_TIMER , // PC 3 ** 34 ** D34 + NOT_ON_TIMER , // PC 2 ** 35 ** D35 + NOT_ON_TIMER , // PC 1 ** 36 ** D36 + NOT_ON_TIMER , // PC 0 ** 37 ** D37 + NOT_ON_TIMER , // PD 7 ** 38 ** D38 + NOT_ON_TIMER , // PG 2 ** 39 ** D39 + NOT_ON_TIMER , // PG 1 ** 40 ** D40 + NOT_ON_TIMER , // PG 0 ** 41 ** D41 + NOT_ON_TIMER , // PL 7 ** 42 ** D42 + NOT_ON_TIMER , // PL 6 ** 43 ** D43 + TIMER5C , // PL 5 ** 44 ** D44 + TIMER5B , // PL 4 ** 45 ** D45 + TIMER5A , // PL 3 ** 46 ** D46 + NOT_ON_TIMER , // PL 2 ** 47 ** D47 + NOT_ON_TIMER , // PL 1 ** 48 ** D48 + NOT_ON_TIMER , // PL 0 ** 49 ** D49 + NOT_ON_TIMER , // PB 3 ** 50 ** SPI_MISO + NOT_ON_TIMER , // PB 2 ** 51 ** SPI_MOSI + NOT_ON_TIMER , // PB 1 ** 52 ** SPI_SCK + NOT_ON_TIMER , // PB 0 ** 53 ** SPI_SS + NOT_ON_TIMER , // PF 0 ** 54 ** A0 + NOT_ON_TIMER , // PF 1 ** 55 ** A1 + NOT_ON_TIMER , // PF 2 ** 56 ** A2 + NOT_ON_TIMER , // PF 3 ** 57 ** A3 + NOT_ON_TIMER , // PF 4 ** 58 ** A4 + NOT_ON_TIMER , // PF 5 ** 59 ** A5 + NOT_ON_TIMER , // PF 6 ** 60 ** A6 + NOT_ON_TIMER , // PF 7 ** 61 ** A7 + NOT_ON_TIMER , // PK 0 ** 62 ** A8 + NOT_ON_TIMER , // PK 1 ** 63 ** A9 + NOT_ON_TIMER , // PK 2 ** 64 ** A10 + NOT_ON_TIMER , // PK 3 ** 65 ** A11 + NOT_ON_TIMER , // PK 4 ** 66 ** A12 + NOT_ON_TIMER , // PK 5 ** 67 ** A13 + NOT_ON_TIMER , // PK 6 ** 68 ** A14 + NOT_ON_TIMER , // PK 7 ** 69 ** A15 + NOT_ON_TIMER , // PG 4 ** 70 ** D70 + NOT_ON_TIMER , // PG 3 ** 71 ** D71 + NOT_ON_TIMER , // PJ 2 ** 72 ** D72 + NOT_ON_TIMER , // PJ 3 ** 73 ** D73 + NOT_ON_TIMER , // PJ 7 ** 74 ** D74 + NOT_ON_TIMER , // PJ 4 ** 75 ** D75 + NOT_ON_TIMER , // PJ 5 ** 76 ** D76 + NOT_ON_TIMER , // PJ 6 ** 77 ** D77 + NOT_ON_TIMER , // PE 2 ** 78 ** D78 + NOT_ON_TIMER , // PE 6 ** 79 ** D79 + NOT_ON_TIMER , // PE 7 ** 80 ** D80 + NOT_ON_TIMER , // PD 4 ** 81 ** D81 + NOT_ON_TIMER , // PD 5 ** 82 ** D82 + NOT_ON_TIMER , // PD 6 ** 83 ** D83 + NOT_ON_TIMER , // PH 2 ** 84 ** D84 + NOT_ON_TIMER , // PH 7 ** 85 ** D85 +}; + +#endif + +// These serial port names are intended to allow libraries and architecture-neutral +// sketches to automatically default to the correct port name for a particular type +// of use. For example, a GPS module would normally connect to SERIAL_PORT_HARDWARE_OPEN, +// the first hardware serial port whose RX/TX pins are not dedicated to another use. +// +// SERIAL_PORT_MONITOR Port which normally prints to the Arduino Serial Monitor +// +// SERIAL_PORT_USBVIRTUAL Port which is USB virtual serial +// +// SERIAL_PORT_LINUXBRIDGE Port which connects to a Linux system via Bridge library +// +// SERIAL_PORT_HARDWARE Hardware serial port, physical RX & TX pins. +// +// SERIAL_PORT_HARDWARE_OPEN Hardware serial ports which are open for use. Their RX & TX +// pins are NOT connected to anything by default. +#define SERIAL_PORT_MONITOR Serial +#define SERIAL_PORT_HARDWARE Serial +#define SERIAL_PORT_HARDWARE1 Serial1 +#define SERIAL_PORT_HARDWARE2 Serial2 +#define SERIAL_PORT_HARDWARE3 Serial3 +#define SERIAL_PORT_HARDWARE_OPEN Serial1 +#define SERIAL_PORT_HARDWARE_OPEN1 Serial2 +#define SERIAL_PORT_HARDWARE_OPEN2 Serial3 + +#endif diff --git a/platformio.ini b/platformio.ini index 10990b4d2..27b11b2aa 100644 --- a/platformio.ini +++ b/platformio.ini @@ -406,9 +406,20 @@ src_filter = ${common.default_src_filter} + # ATmega2560 # [env:mega2560] -platform = atmelavr -extends = common_avr8 -board = megaatmega2560 +platform = atmelavr +extends = common_avr8 +board = megaatmega2560 + +# +# ATmega2560 with extended pins 70-85 defined +# +[env:mega2560ext] +platform = atmelavr +extends = mega2560 +board = megaatmega2560 +board_build.variant = megaextendedpins +extra_scripts = ${common.extra_scripts} + pre:buildroot/share/PlatformIO/scripts/copy_marlin_variant_to_framework.py # # ATmega1280 From 3426c7fc94beb62dedc85d5f5cd9ac9cac0859b1 Mon Sep 17 00:00:00 2001 From: Giuliano Zaro <3684609+GMagician@users.noreply.github.com> Date: Thu, 20 Aug 2020 03:11:20 +0200 Subject: [PATCH 127/194] Configurable number of M106 fans (#18883) --- Marlin/Configuration.h | 4 ++++ Marlin/src/inc/Conditionals_post.h | 22 +++++++++++++++++++--- Marlin/src/inc/SanityCheck.h | 7 +++++++ Marlin/src/module/temperature.cpp | 2 +- Marlin/src/pins/sam/pins_CNCONTROLS_15D.h | 2 +- 5 files changed, 32 insertions(+), 5 deletions(-) diff --git a/Marlin/Configuration.h b/Marlin/Configuration.h index 24d7c46a6..986b9efb6 100644 --- a/Marlin/Configuration.h +++ b/Marlin/Configuration.h @@ -2275,6 +2275,10 @@ // @section extras +// Set number of user-controlled fans. Disable to use all board-defined fans. +// :[1,2,3,4,5,6,7,8] +//#define NUM_M106_FANS 1 + // Increase the FAN PWM frequency. Removes the PWM noise but increases heating in the FET/Arduino //#define FAST_PWM_FAN diff --git a/Marlin/src/inc/Conditionals_post.h b/Marlin/src/inc/Conditionals_post.h index 29ab2cfc2..5d7322753 100644 --- a/Marlin/src/inc/Conditionals_post.h +++ b/Marlin/src/inc/Conditionals_post.h @@ -1876,12 +1876,28 @@ #undef AUTO_POWER_CHAMBER_FAN #endif -// Other fans +// Print Cooling fans (limit) +#ifdef NUM_M106_FANS + #define MAX_FANS NUM_M106_FANS +#else + #define MAX_FANS 8 // Max supported fans +#endif + +#define _NOT_E_AUTO(N,F) (E##N##_AUTO_FAN_PIN != FAN##F##_PIN) +#define _HAS_FAN(F) (PIN_EXISTS(FAN##F) \ + && CONTROLLER_FAN_PIN != FAN##F##_PIN \ + && _NOT_E_AUTO(0,F) \ + && _NOT_E_AUTO(1,F) \ + && _NOT_E_AUTO(2,F) \ + && _NOT_E_AUTO(3,F) \ + && _NOT_E_AUTO(4,F) \ + && _NOT_E_AUTO(5,F) \ + && _NOT_E_AUTO(6,F) \ + && _NOT_E_AUTO(7,F) \ + && F < MAX_FANS) #if PIN_EXISTS(FAN) #define HAS_FAN0 1 #endif -#define _NOT_E_AUTO(N,F) (E##N##_AUTO_FAN_PIN != FAN##F##_PIN) -#define _HAS_FAN(F) (PIN_EXISTS(FAN##F) && CONTROLLER_FAN_PIN != FAN##F##_PIN && _NOT_E_AUTO(0,F) && _NOT_E_AUTO(1,F) && _NOT_E_AUTO(2,F) && _NOT_E_AUTO(3,F) && _NOT_E_AUTO(4,F) && _NOT_E_AUTO(5,F) && _NOT_E_AUTO(6,F) && _NOT_E_AUTO(7,F)) #if _HAS_FAN(1) #define HAS_FAN1 1 #endif diff --git a/Marlin/src/inc/SanityCheck.h b/Marlin/src/inc/SanityCheck.h index 6fcd86798..d31a82677 100644 --- a/Marlin/src/inc/SanityCheck.h +++ b/Marlin/src/inc/SanityCheck.h @@ -1106,6 +1106,13 @@ static_assert(Y_MAX_LENGTH >= Y_BED_SIZE, "Movement bounds (Y_MIN_POS, Y_MAX_POS #error "FANMUX0_PIN and FANMUX1_PIN must be set before FANMUX2_PIN can be set." #endif +/** + * Limited user-controlled fans + */ +#if NUM_M106_FANS > FAN_COUNT + #error "The selected board doesn't support enough user-controlled fans. Reduce NUM_M106_FANS." +#endif + /** * Limited number of servos */ diff --git a/Marlin/src/module/temperature.cpp b/Marlin/src/module/temperature.cpp index a217fc9ab..1208e4e99 100644 --- a/Marlin/src/module/temperature.cpp +++ b/Marlin/src/module/temperature.cpp @@ -195,7 +195,7 @@ const char str_t_thermal_runaway[] PROGMEM = STR_T_THERMAL_RUNAWAY, #endif #if ENABLED(ADAPTIVE_FAN_SLOWING) - uint8_t Temperature::fan_speed_scaler[FAN_COUNT] = ARRAY_N(FAN_COUNT, 128, 128, 128, 128, 128, 128); + uint8_t Temperature::fan_speed_scaler[FAN_COUNT] = ARRAY_N(FAN_COUNT, 128, 128, 128, 128, 128, 128, 128, 128); #endif /** diff --git a/Marlin/src/pins/sam/pins_CNCONTROLS_15D.h b/Marlin/src/pins/sam/pins_CNCONTROLS_15D.h index b977ad1ab..a2094bee4 100644 --- a/Marlin/src/pins/sam/pins_CNCONTROLS_15D.h +++ b/Marlin/src/pins/sam/pins_CNCONTROLS_15D.h @@ -92,7 +92,7 @@ // // Fans // -//#define FAN0_PIN 8 +//#define FAN_PIN 8 // // Auto fans From 38cd7b993884108eab13d9266ac69392be705b89 Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Thu, 13 Aug 2020 20:03:49 -0500 Subject: [PATCH 128/194] Config adjustments --- Marlin/Configuration.h | 2 +- Marlin/Configuration_adv.h | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Marlin/Configuration.h b/Marlin/Configuration.h index 986b9efb6..dc0416d51 100644 --- a/Marlin/Configuration.h +++ b/Marlin/Configuration.h @@ -2359,7 +2359,7 @@ #define NEOPIXEL_PIN 4 // LED driving pin //#define NEOPIXEL2_TYPE NEOPIXEL_TYPE //#define NEOPIXEL2_PIN 5 - #define NEOPIXEL2_INSERIES false // The default behaviour is 'false' with neopixel2 in parallel + //#define NEOPIXEL2_INSERIES // Default behavior is NeoPixel 2 in parallel #define NEOPIXEL_PIXELS 30 // Number of LEDs in the strip, larger of 2 strips if 2 neopixel strips are used #define NEOPIXEL_IS_SEQUENTIAL // Sequential display for temperature change - LED by LED. Disable to change all LEDs at once. #define NEOPIXEL_BRIGHTNESS 127 // Initial brightness (0-255) diff --git a/Marlin/Configuration_adv.h b/Marlin/Configuration_adv.h index 1c29af1f4..529dcc309 100644 --- a/Marlin/Configuration_adv.h +++ b/Marlin/Configuration_adv.h @@ -825,13 +825,13 @@ //#define HOME_AFTER_DEACTIVATE // Require rehoming after steppers are deactivated -// Minimum time that a segment needs to take as the buffer gets emptied -#define DEFAULT_MINSEGMENTTIME 20000 // (µs) Set with M205 B. - // Default Minimum Feedrates for printing and travel moves #define DEFAULT_MINIMUMFEEDRATE 0.0 // (mm/s) Minimum feedrate. Set with M205 S. #define DEFAULT_MINTRAVELFEEDRATE 0.0 // (mm/s) Minimum travel feedrate. Set with M205 T. +// Minimum time that a segment needs to take as the buffer gets emptied +#define DEFAULT_MINSEGMENTTIME 20000 // (µs) Set with M205 B. + // Slow down the machine if the lookahead buffer is (by default) half full. // Increase the slowdown divisor for larger buffer sizes. #define SLOWDOWN From 853aec2c9a355c262001e0a0516bbb0decfd7749 Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Thu, 20 Aug 2020 01:38:22 -0500 Subject: [PATCH 129/194] Move ExtUI displays to sub-folder (#19070) --- .../anycubic_chiron_lcd.cpp} | 6 ++--- .../anycubic_i3mega_lcd.cpp} | 8 +++---- .../dgus_lcd.cpp} | 12 +++++----- .../{extui_example.cpp => extui/example.cpp} | 6 ++--- .../malyan_lcd.cpp} | 24 +++++++++---------- platformio.ini | 16 ++++++------- 6 files changed, 36 insertions(+), 36 deletions(-) rename Marlin/src/lcd/{extui_anycubic_chiron_lcd.cpp => extui/anycubic_chiron_lcd.cpp} (99%) rename Marlin/src/lcd/{extui_anycubic_i3mega_lcd.cpp => extui/anycubic_i3mega_lcd.cpp} (95%) rename Marlin/src/lcd/{extui_dgus_lcd.cpp => extui/dgus_lcd.cpp} (95%) rename Marlin/src/lcd/{extui_example.cpp => extui/example.cpp} (97%) rename Marlin/src/lcd/{extui_malyan_lcd.cpp => extui/malyan_lcd.cpp} (97%) diff --git a/Marlin/src/lcd/extui_anycubic_chiron_lcd.cpp b/Marlin/src/lcd/extui/anycubic_chiron_lcd.cpp similarity index 99% rename from Marlin/src/lcd/extui_anycubic_chiron_lcd.cpp rename to Marlin/src/lcd/extui/anycubic_chiron_lcd.cpp index 15cc96711..889a25b85 100644 --- a/Marlin/src/lcd/extui_anycubic_chiron_lcd.cpp +++ b/Marlin/src/lcd/extui/anycubic_chiron_lcd.cpp @@ -21,16 +21,16 @@ */ /** - * extui_anycubic_chiron_lcd.cpp + * anycubic_chiron_lcd.cpp * * Anycubic Chiron TFT support for Marlin */ -#include "../inc/MarlinConfigPre.h" +#include "../../inc/MarlinConfigPre.h" #if ENABLED(ANYCUBIC_LCD_CHIRON) -#include "extui/ui_api.h" +#include "ui_api.h" #if ENABLED(AUTO_BED_LEVELING_BILINEAR) #if GRID_MAX_POINTS_X != 5 || GRID_MAX_POINTS_Y != 5 diff --git a/Marlin/src/lcd/extui_anycubic_i3mega_lcd.cpp b/Marlin/src/lcd/extui/anycubic_i3mega_lcd.cpp similarity index 95% rename from Marlin/src/lcd/extui_anycubic_i3mega_lcd.cpp rename to Marlin/src/lcd/extui/anycubic_i3mega_lcd.cpp index 360ea75de..15526d16f 100644 --- a/Marlin/src/lcd/extui_anycubic_i3mega_lcd.cpp +++ b/Marlin/src/lcd/extui/anycubic_i3mega_lcd.cpp @@ -21,15 +21,15 @@ */ /** - * extui_anycubic_i3mega_lcd.cpp + * anycubic_i3mega_lcd.cpp */ -#include "../inc/MarlinConfigPre.h" +#include "../../inc/MarlinConfigPre.h" #if ENABLED(ANYCUBIC_LCD_I3MEGA) -#include "extui/lib/anycubic_i3mega/anycubic_i3mega_lcd.h" -#include "extui/ui_api.h" +#include "lib/anycubic_i3mega/anycubic_i3mega_lcd.h" +#include "ui_api.h" #include // for the ::tone() call diff --git a/Marlin/src/lcd/extui_dgus_lcd.cpp b/Marlin/src/lcd/extui/dgus_lcd.cpp similarity index 95% rename from Marlin/src/lcd/extui_dgus_lcd.cpp rename to Marlin/src/lcd/extui/dgus_lcd.cpp index c3978eb7e..d175b5aca 100644 --- a/Marlin/src/lcd/extui_dgus_lcd.cpp +++ b/Marlin/src/lcd/extui/dgus_lcd.cpp @@ -21,19 +21,19 @@ */ /** - * extui_dgus_lcd.cpp + * dgus_lcd.cpp * * DGUS implementation for Marlin by coldtobi, Feb-May 2019 */ -#include "../inc/MarlinConfigPre.h" +#include "../../inc/MarlinConfigPre.h" #if HAS_DGUS_LCD -#include "extui/ui_api.h" -#include "extui/lib/dgus/DGUSDisplay.h" -#include "extui/lib/dgus/DGUSDisplayDef.h" -#include "extui/lib/dgus/DGUSScreenHandler.h" +#include "ui_api.h" +#include "lib/dgus/DGUSDisplay.h" +#include "lib/dgus/DGUSDisplayDef.h" +#include "lib/dgus/DGUSScreenHandler.h" extern const char NUL_STR[]; diff --git a/Marlin/src/lcd/extui_example.cpp b/Marlin/src/lcd/extui/example.cpp similarity index 97% rename from Marlin/src/lcd/extui_example.cpp rename to Marlin/src/lcd/extui/example.cpp index 5258a5b6a..a5ef5652b 100644 --- a/Marlin/src/lcd/extui_example.cpp +++ b/Marlin/src/lcd/extui/example.cpp @@ -1,5 +1,5 @@ /********************* - * extui_example.cpp * + * example.cpp * *********************/ /**************************************************************************** @@ -19,11 +19,11 @@ * location: . * ****************************************************************************/ -#include "../inc/MarlinConfigPre.h" +#include "../../inc/MarlinConfigPre.h" #if BOTH(EXTUI_EXAMPLE, EXTENSIBLE_UI) -#include "extui/ui_api.h" +#include "ui_api.h" // To implement a new UI, complete the functions below and // read or update Marlin's state using the methods in the diff --git a/Marlin/src/lcd/extui_malyan_lcd.cpp b/Marlin/src/lcd/extui/malyan_lcd.cpp similarity index 97% rename from Marlin/src/lcd/extui_malyan_lcd.cpp rename to Marlin/src/lcd/extui/malyan_lcd.cpp index 38a8fbc0f..b5148065c 100644 --- a/Marlin/src/lcd/extui_malyan_lcd.cpp +++ b/Marlin/src/lcd/extui/malyan_lcd.cpp @@ -21,7 +21,7 @@ */ /** - * extui_malyan_lcd.cpp + * malyan_lcd.cpp * * LCD implementation for Malyan's LCD, a separate ESP8266 MCU running * on Serial1 for the M200 board. This module outputs a pseudo-gcode @@ -41,25 +41,25 @@ * Copyright (c) 2017 Jason Nelson (xC0000005) */ -#include "../inc/MarlinConfigPre.h" +#include "../../inc/MarlinConfigPre.h" #if ENABLED(MALYAN_LCD) #define DEBUG_MALYAN_LCD -#include "extui/ui_api.h" +#include "ui_api.h" -#include "ultralcd.h" -#include "../sd/cardreader.h" -#include "../module/temperature.h" -#include "../module/stepper.h" -#include "../module/motion.h" -#include "../libs/duration_t.h" -#include "../module/printcounter.h" -#include "../gcode/queue.h" +#include "../ultralcd.h" +#include "../../sd/cardreader.h" +#include "../../module/temperature.h" +#include "../../module/stepper.h" +#include "../../module/motion.h" +#include "../../libs/duration_t.h" +#include "../../module/printcounter.h" +#include "../../gcode/queue.h" #define DEBUG_OUT ENABLED(DEBUG_MALYAN_LCD) -#include "../core/debug_out.h" +#include "../../core/debug_out.h" // On the Malyan M200, this will be Serial1. On a RAMPS board, // it might not be. diff --git a/platformio.ini b/platformio.ini index 27b11b2aa..e3ff6c152 100644 --- a/platformio.ini +++ b/platformio.ini @@ -49,12 +49,12 @@ default_src_filter = + - - + - - - - - - - - - - + - - + - + - - - - - + - - - - @@ -241,11 +241,11 @@ HAS_MENU_TMC = src_filter=+ HAS_MENU_TOUCH_SCREEN = src_filter=+ HAS_MENU_UBL = src_filter=+ ANYCUBIC_LCD_I3MEGA = src_filter=+ -HAS_DGUS_LCD = src_filter=+ + +HAS_DGUS_LCD = src_filter=+ + TOUCH_UI_FTDI_EVE = src_filter=+ -HAS_ANYCUBIC_TFT_EXTUI = src_filter=+ -EXTUI_EXAMPLE = src_filter=+ -MALYAN_LCD = src_filter=+ +HAS_ANYCUBIC_TFT_EXTUI = src_filter=+ +EXTUI_EXAMPLE = src_filter=+ +MALYAN_LCD = src_filter=+ HAS_SPI_LCD = src_filter=+ USB_FLASH_DRIVE_SUPPORT = src_filter=+ AUTO_BED_LEVELING_BILINEAR = src_filter=+ From 16e1dbbb216d79535bcc9d95a74d865fa08c23c2 Mon Sep 17 00:00:00 2001 From: thinkyhead Date: Fri, 21 Aug 2020 00:11:45 +0000 Subject: [PATCH 130/194] [cron] Bump distribution date (2020-08-21) --- Marlin/src/inc/Version.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Marlin/src/inc/Version.h b/Marlin/src/inc/Version.h index b48b75c9d..9c7504227 100644 --- a/Marlin/src/inc/Version.h +++ b/Marlin/src/inc/Version.h @@ -42,7 +42,7 @@ * version was tagged. */ #ifndef STRING_DISTRIBUTION_DATE - #define STRING_DISTRIBUTION_DATE "2020-08-20" + #define STRING_DISTRIBUTION_DATE "2020-08-21" #endif /** From 28a0650cf3dcc14f8dadf0b13ccc44b506207617 Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Thu, 20 Aug 2020 02:47:16 -0500 Subject: [PATCH 131/194] Add custom_verbose, custom_gcc deps flags --- .../PlatformIO/scripts/common-dependencies.py | 67 ++++++++++++------- 1 file changed, 43 insertions(+), 24 deletions(-) diff --git a/buildroot/share/PlatformIO/scripts/common-dependencies.py b/buildroot/share/PlatformIO/scripts/common-dependencies.py index d5f6fc195..def3bf40c 100644 --- a/buildroot/share/PlatformIO/scripts/common-dependencies.py +++ b/buildroot/share/PlatformIO/scripts/common-dependencies.py @@ -18,7 +18,16 @@ except ImportError: Import("env") -FEATURE_CONFIG = {} +#print(env.Dump()) + +try: + verbose = int(env.GetProjectOption('custom_verbose')) +except: + verbose = 0 + +def blab(str): + if verbose: + print(str) def parse_pkg_uri(spec): if PackageManager.__name__ == 'PackageSpec': @@ -27,6 +36,8 @@ def parse_pkg_uri(spec): name, _, _ = PackageManager.parse_pkg_uri(spec) return name +FEATURE_CONFIG = {} + def add_to_feat_cnf(feature, flines): feat = FEATURE_CONFIG[feature] atoms = re.sub(',\\s*', '\n', flines).strip().split('\n') @@ -91,7 +102,8 @@ def force_ignore_unused_libs(): known_libs = get_all_known_libs() diff = (list(set(known_libs) - set(env_libs))) lib_ignore = env.GetProjectOption('lib_ignore') + diff - print("Ignore libraries:", lib_ignore) + if verbose: + print("Ignore libraries:", lib_ignore) set_env_field('lib_ignore', lib_ignore) def apply_features_config(): @@ -103,7 +115,7 @@ def apply_features_config(): feat = FEATURE_CONFIG[feature] if 'lib_deps' in feat and len(feat['lib_deps']): - print("Adding lib_deps for %s... " % feature) + blab("Adding lib_deps for %s... " % feature) # feat to add deps_to_add = {} @@ -131,11 +143,11 @@ def apply_features_config(): set_env_field('lib_deps', deps + list(deps_to_add.values())) if 'extra_scripts' in feat: - print("Running extra_scripts for %s... " % feature) + blab("Running extra_scripts for %s... " % feature) env.SConscript(feat['extra_scripts'], exports="env") if 'src_filter' in feat: - print("Adding src_filter for %s... " % feature) + blab("Adding src_filter for %s... " % feature) src_filter = ' '.join(env.GetProjectOption('src_filter')) # first we need to remove the references to the same folder my_srcs = re.findall( r'[+-](<.*?>)', feat['src_filter']) @@ -149,7 +161,7 @@ def apply_features_config(): env.Replace(SRC_FILTER=src_filter) if 'lib_ignore' in feat: - print("Adding lib_ignore for %s... " % feature) + blab("Adding lib_ignore for %s... " % feature) lib_ignore = env.GetProjectOption('lib_ignore') + [feat['lib_ignore']] set_env_field('lib_ignore', lib_ignore) @@ -159,41 +171,49 @@ def apply_features_config(): ENV_BUILD_PATH = os.path.join(env.Dictionary('PROJECT_BUILD_DIR'), env['PIOENV']) GCC_PATH_CACHE = os.path.join(ENV_BUILD_PATH, ".gcc_path") def search_compiler(): + try: + filepath = env.GetProjectOption('custom_gcc') + blab('Getting compiler from env') + return filepath + except: + pass + if os.path.exists(GCC_PATH_CACHE): - print('Getting g++ path from cache') + blab('Getting g++ path from cache') with open(GCC_PATH_CACHE, 'r') as f: return f.read() - # PlatformIO inserts the toolchain bin folder on the front of the $PATH # Find the current platform compiler by searching the $PATH + # which will be in a platformio toolchain bin folder + path_regex = re.escape(env['PROJECT_PACKAGES_DIR']) + gcc = "g++" if env['PLATFORM'] == 'win32': path_separator = ';' - path_regex = re.escape(env['PROJECT_PACKAGES_DIR']) + r'.*\\bin' - gcc = "g++.exe" + path_regex += r'.*\\bin' + gcc += ".exe" else: path_separator = ':' - path_regex = re.escape(env['PROJECT_PACKAGES_DIR']) + r'.*/bin' - gcc = "g++" + path_regex += r'/.+/bin' # Search for the compiler - for path in env['ENV']['PATH'].split(path_separator): - if not re.search(path_regex, path, re.IGNORECASE): + for pathdir in env['ENV']['PATH'].split(path_separator): + if not re.search(path_regex, pathdir, re.IGNORECASE): continue - for file in os.listdir(path): - if not file.endswith(gcc): + for filepath in os.listdir(pathdir): + if not filepath.endswith(gcc): continue # Cache the g++ path to no search always if os.path.exists(ENV_BUILD_PATH): - print('Caching g++ for current env') + blab('Caching g++ for current env') with open(GCC_PATH_CACHE, 'w+') as f: - f.write(file) + f.write(filepath) - return file + return filepath - file = env.get('CXX') - print("Couldn't find a compiler! Fallback to", file) - return file + filepath = env.get('CXX') + blab("Couldn't find a compiler! Fallback to %s" % filepath) + return filepath # # Use the compiler to get a list of all enabled features @@ -203,7 +223,6 @@ def load_marlin_features(): return # Process defines - #print(env.Dump()) build_flags = env.get('BUILD_FLAGS') build_flags = env.ParseFlagsExtended(build_flags) @@ -221,7 +240,7 @@ def load_marlin_features(): cmd += ['-w -dM -E -x c++ buildroot/share/PlatformIO/scripts/common-dependencies.h'] cmd = ' '.join(cmd) - print(cmd) + blab(cmd) define_list = subprocess.check_output(cmd, shell=True).splitlines() marlin_features = {} for define in define_list: From 7807b613d5c0ff74a26b884c1aaf1b253467c3bf Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Thu, 20 Aug 2020 00:08:06 -0500 Subject: [PATCH 132/194] Update some comments --- Marlin/src/module/settings.cpp | 2 +- Marlin/src/module/settings.h | 4 ++++ Marlin/src/module/temperature.cpp | 2 +- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/Marlin/src/module/settings.cpp b/Marlin/src/module/settings.cpp index 29b12e5ca..d5f41a324 100644 --- a/Marlin/src/module/settings.cpp +++ b/Marlin/src/module/settings.cpp @@ -21,7 +21,7 @@ */ /** - * configuration_store.cpp + * settings.cpp * * Settings and EEPROM storage * diff --git a/Marlin/src/module/settings.h b/Marlin/src/module/settings.h index c654b11bd..b213de93a 100644 --- a/Marlin/src/module/settings.h +++ b/Marlin/src/module/settings.h @@ -21,6 +21,10 @@ */ #pragma once +// +// settings.cpp - Settings and EEPROM storage +// + #include "../inc/MarlinConfig.h" #if ENABLED(EEPROM_SETTINGS) diff --git a/Marlin/src/module/temperature.cpp b/Marlin/src/module/temperature.cpp index 1208e4e99..e8be3dbf0 100644 --- a/Marlin/src/module/temperature.cpp +++ b/Marlin/src/module/temperature.cpp @@ -361,7 +361,7 @@ volatile bool Temperature::raw_temps_ready = false; #endif #if ENABLED(PID_EXTRUSION_SCALING) - int16_t Temperature::lpq_len; // Initialized in configuration_store + int16_t Temperature::lpq_len; // Initialized in settings.cpp #endif #if HAS_PID_HEATING From bf316d9ec5e9472d78c6548a0a9e7a5988970e2c Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Fri, 21 Aug 2020 02:41:33 -0500 Subject: [PATCH 133/194] Fix Select Screen cancel destination --- Marlin/src/lcd/menu/menu.cpp | 5 ++++- Marlin/src/lcd/menu/menu.h | 1 + Marlin/src/lcd/menu/menu_advanced.cpp | 2 +- Marlin/src/lcd/menu/menu_configuration.cpp | 8 ++++---- Marlin/src/lcd/menu/menu_mixer.cpp | 2 +- 5 files changed, 11 insertions(+), 7 deletions(-) diff --git a/Marlin/src/lcd/menu/menu.cpp b/Marlin/src/lcd/menu/menu.cpp index 373051fd4..3a3cd0934 100644 --- a/Marlin/src/lcd/menu/menu.cpp +++ b/Marlin/src/lcd/menu/menu.cpp @@ -412,7 +412,10 @@ void MenuItem_confirm::select_screen( const bool ui_selection = ui.update_selection(), got_click = ui.use_click(); if (got_click || ui.should_draw()) { draw_select_screen(yes, no, ui_selection, pref, string, suff); - if (got_click) { ui_selection ? yesFunc() : noFunc(); } + if (got_click) { + selectFunc_t callFunc = ui_selection ? yesFunc : noFunc; + if (callFunc) callFunc(); else ui.goto_previous_screen(); + } ui.defer_status_screen(); } } diff --git a/Marlin/src/lcd/menu/menu.h b/Marlin/src/lcd/menu/menu.h index 7c3df79a1..3a29a87d5 100644 --- a/Marlin/src/lcd/menu/menu.h +++ b/Marlin/src/lcd/menu/menu.h @@ -542,6 +542,7 @@ class MenuItem_bool : public MenuEditItemBase { #define _CONFIRM_ITEM_INNER_P(PLABEL, V...) do { \ if (encoderLine == _thisItemNr && ui.use_click()) { \ + ui.save_previous_screen(); \ ui.goto_screen([]{MenuItem_confirm::select_screen(V);}); \ return; \ } \ diff --git a/Marlin/src/lcd/menu/menu_advanced.cpp b/Marlin/src/lcd/menu/menu_advanced.cpp index e41786107..942fb6756 100644 --- a/Marlin/src/lcd/menu/menu_advanced.cpp +++ b/Marlin/src/lcd/menu/menu_advanced.cpp @@ -614,7 +614,7 @@ void menu_advanced_settings() { #if ENABLED(EEPROM_SETTINGS) && DISABLED(SLIM_LCD_MENUS) CONFIRM_ITEM(MSG_INIT_EEPROM, MSG_BUTTON_INIT, MSG_BUTTON_CANCEL, - ui.init_eeprom, ui.goto_previous_screen, + ui.init_eeprom, nullptr, GET_TEXT(MSG_INIT_EEPROM), (const char *)nullptr, PSTR("?") ); #endif diff --git a/Marlin/src/lcd/menu/menu_configuration.cpp b/Marlin/src/lcd/menu/menu_configuration.cpp index 26120fc5d..e834009f7 100644 --- a/Marlin/src/lcd/menu/menu_configuration.cpp +++ b/Marlin/src/lcd/menu/menu_configuration.cpp @@ -224,11 +224,11 @@ void menu_advanced_settings(); ACTION_ITEM(MSG_BLTOUCH_STOW, bltouch._stow); ACTION_ITEM(MSG_BLTOUCH_SW_MODE, bltouch._set_SW_mode); #if ENABLED(BLTOUCH_LCD_VOLTAGE_MENU) - CONFIRM_ITEM(MSG_BLTOUCH_5V_MODE, MSG_BLTOUCH_5V_MODE, MSG_BUTTON_CANCEL, bltouch._set_5V_mode, ui.goto_previous_screen, GET_TEXT(MSG_BLTOUCH_MODE_CHANGE)); - CONFIRM_ITEM(MSG_BLTOUCH_OD_MODE, MSG_BLTOUCH_OD_MODE, MSG_BUTTON_CANCEL, bltouch._set_OD_mode, ui.goto_previous_screen, GET_TEXT(MSG_BLTOUCH_MODE_CHANGE)); + CONFIRM_ITEM(MSG_BLTOUCH_5V_MODE, MSG_BLTOUCH_5V_MODE, MSG_BUTTON_CANCEL, bltouch._set_5V_mode, nullptr, GET_TEXT(MSG_BLTOUCH_MODE_CHANGE)); + CONFIRM_ITEM(MSG_BLTOUCH_OD_MODE, MSG_BLTOUCH_OD_MODE, MSG_BUTTON_CANCEL, bltouch._set_OD_mode, nullptr, GET_TEXT(MSG_BLTOUCH_MODE_CHANGE)); ACTION_ITEM(MSG_BLTOUCH_MODE_STORE, bltouch._mode_store); - CONFIRM_ITEM(MSG_BLTOUCH_MODE_STORE_5V, MSG_BLTOUCH_MODE_STORE_5V, MSG_BUTTON_CANCEL, bltouch.mode_conv_5V, ui.goto_previous_screen, GET_TEXT(MSG_BLTOUCH_MODE_CHANGE)); - CONFIRM_ITEM(MSG_BLTOUCH_MODE_STORE_OD, MSG_BLTOUCH_MODE_STORE_OD, MSG_BUTTON_CANCEL, bltouch.mode_conv_OD, ui.goto_previous_screen, GET_TEXT(MSG_BLTOUCH_MODE_CHANGE)); + CONFIRM_ITEM(MSG_BLTOUCH_MODE_STORE_5V, MSG_BLTOUCH_MODE_STORE_5V, MSG_BUTTON_CANCEL, bltouch.mode_conv_5V, nullptr, GET_TEXT(MSG_BLTOUCH_MODE_CHANGE)); + CONFIRM_ITEM(MSG_BLTOUCH_MODE_STORE_OD, MSG_BLTOUCH_MODE_STORE_OD, MSG_BUTTON_CANCEL, bltouch.mode_conv_OD, nullptr, GET_TEXT(MSG_BLTOUCH_MODE_CHANGE)); ACTION_ITEM(MSG_BLTOUCH_MODE_ECHO, bltouch_report); #endif END_MENU(); diff --git a/Marlin/src/lcd/menu/menu_mixer.cpp b/Marlin/src/lcd/menu/menu_mixer.cpp index 3f57d257a..2bcde1c28 100644 --- a/Marlin/src/lcd/menu/menu_mixer.cpp +++ b/Marlin/src/lcd/menu/menu_mixer.cpp @@ -264,7 +264,7 @@ void menu_mixer() { LCD_MESSAGEPGM(MSG_VTOOLS_RESET); ui.return_to_status(); }, - ui.goto_previous_screen, + nullptr, GET_TEXT(MSG_RESET_VTOOLS), (const char *)nullptr, PSTR("?") ); From ba6c41b7985a35d9ede4ff35a65f596676a0c7e0 Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Fri, 21 Aug 2020 02:42:50 -0500 Subject: [PATCH 134/194] Apply specific menu item types --- Marlin/src/lcd/menu/menu_main.cpp | 26 +++++++++++--------------- 1 file changed, 11 insertions(+), 15 deletions(-) diff --git a/Marlin/src/lcd/menu/menu_main.cpp b/Marlin/src/lcd/menu/menu_main.cpp index 9a1d2ece6..fd86aaf11 100644 --- a/Marlin/src/lcd/menu/menu_main.cpp +++ b/Marlin/src/lcd/menu/menu_main.cpp @@ -138,13 +138,11 @@ void menu_main() { if (card_detected) { if (!card_open) { SUBMENU(MSG_MEDIA_MENU, TERN(PASSWORD_ON_SD_PRINT_MENU, password.media_gatekeeper, menu_media)); - MENU_ITEM(gcode, - #if PIN_EXISTS(SD_DETECT) - MSG_CHANGE_MEDIA, M21_STR - #else - MSG_RELEASE_MEDIA, PSTR("M22") - #endif - ); + #if PIN_EXISTS(SD_DETECT) + GCODES_ITEM(MSG_CHANGE_MEDIA, M21_STR); + #else + GCODES_ITEM(MSG_RELEASE_MEDIA, PSTR("M22")); + #endif } } else { @@ -172,7 +170,7 @@ void menu_main() { #endif #if HAS_POWER_MONITOR - MENU_ITEM(submenu, MSG_POWER_MONITOR, menu_power_monitor); + SUBMENU(MSG_POWER_MONITOR, menu_power_monitor); #endif #if ENABLED(MIXING_EXTRUDER) @@ -237,13 +235,11 @@ void menu_main() { if (card_detected) { if (!card_open) { - MENU_ITEM(gcode, - #if PIN_EXISTS(SD_DETECT) - MSG_CHANGE_MEDIA, M21_STR - #else - MSG_RELEASE_MEDIA, PSTR("M22") - #endif - ); + #if PIN_EXISTS(SD_DETECT) + GCODES_ITEM(MSG_CHANGE_MEDIA, M21_STR); + #else + GCODES_ITEM(MSG_RELEASE_MEDIA, PSTR("M22")); + #endif SUBMENU(MSG_MEDIA_MENU, TERN(PASSWORD_ON_SD_PRINT_MENU, password.media_gatekeeper, menu_media)); } } From db8522b4112483e5d5e30151328d03b8a5dbfb16 Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Fri, 21 Aug 2020 02:52:05 -0500 Subject: [PATCH 135/194] Fix up mixer menu display --- Marlin/src/lcd/dogm/ultralcd_DOGM.cpp | 1 + Marlin/src/lcd/lcdprint.h | 11 ++-- Marlin/src/lcd/menu/menu_addon.h | 7 ++- Marlin/src/lcd/menu/menu_mixer.cpp | 77 +++++++++++---------------- 4 files changed, 42 insertions(+), 54 deletions(-) diff --git a/Marlin/src/lcd/dogm/ultralcd_DOGM.cpp b/Marlin/src/lcd/dogm/ultralcd_DOGM.cpp index d17c336ee..7ebabd695 100644 --- a/Marlin/src/lcd/dogm/ultralcd_DOGM.cpp +++ b/Marlin/src/lcd/dogm/ultralcd_DOGM.cpp @@ -439,6 +439,7 @@ void MarlinUI::clear_lcd() { } // Automatically cleared by Picture Loop lcd_put_u8str(value); } } + TERN_(USE_BIG_EDIT_FONT, ui.set_font(FONT_MENU)); } inline void draw_boxed_string(const u8g_uint_t x, const u8g_uint_t y, PGM_P const pstr, const bool inv) { diff --git a/Marlin/src/lcd/lcdprint.h b/Marlin/src/lcd/lcdprint.h index 00139808a..031d467bf 100644 --- a/Marlin/src/lcd/lcdprint.h +++ b/Marlin/src/lcd/lcdprint.h @@ -76,8 +76,8 @@ #define INFO_FONT_HEIGHT (INFO_FONT_ASCENT + INFO_FONT_DESCENT) #define INFO_FONT_WIDTH 6 - #define SETCURSOR(col, row) lcd_moveto(col * (MENU_FONT_WIDTH), (row + 1) * (MENU_FONT_HEIGHT)) - #define SETCURSOR_RJ(len, row) lcd_moveto(LCD_PIXEL_WIDTH - (len) * (MENU_FONT_WIDTH), (row + 1) * (MENU_FONT_HEIGHT)) + #define SETCURSOR(col, row) lcd_moveto((col) * (MENU_FONT_WIDTH), ((row) + 1) * (MENU_FONT_HEIGHT)) + #define SETCURSOR_RJ(len, row) lcd_moveto(LCD_PIXEL_WIDTH - (len) * (MENU_FONT_WIDTH), ((row) + 1) * (MENU_FONT_HEIGHT)) #else @@ -94,12 +94,13 @@ #define LCD_PIXEL_WIDTH LCD_WIDTH #define LCD_PIXEL_HEIGHT LCD_HEIGHT - #define SETCURSOR(col, row) lcd_moveto(col, row) - #define SETCURSOR_RJ(len, row) lcd_moveto(LCD_WIDTH - (len), row) + #define SETCURSOR(col, row) lcd_moveto(col, row) + #define SETCURSOR_RJ(len, row) SETCURSOR(LCD_WIDTH - (len), row) #endif -#define SETCURSOR_X(col) SETCURSOR(col, _lcdLineNr) +#define SETCURSOR_X(col) SETCURSOR(col, _lcdLineNr) +#define SETCURSOR_X_RJ(len) SETCURSOR_RJ(len, _lcdLineNr) #define START_OF_UTF8_CHAR(C) (((C) & 0xC0u) != 0x80u) int lcd_glyph_height(); diff --git a/Marlin/src/lcd/menu/menu_addon.h b/Marlin/src/lcd/menu/menu_addon.h index b6eb8e163..73e7061bf 100644 --- a/Marlin/src/lcd/menu/menu_addon.h +++ b/Marlin/src/lcd/menu/menu_addon.h @@ -23,8 +23,11 @@ #include "../lcdprint.h" -#define MENU_ITEM_ADDON_START(X) do{ \ +#define _MENU_ITEM_ADDON_START(N,X) do{ \ if (ui.should_draw() && _menuLineNr == _thisItemNr - 1) { \ - SETCURSOR_X(X) + N(X) + +#define MENU_ITEM_ADDON_START(X) _MENU_ITEM_ADDON_START(SETCURSOR_X, X) +#define MENU_ITEM_ADDON_START_RJ(X) _MENU_ITEM_ADDON_START(SETCURSOR_X_RJ, X) #define MENU_ITEM_ADDON_END() } }while(0) diff --git a/Marlin/src/lcd/menu/menu_mixer.cpp b/Marlin/src/lcd/menu/menu_mixer.cpp index 2bcde1c28..abb56e4c5 100644 --- a/Marlin/src/lcd/menu/menu_mixer.cpp +++ b/Marlin/src/lcd/menu/menu_mixer.cpp @@ -37,52 +37,33 @@ #if ENABLED(GRADIENT_MIX) - void lcd_mixer_gradient_z_start_edit() { + void _lcd_mixer_gradient_z_edit(const bool isend) { ui.defer_status_screen(); ENCODER_RATE_MULTIPLY(true); - if (ui.encoderPosition != 0) { - mixer.gradient.start_z += float(int32_t(ui.encoderPosition)) * 0.1; + + float &zvar = isend ? mixer.gradient.end_z : mixer.gradient.start_z; + + if (ui.encoderPosition) { + zvar += float(int32_t(ui.encoderPosition)) * 0.1; ui.encoderPosition = 0; - NOLESS(mixer.gradient.start_z, 0); - NOMORE(mixer.gradient.start_z, Z_MAX_POS); + NOLESS(zvar, 0); + NOMORE(zvar, Z_MAX_POS); } + if (ui.should_draw()) { - char tmp[21]; - strcpy_P(tmp, GET_TEXT(MSG_START_Z)); - sprintf_P(tmp + strlen(tmp), PSTR(": %4d.%d mm"), int(mixer.gradient.start_z), int(mixer.gradient.start_z * 10) % 10); - SETCURSOR(2, (LCD_HEIGHT - 1) / 2); + char tmp[16]; + SETCURSOR(1, (LCD_HEIGHT - 1) / 2); + lcd_put_u8str_P(isend ? GET_TEXT(MSG_END_Z) : GET_TEXT(MSG_START_Z)); + sprintf_P(tmp, PSTR("%4d.%d mm"), int(zvar), int(zvar * 10) % 10); + SETCURSOR_RJ(9, (LCD_HEIGHT - 1) / 2); lcd_put_u8str(tmp); } if (ui.lcd_clicked) { - if (mixer.gradient.start_z > mixer.gradient.end_z) - mixer.gradient.end_z = mixer.gradient.start_z; - mixer.refresh_gradient(); - ui.goto_previous_screen(); - } - } - - void lcd_mixer_gradient_z_end_edit() { - ui.defer_status_screen(); - ENCODER_RATE_MULTIPLY(true); - if (ui.encoderPosition != 0) { - mixer.gradient.end_z += float(int32_t(ui.encoderPosition)) * 0.1; - ui.encoderPosition = 0; - NOLESS(mixer.gradient.end_z, 0); - NOMORE(mixer.gradient.end_z, Z_MAX_POS); - } - - if (ui.should_draw()) { - char tmp[21]; - strcpy_P(tmp, GET_TEXT(MSG_END_Z)); - sprintf_P(tmp + strlen(tmp), PSTR(": %4d.%d mm"), int(mixer.gradient.end_z), int(mixer.gradient.end_z * 10) % 10); - SETCURSOR(2, (LCD_HEIGHT - 1) / 2); - lcd_put_u8str(tmp); - } - - if (ui.lcd_clicked) { - if (mixer.gradient.end_z < mixer.gradient.start_z) - mixer.gradient.start_z = mixer.gradient.end_z; + if (isend && zvar < mixer.gradient.start_z) + mixer.gradient.start_z = zvar; + else if (!isend && zvar > mixer.gradient.end_z) + mixer.gradient.end_z = zvar; mixer.refresh_gradient(); ui.goto_previous_screen(); } @@ -96,19 +77,21 @@ EDIT_ITEM(int8, MSG_END_VTOOL, &mixer.gradient.end_vtool, 0, MIXING_VIRTUAL_TOOLS - 1, mixer.refresh_gradient); #if ENABLED(GRADIENT_VTOOL) - EDIT_ITEM(int8, MSG_GRADIENT_ALIAS, &mixer.gradient.vtool_index, 0, MIXING_VIRTUAL_TOOLS - 1, mixer.refresh_gradient); + EDIT_ITEM(int8, MSG_GRADIENT_ALIAS, &mixer.gradient.vtool_index, -1, MIXING_VIRTUAL_TOOLS - 1, mixer.refresh_gradient); #endif char tmp[18]; - SUBMENU(MSG_START_Z, lcd_mixer_gradient_z_start_edit); - MENU_ITEM_ADDON_START(9); + PGM_P const slabel = GET_TEXT(MSG_START_Z); + SUBMENU_P(slabel, []{ _lcd_mixer_gradient_z_edit(false); }); + MENU_ITEM_ADDON_START_RJ(11); sprintf_P(tmp, PSTR("%4d.%d mm"), int(mixer.gradient.start_z), int(mixer.gradient.start_z * 10) % 10); lcd_put_u8str(tmp); MENU_ITEM_ADDON_END(); - SUBMENU(MSG_END_Z, lcd_mixer_gradient_z_end_edit); - MENU_ITEM_ADDON_START(9); + PGM_P const elabel = GET_TEXT(MSG_END_Z); + SUBMENU_P(elabel, []{ _lcd_mixer_gradient_z_edit(true); }); + MENU_ITEM_ADDON_START_RJ(11); sprintf_P(tmp, PSTR("%4d.%d mm"), int(mixer.gradient.end_z), int(mixer.gradient.end_z * 10) % 10); lcd_put_u8str(tmp); MENU_ITEM_ADDON_END(); @@ -125,7 +108,7 @@ static uint8_t v_index; char tmp[20]; // "100%_100%" sprintf_P(tmp, PSTR("%3d%% %3d%%"), int(mixer.mix[0]), int(mixer.mix[1])); SETCURSOR(2, y); lcd_put_u8str_P(GET_TEXT(MSG_MIX)); - SETCURSOR_RJ(9, y); lcd_put_u8str(tmp); + SETCURSOR_RJ(10, y); lcd_put_u8str(tmp); } #endif @@ -157,7 +140,7 @@ void lcd_mixer_mix_edit() { #if HAS_DUAL_MIXING && !CHANNEL_MIX_EDITING // Adjust 2-channel mix from the encoder - if (ui.encoderPosition != 0) { + if (ui.encoderPosition) { mixer.mix[0] += int32_t(ui.encoderPosition); ui.encoderPosition = 0; if (mixer.mix[0] < 0) mixer.mix[0] += 101; @@ -241,9 +224,9 @@ void menu_mixer() { #if HAS_DUAL_MIXING { - char tmp[10]; + char tmp[11]; SUBMENU(MSG_MIX, lcd_mixer_mix_edit); - MENU_ITEM_ADDON_START(10); + MENU_ITEM_ADDON_START_RJ(9); mixer.update_mix_from_vtool(); sprintf_P(tmp, PSTR("%3d;%3d%%"), int(mixer.mix[0]), int(mixer.mix[1])); lcd_put_u8str(tmp); @@ -272,7 +255,7 @@ void menu_mixer() { { char tmp[13]; SUBMENU(MSG_GRADIENT, lcd_mixer_edit_gradient_menu); - MENU_ITEM_ADDON_START(10); + MENU_ITEM_ADDON_START_RJ(9); sprintf_P(tmp, PSTR("T%i->T%i"), mixer.gradient.start_vtool, mixer.gradient.end_vtool); lcd_put_u8str(tmp); MENU_ITEM_ADDON_END(); From d10b11ad9f462d150fcb0172d67282559db41098 Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Fri, 21 Aug 2020 16:22:53 -0500 Subject: [PATCH 136/194] Allow 'ghtp' to set a specific remote --- buildroot/share/git/ghtp | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/buildroot/share/git/ghtp b/buildroot/share/git/ghtp index 3c0e21e37..14afd8a27 100755 --- a/buildroot/share/git/ghtp +++ b/buildroot/share/git/ghtp @@ -5,13 +5,15 @@ # Set all remotes in the current repo to HTTPS or SSH connection. # Useful when switching environments, using public wifi, etc. # +# Optionally, specify a particular remote to change. +# GH_SSH="git@github\.com:" GH_HTTPS="https:\/\/github\.com\/" case "$1" in - -[Hh]) TYPE=HTTPS ; MATCH="git@" ; FORMULA="$GH_SSH/$GH_HTTPS" ;; - -[Ss]) TYPE=SSH ; MATCH="https:" ; FORMULA="$GH_HTTPS/$GH_SSH" ;; + -[Hh]) TYPE=HTTPS ; MATCH="git@" ; REPLACE="$GH_SSH/$GH_HTTPS" ;; + -[Ss]) TYPE=SSH ; MATCH="https:" ; REPLACE="$GH_HTTPS/$GH_SSH" ;; *) echo "Usage: `basename $0` -h | -s" 1>&2 echo -e " \e[0;92m-h\e[0m to switch to HTTPS" 1>&2 @@ -22,12 +24,14 @@ esac AWK=$(which gawk || which awk) -REMOTES=$(git remote -v | egrep "\t$MATCH" | "$AWK" '{print $1 " " $2}' | sort -u | sed "s/$FORMULA/") +# Match all or specified remotes of the other type +REGEX="\t$MATCH" ; [[ $# > 1 ]] && REGEX="^$2$REGEX" -if [[ -z $REMOTES ]]; then - echo "Nothing to do." ; exit -fi +REMOTES=$(git remote -v | egrep "$REGEX" | "$AWK" '{print $1 " " $2}' | sort -u | sed "s/$REPLACE/") +[[ -z $REMOTES ]] && { echo "Nothing to do." ; exit ; } + +# Update a remote for each results pair echo "$REMOTES" | xargs -n2 git remote set-url echo -n "Remotes set to $TYPE: " From 7e65464dd7812479042a3c1fd0e75a0a8cd15b1b Mon Sep 17 00:00:00 2001 From: Keith Bennett <13375512+thisiskeithb@users.noreply.github.com> Date: Fri, 21 Aug 2020 15:04:32 -0700 Subject: [PATCH 137/194] Fix M512 comment (#19108) --- Marlin/Configuration.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Marlin/Configuration.h b/Marlin/Configuration.h index dc0416d51..7f7931ae7 100644 --- a/Marlin/Configuration.h +++ b/Marlin/Configuration.h @@ -1667,7 +1667,7 @@ #define PASSWORD_LENGTH 4 // (#) Number of digits (1-9). 3 or 4 is recommended #define PASSWORD_ON_STARTUP #define PASSWORD_UNLOCK_GCODE // Unlock with the M511 P command. Disable to prevent brute-force attack. - #define PASSWORD_CHANGE_GCODE // Change the password with M512 P N. + #define PASSWORD_CHANGE_GCODE // Change the password with M512 P S. //#define PASSWORD_ON_SD_PRINT_MENU // This does not prevent gcodes from running //#define PASSWORD_AFTER_SD_PRINT_END //#define PASSWORD_AFTER_SD_PRINT_ABORT From e2ee05c97683e9b88b8979590144ee0bfdc1e23b Mon Sep 17 00:00:00 2001 From: BigTreeTech <38851044+bigtreetech@users.noreply.github.com> Date: Sat, 22 Aug 2020 06:06:51 +0800 Subject: [PATCH 138/194] Broadcast SD Print Completion (#19102) --- Marlin/src/gcode/sd/M1001.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/Marlin/src/gcode/sd/M1001.cpp b/Marlin/src/gcode/sd/M1001.cpp index 54bc452f9..b28429f63 100644 --- a/Marlin/src/gcode/sd/M1001.cpp +++ b/Marlin/src/gcode/sd/M1001.cpp @@ -75,7 +75,10 @@ void GcodeSuite::M1001() { TERN_(POWER_LOSS_RECOVERY, recovery.purge()); // Announce SD file completion - SERIAL_ECHOLNPGM(STR_FILE_PRINTED); + { + PORT_REDIRECT(SERIAL_BOTH); + SERIAL_ECHOLNPGM(STR_FILE_PRINTED); + } // Update the status LED color #if HAS_LEDS_OFF_FLAG From 4f67642122059a9270f9e3690978248355f88e72 Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Fri, 21 Aug 2020 05:21:34 -0500 Subject: [PATCH 139/194] Header for individual menus --- Marlin/src/lcd/menu/menu.cpp | 11 - Marlin/src/lcd/menu/menu.h | 449 +----------------- Marlin/src/lcd/menu/menu_advanced.cpp | 2 +- Marlin/src/lcd/menu/menu_backlash.cpp | 2 +- Marlin/src/lcd/menu/menu_bed_corners.cpp | 2 +- Marlin/src/lcd/menu/menu_bed_leveling.cpp | 2 +- Marlin/src/lcd/menu/menu_cancelobject.cpp | 2 +- Marlin/src/lcd/menu/menu_configuration.cpp | 2 +- Marlin/src/lcd/menu/menu_custom.cpp | 2 +- Marlin/src/lcd/menu/menu_delta_calibrate.cpp | 2 +- Marlin/src/lcd/menu/menu_filament.cpp | 2 +- Marlin/src/lcd/menu/menu_game.cpp | 2 +- Marlin/src/lcd/menu/menu_info.cpp | 2 +- Marlin/src/lcd/menu/menu_item.h | 450 +++++++++++++++++++ Marlin/src/lcd/menu/menu_job_recovery.cpp | 2 +- Marlin/src/lcd/menu/menu_led.cpp | 2 +- Marlin/src/lcd/menu/menu_main.cpp | 2 +- Marlin/src/lcd/menu/menu_media.cpp | 2 +- Marlin/src/lcd/menu/menu_mixer.cpp | 2 +- Marlin/src/lcd/menu/menu_mmu2.cpp | 2 +- Marlin/src/lcd/menu/menu_motion.cpp | 2 +- Marlin/src/lcd/menu/menu_password.cpp | 2 +- Marlin/src/lcd/menu/menu_power_monitor.cpp | 2 +- Marlin/src/lcd/menu/menu_spindle_laser.cpp | 2 +- Marlin/src/lcd/menu/menu_temperature.cpp | 2 +- Marlin/src/lcd/menu/menu_tmc.cpp | 2 +- Marlin/src/lcd/menu/menu_touch_screen.cpp | 2 +- Marlin/src/lcd/menu/menu_tune.cpp | 2 +- Marlin/src/lcd/menu/menu_ubl.cpp | 2 +- Marlin/src/lcd/tft/touch.cpp | 5 +- Marlin/src/lcd/ultralcd.cpp | 2 + Marlin/src/lcd/ultralcd.h | 3 + 32 files changed, 494 insertions(+), 478 deletions(-) create mode 100644 Marlin/src/lcd/menu/menu_item.h diff --git a/Marlin/src/lcd/menu/menu.cpp b/Marlin/src/lcd/menu/menu.cpp index 3a3cd0934..309ad06a4 100644 --- a/Marlin/src/lcd/menu/menu.cpp +++ b/Marlin/src/lcd/menu/menu.cpp @@ -99,12 +99,6 @@ void MarlinUI::_goto_previous_screen(TERN_(TURBO_BACK_MENU_ITEM, const bool is_b return_to_status(); } -//////////////////////////////////////////// -/////////// Common Menu Actions //////////// -//////////////////////////////////////////// - -void MenuItem_gcode::action(PGM_P const, PGM_P const pgcode) { queue.inject_P(pgcode); } - //////////////////////////////////////////// /////////// Menu Editing Actions /////////// //////////////////////////////////////////// @@ -193,11 +187,6 @@ DEFINE_MENU_EDIT_ITEM(float52sign); // +123.45 DEFINE_MENU_EDIT_ITEM(long5); // 12345 right-justified DEFINE_MENU_EDIT_ITEM(long5_25); // 12345 right-justified (25 increment) -void MenuItem_bool::action(PGM_P const, bool * const ptr, screenFunc_t callback) { - *ptr ^= true; ui.refresh(); - if (callback) (*callback)(); -} - //////////////////////////////////////////// ///////////////// Menu Tree //////////////// //////////////////////////////////////////// diff --git a/Marlin/src/lcd/menu/menu.h b/Marlin/src/lcd/menu/menu.h index 3a29a87d5..c457eaf29 100644 --- a/Marlin/src/lcd/menu/menu.h +++ b/Marlin/src/lcd/menu/menu.h @@ -43,14 +43,6 @@ typedef void (*selectFunc_t)(); void _lcd_zoffset_overlay_gfx(const float zvalue); #endif -#if HAS_BED_PROBE - #if Z_PROBE_OFFSET_RANGE_MIN >= -9 && Z_PROBE_OFFSET_RANGE_MAX <= 9 - #define LCD_Z_OFFSET_TYPE float43 // Values from -9.000 to +9.000 - #else - #define LCD_Z_OFFSET_TYPE float42_52 // Values from -99.99 to 99.99 - #endif -#endif - #if ENABLED(BABYSTEP_ZPROBE_OFFSET) && Z_PROBE_OFFSET_RANGE_MIN >= -9 && Z_PROBE_OFFSET_RANGE_MAX <= 9 #define BABYSTEP_TO_STR(N) ftostr43sign(N) #elif ENABLED(BABYSTEPPING) @@ -81,13 +73,14 @@ class MenuItemBase { } }; +// STATIC_ITEM(LABEL,...) class MenuItem_static : public MenuItemBase { public: static void draw(const uint8_t row, PGM_P const pstr, const uint8_t style=SS_DEFAULT, const char * const vstr=nullptr); }; -// CONFIRM_ITEM(LABEL,Y,N,FY,FN,V...), -// YESNO_ITEM(LABEL,FY,FN,V...) +// CONFIRM_ITEM(LABEL,Y,N,FY,FN,...), +// YESNO_ITEM(LABEL,FY,FN,...) class MenuItem_confirm : public MenuItemBase { public: FORCE_INLINE static void draw(const bool sel, const uint8_t row, PGM_P const pstr, ...) { @@ -123,60 +116,6 @@ class MenuItem_confirm : public MenuItemBase { } }; -// BACK_ITEM(LABEL) -class MenuItem_back : public MenuItemBase { - public: - FORCE_INLINE static void draw(const bool sel, const uint8_t row, PGM_P const pstr) { - _draw(sel, row, pstr, LCD_STR_UPLEVEL[0], LCD_STR_UPLEVEL[0]); - } - // Back Item action goes back one step in history - FORCE_INLINE static void action(PGM_P const=nullptr) { ui.go_back(); } -}; - -// SUBMENU(LABEL, screen_handler) -class MenuItem_submenu : public MenuItemBase { - public: - FORCE_INLINE static void draw(const bool sel, const uint8_t row, PGM_P const pstr, ...) { - _draw(sel, row, pstr, '>', LCD_STR_ARROW_RIGHT[0]); - } - static inline void action(PGM_P const, const screenFunc_t func) { ui.save_previous_screen(); ui.goto_screen(func); } -}; - -// Any menu item that invokes an immediate action -class MenuItem_button : public MenuItemBase { - public: - // Button-y Items are selectable lines with no other indicator - static inline void draw(const bool sel, const uint8_t row, PGM_P const pstr, ...) { - _draw(sel, row, pstr, '>', ' '); - } -}; - -// GCODES_ITEM(LABEL, GCODES) -class MenuItem_gcode : public MenuItem_button { - public: - FORCE_INLINE static void draw(const bool sel, const uint8_t row, PGM_P const pstr, ...) { - _draw(sel, row, pstr, '>', ' '); - } - static void action(PGM_P const, const char * const pgcode); - static inline void action(PGM_P const pstr, const uint8_t, const char * const pgcode) { action(pstr, pgcode); } -}; - -// ACTION_ITEM(LABEL, FUNC) -class MenuItem_function : public MenuItem_button { - public: - //static inline void action(PGM_P const, const uint8_t, const menuAction_t func) { (*func)(); }; - static inline void action(PGM_P const, const menuAction_t func) { (*func)(); }; -}; - -#if ENABLED(SDSUPPORT) - class CardReader; - class MenuItem_sdbase { - public: - // Implemented for HD44780 and DOGM - static void draw(const bool sel, const uint8_t row, PGM_P const pstr, CardReader &theCard, const bool isDir); - }; -#endif - //////////////////////////////////////////// ///////////// Edit Menu Items ////////////// //////////////////////////////////////////// @@ -233,361 +172,15 @@ class MenuEditItemBase : public MenuItemBase { static inline void draw_edit_screen(const char* const value) { draw_edit_screen(editLabel, value); } }; -// Template for specific Menu Edit Item Types -template -class TMenuEditItem : MenuEditItemBase { - private: - typedef typename NAME::type_t type_t; - static inline float scale(const float value) { return NAME::scale(value); } - static inline float unscale(const float value) { return NAME::unscale(value); } - static const char* to_string(const int32_t value) { return NAME::strfunc(unscale(value)); } - static void load(void *ptr, const int32_t value) { *((type_t*)ptr) = unscale(value); } - public: - FORCE_INLINE static void draw(const bool sel, const uint8_t row, PGM_P const pstr, type_t * const data, ...) { - MenuEditItemBase::draw(sel, row, pstr, NAME::strfunc(*(data))); - } - FORCE_INLINE static void draw(const bool sel, const uint8_t row, PGM_P const pstr, type_t (*pget)(), ...) { - MenuEditItemBase::draw(sel, row, pstr, NAME::strfunc(pget())); - } - // Edit screen for this type of item - static void edit_screen() { MenuEditItemBase::edit_screen(to_string, load); } - static void action( - PGM_P const pstr, // Edit label - type_t * const ptr, // Value pointer - const type_t minValue, // Value range - const type_t maxValue, - const screenFunc_t callback=nullptr, // Value update callback - const bool live=false // Callback during editing - ) { - // Make sure minv and maxv fit within int32_t - const int32_t minv = _MAX(scale(minValue), INT32_MIN), - maxv = _MIN(scale(maxValue), INT32_MAX); - goto_edit_screen(pstr, ptr, minv, maxv - minv, scale(*ptr) - minv, - edit_screen, callback, live); - } -}; - -// Provide a set of Edit Item Types which encompass a primitive -// type, a string function, and a scale factor for edit and display. -// These items call the Edit Item draw method passing the prepared string. -#define __DOFIXfloat PROBE() -#define _DOFIX(TYPE,V) TYPE(TERN(IS_PROBE(__DOFIX##TYPE),FIXFLOAT(V),(V))) -#define DEFINE_MENU_EDIT_ITEM_TYPE(NAME, TYPE, STRFUNC, SCALE, V...) \ - struct MenuEditItemInfo_##NAME { \ - typedef TYPE type_t; \ - static inline float scale(const float value) { return value * (SCALE) + (V+0); } \ - static inline float unscale(const float value) { return value / (SCALE) + (V+0); } \ - static inline const char* strfunc(const float value) { return STRFUNC(_DOFIX(TYPE,value)); } \ - }; \ - typedef TMenuEditItem MenuItem_##NAME - -// NAME TYPE STRFUNC SCALE +ROUND -DEFINE_MENU_EDIT_ITEM_TYPE(percent ,uint8_t ,ui8tostr4pctrj , 100.f/255.f, 0.5f); // 100% right-justified -DEFINE_MENU_EDIT_ITEM_TYPE(int3 ,int16_t ,i16tostr3rj , 1 ); // 123, -12 right-justified -DEFINE_MENU_EDIT_ITEM_TYPE(int4 ,int16_t ,i16tostr4signrj , 1 ); // 1234, -123 right-justified -DEFINE_MENU_EDIT_ITEM_TYPE(int8 ,int8_t ,i8tostr3rj , 1 ); // 123, -12 right-justified -DEFINE_MENU_EDIT_ITEM_TYPE(uint8 ,uint8_t ,ui8tostr3rj , 1 ); // 123 right-justified -DEFINE_MENU_EDIT_ITEM_TYPE(uint16_3 ,uint16_t ,ui16tostr3rj , 1 ); // 123 right-justified -DEFINE_MENU_EDIT_ITEM_TYPE(uint16_4 ,uint16_t ,ui16tostr4rj , 0.1f ); // 1234 right-justified -DEFINE_MENU_EDIT_ITEM_TYPE(uint16_5 ,uint16_t ,ui16tostr5rj , 0.01f ); // 12345 right-justified -DEFINE_MENU_EDIT_ITEM_TYPE(float3 ,float ,ftostr3 , 1 ); // 123 right-justified -DEFINE_MENU_EDIT_ITEM_TYPE(float42_52 ,float ,ftostr42_52 , 100 ); // _2.34, 12.34, -2.34 or 123.45, -23.45 -DEFINE_MENU_EDIT_ITEM_TYPE(float43 ,float ,ftostr43sign ,1000 ); // -1.234, _1.234, +1.234 -DEFINE_MENU_EDIT_ITEM_TYPE(float5 ,float ,ftostr5rj , 1 ); // 12345 right-justified -DEFINE_MENU_EDIT_ITEM_TYPE(float5_25 ,float ,ftostr5rj , 0.04f ); // 12345 right-justified (25 increment) -DEFINE_MENU_EDIT_ITEM_TYPE(float51 ,float ,ftostr51rj , 10 ); // 1234.5 right-justified -DEFINE_MENU_EDIT_ITEM_TYPE(float31sign ,float ,ftostr31sign , 10 ); // +12.3 -DEFINE_MENU_EDIT_ITEM_TYPE(float41sign ,float ,ftostr41sign , 10 ); // +123.4 -DEFINE_MENU_EDIT_ITEM_TYPE(float51sign ,float ,ftostr51sign , 10 ); // +1234.5 -DEFINE_MENU_EDIT_ITEM_TYPE(float52sign ,float ,ftostr52sign , 100 ); // +123.45 -DEFINE_MENU_EDIT_ITEM_TYPE(long5 ,uint32_t ,ftostr5rj , 0.01f ); // 12345 right-justified -DEFINE_MENU_EDIT_ITEM_TYPE(long5_25 ,uint32_t ,ftostr5rj , 0.04f ); // 12345 right-justified (25 increment) - -class MenuItem_bool : public MenuEditItemBase { - public: - FORCE_INLINE static void draw(const bool sel, const uint8_t row, PGM_P const pstr, const bool onoff) { - MenuEditItemBase::draw(sel, row, pstr, onoff ? GET_TEXT(MSG_LCD_ON) : GET_TEXT(MSG_LCD_OFF), true); - } - FORCE_INLINE static void draw(const bool sel, const uint8_t row, PGM_P const pstr, bool * const data, ...) { - draw(sel, row, pstr, *data); - } - FORCE_INLINE static void draw(const bool sel, const uint8_t row, PGM_P const pstr, PGM_P const, bool (*pget)(), ...) { - draw(sel, row, pstr, pget()); - } - static void action(PGM_P const pstr, bool * const ptr, const screenFunc_t callbackFunc=nullptr); -}; - -//////////////////////////////////////////// -//////////// Menu System Macros //////////// -//////////////////////////////////////////// - -/** - * Marlin's native menu screens work by running a loop from the top visible line index - * to the bottom visible line index (according to how much the screen has been scrolled). - * This complete loop is done on every menu screen call. - * - * The menu system is highly dynamic, so it doesn't know ahead of any menu loop which - * items will be visible or hidden, so menu items don't have a fixed index number. - * - * During the loop, each menu item checks to see if its line is the current one. If it is, - * then it checks to see if a click has arrived so it can run its action. If the action - * doesn't redirect to another screen then the menu item calls its draw method. - * - * Menu item add-ons can do whatever they like. - * - * This mixture of drawing and processing inside a loop has the advantage that a single - * line can be used to represent a menu item, and that is the rationale for this design. - * - * One of the pitfalls of this method is that DOGM displays call the screen handler 2x, - * 4x, or 8x per screen update to draw just one segment of the screen. As a result, any - * menu item that exists in two screen segments is drawn and processed twice per screen - * update. With each item processed 5, 10, 20, or 40 times the logic has to be simple. - * - * To avoid repetition and side-effects, function calls for testing menu item conditions - * should be done before the menu loop (START_MENU / START_SCREEN). - */ - -/** - * SCREEN_OR_MENU_LOOP generates header code for a screen or menu - * - * encoderTopLine is the top menu line to display - * _lcdLineNr is the index of the LCD line (e.g., 0-3) - * _menuLineNr is the menu item to draw and process - * _thisItemNr is the index of each MENU_ITEM or STATIC_ITEM - */ -#define SCREEN_OR_MENU_LOOP(IS_MENU) \ - scroll_screen(IS_MENU ? 1 : LCD_HEIGHT, IS_MENU); \ - int8_t _menuLineNr = encoderTopLine, _thisItemNr = 0; \ - bool _skipStatic = IS_MENU; UNUSED(_thisItemNr); \ - for (int8_t _lcdLineNr = 0; _lcdLineNr < LCD_HEIGHT; _lcdLineNr++, _menuLineNr++) { \ - _thisItemNr = 0 - -/** - * START_SCREEN Opening code for a screen having only static items. - * Do simplified scrolling of the entire screen. - * - * START_MENU Opening code for a screen with menu items. - * Scroll as-needed to keep the selected line in view. - */ -#define START_SCREEN() SCREEN_OR_MENU_LOOP(false) -#define START_MENU() SCREEN_OR_MENU_LOOP(true) -#define NEXT_ITEM() (++_thisItemNr) -#define SKIP_ITEM() NEXT_ITEM() -#define END_SCREEN() } screen_items = _thisItemNr -#define END_MENU() END_SCREEN(); UNUSED(_skipStatic) - -#if ENABLED(ENCODER_RATE_MULTIPLIER) - #define ENCODER_RATE_MULTIPLY(F) (ui.encoderRateMultiplierEnabled = F) - #define _MENU_ITEM_MULTIPLIER_CHECK(USE_MULTIPLIER) do{ if (USE_MULTIPLIER) ui.enable_encoder_multiplier(true); }while(0) - //#define ENCODER_RATE_MULTIPLIER_DEBUG // If defined, output the encoder steps per second value -#else - #define ENCODER_RATE_MULTIPLY(F) NOOP - #define _MENU_ITEM_MULTIPLIER_CHECK(USE_MULTIPLIER) +#if ENABLED(SDSUPPORT) + class CardReader; + class MenuItem_sdbase { + public: + // Implemented for HD44780 and DOGM + static void draw(const bool sel, const uint8_t row, PGM_P const pstr, CardReader &theCard, const bool isDir); + }; #endif -/** - * MENU_ITEM generates draw & handler code for a menu item, potentially calling: - * - * MenuItem_::draw(sel, row, label, arg3...) - * MenuItem_::action(arg3...) - * - * Examples: - * BACK_ITEM(MSG_INFO_SCREEN) - * MenuItem_back::action(plabel, ...) - * MenuItem_back::draw(sel, row, plabel, ...) - * - * ACTION_ITEM(MSG_PAUSE_PRINT, lcd_sdcard_pause) - * MenuItem_function::action(plabel, lcd_sdcard_pause) - * MenuItem_function::draw(sel, row, plabel, lcd_sdcard_pause) - * - * EDIT_ITEM(int3, MSG_SPEED, &feedrate_percentage, 10, 999) - * MenuItem_int3::action(plabel, &feedrate_percentage, 10, 999) - * MenuItem_int3::draw(sel, row, plabel, &feedrate_percentage, 10, 999) - */ - -#define _MENU_INNER_P(TYPE, USE_MULTIPLIER, PLABEL, V...) do { \ - PGM_P const plabel = PLABEL; \ - if (encoderLine == _thisItemNr && ui.use_click()) { \ - _MENU_ITEM_MULTIPLIER_CHECK(USE_MULTIPLIER); \ - MenuItem_##TYPE::action(plabel, ##V); \ - if (ui.screen_changed) return; \ - } \ - if (ui.should_draw()) \ - MenuItem_##TYPE::draw \ - (encoderLine == _thisItemNr, _lcdLineNr, plabel, ##V); \ -}while(0) - -#define _MENU_ITEM_P(TYPE, V...) do { \ - if (_menuLineNr == _thisItemNr) { \ - _skipStatic = false; \ - _MENU_INNER_P(TYPE, ##V); \ - } \ - NEXT_ITEM(); \ -}while(0) - -// Indexed items set a global index value and optional data -#define _MENU_ITEM_N_S_P(TYPE, N, S, V...) do{ \ - if (_menuLineNr == _thisItemNr) { \ - _skipStatic = false; \ - MenuItemBase::init(N, S); \ - _MENU_INNER_P(TYPE, ##V); \ - } \ - NEXT_ITEM(); \ -}while(0) - -// Indexed items set a global index value -#define _MENU_ITEM_N_P(TYPE, N, V...) do{ \ - if (_menuLineNr == _thisItemNr) { \ - _skipStatic = false; \ - MenuItemBase::itemIndex = N; \ - _MENU_INNER_P(TYPE, ##V); \ - } \ - NEXT_ITEM(); \ -}while(0) - -// Items with a unique string -#define _MENU_ITEM_S_P(TYPE, S, V...) do{ \ - if (_menuLineNr == _thisItemNr) { \ - _skipStatic = false; \ - MenuItemBase::itemString = S; \ - _MENU_INNER_P(TYPE, ##V); \ - } \ - NEXT_ITEM(); \ -}while(0) - -// STATIC_ITEM draws a styled string with no highlight. -// Parameters: label [, style [, char *value] ] - -#define STATIC_ITEM_INNER_P(PLABEL, V...) do{ \ - if (_skipStatic && encoderLine <= _thisItemNr) { \ - ui.encoderPosition += ENCODER_STEPS_PER_MENU_ITEM; \ - ++encoderLine; \ - } \ - if (ui.should_draw()) \ - MenuItem_static::draw(_lcdLineNr, PLABEL, ##V); \ -} while(0) - -#define STATIC_ITEM_P(PLABEL, V...) do{ \ - if (_menuLineNr == _thisItemNr) \ - STATIC_ITEM_INNER_P(PLABEL, ##V); \ - NEXT_ITEM(); \ -} while(0) - -#define STATIC_ITEM_N_P(PLABEL, N, V...) do{ \ - if (_menuLineNr == _thisItemNr) { \ - MenuItemBase::init(N); \ - STATIC_ITEM_INNER_P(PLABEL, ##V); \ - } \ - NEXT_ITEM(); \ -}while(0) - -#define STATIC_ITEM(LABEL, V...) STATIC_ITEM_P(GET_TEXT(LABEL), ##V) -#define STATIC_ITEM_N(LABEL, N, V...) STATIC_ITEM_N_P(GET_TEXT(LABEL), ##V) - -#define MENU_ITEM_N_S_P(TYPE, N, S, PLABEL, V...) _MENU_ITEM_N_S_P(TYPE, N, S, false, PLABEL, ##V) -#define MENU_ITEM_N_S(TYPE, N, S, LABEL, V...) MENU_ITEM_N_S_P(TYPE, N, S, GET_TEXT(LABEL), ##V) -#define MENU_ITEM_S_P(TYPE, S, PLABEL, V...) _MENU_ITEM_S_P(TYPE, S, false, PLABEL, ##V) -#define MENU_ITEM_S(TYPE, S, LABEL, V...) MENU_ITEM_S_P(TYPE, S, GET_TEXT(LABEL), ##V) -#define MENU_ITEM_N_P(TYPE, N, PLABEL, V...) _MENU_ITEM_N_P(TYPE, N, false, PLABEL, ##V) -#define MENU_ITEM_N(TYPE, N, LABEL, V...) MENU_ITEM_N_P(TYPE, N, GET_TEXT(LABEL), ##V) -#define MENU_ITEM_P(TYPE, PLABEL, V...) _MENU_ITEM_P(TYPE, false, PLABEL, ##V) -#define MENU_ITEM(TYPE, LABEL, V...) MENU_ITEM_P(TYPE, GET_TEXT(LABEL), ##V) - -#define BACK_ITEM(LABEL) MENU_ITEM(back, LABEL) - -#define ACTION_ITEM_N_S_P(N, S, PLABEL, ACTION) MENU_ITEM_N_S_P(function, N, S, PLABEL, ACTION) -#define ACTION_ITEM_N_S(N, S, LABEL, ACTION) ACTION_ITEM_N_S_P(N, S, GET_TEXT(LABEL), ACTION) -#define ACTION_ITEM_S_P(S, PLABEL, ACTION) MENU_ITEM_S_P(function, S, PLABEL, ACTION) -#define ACTION_ITEM_S(S, LABEL, ACTION) ACTION_ITEM_S_P(S, GET_TEXT(LABEL), ACTION) -#define ACTION_ITEM_N_P(N, PLABEL, ACTION) MENU_ITEM_N_P(function, N, PLABEL, ACTION) -#define ACTION_ITEM_N(N, LABEL, ACTION) ACTION_ITEM_N_P(N, GET_TEXT(LABEL), ACTION) -#define ACTION_ITEM_P(PLABEL, ACTION) MENU_ITEM_P(function, PLABEL, ACTION) -#define ACTION_ITEM(LABEL, ACTION) ACTION_ITEM_P(GET_TEXT(LABEL), ACTION) - -#define GCODES_ITEM_N_S_P(N, S, PLABEL, GCODES) MENU_ITEM_N_S_P(gcode, N, S, PLABEL, GCODES) -#define GCODES_ITEM_N_S(N, S, LABEL, GCODES) GCODES_ITEM_N_S_P(N, S, GET_TEXT(LABEL), GCODES) -#define GCODES_ITEM_S_P(S, PLABEL, GCODES) MENU_ITEM_S_P(gcode, S, PLABEL, GCODES) -#define GCODES_ITEM_S(S, LABEL, GCODES) GCODES_ITEM_S_P(S, GET_TEXT(LABEL), GCODES) -#define GCODES_ITEM_N_P(N, PLABEL, GCODES) MENU_ITEM_N_P(gcode, N, PLABEL, GCODES) -#define GCODES_ITEM_N(N, LABEL, GCODES) GCODES_ITEM_N_P(N, GET_TEXT(LABEL), GCODES) -#define GCODES_ITEM_P(PLABEL, GCODES) MENU_ITEM_P(gcode, PLABEL, GCODES) -#define GCODES_ITEM(LABEL, GCODES) GCODES_ITEM_P(GET_TEXT(LABEL), GCODES) - -#define SUBMENU_N_S_P(N, S, PLABEL, DEST) MENU_ITEM_N_S_P(submenu, N, S, PLABEL, DEST) -#define SUBMENU_N_S(N, S, LABEL, DEST) SUBMENU_N_S_P(N, S, GET_TEXT(LABEL), DEST) -#define SUBMENU_S_P(S, PLABEL, DEST) MENU_ITEM_S_P(submenu, S, PLABEL, DEST) -#define SUBMENU_S(S, LABEL, DEST) SUBMENU_S_P(S, GET_TEXT(LABEL), DEST) -#define SUBMENU_N_P(N, PLABEL, DEST) MENU_ITEM_N_P(submenu, N, PLABEL, DEST) -#define SUBMENU_N(N, LABEL, DEST) SUBMENU_N_P(N, GET_TEXT(LABEL), DEST) -#define SUBMENU_P(PLABEL, DEST) MENU_ITEM_P(submenu, PLABEL, DEST) -#define SUBMENU(LABEL, DEST) SUBMENU_P(GET_TEXT(LABEL), DEST) - -#define EDIT_ITEM_N_S_P(TYPE, N, S, PLABEL, V...) MENU_ITEM_N_S_P(TYPE, N, S, PLABEL, ##V) -#define EDIT_ITEM_N_S(TYPE, N, S, LABEL, V...) EDIT_ITEM_N_S_P(TYPE, N, S, GET_TEXT(LABEL), ##V) -#define EDIT_ITEM_S_P(TYPE, S, PLABEL, V...) MENU_ITEM_S_P(TYPE, S, PLABEL, ##V) -#define EDIT_ITEM_S(TYPE, S, LABEL, V...) EDIT_ITEM_S_P(TYPE, S, GET_TEXT(LABEL), ##V) -#define EDIT_ITEM_N_P(TYPE, N, PLABEL, V...) MENU_ITEM_N_P(TYPE, N, PLABEL, ##V) -#define EDIT_ITEM_N(TYPE, N, LABEL, V...) EDIT_ITEM_N_P(TYPE, N, GET_TEXT(LABEL), ##V) -#define EDIT_ITEM_P(TYPE, PLABEL, V...) MENU_ITEM_P(TYPE, PLABEL, ##V) -#define EDIT_ITEM(TYPE, LABEL, V...) EDIT_ITEM_P(TYPE, GET_TEXT(LABEL), ##V) - -#define EDIT_ITEM_FAST_N_S_P(TYPE, N, S, PLABEL, V...) _MENU_ITEM_N_S_P(TYPE, N, S, true, PLABEL, ##V) -#define EDIT_ITEM_FAST_N_S(TYPE, N, S, LABEL, V...) EDIT_ITEM_FAST_N_S_P(TYPE, N, S, true, GET_TEXT(LABEL), ##V) -#define EDIT_ITEM_FAST_S_P(TYPE, S, PLABEL, V...) _MENU_ITEM_S_P(TYPE, S, true, PLABEL, ##V) -#define EDIT_ITEM_FAST_S(TYPE, S, LABEL, V...) EDIT_ITEM_FAST_S_P(TYPE, S, GET_TEXT(LABEL), ##V) -#define EDIT_ITEM_FAST_N_P(TYPE, N, PLABEL, V...) _MENU_ITEM_N_P(TYPE, N, true, PLABEL, ##V) -#define EDIT_ITEM_FAST_N(TYPE, N, LABEL, V...) EDIT_ITEM_FAST_N_P(TYPE, N, GET_TEXT(LABEL), ##V) -#define EDIT_ITEM_FAST_P(TYPE, PLABEL, V...) _MENU_ITEM_P(TYPE, true, PLABEL, ##V) -#define EDIT_ITEM_FAST(TYPE, LABEL, V...) EDIT_ITEM_FAST_P(TYPE, GET_TEXT(LABEL), ##V) - -#define _CONFIRM_ITEM_INNER_P(PLABEL, V...) do { \ - if (encoderLine == _thisItemNr && ui.use_click()) { \ - ui.save_previous_screen(); \ - ui.goto_screen([]{MenuItem_confirm::select_screen(V);}); \ - return; \ - } \ - if (ui.should_draw()) MenuItem_confirm::draw \ - (encoderLine == _thisItemNr, _lcdLineNr, PLABEL, ##V); \ -}while(0) - -// Indexed items set a global index value and optional data -#define _CONFIRM_ITEM_P(PLABEL, V...) do { \ - if (_menuLineNr == _thisItemNr) { \ - _skipStatic = false; \ - _CONFIRM_ITEM_INNER_P(PLABEL, ##V); \ - } \ - NEXT_ITEM(); \ -}while(0) - -// Indexed items set a global index value -#define _CONFIRM_ITEM_N_S_P(N, S, V...) do{ \ - if (_menuLineNr == _thisItemNr) { \ - _skipStatic = false; \ - MenuItemBase::init(N, S); \ - _CONFIRM_ITEM_INNER_P(TYPE, ##V); \ - } \ - NEXT_ITEM(); \ -}while(0) - -// Indexed items set a global index value -#define _CONFIRM_ITEM_N_P(N, V...) _CONFIRM_ITEM_N_S_P(N, nullptr, V) - -#define CONFIRM_ITEM_P(PLABEL,A,B,V...) _CONFIRM_ITEM_P(PLABEL, GET_TEXT(A), GET_TEXT(B), ##V) -#define CONFIRM_ITEM(LABEL, V...) CONFIRM_ITEM_P(GET_TEXT(LABEL), ##V) - -#define YESNO_ITEM_P(PLABEL, V...) _CONFIRM_ITEM_P(PLABEL, ##V) -#define YESNO_ITEM(LABEL, V...) YESNO_ITEM_P(GET_TEXT(LABEL), ##V) - -#define CONFIRM_ITEM_N_S_P(N,S,PLABEL,A,B,V...) _CONFIRM_ITEM_N_S_P(N, S, PLABEL, GET_TEXT(A), GET_TEXT(B), ##V) -#define CONFIRM_ITEM_N_S(N,S,LABEL,V...) CONFIRM_ITEM_N_S_P(N, S, GET_TEXT(LABEL), ##V) -#define CONFIRM_ITEM_N_P(N,PLABEL,A,B,V...) _CONFIRM_ITEM_N_P(N, PLABEL, GET_TEXT(A), GET_TEXT(B), ##V) -#define CONFIRM_ITEM_N(N,LABEL, V...) CONFIRM_ITEM_N_P(N, GET_TEXT(LABEL), ##V) - -#define YESNO_ITEM_N_S_P(N,S,PLABEL, V...) _CONFIRM_ITEM_N_S_P(N, S, PLABEL, ##V) -#define YESNO_ITEM_N_S(N,S,LABEL, V...) YESNO_ITEM_N_S_P(N, S, GET_TEXT(LABEL), ##V) -#define YESNO_ITEM_N_P(N,PLABEL, V...) _CONFIRM_ITEM_N_P(N, PLABEL, ##V) -#define YESNO_ITEM_N(N,LABEL, V...) YESNO_ITEM_N_P(N, GET_TEXT(LABEL), ##V) - //////////////////////////////////////////// /////////////// Menu Screens /////////////// //////////////////////////////////////////// @@ -599,20 +192,10 @@ void menu_move(); void menu_media(); #endif -// First Fan Speed title in "Tune" and "Control>Temperature" menus -#if HAS_FAN && HAS_FAN0 - #if FAN_COUNT > 1 - #define FAN_SPEED_1_SUFFIX " 1" - #else - #define FAN_SPEED_1_SUFFIX "" - #endif -#endif - //////////////////////////////////////////// //////// Menu Item Helper Functions //////// //////////////////////////////////////////// -void lcd_move_z(); void _lcd_draw_homing(); #define HAS_LINE_TO_Z ANY(DELTA, PROBE_MANUALLY, MESH_BED_LEVELING, LEVEL_BED_CORNERS) @@ -625,10 +208,6 @@ void _lcd_draw_homing(); void _lcd_zoffset_overlay_gfx(const float zvalue); #endif -#if ENABLED(LEVEL_BED_CORNERS) - void _lcd_level_bed_corners(); -#endif - #if ENABLED(LCD_BED_LEVELING) || (HAS_LEVELING && DISABLED(SLIM_LCD_MENUS)) void _lcd_toggle_bed_leveling(); #endif @@ -651,11 +230,3 @@ void _lcd_draw_homing(); #endif #endif - -#if ENABLED(POWER_LOSS_RECOVERY) - void menu_job_recovery(); -#endif - -#if ENABLED(TOUCH_SCREEN_CALIBRATION) - void touch_screen_calibration(); -#endif diff --git a/Marlin/src/lcd/menu/menu_advanced.cpp b/Marlin/src/lcd/menu/menu_advanced.cpp index 942fb6756..9978bc7ea 100644 --- a/Marlin/src/lcd/menu/menu_advanced.cpp +++ b/Marlin/src/lcd/menu/menu_advanced.cpp @@ -28,7 +28,7 @@ #if HAS_LCD_MENU -#include "menu.h" +#include "menu_item.h" #include "../../module/planner.h" #if DISABLED(NO_VOLUMETRICS) diff --git a/Marlin/src/lcd/menu/menu_backlash.cpp b/Marlin/src/lcd/menu/menu_backlash.cpp index 2aad9a415..0e1bfb591 100644 --- a/Marlin/src/lcd/menu/menu_backlash.cpp +++ b/Marlin/src/lcd/menu/menu_backlash.cpp @@ -28,7 +28,7 @@ #if BOTH(HAS_LCD_MENU, BACKLASH_GCODE) -#include "menu.h" +#include "menu_item.h" #include "../../feature/backlash.h" diff --git a/Marlin/src/lcd/menu/menu_bed_corners.cpp b/Marlin/src/lcd/menu/menu_bed_corners.cpp index 6dbe7c6d1..16f9992c1 100644 --- a/Marlin/src/lcd/menu/menu_bed_corners.cpp +++ b/Marlin/src/lcd/menu/menu_bed_corners.cpp @@ -28,7 +28,7 @@ #if BOTH(HAS_LCD_MENU, LEVEL_BED_CORNERS) -#include "menu.h" +#include "menu_item.h" #include "../../module/motion.h" #include "../../module/planner.h" diff --git a/Marlin/src/lcd/menu/menu_bed_leveling.cpp b/Marlin/src/lcd/menu/menu_bed_leveling.cpp index 3796f44ff..6841561c1 100644 --- a/Marlin/src/lcd/menu/menu_bed_leveling.cpp +++ b/Marlin/src/lcd/menu/menu_bed_leveling.cpp @@ -28,7 +28,7 @@ #if ENABLED(LCD_BED_LEVELING) -#include "menu.h" +#include "menu_item.h" #include "../../module/planner.h" #include "../../feature/bedlevel/bedlevel.h" diff --git a/Marlin/src/lcd/menu/menu_cancelobject.cpp b/Marlin/src/lcd/menu/menu_cancelobject.cpp index 55b88c45b..a8ced0575 100644 --- a/Marlin/src/lcd/menu/menu_cancelobject.cpp +++ b/Marlin/src/lcd/menu/menu_cancelobject.cpp @@ -28,7 +28,7 @@ #if BOTH(HAS_LCD_MENU, CANCEL_OBJECTS) -#include "menu.h" +#include "menu_item.h" #include "menu_addon.h" #include "../../feature/cancel_object.h" diff --git a/Marlin/src/lcd/menu/menu_configuration.cpp b/Marlin/src/lcd/menu/menu_configuration.cpp index e834009f7..32fedce23 100644 --- a/Marlin/src/lcd/menu/menu_configuration.cpp +++ b/Marlin/src/lcd/menu/menu_configuration.cpp @@ -28,7 +28,7 @@ #if HAS_LCD_MENU -#include "menu.h" +#include "menu_item.h" #if HAS_FILAMENT_SENSOR #include "../../feature/runout.h" diff --git a/Marlin/src/lcd/menu/menu_custom.cpp b/Marlin/src/lcd/menu/menu_custom.cpp index 729254cda..7c54ec6e2 100644 --- a/Marlin/src/lcd/menu/menu_custom.cpp +++ b/Marlin/src/lcd/menu/menu_custom.cpp @@ -28,7 +28,7 @@ #if BOTH(HAS_LCD_MENU, CUSTOM_USER_MENUS) -#include "menu.h" +#include "menu_item.h" #include "../../gcode/queue.h" #ifdef USER_SCRIPT_DONE diff --git a/Marlin/src/lcd/menu/menu_delta_calibrate.cpp b/Marlin/src/lcd/menu/menu_delta_calibrate.cpp index 6b99355a6..705ec4161 100644 --- a/Marlin/src/lcd/menu/menu_delta_calibrate.cpp +++ b/Marlin/src/lcd/menu/menu_delta_calibrate.cpp @@ -28,7 +28,7 @@ #if HAS_LCD_MENU && EITHER(DELTA_CALIBRATION_MENU, DELTA_AUTO_CALIBRATION) -#include "menu.h" +#include "menu_item.h" #include "../../module/delta.h" #include "../../module/motion.h" diff --git a/Marlin/src/lcd/menu/menu_filament.cpp b/Marlin/src/lcd/menu/menu_filament.cpp index 1b11438f4..316b2bc78 100644 --- a/Marlin/src/lcd/menu/menu_filament.cpp +++ b/Marlin/src/lcd/menu/menu_filament.cpp @@ -28,7 +28,7 @@ #if BOTH(HAS_LCD_MENU, ADVANCED_PAUSE_FEATURE) -#include "menu.h" +#include "menu_item.h" #include "../../module/temperature.h" #include "../../feature/pause.h" #include "../../gcode/queue.h" diff --git a/Marlin/src/lcd/menu/menu_game.cpp b/Marlin/src/lcd/menu/menu_game.cpp index 21e101404..fa56d7eee 100644 --- a/Marlin/src/lcd/menu/menu_game.cpp +++ b/Marlin/src/lcd/menu/menu_game.cpp @@ -24,7 +24,7 @@ #if HAS_GAME_MENU -#include "menu.h" +#include "menu_item.h" #include "game/game.h" void menu_game() { diff --git a/Marlin/src/lcd/menu/menu_info.cpp b/Marlin/src/lcd/menu/menu_info.cpp index b94be2e53..2fe8ccbab 100644 --- a/Marlin/src/lcd/menu/menu_info.cpp +++ b/Marlin/src/lcd/menu/menu_info.cpp @@ -28,7 +28,7 @@ #if BOTH(HAS_LCD_MENU, LCD_INFO_MENU) -#include "menu.h" +#include "menu_item.h" #if HAS_GAMES #include "game/game.h" diff --git a/Marlin/src/lcd/menu/menu_item.h b/Marlin/src/lcd/menu/menu_item.h new file mode 100644 index 000000000..66ed0e402 --- /dev/null +++ b/Marlin/src/lcd/menu/menu_item.h @@ -0,0 +1,450 @@ +/** + * Marlin 3D Printer Firmware + * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin] + * + * Based on Sprinter and grbl. + * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + */ +#pragma once + +#include "menu.h" +#include "../ultralcd.h" +#include "../../gcode/queue.h" // for inject_P + +#include "../../inc/MarlinConfigPre.h" + +void lcd_move_z(); + +//////////////////////////////////////////// +///////////// Base Menu Items ////////////// +//////////////////////////////////////////// + +// BACK_ITEM(LABEL) +class MenuItem_back : public MenuItemBase { + public: + FORCE_INLINE static void draw(const bool sel, const uint8_t row, PGM_P const pstr) { + _draw(sel, row, pstr, LCD_STR_UPLEVEL[0], LCD_STR_UPLEVEL[0]); + } + // Back Item action goes back one step in history + FORCE_INLINE static void action(PGM_P const=nullptr) { ui.go_back(); } +}; + +// SUBMENU(LABEL, screen_handler) +class MenuItem_submenu : public MenuItemBase { + public: + FORCE_INLINE static void draw(const bool sel, const uint8_t row, PGM_P const pstr, ...) { + _draw(sel, row, pstr, '>', LCD_STR_ARROW_RIGHT[0]); + } + static inline void action(PGM_P const, const screenFunc_t func) { ui.save_previous_screen(); ui.goto_screen(func); } +}; + +// Any menu item that invokes an immediate action +class MenuItem_button : public MenuItemBase { + public: + // Button-y Items are selectable lines with no other indicator + static inline void draw(const bool sel, const uint8_t row, PGM_P const pstr, ...) { + _draw(sel, row, pstr, '>', ' '); + } +}; + +// ACTION_ITEM(LABEL, FUNC) +class MenuItem_function : public MenuItem_button { + public: + //static inline void action(PGM_P const, const uint8_t, const menuAction_t func) { (*func)(); }; + static inline void action(PGM_P const, const menuAction_t func) { (*func)(); }; +}; + +// GCODES_ITEM(LABEL, GCODES) +class MenuItem_gcode : public MenuItem_button { + public: + FORCE_INLINE static void draw(const bool sel, const uint8_t row, PGM_P const pstr, ...) { + _draw(sel, row, pstr, '>', ' '); + } + static void action(PGM_P const, PGM_P const pgcode) { queue.inject_P(pgcode); } + static inline void action(PGM_P const pstr, const uint8_t, const char * const pgcode) { action(pstr, pgcode); } +}; + +//////////////////////////////////////////// +///////////// Edit Menu Items ////////////// +//////////////////////////////////////////// + +// Template for specific Menu Edit Item Types +template +class TMenuEditItem : MenuEditItemBase { + private: + typedef typename NAME::type_t type_t; + static inline float scale(const float value) { return NAME::scale(value); } + static inline float unscale(const float value) { return NAME::unscale(value); } + static const char* to_string(const int32_t value) { return NAME::strfunc(unscale(value)); } + static void load(void *ptr, const int32_t value) { *((type_t*)ptr) = unscale(value); } + public: + FORCE_INLINE static void draw(const bool sel, const uint8_t row, PGM_P const pstr, type_t * const data, ...) { + MenuEditItemBase::draw(sel, row, pstr, NAME::strfunc(*(data))); + } + FORCE_INLINE static void draw(const bool sel, const uint8_t row, PGM_P const pstr, type_t (*pget)(), ...) { + MenuEditItemBase::draw(sel, row, pstr, NAME::strfunc(pget())); + } + // Edit screen for this type of item + static void edit_screen() { MenuEditItemBase::edit_screen(to_string, load); } + static void action( + PGM_P const pstr, // Edit label + type_t * const ptr, // Value pointer + const type_t minValue, // Value range + const type_t maxValue, + const screenFunc_t callback=nullptr, // Value update callback + const bool live=false // Callback during editing + ) { + // Make sure minv and maxv fit within int32_t + const int32_t minv = _MAX(scale(minValue), INT32_MIN), + maxv = _MIN(scale(maxValue), INT32_MAX); + goto_edit_screen(pstr, ptr, minv, maxv - minv, scale(*ptr) - minv, + edit_screen, callback, live); + } +}; + +// Provide a set of Edit Item Types which encompass a primitive +// type, a string function, and a scale factor for edit and display. +// These items call the Edit Item draw method passing the prepared string. +#define __DOFIXfloat PROBE() +#define _DOFIX(TYPE,V) TYPE(TERN(IS_PROBE(__DOFIX##TYPE),FIXFLOAT(V),(V))) +#define DEFINE_MENU_EDIT_ITEM_TYPE(NAME, TYPE, STRFUNC, SCALE, V...) \ + struct MenuEditItemInfo_##NAME { \ + typedef TYPE type_t; \ + static inline float scale(const float value) { return value * (SCALE) + (V+0); } \ + static inline float unscale(const float value) { return value / (SCALE) + (V+0); } \ + static inline const char* strfunc(const float value) { return STRFUNC(_DOFIX(TYPE,value)); } \ + }; \ + typedef TMenuEditItem MenuItem_##NAME + +// NAME TYPE STRFUNC SCALE +ROUND +DEFINE_MENU_EDIT_ITEM_TYPE(percent ,uint8_t ,ui8tostr4pctrj , 100.f/255.f, 0.5f); // 100% right-justified +DEFINE_MENU_EDIT_ITEM_TYPE(int3 ,int16_t ,i16tostr3rj , 1 ); // 123, -12 right-justified +DEFINE_MENU_EDIT_ITEM_TYPE(int4 ,int16_t ,i16tostr4signrj , 1 ); // 1234, -123 right-justified +DEFINE_MENU_EDIT_ITEM_TYPE(int8 ,int8_t ,i8tostr3rj , 1 ); // 123, -12 right-justified +DEFINE_MENU_EDIT_ITEM_TYPE(uint8 ,uint8_t ,ui8tostr3rj , 1 ); // 123 right-justified +DEFINE_MENU_EDIT_ITEM_TYPE(uint16_3 ,uint16_t ,ui16tostr3rj , 1 ); // 123 right-justified +DEFINE_MENU_EDIT_ITEM_TYPE(uint16_4 ,uint16_t ,ui16tostr4rj , 0.1f ); // 1234 right-justified +DEFINE_MENU_EDIT_ITEM_TYPE(uint16_5 ,uint16_t ,ui16tostr5rj , 0.01f ); // 12345 right-justified +DEFINE_MENU_EDIT_ITEM_TYPE(float3 ,float ,ftostr3 , 1 ); // 123 right-justified +DEFINE_MENU_EDIT_ITEM_TYPE(float42_52 ,float ,ftostr42_52 , 100 ); // _2.34, 12.34, -2.34 or 123.45, -23.45 +DEFINE_MENU_EDIT_ITEM_TYPE(float43 ,float ,ftostr43sign ,1000 ); // -1.234, _1.234, +1.234 +DEFINE_MENU_EDIT_ITEM_TYPE(float5 ,float ,ftostr5rj , 1 ); // 12345 right-justified +DEFINE_MENU_EDIT_ITEM_TYPE(float5_25 ,float ,ftostr5rj , 0.04f ); // 12345 right-justified (25 increment) +DEFINE_MENU_EDIT_ITEM_TYPE(float51 ,float ,ftostr51rj , 10 ); // 1234.5 right-justified +DEFINE_MENU_EDIT_ITEM_TYPE(float31sign ,float ,ftostr31sign , 10 ); // +12.3 +DEFINE_MENU_EDIT_ITEM_TYPE(float41sign ,float ,ftostr41sign , 10 ); // +123.4 +DEFINE_MENU_EDIT_ITEM_TYPE(float51sign ,float ,ftostr51sign , 10 ); // +1234.5 +DEFINE_MENU_EDIT_ITEM_TYPE(float52sign ,float ,ftostr52sign , 100 ); // +123.45 +DEFINE_MENU_EDIT_ITEM_TYPE(long5 ,uint32_t ,ftostr5rj , 0.01f ); // 12345 right-justified +DEFINE_MENU_EDIT_ITEM_TYPE(long5_25 ,uint32_t ,ftostr5rj , 0.04f ); // 12345 right-justified (25 increment) + +#if HAS_BED_PROBE + #if Z_PROBE_OFFSET_RANGE_MIN >= -9 && Z_PROBE_OFFSET_RANGE_MAX <= 9 + #define LCD_Z_OFFSET_TYPE float43 // Values from -9.000 to +9.000 + #else + #define LCD_Z_OFFSET_TYPE float42_52 // Values from -99.99 to 99.99 + #endif +#endif + +class MenuItem_bool : public MenuEditItemBase { + public: + FORCE_INLINE static void draw(const bool sel, const uint8_t row, PGM_P const pstr, const bool onoff) { + MenuEditItemBase::draw(sel, row, pstr, onoff ? GET_TEXT(MSG_LCD_ON) : GET_TEXT(MSG_LCD_OFF), true); + } + FORCE_INLINE static void draw(const bool sel, const uint8_t row, PGM_P const pstr, bool * const data, ...) { + draw(sel, row, pstr, *data); + } + FORCE_INLINE static void draw(const bool sel, const uint8_t row, PGM_P const pstr, PGM_P const, bool (*pget)(), ...) { + draw(sel, row, pstr, pget()); + } + static void action(PGM_P const pstr, bool * const ptr, const screenFunc_t callbackFunc=nullptr) { + *ptr ^= true; ui.refresh(); + if (callbackFunc) (*callbackFunc)(); + } +}; + +/** + * //////////////////////////////////////////// + * //////////// Menu System Macros //////////// + * //////////////////////////////////////////// + * + * Marlin's native menu screens work by running a loop from the top visible line index + * to the bottom visible line index (according to how much the screen has been scrolled). + * This complete loop is done on every menu screen call. + * + * The menu system is highly dynamic, so it doesn't know ahead of any menu loop which + * items will be visible or hidden, so menu items don't have a fixed index number. + * + * During the loop, each menu item checks to see if its line is the current one. If it is, + * then it checks to see if a click has arrived so it can run its action. If the action + * doesn't redirect to another screen then the menu item calls its draw method. + * + * Menu item add-ons can do whatever they like. + * + * This mixture of drawing and processing inside a loop has the advantage that a single + * line can be used to represent a menu item, and that is the rationale for this design. + * + * One of the pitfalls of this method is that DOGM displays call the screen handler 2x, + * 4x, or 8x per screen update to draw just one segment of the screen. As a result, any + * menu item that exists in two screen segments is drawn and processed twice per screen + * update. With each item processed 5, 10, 20, or 40 times the logic has to be simple. + * + * To avoid repetition and side-effects, function calls for testing menu item conditions + * should be done before the menu loop (START_MENU / START_SCREEN). + */ + +/** + * SCREEN_OR_MENU_LOOP generates header code for a screen or menu + * + * encoderTopLine is the top menu line to display + * _lcdLineNr is the index of the LCD line (e.g., 0-3) + * _menuLineNr is the menu item to draw and process + * _thisItemNr is the index of each MENU_ITEM or STATIC_ITEM + */ +#define SCREEN_OR_MENU_LOOP(IS_MENU) \ + scroll_screen(IS_MENU ? 1 : LCD_HEIGHT, IS_MENU); \ + int8_t _menuLineNr = encoderTopLine, _thisItemNr = 0; \ + bool _skipStatic = IS_MENU; UNUSED(_thisItemNr); \ + for (int8_t _lcdLineNr = 0; _lcdLineNr < LCD_HEIGHT; _lcdLineNr++, _menuLineNr++) { \ + _thisItemNr = 0 + +/** + * START_SCREEN Opening code for a screen having only static items. + * Do simplified scrolling of the entire screen. + * + * START_MENU Opening code for a screen with menu items. + * Scroll as-needed to keep the selected line in view. + */ +#define START_SCREEN() SCREEN_OR_MENU_LOOP(false) +#define START_MENU() SCREEN_OR_MENU_LOOP(true) +#define NEXT_ITEM() (++_thisItemNr) +#define SKIP_ITEM() NEXT_ITEM() +#define END_SCREEN() } screen_items = _thisItemNr +#define END_MENU() END_SCREEN(); UNUSED(_skipStatic) + +/** + * MENU_ITEM generates draw & handler code for a menu item, potentially calling: + * + * MenuItem_::draw(sel, row, label, arg3...) + * MenuItem_::action(arg3...) + * + * Examples: + * BACK_ITEM(MSG_INFO_SCREEN) + * MenuItem_back::action(plabel, ...) + * MenuItem_back::draw(sel, row, plabel, ...) + * + * ACTION_ITEM(MSG_PAUSE_PRINT, lcd_sdcard_pause) + * MenuItem_function::action(plabel, lcd_sdcard_pause) + * MenuItem_function::draw(sel, row, plabel, lcd_sdcard_pause) + * + * EDIT_ITEM(int3, MSG_SPEED, &feedrate_percentage, 10, 999) + * MenuItem_int3::action(plabel, &feedrate_percentage, 10, 999) + * MenuItem_int3::draw(sel, row, plabel, &feedrate_percentage, 10, 999) + */ + +#if ENABLED(ENCODER_RATE_MULTIPLIER) + #define _MENU_ITEM_MULTIPLIER_CHECK(USE_MULTIPLIER) do{ if (USE_MULTIPLIER) ui.enable_encoder_multiplier(true); }while(0) +#else + #define _MENU_ITEM_MULTIPLIER_CHECK(USE_MULTIPLIER) +#endif + +#define _MENU_INNER_P(TYPE, USE_MULTIPLIER, PLABEL, V...) do { \ + PGM_P const plabel = PLABEL; \ + if (encoderLine == _thisItemNr && ui.use_click()) { \ + _MENU_ITEM_MULTIPLIER_CHECK(USE_MULTIPLIER); \ + MenuItem_##TYPE::action(plabel, ##V); \ + if (ui.screen_changed) return; \ + } \ + if (ui.should_draw()) \ + MenuItem_##TYPE::draw \ + (encoderLine == _thisItemNr, _lcdLineNr, plabel, ##V); \ +}while(0) + +#define _MENU_ITEM_P(TYPE, V...) do { \ + if (_menuLineNr == _thisItemNr) { \ + _skipStatic = false; \ + _MENU_INNER_P(TYPE, ##V); \ + } \ + NEXT_ITEM(); \ +}while(0) + +// Indexed items set a global index value and optional data +#define _MENU_ITEM_N_S_P(TYPE, N, S, V...) do{ \ + if (_menuLineNr == _thisItemNr) { \ + _skipStatic = false; \ + MenuItemBase::init(N, S); \ + _MENU_INNER_P(TYPE, ##V); \ + } \ + NEXT_ITEM(); \ +}while(0) + +// Indexed items set a global index value +#define _MENU_ITEM_N_P(TYPE, N, V...) do{ \ + if (_menuLineNr == _thisItemNr) { \ + _skipStatic = false; \ + MenuItemBase::itemIndex = N; \ + _MENU_INNER_P(TYPE, ##V); \ + } \ + NEXT_ITEM(); \ +}while(0) + +// Items with a unique string +#define _MENU_ITEM_S_P(TYPE, S, V...) do{ \ + if (_menuLineNr == _thisItemNr) { \ + _skipStatic = false; \ + MenuItemBase::itemString = S; \ + _MENU_INNER_P(TYPE, ##V); \ + } \ + NEXT_ITEM(); \ +}while(0) + +// STATIC_ITEM draws a styled string with no highlight. +// Parameters: label [, style [, char *value] ] + +#define STATIC_ITEM_INNER_P(PLABEL, V...) do{ \ + if (_skipStatic && encoderLine <= _thisItemNr) { \ + ui.encoderPosition += ENCODER_STEPS_PER_MENU_ITEM; \ + ++encoderLine; \ + } \ + if (ui.should_draw()) \ + MenuItem_static::draw(_lcdLineNr, PLABEL, ##V); \ +} while(0) + +#define STATIC_ITEM_P(PLABEL, V...) do{ \ + if (_menuLineNr == _thisItemNr) \ + STATIC_ITEM_INNER_P(PLABEL, ##V); \ + NEXT_ITEM(); \ +} while(0) + +#define STATIC_ITEM_N_P(PLABEL, N, V...) do{ \ + if (_menuLineNr == _thisItemNr) { \ + MenuItemBase::init(N); \ + STATIC_ITEM_INNER_P(PLABEL, ##V); \ + } \ + NEXT_ITEM(); \ +}while(0) + +#define STATIC_ITEM(LABEL, V...) STATIC_ITEM_P(GET_TEXT(LABEL), ##V) +#define STATIC_ITEM_N(LABEL, N, V...) STATIC_ITEM_N_P(GET_TEXT(LABEL), ##V) + +#define MENU_ITEM_N_S_P(TYPE, N, S, PLABEL, V...) _MENU_ITEM_N_S_P(TYPE, N, S, false, PLABEL, ##V) +#define MENU_ITEM_N_S(TYPE, N, S, LABEL, V...) MENU_ITEM_N_S_P(TYPE, N, S, GET_TEXT(LABEL), ##V) +#define MENU_ITEM_S_P(TYPE, S, PLABEL, V...) _MENU_ITEM_S_P(TYPE, S, false, PLABEL, ##V) +#define MENU_ITEM_S(TYPE, S, LABEL, V...) MENU_ITEM_S_P(TYPE, S, GET_TEXT(LABEL), ##V) +#define MENU_ITEM_N_P(TYPE, N, PLABEL, V...) _MENU_ITEM_N_P(TYPE, N, false, PLABEL, ##V) +#define MENU_ITEM_N(TYPE, N, LABEL, V...) MENU_ITEM_N_P(TYPE, N, GET_TEXT(LABEL), ##V) +#define MENU_ITEM_P(TYPE, PLABEL, V...) _MENU_ITEM_P(TYPE, false, PLABEL, ##V) +#define MENU_ITEM(TYPE, LABEL, V...) MENU_ITEM_P(TYPE, GET_TEXT(LABEL), ##V) + +#define BACK_ITEM(LABEL) MENU_ITEM(back, LABEL) + +#define ACTION_ITEM_N_S_P(N, S, PLABEL, ACTION) MENU_ITEM_N_S_P(function, N, S, PLABEL, ACTION) +#define ACTION_ITEM_N_S(N, S, LABEL, ACTION) ACTION_ITEM_N_S_P(N, S, GET_TEXT(LABEL), ACTION) +#define ACTION_ITEM_S_P(S, PLABEL, ACTION) MENU_ITEM_S_P(function, S, PLABEL, ACTION) +#define ACTION_ITEM_S(S, LABEL, ACTION) ACTION_ITEM_S_P(S, GET_TEXT(LABEL), ACTION) +#define ACTION_ITEM_N_P(N, PLABEL, ACTION) MENU_ITEM_N_P(function, N, PLABEL, ACTION) +#define ACTION_ITEM_N(N, LABEL, ACTION) ACTION_ITEM_N_P(N, GET_TEXT(LABEL), ACTION) +#define ACTION_ITEM_P(PLABEL, ACTION) MENU_ITEM_P(function, PLABEL, ACTION) +#define ACTION_ITEM(LABEL, ACTION) ACTION_ITEM_P(GET_TEXT(LABEL), ACTION) + +#define GCODES_ITEM_N_S_P(N, S, PLABEL, GCODES) MENU_ITEM_N_S_P(gcode, N, S, PLABEL, GCODES) +#define GCODES_ITEM_N_S(N, S, LABEL, GCODES) GCODES_ITEM_N_S_P(N, S, GET_TEXT(LABEL), GCODES) +#define GCODES_ITEM_S_P(S, PLABEL, GCODES) MENU_ITEM_S_P(gcode, S, PLABEL, GCODES) +#define GCODES_ITEM_S(S, LABEL, GCODES) GCODES_ITEM_S_P(S, GET_TEXT(LABEL), GCODES) +#define GCODES_ITEM_N_P(N, PLABEL, GCODES) MENU_ITEM_N_P(gcode, N, PLABEL, GCODES) +#define GCODES_ITEM_N(N, LABEL, GCODES) GCODES_ITEM_N_P(N, GET_TEXT(LABEL), GCODES) +#define GCODES_ITEM_P(PLABEL, GCODES) MENU_ITEM_P(gcode, PLABEL, GCODES) +#define GCODES_ITEM(LABEL, GCODES) GCODES_ITEM_P(GET_TEXT(LABEL), GCODES) + +#define SUBMENU_N_S_P(N, S, PLABEL, DEST) MENU_ITEM_N_S_P(submenu, N, S, PLABEL, DEST) +#define SUBMENU_N_S(N, S, LABEL, DEST) SUBMENU_N_S_P(N, S, GET_TEXT(LABEL), DEST) +#define SUBMENU_S_P(S, PLABEL, DEST) MENU_ITEM_S_P(submenu, S, PLABEL, DEST) +#define SUBMENU_S(S, LABEL, DEST) SUBMENU_S_P(S, GET_TEXT(LABEL), DEST) +#define SUBMENU_N_P(N, PLABEL, DEST) MENU_ITEM_N_P(submenu, N, PLABEL, DEST) +#define SUBMENU_N(N, LABEL, DEST) SUBMENU_N_P(N, GET_TEXT(LABEL), DEST) +#define SUBMENU_P(PLABEL, DEST) MENU_ITEM_P(submenu, PLABEL, DEST) +#define SUBMENU(LABEL, DEST) SUBMENU_P(GET_TEXT(LABEL), DEST) + +#define EDIT_ITEM_N_S_P(TYPE, N, S, PLABEL, V...) MENU_ITEM_N_S_P(TYPE, N, S, PLABEL, ##V) +#define EDIT_ITEM_N_S(TYPE, N, S, LABEL, V...) EDIT_ITEM_N_S_P(TYPE, N, S, GET_TEXT(LABEL), ##V) +#define EDIT_ITEM_S_P(TYPE, S, PLABEL, V...) MENU_ITEM_S_P(TYPE, S, PLABEL, ##V) +#define EDIT_ITEM_S(TYPE, S, LABEL, V...) EDIT_ITEM_S_P(TYPE, S, GET_TEXT(LABEL), ##V) +#define EDIT_ITEM_N_P(TYPE, N, PLABEL, V...) MENU_ITEM_N_P(TYPE, N, PLABEL, ##V) +#define EDIT_ITEM_N(TYPE, N, LABEL, V...) EDIT_ITEM_N_P(TYPE, N, GET_TEXT(LABEL), ##V) +#define EDIT_ITEM_P(TYPE, PLABEL, V...) MENU_ITEM_P(TYPE, PLABEL, ##V) +#define EDIT_ITEM(TYPE, LABEL, V...) EDIT_ITEM_P(TYPE, GET_TEXT(LABEL), ##V) + +#define EDIT_ITEM_FAST_N_S_P(TYPE, N, S, PLABEL, V...) _MENU_ITEM_N_S_P(TYPE, N, S, true, PLABEL, ##V) +#define EDIT_ITEM_FAST_N_S(TYPE, N, S, LABEL, V...) EDIT_ITEM_FAST_N_S_P(TYPE, N, S, true, GET_TEXT(LABEL), ##V) +#define EDIT_ITEM_FAST_S_P(TYPE, S, PLABEL, V...) _MENU_ITEM_S_P(TYPE, S, true, PLABEL, ##V) +#define EDIT_ITEM_FAST_S(TYPE, S, LABEL, V...) EDIT_ITEM_FAST_S_P(TYPE, S, GET_TEXT(LABEL), ##V) +#define EDIT_ITEM_FAST_N_P(TYPE, N, PLABEL, V...) _MENU_ITEM_N_P(TYPE, N, true, PLABEL, ##V) +#define EDIT_ITEM_FAST_N(TYPE, N, LABEL, V...) EDIT_ITEM_FAST_N_P(TYPE, N, GET_TEXT(LABEL), ##V) +#define EDIT_ITEM_FAST_P(TYPE, PLABEL, V...) _MENU_ITEM_P(TYPE, true, PLABEL, ##V) +#define EDIT_ITEM_FAST(TYPE, LABEL, V...) EDIT_ITEM_FAST_P(TYPE, GET_TEXT(LABEL), ##V) + +#define _CONFIRM_ITEM_INNER_P(PLABEL, V...) do { \ + if (encoderLine == _thisItemNr && ui.use_click()) { \ + ui.save_previous_screen(); \ + ui.goto_screen([]{MenuItem_confirm::select_screen(V);}); \ + return; \ + } \ + if (ui.should_draw()) MenuItem_confirm::draw \ + (encoderLine == _thisItemNr, _lcdLineNr, PLABEL, ##V); \ +}while(0) + +// Indexed items set a global index value and optional data +#define _CONFIRM_ITEM_P(PLABEL, V...) do { \ + if (_menuLineNr == _thisItemNr) { \ + _skipStatic = false; \ + _CONFIRM_ITEM_INNER_P(PLABEL, ##V); \ + } \ + NEXT_ITEM(); \ +}while(0) + +// Indexed items set a global index value +#define _CONFIRM_ITEM_N_S_P(N, S, V...) do{ \ + if (_menuLineNr == _thisItemNr) { \ + _skipStatic = false; \ + MenuItemBase::init(N, S); \ + _CONFIRM_ITEM_INNER_P(TYPE, ##V); \ + } \ + NEXT_ITEM(); \ +}while(0) + +// Indexed items set a global index value +#define _CONFIRM_ITEM_N_P(N, V...) _CONFIRM_ITEM_N_S_P(N, nullptr, V) + +#define CONFIRM_ITEM_P(PLABEL,A,B,V...) _CONFIRM_ITEM_P(PLABEL, GET_TEXT(A), GET_TEXT(B), ##V) +#define CONFIRM_ITEM(LABEL, V...) CONFIRM_ITEM_P(GET_TEXT(LABEL), ##V) + +#define YESNO_ITEM_P(PLABEL, V...) _CONFIRM_ITEM_P(PLABEL, ##V) +#define YESNO_ITEM(LABEL, V...) YESNO_ITEM_P(GET_TEXT(LABEL), ##V) + +#define CONFIRM_ITEM_N_S_P(N,S,PLABEL,A,B,V...) _CONFIRM_ITEM_N_S_P(N, S, PLABEL, GET_TEXT(A), GET_TEXT(B), ##V) +#define CONFIRM_ITEM_N_S(N,S,LABEL,V...) CONFIRM_ITEM_N_S_P(N, S, GET_TEXT(LABEL), ##V) +#define CONFIRM_ITEM_N_P(N,PLABEL,A,B,V...) _CONFIRM_ITEM_N_P(N, PLABEL, GET_TEXT(A), GET_TEXT(B), ##V) +#define CONFIRM_ITEM_N(N,LABEL, V...) CONFIRM_ITEM_N_P(N, GET_TEXT(LABEL), ##V) + +#define YESNO_ITEM_N_S_P(N,S,PLABEL, V...) _CONFIRM_ITEM_N_S_P(N, S, PLABEL, ##V) +#define YESNO_ITEM_N_S(N,S,LABEL, V...) YESNO_ITEM_N_S_P(N, S, GET_TEXT(LABEL), ##V) +#define YESNO_ITEM_N_P(N,PLABEL, V...) _CONFIRM_ITEM_N_P(N, PLABEL, ##V) +#define YESNO_ITEM_N(N,LABEL, V...) YESNO_ITEM_N_P(N, GET_TEXT(LABEL), ##V) + +#if ENABLED(LEVEL_BED_CORNERS) + void _lcd_level_bed_corners(); +#endif diff --git a/Marlin/src/lcd/menu/menu_job_recovery.cpp b/Marlin/src/lcd/menu/menu_job_recovery.cpp index a2743ef58..7cd2949d6 100644 --- a/Marlin/src/lcd/menu/menu_job_recovery.cpp +++ b/Marlin/src/lcd/menu/menu_job_recovery.cpp @@ -28,7 +28,7 @@ #if BOTH(HAS_LCD_MENU, POWER_LOSS_RECOVERY) -#include "menu.h" +#include "menu_item.h" #include "../../gcode/queue.h" #include "../../sd/cardreader.h" #include "../../feature/powerloss.h" diff --git a/Marlin/src/lcd/menu/menu_led.cpp b/Marlin/src/lcd/menu/menu_led.cpp index b117e0baa..61ffbfd66 100644 --- a/Marlin/src/lcd/menu/menu_led.cpp +++ b/Marlin/src/lcd/menu/menu_led.cpp @@ -28,7 +28,7 @@ #if HAS_LCD_MENU && EITHER(LED_CONTROL_MENU, CASE_LIGHT_MENU) -#include "menu.h" +#include "menu_item.h" #if ENABLED(LED_CONTROL_MENU) #include "../../feature/leds/leds.h" diff --git a/Marlin/src/lcd/menu/menu_main.cpp b/Marlin/src/lcd/menu/menu_main.cpp index fd86aaf11..8908f49fb 100644 --- a/Marlin/src/lcd/menu/menu_main.cpp +++ b/Marlin/src/lcd/menu/menu_main.cpp @@ -28,7 +28,7 @@ #if HAS_LCD_MENU -#include "menu.h" +#include "menu_item.h" #include "../../module/temperature.h" #include "../../gcode/queue.h" #include "../../module/printcounter.h" diff --git a/Marlin/src/lcd/menu/menu_media.cpp b/Marlin/src/lcd/menu/menu_media.cpp index c22314fa9..3c0c6532f 100644 --- a/Marlin/src/lcd/menu/menu_media.cpp +++ b/Marlin/src/lcd/menu/menu_media.cpp @@ -28,7 +28,7 @@ #if BOTH(HAS_LCD_MENU, SDSUPPORT) -#include "menu.h" +#include "menu_item.h" #include "../../sd/cardreader.h" void lcd_sd_updir() { diff --git a/Marlin/src/lcd/menu/menu_mixer.cpp b/Marlin/src/lcd/menu/menu_mixer.cpp index abb56e4c5..801023933 100644 --- a/Marlin/src/lcd/menu/menu_mixer.cpp +++ b/Marlin/src/lcd/menu/menu_mixer.cpp @@ -28,7 +28,7 @@ #if BOTH(HAS_LCD_MENU, MIXING_EXTRUDER) -#include "menu.h" +#include "menu_item.h" #include "menu_addon.h" #include "../../feature/mixing.h" diff --git a/Marlin/src/lcd/menu/menu_mmu2.cpp b/Marlin/src/lcd/menu/menu_mmu2.cpp index 304e95887..0a63d90c6 100644 --- a/Marlin/src/lcd/menu/menu_mmu2.cpp +++ b/Marlin/src/lcd/menu/menu_mmu2.cpp @@ -26,7 +26,7 @@ #include "../../feature/mmu2/mmu2.h" #include "menu_mmu2.h" -#include "menu.h" +#include "menu_item.h" uint8_t currentTool; bool mmuMenuWait; diff --git a/Marlin/src/lcd/menu/menu_motion.cpp b/Marlin/src/lcd/menu/menu_motion.cpp index 622cd091c..914b22900 100644 --- a/Marlin/src/lcd/menu/menu_motion.cpp +++ b/Marlin/src/lcd/menu/menu_motion.cpp @@ -28,7 +28,7 @@ #if HAS_LCD_MENU -#include "menu.h" +#include "menu_item.h" #include "menu_addon.h" #include "../../module/motion.h" diff --git a/Marlin/src/lcd/menu/menu_password.cpp b/Marlin/src/lcd/menu/menu_password.cpp index f8e0b5672..c3924b568 100644 --- a/Marlin/src/lcd/menu/menu_password.cpp +++ b/Marlin/src/lcd/menu/menu_password.cpp @@ -30,7 +30,7 @@ #include "../../feature/password/password.h" -#include "menu.h" +#include "menu_item.h" #include "menu_addon.h" void menu_advanced_settings(); diff --git a/Marlin/src/lcd/menu/menu_power_monitor.cpp b/Marlin/src/lcd/menu/menu_power_monitor.cpp index bacf7f379..e88bdb28d 100644 --- a/Marlin/src/lcd/menu/menu_power_monitor.cpp +++ b/Marlin/src/lcd/menu/menu_power_monitor.cpp @@ -28,7 +28,7 @@ #if HAS_LCD_MENU && HAS_POWER_MONITOR -#include "menu.h" +#include "menu_item.h" #include "../../feature/power_monitor.h" void menu_power_monitor() { diff --git a/Marlin/src/lcd/menu/menu_spindle_laser.cpp b/Marlin/src/lcd/menu/menu_spindle_laser.cpp index 00a98d124..04b999eaf 100644 --- a/Marlin/src/lcd/menu/menu_spindle_laser.cpp +++ b/Marlin/src/lcd/menu/menu_spindle_laser.cpp @@ -28,7 +28,7 @@ #if HAS_LCD_MENU && HAS_CUTTER - #include "menu.h" + #include "menu_item.h" #include "../../feature/spindle_laser.h" diff --git a/Marlin/src/lcd/menu/menu_temperature.cpp b/Marlin/src/lcd/menu/menu_temperature.cpp index 4be98f132..141a8138b 100644 --- a/Marlin/src/lcd/menu/menu_temperature.cpp +++ b/Marlin/src/lcd/menu/menu_temperature.cpp @@ -28,7 +28,7 @@ #if HAS_LCD_MENU && HAS_TEMPERATURE -#include "menu.h" +#include "menu_item.h" #include "../../module/temperature.h" #if FAN_COUNT > 1 || ENABLED(SINGLENOZZLE) diff --git a/Marlin/src/lcd/menu/menu_tmc.cpp b/Marlin/src/lcd/menu/menu_tmc.cpp index f2f26886f..402ee41a1 100644 --- a/Marlin/src/lcd/menu/menu_tmc.cpp +++ b/Marlin/src/lcd/menu/menu_tmc.cpp @@ -28,7 +28,7 @@ #if HAS_LCD_MENU && HAS_TRINAMIC_CONFIG -#include "menu.h" +#include "menu_item.h" #include "../../module/stepper/indirection.h" #include "../../feature/tmc_util.h" diff --git a/Marlin/src/lcd/menu/menu_touch_screen.cpp b/Marlin/src/lcd/menu/menu_touch_screen.cpp index 71fb7b755..96eae2298 100644 --- a/Marlin/src/lcd/menu/menu_touch_screen.cpp +++ b/Marlin/src/lcd/menu/menu_touch_screen.cpp @@ -24,7 +24,7 @@ #if BOTH(HAS_LCD_MENU, TOUCH_SCREEN_CALIBRATION) -#include "menu.h" +#include "menu_item.h" #include "../ultralcd.h" void touch_screen_calibration() { diff --git a/Marlin/src/lcd/menu/menu_tune.cpp b/Marlin/src/lcd/menu/menu_tune.cpp index 2d4031815..c02906f7f 100644 --- a/Marlin/src/lcd/menu/menu_tune.cpp +++ b/Marlin/src/lcd/menu/menu_tune.cpp @@ -28,7 +28,7 @@ #if HAS_LCD_MENU -#include "menu.h" +#include "menu_item.h" #include "../../module/motion.h" #include "../../module/planner.h" #include "../../module/temperature.h" diff --git a/Marlin/src/lcd/menu/menu_ubl.cpp b/Marlin/src/lcd/menu/menu_ubl.cpp index d1c1e6dd0..d034de095 100644 --- a/Marlin/src/lcd/menu/menu_ubl.cpp +++ b/Marlin/src/lcd/menu/menu_ubl.cpp @@ -28,7 +28,7 @@ #if BOTH(HAS_LCD_MENU, AUTO_BED_LEVELING_UBL) -#include "menu.h" +#include "menu_item.h" #include "../../gcode/gcode.h" #include "../../gcode/queue.h" #include "../../module/motion.h" diff --git a/Marlin/src/lcd/tft/touch.cpp b/Marlin/src/lcd/tft/touch.cpp index 69f4ada86..00c7439a5 100644 --- a/Marlin/src/lcd/tft/touch.cpp +++ b/Marlin/src/lcd/tft/touch.cpp @@ -23,8 +23,9 @@ #include "touch.h" -#include "../ultralcd.h" -#include "../menu/menu.h" +#include "../ultralcd.h" // for ui methods +#include "../menu/menu.h" // for touch_screen_calibration + #include "../../module/temperature.h" #include "../../module/planner.h" diff --git a/Marlin/src/lcd/ultralcd.cpp b/Marlin/src/lcd/ultralcd.cpp index 670c916dd..6fa3006fb 100644 --- a/Marlin/src/lcd/ultralcd.cpp +++ b/Marlin/src/lcd/ultralcd.cpp @@ -938,6 +938,8 @@ void MarlinUI::update() { if (encoderStepRate >= ENCODER_100X_STEPS_PER_SEC) encoderMultiplier = 100; else if (encoderStepRate >= ENCODER_10X_STEPS_PER_SEC) encoderMultiplier = 10; + // Enable to output the encoder steps per second value + //#define ENCODER_RATE_MULTIPLIER_DEBUG #if ENABLED(ENCODER_RATE_MULTIPLIER_DEBUG) SERIAL_ECHO_START(); SERIAL_ECHOPAIR("Enc Step Rate: ", encoderStepRate); diff --git a/Marlin/src/lcd/ultralcd.h b/Marlin/src/lcd/ultralcd.h index 662adef0c..d6a9f31e6 100644 --- a/Marlin/src/lcd/ultralcd.h +++ b/Marlin/src/lcd/ultralcd.h @@ -514,6 +514,9 @@ public: static bool encoderRateMultiplierEnabled; static millis_t lastEncoderMovementMillis; static void enable_encoder_multiplier(const bool onoff); + #define ENCODER_RATE_MULTIPLY(F) (ui.encoderRateMultiplierEnabled = F) + #else + #define ENCODER_RATE_MULTIPLY(F) NOOP #endif // Manual Movement From b8c4098de24c7876fe48f27a69aaa96f3557a7e2 Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Fri, 21 Aug 2020 05:21:55 -0500 Subject: [PATCH 140/194] Remove extraneous defines --- Marlin/src/lcd/menu/menu.cpp | 24 ------------------------ 1 file changed, 24 deletions(-) diff --git a/Marlin/src/lcd/menu/menu.cpp b/Marlin/src/lcd/menu/menu.cpp index 309ad06a4..e6739a135 100644 --- a/Marlin/src/lcd/menu/menu.cpp +++ b/Marlin/src/lcd/menu/menu.cpp @@ -163,30 +163,6 @@ void MenuEditItemBase::goto_edit_screen( liveEdit = le; } -// TODO: Remove these but test build size with and without -#define DEFINE_MENU_EDIT_ITEM(NAME) template class TMenuEditItem - -DEFINE_MENU_EDIT_ITEM(percent); // 100% right-justified -DEFINE_MENU_EDIT_ITEM(int3); // 123, -12 right-justified -DEFINE_MENU_EDIT_ITEM(int4); // 1234, -123 right-justified -DEFINE_MENU_EDIT_ITEM(int8); // 123, -12 right-justified -DEFINE_MENU_EDIT_ITEM(uint8); // 123 right-justified -DEFINE_MENU_EDIT_ITEM(uint16_3); // 123 right-justified -DEFINE_MENU_EDIT_ITEM(uint16_4); // 1234 right-justified -DEFINE_MENU_EDIT_ITEM(uint16_5); // 12345 right-justified -DEFINE_MENU_EDIT_ITEM(float3); // 123 right-justified -DEFINE_MENU_EDIT_ITEM(float42_52); // _2.34, 12.34, -2.34 or 123.45, -23.45 -DEFINE_MENU_EDIT_ITEM(float43); // 1.234 -DEFINE_MENU_EDIT_ITEM(float5); // 12345 right-justified -DEFINE_MENU_EDIT_ITEM(float5_25); // 12345 right-justified (25 increment) -DEFINE_MENU_EDIT_ITEM(float51); // 1234.5 right-justified -DEFINE_MENU_EDIT_ITEM(float31sign); // +12.3 -DEFINE_MENU_EDIT_ITEM(float41sign); // +123.4 -DEFINE_MENU_EDIT_ITEM(float51sign); // +1234.5 -DEFINE_MENU_EDIT_ITEM(float52sign); // +123.45 -DEFINE_MENU_EDIT_ITEM(long5); // 12345 right-justified -DEFINE_MENU_EDIT_ITEM(long5_25); // 12345 right-justified (25 increment) - //////////////////////////////////////////// ///////////////// Menu Tree //////////////// //////////////////////////////////////////// From a37cf2490054ece3c16f0caca26a02c3d33057c8 Mon Sep 17 00:00:00 2001 From: Victor Oliveira Date: Fri, 21 Aug 2020 20:54:21 -0300 Subject: [PATCH 141/194] Emulated DOGM via HAL TFT, XPT IO (#19017) --- .../STM32F1/dogm/u8g_com_stm32duino_fsmc.cpp | 331 ------------------ .../STM32F1/dogm/u8g_com_stm32duino_hwspi.cpp | 236 ------------- Marlin/src/HAL/STM32F1/inc/Conditionals_LCD.h | 4 +- Marlin/src/HAL/STM32F1/tft/tft_fsmc.cpp | 2 +- Marlin/src/HAL/STM32F1/tft/tft_spi.cpp | 30 +- Marlin/src/HAL/STM32F1/tft/xpt2046.cpp | 2 +- Marlin/src/HAL/STM32F1/tft/xpt2046.h | 20 +- Marlin/src/MarlinCore.cpp | 2 +- Marlin/src/inc/Conditionals_LCD.h | 9 +- Marlin/src/inc/SanityCheck.h | 6 + Marlin/src/lcd/dogm/HAL_LCD_com_defines.h | 15 +- ...8g_dev_tft_320x240_upscale_from_128x64.cpp | 165 +++++---- Marlin/src/lcd/extui/lib/mks_ui/SPI_TFT.cpp | 39 +-- Marlin/src/lcd/extui/lib/mks_ui/SPI_TFT.h | 8 +- Marlin/src/lcd/extui/lib/mks_ui/draw_ui.cpp | 6 +- .../extui/lib/mks_ui/mks_hardware_test.cpp | 2 - .../lib/mks_ui/tft_lvgl_configuration.cpp | 30 +- Marlin/src/lcd/scaled_tft.h | 28 +- Marlin/src/lcd/touch/touch_buttons.cpp | 112 ++++++ .../lcd/touch/{xpt2046.h => touch_buttons.h} | 24 +- Marlin/src/lcd/touch/xpt2046.cpp | 251 ------------- Marlin/src/lcd/ultralcd.cpp | 2 +- Marlin/src/pins/stm32f1/pins_CHITU3D_V5.h | 131 +++---- Marlin/src/pins/stm32f1/pins_CHITU3D_V6.h | 147 +++----- Marlin/src/pins/stm32f1/pins_LONGER3D_LK.h | 20 +- Marlin/src/pins/stm32f1/pins_MKS_ROBIN_NANO.h | 122 +++---- .../src/pins/stm32f1/pins_MKS_ROBIN_NANO_V2.h | 187 ++++------ buildroot/share/scripts/pinsformat.js | 41 ++- 28 files changed, 595 insertions(+), 1377 deletions(-) delete mode 100644 Marlin/src/HAL/STM32F1/dogm/u8g_com_stm32duino_fsmc.cpp delete mode 100644 Marlin/src/HAL/STM32F1/dogm/u8g_com_stm32duino_hwspi.cpp create mode 100644 Marlin/src/lcd/touch/touch_buttons.cpp rename Marlin/src/lcd/touch/{xpt2046.h => touch_buttons.h} (56%) delete mode 100644 Marlin/src/lcd/touch/xpt2046.cpp diff --git a/Marlin/src/HAL/STM32F1/dogm/u8g_com_stm32duino_fsmc.cpp b/Marlin/src/HAL/STM32F1/dogm/u8g_com_stm32duino_fsmc.cpp deleted file mode 100644 index 445e53b67..000000000 --- a/Marlin/src/HAL/STM32F1/dogm/u8g_com_stm32duino_fsmc.cpp +++ /dev/null @@ -1,331 +0,0 @@ -/** - * Marlin 3D Printer Firmware - * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin] - * - * Based on Sprinter and grbl. - * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - */ - -/** - * u8g_com_stm32duino_fsmc.cpp - * - * Communication interface for FSMC - */ - -#include "../../../inc/MarlinConfig.h" - -#if defined(ARDUINO_ARCH_STM32F1) && PIN_EXISTS(FSMC_CS) // FSMC on 100/144 pins SoCs - -#if HAS_GRAPHICAL_LCD - -#include -#include -#include -#include -#include - -#ifndef LCD_READ_ID - #define LCD_READ_ID 0x04 // Read display identification information (0xD3 on ILI9341) -#endif - -/* Timing configuration */ -#define FSMC_ADDRESS_SETUP_TIME 15 // AddressSetupTime -#define FSMC_DATA_SETUP_TIME 15 // DataSetupTime - -void LCD_IO_Init(uint8_t cs, uint8_t rs); -void LCD_IO_WriteData(uint16_t RegValue); -void LCD_IO_WriteReg(uint16_t Reg); -uint16_t LCD_IO_ReadData(uint16_t RegValue); -uint32_t LCD_IO_ReadData(uint16_t RegValue, uint8_t ReadSize); -#ifdef LCD_USE_DMA_FSMC - void LCD_IO_WriteMultiple(uint16_t data, uint32_t count); - void LCD_IO_WriteSequence(uint16_t *data, uint16_t length); -#endif - -static uint8_t msgInitCount = 2; // Ignore all messages until 2nd U8G_COM_MSG_INIT - -uint8_t u8g_com_stm32duino_fsmc_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr) { - if (msgInitCount) { - if (msg == U8G_COM_MSG_INIT) msgInitCount--; - if (msgInitCount) return -1; - } - - static uint8_t isCommand; - - switch (msg) { - case U8G_COM_MSG_STOP: break; - case U8G_COM_MSG_INIT: - u8g_SetPIOutput(u8g, U8G_PI_RESET); - - #ifdef LCD_USE_DMA_FSMC - dma_init(FSMC_DMA_DEV); - dma_disable(FSMC_DMA_DEV, FSMC_DMA_CHANNEL); - dma_set_priority(FSMC_DMA_DEV, FSMC_DMA_CHANNEL, DMA_PRIORITY_MEDIUM); - #endif - - LCD_IO_Init(u8g->pin_list[U8G_PI_CS], u8g->pin_list[U8G_PI_A0]); - u8g_Delay(50); - - if (arg_ptr) { - *((uint32_t *)arg_ptr) = LCD_IO_ReadData(0x0000); - if (*((uint32_t *)arg_ptr) == 0) - *((uint32_t *)arg_ptr) = (LCD_READ_ID << 24) | LCD_IO_ReadData(LCD_READ_ID, 3); - } - isCommand = 0; - break; - - case U8G_COM_MSG_ADDRESS: // define cmd (arg_val = 0) or data mode (arg_val = 1) - isCommand = arg_val == 0 ? 1 : 0; - break; - - case U8G_COM_MSG_RESET: - u8g_SetPILevel(u8g, U8G_PI_RESET, arg_val); - break; - - case U8G_COM_MSG_WRITE_BYTE: - if (isCommand) - LCD_IO_WriteReg(arg_val); - else - LCD_IO_WriteData((uint16_t)arg_val); - break; - - case U8G_COM_MSG_WRITE_SEQ: - for (uint8_t i = 0; i < arg_val; i += 2) - LCD_IO_WriteData(*(uint16_t *)(((uint32_t)arg_ptr) + i)); - break; - } - return 1; -} - -/** - * FSMC LCD IO - */ -#define __ASM __asm -#define __STATIC_INLINE static inline - -__attribute__((always_inline)) __STATIC_INLINE void __DSB() { - __ASM volatile ("dsb 0xF":::"memory"); -} - -#define FSMC_CS_NE1 PD7 - -#if ENABLED(STM32_XL_DENSITY) - #define FSMC_CS_NE2 PG9 - #define FSMC_CS_NE3 PG10 - #define FSMC_CS_NE4 PG12 - - #define FSMC_RS_A0 PF0 - #define FSMC_RS_A1 PF1 - #define FSMC_RS_A2 PF2 - #define FSMC_RS_A3 PF3 - #define FSMC_RS_A4 PF4 - #define FSMC_RS_A5 PF5 - #define FSMC_RS_A6 PF12 - #define FSMC_RS_A7 PF13 - #define FSMC_RS_A8 PF14 - #define FSMC_RS_A9 PF15 - #define FSMC_RS_A10 PG0 - #define FSMC_RS_A11 PG1 - #define FSMC_RS_A12 PG2 - #define FSMC_RS_A13 PG3 - #define FSMC_RS_A14 PG4 - #define FSMC_RS_A15 PG5 -#endif - -#define FSMC_RS_A16 PD11 -#define FSMC_RS_A17 PD12 -#define FSMC_RS_A18 PD13 -#define FSMC_RS_A19 PE3 -#define FSMC_RS_A20 PE4 -#define FSMC_RS_A21 PE5 -#define FSMC_RS_A22 PE6 -#define FSMC_RS_A23 PE2 - -#if ENABLED(STM32_XL_DENSITY) - #define FSMC_RS_A24 PG13 - #define FSMC_RS_A25 PG14 -#endif - -static uint8_t fsmcInit = 0; - -typedef struct { - __IO uint16_t REG; - __IO uint16_t RAM; -} LCD_CONTROLLER_TypeDef; - -LCD_CONTROLLER_TypeDef *LCD; - -void LCD_IO_Init(uint8_t cs, uint8_t rs) { - uint32_t controllerAddress; - struct fsmc_nor_psram_reg_map* fsmcPsramRegion; - - if (fsmcInit) return; - fsmcInit = 1; - - switch (cs) { - case FSMC_CS_NE1: controllerAddress = (uint32_t)FSMC_NOR_PSRAM_REGION1; fsmcPsramRegion = FSMC_NOR_PSRAM1_BASE; break; - #if ENABLED(STM32_XL_DENSITY) - case FSMC_CS_NE2: controllerAddress = (uint32_t)FSMC_NOR_PSRAM_REGION2; fsmcPsramRegion = FSMC_NOR_PSRAM2_BASE; break; - case FSMC_CS_NE3: controllerAddress = (uint32_t)FSMC_NOR_PSRAM_REGION3; fsmcPsramRegion = FSMC_NOR_PSRAM3_BASE; break; - case FSMC_CS_NE4: controllerAddress = (uint32_t)FSMC_NOR_PSRAM_REGION4; fsmcPsramRegion = FSMC_NOR_PSRAM4_BASE; break; - #endif - default: return; - } - - #define _ORADDR(N) controllerAddress |= (_BV32(N) - 2) - - switch (rs) { - #if ENABLED(STM32_XL_DENSITY) - case FSMC_RS_A0: _ORADDR( 1); break; - case FSMC_RS_A1: _ORADDR( 2); break; - case FSMC_RS_A2: _ORADDR( 3); break; - case FSMC_RS_A3: _ORADDR( 4); break; - case FSMC_RS_A4: _ORADDR( 5); break; - case FSMC_RS_A5: _ORADDR( 6); break; - case FSMC_RS_A6: _ORADDR( 7); break; - case FSMC_RS_A7: _ORADDR( 8); break; - case FSMC_RS_A8: _ORADDR( 9); break; - case FSMC_RS_A9: _ORADDR(10); break; - case FSMC_RS_A10: _ORADDR(11); break; - case FSMC_RS_A11: _ORADDR(12); break; - case FSMC_RS_A12: _ORADDR(13); break; - case FSMC_RS_A13: _ORADDR(14); break; - case FSMC_RS_A14: _ORADDR(15); break; - case FSMC_RS_A15: _ORADDR(16); break; - #endif - case FSMC_RS_A16: _ORADDR(17); break; - case FSMC_RS_A17: _ORADDR(18); break; - case FSMC_RS_A18: _ORADDR(19); break; - case FSMC_RS_A19: _ORADDR(20); break; - case FSMC_RS_A20: _ORADDR(21); break; - case FSMC_RS_A21: _ORADDR(22); break; - case FSMC_RS_A22: _ORADDR(23); break; - case FSMC_RS_A23: _ORADDR(24); break; - #if ENABLED(STM32_XL_DENSITY) - case FSMC_RS_A24: _ORADDR(25); break; - case FSMC_RS_A25: _ORADDR(26); break; - #endif - default: return; - } - - rcc_clk_enable(RCC_FSMC); - - gpio_set_mode(GPIOD, 14, GPIO_AF_OUTPUT_PP); // FSMC_D00 - gpio_set_mode(GPIOD, 15, GPIO_AF_OUTPUT_PP); // FSMC_D01 - gpio_set_mode(GPIOD, 0, GPIO_AF_OUTPUT_PP); // FSMC_D02 - gpio_set_mode(GPIOD, 1, GPIO_AF_OUTPUT_PP); // FSMC_D03 - gpio_set_mode(GPIOE, 7, GPIO_AF_OUTPUT_PP); // FSMC_D04 - gpio_set_mode(GPIOE, 8, GPIO_AF_OUTPUT_PP); // FSMC_D05 - gpio_set_mode(GPIOE, 9, GPIO_AF_OUTPUT_PP); // FSMC_D06 - gpio_set_mode(GPIOE, 10, GPIO_AF_OUTPUT_PP); // FSMC_D07 - gpio_set_mode(GPIOE, 11, GPIO_AF_OUTPUT_PP); // FSMC_D08 - gpio_set_mode(GPIOE, 12, GPIO_AF_OUTPUT_PP); // FSMC_D09 - gpio_set_mode(GPIOE, 13, GPIO_AF_OUTPUT_PP); // FSMC_D10 - gpio_set_mode(GPIOE, 14, GPIO_AF_OUTPUT_PP); // FSMC_D11 - gpio_set_mode(GPIOE, 15, GPIO_AF_OUTPUT_PP); // FSMC_D12 - gpio_set_mode(GPIOD, 8, GPIO_AF_OUTPUT_PP); // FSMC_D13 - gpio_set_mode(GPIOD, 9, GPIO_AF_OUTPUT_PP); // FSMC_D14 - gpio_set_mode(GPIOD, 10, GPIO_AF_OUTPUT_PP); // FSMC_D15 - - gpio_set_mode(GPIOD, 4, GPIO_AF_OUTPUT_PP); // FSMC_NOE - gpio_set_mode(GPIOD, 5, GPIO_AF_OUTPUT_PP); // FSMC_NWE - - gpio_set_mode(PIN_MAP[cs].gpio_device, PIN_MAP[cs].gpio_bit, GPIO_AF_OUTPUT_PP); //FSMC_CS_NEx - gpio_set_mode(PIN_MAP[rs].gpio_device, PIN_MAP[rs].gpio_bit, GPIO_AF_OUTPUT_PP); //FSMC_RS_Ax - - fsmcPsramRegion->BCR = FSMC_BCR_WREN | FSMC_BCR_MTYP_SRAM | FSMC_BCR_MWID_16BITS | FSMC_BCR_MBKEN; - fsmcPsramRegion->BTR = (FSMC_DATA_SETUP_TIME << 8) | FSMC_ADDRESS_SETUP_TIME; - - afio_remap(AFIO_REMAP_FSMC_NADV); - - LCD = (LCD_CONTROLLER_TypeDef*)controllerAddress; -} - -void LCD_IO_WriteData(uint16_t RegValue) { - LCD->RAM = RegValue; - __DSB(); -} - -void LCD_IO_WriteReg(uint16_t Reg) { - LCD->REG = Reg; - __DSB(); -} - -uint16_t LCD_IO_ReadData(uint16_t RegValue) { - LCD->REG = RegValue; - __DSB(); - - return LCD->RAM; -} - -uint32_t LCD_IO_ReadData(uint16_t RegValue, uint8_t ReadSize) { - volatile uint32_t data; - LCD->REG = RegValue; - __DSB(); - - data = LCD->RAM; // dummy read - data = LCD->RAM & 0x00FF; - - while (--ReadSize) { - data <<= 8; - data |= (LCD->RAM & 0x00FF); - } - return uint32_t(data); -} - -#ifdef LCD_USE_DMA_FSMC - -void LCD_IO_WriteMultiple(uint16_t color, uint32_t count) { - while (count > 0) { - dma_setup_transfer(FSMC_DMA_DEV, FSMC_DMA_CHANNEL, &color, DMA_SIZE_16BITS, &LCD->RAM, DMA_SIZE_16BITS, DMA_MEM_2_MEM); - dma_set_num_transfers(FSMC_DMA_DEV, FSMC_DMA_CHANNEL, count > 65535 ? 65535 : count); - dma_clear_isr_bits(FSMC_DMA_DEV, FSMC_DMA_CHANNEL); - dma_enable(FSMC_DMA_DEV, FSMC_DMA_CHANNEL); - - while ((dma_get_isr_bits(FSMC_DMA_DEV, FSMC_DMA_CHANNEL) & 0x0A) == 0) {}; - dma_disable(FSMC_DMA_DEV, FSMC_DMA_CHANNEL); - - count = count > 65535 ? count - 65535 : 0; - } -} - -void LCD_IO_WriteSequence(uint16_t *data, uint16_t length) { - dma_setup_transfer(FSMC_DMA_DEV, FSMC_DMA_CHANNEL, data, DMA_SIZE_16BITS, &LCD->RAM, DMA_SIZE_16BITS, DMA_MEM_2_MEM | DMA_PINC_MODE); - dma_set_num_transfers(FSMC_DMA_DEV, FSMC_DMA_CHANNEL, length); - dma_clear_isr_bits(FSMC_DMA_DEV, FSMC_DMA_CHANNEL); - dma_enable(FSMC_DMA_DEV, FSMC_DMA_CHANNEL); - - while ((dma_get_isr_bits(FSMC_DMA_DEV, FSMC_DMA_CHANNEL) & 0x0A) == 0) {}; - dma_disable(FSMC_DMA_DEV, FSMC_DMA_CHANNEL); -} - -void LCD_IO_WriteSequence_Async(uint16_t *data, uint16_t length) { - dma_setup_transfer(FSMC_DMA_DEV, FSMC_DMA_CHANNEL, data, DMA_SIZE_16BITS, &LCD->RAM, DMA_SIZE_16BITS, DMA_MEM_2_MEM | DMA_PINC_MODE); - dma_set_num_transfers(FSMC_DMA_DEV, FSMC_DMA_CHANNEL, length); - dma_clear_isr_bits(FSMC_DMA_DEV, FSMC_DMA_CHANNEL); - dma_enable(FSMC_DMA_DEV, FSMC_DMA_CHANNEL); -} - -void LCD_IO_WaitSequence_Async() { - while ((dma_get_isr_bits(FSMC_DMA_DEV, FSMC_DMA_CHANNEL) & 0x0A) == 0) {}; - dma_disable(FSMC_DMA_DEV, FSMC_DMA_CHANNEL); -} - -#endif // LCD_USE_DMA_FSMC - -#endif // HAS_GRAPHICAL_LCD -#endif // ARDUINO_ARCH_STM32F1 && FSMC_CS_PIN diff --git a/Marlin/src/HAL/STM32F1/dogm/u8g_com_stm32duino_hwspi.cpp b/Marlin/src/HAL/STM32F1/dogm/u8g_com_stm32duino_hwspi.cpp deleted file mode 100644 index 206c3fda3..000000000 --- a/Marlin/src/HAL/STM32F1/dogm/u8g_com_stm32duino_hwspi.cpp +++ /dev/null @@ -1,236 +0,0 @@ -/** - * Marlin 3D Printer Firmware - * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin] - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - */ -#ifdef __STM32F1__ - -#include "../../../inc/MarlinConfig.h" - -#if ENABLED(SPI_GRAPHICAL_TFT) && DISABLED(FORCE_SOFT_SPI) - -#include "../HAL.h" -#include -#include - -#define SPI_TFT_CS_H OUT_WRITE(SPI_TFT_CS_PIN, HIGH) -#define SPI_TFT_CS_L OUT_WRITE(SPI_TFT_CS_PIN, LOW) - -#define SPI_TFT_DC_H OUT_WRITE(SPI_TFT_DC_PIN, HIGH) -#define SPI_TFT_DC_L OUT_WRITE(SPI_TFT_DC_PIN, LOW) - -#define SPI_TFT_RST_H OUT_WRITE(SPI_TFT_RST_PIN, HIGH) -#define SPI_TFT_RST_L OUT_WRITE(SPI_TFT_RST_PIN, LOW) - -#define SPI_TFT_BLK_H OUT_WRITE(LCD_BACKLIGHT_PIN, HIGH) -#define SPI_TFT_BLK_L OUT_WRITE(LCD_BACKLIGHT_PIN, LOW) - -void LCD_IO_Init(uint8_t cs, uint8_t rs); -void LCD_IO_WriteData(uint16_t RegValue); -void LCD_IO_WriteReg(uint16_t Reg); -uint16_t LCD_IO_ReadData(uint16_t RegValue); -uint32_t LCD_IO_ReadData(uint16_t RegValue, uint8_t ReadSize); -#ifdef LCD_USE_DMA_SPI - void LCD_IO_WriteMultiple(uint16_t data, uint32_t count); - void LCD_IO_WriteSequence(uint16_t *data, uint16_t length); -#endif - -void LCD_WR_REG(uint8_t cmd) { - SPI_TFT_CS_L; - SPI_TFT_DC_L; - SPI.send(cmd); - SPI_TFT_CS_H; -} -void LCD_WR_DATA(uint8_t data) { - SPI_TFT_CS_L; - SPI_TFT_DC_H; - SPI.send(data); - SPI_TFT_CS_H; -} - -void spi1Init(uint8_t spiRate) { - SPI_TFT_CS_H; - - /** - * STM32F1 APB2 = 72MHz, APB1 = 36MHz, max SPI speed of this MCU if 18Mhz - * STM32F1 has 3 SPI ports, SPI1 in APB2, SPI2/SPI3 in APB1 - * so the minimum prescale of SPI1 is DIV4, SPI2/SPI3 is DIV2 - */ - uint8_t clock; - switch (spiRate) { - case SPI_FULL_SPEED: clock = SPI_CLOCK_DIV4; break; - case SPI_HALF_SPEED: clock = SPI_CLOCK_DIV4; break; - case SPI_QUARTER_SPEED: clock = SPI_CLOCK_DIV8; break; - case SPI_EIGHTH_SPEED: clock = SPI_CLOCK_DIV16; break; - case SPI_SPEED_5: clock = SPI_CLOCK_DIV32; break; - case SPI_SPEED_6: clock = SPI_CLOCK_DIV64; break; - default: clock = SPI_CLOCK_DIV2; // Default from the SPI library - } - SPI.setModule(1); - SPI.begin(); - SPI.setClockDivider(clock); - SPI.setBitOrder(MSBFIRST); - SPI.setDataMode(SPI_MODE0); -} - -void LCD_IO_Init(uint8_t cs, uint8_t rs) { - spi1Init(SPI_FULL_SPEED); -} - -void LCD_IO_WriteData(uint16_t RegValue) { - LCD_WR_DATA(RegValue); -} - -void LCD_IO_WriteReg(uint16_t Reg) { - LCD_WR_REG(Reg); -} - -uint16_t LCD_IO_ReadData(uint16_t RegValue) { - uint16_t d = 0; - SPI_TFT_CS_L; - - SPI_TFT_DC_L; - SPI.send(RegValue); - SPI_TFT_DC_H; - - SPI.read((uint8_t*)&d, 1); //dummy read - SPI.read((uint8_t*)&d, 1); - - SPI_TFT_CS_H; - return d >> 7; -} - -uint32_t LCD_IO_ReadData(uint16_t RegValue, uint8_t ReadSize) { - uint32_t data = 0; - uint8_t d = 0; - SPI_TFT_CS_L; - - SPI_TFT_DC_L; - SPI.send(RegValue); - SPI_TFT_DC_H; - - SPI.read((uint8_t*)&d, 1); //dummy read - SPI.read((uint8_t*)&d, 1); - data = d; - while (--ReadSize) { - data <<= 8; - SPI.read((uint8_t*)&d, 1); - data |= (d & 0xFF); - } - - SPI_TFT_CS_H; - return uint32_t(data >> 7); -} - -#ifdef LCD_USE_DMA_SPI - void LCD_IO_WriteMultiple(uint16_t data, uint32_t count) { - if (SPI.getDataSize() == DATA_SIZE_8BIT) { - count *= 2; - } - while (count > 0) { - SPI_TFT_CS_L; - SPI_TFT_DC_H; - SPI.dmaSend(&data, 1, true); - SPI_TFT_CS_H; - count--; - } - } - - void LCD_IO_WriteSequence(uint16_t *data, uint16_t length) { - if (SPI.getDataSize() == DATA_SIZE_8BIT) { - length *= 2; - } - SPI_TFT_CS_L; - SPI_TFT_DC_H; - SPI.dmaSend(data, length, true); - SPI_TFT_CS_H; - } - - void LCD_IO_WriteSequence_Async(uint16_t *data, uint16_t length) { - if (SPI.getDataSize() == DATA_SIZE_8BIT) { - length *= 2; - } - SPI_TFT_CS_L; - SPI_TFT_DC_H; - SPI.dmaSendAsync(data, length, true); - SPI_TFT_CS_H; - } - - void LCD_IO_WaitSequence_Async() { - SPI_TFT_CS_L; - SPI_TFT_DC_H; - SPI.dmaSendAsync(NULL, 0, true); - SPI_TFT_CS_H; - } -#endif - -static uint8_t msgInitCount = 2; // Ignore all messages until 2nd U8G_COM_MSG_INIT - -#ifndef LCD_READ_ID - #define LCD_READ_ID 0x04 // Read display identification information (0xD3 on ILI9341) -#endif - -uint8_t u8g_com_stm32duino_spi_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr) { - if (msgInitCount) { - if (msg == U8G_COM_MSG_INIT) msgInitCount--; - if (msgInitCount) return -1; - } - - static uint8_t isCommand; - - LCD_IO_Init(-1, -1); - - switch (msg) { - case U8G_COM_MSG_STOP: break; - case U8G_COM_MSG_INIT: - u8g_SetPIOutput(u8g, U8G_PI_RESET); - - u8g_Delay(50); - - if (arg_ptr) { - spi1Init(SPI_EIGHTH_SPEED); - *((uint32_t *)arg_ptr) = (LCD_READ_ID << 24) | LCD_IO_ReadData(LCD_READ_ID, 3); - spi1Init(SPI_FULL_SPEED); - } - isCommand = 0; - break; - - case U8G_COM_MSG_ADDRESS: // define cmd (arg_val = 0) or data mode (arg_val = 1) - isCommand = arg_val == 0 ? 1 : 0; - break; - - case U8G_COM_MSG_RESET: - u8g_SetPILevel(u8g, U8G_PI_RESET, arg_val); - break; - - case U8G_COM_MSG_WRITE_BYTE: - if (isCommand) - LCD_IO_WriteReg(arg_val); - else - LCD_IO_WriteData((uint16_t)arg_val); - break; - - case U8G_COM_MSG_WRITE_SEQ: - for (uint8_t i = 0; i < arg_val; i += 2) - LCD_IO_WriteData(*(uint16_t *)(((uint32_t)arg_ptr) + i)); - break; - - } - return 1; -} - -#endif // SPI_GRAPHICAL_TFT && !FORCE_SOFT_SPI -#endif // STM32F1 diff --git a/Marlin/src/HAL/STM32F1/inc/Conditionals_LCD.h b/Marlin/src/HAL/STM32F1/inc/Conditionals_LCD.h index 09d79030b..25110d7c8 100644 --- a/Marlin/src/HAL/STM32F1/inc/Conditionals_LCD.h +++ b/Marlin/src/HAL/STM32F1/inc/Conditionals_LCD.h @@ -26,8 +26,8 @@ #undef SD_CHECK_AND_RETRY #endif -// This platform has 'touch/xpt2046', not 'tft/xpt2046' -#if ENABLED(TOUCH_SCREEN) && !HAS_FSMC_TFT && !HAS_SPI_TFT +// This emulated DOGM has 'touch/xpt2046', not 'tft/xpt2046' +#if ENABLED(TOUCH_SCREEN) && !HAS_GRAPHICAL_TFT #undef TOUCH_SCREEN #undef TOUCH_SCREEN_CALIBRATION #define HAS_TOUCH_XPT2046 1 diff --git a/Marlin/src/HAL/STM32F1/tft/tft_fsmc.cpp b/Marlin/src/HAL/STM32F1/tft/tft_fsmc.cpp index e0047e7d5..bc1b012dc 100644 --- a/Marlin/src/HAL/STM32F1/tft/tft_fsmc.cpp +++ b/Marlin/src/HAL/STM32F1/tft/tft_fsmc.cpp @@ -22,7 +22,7 @@ #include "../../../inc/MarlinConfig.h" -#if HAS_FSMC_TFT || ENABLED(TFT_LVGL_UI_FSMC) +#if HAS_FSMC_TFT #include "tft_fsmc.h" #include diff --git a/Marlin/src/HAL/STM32F1/tft/tft_spi.cpp b/Marlin/src/HAL/STM32F1/tft/tft_spi.cpp index 2610262b0..109538994 100644 --- a/Marlin/src/HAL/STM32F1/tft/tft_spi.cpp +++ b/Marlin/src/HAL/STM32F1/tft/tft_spi.cpp @@ -22,7 +22,7 @@ #include "../../../inc/MarlinConfig.h" -#if HAS_SPI_TFT || ENABLED(TFT_LVGL_UI_SPI) +#if HAS_SPI_TFT #include "tft_spi.h" @@ -30,32 +30,32 @@ SPIClass TFT_SPI::SPIx(1); -#define SPI_TFT_CS_H OUT_WRITE(TFT_CS_PIN, HIGH) -#define SPI_TFT_CS_L OUT_WRITE(TFT_CS_PIN, LOW) +#define TFT_CS_H OUT_WRITE(TFT_CS_PIN, HIGH) +#define TFT_CS_L OUT_WRITE(TFT_CS_PIN, LOW) -#define SPI_TFT_DC_H OUT_WRITE(TFT_DC_PIN, HIGH) -#define SPI_TFT_DC_L OUT_WRITE(TFT_DC_PIN, LOW) +#define TFT_DC_H OUT_WRITE(TFT_DC_PIN, HIGH) +#define TFT_DC_L OUT_WRITE(TFT_DC_PIN, LOW) -#define SPI_TFT_RST_H OUT_WRITE(TFT_RST_PIN, HIGH) -#define SPI_TFT_RST_L OUT_WRITE(TFT_RST_PIN, LOW) +#define TFT_RST_H OUT_WRITE(TFT_RST_PIN, HIGH) +#define TFT_RST_L OUT_WRITE(TFT_RST_PIN, LOW) -#define SPI_TFT_BLK_H OUT_WRITE(TFT_BACKLIGHT_PIN, HIGH) -#define SPI_TFT_BLK_L OUT_WRITE(TFT_BACKLIGHT_PIN, LOW) +#define TFT_BLK_H OUT_WRITE(TFT_BACKLIGHT_PIN, HIGH) +#define TFT_BLK_L OUT_WRITE(TFT_BACKLIGHT_PIN, LOW) void TFT_SPI::Init() { #if PIN_EXISTS(TFT_RESET) // OUT_WRITE(TFT_RESET_PIN, HIGH); - SPI_TFT_RST_H; + TFT_RST_H; delay(100); #endif #if PIN_EXISTS(TFT_BACKLIGHT) // OUT_WRITE(TFT_BACKLIGHT_PIN, HIGH); - SPI_TFT_BLK_H; + TFT_BLK_H; #endif - SPI_TFT_DC_H; - SPI_TFT_CS_H; + TFT_DC_H; + TFT_CS_H; /** * STM32F1 APB2 = 72MHz, APB1 = 36MHz, max SPI speed of this MCU if 18Mhz @@ -87,7 +87,7 @@ void TFT_SPI::Init() { void TFT_SPI::DataTransferBegin(uint16_t DataSize) { SPIx.setDataSize(DataSize); SPIx.begin(); - SPI_TFT_CS_L; + TFT_CS_L; } uint32_t TFT_SPI::GetID() { @@ -135,7 +135,7 @@ void TFT_SPI::Transmit(uint16_t Data) { void TFT_SPI::TransmitDMA(uint32_t MemoryIncrease, uint16_t *Data, uint16_t Count) { DataTransferBegin(); - SPI_TFT_DC_H; + TFT_DC_H; if (MemoryIncrease == DMA_MINC_ENABLE) { SPIx.dmaSend(Data, Count, true); } diff --git a/Marlin/src/HAL/STM32F1/tft/xpt2046.cpp b/Marlin/src/HAL/STM32F1/tft/xpt2046.cpp index e06cace74..616d05fea 100644 --- a/Marlin/src/HAL/STM32F1/tft/xpt2046.cpp +++ b/Marlin/src/HAL/STM32F1/tft/xpt2046.cpp @@ -19,7 +19,7 @@ #include "../../../inc/MarlinConfig.h" -#if HAS_TFT_XPT2046 +#if HAS_TFT_XPT2046 || HAS_TOUCH_XPT2046 #include "xpt2046.h" #include diff --git a/Marlin/src/HAL/STM32F1/tft/xpt2046.h b/Marlin/src/HAL/STM32F1/tft/xpt2046.h index d2b7ad29b..019f75efc 100644 --- a/Marlin/src/HAL/STM32F1/tft/xpt2046.h +++ b/Marlin/src/HAL/STM32F1/tft/xpt2046.h @@ -24,16 +24,18 @@ #include #endif -#if !PIN_EXISTS(TOUCH_MISO) - #error "TOUCH_MISO_PIN is not defined." -#elif !PIN_EXISTS(TOUCH_MOSI) - #error "TOUCH_MOSI_PIN is not defined." -#elif !PIN_EXISTS(TOUCH_SCK) - #error "TOUCH_SCK_PIN is not defined." -#elif !PIN_EXISTS(TOUCH_CS) - #error "TOUCH_CS_PIN is not defined." +#ifndef TOUCH_MISO_PIN + #define TOUCH_MISO_PIN MISO_PIN +#endif +#ifndef TOUCH_MOSI_PIN + #define TOUCH_MOSI_PIN MOSI_PIN +#endif +#ifndef TOUCH_SCK_PIN + #define TOUCH_SCK_PIN SCK_PIN +#endif +#ifndef TOUCH_CS_PIN + #define TOUCH_CS_PIN CS_PIN #endif - #ifndef TOUCH_INT_PIN #define TOUCH_INT_PIN -1 #endif diff --git a/Marlin/src/MarlinCore.cpp b/Marlin/src/MarlinCore.cpp index 30b6fbe3d..3544a8840 100644 --- a/Marlin/src/MarlinCore.cpp +++ b/Marlin/src/MarlinCore.cpp @@ -57,7 +57,7 @@ #include "lcd/ultralcd.h" #if HAS_TOUCH_XPT2046 - #include "lcd/touch/xpt2046.h" + #include "lcd/touch/touch_buttons.h" #endif #if HAS_TFT_LVGL_UI diff --git a/Marlin/src/inc/Conditionals_LCD.h b/Marlin/src/inc/Conditionals_LCD.h index d8c8103a4..ccafd413c 100644 --- a/Marlin/src/inc/Conditionals_LCD.h +++ b/Marlin/src/inc/Conditionals_LCD.h @@ -286,14 +286,15 @@ #define DELAYED_BACKLIGHT_INIT #endif -// FSMC/SPI TFT Panels (HAL STM32) -#if EITHER(TFT_320x240, TFT_480x320) +// FSMC/SPI TFT Panels using standard HAL/tft/tft_(fsmc|spi).h +#if ANY(TFT_320x240, TFT_480x320, TFT_LVGL_UI_FSMC, FSMC_GRAPHICAL_TFT) #define HAS_FSMC_TFT 1 -#elif EITHER(TFT_320x240_SPI, TFT_480x320_SPI) +#elif ANY(TFT_320x240_SPI, TFT_480x320_SPI, TFT_LVGL_UI_SPI, SPI_GRAPHICAL_TFT) #define HAS_SPI_TFT 1 #endif -#if HAS_FSMC_TFT || HAS_SPI_TFT +// Color UI +#if ANY(TFT_320x240, TFT_480x320, TFT_320x240_SPI, TFT_480x320_SPI) #define HAS_GRAPHICAL_TFT 1 #define IS_ULTIPANEL #endif diff --git a/Marlin/src/inc/SanityCheck.h b/Marlin/src/inc/SanityCheck.h index d31a82677..01243219c 100644 --- a/Marlin/src/inc/SanityCheck.h +++ b/Marlin/src/inc/SanityCheck.h @@ -515,6 +515,12 @@ #error "DIGIPOT_I2C is now DIGIPOT_MCP4451 (or DIGIPOT_MCP4018). Please update Configuration_adv.h." #elif defined(TOUCH_BUTTONS) #error "TOUCH_BUTTONS is now TOUCH_SCREEN. Please update your Configuration.h." +#elif defined(LCD_FULL_PIXEL_HEIGHT) + #error "LCD_FULL_PIXEL_HEIGHT is deprecated and should be removed. Please update your Configuration.h." +#elif defined(LCD_FULL_PIXEL_WIDTH) + #error "LCD_FULL_PIXEL_WIDTH is deprecated and should be removed. Please update your Configuration.h." +#elif defined(FSMC_UPSCALE) + #error "FSMC_UPSCALE is now GRAPHICAL_TFT_UPSCALE. Please update your Configuration.h." #elif defined(ANYCUBIC_TFT_MODEL) #error "ANYCUBIC_TFT_MODEL is now ANYCUBIC_LCD_I3MEGA. Please update your Configuration.h." #elif defined(EVENT_GCODE_SD_STOP) diff --git a/Marlin/src/lcd/dogm/HAL_LCD_com_defines.h b/Marlin/src/lcd/dogm/HAL_LCD_com_defines.h index 1f9621e9c..455fc2388 100644 --- a/Marlin/src/lcd/dogm/HAL_LCD_com_defines.h +++ b/Marlin/src/lcd/dogm/HAL_LCD_com_defines.h @@ -82,14 +82,9 @@ #define U8G_COM_SSD_I2C_HAL u8g_com_arduino_ssd_i2c_fn - #if PIN_EXISTS(FSMC_CS) - uint8_t u8g_com_stm32duino_fsmc_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr); - #define U8G_COM_HAL_FSMC_FN u8g_com_stm32duino_fsmc_fn - #endif - - #if ENABLED(SPI_GRAPHICAL_TFT) - uint8_t u8g_com_stm32duino_spi_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr); - #define U8G_COM_HAL_FSMC_FN u8g_com_stm32duino_spi_fn + #if EITHER(FSMC_GRAPHICAL_TFT, SPI_GRAPHICAL_TFT) + uint8_t u8g_com_stm32duino_tft_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr); + #define U8G_COM_HAL_TFT_FN u8g_com_stm32duino_tft_fn #endif #elif defined(TARGET_LPC1768) @@ -122,6 +117,6 @@ #ifndef U8G_COM_SSD_I2C_HAL #define U8G_COM_SSD_I2C_HAL u8g_com_null_fn #endif -#ifndef U8G_COM_HAL_FSMC_FN - #define U8G_COM_HAL_FSMC_FN u8g_com_null_fn +#ifndef U8G_COM_HAL_TFT_FN + #define U8G_COM_HAL_TFT_FN u8g_com_null_fn #endif diff --git a/Marlin/src/lcd/dogm/u8g_dev_tft_320x240_upscale_from_128x64.cpp b/Marlin/src/lcd/dogm/u8g_dev_tft_320x240_upscale_from_128x64.cpp index e42faf025..dc8fbc53f 100644 --- a/Marlin/src/lcd/dogm/u8g_dev_tft_320x240_upscale_from_128x64.cpp +++ b/Marlin/src/lcd/dogm/u8g_dev_tft_320x240_upscale_from_128x64.cpp @@ -67,28 +67,24 @@ #define HAS_LCD_IO 1 #endif -#if HAS_LCD_IO - extern void LCD_IO_Init(uint8_t cs, uint8_t rs); - extern uint16_t LCD_IO_ReadData(uint16_t Reg); - extern uint32_t LCD_IO_ReadData(uint16_t RegValue, uint8_t ReadSize); - extern void LCD_IO_WriteReg(uint16_t Reg); - extern void LCD_IO_WriteData(uint16_t RegValue); - extern void LCD_IO_WriteSequence(uint16_t *data, uint16_t length); - extern void LCD_IO_WriteSequence_Async(uint16_t *data, uint16_t length); - extern void LCD_IO_WaitSequence_Async(); - extern void LCD_IO_WriteMultiple(uint16_t color, uint32_t count); +#if ENABLED(SPI_GRAPHICAL_TFT) + #include HAL_PATH(../../HAL, tft/tft_spi.h) +#elif ENABLED(FSMC_GRAPHICAL_TFT) + #include HAL_PATH(../../HAL, tft/tft_fsmc.h) #endif +TFT_IO tftio; + #define WIDTH LCD_PIXEL_WIDTH #define HEIGHT LCD_PIXEL_HEIGHT #define PAGE_HEIGHT 8 #include "../scaled_tft.h" -#define UPSCALE0(M) ((M) * (FSMC_UPSCALE)) +#define UPSCALE0(M) ((M) * (GRAPHICAL_TFT_UPSCALE)) #define UPSCALE(A,M) (UPSCALE0(M) + (A)) -#define X_HI (UPSCALE(LCD_PIXEL_OFFSET_X, WIDTH) - 1) -#define Y_HI (UPSCALE(LCD_PIXEL_OFFSET_Y, HEIGHT) - 1) +#define X_HI (UPSCALE(TFT_PIXEL_OFFSET_X, WIDTH) - 1) +#define Y_HI (UPSCALE(TFT_PIXEL_OFFSET_Y, HEIGHT) - 1) // see https://ee-programming-notepad.blogspot.com/2016/10/16-bit-color-generator-picker.html @@ -156,7 +152,8 @@ static uint32_t lcd_id = 0; static void setWindow_ili9328(u8g_t *u8g, u8g_dev_t *dev, uint16_t Xmin, uint16_t Ymin, uint16_t Xmax, uint16_t Ymax) { #if HAS_LCD_IO - #define IO_REG_DATA(R,D) do { LCD_IO_WriteReg(R); LCD_IO_WriteData(D); }while(0) + tftio.DataTransferBegin(DATASIZE_8BIT); + #define IO_REG_DATA(R,D) do { tftio.WriteReg(R); tftio.WriteData(D); }while(0) #else #define IO_REG_DATA(R,D) do { u8g_WriteByte(u8g, dev, R); u8g_WriteSequence(u8g, dev, 2, (uint8_t *)&D); }while(0) #endif @@ -174,7 +171,8 @@ static void setWindow_ili9328(u8g_t *u8g, u8g_dev_t *dev, uint16_t Xmin, uint16_ IO_REG_DATA(ILI9328_VASET, Xmin); #if HAS_LCD_IO - LCD_IO_WriteReg(ILI9328_WRITE_RAM); + tftio.WriteReg(ILI9328_WRITE_RAM); + tftio.DataTransferEnd(); #else u8g_WriteByte(u8g, dev, ILI9328_WRITE_RAM); u8g_SetAddress(u8g, dev, 1); @@ -183,19 +181,21 @@ static void setWindow_ili9328(u8g_t *u8g, u8g_dev_t *dev, uint16_t Xmin, uint16_ static void setWindow_st7789v(u8g_t *u8g, u8g_dev_t *dev, uint16_t Xmin, uint16_t Ymin, uint16_t Xmax, uint16_t Ymax) { #if HAS_LCD_IO - LCD_IO_WriteReg(ST7789V_CASET); - LCD_IO_WriteData((Xmin >> 8) & 0xFF); - LCD_IO_WriteData(Xmin & 0xFF); - LCD_IO_WriteData((Xmax >> 8) & 0xFF); - LCD_IO_WriteData(Xmax & 0xFF); + tftio.DataTransferBegin(DATASIZE_8BIT); + tftio.WriteReg(ST7789V_CASET); + tftio.WriteData((Xmin >> 8) & 0xFF); + tftio.WriteData(Xmin & 0xFF); + tftio.WriteData((Xmax >> 8) & 0xFF); + tftio.WriteData(Xmax & 0xFF); - LCD_IO_WriteReg(ST7789V_RASET); - LCD_IO_WriteData((Ymin >> 8) & 0xFF); - LCD_IO_WriteData(Ymin & 0xFF); - LCD_IO_WriteData((Ymax >> 8) & 0xFF); - LCD_IO_WriteData(Ymax & 0xFF); + tftio.WriteReg(ST7789V_RASET); + tftio.WriteData((Ymin >> 8) & 0xFF); + tftio.WriteData(Ymin & 0xFF); + tftio.WriteData((Ymax >> 8) & 0xFF); + tftio.WriteData(Ymax & 0xFF); - LCD_IO_WriteReg(ST7789V_WRITE_RAM); + tftio.WriteReg(ST7789V_WRITE_RAM); + tftio.DataTransferEnd(); #else u8g_SetAddress(u8g, dev, 0); u8g_WriteByte(u8g, dev, ST7789V_CASET); u8g_SetAddress(u8g, dev, 1); u8g_WriteByte(u8g, dev, (Xmin >> 8) & 0xFF); @@ -227,17 +227,17 @@ void (*setWindow)(u8g_t *u8g, u8g_dev_t *dev, uint16_t Xmin, uint16_t Ymin, uint for (;;) { data = *sequence++; if (data != 0xFFFF) { - LCD_IO_WriteData(data); + tftio.WriteData(data); continue; } data = *sequence++; if (data == 0x7FFF) return; if (data == 0xFFFF) { - LCD_IO_WriteData(data); + tftio.WriteData(data); } else if (data & 0x8000) { delay(data & 0x7FFF); } else if ((data & 0xFF00) == 0) { - LCD_IO_WriteReg(data); + tftio.WriteReg(data); } } } @@ -591,7 +591,7 @@ static const uint16_t st7796_init[] = { #define BUTTON_Y_HI (UPSCALE(BUTTON_Y_LO, BUTTON_SIZE_Y) - 1) void drawImage(const uint8_t *data, u8g_t *u8g, u8g_dev_t *dev, uint16_t length, uint16_t height, uint16_t color) { - uint16_t buffer[BUTTON_SIZE_X * sq(FSMC_UPSCALE)]; + uint16_t buffer[BUTTON_SIZE_X * sq(GRAPHICAL_TFT_UPSCALE)]; if (length > BUTTON_SIZE_X) return; @@ -603,16 +603,16 @@ static const uint16_t st7796_init[] = { v = color; else v = TFT_MARLINBG_COLOR; - LOOP_L_N(n, FSMC_UPSCALE) buffer[k++] = v; + LOOP_L_N(n, GRAPHICAL_TFT_UPSCALE) buffer[k++] = v; } #if HAS_LCD_IO - LOOP_S_L_N(n, 1, FSMC_UPSCALE) + LOOP_S_L_N(n, 1, GRAPHICAL_TFT_UPSCALE) for (uint16_t l = 0; l < UPSCALE0(length); l++) buffer[l + n * UPSCALE0(length)] = buffer[l]; - LCD_IO_WriteSequence(buffer, length * sq(FSMC_UPSCALE)); + tftio.WriteSequence(buffer, length * sq(GRAPHICAL_TFT_UPSCALE)); #else - for (uint8_t i = FSMC_UPSCALE; i--;) + for (uint8_t i = GRAPHICAL_TFT_UPSCALE; i--;) u8g_WriteSequence(u8g, dev, k << 1, (uint8_t*)buffer); #endif } @@ -632,22 +632,17 @@ static uint8_t page; uint8_t u8g_dev_tft_320x240_upscale_from_128x64_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) { u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - #if ENABLED(SPI_GRAPHICAL_TFT) - LCD_IO_Init(-1, -1); - #endif - #if HAS_LCD_IO - static uint16_t bufferA[WIDTH * sq(FSMC_UPSCALE)], bufferB[WIDTH * sq(FSMC_UPSCALE)]; + static uint16_t bufferA[WIDTH * sq(GRAPHICAL_TFT_UPSCALE)], bufferB[WIDTH * sq(GRAPHICAL_TFT_UPSCALE)]; uint16_t* buffer = &bufferA[0]; - bool allow_async = DISABLED(SPI_GRAPHICAL_TFT); #else - uint16_t buffer[WIDTH * FSMC_UPSCALE]; // 16-bit RGB 565 pixel line buffer + uint16_t buffer[WIDTH * GRAPHICAL_TFT_UPSCALE]; // 16-bit RGB 565 pixel line buffer #endif switch (msg) { case U8G_DEV_MSG_INIT: dev->com_fn(u8g, U8G_COM_MSG_INIT, U8G_SPI_CLK_CYCLE_NONE, &lcd_id); - + tftio.DataTransferBegin(DATASIZE_8BIT); switch (lcd_id & 0xFFFF) { case 0x8552: // ST7789V WRITE_ESC_SEQUENCE(st7789v_init); @@ -682,6 +677,7 @@ uint8_t u8g_dev_tft_320x240_upscale_from_128x64_fn(u8g_t *u8g, u8g_dev_t *dev, u setWindow = (lcd_id & 0xFF000000) ? setWindow_st7789v : setWindow_ili9328; break; } + tftio.DataTransferEnd(); if (preinit) { preinit = false; @@ -689,13 +685,13 @@ uint8_t u8g_dev_tft_320x240_upscale_from_128x64_fn(u8g_t *u8g, u8g_dev_t *dev, u } // Clear Screen - setWindow(u8g, dev, 0, 0, (LCD_FULL_PIXEL_WIDTH) - 1, (LCD_FULL_PIXEL_HEIGHT) - 1); + setWindow(u8g, dev, 0, 0, (TFT_WIDTH) - 1, (TFT_HEIGHT) - 1); #if HAS_LCD_IO - LCD_IO_WriteMultiple(TFT_MARLINBG_COLOR, (LCD_FULL_PIXEL_WIDTH) * (LCD_FULL_PIXEL_HEIGHT)); + tftio.WriteMultiple(TFT_MARLINBG_COLOR, uint32_t(TFT_WIDTH) * (TFT_HEIGHT)); #else - memset2(buffer, TFT_MARLINBG_COLOR, (LCD_FULL_PIXEL_WIDTH) / 2); - for (uint16_t i = 0; i < (LCD_FULL_PIXEL_HEIGHT) * sq(FSMC_UPSCALE); i++) - u8g_WriteSequence(u8g, dev, LCD_FULL_PIXEL_WIDTH / 2, (uint8_t *)buffer); + memset2(buffer, TFT_MARLINBG_COLOR, (TFT_WIDTH) / 2); + for (uint16_t i = 0; i < (TFT_HEIGHT) * sq(GRAPHICAL_TFT_UPSCALE); i++) + u8g_WriteSequence(u8g, dev, (TFT_WIDTH) / 2, (uint8_t *)buffer); #endif // Bottom buttons @@ -719,7 +715,7 @@ uint8_t u8g_dev_tft_320x240_upscale_from_128x64_fn(u8g_t *u8g, u8g_dev_t *dev, u case U8G_DEV_MSG_PAGE_FIRST: page = 0; - setWindow(u8g, dev, LCD_PIXEL_OFFSET_X, LCD_PIXEL_OFFSET_Y, X_HI, Y_HI); + setWindow(u8g, dev, TFT_PIXEL_OFFSET_X, TFT_PIXEL_OFFSET_Y, X_HI, Y_HI); break; case U8G_DEV_MSG_PAGE_NEXT: @@ -733,26 +729,18 @@ uint8_t u8g_dev_tft_320x240_upscale_from_128x64_fn(u8g_t *u8g, u8g_dev_t *dev, u for (uint16_t i = 0; i < (uint32_t)pb->width; i++) { const uint8_t b = *(((uint8_t *)pb->buf) + i); const uint16_t c = TEST(b, y) ? TFT_MARLINUI_COLOR : TFT_MARLINBG_COLOR; - LOOP_L_N(n, FSMC_UPSCALE) buffer[k++] = c; + LOOP_L_N(n, GRAPHICAL_TFT_UPSCALE) buffer[k++] = c; } #if HAS_LCD_IO - LOOP_S_L_N(n, 1, FSMC_UPSCALE) + LOOP_S_L_N(n, 1, GRAPHICAL_TFT_UPSCALE) for (uint16_t l = 0; l < UPSCALE0(WIDTH); l++) buffer[l + n * UPSCALE0(WIDTH)] = buffer[l]; - if (allow_async) { - if (y > 0 || page > 1) LCD_IO_WaitSequence_Async(); - if (y == 7 && page == 8) - LCD_IO_WriteSequence(buffer, COUNT(bufferA)); // last line of last page - else - LCD_IO_WriteSequence_Async(buffer, COUNT(bufferA)); - } - else - LCD_IO_WriteSequence(buffer, COUNT(bufferA)); + tftio.WriteSequence(buffer, COUNT(bufferA)); #else uint8_t* bufptr = (uint8_t*) buffer; - for (uint8_t i = FSMC_UPSCALE; i--;) { - LOOP_S_L_N(n, 0, FSMC_UPSCALE * 2) { + for (uint8_t i = GRAPHICAL_TFT_UPSCALE; i--;) { + LOOP_S_L_N(n, 0, GRAPHICAL_TFT_UPSCALE * 2) { u8g_WriteSequence(u8g, dev, WIDTH, &bufptr[WIDTH * n]); } } @@ -770,6 +758,59 @@ uint8_t u8g_dev_tft_320x240_upscale_from_128x64_fn(u8g_t *u8g, u8g_dev_t *dev, u return u8g_dev_pb8v1_base_fn(u8g, dev, msg, arg); } -U8G_PB_DEV(u8g_dev_tft_320x240_upscale_from_128x64, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_tft_320x240_upscale_from_128x64_fn, U8G_COM_HAL_FSMC_FN); +static uint8_t msgInitCount = 2; // Ignore all messages until 2nd U8G_COM_MSG_INIT + +uint8_t u8g_com_stm32duino_tft_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr) { + if (msgInitCount) { + if (msg == U8G_COM_MSG_INIT) msgInitCount--; + if (msgInitCount) return -1; + } + + static uint8_t isCommand; + + switch (msg) { + case U8G_COM_MSG_STOP: break; + case U8G_COM_MSG_INIT: + u8g_SetPIOutput(u8g, U8G_PI_RESET); + + u8g_Delay(50); + + tftio.Init(); + + if (arg_ptr) { + *((uint32_t *)arg_ptr) = tftio.GetID(); + } + isCommand = 0; + break; + + case U8G_COM_MSG_ADDRESS: // define cmd (arg_val = 0) or data mode (arg_val = 1) + isCommand = arg_val == 0 ? 1 : 0; + break; + + case U8G_COM_MSG_RESET: + u8g_SetPILevel(u8g, U8G_PI_RESET, arg_val); + break; + + case U8G_COM_MSG_WRITE_BYTE: + tftio.DataTransferBegin(DATASIZE_8BIT); + if (isCommand) + tftio.WriteReg(arg_val); + else + tftio.WriteData((uint16_t)arg_val); + tftio.DataTransferEnd(); + break; + + case U8G_COM_MSG_WRITE_SEQ: + tftio.DataTransferBegin(DATASIZE_8BIT); + for (uint8_t i = 0; i < arg_val; i += 2) + tftio.WriteData(*(uint16_t *)(((uint32_t)arg_ptr) + i)); + tftio.DataTransferEnd(); + break; + + } + return 1; +} + +U8G_PB_DEV(u8g_dev_tft_320x240_upscale_from_128x64, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_tft_320x240_upscale_from_128x64_fn, U8G_COM_HAL_TFT_FN); #endif // HAS_GRAPHICAL_LCD && FSMC_CS diff --git a/Marlin/src/lcd/extui/lib/mks_ui/SPI_TFT.cpp b/Marlin/src/lcd/extui/lib/mks_ui/SPI_TFT.cpp index 607090ba3..ea94d6c1a 100644 --- a/Marlin/src/lcd/extui/lib/mks_ui/SPI_TFT.cpp +++ b/Marlin/src/lcd/extui/lib/mks_ui/SPI_TFT.cpp @@ -33,25 +33,6 @@ TFT SPI_TFT; -#ifndef SPI_TFT_MISO_PIN - #define SPI_TFT_MISO_PIN PA6 -#endif -#ifndef SPI_TFT_MOSI_PIN - #define SPI_TFT_MOSI_PIN PA7 -#endif -#ifndef SPI_TFT_SCK_PIN - #define SPI_TFT_SCK_PIN PA5 -#endif -#ifndef SPI_TFT_CS_PIN - #define SPI_TFT_CS_PIN PD11 -#endif -#ifndef SPI_TFT_DC_PIN - #define SPI_TFT_DC_PIN PD10 -#endif -#ifndef SPI_TFT_RST_PIN - #define SPI_TFT_RST_PIN PC6 -#endif - // use SPI1 for the spi tft. void TFT::spi_init(uint8_t spiRate) { tftio.Init(); @@ -93,11 +74,11 @@ void TFT::SetWindows(uint16_t x, uint16_t y, uint16_t with, uint16_t height) { } void TFT::LCD_init() { - SPI_TFT_RST_H; + TFT_RST_H; delay(150); - SPI_TFT_RST_L; + TFT_RST_L; delay(150); - SPI_TFT_RST_H; + TFT_RST_H; tftio.DataTransferBegin(DATASIZE_8BIT); @@ -176,22 +157,22 @@ void TFT::LCD_init() { LCD_clear(0x0000); // LCD_Draw_Logo(); - SPI_TFT_BLK_H; + TFT_BLK_H; delay(2000); } void TFT::LCD_clear(uint16_t color) { - SetWindows(0, 0, (LCD_FULL_PIXEL_WIDTH) - 1, (LCD_FULL_PIXEL_HEIGHT) - 1); - tftio.WriteMultiple(color, (uint32_t)(LCD_FULL_PIXEL_WIDTH) * (LCD_FULL_PIXEL_HEIGHT)); + SetWindows(0, 0, (TFT_WIDTH) - 1, (TFT_HEIGHT) - 1); + tftio.WriteMultiple(color, (uint32_t)(TFT_WIDTH) * (TFT_HEIGHT)); } extern unsigned char bmp_public_buf[17 * 1024]; void TFT::LCD_Draw_Logo() { - SetWindows(0, 0, LCD_FULL_PIXEL_WIDTH, LCD_FULL_PIXEL_HEIGHT); - for (uint16_t i = 0; i < (LCD_FULL_PIXEL_HEIGHT); i ++) { - Pic_Logo_Read((uint8_t *)"", (uint8_t *)bmp_public_buf, (LCD_FULL_PIXEL_WIDTH) * 2); - tftio.WriteSequence((uint16_t *)bmp_public_buf, LCD_FULL_PIXEL_WIDTH); + SetWindows(0, 0, TFT_WIDTH, TFT_HEIGHT); + for (uint16_t i = 0; i < (TFT_HEIGHT); i ++) { + Pic_Logo_Read((uint8_t *)"", (uint8_t *)bmp_public_buf, (TFT_WIDTH) * 2); + tftio.WriteSequence((uint16_t *)bmp_public_buf, TFT_WIDTH); } } diff --git a/Marlin/src/lcd/extui/lib/mks_ui/SPI_TFT.h b/Marlin/src/lcd/extui/lib/mks_ui/SPI_TFT.h index c4b04e1c2..e40039fe8 100644 --- a/Marlin/src/lcd/extui/lib/mks_ui/SPI_TFT.h +++ b/Marlin/src/lcd/extui/lib/mks_ui/SPI_TFT.h @@ -29,11 +29,11 @@ #include HAL_PATH(../../HAL, tft/tft_fsmc.h) #endif -#define SPI_TFT_RST_H OUT_WRITE(SPI_TFT_RST_PIN, HIGH) -#define SPI_TFT_RST_L OUT_WRITE(SPI_TFT_RST_PIN, LOW) +#define TFT_RST_H OUT_WRITE(TFT_RESET_PIN, HIGH) +#define TFT_RST_L OUT_WRITE(TFT_RESET_PIN, LOW) -#define SPI_TFT_BLK_H OUT_WRITE(LCD_BACKLIGHT_PIN, HIGH) -#define SPI_TFT_BLK_L OUT_WRITE(LCD_BACKLIGHT_PIN, LOW) +#define TFT_BLK_H OUT_WRITE(LCD_BACKLIGHT_PIN, HIGH) +#define TFT_BLK_L OUT_WRITE(LCD_BACKLIGHT_PIN, LOW) class TFT { public: diff --git a/Marlin/src/lcd/extui/lib/mks_ui/draw_ui.cpp b/Marlin/src/lcd/extui/lib/mks_ui/draw_ui.cpp index dc5e4910e..ff9d0518d 100644 --- a/Marlin/src/lcd/extui/lib/mks_ui/draw_ui.cpp +++ b/Marlin/src/lcd/extui/lib/mks_ui/draw_ui.cpp @@ -653,10 +653,10 @@ char *creat_title_text() { i += 2; if (*p_index == 0x0000) *p_index = 0xC318; } - SPI_TFT_CS_L; - SPI_TFT_DC_H; + TFT_CS_L; + TFT_DC_H; SPI.dmaSend(bmp_public_buf, 400, true); - SPI_TFT_CS_H; + TFT_CS_H; #else for (i = 0; i < 400;) { diff --git a/Marlin/src/lcd/extui/lib/mks_ui/mks_hardware_test.cpp b/Marlin/src/lcd/extui/lib/mks_ui/mks_hardware_test.cpp index a2795e933..297ba723d 100644 --- a/Marlin/src/lcd/extui/lib/mks_ui/mks_hardware_test.cpp +++ b/Marlin/src/lcd/extui/lib/mks_ui/mks_hardware_test.cpp @@ -34,8 +34,6 @@ #include "pic_manager.h" #include -#include "../../../touch/xpt2046.h" - #include "../../../../MarlinCore.h" #include "../../../../module/temperature.h" #include "../../../../sd/cardreader.h" diff --git a/Marlin/src/lcd/extui/lib/mks_ui/tft_lvgl_configuration.cpp b/Marlin/src/lcd/extui/lib/mks_ui/tft_lvgl_configuration.cpp index 391e12ba3..23072d27c 100644 --- a/Marlin/src/lcd/extui/lib/mks_ui/tft_lvgl_configuration.cpp +++ b/Marlin/src/lcd/extui/lib/mks_ui/tft_lvgl_configuration.cpp @@ -51,11 +51,11 @@ XPT2046 touch; #include -#ifndef LCD_FULL_PIXEL_WIDTH - #define LCD_FULL_PIXEL_WIDTH 480 +#ifndef TFT_WIDTH + #define TFT_WIDTH 480 #endif -#ifndef LCD_FULL_PIXEL_HEIGHT - #define LCD_FULL_PIXEL_HEIGHT 320 +#ifndef TFT_HEIGHT + #define TFT_HEIGHT 320 #endif #if HAS_SPI_FLASH_FONT @@ -135,7 +135,7 @@ void LCD_WriteRAM_Prepare(void) { void tft_set_point(uint16_t x, uint16_t y, uint16_t point) { //if (DeviceCode == 0x9488) { - if (x > (LCD_FULL_PIXEL_WIDTH) || y > (LCD_FULL_PIXEL_HEIGHT)) return; + if (x > (TFT_WIDTH) || y > (TFT_HEIGHT)) return; //} tft_set_cursor(x, y); @@ -196,8 +196,8 @@ void ili9320_SetWindows(uint16_t StartX, uint16_t StartY, uint16_t width, uint16 LCD_WriteReg(0x0053, yEnd);*/ LCD_WriteReg(0x0050, StartY); // Specify the start/end positions of the window address in the horizontal direction by an address unit LCD_WriteReg(0x0051, yEnd); // Specify the start positions of the window address in the vertical direction by an address unit - LCD_WriteReg(0x0052, (LCD_FULL_PIXEL_HEIGHT) - xEnd); - LCD_WriteReg(0x0053, (LCD_FULL_PIXEL_HEIGHT) - StartX - 1); // Specify the end positions of the window address in the vertical direction by an address unit + LCD_WriteReg(0x0052, (TFT_HEIGHT) - xEnd); + LCD_WriteReg(0x0053, (TFT_HEIGHT) - StartX - 1); // Specify the end positions of the window address in the vertical direction by an address unit } else { @@ -231,16 +231,16 @@ void LCD_Clear(uint16_t Color) { if (DeviceCode == 0x9488) { tft_set_cursor(0, 0); - ili9320_SetWindows(0, 0, LCD_FULL_PIXEL_WIDTH, LCD_FULL_PIXEL_HEIGHT); + ili9320_SetWindows(0, 0, TFT_WIDTH, TFT_HEIGHT); LCD_WriteRAM_Prepare(); #ifdef LCD_USE_DMA_FSMC - LCD_IO_WriteMultiple(Color, (LCD_FULL_PIXEL_WIDTH) * (LCD_FULL_PIXEL_HEIGHT)); + LCD_IO_WriteMultiple(Color, (TFT_WIDTH) * (TFT_HEIGHT)); #else - //index = (LCD_FULL_PIXEL_HEIGHT) / 2 * (LCD_FULL_PIXEL_WIDTH); - for (index = 0; index < (LCD_FULL_PIXEL_HEIGHT) * (LCD_FULL_PIXEL_WIDTH); index++) + //index = (TFT_HEIGHT) / 2 * (TFT_WIDTH); + for (index = 0; index < (TFT_HEIGHT) * (TFT_WIDTH); index++) LCD_IO_WriteData(Color); #endif - //LCD_IO_WriteMultiple(Color, (LCD_FULL_PIXEL_WIDTH) * (LCD_FULL_PIXEL_HEIGHT)); + //LCD_IO_WriteMultiple(Color, (TFT_WIDTH) * (TFT_HEIGHT)); //while(index --) LCD_IO_WriteData(Color); } else if (DeviceCode == 0x5761) { @@ -378,7 +378,7 @@ void init_tft() { for (i = 0; i < 65535; i++); LCD_IO_WriteReg(0x0029); - ili9320_SetWindows(0, 0, LCD_FULL_PIXEL_WIDTH, LCD_FULL_PIXEL_HEIGHT); + ili9320_SetWindows(0, 0, TFT_WIDTH, TFT_HEIGHT); LCD_Clear(0x0000); OUT_WRITE(LCD_BACKLIGHT_PIN, HIGH); @@ -522,8 +522,8 @@ static bool get_point(int16_t *x, int16_t *y) { } #if ENABLED(GRAPHICAL_TFT_ROTATE_180) - x = (LCD_FULL_PIXEL_WIDTH) - x; - y = (LCD_FULL_PIXEL_HEIGHT) - y; + x = (TFT_WIDTH) - x; + y = (TFT_HEIGHT) - y; #endif return is_touched; diff --git a/Marlin/src/lcd/scaled_tft.h b/Marlin/src/lcd/scaled_tft.h index f22bdf696..be846f70a 100644 --- a/Marlin/src/lcd/scaled_tft.h +++ b/Marlin/src/lcd/scaled_tft.h @@ -23,28 +23,28 @@ #include "../inc/MarlinConfig.h" -#ifndef FSMC_UPSCALE - #define FSMC_UPSCALE 2 +#ifndef GRAPHICAL_TFT_UPSCALE + #define GRAPHICAL_TFT_UPSCALE 2 #endif -#ifndef LCD_FULL_PIXEL_WIDTH - #if FSMC_UPSCALE == 3 - #define LCD_FULL_PIXEL_WIDTH 480 +#ifndef TFT_WIDTH + #if GRAPHICAL_TFT_UPSCALE == 3 + #define TFT_WIDTH 480 #else - #define LCD_FULL_PIXEL_WIDTH 320 + #define TFT_WIDTH 320 #endif #endif -#ifndef LCD_FULL_PIXEL_HEIGHT - #if FSMC_UPSCALE == 3 - #define LCD_FULL_PIXEL_HEIGHT 320 +#ifndef TFT_HEIGHT + #if GRAPHICAL_TFT_UPSCALE == 3 + #define TFT_HEIGHT 320 #else - #define LCD_FULL_PIXEL_HEIGHT 240 + #define TFT_HEIGHT 240 #endif #endif -#ifndef LCD_PIXEL_OFFSET_X - #define LCD_PIXEL_OFFSET_X 48 +#ifndef TFT_PIXEL_OFFSET_X + #define TFT_PIXEL_OFFSET_X 48 #endif -#ifndef LCD_PIXEL_OFFSET_Y - #define LCD_PIXEL_OFFSET_Y 48 +#ifndef TFT_PIXEL_OFFSET_Y + #define TFT_PIXEL_OFFSET_Y 48 #endif diff --git a/Marlin/src/lcd/touch/touch_buttons.cpp b/Marlin/src/lcd/touch/touch_buttons.cpp new file mode 100644 index 000000000..8eae73df1 --- /dev/null +++ b/Marlin/src/lcd/touch/touch_buttons.cpp @@ -0,0 +1,112 @@ +/** + * Marlin 3D Printer Firmware + * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin] + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + */ + +#include "../../inc/MarlinConfig.h" + +#if HAS_TOUCH_XPT2046 + +#include "touch_buttons.h" +#include "../scaled_tft.h" + +#include HAL_PATH(../../HAL, tft/xpt2046.h) +XPT2046 touchIO; + +#include "../../lcd/ultralcd.h" // For EN_C bit mask + +/** + * Draw and Touch processing + * + * LCD_PIXEL_WIDTH/HEIGHT (128x64) is the (emulated DOGM) Pixel Drawing resolution. + * TOUCH_SENSOR_WIDTH/HEIGHT (320x240) is the Touch Area resolution. + * TFT_WIDTH/HEIGHT (320x240 or 480x320) is the Actual (FSMC) Display resolution. + * + * - All native (u8g) drawing is done in LCD_PIXEL_* (128x64) + * - The DOGM pixels are is upscaled 2-3x (as needed) for display. + * - Touch coordinates use TOUCH_SENSOR_* resolution and are converted to + * click and scroll-wheel events (emulating of a common DOGM display). + * + * TOUCH_SCREEN resolution exists to fit our calibration values. The original touch code was made + * and originally calibrated for 320x240. If you decide to change the resolution of the touch code, + * new calibration values will be needed. + * + * The Marlin menus are drawn scaled in the upper region of the screen. The bottom region (in a + * fixed location in TOUCH_SCREEN* coordinate space) is used for 4 general-purpose buttons to + * navigate and select menu items. Both regions are touchable. + * + * The Marlin screen touchable area starts at TFT_PIXEL_OFFSET_X/Y (translated to SCREEN_PCT_LEFT/TOP) + * and spans LCD_PIXEL_WIDTH/HEIGHT (scaled to SCREEN_PCT_WIDTH/HEIGHT). + */ + +// Touch sensor resolution independent of display resolution +#define TOUCH_SENSOR_WIDTH 320 +#define TOUCH_SENSOR_HEIGHT 240 + +#define SCREEN_PCT_WIDE(X) ((X) * (TOUCH_SENSOR_WIDTH) / (TFT_WIDTH)) +#define SCREEN_PCT_HIGH(Y) ((Y) * (TOUCH_SENSOR_HEIGHT) / (TFT_HEIGHT)) + +#define SCREEN_PCT_LEFT SCREEN_PCT_WIDE(TFT_PIXEL_OFFSET_X) +#define SCREEN_PCT_TOP SCREEN_PCT_HIGH(TFT_PIXEL_OFFSET_Y) +#define SCREEN_PCT_WIDTH SCREEN_PCT_WIDE((GRAPHICAL_TFT_UPSCALE) * (LCD_PIXEL_WIDTH)) +#define SCREEN_PCT_HEIGHT SCREEN_PCT_HIGH((GRAPHICAL_TFT_UPSCALE) * (LCD_PIXEL_HEIGHT)) + +// Coordinates in terms of 240-unit-tall touch area +#define BUTTON_AREA_TOP 175 +#define BUTTON_AREA_BOT 234 + +TouchButtons touch; + +void TouchButtons::init() { touchIO.Init(); } + +uint8_t TouchButtons::read_buttons() { + #ifdef HAS_SPI_LCD + int16_t x, y; + + if (!touchIO.getRawPoint(&x, &y)) return 0; + + x = uint16_t((uint32_t(x) * XPT2046_X_CALIBRATION) >> 16) + XPT2046_X_OFFSET; + y = uint16_t((uint32_t(y) * XPT2046_Y_CALIBRATION) >> 16) + XPT2046_Y_OFFSET; + + #if ENABLED(GRAPHICAL_TFT_ROTATE_180) + x = TOUCH_SENSOR_WIDTH - x; + y = TOUCH_SENSOR_HEIGHT - y; + #endif + + // Touch within the button area simulates an encoder button + if (y > BUTTON_AREA_TOP && y < BUTTON_AREA_BOT) + return WITHIN(x, 14, 77) ? EN_D + : WITHIN(x, 90, 153) ? EN_A + : WITHIN(x, 166, 229) ? EN_B + : WITHIN(x, 242, 305) ? EN_C + : 0; + + if ( !WITHIN(x, SCREEN_PCT_LEFT, SCREEN_PCT_LEFT + SCREEN_PCT_WIDTH) + || !WITHIN(y, SCREEN_PCT_TOP, SCREEN_PCT_TOP + SCREEN_PCT_HEIGHT) + ) return 0; + + // Column and row above BUTTON_AREA_TOP + int8_t col = (x - (SCREEN_PCT_LEFT)) * (LCD_WIDTH) / (SCREEN_PCT_WIDTH), + row = (y - (SCREEN_PCT_TOP)) * (LCD_HEIGHT) / (SCREEN_PCT_HEIGHT); + + // Send the touch to the UI (which will simulate the encoder wheel) + MarlinUI::screen_click(row, col, x, y); + #endif + return 0; +} + +#endif // HAS_TOUCH_XPT2046 diff --git a/Marlin/src/lcd/touch/xpt2046.h b/Marlin/src/lcd/touch/touch_buttons.h similarity index 56% rename from Marlin/src/lcd/touch/xpt2046.h rename to Marlin/src/lcd/touch/touch_buttons.h index 467317901..451e5a5a3 100644 --- a/Marlin/src/lcd/touch/xpt2046.h +++ b/Marlin/src/lcd/touch/touch_buttons.h @@ -20,30 +20,10 @@ #include -// Relies on XPT2046-compatible mode of ADS7843, -// hence no Z1 / Z2 measurements are possible. - -#define XPT2046_DFR_MODE 0x00 -#define XPT2046_SER_MODE 0x04 -#define XPT2046_CONTROL 0x80 - -enum XPTCoordinate : uint8_t { - XPT2046_X = 0x10, - XPT2046_Y = 0x50, - XPT2046_Z1 = 0x30, - XPT2046_Z2 = 0x40 -}; - -class XPT2046 { +class TouchButtons { public: static void init(); static uint8_t read_buttons(); - bool getTouchPoint(uint16_t &x, uint16_t &y); - static bool isTouched(); - inline void waitForRelease() { while (isTouched()) { /* nada */ } } - inline void waitForTouch(uint16_t &x, uint16_t &y) { while (!getTouchPoint(x, y)) { /* nada */ } } -private: - static uint16_t getInTouch(const XPTCoordinate coordinate); }; -extern XPT2046 touch; +extern TouchButtons touch; diff --git a/Marlin/src/lcd/touch/xpt2046.cpp b/Marlin/src/lcd/touch/xpt2046.cpp deleted file mode 100644 index 4407d945d..000000000 --- a/Marlin/src/lcd/touch/xpt2046.cpp +++ /dev/null @@ -1,251 +0,0 @@ -/** - * Marlin 3D Printer Firmware - * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin] - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - */ - -#include "../../inc/MarlinConfig.h" - -#if HAS_TOUCH_XPT2046 - -#include "xpt2046.h" -#include "../scaled_tft.h" - -#ifndef XPT2046_Z1_THRESHOLD - #define XPT2046_Z1_THRESHOLD 10 -#endif - -/** - * Draw and Touch processing - * - * LCD_PIXEL_WIDTH/HEIGHT (128x64) is the (emulated DOGM) Pixel Drawing resolution. - * TOUCH_SENSOR_WIDTH/HEIGHT (320x240) is the Touch Area resolution. - * LCD_FULL_PIXEL_WIDTH/HEIGHT (320x240 or 480x320) is the Actual (FSMC) Display resolution. - * - * - All native (u8g) drawing is done in LCD_PIXEL_* (128x64) - * - The DOGM pixels are is upscaled 2-3x (as needed) for display. - * - Touch coordinates use TOUCH_SENSOR_* resolution and are converted to - * click and scroll-wheel events (emulating of a common DOGM display). - * - * TOUCH_SCREEN resolution exists to fit our calibration values. The original touch code was made - * and originally calibrated for 320x240. If you decide to change the resolution of the touch code, - * new calibration values will be needed. - * - * The Marlin menus are drawn scaled in the upper region of the screen. The bottom region (in a - * fixed location in TOUCH_SCREEN* coordinate space) is used for 4 general-purpose buttons to - * navigate and select menu items. Both regions are touchable. - * - * The Marlin screen touchable area starts at LCD_PIXEL_OFFSET_X/Y (translated to SCREEN_START_LEFT/TOP) - * and spans LCD_PIXEL_WIDTH/HEIGHT (scaled to SCREEN_WIDTH/HEIGHT). - */ - -// Coordinates in terms of touch area -#define BUTTON_AREA_TOP 175 -#define BUTTON_AREA_BOT 234 - -// Touch sensor resolution independent of display resolution -#define TOUCH_SENSOR_WIDTH 320 -#define TOUCH_SENSOR_HEIGHT 240 - -#define SCREEN_WIDTH_PCT(X) ((X) * (TOUCH_SENSOR_WIDTH) / (LCD_FULL_PIXEL_WIDTH)) -#define SCREEN_HEIGHT_PCT(Y) ((Y) * (TOUCH_SENSOR_HEIGHT) / (LCD_FULL_PIXEL_HEIGHT)) - -#define SCREEN_START_LEFT SCREEN_WIDTH_PCT(LCD_PIXEL_OFFSET_X) -#define SCREEN_START_TOP SCREEN_HEIGHT_PCT(LCD_PIXEL_OFFSET_Y) -#define SCREEN_WIDTH SCREEN_WIDTH_PCT((LCD_PIXEL_WIDTH) * (FSMC_UPSCALE)) -#define SCREEN_HEIGHT SCREEN_HEIGHT_PCT((LCD_PIXEL_HEIGHT) * (FSMC_UPSCALE)) - -#define TOUCHABLE_X_WIDTH SCREEN_WIDTH -#define TOUCHABLE_Y_HEIGHT SCREEN_HEIGHT - -#ifndef TOUCH_INT_PIN - #define TOUCH_INT_PIN -1 -#endif -#ifndef TOUCH_MISO_PIN - #define TOUCH_MISO_PIN MISO_PIN -#endif -#ifndef TOUCH_MOSI_PIN - #define TOUCH_MOSI_PIN MOSI_PIN -#endif -#ifndef TOUCH_SCK_PIN - #define TOUCH_SCK_PIN SCK_PIN -#endif -#ifndef TOUCH_CS_PIN - #define TOUCH_CS_PIN CS_PIN -#endif - -XPT2046 touch; - -void XPT2046::init() { - SET_INPUT(TOUCH_MISO_PIN); - SET_OUTPUT(TOUCH_MOSI_PIN); - SET_OUTPUT(TOUCH_SCK_PIN); - OUT_WRITE(TOUCH_CS_PIN, HIGH); - - #if PIN_EXISTS(TOUCH_INT) - // Optional Pendrive interrupt pin - SET_INPUT(TOUCH_INT_PIN); - #endif - - // Read once to enable pendrive status pin - getInTouch(XPT2046_X); -} - -#include "../../lcd/ultralcd.h" // For EN_C bit mask - -uint8_t XPT2046::read_buttons() { - #ifdef HAS_SPI_LCD - int16_t tsoffsets[4] = { 0 }; - - if (tsoffsets[0] + tsoffsets[1] == 0) { - // Not yet set, so use defines as fallback... - tsoffsets[0] = XPT2046_X_CALIBRATION; - tsoffsets[1] = XPT2046_X_OFFSET; - tsoffsets[2] = XPT2046_Y_CALIBRATION; - tsoffsets[3] = XPT2046_Y_OFFSET; - } - - // We rely on XPT2046 compatible mode to ADS7843, hence no Z1 and Z2 measurements possible. - - if (!isTouched()) return 0; - uint16_t x = uint16_t(((uint32_t(getInTouch(XPT2046_X))) * tsoffsets[0]) >> 16) + tsoffsets[1], - y = uint16_t(((uint32_t(getInTouch(XPT2046_Y))) * tsoffsets[2]) >> 16) + tsoffsets[3]; - if (!isTouched()) return 0; // Fingers must still be on the TS for a valid read. - - #if ENABLED(GRAPHICAL_TFT_ROTATE_180) - x = TOUCH_SENSOR_WIDTH - x; - y = TOUCH_SENSOR_HEIGHT - y; - #endif - - // Touch within the button area simulates an encoder button - if (y > BUTTON_AREA_TOP && y < BUTTON_AREA_BOT) - return WITHIN(x, 14, 77) ? EN_D - : WITHIN(x, 90, 153) ? EN_A - : WITHIN(x, 166, 229) ? EN_B - : WITHIN(x, 242, 305) ? EN_C - : 0; - - if ( !WITHIN(x, SCREEN_START_LEFT, SCREEN_START_LEFT + SCREEN_WIDTH) - || !WITHIN(y, SCREEN_START_TOP, SCREEN_START_TOP + SCREEN_HEIGHT) - ) return 0; - - // Column and row above BUTTON_AREA_TOP - int8_t col = (x - (SCREEN_START_LEFT)) * (LCD_WIDTH) / (TOUCHABLE_X_WIDTH), - row = (y - (SCREEN_START_TOP)) * (LCD_HEIGHT) / (TOUCHABLE_Y_HEIGHT); - - // Send the touch to the UI (which will simulate the encoder wheel) - MarlinUI::screen_click(row, col, x, y); - #endif - return 0; -} - -bool XPT2046::isTouched() { - return ( - #if PIN_EXISTS(TOUCH_INT) - READ(TOUCH_INT_PIN) != HIGH - #else - getInTouch(XPT2046_Z1) >= XPT2046_Z1_THRESHOLD - #endif - ); -} - -#if ENABLED(TOUCH_BUTTONS_HW_SPI) - - #include - - static void touch_spi_init(uint8_t spiRate) { - /** - * STM32F1 APB2 = 72MHz, APB1 = 36MHz, max SPI speed of this MCU if 18Mhz - * STM32F1 has 3 SPI ports, SPI1 in APB2, SPI2/SPI3 in APB1 - * so the minimum prescale of SPI1 is DIV4, SPI2/SPI3 is DIV2 - */ - uint8_t clock; - switch (spiRate) { - case SPI_FULL_SPEED: clock = SPI_CLOCK_DIV4; break; - case SPI_HALF_SPEED: clock = SPI_CLOCK_DIV4; break; - case SPI_QUARTER_SPEED: clock = SPI_CLOCK_DIV8; break; - case SPI_EIGHTH_SPEED: clock = SPI_CLOCK_DIV16; break; - case SPI_SPEED_5: clock = SPI_CLOCK_DIV32; break; - case SPI_SPEED_6: clock = SPI_CLOCK_DIV64; break; - default: clock = SPI_CLOCK_DIV2; // Default from the SPI library - } - SPI.setModule(TOUCH_BUTTONS_HW_SPI_DEVICE); - SPI.begin(); - SPI.setClockDivider(clock); - SPI.setBitOrder(MSBFIRST); - SPI.setDataMode(SPI_MODE0); - } -#endif // TOUCH_BUTTONS_HW_SPI - -uint16_t XPT2046::getInTouch(const XPTCoordinate coordinate) { - uint16_t data[3]; - const uint8_t coord = uint8_t(coordinate) | XPT2046_CONTROL | XPT2046_DFR_MODE; - - #if ENABLED(TOUCH_BUTTONS_HW_SPI) - - touch_spi_init(SPI_SPEED_6); - for (uint16_t i = 0; i < 3; i++) { - OUT_WRITE(TOUCH_CS_PIN, LOW); - SPI.transfer(coord); - data[i] = (((SPI.transfer(0xFF) << 8) | SPI.transfer(0xFF)) >> 3) & 0x0FFF; - WRITE(TOUCH_CS_PIN, HIGH); - } - - #else // !TOUCH_BUTTONS_HW_SPI - - OUT_WRITE(TOUCH_CS_PIN, LOW); - for (uint16_t i = 0; i < 3; i++) { - for (uint8_t j = 0x80; j; j >>= 1) { - WRITE(TOUCH_SCK_PIN, LOW); - WRITE(TOUCH_MOSI_PIN, bool(coord & j)); - WRITE(TOUCH_SCK_PIN, HIGH); - } - - data[i] = 0; - for (uint16_t j = 0x8000; j; j >>= 1) { - WRITE(TOUCH_SCK_PIN, LOW); - if (READ(TOUCH_MISO_PIN)) data[i] |= j; - WRITE(TOUCH_SCK_PIN, HIGH); - } - WRITE(TOUCH_SCK_PIN, LOW); - data[i] >>= 4; - } - WRITE(TOUCH_CS_PIN, HIGH); - - #endif // !TOUCH_BUTTONS_HW_SPI - - uint16_t delta01 = _MAX(data[0], data[1]) - _MIN(data[0], data[1]), - delta02 = _MAX(data[0], data[2]) - _MIN(data[0], data[2]), - delta12 = _MAX(data[1], data[2]) - _MIN(data[1], data[2]); - - if (delta01 <= delta02 && delta01 <= delta12) - return (data[0] + data[1]) >> 1; - - if (delta02 <= delta12) - return (data[0] + data[2]) >> 1; - - return (data[1] + data[2]) >> 1; -} - -bool XPT2046::getTouchPoint(uint16_t &x, uint16_t &y) { - if (isTouched()) { - x = getInTouch(XPT2046_X); - y = getInTouch(XPT2046_Y); - } - return isTouched(); -} - -#endif // HAS_TOUCH_XPT2046 diff --git a/Marlin/src/lcd/ultralcd.cpp b/Marlin/src/lcd/ultralcd.cpp index 6fa3006fb..f30d9c68c 100644 --- a/Marlin/src/lcd/ultralcd.cpp +++ b/Marlin/src/lcd/ultralcd.cpp @@ -150,7 +150,7 @@ constexpr uint8_t epps = ENCODER_PULSES_PER_STEP; volatile uint8_t MarlinUI::slow_buttons; #endif #if HAS_TOUCH_XPT2046 - #include "touch/xpt2046.h" + #include "touch/touch_buttons.h" bool MarlinUI::on_edit_screen = false; #endif #endif diff --git a/Marlin/src/pins/stm32f1/pins_CHITU3D_V5.h b/Marlin/src/pins/stm32f1/pins_CHITU3D_V5.h index e4f001441..5267888f4 100644 --- a/Marlin/src/pins/stm32f1/pins_CHITU3D_V5.h +++ b/Marlin/src/pins/stm32f1/pins_CHITU3D_V5.h @@ -44,7 +44,7 @@ #define EEPROM_PAGE_SIZE (0x800U) // 2KB, but will use 2x more (4KB) #define MARLIN_EEPROM_SIZE EEPROM_PAGE_SIZE #else - #define MARLIN_EEPROM_SIZE 0x800U // On SD, Limit to 2KB, require this amount of RAM + #define MARLIN_EEPROM_SIZE 0x800U // On SD, Limit to 2KB, require this amount of RAM #endif // @@ -104,49 +104,6 @@ //#define POWER_LOSS_PIN -1 #define FIL_RUNOUT_PIN PA15 -// -// TronXY TFT Support -// -//#define FSMC_GRAPHICAL_TFT -//#define HAS_TOUCH_XPT2046 1 - -#if ENABLED(FSMC_GRAPHICAL_TFT) - #define FSMC_UPSCALE 3 - - #define LCD_RESET_PIN PF11 - #define LCD_BACKLIGHT_PIN PD13 - #define FSMC_CS_PIN PD7 - #define FSMC_RS_PIN PD11 - - #define LCD_USE_DMA_FSMC // Use DMA transfers to send data to the TFT - #define FSMC_DMA_DEV DMA2 - #define FSMC_DMA_CHANNEL DMA_CH5 - - #if NEED_TOUCH_PINS - #define TOUCH_CS_PIN PB7 // SPI1_NSS - #define TOUCH_SCK_PIN PA5 // SPI1_SCK - #define TOUCH_MISO_PIN PA6 // SPI1_MISO - #define TOUCH_MOSI_PIN PA7 // SPI1_MOSI - - #define BUTTON_DELAY_EDIT 50 // (ms) Button repeat delay for edit screens - #define BUTTON_DELAY_MENU 250 // (ms) Button repeat delay for menus - - #ifndef XPT2046_X_CALIBRATION - #define XPT2046_X_CALIBRATION -12316 - #endif - #ifndef XPT2046_Y_CALIBRATION - #define XPT2046_Y_CALIBRATION 8981 - #endif - #ifndef XPT2046_X_OFFSET - #define XPT2046_X_OFFSET 340 - #endif - #ifndef XPT2046_Y_OFFSET - #define XPT2046_Y_OFFSET -20 - #endif - - #endif -#endif - // SPI Flash #define SPI_FLASH_SIZE 0x200000 // 2MB #define HAS_SPI_FLASH 1 @@ -157,28 +114,18 @@ #define W25QXX_MISO_PIN PB14 #define W25QXX_SCK_PIN PB13 -#if HAS_TFT_LVGL_UI - #define HAS_SPI_FLASH_FONT 1 - #define HAS_GCODE_PREVIEW 1 - #define HAS_GCODE_DEFAULT_VIEW_IN_FLASH 0 - #define HAS_LANG_SELECT_SCREEN 1 - #define HAS_BAK_VIEW_IN_FLASH 0 - #define HAS_LOGO_IN_FLASH 0 +// +// TronXY TFT Support +// + +#if HAS_FSMC_TFT + + // Shared FSMC #define TOUCH_CS_PIN PB7 // SPI1_NSS #define TOUCH_SCK_PIN PA5 // SPI1_SCK #define TOUCH_MISO_PIN PA6 // SPI1_MISO #define TOUCH_MOSI_PIN PA7 // SPI1_MOSI - //#define TOUCH_INT_PIN PB6 - - #if ENABLED(TFT_LVGL_UI_SPI) - #define SPI_TFT_CS_PIN TOUCH_CS_PIN - #define SPI_TFT_SCK_PIN TOUCH_SCK_PIN - #define SPI_TFT_MISO_PIN TOUCH_MISO_PIN - #define SPI_TFT_MOSI_PIN TOUCH_MOSI_PIN - #define SPI_TFT_DC_PIN PB6 - #define SPI_TFT_RST_PIN PF11 - #endif #define LCD_RESET_PIN PF11 #define LCD_BACKLIGHT_PIN PD13 @@ -191,12 +138,23 @@ #define FSMC_DMA_DEV DMA2 #define FSMC_DMA_CHANNEL DMA_CH5 - #define LCD_PIXEL_WIDTH 480 - #define LCD_PIXEL_HEIGHT 320 - #define LCD_FULL_PIXEL_WIDTH LCD_PIXEL_WIDTH - #define LCD_FULL_PIXEL_HEIGHT LCD_PIXEL_HEIGHT - #define LCD_PIXEL_OFFSET_X 48 - #define LCD_PIXEL_OFFSET_Y 48 + #define TFT_WIDTH 480 + #define TFT_HEIGHT 320 + #define TFT_PIXEL_OFFSET_X 48 + #define TFT_PIXEL_OFFSET_Y 32 + +#endif + +#if HAS_TFT_LVGL_UI + + // LVGL + + #define HAS_SPI_FLASH_FONT 1 + #define HAS_GCODE_PREVIEW 1 + #define HAS_GCODE_DEFAULT_VIEW_IN_FLASH 0 + #define HAS_LANG_SELECT_SCREEN 1 + #define HAS_BAK_VIEW_IN_FLASH 0 + #define HAS_LOGO_IN_FLASH 0 #define XPT2046_X_CALIBRATION -17181 #define XPT2046_Y_CALIBRATION 11434 @@ -204,31 +162,38 @@ #define XPT2046_Y_OFFSET -9 #elif ENABLED(TFT_480x320) - #define TFT_RESET_PIN PF11 - #define TFT_BACKLIGHT_PIN PD13 - #define LCD_USE_DMA_FSMC // Use DMA transfers to send data to the TFT - #define FSMC_CS_PIN PD7 - #define FSMC_RS_PIN PD11 - #define FSMC_DMA_DEV DMA2 - #define FSMC_DMA_CHANNEL DMA_CH5 + // Color UI + + #define TFT_DRIVER ILI9488 + #define TFT_BUFFER_SIZE 14400 #define XPT2046_X_CALIBRATION -17181 #define XPT2046_Y_CALIBRATION 11434 #define XPT2046_X_OFFSET 501 #define XPT2046_Y_OFFSET -9 - #define TOUCH_CS_PIN PB7 // SPI1_NSS - #define TOUCH_SCK_PIN PA5 // SPI1_SCK - #define TOUCH_MISO_PIN PA6 // SPI1_MISO - #define TOUCH_MOSI_PIN PA7 // SPI1_MOSI +#elif ENABLED(FSMC_GRAPHICAL_TFT) - #define TFT_DRIVER ILI9488 - #define TFT_BUFFER_SIZE 14400 + // Emulated DOGM + + #define GRAPHICAL_TFT_UPSCALE 3 + #ifndef XPT2046_X_CALIBRATION + #define XPT2046_X_CALIBRATION -12316 + #endif + #ifndef XPT2046_Y_CALIBRATION + #define XPT2046_Y_CALIBRATION 8981 + #endif + #ifndef XPT2046_X_OFFSET + #define XPT2046_X_OFFSET 340 + #endif + #ifndef XPT2046_Y_OFFSET + #define XPT2046_Y_OFFSET -20 + #endif #endif // SPI1(PA7)=LCD & SPI3(PB5)=STUFF, are not available -// We nee to use the SPI2 +// Needs to use SPI2 #define ENABLE_SPI2 #define SCK_PIN PB13 #define MISO_PIN PB14 @@ -240,5 +205,5 @@ // #define SDIO_SUPPORT #define SD_DETECT_PIN -1 // PF0, but it isn't connected -#define SDIO_CLOCK 4500000 -#define SDIO_READ_RETRIES 16 +#define SDIO_CLOCK 4500000 +#define SDIO_READ_RETRIES 16 diff --git a/Marlin/src/pins/stm32f1/pins_CHITU3D_V6.h b/Marlin/src/pins/stm32f1/pins_CHITU3D_V6.h index 3d36de824..d128d4e1a 100644 --- a/Marlin/src/pins/stm32f1/pins_CHITU3D_V6.h +++ b/Marlin/src/pins/stm32f1/pins_CHITU3D_V6.h @@ -48,7 +48,7 @@ #define EEPROM_PAGE_SIZE (0x800U) // 2KB, but will use 2x more (4KB) #define MARLIN_EEPROM_SIZE EEPROM_PAGE_SIZE #else - #define MARLIN_EEPROM_SIZE 0x800U // On SD, Limit to 2KB, require this amount of RAM + #define MARLIN_EEPROM_SIZE 0x800U // On SD, Limit to 2KB, require this amount of RAM #endif // @@ -96,7 +96,7 @@ // #define HEATER_0_PIN PG12 // HEATER1 #define HEATER_BED_PIN PG11 // HOT BED -//#define HEATER_BED_INVERTING true +//#define HEATER_BED_INVERTING true // // Fans @@ -119,71 +119,9 @@ #define FIL_RUNOUT2_PIN PF13 #endif -// -// TronXY TFT Support -// -#if ENABLED(FSMC_GRAPHICAL_TFT) - #define FSMC_UPSCALE 3 - - #define LCD_RESET_PIN PF11 - #define LCD_BACKLIGHT_PIN PD13 - #define FSMC_CS_PIN PD7 - #define FSMC_RS_PIN PD11 - - #define LCD_USE_DMA_FSMC // Use DMA transfers to send data to the TFT - #define FSMC_DMA_DEV DMA2 - #define FSMC_DMA_CHANNEL DMA_CH5 - - #if NEED_TOUCH_PINS - #define TOUCH_CS_PIN PB7 // SPI1_NSS - #define TOUCH_SCK_PIN PA5 // SPI1_SCK - #define TOUCH_MISO_PIN PA6 // SPI1_MISO - #define TOUCH_MOSI_PIN PA7 // SPI1_MOSI - - #define BUTTON_DELAY_EDIT 50 // (ms) Button repeat delay for edit screens - #define BUTTON_DELAY_MENU 250 // (ms) Button repeat delay for menus - - #ifndef XPT2046_X_CALIBRATION - #define XPT2046_X_CALIBRATION -12316 - #endif - #ifndef XPT2046_Y_CALIBRATION - #define XPT2046_Y_CALIBRATION 8981 - #endif - #ifndef XPT2046_X_OFFSET - #define XPT2046_X_OFFSET 340 - #endif - #ifndef XPT2046_Y_OFFSET - #define XPT2046_Y_OFFSET -20 - #endif - #endif - -#elif ENABLED(TFT_480x320) - #define TFT_RESET_PIN PF11 - #define TFT_BACKLIGHT_PIN PD13 - - #define LCD_USE_DMA_FSMC // Use DMA transfers to send data to the TFT - #define FSMC_CS_PIN PD7 - #define FSMC_RS_PIN PD11 - #define FSMC_DMA_DEV DMA2 - #define FSMC_DMA_CHANNEL DMA_CH5 - - #define XPT2046_X_CALIBRATION -17181 - #define XPT2046_Y_CALIBRATION 11434 - #define XPT2046_X_OFFSET 501 - #define XPT2046_Y_OFFSET -9 - - #define TOUCH_CS_PIN PB7 // SPI1_NSS - #define TOUCH_SCK_PIN PA5 // SPI1_SCK - #define TOUCH_MISO_PIN PA6 // SPI1_MISO - #define TOUCH_MOSI_PIN PA7 // SPI1_MOSI - - #define TFT_DRIVER ILI9488 - #define TFT_BUFFER_SIZE 14400 -#endif - // SPI Flash -#define SPI_FLASH_SIZE 0x200000 // 2MB -#define HAS_SPI_FLASH 1 +#define SPI_FLASH_SIZE 0x200000 // 2MB +#define HAS_SPI_FLASH 1 // SPI 2 #define W25QXX_CS_PIN PB12 @@ -191,28 +129,16 @@ #define W25QXX_MISO_PIN PB14 #define W25QXX_SCK_PIN PB13 -#if HAS_TFT_LVGL_UI - #define HAS_SPI_FLASH_FONT 0 - #define HAS_GCODE_PREVIEW 1 - #define HAS_GCODE_DEFAULT_VIEW_IN_FLASH 0 - #define HAS_LANG_SELECT_SCREEN 0 - #define HAS_BAK_VIEW_IN_FLASH 0 - #define HAS_LOGO_IN_FLASH 0 +// +// TronXY TFT Support +// +// Shared FSMC Configs +#if HAS_FSMC_TFT #define TOUCH_CS_PIN PB7 // SPI1_NSS #define TOUCH_SCK_PIN PA5 // SPI1_SCK #define TOUCH_MISO_PIN PA6 // SPI1_MISO #define TOUCH_MOSI_PIN PA7 // SPI1_MOSI - //#define TOUCH_INT_PIN PB6 - - #if ENABLED(TFT_LVGL_UI_SPI) - #define SPI_TFT_CS_PIN TOUCH_CS_PIN - #define SPI_TFT_SCK_PIN TOUCH_SCK_PIN - #define SPI_TFT_MISO_PIN TOUCH_MISO_PIN - #define SPI_TFT_MOSI_PIN TOUCH_MOSI_PIN - #define SPI_TFT_DC_PIN PB6 - #define SPI_TFT_RST_PIN PF11 - #endif #define LCD_RESET_PIN PF11 #define LCD_BACKLIGHT_PIN PD13 @@ -225,17 +151,56 @@ #define FSMC_DMA_DEV DMA2 #define FSMC_DMA_CHANNEL DMA_CH5 - #define LCD_PIXEL_WIDTH 480 - #define LCD_PIXEL_HEIGHT 320 - #define LCD_FULL_PIXEL_WIDTH LCD_PIXEL_WIDTH - #define LCD_FULL_PIXEL_HEIGHT LCD_PIXEL_HEIGHT - #define LCD_PIXEL_OFFSET_X 48 - #define LCD_PIXEL_OFFSET_Y 48 + #define TFT_WIDTH 480 + #define TFT_HEIGHT 320 + #define TFT_PIXEL_OFFSET_X 48 + #define TFT_PIXEL_OFFSET_Y 32 + +#endif + +// LVGL Configs +#if HAS_TFT_LVGL_UI + + #define HAS_SPI_FLASH_FONT 1 + #define HAS_GCODE_PREVIEW 1 + #define HAS_GCODE_DEFAULT_VIEW_IN_FLASH 0 + #define HAS_LANG_SELECT_SCREEN 1 + #define HAS_BAK_VIEW_IN_FLASH 0 + #define HAS_LOGO_IN_FLASH 0 #define XPT2046_X_CALIBRATION -17181 #define XPT2046_Y_CALIBRATION 11434 #define XPT2046_X_OFFSET 501 #define XPT2046_Y_OFFSET -9 + +// Color UI Configs +#elif ENABLED(TFT_480x320) + + #define TFT_DRIVER ILI9488 + #define TFT_BUFFER_SIZE 14400 + + #define XPT2046_X_CALIBRATION -17181 + #define XPT2046_Y_CALIBRATION 11434 + #define XPT2046_X_OFFSET 501 + #define XPT2046_Y_OFFSET -9 + +// Emulated DOGM +#elif ENABLED(FSMC_GRAPHICAL_TFT) + #define GRAPHICAL_TFT_UPSCALE 3 + + #ifndef XPT2046_X_CALIBRATION + #define XPT2046_X_CALIBRATION -12316 + #endif + #ifndef XPT2046_Y_CALIBRATION + #define XPT2046_Y_CALIBRATION 8981 + #endif + #ifndef XPT2046_X_OFFSET + #define XPT2046_X_OFFSET 340 + #endif + #ifndef XPT2046_Y_OFFSET + #define XPT2046_Y_OFFSET -20 + #endif + #endif // SPI1(PA7)=LCD & SPI3(PB5)=STUFF, are not available @@ -251,5 +216,5 @@ // #define SDIO_SUPPORT #define SD_DETECT_PIN -1 // PF0, but it isn't connected -#define SDIO_CLOCK 4500000 -#define SDIO_READ_RETRIES 16 +#define SDIO_CLOCK 4500000 +#define SDIO_READ_RETRIES 16 diff --git a/Marlin/src/pins/stm32f1/pins_LONGER3D_LK.h b/Marlin/src/pins/stm32f1/pins_LONGER3D_LK.h index 490fb617d..32e7e2993 100644 --- a/Marlin/src/pins/stm32f1/pins_LONGER3D_LK.h +++ b/Marlin/src/pins/stm32f1/pins_LONGER3D_LK.h @@ -86,8 +86,8 @@ #define FAN_PIN PA15 // pin 77 (4cm Fan) #define FAN_SOFT_PWM // Required to avoid issues with heating or STLink -#define FAN_MIN_PWM 35 // Fan will not start in 1-30 range -#define FAN_MAX_PWM 255 +#define FAN_MIN_PWM 35 // Fan will not start in 1-30 range +#define FAN_MAX_PWM 255 //#define BEEPER_PIN PD13 // pin 60 (Servo PWM output 5V/GND on Board V0G+) made for BL-Touch sensor // Can drive a PC Buzzer, if connected between PWM and 5V pins @@ -130,11 +130,11 @@ #define DOGLCD_MOSI -1 // Prevent auto-define by Conditionals_post.h #define DOGLCD_SCK -1 -#define FSMC_UPSCALE 2 -#define LCD_FULL_PIXEL_WIDTH 320 -#define LCD_FULL_PIXEL_HEIGHT 240 -#define LCD_PIXEL_OFFSET_X 32 -#define LCD_PIXEL_OFFSET_Y 32 +#define GRAPHICAL_TFT_UPSCALE 2 +#define TFT_WIDTH 320 +#define TFT_HEIGHT 240 +#define TFT_PIXEL_OFFSET_X 32 +#define TFT_PIXEL_OFFSET_Y 32 /** * Note: Alfawise U20/U30 boards DON'T use SPI2, as the hardware designer @@ -160,12 +160,12 @@ #if ENABLED(SPI_EEPROM) // SPI1 EEPROM Winbond W25Q64 (8MB/64Mbits) - #define SPI_CHAN_EEPROM1 1 + #define SPI_CHAN_EEPROM1 1 #define SPI_EEPROM1_CS PC5 // pin 34 #define EEPROM_SCK BOARD_SPI1_SCK_PIN // PA5 pin 30 #define EEPROM_MISO BOARD_SPI1_MISO_PIN // PA6 pin 31 #define EEPROM_MOSI BOARD_SPI1_MOSI_PIN // PA7 pin 32 - #define EEPROM_PAGE_SIZE 0x1000U // 4KB (from datasheet) + #define EEPROM_PAGE_SIZE 0x1000U // 4KB (from datasheet) #define MARLIN_EEPROM_SIZE 16UL * (EEPROM_PAGE_SIZE) // Limit to 64KB for now... #elif ENABLED(FLASH_EEPROM_EMULATION) // SoC Flash (framework-arduinoststm32-maple/STM32F1/libraries/EEPROM/EEPROM.h) @@ -173,5 +173,5 @@ #define EEPROM_START_ADDRESS (0x8000000UL + (STM32_FLASH_SIZE) * 1024UL - (EEPROM_PAGE_SIZE) * 2UL) #define MARLIN_EEPROM_SIZE (EEPROM_PAGE_SIZE) #else - #define MARLIN_EEPROM_SIZE 0x800U // On SD, Limit to 2KB, require this amount of RAM + #define MARLIN_EEPROM_SIZE 0x800U // On SD, Limit to 2KB, require this amount of RAM #endif diff --git a/Marlin/src/pins/stm32f1/pins_MKS_ROBIN_NANO.h b/Marlin/src/pins/stm32f1/pins_MKS_ROBIN_NANO.h index 948663f6f..6a015a470 100644 --- a/Marlin/src/pins/stm32f1/pins_MKS_ROBIN_NANO.h +++ b/Marlin/src/pins/stm32f1/pins_MKS_ROBIN_NANO.h @@ -127,10 +127,10 @@ #define PS_ON_PIN PA3 // PW_OFF //#define SUICIDE_PIN PB2 // Enable MKSPWC support ROBIN NANO v1.2 ONLY -//#define SUICIDE_PIN_INVERTING false +//#define SUICIDE_PIN_INVERTING false //#define KILL_PIN PA2 // Enable MKSPWC support ROBIN NANO v1.2 ONLY -//#define KILL_PIN_INVERTING true // Enable MKSPWC support ROBIN NANO v1.2 ONLY +//#define KILL_PIN_INVERTING true // Enable MKSPWC support ROBIN NANO v1.2 ONLY #define SERVO0_PIN PA8 // Enable BLTOUCH support ROBIN NANO v1.2 ONLY @@ -138,7 +138,7 @@ #define MT_DET_1_PIN PA4 #define MT_DET_2_PIN PE6 -#define MT_DET_PIN_INVERTING false +#define MT_DET_PIN_INVERTING false #define WIFI_IO0_PIN PC13 @@ -150,7 +150,7 @@ #endif #define SDIO_SUPPORT -#define SDIO_CLOCK 4500000 // 4.5 MHz +#define SDIO_CLOCK 4500000 // 4.5 MHz #define SD_DETECT_PIN PD12 #define ONBOARD_SD_CS_PIN PC11 @@ -165,8 +165,8 @@ * to let the bootloader init the screen. */ -#if ENABLED(TFT_LVGL_UI_FSMC) - +// Shared FSMC Configs +#if HAS_FSMC_TFT #define FSMC_CS_PIN PD7 // NE4 #define FSMC_RS_PIN PD11 // A0 @@ -175,59 +175,10 @@ #define TOUCH_MISO_PIN PB14 // SPI2_MISO #define TOUCH_MOSI_PIN PB15 // SPI2_MOSI - #define LCD_BACKLIGHT_PIN PD13 - - #define XPT2046_X_CALIBRATION 17880 - #define XPT2046_Y_CALIBRATION -12234 - #define XPT2046_X_OFFSET -45 - #define XPT2046_Y_OFFSET 349 - - #define LCD_USE_DMA_FSMC // Use DMA transfers to send data to the TFT - #define FSMC_CS_PIN PD7 - #define FSMC_RS_PIN PD11 - #define FSMC_DMA_DEV DMA2 - #define FSMC_DMA_CHANNEL DMA_CH5 - -#elif ENABLED(FSMC_GRAPHICAL_TFT) - - #define DOGLCD_MOSI -1 // prevent redefine Conditionals_post.h - #define DOGLCD_SCK -1 - - #ifndef FSMC_UPSCALE - #define FSMC_UPSCALE 3 - #endif - #ifndef LCD_FULL_PIXEL_WIDTH - #define LCD_FULL_PIXEL_WIDTH 480 - #endif - #ifndef LCD_PIXEL_OFFSET_X - #define LCD_PIXEL_OFFSET_X 48 - #endif - #ifndef LCD_FULL_PIXEL_HEIGHT - #define LCD_FULL_PIXEL_HEIGHT 320 - #endif - #ifndef LCD_PIXEL_OFFSET_Y - #define LCD_PIXEL_OFFSET_Y 32 - #endif - - #define FSMC_CS_PIN PD7 // NE4 - #define FSMC_RS_PIN PD11 // A0 - - #define LCD_USE_DMA_FSMC // Use DMA transfers to send data to the TFT - #define FSMC_DMA_DEV DMA2 - #define FSMC_DMA_CHANNEL DMA_CH5 - #define LCD_RESET_PIN PC6 // FSMC_RST #define LCD_BACKLIGHT_PIN PD13 - #if NEED_TOUCH_PINS - #define TOUCH_CS_PIN PA7 // SPI2_NSS - #define TOUCH_SCK_PIN PB13 // SPI2_SCK - #define TOUCH_MISO_PIN PB14 // SPI2_MISO - #define TOUCH_MOSI_PIN PB15 // SPI2_MOSI - #endif - -#elif ENABLED(TFT_480x320) - #define TFT_RESET_PIN PC6 + #define TFT_RESET_PIN PC6 // FSMC_RST #define TFT_BACKLIGHT_PIN PD13 #define LCD_USE_DMA_FSMC // Use DMA transfers to send data to the TFT @@ -236,23 +187,66 @@ #define FSMC_DMA_DEV DMA2 #define FSMC_DMA_CHANNEL DMA_CH5 + #define TOUCH_BUTTONS_HW_SPI + #define TOUCH_BUTTONS_HW_SPI_DEVICE 2 +#endif + +// LVGL Configs +#if ENABLED(TFT_LVGL_UI_FSMC) + #define XPT2046_X_CALIBRATION 17880 #define XPT2046_Y_CALIBRATION -12234 #define XPT2046_X_OFFSET -45 #define XPT2046_Y_OFFSET 349 - #define TOUCH_CS_PIN PA7 // SPI2_NSS - #define TOUCH_SCK_PIN PB13 // SPI2_SCK - #define TOUCH_MISO_PIN PB14 // SPI2_MISO - #define TOUCH_MOSI_PIN PB15 // SPI2_MOSI +// Emulated DOGM Configs +#elif ENABLED(FSMC_GRAPHICAL_TFT) - #define TFT_DRIVER ILI9488 - #define TFT_BUFFER_SIZE 14400 + #define DOGLCD_MOSI -1 // prevent redefine Conditionals_post.h + #define DOGLCD_SCK -1 + + #ifndef GRAPHICAL_TFT_UPSCALE + #define GRAPHICAL_TFT_UPSCALE 3 + #endif + #ifndef TFT_WIDTH + #define TFT_WIDTH 480 + #endif + #ifndef TFT_PIXEL_OFFSET_X + #define TFT_PIXEL_OFFSET_X 48 + #endif + #ifndef TFT_HEIGHT + #define TFT_HEIGHT 320 + #endif + #ifndef TFT_PIXEL_OFFSET_Y + #define TFT_PIXEL_OFFSET_Y 32 + #endif + + #ifndef XPT2046_X_CALIBRATION + #define XPT2046_X_CALIBRATION 12149 + #endif + #ifndef XPT2046_Y_CALIBRATION + #define XPT2046_Y_CALIBRATION -8746 + #endif + #ifndef XPT2046_X_OFFSET + #define XPT2046_X_OFFSET -35 + #endif + #ifndef XPT2046_Y_OFFSET + #define XPT2046_Y_OFFSET 256 + #endif + +#elif ENABLED(TFT_480x320) + #define XPT2046_X_CALIBRATION 17880 + #define XPT2046_Y_CALIBRATION -12234 + #define XPT2046_X_OFFSET -45 + #define XPT2046_Y_OFFSET 349 + + #define TFT_DRIVER ILI9488 + #define TFT_BUFFER_SIZE 14400 #define ILI9488_ORIENTATION ILI9488_MADCTL_MX | ILI9488_MADCTL_MV #endif -#define HAS_SPI_FLASH 1 -#define SPI_FLASH_SIZE 0x1000000 // 16MB +#define HAS_SPI_FLASH 1 +#define SPI_FLASH_SIZE 0x1000000 // 16MB #if HAS_SPI_FLASH #define W25QXX_CS_PIN PB12 #define W25QXX_MOSI_PIN PB15 diff --git a/Marlin/src/pins/stm32f1/pins_MKS_ROBIN_NANO_V2.h b/Marlin/src/pins/stm32f1/pins_MKS_ROBIN_NANO_V2.h index feac729c7..0f9e6eb37 100644 --- a/Marlin/src/pins/stm32f1/pins_MKS_ROBIN_NANO_V2.h +++ b/Marlin/src/pins/stm32f1/pins_MKS_ROBIN_NANO_V2.h @@ -29,6 +29,8 @@ #error "Oops! Select an STM32F1 board in 'Tools > Board.'" #elif HOTENDS > 2 || E_STEPPERS > 2 #error "MKS Robin nano supports up to 2 hotends / E-steppers. Comment out this line to continue." +#elif HAS_FSMC_TFT + #error "MKS Robin nano v2 doesn't support FSMC-based TFT displays." #endif #define BOARD_INFO_NAME "MKS Robin nano V2.0" @@ -47,13 +49,13 @@ #if EITHER(NO_EEPROM_SELECTED, I2C_EEPROM) #define I2C_EEPROM // EEPROM on I2C-0 - #define MARLIN_EEPROM_SIZE 0x1000 // 4KB + #define MARLIN_EEPROM_SIZE 0x1000 // 4KB #endif // // Note: MKS Robin board is using SPI2 interface. // -//#define SPI_MODULE 2 +//#define SPI_MODULE 2 #define ENABLE_SPI2 // @@ -162,7 +164,7 @@ #define E1_SERIAL_RX_PIN PD8 // Reduce baud rate to improve software serial reliability - #define TMC_BAUD_RATE 19200 + #define TMC_BAUD_RATE 19200 #endif // TMC2208 || TMC2209 // @@ -194,10 +196,10 @@ #define PS_ON_PIN PA3 // PW_OFF //#define SUICIDE_PIN PB2 // Enable MKSPWC support ROBIN NANO v1.2 ONLY -//#define SUICIDE_PIN_INVERTING false +//#define SUICIDE_PIN_INVERTING false //#define KILL_PIN PA2 // Enable MKSPWC support ROBIN NANO v1.2 ONLY -//#define KILL_PIN_INVERTING true // Enable MKSPWC support ROBIN NANO v1.2 ONLY +//#define KILL_PIN_INVERTING true // Enable MKSPWC support ROBIN NANO v1.2 ONLY #define SERVO0_PIN PA8 // Enable BLTOUCH support ROBIN NANO v1.2 ONLY @@ -205,7 +207,7 @@ #define MT_DET_1_PIN PA4 #define MT_DET_2_PIN PE6 -#define MT_DET_PIN_INVERTING false +#define MT_DET_PIN_INVERTING false #ifndef FIL_RUNOUT_PIN #define FIL_RUNOUT_PIN MT_DET_1_PIN @@ -224,7 +226,7 @@ #endif #define SDIO_SUPPORT -#define SDIO_CLOCK 4500000 // 4.5 MHz +#define SDIO_CLOCK 4500000 // 4.5 MHz #define SD_DETECT_PIN PD12 #define ONBOARD_SD_CS_PIN PC11 @@ -241,14 +243,9 @@ * to let the bootloader init the screen. */ -#if ENABLED(TFT_LVGL_UI_SPI) +#if HAS_SPI_TFT - #define SPI_TFT_CS_PIN PD11 - #define SPI_TFT_SCK_PIN PA5 - #define SPI_TFT_MISO_PIN PA6 - #define SPI_TFT_MOSI_PIN PA7 - #define SPI_TFT_DC_PIN PD10 - #define SPI_TFT_RST_PIN PC6 + // Shared SPI TFT #define LCD_BACKLIGHT_PIN PD13 @@ -261,87 +258,88 @@ #define BTN_EN2 PE11 #define BTN_ENC PE13 - #define TFT_CS_PIN PD11 - #define TFT_SCK_PIN PA5 - #define TFT_MISO_PIN PA6 - #define TFT_MOSI_PIN PA7 - #define TFT_DC_PIN PD10 - #define TFT_RST_PIN PC6 - #define TFT_A0_PIN TFT_DC_PIN + #define TFT_CS_PIN PD11 + #define TFT_SCK_PIN PA5 + #define TFT_MISO_PIN PA6 + #define TFT_MOSI_PIN PA7 + #define TFT_DC_PIN PD10 + #define TFT_RST_PIN PC6 + #define TFT_A0_PIN TFT_DC_PIN - #define TFT_RESET_PIN PC6 - #define TFT_BACKLIGHT_PIN PD13 + #define TFT_RESET_PIN PC6 + #define TFT_BACKLIGHT_PIN PD13 - #define XPT2046_X_CALIBRATION -17253 - #define XPT2046_Y_CALIBRATION 11579 - #define XPT2046_X_OFFSET 514 - #define XPT2046_Y_OFFSET -24 #define TOUCH_BUTTONS_HW_SPI - #define TOUCH_BUTTONS_HW_SPI_DEVICE 1 + #define TOUCH_BUTTONS_HW_SPI_DEVICE 1 - #ifndef LCD_FULL_PIXEL_WIDTH - #define LCD_FULL_PIXEL_WIDTH 480 + #ifndef TFT_WIDTH + #define TFT_WIDTH 480 #endif - #ifndef LCD_FULL_PIXEL_HEIGHT - #define LCD_FULL_PIXEL_HEIGHT 320 + #ifndef TFT_HEIGHT + #define TFT_HEIGHT 320 #endif + #define LCD_READ_ID 0xD3 + #define LCD_USE_DMA_SPI + #endif -#if HAS_SPI_LCD +#if ENABLED(TFT_LVGL_UI_SPI) - #if ENABLED(SPI_GRAPHICAL_TFT) // Emulated DOGM SPI - #define SPI_TFT_CS_PIN PD11 - #define SPI_TFT_SCK_PIN PA5 - #define SPI_TFT_MISO_PIN PA6 - #define SPI_TFT_MOSI_PIN PA7 - #define SPI_TFT_DC_PIN PD10 - #define SPI_TFT_RST_PIN PC6 + // LVGL - #define LCD_BACKLIGHT_PIN PD13 + #define XPT2046_X_CALIBRATION -17253 + #define XPT2046_Y_CALIBRATION 11579 + #define XPT2046_X_OFFSET 514 + #define XPT2046_Y_OFFSET -24 - #define LCD_READ_ID 0xD3 - #define LCD_USE_DMA_SPI +#elif ENABLED(SPI_GRAPHICAL_TFT) - #define TOUCH_BUTTONS_HW_SPI - #define TOUCH_BUTTONS_HW_SPI_DEVICE 1 + // Emulated DOGM SPI - //#define TOUCH_SCREEN - #if EITHER(TOUCH_SCREEN, NEED_TOUCH_PINS) - #define TOUCH_CS_PIN PE14 // SPI1_NSS - #define TOUCH_SCK_PIN PA5 // SPI1_SCK - #define TOUCH_MISO_PIN PA6 // SPI1_MISO - #define TOUCH_MOSI_PIN PA7 // SPI1_MOSI + #ifndef XPT2046_X_CALIBRATION + #define XPT2046_X_CALIBRATION -11386 + #endif + #ifndef XPT2046_Y_CALIBRATION + #define XPT2046_Y_CALIBRATION 8684 + #endif + #ifndef XPT2046_X_OFFSET + #define XPT2046_X_OFFSET 339 + #endif + #ifndef XPT2046_Y_OFFSET + #define XPT2046_Y_OFFSET -18 + #endif - #ifndef XPT2046_X_CALIBRATION - #define XPT2046_X_CALIBRATION -5481 - #endif - #ifndef XPT2046_Y_CALIBRATION - #define XPT2046_Y_CALIBRATION 4000 - #endif - #ifndef XPT2046_X_OFFSET - #define XPT2046_X_OFFSET 343 - #endif - #ifndef XPT2046_Y_OFFSET - #define XPT2046_Y_OFFSET 0 - #endif - #endif + #ifndef GRAPHICAL_TFT_UPSCALE + #define GRAPHICAL_TFT_UPSCALE 3 + #endif + #ifndef TFT_PIXEL_OFFSET_Y + #define TFT_PIXEL_OFFSET_Y 32 + #endif - #ifndef FSMC_UPSCALE - #define FSMC_UPSCALE 3 - #endif - #ifndef LCD_PIXEL_OFFSET_Y - #define LCD_PIXEL_OFFSET_Y 32 - #endif + #define BTN_ENC PE13 + #define BTN_EN1 PE8 + #define BTN_EN2 PE11 - #define BTN_ENC PE13 - #define BTN_EN1 PE8 - #define BTN_EN2 PE11 + #define LCD_PINS_ENABLE PD13 + #define LCD_PINS_RS PC6 - #define LCD_PINS_ENABLE PD13 - #define LCD_PINS_RS PC6 +#elif ENABLED(TFT_480x320_SPI) + #define XPT2046_X_CALIBRATION -17253 + #define XPT2046_Y_CALIBRATION 11579 + #define XPT2046_X_OFFSET 514 + #define XPT2046_Y_OFFSET -24 - #elif ENABLED(MKS_MINI_12864) + #define TFT_DRIVER ST7796 + #define TFT_BUFFER_SIZE 14400 + +#endif + +#if HAS_SPI_LCD && !HAS_SPI_TFT + + // NON TFT Displays + + #if ENABLED(MKS_MINI_12864) // MKS MINI12864 and MKS LCD12864B // If using MKS LCD12864A (Need to remove RPK2 resistor) @@ -357,37 +355,6 @@ #define MKS_LCD12864B #undef SHOW_BOOTSCREEN - #elif ENABLED(TFT_480x320_SPI) - #define TFT_CS_PIN PD11 - #define TFT_SCK_PIN PA5 - #define TFT_MISO_PIN PA6 - #define TFT_MOSI_PIN PA7 - #define TFT_DC_PIN PD10 - #define TFT_RST_PIN PC6 - #define TFT_A0_PIN TFT_DC_PIN - - #define TFT_RESET_PIN PC6 - #define TFT_BACKLIGHT_PIN PD13 - - #define XPT2046_X_CALIBRATION -17253 - #define XPT2046_Y_CALIBRATION 11579 - #define XPT2046_X_OFFSET 514 - #define XPT2046_Y_OFFSET -24 - - #define TOUCH_CS_PIN PE14 // SPI1_NSS - #define TOUCH_SCK_PIN PA5 // SPI1_SCK - #define TOUCH_MISO_PIN PA6 // SPI1_MISO - #define TOUCH_MOSI_PIN PA7 // SPI1_MOSI - - #define TFT_DRIVER ST7796 - #define TFT_BUFFER_SIZE 14400 - - #define LCD_READ_ID 0xD3 - #define LCD_USE_DMA_SPI - - #define TOUCH_BUTTONS_HW_SPI - #define TOUCH_BUTTONS_HW_SPI_DEVICE 1 - #else // !MKS_MINI_12864 #define LCD_PINS_D4 PE14 @@ -409,10 +376,10 @@ #endif // !MKS_MINI_12864 -#endif // HAS_SPI_LCD +#endif // HAS_SPI_LCD && !HAS_SPI_TFT -#define HAS_SPI_FLASH 1 -#define SPI_FLASH_SIZE 0x1000000 // 16MB +#define HAS_SPI_FLASH 1 +#define SPI_FLASH_SIZE 0x1000000 // 16MB #if HAS_SPI_FLASH #define W25QXX_CS_PIN PB12 #define W25QXX_MOSI_PIN PB15 diff --git a/buildroot/share/scripts/pinsformat.js b/buildroot/share/scripts/pinsformat.js index 3e2a57b55..a82c2f265 100755 --- a/buildroot/share/scripts/pinsformat.js +++ b/buildroot/share/scripts/pinsformat.js @@ -38,10 +38,12 @@ for (let m of mpatt) mexpr.push(new RegExp('^' + m + '$')); const argv = process.argv.slice(2), argc = argv.length; -var src_file = 0, src_name = 'STDIN', dst_file; +var src_file = 0, src_name = 'STDIN', dst_file, do_log = false; if (argc > 0) { - src_file = src_name = argv[0]; - dst_file = argv[argc > 1 ? 1 : 0]; + let ind = 0; + if (argv[0] == '-v') { do_log = true; ind++; } + dst_file = src_file = src_name = argv[ind++]; + if (ind < argc) dst_file = argv[ind]; } // Read from file or STDIN until it terminates @@ -81,7 +83,7 @@ function process_text(txt) { aliasPatt = new RegExp('^(\\s*(//)?#define)\\s+([A-Z_][A-Z0-9_]+)\\s+([A-Z_][A-Z0-9_()]+)\\s*(//.*)?$'), switchPatt = new RegExp('^(\\s*(//)?#define)\\s+([A-Z_][A-Z0-9_]+)\\s*(//.*)?$'), undefPatt = new RegExp('^(\\s*(//)?#undef)\\s+([A-Z_][A-Z0-9_]+)\\s*(//.*)?$'), - defPatt = new RegExp('^(\\s*(//)?#define)\\s+([A-Z_][A-Z0-9_]+)\\s+(\\w+)\\s*(//.*)?$'), + defPatt = new RegExp('^(\\s*(//)?#define)\\s+([A-Z_][A-Z0-9_]+)\\s+([-_\\w]+)\\s*(//.*)?$'), condPatt = new RegExp('^(\\s*(//)?#(if|ifn?def|else|elif)(\\s+\\S+)*)\\s+(//.*)$'), commPatt = new RegExp('^\\s{20,}(//.*)?$'); const col_value_lj = col_comment - patt.pad - 2; @@ -98,6 +100,7 @@ function process_text(txt) { // // #define MY_PIN [pin] // + if (do_log) console.log("pin:", line); const pinnum = r[4].charAt(0) == 'P' ? r[4] : r[4].lpad(patt.pad); line = r[1] + ' ' + r[3]; line = line.rpad(col_value_lj) + pinnum; @@ -107,31 +110,57 @@ function process_text(txt) { // // #define MY_PIN -1 // + if (do_log) console.log("pin -1:", line); line = r[1] + ' ' + r[3]; line = line.rpad(col_value_lj) + '-1'; if (r[5]) line = line.rpad(col_comment) + r[5]; } else if ((r = skipPatt.exec(line)) !== null) { + // + // #define SKIP_ME + // + if (do_log) console.log("skip:", line); } else if ((r = aliasPatt.exec(line)) !== null) { + // + // #define ALIAS OTHER + // + if (do_log) console.log("alias:", line); line = r[1] + ' ' + r[3]; line += r[4].lpad(col_value_rj + 1 - line.length); if (r[5]) line = line.rpad(col_comment) + r[5]; } else if ((r = switchPatt.exec(line)) !== null) { + // + // #define SWITCH + // + if (do_log) console.log("switch:", line); line = r[1] + ' ' + r[3]; if (r[4]) line = line.rpad(col_comment) + r[4]; check_comment_next = true; } else if ((r = defPatt.exec(line)) !== null) { - line = r[1] + ' ' + r[3] + ' ' + r[4]; - if (r[5]) line = line.rpad(col_comment) + r[5]; + // + // #define ... + // + if (do_log) console.log("def:", line); + line = r[1] + ' ' + r[3] + ' '; + line += r[4].lpad(col_value_rj + 1 - line.length); + if (r[5]) line = line.rpad(col_comment - 1) + ' ' + r[5]; } else if ((r = undefPatt.exec(line)) !== null) { + // + // #undef ... + // + if (do_log) console.log("undef:", line); line = r[1] + ' ' + r[3]; if (r[4]) line = line.rpad(col_comment) + r[4]; } else if ((r = condPatt.exec(line)) !== null) { + // + // #if ... + // + if (do_log) console.log("cond:", line); line = r[1].rpad(col_comment) + r[5]; check_comment_next = true; } From 45d22d4f0946ea3d7f9c97675bda63ae9ccf7801 Mon Sep 17 00:00:00 2001 From: thinkyhead Date: Sat, 22 Aug 2020 00:11:44 +0000 Subject: [PATCH 142/194] [cron] Bump distribution date (2020-08-22) --- Marlin/src/inc/Version.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Marlin/src/inc/Version.h b/Marlin/src/inc/Version.h index 9c7504227..d5e0e2a82 100644 --- a/Marlin/src/inc/Version.h +++ b/Marlin/src/inc/Version.h @@ -42,7 +42,7 @@ * version was tagged. */ #ifndef STRING_DISTRIBUTION_DATE - #define STRING_DISTRIBUTION_DATE "2020-08-21" + #define STRING_DISTRIBUTION_DATE "2020-08-22" #endif /** From bb8606ac2991f00ad3887c6b59c38a9d460e75b5 Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Fri, 21 Aug 2020 20:26:16 -0500 Subject: [PATCH 143/194] Menu headers followup --- Marlin/src/lcd/menu/menu.h | 5 +++++ Marlin/src/lcd/tft/touch.cpp | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/Marlin/src/lcd/menu/menu.h b/Marlin/src/lcd/menu/menu.h index c457eaf29..1dff9d94f 100644 --- a/Marlin/src/lcd/menu/menu.h +++ b/Marlin/src/lcd/menu/menu.h @@ -196,6 +196,7 @@ void menu_move(); //////// Menu Item Helper Functions //////// //////////////////////////////////////////// +void lcd_move_z(); void _lcd_draw_homing(); #define HAS_LINE_TO_Z ANY(DELTA, PROBE_MANUALLY, MESH_BED_LEVELING, LEVEL_BED_CORNERS) @@ -230,3 +231,7 @@ void _lcd_draw_homing(); #endif #endif + +#if ENABLED(TOUCH_SCREEN_CALIBRATION) + void touch_screen_calibration(); +#endif diff --git a/Marlin/src/lcd/tft/touch.cpp b/Marlin/src/lcd/tft/touch.cpp index 00c7439a5..d2b860ab1 100644 --- a/Marlin/src/lcd/tft/touch.cpp +++ b/Marlin/src/lcd/tft/touch.cpp @@ -24,7 +24,7 @@ #include "touch.h" #include "../ultralcd.h" // for ui methods -#include "../menu/menu.h" // for touch_screen_calibration +#include "../menu/menu_item.h" // for touch_screen_calibration #include "../../module/temperature.h" #include "../../module/planner.h" From 6b549e19719e855555c1a9db5e3c0453516afb28 Mon Sep 17 00:00:00 2001 From: Giuliano Zaro <3684609+GMagician@users.noreply.github.com> Date: Sat, 22 Aug 2020 04:20:30 +0200 Subject: [PATCH 144/194] Optional homing in LCD Repeatability Test (#19104) --- Marlin/src/gcode/calibrate/M48.cpp | 169 +++++++++++++------------- Marlin/src/lcd/language/language_en.h | 1 + Marlin/src/lcd/language/language_it.h | 1 + Marlin/src/lcd/menu/menu_motion.cpp | 2 +- 4 files changed, 90 insertions(+), 83 deletions(-) diff --git a/Marlin/src/gcode/calibrate/M48.cpp b/Marlin/src/gcode/calibrate/M48.cpp index 47c72eece..fc9d22957 100644 --- a/Marlin/src/gcode/calibrate/M48.cpp +++ b/Marlin/src/gcode/calibrate/M48.cpp @@ -27,13 +27,10 @@ #include "../gcode.h" #include "../../module/motion.h" #include "../../module/probe.h" +#include "../../lcd/ultralcd.h" #include "../../feature/bedlevel/bedlevel.h" -#if HAS_SPI_LCD - #include "../../lcd/ultralcd.h" -#endif - #if HAS_LEVELING #include "../../module/planner.h" #endif @@ -77,61 +74,85 @@ void GcodeSuite::M48() { const ProbePtRaise raise_after = parser.boolval('E') ? PROBE_PT_STOW : PROBE_PT_RAISE; - xy_float_t next_pos = current_position; - - const xy_pos_t probe_pos = { - parser.linearval('X', next_pos.x + probe.offset_xy.x), // If no X use the probe's current X position - parser.linearval('Y', next_pos.y + probe.offset_xy.y) // If no Y, ditto + // Test at the current position by default, overridden by X and Y + const xy_pos_t test_position = { + parser.linearval('X', current_position.x + probe.offset_xy.x), // If no X use the probe's current X position + parser.linearval('Y', current_position.y + probe.offset_xy.y) // If no Y, ditto }; - if (!probe.can_reach(probe_pos)) { + if (!probe.can_reach(test_position)) { + ui.set_status_P(GET_TEXT(MSG_M48_OUT_OF_BOUNDS), 99); SERIAL_ECHOLNPGM("? (X,Y) out of bounds."); return; } + // Get the number of leg moves per test-point bool seen_L = parser.seen('L'); uint8_t n_legs = seen_L ? parser.value_byte() : 0; if (n_legs > 15) { - SERIAL_ECHOLNPGM("?Number of legs in movement not plausible (0-15)."); + SERIAL_ECHOLNPGM("?Legs of movement implausible (0-15)."); return; } if (n_legs == 1) n_legs = 2; + // Schizoid motion as an optional stress-test const bool schizoid_flag = parser.boolval('S'); if (schizoid_flag && !seen_L) n_legs = 7; - /** - * Now get everything to the specified probe point So we can safely do a - * probe to get us close to the bed. If the Z-Axis is far from the bed, - * we don't want to use that as a starting point for each probe. - */ if (verbose_level > 2) SERIAL_ECHOLNPGM("Positioning the probe..."); - // Disable bed level correction in M48 because we want the raw data when we probe + // Always disable Bed Level correction before probing... #if HAS_LEVELING const bool was_enabled = planner.leveling_active; set_bed_leveling_enabled(false); #endif + // Work with reasonable feedrates remember_feedrate_scaling_off(); - float mean = 0.0, sigma = 0.0, min = 99999.9, max = -99999.9, sample_set[n_samples]; + // Working variables + float mean = 0.0, // The average of all points so far, used to calculate deviation + sigma = 0.0, // Standard deviation of all points so far + min = 99999.9, // Smallest value sampled so far + max = -99999.9, // Largest value sampled so far + sample_set[n_samples]; // Storage for sampled values + + auto dev_report = [](const bool verbose, const float &mean, const float &sigma, const float &min, const float &max, const bool final=false) { + if (verbose) { + SERIAL_ECHOPAIR_F("Mean: ", mean, 6); + if (!final) SERIAL_ECHOPAIR_F(" Sigma: ", sigma, 6); + SERIAL_ECHOPAIR_F(" Min: ", min, 3); + SERIAL_ECHOPAIR_F(" Max: ", max, 3); + SERIAL_ECHOPAIR_F(" Range: ", max-min, 3); + if (final) SERIAL_EOL(); + } + if (final) { + SERIAL_ECHOLNPAIR_F("Standard Deviation: ", sigma, 6); + SERIAL_EOL(); + } + }; // Move to the first point, deploy, and probe - const float t = probe.probe_at_point(probe_pos, raise_after, verbose_level); + const float t = probe.probe_at_point(test_position, raise_after, verbose_level); bool probing_good = !isnan(t); if (probing_good) { randomSeed(millis()); + float sample_sum = 0.0; + LOOP_L_N(n, n_samples) { #if HAS_SPI_LCD // Display M48 progress in the status bar ui.status_printf_P(0, PSTR(S_FMT ": %d/%d"), GET_TEXT(MSG_M48_POINT), int(n + 1), int(n_samples)); #endif + + // When there are "legs" of movement move around the point before probing if (n_legs) { + + // Pick a random direction, starting angle, and radius const int dir = (random(0, 10) > 5.0) ? -1 : 1; // clockwise or counter clockwise float angle = random(0, 360); const float radius = random( @@ -142,48 +163,51 @@ void GcodeSuite::M48() { int(5), int(0.125 * _MIN(X_BED_SIZE, Y_BED_SIZE)) #endif ); - if (verbose_level > 3) { SERIAL_ECHOPAIR("Start radius:", radius, " angle:", angle, " dir:"); if (dir > 0) SERIAL_CHAR('C'); SERIAL_ECHOLNPGM("CW"); } + // Move from leg to leg in rapid succession LOOP_L_N(l, n_legs - 1) { - float delta_angle; + // Move some distance around the perimeter + float delta_angle; if (schizoid_flag) { - // The points of a 5 point star are 72 degrees apart. We need to - // skip a point and go to the next one on the star. + // The points of a 5 point star are 72 degrees apart. + // Skip a point and go to the next one on the star. delta_angle = dir * 2.0 * 72.0; } else { - // If we do this line, we are just trying to move further - // around the circle. - delta_angle = dir * (float) random(25, 45); + // Just move further along the perimeter. + delta_angle = dir * (float)random(25, 45); } - angle += delta_angle; - while (angle > 360.0) angle -= 360.0; // We probably do not need to keep the angle between 0 and 2*PI, but the - // Arduino documentation says the trig functions should not be given values - while (angle < 0.0) angle += 360.0; // outside of this range. It looks like they behave correctly with - // numbers outside of the range, but just to be safe we clamp them. - const xy_pos_t noz_pos = probe_pos - probe.offset_xy; - next_pos.set(noz_pos.x + cos(RADIANS(angle)) * radius, - noz_pos.y + sin(RADIANS(angle)) * radius); + // Trig functions work without clamping, but just to be safe... + while (angle > 360.0) angle -= 360.0; + while (angle < 0.0) angle += 360.0; - #if DISABLED(DELTA) - LIMIT(next_pos.x, X_MIN_POS, X_MAX_POS); - LIMIT(next_pos.y, Y_MIN_POS, Y_MAX_POS); - #else - // If we have gone out too far, we can do a simple fix and scale the numbers - // back in closer to the origin. + // Choose the next position as an offset to chosen test position + const xy_pos_t noz_pos = test_position - probe.offset_xy; + xy_pos_t next_pos = { + noz_pos.x + cos(RADIANS(angle)) * radius, + noz_pos.y + sin(RADIANS(angle)) * radius + }; + + #if ENABLED(DELTA) + // If the probe can't reach the point on a round bed... + // Simply scale the numbers to bring them closer to origin. while (!probe.can_reach(next_pos)) { next_pos *= 0.8f; if (verbose_level > 3) SERIAL_ECHOLNPAIR_P(PSTR("Moving inward: X"), next_pos.x, SP_Y_STR, next_pos.y); } + #else + // For a rectangular bed just keep the probe in bounds + LIMIT(next_pos.x, X_MIN_POS, X_MAX_POS); + LIMIT(next_pos.y, Y_MIN_POS, Y_MAX_POS); #endif if (verbose_level > 3) @@ -194,45 +218,35 @@ void GcodeSuite::M48() { } // n_legs // Probe a single point - sample_set[n] = probe.probe_at_point(probe_pos, raise_after, 0); + const float pz = probe.probe_at_point(test_position, raise_after, 0); // Break the loop if the probe fails - probing_good = !isnan(sample_set[n]); + probing_good = !isnan(pz); if (!probing_good) break; - /** - * Get the current mean for the data points we have so far - */ - float sum = 0.0; - LOOP_LE_N(j, n) sum += sample_set[j]; - mean = sum / (n + 1); + // Store the new sample + sample_set[n] = pz; - NOMORE(min, sample_set[n]); - NOLESS(max, sample_set[n]); + // Keep track of the largest and smallest samples + NOMORE(min, pz); + NOLESS(max, pz); - /** - * Now, use that mean to calculate the standard deviation for the - * data points we have so far - */ - sum = 0.0; - LOOP_LE_N(j, n) - sum += sq(sample_set[j] - mean); + // Get the mean value of all samples thus far + sample_sum += pz; + mean = sample_sum / (n + 1); - sigma = SQRT(sum / (n + 1)); - if (verbose_level > 0) { - if (verbose_level > 1) { - SERIAL_ECHO(n + 1); - SERIAL_ECHOPAIR(" of ", int(n_samples)); - SERIAL_ECHOPAIR_F(": z: ", sample_set[n], 3); - if (verbose_level > 2) { - SERIAL_ECHOPAIR_F(" mean: ", mean, 4); - SERIAL_ECHOPAIR_F(" sigma: ", sigma, 6); - SERIAL_ECHOPAIR_F(" min: ", min, 3); - SERIAL_ECHOPAIR_F(" max: ", max, 3); - SERIAL_ECHOPAIR_F(" range: ", max-min, 3); - } - SERIAL_EOL(); - } + // Calculate the standard deviation so far. + // The value after the last sample will be the final output. + float dev_sum = 0.0; + LOOP_LE_N(j, n) dev_sum += sq(sample_set[j] - mean); + sigma = SQRT(dev_sum / (n + 1)); + + if (verbose_level > 1) { + SERIAL_ECHO(n + 1); + SERIAL_ECHOPAIR(" of ", int(n_samples)); + SERIAL_ECHOPAIR_F(": z: ", pz, 3); + dev_report(verbose_level > 2, mean, sigma, min, max); + SERIAL_EOL(); } } // n_samples loop @@ -242,16 +256,7 @@ void GcodeSuite::M48() { if (probing_good) { SERIAL_ECHOLNPGM("Finished!"); - - if (verbose_level > 0) { - SERIAL_ECHOPAIR_F("Mean: ", mean, 6); - SERIAL_ECHOPAIR_F(" Min: ", min, 3); - SERIAL_ECHOPAIR_F(" Max: ", max, 3); - SERIAL_ECHOLNPAIR_F(" Range: ", max-min, 3); - } - - SERIAL_ECHOLNPAIR_F("Standard Deviation: ", sigma, 6); - SERIAL_EOL(); + dev_report(verbose_level > 0, mean, sigma, min, max, true); #if HAS_SPI_LCD // Display M48 results in the status bar diff --git a/Marlin/src/lcd/language/language_en.h b/Marlin/src/lcd/language/language_en.h index 3791a4ad1..5aa0d76a8 100644 --- a/Marlin/src/lcd/language/language_en.h +++ b/Marlin/src/lcd/language/language_en.h @@ -124,6 +124,7 @@ namespace Language_en { PROGMEM Language_Str MSG_USER_MENU = _UxGT("Custom Commands"); PROGMEM Language_Str MSG_M48_TEST = _UxGT("M48 Probe Test"); PROGMEM Language_Str MSG_M48_POINT = _UxGT("M48 Point"); + PROGMEM Language_Str MSG_M48_OUT_OF_BOUNDS = _UxGT("Probe out of bounds"); PROGMEM Language_Str MSG_M48_DEVIATION = _UxGT("Deviation"); PROGMEM Language_Str MSG_IDEX_MENU = _UxGT("IDEX Mode"); PROGMEM Language_Str MSG_OFFSETS_MENU = _UxGT("Tool Offsets"); diff --git a/Marlin/src/lcd/language/language_it.h b/Marlin/src/lcd/language/language_it.h index 1a5bdb22e..43765d7c3 100644 --- a/Marlin/src/lcd/language/language_it.h +++ b/Marlin/src/lcd/language/language_it.h @@ -122,6 +122,7 @@ namespace Language_it { PROGMEM Language_Str MSG_LCD_TILTING_MESH = _UxGT("Punto inclinaz."); PROGMEM Language_Str MSG_M48_TEST = _UxGT("Test sonda M48"); PROGMEM Language_Str MSG_M48_POINT = _UxGT("Punto M48"); + PROGMEM Language_Str MSG_M48_OUT_OF_BOUNDS = _UxGT("Sonda oltre i limiti"); PROGMEM Language_Str MSG_M48_DEVIATION = _UxGT("Deviazione"); PROGMEM Language_Str MSG_IDEX_MENU = _UxGT("Modo IDEX"); PROGMEM Language_Str MSG_OFFSETS_MENU = _UxGT("Strumenti Offsets"); diff --git a/Marlin/src/lcd/menu/menu_motion.cpp b/Marlin/src/lcd/menu/menu_motion.cpp index 914b22900..027be4029 100644 --- a/Marlin/src/lcd/menu/menu_motion.cpp +++ b/Marlin/src/lcd/menu/menu_motion.cpp @@ -386,7 +386,7 @@ void menu_motion() { #endif #if ENABLED(Z_MIN_PROBE_REPEATABILITY_TEST) - GCODES_ITEM(MSG_M48_TEST, PSTR("G28\nM48 P10")); + GCODES_ITEM(MSG_M48_TEST, PSTR("G28 O\nM48 P10")); #endif // From 04909a201002cee986ad2d86b910f13196f0088d Mon Sep 17 00:00:00 2001 From: ellensp Date: Sat, 22 Aug 2020 14:56:18 +1200 Subject: [PATCH 145/194] Creality3D v4.2.7 (#19088) --- Marlin/src/core/boards.h | 3 +- Marlin/src/pins/pins.h | 2 + Marlin/src/pins/stm32f1/pins_CREALITY_V4.h | 40 ++++++++++++---- Marlin/src/pins/stm32f1/pins_CREALITY_V427.h | 48 ++++++++++++++++++++ 4 files changed, 82 insertions(+), 11 deletions(-) create mode 100644 Marlin/src/pins/stm32f1/pins_CREALITY_V427.h diff --git a/Marlin/src/core/boards.h b/Marlin/src/core/boards.h index 32b9168a6..cadbc7142 100644 --- a/Marlin/src/core/boards.h +++ b/Marlin/src/core/boards.h @@ -313,7 +313,8 @@ #define BOARD_CHITU3D_V5 4031 // Chitu3D TronXY X5SA V5 Board #define BOARD_CHITU3D_V6 4032 // Chitu3D TronXY X5SA V5 Board #define BOARD_CREALITY_V4 4033 // Creality v4.x (STM32F103RE) -#define BOARD_TRIGORILLA_PRO 4034 // Trigorilla Pro (STM32F103ZET6) +#define BOARD_CREALITY_V427 4034 // Creality v4.2.7 (STM32F103RE) +#define BOARD_TRIGORILLA_PRO 4035 // Trigorilla Pro (STM32F103ZET6) // // ARM Cortex-M4F diff --git a/Marlin/src/pins/pins.h b/Marlin/src/pins/pins.h index 9b6be5a6e..f2aec72c4 100644 --- a/Marlin/src/pins/pins.h +++ b/Marlin/src/pins/pins.h @@ -550,6 +550,8 @@ #include "stm32f1/pins_CHITU3D_V6.h" // STM32F1 env:chitu_f103 #elif MB(CREALITY_V4) #include "stm32f1/pins_CREALITY_V4.h" // STM32F1 env:STM32F103RET6_creality +#elif MB(CREALITY_V427) + #include "stm32f1/pins_CREALITY_V427.h" // STM32F1 env:STM32F103RET6_creality #elif MB(TRIGORILLA_PRO) #include "stm32f1/pins_TRIGORILLA_PRO.h" // STM32F1 env:trigorilla_pro diff --git a/Marlin/src/pins/stm32f1/pins_CREALITY_V4.h b/Marlin/src/pins/stm32f1/pins_CREALITY_V4.h index 5aab75712..f42d78669 100644 --- a/Marlin/src/pins/stm32f1/pins_CREALITY_V4.h +++ b/Marlin/src/pins/stm32f1/pins_CREALITY_V4.h @@ -32,8 +32,12 @@ #error "CREALITY supports up to 1 hotends / E-steppers. Comment out this line to continue." #endif -#define BOARD_INFO_NAME "CREALITY V4" -#define DEFAULT_MACHINE_NAME "Ender 3 V2" +#ifndef BOARD_INFO_NAME + #define BOARD_INFO_NAME "Creality V4" +#endif +#ifndef DEFAULT_MACHINE_NAME + #define DEFAULT_MACHINE_NAME "Ender 3 V2" +#endif // // EEPROM @@ -90,20 +94,36 @@ // Steppers // #define X_ENABLE_PIN PC3 -#define X_STEP_PIN PC2 -#define X_DIR_PIN PB9 +#ifndef X_STEP_PIN + #define X_STEP_PIN PC2 +#endif +#ifndef X_DIR_PIN + #define X_DIR_PIN PB9 +#endif #define Y_ENABLE_PIN PC3 -#define Y_STEP_PIN PB8 -#define Y_DIR_PIN PB7 +#ifndef Y_STEP_PIN + #define Y_STEP_PIN PB8 +#endif +#ifndef Y_DIR_PIN + #define Y_DIR_PIN PB7 +#endif #define Z_ENABLE_PIN PC3 -#define Z_STEP_PIN PB6 -#define Z_DIR_PIN PB5 +#ifndef Z_STEP_PIN + #define Z_STEP_PIN PB6 +#endif +#ifndef Z_DIR_PIN + #define Z_DIR_PIN PB5 +#endif #define E0_ENABLE_PIN PC3 -#define E0_STEP_PIN PB4 -#define E0_DIR_PIN PB3 +#ifndef E0_STEP_PIN + #define E0_STEP_PIN PB4 +#endif +#ifndef E0_DIR_PIN + #define E0_DIR_PIN PB3 +#endif // // Release PB4 (Y_ENABLE_PIN) from JTAG NRST role diff --git a/Marlin/src/pins/stm32f1/pins_CREALITY_V427.h b/Marlin/src/pins/stm32f1/pins_CREALITY_V427.h new file mode 100644 index 000000000..9453a6d51 --- /dev/null +++ b/Marlin/src/pins/stm32f1/pins_CREALITY_V427.h @@ -0,0 +1,48 @@ +/** + * Marlin 3D Printer Firmware + * Copyright (C) 2016 MarlinFirmware [https://github.com/MarlinFirmware/Marlin] + * + * Based on Sprinter and grbl. + * Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + */ + +/** + * CREALITY v4.2.7 (STM32F103) board pin assignments + */ + +#ifndef __STM32F1__ + #error "Oops! Select an STM32F1 board in 'Tools > Board.'" +#endif + +#define BOARD_INFO_NAME "Creality v4.2.7" +#define DEFAULT_MACHINE_NAME "Creality3D" + +// +// Steppers +// +#define X_STEP_PIN PB9 +#define X_DIR_PIN PC2 +#define Y_STEP_PIN PB7 + +#define Y_DIR_PIN PB8 +#define Z_STEP_PIN PB5 +#define Z_DIR_PIN PB6 + +#define E0_STEP_PIN PB3 +#define E0_DIR_PIN PB4 + +#include "pins_CREALITY_V4.h" From ec02aee46cb2349646b4fcb4f069f50e8696ccbb Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Fri, 21 Aug 2020 21:59:59 -0500 Subject: [PATCH 146/194] More menu header fu --- Marlin/src/lcd/menu/menu.h | 10 ++++++++++ Marlin/src/lcd/menu/menu_item.h | 10 ---------- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/Marlin/src/lcd/menu/menu.h b/Marlin/src/lcd/menu/menu.h index 1dff9d94f..d69214446 100644 --- a/Marlin/src/lcd/menu/menu.h +++ b/Marlin/src/lcd/menu/menu.h @@ -79,6 +79,16 @@ class MenuItem_static : public MenuItemBase { static void draw(const uint8_t row, PGM_P const pstr, const uint8_t style=SS_DEFAULT, const char * const vstr=nullptr); }; +// BACK_ITEM(LABEL) +class MenuItem_back : public MenuItemBase { + public: + FORCE_INLINE static void draw(const bool sel, const uint8_t row, PGM_P const pstr) { + _draw(sel, row, pstr, LCD_STR_UPLEVEL[0], LCD_STR_UPLEVEL[0]); + } + // Back Item action goes back one step in history + FORCE_INLINE static void action(PGM_P const=nullptr) { ui.go_back(); } +}; + // CONFIRM_ITEM(LABEL,Y,N,FY,FN,...), // YESNO_ITEM(LABEL,FY,FN,...) class MenuItem_confirm : public MenuItemBase { diff --git a/Marlin/src/lcd/menu/menu_item.h b/Marlin/src/lcd/menu/menu_item.h index 66ed0e402..b322246e5 100644 --- a/Marlin/src/lcd/menu/menu_item.h +++ b/Marlin/src/lcd/menu/menu_item.h @@ -33,16 +33,6 @@ void lcd_move_z(); ///////////// Base Menu Items ////////////// //////////////////////////////////////////// -// BACK_ITEM(LABEL) -class MenuItem_back : public MenuItemBase { - public: - FORCE_INLINE static void draw(const bool sel, const uint8_t row, PGM_P const pstr) { - _draw(sel, row, pstr, LCD_STR_UPLEVEL[0], LCD_STR_UPLEVEL[0]); - } - // Back Item action goes back one step in history - FORCE_INLINE static void action(PGM_P const=nullptr) { ui.go_back(); } -}; - // SUBMENU(LABEL, screen_handler) class MenuItem_submenu : public MenuItemBase { public: From d6574a03a113167f28ac8ddd2ad3558ac06c983f Mon Sep 17 00:00:00 2001 From: Victor Oliveira Date: Sat, 22 Aug 2020 00:03:32 -0300 Subject: [PATCH 147/194] CI with PIO-dev (#19058) --- .github/workflows/test-builds.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/test-builds.yml b/.github/workflows/test-builds.yml index 1467f1b33..fdb81fbdc 100644 --- a/.github/workflows/test-builds.yml +++ b/.github/workflows/test-builds.yml @@ -106,7 +106,7 @@ jobs: - name: Install PlatformIO run: | - pip install -U https://github.com/platformio/platformio-core/archive/master.zip + pip install -U https://github.com/platformio/platformio-core/archive/develop.zip platformio update - name: Check out the PR From 02ea13b5119ff519ed7adcb08923d8b34ae381c9 Mon Sep 17 00:00:00 2001 From: mmajoor Date: Sat, 22 Aug 2020 05:04:31 +0200 Subject: [PATCH 148/194] GRAPHICAL_TFT_ROTATE_180 for ST7789V (#19042) --- Marlin/src/lcd/dogm/u8g_dev_tft_320x240_upscale_from_128x64.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Marlin/src/lcd/dogm/u8g_dev_tft_320x240_upscale_from_128x64.cpp b/Marlin/src/lcd/dogm/u8g_dev_tft_320x240_upscale_from_128x64.cpp index dc8fbc53f..b8bfdb293 100644 --- a/Marlin/src/lcd/dogm/u8g_dev_tft_320x240_upscale_from_128x64.cpp +++ b/Marlin/src/lcd/dogm/u8g_dev_tft_320x240_upscale_from_128x64.cpp @@ -298,7 +298,7 @@ static const uint16_t st7789v_init[] = { ESC_REG(0x0010), ESC_DELAY(10), ESC_REG(0x0001), ESC_DELAY(200), ESC_REG(0x0011), ESC_DELAY(120), - ESC_REG(0x0036), 0x00A0, + ESC_REG(0x0036), TERN(GRAPHICAL_TFT_ROTATE_180, 0x0060, 0x00A0), ESC_REG(0x003A), 0x0055, ESC_REG(0x002A), 0x0000, 0x0000, 0x0001, 0x003F, ESC_REG(0x002B), 0x0000, 0x0000, 0x0000, 0x00EF, From 93167afaf5eb81526a1192fd70d3390af6c48425 Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Fri, 21 Aug 2020 22:50:45 -0500 Subject: [PATCH 149/194] Update copy_marlin_variant_to_framework.py --- .../scripts/copy_marlin_variant_to_framework.py | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/buildroot/share/PlatformIO/scripts/copy_marlin_variant_to_framework.py b/buildroot/share/PlatformIO/scripts/copy_marlin_variant_to_framework.py index b66ba27fa..f7d3f0d03 100644 --- a/buildroot/share/PlatformIO/scripts/copy_marlin_variant_to_framework.py +++ b/buildroot/share/PlatformIO/scripts/copy_marlin_variant_to_framework.py @@ -1,7 +1,19 @@ import os,shutil from SCons.Script import DefaultEnvironment from platformio import util -from platformio.managers.package import PackageManager +try: + # PIO < 4.4 + from platformio.managers.package import PackageManager +except ImportError: + # PIO >= 4.4 + from platformio.package.meta import PackageSpec as PackageManager + +def parse_pkg_uri(spec): + if PackageManager.__name__ == 'PackageSpec': + return PackageManager(spec).name + else: + name, _, _ = PackageManager.parse_pkg_uri(spec) + return name def copytree(src, dst, symlinks=False, ignore=None): for item in os.listdir(src): @@ -26,7 +38,7 @@ framewords = { if len(platform_packages) == 0: platform_name = framewords[platform.__class__.__name__] else: - platform_name, _, _ = PackageManager.parse_pkg_uri(platform_packages[0]) + platform_name = parse_pkg_uri(platform_packages[0]) FRAMEWORK_DIR = platform.get_package_dir(platform_name) assert os.path.isdir(FRAMEWORK_DIR) From 8652a7bdd2dada6b5dcdbccbbf5feb76b465083d Mon Sep 17 00:00:00 2001 From: Giuliano Zaro <3684609+GMagician@users.noreply.github.com> Date: Sat, 22 Aug 2020 06:13:43 +0200 Subject: [PATCH 150/194] HIGH/LOW naming of pin state settings (#19089) --- Marlin/Configuration.h | 2 +- Marlin/Configuration_adv.h | 2 +- Marlin/src/HAL/DUE/usb/arduino_due_x.h | 2 +- Marlin/src/MarlinCore.h | 4 ++-- Marlin/src/feature/spindle_laser.cpp | 12 ++++++------ Marlin/src/inc/Conditionals_post.h | 2 +- Marlin/src/inc/SanityCheck.h | 14 +++++++++----- 7 files changed, 21 insertions(+), 17 deletions(-) diff --git a/Marlin/Configuration.h b/Marlin/Configuration.h index 7f7931ae7..2b36f883c 100644 --- a/Marlin/Configuration.h +++ b/Marlin/Configuration.h @@ -330,7 +330,7 @@ //#define PSU_NAME "Power Supply" #if ENABLED(PSU_CONTROL) - #define PSU_ACTIVE_HIGH false // Set 'false' for ATX, 'true' for X-Box + #define PSU_ACTIVE_STATE LOW // Set 'LOW' for ATX, 'HIGH' for X-Box //#define PSU_DEFAULT_OFF // Keep power off until enabled directly with M80 //#define PSU_POWERUP_DELAY 250 // (ms) Delay for the PSU to warm up to full power diff --git a/Marlin/Configuration_adv.h b/Marlin/Configuration_adv.h index 529dcc309..b27d7c79e 100644 --- a/Marlin/Configuration_adv.h +++ b/Marlin/Configuration_adv.h @@ -2851,7 +2851,7 @@ //#define SPINDLE_FEATURE //#define LASER_FEATURE #if EITHER(SPINDLE_FEATURE, LASER_FEATURE) - #define SPINDLE_LASER_ACTIVE_HIGH false // Set to "true" if the on/off function is active HIGH + #define SPINDLE_LASER_ACTIVE_STATE LOW // Set to "HIGH" if the on/off function is active HIGH #define SPINDLE_LASER_PWM true // Set to "true" if your controller supports setting the speed/power #define SPINDLE_LASER_PWM_INVERT false // Set to "true" if the speed/power goes up when you want it to go slower diff --git a/Marlin/src/HAL/DUE/usb/arduino_due_x.h b/Marlin/src/HAL/DUE/usb/arduino_due_x.h index b5be62179..d3b333fb3 100644 --- a/Marlin/src/HAL/DUE/usb/arduino_due_x.h +++ b/Marlin/src/HAL/DUE/usb/arduino_due_x.h @@ -93,5 +93,5 @@ #define USB_VBOF_GPIO (PIO_PB10_IDX) #define USB_VBOF_FLAGS (PIO_PERIPH_A | PIO_DEFAULT) /*! Active level of the USB_VBOF output pin. */ -#define USB_VBOF_ACTIVE_LEVEL LOW +#define USB_VBOF_ACTIVE_STATE LOW /* ------------------------------------------------------------------------ */ diff --git a/Marlin/src/MarlinCore.h b/Marlin/src/MarlinCore.h index 81041c8ee..69afc7f30 100644 --- a/Marlin/src/MarlinCore.h +++ b/Marlin/src/MarlinCore.h @@ -89,8 +89,8 @@ extern bool wait_for_heatup; #if ENABLED(PSU_CONTROL) extern bool powersupply_on; - #define PSU_PIN_ON() do{ OUT_WRITE(PS_ON_PIN, PSU_ACTIVE_HIGH); powersupply_on = true; }while(0) - #define PSU_PIN_OFF() do{ OUT_WRITE(PS_ON_PIN, !PSU_ACTIVE_HIGH); powersupply_on = false; }while(0) + #define PSU_PIN_ON() do{ OUT_WRITE(PS_ON_PIN, PSU_ACTIVE_STATE); powersupply_on = true; }while(0) + #define PSU_PIN_OFF() do{ OUT_WRITE(PS_ON_PIN, !PSU_ACTIVE_STATE); powersupply_on = false; }while(0) #if ENABLED(AUTO_POWER_CONTROL) #define PSU_ON() powerManager.power_on() #define PSU_OFF() powerManager.power_off() diff --git a/Marlin/src/feature/spindle_laser.cpp b/Marlin/src/feature/spindle_laser.cpp index 9d2ee7d9e..bc387a933 100644 --- a/Marlin/src/feature/spindle_laser.cpp +++ b/Marlin/src/feature/spindle_laser.cpp @@ -37,7 +37,7 @@ cutter_power_t SpindleLaser::menuPower, // Power s SpindleLaser::unitPower; // LCD status power in PWM, PERCENT, or RPM #if ENABLED(MARLIN_DEV_MODE) - cutter_frequency_t SpindleLaser::frequency; // setting PWM frequency; range: 2K - 50K + cutter_frequency_t SpindleLaser::frequency; // PWM frequency setting; range: 2K - 50K #endif #define SPINDLE_LASER_PWM_OFF ((SPINDLE_LASER_PWM_INVERT) ? 255 : 0) @@ -45,13 +45,13 @@ cutter_power_t SpindleLaser::menuPower, // Power s // Init the cutter to a safe OFF state // void SpindleLaser::init() { - OUT_WRITE(SPINDLE_LASER_ENA_PIN, !SPINDLE_LASER_ACTIVE_HIGH); // Init spindle to off + OUT_WRITE(SPINDLE_LASER_ENA_PIN, !SPINDLE_LASER_ACTIVE_STATE); // Init spindle to off #if ENABLED(SPINDLE_CHANGE_DIR) OUT_WRITE(SPINDLE_DIR_PIN, SPINDLE_INVERT_DIR ? 255 : 0); // Init rotation to clockwise (M3) #endif #if ENABLED(SPINDLE_LASER_PWM) SET_PWM(SPINDLE_LASER_PWM_PIN); - analogWrite(pin_t(SPINDLE_LASER_PWM_PIN), SPINDLE_LASER_PWM_OFF); // set to lowest speed + analogWrite(pin_t(SPINDLE_LASER_PWM_PIN), SPINDLE_LASER_PWM_OFF); // Set to lowest speed #endif #if ENABLED(HAL_CAN_SET_PWM_FREQ) && defined(SPINDLE_LASER_FREQUENCY) set_pwm_frequency(pin_t(SPINDLE_LASER_PWM_PIN), SPINDLE_LASER_FREQUENCY); @@ -64,14 +64,14 @@ void SpindleLaser::init() { * Set the cutter PWM directly to the given ocr value */ void SpindleLaser::set_ocr(const uint8_t ocr) { - WRITE(SPINDLE_LASER_ENA_PIN, SPINDLE_LASER_ACTIVE_HIGH); // turn spindle on + WRITE(SPINDLE_LASER_ENA_PIN, SPINDLE_LASER_ACTIVE_STATE); // Turn spindle on analogWrite(pin_t(SPINDLE_LASER_PWM_PIN), ocr ^ SPINDLE_LASER_PWM_OFF); #if NEEDS_HARDWARE_PWM && SPINDLE_LASER_FREQUENCY set_pwm_duty(pin_t(SPINDLE_LASER_PWM_PIN), ocr ^ SPINDLE_LASER_PWM_OFF); #endif } void SpindleLaser::ocr_off() { - WRITE(SPINDLE_LASER_ENA_PIN, !SPINDLE_LASER_ACTIVE_HIGH); // Turn spindle off + WRITE(SPINDLE_LASER_ENA_PIN, !SPINDLE_LASER_ACTIVE_STATE); // Turn spindle off analogWrite(pin_t(SPINDLE_LASER_PWM_PIN), SPINDLE_LASER_PWM_OFF); // Only write low byte } #endif @@ -98,7 +98,7 @@ void SpindleLaser::apply_power(const uint8_t opwr) { isReady = false; } #else - WRITE(SPINDLE_LASER_ENA_PIN, enabled() == SPINDLE_LASER_ACTIVE_HIGH); + WRITE(SPINDLE_LASER_ENA_PIN, enabled() ? SPINDLE_LASER_ACTIVE_STATE : !SPINDLE_LASER_ACTIVE_STATE); isReady = true; #endif } diff --git a/Marlin/src/inc/Conditionals_post.h b/Marlin/src/inc/Conditionals_post.h index 5d7322753..f566643bd 100644 --- a/Marlin/src/inc/Conditionals_post.h +++ b/Marlin/src/inc/Conditionals_post.h @@ -403,7 +403,7 @@ #ifndef PSU_NAME #if DISABLED(PSU_CONTROL) #define PSU_NAME "Generic" // No control - #elif PSU_ACTIVE_HIGH + #elif PSU_ACTIVE_STATE #define PSU_NAME "XBox" // X-Box 360 (203W) #else #define PSU_NAME "ATX" // ATX style diff --git a/Marlin/src/inc/SanityCheck.h b/Marlin/src/inc/SanityCheck.h index 01243219c..ddefcc8b6 100644 --- a/Marlin/src/inc/SanityCheck.h +++ b/Marlin/src/inc/SanityCheck.h @@ -419,8 +419,10 @@ #error "SPINDLE_DIR_CHANGE is now SPINDLE_CHANGE_DIR. Please update your Configuration_adv.h." #elif defined(SPINDLE_STOP_ON_DIR_CHANGE) #error "SPINDLE_STOP_ON_DIR_CHANGE is now SPINDLE_CHANGE_DIR_STOP. Please update your Configuration_adv.h." +#elif defined(SPINDLE_LASER_ACTIVE_HIGH) + #error "SPINDLE_LASER_ACTIVE_HIGH is now SPINDLE_LASER_ACTIVE_STATE. Please update your Configuration_adv.h." #elif defined(SPINDLE_LASER_ENABLE_INVERT) - #error "SPINDLE_LASER_ENABLE_INVERT is now SPINDLE_LASER_ACTIVE_HIGH. Please update your Configuration_adv.h." + #error "SPINDLE_LASER_ENABLE_INVERT is now SPINDLE_LASER_ACTIVE_STATE. Please update your Configuration_adv.h." #elif defined(CUTTER_POWER_DISPLAY) #error "CUTTER_POWER_DISPLAY is now CUTTER_POWER_UNIT. Please update your Configuration_adv.h." #elif defined(CHAMBER_HEATER_PIN) @@ -441,10 +443,12 @@ #error "USB_SD_DISABLED is now NO_SD_HOST_DRIVE. Please update your Configuration_adv.h." #elif defined(USB_SD_ONBOARD) #error "USB_SD_ONBOARD is obsolete. Disable NO_SD_HOST_DRIVE instead." +#elif defined(PSU_ACTIVE_HIGH) + #error "PSU_ACTIVE_HIGH is now PSU_ACTIVE_STATE. Please update your configuration." #elif POWER_SUPPLY == 1 - #error "Replace POWER_SUPPLY 1 by enabling PSU_CONTROL and setting PSU_ACTIVE_HIGH to 'false'." + #error "Replace POWER_SUPPLY 1 by enabling PSU_CONTROL and setting PSU_ACTIVE_STATE to 'LOW'." #elif POWER_SUPPLY == 2 - #error "Replace POWER_SUPPLY 2 by enabling PSU_CONTROL and setting PSU_ACTIVE_HIGH to 'true'." + #error "Replace POWER_SUPPLY 2 by enabling PSU_CONTROL and setting PSU_ACTIVE_STATE to 'HIGH'." #elif defined(POWER_SUPPLY) #error "POWER_SUPPLY is now obsolete. Please remove it from Configuration.h." #elif defined(MKS_ROBIN_TFT) @@ -2923,8 +2927,8 @@ static_assert( _ARR_TEST(3,0) && _ARR_TEST(3,1) && _ARR_TEST(3,2) * Ensure this option is set intentionally */ #if ENABLED(PSU_CONTROL) - #ifndef PSU_ACTIVE_HIGH - #error "PSU_CONTROL requires PSU_ACTIVE_HIGH to be defined as 'true' or 'false'." + #ifndef PSU_ACTIVE_STATE + #error "PSU_CONTROL requires PSU_ACTIVE_STATE to be defined as 'HIGH' or 'LOW'." #elif !PIN_EXISTS(PS_ON) #error "PSU_CONTROL requires PS_ON_PIN." #endif From 563eda4b6b42746641f82c2c5020e80c71fb4fdd Mon Sep 17 00:00:00 2001 From: Steven Haigh Date: Sat, 22 Aug 2020 14:44:21 +1000 Subject: [PATCH 151/194] Translatable strings on Ender-3 V2 DWIN (#19053) Co-authored-by: Scott Lahteine --- Marlin/src/lcd/dwin/dwin.cpp | 392 +++++++++++++++++++---------------- Marlin/src/lcd/dwin/dwin.h | 8 +- 2 files changed, 218 insertions(+), 182 deletions(-) diff --git a/Marlin/src/lcd/dwin/dwin.cpp b/Marlin/src/lcd/dwin/dwin.cpp index e527c8dba..0d719542e 100644 --- a/Marlin/src/lcd/dwin/dwin.cpp +++ b/Marlin/src/lcd/dwin/dwin.cpp @@ -190,23 +190,23 @@ float last_zoffset = 0, last_probe_zoffset = 0; #define DWIN_LANGUAGE_EEPROM_ADDRESS 0x01 // Between 0x01 and 0x63 (EEPROM_OFFSET-1) // BL24CXX::check() uses 0x00 -void lcd_select_language(void) { - BL24CXX::read(DWIN_LANGUAGE_EEPROM_ADDRESS, (uint8_t*)&HMI_flag.language_flag, sizeof(HMI_flag.language_flag)); - if (HMI_flag.language_flag) +void HMI_SetLanguage(void) { + BL24CXX::read(DWIN_LANGUAGE_EEPROM_ADDRESS, (uint8_t*)&HMI_flag.language_chinese, sizeof(HMI_flag.language_chinese)); + if (HMI_flag.language_chinese) DWIN_JPG_CacheTo1(Language_Chinese); else DWIN_JPG_CacheTo1(Language_English); } -void set_english_to_eeprom(void) { - HMI_flag.language_flag = 0; +void HMI_SetAndSaveLanguageWestern(void) { + HMI_flag.language_chinese = false; DWIN_JPG_CacheTo1(Language_English); - BL24CXX::write(DWIN_LANGUAGE_EEPROM_ADDRESS, (uint8_t*)&HMI_flag.language_flag, sizeof(HMI_flag.language_flag)); + BL24CXX::write(DWIN_LANGUAGE_EEPROM_ADDRESS, (uint8_t*)&HMI_flag.language_chinese, sizeof(HMI_flag.language_chinese)); } -void set_chinese_to_eeprom(void) { - HMI_flag.language_flag = 1; +void HMI_SetAndSaveLanguageChinese(void) { + HMI_flag.language_chinese = true; DWIN_JPG_CacheTo1(Language_Chinese); - BL24CXX::write(DWIN_LANGUAGE_EEPROM_ADDRESS, (uint8_t*)&HMI_flag.language_flag, sizeof(HMI_flag.language_flag)); + BL24CXX::write(DWIN_LANGUAGE_EEPROM_ADDRESS, (uint8_t*)&HMI_flag.language_chinese, sizeof(HMI_flag.language_chinese)); } void show_plus_or_minus(uint8_t size, uint16_t bColor, uint8_t iNum, uint8_t fNum, uint16_t x, uint16_t y, long value) { @@ -223,14 +223,14 @@ void show_plus_or_minus(uint8_t size, uint16_t bColor, uint8_t iNum, uint8_t fNu void ICON_Print() { if (select_page.now == 0) { DWIN_ICON_Show(ICON, ICON_Print_1, 17, 130); - if (HMI_flag.language_flag) + if (HMI_flag.language_chinese) DWIN_Frame_AreaCopy(1, 1, 447, 271 - 243, 479 - 19, 58, 201); else DWIN_Frame_AreaCopy(1, 1, 451, 271 - 240, 479 - 16, 72 - 15, 201); } else { DWIN_ICON_Show(ICON, ICON_Print_0, 17, 130); - if (HMI_flag.language_flag) + if (HMI_flag.language_chinese) DWIN_Frame_AreaCopy(1, 1, 405, 271 - 243, 420, 58, 201); else DWIN_Frame_AreaCopy(1, 1, 423, 271 - 240, 423 + 12, 72 - 15, 201); @@ -240,14 +240,14 @@ void ICON_Print() { void ICON_Prepare() { if (select_page.now == 1) { DWIN_ICON_Show(ICON, ICON_Prepare_1, 145, 130); - if (HMI_flag.language_flag) + if (HMI_flag.language_chinese) DWIN_Frame_AreaCopy(1, 31, 447, 271 - 213, 479 - 19, 186, 201); else DWIN_Frame_AreaCopy(1, 33, 451, 271 - 189, 479 - 13, 200 - 25, 201); } else { DWIN_ICON_Show(ICON, ICON_Prepare_0, 145, 130); - if (HMI_flag.language_flag) + if (HMI_flag.language_chinese) DWIN_Frame_AreaCopy(1, 31, 405, 271 - 213, 420, 186, 201); else DWIN_Frame_AreaCopy(1, 33, 423, 271 - 189, 423 + 15, 200 - 25, 201); @@ -257,14 +257,14 @@ void ICON_Prepare() { void ICON_Control() { if (select_page.now == 2) { DWIN_ICON_Show(ICON, ICON_Control_1, 17, 246); - if (HMI_flag.language_flag) + if (HMI_flag.language_chinese) DWIN_Frame_AreaCopy(1, 61, 447, 271 - 183, 479 - 19, 58, 318); else DWIN_Frame_AreaCopy(1, 85, 451, 271 - 139, 479 - 16, 72 - 24, 318); } else { DWIN_ICON_Show(ICON, ICON_Control_0, 17, 246); - if (HMI_flag.language_flag) + if (HMI_flag.language_chinese) DWIN_Frame_AreaCopy(1, 61, 405, 271 - 183, 420, 58, 318); else DWIN_Frame_AreaCopy(1, 85, 423, 271 - 139, 479 - 45, 72 - 24, 318); @@ -274,14 +274,14 @@ void ICON_Control() { void ICON_StartInfo(bool show) { if (show) { DWIN_ICON_Show(ICON, ICON_Info_1, 145, 246); - if (HMI_flag.language_flag) + if (HMI_flag.language_chinese) DWIN_Frame_AreaCopy(1, 91, 447, 271 - 153, 479 - 19, 186, 318); else DWIN_Frame_AreaCopy(1, 132, 451, 159, 479 - 13, 186, 318); } else { DWIN_ICON_Show(ICON, ICON_Info_0, 145, 246); - if (HMI_flag.language_flag) + if (HMI_flag.language_chinese) DWIN_Frame_AreaCopy(1, 91, 405, 271 - 153, 420, 186, 318); else DWIN_Frame_AreaCopy(1, 132, 423, 159, 423 + 12, 186, 318); @@ -291,14 +291,14 @@ void ICON_StartInfo(bool show) { void ICON_Leveling(bool show) { if (show) { DWIN_ICON_Show(ICON, ICON_Leveling_1, 145, 246); - if (HMI_flag.language_flag) + if (HMI_flag.language_chinese) DWIN_Frame_AreaCopy(1, 211, 447, 238, 479 - 19, 186, 318); else DWIN_Frame_AreaCopy(1, 84, 437, 120, 449, 200 - 18, 318); } else { DWIN_ICON_Show(ICON, ICON_Leveling_0, 145, 246); - if (HMI_flag.language_flag) + if (HMI_flag.language_chinese) DWIN_Frame_AreaCopy(1, 211, 405, 238, 420, 186, 318); else DWIN_Frame_AreaCopy(1, 84, 465, 120, 478, 200 - 18, 318); @@ -308,14 +308,14 @@ void ICON_Leveling(bool show) { void ICON_Tune() { if (select_print.now == 0) { DWIN_ICON_Show(ICON, ICON_Setup_1, 8, 252); - if (HMI_flag.language_flag) + if (HMI_flag.language_chinese) DWIN_Frame_AreaCopy(1, 121, 447, 271 - 123, 479 - 21, 34, 325); else DWIN_Frame_AreaCopy(1, 1, 465, 271 - 237, 479 - 2, 48 - 17, 325); } else { DWIN_ICON_Show(ICON, ICON_Setup_0, 8, 252); - if (HMI_flag.language_flag) + if (HMI_flag.language_chinese) DWIN_Frame_AreaCopy(1, 121, 405, 271 - 123, 420, 34, 325); else DWIN_Frame_AreaCopy(1, 1, 438, 271 - 239, 479 - 31, 48 - 17, 325); @@ -325,14 +325,14 @@ void ICON_Tune() { void ICON_Pause() { if (select_print.now == 1) { DWIN_ICON_Show(ICON, ICON_Pause_1, 96, 252); - if (HMI_flag.language_flag) + if (HMI_flag.language_chinese) DWIN_Frame_AreaCopy(1, 181, 447, 271 - 63, 479 - 20, 124, 325); else DWIN_Frame_AreaCopy(1, 177, 451, 271 - 55, 479 - 17, 136 - 20, 325); } else { DWIN_ICON_Show(ICON, ICON_Pause_0, 96, 252); - if (HMI_flag.language_flag) + if (HMI_flag.language_chinese) DWIN_Frame_AreaCopy(1, 181, 405, 271 - 63, 420, 124, 325); else DWIN_Frame_AreaCopy(1, 177, 423, 271 - 56, 479 - 46, 136 - 20, 325); @@ -342,14 +342,14 @@ void ICON_Pause() { void ICON_Continue() { if (select_print.now == 1) { DWIN_ICON_Show(ICON, ICON_Continue_1, 96, 252); - if (HMI_flag.language_flag) + if (HMI_flag.language_chinese) DWIN_Frame_AreaCopy(1, 1, 447, 271 - 243, 479 - 19, 124, 325); else DWIN_Frame_AreaCopy(1, 1, 451, 271 - 239, 479 - 16, 136 - 15, 325); } else { DWIN_ICON_Show(ICON, ICON_Continue_0, 96, 252); - if (HMI_flag.language_flag) + if (HMI_flag.language_chinese) DWIN_Frame_AreaCopy(1, 1, 405, 271 - 243, 420, 124, 325); else DWIN_Frame_AreaCopy(1, 1, 424, 271 - 240, 479 - 45, 136 - 15, 325); @@ -359,14 +359,14 @@ void ICON_Continue() { void ICON_Stop() { if (select_print.now == 2) { DWIN_ICON_Show(ICON, ICON_Stop_1, 184, 252); - if (HMI_flag.language_flag) + if (HMI_flag.language_chinese) DWIN_Frame_AreaCopy(1, 151, 447, 271 - 93, 479 - 20, 210, 325); else DWIN_Frame_AreaCopy(1, 218, 451, 271 - 22, 479 - 14, 224 - 15, 325); } else { DWIN_ICON_Show(ICON, ICON_Stop_0, 184, 252); - if (HMI_flag.language_flag) + if (HMI_flag.language_chinese) DWIN_Frame_AreaCopy(1, 151, 405, 271 - 93, 420, 210, 325); else DWIN_Frame_AreaCopy(1, 218, 423, 271 - 24, 479 - 43, 224 - 15, 325); @@ -454,7 +454,7 @@ inline void Draw_Menu_Line(const uint8_t line, const uint8_t icon=0, const char // The "Back" label is always on the first line inline void Draw_Back_Label(void) { - if (HMI_flag.language_flag) + if (HMI_flag.language_chinese) DWIN_Frame_AreaCopy(1, 129, 72, 271 - 115, 479 - 395, LBLX, MBASE(0)); else DWIN_Frame_AreaCopy(1, 226, 179, 271 - 15, 479 - 290, LBLX, MBASE(0)); @@ -476,7 +476,7 @@ inline void draw_move_en(const uint16_t line) { } inline void Prepare_Item_Move(const uint8_t row) { - if (HMI_flag.language_flag) + if (HMI_flag.language_chinese) DWIN_Frame_AreaCopy(1, 159, 70, 271 - 71, 479 - 395, LBLX, MBASE(row)); else draw_move_en(MBASE(row)); // "Move >" @@ -485,7 +485,7 @@ inline void Prepare_Item_Move(const uint8_t row) { } inline void Prepare_Item_Disable(const uint8_t row) { - if (HMI_flag.language_flag) + if (HMI_flag.language_chinese) DWIN_Frame_AreaCopy(1, 204, 70, 271 - 12, 479 - 397, LBLX, MBASE(row)); else DWIN_Frame_AreaCopy(1, 103, 59, 271 - 71, 479 - 405, LBLX, MBASE(row)); // "Disable Stepper" @@ -493,7 +493,7 @@ inline void Prepare_Item_Disable(const uint8_t row) { } inline void Prepare_Item_Home(const uint8_t row) { - if (HMI_flag.language_flag) + if (HMI_flag.language_chinese) DWIN_Frame_AreaCopy(1, 0, 89, 271 - 230, 479 - 378, LBLX, MBASE(row)); else DWIN_Frame_AreaCopy(1, 202, 61, 271 - 0, 479 - 408, LBLX, MBASE(row)); // "Auto Home" @@ -501,7 +501,7 @@ inline void Prepare_Item_Home(const uint8_t row) { } inline void Prepare_Item_Offset(const uint8_t row) { - if (HMI_flag.language_flag) { + if (HMI_flag.language_chinese) { #if HAS_BED_PROBE DWIN_Frame_AreaCopy(1, 174, 164, 271 - 48, 479 - 302, LBLX, MBASE(row)); show_plus_or_minus(font8x16, Background_black, 2, 2, 202, MBASE(row), probe.offset.z * 100); @@ -521,7 +521,7 @@ inline void Prepare_Item_Offset(const uint8_t row) { } inline void Prepare_Item_PLA(const uint8_t row) { - if (HMI_flag.language_flag) { + if (HMI_flag.language_chinese) { DWIN_Frame_AreaCopy(1, 100, 89, 271 - 93 - 27, 479 - 378, LBLX, MBASE(row)); } else { @@ -532,7 +532,7 @@ inline void Prepare_Item_PLA(const uint8_t row) { } inline void Prepare_Item_ABS(const uint8_t row) { - if (HMI_flag.language_flag) { + if (HMI_flag.language_chinese) { DWIN_Frame_AreaCopy(1, 180, 89, 271 - 11 - 27, 479 - 379, LBLX, MBASE(row)); } else { @@ -543,7 +543,7 @@ inline void Prepare_Item_ABS(const uint8_t row) { } inline void Prepare_Item_Cool(const uint8_t row) { - if (HMI_flag.language_flag) + if (HMI_flag.language_chinese) DWIN_Frame_AreaCopy(1, 1, 104, 271 - 215, 479 - 362, LBLX, MBASE(row)); else DWIN_Frame_AreaCopy(1, 200, 76, 271 - 7, 479 - 393, LBLX, MBASE(row));// "Cooldown" @@ -551,7 +551,7 @@ inline void Prepare_Item_Cool(const uint8_t row) { } inline void Prepare_Item_Lang(const uint8_t row) { - if (HMI_flag.language_flag) { + if (HMI_flag.language_chinese) { DWIN_Frame_AreaCopy(1, 239, 134, 271 - 5, 479 - 333, LBLX, MBASE(row)); DWIN_Draw_String(false, false, font8x16, White, Background_black, 226, MBASE(row), (char*)"CN"); } @@ -569,7 +569,7 @@ inline void Draw_Prepare_Menu() { #define PSCROL(L) (scroll + (L)) #define PVISI(L) WITHIN(PSCROL(L), 0, MROWS) - if (HMI_flag.language_flag) { + if (HMI_flag.language_chinese) { DWIN_Frame_AreaCopy(1, 133, 1, 271 - 111, 479 - 465 - 1, 14, 8); // "Prepare" } else { @@ -604,7 +604,7 @@ inline void Draw_Control_Menu() { if (CVISI(0)) Draw_Back_First(select_control.now == 0); // < Back - if (HMI_flag.language_flag) { + if (HMI_flag.language_chinese) { DWIN_Frame_AreaCopy(1, 103, 1, 271 - 141, 479 - 465, 14, 8); DWIN_Frame_AreaCopy(1, 57, 104, 271 - 187, 479 - 363, LBLX, CLINE(1)); // Temperature > DWIN_Frame_AreaCopy(1, 87, 104, 271 - 157, 479 - 363, LBLX, CLINE(2)); // Motion > @@ -618,22 +618,25 @@ inline void Draw_Control_Menu() { else { #ifdef USE_STRING_HEADINGS Draw_Title(GET_TEXT_F(MSG_CONTROL)); + DWIN_Draw_String(false, true, font8x16, White, Background_black, 60, 102 + (MLINE * 0), (char*)GET_TEXT_F(MSG_TEMPERATURE)); + DWIN_Draw_String(false, true, font8x16, White, Background_black, 60, 102 + (MLINE * 1), (char*)GET_TEXT_F(MSG_MOTION)); + DWIN_Draw_String(false, true, font8x16, White, Background_black, 60, 102 + (MLINE * 2), (char*)GET_TEXT_F(MSG_STORE_EEPROM)); + DWIN_Draw_String(false, true, font8x16, White, Background_black, 60, 102 + (MLINE * 3), (char*)GET_TEXT_F(MSG_LOAD_EEPROM)); + DWIN_Draw_String(false, true, font8x16, White, Background_black, 60, 102 + (MLINE * 4), (char*)GET_TEXT_F(MSG_RESTORE_DEFAULTS)); + if (CVISI(6)) + DWIN_Draw_String(false, true, font8x16, White, Background_black, 60, 102 + (MLINE * 5), (char*)"Info"); #else DWIN_Frame_AreaCopy(1, 128, 2, 271 - 95, 479 - 467, 14, 8); + DWIN_Frame_AreaCopy(1, 1, 89, 271 - 188, 479 - 377 - 1, LBLX, CLINE(1));// Temperature > + DWIN_Frame_AreaCopy(1, 84, 89, 271 - 143, 479 - 380, LBLX, CLINE(2));// Motion > + DWIN_Frame_AreaCopy(1, 131 + 17, 89, 271 - 3, 479 - 377 - 1, LBLX, CLINE(3));// "Store Configuration" + DWIN_Frame_AreaCopy(1, 26, 104, 271 - 214, 479 - 365, LBLX, CLINE(4)); // "Read" + DWIN_Frame_AreaCopy(1, 131 + 51, 89, 271 - 3, 479 - 377 - 1, LBLX + 31 + 3, CLINE(4)); // "Configuration" + DWIN_Frame_AreaCopy(1, 59, 104, 271 - 178, 479 - 365, LBLX, CLINE(5)); // "Reset" + DWIN_Frame_AreaCopy(1, 131 + 51, 89, 271 - 3, 479 - 377 - 1, LBLX + 34 + 3, CLINE(5)); // "Configuration" + if (CVISI(6)) + DWIN_Frame_AreaCopy(1, 0, 104, 25, 115, LBLX, CLINE(6)); // Info > #endif - - DWIN_Frame_AreaCopy(1, 1, 89, 271 - 188, 479 - 377 - 1, LBLX, CLINE(1));// Temperature > - DWIN_Frame_AreaCopy(1, 84, 89, 271 - 143, 479 - 380, LBLX, CLINE(2));// Motion > - DWIN_Frame_AreaCopy(1, 131 + 17, 89, 271 - 3, 479 - 377 - 1, LBLX, CLINE(3));// "Store Configuration" - - DWIN_Frame_AreaCopy(1, 26, 104, 271 - 214, 479 - 365, LBLX, CLINE(4)); // "Read" - DWIN_Frame_AreaCopy(1, 131 + 51, 89, 271 - 3, 479 - 377 - 1, LBLX + 31 + 3, CLINE(4)); // "Configuration" - - DWIN_Frame_AreaCopy(1, 59, 104, 271 - 178, 479 - 365, LBLX, CLINE(5)); // "Reset" - DWIN_Frame_AreaCopy(1, 131 + 51, 89, 271 - 3, 479 - 377 - 1, LBLX + 34 + 3, CLINE(5)); // "Configuration" - - if (CVISI(6)) - DWIN_Frame_AreaCopy(1, 0, 104, 25, 115, LBLX, CLINE(6)); // Info > } if (select_control.now && CVISI(select_control.now)) @@ -651,9 +654,8 @@ inline void Draw_Control_Menu() { inline void Draw_Tune_Menu() { Clear_Main_Window(); - if (HMI_flag.language_flag) { + if (HMI_flag.language_chinese) { DWIN_Frame_AreaCopy(1, 73, 2, 271 - 171, 479 - 466, 14, 9); - DWIN_Frame_AreaCopy(1, 116, 164, 271 - 100, 479 - 303, LBLX, MBASE(1)); DWIN_Frame_AreaCopy(1, 1, 134, 271 - 215, 479 - 333, LBLX, MBASE(2)); DWIN_Frame_AreaCopy(1, 58, 134, 271 - 158, 479 - 333, LBLX, MBASE(3)); @@ -663,16 +665,21 @@ inline void Draw_Tune_Menu() { else { #ifdef USE_STRING_HEADINGS Draw_Title(GET_TEXT_F(MSG_TUNE)); + DWIN_Draw_String(false, true, font8x16, White, Background_black, 60, 102 + (MLINE * 0), (char*)GET_TEXT_F(MSG_SPEED)); + DWIN_Draw_String(false, true, font8x16, White, Background_black, 60, 102 + (MLINE * 1), (char*)GET_TEXT_F(MSG_UBL_SET_TEMP_HOTEND)); + DWIN_Draw_String(false, true, font8x16, White, Background_black, 60, 102 + (MLINE * 2), (char*)GET_TEXT_F(MSG_UBL_SET_TEMP_BED)); + DWIN_Draw_String(false, true, font8x16, White, Background_black, 60, 102 + (MLINE * 3), (char*)GET_TEXT_F(MSG_FAN_SPEED)); + DWIN_Draw_String(false, true, font8x16, White, Background_black, 60, 102 + (MLINE * 4), (char*)GET_TEXT_F(MSG_ZPROBE_ZOFFSET)); #else DWIN_Frame_AreaCopy(1, 94, 2, 271 - 145, 479 - 467, 14, 9); + DWIN_Frame_AreaCopy(1, 1, 179, 271 - 179, 479 - 287 - 2, LBLX, MBASE(1)); // print speed + DWIN_Frame_AreaCopy(1, 197, 104, 271 - 33, 479 - 365, LBLX, MBASE(2)); // Hotend... + DWIN_Frame_AreaCopy(1, 1, 89, 271 - 188, 479 - 377 - 1, LBLX + 41 + 3, MBASE(2)); // ...Temperature + DWIN_Frame_AreaCopy(1, 240, 104, 271 - 7, 479 - 365, LBLX, MBASE(3)); // Bed... + DWIN_Frame_AreaCopy(1, 1, 89, 271 - 188, 479 - 377 - 1, LBLX + 24 + 3, MBASE(3)); // ...Temperature + DWIN_Frame_AreaCopy(1, 0, 119, 271 - 207, 479 - 347, LBLX, MBASE(4)); // fan speed + DWIN_Frame_AreaCopy(1, 93, 179, 271 - 130, 479 - 290, LBLX, MBASE(5)); // Z-offset #endif - DWIN_Frame_AreaCopy(1, 1, 179, 271 - 179, 479 - 287 - 2, LBLX, MBASE(1)); // print speed - DWIN_Frame_AreaCopy(1, 197, 104, 271 - 33, 479 - 365, LBLX, MBASE(2)); // Hotend... - DWIN_Frame_AreaCopy(1, 1, 89, 271 - 188, 479 - 377 - 1, LBLX + 41 + 3, MBASE(2)); // ...Temperature - DWIN_Frame_AreaCopy(1, 240, 104, 271 - 7, 479 - 365, LBLX, MBASE(3)); // Bed... - DWIN_Frame_AreaCopy(1, 1, 89, 271 - 188, 479 - 377 - 1, LBLX + 24 + 3, MBASE(3)); // ...Temperature - DWIN_Frame_AreaCopy(1, 0, 119, 271 - 207, 479 - 347, LBLX, MBASE(4)); // fan speed - DWIN_Frame_AreaCopy(1, 93, 179, 271 - 130, 479 - 290, LBLX, MBASE(5)); // Z-offset } Draw_Back_First(select_tune.now == 0); @@ -723,7 +730,7 @@ inline void say_e(const uint16_t inset, const uint16_t line) { inline void Draw_Motion_Menu() { Clear_Main_Window(); - if (HMI_flag.language_flag) { + if (HMI_flag.language_chinese) { DWIN_Frame_AreaCopy(1, 1, 16, 271 - 243, 479 - 451, 14, 8); DWIN_Frame_AreaCopy(1, 173, 133, 228, 479 - 332, LBLX, MBASE(1)); // max speed @@ -737,13 +744,17 @@ inline void Draw_Motion_Menu() { else { #ifdef USE_STRING_HEADINGS Draw_Title(GET_TEXT_F(MSG_MOTION)); + DWIN_Draw_String(false, true, font8x16, White, Background_black, 60, 102 + (MLINE * 0), (char*)"Feedrate"); + DWIN_Draw_String(false, true, font8x16, White, Background_black, 60, 102 + (MLINE * 1), (char*)GET_TEXT_F(MSG_ACCELERATION)); + DWIN_Draw_String(false, true, font8x16, White, Background_black, 60, 102 + (MLINE * 2), (char*)GET_TEXT_F(MSG_JERK)); + DWIN_Draw_String(false, true, font8x16, White, Background_black, 60, 102 + (MLINE * 3), (char*)GET_TEXT_F(MSG_STEPS_PER_MM)); #else DWIN_Frame_AreaCopy(1, 144, 16, 271 - 82, 479 - 453, 14, 8); + draw_max_en(MBASE(1)); draw_speed_en(24 + 3, MBASE(1)); // "Max Speed" + draw_max_accel_en(MBASE(2)); // "Max Acceleration" + draw_max_en(MBASE(3)); draw_corner_en(MBASE(3)); // "Max Corner" + draw_steps_per_mm(MBASE(4)); // "Steps-per-mm" #endif - draw_max_en(MBASE(1)); draw_speed_en(24 + 3, MBASE(1)); // "Max Speed" - draw_max_accel_en(MBASE(2)); // "Max Acceleration" - draw_max_en(MBASE(3)); draw_corner_en(MBASE(3)); // "Max Corner" - draw_steps_per_mm(MBASE(4)); // "Steps-per-mm" } Draw_Back_First(select_motion.now == 0); @@ -766,7 +777,7 @@ void Popup_Window_Temperature(const bool toohigh) { Draw_Popup_Bkgd_105(); if (toohigh) { DWIN_ICON_Show(ICON, ICON_TempTooHigh, 102, 165); - if (HMI_flag.language_flag) { + if (HMI_flag.language_chinese) { DWIN_Frame_AreaCopy(1, 103, 371, 237, 479 - 93, 52, 285); DWIN_Frame_AreaCopy(1, 151, 389, 185, 402, 187, 285); DWIN_Frame_AreaCopy(1, 189, 389, 271 - 0, 402, 95, 310); @@ -778,7 +789,7 @@ void Popup_Window_Temperature(const bool toohigh) { } else { DWIN_ICON_Show(ICON, ICON_TempTooLow, 102, 165); - if (HMI_flag.language_flag) { + if (HMI_flag.language_chinese) { DWIN_Frame_AreaCopy(1, 103, 371, 271 - 1, 479 - 93, 52, 285); DWIN_Frame_AreaCopy(1, 189, 389, 271 - 0, 402, 95, 310); } @@ -799,7 +810,7 @@ inline void Draw_Popup_Bkgd_60() { Clear_Main_Window(); Draw_Popup_Bkgd_60(); DWIN_ICON_Show(ICON, ICON_TempTooLow, 102, 105); - if (HMI_flag.language_flag) { + if (HMI_flag.language_chinese) { DWIN_Frame_AreaCopy(1, 103, 371, 136, 479 - 93, 69, 240); DWIN_Frame_AreaCopy(1, 170, 371, 271 - 1, 479 - 93, 69 + 33, 240); DWIN_ICON_Show(ICON, ICON_Confirm_C, 86, 280); @@ -815,7 +826,7 @@ inline void Draw_Popup_Bkgd_60() { void Popup_Window_Resume(void) { Clear_Popup_Area(); Draw_Popup_Bkgd_105(); - if (HMI_flag.language_flag) { + if (HMI_flag.language_chinese) { DWIN_Frame_AreaCopy(1, 160, 338, 271 - 36, 479 - 125, 98, 135); DWIN_Frame_AreaCopy(1, 103, 321, 271 - 0, 479 - 144, 52, 192); DWIN_ICON_Show(ICON, ICON_Continue_C, 26, 307); @@ -834,13 +845,13 @@ void Popup_Window_Home(void) { Clear_Main_Window(); Draw_Popup_Bkgd_60(); DWIN_ICON_Show(ICON, ICON_BLTouch, 101, 105); - if (HMI_flag.language_flag) { + if (HMI_flag.language_chinese) { DWIN_Frame_AreaCopy(1, 0, 371, 33, 386, 85, 240); DWIN_Frame_AreaCopy(1, 203, 286, 271, 302, 118, 240); DWIN_Frame_AreaCopy(1, 0, 389, 150, 402, 61, 280); } else { - DWIN_Draw_String(false, true, font8x16, Font_window, Background_window, 80, 230, (char*)"Auto homing..."); + DWIN_Draw_String(false, true, font8x16, Font_window, Background_window, 80, 230, (char*)GET_TEXT_F(MSG_LEVEL_BED_HOMING)); DWIN_Draw_String(false, true, font8x16, Font_window, Background_window, 24, 260, (char*)"Please wait until completed"); } } @@ -849,12 +860,12 @@ void Popup_Window_Leveling(void) { Clear_Main_Window(); Draw_Popup_Bkgd_60(); DWIN_ICON_Show(ICON, ICON_AutoLeveling, 101, 105); - if (HMI_flag.language_flag) { + if (HMI_flag.language_chinese) { DWIN_Frame_AreaCopy(1, 0, 371, 100, 386, 84, 240); DWIN_Frame_AreaCopy(1, 0, 389, 150, 402, 61, 280); } else { - DWIN_Draw_String(false, true, font8x16, Font_window, Background_window, 76, 230, (char*)"Auto leveling..."); + DWIN_Draw_String(false, true, font8x16, Font_window, Background_window, 76, 230, (char*)GET_TEXT_F(MSG_BED_LEVELING)); DWIN_Draw_String(false, true, font8x16, Font_window, Background_window, 24, 260, (char*)"Please wait until completed"); } } @@ -872,7 +883,7 @@ void Draw_Select_Highlight(const bool sel) { void Popup_window_PauseOrStop(void) { Clear_Main_Window(); Draw_Popup_Bkgd_60(); - if (HMI_flag.language_flag) { + if (HMI_flag.language_chinese) { if (select_print.now == 1) DWIN_Frame_AreaCopy(1, 237, 338, 269, 356, 98, 150); else if (select_print.now == 2) DWIN_Frame_AreaCopy(1, 221, 320, 253, 336, 98, 150); DWIN_Frame_AreaCopy(1, 220, 304, 264, 319, 130, 150); @@ -880,8 +891,8 @@ void Popup_window_PauseOrStop(void) { DWIN_ICON_Show(ICON, ICON_Cancel_C, 146, 280); } else { - if (select_print.now == 1) DWIN_Draw_String(false, true, font8x16, Font_window, Background_window, 88, 150, (char*)"Pause print?"); - else if (select_print.now == 2) DWIN_Draw_String(false, true, font8x16, Font_window, Background_window, 92, 150, (char*)"Stop print?"); + if (select_print.now == 1) DWIN_Draw_String(false, true, font8x16, Font_window, Background_window, 88, 150, (char*)GET_TEXT_F(MSG_PAUSE_PRINT)); + else if (select_print.now == 2) DWIN_Draw_String(false, true, font8x16, Font_window, Background_window, 92, 150, (char*)GET_TEXT_F(MSG_STOP_PRINT)); DWIN_ICON_Show(ICON, ICON_Confirm_E, 26, 280); DWIN_ICON_Show(ICON, ICON_Cancel_E, 146, 280); } @@ -889,7 +900,7 @@ void Popup_window_PauseOrStop(void) { } void Draw_Printing_Screen(void) { - if (HMI_flag.language_flag) { + if (HMI_flag.language_chinese) { DWIN_Frame_AreaCopy(1, 30, 1, 271 - 200, 479 - 465, 14, 9);// Tune DWIN_Frame_AreaCopy(1, 0, 72, 271 - 208, 479 - 393, 41, 188);// Pause DWIN_Frame_AreaCopy(1, 65, 72, 271 - 143, 479 - 393, 176, 188); // Stop @@ -949,7 +960,7 @@ void Goto_MainMenu(void) { Clear_Main_Window(); - if (HMI_flag.language_flag) { + if (HMI_flag.language_chinese) { DWIN_Frame_AreaCopy(1, 2, 2, 271 - 244, 479 - 465, 14, 9); // "Home" } else { @@ -1715,7 +1726,7 @@ inline void Draw_Info_Menu() { DWIN_Draw_String(false, false, font8x16, White, Background_black, (DWIN_WIDTH - strlen(MACHINE_SIZE) * MENU_CHR_W) / 2, 122, (char*)MACHINE_SIZE); DWIN_Draw_String(false, false, font8x16, White, Background_black, (DWIN_WIDTH - strlen(SHORT_BUILD_VERSION) * MENU_CHR_W) / 2, 195, (char*)SHORT_BUILD_VERSION); - if (HMI_flag.language_flag) { + if (HMI_flag.language_chinese) { DWIN_Frame_AreaCopy(1, 30, 17, 271 - 214, 479 - 450, 14, 8); DWIN_Frame_AreaCopy(1, 197, 149, 271 - 19, 479 - 318, 108, 102); @@ -1746,7 +1757,7 @@ inline void Draw_Info_Menu() { inline void Draw_Print_File_Menu() { Clear_Title_Bar(); - if (HMI_flag.language_flag) { + if (HMI_flag.language_chinese) { DWIN_Frame_AreaCopy(1, 0, 31, 271 - 216, 479 - 435, 14, 8); } else { @@ -2093,7 +2104,7 @@ void HMI_PauseOrStop(void) { inline void Draw_Move_Menu() { Clear_Main_Window(); - if (HMI_flag.language_flag) { + if (HMI_flag.language_chinese) { DWIN_Frame_AreaCopy(1, 192, 1, 271 - 38, 479 - 465, 14, 8); DWIN_Frame_AreaCopy(1, 58, 118, 271 - 165, 479 - 347, LBLX, MBASE(1)); DWIN_Frame_AreaCopy(1, 109, 118, 271 - 114, 479 - 347, LBLX, MBASE(2)); @@ -2239,13 +2250,13 @@ void HMI_Prepare(void) { break; case 8: // language /* select language */ - HMI_flag.language_flag = !HMI_flag.language_flag; - if (HMI_flag.language_flag) { - set_chinese_to_eeprom(); + HMI_flag.language_chinese ^= true; + if (HMI_flag.language_chinese) { + HMI_SetAndSaveLanguageChinese(); DWIN_JPG_CacheTo1(Language_Chinese); } else { - set_english_to_eeprom(); + HMI_SetAndSaveLanguageWestern(); DWIN_JPG_CacheTo1(Language_English); } Draw_Prepare_Menu(); @@ -2260,7 +2271,7 @@ void HMI_Prepare(void) { void Draw_Temperature_Menu() { Clear_Main_Window(); - if (HMI_flag.language_flag) { + if (HMI_flag.language_chinese) { DWIN_Frame_AreaCopy(1, 236, 2, 271 - 8, 479 - 466, 14, 8); DWIN_Frame_AreaCopy(1, 1, 134, 271 - 215, 479 - 333, LBLX, MBASE(1)); @@ -2272,21 +2283,25 @@ void Draw_Temperature_Menu() { else { #ifdef USE_STRING_HEADINGS Draw_Title(GET_TEXT_F(MSG_TEMPERATURE)); + DWIN_Draw_String(false, true, font8x16, White, Background_black, 60, 102 + (MLINE * 0), (char*)GET_TEXT_F(MSG_UBL_SET_TEMP_HOTEND)); + DWIN_Draw_String(false, true, font8x16, White, Background_black, 60, 102 + (MLINE * 1), (char*)GET_TEXT_F(MSG_UBL_SET_TEMP_BED)); + DWIN_Draw_String(false, true, font8x16, White, Background_black, 60, 102 + (MLINE * 2), (char*)GET_TEXT_F(MSG_FAN_SPEED)); + DWIN_Draw_String(false, true, font8x16, White, Background_black, 60, 102 + (MLINE * 3), (char*)"PLA Preheat Settings"); + DWIN_Draw_String(false, true, font8x16, White, Background_black, 60, 102 + (MLINE * 4), (char*)"ABS Preheat Settings"); #else DWIN_Frame_AreaCopy(1, 56, 16, 271 - 130, 479 - 450 - 1, 14, 8); + DWIN_Frame_AreaCopy(1, 197, 104, 271 - 33, 479 - 365, LBLX, MBASE(1)); // Nozzle... + DWIN_Frame_AreaCopy(1, 1, 89, 271 - 188, 479 - 377 - 1, LBLX + 41 + 3, MBASE(1)); // ...Temperature + DWIN_Frame_AreaCopy(1, 240, 104, 271 - 7, 479 - 365, LBLX, MBASE(2)); // Bed... + DWIN_Frame_AreaCopy(1, 1, 89, 271 - 188, 479 - 377 - 1, LBLX + 24 + 3, MBASE(2)); // ...Temperature + DWIN_Frame_AreaCopy(1, 0, 119, 271 - 207, 479 - 347, LBLX, MBASE(3)); // Fan speed + DWIN_Frame_AreaCopy(1, 107, 76, 271 - 115, 479 - 393, LBLX, MBASE(4)); // Preheat... + DWIN_Frame_AreaCopy(1, 157, 76, 181, 479 - 393, LBLX + 49 + 3, MBASE(4)); // ...PLA + DWIN_Frame_AreaCopy(1, 131, 119, 271 - 89, 479 - 347, LBLX + 49 + 24 + 6, MBASE(4)); // PLA setting + DWIN_Frame_AreaCopy(1, 107, 76, 271 - 115, 479 - 393, LBLX, MBASE(5)); // Preheat... + DWIN_Frame_AreaCopy(1, 172, 76, 198, 479 - 393, LBLX + 49 + 3, MBASE(5)); // ...ABS + DWIN_Frame_AreaCopy(1, 131, 119, 271 - 89, 479 - 347, LBLX + 49 + 3 + 26 + 3, MBASE(5)); // ABS setting #endif - - DWIN_Frame_AreaCopy(1, 197, 104, 271 - 33, 479 - 365, LBLX, MBASE(1)); // Nozzle... - DWIN_Frame_AreaCopy(1, 1, 89, 271 - 188, 479 - 377 - 1, LBLX + 41 + 3, MBASE(1)); // ...Temperature - DWIN_Frame_AreaCopy(1, 240, 104, 271 - 7, 479 - 365, LBLX, MBASE(2)); // Bed... - DWIN_Frame_AreaCopy(1, 1, 89, 271 - 188, 479 - 377 - 1, LBLX + 24 + 3, MBASE(2)); // ...Temperature - DWIN_Frame_AreaCopy(1, 0, 119, 271 - 207, 479 - 347, LBLX, MBASE(3)); // Fan speed - DWIN_Frame_AreaCopy(1, 107, 76, 271 - 115, 479 - 393, LBLX, MBASE(4)); // Preheat... - DWIN_Frame_AreaCopy(1, 157, 76, 181, 479 - 393, LBLX + 49 + 3, MBASE(4)); // ...PLA - DWIN_Frame_AreaCopy(1, 131, 119, 271 - 89, 479 - 347, LBLX + 49 + 24 + 6, MBASE(4)); // PLA setting - DWIN_Frame_AreaCopy(1, 107, 76, 271 - 115, 479 - 393, LBLX, MBASE(5)); // Preheat... - DWIN_Frame_AreaCopy(1, 172, 76, 198, 479 - 393, LBLX + 49 + 3, MBASE(5)); // ...ABS - DWIN_Frame_AreaCopy(1, 131, 119, 271 - 89, 479 - 347, LBLX + 49 + 3 + 26 + 3, MBASE(5)); // ABS setting } Draw_Back_First(select_temp.now == 0); @@ -2319,7 +2334,7 @@ void HMI_Control(void) { Draw_More_Icon(2 + MROWS - index_control); // Motion > if (index_control > MROWS) { Draw_More_Icon(6 + MROWS - index_control); // Info > - if (HMI_flag.language_flag) + if (HMI_flag.language_chinese) DWIN_Frame_AreaCopy(1, 231, 104, 271 - 13, 479 - 363, LBLX, MBASE(5)); else DWIN_Frame_AreaCopy(1, 0, 104, 271 - 247, 479 - 365, LBLX, MBASE(5)); @@ -2523,7 +2538,7 @@ void HMI_Temperature(void) { Clear_Main_Window(); - if (HMI_flag.language_flag) { + if (HMI_flag.language_chinese) { DWIN_Frame_AreaCopy(1, 59, 16, 271 - 132, 479 - 450, 14, 8); DWIN_Frame_AreaCopy(1, 100, 89, 124, 479 - 378, LBLX, MBASE(1)); @@ -2537,19 +2552,22 @@ void HMI_Temperature(void) { else { #ifdef USE_STRING_HEADINGS Draw_Title("PLA Settings"); // TODO: GET_TEXT_F + DWIN_Draw_String(false, true, font8x16, White, Background_black, 60, 102 + (MLINE * 0), (char*)"Nozzle Temp"); + DWIN_Draw_String(false, true, font8x16, White, Background_black, 60, 102 + (MLINE * 1), (char*)"Bed Temp"); + DWIN_Draw_String(false, true, font8x16, White, Background_black, 60, 102 + (MLINE * 2), (char*)GET_TEXT_F(MSG_FAN_SPEED)); + DWIN_Draw_String(false, true, font8x16, White, Background_black, 60, 102 + (MLINE * 3), (char*)GET_TEXT_F(MSG_STORE_EEPROM)); #else DWIN_Frame_AreaCopy(1, 56, 16, 271 - 130, 479 - 450 - 1, 14, 8); + DWIN_Frame_AreaCopy(1, 157, 76, 181, 479 - 393, LBLX, MBASE(1)); + DWIN_Frame_AreaCopy(1, 197, 104, 271 - 33, 479 - 365, LBLX + 24 + 3, MBASE(1)); + DWIN_Frame_AreaCopy(1, 1, 89, 271 - 188, 479 - 377 - 1, LBLX + 24 + 41 + 6, MBASE(1)); // PLA nozzle temp + DWIN_Frame_AreaCopy(1, 157, 76, 181, 479 - 393, LBLX, MBASE(2) + 3); + DWIN_Frame_AreaCopy(1, 240, 104, 271 - 7, 479 - 365, LBLX + 24 + 3, MBASE(2) + 3); + DWIN_Frame_AreaCopy(1, 1, 89, 271 - 188, 479 - 377 - 1, LBLX + 24 + 24 + 6, MBASE(2) + 3); // PLA bed temp + DWIN_Frame_AreaCopy(1, 157, 76, 181, 479 - 393, LBLX, MBASE(3)); + DWIN_Frame_AreaCopy(1, 0, 119, 271 - 207, 479 - 347, LBLX + 24 + 3, MBASE(3)); // PLA fan speed + DWIN_Frame_AreaCopy(1, 97, 165, 271 - 42, 479 - 301 - 1, LBLX, MBASE(4)); // save PLA configuration #endif - - DWIN_Frame_AreaCopy(1, 157, 76, 181, 479 - 393, LBLX, MBASE(1)); - DWIN_Frame_AreaCopy(1, 197, 104, 271 - 33, 479 - 365, LBLX + 24 + 3, MBASE(1)); - DWIN_Frame_AreaCopy(1, 1, 89, 271 - 188, 479 - 377 - 1, LBLX + 24 + 41 + 6, MBASE(1)); // PLA nozzle temp - DWIN_Frame_AreaCopy(1, 157, 76, 181, 479 - 393, LBLX, MBASE(2) + 3); - DWIN_Frame_AreaCopy(1, 240, 104, 271 - 7, 479 - 365, LBLX + 24 + 3, MBASE(2) + 3); - DWIN_Frame_AreaCopy(1, 1, 89, 271 - 188, 479 - 377 - 1, LBLX + 24 + 24 + 6, MBASE(2) + 3); // PLA bed temp - DWIN_Frame_AreaCopy(1, 157, 76, 181, 479 - 393, LBLX, MBASE(3)); - DWIN_Frame_AreaCopy(1, 0, 119, 271 - 207, 479 - 347, LBLX + 24 + 3, MBASE(3)); // PLA fan speed - DWIN_Frame_AreaCopy(1, 97, 165, 271 - 42, 479 - 301 - 1, LBLX, MBASE(4)); // save PLA configuration } Draw_Back_First(); @@ -2572,7 +2590,7 @@ void HMI_Temperature(void) { Clear_Main_Window(); - if (HMI_flag.language_flag) { + if (HMI_flag.language_chinese) { DWIN_Frame_AreaCopy(1, 142, 16, 271 - 48, 479 - 450, 14, 8); DWIN_Frame_AreaCopy(1, 180, 89, 204, 479 - 379, LBLX, MBASE(1)); @@ -2587,20 +2605,23 @@ void HMI_Temperature(void) { else { #ifdef USE_STRING_HEADINGS Draw_Title("ABS Settings"); // TODO: GET_TEXT_F + DWIN_Draw_String(false, true, font8x16, White, Background_black, 60, 102 + (MLINE * 0), (char*)"Nozzle Temp"); + DWIN_Draw_String(false, true, font8x16, White, Background_black, 60, 102 + (MLINE * 1), (char*)"Bed Temp"); + DWIN_Draw_String(false, true, font8x16, White, Background_black, 60, 102 + (MLINE * 2), (char*)GET_TEXT_F(MSG_FAN_SPEED)); + DWIN_Draw_String(false, true, font8x16, White, Background_black, 60, 102 + (MLINE * 3), (char*)GET_TEXT_F(MSG_STORE_EEPROM)); #else DWIN_Frame_AreaCopy(1, 56, 16, 271 - 130, 479 - 450 - 1, 14, 8); + DWIN_Frame_AreaCopy(1, 172, 76, 198, 479 - 393, LBLX, MBASE(1)); + DWIN_Frame_AreaCopy(1, 197, 104, 271 - 33, 479 - 365, LBLX + 24 + 3, MBASE(1)); + DWIN_Frame_AreaCopy(1, 1, 89, 271 - 188, 479 - 377 - 1, LBLX + 24 + 41 + 6, MBASE(1)); // ABS nozzle temp + DWIN_Frame_AreaCopy(1, 172, 76, 198, 479 - 393, LBLX, MBASE(2) + 3); + DWIN_Frame_AreaCopy(1, 240, 104, 271 - 7, 479 - 365, LBLX + 24 + 3, MBASE(2) + 3); + DWIN_Frame_AreaCopy(1, 1, 89, 271 - 188, 479 - 377 - 1, LBLX + 24 + 24 + 6, MBASE(2) + 3); // ABS bed temp + DWIN_Frame_AreaCopy(1, 172, 76, 198, 479 - 393, LBLX, MBASE(3)); + DWIN_Frame_AreaCopy(1, 0, 119, 271 - 207, 479 - 347, LBLX + 24 + 3, MBASE(3)); // ABS fan speed + DWIN_Frame_AreaCopy(1, 97, 165, 271 - 42, 479 - 301 - 1, LBLX, MBASE(4)); + DWIN_Frame_AreaCopy(1, 172, 76, 198, 479 - 393, LBLX + 33, MBASE(4)); // save ABS configuration #endif - - DWIN_Frame_AreaCopy(1, 172, 76, 198, 479 - 393, LBLX, MBASE(1)); - DWIN_Frame_AreaCopy(1, 197, 104, 271 - 33, 479 - 365, LBLX + 24 + 3, MBASE(1)); - DWIN_Frame_AreaCopy(1, 1, 89, 271 - 188, 479 - 377 - 1, LBLX + 24 + 41 + 6, MBASE(1)); // ABS nozzle temp - DWIN_Frame_AreaCopy(1, 172, 76, 198, 479 - 393, LBLX, MBASE(2) + 3); - DWIN_Frame_AreaCopy(1, 240, 104, 271 - 7, 479 - 365, LBLX + 24 + 3, MBASE(2) + 3); - DWIN_Frame_AreaCopy(1, 1, 89, 271 - 188, 479 - 377 - 1, LBLX + 24 + 24 + 6, MBASE(2) + 3); // ABS bed temp - DWIN_Frame_AreaCopy(1, 172, 76, 198, 479 - 393, LBLX, MBASE(3)); - DWIN_Frame_AreaCopy(1, 0, 119, 271 - 207, 479 - 347, LBLX + 24 + 3, MBASE(3)); // ABS fan speed - DWIN_Frame_AreaCopy(1, 97, 165, 271 - 42, 479 - 301 - 1, LBLX, MBASE(4)); - DWIN_Frame_AreaCopy(1, 172, 76, 198, 479 - 393, LBLX + 33, MBASE(4)); // save ABS configuration } Draw_Back_First(); @@ -2624,7 +2645,7 @@ void HMI_Temperature(void) { inline void Draw_Max_Speed_Menu() { Clear_Main_Window(); - if (HMI_flag.language_flag) { + if (HMI_flag.language_chinese) { DWIN_Frame_AreaCopy(1, 1, 16, 271 - 243, 479 - 451, 14, 8); auto say_max_speed = [](const uint16_t row) { @@ -2643,24 +2664,28 @@ inline void Draw_Max_Speed_Menu() { else { #ifdef USE_STRING_HEADINGS Draw_Title("Max Speed (mm/s)"); // TODO: GET_TEXT_F + DWIN_Draw_String(false, true, font8x16, White, Background_black, 60, 102 + (MLINE * 0), (char*)"Max Feedrate X"); + DWIN_Draw_String(false, true, font8x16, White, Background_black, 60, 102 + (MLINE * 1), (char*)"Max Feedrate Y"); + DWIN_Draw_String(false, true, font8x16, White, Background_black, 60, 102 + (MLINE * 2), (char*)"Max Feedrate Z"); + DWIN_Draw_String(false, true, font8x16, White, Background_black, 60, 102 + (MLINE * 3), (char*)"Max Feedrate E"); #else DWIN_Frame_AreaCopy(1, 144, 16, 271 - 82, 479 - 453, 14, 8); + + draw_max_en(MBASE(1)); // "Max" + DWIN_Frame_AreaCopy(1, 184, 119, 271 - 37, 479 - 347, LBLX + 24 + 3, MBASE(1)); // "Speed X" + + draw_max_en(MBASE(2)); // "Max" + draw_speed_en(24 + 3, MBASE(2)); // "Speed" + say_y(24 + 40 + 6, MBASE(2)); // "Y" + + draw_max_en(MBASE(3)); // "Max" + draw_speed_en(24 + 3, MBASE(3)); // "Speed" + say_z(24 + 40 + 6, MBASE(3)); // "Z" + + draw_max_en(MBASE(4)); // "Max" + draw_speed_en(24 + 3, MBASE(4)); // "Speed" + say_e(24 + 40 + 6, MBASE(4)); // "E" #endif - - draw_max_en(MBASE(1)); // "Max" - DWIN_Frame_AreaCopy(1, 184, 119, 271 - 37, 479 - 347, LBLX + 24 + 3, MBASE(1)); // "Speed X" - - draw_max_en(MBASE(2)); // "Max" - draw_speed_en(24 + 3, MBASE(2)); // "Speed" - say_y(24 + 40 + 6, MBASE(2)); // "Y" - - draw_max_en(MBASE(3)); // "Max" - draw_speed_en(24 + 3, MBASE(3)); // "Speed" - say_z(24 + 40 + 6, MBASE(3)); // "Z" - - draw_max_en(MBASE(4)); // "Max" - draw_speed_en(24 + 3, MBASE(4)); // "Speed" - say_e(24 + 40 + 6, MBASE(4)); // "E" } Draw_Back_First(); @@ -2675,7 +2700,7 @@ inline void Draw_Max_Speed_Menu() { inline void Draw_Max_Accel_Menu() { Clear_Main_Window(); - if (HMI_flag.language_flag) { + if (HMI_flag.language_chinese) { DWIN_Frame_AreaCopy(1, 1, 16, 271 - 243, 479 - 451, 14, 8); DWIN_Frame_AreaCopy(1, 173, 133, 200, 479 - 332, LBLX, MBASE(1)); @@ -2693,14 +2718,18 @@ inline void Draw_Max_Accel_Menu() { } else { #ifdef USE_STRING_HEADINGS - Draw_Title("Max Accel (mm/s/s)"); // TODO: GET_TEXT_F + Draw_Title(GET_TEXT_F(MSG_ACCELERATION)); + DWIN_Draw_String(false, true, font8x16, White, Background_black, 60, 102 + (MLINE * 0), (char*)"Max Accel X"); + DWIN_Draw_String(false, true, font8x16, White, Background_black, 60, 102 + (MLINE * 1), (char*)"Max Accel Y"); + DWIN_Draw_String(false, true, font8x16, White, Background_black, 60, 102 + (MLINE * 2), (char*)"Max Accel Z"); + DWIN_Draw_String(false, true, font8x16, White, Background_black, 60, 102 + (MLINE * 3), (char*)"Max Accel E"); #else DWIN_Frame_AreaCopy(1, 144, 16, 271 - 82, 479 - 453, 14, 8); + draw_max_accel_en(MBASE(1)); say_x(24 + 78 + 6, MBASE(1)); // "Max Acceleration X" + draw_max_accel_en(MBASE(2)); say_y(24 + 78 + 6, MBASE(2)); // "Max Acceleration Y" + draw_max_accel_en(MBASE(3)); say_z(24 + 78 + 6, MBASE(3)); // "Max Acceleration Z" + draw_max_accel_en(MBASE(4)); say_e(24 + 78 + 6, MBASE(4)); // "Max Acceleration E" #endif - draw_max_accel_en(MBASE(1)); say_x(24 + 78 + 6, MBASE(1)); // "Max Acceleration X" - draw_max_accel_en(MBASE(2)); say_y(24 + 78 + 6, MBASE(2)); // "Max Acceleration Y" - draw_max_accel_en(MBASE(3)); say_z(24 + 78 + 6, MBASE(3)); // "Max Acceleration Z" - draw_max_accel_en(MBASE(4)); say_e(24 + 78 + 6, MBASE(4)); // "Max Acceleration E" } Draw_Back_First(); @@ -2715,7 +2744,7 @@ inline void Draw_Max_Accel_Menu() { inline void Draw_Max_Jerk_Menu() { Clear_Main_Window(); - if (HMI_flag.language_flag) { + if (HMI_flag.language_chinese) { DWIN_Frame_AreaCopy(1, 1, 16, 271 - 243, 479 - 451, 14, 8); DWIN_Frame_AreaCopy(1, 173, 133, 200, 479 - 332, LBLX, MBASE(1)); @@ -2737,30 +2766,33 @@ inline void Draw_Max_Jerk_Menu() { } else { #ifdef USE_STRING_HEADINGS - Draw_Title("Max Corner"); // TODO: GET_TEXT_F + Draw_Title(GET_TEXT_F(MSG_JERK)); + DWIN_Draw_String(false, true, font8x16, White, Background_black, 60, 102 + (MLINE * 0), (char*)"Max Jerk X"); + DWIN_Draw_String(false, true, font8x16, White, Background_black, 60, 102 + (MLINE * 1), (char*)"Max Jerk Y"); + DWIN_Draw_String(false, true, font8x16, White, Background_black, 60, 102 + (MLINE * 2), (char*)"Max Jerk Z"); + DWIN_Draw_String(false, true, font8x16, White, Background_black, 60, 102 + (MLINE * 3), (char*)"Max Jerk E"); #else DWIN_Frame_AreaCopy(1, 144, 16, 271 - 82, 479 - 453, 14, 8); + draw_max_en(MBASE(1)); // "Max" + draw_corner_en(MBASE(1)); // "Corner" + draw_speed_en(66 + 6, MBASE(1)); // "Speed" + say_x(106 + 9, MBASE(1)); // "X" + + draw_max_en(MBASE(2)); // "Max" + draw_corner_en(MBASE(2)); // "Corner" + draw_speed_en(66 + 6, MBASE(2)); // "Speed" + say_y(106 + 9, MBASE(2)); // "Y" + + draw_max_en(MBASE(3)); // "Max" + draw_corner_en(MBASE(3)); // "Corner" + draw_speed_en(66 + 6, MBASE(3)); // "Speed" + say_z(106 + 9, MBASE(3)); // "Z" + + draw_max_en(MBASE(4)); // "Max" + draw_corner_en(MBASE(4)); // "Corner" + draw_speed_en(66 + 6, MBASE(4)); // "Speed" + say_e(106 + 9, MBASE(4)); // "E" #endif - - draw_max_en(MBASE(1)); // "Max" - draw_corner_en(MBASE(1)); // "Corner" - draw_speed_en(66 + 6, MBASE(1)); // "Speed" - say_x(106 + 9, MBASE(1)); // "X" - - draw_max_en(MBASE(2)); // "Max" - draw_corner_en(MBASE(2)); // "Corner" - draw_speed_en(66 + 6, MBASE(2)); // "Speed" - say_y(106 + 9, MBASE(2)); // "Y" - - draw_max_en(MBASE(3)); // "Max" - draw_corner_en(MBASE(3)); // "Corner" - draw_speed_en(66 + 6, MBASE(3)); // "Speed" - say_z(106 + 9, MBASE(3)); // "Z" - - draw_max_en(MBASE(4)); // "Max" - draw_corner_en(MBASE(4)); // "Corner" - draw_speed_en(66 + 6, MBASE(4)); // "Speed" - say_e(106 + 9, MBASE(4)); // "E" } Draw_Back_First(); @@ -2775,7 +2807,7 @@ inline void Draw_Max_Jerk_Menu() { inline void Draw_Steps_Menu() { Clear_Main_Window(); - if (HMI_flag.language_flag) { + if (HMI_flag.language_chinese) { DWIN_Frame_AreaCopy(1, 1, 16, 271 - 243, 479 - 451, 14, 8); DWIN_Frame_AreaCopy(1, 153, 148, 271 - 77, 479 - 318, LBLX, MBASE(1)); @@ -2789,14 +2821,18 @@ inline void Draw_Steps_Menu() { } else { #ifdef USE_STRING_HEADINGS - Draw_Title("Steps-per-mm"); // TODO: GET_TEXT_F + Draw_Title(GET_TEXT_F(MSG_STEPS_PER_MM)); + DWIN_Draw_String(false, true, font8x16, White, Background_black, 60, 102 + (MLINE * 0), (char*)"Steps/mm X"); + DWIN_Draw_String(false, true, font8x16, White, Background_black, 60, 102 + (MLINE * 1), (char*)"Steps/mm Y"); + DWIN_Draw_String(false, true, font8x16, White, Background_black, 60, 102 + (MLINE * 2), (char*)"Steps/mm Z"); + DWIN_Draw_String(false, true, font8x16, White, Background_black, 60, 102 + (MLINE * 3), (char*)"Steps/mm E"); #else DWIN_Frame_AreaCopy(1, 144, 16, 271 - 82, 479 - 453, 14, 8); + draw_steps_per_mm(MBASE(1)); say_x(100 + 3, MBASE(1)); // "Steps-per-mm X" + draw_steps_per_mm(MBASE(2)); say_y(100 + 3, MBASE(2)); // "Y" + draw_steps_per_mm(MBASE(3)); say_z(100 + 3, MBASE(3)); // "Z" + draw_steps_per_mm(MBASE(4)); say_e(100 + 3, MBASE(4)); // "E" #endif - draw_steps_per_mm(MBASE(1)); say_x(100 + 3, MBASE(1)); // "Steps-per-mm X" - draw_steps_per_mm(MBASE(2)); say_y(100 + 3, MBASE(2)); // "Y" - draw_steps_per_mm(MBASE(3)); say_z(100 + 3, MBASE(3)); // "Z" - draw_steps_per_mm(MBASE(4)); say_e(100 + 3, MBASE(4)); // "E" } Draw_Back_First(); @@ -2947,16 +2983,16 @@ void HMI_Tune(void) { break; case 6: // Language // Select language - HMI_flag.language_flag = !HMI_flag.language_flag; + HMI_flag.language_chinese ^= true; Clear_Main_Window(); - if (HMI_flag.language_flag) { - set_chinese_to_eeprom(); + if (HMI_flag.language_chinese) { + HMI_SetAndSaveLanguageChinese(); DWIN_JPG_CacheTo1(Language_Chinese); } else { - set_english_to_eeprom(); + HMI_SetAndSaveLanguageWestern(); DWIN_JPG_CacheTo1(Language_English); } @@ -3304,7 +3340,7 @@ void HMI_Init(void) { delay(20); } - lcd_select_language(); + HMI_SetLanguage(); #if ENABLED(FIX_MOUNTED_PROBE) // For "CREALITY_TOUCH" probe too? SET_OUTPUT(COM_PIN); @@ -3345,7 +3381,7 @@ void EachMomentUpdate(void) { // show print done confirm DWIN_Draw_Rectangle(1, Background_black, 0, 250, 271, 360); - DWIN_ICON_Show(ICON, HMI_flag.language_flag ? ICON_Confirm_C : ICON_Confirm_E, 86, 302 - 19); + DWIN_ICON_Show(ICON, HMI_flag.language_chinese ? ICON_Confirm_C : ICON_Confirm_E, 86, 302 - 19); } else if (HMI_flag.pause_flag != printingIsPaused()) { // print status update diff --git a/Marlin/src/lcd/dwin/dwin.h b/Marlin/src/lcd/dwin/dwin.h index cddc582fc..3446a0d4c 100644 --- a/Marlin/src/lcd/dwin/dwin.h +++ b/Marlin/src/lcd/dwin/dwin.h @@ -244,7 +244,7 @@ typedef struct { } HMI_value_t; typedef struct { - bool language_flag; // 0: EN, 1: CN + bool language_chinese; // 0: EN, 1: CN bool pause_flag:1; bool print_finish:1; bool confirm_flag:1; @@ -269,9 +269,9 @@ extern HMI_value_t HMI_ValueStruct; extern HMI_Flag HMI_flag; // Language -void lcd_select_language(void); -void set_english_to_eeprom(void); -void set_chinese_to_eeprom(void); +void HMI_SetLanguage(void); +void HMI_SetAndSaveLanguageWestern(void); +void HMI_SetAndSaveLanguageChinese(void); // Show ICO void ICON_Print(bool show); From aa92fa7ee3d9ee62356b9dc7e600a1633c100ebe Mon Sep 17 00:00:00 2001 From: Greg Nutt Date: Sat, 22 Aug 2020 00:47:25 -0400 Subject: [PATCH 152/194] DIGIPOT_I2C pins for SMOOTHIEBOARD (#19098) --- Marlin/src/pins/lpc1769/pins_SMOOTHIEBOARD.h | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/Marlin/src/pins/lpc1769/pins_SMOOTHIEBOARD.h b/Marlin/src/pins/lpc1769/pins_SMOOTHIEBOARD.h index 0712a274b..c9bd9ec3a 100644 --- a/Marlin/src/pins/lpc1769/pins_SMOOTHIEBOARD.h +++ b/Marlin/src/pins/lpc1769/pins_SMOOTHIEBOARD.h @@ -114,3 +114,20 @@ #error "Marlin's Smoothieboard support cannot drive your LCD." #endif + +/** + * I2C Digipots - MCP4451 + * Address 58 (2C << 1) + * Set from 0 - 127 with stop bit. + * (Ex. 3F << 1 | 1) + */ +#define DIGIPOTS_I2C_SCL P0_0 +#define DIGIPOTS_I2C_SDA_X P0_04 +#define DIGIPOTS_I2C_SDA_Y P0_10 +#define DIGIPOTS_I2C_SDA_Z P0_19 +#define DIGIPOTS_I2C_SDA_E0 P0_21 +#define DIGIPOTS_I2C_SDA_E1 P4_29 + +#ifndef DIGIPOT_I2C_ADDRESS_A + #define DIGIPOT_I2C_ADDRESS_A 0x2C // unshifted slave address (58 <- 2C << 1) +#endif From b6e4acec9df3cfef5dc733f8c32a7375715ddd12 Mon Sep 17 00:00:00 2001 From: Giuliano Zaro <3684609+GMagician@users.noreply.github.com> Date: Sat, 22 Aug 2020 06:49:39 +0200 Subject: [PATCH 153/194] Prefer Servo AVR timer4 over 3 (#19025) --- Marlin/src/HAL/AVR/ServoTimers.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Marlin/src/HAL/AVR/ServoTimers.h b/Marlin/src/HAL/AVR/ServoTimers.h index 598db6257..436b28141 100644 --- a/Marlin/src/HAL/AVR/ServoTimers.h +++ b/Marlin/src/HAL/AVR/ServoTimers.h @@ -59,9 +59,9 @@ // Say which 16 bit timers can be used and in what order #if defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__) //#define _useTimer1 - #define _useTimer3 + #define _useTimer4 #if NUM_SERVOS > SERVOS_PER_TIMER - #define _useTimer4 + #define _useTimer3 #if !HAS_MOTOR_CURRENT_PWM && SERVOS > 2 * SERVOS_PER_TIMER #define _useTimer5 // Timer 5 is used for motor current PWM and can't be used for servos. #endif From 8cededa7dd8501d24bcfed56bfd82720b1c4885a Mon Sep 17 00:00:00 2001 From: mmajoor Date: Sat, 22 Aug 2020 07:35:39 +0200 Subject: [PATCH 154/194] Permit ST7789V orientation override (#19044) --- Marlin/src/lcd/tft/st7789v.h | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Marlin/src/lcd/tft/st7789v.h b/Marlin/src/lcd/tft/st7789v.h index 6ed7c0ce6..f6e937c2c 100644 --- a/Marlin/src/lcd/tft/st7789v.h +++ b/Marlin/src/lcd/tft/st7789v.h @@ -39,7 +39,9 @@ #define ST7789V_ORIENTATION_DOWN 0 // 240x320 ; Cable on the lower side //#define ST7789V_COLOR_BGR -#define ST7789V_ORIENTATION ST7789V_ORIENTATION_LEFT +#ifndef ST7789V_ORIENTATION + #define ST7789V_ORIENTATION ST7789V_ORIENTATION_LEFT +#endif #define ST7789V_MADCTL_DATA (ST7789V_ORIENTATION | TERN(ST7789V_COLOR_BGR, ST7789V_MADCTL_BGR, ST7789V_MADCTL_RGB)) #define ST7789V_NOP 0x00 // No Operation From a9f7e855d8c030d0d9f34f950a66824b576548b5 Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Sat, 22 Aug 2020 01:22:14 -0500 Subject: [PATCH 155/194] Reformat pins files --- Marlin/src/pins/linux/pins_RAMPS_LINUX.h | 2 +- Marlin/src/pins/lpc1768/pins_BTT_SKR_V1_3.h | 2 +- Marlin/src/pins/lpc1768/pins_BTT_SKR_V1_4.h | 2 +- Marlin/src/pins/lpc1768/pins_BTT_SKR_common.h | 2 +- Marlin/src/pins/lpc1768/pins_GMARSH_X6_REV1.h | 4 +- Marlin/src/pins/lpc1768/pins_MKS_SBASE.h | 2 +- Marlin/src/pins/lpc1768/pins_MKS_SGEN_L.h | 2 +- Marlin/src/pins/lpc1768/pins_RAMPS_RE_ARM.h | 2 +- Marlin/src/pins/lpc1769/pins_AZTEEG_X5_MINI.h | 4 +- Marlin/src/pins/lpc1769/pins_MKS_SGEN.h | 2 +- Marlin/src/pins/lpc1769/pins_TH3D_EZBOARD.h | 2 +- Marlin/src/pins/mega/pins_INTAMSYS40.h | 2 +- Marlin/src/pins/mega/pins_MIGHTYBOARD_REVE.h | 2 +- Marlin/src/pins/ramps/pins_AZTEEG_X3_PRO.h | 4 +- Marlin/src/pins/ramps/pins_RAMPS_CREALITY.h | 2 +- Marlin/src/pins/sam/pins_PRINTRBOARD_G2.h | 2 +- Marlin/src/pins/sam/pins_RADDS.h | 2 +- Marlin/src/pins/sam/pins_RAMPS_SMART.h | 2 +- Marlin/src/pins/sam/pins_RURAMPS4D_11.h | 2 +- Marlin/src/pins/sam/pins_RURAMPS4D_13.h | 2 +- Marlin/src/pins/samd/pins_RAMPS_144.h | 2 +- Marlin/src/pins/stm32f0/pins_MALYAN_M300.h | 4 +- Marlin/src/pins/stm32f1/pins_BTT_SKR_E3_DIP.h | 10 +- .../stm32f1/pins_BTT_SKR_MINI_E3_common.h | 8 +- .../src/pins/stm32f1/pins_BTT_SKR_MINI_V1_1.h | 4 +- .../src/pins/stm32f1/pins_CCROBOT_MEEB_3DP.h | 8 +- Marlin/src/pins/stm32f1/pins_CHITU3D.h | 2 +- Marlin/src/pins/stm32f1/pins_CHITU3D_V5.h | 2 +- Marlin/src/pins/stm32f1/pins_CHITU3D_V6.h | 2 +- Marlin/src/pins/stm32f1/pins_CREALITY_V4.h | 6 +- Marlin/src/pins/stm32f1/pins_FYSETC_AIO_II.h | 6 +- Marlin/src/pins/stm32f1/pins_FYSETC_CHEETAH.h | 6 +- Marlin/src/pins/stm32f1/pins_GTM32_MINI.h | 8 +- Marlin/src/pins/stm32f1/pins_GTM32_MINI_A30.h | 8 +- Marlin/src/pins/stm32f1/pins_GTM32_PRO_VB.h | 8 +- Marlin/src/pins/stm32f1/pins_GTM32_REV_B.h | 8 +- .../src/pins/stm32f1/pins_JGAURORA_A5S_A1.h | 4 +- Marlin/src/pins/stm32f1/pins_LONGER3D_LK.h | 2 +- Marlin/src/pins/stm32f1/pins_MALYAN_M200.h | 4 +- Marlin/src/pins/stm32f1/pins_MKS_ROBIN.h | 2 +- .../pins/stm32f1/pins_MKS_ROBIN_E3_common.h | 2 +- Marlin/src/pins/stm32f1/pins_MKS_ROBIN_MINI.h | 11 +- Marlin/src/pins/stm32f1/pins_MKS_ROBIN_NANO.h | 4 +- .../src/pins/stm32f1/pins_MKS_ROBIN_NANO_V2.h | 2 +- Marlin/src/pins/stm32f1/pins_MKS_ROBIN_PRO.h | 2 +- Marlin/src/pins/stm32f1/pins_STM32F1R.h | 148 +++++++++--------- Marlin/src/pins/stm32f1/pins_STM3R_MINI.h | 148 +++++++++--------- Marlin/src/pins/stm32f1/pins_TRIGORILLA_PRO.h | 2 +- Marlin/src/pins/stm32f4/pins_ARMED.h | 4 +- Marlin/src/pins/stm32f4/pins_BEAST.h | 148 +++++++++--------- .../src/pins/stm32f4/pins_BLACK_STM32F407VE.h | 2 +- .../src/pins/stm32f4/pins_BTT_BTT002_V1_0.h | 4 +- Marlin/src/pins/stm32f4/pins_BTT_GTR_V1_0.h | 4 +- .../pins/stm32f4/pins_BTT_SKR_PRO_common.h | 4 +- Marlin/src/pins/stm32f4/pins_FLYF407ZG.h | 4 +- Marlin/src/pins/stm32f4/pins_FYSETC_S6.h | 4 +- .../src/pins/stm32f4/pins_GENERIC_STM32F4.h | 4 +- Marlin/src/pins/stm32f4/pins_LERDGE_K.h | 4 +- Marlin/src/pins/stm32f4/pins_LERDGE_S.h | 10 +- Marlin/src/pins/stm32f4/pins_LERDGE_X.h | 6 +- Marlin/src/pins/stm32f4/pins_RUMBA32_AUS3D.h | 4 +- Marlin/src/pins/stm32f4/pins_RUMBA32_MKS.h | 2 +- Marlin/src/pins/stm32f4/pins_RUMBA32_common.h | 4 +- Marlin/src/pins/stm32f4/pins_VAKE403D.h | 2 +- Marlin/src/pins/stm32f7/pins_THE_BORG.h | 4 +- Marlin/src/pins/teensy2/pins_5DPRINT.h | 2 +- .../src/pins/teensy2/pins_PRINTRBOARD_REVF.h | 2 +- 67 files changed, 343 insertions(+), 344 deletions(-) diff --git a/Marlin/src/pins/linux/pins_RAMPS_LINUX.h b/Marlin/src/pins/linux/pins_RAMPS_LINUX.h index 9361680c2..2b7909221 100644 --- a/Marlin/src/pins/linux/pins_RAMPS_LINUX.h +++ b/Marlin/src/pins/linux/pins_RAMPS_LINUX.h @@ -50,7 +50,7 @@ #endif #ifndef MARLIN_EEPROM_SIZE - #define MARLIN_EEPROM_SIZE 0x1000 // 4KB + #define MARLIN_EEPROM_SIZE 0x1000 // 4KB #endif #define IS_RAMPS_EFB diff --git a/Marlin/src/pins/lpc1768/pins_BTT_SKR_V1_3.h b/Marlin/src/pins/lpc1768/pins_BTT_SKR_V1_3.h index 9e26a3359..fb1218068 100644 --- a/Marlin/src/pins/lpc1768/pins_BTT_SKR_V1_3.h +++ b/Marlin/src/pins/lpc1768/pins_BTT_SKR_V1_3.h @@ -182,7 +182,7 @@ #define E1_SERIAL_RX_PIN P1_01 // Reduce baud rate to improve software serial reliability - #define TMC_BAUD_RATE 19200 + #define TMC_BAUD_RATE 19200 #endif /** diff --git a/Marlin/src/pins/lpc1768/pins_BTT_SKR_V1_4.h b/Marlin/src/pins/lpc1768/pins_BTT_SKR_V1_4.h index 83543703e..69f4f2445 100644 --- a/Marlin/src/pins/lpc1768/pins_BTT_SKR_V1_4.h +++ b/Marlin/src/pins/lpc1768/pins_BTT_SKR_V1_4.h @@ -208,7 +208,7 @@ #define Z2_SERIAL_RX_PIN P1_01 // Reduce baud rate to improve software serial reliability - #define TMC_BAUD_RATE 19200 + #define TMC_BAUD_RATE 19200 #endif // diff --git a/Marlin/src/pins/lpc1768/pins_BTT_SKR_common.h b/Marlin/src/pins/lpc1768/pins_BTT_SKR_common.h index cc35dfb0d..bfae569cc 100644 --- a/Marlin/src/pins/lpc1768/pins_BTT_SKR_common.h +++ b/Marlin/src/pins/lpc1768/pins_BTT_SKR_common.h @@ -30,7 +30,7 @@ #endif // Ignore temp readings during development. -//#define BOGUS_TEMPERATURE_GRACE_PERIOD 2000 +//#define BOGUS_TEMPERATURE_GRACE_PERIOD 2000 // // Steppers diff --git a/Marlin/src/pins/lpc1768/pins_GMARSH_X6_REV1.h b/Marlin/src/pins/lpc1768/pins_GMARSH_X6_REV1.h index 7012068d6..6bba067cb 100644 --- a/Marlin/src/pins/lpc1768/pins_GMARSH_X6_REV1.h +++ b/Marlin/src/pins/lpc1768/pins_GMARSH_X6_REV1.h @@ -28,7 +28,7 @@ #define BOARD_INFO_NAME "GMARSH X6 REV1" // Ignore temp readings during develpment. -//#define BOGUS_TEMPERATURE_GRACE_PERIOD 2000 +//#define BOGUS_TEMPERATURE_GRACE_PERIOD 2000 // // Enable 12MHz clock output on P1.27 pin to sync TMC2208 chip clocks @@ -97,7 +97,7 @@ #define E2_SERIAL_RX_PIN P2_06 // Reduce baud rate to improve software serial reliability - #define TMC_BAUD_RATE 19200 + #define TMC_BAUD_RATE 19200 #else #error "TMC2208 UART configuration is required for GMarsh X6." #endif diff --git a/Marlin/src/pins/lpc1768/pins_MKS_SBASE.h b/Marlin/src/pins/lpc1768/pins_MKS_SBASE.h index db8551c11..c89807227 100644 --- a/Marlin/src/pins/lpc1768/pins_MKS_SBASE.h +++ b/Marlin/src/pins/lpc1768/pins_MKS_SBASE.h @@ -324,7 +324,7 @@ #define E0_SERIAL_RX_PIN P0_26 // TH4 // Reduce baud rate to improve software serial reliability - #define TMC_BAUD_RATE 19200 + #define TMC_BAUD_RATE 19200 #endif // UNUSED diff --git a/Marlin/src/pins/lpc1768/pins_MKS_SGEN_L.h b/Marlin/src/pins/lpc1768/pins_MKS_SGEN_L.h index c4bc90c17..733751eb0 100644 --- a/Marlin/src/pins/lpc1768/pins_MKS_SGEN_L.h +++ b/Marlin/src/pins/lpc1768/pins_MKS_SGEN_L.h @@ -188,7 +188,7 @@ #define Z2_SERIAL_RX_PIN P1_17 // Reduce baud rate to improve software serial reliability - #define TMC_BAUD_RATE 19200 + #define TMC_BAUD_RATE 19200 #endif // TMC2208 || TMC2209 // diff --git a/Marlin/src/pins/lpc1768/pins_RAMPS_RE_ARM.h b/Marlin/src/pins/lpc1768/pins_RAMPS_RE_ARM.h index 554c060cb..32c9ad271 100644 --- a/Marlin/src/pins/lpc1768/pins_RAMPS_RE_ARM.h +++ b/Marlin/src/pins/lpc1768/pins_RAMPS_RE_ARM.h @@ -158,7 +158,7 @@ #endif // Reduce baud rate to improve software serial reliability - #define TMC_BAUD_RATE 19200 + #define TMC_BAUD_RATE 19200 #endif // diff --git a/Marlin/src/pins/lpc1769/pins_AZTEEG_X5_MINI.h b/Marlin/src/pins/lpc1769/pins_AZTEEG_X5_MINI.h index 042b724e8..8d5080b28 100644 --- a/Marlin/src/pins/lpc1769/pins_AZTEEG_X5_MINI.h +++ b/Marlin/src/pins/lpc1769/pins_AZTEEG_X5_MINI.h @@ -82,11 +82,11 @@ // DIGIPOT slave addresses // #ifndef DIGIPOT_I2C_ADDRESS_A - #define DIGIPOT_I2C_ADDRESS_A 0x2C // unshifted slave address for first DIGIPOT + #define DIGIPOT_I2C_ADDRESS_A 0x2C // unshifted slave address for first DIGIPOT #endif #ifndef DIGIPOT_I2C_ADDRESS_B - #define DIGIPOT_I2C_ADDRESS_B 0x2E // unshifted slave address for second DIGIPOT + #define DIGIPOT_I2C_ADDRESS_B 0x2E // unshifted slave address for second DIGIPOT #endif // diff --git a/Marlin/src/pins/lpc1769/pins_MKS_SGEN.h b/Marlin/src/pins/lpc1769/pins_MKS_SGEN.h index 23275e86b..c9f3ff7aa 100644 --- a/Marlin/src/pins/lpc1769/pins_MKS_SGEN.h +++ b/Marlin/src/pins/lpc1769/pins_MKS_SGEN.h @@ -56,5 +56,5 @@ #define E1_SERIAL_RX_PIN P4_28 // J8-6 // Reduce baud rate to improve software serial reliability - #define TMC_BAUD_RATE 19200 + #define TMC_BAUD_RATE 19200 #endif diff --git a/Marlin/src/pins/lpc1769/pins_TH3D_EZBOARD.h b/Marlin/src/pins/lpc1769/pins_TH3D_EZBOARD.h index a1d3b08ca..81f5b7501 100644 --- a/Marlin/src/pins/lpc1769/pins_TH3D_EZBOARD.h +++ b/Marlin/src/pins/lpc1769/pins_TH3D_EZBOARD.h @@ -89,7 +89,7 @@ #define E0_SERIAL_RX_PIN P0_21 // Reduce baud rate to improve software serial reliability - #define TMC_BAUD_RATE 19200 + #define TMC_BAUD_RATE 19200 #endif // diff --git a/Marlin/src/pins/mega/pins_INTAMSYS40.h b/Marlin/src/pins/mega/pins_INTAMSYS40.h index 19725eda2..b6ff30a4f 100644 --- a/Marlin/src/pins/mega/pins_INTAMSYS40.h +++ b/Marlin/src/pins/mega/pins_INTAMSYS40.h @@ -82,7 +82,7 @@ // Motor current PWM conversion, PWM value = MotorCurrentSetting * 255 / range #ifndef MOTOR_CURRENT_PWM_RANGE - #define MOTOR_CURRENT_PWM_RANGE 2000 + #define MOTOR_CURRENT_PWM_RANGE 2000 #endif #define DEFAULT_PWM_MOTOR_CURRENT { 1300, 1300, 1250 } diff --git a/Marlin/src/pins/mega/pins_MIGHTYBOARD_REVE.h b/Marlin/src/pins/mega/pins_MIGHTYBOARD_REVE.h index efa991642..526c9bfc6 100644 --- a/Marlin/src/pins/mega/pins_MIGHTYBOARD_REVE.h +++ b/Marlin/src/pins/mega/pins_MIGHTYBOARD_REVE.h @@ -116,7 +116,7 @@ #define DIGIPOTS_I2C_SDA_E1 77 // J6 #ifndef DIGIPOT_I2C_ADDRESS_A - #define DIGIPOT_I2C_ADDRESS_A 0x2F // unshifted slave address (5E <- 2F << 1) + #define DIGIPOT_I2C_ADDRESS_A 0x2F // unshifted slave address (5E <- 2F << 1) #endif // diff --git a/Marlin/src/pins/ramps/pins_AZTEEG_X3_PRO.h b/Marlin/src/pins/ramps/pins_AZTEEG_X3_PRO.h index a23ada0ac..5eee450fc 100644 --- a/Marlin/src/pins/ramps/pins_AZTEEG_X3_PRO.h +++ b/Marlin/src/pins/ramps/pins_AZTEEG_X3_PRO.h @@ -67,10 +67,10 @@ // DIGIPOT slave addresses #ifndef DIGIPOT_I2C_ADDRESS_A - #define DIGIPOT_I2C_ADDRESS_A 0x2C // unshifted slave address for first DIGIPOT 0x2C (0x58 <- 0x2C << 1) + #define DIGIPOT_I2C_ADDRESS_A 0x2C // unshifted slave address for first DIGIPOT 0x2C (0x58 <- 0x2C << 1) #endif #ifndef DIGIPOT_I2C_ADDRESS_B - #define DIGIPOT_I2C_ADDRESS_B 0x2E // unshifted slave address for second DIGIPOT 0x2E (0x5C <- 0x2E << 1) + #define DIGIPOT_I2C_ADDRESS_B 0x2E // unshifted slave address for second DIGIPOT 0x2E (0x5C <- 0x2E << 1) #endif // diff --git a/Marlin/src/pins/ramps/pins_RAMPS_CREALITY.h b/Marlin/src/pins/ramps/pins_RAMPS_CREALITY.h index b2a412e30..1dc898e6c 100644 --- a/Marlin/src/pins/ramps/pins_RAMPS_CREALITY.h +++ b/Marlin/src/pins/ramps/pins_RAMPS_CREALITY.h @@ -64,5 +64,5 @@ #define SUICIDE_PIN 12 // Used by CR2020 Industrial series #ifndef SUICIDE_PIN_INVERTING - #define SUICIDE_PIN_INVERTING true + #define SUICIDE_PIN_INVERTING true #endif diff --git a/Marlin/src/pins/sam/pins_PRINTRBOARD_G2.h b/Marlin/src/pins/sam/pins_PRINTRBOARD_G2.h index 5d8716b67..be6b0fb2e 100644 --- a/Marlin/src/pins/sam/pins_PRINTRBOARD_G2.h +++ b/Marlin/src/pins/sam/pins_PRINTRBOARD_G2.h @@ -147,7 +147,7 @@ #define FET_SAFETY_PIN 31 // PA7 must be pulsed low every 50 mS or FETs are turned off #define FET_SAFETY_DELAY 50 // 50 mS delay between pulses -#define FET_SAFETY_INVERTED true // true - negative going pulse of 2 uS +#define FET_SAFETY_INVERTED true // true - negative going pulse of 2 uS ///////////////////////////////////////////////////////// diff --git a/Marlin/src/pins/sam/pins_RADDS.h b/Marlin/src/pins/sam/pins_RADDS.h index 78231afaf..a0192aadb 100644 --- a/Marlin/src/pins/sam/pins_RADDS.h +++ b/Marlin/src/pins/sam/pins_RADDS.h @@ -36,7 +36,7 @@ // #if EITHER(NO_EEPROM_SELECTED, I2C_EEPROM) #define I2C_EEPROM - #define MARLIN_EEPROM_SIZE 0x2000 // 8KB + #define MARLIN_EEPROM_SIZE 0x2000 // 8KB #endif // diff --git a/Marlin/src/pins/sam/pins_RAMPS_SMART.h b/Marlin/src/pins/sam/pins_RAMPS_SMART.h index 4c26d19ca..06eee2d97 100644 --- a/Marlin/src/pins/sam/pins_RAMPS_SMART.h +++ b/Marlin/src/pins/sam/pins_RAMPS_SMART.h @@ -70,7 +70,7 @@ // I2C EEPROM with 4K of space #define I2C_EEPROM -#define MARLIN_EEPROM_SIZE 0x1000 +#define MARLIN_EEPROM_SIZE 0x1000 #define RESET_PIN 42 // Resets the board if the jumper is attached diff --git a/Marlin/src/pins/sam/pins_RURAMPS4D_11.h b/Marlin/src/pins/sam/pins_RURAMPS4D_11.h index 22353611b..dd490e389 100644 --- a/Marlin/src/pins/sam/pins_RURAMPS4D_11.h +++ b/Marlin/src/pins/sam/pins_RURAMPS4D_11.h @@ -186,7 +186,7 @@ // // EEPROM // -#define MARLIN_EEPROM_SIZE 0x8000 // 32Kb (24lc256) +#define MARLIN_EEPROM_SIZE 0x8000 // 32Kb (24lc256) #define I2C_EEPROM // EEPROM on I2C-0 //#define EEPROM_SD // EEPROM on SDCARD //#define SPI_EEPROM // EEPROM on SPI-0 diff --git a/Marlin/src/pins/sam/pins_RURAMPS4D_13.h b/Marlin/src/pins/sam/pins_RURAMPS4D_13.h index 19b8ac977..8a6287fb6 100644 --- a/Marlin/src/pins/sam/pins_RURAMPS4D_13.h +++ b/Marlin/src/pins/sam/pins_RURAMPS4D_13.h @@ -172,7 +172,7 @@ // // EEPROM // -#define MARLIN_EEPROM_SIZE 0x8000 // 32Kb (24lc256) +#define MARLIN_EEPROM_SIZE 0x8000 // 32Kb (24lc256) #define I2C_EEPROM // EEPROM on I2C-0 //#define EEPROM_SD // EEPROM on SDCARD //#define SPI_EEPROM // EEPROM on SPI-0 diff --git a/Marlin/src/pins/samd/pins_RAMPS_144.h b/Marlin/src/pins/samd/pins_RAMPS_144.h index 319584b5e..93e758b3a 100644 --- a/Marlin/src/pins/samd/pins_RAMPS_144.h +++ b/Marlin/src/pins/samd/pins_RAMPS_144.h @@ -46,7 +46,7 @@ // //#define QSPI_EEPROM // Use AGCM4 onboard QSPI EEPROM (Uses 4K of RAM) #define I2C_EEPROM // EEPROM on I2C-0 -#define MARLIN_EEPROM_SIZE 0x8000 // 32K (24lc256) +#define MARLIN_EEPROM_SIZE 0x8000 // 32K (24lc256) // // Limit Switches diff --git a/Marlin/src/pins/stm32f0/pins_MALYAN_M300.h b/Marlin/src/pins/stm32f0/pins_MALYAN_M300.h index b8c2ed950..d6a83aca1 100644 --- a/Marlin/src/pins/stm32f0/pins_MALYAN_M300.h +++ b/Marlin/src/pins/stm32f0/pins_MALYAN_M300.h @@ -43,8 +43,8 @@ // // Timers // -#define STEP_TIMER 6 -#define TEMP_TIMER 7 +#define STEP_TIMER 6 +#define TEMP_TIMER 7 // // Limit Switches diff --git a/Marlin/src/pins/stm32f1/pins_BTT_SKR_E3_DIP.h b/Marlin/src/pins/stm32f1/pins_BTT_SKR_E3_DIP.h index 3801a9bae..cff34daf2 100644 --- a/Marlin/src/pins/stm32f1/pins_BTT_SKR_E3_DIP.h +++ b/Marlin/src/pins/stm32f1/pins_BTT_SKR_E3_DIP.h @@ -31,7 +31,7 @@ #define DISABLE_JTAG // Ignore temp readings during development. -//#define BOGUS_TEMPERATURE_GRACE_PERIOD 2000 +//#define BOGUS_TEMPERATURE_GRACE_PERIOD 2000 #if EITHER(NO_EEPROM_SELECTED, FLASH_EEPROM_EMULATION) #define FLASH_EEPROM_EMULATION @@ -138,7 +138,7 @@ #define E0_SERIAL_RX_PIN PD2 // Reduce baud rate to improve software serial reliability - #define TMC_BAUD_RATE 19200 + #define TMC_BAUD_RATE 19200 #endif // @@ -158,7 +158,7 @@ // USB connect control // #define USB_CONNECT_PIN PC13 -#define USB_CONNECT_INVERTING false +#define USB_CONNECT_INVERTING false /** * _____ @@ -260,7 +260,7 @@ * */ - #define CLCD_SPI_BUS 1 // SPI1 connector + #define CLCD_SPI_BUS 1 // SPI1 connector #define BEEPER_PIN PB6 @@ -288,5 +288,5 @@ #error "SD CUSTOM_CABLE is not compatible with SKR E3 DIP." #endif -#define ON_BOARD_SPI_DEVICE 1 // SPI1 +#define ON_BOARD_SPI_DEVICE 1 // SPI1 #define ONBOARD_SD_CS_PIN PA4 // Chip select for "System" SD card diff --git a/Marlin/src/pins/stm32f1/pins_BTT_SKR_MINI_E3_common.h b/Marlin/src/pins/stm32f1/pins_BTT_SKR_MINI_E3_common.h index a8df0e5c0..923b0fa4c 100644 --- a/Marlin/src/pins/stm32f1/pins_BTT_SKR_MINI_E3_common.h +++ b/Marlin/src/pins/stm32f1/pins_BTT_SKR_MINI_E3_common.h @@ -29,7 +29,7 @@ #define DISABLE_JTAG // Ignore temp readings during development. -//#define BOGUS_TEMPERATURE_GRACE_PERIOD 2000 +//#define BOGUS_TEMPERATURE_GRACE_PERIOD 2000 #if EITHER(NO_EEPROM_SELECTED, FLASH_EEPROM_EMULATION) #define FLASH_EEPROM_EMULATION @@ -108,7 +108,7 @@ #define USB_CONNECT_PIN PC13 #endif -#define USB_CONNECT_INVERTING false +#define USB_CONNECT_INVERTING false /** * SKR Mini E3 V1.0, V1.2 SKR Mini E3 V2.0 @@ -208,7 +208,7 @@ * */ - #define CLCD_SPI_BUS 1 // SPI1 connector + #define CLCD_SPI_BUS 1 // SPI1 connector #define BEEPER_PIN EXP1_9 @@ -236,5 +236,5 @@ #error "SD CUSTOM_CABLE is not compatible with SKR Mini E3." #endif -#define ON_BOARD_SPI_DEVICE 1 // SPI1 +#define ON_BOARD_SPI_DEVICE 1 // SPI1 #define ONBOARD_SD_CS_PIN PA4 // Chip select for "System" SD card diff --git a/Marlin/src/pins/stm32f1/pins_BTT_SKR_MINI_V1_1.h b/Marlin/src/pins/stm32f1/pins_BTT_SKR_MINI_V1_1.h index db31eb377..4a12d5d32 100644 --- a/Marlin/src/pins/stm32f1/pins_BTT_SKR_MINI_V1_1.h +++ b/Marlin/src/pins/stm32f1/pins_BTT_SKR_MINI_V1_1.h @@ -31,7 +31,7 @@ #define DISABLE_JTAG // Ignore temp readings during development. -//#define BOGUS_TEMPERATURE_GRACE_PERIOD 2000 +//#define BOGUS_TEMPERATURE_GRACE_PERIOD 2000 #if EITHER(NO_EEPROM_SELECTED, FLASH_EEPROM_EMULATION) #define FLASH_EEPROM_EMULATION @@ -213,5 +213,5 @@ #define MOSI_PIN PA7 #define SS_PIN PA4 #endif -#define ON_BOARD_SPI_DEVICE 1 // SPI1 +#define ON_BOARD_SPI_DEVICE 1 // SPI1 #define ONBOARD_SD_CS_PIN PA4 // Chip select for "System" SD card diff --git a/Marlin/src/pins/stm32f1/pins_CCROBOT_MEEB_3DP.h b/Marlin/src/pins/stm32f1/pins_CCROBOT_MEEB_3DP.h index f99721f14..af1e4c114 100644 --- a/Marlin/src/pins/stm32f1/pins_CCROBOT_MEEB_3DP.h +++ b/Marlin/src/pins/stm32f1/pins_CCROBOT_MEEB_3DP.h @@ -43,9 +43,9 @@ // #if EITHER(NO_EEPROM_SELECTED, FLASH_EEPROM_EMULATION) #define FLASH_EEPROM_EMULATION - #define EEPROM_PAGE_SIZE 0x800U // 2KB + #define EEPROM_PAGE_SIZE 0x800U // 2KB #define EEPROM_START_ADDRESS (0x8000000UL + (STM32_FLASH_SIZE) * 1024UL - (EEPROM_PAGE_SIZE) * 2UL) - #define MARLIN_EEPROM_SIZE 0x1000 // 4KB + #define MARLIN_EEPROM_SIZE 0x1000 // 4KB #endif // @@ -95,7 +95,7 @@ #define E0_SERIAL_RX_PIN PC4 // Reduce baud rate to improve software serial reliability -#define TMC_BAUD_RATE 19200 +#define TMC_BAUD_RATE 19200 // // Temperature Sensors @@ -173,7 +173,7 @@ #define SS_PIN PA4 #endif -#define ON_BOARD_SPI_DEVICE 1 // SPI1 +#define ON_BOARD_SPI_DEVICE 1 // SPI1 #define ONBOARD_SD_CS_PIN PA4 // Chip select for SD-NAND #endif diff --git a/Marlin/src/pins/stm32f1/pins_CHITU3D.h b/Marlin/src/pins/stm32f1/pins_CHITU3D.h index e3b7d2f54..bf9a7d8e0 100644 --- a/Marlin/src/pins/stm32f1/pins_CHITU3D.h +++ b/Marlin/src/pins/stm32f1/pins_CHITU3D.h @@ -36,7 +36,7 @@ //#define I2C_EEPROM // Ignore temp readings during development. -//#define BOGUS_TEMPERATURE_GRACE_PERIOD 2000 +//#define BOGUS_TEMPERATURE_GRACE_PERIOD 2000 // // Steppers diff --git a/Marlin/src/pins/stm32f1/pins_CHITU3D_V5.h b/Marlin/src/pins/stm32f1/pins_CHITU3D_V5.h index 5267888f4..54ff9a779 100644 --- a/Marlin/src/pins/stm32f1/pins_CHITU3D_V5.h +++ b/Marlin/src/pins/stm32f1/pins_CHITU3D_V5.h @@ -177,7 +177,7 @@ // Emulated DOGM - #define GRAPHICAL_TFT_UPSCALE 3 + #define GRAPHICAL_TFT_UPSCALE 3 #ifndef XPT2046_X_CALIBRATION #define XPT2046_X_CALIBRATION -12316 #endif diff --git a/Marlin/src/pins/stm32f1/pins_CHITU3D_V6.h b/Marlin/src/pins/stm32f1/pins_CHITU3D_V6.h index d128d4e1a..a825db275 100644 --- a/Marlin/src/pins/stm32f1/pins_CHITU3D_V6.h +++ b/Marlin/src/pins/stm32f1/pins_CHITU3D_V6.h @@ -186,7 +186,7 @@ // Emulated DOGM #elif ENABLED(FSMC_GRAPHICAL_TFT) - #define GRAPHICAL_TFT_UPSCALE 3 + #define GRAPHICAL_TFT_UPSCALE 3 #ifndef XPT2046_X_CALIBRATION #define XPT2046_X_CALIBRATION -12316 diff --git a/Marlin/src/pins/stm32f1/pins_CREALITY_V4.h b/Marlin/src/pins/stm32f1/pins_CREALITY_V4.h index f42d78669..9ee8aa742 100644 --- a/Marlin/src/pins/stm32f1/pins_CREALITY_V4.h +++ b/Marlin/src/pins/stm32f1/pins_CREALITY_V4.h @@ -51,10 +51,10 @@ #if ENABLED(IIC_BL24CXX_EEPROM) #define IIC_EEPROM_SDA PA11 #define IIC_EEPROM_SCL PA12 - #define MARLIN_EEPROM_SIZE 0x800 // 2Kb (24C16) + #define MARLIN_EEPROM_SIZE 0x800 // 2Kb (24C16) #else #define SDCARD_EEPROM_EMULATION // SD EEPROM until all EEPROM is BL24CXX - #define MARLIN_EEPROM_SIZE 0x800 // 2Kb + #define MARLIN_EEPROM_SIZE 0x800 // 2Kb #endif // SPI @@ -150,7 +150,7 @@ // #define SD_DETECT_PIN PC7 #define SDCARD_CONNECTION ONBOARD -#define ON_BOARD_SPI_DEVICE 1 +#define ON_BOARD_SPI_DEVICE 1 #define ONBOARD_SD_CS_PIN PA4 // SDSS #define SDIO_SUPPORT diff --git a/Marlin/src/pins/stm32f1/pins_FYSETC_AIO_II.h b/Marlin/src/pins/stm32f1/pins_FYSETC_AIO_II.h index 6a30a2cb2..ca9364a57 100644 --- a/Marlin/src/pins/stm32f1/pins_FYSETC_AIO_II.h +++ b/Marlin/src/pins/stm32f1/pins_FYSETC_AIO_II.h @@ -33,7 +33,7 @@ #define pins_v2_20190128 // new pins define // Ignore temp readings during development. -//#define BOGUS_TEMPERATURE_GRACE_PERIOD 2000 +//#define BOGUS_TEMPERATURE_GRACE_PERIOD 2000 // // Flash EEPROM Emulation @@ -112,7 +112,7 @@ // Stepper current PWM // #ifndef MOTOR_CURRENT_PWM_RANGE - #define MOTOR_CURRENT_PWM_RANGE 1500 // origin:2000 + #define MOTOR_CURRENT_PWM_RANGE 1500 // origin:2000 #endif #define DEFAULT_PWM_MOTOR_CURRENT { 500, 500, 400 } // origin: {1300,1300,1250} @@ -152,7 +152,7 @@ #define DOGLCD_CS PB7 #endif - //#define LCD_CONTRAST_INIT 190 + //#define LCD_CONTRAST_INIT 190 //#define LCD_SCREEN_ROT_90 //#define LCD_SCREEN_ROT_180 //#define LCD_SCREEN_ROT_270 diff --git a/Marlin/src/pins/stm32f1/pins_FYSETC_CHEETAH.h b/Marlin/src/pins/stm32f1/pins_FYSETC_CHEETAH.h index 7143176bd..1f5e70a15 100644 --- a/Marlin/src/pins/stm32f1/pins_FYSETC_CHEETAH.h +++ b/Marlin/src/pins/stm32f1/pins_FYSETC_CHEETAH.h @@ -32,7 +32,7 @@ // https://github.com/FYSETC/Cheetah // Ignore temp readings during development. -//#define BOGUS_TEMPERATURE_GRACE_PERIOD 2000 +//#define BOGUS_TEMPERATURE_GRACE_PERIOD 2000 #define DISABLE_JTAG @@ -151,7 +151,7 @@ #define LCD_PINS_D4 PB13 // SCLK #define LCD_PINS_ENABLE PB15 // DATA MOSI - //#define LCD_CONTRAST_INIT 190 + //#define LCD_CONTRAST_INIT 190 #if ENABLED(NEWPANEL) #define BTN_EN1 PC10 @@ -172,6 +172,6 @@ #define CLCD_SOFT_SPI_MISO PB14 #define CLCD_SOFT_SPI_SCLK PB13 #else - #define CLCD_SPI_BUS 2 + #define CLCD_SPI_BUS 2 #endif #endif diff --git a/Marlin/src/pins/stm32f1/pins_GTM32_MINI.h b/Marlin/src/pins/stm32f1/pins_GTM32_MINI.h index 03f9ce021..fe6c0b132 100644 --- a/Marlin/src/pins/stm32f1/pins_GTM32_MINI.h +++ b/Marlin/src/pins/stm32f1/pins_GTM32_MINI.h @@ -49,12 +49,12 @@ //#define DISABLE_JTAGSWD // Ignore temp readings during development. -//#define BOGUS_TEMPERATURE_GRACE_PERIOD 2000 +//#define BOGUS_TEMPERATURE_GRACE_PERIOD 2000 // Enable EEPROM Emulation for this board as it doesn't have EEPROM #if EITHER(NO_EEPROM_SELECTED, FLASH_EEPROM_EMULATION) #define FLASH_EEPROM_EMULATION - #define MARLIN_EEPROM_SIZE 0x1000 // 4KB + #define MARLIN_EEPROM_SIZE 0x1000 // 4KB #endif // @@ -236,6 +236,6 @@ // ESP WiFi can be soldered to J9 connector which is wired to USART2. // Must define WIFISUPPORT in Configuration.h for the printer. // -#define ESP_WIFI_MODULE_COM 2 -#define ESP_WIFI_MODULE_BAUDRATE 115200 +#define ESP_WIFI_MODULE_COM 2 +#define ESP_WIFI_MODULE_BAUDRATE 115200 #define ESP_WIFI_MODULE_RESET_PIN -1 diff --git a/Marlin/src/pins/stm32f1/pins_GTM32_MINI_A30.h b/Marlin/src/pins/stm32f1/pins_GTM32_MINI_A30.h index 3f5a39a90..716de610a 100644 --- a/Marlin/src/pins/stm32f1/pins_GTM32_MINI_A30.h +++ b/Marlin/src/pins/stm32f1/pins_GTM32_MINI_A30.h @@ -49,12 +49,12 @@ //#define DISABLE_JTAGSWD // Ignore temp readings during development. -//#define BOGUS_TEMPERATURE_GRACE_PERIOD 2000 +//#define BOGUS_TEMPERATURE_GRACE_PERIOD 2000 // Enable EEPROM Emulation for this board as it doesn't have EEPROM #if EITHER(NO_EEPROM_SELECTED, FLASH_EEPROM_EMULATION) #define FLASH_EEPROM_EMULATION - #define MARLIN_EEPROM_SIZE 0x1000 // 4KB + #define MARLIN_EEPROM_SIZE 0x1000 // 4KB #endif // @@ -230,6 +230,6 @@ // ESP WiFi can be soldered to J9 connector which is wired to USART2. // Must define WIFISUPPORT in Configuration.h for the printer. // -#define ESP_WIFI_MODULE_COM 2 -#define ESP_WIFI_MODULE_BAUDRATE 115200 +#define ESP_WIFI_MODULE_COM 2 +#define ESP_WIFI_MODULE_BAUDRATE 115200 #define ESP_WIFI_MODULE_RESET_PIN -1 diff --git a/Marlin/src/pins/stm32f1/pins_GTM32_PRO_VB.h b/Marlin/src/pins/stm32f1/pins_GTM32_PRO_VB.h index 03f9ce021..fe6c0b132 100644 --- a/Marlin/src/pins/stm32f1/pins_GTM32_PRO_VB.h +++ b/Marlin/src/pins/stm32f1/pins_GTM32_PRO_VB.h @@ -49,12 +49,12 @@ //#define DISABLE_JTAGSWD // Ignore temp readings during development. -//#define BOGUS_TEMPERATURE_GRACE_PERIOD 2000 +//#define BOGUS_TEMPERATURE_GRACE_PERIOD 2000 // Enable EEPROM Emulation for this board as it doesn't have EEPROM #if EITHER(NO_EEPROM_SELECTED, FLASH_EEPROM_EMULATION) #define FLASH_EEPROM_EMULATION - #define MARLIN_EEPROM_SIZE 0x1000 // 4KB + #define MARLIN_EEPROM_SIZE 0x1000 // 4KB #endif // @@ -236,6 +236,6 @@ // ESP WiFi can be soldered to J9 connector which is wired to USART2. // Must define WIFISUPPORT in Configuration.h for the printer. // -#define ESP_WIFI_MODULE_COM 2 -#define ESP_WIFI_MODULE_BAUDRATE 115200 +#define ESP_WIFI_MODULE_COM 2 +#define ESP_WIFI_MODULE_BAUDRATE 115200 #define ESP_WIFI_MODULE_RESET_PIN -1 diff --git a/Marlin/src/pins/stm32f1/pins_GTM32_REV_B.h b/Marlin/src/pins/stm32f1/pins_GTM32_REV_B.h index c39c89e42..1fc4fa942 100644 --- a/Marlin/src/pins/stm32f1/pins_GTM32_REV_B.h +++ b/Marlin/src/pins/stm32f1/pins_GTM32_REV_B.h @@ -49,12 +49,12 @@ //#define DISABLE_JTAGSWD // Ignore temp readings during development. -//#define BOGUS_TEMPERATURE_GRACE_PERIOD 2000 +//#define BOGUS_TEMPERATURE_GRACE_PERIOD 2000 // Enable EEPROM Emulation for this board as it doesn't have EEPROM #if EITHER(NO_EEPROM_SELECTED, FLASH_EEPROM_EMULATION) #define FLASH_EEPROM_EMULATION - #define MARLIN_EEPROM_SIZE 0x1000 // 4KB + #define MARLIN_EEPROM_SIZE 0x1000 // 4KB #endif // @@ -233,6 +233,6 @@ // ESP WiFi can be soldered to J9 connector which is wired to USART2. // Must define WIFISUPPORT in Configuration.h for the printer. // -#define ESP_WIFI_MODULE_COM 2 -#define ESP_WIFI_MODULE_BAUDRATE 115200 +#define ESP_WIFI_MODULE_COM 2 +#define ESP_WIFI_MODULE_BAUDRATE 115200 #define ESP_WIFI_MODULE_RESET_PIN -1 diff --git a/Marlin/src/pins/stm32f1/pins_JGAURORA_A5S_A1.h b/Marlin/src/pins/stm32f1/pins_JGAURORA_A5S_A1.h index dcd1c868f..d474eb25f 100644 --- a/Marlin/src/pins/stm32f1/pins_JGAURORA_A5S_A1.h +++ b/Marlin/src/pins/stm32f1/pins_JGAURORA_A5S_A1.h @@ -43,10 +43,10 @@ // Enable EEPROM Emulation for this board, so that we don't overwrite factory data //#define I2C_EEPROM // AT24C64 -//#define MARLIN_EEPROM_SIZE 0x8000UL // 64KB +//#define MARLIN_EEPROM_SIZE 0x8000UL // 64KB //#define FLASH_EEPROM_EMULATION -//#define MARLIN_EEPROM_SIZE 0x1000UL // 4KB +//#define MARLIN_EEPROM_SIZE 0x1000UL // 4KB //#define MARLIN_EEPROM_SIZE (EEPROM_START_ADDRESS + (EEPROM_PAGE_SIZE) * 2UL) //#define EEPROM_CHITCHAT diff --git a/Marlin/src/pins/stm32f1/pins_LONGER3D_LK.h b/Marlin/src/pins/stm32f1/pins_LONGER3D_LK.h index 32e7e2993..cbc43a7ac 100644 --- a/Marlin/src/pins/stm32f1/pins_LONGER3D_LK.h +++ b/Marlin/src/pins/stm32f1/pins_LONGER3D_LK.h @@ -130,7 +130,7 @@ #define DOGLCD_MOSI -1 // Prevent auto-define by Conditionals_post.h #define DOGLCD_SCK -1 -#define GRAPHICAL_TFT_UPSCALE 2 +#define GRAPHICAL_TFT_UPSCALE 2 #define TFT_WIDTH 320 #define TFT_HEIGHT 240 #define TFT_PIXEL_OFFSET_X 32 diff --git a/Marlin/src/pins/stm32f1/pins_MALYAN_M200.h b/Marlin/src/pins/stm32f1/pins_MALYAN_M200.h index 6a8f316b0..39c52ab0d 100644 --- a/Marlin/src/pins/stm32f1/pins_MALYAN_M200.h +++ b/Marlin/src/pins/stm32f1/pins_MALYAN_M200.h @@ -44,8 +44,8 @@ // On STM32F103: // PB3, PB6, PB7, and PB8 can be used with pwm, which rules out TIM2 and TIM4. // On STM32F070, 16 and 17 are in use, but 1 and 3 are available. -#define STEP_TIMER 1 -#define TEMP_TIMER 3 +#define STEP_TIMER 1 +#define TEMP_TIMER 3 // // Limit Switches diff --git a/Marlin/src/pins/stm32f1/pins_MKS_ROBIN.h b/Marlin/src/pins/stm32f1/pins_MKS_ROBIN.h index 5193ddad2..1ab916583 100644 --- a/Marlin/src/pins/stm32f1/pins_MKS_ROBIN.h +++ b/Marlin/src/pins/stm32f1/pins_MKS_ROBIN.h @@ -212,6 +212,6 @@ // Reduce baud rate for software serial reliability #if HAS_TMC_SW_SERIAL - #define TMC_BAUD_RATE 19200 + #define TMC_BAUD_RATE 19200 #endif #endif diff --git a/Marlin/src/pins/stm32f1/pins_MKS_ROBIN_E3_common.h b/Marlin/src/pins/stm32f1/pins_MKS_ROBIN_E3_common.h index 0f55de824..1346e8099 100644 --- a/Marlin/src/pins/stm32f1/pins_MKS_ROBIN_E3_common.h +++ b/Marlin/src/pins/stm32f1/pins_MKS_ROBIN_E3_common.h @@ -105,7 +105,7 @@ #define E0_SERIAL_RX_PIN PC11 // Reduce baud rate to improve software serial reliability - #define TMC_BAUD_RATE 19200 + #define TMC_BAUD_RATE 19200 #endif // diff --git a/Marlin/src/pins/stm32f1/pins_MKS_ROBIN_MINI.h b/Marlin/src/pins/stm32f1/pins_MKS_ROBIN_MINI.h index 716cb1637..cb3ab62cc 100644 --- a/Marlin/src/pins/stm32f1/pins_MKS_ROBIN_MINI.h +++ b/Marlin/src/pins/stm32f1/pins_MKS_ROBIN_MINI.h @@ -81,7 +81,6 @@ #define E0_STEP_PIN PD6 #define E0_DIR_PIN PD3 - // Motor current PWM pins #define MOTOR_CURRENT_PWM_XY_PIN PA6 #define MOTOR_CURRENT_PWM_Z_PIN PA7 @@ -113,7 +112,7 @@ #define SERVO0_PIN PA8 // Enable BLTOUCH support on IO0 (WIFI connector) #define MT_DET_1_PIN PA4 -#define MT_DET_PIN_INVERTING false +#define MT_DET_PIN_INVERTING false #define WIFI_IO0_PIN PC13 @@ -149,9 +148,9 @@ #define FSMC_CS_PIN PD7 // NE4 #define FSMC_RS_PIN PD11 // A0 - #define LCD_USE_DMA_FSMC // Use DMA transfers to send data to the TFT + #define LCD_USE_DMA_FSMC // Use DMA transfers to send data to the TFT #define FSMC_DMA_DEV DMA2 - #define FSMC_DMA_CHANNEL DMA_CH5 + #define FSMC_DMA_CHANNEL DMA_CH5 #define LCD_RESET_PIN PC6 // FSMC_RST #define LCD_BACKLIGHT_PIN PD13 @@ -163,7 +162,7 @@ #define TOUCH_MOSI_PIN PB15 // SPI2_MOSI #endif -#elif ENABLED(TFT_320x240) //TFT32/28 +#elif ENABLED(TFT_320x240) //TFT32/28 #define TFT_RESET_PIN PC6 #define TFT_BACKLIGHT_PIN PD13 @@ -190,7 +189,7 @@ #define ILI9341_COLOR_RGB #endif -#define HAS_SPI_FLASH 1 +#define HAS_SPI_FLASH 1 #define SPI_FLASH_SIZE 0x1000000 // 16MB #if HAS_SPI_FLASH #define W25QXX_CS_PIN PB12 // Flash chip-select diff --git a/Marlin/src/pins/stm32f1/pins_MKS_ROBIN_NANO.h b/Marlin/src/pins/stm32f1/pins_MKS_ROBIN_NANO.h index 6a015a470..83b3bcc42 100644 --- a/Marlin/src/pins/stm32f1/pins_MKS_ROBIN_NANO.h +++ b/Marlin/src/pins/stm32f1/pins_MKS_ROBIN_NANO.h @@ -188,7 +188,7 @@ #define FSMC_DMA_CHANNEL DMA_CH5 #define TOUCH_BUTTONS_HW_SPI - #define TOUCH_BUTTONS_HW_SPI_DEVICE 2 + #define TOUCH_BUTTONS_HW_SPI_DEVICE 2 #endif // LVGL Configs @@ -206,7 +206,7 @@ #define DOGLCD_SCK -1 #ifndef GRAPHICAL_TFT_UPSCALE - #define GRAPHICAL_TFT_UPSCALE 3 + #define GRAPHICAL_TFT_UPSCALE 3 #endif #ifndef TFT_WIDTH #define TFT_WIDTH 480 diff --git a/Marlin/src/pins/stm32f1/pins_MKS_ROBIN_NANO_V2.h b/Marlin/src/pins/stm32f1/pins_MKS_ROBIN_NANO_V2.h index 0f9e6eb37..228049d13 100644 --- a/Marlin/src/pins/stm32f1/pins_MKS_ROBIN_NANO_V2.h +++ b/Marlin/src/pins/stm32f1/pins_MKS_ROBIN_NANO_V2.h @@ -311,7 +311,7 @@ #endif #ifndef GRAPHICAL_TFT_UPSCALE - #define GRAPHICAL_TFT_UPSCALE 3 + #define GRAPHICAL_TFT_UPSCALE 3 #endif #ifndef TFT_PIXEL_OFFSET_Y #define TFT_PIXEL_OFFSET_Y 32 diff --git a/Marlin/src/pins/stm32f1/pins_MKS_ROBIN_PRO.h b/Marlin/src/pins/stm32f1/pins_MKS_ROBIN_PRO.h index 3ca59a93a..c00466677 100644 --- a/Marlin/src/pins/stm32f1/pins_MKS_ROBIN_PRO.h +++ b/Marlin/src/pins/stm32f1/pins_MKS_ROBIN_PRO.h @@ -41,7 +41,7 @@ // // Note: MKS Robin board is using SPI2 interface. // -//#define SPI_MODULE 2 +//#define SPI_MODULE 2 #define ENABLE_SPI2 // diff --git a/Marlin/src/pins/stm32f1/pins_STM32F1R.h b/Marlin/src/pins/stm32f1/pins_STM32F1R.h index 475f31cb7..63fb383c9 100644 --- a/Marlin/src/pins/stm32f1/pins_STM32F1R.h +++ b/Marlin/src/pins/stm32f1/pins_STM32F1R.h @@ -33,7 +33,7 @@ #define DEFAULT_MACHINE_NAME "STM32F103RET6" // Ignore temp readings during development. -//#define BOGUS_TEMPERATURE_GRACE_PERIOD 2000 +//#define BOGUS_TEMPERATURE_GRACE_PERIOD 2000 // // Limit Switches @@ -100,9 +100,9 @@ #if HAS_SPI_LCD #if ENABLED(REPRAPWORLD_GRAPHICAL_LCD) - #define LCD_PINS_RS 49 // CS chip select /SS chip slave select - #define LCD_PINS_ENABLE 51 // SID (MOSI) - #define LCD_PINS_D4 52 // SCK (CLK) clock + #define LCD_PINS_RS 49 // CS chip select /SS chip slave select + #define LCD_PINS_ENABLE 51 // SID (MOSI) + #define LCD_PINS_D4 52 // SCK (CLK) clock #elif BOTH(NEWPANEL, PANEL_ONE) #define LCD_PINS_RS PB8 #define LCD_PINS_ENABLE PD2 @@ -118,13 +118,13 @@ #define LCD_PINS_D6 PB14 #define LCD_PINS_D7 PB15 #if DISABLED(NEWPANEL) - #define BEEPER_PIN 33 + #define BEEPER_PIN 33 // Buttons attached to a shift register // Not wired yet - //#define SHIFT_CLK 38 - //#define SHIFT_LD 42 - //#define SHIFT_OUT 40 - //#define SHIFT_EN 17 + //#define SHIFT_CLK 38 + //#define SHIFT_LD 42 + //#define SHIFT_OUT 40 + //#define SHIFT_EN 17 #endif #endif @@ -132,125 +132,125 @@ #if ENABLED(REPRAP_DISCOUNT_SMART_CONTROLLER) - #define BEEPER_PIN 37 + #define BEEPER_PIN 37 - #define BTN_EN1 31 - #define BTN_EN2 33 - #define BTN_ENC 35 + #define BTN_EN1 31 + #define BTN_EN2 33 + #define BTN_ENC 35 - #define SD_DETECT_PIN 49 - #define KILL_PIN 41 + #define SD_DETECT_PIN 49 + #define KILL_PIN 41 #if ENABLED(BQ_LCD_SMART_CONTROLLER) - #define LCD_BACKLIGHT_PIN 39 + #define LCD_BACKLIGHT_PIN 39 #endif #elif ENABLED(REPRAPWORLD_GRAPHICAL_LCD) - #define BTN_EN1 64 - #define BTN_EN2 59 - #define BTN_ENC 63 - #define SD_DETECT_PIN 42 + #define BTN_EN1 64 + #define BTN_EN2 59 + #define BTN_ENC 63 + #define SD_DETECT_PIN 42 #elif ENABLED(LCD_I2C_PANELOLU2) - #define BTN_EN1 47 - #define BTN_EN2 43 - #define BTN_ENC 32 - #define LCD_SDSS 53 + #define BTN_EN1 47 + #define BTN_EN2 43 + #define BTN_ENC 32 + #define LCD_SDSS 53 #define SD_DETECT_PIN -1 - #define KILL_PIN 41 + #define KILL_PIN 41 #elif ENABLED(LCD_I2C_VIKI) - #define BTN_EN1 22 // https://files.panucatt.com/datasheets/viki_wiring_diagram.pdf explains 40/42. - #define BTN_EN2 7 // 22/7 are unused on RAMPS_14. 22 is unused and 7 the SERVO0_PIN on RAMPS_13. + #define BTN_EN1 22 // https://files.panucatt.com/datasheets/viki_wiring_diagram.pdf explains 40/42. + #define BTN_EN2 7 // 22/7 are unused on RAMPS_14. 22 is unused and 7 the SERVO0_PIN on RAMPS_13. #define BTN_ENC -1 - #define LCD_SDSS 53 - #define SD_DETECT_PIN 49 + #define LCD_SDSS 53 + #define SD_DETECT_PIN 49 #elif ANY(VIKI2, miniVIKI) - #define BEEPER_PIN 33 + #define BEEPER_PIN 33 // Pins for DOGM SPI LCD Support - #define DOGLCD_A0 44 - #define DOGLCD_CS 45 + #define DOGLCD_A0 44 + #define DOGLCD_CS 45 #define LCD_SCREEN_ROT_180 - #define BTN_EN1 22 - #define BTN_EN2 7 - #define BTN_ENC 39 + #define BTN_EN1 22 + #define BTN_EN2 7 + #define BTN_ENC 39 - #define SDSS 53 + #define SDSS 53 #define SD_DETECT_PIN -1 // Pin 49 for display sd interface, 72 for easy adapter board - #define KILL_PIN 31 + #define KILL_PIN 31 - #define STAT_LED_RED_PIN 32 - #define STAT_LED_BLUE_PIN 35 + #define STAT_LED_RED_PIN 32 + #define STAT_LED_BLUE_PIN 35 #elif ENABLED(ELB_FULL_GRAPHIC_CONTROLLER) - #define BTN_EN1 35 - #define BTN_EN2 37 - #define BTN_ENC 31 - #define SD_DETECT_PIN 49 - #define LCD_SDSS 53 - #define KILL_PIN 41 - #define BEEPER_PIN 23 - #define DOGLCD_CS 29 - #define DOGLCD_A0 27 - #define LCD_BACKLIGHT_PIN 33 + #define BTN_EN1 35 + #define BTN_EN2 37 + #define BTN_ENC 31 + #define SD_DETECT_PIN 49 + #define LCD_SDSS 53 + #define KILL_PIN 41 + #define BEEPER_PIN 23 + #define DOGLCD_CS 29 + #define DOGLCD_A0 27 + #define LCD_BACKLIGHT_PIN 33 #elif ENABLED(MINIPANEL) - #define BEEPER_PIN 42 + #define BEEPER_PIN 42 // Pins for DOGM SPI LCD Support - #define DOGLCD_A0 44 - #define DOGLCD_CS 66 - #define LCD_BACKLIGHT_PIN 65 // backlight LED on A11/D65 - #define SDSS 53 + #define DOGLCD_A0 44 + #define DOGLCD_CS 66 + #define LCD_BACKLIGHT_PIN 65 // backlight LED on A11/D65 + #define SDSS 53 - #define KILL_PIN 64 + #define KILL_PIN 64 // GLCD features // Uncomment screen orientation //#define LCD_SCREEN_ROT_90 //#define LCD_SCREEN_ROT_180 //#define LCD_SCREEN_ROT_270 // The encoder and click button - #define BTN_EN1 40 - #define BTN_EN2 63 - #define BTN_ENC 59 + #define BTN_EN1 40 + #define BTN_EN2 63 + #define BTN_ENC 59 // not connected to a pin - #define SD_DETECT_PIN 49 + #define SD_DETECT_PIN 49 #else // Beeper on AUX-4 - #define BEEPER_PIN 33 + #define BEEPER_PIN 33 // Buttons directly attached to AUX-2 #if ENABLED(REPRAPWORLD_KEYPAD) - #define BTN_EN1 64 - #define BTN_EN2 59 - #define BTN_ENC 63 - #define SHIFT_OUT 40 - #define SHIFT_CLK 44 - #define SHIFT_LD 42 + #define BTN_EN1 64 + #define BTN_EN2 59 + #define BTN_ENC 63 + #define SHIFT_OUT 40 + #define SHIFT_CLK 44 + #define SHIFT_LD 42 #elif ENABLED(PANEL_ONE) - #define BTN_EN1 59 // AUX2 PIN 3 - #define BTN_EN2 63 // AUX2 PIN 4 - #define BTN_ENC 49 // AUX3 PIN 7 + #define BTN_EN1 59 // AUX2 PIN 3 + #define BTN_EN2 63 // AUX2 PIN 4 + #define BTN_ENC 49 // AUX3 PIN 7 #else - #define BTN_EN1 37 - #define BTN_EN2 35 - #define BTN_ENC 31 + #define BTN_EN1 37 + #define BTN_EN2 35 + #define BTN_ENC 31 #endif #if ENABLED(G3D_PANEL) - #define SD_DETECT_PIN 49 - #define KILL_PIN 41 + #define SD_DETECT_PIN 49 + #define KILL_PIN 41 #else //#define SD_DETECT_PIN -1 // Ramps doesn't use this #endif diff --git a/Marlin/src/pins/stm32f1/pins_STM3R_MINI.h b/Marlin/src/pins/stm32f1/pins_STM3R_MINI.h index eb7fc9493..c18642fb1 100644 --- a/Marlin/src/pins/stm32f1/pins_STM3R_MINI.h +++ b/Marlin/src/pins/stm32f1/pins_STM3R_MINI.h @@ -36,7 +36,7 @@ #define I2C_EEPROM // Ignore temp readings during development. -//#define BOGUS_TEMPERATURE_GRACE_PERIOD 2000 +//#define BOGUS_TEMPERATURE_GRACE_PERIOD 2000 // // Limit Switches @@ -115,9 +115,9 @@ #if HAS_SPI_LCD #if ENABLED(REPRAPWORLD_GRAPHICAL_LCD) - #define LCD_PINS_RS 49 // CS chip select /SS chip slave select - #define LCD_PINS_ENABLE 51 // SID (MOSI) - #define LCD_PINS_D4 52 // SCK (CLK) clock + #define LCD_PINS_RS 49 // CS chip select /SS chip slave select + #define LCD_PINS_ENABLE 51 // SID (MOSI) + #define LCD_PINS_D4 52 // SCK (CLK) clock #elif BOTH(NEWPANEL, PANEL_ONE) #define LCD_PINS_RS PB8 #define LCD_PINS_ENABLE PD2 @@ -133,13 +133,13 @@ #define LCD_PINS_D6 PB14 #define LCD_PINS_D7 PB15 #if DISABLED(NEWPANEL) - #define BEEPER_PIN 33 + #define BEEPER_PIN 33 // Buttons attached to a shift register // Not wired yet - //#define SHIFT_CLK 38 - //#define SHIFT_LD 42 - //#define SHIFT_OUT 40 - //#define SHIFT_EN 17 + //#define SHIFT_CLK 38 + //#define SHIFT_LD 42 + //#define SHIFT_OUT 40 + //#define SHIFT_EN 17 #endif #endif @@ -155,126 +155,126 @@ #if ENABLED(REPRAP_DISCOUNT_SMART_CONTROLLER) - #define BEEPER_PIN 37 + #define BEEPER_PIN 37 - #define BTN_EN1 31 - #define BTN_EN2 33 - #define BTN_ENC 35 + #define BTN_EN1 31 + #define BTN_EN2 33 + #define BTN_ENC 35 - #define SD_DETECT_PIN 49 - #define KILL_PIN 41 + #define SD_DETECT_PIN 49 + #define KILL_PIN 41 #if ENABLED(BQ_LCD_SMART_CONTROLLER) - #define LCD_BACKLIGHT_PIN 39 + #define LCD_BACKLIGHT_PIN 39 #endif #elif ENABLED(REPRAPWORLD_GRAPHICAL_LCD) - #define BTN_EN1 64 - #define BTN_EN2 59 - #define BTN_ENC 63 - #define SD_DETECT_PIN 42 + #define BTN_EN1 64 + #define BTN_EN2 59 + #define BTN_ENC 63 + #define SD_DETECT_PIN 42 #elif ENABLED(LCD_I2C_PANELOLU2) - #define BTN_EN1 47 - #define BTN_EN2 43 - #define BTN_ENC 32 - #define LCD_SDSS 53 + #define BTN_EN1 47 + #define BTN_EN2 43 + #define BTN_ENC 32 + #define LCD_SDSS 53 #define SD_DETECT_PIN -1 - #define KILL_PIN 41 + #define KILL_PIN 41 #elif ENABLED(LCD_I2C_VIKI) - #define BTN_EN1 22 // https://files.panucatt.com/datasheets/viki_wiring_diagram.pdf explains 40/42. - #define BTN_EN2 7 // 22/7 are unused on RAMPS_14. 22 is unused and 7 the SERVO0_PIN on RAMPS_13. + #define BTN_EN1 22 // https://files.panucatt.com/datasheets/viki_wiring_diagram.pdf explains 40/42. + #define BTN_EN2 7 // 22/7 are unused on RAMPS_14. 22 is unused and 7 the SERVO0_PIN on RAMPS_13. #define BTN_ENC -1 - #define LCD_SDSS 53 - #define SD_DETECT_PIN 49 + #define LCD_SDSS 53 + #define SD_DETECT_PIN 49 #elif ANY(VIKI2, miniVIKI) - #define BEEPER_PIN 33 + #define BEEPER_PIN 33 // Pins for DOGM SPI LCD Support - #define DOGLCD_A0 44 - #define DOGLCD_CS 45 + #define DOGLCD_A0 44 + #define DOGLCD_CS 45 #define LCD_SCREEN_ROT_180 - #define BTN_EN1 22 - #define BTN_EN2 7 - #define BTN_ENC 39 + #define BTN_EN1 22 + #define BTN_EN2 7 + #define BTN_ENC 39 - #define SDSS 53 + #define SDSS 53 #define SD_DETECT_PIN -1 // Pin 49 for display sd interface, 72 for easy adapter board - #define KILL_PIN 31 + #define KILL_PIN 31 - #define STAT_LED_RED_PIN 32 - #define STAT_LED_BLUE_PIN 35 + #define STAT_LED_RED_PIN 32 + #define STAT_LED_BLUE_PIN 35 #elif ENABLED(ELB_FULL_GRAPHIC_CONTROLLER) - #define BTN_EN1 35 - #define BTN_EN2 37 - #define BTN_ENC 31 - #define SD_DETECT_PIN 49 - #define LCD_SDSS 53 - #define KILL_PIN 41 - #define BEEPER_PIN 23 - #define DOGLCD_CS 29 - #define DOGLCD_A0 27 - #define LCD_BACKLIGHT_PIN 33 + #define BTN_EN1 35 + #define BTN_EN2 37 + #define BTN_ENC 31 + #define SD_DETECT_PIN 49 + #define LCD_SDSS 53 + #define KILL_PIN 41 + #define BEEPER_PIN 23 + #define DOGLCD_CS 29 + #define DOGLCD_A0 27 + #define LCD_BACKLIGHT_PIN 33 #elif ENABLED(MINIPANEL) - #define BEEPER_PIN 42 + #define BEEPER_PIN 42 // Pins for DOGM SPI LCD Support - #define DOGLCD_A0 44 - #define DOGLCD_CS 66 - #define LCD_BACKLIGHT_PIN 65 // backlight LED on A11/D65 - #define SDSS 53 + #define DOGLCD_A0 44 + #define DOGLCD_CS 66 + #define LCD_BACKLIGHT_PIN 65 // backlight LED on A11/D65 + #define SDSS 53 - #define KILL_PIN 64 + #define KILL_PIN 64 // GLCD features // Uncomment screen orientation //#define LCD_SCREEN_ROT_90 //#define LCD_SCREEN_ROT_180 //#define LCD_SCREEN_ROT_270 // The encoder and click button - #define BTN_EN1 40 - #define BTN_EN2 63 - #define BTN_ENC 59 + #define BTN_EN1 40 + #define BTN_EN2 63 + #define BTN_ENC 59 // not connected to a pin - #define SD_DETECT_PIN 49 + #define SD_DETECT_PIN 49 #else // Beeper on AUX-4 - #define BEEPER_PIN 33 + #define BEEPER_PIN 33 // Buttons directly attached to AUX-2 #if ENABLED(REPRAPWORLD_KEYPAD) - #define BTN_EN1 64 - #define BTN_EN2 59 - #define BTN_ENC 63 - #define SHIFT_OUT 40 - #define SHIFT_CLK 44 - #define SHIFT_LD 42 + #define BTN_EN1 64 + #define BTN_EN2 59 + #define BTN_ENC 63 + #define SHIFT_OUT 40 + #define SHIFT_CLK 44 + #define SHIFT_LD 42 #elif ENABLED(PANEL_ONE) - #define BTN_EN1 59 // AUX2 PIN 3 - #define BTN_EN2 63 // AUX2 PIN 4 - #define BTN_ENC 49 // AUX3 PIN 7 + #define BTN_EN1 59 // AUX2 PIN 3 + #define BTN_EN2 63 // AUX2 PIN 4 + #define BTN_ENC 49 // AUX3 PIN 7 #else - #define BTN_EN1 37 - #define BTN_EN2 35 - #define BTN_ENC 31 + #define BTN_EN1 37 + #define BTN_EN2 35 + #define BTN_ENC 31 #endif #if ENABLED(G3D_PANEL) - #define SD_DETECT_PIN 49 - #define KILL_PIN 41 + #define SD_DETECT_PIN 49 + #define KILL_PIN 41 #else //#define SD_DETECT_PIN -1 // Ramps doesn't use this #endif diff --git a/Marlin/src/pins/stm32f1/pins_TRIGORILLA_PRO.h b/Marlin/src/pins/stm32f1/pins_TRIGORILLA_PRO.h index c0a0c016b..598db026f 100644 --- a/Marlin/src/pins/stm32f1/pins_TRIGORILLA_PRO.h +++ b/Marlin/src/pins/stm32f1/pins_TRIGORILLA_PRO.h @@ -92,7 +92,7 @@ // #define HEATER_0_PIN PG12 // HEATER1 #define HEATER_BED_PIN PG11 // HOT BED -#define HEATER_BED_INVERTING true +#define HEATER_BED_INVERTING true // // Fans diff --git a/Marlin/src/pins/stm32f4/pins_ARMED.h b/Marlin/src/pins/stm32f4/pins_ARMED.h index 232337f6d..696241693 100644 --- a/Marlin/src/pins/stm32f4/pins_ARMED.h +++ b/Marlin/src/pins/stm32f4/pins_ARMED.h @@ -39,7 +39,7 @@ #define DEFAULT_MACHINE_NAME BOARD_INFO_NAME #define I2C_EEPROM -#define MARLIN_EEPROM_SIZE 0x1000 // 4KB +#define MARLIN_EEPROM_SIZE 0x1000 // 4KB // // Limit Switches @@ -225,5 +225,5 @@ #define Z2_SERIAL_RX_PIN EXT4_PIN #define Z2_SERIAL_TX_PIN EXT4_PIN - #define TMC_BAUD_RATE 19200 + #define TMC_BAUD_RATE 19200 #endif diff --git a/Marlin/src/pins/stm32f4/pins_BEAST.h b/Marlin/src/pins/stm32f4/pins_BEAST.h index 676f1f8c9..691b468c3 100644 --- a/Marlin/src/pins/stm32f4/pins_BEAST.h +++ b/Marlin/src/pins/stm32f4/pins_BEAST.h @@ -36,7 +36,7 @@ #define I2C_EEPROM // Ignore temp readings during development. -//#define BOGUS_TEMPERATURE_GRACE_PERIOD 2000 +//#define BOGUS_TEMPERATURE_GRACE_PERIOD 2000 // // Steppers @@ -123,9 +123,9 @@ #if HAS_SPI_LCD #if ENABLED(REPRAPWORLD_GRAPHICAL_LCD) - #define LCD_PINS_RS 49 // CS chip select /SS chip slave select - #define LCD_PINS_ENABLE 51 // SID (MOSI) - #define LCD_PINS_D4 52 // SCK (CLK) clock + #define LCD_PINS_RS 49 // CS chip select /SS chip slave select + #define LCD_PINS_ENABLE 51 // SID (MOSI) + #define LCD_PINS_D4 52 // SCK (CLK) clock #elif BOTH(NEWPANEL, PANEL_ONE) #define LCD_PINS_RS PB8 #define LCD_PINS_ENABLE PD2 @@ -141,13 +141,13 @@ #define LCD_PINS_D6 PB14 #define LCD_PINS_D7 PB15 #if DISABLED(NEWPANEL) - #define BEEPER_PIN 33 + #define BEEPER_PIN 33 // Buttons attached to a shift register // Not wired yet - //#define SHIFT_CLK 38 - //#define SHIFT_LD 42 - //#define SHIFT_OUT 40 - //#define SHIFT_EN 17 + //#define SHIFT_CLK 38 + //#define SHIFT_LD 42 + //#define SHIFT_OUT 40 + //#define SHIFT_EN 17 #endif #endif @@ -155,126 +155,126 @@ #if ENABLED(REPRAP_DISCOUNT_SMART_CONTROLLER) - #define BEEPER_PIN 37 + #define BEEPER_PIN 37 - #define BTN_EN1 31 - #define BTN_EN2 33 - #define BTN_ENC 35 + #define BTN_EN1 31 + #define BTN_EN2 33 + #define BTN_ENC 35 - #define SD_DETECT_PIN 49 - #define KILL_PIN 41 + #define SD_DETECT_PIN 49 + #define KILL_PIN 41 #if ENABLED(BQ_LCD_SMART_CONTROLLER) - #define LCD_BACKLIGHT_PIN 39 + #define LCD_BACKLIGHT_PIN 39 #endif #elif ENABLED(REPRAPWORLD_GRAPHICAL_LCD) - #define BTN_EN1 64 - #define BTN_EN2 59 - #define BTN_ENC 63 - #define SD_DETECT_PIN 42 + #define BTN_EN1 64 + #define BTN_EN2 59 + #define BTN_ENC 63 + #define SD_DETECT_PIN 42 #elif ENABLED(LCD_I2C_PANELOLU2) - #define BTN_EN1 47 - #define BTN_EN2 43 - #define BTN_ENC 32 - #define LCD_SDSS 53 + #define BTN_EN1 47 + #define BTN_EN2 43 + #define BTN_ENC 32 + #define LCD_SDSS 53 #define SD_DETECT_PIN -1 - #define KILL_PIN 41 + #define KILL_PIN 41 #elif ENABLED(LCD_I2C_VIKI) - #define BTN_EN1 22 // https://files.panucatt.com/datasheets/viki_wiring_diagram.pdf explains 40/42. - #define BTN_EN2 7 // 22/7 are unused on RAMPS_14. 22 is unused and 7 the SERVO0_PIN on RAMPS_13. + #define BTN_EN1 22 // https://files.panucatt.com/datasheets/viki_wiring_diagram.pdf explains 40/42. + #define BTN_EN2 7 // 22/7 are unused on RAMPS_14. 22 is unused and 7 the SERVO0_PIN on RAMPS_13. #define BTN_ENC -1 - #define LCD_SDSS 53 - #define SD_DETECT_PIN 49 + #define LCD_SDSS 53 + #define SD_DETECT_PIN 49 #elif ANY(VIKI2, miniVIKI) - #define BEEPER_PIN 33 + #define BEEPER_PIN 33 // Pins for DOGM SPI LCD Support - #define DOGLCD_A0 44 - #define DOGLCD_CS 45 + #define DOGLCD_A0 44 + #define DOGLCD_CS 45 #define LCD_SCREEN_ROT_180 - #define BTN_EN1 22 - #define BTN_EN2 7 - #define BTN_ENC 39 + #define BTN_EN1 22 + #define BTN_EN2 7 + #define BTN_ENC 39 - #define SDSS 53 + #define SDSS 53 #define SD_DETECT_PIN -1 // Pin 49 for display sd interface, 72 for easy adapter board - #define KILL_PIN 31 + #define KILL_PIN 31 - #define STAT_LED_RED_PIN 32 - #define STAT_LED_BLUE_PIN 35 + #define STAT_LED_RED_PIN 32 + #define STAT_LED_BLUE_PIN 35 #elif ENABLED(ELB_FULL_GRAPHIC_CONTROLLER) - #define BTN_EN1 35 - #define BTN_EN2 37 - #define BTN_ENC 31 - #define SD_DETECT_PIN 49 - #define LCD_SDSS 53 - #define KILL_PIN 41 - #define BEEPER_PIN 23 - #define DOGLCD_CS 29 - #define DOGLCD_A0 27 - #define LCD_BACKLIGHT_PIN 33 + #define BTN_EN1 35 + #define BTN_EN2 37 + #define BTN_ENC 31 + #define SD_DETECT_PIN 49 + #define LCD_SDSS 53 + #define KILL_PIN 41 + #define BEEPER_PIN 23 + #define DOGLCD_CS 29 + #define DOGLCD_A0 27 + #define LCD_BACKLIGHT_PIN 33 #elif ENABLED(MINIPANEL) - #define BEEPER_PIN 42 + #define BEEPER_PIN 42 // Pins for DOGM SPI LCD Support - #define DOGLCD_A0 44 - #define DOGLCD_CS 66 - #define LCD_BACKLIGHT_PIN 65 // backlight LED on A11/D65 - #define SDSS 53 + #define DOGLCD_A0 44 + #define DOGLCD_CS 66 + #define LCD_BACKLIGHT_PIN 65 // backlight LED on A11/D65 + #define SDSS 53 - #define KILL_PIN 64 + #define KILL_PIN 64 // GLCD features // Uncomment screen orientation //#define LCD_SCREEN_ROT_90 //#define LCD_SCREEN_ROT_180 //#define LCD_SCREEN_ROT_270 // The encoder and click button - #define BTN_EN1 40 - #define BTN_EN2 63 - #define BTN_ENC 59 + #define BTN_EN1 40 + #define BTN_EN2 63 + #define BTN_ENC 59 // not connected to a pin - #define SD_DETECT_PIN 49 + #define SD_DETECT_PIN 49 #else // Beeper on AUX-4 - #define BEEPER_PIN 33 + #define BEEPER_PIN 33 // Buttons directly attached to AUX-2 #if ENABLED(REPRAPWORLD_KEYPAD) - #define BTN_EN1 64 - #define BTN_EN2 59 - #define BTN_ENC 63 - #define SHIFT_OUT 40 - #define SHIFT_CLK 44 - #define SHIFT_LD 42 + #define BTN_EN1 64 + #define BTN_EN2 59 + #define BTN_ENC 63 + #define SHIFT_OUT 40 + #define SHIFT_CLK 44 + #define SHIFT_LD 42 #elif ENABLED(PANEL_ONE) - #define BTN_EN1 59 // AUX2 PIN 3 - #define BTN_EN2 63 // AUX2 PIN 4 - #define BTN_ENC 49 // AUX3 PIN 7 + #define BTN_EN1 59 // AUX2 PIN 3 + #define BTN_EN2 63 // AUX2 PIN 4 + #define BTN_ENC 49 // AUX3 PIN 7 #else - #define BTN_EN1 37 - #define BTN_EN2 35 - #define BTN_ENC 31 + #define BTN_EN1 37 + #define BTN_EN2 35 + #define BTN_ENC 31 #endif #if ENABLED(G3D_PANEL) - #define SD_DETECT_PIN 49 - #define KILL_PIN 41 + #define SD_DETECT_PIN 49 + #define KILL_PIN 41 #else //#define SD_DETECT_PIN -1 // Ramps doesn't use this #endif diff --git a/Marlin/src/pins/stm32f4/pins_BLACK_STM32F407VE.h b/Marlin/src/pins/stm32f4/pins_BLACK_STM32F407VE.h index e6350f71d..dc0dab1cd 100644 --- a/Marlin/src/pins/stm32f4/pins_BLACK_STM32F407VE.h +++ b/Marlin/src/pins/stm32f4/pins_BLACK_STM32F407VE.h @@ -41,7 +41,7 @@ //#define I2C_EEPROM #define SRAM_EEPROM_EMULATION -#define MARLIN_EEPROM_SIZE 0x2000 // 8KB +#define MARLIN_EEPROM_SIZE 0x2000 // 8KB // // Servos diff --git a/Marlin/src/pins/stm32f4/pins_BTT_BTT002_V1_0.h b/Marlin/src/pins/stm32f4/pins_BTT_BTT002_V1_0.h index 0e81237ad..d3510b1ff 100644 --- a/Marlin/src/pins/stm32f4/pins_BTT_BTT002_V1_0.h +++ b/Marlin/src/pins/stm32f4/pins_BTT_BTT002_V1_0.h @@ -42,7 +42,7 @@ #endif // Ignore temp readings during development. -//#define BOGUS_TEMPERATURE_GRACE_PERIOD 2000 +//#define BOGUS_TEMPERATURE_GRACE_PERIOD 2000 // // Limit Switches @@ -153,7 +153,7 @@ #define E0_SERIAL_RX_PIN PD7 // Reduce baud rate to improve software serial reliability - #define TMC_BAUD_RATE 19200 + #define TMC_BAUD_RATE 19200 #endif // diff --git a/Marlin/src/pins/stm32f4/pins_BTT_GTR_V1_0.h b/Marlin/src/pins/stm32f4/pins_BTT_GTR_V1_0.h index 776ab1d81..bc882316e 100644 --- a/Marlin/src/pins/stm32f4/pins_BTT_GTR_V1_0.h +++ b/Marlin/src/pins/stm32f4/pins_BTT_GTR_V1_0.h @@ -33,7 +33,7 @@ // Onboard I2C EEPROM #define I2C_EEPROM -#define MARLIN_EEPROM_SIZE 0x2000 // 8KB (24C64 ... 64Kb = 8KB) +#define MARLIN_EEPROM_SIZE 0x2000 // 8KB (24C64 ... 64Kb = 8KB) #define TP // Enable to define servo and probe pins @@ -223,7 +223,7 @@ #define E7_SERIAL_RX_PIN PH14 // Reduce baud rate to improve software serial reliability - #define TMC_BAUD_RATE 19200 + #define TMC_BAUD_RATE 19200 #endif // diff --git a/Marlin/src/pins/stm32f4/pins_BTT_SKR_PRO_common.h b/Marlin/src/pins/stm32f4/pins_BTT_SKR_PRO_common.h index b6bb854d5..e13c4a227 100644 --- a/Marlin/src/pins/stm32f4/pins_BTT_SKR_PRO_common.h +++ b/Marlin/src/pins/stm32f4/pins_BTT_SKR_PRO_common.h @@ -212,7 +212,7 @@ #define E2_SERIAL_RX_PIN PD6 // Reduce baud rate to improve software serial reliability - #define TMC_BAUD_RATE 19200 + #define TMC_BAUD_RATE 19200 #endif // @@ -366,7 +366,7 @@ *  ̄ ̄ * W1 */ -#define ESP_WIFI_MODULE_COM 6 // Must also set either SERIAL_PORT or SERIAL_PORT_2 to this +#define ESP_WIFI_MODULE_COM 6 // Must also set either SERIAL_PORT or SERIAL_PORT_2 to this #define ESP_WIFI_MODULE_BAUDRATE BAUDRATE // Must use same BAUDRATE as SERIAL_PORT & SERIAL_PORT_2 #define ESP_WIFI_MODULE_RESET_PIN PG0 #define ESP_WIFI_MODULE_ENABLE_PIN PG1 diff --git a/Marlin/src/pins/stm32f4/pins_FLYF407ZG.h b/Marlin/src/pins/stm32f4/pins_FLYF407ZG.h index 499edc8dc..a3a5ccdff 100644 --- a/Marlin/src/pins/stm32f4/pins_FLYF407ZG.h +++ b/Marlin/src/pins/stm32f4/pins_FLYF407ZG.h @@ -45,11 +45,11 @@ // the 128kB sector allocated for EEPROM emulation. #define FLASH_EEPROM_LEVELING #elif ENABLED(I2C_EEPROM) - #define MARLIN_EEPROM_SIZE 0x2000 // 8KB + #define MARLIN_EEPROM_SIZE 0x2000 // 8KB #endif #ifndef MARLIN_EEPROM_SIZE - #define MARLIN_EEPROM_SIZE 0x1000 // 4KB + #define MARLIN_EEPROM_SIZE 0x1000 // 4KB #endif // diff --git a/Marlin/src/pins/stm32f4/pins_FYSETC_S6.h b/Marlin/src/pins/stm32f4/pins_FYSETC_S6.h index 03960584f..116aa14cf 100644 --- a/Marlin/src/pins/stm32f4/pins_FYSETC_S6.h +++ b/Marlin/src/pins/stm32f4/pins_FYSETC_S6.h @@ -35,7 +35,7 @@ #endif // Change the priority to 3. Priority 2 is for software serial. -//#define TEMP_TIMER_IRQ_PRIO 3 +//#define TEMP_TIMER_IRQ_PRIO 3 // // EEPROM Emulation @@ -51,7 +51,7 @@ // 128 kB sector allocated for EEPROM emulation. #define FLASH_EEPROM_LEVELING #elif ENABLED(I2C_EEPROM) - #define MARLIN_EEPROM_SIZE 0x1000 // 4KB + #define MARLIN_EEPROM_SIZE 0x1000 // 4KB #endif // diff --git a/Marlin/src/pins/stm32f4/pins_GENERIC_STM32F4.h b/Marlin/src/pins/stm32f4/pins_GENERIC_STM32F4.h index b84c72466..44b2e6b27 100644 --- a/Marlin/src/pins/stm32f4/pins_GENERIC_STM32F4.h +++ b/Marlin/src/pins/stm32f4/pins_GENERIC_STM32F4.h @@ -37,11 +37,11 @@ //#define I2C_EEPROM #ifndef MARLIN_EEPROM_SIZE - #define MARLIN_EEPROM_SIZE 0x1000 // 4KB + #define MARLIN_EEPROM_SIZE 0x1000 // 4KB #endif // Ignore temp readings during development. -//#define BOGUS_TEMPERATURE_GRACE_PERIOD 2000 +//#define BOGUS_TEMPERATURE_GRACE_PERIOD 2000 // // Limit Switches diff --git a/Marlin/src/pins/stm32f4/pins_LERDGE_K.h b/Marlin/src/pins/stm32f4/pins_LERDGE_K.h index 126d57146..0f0d3d048 100644 --- a/Marlin/src/pins/stm32f4/pins_LERDGE_K.h +++ b/Marlin/src/pins/stm32f4/pins_LERDGE_K.h @@ -147,10 +147,10 @@ // Misc. Functions // #define SDSS PC11 -#define LED_PIN PA15 // Alive +#define LED_PIN PA15 // Alive #define PS_ON_PIN -1 #define KILL_PIN -1 -#define POWER_LOSS_PIN PA4 // Power-loss / nAC_FAULT +#define POWER_LOSS_PIN PA4 // Power-loss / nAC_FAULT #define SCK_PIN PC12 #define MISO_PIN PC8 diff --git a/Marlin/src/pins/stm32f4/pins_LERDGE_S.h b/Marlin/src/pins/stm32f4/pins_LERDGE_S.h index 8f9a4339c..d20fd5a6c 100644 --- a/Marlin/src/pins/stm32f4/pins_LERDGE_S.h +++ b/Marlin/src/pins/stm32f4/pins_LERDGE_S.h @@ -27,8 +27,8 @@ #define BOARD_INFO_NAME "Lerdge S" #define DEFAULT_MACHINE_NAME "LERDGE" -#define STEP_TIMER 4 -#define TEMP_TIMER 2 +#define STEP_TIMER 4 +#define TEMP_TIMER 2 //#define I2C_EEPROM @@ -173,15 +173,15 @@ #if ENABLED(SPI_EEPROM) // Lerdge has an SPI EEPROM Winbond W25Q128 (128Mbits) https://www.pjrc.com/teensy/W25Q128FV.pdf - #define SPI_CHAN_EEPROM1 1 + #define SPI_CHAN_EEPROM1 1 #define SPI_EEPROM1_CS PB12 // datasheet: /CS pin, found with multimeter, not tested #define EEPROM_SCK PB13 // datasheet: CLK pin, found with multimeter, not tested #define EEPROM_MISO PB14 // datasheet: DO pin, found with multimeter, not tested #define EEPROM_MOSI PB15 // datasheet: DI pin, found with multimeter, not tested - #define EEPROM_PAGE_SIZE 0x1000U // 4KB (from datasheet) + #define EEPROM_PAGE_SIZE 0x1000U // 4KB (from datasheet) #define MARLIN_EEPROM_SIZE 16UL * (EEPROM_PAGE_SIZE) // Limit to 64KB for now... #else - #define MARLIN_EEPROM_SIZE 0x800U // On SD, Limit to 2KB, require this amount of RAM + #define MARLIN_EEPROM_SIZE 0x800U // On SD, Limit to 2KB, require this amount of RAM #endif // diff --git a/Marlin/src/pins/stm32f4/pins_LERDGE_X.h b/Marlin/src/pins/stm32f4/pins_LERDGE_X.h index 745d911e3..da2851c13 100644 --- a/Marlin/src/pins/stm32f4/pins_LERDGE_X.h +++ b/Marlin/src/pins/stm32f4/pins_LERDGE_X.h @@ -27,8 +27,8 @@ #define BOARD_INFO_NAME "Lerdge X" #define DEFAULT_MACHINE_NAME "LERDGE" -#define STEP_TIMER 4 -#define TEMP_TIMER 2 +#define STEP_TIMER 4 +#define TEMP_TIMER 2 #define I2C_EEPROM @@ -115,7 +115,7 @@ #define KILL_PIN -1 // Lerdge supports auto-power off and power loss sense through a single pin. -#define POWER_LOSS_PIN PC14 // Power-loss / nAC_FAULT +#define POWER_LOSS_PIN PC14 // Power-loss / nAC_FAULT #define SCK_PIN PC12 #define MISO_PIN PC8 diff --git a/Marlin/src/pins/stm32f4/pins_RUMBA32_AUS3D.h b/Marlin/src/pins/stm32f4/pins_RUMBA32_AUS3D.h index de8d13c54..a60a27814 100644 --- a/Marlin/src/pins/stm32f4/pins_RUMBA32_AUS3D.h +++ b/Marlin/src/pins/stm32f4/pins_RUMBA32_AUS3D.h @@ -33,10 +33,10 @@ #if NO_EEPROM_SELECTED #if MB(RUMBA32_V1_0) #define FLASH_EEPROM_EMULATION - #define MARLIN_EEPROM_SIZE 0x1000 // 4KB + #define MARLIN_EEPROM_SIZE 0x1000 // 4KB #elif MB(RUMBA32_V1_1) #define I2C_EEPROM - #define MARLIN_EEPROM_SIZE 0x2000 // 8KB (24LC64T-I/OT) + #define MARLIN_EEPROM_SIZE 0x2000 // 8KB (24LC64T-I/OT) #endif #endif diff --git a/Marlin/src/pins/stm32f4/pins_RUMBA32_MKS.h b/Marlin/src/pins/stm32f4/pins_RUMBA32_MKS.h index d67962b1a..fe6e559bd 100644 --- a/Marlin/src/pins/stm32f4/pins_RUMBA32_MKS.h +++ b/Marlin/src/pins/stm32f4/pins_RUMBA32_MKS.h @@ -37,7 +37,7 @@ #if NO_EEPROM_SELECTED #define FLASH_EEPROM_EMULATION - #define MARLIN_EEPROM_SIZE 0x1000 // 4KB + #define MARLIN_EEPROM_SIZE 0x1000 // 4KB #endif #if ENABLED(FLASH_EEPROM_EMULATION) diff --git a/Marlin/src/pins/stm32f4/pins_RUMBA32_common.h b/Marlin/src/pins/stm32f4/pins_RUMBA32_common.h index aa481a8b7..3b513b31c 100644 --- a/Marlin/src/pins/stm32f4/pins_RUMBA32_common.h +++ b/Marlin/src/pins/stm32f4/pins_RUMBA32_common.h @@ -44,8 +44,8 @@ // TIM7 is used for SERVO // TIMER_SERIAL defaults to TIM7 so we'll override it here // -#define STEP_TIMER 10 -#define TEMP_TIMER 14 +#define STEP_TIMER 10 +#define TEMP_TIMER 14 #define TIMER_SERIAL TIM9 #define HAL_TIMER_RATE F_CPU diff --git a/Marlin/src/pins/stm32f4/pins_VAKE403D.h b/Marlin/src/pins/stm32f4/pins_VAKE403D.h index 01e9da590..d34458c04 100644 --- a/Marlin/src/pins/stm32f4/pins_VAKE403D.h +++ b/Marlin/src/pins/stm32f4/pins_VAKE403D.h @@ -31,7 +31,7 @@ #define BOARD_INFO_NAME "STM32F4 VAkE" //#define I2C_EEPROM -#define MARLIN_EEPROM_SIZE 0x1000 // 4KB +#define MARLIN_EEPROM_SIZE 0x1000 // 4KB // // Servos diff --git a/Marlin/src/pins/stm32f7/pins_THE_BORG.h b/Marlin/src/pins/stm32f7/pins_THE_BORG.h index fa4279920..756f495e4 100644 --- a/Marlin/src/pins/stm32f7/pins_THE_BORG.h +++ b/Marlin/src/pins/stm32f7/pins_THE_BORG.h @@ -31,11 +31,11 @@ #define DEFAULT_MACHINE_NAME BOARD_INFO_NAME #ifndef MARLIN_EEPROM_SIZE - #define MARLIN_EEPROM_SIZE 0x1000 + #define MARLIN_EEPROM_SIZE 0x1000 #endif // Ignore temp readings during development. -//#define BOGUS_TEMPERATURE_GRACE_PERIOD 2000 +//#define BOGUS_TEMPERATURE_GRACE_PERIOD 2000 // // Limit Switches diff --git a/Marlin/src/pins/teensy2/pins_5DPRINT.h b/Marlin/src/pins/teensy2/pins_5DPRINT.h index f473ad145..7ba1fbcf8 100644 --- a/Marlin/src/pins/teensy2/pins_5DPRINT.h +++ b/Marlin/src/pins/teensy2/pins_5DPRINT.h @@ -144,5 +144,5 @@ //DIGIPOTS slave addresses #ifndef DIGIPOT_I2C_ADDRESS_A - #define DIGIPOT_I2C_ADDRESS_A 0x2C // unshifted slave address for DIGIPOT 0x2C (0x58 <- 0x2C << 1) + #define DIGIPOT_I2C_ADDRESS_A 0x2C // unshifted slave address for DIGIPOT 0x2C (0x58 <- 0x2C << 1) #endif diff --git a/Marlin/src/pins/teensy2/pins_PRINTRBOARD_REVF.h b/Marlin/src/pins/teensy2/pins_PRINTRBOARD_REVF.h index 7bf0f334f..83b17b656 100644 --- a/Marlin/src/pins/teensy2/pins_PRINTRBOARD_REVF.h +++ b/Marlin/src/pins/teensy2/pins_PRINTRBOARD_REVF.h @@ -158,7 +158,7 @@ #define DAC_STEPPER_MAX 3520 #define DAC_STEPPER_VREF 1 // internal Vref, gain 1x = 2.048V #define DAC_STEPPER_GAIN 0 -#define DAC_OR_ADDRESS 0x00 +#define DAC_OR_ADDRESS 0x00 // // Temperature Sensors From 434e43cc42f782d5fbe89db21f97571c71ad62f3 Mon Sep 17 00:00:00 2001 From: qwewer0 <57561110+qwewer0@users.noreply.github.com> Date: Sat, 22 Aug 2020 09:04:28 +0200 Subject: [PATCH 156/194] Change XY_PROBE_SPEED format to (x*60) (#18997) --- Marlin/Configuration.h | 18 +++++++++--------- Marlin/Configuration_adv.h | 20 ++++++++++---------- 2 files changed, 19 insertions(+), 19 deletions(-) diff --git a/Marlin/Configuration.h b/Marlin/Configuration.h index 2b36f883c..2639bcd97 100644 --- a/Marlin/Configuration.h +++ b/Marlin/Configuration.h @@ -235,8 +235,8 @@ #elif ENABLED(MAGNETIC_PARKING_EXTRUDER) - #define MPE_FAST_SPEED 9000 // (mm/m) Speed for travel before last distance point - #define MPE_SLOW_SPEED 4500 // (mm/m) Speed for last distance travel to park and couple + #define MPE_FAST_SPEED 9000 // (mm/min) Speed for travel before last distance point + #define MPE_SLOW_SPEED 4500 // (mm/min) Speed for last distance travel to park and couple #define MPE_TRAVEL_DISTANCE 10 // (mm) Last distance point #define MPE_COMPENSATION 0 // Offset Compensation -1 , 0 , 1 (multiplier) only for coupling @@ -284,8 +284,8 @@ #if ENABLED(PRIME_BEFORE_REMOVE) #define SWITCHING_TOOLHEAD_PRIME_MM 20 // (mm) Extruder prime length #define SWITCHING_TOOLHEAD_RETRACT_MM 10 // (mm) Retract after priming length - #define SWITCHING_TOOLHEAD_PRIME_FEEDRATE 300 // (mm/m) Extruder prime feedrate - #define SWITCHING_TOOLHEAD_RETRACT_FEEDRATE 2400 // (mm/m) Extruder retract feedrate + #define SWITCHING_TOOLHEAD_PRIME_FEEDRATE 300 // (mm/min) Extruder prime feedrate + #define SWITCHING_TOOLHEAD_RETRACT_FEEDRATE 2400 // (mm/min) Extruder retract feedrate #endif #elif ENABLED(ELECTROMAGNETIC_SWITCHING_TOOLHEAD) #define SWITCHING_TOOLHEAD_Z_HOP 2 // (mm) Z raise for switching @@ -999,13 +999,13 @@ // with NOZZLE_AS_PROBE this can be negative for a wider probing area. #define PROBING_MARGIN 10 -// X and Y axis travel speed (mm/m) between probes -#define XY_PROBE_SPEED 8000 +// X and Y axis travel speed (mm/min) between probes +#define XY_PROBE_SPEED (133*60) -// Feedrate (mm/m) for the first approach when double-probing (MULTIPLE_PROBING == 2) +// Feedrate (mm/min) for the first approach when double-probing (MULTIPLE_PROBING == 2) #define Z_PROBE_SPEED_FAST HOMING_FEEDRATE_Z -// Feedrate (mm/m) for the "accurate" probe of each point +// Feedrate (mm/min) for the "accurate" probe of each point #define Z_PROBE_SPEED_SLOW (Z_PROBE_SPEED_FAST / 2) /** @@ -1399,7 +1399,7 @@ #define Z_SAFE_HOMING_Y_POINT Y_CENTER // Y point for Z homing #endif -// Homing speeds (mm/m) +// Homing speeds (mm/min) #define HOMING_FEEDRATE_XY (50*60) #define HOMING_FEEDRATE_Z (4*60) diff --git a/Marlin/Configuration_adv.h b/Marlin/Configuration_adv.h index b27d7c79e..7d9182ad9 100644 --- a/Marlin/Configuration_adv.h +++ b/Marlin/Configuration_adv.h @@ -339,7 +339,7 @@ #if ENABLED(EXTRUDER_RUNOUT_PREVENT) #define EXTRUDER_RUNOUT_MINTEMP 190 #define EXTRUDER_RUNOUT_SECONDS 30 - #define EXTRUDER_RUNOUT_SPEED 1500 // (mm/m) + #define EXTRUDER_RUNOUT_SPEED 1500 // (mm/min) #define EXTRUDER_RUNOUT_EXTRUDE 5 // (mm) #endif @@ -883,7 +883,7 @@ // increments while checking for the contact to be broken. #define BACKLASH_MEASUREMENT_LIMIT 0.5 // (mm) #define BACKLASH_MEASUREMENT_RESOLUTION 0.005 // (mm) - #define BACKLASH_MEASUREMENT_FEEDRATE Z_PROBE_SPEED_SLOW // (mm/m) + #define BACKLASH_MEASUREMENT_FEEDRATE Z_PROBE_SPEED_SLOW // (mm/min) #endif #endif #endif @@ -1025,7 +1025,7 @@ // @section lcd #if EITHER(ULTIPANEL, EXTENSIBLE_UI) - #define MANUAL_FEEDRATE { 50*60, 50*60, 4*60, 2*60 } // (mm/m) Feedrates for manual moves along X, Y, Z, E from panel + #define MANUAL_FEEDRATE { 50*60, 50*60, 4*60, 2*60 } // (mm/min) Feedrates for manual moves along X, Y, Z, E from panel #define SHORT_MANUAL_Z_MOVE 0.025 // (mm) Smallest manual Z move (< 0.1mm) #if ENABLED(ULTIPANEL) #define MANUAL_E_MOVES_RELATIVE // Display extruder move distance rather than "position" @@ -1985,13 +1985,13 @@ // Load / Unload #define TOOLCHANGE_FS_LENGTH 12 // (mm) Load / Unload length #define TOOLCHANGE_FS_EXTRA_RESUME_LENGTH 0 // (mm) Extra length for better restart, fine tune by LCD/Gcode) - #define TOOLCHANGE_FS_RETRACT_SPEED (50*60) // (mm/m) (Unloading) - #define TOOLCHANGE_FS_UNRETRACT_SPEED (25*60) // (mm/m) (On SINGLENOZZLE or Bowden loading must be slowed down) + #define TOOLCHANGE_FS_RETRACT_SPEED (50*60) // (mm/min) (Unloading) + #define TOOLCHANGE_FS_UNRETRACT_SPEED (25*60) // (mm/min) (On SINGLENOZZLE or Bowden loading must be slowed down) // Longer prime to clean out a SINGLENOZZLE #define TOOLCHANGE_FS_EXTRA_PRIME 0 // (mm) Extra priming length - #define TOOLCHANGE_FS_PRIME_SPEED (4.6*60) // (mm/m) Extra priming feedrate - #define TOOLCHANGE_FS_WIPE_RETRACT 0 // (mm/m) Retract before cooling for less stringing, better wipe, etc. + #define TOOLCHANGE_FS_PRIME_SPEED (4.6*60) // (mm/min) Extra priming feedrate + #define TOOLCHANGE_FS_WIPE_RETRACT 0 // (mm/min) Retract before cooling for less stringing, better wipe, etc. // Cool after prime to reduce stringing #define TOOLCHANGE_FS_FAN -1 // Fan index or -1 to skip @@ -2027,7 +2027,7 @@ //#define TOOLCHANGE_PARK #if ENABLED(TOOLCHANGE_PARK) #define TOOLCHANGE_PARK_XY { X_MIN_POS + 10, Y_MIN_POS + 10 } - #define TOOLCHANGE_PARK_XY_FEEDRATE 6000 // (mm/m) + #define TOOLCHANGE_PARK_XY_FEEDRATE 6000 // (mm/min) //#define TOOLCHANGE_PARK_X_ONLY // X axis only move //#define TOOLCHANGE_PARK_Y_ONLY // Y axis only move #endif @@ -3151,7 +3151,7 @@ //#define GCODE_MOTION_MODES // Remember the motion mode (G0 G1 G2 G3 G5 G38.X) and apply for X Y Z E F, etc. // Enable and set a (default) feedrate for all G0 moves -//#define G0_FEEDRATE 3000 // (mm/m) +//#define G0_FEEDRATE 3000 // (mm/min) #ifdef G0_FEEDRATE //#define VARIABLE_G0_FEEDRATE // The G0 feedrate is set by F in G0 motion mode #endif @@ -3468,7 +3468,7 @@ #if ENABLED(PRUSA_MMU2_S_MODE) #define MMU2_C0_RETRY 5 // Number of retries (total time = timeout*retries) - #define MMU2_CAN_LOAD_FEEDRATE 800 // (mm/m) + #define MMU2_CAN_LOAD_FEEDRATE 800 // (mm/min) #define MMU2_CAN_LOAD_SEQUENCE \ { 0.1, MMU2_CAN_LOAD_FEEDRATE }, \ { 60.0, MMU2_CAN_LOAD_FEEDRATE }, \ From ca105493aa1cf5098e8ecac52197683d2de4bd17 Mon Sep 17 00:00:00 2001 From: Mathew Winters Date: Sun, 23 Aug 2020 09:20:37 +1200 Subject: [PATCH 157/194] NOZZLE_CLEAN_NO_Y (#18870) --- Marlin/Configuration.h | 5 ++++- Marlin/src/libs/nozzle.cpp | 15 ++++++++++++--- 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/Marlin/Configuration.h b/Marlin/Configuration.h index 2639bcd97..d23b69c02 100644 --- a/Marlin/Configuration.h +++ b/Marlin/Configuration.h @@ -1604,9 +1604,12 @@ // Move the nozzle to the initial position after cleaning #define NOZZLE_CLEAN_GOBACK - // Enable for a purge/clean station that's always at the gantry height (thus no Z move) + // For a purge/clean station that's always at the gantry height (thus no Z move) //#define NOZZLE_CLEAN_NO_Z + // For a purge/clean station mounted on the X axis + //#define NOZZLE_CLEAN_NO_Y + // Explicit wipe G-code script applies to a G12 with no arguments. //#define WIPE_SEQUENCE_COMMANDS "G1 X-17 Y25 Z10 F4000\nG1 Z1\nM114\nG1 X-17 Y25\nG1 X-17 Y95\nG1 X-17 Y25\nG1 X-17 Y95\nG1 X-17 Y25\nG1 X-17 Y95\nG1 X-17 Y25\nG1 X-17 Y95\nG1 X-17 Y25\nG1 X-17 Y95\nG1 X-17 Y25\nG1 X-17 Y95\nG1 Z15\nM400\nG0 X-10.0 Y-9.0" diff --git a/Marlin/src/libs/nozzle.cpp b/Marlin/src/libs/nozzle.cpp index 21e6ffb7c..f93e55248 100644 --- a/Marlin/src/libs/nozzle.cpp +++ b/Marlin/src/libs/nozzle.cpp @@ -46,15 +46,24 @@ Nozzle nozzle; // Move to the starting point #if ENABLED(NOZZLE_CLEAN_NO_Z) - do_blocking_move_to_xy(start); + #if ENABLED(NOZZLE_CLEAN_NO_Y) + do_blocking_move_to_x(start.x); + #else + do_blocking_move_to_xy(start); + #endif #else do_blocking_move_to(start); #endif // Start the stroke pattern LOOP_L_N(i, strokes >> 1) { - do_blocking_move_to_xy(end); - do_blocking_move_to_xy(start); + #if ENABLED(NOZZLE_CLEAN_NO_Y) + do_blocking_move_to_x(end.x); + do_blocking_move_to_x(start.x); + #else + do_blocking_move_to_xy(end); + do_blocking_move_to_xy(start); + #endif } TERN_(NOZZLE_CLEAN_GOBACK, do_blocking_move_to(oldpos)); From fa5a1f7d7f029641c89c9378fe228782bea31838 Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Sat, 22 Aug 2020 16:40:22 -0500 Subject: [PATCH 158/194] PGMSTR constexpr => const --- Marlin/src/HAL/HAL.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Marlin/src/HAL/HAL.h b/Marlin/src/HAL/HAL.h index 29702f2d2..c7b753144 100644 --- a/Marlin/src/HAL/HAL.h +++ b/Marlin/src/HAL/HAL.h @@ -38,7 +38,7 @@ // String helper #ifndef PGMSTR - #define PGMSTR(NAM,STR) constexpr char NAM[] = STR + #define PGMSTR(NAM,STR) const char NAM[] = STR #endif inline void watchdog_refresh() { From d84aff701e10a49d5ccc69ce323fdb0fdb84b6db Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Sat, 22 Aug 2020 17:28:44 -0500 Subject: [PATCH 159/194] Fix probing margin sanity-check --- Marlin/src/inc/SanityCheck.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Marlin/src/inc/SanityCheck.h b/Marlin/src/inc/SanityCheck.h index ddefcc8b6..5aa614f11 100644 --- a/Marlin/src/inc/SanityCheck.h +++ b/Marlin/src/inc/SanityCheck.h @@ -1328,7 +1328,7 @@ static_assert(Y_MAX_LENGTH >= Y_BED_SIZE, "Movement bounds (Y_MIN_POS, Y_MAX_POS static_assert(PROBING_MARGIN_RIGHT >= 0, "PROBING_MARGIN_RIGHT must be >= 0."); #endif - #define _MARGIN(A) TERN(IS_SCARA, SCARA_PRINTABLE_RADIUS, TERN(DELTA, DELTA_PRINTABLE_RADIUS, A##_CENTER)) + #define _MARGIN(A) TERN(IS_SCARA, SCARA_PRINTABLE_RADIUS, TERN(DELTA, DELTA_PRINTABLE_RADIUS, ((A##_BED_SIZE) / 2))) static_assert(PROBING_MARGIN < _MARGIN(X), "PROBING_MARGIN is too large."); static_assert(PROBING_MARGIN_BACK < _MARGIN(Y), "PROBING_MARGIN_BACK is too large."); static_assert(PROBING_MARGIN_FRONT < _MARGIN(Y), "PROBING_MARGIN_FRONT is too large."); From 34fb9c7071b33307a89a8650c8b4e07f1afd1bc6 Mon Sep 17 00:00:00 2001 From: thinkyhead Date: Sun, 23 Aug 2020 00:12:22 +0000 Subject: [PATCH 160/194] [cron] Bump distribution date (2020-08-23) --- Marlin/src/inc/Version.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Marlin/src/inc/Version.h b/Marlin/src/inc/Version.h index d5e0e2a82..652999971 100644 --- a/Marlin/src/inc/Version.h +++ b/Marlin/src/inc/Version.h @@ -42,7 +42,7 @@ * version was tagged. */ #ifndef STRING_DISTRIBUTION_DATE - #define STRING_DISTRIBUTION_DATE "2020-08-22" + #define STRING_DISTRIBUTION_DATE "2020-08-23" #endif /** From bff0c68078664fcb229e2b9a9d4eb6b858df2dd2 Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Sun, 23 Aug 2020 00:12:03 -0500 Subject: [PATCH 161/194] Consistent static/value item macros --- Marlin/src/lcd/fontutils.cpp | 3 +- Marlin/src/lcd/menu/menu_info.cpp | 63 +++++++++++++++---------------- Marlin/src/lcd/menu/menu_item.h | 14 +++++++ 3 files changed, 45 insertions(+), 35 deletions(-) diff --git a/Marlin/src/lcd/fontutils.cpp b/Marlin/src/lcd/fontutils.cpp index ffa6d0df7..8b046af9a 100644 --- a/Marlin/src/lcd/fontutils.cpp +++ b/Marlin/src/lcd/fontutils.cpp @@ -73,7 +73,7 @@ int pf_bsearch_r(void *userdata, size_t num_data, pf_bsearch_cb_comp_t cb_comp, return -1; } -/* This function gets the character at the pstart position, interpreting UTF8 multybyte sequences +/* This function gets the character at the pstart position, interpreting UTF8 multibyte sequences and returns the pointer to the next character */ uint8_t* get_utf8_value_cb(uint8_t *pstart, read_byte_cb_t cb_read_byte, wchar_t *pval) { uint32_t val = 0; @@ -161,7 +161,6 @@ uint8_t* get_utf8_value_cb(uint8_t *pstart, read_byte_cb_t cb_read_byte, wchar_t } static inline uint8_t utf8_strlen_cb(const char *pstart, read_byte_cb_t cb_read_byte) { - uint8_t cnt = 0; uint8_t *pnext = (uint8_t *)pstart; for (;;) { diff --git a/Marlin/src/lcd/menu/menu_info.cpp b/Marlin/src/lcd/menu/menu_info.cpp index 2fe8ccbab..00ab9ad19 100644 --- a/Marlin/src/lcd/menu/menu_info.cpp +++ b/Marlin/src/lcd/menu/menu_info.cpp @@ -34,9 +34,6 @@ #include "game/game.h" #endif -#define VALUE_ITEM(MSG, VALUE, STYL) do{ char msg[21]; strcpy_P(msg, PSTR(": ")); strcpy(msg + 2, VALUE); STATIC_ITEM(MSG, STYL, msg); }while(0) -#define VALUE_ITEM_P(MSG, PVALUE, STYL) do{ char msg[21]; strcpy_P(msg, PSTR(": ")); strcpy_P(msg + 2, PSTR(PVALUE)); STATIC_ITEM(MSG, STYL, msg); }while(0) - #if ENABLED(PRINTCOUNTER) #include "../../module/printcounter.h" @@ -52,14 +49,14 @@ char buffer[21]; START_SCREEN(); // 12345678901234567890 - VALUE_ITEM(MSG_INFO_PRINT_COUNT, i16tostr3left(stats.totalPrints), SS_LEFT); // Print Count: 999 - VALUE_ITEM(MSG_INFO_COMPLETED_PRINTS, i16tostr3left(stats.finishedPrints), SS_LEFT); // Completed : 666 + STATIC_ITEM(MSG_INFO_PRINT_COUNT, SS_LEFT, i16tostr3left(stats.totalPrints)); // Print Count: 999 + STATIC_ITEM(MSG_INFO_COMPLETED_PRINTS, SS_LEFT, i16tostr3left(stats.finishedPrints)); // Completed : 666 STATIC_ITEM(MSG_INFO_PRINT_TIME, SS_LEFT); // Total print Time: - STATIC_ITEM_P(PSTR("> "), SS_LEFT, duration_t(stats.printTime).toString(buffer)); // > 99y 364d 23h 59m 59s + STATIC_ITEM_P(PSTR("> "), SS_LEFT, duration_t(stats.printTime).toString(buffer)); // > 99y 364d 23h 59m 59s STATIC_ITEM(MSG_INFO_PRINT_LONGEST, SS_LEFT); // Longest job time: - STATIC_ITEM_P(PSTR("> "), SS_LEFT, duration_t(stats.longestPrint).toString(buffer)); // > 99y 364d 23h 59m 59s + STATIC_ITEM_P(PSTR("> "), SS_LEFT, duration_t(stats.longestPrint).toString(buffer)); // > 99y 364d 23h 59m 59s STATIC_ITEM(MSG_INFO_PRINT_FILAMENT, SS_LEFT); // Extruded total: sprintf_P(buffer, PSTR("%ld.%im") @@ -73,8 +70,8 @@ #endif #if SERVICE_INTERVAL_1 > 0 - STATIC_ITEM_P(PSTR(SERVICE_NAME_1 " "), SS_LEFT, buffer); // Service X in: - STATIC_ITEM_P(PSTR("> "), SS_LEFT, duration_t(stats.nextService1).toString(buffer)); // > 7d 12h 11m 10s + STATIC_ITEM_P(PSTR(SERVICE_NAME_1 " "), SS_LEFT, buffer); // Service X in: + STATIC_ITEM_P(PSTR("> "), SS_LEFT, duration_t(stats.nextService1).toString(buffer)); // > 7d 12h 11m 10s #endif #if SERVICE_INTERVAL_2 > 0 @@ -104,8 +101,8 @@ void menu_info_thermistors() { #define THERMISTOR_ID TEMP_SENSOR_0 #include "../thermistornames.h" STATIC_ITEM_P(PSTR(LCD_STR_E0 ": " THERMISTOR_NAME), SS_INVERT); - VALUE_ITEM_P(MSG_INFO_MIN_TEMP, STRINGIFY(HEATER_0_MINTEMP), SS_LEFT); - VALUE_ITEM_P(MSG_INFO_MAX_TEMP, STRINGIFY(HEATER_0_MAXTEMP), SS_LEFT); + PSTRING_ITEM(MSG_INFO_MIN_TEMP, STRINGIFY(HEATER_0_MINTEMP), SS_LEFT); + PSTRING_ITEM(MSG_INFO_MAX_TEMP, STRINGIFY(HEATER_0_MAXTEMP), SS_LEFT); #endif #if TEMP_SENSOR_1 != 0 @@ -113,8 +110,8 @@ void menu_info_thermistors() { #define THERMISTOR_ID TEMP_SENSOR_1 #include "../thermistornames.h" STATIC_ITEM_P(PSTR(LCD_STR_E1 ": " THERMISTOR_NAME), SS_INVERT); - VALUE_ITEM_P(MSG_INFO_MIN_TEMP, STRINGIFY(HEATER_1_MINTEMP), SS_LEFT); - VALUE_ITEM_P(MSG_INFO_MAX_TEMP, STRINGIFY(HEATER_1_MAXTEMP), SS_LEFT); + PSTRING_ITEM(MSG_INFO_MIN_TEMP, STRINGIFY(HEATER_1_MINTEMP), SS_LEFT); + PSTRING_ITEM(MSG_INFO_MAX_TEMP, STRINGIFY(HEATER_1_MAXTEMP), SS_LEFT); #endif #if TEMP_SENSOR_2 != 0 @@ -122,8 +119,8 @@ void menu_info_thermistors() { #define THERMISTOR_ID TEMP_SENSOR_2 #include "../thermistornames.h" STATIC_ITEM_P(PSTR(LCD_STR_E2 ": " THERMISTOR_NAME), SS_INVERT); - VALUE_ITEM_P(MSG_INFO_MIN_TEMP, STRINGIFY(HEATER_2_MINTEMP), SS_LEFT); - VALUE_ITEM_P(MSG_INFO_MAX_TEMP, STRINGIFY(HEATER_2_MAXTEMP), SS_LEFT); + PSTRING_ITEM(MSG_INFO_MIN_TEMP, STRINGIFY(HEATER_2_MINTEMP), SS_LEFT); + PSTRING_ITEM(MSG_INFO_MAX_TEMP, STRINGIFY(HEATER_2_MAXTEMP), SS_LEFT); #endif #if TEMP_SENSOR_3 != 0 @@ -131,8 +128,8 @@ void menu_info_thermistors() { #define THERMISTOR_ID TEMP_SENSOR_3 #include "../thermistornames.h" STATIC_ITEM_P(PSTR(LCD_STR_E3 ": " THERMISTOR_NAME), SS_INVERT); - VALUE_ITEM_P(MSG_INFO_MIN_TEMP, STRINGIFY(HEATER_3_MINTEMP), SS_LEFT); - VALUE_ITEM_P(MSG_INFO_MAX_TEMP, STRINGIFY(HEATER_3_MAXTEMP), SS_LEFT); + PSTRING_ITEM(MSG_INFO_MIN_TEMP, STRINGIFY(HEATER_3_MINTEMP), SS_LEFT); + PSTRING_ITEM(MSG_INFO_MAX_TEMP, STRINGIFY(HEATER_3_MAXTEMP), SS_LEFT); #endif #if TEMP_SENSOR_4 != 0 @@ -140,8 +137,8 @@ void menu_info_thermistors() { #define THERMISTOR_ID TEMP_SENSOR_4 #include "../thermistornames.h" STATIC_ITEM_P(PSTR(LCD_STR_E4 ": " THERMISTOR_NAME), SS_INVERT); - VALUE_ITEM_P(MSG_INFO_MIN_TEMP, STRINGIFY(HEATER_4_MINTEMP), SS_LEFT); - VALUE_ITEM_P(MSG_INFO_MAX_TEMP, STRINGIFY(HEATER_4_MAXTEMP), SS_LEFT); + PSTRING_ITEM(MSG_INFO_MIN_TEMP, STRINGIFY(HEATER_4_MINTEMP), SS_LEFT); + PSTRING_ITEM(MSG_INFO_MAX_TEMP, STRINGIFY(HEATER_4_MAXTEMP), SS_LEFT); #endif #if TEMP_SENSOR_5 != 0 @@ -149,8 +146,8 @@ void menu_info_thermistors() { #define THERMISTOR_ID TEMP_SENSOR_5 #include "../thermistornames.h" STATIC_ITEM_P(PSTR(LCD_STR_E5 ": " THERMISTOR_NAME), SS_INVERT); - VALUE_ITEM_P(MSG_INFO_MIN_TEMP, STRINGIFY(HEATER_5_MINTEMP), SS_LEFT); - VALUE_ITEM_P(MSG_INFO_MAX_TEMP, STRINGIFY(HEATER_5_MAXTEMP), SS_LEFT); + PSTRING_ITEM(MSG_INFO_MIN_TEMP, STRINGIFY(HEATER_5_MINTEMP), SS_LEFT); + PSTRING_ITEM(MSG_INFO_MAX_TEMP, STRINGIFY(HEATER_5_MAXTEMP), SS_LEFT); #endif #if TEMP_SENSOR_6 != 0 @@ -158,8 +155,8 @@ void menu_info_thermistors() { #define THERMISTOR_ID TEMP_SENSOR_6 #include "../thermistornames.h" STATIC_ITEM_P(PSTR(LCD_STR_E6 ": " THERMISTOR_NAME), SS_INVERT); - VALUE_ITEM_P(MSG_INFO_MIN_TEMP, STRINGIFY(HEATER_6_MINTEMP), SS_LEFT); - VALUE_ITEM_P(MSG_INFO_MAX_TEMP, STRINGIFY(HEATER_6_MAXTEMP), SS_LEFT); + PSTRING_ITEM(MSG_INFO_MIN_TEMP, STRINGIFY(HEATER_6_MINTEMP), SS_LEFT); + PSTRING_ITEM(MSG_INFO_MAX_TEMP, STRINGIFY(HEATER_6_MAXTEMP), SS_LEFT); #endif #if TEMP_SENSOR_7 != 0 @@ -167,8 +164,8 @@ void menu_info_thermistors() { #define THERMISTOR_ID TEMP_SENSOR_7 #include "../thermistornames.h" STATIC_ITEM_P(PSTR(LCD_STR_E7 ": " THERMISTOR_NAME), SS_INVERT); - VALUE_ITEM_P(MSG_INFO_MIN_TEMP, STRINGIFY(HEATER_7_MINTEMP), SS_LEFT); - VALUE_ITEM_P(MSG_INFO_MAX_TEMP, STRINGIFY(HEATER_7_MAXTEMP), SS_LEFT); + PSTRING_ITEM(MSG_INFO_MIN_TEMP, STRINGIFY(HEATER_7_MINTEMP), SS_LEFT); + PSTRING_ITEM(MSG_INFO_MAX_TEMP, STRINGIFY(HEATER_7_MAXTEMP), SS_LEFT); #endif #if EXTRUDERS @@ -180,8 +177,8 @@ void menu_info_thermistors() { #define THERMISTOR_ID TEMP_SENSOR_BED #include "../thermistornames.h" STATIC_ITEM_P(PSTR("BED:" THERMISTOR_NAME), SS_INVERT); - VALUE_ITEM_P(MSG_INFO_MIN_TEMP, STRINGIFY(BED_MINTEMP), SS_LEFT); - VALUE_ITEM_P(MSG_INFO_MAX_TEMP, STRINGIFY(BED_MAXTEMP), SS_LEFT); + PSTRING_ITEM(MSG_INFO_MIN_TEMP, STRINGIFY(BED_MINTEMP), SS_LEFT); + PSTRING_ITEM(MSG_INFO_MAX_TEMP, STRINGIFY(BED_MAXTEMP), SS_LEFT); STATIC_ITEM(TERN(WATCH_BED, MSG_INFO_RUNAWAY_ON, MSG_INFO_RUNAWAY_OFF), SS_LEFT); #endif @@ -190,8 +187,8 @@ void menu_info_thermistors() { #define THERMISTOR_ID TEMP_SENSOR_CHAMBER #include "../thermistornames.h" STATIC_ITEM_P(PSTR("CHAM:" THERMISTOR_NAME), SS_INVERT); - VALUE_ITEM_P(MSG_INFO_MIN_TEMP, STRINGIFY(CHAMBER_MINTEMP), SS_LEFT); - VALUE_ITEM_P(MSG_INFO_MAX_TEMP, STRINGIFY(CHAMBER_MAXTEMP), SS_LEFT); + PSTRING_ITEM(MSG_INFO_MIN_TEMP, STRINGIFY(CHAMBER_MINTEMP), SS_LEFT); + PSTRING_ITEM(MSG_INFO_MAX_TEMP, STRINGIFY(CHAMBER_MAXTEMP), SS_LEFT); STATIC_ITEM(TERN(WATCH_CHAMBER, MSG_INFO_RUNAWAY_ON, MSG_INFO_RUNAWAY_OFF), SS_LEFT); #endif @@ -209,9 +206,9 @@ void menu_info_board() { #ifdef BOARD_WEBSITE_URL STATIC_ITEM_P(PSTR(BOARD_WEBSITE_URL), SS_LEFT); // www.my3dprinter.com #endif - VALUE_ITEM_P(MSG_INFO_BAUDRATE, STRINGIFY(BAUDRATE), SS_CENTER); // Baud: 250000 - VALUE_ITEM_P(MSG_INFO_PROTOCOL, PROTOCOL_VERSION, SS_CENTER); // Protocol: 1.0 - VALUE_ITEM_P(MSG_INFO_PSU, PSU_NAME, SS_CENTER); + PSTRING_ITEM(MSG_INFO_BAUDRATE, STRINGIFY(BAUDRATE), SS_CENTER); // Baud: 250000 + PSTRING_ITEM(MSG_INFO_PROTOCOL, PROTOCOL_VERSION, SS_CENTER); // Protocol: 1.0 + PSTRING_ITEM(MSG_INFO_PSU, PSU_NAME, SS_CENTER); END_SCREEN(); } @@ -242,7 +239,7 @@ void menu_info_board() { STATIC_ITEM_P(PSTR(STRING_DISTRIBUTION_DATE)); // YYYY-MM-DD HH:MM STATIC_ITEM_P(PSTR(MACHINE_NAME)); // My3DPrinter STATIC_ITEM_P(PSTR(WEBSITE_URL)); // www.my3dprinter.com - VALUE_ITEM_P(MSG_INFO_EXTRUDERS, STRINGIFY(EXTRUDERS), SS_CENTER); // Extruders: 2 + PSTRING_ITEM(MSG_INFO_EXTRUDERS, STRINGIFY(EXTRUDERS), SS_CENTER); // Extruders: 2 #if HAS_LEVELING STATIC_ITEM( TERN_(AUTO_BED_LEVELING_3POINT, MSG_3POINT_LEVELING) // 3-Point Leveling diff --git a/Marlin/src/lcd/menu/menu_item.h b/Marlin/src/lcd/menu/menu_item.h index b322246e5..bee05141b 100644 --- a/Marlin/src/lcd/menu/menu_item.h +++ b/Marlin/src/lcd/menu/menu_item.h @@ -328,6 +328,20 @@ class MenuItem_bool : public MenuEditItemBase { NEXT_ITEM(); \ }while(0) +// PSTRING_ITEM is like STATIC_ITEM but it takes +// two PSTRs with the style as the last parameter. + +#define PSTRING_ITEM_P(PLABEL, PVAL, STYL) do{ \ + constexpr int m = 20; \ + char msg[m+1]; \ + msg[0] = ':'; msg[1] = ' '; \ + strncpy_P(msg+2, PSTR(PVAL), m-2); \ + if (msg[m-1] & 0x80) msg[m-1] = '\0'; \ + STATIC_ITEM_P(PLABEL, STYL, msg); \ +}while(0) + +#define PSTRING_ITEM(LABEL, V...) PSTRING_ITEM_P(GET_TEXT(LABEL), ##V) + #define STATIC_ITEM(LABEL, V...) STATIC_ITEM_P(GET_TEXT(LABEL), ##V) #define STATIC_ITEM_N(LABEL, N, V...) STATIC_ITEM_N_P(GET_TEXT(LABEL), ##V) From 6036a0df6b8eeb5d7af97c82bbf0e6cb9636e424 Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Sun, 23 Aug 2020 02:07:42 -0500 Subject: [PATCH 162/194] Fix DUET_SMART_EFFECTOR --- Marlin/src/MarlinCore.cpp | 2 +- Marlin/src/gcode/config/M672.cpp | 19 +++++++++---------- Marlin/src/gcode/gcode.cpp | 2 +- Marlin/src/gcode/gcode.h | 4 ++-- 4 files changed, 13 insertions(+), 14 deletions(-) diff --git a/Marlin/src/MarlinCore.cpp b/Marlin/src/MarlinCore.cpp index 3544a8840..f371ddfc6 100644 --- a/Marlin/src/MarlinCore.cpp +++ b/Marlin/src/MarlinCore.cpp @@ -922,7 +922,7 @@ void setup() { SETUP_RUN(L64xxManager.init()); // Set up SPI, init drivers #endif - #if ENABLED(SMART_EFFECTOR) && PIN_EXISTS(SMART_EFFECTOR_MOD) + #if ENABLED(DUET_SMART_EFFECTOR) && PIN_EXISTS(SMART_EFFECTOR_MOD) OUT_WRITE(SMART_EFFECTOR_MOD_PIN, LOW); // Put Smart Effector into NORMAL mode #endif diff --git a/Marlin/src/gcode/config/M672.cpp b/Marlin/src/gcode/config/M672.cpp index 58dc27177..af7423051 100644 --- a/Marlin/src/gcode/config/M672.cpp +++ b/Marlin/src/gcode/config/M672.cpp @@ -22,20 +22,12 @@ #include "../../inc/MarlinConfig.h" -#if ENABLED(SMART_EFFECTOR) && PIN_EXISTS(SMART_EFFECTOR_MOD) +#if ENABLED(DUET_SMART_EFFECTOR) && PIN_EXISTS(SMART_EFFECTOR_MOD) #include "../gcode.h" #include "../../HAL/shared/Delay.h" #include "../parser.h" -/** - * M672 - Set/reset Duet Smart Effector sensitivity - * - * One of these is required: - * S - 0-255 - * R - Flag to reset sensitivity to default - */ - /** * The Marlin format for the M672 command is different than shown in the Duet Smart Effector * documentation https://duet3d.dozuki.com/Wiki/Smart_effector_and_carriage_adapters_for_delta_printer @@ -77,6 +69,13 @@ void M672_send(uint8_t b) { // bit rate requirement: 1KHz +/- 30% } } +/** + * M672 - Set/reset Duet Smart Effector sensitivity + * + * One of these is required: + * S - 0-255 + * R - Flag to reset sensitivity to default + */ void GcodeSuite::M672() { if (parser.seen('R')) { M672_send(M672_ERASEBYTE); @@ -96,4 +95,4 @@ void GcodeSuite::M672() { OUT_WRITE(SMART_EFFECTOR_MOD_PIN, LOW); // Keep Smart Effector in NORMAL mode } -#endif // SMART_EFFECTOR && SMART_EFFECTOR_MOD_PIN +#endif // DUET_SMART_EFFECTOR && SMART_EFFECTOR_MOD_PIN diff --git a/Marlin/src/gcode/gcode.cpp b/Marlin/src/gcode/gcode.cpp index edbeca9c9..c0a795025 100644 --- a/Marlin/src/gcode/gcode.cpp +++ b/Marlin/src/gcode/gcode.cpp @@ -790,7 +790,7 @@ void GcodeSuite::process_parsed_command(const bool no_ok/*=false*/) { case 666: M666(); break; // M666: Set delta or multiple endstop adjustment #endif - #if ENABLED(SMART_EFFECTOR) && PIN_EXISTS(SMART_EFFECTOR_MOD) + #if ENABLED(DUET_SMART_EFFECTOR) && PIN_EXISTS(SMART_EFFECTOR_MOD) case 672: M672(); break; // M672: Set/clear Duet Smart Effector sensitivity #endif diff --git a/Marlin/src/gcode/gcode.h b/Marlin/src/gcode/gcode.h index e04cd637e..8848450fc 100644 --- a/Marlin/src/gcode/gcode.h +++ b/Marlin/src/gcode/gcode.h @@ -236,7 +236,7 @@ * M605 - Set Dual X-Carriage movement mode: "M605 S [X] [R]". (Requires DUAL_X_CARRIAGE) * M665 - Set delta configurations: "M665 H L R S B X Y Z (Requires DELTA) * M666 - Set/get offsets for delta (Requires DELTA) or dual endstops. (Requires [XYZ]_DUAL_ENDSTOPS) - * M672 - Set/Reset Duet Smart Effector's sensitivity. (Requires SMART_EFFECTOR and SMART_EFFECTOR_MOD_PIN) + * M672 - Set/Reset Duet Smart Effector's sensitivity. (Requires DUET_SMART_EFFECTOR and SMART_EFFECTOR_MOD_PIN) * M701 - Load filament (Requires FILAMENT_LOAD_UNLOAD_GCODES) * M702 - Unload filament (Requires FILAMENT_LOAD_UNLOAD_GCODES) * M810-M819 - Define/execute a G-code macro (Requires GCODE_MACROS) @@ -792,7 +792,7 @@ private: static void M666(); #endif - #if ENABLED(SMART_EFFECTOR) && PIN_EXISTS(SMART_EFFECTOR_MOD) + #if ENABLED(DUET_SMART_EFFECTOR) && PIN_EXISTS(SMART_EFFECTOR_MOD) static void M672(); #endif From b36163d53ad1f3c67fa86f4e5521bbcdba7ed020 Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Sun, 23 Aug 2020 02:45:58 -0500 Subject: [PATCH 163/194] Fix up conditions, comments --- Marlin/src/inc/SanityCheck.h | 20 +++++++------------- Marlin/src/pins/ramps/pins_RAMPS_PLUS.h | 2 +- Marlin/src/pins/ramps/pins_ULTIMAKER_OLD.h | 2 +- buildroot/share/vscode/avrdude.conf | 2 +- buildroot/share/vscode/avrdude_linux.conf | 2 +- buildroot/share/vscode/avrdude_macOS.conf | 2 +- 6 files changed, 12 insertions(+), 18 deletions(-) diff --git a/Marlin/src/inc/SanityCheck.h b/Marlin/src/inc/SanityCheck.h index 5aa614f11..01d07ea4d 100644 --- a/Marlin/src/inc/SanityCheck.h +++ b/Marlin/src/inc/SanityCheck.h @@ -39,26 +39,20 @@ #define TEST2 1 #define TEST3 0 #define TEST4 true -#if ENABLED(TEST0) +#if ENABLED(TEST0) || !ENABLED(TEST2) || ENABLED(TEST3) #error "ENABLED is borked!" #endif -#if DISABLED(TEST1) - #error "DISABLED is borked!" +#if BOTH(TEST0, TEST1) + #error "BOTH is borked!" #endif -#if !ENABLED(TEST2) - #error "ENABLED is borked!" -#endif -#if ENABLED(TEST3) - #error "ENABLED is borked!" -#endif -#if DISABLED(TEST4) +#if DISABLED(TEST1) || !DISABLED(TEST3) || DISABLED(TEST4) || DISABLED(TEST0, TEST1, TEST2, TEST4) || !DISABLED(TEST0, TEST3) #error "DISABLED is borked!" #endif #if !ANY(TEST1, TEST2, TEST3, TEST4) || ANY(TEST0, TEST3) #error "ANY is borked!" #endif -#if DISABLED(TEST0, TEST1, TEST2, TEST4) - #error "DISABLED is borked!" +#if NONE(TEST0, TEST1, TEST2, TEST4) || !NONE(TEST0, TEST3) + #error "NONE is borked!" #endif #undef TEST1 #undef TEST2 @@ -2202,7 +2196,7 @@ static_assert(hbm[Z_AXIS] >= 0, "HOMING_BUMP_MM.Z must be greater than or equal + (ENABLED(REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER) && DISABLED(IS_RRD_FG_SC)) \ + (ENABLED(ULTRA_LCD) && DISABLED(IS_ULTRA_LCD)) \ + (ENABLED(U8GLIB_SSD1306) && DISABLED(IS_U8GLIB_SSD1306)) \ - + (ENABLED(MINIPANEL) && DISABLED(MKS_MINI_12864, ENDER2_STOCKDISPLAY)) \ + + (ENABLED(MINIPANEL) && NONE(MKS_MINI_12864, ENDER2_STOCKDISPLAY)) \ + (ENABLED(MKS_MINI_12864) && DISABLED(MKS_LCD12864)) \ + (ENABLED(EXTENSIBLE_UI) && DISABLED(IS_EXTUI)) \ + (ENABLED(ULTIPANEL) && DISABLED(IS_ULTIPANEL)) \ diff --git a/Marlin/src/pins/ramps/pins_RAMPS_PLUS.h b/Marlin/src/pins/ramps/pins_RAMPS_PLUS.h index 9af4a3e05..bdd53abbc 100644 --- a/Marlin/src/pins/ramps/pins_RAMPS_PLUS.h +++ b/Marlin/src/pins/ramps/pins_RAMPS_PLUS.h @@ -74,7 +74,7 @@ #undef E0_CS_PIN #undef E1_CS_PIN -#if ENABLED(ULTRA_LCD, REPRAPWORLD_GRAPHICAL_LCD, CR10_STOCKDISPLAY) && !BOTH(NEWPANEL, PANEL_ONE) +#if ENABLED(ULTRA_LCD) && NONE(REPRAPWORLD_GRAPHICAL_LCD, CR10_STOCKDISPLAY) && !BOTH(NEWPANEL, PANEL_ONE) #if DISABLED(MKS_12864OLED) || ENABLED(MKS_12864OLED_SSD1306) #undef LCD_PINS_RS #define LCD_PINS_RS 42 // 3DYMY boards pin 16 -> 42 diff --git a/Marlin/src/pins/ramps/pins_ULTIMAKER_OLD.h b/Marlin/src/pins/ramps/pins_ULTIMAKER_OLD.h index 955801558..a44baf26e 100644 --- a/Marlin/src/pins/ramps/pins_ULTIMAKER_OLD.h +++ b/Marlin/src/pins/ramps/pins_ULTIMAKER_OLD.h @@ -174,7 +174,7 @@ #define LCD_PINS_D6 32 #define LCD_PINS_D7 30 -#elif ENABLED(BOARD_REV_1_5, ULTRA_LCD) +#elif BOTH(BOARD_REV_1_5, ULTRA_LCD) #define BEEPER_PIN 18 diff --git a/buildroot/share/vscode/avrdude.conf b/buildroot/share/vscode/avrdude.conf index 9f85aa0d2..991d25575 100644 --- a/buildroot/share/vscode/avrdude.conf +++ b/buildroot/share/vscode/avrdude.conf @@ -151,7 +151,7 @@ # # INSTRUCTION FORMATS # -# Instruction formats are specified as a comma seperated list of +# Instruction formats are specified as a comma separated list of # string values containing information (bit specifiers) about each # of the 32 bits of the instruction. Bit specifiers may be one of # the following formats: diff --git a/buildroot/share/vscode/avrdude_linux.conf b/buildroot/share/vscode/avrdude_linux.conf index 64d3b677d..ff429a028 100644 --- a/buildroot/share/vscode/avrdude_linux.conf +++ b/buildroot/share/vscode/avrdude_linux.conf @@ -151,7 +151,7 @@ # # INSTRUCTION FORMATS # -# Instruction formats are specified as a comma seperated list of +# Instruction formats are specified as a comma separated list of # string values containing information (bit specifiers) about each # of the 32 bits of the instruction. Bit specifiers may be one of # the following formats: diff --git a/buildroot/share/vscode/avrdude_macOS.conf b/buildroot/share/vscode/avrdude_macOS.conf index 814e87e35..6147a2259 100644 --- a/buildroot/share/vscode/avrdude_macOS.conf +++ b/buildroot/share/vscode/avrdude_macOS.conf @@ -151,7 +151,7 @@ # # INSTRUCTION FORMATS # -# Instruction formats are specified as a comma seperated list of +# Instruction formats are specified as a comma separated list of # string values containing information (bit specifiers) about each # of the 32 bits of the instruction. Bit specifiers may be one of # the following formats: From 638f6f0f0607399bce82123663f5463380f83ce4 Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Sun, 23 Aug 2020 03:14:11 -0500 Subject: [PATCH 164/194] Neopixel => NeoPixel --- Marlin/Configuration.h | 10 +++++----- Marlin/Configuration_adv.h | 2 +- Marlin/src/feature/leds/neopixel.h | 2 +- Marlin/src/gcode/feature/leds/M150.cpp | 2 +- Marlin/src/pins/lpc1768/pins_BTT_SKR_V1_4.h | 2 +- 5 files changed, 9 insertions(+), 9 deletions(-) diff --git a/Marlin/Configuration.h b/Marlin/Configuration.h index d23b69c02..f84d78a50 100644 --- a/Marlin/Configuration.h +++ b/Marlin/Configuration.h @@ -2062,7 +2062,7 @@ //#define FYSETC_MINI_12864_X_X // Type C/D/E/F. No tunable RGB Backlight by default //#define FYSETC_MINI_12864_1_2 // Type C/D/E/F. Simple RGB Backlight (always on) //#define FYSETC_MINI_12864_2_0 // Type A/B. Discreet RGB Backlight -//#define FYSETC_MINI_12864_2_1 // Type A/B. Neopixel RGB Backlight +//#define FYSETC_MINI_12864_2_1 // Type A/B. NeoPixel RGB Backlight //#define FYSETC_GENERIC_12864_1_1 // Larger display with basic ON/OFF backlight. // @@ -2332,13 +2332,13 @@ * Adds the M150 command to set the LED (or LED strip) color. * If pins are PWM capable (e.g., 4, 5, 6, 11) then a range of * luminance values can be set from 0 to 255. - * For Neopixel LED an overall brightness parameter is also available. + * For NeoPixel LED an overall brightness parameter is also available. * * *** CAUTION *** * LED Strips require a MOSFET Chip between PWM lines and LEDs, * as the Arduino cannot handle the current the LEDs will require. * Failure to follow this precaution can destroy your Arduino! - * NOTE: A separate 5V power supply is required! The Neopixel LED needs + * NOTE: A separate 5V power supply is required! The NeoPixel LED needs * more current than the Arduino 5V linear regulator can produce. * *** CAUTION *** * @@ -2355,7 +2355,7 @@ //#define RGB_LED_W_PIN -1 #endif -// Support for Adafruit Neopixel LED driver +// Support for Adafruit NeoPixel LED driver //#define NEOPIXEL_LED #if ENABLED(NEOPIXEL_LED) #define NEOPIXEL_TYPE NEO_GRBW // NEO_GRBW / NEO_GRB - four/three channel driver type (defined in Adafruit_NeoPixel.h) @@ -2368,7 +2368,7 @@ #define NEOPIXEL_BRIGHTNESS 127 // Initial brightness (0-255) //#define NEOPIXEL_STARTUP_TEST // Cycle through colors at startup - // Use a single Neopixel LED for static (background) lighting + // Use a single NeoPixel LED for static (background) lighting //#define NEOPIXEL_BKGD_LED_INDEX 0 // Index of the LED to use //#define NEOPIXEL_BKGD_COLOR { 255, 255, 255, 0 } // R, G, B, W #endif diff --git a/Marlin/Configuration_adv.h b/Marlin/Configuration_adv.h index 7d9182ad9..e773b5378 100644 --- a/Marlin/Configuration_adv.h +++ b/Marlin/Configuration_adv.h @@ -488,7 +488,7 @@ //#define CASE_LIGHT_MAX_PWM 128 // Limit pwm //#define CASE_LIGHT_MENU // Add Case Light options to the LCD menu //#define CASE_LIGHT_NO_BRIGHTNESS // Disable brightness control. Enable for non-PWM lighting. - //#define CASE_LIGHT_USE_NEOPIXEL // Use Neopixel LED as case light, requires NEOPIXEL_LED. + //#define CASE_LIGHT_USE_NEOPIXEL // Use NeoPixel LED as case light, requires NEOPIXEL_LED. #if ENABLED(CASE_LIGHT_USE_NEOPIXEL) #define CASE_LIGHT_NEOPIXEL_COLOR { 255, 255, 255, 255 } // { Red, Green, Blue, White } #endif diff --git a/Marlin/src/feature/leds/neopixel.h b/Marlin/src/feature/leds/neopixel.h index 0155785e9..c3c8e2fbd 100644 --- a/Marlin/src/feature/leds/neopixel.h +++ b/Marlin/src/feature/leds/neopixel.h @@ -22,7 +22,7 @@ #pragma once /** - * Neopixel support + * NeoPixel support */ // ------------------------ diff --git a/Marlin/src/gcode/feature/leds/M150.cpp b/Marlin/src/gcode/feature/leds/M150.cpp index 88f02951a..1c81c6d6b 100644 --- a/Marlin/src/gcode/feature/leds/M150.cpp +++ b/Marlin/src/gcode/feature/leds/M150.cpp @@ -35,7 +35,7 @@ * If brightness is left out, no value changed * * With NEOPIXEL_LED: - * I Set the Neopixel index to affect. Default: All + * I Set the NeoPixel index to affect. Default: All * * Examples: * diff --git a/Marlin/src/pins/lpc1768/pins_BTT_SKR_V1_4.h b/Marlin/src/pins/lpc1768/pins_BTT_SKR_V1_4.h index 69f4f2445..8fbf382be 100644 --- a/Marlin/src/pins/lpc1768/pins_BTT_SKR_V1_4.h +++ b/Marlin/src/pins/lpc1768/pins_BTT_SKR_V1_4.h @@ -345,7 +345,7 @@ #endif // -// Neopixel LED +// NeoPixel LED // #ifndef NEOPIXEL_PIN #define NEOPIXEL_PIN P1_24 From dd6cbbbbad6f14183f7005c7fc85674863202262 Mon Sep 17 00:00:00 2001 From: qwewer0 <57561110+qwewer0@users.noreply.github.com> Date: Sun, 23 Aug 2020 12:08:47 +0200 Subject: [PATCH 165/194] Feedrate comment (#19116) --- Marlin/Configuration_adv.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Marlin/Configuration_adv.h b/Marlin/Configuration_adv.h index e773b5378..19906819a 100644 --- a/Marlin/Configuration_adv.h +++ b/Marlin/Configuration_adv.h @@ -909,9 +909,9 @@ #define CALIBRATION_MEASUREMENT_RESOLUTION 0.01 // mm - #define CALIBRATION_FEEDRATE_SLOW 60 // mm/m - #define CALIBRATION_FEEDRATE_FAST 1200 // mm/m - #define CALIBRATION_FEEDRATE_TRAVEL 3000 // mm/m + #define CALIBRATION_FEEDRATE_SLOW 60 // mm/min + #define CALIBRATION_FEEDRATE_FAST 1200 // mm/min + #define CALIBRATION_FEEDRATE_TRAVEL 3000 // mm/min // The following parameters refer to the conical section of the nozzle tip. #define CALIBRATION_NOZZLE_TIP_HEIGHT 1.0 // mm From 5dadba432e4f824ef5153423db68460fe7fd4364 Mon Sep 17 00:00:00 2001 From: thinkyhead Date: Mon, 24 Aug 2020 00:12:38 +0000 Subject: [PATCH 166/194] [cron] Bump distribution date (2020-08-24) --- Marlin/src/inc/Version.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Marlin/src/inc/Version.h b/Marlin/src/inc/Version.h index 652999971..5e6d7fe5e 100644 --- a/Marlin/src/inc/Version.h +++ b/Marlin/src/inc/Version.h @@ -42,7 +42,7 @@ * version was tagged. */ #ifndef STRING_DISTRIBUTION_DATE - #define STRING_DISTRIBUTION_DATE "2020-08-23" + #define STRING_DISTRIBUTION_DATE "2020-08-24" #endif /** From 4b124352ef89065561ddd7f40fd66ade95a5af07 Mon Sep 17 00:00:00 2001 From: Oleksii Zelivianskyi <50808386+alexeyzel@users.noreply.github.com> Date: Mon, 24 Aug 2020 06:13:49 +0300 Subject: [PATCH 167/194] TFT32 for MKS Robin Nano 1.2 (#19031) --- Marlin/src/pins/stm32f1/pins_MKS_ROBIN_NANO.h | 30 +++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/Marlin/src/pins/stm32f1/pins_MKS_ROBIN_NANO.h b/Marlin/src/pins/stm32f1/pins_MKS_ROBIN_NANO.h index 83b3bcc42..2c1d016f8 100644 --- a/Marlin/src/pins/stm32f1/pins_MKS_ROBIN_NANO.h +++ b/Marlin/src/pins/stm32f1/pins_MKS_ROBIN_NANO.h @@ -234,6 +234,36 @@ #define XPT2046_Y_OFFSET 256 #endif +#elif ENABLED(TFT_320x240) // TFT32/28 + #define TFT_RESET_PIN PC6 + #define TFT_BACKLIGHT_PIN PD13 + + #define LCD_USE_DMA_FSMC // Use DMA transfers to send data to the TFT + #define FSMC_CS_PIN PD7 + #define FSMC_RS_PIN PD11 + #define FSMC_DMA_DEV DMA2 + #define FSMC_DMA_CHANNEL DMA_CH5 + + #define XPT2046_X_CALIBRATION -12246 + #define XPT2046_Y_CALIBRATION 9453 + #define XPT2046_X_OFFSET 360 + #define XPT2046_Y_OFFSET -22 + + #define TOUCH_CS_PIN PA7 // SPI2_NSS + #define TOUCH_SCK_PIN PB13 // SPI2_SCK + #define TOUCH_MISO_PIN PB14 // SPI2_MISO + #define TOUCH_MOSI_PIN PB15 // SPI2_MOSI + + #define TFT_DRIVER ILI9341 + #define TFT_BUFFER_SIZE 14400 + + // YV for normal screen mounting + //#define ILI9341_ORIENTATION ILI9341_MADCTL_MY | ILI9341_MADCTL_MV + // XV for 180° rotated screen mounting + #define ILI9341_ORIENTATION ILI9341_MADCTL_MX | ILI9341_MADCTL_MV + + #define ILI9341_COLOR_RGB + #elif ENABLED(TFT_480x320) #define XPT2046_X_CALIBRATION 17880 #define XPT2046_Y_CALIBRATION -12234 From c488070859c1995fe957938b1b6302c4eeef1ea3 Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Sun, 23 Aug 2020 23:57:51 -0500 Subject: [PATCH 168/194] Minor cleanup w/r/t LEDs --- Marlin/Configuration.h | 2 +- Marlin/src/feature/leds/leds.cpp | 9 +++------ Marlin/src/feature/leds/leds.h | 8 ++------ Marlin/src/feature/leds/neopixel.cpp | 13 ++++++------- Marlin/src/feature/leds/neopixel.h | 6 ++---- Marlin/src/feature/leds/pca9533.cpp | 2 +- Marlin/src/feature/leds/pca9533.h | 2 +- Marlin/src/feature/leds/pca9632.cpp | 4 ++-- Marlin/src/feature/leds/pca9632.h | 4 ++-- Marlin/src/feature/password/password.cpp | 2 +- Marlin/src/feature/password/password.h | 2 +- Marlin/src/gcode/feature/password/M510-M512.cpp | 2 +- Marlin/src/gcode/gcode.h | 2 +- Marlin/src/lcd/menu/menu_led.cpp | 15 ++++++++------- Marlin/src/lcd/ultralcd.cpp | 2 +- Marlin/src/pins/stm32f1/pins_CCROBOT_MEEB_3DP.h | 2 +- 16 files changed, 34 insertions(+), 43 deletions(-) diff --git a/Marlin/Configuration.h b/Marlin/Configuration.h index f84d78a50..39dc19523 100644 --- a/Marlin/Configuration.h +++ b/Marlin/Configuration.h @@ -2363,7 +2363,7 @@ //#define NEOPIXEL2_TYPE NEOPIXEL_TYPE //#define NEOPIXEL2_PIN 5 //#define NEOPIXEL2_INSERIES // Default behavior is NeoPixel 2 in parallel - #define NEOPIXEL_PIXELS 30 // Number of LEDs in the strip, larger of 2 strips if 2 neopixel strips are used + #define NEOPIXEL_PIXELS 30 // Number of LEDs in the strip, larger of 2 strips if 2 NeoPixel strips are used #define NEOPIXEL_IS_SEQUENTIAL // Sequential display for temperature change - LED by LED. Disable to change all LEDs at once. #define NEOPIXEL_BRIGHTNESS 127 // Initial brightness (0-255) //#define NEOPIXEL_STARTUP_TEST // Cycle through colors at startup diff --git a/Marlin/src/feature/leds/leds.cpp b/Marlin/src/feature/leds/leds.cpp index eec0cde63..d1c0bfd5e 100644 --- a/Marlin/src/feature/leds/leds.cpp +++ b/Marlin/src/feature/leds/leds.cpp @@ -129,12 +129,9 @@ void LEDLights::set_color(const LEDColor &incol #endif - #if ENABLED(PCA9632) - // Update I2C LED driver - pca9632_set_led_color(incol); - #endif - - TERN_(PCA9533, PCA9533_setColor(incol.r, incol.g, incol.b)); + // Update I2C LED driver + TERN_(PCA9632, PCA9632_set_led_color(incol)); + TERN_(PCA9533, PCA9533_set_rgb(incol.r, incol.g, incol.b)); #if EITHER(LED_CONTROL_MENU, PRINTER_EVENT_LEDS) // Don't update the color when OFF diff --git a/Marlin/src/feature/leds/leds.h b/Marlin/src/feature/leds/leds.h index 577c94752..1302f63c1 100644 --- a/Marlin/src/feature/leds/leds.h +++ b/Marlin/src/feature/leds/leds.h @@ -104,11 +104,7 @@ typedef struct LEDColor { bool operator!=(const LEDColor &right) { return !operator==(right); } bool is_off() const { - return 3 > r + g + b - #if HAS_WHITE_LED - + w - #endif - ; + return 3 > r + g + b + TERN0(HAS_WHITE_LED, w); } } LEDColor; @@ -156,7 +152,7 @@ public: #endif ); - inline void set_color(uint8_t r, uint8_t g, uint8_t b + static inline void set_color(uint8_t r, uint8_t g, uint8_t b #if HAS_WHITE_LED , uint8_t w=0 #if ENABLED(NEOPIXEL_LED) diff --git a/Marlin/src/feature/leds/neopixel.cpp b/Marlin/src/feature/leds/neopixel.cpp index 520d4d63b..ce2e4ee77 100644 --- a/Marlin/src/feature/leds/neopixel.cpp +++ b/Marlin/src/feature/leds/neopixel.cpp @@ -53,9 +53,9 @@ Adafruit_NeoPixel Marlin_NeoPixel::adaneo1(NEOPIXEL_PIXELS, NEOPIXEL_PIN, NEOPIX #endif void Marlin_NeoPixel::set_color(const uint32_t color) { - if (get_neo_index() >= 0) { - set_pixel_color(get_neo_index(), color); - set_neo_index(-1); + if (neoindex >= 0) { + set_pixel_color(neoindex, color); + neoindex = -1; } else { for (uint16_t i = 0; i < pixels(); ++i) { @@ -78,18 +78,17 @@ void Marlin_NeoPixel::set_color_startup(const uint32_t color) { } void Marlin_NeoPixel::init() { - set_neo_index(-1); // -1 .. NEOPIXEL_PIXELS-1 range + neoindex = -1; // -1 .. NEOPIXEL_PIXELS-1 range set_brightness(NEOPIXEL_BRIGHTNESS); // 0 .. 255 range begin(); show(); // initialize to all off #if ENABLED(NEOPIXEL_STARTUP_TEST) set_color_startup(adaneo1.Color(255, 0, 0, 0)); // red - safe_delay(1000); + safe_delay(500); set_color_startup(adaneo1.Color(0, 255, 0, 0)); // green - safe_delay(1000); + safe_delay(500); set_color_startup(adaneo1.Color(0, 0, 255, 0)); // blue - safe_delay(1000); #endif #ifdef NEOPIXEL_BKGD_LED_INDEX diff --git a/Marlin/src/feature/leds/neopixel.h b/Marlin/src/feature/leds/neopixel.h index c3c8e2fbd..0d9fdefc0 100644 --- a/Marlin/src/feature/leds/neopixel.h +++ b/Marlin/src/feature/leds/neopixel.h @@ -65,17 +65,15 @@ private: , adaneo2 #endif ; - static int8_t neoindex; public: + static int8_t neoindex; + static void init(); static void set_color_startup(const uint32_t c); static void set_color(const uint32_t c); - FORCE_INLINE static void set_neo_index(const int8_t neoIndex) { neoindex = neoIndex; } - FORCE_INLINE static int8_t get_neo_index() { return neoindex; } - #ifdef NEOPIXEL_BKGD_LED_INDEX static void set_color_background(); #endif diff --git a/Marlin/src/feature/leds/pca9533.cpp b/Marlin/src/feature/leds/pca9533.cpp index bcc4bc50a..0fd4d6675 100644 --- a/Marlin/src/feature/leds/pca9533.cpp +++ b/Marlin/src/feature/leds/pca9533.cpp @@ -62,7 +62,7 @@ void PCA9533_setOff() { PCA9533_writeRegister(PCA9533_REG_SEL, 0); } -void PCA9533_setColor(uint8_t red, uint8_t green, uint8_t blue) { +void PCA9533_set_rgb(uint8_t red, uint8_t green, uint8_t blue) { uint8_t r_pwm0 = 0; // Register data - PWM value uint8_t r_pwm1 = 0; // Register data - PWM value diff --git a/Marlin/src/feature/leds/pca9533.h b/Marlin/src/feature/leds/pca9533.h index 899418ff2..431058c49 100644 --- a/Marlin/src/feature/leds/pca9533.h +++ b/Marlin/src/feature/leds/pca9533.h @@ -55,5 +55,5 @@ void PCA9533_init(); void PCA9533_reset(); -void PCA9533_setColor(uint8_t red, uint8_t green, uint8_t blue); +void PCA9533_set_rgb(uint8_t red, uint8_t green, uint8_t blue); void PCA9533_setOff(); diff --git a/Marlin/src/feature/leds/pca9632.cpp b/Marlin/src/feature/leds/pca9632.cpp index df991ded3..d8af31cb6 100644 --- a/Marlin/src/feature/leds/pca9632.cpp +++ b/Marlin/src/feature/leds/pca9632.cpp @@ -120,7 +120,7 @@ static void PCA9632_WriteAllRegisters(const byte addr, const byte regadd, const } #endif -void pca9632_set_led_color(const LEDColor &color) { +void PCA9632_set_led_color(const LEDColor &color) { Wire.begin(); if (!PCA_init) { PCA_init = 1; @@ -138,7 +138,7 @@ void pca9632_set_led_color(const LEDColor &color) { #if ENABLED(PCA9632_BUZZER) - void pca9632_buzz(const long, const uint16_t) { + void PCA9632_buzz(const long, const uint16_t) { uint8_t data[] = PCA9632_BUZZER_DATA; Wire.beginTransmission(I2C_ADDRESS(PCA9632_ADDRESS)); Wire.write(data, sizeof(data)); diff --git a/Marlin/src/feature/leds/pca9632.h b/Marlin/src/feature/leds/pca9632.h index 34aceb31d..fb59a8c18 100644 --- a/Marlin/src/feature/leds/pca9632.h +++ b/Marlin/src/feature/leds/pca9632.h @@ -29,9 +29,9 @@ struct LEDColor; typedef LEDColor LEDColor; -void pca9632_set_led_color(const LEDColor &color); +void PCA9632_set_led_color(const LEDColor &color); #if ENABLED(PCA9632_BUZZER) #include - void pca9632_buzz(const long, const uint16_t); + void PCA9632_buzz(const long, const uint16_t); #endif diff --git a/Marlin/src/feature/password/password.cpp b/Marlin/src/feature/password/password.cpp index c519ee7c9..90bb64711 100644 --- a/Marlin/src/feature/password/password.cpp +++ b/Marlin/src/feature/password/password.cpp @@ -16,7 +16,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * along with this program. If not, see . * */ diff --git a/Marlin/src/feature/password/password.h b/Marlin/src/feature/password/password.h index 66f1c70ba..3ed584b29 100644 --- a/Marlin/src/feature/password/password.h +++ b/Marlin/src/feature/password/password.h @@ -16,7 +16,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * along with this program. If not, see . * */ #pragma once diff --git a/Marlin/src/gcode/feature/password/M510-M512.cpp b/Marlin/src/gcode/feature/password/M510-M512.cpp index f26fb75fd..79f1da065 100644 --- a/Marlin/src/gcode/feature/password/M510-M512.cpp +++ b/Marlin/src/gcode/feature/password/M510-M512.cpp @@ -16,7 +16,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * along with this program. If not, see . * */ diff --git a/Marlin/src/gcode/gcode.h b/Marlin/src/gcode/gcode.h index 8848450fc..23bf2c0ce 100644 --- a/Marlin/src/gcode/gcode.h +++ b/Marlin/src/gcode/gcode.h @@ -155,7 +155,7 @@ * M141 - Set heated chamber target temp. S (Requires a chamber heater) * M145 - Set heatup values for materials on the LCD. H B F for S (0=PLA, 1=ABS) * M149 - Set temperature units. (Requires TEMPERATURE_UNITS_SUPPORT) - * M150 - Set Status LED Color as R U B P. Values 0-255. (Requires BLINKM, RGB_LED, RGBW_LED, NEOPIXEL_LED, PCA9533, or PCA9632). + * M150 - Set Status LED Color as R U B W P. Values 0-255. (Requires BLINKM, RGB_LED, RGBW_LED, NEOPIXEL_LED, PCA9533, or PCA9632). * M155 - Auto-report temperatures with interval of S. (Requires AUTO_REPORT_TEMPERATURES) * M163 - Set a single proportion for a mixing extruder. (Requires MIXING_EXTRUDER) * M164 - Commit the mix and save to a virtual tool (current, or as specified by 'S'). (Requires MIXING_EXTRUDER) diff --git a/Marlin/src/lcd/menu/menu_led.cpp b/Marlin/src/lcd/menu/menu_led.cpp index 61ffbfd66..290b0ddf6 100644 --- a/Marlin/src/lcd/menu/menu_led.cpp +++ b/Marlin/src/lcd/menu/menu_led.cpp @@ -34,18 +34,19 @@ #include "../../feature/leds/leds.h" #if ENABLED(LED_COLOR_PRESETS) + void menu_led_presets() { START_MENU(); #if LCD_HEIGHT > 2 STATIC_ITEM(MSG_LED_PRESETS, SS_DEFAULT|SS_INVERT); #endif BACK_ITEM(MSG_LED_CONTROL); - ACTION_ITEM(MSG_SET_LEDS_WHITE, leds.set_white); - ACTION_ITEM(MSG_SET_LEDS_RED, leds.set_red); + ACTION_ITEM(MSG_SET_LEDS_WHITE, leds.set_white); + ACTION_ITEM(MSG_SET_LEDS_RED, leds.set_red); ACTION_ITEM(MSG_SET_LEDS_ORANGE, leds.set_orange); - ACTION_ITEM(MSG_SET_LEDS_YELLOW,leds.set_yellow); - ACTION_ITEM(MSG_SET_LEDS_GREEN, leds.set_green); - ACTION_ITEM(MSG_SET_LEDS_BLUE, leds.set_blue); + ACTION_ITEM(MSG_SET_LEDS_YELLOW, leds.set_yellow); + ACTION_ITEM(MSG_SET_LEDS_GREEN, leds.set_green); + ACTION_ITEM(MSG_SET_LEDS_BLUE, leds.set_blue); ACTION_ITEM(MSG_SET_LEDS_INDIGO, leds.set_indigo); ACTION_ITEM(MSG_SET_LEDS_VIOLET, leds.set_violet); END_MENU(); @@ -83,11 +84,10 @@ #endif #endif - - void menu_led() { START_MENU(); BACK_ITEM(MSG_MAIN); + #if ENABLED(LED_CONTROL_MENU) bool led_on = leds.lights_on; EDIT_ITEM(bool, MSG_LEDS, &led_on, leds.toggle); @@ -97,6 +97,7 @@ void menu_led() { #endif SUBMENU(MSG_CUSTOM_LEDS, menu_led_custom); #endif + // // Set Case light on/off/brightness // diff --git a/Marlin/src/lcd/ultralcd.cpp b/Marlin/src/lcd/ultralcd.cpp index f30d9c68c..09767c72a 100644 --- a/Marlin/src/lcd/ultralcd.cpp +++ b/Marlin/src/lcd/ultralcd.cpp @@ -81,7 +81,7 @@ constexpr uint8_t epps = ENCODER_PULSES_PER_STEP; #endif void MarlinUI::buzz(const long duration, const uint16_t freq) { #if ENABLED(PCA9632_BUZZER) - pca9632_buzz(duration, freq); + PCA9632_buzz(duration, freq); #elif USE_BEEPER buzzer.tone(duration, freq); #endif diff --git a/Marlin/src/pins/stm32f1/pins_CCROBOT_MEEB_3DP.h b/Marlin/src/pins/stm32f1/pins_CCROBOT_MEEB_3DP.h index af1e4c114..5254166fa 100644 --- a/Marlin/src/pins/stm32f1/pins_CCROBOT_MEEB_3DP.h +++ b/Marlin/src/pins/stm32f1/pins_CCROBOT_MEEB_3DP.h @@ -113,7 +113,7 @@ #define FAN1_PIN PA8 // FAN (fan0 on board) e0 cool fan #define FAN2_PIN PB9 // FAN (fan1 on board) controller cool fan -// One neopixel onboard and a connector for other neopixels +// One NeoPixel onboard and a connector for other NeoPixels #define NEOPIXEL_PIN PC7 // The NEOPIXEL LED driving pin /** From f67ad6fd70bb107ca08ac99af6bcffa2026266d2 Mon Sep 17 00:00:00 2001 From: Giuliano Zaro <3684609+GMagician@users.noreply.github.com> Date: Mon, 24 Aug 2020 16:54:25 +0200 Subject: [PATCH 169/194] Fix auto-power in PID autotune (#19119) --- Marlin/src/module/temperature.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Marlin/src/module/temperature.cpp b/Marlin/src/module/temperature.cpp index e8be3dbf0..813bcc061 100644 --- a/Marlin/src/module/temperature.cpp +++ b/Marlin/src/module/temperature.cpp @@ -435,6 +435,7 @@ volatile bool Temperature::raw_temps_ready = false; SERIAL_ECHOLNPGM(STR_PID_AUTOTUNE_START); disable_all_heaters(); + TERN_(AUTO_POWER_CONTROL, powerManager.power_on()); SHV(bias = d = (MAX_BED_POWER) >> 1, bias = d = (PID_MAX) >> 1); @@ -444,7 +445,6 @@ volatile bool Temperature::raw_temps_ready = false; LEDColor color = ONHEATINGSTART(); #endif - TERN_(AUTO_POWER_CONTROL, powerManager.power_on()); TERN_(NO_FAN_SLOWING_IN_PID_TUNING, adaptive_fan_slowing = false); // PID Tuning loop From f7fe499305b05455853db226568bc6cdf7b8f7b4 Mon Sep 17 00:00:00 2001 From: Victor Oliveira Date: Mon, 24 Aug 2020 15:23:32 -0300 Subject: [PATCH 170/194] Color UI + Robin Nano test (#19118) --- buildroot/tests/mks_robin_nano35-tests | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/buildroot/tests/mks_robin_nano35-tests b/buildroot/tests/mks_robin_nano35-tests index ac7205087..92c97be75 100644 --- a/buildroot/tests/mks_robin_nano35-tests +++ b/buildroot/tests/mks_robin_nano35-tests @@ -35,5 +35,12 @@ opt_disable TOUCH_SCREEN opt_enable TFT_LVGL_UI_SPI exec_test $1 $2 "MKS Robin v2 nano LVGL SPI" +use_example_configs Mks/Robin +opt_set MOTHERBOARD BOARD_MKS_ROBIN_NANO_V2 +opt_disable TFT_320x240 +opt_enable TOUCH_SCREEN +opt_enable TFT_480x320_SPI +exec_test $1 $2 "MKS Robin v2 nano New Color UI 480x320 SPI" + # cleanup restore_configs From e2edfabc3c9e3d1c4d4fbd98d3878a7876b78ca7 Mon Sep 17 00:00:00 2001 From: thinkyhead Date: Tue, 25 Aug 2020 00:11:11 +0000 Subject: [PATCH 171/194] [cron] Bump distribution date (2020-08-25) --- Marlin/src/inc/Version.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Marlin/src/inc/Version.h b/Marlin/src/inc/Version.h index 5e6d7fe5e..68b9bc56d 100644 --- a/Marlin/src/inc/Version.h +++ b/Marlin/src/inc/Version.h @@ -42,7 +42,7 @@ * version was tagged. */ #ifndef STRING_DISTRIBUTION_DATE - #define STRING_DISTRIBUTION_DATE "2020-08-24" + #define STRING_DISTRIBUTION_DATE "2020-08-25" #endif /** From 66694a213fb4ca15b924c25c49248e54d4278a7e Mon Sep 17 00:00:00 2001 From: ellensp Date: Wed, 26 Aug 2020 01:16:43 +1200 Subject: [PATCH 172/194] LEDs followup (#19133) --- Marlin/src/gcode/feature/leds/M150.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Marlin/src/gcode/feature/leds/M150.cpp b/Marlin/src/gcode/feature/leds/M150.cpp index 1c81c6d6b..83bd24c41 100644 --- a/Marlin/src/gcode/feature/leds/M150.cpp +++ b/Marlin/src/gcode/feature/leds/M150.cpp @@ -50,7 +50,7 @@ */ void GcodeSuite::M150() { #if ENABLED(NEOPIXEL_LED) - neo.set_neo_index(parser.intval('I', -1)); + neo.neoindex = parser.intval('I', -1); #endif leds.set_color(MakeLEDColor( parser.seen('R') ? (parser.has_value() ? parser.value_byte() : 255) : 0, From 076f59c63004184107ecf5beeb33adb428f03e74 Mon Sep 17 00:00:00 2001 From: thinkyhead Date: Wed, 26 Aug 2020 00:11:08 +0000 Subject: [PATCH 173/194] [cron] Bump distribution date (2020-08-26) --- Marlin/src/inc/Version.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Marlin/src/inc/Version.h b/Marlin/src/inc/Version.h index 68b9bc56d..08d0b6358 100644 --- a/Marlin/src/inc/Version.h +++ b/Marlin/src/inc/Version.h @@ -42,7 +42,7 @@ * version was tagged. */ #ifndef STRING_DISTRIBUTION_DATE - #define STRING_DISTRIBUTION_DATE "2020-08-25" + #define STRING_DISTRIBUTION_DATE "2020-08-26" #endif /** From 5db62d7abdafe1d07c76e1292c6c32f71e6ee356 Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Tue, 25 Aug 2020 23:34:53 -0500 Subject: [PATCH 174/194] No COM_PIN needed for DWIN --- Marlin/src/lcd/dwin/dwin.cpp | 7 ------- 1 file changed, 7 deletions(-) diff --git a/Marlin/src/lcd/dwin/dwin.cpp b/Marlin/src/lcd/dwin/dwin.cpp index 0d719542e..d82efc568 100644 --- a/Marlin/src/lcd/dwin/dwin.cpp +++ b/Marlin/src/lcd/dwin/dwin.cpp @@ -3341,13 +3341,6 @@ void HMI_Init(void) { } HMI_SetLanguage(); - - #if ENABLED(FIX_MOUNTED_PROBE) // For "CREALITY_TOUCH" probe too? - SET_OUTPUT(COM_PIN); - WRITE(COM_PIN, 1); - #endif - - delay(200); } void DWIN_Update(void) { From bd9dc73d3d22f067b8b0f99d8f3519ae4a04eeef Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Tue, 25 Aug 2020 23:57:48 -0500 Subject: [PATCH 175/194] Warn about MARLIN_DEV_MODE --- Marlin/src/inc/SanityCheck.h | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/Marlin/src/inc/SanityCheck.h b/Marlin/src/inc/SanityCheck.h index 01d07ea4d..671d6e84f 100644 --- a/Marlin/src/inc/SanityCheck.h +++ b/Marlin/src/inc/SanityCheck.h @@ -75,6 +75,10 @@ #endif #undef HEXIFY +#if ENABLED(MARLIN_DEV_MODE) + #warning "WARNING! Disable MARLIN_DEV_MODE for the final build!" +#endif + /** * Warnings for old configurations */ @@ -523,16 +527,11 @@ #error "ANYCUBIC_TFT_MODEL is now ANYCUBIC_LCD_I3MEGA. Please update your Configuration.h." #elif defined(EVENT_GCODE_SD_STOP) #error "EVENT_GCODE_SD_STOP is now EVENT_GCODE_SD_ABORT. Please update your Configuration.h." -#endif - -#ifdef FIL_RUNOUT_INVERTING +#elif defined(FIL_RUNOUT_INVERTING) #if FIL_RUNOUT_INVERTING - #warning "FIL_RUNOUT_INVERTING true is now FIL_RUNOUT_STATE HIGH. Please update Configuration.h." + #error "FIL_RUNOUT_INVERTING true is now FIL_RUNOUT_STATE HIGH. Please update your Configuration.h." #else - #warning "FIL_RUNOUT_INVERTING false is now FIL_RUNOUT_STATE LOW. Please update Configuration.h." - #endif - #ifndef FIL_RUNOUT_STATE - #define FIL_RUNOUT_STATE ((FIL_RUNOUT_INVERTING) ? HIGH : LOW) + #error "FIL_RUNOUT_INVERTING false is now FIL_RUNOUT_STATE LOW. Please update your Configuration.h." #endif #endif From 646d90f3da2feda848dc4a50fe3661701dc881d1 Mon Sep 17 00:00:00 2001 From: Jason Smith Date: Tue, 25 Aug 2020 22:43:33 -0700 Subject: [PATCH 176/194] Fix SD pins for SKR Pro and GTR (#19047) --- Marlin/src/lcd/extui/ui_api.cpp | 4 -- Marlin/src/lcd/ultralcd.cpp | 4 -- Marlin/src/pins/stm32f4/pins_BTT_GTR_V1_0.h | 54 +++++++++++-------- .../pins/stm32f4/pins_BTT_SKR_PRO_common.h | 23 ++++---- Marlin/src/sd/cardreader.cpp | 4 ++ 5 files changed, 49 insertions(+), 40 deletions(-) diff --git a/Marlin/src/lcd/extui/ui_api.cpp b/Marlin/src/lcd/extui/ui_api.cpp index 3df9c17f6..31449fcef 100644 --- a/Marlin/src/lcd/extui/ui_api.cpp +++ b/Marlin/src/lcd/extui/ui_api.cpp @@ -1057,10 +1057,6 @@ namespace ExtUI { // At the moment, we piggy-back off the ultralcd calls, but this could be cleaned up in the future void MarlinUI::init() { - #if ENABLED(SDSUPPORT) && PIN_EXISTS(SD_DETECT) - SET_INPUT_PULLUP(SD_DETECT_PIN); - #endif - ExtUI::onStartup(); } diff --git a/Marlin/src/lcd/ultralcd.cpp b/Marlin/src/lcd/ultralcd.cpp index 09767c72a..b30f6e49c 100644 --- a/Marlin/src/lcd/ultralcd.cpp +++ b/Marlin/src/lcd/ultralcd.cpp @@ -372,10 +372,6 @@ void MarlinUI::init() { #endif // HAS_SHIFT_ENCODER - #if ENABLED(SDSUPPORT) && PIN_EXISTS(SD_DETECT) - SET_INPUT_PULLUP(SD_DETECT_PIN); - #endif - #if HAS_ENCODER_ACTION && HAS_SLOW_BUTTONS slow_buttons = 0; #endif diff --git a/Marlin/src/pins/stm32f4/pins_BTT_GTR_V1_0.h b/Marlin/src/pins/stm32f4/pins_BTT_GTR_V1_0.h index bc882316e..ea643322b 100644 --- a/Marlin/src/pins/stm32f4/pins_BTT_GTR_V1_0.h +++ b/Marlin/src/pins/stm32f4/pins_BTT_GTR_V1_0.h @@ -280,24 +280,29 @@ //#define FAN6_PIN PC9 // Fan6 //#define FAN7_PIN PE14 // Fan7 -// -// By default the onboard SD (SPI1) is enabled -// -#define CUSTOM_SPI_PINS -#if DISABLED(CUSTOM_SPI_PINS) - #define SDSS PB12 +#ifndef SDCARD_CONNECTION + #define SDCARD_CONNECTION ONBOARD #endif -// HAL SPI1 pins group -#if ENABLED(CUSTOM_SPI_PINS) +// +// By default the LCD SD (SPI2) is enabled +// Onboard SD is on a completely separate SPI bus, and requires +// overriding pins to access. +// +#if SD_CONNECTION_IS(LCD) + #define SD_DETECT_PIN PB10 + #define SDSS PB12 +#elif SD_CONNECTION_IS(ONBOARD) + // Instruct the STM32 HAL to override the default SPI pins from the variant.h file + #define CUSTOM_SPI_PINS #define SDSS PA4 - #define SD_DETECT_PIN PC4 - #define LCD_SDSS PA4 - + #define SS_PIN SDSS #define SCK_PIN PA5 #define MISO_PIN PA6 #define MOSI_PIN PA7 - #define SS_PIN PA4 // Chip select for SD card used by Marlin + #define SD_DETECT_PIN PC4 +#elif SD_CONNECTION_IS(CUSTOM_CABLE) + #define "CUSTOM_CABLE is not a supported SDCARD_CONNECTION for this board" #endif /** @@ -319,7 +324,6 @@ #define BTN_ENC PA15 #if ENABLED(CR10_STOCKDISPLAY) - #define LCD_PINS_RS PG6 #define BTN_EN1 PC10 @@ -333,6 +337,15 @@ #undef BOARD_ST7920_DELAY_2 #undef BOARD_ST7920_DELAY_3 + #elif ENABLED(MKS_MINI_12864) + #define DOGLCD_A0 PG6 + #define DOGLCD_CS PG7 + #define BTN_EN1 PD10 + #define BTN_EN2 PH10 + + #if SD_CONNECTION_IS(ONBOARD) + #define SOFTWARE_SPI + #endif #else #define LCD_PINS_RS PA8 @@ -340,17 +353,17 @@ #define BTN_EN1 PD10 #define BTN_EN2 PH10 - #if DISABLED(CUSTOM_SPI_PINS) - #define SD_DETECT_PIN PB10 - #define LCD_SDSS PB12 - #endif - #define LCD_PINS_ENABLE PC10 #define LCD_PINS_D4 PG8 #if ENABLED(FYSETC_MINI_12864) #define DOGLCD_CS PC10 #define DOGLCD_A0 PA8 + + #if SD_CONNECTION_IS(ONBOARD) + #define SOFTWARE_SPI + #endif + //#define LCD_BACKLIGHT_PIN -1 #define LCD_RESET_PIN PG8 // Must be high or open for LCD to operate normally. #if EITHER(FYSETC_MINI_12864_1_2, FYSETC_MINI_12864_2_0) @@ -389,11 +402,6 @@ #endif #endif - //#define DOGLCD_CS PB12 - //#define DOGLCD_A0 PA8 - //#define LCD_PINS_DC PB14 - //#define DOGLCD_MOSI PB15 - #endif // HAS_SPI_LCD #undef TP diff --git a/Marlin/src/pins/stm32f4/pins_BTT_SKR_PRO_common.h b/Marlin/src/pins/stm32f4/pins_BTT_SKR_PRO_common.h index e13c4a227..56c509562 100644 --- a/Marlin/src/pins/stm32f4/pins_BTT_SKR_PRO_common.h +++ b/Marlin/src/pins/stm32f4/pins_BTT_SKR_PRO_common.h @@ -250,12 +250,22 @@ // Onboard SD card // Must use soft SPI because Marlin's default hardware SPI is tied to LCD's EXP2 // -#if SD_CONNECTION_IS(ONBOARD) - #define SOFTWARE_SPI // Use soft SPI for onboard SD +#if SD_CONNECTION_IS(LCD) + #define SD_DETECT_PIN PF12 + #define SDSS PB12 +#elif SD_CONNECTION_IS(ONBOARD) + // The SKR Pro's ONBOARD SD interface is on SPI1. + // Due to a pull resistor on the clock line, it needs to use SPI Data Mode 3 to + // function with Hardware SPI. This is not currently configurable in the HAL, + // so force Software SPI to work around this issue. + #define SOFTWARE_SPI #define SDSS PA4 #define SCK_PIN PA5 #define MISO_PIN PA6 #define MOSI_PIN PB5 + #define SD_DETECT_PIN PB11 +#elif SD_CONNECTION_IS(CUSTOM_CABLE) + #define "CUSTOM_CABLE is not a supported SDCARD_CONNECTION for this board" #endif /** @@ -275,9 +285,6 @@ #if HAS_SPI_LCD #define BEEPER_PIN PG4 #define BTN_ENC PA8 - #if SD_CONNECTION_IS(LCD) - #define SDSS PB12 // Uses default hardware SPI for LCD's SD - #endif #if ENABLED(CR10_STOCKDISPLAY) #define LCD_PINS_RS PG6 @@ -296,16 +303,14 @@ #elif ENABLED(MKS_MINI_12864) #define DOGLCD_A0 PG6 #define DOGLCD_CS PG3 - + #define BTN_EN1 PG10 + #define BTN_EN2 PF11 #else #define LCD_PINS_RS PD10 #define BTN_EN1 PG10 #define BTN_EN2 PF11 - #define SD_DETECT_PIN PF12 - - #define LCD_SDSS PB12 #define LCD_PINS_ENABLE PD11 #define LCD_PINS_D4 PG2 diff --git a/Marlin/src/sd/cardreader.cpp b/Marlin/src/sd/cardreader.cpp index 3aa7156e7..29f9672e9 100644 --- a/Marlin/src/sd/cardreader.cpp +++ b/Marlin/src/sd/cardreader.cpp @@ -137,6 +137,10 @@ CardReader::CardReader() { // Disable autostart until card is initialized autostart_index = -1; + #if ENABLED(SDSUPPORT) && PIN_EXISTS(SD_DETECT) + SET_INPUT_PULLUP(SD_DETECT_PIN); + #endif + #if PIN_EXISTS(SDPOWER) OUT_WRITE(SDPOWER_PIN, HIGH); // Power the SD reader #endif From 1793de4a28c697c726f8b2b33ba9c0526de32307 Mon Sep 17 00:00:00 2001 From: Keith Bennett <13375512+thisiskeithb@users.noreply.github.com> Date: Tue, 25 Aug 2020 22:44:15 -0700 Subject: [PATCH 177/194] Add Einsy Rambo Filament Runout Pin (#19136) --- Marlin/src/pins/rambo/pins_EINSY_RAMBO.h | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/Marlin/src/pins/rambo/pins_EINSY_RAMBO.h b/Marlin/src/pins/rambo/pins_EINSY_RAMBO.h index 8fb3be47d..e2a4940e8 100644 --- a/Marlin/src/pins/rambo/pins_EINSY_RAMBO.h +++ b/Marlin/src/pins/rambo/pins_EINSY_RAMBO.h @@ -80,6 +80,13 @@ #define Z_MIN_PROBE_PIN 10 #endif +// +// Filament Runout Sensor +// +#ifndef FIL_RUNOUT_PIN + #define FIL_RUNOUT_PIN 62 +#endif + // // Steppers // From b07dd44ec21ce6f622591cd96a1f709588f409b9 Mon Sep 17 00:00:00 2001 From: Marcio Teixeira Date: Mon, 24 Aug 2020 08:56:19 -0600 Subject: [PATCH 178/194] Fixes to FTDI Touch UI (#19134) - Fix unused variable warning - Fix for filament runout sound - Fix for developer menu access - Fix compilation error when using CALIBRATION_GCODE - Remove material labels in change filament screen - Add decimals to status screen Z coordinate - Add more descriptive message on heater timeout --- .../ftdi_eve_touch_ui/ftdi_eve_lib/extended/screen_types.h | 4 ++-- .../lcd/extui/lib/ftdi_eve_touch_ui/language/language_en.h | 3 --- .../src/lcd/extui/lib/ftdi_eve_touch_ui/marlin_events.cpp | 2 +- .../extui/lib/ftdi_eve_touch_ui/screens/about_screen.cpp | 2 ++ .../ftdi_eve_touch_ui/screens/change_filament_screen.cpp | 6 +++--- .../screens/confirm_auto_calibration_dialog_box.cpp | 2 +- .../extui/lib/ftdi_eve_touch_ui/screens/status_screen.cpp | 2 +- .../extui/lib/ftdi_eve_touch_ui/screens/string_format.cpp | 4 ++-- .../lcd/extui/lib/ftdi_eve_touch_ui/screens/string_format.h | 2 +- Marlin/src/lcd/language/language_en.h | 6 +++++- 10 files changed, 18 insertions(+), 15 deletions(-) diff --git a/Marlin/src/lcd/extui/lib/ftdi_eve_touch_ui/ftdi_eve_lib/extended/screen_types.h b/Marlin/src/lcd/extui/lib/ftdi_eve_touch_ui/ftdi_eve_lib/extended/screen_types.h index 972c38395..b12ab286e 100644 --- a/Marlin/src/lcd/extui/lib/ftdi_eve_touch_ui/ftdi_eve_lib/extended/screen_types.h +++ b/Marlin/src/lcd/extui/lib/ftdi_eve_touch_ui/ftdi_eve_lib/extended/screen_types.h @@ -144,8 +144,8 @@ class UIScreen { static bool onTouchEnd(uint8_t) {return true;} }; -#define PUSH_SCREEN(screen) current_screen.push(screen::onRedraw); -#define GOTO_SCREEN(screen) current_screen.goTo(screen::onRedraw); +#define PUSH_SCREEN(screen) current_screen.push(screen::onRedraw) +#define GOTO_SCREEN(screen) current_screen.goTo(screen::onRedraw) #define GOTO_PREVIOUS() current_screen.goBack(); #define AT_SCREEN(screen) (current_screen.getType() == current_screen.lookupScreen(screen::onRedraw)) #define IS_PARENT_SCREEN(screen) (current_screen.peek() == current_screen.lookupScreen(screen::onRedraw)) diff --git a/Marlin/src/lcd/extui/lib/ftdi_eve_touch_ui/language/language_en.h b/Marlin/src/lcd/extui/lib/ftdi_eve_touch_ui/language/language_en.h index b00c836ce..f2971087c 100644 --- a/Marlin/src/lcd/extui/lib/ftdi_eve_touch_ui/language/language_en.h +++ b/Marlin/src/lcd/extui/lib/ftdi_eve_touch_ui/language/language_en.h @@ -91,9 +91,6 @@ namespace Language_en { PROGMEM Language_Str MSG_UNITS_STEP_MM = u8"st/mm"; PROGMEM Language_Str MSG_UNITS_PERCENT = u8"%"; PROGMEM Language_Str MSG_UNITS_C = DEGREE_SIGN u8"C"; - PROGMEM Language_Str MSG_MATERIAL_PLA = u8"PLA"; - PROGMEM Language_Str MSG_MATERIAL_ABS = u8"ABS"; - PROGMEM Language_Str MSG_MATERIAL_HIGH_TEMP = u8"High"; PROGMEM Language_Str MSG_IDLE = u8"idle"; PROGMEM Language_Str MSG_SET_MAXIMUM = u8"Set Maximum"; PROGMEM Language_Str MSG_PRINT_SPEED = u8"Print Speed"; diff --git a/Marlin/src/lcd/extui/lib/ftdi_eve_touch_ui/marlin_events.cpp b/Marlin/src/lcd/extui/lib/ftdi_eve_touch_ui/marlin_events.cpp index a9b4ec6cd..e06f9f3a2 100644 --- a/Marlin/src/lcd/extui/lib/ftdi_eve_touch_ui/marlin_events.cpp +++ b/Marlin/src/lcd/extui/lib/ftdi_eve_touch_ui/marlin_events.cpp @@ -92,7 +92,7 @@ namespace ExtUI { char lcd_msg[30]; sprintf_P(lcd_msg, PSTR("Extruder %d Filament Error"), extruder + 1); StatusScreen::setStatusMessage(lcd_msg); - InterfaceSoundsScreen::playEventSound(InterfaceSoundsScreen::PRINTING_FAILED); + InterfaceSoundsScreen::playEventSound(InterfaceSoundsScreen::PRINTING_FAILED, FTDI::PLAY_SYNCHRONOUS); } void onFactoryReset() { diff --git a/Marlin/src/lcd/extui/lib/ftdi_eve_touch_ui/screens/about_screen.cpp b/Marlin/src/lcd/extui/lib/ftdi_eve_touch_ui/screens/about_screen.cpp index 47a35cd0a..9cd17637b 100644 --- a/Marlin/src/lcd/extui/lib/ftdi_eve_touch_ui/screens/about_screen.cpp +++ b/Marlin/src/lcd/extui/lib/ftdi_eve_touch_ui/screens/about_screen.cpp @@ -80,6 +80,7 @@ void AboutScreen::onRedraw(draw_mode_t) { #endif , OPT_CENTER, font_xlarge ); + cmd.tag(3); draw_text_box(cmd, FW_VERS_POS, #ifdef TOUCH_UI_VERSION F(TOUCH_UI_VERSION) @@ -87,6 +88,7 @@ void AboutScreen::onRedraw(draw_mode_t) { progmem_str(getFirmwareName_str()) #endif , OPT_CENTER, font_medium); + cmd.tag(0); draw_text_box(cmd, FW_INFO_POS, about_str, OPT_CENTER, font_medium); draw_text_box(cmd, INSET_POS(LICENSE_POS), GET_TEXT_F(MSG_LICENSE), OPT_CENTER, font_tiny); diff --git a/Marlin/src/lcd/extui/lib/ftdi_eve_touch_ui/screens/change_filament_screen.cpp b/Marlin/src/lcd/extui/lib/ftdi_eve_touch_ui/screens/change_filament_screen.cpp index afa3211a0..589da9b21 100644 --- a/Marlin/src/lcd/extui/lib/ftdi_eve_touch_ui/screens/change_filament_screen.cpp +++ b/Marlin/src/lcd/extui/lib/ftdi_eve_touch_ui/screens/change_filament_screen.cpp @@ -207,13 +207,13 @@ void ChangeFilamentScreen::onRedraw(draw_mode_t what) { { char str[30]; - format_temp_and_material(str, LOW_TEMP, GET_TEXT(MSG_MATERIAL_PLA)); + format_temp(str, LOW_TEMP); cmd.tag(2) .TOG_STYLE(tog2) .button (BTN_POS(2,6), BTN_SIZE(1,1), str); - format_temp_and_material(str, MED_TEMP, GET_TEXT(MSG_MATERIAL_ABS)); + format_temp(str, MED_TEMP); cmd.tag(3) .TOG_STYLE(tog3) .button (BTN_POS(2,5), BTN_SIZE(1,1), str); - format_temp_and_material(str, HIGH_TEMP, GET_TEXT(MSG_MATERIAL_HIGH_TEMP)); + format_temp(str, HIGH_TEMP); cmd.tag(4) .TOG_STYLE(tog4) .button (BTN_POS(2,4), BTN_SIZE(1,1), str); } cmd.colors(normal_btn) diff --git a/Marlin/src/lcd/extui/lib/ftdi_eve_touch_ui/screens/confirm_auto_calibration_dialog_box.cpp b/Marlin/src/lcd/extui/lib/ftdi_eve_touch_ui/screens/confirm_auto_calibration_dialog_box.cpp index 974ce3a6e..7e1a82025 100644 --- a/Marlin/src/lcd/extui/lib/ftdi_eve_touch_ui/screens/confirm_auto_calibration_dialog_box.cpp +++ b/Marlin/src/lcd/extui/lib/ftdi_eve_touch_ui/screens/confirm_auto_calibration_dialog_box.cpp @@ -38,7 +38,7 @@ bool ConfirmAutoCalibrationDialogBox::onTouchEnd(uint8_t tag) { switch (tag) { case 1: GOTO_SCREEN(StatusScreen); - injectCommands_P(PSTR(CALIBRATION_COMMANDS)); + injectCommands_P(PSTR("G425")); return true; default: return DialogBoxBaseClass::onTouchEnd(tag); diff --git a/Marlin/src/lcd/extui/lib/ftdi_eve_touch_ui/screens/status_screen.cpp b/Marlin/src/lcd/extui/lib/ftdi_eve_touch_ui/screens/status_screen.cpp index ac1fccd57..f2524c798 100644 --- a/Marlin/src/lcd/extui/lib/ftdi_eve_touch_ui/screens/status_screen.cpp +++ b/Marlin/src/lcd/extui/lib/ftdi_eve_touch_ui/screens/status_screen.cpp @@ -97,7 +97,7 @@ void StatusScreen::draw_axis_position(draw_mode_t what) { strcpy_P(y_str, PSTR("?")); if (isAxisPositionKnown(Z)) - format_position(z_str, getAxisPosition_mm(Z)); + format_position(z_str, getAxisPosition_mm(Z), 2); else strcpy_P(z_str, PSTR("?")); diff --git a/Marlin/src/lcd/extui/lib/ftdi_eve_touch_ui/screens/string_format.cpp b/Marlin/src/lcd/extui/lib/ftdi_eve_touch_ui/screens/string_format.cpp index 340ffd055..b7ce76ecd 100644 --- a/Marlin/src/lcd/extui/lib/ftdi_eve_touch_ui/screens/string_format.cpp +++ b/Marlin/src/lcd/extui/lib/ftdi_eve_touch_ui/screens/string_format.cpp @@ -61,8 +61,8 @@ void format_temp_and_material(char *str, float t1, const char *material) { /** * Formats a position value (e.g. "10 mm") */ -void format_position(char *str, float p) { - dtostrf(p, 5, 1, str); +void format_position(char *str, float p, uint8_t decimals) { + dtostrf(p, 4 + decimals, decimals, str); strcat_P(str, PSTR(" ")); strcat_P(str, GET_TEXT(MSG_UNITS_MM)); } diff --git a/Marlin/src/lcd/extui/lib/ftdi_eve_touch_ui/screens/string_format.h b/Marlin/src/lcd/extui/lib/ftdi_eve_touch_ui/screens/string_format.h index ce3af4db8..e37a82d28 100644 --- a/Marlin/src/lcd/extui/lib/ftdi_eve_touch_ui/screens/string_format.h +++ b/Marlin/src/lcd/extui/lib/ftdi_eve_touch_ui/screens/string_format.h @@ -25,5 +25,5 @@ void format_temp(char *str, float t1); void format_temp_and_idle(char *str, float t1); void format_temp_and_temp(char *str, float t1, float t2); void format_temp_and_material(char *str, float t1, const char *material); -void format_position(char *str, float p); +void format_position(char *str, float p, uint8_t decimals = 1); void format_position(char *str, float x, float y, float z); diff --git a/Marlin/src/lcd/language/language_en.h b/Marlin/src/lcd/language/language_en.h index 5aa0d76a8..fde21f2bb 100644 --- a/Marlin/src/lcd/language/language_en.h +++ b/Marlin/src/lcd/language/language_en.h @@ -647,7 +647,11 @@ namespace Language_en { PROGMEM Language_Str MSG_LEVEL_X_AXIS = _UxGT("Level X Axis"); PROGMEM Language_Str MSG_AUTO_CALIBRATE = _UxGT("Auto Calibrate"); - PROGMEM Language_Str MSG_HEATER_TIMEOUT = _UxGT("Heater Timeout"); + #if ENABLED(TOUCH_UI_FTDI_EVE) + PROGMEM Language_Str MSG_HEATER_TIMEOUT = _UxGT("Idle timeout, temperature decreased. Press Okay to reheat and again to resume."); + #else + PROGMEM Language_Str MSG_HEATER_TIMEOUT = _UxGT("Heater Timeout"); + #endif PROGMEM Language_Str MSG_REHEAT = _UxGT("Reheat"); PROGMEM Language_Str MSG_REHEATING = _UxGT("Reheating..."); } From 131ddeaeba96addcf573cbeff86b65225d3b8320 Mon Sep 17 00:00:00 2001 From: Colin Godsey Date: Wed, 26 Aug 2020 00:32:56 -0600 Subject: [PATCH 179/194] Direct Stepping update (#19135) --- Marlin/src/feature/direct_stepping.cpp | 49 ++++++++++---------------- Marlin/src/feature/direct_stepping.h | 6 +--- Marlin/src/module/stepper.cpp | 30 ++++++++-------- 3 files changed, 34 insertions(+), 51 deletions(-) diff --git a/Marlin/src/feature/direct_stepping.cpp b/Marlin/src/feature/direct_stepping.cpp index d3bdb43ab..9766d1464 100644 --- a/Marlin/src/feature/direct_stepping.cpp +++ b/Marlin/src/feature/direct_stepping.cpp @@ -56,9 +56,6 @@ namespace DirectStepping { template volatile bool SerialPageManager::page_states_dirty; - template - millis_t SerialPageManager::next_response; - template uint8_t SerialPageManager::pages[Cfg::NUM_PAGES][Cfg::PAGE_SIZE]; @@ -80,7 +77,6 @@ namespace DirectStepping { page_states[i] = PageState::FREE; fatal_error = false; - next_response = 0; state = State::NEWLINE; page_states_dirty = false; @@ -181,15 +177,8 @@ namespace DirectStepping { return; } - // Runs on a set interval also, as responses may get lost. - if (next_response && next_response < millis()) { - page_states_dirty = true; - } - if (!page_states_dirty) return; - page_states_dirty = false; - next_response = millis() + Cfg::RESPONSE_INTERVAL_MS; SERIAL_ECHO(Cfg::CONTROL_CHAR); constexpr int state_bits = 2; @@ -238,29 +227,29 @@ const uint8_t segment_table[DirectStepping::Config::NUM_SEGMENTS][DirectStepping #if STEPPER_PAGE_FORMAT == SP_4x4D_128 - { 1, 1, 1, 1, 1, 1, 1, 0 }, // 0 = -7 - { 1, 1, 1, 0, 1, 1, 1, 0 }, // 1 = -6 - { 0, 1, 1, 0, 1, 0, 1, 1 }, // 2 = -5 - { 0, 1, 0, 1, 0, 1, 0, 1 }, // 3 = -4 - { 0, 1, 0, 0, 1, 0, 0, 1 }, // 4 = -3 - { 0, 0, 1, 0, 0, 0, 1, 0 }, // 5 = -2 - { 0, 0, 0, 0, 1, 0, 0, 0 }, // 6 = -1 - { 0, 0, 0, 0, 0, 0, 0, 0 }, // 7 = 0 - { 0, 0, 0, 0, 1, 0, 0, 0 }, // 8 = 1 - { 0, 0, 1, 0, 0, 0, 1, 0 }, // 9 = 2 - { 0, 1, 0, 0, 1, 0, 0, 1 }, // 10 = 3 - { 0, 1, 0, 1, 0, 1, 0, 1 }, // 11 = 4 - { 0, 1, 1, 0, 1, 0, 1, 1 }, // 12 = 5 - { 1, 1, 1, 0, 1, 1, 1, 0 }, // 13 = 6 - { 1, 1, 1, 1, 1, 1, 1, 0 }, // 14 = 7 + { 1, 1, 1, 1, 1, 1, 1 }, // 0 = -7 + { 1, 1, 1, 0, 1, 1, 1 }, // 1 = -6 + { 1, 1, 1, 0, 1, 0, 1 }, // 2 = -5 + { 1, 1, 0, 1, 0, 1, 0 }, // 3 = -4 + { 1, 1, 0, 0, 1, 0, 0 }, // 4 = -3 + { 0, 0, 1, 0, 0, 0, 1 }, // 5 = -2 + { 0, 0, 0, 1, 0, 0, 0 }, // 6 = -1 + { 0, 0, 0, 0, 0, 0, 0 }, // 7 = 0 + { 0, 0, 0, 1, 0, 0, 0 }, // 8 = 1 + { 0, 0, 1, 0, 0, 0, 1 }, // 9 = 2 + { 1, 1, 0, 0, 1, 0, 0 }, // 10 = 3 + { 1, 1, 0, 1, 0, 1, 0 }, // 11 = 4 + { 1, 1, 1, 0, 1, 0, 1 }, // 12 = 5 + { 1, 1, 1, 0, 1, 1, 1 }, // 13 = 6 + { 1, 1, 1, 1, 1, 1, 1 }, // 14 = 7 { 0 } #elif STEPPER_PAGE_FORMAT == SP_4x2_256 - { 0, 0, 0, 0 }, // 0 - { 0, 1, 0, 0 }, // 1 - { 1, 0, 1, 0 }, // 2 - { 1, 1, 1, 0 }, // 3 + { 0, 0, 0 }, // 0 + { 0, 1, 0 }, // 1 + { 1, 0, 1 }, // 2 + { 1, 1, 1 }, // 3 #elif STEPPER_PAGE_FORMAT == SP_4x1_512 diff --git a/Marlin/src/feature/direct_stepping.h b/Marlin/src/feature/direct_stepping.h index dea261650..cde9d1a0b 100644 --- a/Marlin/src/feature/direct_stepping.h +++ b/Marlin/src/feature/direct_stepping.h @@ -70,7 +70,6 @@ namespace DirectStepping { static volatile PageState page_states[Cfg::NUM_PAGES]; static volatile bool page_states_dirty; - static millis_t next_response; static uint8_t pages[Cfg::NUM_PAGES][Cfg::PAGE_SIZE]; static uint8_t checksum; @@ -94,14 +93,11 @@ namespace DirectStepping { static constexpr int DIRECTIONAL = dir ? 1 : 0; static constexpr int SEGMENTS = segments; - static constexpr int RAW = (BITS_SEGMENT == 1) ? 1 : 0; static constexpr int NUM_SEGMENTS = 1 << BITS_SEGMENT; - static constexpr int SEGMENT_STEPS = 1 << (BITS_SEGMENT - DIRECTIONAL - RAW); + static constexpr int SEGMENT_STEPS = (1 << (BITS_SEGMENT - DIRECTIONAL)) - 1; static constexpr int TOTAL_STEPS = SEGMENT_STEPS * SEGMENTS; static constexpr int PAGE_SIZE = (NUM_AXES * BITS_SEGMENT * SEGMENTS) / 8; - static constexpr millis_t RESPONSE_INTERVAL_MS = 50; - typedef typename TypeSelector<(PAGE_SIZE>256), uint16_t, uint8_t>::type write_byte_idx_t; typedef typename TypeSelector<(NUM_PAGES>256), uint16_t, uint8_t>::type page_idx_t; }; diff --git a/Marlin/src/module/stepper.cpp b/Marlin/src/module/stepper.cpp index e5f65a3cd..0e70fd370 100644 --- a/Marlin/src/module/stepper.cpp +++ b/Marlin/src/module/stepper.cpp @@ -1578,12 +1578,11 @@ void Stepper::pulse_phase_isr() { #if STEPPER_PAGE_FORMAT == SP_4x4D_128 - #define PAGE_SEGMENT_UPDATE(AXIS, VALUE, MID) do{ \ - if ((VALUE) == MID) {} \ - else if ((VALUE) < MID) SBI(dm, _AXIS(AXIS)); \ - else CBI(dm, _AXIS(AXIS)); \ - page_step_state.sd[_AXIS(AXIS)] = VALUE; \ - page_step_state.bd[_AXIS(AXIS)] += VALUE; \ + #define PAGE_SEGMENT_UPDATE(AXIS, VALUE) do{ \ + if ((VALUE) < 7) SBI(dm, _AXIS(AXIS)); \ + else if ((VALUE) > 7) CBI(dm, _AXIS(AXIS)); \ + page_step_state.sd[_AXIS(AXIS)] = VALUE; \ + page_step_state.bd[_AXIS(AXIS)] += VALUE; \ }while(0) #define PAGE_PULSE_PREP(AXIS) do{ \ @@ -1592,7 +1591,7 @@ void Stepper::pulse_phase_isr() { }while(0) switch (page_step_state.segment_steps) { - case 8: + case DirectStepping::Config::SEGMENT_STEPS: page_step_state.segment_idx += 2; page_step_state.segment_steps = 0; // fallthru @@ -1601,10 +1600,10 @@ void Stepper::pulse_phase_isr() { high = page_step_state.page[page_step_state.segment_idx + 1]; uint8_t dm = last_direction_bits; - PAGE_SEGMENT_UPDATE(X, low >> 4, 7); - PAGE_SEGMENT_UPDATE(Y, low & 0xF, 7); - PAGE_SEGMENT_UPDATE(Z, high >> 4, 7); - PAGE_SEGMENT_UPDATE(E, high & 0xF, 7); + PAGE_SEGMENT_UPDATE(X, low >> 4); + PAGE_SEGMENT_UPDATE(Y, low & 0xF); + PAGE_SEGMENT_UPDATE(Z, high >> 4); + PAGE_SEGMENT_UPDATE(E, high & 0xF); if (dm != last_direction_bits) { last_direction_bits = dm; @@ -1615,9 +1614,9 @@ void Stepper::pulse_phase_isr() { default: break; } - PAGE_PULSE_PREP(X), - PAGE_PULSE_PREP(Y), - PAGE_PULSE_PREP(Z), + PAGE_PULSE_PREP(X); + PAGE_PULSE_PREP(Y); + PAGE_PULSE_PREP(Z); PAGE_PULSE_PREP(E); page_step_state.segment_steps++; @@ -1634,7 +1633,7 @@ void Stepper::pulse_phase_isr() { }while(0) switch (page_step_state.segment_steps) { - case 4: + case DirectStepping::Config::SEGMENT_STEPS: page_step_state.segment_idx++; page_step_state.segment_steps = 0; // fallthru @@ -1664,7 +1663,6 @@ void Stepper::pulse_phase_isr() { }while(0) uint8_t steps = page_step_state.page[page_step_state.segment_idx >> 1]; - if (page_step_state.segment_idx & 0x1) steps >>= 4; PAGE_PULSE_PREP(X, 3); From 4955aa5b783794c6a600ad2bf162748647f89143 Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Wed, 26 Aug 2020 02:15:43 -0500 Subject: [PATCH 180/194] =?UTF-8?q?Prusa=20=3D>=20Pr=C5=AF=C5=A1a?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Marlin/Configuration.h | 8 ++++---- Marlin/Configuration_adv.h | 8 ++++---- Marlin/src/MarlinCore.cpp | 4 ++-- Marlin/src/gcode/calibrate/G76_M871.cpp | 2 +- Marlin/src/inc/Conditionals_LCD.h | 2 +- Marlin/src/inc/SanityCheck.h | 2 +- Marlin/src/module/thermistor/thermistors.h | 2 +- Marlin/src/pins/stm32f4/pins_LERDGE_S.h | 2 +- Marlin/src/pins/stm32f4/pins_VAKE403D.h | 2 +- 9 files changed, 16 insertions(+), 16 deletions(-) diff --git a/Marlin/Configuration.h b/Marlin/Configuration.h index 39dc19523..d1f94c51f 100644 --- a/Marlin/Configuration.h +++ b/Marlin/Configuration.h @@ -177,7 +177,7 @@ #endif /** - * Prusa Multi-Material Unit v2 + * Průša Multi-Material Unit v2 * * Requires NOZZLE_PARK_FEATURE to park print head in case MMU unit fails. * Requires EXTRUDERS = 5 @@ -373,7 +373,7 @@ * 4 : 10k thermistor !! do not use it for a hotend. It gives bad resolution at high temp. !! * 5 : 100K thermistor - ATC Semitec 104GT-2/104NT-4-R025H42G (Used in ParCan, J-Head, and E3D) (4.7k pullup) * 501 : 100K Zonestar (Tronxy X3A) Thermistor - * 502 : 100K Zonestar Thermistor used by hot bed in Zonestar Prusa P802M + * 502 : 100K Zonestar Thermistor used by hot bed in Zonestar Průša P802M * 512 : 100k RPW-Ultra hotend thermistor (4.7k pullup) * 6 : 100k EPCOS - Not as accurate as table 1 (created using a fluke thermocouple) (4.7k pullup) * 7 : 100k Honeywell thermistor 135-104LAG-J01 (4.7k pullup) @@ -1720,9 +1720,9 @@ #define DISPLAY_CHARSET_HD44780 JAPANESE /** - * Info Screen Style (0:Classic, 1:Prusa) + * Info Screen Style (0:Classic, 1:Průša) * - * :[0:'Classic', 1:'Prusa'] + * :[0:'Classic', 1:'Průša'] */ #define LCD_INFO_SCREEN_STYLE 0 diff --git a/Marlin/Configuration_adv.h b/Marlin/Configuration_adv.h index 19906819a..8df05e8a2 100644 --- a/Marlin/Configuration_adv.h +++ b/Marlin/Configuration_adv.h @@ -2424,7 +2424,7 @@ * CHOPPER_DEFAULT_24V * CHOPPER_DEFAULT_36V * CHOPPER_09STEP_24V // 0.9 degree steppers (24V) - * CHOPPER_PRUSAMK3_24V // Imported parameters from the official Prusa firmware for MK3 (24V) + * CHOPPER_PRUSAMK3_24V // Imported parameters from the official Průša firmware for MK3 (24V) * CHOPPER_MARLIN_119 // Old defaults from Marlin v1.1.9 * * Define you own with @@ -3396,7 +3396,7 @@ #endif /** - * Prusa Multi-Material Unit v2 + * Průša Multi-Material Unit v2 * Enable in Configuration.h */ #if ENABLED(PRUSA_MMU2) @@ -3420,7 +3420,7 @@ //#define MMU2_MENUS #if ENABLED(MMU2_MENUS) // Settings for filament load / unload from the LCD menu. - // This is for Prusa MK3-style extruders. Customize for your hardware. + // This is for Průša MK3-style extruders. Customize for your hardware. #define MMU2_FILAMENTCHANGE_EJECT_FEED 80.0 #define MMU2_LOAD_TO_NOZZLE_SEQUENCE \ { 7.2, 1145 }, \ @@ -3446,7 +3446,7 @@ /** * MMU Extruder Sensor * - * Support for a Prusa (or other) IR Sensor to detect filament near the extruder + * Support for a Průša (or other) IR Sensor to detect filament near the extruder * and make loading more reliable. Suitable for an extruder equipped with a filament * sensor less than 38mm from the gears. * diff --git a/Marlin/src/MarlinCore.cpp b/Marlin/src/MarlinCore.cpp index f371ddfc6..a5fcfba6c 100644 --- a/Marlin/src/MarlinCore.cpp +++ b/Marlin/src/MarlinCore.cpp @@ -684,7 +684,7 @@ inline void manage_inactivity(const bool ignore_stepper_queue=false) { * - Read Buttons and Update the LCD * - Run i2c Position Encoders * - Auto-report Temperatures / SD Status - * - Update the Prusa MMU2 + * - Update the Průša MMU2 * - Handle Joystick jogging */ void idle(TERN_(ADVANCED_PAUSE_FEATURE, bool no_stepper_sleep/*=false*/)) { @@ -760,7 +760,7 @@ void idle(TERN_(ADVANCED_PAUSE_FEATURE, bool no_stepper_sleep/*=false*/)) { } #endif - // Update the Prusa MMU2 + // Update the Průša MMU2 TERN_(PRUSA_MMU2, mmu2.mmu_loop()); // Handle Joystick jogging diff --git a/Marlin/src/gcode/calibrate/G76_M871.cpp b/Marlin/src/gcode/calibrate/G76_M871.cpp index f2f53d213..9870d9fbe 100644 --- a/Marlin/src/gcode/calibrate/G76_M871.cpp +++ b/Marlin/src/gcode/calibrate/G76_M871.cpp @@ -45,7 +45,7 @@ * - When calibrating bed, probe temperature is held constant. * Compensation values are deltas to first probe measurement at bed temp. = 60°C. * - The hotend will not be heated at any time. - * - On my Prusa MK3S clone I put a piece of paper between the probe and the hotend + * - On my Průša MK3S clone I put a piece of paper between the probe and the hotend * so the hotend fan would not cool my probe constantly. Alternativly you could just * make sure the fan is not running while running the calibration process. * diff --git a/Marlin/src/inc/Conditionals_LCD.h b/Marlin/src/inc/Conditionals_LCD.h index ccafd413c..112ff93a0 100644 --- a/Marlin/src/inc/Conditionals_LCD.h +++ b/Marlin/src/inc/Conditionals_LCD.h @@ -512,7 +512,7 @@ #undef DISABLE_INACTIVE_EXTRUDER #endif -// Prusa MK2 Multiplexer and MMU 2.0 force SINGLENOZZLE +// Průša MK2 Multiplexer and MMU 2.0 force SINGLENOZZLE #if EITHER(MK2_MULTIPLEXER, PRUSA_MMU2) #define SINGLENOZZLE #endif diff --git a/Marlin/src/inc/SanityCheck.h b/Marlin/src/inc/SanityCheck.h index 671d6e84f..932cccd9e 100644 --- a/Marlin/src/inc/SanityCheck.h +++ b/Marlin/src/inc/SanityCheck.h @@ -2876,7 +2876,7 @@ static_assert( _ARR_TEST(3,0) && _ARR_TEST(3,1) && _ARR_TEST(3,2) #endif /** - * Prusa MMU2 requirements + * Průša MMU2 requirements */ #if ENABLED(PRUSA_MMU2) #if EXTRUDERS != 5 diff --git a/Marlin/src/module/thermistor/thermistors.h b/Marlin/src/module/thermistor/thermistors.h index 44680a7ba..56921c6d1 100644 --- a/Marlin/src/module/thermistor/thermistors.h +++ b/Marlin/src/module/thermistor/thermistors.h @@ -72,7 +72,7 @@ typedef struct { int16_t value, celsius; } temp_entry_t; #if ANY_THERMISTOR_IS(501) // 100K Zonestar thermistor #include "thermistor_501.h" #endif -#if ANY_THERMISTOR_IS(502) // Unknown thermistor used by the Zonestar Prusa P802M hot bed +#if ANY_THERMISTOR_IS(502) // Unknown thermistor used by the Zonestar Průša P802M hot bed #include "thermistor_502.h" #endif #if ANY_THERMISTOR_IS(512) // 100k thermistor in RPW-Ultra hotend, Pull-up = 4.7 kOhm, "unknown model" diff --git a/Marlin/src/pins/stm32f4/pins_LERDGE_S.h b/Marlin/src/pins/stm32f4/pins_LERDGE_S.h index d20fd5a6c..2e55782ed 100644 --- a/Marlin/src/pins/stm32f4/pins_LERDGE_S.h +++ b/Marlin/src/pins/stm32f4/pins_LERDGE_S.h @@ -127,7 +127,7 @@ #endif // -// Prusa i3 MK2 Multi Material Multiplexer Support +// Průša i3 MK2 Multi Material Multiplexer Support // //#define E_MUX0_PIN -1 //#define E_MUX1_PIN -1 diff --git a/Marlin/src/pins/stm32f4/pins_VAKE403D.h b/Marlin/src/pins/stm32f4/pins_VAKE403D.h index d34458c04..1ffe25b49 100644 --- a/Marlin/src/pins/stm32f4/pins_VAKE403D.h +++ b/Marlin/src/pins/stm32f4/pins_VAKE403D.h @@ -147,7 +147,7 @@ //#define NEOPIXEL_PIN PF13 // -// Prusa i3 MK2 Multi Material Multiplexer Support +// Průša i3 MK2 Multi Material Multiplexer Support // //#define E_MUX0_PIN PG3 //#define E_MUX1_PIN PG4 From 1a4b82a5d663ab7f68199bf77183047c1133e479 Mon Sep 17 00:00:00 2001 From: Victor Oliveira Date: Wed, 26 Aug 2020 07:13:58 -0300 Subject: [PATCH 181/194] TFT (plus Hardware SPI) for LPC (#19139) --- Marlin/src/HAL/LPC1768/HAL_SPI.cpp | 256 ++++++++++++++++-- Marlin/src/HAL/LPC1768/inc/Conditionals_LCD.h | 11 +- Marlin/src/HAL/LPC1768/include/SPI.h | 140 +++++++++- Marlin/src/HAL/LPC1768/tft/tft_spi.cpp | 153 +++++++++++ Marlin/src/HAL/LPC1768/tft/tft_spi.h | 77 ++++++ Marlin/src/HAL/LPC1768/tft/xpt2046.cpp | 129 +++++++++ Marlin/src/HAL/LPC1768/tft/xpt2046.h | 80 ++++++ Marlin/src/lcd/dogm/HAL_LCD_com_defines.h | 10 +- ...8g_dev_tft_320x240_upscale_from_128x64.cpp | 4 +- Marlin/src/pins/lpc1768/pins_BTT_SKR_V1_4.h | 32 +++ Marlin/src/pins/pinsDebug_list.h | 19 ++ 11 files changed, 862 insertions(+), 49 deletions(-) create mode 100644 Marlin/src/HAL/LPC1768/tft/tft_spi.cpp create mode 100644 Marlin/src/HAL/LPC1768/tft/tft_spi.h create mode 100644 Marlin/src/HAL/LPC1768/tft/xpt2046.cpp create mode 100644 Marlin/src/HAL/LPC1768/tft/xpt2046.h diff --git a/Marlin/src/HAL/LPC1768/HAL_SPI.cpp b/Marlin/src/HAL/LPC1768/HAL_SPI.cpp index e34a10201..00b4310d1 100644 --- a/Marlin/src/HAL/LPC1768/HAL_SPI.cpp +++ b/Marlin/src/HAL/LPC1768/HAL_SPI.cpp @@ -30,7 +30,7 @@ */ /** - * Hardware SPI and a software SPI implementations are included in this file. + * Hardware SPI and Software SPI implementations are included in this file. * The hardware SPI runs faster and has higher throughput but is not compatible * with some LCD interfaces/adapters. * @@ -51,6 +51,10 @@ #include "../../inc/MarlinConfig.h" #include +// Hardware SPI and SPIClass +#include +#include + // ------------------------ // Public functions // ------------------------ @@ -96,12 +100,6 @@ #else - // Hardware SPI - - #include - #include - #include - // decide which HW SPI device to use #ifndef LPC_HW_SPI_DEV #if (SCK_PIN == P0_07 && MISO_PIN == P0_08 && MOSI_PIN == P0_09) @@ -114,7 +112,7 @@ #endif #endif #endif - #if (LPC_HW_SPI_DEV == 0) + #if LPC_HW_SPI_DEV == 0 #define LPC_SSPn LPC_SSP0 #else #define LPC_SSPn LPC_SSP1 @@ -192,7 +190,7 @@ for (uint16_t i = 0; i < nbyte; i++) buf[i] = doio(0xFF); } - static uint8_t spiTransfer(uint8_t b) { + uint8_t spiTransfer(uint8_t b) { return doio(b); } @@ -211,30 +209,236 @@ #endif // LPC_SOFTWARE_SPI -void SPIClass::begin() { spiBegin(); } - -void SPIClass::beginTransaction(const SPISettings &cfg) { - uint8_t spiRate; - switch (cfg.spiRate()) { - case 8000000: spiRate = 0; break; - case 4000000: spiRate = 1; break; - case 2000000: spiRate = 2; break; - case 1000000: spiRate = 3; break; - case 500000: spiRate = 4; break; - case 250000: spiRate = 5; break; - case 125000: spiRate = 6; break; - default: spiRate = 2; break; - } - spiInit(spiRate); +/** + * @brief Wait until TXE (tx empty) flag is set and BSY (busy) flag unset. + */ +static inline void waitSpiTxEnd(LPC_SSP_TypeDef *spi_d) { + while (SSP_GetStatus(spi_d, SSP_STAT_TXFIFO_EMPTY) == RESET) { /* nada */ } // wait until TXE=1 + while (SSP_GetStatus(spi_d, SSP_STAT_BUSY) == SET) { /* nada */ } // wait until BSY=0 } -uint8_t SPIClass::transfer(const uint8_t B) { return spiTransfer(B); } +SPIClass::SPIClass(uint8_t device) { + // Init things specific to each SPI device + // clock divider setup is a bit of hack, and needs to be improved at a later date. + + PINSEL_CFG_Type PinCfg; // data structure to hold init values + #if BOARD_NR_SPI >= 1 + _settings[0].spi_d = LPC_SSP0; + // _settings[0].clockDivider = determine_baud_rate(_settings[0].spi_d, _settings[0].clock); + PinCfg.Funcnum = 2; + PinCfg.OpenDrain = 0; + PinCfg.Pinmode = 0; + PinCfg.Pinnum = LPC176x::pin_bit(BOARD_SPI1_SCK_PIN); + PinCfg.Portnum = LPC176x::pin_port(BOARD_SPI1_SCK_PIN); + PINSEL_ConfigPin(&PinCfg); + SET_OUTPUT(BOARD_SPI1_SCK_PIN); + + PinCfg.Pinnum = LPC176x::pin_bit(BOARD_SPI1_MISO_PIN); + PinCfg.Portnum = LPC176x::pin_port(BOARD_SPI1_MISO_PIN); + PINSEL_ConfigPin(&PinCfg); + SET_INPUT(BOARD_SPI1_MISO_PIN); + + PinCfg.Pinnum = LPC176x::pin_bit(BOARD_SPI1_MOSI_PIN); + PinCfg.Portnum = LPC176x::pin_port(BOARD_SPI1_MOSI_PIN); + PINSEL_ConfigPin(&PinCfg); + SET_OUTPUT(BOARD_SPI1_MOSI_PIN); + #endif + + #if BOARD_NR_SPI >= 2 + _settings[1].spi_d = LPC_SSP1; + // _settings[1].clockDivider = determine_baud_rate(_settings[1].spi_d, _settings[1].clock); + PinCfg.Funcnum = 2; + PinCfg.OpenDrain = 0; + PinCfg.Pinmode = 0; + PinCfg.Pinnum = LPC176x::pin_bit(BOARD_SPI2_SCK_PIN); + PinCfg.Portnum = LPC176x::pin_port(BOARD_SPI2_SCK_PIN); + PINSEL_ConfigPin(&PinCfg); + SET_OUTPUT(BOARD_SPI2_SCK_PIN); + + PinCfg.Pinnum = LPC176x::pin_bit(BOARD_SPI2_MISO_PIN); + PinCfg.Portnum = LPC176x::pin_port(BOARD_SPI2_MISO_PIN); + PINSEL_ConfigPin(&PinCfg); + SET_INPUT(BOARD_SPI2_MISO_PIN); + + PinCfg.Pinnum = LPC176x::pin_bit(BOARD_SPI2_MOSI_PIN); + PinCfg.Portnum = LPC176x::pin_port(BOARD_SPI2_MOSI_PIN); + PINSEL_ConfigPin(&PinCfg); + SET_OUTPUT(BOARD_SPI2_MOSI_PIN); + #endif + + setModule(device); + + /* Initialize GPDMA controller */ + //TODO: call once in the constructor? or each time? + GPDMA_Init(); +} + +void SPIClass::begin() { + updateSettings(); + SSP_Cmd(_currentSetting->spi_d, ENABLE); // start SSP running +} + +void SPIClass::beginTransaction(const SPISettings &cfg) { + setBitOrder(cfg.bitOrder); + setDataMode(cfg.dataMode); + setDataSize(cfg.dataSize); + //setClockDivider(determine_baud_rate(_currentSetting->spi_d, settings.clock)); + begin(); +} + +uint8_t SPIClass::transfer(const uint16_t b) { + /* send and receive a single byte */ + SSP_ReceiveData(_currentSetting->spi_d); // read any previous data + SSP_SendData(_currentSetting->spi_d, b); + waitSpiTxEnd(_currentSetting->spi_d); // wait for it to finish + return SSP_ReceiveData(_currentSetting->spi_d); +} uint16_t SPIClass::transfer16(const uint16_t data) { return (transfer((data >> 8) & 0xFF) << 8) | (transfer(data & 0xFF) & 0xFF); } -SPIClass SPI; +void SPIClass::end() { + // SSP_Cmd(_currentSetting->spi_d, DISABLE); // stop device or SSP_DeInit? + SSP_DeInit(_currentSetting->spi_d); +} + +void SPIClass::send(uint8_t data) { + SSP_SendData(_currentSetting->spi_d, data); +} + +void SPIClass::dmaSend(void *buf, uint16_t length, bool minc) { + //TODO: LPC dma can only write 0xFFF bytes at once. + GPDMA_Channel_CFG_Type GPDMACfg; + + /* Configure GPDMA channel 0 -------------------------------------------------------------*/ + /* DMA Channel 0 */ + GPDMACfg.ChannelNum = 0; + // Source memory + GPDMACfg.SrcMemAddr = (uint32_t)buf; + // Destination memory - Not used + GPDMACfg.DstMemAddr = 0; + // Transfer size + GPDMACfg.TransferSize = (minc ? length : 1); + // Transfer width + GPDMACfg.TransferWidth = (_currentSetting->dataSize == DATA_SIZE_16BIT) ? GPDMA_WIDTH_HALFWORD : GPDMA_WIDTH_BYTE; + // Transfer type + GPDMACfg.TransferType = GPDMA_TRANSFERTYPE_M2P; + // Source connection - unused + GPDMACfg.SrcConn = 0; + // Destination connection + GPDMACfg.DstConn = (_currentSetting->spi_d == LPC_SSP0) ? GPDMA_CONN_SSP0_Tx : GPDMA_CONN_SSP1_Tx; + + GPDMACfg.DMALLI = 0; + + // Enable dma on SPI + SSP_DMACmd(_currentSetting->spi_d, SSP_DMA_TX, ENABLE); + + // if minc=false, I'm repeating the same byte 'length' times, as I could not find yet how do GPDMA without memory increment + do { + // Setup channel with given parameter + GPDMA_Setup(&GPDMACfg); + + // enabled dma + GPDMA_ChannelCmd(0, ENABLE); + + // wait data transfer + while (!GPDMA_IntGetStatus(GPDMA_STAT_INTTC, 0) && !GPDMA_IntGetStatus(GPDMA_STAT_INTERR, 0)) { } + + // clear err and int + GPDMA_ClearIntPending (GPDMA_STATCLR_INTTC, 0); + GPDMA_ClearIntPending (GPDMA_STATCLR_INTERR, 0); + + // dma disable + GPDMA_ChannelCmd(0, DISABLE); + + --length; + } while (!minc && length > 0); + + waitSpiTxEnd(_currentSetting->spi_d); + + SSP_DMACmd(_currentSetting->spi_d, SSP_DMA_TX, DISABLE); +} + +uint16_t SPIClass::read() { + return SSP_ReceiveData(_currentSetting->spi_d); +} + +void SPIClass::read(uint8_t *buf, uint32_t len) { + for (uint16_t i = 0; i < len; i++) buf[i] = transfer(0xFF); +} + +void SPIClass::setClock(uint32_t clock) { + _currentSetting->clock = clock; +} + +void SPIClass::setModule(uint8_t device) { + _currentSetting = &_settings[device - 1];// SPI channels are called 1 2 and 3 but the array is zero indexed +} + +void SPIClass::setBitOrder(uint8_t bitOrder) { + _currentSetting->bitOrder = bitOrder; +} + +void SPIClass::setDataMode(uint8_t dataMode) { + _currentSetting->dataSize = dataMode; +} + +void SPIClass::setDataSize(uint32_t ds) { + _currentSetting->dataSize = ds; +} + +/** + * Set up/tear down + */ +void SPIClass::updateSettings() { + //SSP_DeInit(_currentSetting->spi_d); //todo: need force de init?! + + // divide PCLK by 2 for SSP0 + CLKPWR_SetPCLKDiv(_currentSetting->spi_d == LPC_SSP0 ? CLKPWR_PCLKSEL_SSP0 : CLKPWR_PCLKSEL_SSP1, CLKPWR_PCLKSEL_CCLK_DIV_2); + + SSP_CFG_Type HW_SPI_init; // data structure to hold init values + SSP_ConfigStructInit(&HW_SPI_init); // set values for SPI mode + HW_SPI_init.ClockRate = _currentSetting->clock; + HW_SPI_init.Databit = _currentSetting->dataSize; + + /** + * SPI Mode CPOL CPHA Shift SCK-edge Capture SCK-edge + * 0 0 0 Falling Rising + * 1 0 1 Rising Falling + * 2 1 0 Rising Falling + * 3 1 1 Falling Rising + */ + switch (_currentSetting->dataMode) { + case SPI_MODE0: + HW_SPI_init.CPHA = SSP_CPHA_FIRST; + HW_SPI_init.CPOL = SSP_CPOL_HI; + break; + case SPI_MODE1: + HW_SPI_init.CPHA = SSP_CPHA_SECOND; + HW_SPI_init.CPOL = SSP_CPOL_HI; + break; + case SPI_MODE2: + HW_SPI_init.CPHA = SSP_CPHA_FIRST; + HW_SPI_init.CPOL = SSP_CPOL_LO; + break; + case SPI_MODE3: + HW_SPI_init.CPHA = SSP_CPHA_SECOND; + HW_SPI_init.CPOL = SSP_CPOL_LO; + break; + default: + break; + } + + // TODO: handle bitOrder + SSP_Init(_currentSetting->spi_d, &HW_SPI_init); // puts the values into the proper bits in the SSP0 registers +} + +#if MISO_PIN == BOARD_SPI1_MISO_PIN + SPIClass SPI(1); +#elif MISO_PIN == BOARD_SPI2_MISO_PIN + SPIClass SPI(2); +#endif #endif // TARGET_LPC1768 diff --git a/Marlin/src/HAL/LPC1768/inc/Conditionals_LCD.h b/Marlin/src/HAL/LPC1768/inc/Conditionals_LCD.h index 7d4de40fa..b9bc0bf82 100644 --- a/Marlin/src/HAL/LPC1768/inc/Conditionals_LCD.h +++ b/Marlin/src/HAL/LPC1768/inc/Conditionals_LCD.h @@ -21,6 +21,13 @@ */ #pragma once -#if HAS_SPI_TFT || HAS_FSMC_TFT - #error "Sorry! TFT displays are not available for HAL/LPC1768." +#if HAS_FSMC_TFT + #error "Sorry! FSMC TFT displays are not current available for HAL/LPC1768." +#endif + +// This emulated DOGM has 'touch/xpt2046', not 'tft/xpt2046' +#if ENABLED(TOUCH_SCREEN) && !HAS_GRAPHICAL_TFT + #undef TOUCH_SCREEN + #undef TOUCH_SCREEN_CALIBRATION + #define HAS_TOUCH_XPT2046 1 #endif diff --git a/Marlin/src/HAL/LPC1768/include/SPI.h b/Marlin/src/HAL/LPC1768/include/SPI.h index 4acd9e702..e2645b929 100644 --- a/Marlin/src/HAL/LPC1768/include/SPI.h +++ b/Marlin/src/HAL/LPC1768/include/SPI.h @@ -24,25 +24,139 @@ #include "../../shared/HAL_SPI.h" #include +#include +#include -#define MSBFIRST 1 -#define SPI_MODE3 0 +//#define MSBFIRST 1 + +#define SPI_MODE0 0 +#define SPI_MODE1 1 +#define SPI_MODE2 2 +#define SPI_MODE3 3 + +#define DATA_SIZE_8BIT SSP_DATABIT_8 +#define DATA_SIZE_16BIT SSP_DATABIT_16 + +#define SPI_CLOCK_DIV2 8333333 //(SCR: 2) desired: 8,000,000 actual: 8,333,333 +4.2% SPI_FULL_SPEED +#define SPI_CLOCK_DIV4 4166667 //(SCR: 5) desired: 4,000,000 actual: 4,166,667 +4.2% SPI_HALF_SPEED +#define SPI_CLOCK_DIV8 2083333 //(SCR: 11) desired: 2,000,000 actual: 2,083,333 +4.2% SPI_QUARTER_SPEED +#define SPI_CLOCK_DIV16 1000000 //(SCR: 24) desired: 1,000,000 actual: 1,000,000 SPI_EIGHTH_SPEED +#define SPI_CLOCK_DIV32 500000 //(SCR: 49) desired: 500,000 actual: 500,000 SPI_SPEED_5 +#define SPI_CLOCK_DIV64 250000 //(SCR: 99) desired: 250,000 actual: 250,000 SPI_SPEED_6 +#define SPI_CLOCK_DIV128 125000 //(SCR:199) desired: 125,000 actual: 125,000 Default from HAL.h + +#define SPI_CLOCK_MAX SPI_CLOCK_DIV2 + +#define BOARD_NR_SPI 2 + +//#define BOARD_SPI1_NSS_PIN PA4 ?! +#define BOARD_SPI1_SCK_PIN P0_15 +#define BOARD_SPI1_MISO_PIN P0_17 +#define BOARD_SPI1_MOSI_PIN P0_18 + +//#define BOARD_SPI2_NSS_PIN PB12 ?! +#define BOARD_SPI2_SCK_PIN P0_07 +#define BOARD_SPI2_MISO_PIN P0_08 +#define BOARD_SPI2_MOSI_PIN P0_09 class SPISettings { - public: - SPISettings(uint32_t speed, int, int) : spi_speed(speed) {}; - uint32_t spiRate() const { return spi_speed; } - private: - uint32_t spi_speed; +public: + SPISettings(uint32_t speed, int, int) : spi_speed(speed) {}; + SPISettings(uint32_t inClock, uint8_t inBitOrder, uint8_t inDataMode, uint32_t inDataSize) { + if (__builtin_constant_p(inClock)) + init_AlwaysInline(inClock, inBitOrder, inDataMode, inDataSize); + else + init_MightInline(inClock, inBitOrder, inDataMode, inDataSize); + } + SPISettings() { + init_AlwaysInline(4000000, MSBFIRST, SPI_MODE0, DATA_SIZE_8BIT); + } + + uint32_t spiRate() const { return spi_speed; } + +private: + void init_MightInline(uint32_t inClock, uint8_t inBitOrder, uint8_t inDataMode, uint32_t inDataSize) { + init_AlwaysInline(inClock, inBitOrder, inDataMode, inDataSize); + } + void init_AlwaysInline(uint32_t inClock, uint8_t inBitOrder, uint8_t inDataMode, uint32_t inDataSize) __attribute__((__always_inline__)) { + clock = inClock; + bitOrder = inBitOrder; + dataMode = inDataMode; + dataSize = inDataSize; + } + + uint32_t spi_speed; + uint32_t clock; + uint32_t dataSize; + //uint32_t clockDivider; + uint8_t bitOrder; + uint8_t dataMode; + LPC_SSP_TypeDef *spi_d; + + friend class SPIClass; }; +/** + * @brief Wirish SPI interface. + * + * This is the same interface is available across HAL + * + * This implementation uses software slave management, so the caller + * is responsible for controlling the slave select line. + */ class SPIClass { - public: - void begin(); - void beginTransaction(const SPISettings&); - void endTransaction() {}; - uint8_t transfer(uint8_t data); - uint16_t transfer16(uint16_t data); +public: + /** + * @param spiPortNumber Number of the SPI port to manage. + */ + SPIClass(uint8_t spiPortNumber); + + /** + * Select and configure the current selected SPI device to use + */ + void begin(); + + /** + * Disable the current SPI device + */ + void end(); + + void beginTransaction(const SPISettings&); + void endTransaction() {}; + + // Transfer using 1 "Data Size" + uint8_t transfer(uint16_t data); + // Transfer 2 bytes in 8 bit mode + uint16_t transfer16(uint16_t data); + + void send(uint8_t data); + + uint16_t read(); + void read(uint8_t *buf, uint32_t len); + + void dmaSend(void *buf, uint16_t length, bool minc); + + /** + * @brief Sets the number of the SPI peripheral to be used by + * this HardwareSPI instance. + * + * @param spi_num Number of the SPI port. 1-2 in low density devices + * or 1-3 in high density devices. + */ + void setModule(uint8_t device); + + void setClock(uint32_t clock); + void setBitOrder(uint8_t bitOrder); + void setDataMode(uint8_t dataMode); + void setDataSize(uint32_t ds); + + inline uint32_t getDataSize() { return _currentSetting->dataSize; } + +private: + SPISettings _settings[BOARD_NR_SPI]; + SPISettings *_currentSetting; + + void updateSettings(); }; extern SPIClass SPI; diff --git a/Marlin/src/HAL/LPC1768/tft/tft_spi.cpp b/Marlin/src/HAL/LPC1768/tft/tft_spi.cpp new file mode 100644 index 000000000..84907acd0 --- /dev/null +++ b/Marlin/src/HAL/LPC1768/tft/tft_spi.cpp @@ -0,0 +1,153 @@ +/** + * Marlin 3D Printer Firmware + * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin] + * + * Based on Sprinter and grbl. + * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + */ + +#include "../../../inc/MarlinConfig.h" + +#if HAS_SPI_TFT + +#include "tft_spi.h" + +//TFT_SPI tft; + +SPIClass TFT_SPI::SPIx(1); + +#define TFT_CS_H WRITE(TFT_CS_PIN, HIGH) +#define TFT_CS_L WRITE(TFT_CS_PIN, LOW) + +#define TFT_DC_H WRITE(TFT_DC_PIN, HIGH) +#define TFT_DC_L WRITE(TFT_DC_PIN, LOW) + +#define TFT_RST_H WRITE(TFT_RESET_PIN, HIGH) +#define TFT_RST_L WRITE(TFT_RESET_PIN, LOW) + +#define TFT_BLK_H WRITE(TFT_BACKLIGHT_PIN, HIGH) +#define TFT_BLK_L WRITE(TFT_BACKLIGHT_PIN, LOW) + +void TFT_SPI::Init() { + #if PIN_EXISTS(TFT_RESET) + SET_OUTPUT(TFT_RESET_PIN); + TFT_RST_H; + delay(100); + #endif + + #if PIN_EXISTS(TFT_BACKLIGHT) + SET_OUTPUT(TFT_BACKLIGHT_PIN); + TFT_BLK_H; + #endif + + SET_OUTPUT(TFT_DC_PIN); + SET_OUTPUT(TFT_CS_PIN); + + TFT_DC_H; + TFT_CS_H; + + /** + * STM32F1 APB2 = 72MHz, APB1 = 36MHz, max SPI speed of this MCU if 18Mhz + * STM32F1 has 3 SPI ports, SPI1 in APB2, SPI2/SPI3 in APB1 + * so the minimum prescale of SPI1 is DIV4, SPI2/SPI3 is DIV2 + */ + #if 0 + #if SPI_DEVICE == 1 + #define SPI_CLOCK_MAX SPI_CLOCK_DIV4 + #else + #define SPI_CLOCK_MAX SPI_CLOCK_DIV2 + #endif + uint8_t clock; + uint8_t spiRate = SPI_FULL_SPEED; + switch (spiRate) { + case SPI_FULL_SPEED: clock = SPI_CLOCK_MAX ; break; + case SPI_HALF_SPEED: clock = SPI_CLOCK_DIV4 ; break; + case SPI_QUARTER_SPEED: clock = SPI_CLOCK_DIV8 ; break; + case SPI_EIGHTH_SPEED: clock = SPI_CLOCK_DIV16; break; + case SPI_SPEED_5: clock = SPI_CLOCK_DIV32; break; + case SPI_SPEED_6: clock = SPI_CLOCK_DIV64; break; + default: clock = SPI_CLOCK_DIV2; // Default from the SPI library + } + #endif + + #if TFT_MISO_PIN == BOARD_SPI1_MISO_PIN + SPIx.setModule(1); + #elif TFT_MISO_PIN == BOARD_SPI2_MISO_PIN + SPIx.setModule(2); + #endif + SPIx.setClock(SPI_CLOCK_MAX); + SPIx.setBitOrder(MSBFIRST); + SPIx.setDataMode(SPI_MODE0); +} + +void TFT_SPI::DataTransferBegin(uint16_t DataSize) { + SPIx.setDataSize(DataSize); + SPIx.begin(); + TFT_CS_L; +} + +uint32_t TFT_SPI::GetID() { + uint32_t id; + id = ReadID(LCD_READ_ID); + if ((id & 0xFFFF) == 0 || (id & 0xFFFF) == 0xFFFF) + id = ReadID(LCD_READ_ID4); + return id; +} + +uint32_t TFT_SPI::ReadID(uint16_t Reg) { + uint32_t data = 0; + + #if PIN_EXISTS(TFT_MISO) + uint8_t d = 0; + SPIx.setDataSize(DATASIZE_8BIT); + SPIx.setClock(SPI_CLOCK_DIV64); + SPIx.begin(); + TFT_CS_L; + WriteReg(Reg); + + LOOP_L_N(i, 4) { + SPIx.read((uint8_t*)&d, 1); + data = (data << 8) | d; + } + + DataTransferEnd(); + SPIx.setClock(SPI_CLOCK_MAX); + #endif + + return data >> 7; +} + +bool TFT_SPI::isBusy() { + return false; +} + +void TFT_SPI::Abort() { + DataTransferEnd(); +} + +void TFT_SPI::Transmit(uint16_t Data) { + SPIx.transfer(Data); +} + +void TFT_SPI::TransmitDMA(uint32_t MemoryIncrease, uint16_t *Data, uint16_t Count) { + DataTransferBegin(DATASIZE_16BIT); //16 + TFT_DC_H; + SPIx.dmaSend(Data, Count, MemoryIncrease); + DataTransferEnd(); +} + +#endif // HAS_SPI_TFT diff --git a/Marlin/src/HAL/LPC1768/tft/tft_spi.h b/Marlin/src/HAL/LPC1768/tft/tft_spi.h new file mode 100644 index 000000000..8d3e3127b --- /dev/null +++ b/Marlin/src/HAL/LPC1768/tft/tft_spi.h @@ -0,0 +1,77 @@ +/** + * Marlin 3D Printer Firmware + * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin] + * + * Based on Sprinter and grbl. + * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + */ +#pragma once + +#include "../../../inc/MarlinConfig.h" + +#include +#include +// #include + +#ifndef LCD_READ_ID + #define LCD_READ_ID 0x04 // Read display identification information (0xD3 on ILI9341) +#endif +#ifndef LCD_READ_ID4 + #define LCD_READ_ID4 0xD3 // Read display identification information (0xD3 on ILI9341) +#endif + +#define DATASIZE_8BIT SSP_DATABIT_8 +#define DATASIZE_16BIT SSP_DATABIT_16 +#define TFT_IO TFT_SPI + +#define DMA_MINC_ENABLE 1 +#define DMA_MINC_DISABLE 0 + +class TFT_SPI { +private: + static uint32_t ReadID(uint16_t Reg); + static void Transmit(uint16_t Data); + static void TransmitDMA(uint32_t MemoryIncrease, uint16_t *Data, uint16_t Count); + +public: + static SPIClass SPIx; + + static void Init(); + static uint32_t GetID(); + static bool isBusy(); + static void Abort(); + + static void DataTransferBegin(uint16_t DataWidth = DATASIZE_16BIT); + static void DataTransferEnd() { OUT_WRITE(TFT_CS_PIN, HIGH); SPIx.end(); }; + static void DataTransferAbort(); + + static void WriteData(uint16_t Data) { Transmit(Data); } + static void WriteReg(uint16_t Reg) { OUT_WRITE(TFT_A0_PIN, LOW); Transmit(Reg); OUT_WRITE(TFT_A0_PIN, HIGH); } + + static void WriteSequence(uint16_t *Data, uint16_t Count) { TransmitDMA(DMA_MINC_ENABLE, Data, Count); } + // static void WriteMultiple(uint16_t Color, uint16_t Count) { static uint16_t Data; Data = Color; TransmitDMA(DMA_MINC_DISABLE, &Data, Count); } + static void WriteMultiple(uint16_t Color, uint32_t Count) { + static uint16_t Data; Data = Color; + //LPC dma can only write 0xFFF bytes at once. + #define MAX_DMA_SIZE (0xFFF - 1) + while (Count > 0) { + TransmitDMA(DMA_MINC_DISABLE, &Data, Count > MAX_DMA_SIZE ? MAX_DMA_SIZE : Count); + Count = Count > MAX_DMA_SIZE ? Count - MAX_DMA_SIZE : 0; + } + #undef MAX_DMA_SIZE + } +}; diff --git a/Marlin/src/HAL/LPC1768/tft/xpt2046.cpp b/Marlin/src/HAL/LPC1768/tft/xpt2046.cpp new file mode 100644 index 000000000..c72e5f0ea --- /dev/null +++ b/Marlin/src/HAL/LPC1768/tft/xpt2046.cpp @@ -0,0 +1,129 @@ +/** + * Marlin 3D Printer Firmware + * Copyright (c) 2019 MarlinFirmware [https://github.com/MarlinFirmware/Marlin] + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + */ + +#include "../../../inc/MarlinConfig.h" + +#if HAS_TFT_XPT2046 || HAS_TOUCH_XPT2046 + +#include "xpt2046.h" +#include + +uint16_t delta(uint16_t a, uint16_t b) { return a > b ? a - b : b - a; } + +#if ENABLED(TOUCH_BUTTONS_HW_SPI) + #include + + SPIClass XPT2046::SPIx(TOUCH_BUTTONS_HW_SPI_DEVICE); + + static void touch_spi_init(uint8_t spiRate) { + XPT2046::SPIx.setModule(TOUCH_BUTTONS_HW_SPI_DEVICE); + XPT2046::SPIx.setClock(SPI_CLOCK_DIV128); + XPT2046::SPIx.setBitOrder(MSBFIRST); + XPT2046::SPIx.setDataMode(SPI_MODE0); + XPT2046::SPIx.setDataSize(DATA_SIZE_8BIT); + } +#endif + +void XPT2046::Init() { + SET_INPUT(TOUCH_MISO_PIN); + SET_OUTPUT(TOUCH_MOSI_PIN); + SET_OUTPUT(TOUCH_SCK_PIN); + OUT_WRITE(TOUCH_CS_PIN, HIGH); + + #if PIN_EXISTS(TOUCH_INT) + // Optional Pendrive interrupt pin + SET_INPUT(TOUCH_INT_PIN); + #endif + + TERN_(TOUCH_BUTTONS_HW_SPI, touch_spi_init(SPI_SPEED_6)); + + // Read once to enable pendrive status pin + getRawData(XPT2046_X); +} + +bool XPT2046::isTouched() { + return isBusy() ? false : ( + #if PIN_EXISTS(TOUCH_INT) + READ(TOUCH_INT_PIN) != HIGH + #else + getRawData(XPT2046_Z1) >= XPT2046_Z1_THRESHOLD + #endif + ); +} + +bool XPT2046::getRawPoint(int16_t *x, int16_t *y) { + if (isBusy()) return false; + if (!isTouched()) return false; + *x = getRawData(XPT2046_X); + *y = getRawData(XPT2046_Y); + SERIAL_ECHOLNPAIR("X: ", *x, ", Y: ", *y); + return isTouched(); +} + +uint16_t XPT2046::getRawData(const XPTCoordinate coordinate) { + uint16_t data[3]; + + DataTransferBegin(); + TERN_(TOUCH_BUTTONS_HW_SPI, SPIx.begin()); + + for (uint16_t i = 0; i < 3 ; i++) { + IO(coordinate); + data[i] = (IO() << 4) | (IO() >> 4); + } + + TERN_(TOUCH_BUTTONS_HW_SPI, SPIx.end()); + DataTransferEnd(); + + uint16_t delta01 = delta(data[0], data[1]), + delta02 = delta(data[0], data[2]), + delta12 = delta(data[1], data[2]); + + if (delta01 > delta02 || delta01 > delta12) + data[delta02 > delta12 ? 0 : 1] = data[2]; + + return (data[0] + data[1]) >> 1; +} + +uint16_t XPT2046::IO(uint16_t data) { + return TERN(TOUCH_BUTTONS_HW_SPI, HardwareIO, SoftwareIO)(data); +} + +extern uint8_t spiTransfer(uint8_t b); + +#if ENABLED(TOUCH_BUTTONS_HW_SPI) + uint16_t XPT2046::HardwareIO(uint16_t data) { + return SPIx.transfer(data & 0xFF); + } +#endif + +uint16_t XPT2046::SoftwareIO(uint16_t data) { + uint16_t result = 0; + + for (uint8_t j = 0x80; j; j >>= 1) { + WRITE(TOUCH_SCK_PIN, LOW); + WRITE(TOUCH_MOSI_PIN, data & j ? HIGH : LOW); + if (READ(TOUCH_MISO_PIN)) result |= j; + WRITE(TOUCH_SCK_PIN, HIGH); + } + WRITE(TOUCH_SCK_PIN, LOW); + + return result; +} + +#endif // HAS_TFT_XPT2046 diff --git a/Marlin/src/HAL/LPC1768/tft/xpt2046.h b/Marlin/src/HAL/LPC1768/tft/xpt2046.h new file mode 100644 index 000000000..019f75efc --- /dev/null +++ b/Marlin/src/HAL/LPC1768/tft/xpt2046.h @@ -0,0 +1,80 @@ +/** + * Marlin 3D Printer Firmware + * Copyright (c) 2019 MarlinFirmware [https://github.com/MarlinFirmware/Marlin] + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + */ +#pragma once + +#include "../../../inc/MarlinConfig.h" + +#if ENABLED(TOUCH_BUTTONS_HW_SPI) + #include +#endif + +#ifndef TOUCH_MISO_PIN + #define TOUCH_MISO_PIN MISO_PIN +#endif +#ifndef TOUCH_MOSI_PIN + #define TOUCH_MOSI_PIN MOSI_PIN +#endif +#ifndef TOUCH_SCK_PIN + #define TOUCH_SCK_PIN SCK_PIN +#endif +#ifndef TOUCH_CS_PIN + #define TOUCH_CS_PIN CS_PIN +#endif +#ifndef TOUCH_INT_PIN + #define TOUCH_INT_PIN -1 +#endif + +#define XPT2046_DFR_MODE 0x00 +#define XPT2046_SER_MODE 0x04 +#define XPT2046_CONTROL 0x80 + +enum XPTCoordinate : uint8_t { + XPT2046_X = 0x10 | XPT2046_CONTROL | XPT2046_DFR_MODE, + XPT2046_Y = 0x50 | XPT2046_CONTROL | XPT2046_DFR_MODE, + XPT2046_Z1 = 0x30 | XPT2046_CONTROL | XPT2046_DFR_MODE, + XPT2046_Z2 = 0x40 | XPT2046_CONTROL | XPT2046_DFR_MODE, +}; + +#if !defined(XPT2046_Z1_THRESHOLD) + #define XPT2046_Z1_THRESHOLD 10 +#endif + +class XPT2046 { +private: + static bool isBusy() { return false; } + + static uint16_t getRawData(const XPTCoordinate coordinate); + static bool isTouched(); + + static inline void DataTransferBegin() { WRITE(TOUCH_CS_PIN, LOW); }; + static inline void DataTransferEnd() { WRITE(TOUCH_CS_PIN, HIGH); }; + #if ENABLED(TOUCH_BUTTONS_HW_SPI) + static uint16_t HardwareIO(uint16_t data); + #endif + static uint16_t SoftwareIO(uint16_t data); + static uint16_t IO(uint16_t data = 0); + +public: + #if ENABLED(TOUCH_BUTTONS_HW_SPI) + static SPIClass SPIx; + #endif + + static void Init(); + static bool getRawPoint(int16_t *x, int16_t *y); +}; diff --git a/Marlin/src/lcd/dogm/HAL_LCD_com_defines.h b/Marlin/src/lcd/dogm/HAL_LCD_com_defines.h index 455fc2388..da7d4f6f1 100644 --- a/Marlin/src/lcd/dogm/HAL_LCD_com_defines.h +++ b/Marlin/src/lcd/dogm/HAL_LCD_com_defines.h @@ -82,11 +82,6 @@ #define U8G_COM_SSD_I2C_HAL u8g_com_arduino_ssd_i2c_fn - #if EITHER(FSMC_GRAPHICAL_TFT, SPI_GRAPHICAL_TFT) - uint8_t u8g_com_stm32duino_tft_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr); - #define U8G_COM_HAL_TFT_FN u8g_com_stm32duino_tft_fn - #endif - #elif defined(TARGET_LPC1768) uint8_t u8g_com_HAL_LPC1768_sw_spi_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr); @@ -117,6 +112,9 @@ #ifndef U8G_COM_SSD_I2C_HAL #define U8G_COM_SSD_I2C_HAL u8g_com_null_fn #endif -#ifndef U8G_COM_HAL_TFT_FN +#if EITHER(FSMC_GRAPHICAL_TFT, SPI_GRAPHICAL_TFT) + uint8_t u8g_com_hal_tft_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr); + #define U8G_COM_HAL_TFT_FN u8g_com_hal_tft_fn +#else #define U8G_COM_HAL_TFT_FN u8g_com_null_fn #endif diff --git a/Marlin/src/lcd/dogm/u8g_dev_tft_320x240_upscale_from_128x64.cpp b/Marlin/src/lcd/dogm/u8g_dev_tft_320x240_upscale_from_128x64.cpp index b8bfdb293..39c294def 100644 --- a/Marlin/src/lcd/dogm/u8g_dev_tft_320x240_upscale_from_128x64.cpp +++ b/Marlin/src/lcd/dogm/u8g_dev_tft_320x240_upscale_from_128x64.cpp @@ -760,7 +760,7 @@ uint8_t u8g_dev_tft_320x240_upscale_from_128x64_fn(u8g_t *u8g, u8g_dev_t *dev, u static uint8_t msgInitCount = 2; // Ignore all messages until 2nd U8G_COM_MSG_INIT -uint8_t u8g_com_stm32duino_tft_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr) { +uint8_t u8g_com_hal_tft_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr) { if (msgInitCount) { if (msg == U8G_COM_MSG_INIT) msgInitCount--; if (msgInitCount) return -1; @@ -801,7 +801,7 @@ uint8_t u8g_com_stm32duino_tft_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void break; case U8G_COM_MSG_WRITE_SEQ: - tftio.DataTransferBegin(DATASIZE_8BIT); + tftio.DataTransferBegin(DATASIZE_16BIT); for (uint8_t i = 0; i < arg_val; i += 2) tftio.WriteData(*(uint16_t *)(((uint32_t)arg_ptr) + i)); tftio.DataTransferEnd(); diff --git a/Marlin/src/pins/lpc1768/pins_BTT_SKR_V1_4.h b/Marlin/src/pins/lpc1768/pins_BTT_SKR_V1_4.h index 8fbf382be..b32f99c68 100644 --- a/Marlin/src/pins/lpc1768/pins_BTT_SKR_V1_4.h +++ b/Marlin/src/pins/lpc1768/pins_BTT_SKR_V1_4.h @@ -274,6 +274,38 @@ #define FORCE_SOFT_SPI #define LCD_BACKLIGHT_PIN -1 + #elif HAS_SPI_TFT // Config for Classic UI (emulated DOGM) and Color UI + #define SS_PIN -1 + //#define ONBOARD_SD_CS_PIN -1 + + #define TFT_CS_PIN P1_22 + #define TFT_A0_PIN P1_23 + #define TFT_DC_PIN P1_23 + #define TFT_MISO_PIN P0_17 + #define TFT_BACKLIGHT_PIN P1_18 + #define TFT_RESET_PIN P1_19 + + #define LPC_HW_SPI_DEV 0 + #define LCD_USE_DMA_SPI + + #define TOUCH_INT_PIN P1_21 + #define TOUCH_CS_PIN P1_20 + #define TOUCH_BUTTONS_HW_SPI + #define TOUCH_BUTTONS_HW_SPI_DEVICE 1 + + #ifndef GRAPHICAL_TFT_UPSCALE + #define GRAPHICAL_TFT_UPSCALE 3 + #endif + + // SPI 1 + #define SCK_PIN P0_15 + #define MISO_PIN P0_17 + #define MOSI_PIN P0_18 + + // Disable any LCD related PINs config + #define LCD_PINS_ENABLE -1 + #define LCD_PINS_RS -1 + #else #define BTN_ENC P0_28 // (58) open-drain diff --git a/Marlin/src/pins/pinsDebug_list.h b/Marlin/src/pins/pinsDebug_list.h index 3307cbde9..ac15a3c9b 100644 --- a/Marlin/src/pins/pinsDebug_list.h +++ b/Marlin/src/pins/pinsDebug_list.h @@ -1421,3 +1421,22 @@ #if PIN_EXISTS(ESP_WIFI_MODULE_GPIO2) REPORT_NAME_DIGITAL(__LINE__, ESP_WIFI_MODULE_GPIO2_PIN) #endif +// TFT PINS +#if PIN_EXISTS(TFT_CS) + REPORT_NAME_DIGITAL(__LINE__, TFT_CS_PIN) +#endif +#if PIN_EXISTS(TFT_A0) + REPORT_NAME_DIGITAL(__LINE__, TFT_A0_PIN) +#endif +#if PIN_EXISTS(TFT_DC) + REPORT_NAME_DIGITAL(__LINE__, TFT_DC_PIN) +#endif +#if PIN_EXISTS(TFT_MISO) + REPORT_NAME_DIGITAL(__LINE__, TFT_MISO_PIN) +#endif +#if PIN_EXISTS(TFT_BACKLIGHT) + REPORT_NAME_DIGITAL(__LINE__, TFT_BACKLIGHT_PIN) +#endif +#if PIN_EXISTS(TFT_RESET) + REPORT_NAME_DIGITAL(__LINE__, TFT_RESET_PIN) +#endif From 91c8c6d96eb4046171c36d79b44906d2948132be Mon Sep 17 00:00:00 2001 From: ellensp Date: Wed, 26 Aug 2020 22:14:54 +1200 Subject: [PATCH 182/194] Fix NEOPIXEL_STARTUP_TEST last delay (#19156) --- Marlin/src/feature/leds/neopixel.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/Marlin/src/feature/leds/neopixel.cpp b/Marlin/src/feature/leds/neopixel.cpp index ce2e4ee77..12759302e 100644 --- a/Marlin/src/feature/leds/neopixel.cpp +++ b/Marlin/src/feature/leds/neopixel.cpp @@ -89,6 +89,7 @@ void Marlin_NeoPixel::init() { set_color_startup(adaneo1.Color(0, 255, 0, 0)); // green safe_delay(500); set_color_startup(adaneo1.Color(0, 0, 255, 0)); // blue + safe_delay(500); #endif #ifdef NEOPIXEL_BKGD_LED_INDEX From 195d20cef2d7cf08d3a95899df05c9e67cd859da Mon Sep 17 00:00:00 2001 From: thordarsen <50306469+thordarsen@users.noreply.github.com> Date: Wed, 26 Aug 2020 06:23:56 -0400 Subject: [PATCH 183/194] Fix SINGLENOZZLE fan speed bug (#19152) --- Marlin/src/module/temperature.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Marlin/src/module/temperature.cpp b/Marlin/src/module/temperature.cpp index 813bcc061..b162173bc 100644 --- a/Marlin/src/module/temperature.cpp +++ b/Marlin/src/module/temperature.cpp @@ -210,9 +210,10 @@ const char str_t_thermal_runaway[] PROGMEM = STR_T_THERMAL_RUNAWAY, if (target < EXTRUDERS) singlenozzle_fan_speed[target] = speed; return; } - target = 0; // Always use fan index 0 with SINGLENOZZLE #endif + TERN_(SINGLENOZZLE, target = 0); // Always use fan index 0 with SINGLENOZZLE + if (target >= FAN_COUNT) return; fan_speed[target] = speed; From 84ad7cdc293f60b775c1132da6c081a3a4b98cd2 Mon Sep 17 00:00:00 2001 From: thinkyhead Date: Thu, 27 Aug 2020 00:11:19 +0000 Subject: [PATCH 184/194] [cron] Bump distribution date (2020-08-27) --- Marlin/src/inc/Version.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Marlin/src/inc/Version.h b/Marlin/src/inc/Version.h index 08d0b6358..ee62ee7aa 100644 --- a/Marlin/src/inc/Version.h +++ b/Marlin/src/inc/Version.h @@ -42,7 +42,7 @@ * version was tagged. */ #ifndef STRING_DISTRIBUTION_DATE - #define STRING_DISTRIBUTION_DATE "2020-08-26" + #define STRING_DISTRIBUTION_DATE "2020-08-27" #endif /** From 1e124e6713a2ced61a1b3113c02e575391184b23 Mon Sep 17 00:00:00 2001 From: George Fu Date: Thu, 27 Aug 2020 08:41:15 +0800 Subject: [PATCH 185/194] FYSETC S6 2.0 (#19140) --- Marlin/src/core/boards.h | 5 +- Marlin/src/pins/pins.h | 2 + Marlin/src/pins/stm32f4/pins_FYSETC_S6.h | 59 ++++++++++------ Marlin/src/pins/stm32f4/pins_FYSETC_S6_V2_0.h | 67 +++++++++++++++++++ 4 files changed, 112 insertions(+), 21 deletions(-) create mode 100644 Marlin/src/pins/stm32f4/pins_FYSETC_S6_V2_0.h diff --git a/Marlin/src/core/boards.h b/Marlin/src/core/boards.h index cadbc7142..c880b3d32 100644 --- a/Marlin/src/core/boards.h +++ b/Marlin/src/core/boards.h @@ -345,8 +345,9 @@ #define BOARD_LERDGE_X 4215 // Lerdge X (STM32F407VE) #define BOARD_VAKE403D 4216 // VAkE 403D (STM32F446VET6) #define BOARD_FYSETC_S6 4217 // FYSETC S6 board -#define BOARD_FLYF407ZG 4218 // FLYF407ZG board (STM32F407ZG) -#define BOARD_MKS_ROBIN2 4219 // MKS_ROBIN2 (STM32F407ZE) +#define BOARD_FYSETC_S6_V2_0 4218 // FYSETC S6 v2.0 board +#define BOARD_FLYF407ZG 4219 // FLYF407ZG board (STM32F407ZG) +#define BOARD_MKS_ROBIN2 4220 // MKS_ROBIN2 (STM32F407ZE) // // ARM Cortex M7 diff --git a/Marlin/src/pins/pins.h b/Marlin/src/pins/pins.h index f2aec72c4..22f6ea663 100644 --- a/Marlin/src/pins/pins.h +++ b/Marlin/src/pins/pins.h @@ -606,6 +606,8 @@ #include "stm32f4/pins_FLYF407ZG.h" // STM32F4 env:FLYF407ZG #elif MB(MKS_ROBIN2) #include "stm32f4/pins_MKS_ROBIN2.h" // STM32F4 env:MKS_ROBIN2 +#elif MB(FYSETC_S6_V2_0) + #include "stm32f4/pins_FYSETC_S6_V2_0.h" // STM32F4 env:FYSETC_S6 // // ARM Cortex M7 diff --git a/Marlin/src/pins/stm32f4/pins_FYSETC_S6.h b/Marlin/src/pins/stm32f4/pins_FYSETC_S6.h index 116aa14cf..9ffedc2ac 100644 --- a/Marlin/src/pins/stm32f4/pins_FYSETC_S6.h +++ b/Marlin/src/pins/stm32f4/pins_FYSETC_S6.h @@ -28,7 +28,7 @@ #endif #ifndef BOARD_INFO_NAME - #define BOARD_INFO_NAME "FYSETC_S6" + #define BOARD_INFO_NAME "FYSETC S6" #endif #ifndef DEFAULT_MACHINE_NAME #define DEFAULT_MACHINE_NAME BOARD_INFO_NAME @@ -82,7 +82,9 @@ // #define X_STEP_PIN PE11 #define X_DIR_PIN PE10 -#define X_ENABLE_PIN PE12 +#ifndef X_ENABLE_PIN + #define X_ENABLE_PIN PE12 +#endif #define X_CS_PIN PE7 #define Y_STEP_PIN PD8 @@ -118,23 +120,42 @@ // // Software serial // - #define X_SERIAL_TX_PIN PE9 - #define X_SERIAL_RX_PIN PE8 - - #define Y_SERIAL_TX_PIN PE14 - #define Y_SERIAL_RX_PIN PE13 - - #define Z_SERIAL_TX_PIN PD11 - #define Z_SERIAL_RX_PIN PD12 - - #define E0_SERIAL_TX_PIN PD3 - #define E0_SERIAL_RX_PIN PA15 - - #define E1_SERIAL_TX_PIN PC4 - #define E1_SERIAL_RX_PIN PC5 - - #define E2_SERIAL_TX_PIN PE1 - #define E2_SERIAL_RX_PIN PE0 + #ifndef X_SERIAL_TX_PIN + #define X_SERIAL_TX_PIN PE9 + #endif + #ifndef X_SERIAL_RX_PIN + #define X_SERIAL_RX_PIN PE8 + #endif + #ifndef Y_SERIAL_TX_PIN + #define Y_SERIAL_TX_PIN PE14 + #endif + #ifndef Y_SERIAL_RX_PIN + #define Y_SERIAL_RX_PIN PE13 + #endif + #ifndef Z_SERIAL_TX_PIN + #define Z_SERIAL_TX_PIN PD11 + #endif + #ifndef Z_SERIAL_RX_PIN + #define Z_SERIAL_RX_PIN PD12 + #endif + #ifndef E0_SERIAL_TX_PIN + #define E0_SERIAL_TX_PIN PD3 + #endif + #ifndef E0_SERIAL_RX_PIN + #define E0_SERIAL_RX_PIN PA15 + #endif + #ifndef E1_SERIAL_TX_PIN + #define E1_SERIAL_TX_PIN PC4 + #endif + #ifndef E1_SERIAL_RX_PIN + #define E1_SERIAL_RX_PIN PC5 + #endif + #ifndef E2_SERIAL_TX_PIN + #define E2_SERIAL_TX_PIN PE1 + #endif + #ifndef E2_SERIAL_RX_PIN + #define E2_SERIAL_RX_PIN PE0 + #endif #endif // diff --git a/Marlin/src/pins/stm32f4/pins_FYSETC_S6_V2_0.h b/Marlin/src/pins/stm32f4/pins_FYSETC_S6_V2_0.h new file mode 100644 index 000000000..6cd970501 --- /dev/null +++ b/Marlin/src/pins/stm32f4/pins_FYSETC_S6_V2_0.h @@ -0,0 +1,67 @@ +/** + * Marlin 3D Printer Firmware + * Copyright (c) 2019 MarlinFirmware [https://github.com/MarlinFirmware/Marlin] + * + * Based on Sprinter and grbl. + * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + */ +#pragma once + +#define BOARD_INFO_NAME "FYSETC S6 2.0" + +// +// EEPROM Emulation +// +#if NO_EEPROM_SELECTED + #undef NO_EEPROM_SELECTED + //#define FLASH_EEPROM_EMULATION + //#define SRAM_EEPROM_EMULATION + #define I2C_EEPROM +#endif + +// +// Steppers +// +#define X_ENABLE_PIN PE9 + +#if HAS_TMC_UART + #define X_SERIAL_TX_PIN PE8 + #define Y_SERIAL_TX_PIN PC4 + #define Y_SERIAL_RX_PIN PC4 + #define Z_SERIAL_TX_PIN PD12 + #define E0_SERIAL_TX_PIN PA15 + #define E1_SERIAL_TX_PIN PC5 + #define E2_SERIAL_TX_PIN PE0 +#endif + +// +// Software SPI pins for TMC2130 stepper drivers +// +#define TMC_USE_SW_SPI +#if ENABLED(TMC_USE_SW_SPI) + #ifndef TMC_SW_MOSI + #define TMC_SW_MOSI PE14 + #endif + #ifndef TMC_SW_MISO + #define TMC_SW_MISO PE13 + #endif + #ifndef TMC_SW_SCK + #define TMC_SW_SCK PE12 + #endif +#endif + +#include "pins_FYSETC_S6.h" From cb75bec06db06908bc7a044b184411ad75a86f93 Mon Sep 17 00:00:00 2001 From: Victor Oliveira Date: Thu, 27 Aug 2020 13:29:07 -0300 Subject: [PATCH 186/194] One MARLIN_DEV_MODE warning per rebuild (#19163) --- Marlin/src/MarlinCore.cpp | 4 ++++ Marlin/src/inc/SanityCheck.h | 4 ---- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Marlin/src/MarlinCore.cpp b/Marlin/src/MarlinCore.cpp index a5fcfba6c..e040c3b26 100644 --- a/Marlin/src/MarlinCore.cpp +++ b/Marlin/src/MarlinCore.cpp @@ -30,6 +30,10 @@ #include "MarlinCore.h" +#if ENABLED(MARLIN_DEV_MODE) + #warning "WARNING! Disable MARLIN_DEV_MODE for the final build!" +#endif + #include "HAL/shared/Delay.h" #include "HAL/shared/esp_wifi.h" diff --git a/Marlin/src/inc/SanityCheck.h b/Marlin/src/inc/SanityCheck.h index 932cccd9e..b345147ed 100644 --- a/Marlin/src/inc/SanityCheck.h +++ b/Marlin/src/inc/SanityCheck.h @@ -75,10 +75,6 @@ #endif #undef HEXIFY -#if ENABLED(MARLIN_DEV_MODE) - #warning "WARNING! Disable MARLIN_DEV_MODE for the final build!" -#endif - /** * Warnings for old configurations */ From e8dcbd8300680f0d0f2032065952181f51d52874 Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Thu, 27 Aug 2020 12:22:47 -0500 Subject: [PATCH 187/194] Allocate sufficient MSG_MOVE_Z_DIST buffer See #19158 --- Marlin/src/lcd/menu/menu_motion.cpp | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/Marlin/src/lcd/menu/menu_motion.cpp b/Marlin/src/lcd/menu/menu_motion.cpp index 027be4029..77ab643cd 100644 --- a/Marlin/src/lcd/menu/menu_motion.cpp +++ b/Marlin/src/lcd/menu/menu_motion.cpp @@ -195,11 +195,12 @@ void _menu_move_distance(const AxisEnum axis, const screenFunc_t func, const int SUBMENU(MSG_MOVE_1MM, []{ _goto_manual_move( 1); }); SUBMENU(MSG_MOVE_01MM, []{ _goto_manual_move( 0.1f); }); if (axis == Z_AXIS && (SHORT_MANUAL_Z_MOVE) > 0.0f && (SHORT_MANUAL_Z_MOVE) < 0.1f) { - char tmp[20], numstr[10]; // Determine digits needed right of decimal - const uint8_t digs = !UNEAR_ZERO((SHORT_MANUAL_Z_MOVE) * 1000 - int((SHORT_MANUAL_Z_MOVE) * 1000)) ? 4 : - !UNEAR_ZERO((SHORT_MANUAL_Z_MOVE) * 100 - int((SHORT_MANUAL_Z_MOVE) * 100)) ? 3 : 2; - sprintf_P(tmp, GET_TEXT(MSG_MOVE_Z_DIST), dtostrf(SHORT_MANUAL_Z_MOVE, 1, digs, numstr)); + constexpr uint8_t digs = !UNEAR_ZERO((SHORT_MANUAL_Z_MOVE) * 1000 - int((SHORT_MANUAL_Z_MOVE) * 1000)) ? 4 : + !UNEAR_ZERO((SHORT_MANUAL_Z_MOVE) * 100 - int((SHORT_MANUAL_Z_MOVE) * 100)) ? 3 : 2; + PGM_P const label = GET_TEXT(MSG_MOVE_Z_DIST); + char tmp[strlen_P(label) + 10 + 1], numstr[10]; + sprintf_P(tmp, label, dtostrf(SHORT_MANUAL_Z_MOVE, 1, digs, numstr)); #if DISABLED(HAS_GRAPHICAL_TFT) extern const char NUL_STR[]; From a96c5209d13976ae0cccc90089c6111a2c468954 Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Thu, 27 Aug 2020 14:01:36 -0500 Subject: [PATCH 188/194] =?UTF-8?q?Fix=20small=20typ=C3=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Marlin/Configuration.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Marlin/Configuration.h b/Marlin/Configuration.h index d1f94c51f..44f14a8ee 100644 --- a/Marlin/Configuration.h +++ b/Marlin/Configuration.h @@ -1689,7 +1689,7 @@ * Select the language to display on the LCD. These languages are available: * * en, an, bg, ca, cz, da, de, el, el_gr, es, eu, fi, fr, gl, hr, hu, it, - * jp_kana, ko_KR, nl, pl, pt, pt_br, ro ru, sk, tr, uk, vi, zh_CN, zh_TW, test + * jp_kana, ko_KR, nl, pl, pt, pt_br, ro, ru, sk, tr, uk, vi, zh_CN, zh_TW, test * * :{ 'en':'English', 'an':'Aragonese', 'bg':'Bulgarian', 'ca':'Catalan', 'cz':'Czech', 'da':'Danish', 'de':'German', 'el':'Greek', 'el_gr':'Greek (Greece)', 'es':'Spanish', 'eu':'Basque-Euskera', 'fi':'Finnish', 'fr':'French', 'gl':'Galician', 'hr':'Croatian', 'hu':'Hungarian', 'it':'Italian', 'jp_kana':'Japanese', 'ko_KR':'Korean (South Korea)', 'nl':'Dutch', 'pl':'Polish', 'pt':'Portuguese', 'pt_br':'Portuguese (Brazilian)', 'ro':'Romanian', 'ru':'Russian', 'sk':'Slovak', 'tr':'Turkish', 'uk':'Ukrainian', 'vi':'Vietnamese', 'zh_CN':'Chinese (Simplified)', 'zh_TW':'Chinese (Traditional)', 'test':'TEST' } */ From 21070c0aaf433ddc2ff00d9959a8704a8185e884 Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Thu, 27 Aug 2020 14:01:56 -0500 Subject: [PATCH 189/194] Fix Creality V4 probe pin --- Marlin/src/pins/stm32f1/pins_CREALITY_V4.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Marlin/src/pins/stm32f1/pins_CREALITY_V4.h b/Marlin/src/pins/stm32f1/pins_CREALITY_V4.h index 9ee8aa742..ded0ba405 100644 --- a/Marlin/src/pins/stm32f1/pins_CREALITY_V4.h +++ b/Marlin/src/pins/stm32f1/pins_CREALITY_V4.h @@ -81,7 +81,7 @@ #define Y_STOP_PIN PA6 #define Z_STOP_PIN PA7 -#define Z_PROBE_PIN PB1 // BLTouch IN +#define Z_MIN_PROBE_PIN PB1 // BLTouch IN // // Filament Runout Sensor From 97ec6c1be6f7b3b2e185be9f1637639815acbb1a Mon Sep 17 00:00:00 2001 From: Zachary Annand Date: Thu, 27 Aug 2020 14:18:16 -0500 Subject: [PATCH 190/194] Independent Neopixel option (#19115) --- Marlin/Configuration.h | 13 ++++- Marlin/Configuration_adv.h | 9 ++++ Marlin/src/MarlinCore.cpp | 4 ++ Marlin/src/feature/leds/leds.cpp | 51 +++++++++++++++---- Marlin/src/feature/leds/leds.h | 45 +++++++++++++++-- Marlin/src/feature/leds/neopixel.cpp | 53 ++++++++++++++++++- Marlin/src/feature/leds/neopixel.h | 70 ++++++++++++++++++++------ Marlin/src/gcode/feature/leds/M150.cpp | 28 +++++++++-- Marlin/src/inc/Conditionals_LCD.h | 5 ++ Marlin/src/inc/Conditionals_adv.h | 22 ++++++++ Marlin/src/inc/SanityCheck.h | 5 ++ 11 files changed, 269 insertions(+), 36 deletions(-) diff --git a/Marlin/Configuration.h b/Marlin/Configuration.h index 44f14a8ee..8cd2faf7f 100644 --- a/Marlin/Configuration.h +++ b/Marlin/Configuration.h @@ -2362,12 +2362,21 @@ #define NEOPIXEL_PIN 4 // LED driving pin //#define NEOPIXEL2_TYPE NEOPIXEL_TYPE //#define NEOPIXEL2_PIN 5 - //#define NEOPIXEL2_INSERIES // Default behavior is NeoPixel 2 in parallel - #define NEOPIXEL_PIXELS 30 // Number of LEDs in the strip, larger of 2 strips if 2 NeoPixel strips are used + #define NEOPIXEL_PIXELS 30 // Number of LEDs in the strip. (Longest strip when NEOPIXEL2_SEPARATE is disabled.) #define NEOPIXEL_IS_SEQUENTIAL // Sequential display for temperature change - LED by LED. Disable to change all LEDs at once. #define NEOPIXEL_BRIGHTNESS 127 // Initial brightness (0-255) //#define NEOPIXEL_STARTUP_TEST // Cycle through colors at startup + // Support for second Adafruit NeoPixel LED driver controlled with M150 S1 ... + //#define NEOPIXEL2_SEPARATE + #if ENABLED(NEOPIXEL2_SEPARATE) + #define NEOPIXEL2_PIXELS 15 // Number of LEDs in the second strip + #define NEOPIXEL2_BRIGHTNESS 127 // Initial brightness (0-255) + #define NEOPIXEL2_STARTUP_TEST // Cycle through colors at startup + #else + //#define NEOPIXEL2_INSERIES // Default behavior is NeoPixel 2 in parallel + #endif + // Use a single NeoPixel LED for static (background) lighting //#define NEOPIXEL_BKGD_LED_INDEX 0 // Index of the LED to use //#define NEOPIXEL_BKGD_COLOR { 255, 255, 255, 0 } // R, G, B, W diff --git a/Marlin/Configuration_adv.h b/Marlin/Configuration_adv.h index 8df05e8a2..e4b3fbf2a 100644 --- a/Marlin/Configuration_adv.h +++ b/Marlin/Configuration_adv.h @@ -1065,6 +1065,7 @@ //#define LED_CONTROL_MENU #if ENABLED(LED_CONTROL_MENU) #define LED_COLOR_PRESETS // Enable the Preset Color menu option + //#define NEO2_COLOR_PRESETS // Enable a second NeoPixel Preset Color menu option #if ENABLED(LED_COLOR_PRESETS) #define LED_USER_PRESET_RED 255 // User defined RED value #define LED_USER_PRESET_GREEN 128 // User defined GREEN value @@ -1073,6 +1074,14 @@ #define LED_USER_PRESET_BRIGHTNESS 255 // User defined intensity //#define LED_USER_PRESET_STARTUP // Have the printer display the user preset color on startup #endif + #if ENABLED(NEO2_COLOR_PRESETS) + #define NEO2_USER_PRESET_RED 255 // User defined RED value + #define NEO2_USER_PRESET_GREEN 128 // User defined GREEN value + #define NEO2_USER_PRESET_BLUE 0 // User defined BLUE value + #define NEO2_USER_PRESET_WHITE 255 // User defined WHITE value + #define NEO2_USER_PRESET_BRIGHTNESS 255 // User defined intensity + //#define NEO2_USER_PRESET_STARTUP // Have the printer display the user preset color on startup for the second strip + #endif #endif #endif // HAS_LCD_MENU diff --git a/Marlin/src/MarlinCore.cpp b/Marlin/src/MarlinCore.cpp index e040c3b26..e703eaf8d 100644 --- a/Marlin/src/MarlinCore.cpp +++ b/Marlin/src/MarlinCore.cpp @@ -995,6 +995,10 @@ void setup() { SETUP_RUN(leds.setup()); #endif + #if ENABLED(NEOPIXEL2_SEPARATE) + SETUP_RUN(leds2.setup()); + #endif + #if ENABLED(USE_CONTROLLER_FAN) // Set up fan controller to initialize also the default configurations. SETUP_RUN(controllerFan.setup()); #endif diff --git a/Marlin/src/feature/leds/leds.cpp b/Marlin/src/feature/leds/leds.cpp index d1c0bfd5e..01bca8092 100644 --- a/Marlin/src/feature/leds/leds.cpp +++ b/Marlin/src/feature/leds/leds.cpp @@ -44,11 +44,8 @@ #if ENABLED(LED_COLOR_PRESETS) const LEDColor LEDLights::defaultLEDColor = MakeLEDColor( - LED_USER_PRESET_RED, - LED_USER_PRESET_GREEN, - LED_USER_PRESET_BLUE, - LED_USER_PRESET_WHITE, - LED_USER_PRESET_BRIGHTNESS + LED_USER_PRESET_RED, LED_USER_PRESET_GREEN, LED_USER_PRESET_BLUE, + LED_USER_PRESET_WHITE, LED_USER_PRESET_BRIGHTNESS ); #endif @@ -117,12 +114,13 @@ void LEDLights::set_color(const LEDColor &incol // This variant uses 3-4 separate pins for the RGB(W) components. // If the pins can do PWM then their intensity will be set. - #define UPDATE_RGBW(C,c) do { if (PWM_PIN(RGB_LED_##C##_PIN)) \ + #define UPDATE_RGBW(C,c) do { \ + if (PWM_PIN(RGB_LED_##C##_PIN)) \ analogWrite(pin_t(RGB_LED_##C##_PIN), incol.c); \ - else WRITE(RGB_LED_##C##_PIN, incol.c ? HIGH : LOW); }while(0) - UPDATE_RGBW(R,r); - UPDATE_RGBW(G,g); - UPDATE_RGBW(B,b); + else \ + WRITE(RGB_LED_##C##_PIN, incol.c ? HIGH : LOW); \ + }while(0) + UPDATE_RGBW(R,r); UPDATE_RGBW(G,g); UPDATE_RGBW(B,b); #if ENABLED(RGBW_LED) UPDATE_RGBW(W,w); #endif @@ -158,4 +156,35 @@ void LEDLights::set_color(const LEDColor &incol #endif -#endif // HAS_COLOR_LEDS +#if ENABLED(NEOPIXEL2_SEPARATE) + + #if ENABLED(NEO2_COLOR_PRESETS) + const LEDColor LEDLights2::defaultLEDColor = MakeLEDColor( + NEO2_USER_PRESET_RED, NEO2_USER_PRESET_GREEN, NEO2_USER_PRESET_BLUE, + NEO2_USER_PRESET_WHITE, NEO2_USER_PRESET_BRIGHTNESS + ); + #endif + + #if ENABLED(LED_CONTROL_MENU) + LEDColor LEDLights2::color; + bool LEDLights2::lights_on; + #endif + + LEDLights2 leds2; + + void LEDLights2::setup() { + neo2.init(); + TERN_(NEO2_USER_PRESET_STARTUP, set_default()); + } + + void LEDLights2::set_color(const LEDColor &incol) { + const uint32_t neocolor = LEDColorWhite() == incol + ? neo2.Color(NEO2_WHITE) + : neo2.Color(incol.r, incol.g, incol.b, incol.w); + neo2.set_brightness(incol.i); + neo2.set_color(neocolor); + } + +#endif // NEOPIXEL2_SEPARATE + +#endif // HAS_COLOR_LEDS diff --git a/Marlin/src/feature/leds/leds.h b/Marlin/src/feature/leds/leds.h index 1302f63c1..a13f960a3 100644 --- a/Marlin/src/feature/leds/leds.h +++ b/Marlin/src/feature/leds/leds.h @@ -155,11 +155,9 @@ public: static inline void set_color(uint8_t r, uint8_t g, uint8_t b #if HAS_WHITE_LED , uint8_t w=0 - #if ENABLED(NEOPIXEL_LED) - , uint8_t i=NEOPIXEL_BRIGHTNESS - #endif #endif #if ENABLED(NEOPIXEL_LED) + , uint8_t i=NEOPIXEL_BRIGHTNESS , bool isSequence=false #endif ) { @@ -212,3 +210,44 @@ public: }; extern LEDLights leds; + +#if ENABLED(NEOPIXEL2_SEPARATE) + + class LEDLights2 { + public: + LEDLights2() {} + + static void setup(); // init() + + static void set_color(const LEDColor &color); + + inline void set_color(uint8_t r, uint8_t g, uint8_t b, uint8_t w=0, uint8_t i=NEOPIXEL2_BRIGHTNESS) { + set_color(MakeLEDColor(r, g, b, w, i)); + } + + static inline void set_off() { set_color(LEDColorOff()); } + static inline void set_green() { set_color(LEDColorGreen()); } + static inline void set_white() { set_color(LEDColorWhite()); } + + #if ENABLED(NEO2_COLOR_PRESETS) + static const LEDColor defaultLEDColor; + static inline void set_default() { set_color(defaultLEDColor); } + static inline void set_red() { set_color(LEDColorRed()); } + static inline void set_orange() { set_color(LEDColorOrange()); } + static inline void set_yellow() { set_color(LEDColorYellow()); } + static inline void set_blue() { set_color(LEDColorBlue()); } + static inline void set_indigo() { set_color(LEDColorIndigo()); } + static inline void set_violet() { set_color(LEDColorViolet()); } + #endif + + #if ENABLED(LED_CONTROL_MENU) + static LEDColor color; // last non-off color + static bool lights_on; // the last set color was "on" + static void toggle(); // swap "off" with color + static inline void update() { set_color(color); } + #endif + }; + + extern LEDLights2 leds2; + +#endif // NEOPIXEL2_SEPARATE diff --git a/Marlin/src/feature/leds/neopixel.cpp b/Marlin/src/feature/leds/neopixel.cpp index 12759302e..27bbeb348 100644 --- a/Marlin/src/feature/leds/neopixel.cpp +++ b/Marlin/src/feature/leds/neopixel.cpp @@ -30,7 +30,7 @@ #include "neopixel.h" -#if ENABLED(NEOPIXEL_STARTUP_TEST) +#if EITHER(NEOPIXEL_STARTUP_TEST, NEOPIXEL2_STARTUP_TEST) #include "../../core/utility.h" #endif @@ -38,7 +38,7 @@ Marlin_NeoPixel neo; int8_t Marlin_NeoPixel::neoindex; Adafruit_NeoPixel Marlin_NeoPixel::adaneo1(NEOPIXEL_PIXELS, NEOPIXEL_PIN, NEOPIXEL_TYPE + NEO_KHZ800) - #if EITHER(MULTIPLE_NEOPIXEL_TYPES, NEOPIXEL2_INSERIES) + #if CONJOINED_NEOPIXEL , Marlin_NeoPixel::adaneo2(NEOPIXEL_PIXELS, NEOPIXEL2_PIN, NEOPIXEL2_TYPE + NEO_KHZ800) #endif ; @@ -120,4 +120,53 @@ bool Marlin_NeoPixel::set_led_color(const uint8_t r, const uint8_t g, const uint } #endif +#if ENABLED(NEOPIXEL2_SEPARATE) + + Marlin_NeoPixel2 neo2; + + int8_t Marlin_NeoPixel2::neoindex; + Adafruit_NeoPixel Marlin_NeoPixel2::adaneo(NEOPIXEL2_PIXELS, NEOPIXEL2_PIN, NEOPIXEL2_TYPE); + + void Marlin_NeoPixel2::set_color(const uint32_t color) { + if (neoindex >= 0) { + set_pixel_color(neoindex, color); + neoindex = -1; + } + else { + for (uint16_t i = 0; i < pixels(); ++i) + set_pixel_color(i, color); + } + show(); + } + + void Marlin_NeoPixel2::set_color_startup(const uint32_t color) { + for (uint16_t i = 0; i < pixels(); ++i) + set_pixel_color(i, color); + show(); + } + + void Marlin_NeoPixel2::init() { + neoindex = -1; // -1 .. NEOPIXEL2_PIXELS-1 range + set_brightness(NEOPIXEL2_BRIGHTNESS); // 0 .. 255 range + begin(); + show(); // initialize to all off + + #if ENABLED(NEOPIXEL2_STARTUP_TEST) + set_color_startup(adaneo.Color(255, 0, 0, 0)); // red + safe_delay(500); + set_color_startup(adaneo.Color(0, 255, 0, 0)); // green + safe_delay(500); + set_color_startup(adaneo.Color(0, 0, 255, 0)); // blue + safe_delay(500); + #endif + + #if ENABLED(NEO2_USER_PRESET_STARTUP) + set_color(adaneo.Color(NEO2_USER_PRESET_RED, NEO2_USER_PRESET_GREEN, NEO2_USER_PRESET_BLUE, NEO2_USER_PRESET_WHITE)); + #else + set_color(adaneo.Color(0, 0, 0, 0)); + #endif + } + +#endif // NEOPIXEL2_SEPARATE + #endif // NEOPIXEL_LED diff --git a/Marlin/src/feature/leds/neopixel.h b/Marlin/src/feature/leds/neopixel.h index 0d9fdefc0..81a0a8b1c 100644 --- a/Marlin/src/feature/leds/neopixel.h +++ b/Marlin/src/feature/leds/neopixel.h @@ -38,10 +38,14 @@ // Defines // ------------------------ -#if defined(NEOPIXEL2_TYPE) && NEOPIXEL2_TYPE != NEOPIXEL_TYPE +#if defined(NEOPIXEL2_TYPE) && NEOPIXEL2_TYPE != NEOPIXEL_TYPE && DISABLED(NEOPIXEL2_SEPARATE) #define MULTIPLE_NEOPIXEL_TYPES 1 #endif +#if EITHER(MULTIPLE_NEOPIXEL_TYPES, NEOPIXEL2_INSERIES) + #define CONJOINED_NEOPIXEL 1 +#endif + #if NEOPIXEL_TYPE == NEO_RGB || NEOPIXEL_TYPE == NEO_RBG || NEOPIXEL_TYPE == NEO_GRB || NEOPIXEL_TYPE == NEO_GBR || NEOPIXEL_TYPE == NEO_BRG || NEOPIXEL_TYPE == NEO_BGR #define NEOPIXEL_IS_RGB 1 #else @@ -61,7 +65,7 @@ class Marlin_NeoPixel { private: static Adafruit_NeoPixel adaneo1 - #if EITHER(MULTIPLE_NEOPIXEL_TYPES, NEOPIXEL2_INSERIES) + #if CONJOINED_NEOPIXEL , adaneo2 #endif ; @@ -80,11 +84,7 @@ public: static inline void begin() { adaneo1.begin(); - #if ENABLED(NEOPIXEL2_INSERIES) - adaneo2.begin(); - #else - TERN_(MULTIPLE_NEOPIXEL_TYPES, adaneo2.begin()); - #endif + TERN_(CONJOINED_NEOPIXEL, adaneo2.begin()); } static inline void set_pixel_color(const uint16_t n, const uint32_t c) { @@ -93,23 +93,21 @@ public: else adaneo1.setPixelColor(n, c); #else adaneo1.setPixelColor(n, c); - TERN_(MULTIPLE_NEOPIXEL_TYPES, adaneo2.setPixelColor(n, c)); + #if MULTIPLE_NEOPIXEL_TYPES + adaneo2.setPixelColor(n, c); + #endif #endif } static inline void set_brightness(const uint8_t b) { adaneo1.setBrightness(b); - #if ENABLED(NEOPIXEL2_INSERIES) - adaneo2.setBrightness(b); - #else - TERN_(MULTIPLE_NEOPIXEL_TYPES, adaneo2.setBrightness(b)); - #endif + TERN_(CONJOINED_NEOPIXEL, adaneo2.setBrightness(b)); } static inline void show() { adaneo1.show(); #if PIN_EXISTS(NEOPIXEL2) - #if EITHER(MULTIPLE_NEOPIXEL_TYPES, NEOPIXEL2_INSERIES) + #if CONJOINED_NEOPIXEL adaneo2.show(); #else adaneo1.setPin(NEOPIXEL2_PIN); @@ -132,3 +130,47 @@ public: }; extern Marlin_NeoPixel neo; + +// Neo pixel channel 2 +#if ENABLED(NEOPIXEL2_SEPARATE) + + #if NEOPIXEL2_TYPE == NEO_RGB || NEOPIXEL2_TYPE == NEO_RBG || NEOPIXEL2_TYPE == NEO_GRB || NEOPIXEL2_TYPE == NEO_GBR || NEOPIXEL2_TYPE == NEO_BRG || NEOPIXEL2_TYPE == NEO_BGR + #define NEOPIXEL2_IS_RGB 1 + #else + #define NEOPIXEL2_IS_RGBW 1 + #endif + + #if NEOPIXEL2_IS_RGB + #define NEO2_WHITE 255, 255, 255, 0 + #else + #define NEO2_WHITE 0, 0, 0, 255 + #endif + + class Marlin_NeoPixel2 { + private: + static Adafruit_NeoPixel adaneo; + + public: + static int8_t neoindex; + + static void init(); + static void set_color_startup(const uint32_t c); + + static void set_color(const uint32_t c); + + static inline void begin() { adaneo.begin(); } + static inline void set_pixel_color(const uint16_t n, const uint32_t c) { adaneo.setPixelColor(n, c); } + static inline void set_brightness(const uint8_t b) { adaneo.setBrightness(b); } + static inline void show() { adaneo.show(); } + + // Accessors + static inline uint16_t pixels() { return adaneo.numPixels();} + static inline uint8_t brightness() { return adaneo.getBrightness(); } + static inline uint32_t Color(uint8_t r, uint8_t g, uint8_t b, uint8_t w) { + return adaneo.Color(r, g, b, w); + } + }; + + extern Marlin_NeoPixel2 neo2; + +#endif // NEOPIXEL2_SEPARATE diff --git a/Marlin/src/gcode/feature/leds/M150.cpp b/Marlin/src/gcode/feature/leds/M150.cpp index 83bd24c41..cf09bf14e 100644 --- a/Marlin/src/gcode/feature/leds/M150.cpp +++ b/Marlin/src/gcode/feature/leds/M150.cpp @@ -37,6 +37,9 @@ * With NEOPIXEL_LED: * I Set the NeoPixel index to affect. Default: All * + * With NEOPIXEL2_SEPARATE: + * S The NeoPixel strip to set. Default is index 0. + * * Examples: * * M150 R255 ; Turn LED red @@ -47,18 +50,35 @@ * M150 P127 ; Set LED 50% brightness * M150 P ; Set LED full brightness * M150 I1 R ; Set NEOPIXEL index 1 to red + * M150 S1 I1 R ; Set SEPARATE index 1 to red */ + void GcodeSuite::M150() { #if ENABLED(NEOPIXEL_LED) - neo.neoindex = parser.intval('I', -1); + const uint8_t index = parser.intval('I', -1); + #if ENABLED(NEOPIXEL2_SEPARATE) + const uint8_t unit = parser.intval('S'), + brightness = unit ? neo2.brightness() : neo.brightness(); + *(unit ? &neo2.neoindex : &neo.neoindex) = index; + #else + const uint8_t brightness = neo.brightness(); + neo.neoindex = index; + #endif #endif - leds.set_color(MakeLEDColor( + + const LEDColor color = MakeLEDColor( parser.seen('R') ? (parser.has_value() ? parser.value_byte() : 255) : 0, parser.seen('U') ? (parser.has_value() ? parser.value_byte() : 255) : 0, parser.seen('B') ? (parser.has_value() ? parser.value_byte() : 255) : 0, parser.seen('W') ? (parser.has_value() ? parser.value_byte() : 255) : 0, - parser.seen('P') ? (parser.has_value() ? parser.value_byte() : 255) : neo.brightness() - )); + parser.seen('P') ? (parser.has_value() ? parser.value_byte() : 255) : brightness + ); + + #if ENABLED(NEOPIXEL2_SEPARATE) + if (unit == 1) { leds2.set_color(color); return; } + #endif + + leds.set_color(color); } #endif // HAS_COLOR_LEDS diff --git a/Marlin/src/inc/Conditionals_LCD.h b/Marlin/src/inc/Conditionals_LCD.h index 112ff93a0..bbe89b7c5 100644 --- a/Marlin/src/inc/Conditionals_LCD.h +++ b/Marlin/src/inc/Conditionals_LCD.h @@ -780,3 +780,8 @@ #ifndef EXTRUDE_MINTEMP #define EXTRUDE_MINTEMP 170 #endif + +// This flag indicates if Neopixel pins are shared or separated +#if EITHER(MULTIPLE_NEOPIXEL_TYPES, NEOPIXEL2_INSERIES) + #define CONJOINED_NEOPIXEL 1 +#endif diff --git a/Marlin/src/inc/Conditionals_adv.h b/Marlin/src/inc/Conditionals_adv.h index fa4f0cd9b..35542f941 100644 --- a/Marlin/src/inc/Conditionals_adv.h +++ b/Marlin/src/inc/Conditionals_adv.h @@ -246,6 +246,28 @@ #endif #endif +#if BOTH(LED_CONTROL_MENU, NEOPIXEL2_SEPARATE) + #ifndef LED2_USER_PRESET_RED + #define LED2_USER_PRESET_RED 255 + #endif + #ifndef LED2_USER_PRESET_GREEN + #define LED2_USER_PRESET_GREEN 255 + #endif + #ifndef LED2_USER_PRESET_BLUE + #define LED2_USER_PRESET_BLUE 255 + #endif + #ifndef LED2_USER_PRESET_WHITE + #define LED2_USER_PRESET_WHITE 0 + #endif + #ifndef LED2_USER_PRESET_BRIGHTNESS + #ifdef NEOPIXEL2_BRIGHTNESS + #define LED2_USER_PRESET_BRIGHTNESS NEOPIXEL2_BRIGHTNESS + #else + #define LED2_USER_PRESET_BRIGHTNESS 255 + #endif + #endif +#endif + // If platform requires early initialization of watchdog to properly boot #if ENABLED(USE_WATCHDOG) && defined(ARDUINO_ARCH_SAM) #define EARLY_WATCHDOG 1 diff --git a/Marlin/src/inc/SanityCheck.h b/Marlin/src/inc/SanityCheck.h index b345147ed..da5ddc1c2 100644 --- a/Marlin/src/inc/SanityCheck.h +++ b/Marlin/src/inc/SanityCheck.h @@ -2120,7 +2120,12 @@ static_assert(hbm[Z_AXIS] >= 0, "HOMING_BUMP_MM.Z must be greater than or equal #if !(PIN_EXISTS(NEOPIXEL) && NEOPIXEL_PIXELS > 0) #error "NEOPIXEL_LED requires NEOPIXEL_PIN and NEOPIXEL_PIXELS." #endif + #elif ENABLED(NEOPIXEL2_SEPARATE) + #if !(PIN_EXISTS(NEOPIXEL2) && NEOPIXEL2_PIXELS > 0) + #error "NEOPIXEL2 requires NEOPIXEL2_PIN and NEOPIXEL2_PIXELS." + #endif #endif + #undef _RGB_TEST #if DISABLED(NO_COMPILE_TIME_PWM) From 462d3eeab15d173ade700faf961931050aed9d70 Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Thu, 27 Aug 2020 14:48:42 -0500 Subject: [PATCH 191/194] set_axis_not_trusted => set_axis_never_homed --- Marlin/src/gcode/bedlevel/G35.cpp | 2 +- Marlin/src/gcode/calibrate/G34_M422.cpp | 2 +- Marlin/src/module/motion.cpp | 8 ++++---- Marlin/src/module/motion.h | 2 +- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/Marlin/src/gcode/bedlevel/G35.cpp b/Marlin/src/gcode/bedlevel/G35.cpp index 786065b34..7595067db 100755 --- a/Marlin/src/gcode/bedlevel/G35.cpp +++ b/Marlin/src/gcode/bedlevel/G35.cpp @@ -176,7 +176,7 @@ void GcodeSuite::G35() { probe.stow(); // After this operation the Z position needs correction - set_axis_not_trusted(Z_AXIS); + set_axis_never_homed(Z_AXIS); // Home Z after the alignment procedure process_subcommands_now_P(PSTR("G28Z")); diff --git a/Marlin/src/gcode/calibrate/G34_M422.cpp b/Marlin/src/gcode/calibrate/G34_M422.cpp index 3360dc050..1fd0754ec 100644 --- a/Marlin/src/gcode/calibrate/G34_M422.cpp +++ b/Marlin/src/gcode/calibrate/G34_M422.cpp @@ -346,7 +346,7 @@ void GcodeSuite::G34() { #if ENABLED(HOME_AFTER_G34) // After this operation the z position needs correction - set_axis_not_trusted(Z_AXIS); + set_axis_never_homed(Z_AXIS); // Home Z after the alignment procedure process_subcommands_now_P(PSTR("G28Z")); #else diff --git a/Marlin/src/module/motion.cpp b/Marlin/src/module/motion.cpp index 9b8c1c60f..c6378d67f 100644 --- a/Marlin/src/module/motion.cpp +++ b/Marlin/src/module/motion.cpp @@ -1431,15 +1431,15 @@ void set_axis_is_at_home(const AxisEnum axis) { } /** - * Set an axis' to be unhomed. + * Set an axis to be unhomed. */ -void set_axis_not_trusted(const AxisEnum axis) { - if (DEBUGGING(LEVELING)) DEBUG_ECHOLNPAIR(">>> set_axis_not_trusted(", axis_codes[axis], ")"); +void set_axis_never_homed(const AxisEnum axis) { + if (DEBUGGING(LEVELING)) DEBUG_ECHOLNPAIR(">>> set_axis_never_homed(", axis_codes[axis], ")"); CBI(axis_known_position, axis); CBI(axis_homed, axis); - if (DEBUGGING(LEVELING)) DEBUG_ECHOLNPAIR("<<< set_axis_not_trusted(", axis_codes[axis], ")"); + if (DEBUGGING(LEVELING)) DEBUG_ECHOLNPAIR("<<< set_axis_never_homed(", axis_codes[axis], ")"); TERN_(I2C_POSITION_ENCODERS, I2CPEM.unhomed(axis)); } diff --git a/Marlin/src/module/motion.h b/Marlin/src/module/motion.h index 38ce980da..1a0971d28 100644 --- a/Marlin/src/module/motion.h +++ b/Marlin/src/module/motion.h @@ -251,7 +251,7 @@ bool axis_unhomed_error(uint8_t axis_bits=0x07); void set_axis_is_at_home(const AxisEnum axis); -void set_axis_not_trusted(const AxisEnum axis); +void set_axis_never_homed(const AxisEnum axis); void homeaxis(const AxisEnum axis); From a12ac5e1754f0f66babde400a0406b6cdbff983e Mon Sep 17 00:00:00 2001 From: swissnorp <67485708+swissnorp@users.noreply.github.com> Date: Thu, 27 Aug 2020 23:05:53 +0200 Subject: [PATCH 192/194] Mark axes not-homed with HOME_AFTER_DEACTIVATE (#18907) --- Marlin/src/feature/babystep.cpp | 5 +++-- Marlin/src/feature/bedlevel/ubl/ubl_G29.cpp | 2 +- Marlin/src/feature/pause.cpp | 2 +- Marlin/src/gcode/bedlevel/G26.cpp | 2 +- Marlin/src/gcode/bedlevel/abl/G29.cpp | 2 +- Marlin/src/gcode/calibrate/G28.cpp | 6 +++--- Marlin/src/gcode/calibrate/G425.cpp | 2 +- Marlin/src/gcode/calibrate/M48.cpp | 2 +- Marlin/src/gcode/feature/camera/M240.cpp | 2 +- Marlin/src/gcode/feature/clean/G12.cpp | 2 +- Marlin/src/gcode/feature/pause/G27.cpp | 2 +- Marlin/src/gcode/feature/pause/M701_M702.cpp | 4 ++-- Marlin/src/gcode/geometry/M206_M428.cpp | 2 +- Marlin/src/gcode/motion/G0_G1.cpp | 2 +- Marlin/src/lcd/menu/menu_configuration.cpp | 2 +- Marlin/src/module/motion.cpp | 15 +++++++-------- Marlin/src/module/motion.h | 19 +++++++------------ Marlin/src/module/probe.cpp | 2 +- Marlin/src/module/stepper/indirection.h | 7 ++++--- Marlin/src/module/tool_change.cpp | 2 +- 20 files changed, 40 insertions(+), 44 deletions(-) diff --git a/Marlin/src/feature/babystep.cpp b/Marlin/src/feature/babystep.cpp index 41d0a9cb1..b07688146 100644 --- a/Marlin/src/feature/babystep.cpp +++ b/Marlin/src/feature/babystep.cpp @@ -26,7 +26,8 @@ #include "babystep.h" #include "../MarlinCore.h" -#include "../module/planner.h" +#include "../module/motion.h" // for axes_should_home() +#include "../module/planner.h" // for axis_steps_per_mm[] #include "../module/stepper.h" #if ENABLED(BABYSTEP_ALWAYS_AVAILABLE) @@ -54,7 +55,7 @@ void Babystep::add_mm(const AxisEnum axis, const float &mm) { } void Babystep::add_steps(const AxisEnum axis, const int16_t distance) { - if (DISABLED(BABYSTEP_WITHOUT_HOMING) && !TEST(axis_known_position, axis)) return; + if (DISABLED(BABYSTEP_WITHOUT_HOMING) && axes_should_home(_BV(axis))) return; accum += distance; // Count up babysteps for the UI steps[BS_AXIS_IND(axis)] += distance; diff --git a/Marlin/src/feature/bedlevel/ubl/ubl_G29.cpp b/Marlin/src/feature/bedlevel/ubl/ubl_G29.cpp index 69a66420f..d13a8c3dc 100644 --- a/Marlin/src/feature/bedlevel/ubl/ubl_G29.cpp +++ b/Marlin/src/feature/bedlevel/ubl/ubl_G29.cpp @@ -321,7 +321,7 @@ // Check for commands that require the printer to be homed if (may_move) { planner.synchronize(); - if (axes_need_homing()) gcode.home_all_axes(); + if (axes_should_home()) gcode.home_all_axes(); TERN_(HAS_MULTI_HOTEND, if (active_extruder) tool_change(0)); } diff --git a/Marlin/src/feature/pause.cpp b/Marlin/src/feature/pause.cpp index 2cb9c2df7..a7ed93425 100644 --- a/Marlin/src/feature/pause.cpp +++ b/Marlin/src/feature/pause.cpp @@ -413,7 +413,7 @@ bool pause_print(const float &retract, const xyz_pos_t &park_point, const float unscaled_e_move(retract, PAUSE_PARK_RETRACT_FEEDRATE); // Park the nozzle by moving up by z_lift and then moving to (x_pos, y_pos) - if (!axes_need_homing()) + if (!axes_should_home()) nozzle.park(0, park_point); #if ENABLED(DUAL_X_CARRIAGE) diff --git a/Marlin/src/gcode/bedlevel/G26.cpp b/Marlin/src/gcode/bedlevel/G26.cpp index 2399f207b..cd0dbb13c 100644 --- a/Marlin/src/gcode/bedlevel/G26.cpp +++ b/Marlin/src/gcode/bedlevel/G26.cpp @@ -490,7 +490,7 @@ void GcodeSuite::G26() { // Don't allow Mesh Validation without homing first, // or if the parameter parsing did not go OK, abort - if (axis_unhomed_error()) return; + if (homing_needed_error()) return; // Change the tool first, if specified if (parser.seenval('T')) tool_change(parser.value_int()); diff --git a/Marlin/src/gcode/bedlevel/abl/G29.cpp b/Marlin/src/gcode/bedlevel/abl/G29.cpp index f25fe32b0..e7651cc74 100644 --- a/Marlin/src/gcode/bedlevel/abl/G29.cpp +++ b/Marlin/src/gcode/bedlevel/abl/G29.cpp @@ -183,7 +183,7 @@ G29_TYPE GcodeSuite::G29() { faux = ENABLED(DEBUG_LEVELING_FEATURE) && DISABLED(PROBE_MANUALLY) ? parser.boolval('C') : no_action; // Don't allow auto-leveling without homing first - if (axis_unhomed_error()) G29_RETURN(false); + if (homing_needed_error()) G29_RETURN(false); if (!no_action && planner.leveling_active && parser.boolval('O')) { // Auto-level only if needed if (DEBUGGING(LEVELING)) DEBUG_ECHOLNPGM("> Auto-level not needed, skip"); diff --git a/Marlin/src/gcode/calibrate/G28.cpp b/Marlin/src/gcode/calibrate/G28.cpp index 78695bc05..0e1f70789 100644 --- a/Marlin/src/gcode/calibrate/G28.cpp +++ b/Marlin/src/gcode/calibrate/G28.cpp @@ -118,7 +118,7 @@ DEBUG_SECTION(log_G28, "home_z_safely", DEBUGGING(LEVELING)); // Disallow Z homing if X or Y homing is needed - if (axis_unhomed_error(_BV(X_AXIS) | _BV(Y_AXIS))) return; + if (homing_needed_error(_BV(X_AXIS) | _BV(Y_AXIS))) return; sync_plan_position(); @@ -299,8 +299,8 @@ void GcodeSuite::G28() { #else // NOT DELTA const bool homeZ = parser.seen('Z'), - needX = homeZ && TERN0(Z_SAFE_HOMING, axes_need_homing(_BV(X_AXIS))), - needY = homeZ && TERN0(Z_SAFE_HOMING, axes_need_homing(_BV(Y_AXIS))), + needX = homeZ && TERN0(Z_SAFE_HOMING, axes_should_home(_BV(X_AXIS))), + needY = homeZ && TERN0(Z_SAFE_HOMING, axes_should_home(_BV(Y_AXIS))), homeX = needX || parser.seen('X'), homeY = needY || parser.seen('Y'), home_all = homeX == homeY && homeX == homeZ, // All or None doX = home_all || homeX, doY = home_all || homeY, doZ = home_all || homeZ; diff --git a/Marlin/src/gcode/calibrate/G425.cpp b/Marlin/src/gcode/calibrate/G425.cpp index 0ef23d28f..746cb1087 100644 --- a/Marlin/src/gcode/calibrate/G425.cpp +++ b/Marlin/src/gcode/calibrate/G425.cpp @@ -584,7 +584,7 @@ void GcodeSuite::G425() { TEMPORARY_SOFT_ENDSTOP_STATE(false); TEMPORARY_BED_LEVELING_STATE(false); - if (axis_unhomed_error()) return; + if (homing_needed_error()) return; measurements_t m; diff --git a/Marlin/src/gcode/calibrate/M48.cpp b/Marlin/src/gcode/calibrate/M48.cpp index fc9d22957..aaf58eed1 100644 --- a/Marlin/src/gcode/calibrate/M48.cpp +++ b/Marlin/src/gcode/calibrate/M48.cpp @@ -55,7 +55,7 @@ extern const char SP_Y_STR[]; void GcodeSuite::M48() { - if (axis_unhomed_error()) return; + if (homing_needed_error()) return; const int8_t verbose_level = parser.byteval('V', 1); if (!WITHIN(verbose_level, 0, 4)) { diff --git a/Marlin/src/gcode/feature/camera/M240.cpp b/Marlin/src/gcode/feature/camera/M240.cpp index 9664ce152..fc350d8a5 100644 --- a/Marlin/src/gcode/feature/camera/M240.cpp +++ b/Marlin/src/gcode/feature/camera/M240.cpp @@ -126,7 +126,7 @@ void GcodeSuite::M240() { #ifdef PHOTO_POSITION - if (axis_unhomed_error()) return; + if (homing_needed_error()) return; const xyz_pos_t old_pos = { current_position.x + parser.linearval('A'), diff --git a/Marlin/src/gcode/feature/clean/G12.cpp b/Marlin/src/gcode/feature/clean/G12.cpp index fc99cc5c1..f91db3970 100644 --- a/Marlin/src/gcode/feature/clean/G12.cpp +++ b/Marlin/src/gcode/feature/clean/G12.cpp @@ -45,7 +45,7 @@ */ void GcodeSuite::G12() { // Don't allow nozzle cleaning without homing first - if (axis_unhomed_error()) return; + if (homing_needed_error()) return; #ifdef WIPE_SEQUENCE_COMMANDS if (!parser.seen_any()) { diff --git a/Marlin/src/gcode/feature/pause/G27.cpp b/Marlin/src/gcode/feature/pause/G27.cpp index ea6aadf17..3ce618d67 100644 --- a/Marlin/src/gcode/feature/pause/G27.cpp +++ b/Marlin/src/gcode/feature/pause/G27.cpp @@ -34,7 +34,7 @@ */ void GcodeSuite::G27() { // Don't allow nozzle parking without homing first - if (axis_unhomed_error()) return; + if (homing_needed_error()) return; nozzle.park(parser.ushortval('P')); } diff --git a/Marlin/src/gcode/feature/pause/M701_M702.cpp b/Marlin/src/gcode/feature/pause/M701_M702.cpp index 7449787d7..a02f2368e 100644 --- a/Marlin/src/gcode/feature/pause/M701_M702.cpp +++ b/Marlin/src/gcode/feature/pause/M701_M702.cpp @@ -61,7 +61,7 @@ void GcodeSuite::M701() { #if ENABLED(NO_MOTION_BEFORE_HOMING) // Don't raise Z if the machine isn't homed - if (axes_need_homing()) park_point.z = 0; + if (axes_should_home()) park_point.z = 0; #endif #if ENABLED(MIXING_EXTRUDER) @@ -149,7 +149,7 @@ void GcodeSuite::M702() { #if ENABLED(NO_MOTION_BEFORE_HOMING) // Don't raise Z if the machine isn't homed - if (axes_need_homing()) park_point.z = 0; + if (axes_should_home()) park_point.z = 0; #endif #if ENABLED(MIXING_EXTRUDER) diff --git a/Marlin/src/gcode/geometry/M206_M428.cpp b/Marlin/src/gcode/geometry/M206_M428.cpp index 2a007427a..a477a1a52 100644 --- a/Marlin/src/gcode/geometry/M206_M428.cpp +++ b/Marlin/src/gcode/geometry/M206_M428.cpp @@ -61,7 +61,7 @@ void GcodeSuite::M206() { * Use M206 to set these values directly. */ void GcodeSuite::M428() { - if (axis_unhomed_error()) return; + if (homing_needed_error()) return; xyz_float_t diff; LOOP_XYZ(i) { diff --git a/Marlin/src/gcode/motion/G0_G1.cpp b/Marlin/src/gcode/motion/G0_G1.cpp index 3aa082c25..b6ddf9634 100644 --- a/Marlin/src/gcode/motion/G0_G1.cpp +++ b/Marlin/src/gcode/motion/G0_G1.cpp @@ -52,7 +52,7 @@ void GcodeSuite::G0_G1( if (IsRunning() #if ENABLED(NO_MOTION_BEFORE_HOMING) - && !axis_unhomed_error( + && !homing_needed_error( (parser.seen('X') ? _BV(X_AXIS) : 0) | (parser.seen('Y') ? _BV(Y_AXIS) : 0) | (parser.seen('Z') ? _BV(Z_AXIS) : 0) ) diff --git a/Marlin/src/lcd/menu/menu_configuration.cpp b/Marlin/src/lcd/menu/menu_configuration.cpp index 32fedce23..a77e9a735 100644 --- a/Marlin/src/lcd/menu/menu_configuration.cpp +++ b/Marlin/src/lcd/menu/menu_configuration.cpp @@ -181,7 +181,7 @@ void menu_advanced_settings(); #if ENABLED(DUAL_X_CARRIAGE) void menu_idex() { - const bool need_g28 = !(TEST(axis_known_position, Y_AXIS) && TEST(axis_known_position, Z_AXIS)); + const bool need_g28 = axes_should_home(_BV(Y_AXIS)|_BV(Z_AXIS)); START_MENU(); BACK_ITEM(MSG_CONFIGURATION); diff --git a/Marlin/src/module/motion.cpp b/Marlin/src/module/motion.cpp index c6378d67f..401721140 100644 --- a/Marlin/src/module/motion.cpp +++ b/Marlin/src/module/motion.cpp @@ -1097,17 +1097,16 @@ void prepare_line_to_destination() { current_position = destination; } -uint8_t axes_need_homing(uint8_t axis_bits/*=0x07*/) { - #define HOMED_FLAGS TERN(HOME_AFTER_DEACTIVATE, axis_known_position, axis_homed) - // Clear test bits that are homed - if (TEST(axis_bits, X_AXIS) && TEST(HOMED_FLAGS, X_AXIS)) CBI(axis_bits, X_AXIS); - if (TEST(axis_bits, Y_AXIS) && TEST(HOMED_FLAGS, Y_AXIS)) CBI(axis_bits, Y_AXIS); - if (TEST(axis_bits, Z_AXIS) && TEST(HOMED_FLAGS, Z_AXIS)) CBI(axis_bits, Z_AXIS); +uint8_t axes_should_home(uint8_t axis_bits/*=0x07*/) { + // Clear test bits that are trusted + if (TEST(axis_bits, X_AXIS) && TEST(axis_homed, X_AXIS)) CBI(axis_bits, X_AXIS); + if (TEST(axis_bits, Y_AXIS) && TEST(axis_homed, Y_AXIS)) CBI(axis_bits, Y_AXIS); + if (TEST(axis_bits, Z_AXIS) && TEST(axis_homed, Z_AXIS)) CBI(axis_bits, Z_AXIS); return axis_bits; } -bool axis_unhomed_error(uint8_t axis_bits/*=0x07*/) { - if ((axis_bits = axes_need_homing(axis_bits))) { +bool homing_needed_error(uint8_t axis_bits/*=0x07*/) { + if ((axis_bits = axes_should_home(axis_bits))) { PGM_P home_first = GET_TEXT(MSG_HOME_FIRST); char msg[strlen_P(home_first)+1]; sprintf_P(msg, home_first, diff --git a/Marlin/src/module/motion.h b/Marlin/src/module/motion.h index 1a0971d28..d71003906 100644 --- a/Marlin/src/module/motion.h +++ b/Marlin/src/module/motion.h @@ -40,8 +40,7 @@ constexpr uint8_t xyz_bits = _BV(X_AXIS) | _BV(Y_AXIS) | _BV(Z_AXIS); FORCE_INLINE bool no_axes_homed() { return !axis_homed; } FORCE_INLINE bool all_axes_homed() { return (axis_homed & xyz_bits) == xyz_bits; } FORCE_INLINE bool all_axes_known() { return (axis_known_position & xyz_bits) == xyz_bits; } -FORCE_INLINE void set_all_unhomed() { axis_homed = 0; } -FORCE_INLINE void set_all_unknown() { axis_known_position = 0; } +FORCE_INLINE void set_all_unhomed() { axis_homed = axis_known_position = 0; } FORCE_INLINE bool homing_needed() { return !TERN(HOME_AFTER_DEACTIVATE, all_axes_known, all_axes_homed)(); @@ -239,22 +238,18 @@ void do_z_clearance(const float &zclear, const bool z_known=true, const bool rai // // Homing // - -uint8_t axes_need_homing(uint8_t axis_bits=0x07); -bool axis_unhomed_error(uint8_t axis_bits=0x07); +void homeaxis(const AxisEnum axis); +void set_axis_is_at_home(const AxisEnum axis); +void set_axis_never_homed(const AxisEnum axis); +uint8_t axes_should_home(uint8_t axis_bits=0x07); +bool homing_needed_error(uint8_t axis_bits=0x07); #if ENABLED(NO_MOTION_BEFORE_HOMING) - #define MOTION_CONDITIONS (IsRunning() && !axis_unhomed_error()) + #define MOTION_CONDITIONS (IsRunning() && !homing_needed_error()) #else #define MOTION_CONDITIONS IsRunning() #endif -void set_axis_is_at_home(const AxisEnum axis); - -void set_axis_never_homed(const AxisEnum axis); - -void homeaxis(const AxisEnum axis); - /** * Workspace offsets */ diff --git a/Marlin/src/module/probe.cpp b/Marlin/src/module/probe.cpp index 4fab4ec27..12b617ec4 100644 --- a/Marlin/src/module/probe.cpp +++ b/Marlin/src/module/probe.cpp @@ -359,7 +359,7 @@ bool Probe::set_deployed(const bool deploy) { do_z_raise(_MAX(Z_CLEARANCE_BETWEEN_PROBES, Z_CLEARANCE_DEPLOY_PROBE)); #if EITHER(Z_PROBE_SLED, Z_PROBE_ALLEN_KEY) - if (axis_unhomed_error(TERN_(Z_PROBE_SLED, _BV(X_AXIS)))) { + if (homing_needed_error(TERN_(Z_PROBE_SLED, _BV(X_AXIS)))) { SERIAL_ERROR_MSG(STR_STOP_UNHOMED); stop(); return true; diff --git a/Marlin/src/module/stepper/indirection.h b/Marlin/src/module/stepper/indirection.h index e9705cd3c..ec0d63a89 100644 --- a/Marlin/src/module/stepper/indirection.h +++ b/Marlin/src/module/stepper/indirection.h @@ -840,12 +840,13 @@ void reset_stepper_drivers(); // Called by settings.load / settings.reset // // Axis steppers enable / disable macros // +#define FORGET_AXIS(A) TERN(HOME_AFTER_DEACTIVATE, set_axis_never_homed(A), CBI(axis_known_position, A)) #define ENABLE_AXIS_X() do{ ENABLE_STEPPER_X(); ENABLE_STEPPER_X2(); }while(0) -#define DISABLE_AXIS_X() do{ DISABLE_STEPPER_X(); DISABLE_STEPPER_X2(); CBI(axis_known_position, X_AXIS); }while(0) +#define DISABLE_AXIS_X() do{ DISABLE_STEPPER_X(); DISABLE_STEPPER_X2(); FORGET_AXIS(X_AXIS); }while(0) #define ENABLE_AXIS_Y() do{ ENABLE_STEPPER_Y(); ENABLE_STEPPER_Y2(); }while(0) -#define DISABLE_AXIS_Y() do{ DISABLE_STEPPER_Y(); DISABLE_STEPPER_Y2(); CBI(axis_known_position, Y_AXIS); }while(0) +#define DISABLE_AXIS_Y() do{ DISABLE_STEPPER_Y(); DISABLE_STEPPER_Y2(); FORGET_AXIS(Y_AXIS); }while(0) #define ENABLE_AXIS_Z() do{ ENABLE_STEPPER_Z(); ENABLE_STEPPER_Z2(); ENABLE_STEPPER_Z3(); ENABLE_STEPPER_Z4(); }while(0) @@ -854,7 +855,7 @@ void reset_stepper_drivers(); // Called by settings.load / settings.reset #else #define Z_RESET() #endif -#define DISABLE_AXIS_Z() do{ DISABLE_STEPPER_Z(); DISABLE_STEPPER_Z2(); DISABLE_STEPPER_Z3(); DISABLE_STEPPER_Z4(); CBI(axis_known_position, Z_AXIS); Z_RESET(); }while(0) +#define DISABLE_AXIS_Z() do{ DISABLE_STEPPER_Z(); DISABLE_STEPPER_Z2(); DISABLE_STEPPER_Z3(); DISABLE_STEPPER_Z4(); FORGET_AXIS(Z_AXIS); Z_RESET(); }while(0) // // Extruder steppers enable / disable macros diff --git a/Marlin/src/module/tool_change.cpp b/Marlin/src/module/tool_change.cpp index d1017cea8..855756026 100644 --- a/Marlin/src/module/tool_change.cpp +++ b/Marlin/src/module/tool_change.cpp @@ -174,7 +174,7 @@ inline void fast_line_to_current(const AxisEnum fr_axis) { _line_to_current(fr_a grabpos = mpe_settings.parking_xpos[new_tool] + (new_tool ? mpe_settings.grab_distance : -mpe_settings.grab_distance), offsetcompensation = TERN0(HAS_HOTEND_OFFSET, hotend_offset[active_extruder].x * mpe_settings.compensation_factor); - if (axis_unhomed_error(_BV(X_AXIS))) return; + if (homing_needed_error(_BV(X_AXIS))) return; /** * Z Lift and Nozzle Offset shift ar defined in caller method to work equal with any Multi Hotend realization From e0b413cf19af87e73b0476daaddf395817db9b35 Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Thu, 27 Aug 2020 16:38:02 -0500 Subject: [PATCH 193/194] Add set_all_homed --- Marlin/src/feature/powerloss.cpp | 2 +- Marlin/src/module/motion.h | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/Marlin/src/feature/powerloss.cpp b/Marlin/src/feature/powerloss.cpp index 9a3eee31b..06296dd21 100644 --- a/Marlin/src/feature/powerloss.cpp +++ b/Marlin/src/feature/powerloss.cpp @@ -365,7 +365,7 @@ void PrintJobRecovery::resume() { #endif // Pretend that all axes are homed - axis_homed = axis_known_position = xyz_bits; + set_all_homed(); // Recover volumetric extrusion state #if DISABLED(NO_VOLUMETRICS) diff --git a/Marlin/src/module/motion.h b/Marlin/src/module/motion.h index d71003906..c3f2d9b77 100644 --- a/Marlin/src/module/motion.h +++ b/Marlin/src/module/motion.h @@ -40,6 +40,7 @@ constexpr uint8_t xyz_bits = _BV(X_AXIS) | _BV(Y_AXIS) | _BV(Z_AXIS); FORCE_INLINE bool no_axes_homed() { return !axis_homed; } FORCE_INLINE bool all_axes_homed() { return (axis_homed & xyz_bits) == xyz_bits; } FORCE_INLINE bool all_axes_known() { return (axis_known_position & xyz_bits) == xyz_bits; } +FORCE_INLINE void set_all_homed() { axis_homed = axis_known_position = xyz_bits; } FORCE_INLINE void set_all_unhomed() { axis_homed = axis_known_position = 0; } FORCE_INLINE bool homing_needed() { From 6ac8f5abb7ce63e1538085f07eaf32cc3855f130 Mon Sep 17 00:00:00 2001 From: thinkyhead Date: Fri, 28 Aug 2020 00:13:10 +0000 Subject: [PATCH 194/194] [cron] Bump distribution date (2020-08-28) --- Marlin/src/inc/Version.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Marlin/src/inc/Version.h b/Marlin/src/inc/Version.h index ee62ee7aa..a26f3e3d9 100644 --- a/Marlin/src/inc/Version.h +++ b/Marlin/src/inc/Version.h @@ -42,7 +42,7 @@ * version was tagged. */ #ifndef STRING_DISTRIBUTION_DATE - #define STRING_DISTRIBUTION_DATE "2020-08-27" + #define STRING_DISTRIBUTION_DATE "2020-08-28" #endif /**

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