diff --git a/.gitignore b/.gitignore index 456016a..c11c412 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,3 @@ -.vscode/ -.pio/ +firmware/.vscode/ +firmware/.pio/ telegram_notification_bot/atmbot_rust/target/ \ No newline at end of file diff --git a/.vscode/c_cpp_properties.json b/.vscode/c_cpp_properties.json new file mode 100644 index 0000000..4fb73f6 --- /dev/null +++ b/.vscode/c_cpp_properties.json @@ -0,0 +1,18 @@ +{ + "configurations": [ + { + "name": "windows-gcc-x64", + "includePath": [ + "${workspaceFolder}/**" + ], + "compilerPath": "c:/wingw64/bin/gcc.exe", + "cStandard": "${default}", + "cppStandard": "${default}", + "intelliSenseMode": "windows-gcc-x64", + "compilerArgs": [ + "" + ] + } + ], + "version": 4 +} \ No newline at end of file diff --git a/.vscode/launch.json b/.vscode/launch.json new file mode 100644 index 0000000..d6d3fa7 --- /dev/null +++ b/.vscode/launch.json @@ -0,0 +1,24 @@ +{ + "version": "0.2.0", + "configurations": [ + { + "name": "C/C++ Runner: Debug Session", + "type": "cppdbg", + "request": "launch", + "args": [], + "stopAtEntry": false, + "externalConsole": true, + "cwd": "c:/Users/jnoack/Documents/SONSTIGE/GIT/Atm-Automat/firmware", + "program": "c:/Users/jnoack/Documents/SONSTIGE/GIT/Atm-Automat/firmware/build/Debug/outDebug", + "MIMode": "gdb", + "miDebuggerPath": "c:/wingw64/bin/gdb.exe", + "setupCommands": [ + { + "description": "Enable pretty-printing for gdb", + "text": "-enable-pretty-printing", + "ignoreFailures": true + } + ] + } + ] +} \ No newline at end of file diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..d740f6d --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,59 @@ +{ + "C_Cpp_Runner.cCompilerPath": "c:/wingw64/bin/gcc.exe", + "C_Cpp_Runner.cppCompilerPath": "g++", + "C_Cpp_Runner.debuggerPath": "c:/wingw64/bin/gdb.exe", + "C_Cpp_Runner.cStandard": "", + "C_Cpp_Runner.cppStandard": "", + "C_Cpp_Runner.msvcBatchPath": "C:/Program Files/Microsoft Visual Studio/VR_NR/Community/VC/Auxiliary/Build/vcvarsall.bat", + "C_Cpp_Runner.useMsvc": false, + "C_Cpp_Runner.warnings": [ + "-Wall", + "-Wextra", + "-Wpedantic", + "-Wshadow", + "-Wformat=2", + "-Wcast-align", + "-Wconversion", + "-Wsign-conversion", + "-Wnull-dereference" + ], + "C_Cpp_Runner.msvcWarnings": [ + "/W4", + "/permissive-", + "/w14242", + "/w14287", + "/w14296", + "/w14311", + "/w14826", + "/w44062", + "/w44242", + "/w14905", + "/w14906", + "/w14263", + "/w44265", + "/w14928" + ], + "C_Cpp_Runner.enableWarnings": true, + "C_Cpp_Runner.warningsAsError": false, + "C_Cpp_Runner.compilerArgs": [], + "C_Cpp_Runner.linkerArgs": [], + "C_Cpp_Runner.includePaths": [], + "C_Cpp_Runner.includeSearch": [ + "*", + "**/*" + ], + "C_Cpp_Runner.excludeSearch": [ + "**/build", + "**/build/**", + "**/.*", + "**/.*/**", + "**/.vscode", + "**/.vscode/**" + ], + "C_Cpp_Runner.useAddressSanitizer": false, + "C_Cpp_Runner.useUndefinedSanitizer": false, + "C_Cpp_Runner.useLeakSanitizer": false, + "C_Cpp_Runner.showCompilationTime": false, + "C_Cpp_Runner.useLinkTimeOptimization": false, + "C_Cpp_Runner.msvcSecureNoWarnings": false +} \ No newline at end of file diff --git a/Logos/Sicherungskopie_von_logosATM.cdr b/Logos/Sicherungskopie_von_logosATM.cdr new file mode 100644 index 0000000..9748908 Binary files /dev/null and b/Logos/Sicherungskopie_von_logosATM.cdr differ diff --git a/Logos/cancel.png b/Logos/cancel.png new file mode 100644 index 0000000..0104a3f Binary files /dev/null and b/Logos/cancel.png differ diff --git a/Logos/logosATM.cdr b/Logos/logosATM.cdr new file mode 100644 index 0000000..5d73bb7 Binary files /dev/null and b/Logos/logosATM.cdr differ diff --git a/Logos/logosATM_BC_LN.png b/Logos/logosATM_BC_LN.png new file mode 100644 index 0000000..90282d0 Binary files /dev/null and b/Logos/logosATM_BC_LN.png differ diff --git a/Logos/logosATM_ML.png b/Logos/logosATM_ML.png new file mode 100644 index 0000000..49ec775 Binary files /dev/null and b/Logos/logosATM_ML.png differ diff --git a/Logos/logosATM_ML_logo_land.png b/Logos/logosATM_ML_logo_land.png new file mode 100644 index 0000000..8b631eb Binary files /dev/null and b/Logos/logosATM_ML_logo_land.png differ diff --git a/Logos/logosATM_ML_logo_land_big.png b/Logos/logosATM_ML_logo_land_big.png new file mode 100644 index 0000000..da4fe9a Binary files /dev/null and b/Logos/logosATM_ML_logo_land_big.png differ diff --git a/Logos/logosATM_ML_logo_only.png b/Logos/logosATM_ML_logo_only.png new file mode 100644 index 0000000..39ac8d2 Binary files /dev/null and b/Logos/logosATM_ML_logo_only.png differ diff --git a/Logos/logosATM_hand.png b/Logos/logosATM_hand.png new file mode 100644 index 0000000..f6b635b Binary files /dev/null and b/Logos/logosATM_hand.png differ diff --git a/firmware/.gitignore b/firmware/.gitignore index 968a41b..24a84d6 100644 --- a/firmware/.gitignore +++ b/firmware/.gitignore @@ -1,2 +1,4 @@ .pio/ .vscode/ + +config.h diff --git a/firmware/.vscode/extensions.json b/firmware/.vscode/extensions.json deleted file mode 100644 index 080e70d..0000000 --- a/firmware/.vscode/extensions.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - // See http://go.microsoft.com/fwlink/?LinkId=827846 - // for the documentation about the extensions.json format - "recommendations": [ - "platformio.platformio-ide" - ], - "unwantedRecommendations": [ - "ms-vscode.cpptools-extension-pack" - ] -} diff --git a/firmware/.vscode/settings.json b/firmware/.vscode/settings.json deleted file mode 100644 index 1aff403..0000000 --- a/firmware/.vscode/settings.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "editor.defaultFormatter": "ms-vscode.cpptools", - "editor.formatOnPaste": true, - "editor.formatOnSave": true, - "files.autoSave": "onFocusChange", - "[cpp]": { - "editor.defaultFormatter": "ms-vscode.cpptools" - }, - "cmake.configureOnOpen": false, - "C_Cpp.formatting": "vcFormat" -} diff --git a/firmware/include/GxEPD2_display_selection_new_style.h b/firmware/include/GxEPD2_display_selection_new_style.h deleted file mode 100644 index 0c06c43..0000000 --- a/firmware/include/GxEPD2_display_selection_new_style.h +++ /dev/null @@ -1,289 +0,0 @@ -// Display Library example for SPI e-paper panels from Dalian Good Display and boards from Waveshare. -// Requires HW SPI and Adafruit_GFX. Caution: the e-paper panels require 3.3V supply AND data lines! -// -// Display Library based on Demo Example from Good Display: http://www.e-paper-display.com/download_list/downloadcategoryid=34&isMode=false.html -// -// Author: Jean-Marc Zingg -// -// Version: see library.properties -// -// Library: https://github.com/ZinggJM/GxEPD2 - -// Supporting Arduino Forum Topics: -// Waveshare e-paper displays with SPI: http://forum.arduino.cc/index.php?topic=487007.0 -// Good Display ePaper for Arduino: https://forum.arduino.cc/index.php?topic=436411.0 - -// *** for Waveshare ESP32 Driver board *** // -// mapping of Waveshare ESP32 Driver Board -// BUSY -> 25, RST -> 26, DC -> 27, CS-> 15, CLK -> 13, DIN -> 14 -// uncomment next two lines for Waveshare ESP32 Driver Board -// #define USE_HSPI_FOR_EPD -// #define ENABLE_GxEPD2_GFX 0 -// *** end Waveshare ESP32 Driver board *** // - -// NOTE: you may need to adapt or select for your wiring in the processor specific conditional compile sections below -// select the display class (only one), matching the kind of display panel -#define GxEPD2_DISPLAY_CLASS GxEPD2_BW -// #define GxEPD2_DISPLAY_CLASS GxEPD2_3C -// #define GxEPD2_DISPLAY_CLASS GxEPD2_4C -// #define GxEPD2_DISPLAY_CLASS GxEPD2_7C - -// select the display driver class (only one) for your panel - -#define GxEPD2_DRIVER_CLASS GxEPD2_150_BN // 1.54 inch Waveshare e-paper display -const String display_type = "GxEPD2_150_BN"; - -// #define GxEPD2_DRIVER_CLASS GxEPD2_213_B74 // Waveshare 2.13 inch e-paper display - Version 3 -// const String display_type = "GxEPD2_213_B74"; - -// #define GxEPD2_DRIVER_CLASS GxEPD2_213_flex // Waveshare 2.13 inch e-paper display - (D) flex (yellow) -// const String display_type = "GxEPD2_213_flex"; - -// #define GxEPD2_DRIVER_CLASS GxEPD2_270 // Waveshare 264x176, 2.7inch E-Ink display - Version 1 -// const String display_type = "GxEPD2_270"; - -// #define GxEPD2_DRIVER_CLASS GxEPD2_270_GDEY027T91 // Waveshare 264x176, 2.7inch E-Ink display - Version 2 -// const String display_type = "GxEPD2_270_GDEY027T91"; - -// #define GxEPD2_DRIVER_CLASS GxEPD2_154 // GDEP015OC1 200x200, IL3829, (WFC0000CZ07), no longer available -// #define GxEPD2_DRIVER_CLASS GxEPD2_154_D67 // GDEH0154D67 200x200, SSD1681, (HINK-E154A07-A1) -// #define GxEPD2_DRIVER_CLASS GxEPD2_102 // GDEW0102T4 80x128, UC8175, (WFT0102CZA2) -// #define GxEPD2_DRIVER_CLASS GxEPD2_154_T8 // GDEW0154T8 152x152, UC8151 (IL0373), (WFT0154CZ17) -// #define GxEPD2_DRIVER_CLASS GxEPD2_154_M09 // GDEW0154M09 200x200, JD79653A, (WFT0154CZB3) -// #define GxEPD2_DRIVER_CLASS GxEPD2_154_M10 // GDEW0154M10 152x152, UC8151D, (WFT0154CZ17) -/// #define GxEPD2_DRIVER_CLASS GxEPD2_154_GDEY0154D67 // GDEY0154D67 200x200, SSD1681, (FPC-B001 20.05.21) -// #define GxEPD2_DRIVER_CLASS GxEPD2_213 // GDE0213B1 122x250, IL3895, (HINK-E0213-G01), phased out -// #define GxEPD2_DRIVER_CLASS GxEPD2_213_B72 // GDEH0213B72 122x250, SSD1675A (IL3897), (HINK-E0213A22-A0 SLH1852) -// #define GxEPD2_DRIVER_CLASS GxEPD2_213_B73 // GDEH0213B73 122x250, SSD1675B, (HINK-E0213A22-A0 SLH1914) -// #define GxEPD2_DRIVER_CLASS GxEPD2_213_B74 // GDEM0213B74 122x250, SSD1680, FPC-7528B) -// #define GxEPD2_DRIVER_CLASS GxEPD2_213_flex // GDEW0213I5F 104x212, UC8151 (IL0373) -// #define GxEPD2_DRIVER_CLASS GxEPD2_213_M21 // GDEW0213M21 104x212, UC8151 (IL0373), (WFT0213CZ16) -// #define GxEPD2_DRIVER_CLASS GxEPD2_213_T5D // GDEW0213T5D 104x212, UC8151D, (WFT0213CZ16) -// #define GxEPD2_DRIVER_CLASS GxEPD2_213_BN // DEPG0213BN 122x250, SSD1680, (FPC-7528B), TTGO T5 V2.4.1, V2.3.1 -// #define GxEPD2_DRIVER_CLASS GxEPD2_213_GDEY0213B74 // GDEY0213B74 122x250, SSD1680, (FPC-A002 20.04.08) -// #define GxEPD2_DRIVER_CLASS GxEPD2_260 // GDEW026T0 152x296, UC8151 (IL0373), (WFT0154CZ17) -// #define GxEPD2_DRIVER_CLASS GxEPD2_260_M01 // GDEW026M01 152x296, UC8151 (IL0373), (WFT0260CZB2) -// #define GxEPD2_DRIVER_CLASS GxEPD2_266_BN // DEPG0266BN 152x296, SSD1680, (FPC7510), TTGO T5 V2.66, TTGO T5 V2.4.1 -// #define GxEPD2_DRIVER_CLASS GxEPD2_266_GDEY0266T90 // GDEY0266T90 152x296, SSD1680, (FPC-A003 HB) -// #define GxEPD2_DRIVER_CLASS GxEPD2_290 // GDEH029A1 128x296, SSD1608 (IL3820), (E029A01-FPC-A1 SYX1553) -// #define GxEPD2_DRIVER_CLASS GxEPD2_290_T5 // GDEW029T5 128x296, UC8151 (IL0373), (WFT0290CZ10) -// #define GxEPD2_DRIVER_CLASS GxEPD2_290_T5D // GDEW029T5D 128x296, UC8151D, (WFT0290CZ10) -// #define GxEPD2_DRIVER_CLASS GxEPD2_290_I6FD // GDEW029I6FD 128x296, UC8151D, (WFT0290CZ10) -// #define GxEPD2_DRIVER_CLASS GxEPD2_290_T94 // GDEM029T94 128x296, SSD1680, (FPC-7519 rev.b) -// #define GxEPD2_DRIVER_CLASS GxEPD2_290_T94_V2 // GDEM029T94 128x296, SSD1680, (FPC-7519 rev.b), Waveshare 2.9" V2 variant -// #define GxEPD2_DRIVER_CLASS GxEPD2_290_BS // DEPG0290BS 128x296, SSD1680, (FPC-7519 rev.b) -// #define GxEPD2_DRIVER_CLASS GxEPD2_290_M06 // GDEW029M06 128x296, UC8151D, (WFT0290CZ10) -// #define GxEPD2_DRIVER_CLASS GxEPD2_290_GDEY029T94 // GDEY029T94 128x296, SSD1680, (FPC-A005 20.06.15) -// #define GxEPD2_DRIVER_CLASS GxEPD2_371 // GDEW0371W7 240x416, UC8171 (IL0324), (missing) -// #define GxEPD2_DRIVER_CLASS GxEPD2_370_TC1 // ED037TC1 280x480, SSD1677, (ICA-FU-20 ichia 2029), Waveshare 3.7" -// #define GxEPD2_DRIVER_CLASS GxEPD2_420 // GDEW042T2 400x300, UC8176 (IL0398), (WFT042CZ15) -// #define GxEPD2_DRIVER_CLASS GxEPD2_420_M01 // GDEW042M01 400x300, UC8176 (IL0398), (WFT042CZ15) -// #define GxEPD2_DRIVER_CLASS GxEPD2_420_GDEY042T91 // GDEY042T91 400x300, SSD1683 (no inking) -// #define GxEPD2_DRIVER_CLASS GxEPD2_583 // GDEW0583T7 600x448, UC8159c (IL0371), (missing) -// #define GxEPD2_DRIVER_CLASS GxEPD2_583_T8 // GDEW0583T8 648x480, EK79655 (GD7965), (WFT0583CZ61) -// #define GxEPD2_DRIVER_CLASS GxEPD2_583_GDEQ0583T31 // GDEQ0583T31 648x480, UC8179, (P583010-MF1-B) -// #define GxEPD2_DRIVER_CLASS GxEPD2_750 // GDEW075T8 640x384, UC8159c (IL0371), (WF0583CZ09) -// #define GxEPD2_DRIVER_CLASS GxEPD2_750_T7 // GDEW075T7 800x480, EK79655 (GD7965), (WFT0583CZ61) -// #define GxEPD2_DRIVER_CLASS GxEPD2_750_YT7 // GDEY075T7 800x480, UC8179 (GD7965), (FPC-C001 20.8.20) -// #define GxEPD2_DRIVER_CLASS GxEPD2_1160_T91 // GDEH116T91 960x640, SSD1677, (none or hidden) -// #define GxEPD2_DRIVER_CLASS GxEPD2_1248 // GDEW1248T3 1304x984, UC8179, (WFT1248BZ23,WFT1248BZ24) -// 3-color e-papers -// #define GxEPD2_DRIVER_CLASS GxEPD2_154c // GDEW0154Z04 200x200, IL0376F, (WFT0000CZ04), no longer available -// #define GxEPD2_DRIVER_CLASS GxEPD2_154_Z90c // GDEH0154Z90 200x200, SSD1681, (HINK-E154A07-A1) -// #define GxEPD2_DRIVER_CLASS GxEPD2_213c // GDEW0213Z16 104x212, UC8151 (IL0373), (WFT0213CZ16) -// #define GxEPD2_DRIVER_CLASS GxEPD2_213_Z19c // GDEH0213Z19 104x212, UC8151D, (HINK-E0213A20-A2 2020-11-19) -// #define GxEPD2_DRIVER_CLASS GxEPD2_213_Z98c // GDEY0213Z98 122x250, SSD1680, (FPC-A002 20.04.08) -// #define GxEPD2_DRIVER_CLASS GxEPD2_266c // GDEY0266Z90 152x296, SSD1680, (FPC-7510) -// #define GxEPD2_DRIVER_CLASS GxEPD2_270c // GDEW027C44 176x264, IL91874, (WFI0190CZ22) -// #define GxEPD2_DRIVER_CLASS GxEPD2_290c // GDEW029Z10 128x296, UC8151 (IL0373), (WFT0290CZ10) -// #define GxEPD2_DRIVER_CLASS GxEPD2_290_Z13c // GDEH029Z13 128x296, UC8151D, (HINK-E029A10-A3 20160809) -// #define GxEPD2_DRIVER_CLASS GxEPD2_290_C90c // GDEM029C90 128x296, SSD1680, (FPC-7519 rev.b) -// #define GxEPD2_DRIVER_CLASS GxEPD2_420c // GDEW042Z15 400x300, UC8176 (IL0398), (WFT0420CZ15) -// #define GxEPD2_DRIVER_CLASS GxEPD2_420c_Z21 // GDEQ042Z21 400x300, UC8276, (hidden) -// #define GxEPD2_DRIVER_CLASS GxEPD2_583c // GDEW0583Z21 600x448, UC8159c (IL0371), (missing) -// #define GxEPD2_DRIVER_CLASS GxEPD2_583c_Z83 // GDEW0583Z83 648x480, EK79655 (GD7965), (WFT0583CZ61) -// #define GxEPD2_DRIVER_CLASS GxEPD2_750c // GDEW075Z09 640x384, UC8159c (IL0371), (WF0583CZ09) -// #define GxEPD2_DRIVER_CLASS GxEPD2_750c_Z08 // GDEW075Z08 800x480, EK79655 (GD7965), (WFT0583CZ61) -// #define GxEPD2_DRIVER_CLASS GxEPD2_750c_Z90 // GDEH075Z90 880x528, SSD1677, (HINK-E075A07-A0) -// #define GxEPD2_DRIVER_CLASS GxEPD2_1248c // GDEY1248Z51 1304x984, UC8179, (WFT1248BZ23,WFT1248BZ24) -// 4-color e-paper -// #define GxEPD2_DRIVER_CLASS GxEPD2_437c // Waveshare 4.37" 4-color -// 7-color e-paper -// #define GxEPD2_DRIVER_CLASS GxEPD2_565c // Waveshare 5.65" 7-color -// #define GxEPD2_DRIVER_CLASS GxEPD2_730c_GDEY073D46 // GDEY073D46 800x480 7-color, (N-FPC-001 2021.11.26) -// grey levels parallel IF e-papers on Waveshare e-Paper IT8951 Driver HAT -// #define GxEPD2_DRIVER_CLASS GxEPD2_it60 // ED060SCT 800x600 -// #define GxEPD2_DRIVER_CLASS GxEPD2_it60_1448x1072 // ED060KC1 1448x1072 -// #define GxEPD2_DRIVER_CLASS GxEPD2_it78_1872x1404 // ED078KC2 1872x1404 -// #define GxEPD2_DRIVER_CLASS GxEPD2_it103_1872x1404 // ES103TC1 1872x1404 - -// SS is usually used for CS. define here for easy change -#ifndef EPD_CS -#define EPD_CS SS -#endif - -#if defined(GxEPD2_DISPLAY_CLASS) && defined(GxEPD2_DRIVER_CLASS) - -// somehow there should be an easier way to do this -#define GxEPD2_BW_IS_GxEPD2_BW true -#define GxEPD2_3C_IS_GxEPD2_3C true -#define GxEPD2_4C_IS_GxEPD2_4C true -#define GxEPD2_7C_IS_GxEPD2_7C true -#define GxEPD2_1248_IS_GxEPD2_1248 true -#define GxEPD2_1248c_IS_GxEPD2_1248c true -#define IS_GxEPD(c, x) (c##x) -#define IS_GxEPD2_BW(x) IS_GxEPD(GxEPD2_BW_IS_, x) -#define IS_GxEPD2_3C(x) IS_GxEPD(GxEPD2_3C_IS_, x) -#define IS_GxEPD2_4C(x) IS_GxEPD(GxEPD2_4C_IS_, x) -#define IS_GxEPD2_7C(x) IS_GxEPD(GxEPD2_7C_IS_, x) -#define IS_GxEPD2_1248(x) IS_GxEPD(GxEPD2_1248_IS_, x) -#define IS_GxEPD2_1248c(x) IS_GxEPD(GxEPD2_1248c_IS_, x) - -#include "GxEPD2_selection_check.h" - -#if defined(ESP8266) -#define MAX_DISPLAY_BUFFER_SIZE (81920ul - 34000ul - 5000ul) // ~34000 base use, change 5000 to your application use -#if IS_GxEPD2_BW(GxEPD2_DISPLAY_CLASS) -#define MAX_HEIGHT(EPD) (EPD::HEIGHT <= MAX_DISPLAY_BUFFER_SIZE / (EPD::WIDTH / 8) ? EPD::HEIGHT : MAX_DISPLAY_BUFFER_SIZE / (EPD::WIDTH / 8)) -#elif IS_GxEPD2_3C(GxEPD2_DISPLAY_CLASS) || IS_GxEPD2_4C(GxEPD2_DISPLAY_CLASS) -#define MAX_HEIGHT(EPD) (EPD::HEIGHT <= (MAX_DISPLAY_BUFFER_SIZE / 2) / (EPD::WIDTH / 8) ? EPD::HEIGHT : (MAX_DISPLAY_BUFFER_SIZE / 2) / (EPD::WIDTH / 8)) -#elif IS_GxEPD2_7C(GxEPD2_DISPLAY_CLASS) -#define MAX_HEIGHT(EPD) (EPD::HEIGHT <= (MAX_DISPLAY_BUFFER_SIZE) / (EPD::WIDTH / 2) ? EPD::HEIGHT : (MAX_DISPLAY_BUFFER_SIZE) / (EPD::WIDTH / 2)) -#endif -// adapt the constructor parameters to your wiring -GxEPD2_DISPLAY_CLASS display(GxEPD2_DRIVER_CLASS(/*CS=D8*/ EPD_CS, /*DC=D3*/ 0, /*RST=D4*/ 2, /*BUSY=D2*/ 4)); -// mapping of Waveshare e-Paper ESP8266 Driver Board, new version -// GxEPD2_DISPLAY_CLASS display(GxEPD2_DRIVER_CLASS(/*CS=15*/ EPD_CS, /*DC=4*/ 4, /*RST=2*/ 2, /*BUSY=5*/ 5)); -// mapping of Waveshare e-Paper ESP8266 Driver Board, old version -// GxEPD2_DISPLAY_CLASS display(GxEPD2_DRIVER_CLASS(/*CS=15*/ EPD_CS, /*DC=4*/ 4, /*RST=5*/ 5, /*BUSY=16*/ 16)); -#undef MAX_DISPLAY_BUFFER_SIZE -#undef MAX_HEIGHT -#endif - -#if defined(ESP32) -#define MAX_DISPLAY_BUFFER_SIZE 65536ul // e.g. -#if IS_GxEPD2_BW(GxEPD2_DISPLAY_CLASS) -#define MAX_HEIGHT(EPD) (EPD::HEIGHT <= MAX_DISPLAY_BUFFER_SIZE / (EPD::WIDTH / 8) ? EPD::HEIGHT : MAX_DISPLAY_BUFFER_SIZE / (EPD::WIDTH / 8)) -#elif IS_GxEPD2_3C(GxEPD2_DISPLAY_CLASS) || IS_GxEPD2_4C(GxEPD2_DISPLAY_CLASS) -#define MAX_HEIGHT(EPD) (EPD::HEIGHT <= (MAX_DISPLAY_BUFFER_SIZE / 2) / (EPD::WIDTH / 8) ? EPD::HEIGHT : (MAX_DISPLAY_BUFFER_SIZE / 2) / (EPD::WIDTH / 8)) -#elif IS_GxEPD2_7C(GxEPD2_DISPLAY_CLASS) -#define MAX_HEIGHT(EPD) (EPD::HEIGHT <= (MAX_DISPLAY_BUFFER_SIZE) / (EPD::WIDTH / 2) ? EPD::HEIGHT : (MAX_DISPLAY_BUFFER_SIZE) / (EPD::WIDTH / 2)) -#endif -// adapt the constructor parameters to your wiring -#if !IS_GxEPD2_1248(GxEPD2_DRIVER_CLASS) && !IS_GxEPD2_1248c(GxEPD2_DRIVER_CLASS) -#if defined(ARDUINO_LOLIN_D32_PRO) -GxEPD2_DISPLAY_CLASS display(GxEPD2_DRIVER_CLASS(/*CS=5*/ EPD_CS, /*DC=*/0, /*RST=*/2, /*BUSY=*/15)); // my LOLIN_D32_PRO proto board -#else -// GxEPD2_DISPLAY_CLASS display(GxEPD2_DRIVER_CLASS(/*CS=5*/ EPD_CS, /*DC=*/ 17, /*RST=*/ 16, /*BUSY=*/ 4)); // my suggested wiring and proto board -// *** uncomment next line for standard ESP32 *** // -// GxEPD2_DISPLAY_CLASS display(GxEPD2_DRIVER_CLASS(/*CS=5*/ 26, /*DC=*/25, /*RST=*/33, /*BUSY=*/27)); // esp32 NodeMCU following AZ Delivery guide pinout -// GxEPD2_DISPLAY_CLASS display(GxEPD2_DRIVER_CLASS(/*CS=5*/ 5, /*DC=*/ 17, /*RST=*/ 16, /*BUSY=*/ 4)); // LILYGO_T5_V2.4.1 -// GxEPD2_DISPLAY_CLASS display(GxEPD2_DRIVER_CLASS(/*CS=5*/ EPD_CS, /*DC=*/ 19, /*RST=*/ 4, /*BUSY=*/ 34)); // LILYGO® TTGO T5 2.66 -// GxEPD2_DISPLAY_CLASS display(GxEPD2_DRIVER_CLASS(/*CS=5*/ EPD_CS, /*DC=*/ 2, /*RST=*/ 0, /*BUSY=*/ 4)); // e.g. TTGO T8 ESP32-WROVER -// *** uncomment next line for Waveshare ESP32 Driver board *** // -GxEPD2_DISPLAY_CLASS display(GxEPD2_DRIVER_CLASS(/*CS=*/ 15, /*DC=*/ 27, /*RST=*/ 26, /*BUSY=*/ 25)); // Waveshare ESP32 Driver Board -#endif -#else // GxEPD2_1248 or GxEPD2_1248c -// Waveshare 12.48 b/w or b/w/r SPI display board and frame or Good Display 12.48 b/w panel GDEW1248T3 or b/w/r panel GDEY1248Z51 -// general constructor for use with all parameters, e.g. for Waveshare ESP32 driver board mounted on connection board -GxEPD2_DISPLAY_CLASS display(GxEPD2_DRIVER_CLASS(/*sck=*/13, /*miso=*/12, /*mosi=*/14, - /*cs_m1=*/23, /*cs_s1=*/22, /*cs_m2=*/16, /*cs_s2=*/19, - /*dc1=*/25, /*dc2=*/17, /*rst1=*/33, /*rst2=*/5, - /*busy_m1=*/32, /*busy_s1=*/26, /*busy_m2=*/18, /*busy_s2=*/4)); -#endif -#undef MAX_DISPLAY_BUFFER_SIZE -#undef MAX_HEIGHT -#endif - -// can't use package "STMF1 Boards (STM32Duino.com)" (Roger Clark) anymore with Adafruit_GFX, use "STM32 Boards (selected from submenu)" (STMicroelectronics) -#if defined(ARDUINO_ARCH_STM32) -#define MAX_DISPLAY_BUFFER_SIZE 15000ul // ~15k is a good compromise -#if IS_GxEPD2_BW(GxEPD2_DISPLAY_CLASS) -#define MAX_HEIGHT(EPD) (EPD::HEIGHT <= MAX_DISPLAY_BUFFER_SIZE / (EPD::WIDTH / 8) ? EPD::HEIGHT : MAX_DISPLAY_BUFFER_SIZE / (EPD::WIDTH / 8)) -#elif IS_GxEPD2_3C(GxEPD2_DISPLAY_CLASS) || IS_GxEPD2_4C(GxEPD2_DISPLAY_CLASS) -#define MAX_HEIGHT(EPD) (EPD::HEIGHT <= (MAX_DISPLAY_BUFFER_SIZE / 2) / (EPD::WIDTH / 8) ? EPD::HEIGHT : (MAX_DISPLAY_BUFFER_SIZE / 2) / (EPD::WIDTH / 8)) -#elif IS_GxEPD2_7C(GxEPD2_DISPLAY_CLASS) -#define MAX_HEIGHT(EPD) (EPD::HEIGHT <= (MAX_DISPLAY_BUFFER_SIZE) / (EPD::WIDTH / 2) ? EPD::HEIGHT : (MAX_DISPLAY_BUFFER_SIZE) / (EPD::WIDTH / 2)) -#endif -// adapt the constructor parameters to your wiring -GxEPD2_DISPLAY_CLASS display(GxEPD2_DRIVER_CLASS(/*CS=PA4*/ EPD_CS, /*DC=*/PA3, /*RST=*/PA2, /*BUSY=*/PA1)); -#undef MAX_DISPLAY_BUFFER_SIZE -#undef MAX_HEIGHT -#endif - -#if defined(__AVR) -#if defined(ARDUINO_AVR_MEGA2560) // Note: SS is on 53 on MEGA -#define MAX_DISPLAY_BUFFER_SIZE 5000 // e.g. full height for 200x200 -#else // Note: SS is on 10 on UNO, NANO -#define MAX_DISPLAY_BUFFER_SIZE 800 // -#endif -#if IS_GxEPD2_BW(GxEPD2_DISPLAY_CLASS) -#define MAX_HEIGHT(EPD) (EPD::HEIGHT <= MAX_DISPLAY_BUFFER_SIZE / (EPD::WIDTH / 8) ? EPD::HEIGHT : MAX_DISPLAY_BUFFER_SIZE / (EPD::WIDTH / 8)) -#elif IS_GxEPD2_3C(GxEPD2_DISPLAY_CLASS) || IS_GxEPD2_4C(GxEPD2_DISPLAY_CLASS) -#define MAX_HEIGHT(EPD) (EPD::HEIGHT <= (MAX_DISPLAY_BUFFER_SIZE / 2) / (EPD::WIDTH / 8) ? EPD::HEIGHT : (MAX_DISPLAY_BUFFER_SIZE / 2) / (EPD::WIDTH / 8)) -#elif IS_GxEPD2_7C(GxEPD2_DISPLAY_CLASS) -#define MAX_HEIGHT(EPD) (EPD::HEIGHT <= (MAX_DISPLAY_BUFFER_SIZE) / (EPD::WIDTH / 2) ? EPD::HEIGHT : (MAX_DISPLAY_BUFFER_SIZE) / (EPD::WIDTH / 2)) -#endif -// adapt the constructor parameters to your wiring -GxEPD2_DISPLAY_CLASS display(GxEPD2_DRIVER_CLASS(/*CS=*/EPD_CS, /*DC=*/8, /*RST=*/9, /*BUSY=*/7)); -// for Arduino Micro or Arduino Leonardo with CS on 10 on my proto boards (SS would be 17) uncomment instead: -// GxEPD2_DISPLAY_CLASS display(GxEPD2_DRIVER_CLASS(/*CS=*/ 10, /*DC=*/ 8, /*RST=*/ 9, /*BUSY=*/ 7)); -#endif - -#if defined(ARDUINO_ARCH_SAM) -#define MAX_DISPLAY_BUFFER_SIZE 32768ul // e.g., up to 96k -#if IS_GxEPD2_BW(GxEPD2_DISPLAY_CLASS) -#define MAX_HEIGHT(EPD) (EPD::HEIGHT <= MAX_DISPLAY_BUFFER_SIZE / (EPD::WIDTH / 8) ? EPD::HEIGHT : MAX_DISPLAY_BUFFER_SIZE / (EPD::WIDTH / 8)) -#elif IS_GxEPD2_3C(GxEPD2_DISPLAY_CLASS) || IS_GxEPD2_4C(GxEPD2_DISPLAY_CLASS) -#define MAX_HEIGHT(EPD) (EPD::HEIGHT <= (MAX_DISPLAY_BUFFER_SIZE / 2) / (EPD::WIDTH / 8) ? EPD::HEIGHT : (MAX_DISPLAY_BUFFER_SIZE / 2) / (EPD::WIDTH / 8)) -#elif IS_GxEPD2_7C(GxEPD2_DISPLAY_CLASS) -#define MAX_HEIGHT(EPD) (EPD::HEIGHT <= (MAX_DISPLAY_BUFFER_SIZE) / (EPD::WIDTH / 2) ? EPD::HEIGHT : (MAX_DISPLAY_BUFFER_SIZE) / (EPD::WIDTH / 2)) -#endif -// adapt the constructor parameters to your wiring -GxEPD2_DISPLAY_CLASS display(GxEPD2_DRIVER_CLASS(/*CS=10*/ EPD_CS, /*DC=*/8, /*RST=*/9, /*BUSY=*/7)); -#undef MAX_DISPLAY_BUFFER_SIZE -#undef MAX_HEIGHT -#endif - -#if defined(ARDUINO_ARCH_SAMD) -#define MAX_DISPLAY_BUFFER_SIZE 15000ul // ~15k is a good compromise -#if IS_GxEPD2_BW(GxEPD2_DISPLAY_CLASS) -#define MAX_HEIGHT(EPD) (EPD::HEIGHT <= MAX_DISPLAY_BUFFER_SIZE / (EPD::WIDTH / 8) ? EPD::HEIGHT : MAX_DISPLAY_BUFFER_SIZE / (EPD::WIDTH / 8)) -#elif IS_GxEPD2_3C(GxEPD2_DISPLAY_CLASS) || IS_GxEPD2_4C(GxEPD2_DISPLAY_CLASS) -#define MAX_HEIGHT(EPD) (EPD::HEIGHT <= (MAX_DISPLAY_BUFFER_SIZE / 2) / (EPD::WIDTH / 8) ? EPD::HEIGHT : (MAX_DISPLAY_BUFFER_SIZE / 2) / (EPD::WIDTH / 8)) -#elif IS_GxEPD2_7C(GxEPD2_DISPLAY_CLASS) -#define MAX_HEIGHT(EPD) (EPD::HEIGHT <= (MAX_DISPLAY_BUFFER_SIZE) / (EPD::WIDTH / 2) ? EPD::HEIGHT : (MAX_DISPLAY_BUFFER_SIZE) / (EPD::WIDTH / 2)) -#endif -// adapt the constructor parameters to your wiring -GxEPD2_DISPLAY_CLASS display(GxEPD2_DRIVER_CLASS(/*CS=4*/ 4, /*DC=*/7, /*RST=*/6, /*BUSY=*/5)); -// GxEPD2_DISPLAY_CLASS display(GxEPD2_DRIVER_CLASS(/*CS=4*/ 4, /*DC=*/ 3, /*RST=*/ 2, /*BUSY=*/ 1)); // my Seed XIOA0 -// GxEPD2_DISPLAY_CLASS display(GxEPD2_DRIVER_CLASS(/*CS=4*/ 3, /*DC=*/ 2, /*RST=*/ 1, /*BUSY=*/ 0)); // my other Seed XIOA0 -#undef MAX_DISPLAY_BUFFER_SIZE -#undef MAX_HEIGHT -#endif - -#if defined(ARDUINO_ARCH_RP2040) -#define MAX_DISPLAY_BUFFER_SIZE 131072ul // e.g. half of available ram -#if IS_GxEPD2_BW(GxEPD2_DISPLAY_CLASS) -#define MAX_HEIGHT(EPD) (EPD::HEIGHT <= MAX_DISPLAY_BUFFER_SIZE / (EPD::WIDTH / 8) ? EPD::HEIGHT : MAX_DISPLAY_BUFFER_SIZE / (EPD::WIDTH / 8)) -#elif IS_GxEPD2_3C(GxEPD2_DISPLAY_CLASS) || IS_GxEPD2_4C(GxEPD2_DISPLAY_CLASS) -#define MAX_HEIGHT(EPD) (EPD::HEIGHT <= (MAX_DISPLAY_BUFFER_SIZE / 2) / (EPD::WIDTH / 8) ? EPD::HEIGHT : (MAX_DISPLAY_BUFFER_SIZE / 2) / (EPD::WIDTH / 8)) -#elif IS_GxEPD2_7C(GxEPD2_DISPLAY_CLASS) -#define MAX_HEIGHT(EPD) (EPD::HEIGHT <= (MAX_DISPLAY_BUFFER_SIZE) / (EPD::WIDTH / 2) ? EPD::HEIGHT : (MAX_DISPLAY_BUFFER_SIZE) / (EPD::WIDTH / 2)) -#endif -#if defined(ARDUINO_NANO_RP2040_CONNECT) -// adapt the constructor parameters to your wiring -GxEPD2_DISPLAY_CLASS display(GxEPD2_DRIVER_CLASS(/*CS=*/EPD_CS, /*DC=*/8, /*RST=*/9, /*BUSY=*/7)); -#endif -#if defined(ARDUINO_RASPBERRY_PI_PICO) -// adapt the constructor parameters to your wiring -// GxEPD2_DISPLAY_CLASS display(GxEPD2_DRIVER_CLASS(/*CS=*/ EPD_CS, /*DC=*/ 8, /*RST=*/ 9, /*BUSY=*/ 7)); // my proto board -// mapping of GoodDisplay DESPI-PICO. NOTE: uses alternate HW SPI pins! -GxEPD2_DISPLAY_CLASS display(GxEPD2_DRIVER_CLASS(/*CS=*/3, /*DC=*/2, /*RST=*/1, /*BUSY=*/0)); // DESPI-PICO -// GxEPD2_DISPLAY_CLASS display(GxEPD2_DRIVER_CLASS(/*CS=*/ 3, /*DC=*/ 2, /*RST=*/ 11, /*BUSY=*/ 10)); // DESPI-PICO modified -#endif -#undef MAX_DISPLAY_BUFFER_SIZE -#undef MAX_HEIGHT -#endif - -#endif diff --git a/firmware/include/GxEPD2_selection_check.h b/firmware/include/GxEPD2_selection_check.h deleted file mode 100644 index df552f0..0000000 --- a/firmware/include/GxEPD2_selection_check.h +++ /dev/null @@ -1,106 +0,0 @@ -// Display Library example for SPI e-paper panels from Dalian Good Display and boards from Waveshare. -// Requires HW SPI and Adafruit_GFX. Caution: the e-paper panels require 3.3V supply AND data lines! -// -// Display Library based on Demo Example from Good Display: http://www.e-paper-display.com/download_list/downloadcategoryid=34&isMode=false.html -// -// Author: Jean-Marc Zingg -// -// Version: see library.properties -// -// Library: https://github.com/ZinggJM/GxEPD2 - -// Supporting Arduino Forum Topics: -// Waveshare e-paper displays with SPI: http://forum.arduino.cc/index.php?topic=487007.0 -// Good Display ePaper for Arduino: https://forum.arduino.cc/index.php?topic=436411.0 - -#define GxEPD2_102_IS_BW true -#define GxEPD2_150_BN_IS_BW true -#define GxEPD2_154_IS_BW true -#define GxEPD2_154_D67_IS_BW true -#define GxEPD2_154_T8_IS_BW true -#define GxEPD2_154_M09_IS_BW true -#define GxEPD2_154_M10_IS_BW true -#define GxEPD2_154_GDEY0154D67_IS_BW true -#define GxEPD2_213_IS_BW true -#define GxEPD2_213_B72_IS_BW true -#define GxEPD2_213_B73_IS_BW true -#define GxEPD2_213_B74_IS_BW true -#define GxEPD2_213_flex_IS_BW true -#define GxEPD2_213_M21_IS_BW true -#define GxEPD2_213_T5D_IS_BW true -#define GxEPD2_213_BN_IS_BW true -#define GxEPD2_213_GDEY0213B74_IS_BW true -#define GxEPD2_260_IS_BW true -#define GxEPD2_260_M01_IS_BW true -#define GxEPD2_266_BN_IS_BW true -#define GxEPD2_266_GDEY0266T90_IS_BW true -#define GxEPD2_270_IS_BW true -#define GxEPD2_270_GDEY027T91_IS_BW true -#define GxEPD2_290_IS_BW true -#define GxEPD2_290_T5_IS_BW true -#define GxEPD2_290_T5D_IS_BW true -#define GxEPD2_290_I6FD_IS_BW true -#define GxEPD2_290_T94_IS_BW true -#define GxEPD2_290_T94_V2_IS_BW true -#define GxEPD2_290_BS_IS_BW true -#define GxEPD2_290_M06_IS_BW true -#define GxEPD2_290_GDEY029T94_IS_BW true -#define GxEPD2_371_IS_BW true -#define GxEPD2_370_TC1_IS_BW true -#define GxEPD2_420_IS_BW true -#define GxEPD2_420_M01_IS_BW true -#define GxEPD2_420_GDEY042T91_IS_BW true -#define GxEPD2_583_IS_BW true -#define GxEPD2_583_T8_IS_BW true -#define GxEPD2_583_GDEQ0583T31_IS_BW true -#define GxEPD2_750_IS_BW true -#define GxEPD2_750_T7_IS_BW true -#define GxEPD2_750_YT7_IS_BW true -#define GxEPD2_1160_T91_IS_BW true -#define GxEPD2_1248_IS_BW true -#define GxEPD2_it60_IS_BW true -#define GxEPD2_it60_1448x1072_IS_BW true -#define GxEPD2_it78_1872x1404_IS_BW true -#define GxEPD2_it103_1872x1404_IS_BW true -// 3-color e-papers -#define GxEPD2_154c_IS_3C true -#define GxEPD2_154_Z90c_IS_3C true -#define GxEPD2_213c_IS_3C true -#define GxEPD2_213_Z19c_IS_3C true -#define GxEPD2_213_Z98c_IS_3C true -#define GxEPD2_266c_IS_3C true -#define GxEPD2_270c_IS_3C true -#define GxEPD2_290c_IS_3C true -#define GxEPD2_290_Z13c_IS_3C true -#define GxEPD2_290_C90c_IS_3C true -#define GxEPD2_420c_IS_3C true -#define GxEPD2_420c_Z21_IS_3C true -#define GxEPD2_583c_IS_3C true -#define GxEPD2_583c_Z83_IS_3C true -#define GxEPD2_750c_IS_3C true -#define GxEPD2_750c_Z08_IS_3C true -#define GxEPD2_750c_Z90_IS_3C true -#define GxEPD2_1248c_IS_3C true -// 4-color e-paper -#define GxEPD2_437c_IS_4C true -// 7-color e-paper -#define GxEPD2_565c_IS_7C true -#define GxEPD2_730c_GDEY073D46_IS_7C true - -#if defined(GxEPD2_DISPLAY_CLASS) && defined(GxEPD2_DRIVER_CLASS) -#define IS_GxEPD2_DRIVER(c, x) (c##x) -#define IS_GxEPD2_DRIVER_BW(x) IS_GxEPD2_DRIVER(x, _IS_BW) -#define IS_GxEPD2_DRIVER_3C(x) IS_GxEPD2_DRIVER(x, _IS_3C) -#define IS_GxEPD2_DRIVER_4C(x) IS_GxEPD2_DRIVER(x, _IS_4C) -#define IS_GxEPD2_DRIVER_7C(x) IS_GxEPD2_DRIVER(x, _IS_7C) -#if IS_GxEPD2_BW(GxEPD2_DISPLAY_CLASS) && IS_GxEPD2_DRIVER_3C(GxEPD2_DRIVER_CLASS) -#error "GxEPD2_BW used with 3-color driver class" -#endif -#if IS_GxEPD2_3C(GxEPD2_DISPLAY_CLASS) && IS_GxEPD2_DRIVER_BW(GxEPD2_DRIVER_CLASS) -#error "GxEPD2_3C used with b/w driver class" -#endif -#if !IS_GxEPD2_DRIVER_BW(GxEPD2_DRIVER_CLASS) && !IS_GxEPD2_DRIVER_3C(GxEPD2_DRIVER_CLASS) && !IS_GxEPD2_DRIVER_4C(GxEPD2_DRIVER_CLASS) && !IS_GxEPD2_DRIVER_7C(GxEPD2_DRIVER_CLASS) -#error "neither BW nor 3C nor 4C nor 7C kind defined for driver class (error in GxEPD2_selection_check.h)" -#endif - -#endif diff --git a/firmware/include/GxEPD2_wiring_examples.h b/firmware/include/GxEPD2_wiring_examples.h deleted file mode 100644 index 97ab896..0000000 --- a/firmware/include/GxEPD2_wiring_examples.h +++ /dev/null @@ -1,83 +0,0 @@ -// Display Library example for SPI e-paper panels from Dalian Good Display and boards from Waveshare. -// Requires HW SPI and Adafruit_GFX. Caution: the e-paper panels require 3.3V supply AND data lines! -// -// Display Library based on Demo Example from Good Display: http://www.e-paper-display.com/download_list/downloadcategoryid=34&isMode=false.html -// -// Author: Jean-Marc Zingg -// -// Version: see library.properties -// -// Library: https://github.com/ZinggJM/GxEPD2 - -// Supporting Arduino Forum Topics: -// Waveshare e-paper displays with SPI: http://forum.arduino.cc/index.php?topic=487007.0 -// Good Display ePaper for Arduino: https://forum.arduino.cc/index.php?topic=436411.0 - -// mapping suggestion from Waveshare SPI e-Paper to Wemos D1 mini -// BUSY -> D2, RST -> D4, DC -> D3, CS -> D8, CLK -> D5, DIN -> D7, GND -> GND, 3.3V -> 3.3V -// NOTE: connect 3.3k pull-down from D8 to GND if your board or shield has level converters -// NOTE for ESP8266: using SS (GPIO15) for CS may cause boot mode problems, use different pin in case, or 4k7 pull-down -// NOTE: connect 1k pull-up from D4 (RST) to 3.3V if your board or shield has the "clever" reset circuit, or use a different pin - -// mapping suggestion from Waveshare SPI e-Paper to generic ESP8266 -// BUSY -> GPIO4, RST -> GPIO2, DC -> GPIO0, CS -> GPIO15, CLK -> GPIO14, DIN -> GPIO13, GND -> GND, 3.3V -> 3.3V -// NOTE: connect 3.3k pull-down from GPIO15 to GND if your board or shield has level converters -// NOTE for ESP8266: using SS (GPIO15) for CS may cause boot mode problems, use different pin in case, or 3.3k pull-down -// NOTE: connect 1k pull-up from GPIO2 (RST) to 3.3V if your board or shield has the "clever" reset circuit, or use a different pin - -// mapping of Waveshare e-Paper ESP8266 Driver Board, new version -// BUSY -> GPIO5, RST -> GPIO2, DC -> GPIO4, CS -> GPIO15, CLK -> GPIO14, DIN -> GPIO13, GND -> GND, 3.3V -> 3.3V -// NOTE for ESP8266: using SS (GPIO15) for CS may cause boot mode problems, add a 3.3k pull-down in case -// the e-Paper ESP8266 Driver Board should have no boot mode issue, as it doesn't use level converters - -// mapping of Waveshare e-Paper ESP8266 Driver Board, old version -// BUSY -> GPIO16, RST -> GPIO5, DC -> GPIO4, CS -> GPIO15, CLK -> GPIO14, DIN -> GPIO13, GND -> GND, 3.3V -> 3.3V -// NOTE for ESP8266: using SS (GPIO15) for CS may cause boot mode problems, add a 3.3k pull-down in case -// the e-Paper ESP8266 Driver Board should have no boot mode issue, as it doesn't use level converters - -// mapping suggestion for ESP32, e.g. LOLIN32, see .../variants/.../pins_arduino.h for your board -// NOTE: there are variants with different pins for SPI ! CHECK SPI PINS OF YOUR BOARD -// BUSY -> 4, RST -> 16, DC -> 17, CS -> SS(5), CLK -> SCK(18), DIN -> MOSI(23), GND -> GND, 3.3V -> 3.3V - -// mapping of Waveshare ESP32 Driver Board -// BUSY -> 25, RST -> 26, DC -> 27, CS-> 15, CLK -> 13, DIN -> 14 -// NOTE: this board uses "unusual" SPI pins and requires re-mapping of HW SPI to these pins in SPIClass -// see example GxEPD2_WS_ESP32_Driver.ino, it shows how this can be done easily - -// mapping suggestion for ESP32, e.g. LOLIN32 D32 PRO -// BUSY -> 15, RST -> 2, DC -> 0, CS -> 5, CLK -> SCK(18), DIN -> MOSI(23), GND -> GND, 3.3V -> 3.3V -// note: use explicit value for CS, as SS is re-defined to TF_CS(4) in pins_arduino.h for Board: "LOLIN D32 PRO" - -// mapping suggestion for ESP32, e.g. TTGO T8 ESP32-WROVER -// BUSY -> 4, RST -> 0, DC -> 2, CS -> SS(5), CLK -> SCK(18), DIN -> MOSI(23), GND -> GND, 3.3V -> 3.3V -// for use with Board: "ESP32 Dev Module": - -// new mapping suggestion for STM32F1, e.g. STM32F103C8T6 "BluePill" -// BUSY -> A1, RST -> A2, DC -> A3, CS-> A4, CLK -> A5, DIN -> A7 - -// mapping suggestion for AVR, UNO, NANO etc. -// BUSY -> 7, RST -> 9, DC -> 8, CS-> 10, CLK -> 13, DIN -> 11 - -// mapping suggestion for AVR, Arduino Micro, Leonardo -// note: on Leonardo board HW SPI pins are on 6-pin ICSP header -// BUSY -> 7, RST -> 9, DC -> 8, CS-> 10, CLK -> 15, DIN -> 16 - -// mapping of Waveshare Universal e-Paper Raw Panel Driver Shield for Arduino / NUCLEO -// BUSY -> 7, RST -> 8, DC -> 9, CS-> 10, CLK -> 13, DIN -> 11 - -// mapping suggestion for Arduino MEGA -// BUSY -> 7, RST -> 9, DC -> 8, CS-> 53, CLK -> 52, DIN -> 51 - -// mapping suggestion for Arduino DUE, note: pin 77 is on board pin 10, SS is 10 -// BUSY -> 7, RST -> 9, DC -> 8, CS-> 10, CLK -> 76, DIN -> 75 -// SPI pins are on 6 pin 2x3 SPI header, no SS on SPI header! - -// mapping suggestion for Arduino MKR1000 or MKRZERO -// note: can't use SS on MKR1000: is defined as 24, should be 4 -// BUSY -> 5, RST -> 6, DC -> 7, CS-> 4, CLK -> 9, DIN -> 8 - -// mapping suggestion for Arduino Nano RP2040 Connect -// BUSY -> 7, RST -> 9, DC -> 8, CS-> 10, CLK -> 13, DIN -> 11 - -// mapping suggestion for Raspberry Pi Pico RP2040 -// BUSY -> 7, RST -> 9, DC -> 8, CS-> 5, CLK -> 2, DIN -> 3 diff --git a/firmware/include/button.h b/firmware/include/button.h new file mode 100644 index 0000000..9e8f909 --- /dev/null +++ b/firmware/include/button.h @@ -0,0 +1,39 @@ +#ifndef ATMBUTTON_H +#define ATMBUTTON_H + +#include + +class AtmButton { +private: + + uint8_t pin, ledPin; + uint8_t ledState = LEDOFF; + volatile bool pressed = false; + volatile unsigned long last_pressed_ms = 0; + volatile unsigned long pressed_at_ms = 0; + volatile unsigned long pressed_after_ms = 0; + volatile unsigned long pressed_count = 0; + + bool activeWaiting = false; + unsigned long startWaitTime = 0; + unsigned long lastWaitLedToggle = 0; + + static void IRAM_ATTR buttonIsrHandler(void* arg); // Interrupt Service Routine (ISR) + +public: + const uint8_t LEDON = HIGH; + const uint8_t LEDOFF = LOW; + const unsigned long DEBOUNCE_BUTTON_MS = 200; // wait that number of ms before counting the button pressed pulse -> debouncing + + AtmButton(uint8_t, uint8_t ); + void begin(); + void reset(); + void softPress(); + bool wasPressed(); + void ledOn(); + void ledOff(); + void ledToggle(); + bool iswaitingUntilPressed(unsigned long maxTimeToWaitMs, unsigned long blinkPeriodMs); +}; + +#endif diff --git a/firmware/include/coinacceptor.h b/firmware/include/coinacceptor.h new file mode 100644 index 0000000..06ba76d --- /dev/null +++ b/firmware/include/coinacceptor.h @@ -0,0 +1,50 @@ +#ifndef COINACCEPTOR_H +#define COINACCEPTOR_H + +#include "Arduino.h" +#include +#include + +class CoinAcceptor { +private: + uint8_t pulsePin, enablePin; + uint8_t accState = ACC_DISABLED; + + volatile uint16_t coinPulses = 0; + volatile uint16_t allPulses = 0; + uint16_t coinValue = 0; + uint16_t sumValue = 0; + std::string sumValueStr = ""; + volatile bool coinDetected = false; + volatile unsigned long currentMs = 0; + volatile unsigned long lastPulseAtMs = 0; + void IRAM_ATTR pulseIsrHandler(); + +public: + const uint8_t ACC_DISABLED = LOW; + const uint8_t ACC_ENABLED = HIGH; + const unsigned int* pulseValues; + unsigned int* coinNumbers; + const size_t maxPulses = 0; + const uint8_t pulseWidthMs = 0; + const uint16_t maxAllowedCentToInsert = 0; + uint8_t detectionError = 0; + + CoinAcceptor(uint8_t pulsePin, uint8_t enablePin, const unsigned int* pulseValues, const size_t maxPulses, const uint8_t pulseWidthMs, const uint16_t maxAllowedCentToInsert); + ~CoinAcceptor(); + void begin(); + void disable(); + void enable(); + uint8_t state(); + bool detectCoin(); + uint16_t getCoinValue(); + uint16_t getSumValue(); + void resetSumValue(); + std::string getSumValueStr(); + std::string getCoinsNumStr() const; + std::string getCoinsValStr() const; + +}; + + +#endif \ No newline at end of file diff --git a/firmware/include/config.example.h b/firmware/include/config.example.h new file mode 100644 index 0000000..a65d33a --- /dev/null +++ b/firmware/include/config.example.h @@ -0,0 +1,40 @@ +#ifndef CONFIG_H +#define CONFIG_H + +/* config.example.h is an EXAMPLE and needsnto be renamed to config.h */ +/* Rename this file to config.h and add yout real configuration including keys here. +The config.h will be ignored by git and you private data is not pushed to the repository */ + +//* PIN connections *// +//* HX916 coin acceptor connections: *// +static const uint8_t COIN_PIN = 17; // pin at the ESP32 the HX916 COIN signal is connected at +static const uint8_t MOSFET_PIN = 16; // pin at the ESP32 the HX916 SET signal is connected at (Please connect the signal that is pulled up by default) + +//* Button connections: *// +static const uint8_t OK_LED_BUTTON_PIN = 21; // pin at the ESP32 the LED of the OK button is connected at +static const uint8_t OK_BUTTON_PIN = 32; // pin at the ESP32 the button is OK connected at +static const uint8_t CANCEL_LED_BUTTON_PIN = 0; // pin at the ESP32 the LED of the OK button is connected at +static const uint8_t CANCEL_BUTTON_PIN = 15; // pin at the ESP32 the button is OK connected at + + + +//* eInk display *// +static const uint8_t DSPLY_PIN_CS = 26; // pin at the ESP32 the display CS pin is connected at +static const uint8_t DSPLY_PIN_DC = 25; // pin at the ESP32 the display DC pin is connected at +static const uint8_t DSPLY_PIN_RST = 33; // pin at the ESP32 the display RST pin is connected at +static const uint8_t DSPLY_PIN_BUSY = 27; // pin at the ESP32 the display BUSY pin is connected at + +//* HX916 coin pulse configuration *// +static constexpr unsigned int COINS[] = { 1, 2, 5, 10, 20, 50, 100, 200}; // teached values of coins +static constexpr size_t COINS_COUNT = sizeof(COINS) / sizeof(COINS[0]); // number of teached values +static const unsigned long COIN_PULSE_WIDTH_MS = 40; // set by switch at HX916: fast = 30, med = 50ms, slow=100ms, there is always 100ms pause +static const unsigned int MAX_ALLOWED_EUROCENT_VALUE = 1000; // This is the maximum value that can be insterted into the ATM in one session + +//* Config data required by the bleskomat based ATM, to comunicate with the LNBITS server *// +static const char* APIKEY_ID = "your API id here"; +static const char* APIKEY_KEY = "your API key here"; +static const char* APIKEY_ENCODING = "hex"; +static const char* CALLBACK_URL = "https://lnbits.makerlab-murnau.de/bleskomat/u"; +static const bool SHORTEN = true; + +#endif \ No newline at end of file diff --git a/firmware/include/epaperdisplay.h b/firmware/include/epaperdisplay.h new file mode 100644 index 0000000..fcf4f44 --- /dev/null +++ b/firmware/include/epaperdisplay.h @@ -0,0 +1,2359 @@ +#ifndef EPAPERDISPLAY_H +#define EPAPERDISPLAY_H + +#include +#include +#include +#include +#include +//#include + + +#undef USE_HSPI_FOR_EPD +#define GxEPD2_DRIVER_CLASS GxEPD2_420 // 4.2 inch Waveshare e-paper display +#define GxEPD2_DISPLAY_CLASS GxEPD2_BW // Black and White e-Paper +static const char* display_type = "GxEPD2_420"; + +class EpaperDisplay +{ + private: + GxEPD2_DISPLAY_CLASS *epDisplay; + + typedef struct s_qrdata + { + uint16_t current_y; + uint16_t current_x; + uint16_t start_x; + uint16_t start_y; + uint16_t module_size; + uint16_t qr_size; + } t_qrdata; + void setTextFont(uint8_t size); + public: + const uint8_t QR_VERSION = 15; // 20 is standard. 6 for simpler QR code, but does not always work. + + EpaperDisplay(uint8_t DSPLY_PIN_CS, uint8_t DSPLY_PIN_DC, uint8_t DSPLY_PIN_RST, uint8_t DSPLY_PIN_BUSY); + ~EpaperDisplay(); + void init(); + void sleep(); + void initScreen(); + void homeScreen(); + void cancelScreen(); + void showInsertedAmount(const char* amount_in_euro, const char* coin_values, const char* coin_numbers, const char* max_ammount_in_euro, bool update); + void updateInsertedAmount(const char*); + + void cleanScreen(); + uint16_t xCenterText(const char* text); + uint16_t yCenterText(const char* text); + void drawXCenteredText(const char* text, uint8_t textSize, uint16_t y, uint16_t fgColor, uint16_t bgColor ); + void drawYCenteredText(const char* text, uint8_t textSize, uint16_t x, uint16_t fgColor, uint16_t bgColor ); + void drawCenteredText(const char* text, uint8_t textSize, uint16_t fgColor, uint16_t bgColor ); + void drawText(const char* text, uint8_t textSize, uint16_t x, uint16_t y, uint16_t fgColor, uint16_t bgColor ); + void drawText(const char* text, uint16_t x, uint16_t y); + void updateText(const char* text, uint16_t x, uint16_t y); + void updateText(const char* text, uint8_t textSize, uint16_t x, uint16_t y, uint16_t fgColor, uint16_t bgColor); + void qrCode(const char* content, const char* sumValue); + void update_ok_counter(uint8_t ok_counter); + +}; + +// 'logosATM_cancel', 280x280px +const unsigned char epd_bitmap_makerlablogosATM_cancel[] PROGMEM = { + // 'cancel, 280x280px + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 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, 0x04, 0x8c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0x08, 0x30, 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, 0x06, 0x44, 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, 0x10, + 0x45, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x01, 0x10, 0xc3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0x12, 0x10, 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, 0x04, 0x44, 0x4c, 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, 0x10, 0x91, 0x21, 0x08, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0x24, + 0x92, 0x4b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0x08, 0x88, 0x90, 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, 0xc2, 0x64, 0x84, 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, 0x12, 0x12, 0x04, 0x64, 0x08, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 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, 0x24, 0x93, 0x13, 0x4b, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0x88, 0x90, + 0x90, 0x40, 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, + 0x10, 0x92, 0x4c, 0x8c, 0x94, 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, 0x02, 0x21, 0x21, 0x22, 0x24, 0x48, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0x49, 0x09, 0x22, 0x49, 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, 0x01, 0x08, 0x48, 0x99, 0x13, 0x20, 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, 0x11, 0x24, 0xa6, 0x44, + 0x90, 0xa6, 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, 0x04, + 0x22, 0xf1, 0x22, 0x4c, 0x91, 0x18, 0x00, 0x00, 0x00, 0x00, 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, 0x89, 0xfc, 0x99, 0x22, 0x4c, 0x86, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x91, 0xfe, 0x44, 0x92, 0x42, 0x61, 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, 0x02, 0x12, 0xff, 0xc4, 0x91, 0x32, 0x18, 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, 0x08, 0x44, 0xff, 0xf1, 0x24, + 0x89, 0x93, 0x18, 0x00, 0x00, 0x00, 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, 0x05, + 0xff, 0xfc, 0x48, 0x88, 0x44, 0x86, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x10, 0x61, 0xff, 0xfe, 0x4a, 0x66, 0x4c, 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, 0x04, 0x19, 0xff, 0xff, 0x92, 0x11, 0x22, 0x19, 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, 0x09, 0x82, 0xff, 0xff, 0xf1, 0x91, 0x29, 0x16, 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, 0x08, 0x24, 0xff, 0xff, 0xfc, 0x4c, + 0x89, 0x60, 0x94, 0x00, 0x00, 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, 0x25, 0xff, + 0xff, 0xfe, 0x42, 0x66, 0x0b, 0x25, 0x00, 0x00, 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, 0x91, 0xff, 0xff, 0xff, 0x92, 0x10, 0xc9, 0x49, 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, 0x04, 0x11, 0xff, 0xff, 0xff, 0xf1, 0x92, 0x31, 0x58, 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, 0x09, 0x4c, 0xff, 0xff, 0xff, 0xfc, 0x4a, 0x86, 0x12, 0x38, + 0x00, 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, 0x43, 0xff, 0xff, 0xff, 0xfe, 0x48, + 0x92, 0xa6, 0x86, 0x00, 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, 0x21, 0xff, 0xff, + 0xff, 0xff, 0x92, 0x68, 0x88, 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, 0x12, + 0x8c, 0xff, 0xff, 0xff, 0xff, 0xe5, 0x09, 0x33, 0x08, 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, 0x08, 0x91, 0xff, 0xff, 0xff, 0xff, 0xf9, 0x4c, 0xc4, 0x66, 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, 0x04, 0x25, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x42, 0x12, 0x49, 0x1c, + 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, 0x21, 0xff, 0xff, 0xff, 0xff, 0xff, 0x93, + 0x29, 0x99, 0x23, 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, 0x19, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xe4, 0xc9, 0x24, 0xc9, 0xa0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0xc4, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x12, 0x46, 0x4c, 0x28, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x12, 0x05, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x26, 0x51, 0x32, 0xca, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x08, 0xb1, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xa4, 0x99, 0x86, 0x32, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x84, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc9, + 0x26, 0x64, 0x85, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x12, 0x13, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xf7, 0xf9, 0x20, 0x31, 0xac, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0xc9, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x9b, 0x8c, 0x62, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x02, 0x24, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xff, 0x44, 0x46, 0x49, 0xa3, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x12, 0x25, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xcc, 0x71, 0x99, 0x32, + 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x89, 0xf7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xef, 0xf3, + 0x09, 0x26, 0x4c, 0x90, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x22, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xfb, 0xf8, 0x9a, 0x48, 0x89, 0x90, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x92, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xfe, 0xfe, 0xa2, 0x92, 0xb2, 0x6d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x12, + 0x49, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xbf, 0x88, 0xb2, 0x46, 0x49, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x09, 0x25, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xef, 0xf6, 0x49, 0x31, 0x32, + 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x24, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfb, 0xf9, + 0x0c, 0x8c, 0x8c, 0xb0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x93, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, + 0xff, 0xfe, 0xfe, 0x62, 0xc2, 0xc9, 0x2c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x12, 0x49, 0xf7, 0xff, 0xff, + 0xff, 0xff, 0xf7, 0xff, 0xff, 0xbf, 0x98, 0x32, 0x53, 0x23, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x24, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xbf, 0xff, 0xff, 0xef, 0xe7, 0x19, 0x14, 0xc9, 0x40, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x09, 0x25, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xfb, 0xf8, 0xc5, 0x64, 0x59, + 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x12, 0x49, 0xff, 0xff, 0xff, 0xff, 0xfb, 0xdb, 0xff, 0xff, 0xfe, 0xfe, + 0x24, 0x8b, 0x16, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x92, 0xff, 0xff, 0xff, 0xff, 0xf3, 0x6e, 0xdf, + 0xff, 0xff, 0xbf, 0x98, 0xa8, 0xc2, 0x4d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x24, 0xf7, 0xff, 0xff, 0xff, + 0xce, 0x6c, 0xfc, 0xff, 0xff, 0xef, 0xc3, 0x24, 0xb9, 0xa2, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x12, 0x49, 0xff, + 0xff, 0xff, 0xff, 0x9a, 0x93, 0xff, 0xbf, 0xff, 0xfb, 0xf8, 0x53, 0x04, 0xb2, 0xd0, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x04, 0x93, 0xff, 0xff, 0xff, 0xff, 0x32, 0x97, 0xff, 0xed, 0xff, 0xfe, 0xfe, 0x48, 0x66, 0x0c, + 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x09, 0x24, 0xff, 0xff, 0xff, 0xfe, 0x64, 0x1f, 0xff, 0xf7, 0x3f, 0xff, 0xff, + 0x26, 0x99, 0x63, 0x2c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x12, 0x49, 0xfb, 0xff, 0xff, 0xfe, 0xc1, 0x3f, 0xff, 0xdb, + 0xff, 0xff, 0xbf, 0x91, 0x84, 0x92, 0xc7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x12, 0x49, 0xff, 0xff, 0xff, 0xfc, 0x88, + 0x7f, 0xff, 0x9a, 0xff, 0xff, 0xef, 0xf0, 0x64, 0x98, 0x91, 0xc0, 0x02, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x24, 0xff, 0xff, + 0xff, 0xfd, 0x00, 0xff, 0xfe, 0x67, 0xff, 0xff, 0xfb, 0xfa, 0x2b, 0x26, 0x6c, 0x70, 0x00, 0x80, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, + 0x26, 0xff, 0xff, 0xff, 0xf9, 0x01, 0xff, 0xfd, 0x6f, 0xff, 0xff, 0xfe, 0xfc, 0x88, 0x65, 0x23, + 0x1c, 0x04, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x04, 0x91, 0xff, 0xff, 0xff, 0xf9, 0x03, 0xff, 0xf9, 0x1f, 0xff, 0xff, 0xff, 0xdd, + 0x52, 0x49, 0x98, 0x87, 0x01, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x12, 0x55, 0xef, 0xff, 0xff, 0xf2, 0x03, 0xff, 0xe0, 0x9f, 0xff, + 0xff, 0xff, 0xfc, 0x45, 0x98, 0x46, 0x61, 0x81, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x12, 0x44, 0xff, 0xff, 0xff, 0xf2, 0x07, 0xff, + 0xc2, 0x7f, 0xff, 0xff, 0xff, 0xfc, 0x94, 0x26, 0x51, 0x38, 0xe1, 0xf0, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x99, 0xff, 0xff, 0xff, + 0xf0, 0x07, 0xbf, 0x80, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x22, 0x62, 0x99, 0x8e, 0x30, 0x98, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x23, + 0xff, 0xff, 0xff, 0xf0, 0x06, 0xed, 0x03, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x4a, 0x98, 0xa6, 0x41, + 0x1a, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x13, 0x24, 0xff, 0xff, 0xff, 0xf2, 0x07, 0xbc, 0x07, 0xff, 0xbf, 0xff, 0xff, 0xfe, 0x48, + 0x85, 0x24, 0x75, 0xc6, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x14, 0xcd, 0xfb, 0xff, 0xff, 0xe2, 0x06, 0xd8, 0x1f, 0xfc, 0xdb, 0xff, + 0xff, 0xfe, 0x25, 0x31, 0x49, 0x84, 0x31, 0x6e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x21, 0xff, 0xff, 0xff, 0xe2, 0x06, 0xe0, 0x3f, + 0xff, 0xfa, 0xff, 0xff, 0x7c, 0x94, 0x4a, 0x5a, 0x33, 0x24, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x9a, 0xff, 0xff, 0xff, 0xe2, + 0x07, 0x20, 0x7b, 0x7b, 0x7b, 0x7f, 0xff, 0xfe, 0x43, 0x4a, 0x42, 0x98, 0xcc, 0xbf, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x12, 0x46, 0xff, + 0xff, 0xff, 0xe2, 0x00, 0x80, 0xef, 0x7b, 0xb6, 0xdb, 0xfe, 0xfe, 0x28, 0x49, 0x99, 0x46, 0x49, + 0x3f, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x12, 0x61, 0xf7, 0xff, 0xff, 0xe2, 0x0e, 0x01, 0xb5, 0xf7, 0xad, 0xbf, 0x3e, 0xfc, 0x8a, 0x64, + 0x25, 0x49, 0x33, 0x7f, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x0d, 0x2d, 0xff, 0xff, 0xff, 0xc3, 0x03, 0xf0, 0x74, 0xf8, 0xff, 0x75, 0x6d, + 0xfe, 0x49, 0x93, 0x64, 0xb3, 0x24, 0x3f, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x91, 0xff, 0xff, 0xff, 0xc9, 0x03, 0xfe, 0x03, 0xdd, + 0x95, 0xfe, 0x49, 0xfe, 0x24, 0x18, 0x92, 0x24, 0xcc, 0xbf, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x12, 0x94, 0xff, 0xff, 0xff, 0xc1, 0x01, + 0x9f, 0xcf, 0x77, 0xff, 0x34, 0x33, 0xfc, 0x93, 0x46, 0x19, 0x8c, 0x53, 0x3f, 0xe0, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x12, 0x66, 0xff, 0xff, + 0xff, 0xc0, 0x80, 0xe5, 0xfd, 0xfe, 0x6b, 0xd8, 0x93, 0xfe, 0x48, 0x61, 0xc4, 0xd3, 0x12, 0x7f, + 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, + 0x09, 0xff, 0xff, 0xff, 0xc4, 0x80, 0x7d, 0xb7, 0xba, 0xd5, 0xf0, 0x03, 0xfe, 0x26, 0x98, 0x56, + 0x11, 0xac, 0x9f, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x0c, 0xd9, 0xff, 0xff, 0xff, 0xc2, 0x40, 0x16, 0xdb, 0x6f, 0xdf, 0x41, 0x27, 0xfc, + 0x90, 0x96, 0x49, 0x6c, 0x25, 0xbf, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x12, 0x45, 0xff, 0xff, 0xff, 0xc2, 0x20, 0x0e, 0xdb, 0x7f, 0xb7, + 0x80, 0x0f, 0xfe, 0x4b, 0x23, 0x29, 0x23, 0x52, 0x3f, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x13, 0x33, 0xff, 0xff, 0xff, 0xc1, 0x90, 0x03, + 0x6d, 0xdb, 0x3e, 0x00, 0x0f, 0xfe, 0x22, 0x48, 0x92, 0x98, 0xd2, 0xdf, 0xfe, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x88, 0xf7, 0xff, 0xff, + 0xc1, 0x88, 0x01, 0x6d, 0xff, 0xf0, 0x00, 0x3f, 0xdc, 0x94, 0x99, 0x96, 0x4c, 0x8c, 0x5f, 0xfe, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0xad, + 0xff, 0xff, 0xff, 0xc1, 0x64, 0x00, 0x1f, 0x36, 0x80, 0x02, 0x7f, 0x7e, 0x4c, 0xa4, 0x64, 0x63, + 0x25, 0x3f, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x12, 0x65, 0xff, 0xff, 0xff, 0xc0, 0x61, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xfe, 0x22, + 0x46, 0x49, 0x92, 0x65, 0xbf, 0xff, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x16, 0x11, 0xff, 0xff, 0xff, 0xc0, 0x78, 0x00, 0x00, 0x00, 0x00, 0x03, + 0xff, 0xbc, 0x92, 0x59, 0x29, 0x19, 0x18, 0x9f, 0xff, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x9a, 0xff, 0xff, 0xff, 0xc8, 0x2e, 0x00, 0x00, + 0x00, 0x00, 0x0f, 0xff, 0xfe, 0x4c, 0x91, 0x96, 0x65, 0x92, 0x7f, 0xff, 0xc0, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x62, 0xff, 0xff, 0xff, 0xc0, + 0x8f, 0x80, 0x00, 0x00, 0x00, 0x3f, 0xff, 0x7e, 0x21, 0x96, 0x51, 0x94, 0xcd, 0x3f, 0xff, 0xe0, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x16, 0x4d, 0xff, + 0xff, 0xff, 0xc4, 0x07, 0xf0, 0x00, 0x00, 0x01, 0xff, 0xff, 0x7e, 0x2c, 0x48, 0x4c, 0x48, 0x65, + 0x3f, 0xff, 0xb0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x12, 0x91, 0xff, 0xff, 0xff, 0xc0, 0x43, 0xfc, 0x00, 0x00, 0x1f, 0xff, 0xfe, 0xfe, 0x43, 0x29, + 0xa6, 0x6b, 0x12, 0xdf, 0xff, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x09, 0xb6, 0xff, 0xff, 0xff, 0xc4, 0x20, 0xff, 0xe0, 0x03, 0xff, 0xfd, 0xff, + 0xfe, 0x52, 0x26, 0x22, 0x89, 0x98, 0x9f, 0xff, 0xd8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x19, 0x25, 0xff, 0xff, 0xff, 0xc3, 0x18, 0x3f, 0xff, 0xff, + 0xff, 0xe7, 0xff, 0xfe, 0x18, 0xd2, 0x59, 0x94, 0x66, 0x7f, 0xff, 0xfc, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x49, 0xff, 0xff, 0xff, 0xc1, 0x8b, + 0x0f, 0xff, 0xff, 0xff, 0xbf, 0xff, 0xfe, 0x46, 0x49, 0x94, 0x66, 0x45, 0x3f, 0xff, 0xb6, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x12, 0xda, 0xff, 0xff, + 0xff, 0xc0, 0xa3, 0x60, 0xff, 0xff, 0xf9, 0xff, 0xbf, 0xfe, 0x44, 0x8c, 0x86, 0x49, 0x99, 0x9f, + 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x19, + 0x26, 0xed, 0xb6, 0xed, 0xc0, 0xa1, 0xde, 0x07, 0xfa, 0x1f, 0xff, 0x7f, 0xfe, 0x31, 0xb2, 0x69, + 0x99, 0x26, 0x7f, 0xff, 0xd9, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x0d, 0x24, 0x00, 0xdb, 0xbf, 0x60, 0x38, 0x7b, 0xf0, 0x07, 0xff, 0xfc, 0xff, 0xfe, + 0x26, 0x03, 0x29, 0x24, 0xc9, 0x3f, 0xff, 0xff, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x12, 0xd9, 0x00, 0x09, 0xb3, 0xc4, 0x08, 0x3f, 0xff, 0xff, 0xff, + 0xe3, 0xff, 0xfe, 0x48, 0xd8, 0x92, 0x66, 0x59, 0x9f, 0xff, 0x6e, 0x60, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x12, 0x4b, 0x00, 0x00, 0x0c, 0xc2, 0x2f, 0x87, + 0xff, 0xff, 0xff, 0x1f, 0xff, 0xfe, 0x49, 0x12, 0x56, 0x92, 0x46, 0x7f, 0xff, 0xfb, 0xb0, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x19, 0x26, 0xc0, 0x00, 0x02, + 0x21, 0x09, 0xa0, 0xff, 0xff, 0xf0, 0x7f, 0xf7, 0xfe, 0x26, 0x66, 0x44, 0x99, 0xb2, 0x5f, 0xff, + 0xbd, 0xd8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0d, 0xb0, + 0xa0, 0x00, 0x00, 0x21, 0x42, 0xfc, 0x03, 0xb8, 0x07, 0xff, 0xdf, 0xfe, 0x30, 0x89, 0x99, 0x24, + 0x99, 0x9f, 0xff, 0xef, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x12, 0x9b, 0x38, 0x00, 0x00, 0x00, 0xe1, 0xff, 0xc0, 0x02, 0xff, 0xff, 0x7f, 0xfe, 0x4d, + 0x98, 0x63, 0x66, 0x44, 0xbf, 0xff, 0xfb, 0x6c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x16, 0x49, 0x46, 0x00, 0x00, 0x08, 0xa8, 0x6f, 0xff, 0xff, 0xff, 0xfd, + 0xff, 0xfe, 0x41, 0x26, 0x4c, 0x49, 0x66, 0x7f, 0xff, 0x7d, 0xb6, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x64, 0xd3, 0x00, 0x00, 0x08, 0x3a, 0x1f, 0xff, + 0xff, 0xff, 0xc7, 0xff, 0xfe, 0x34, 0x63, 0x24, 0x99, 0x19, 0x3f, 0xff, 0xdd, 0xb2, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0d, 0x96, 0x31, 0xc0, 0x00, 0x06, + 0x0b, 0x81, 0xff, 0xff, 0xfc, 0x7f, 0xf7, 0xfe, 0x26, 0x48, 0xb3, 0x26, 0xc9, 0x9f, 0xff, 0xf7, + 0xcc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x99, 0x8c, + 0x70, 0x00, 0x04, 0x0f, 0xe0, 0x1f, 0xff, 0xc7, 0xff, 0xdf, 0xfe, 0x49, 0x99, 0x89, 0x62, 0x26, + 0x7f, 0xff, 0xbe, 0x76, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x02, 0x64, 0xd6, 0x1c, 0x00, 0x03, 0x83, 0xbf, 0x80, 0x01, 0x7f, 0xff, 0x7f, 0xfe, 0x52, 0x24, + 0x6c, 0x99, 0x91, 0x3f, 0xff, 0xeb, 0xb2, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x0b, 0x4d, 0x33, 0x87, 0x00, 0x01, 0x40, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xff, + 0xfe, 0x12, 0xa6, 0x46, 0x94, 0x59, 0x9f, 0xff, 0x7e, 0xcc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0xd3, 0x28, 0xf1, 0xc0, 0x01, 0xc8, 0x3b, 0xff, 0xff, + 0xff, 0xf3, 0xff, 0xfc, 0xcc, 0x93, 0xb2, 0x65, 0x46, 0x7f, 0xff, 0xf6, 0xf4, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x32, 0xcc, 0x98, 0x64, 0x00, 0xba, + 0x07, 0xff, 0xff, 0xff, 0x1f, 0xff, 0xfe, 0x25, 0xcf, 0xf9, 0x29, 0x30, 0x9f, 0xff, 0xbd, 0x9a, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x8c, 0x93, 0x27, + 0x30, 0x00, 0x6a, 0x80, 0x7f, 0xff, 0xc0, 0xff, 0xef, 0xfe, 0x33, 0x6f, 0xfe, 0x92, 0x96, 0xbf, + 0xff, 0xed, 0xea, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xe5, 0x33, 0x64, 0x9b, 0x00, 0x3b, 0xb8, 0x00, 0x10, 0x1f, 0xff, 0xbf, 0xfe, 0x4b, 0xcf, 0xff, + 0x96, 0x48, 0xbf, 0xff, 0xfb, 0x6c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x79, 0xcc, 0x9a, 0xca, 0x40, 0x1f, 0xbf, 0xed, 0xb7, 0xff, 0xfe, 0x7f, 0xfe, + 0x4f, 0xcf, 0xff, 0xc1, 0x66, 0x3f, 0xff, 0xbe, 0xd6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3e, 0x49, 0x93, 0x29, 0x30, 0x07, 0xef, 0xff, 0xff, 0xff, + 0xf9, 0xff, 0xfe, 0x33, 0x8f, 0xff, 0xd9, 0x25, 0x5f, 0xff, 0xe6, 0xd2, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x32, 0x64, 0xe5, 0x20, 0x03, 0xee, + 0xff, 0xff, 0xff, 0x87, 0xff, 0xfc, 0x93, 0x9f, 0xff, 0xe4, 0x99, 0x5f, 0xfe, 0xfd, 0xbb, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xce, 0x4d, 0x1c, + 0x28, 0x01, 0xb9, 0xff, 0xff, 0xf8, 0x3f, 0xff, 0xfe, 0x4d, 0xcf, 0xff, 0xe6, 0x92, 0x7f, 0xff, + 0xdd, 0xac, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, + 0xf1, 0x99, 0xb3, 0x22, 0x00, 0x7f, 0x0f, 0xfc, 0x03, 0xff, 0xff, 0xfe, 0x65, 0x8f, 0xff, 0xf8, + 0xc4, 0x9f, 0xff, 0xf7, 0x66, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x07, 0xfc, 0xb2, 0x89, 0x21, 0x00, 0x37, 0xe0, 0x00, 0xff, 0xff, 0xff, 0xfe, 0x22, + 0xcf, 0xff, 0xf9, 0x2d, 0x3f, 0xff, 0xbd, 0xdb, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xff, 0x26, 0x6d, 0x21, 0x00, 0x1f, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xfe, 0x4a, 0x0f, 0xff, 0xfb, 0x21, 0x7f, 0xff, 0xed, 0xb9, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xff, 0xcd, 0x64, 0xa1, 0x00, 0x07, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xfc, 0x58, 0x07, 0xff, 0xfc, 0xd2, 0x5f, 0xff, 0x7b, 0x66, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xf1, 0x96, 0x21, + 0x04, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x46, 0x07, 0xff, 0xfc, 0x4c, 0x9f, 0xff, 0xde, + 0xdb, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, + 0xfe, 0x59, 0x90, 0x01, 0x00, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x65, 0x87, 0xff, 0xfd, 0x93, + 0x3f, 0xff, 0xf6, 0xd9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x3f, 0xff, 0x49, 0x11, 0xbe, 0x00, 0x03, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x31, 0x61, + 0xff, 0xfd, 0xd1, 0x7f, 0xff, 0x7b, 0x6d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xff, 0xa6, 0x40, 0xc0, 0x20, 0x00, 0x1f, 0xff, 0xff, 0xff, + 0xfc, 0x9a, 0x49, 0xff, 0xfc, 0xcc, 0x5f, 0xff, 0xdf, 0x6d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xff, 0xf6, 0xc8, 0x00, 0x04, 0x00, 0x01, + 0xbf, 0xff, 0xff, 0xfe, 0x4a, 0x98, 0x7f, 0xfc, 0xe6, 0x5f, 0xff, 0xf5, 0xb3, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xff, 0xf9, 0xa4, 0x18, + 0x64, 0x80, 0x00, 0x26, 0xfd, 0xdb, 0xbc, 0x64, 0xa4, 0x3f, 0xfe, 0xe3, 0x3f, 0xff, 0xbd, 0xb6, + 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xff, + 0xfe, 0x72, 0x07, 0x83, 0x00, 0x00, 0x00, 0x97, 0x7e, 0xec, 0x95, 0x24, 0x0f, 0xfc, 0xe8, 0xbf, + 0xff, 0xef, 0x6c, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x03, 0xff, 0xff, 0xd8, 0x00, 0x18, 0x09, 0x80, 0x00, 0x04, 0xcd, 0xfc, 0x53, 0x5b, 0x07, + 0xfc, 0x66, 0x7f, 0xff, 0xfb, 0x6b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x01, 0xff, 0xff, 0xec, 0x80, 0x00, 0x33, 0x00, 0x00, 0x20, 0x93, 0x34, + 0x4c, 0xc9, 0x01, 0xf8, 0xe5, 0x1f, 0xff, 0x7d, 0xb2, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xee, 0x20, 0x00, 0xc7, 0x40, 0x00, + 0x02, 0x00, 0x8c, 0xa9, 0x24, 0xc0, 0x00, 0x84, 0xdf, 0xff, 0xdd, 0xbd, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6f, 0xff, 0xff, 0x80, 0x02, + 0x1f, 0x60, 0x00, 0x00, 0x04, 0x20, 0xab, 0x36, 0x40, 0x00, 0x0a, 0x7f, 0xff, 0xf7, 0x65, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xff, + 0xfd, 0xe0, 0x90, 0xff, 0x38, 0x00, 0x00, 0x00, 0x00, 0x48, 0xc9, 0x38, 0x00, 0x0b, 0x3f, 0xff, + 0xbd, 0xdb, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x1b, 0x7f, 0xfe, 0x7f, 0x6f, 0xff, 0x8e, 0x00, 0x00, 0x00, 0x00, 0x56, 0x49, 0x8e, 0xd9, + 0x24, 0xbf, 0xff, 0xee, 0xda, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x0f, 0xef, 0xff, 0xff, 0xff, 0xff, 0xa3, 0x80, 0x00, 0x10, 0x00, 0xd5, + 0xb6, 0x62, 0x4d, 0x32, 0xbf, 0xff, 0x7b, 0x66, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0xfb, 0xff, 0xff, 0xff, 0xff, 0x39, 0x60, 0x00, + 0x00, 0x00, 0x24, 0x92, 0x59, 0x24, 0xca, 0x5f, 0xff, 0xfd, 0xb9, 0x80, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xbc, 0x0f, 0xff, 0xff, 0xff, + 0xcc, 0xd8, 0x00, 0x00, 0x00, 0xba, 0x6b, 0x4d, 0xb2, 0x49, 0x7f, 0xff, 0xdd, 0xad, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xc0, 0x00, + 0x3f, 0xff, 0xff, 0xc6, 0x9e, 0x00, 0x80, 0x40, 0x8b, 0x29, 0x32, 0x4b, 0x35, 0x3f, 0xff, 0xf7, + 0x6d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x0f, 0xff, 0x87, 0xff, 0xfe, 0xf2, 0x63, 0x80, 0x00, 0x00, 0x65, 0x95, 0x92, 0x49, 0x94, + 0xbf, 0xff, 0xbb, 0x73, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x71, 0xf7, 0xff, 0x9b, 0x59, 0x60, 0x00, 0x00, 0x74, 0xd4, + 0xcd, 0xb4, 0xcb, 0xbf, 0xff, 0xee, 0xda, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x80, 0x00, 0x0c, 0xff, 0x7d, 0xe4, 0xcd, 0x6c, 0x01, + 0x00, 0x96, 0x4a, 0x64, 0x96, 0x28, 0x7f, 0xff, 0x7d, 0x9a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x02, 0x3f, 0xf7, 0xf5, + 0x26, 0x9a, 0x00, 0x00, 0xc9, 0xab, 0x33, 0x49, 0xa6, 0x5f, 0xff, 0xf7, 0x67, 0x80, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x60, 0x01, + 0x3f, 0xff, 0xd9, 0xb2, 0xd3, 0x80, 0x00, 0x6b, 0x32, 0x9a, 0x69, 0x33, 0x3f, 0xff, 0xbb, 0x74, + 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, + 0x7e, 0x18, 0x00, 0x4f, 0xff, 0x7a, 0x9b, 0x5c, 0xe0, 0x00, 0x32, 0x56, 0xca, 0x96, 0x4c, 0xff, + 0xff, 0xed, 0x9b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x40, 0xc3, 0x08, 0x00, 0x4f, 0xff, 0xfa, 0x65, 0x26, 0x38, 0x00, 0xcc, 0xc9, 0x32, + 0xd2, 0xc9, 0x3f, 0xff, 0xfd, 0xeb, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xc1, 0x01, 0x08, 0x08, 0x27, 0xff, 0xef, 0x4c, 0xeb, 0x4e, 0x00, + 0x4d, 0xa9, 0x96, 0x4a, 0x33, 0x3f, 0xfe, 0xde, 0x6c, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x06, 0x07, 0xff, 0xfd, 0x33, + 0x33, 0x53, 0x40, 0xd3, 0x36, 0x65, 0x39, 0xa6, 0xdf, 0xff, 0xf3, 0xb6, 0x80, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x18, 0x10, 0x17, + 0xff, 0xf6, 0xb5, 0x9c, 0xd9, 0x90, 0xb4, 0xc6, 0x69, 0x85, 0x98, 0xbf, 0xff, 0xbf, 0xb3, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, + 0x10, 0x00, 0x03, 0xff, 0xfe, 0xcc, 0xc9, 0xa6, 0xb6, 0x96, 0x59, 0x9a, 0xf4, 0x53, 0x3f, 0xff, + 0xec, 0xcd, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x02, 0x20, 0x29, 0x03, 0xff, 0xff, 0x4a, 0x6b, 0x34, 0xcd, 0x69, 0x99, 0x92, 0x13, + 0x4c, 0xdf, 0xff, 0xff, 0x75, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0xc0, 0xa0, 0x4b, 0x7f, 0xff, 0xf3, 0x36, 0x5b, 0x69, 0x4c, + 0xe6, 0x66, 0xda, 0x64, 0xbf, 0xff, 0x73, 0x66, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x01, 0x9c, 0x02, 0x03, 0x6f, 0xff, 0xfd, 0x94, + 0xcb, 0x26, 0xd6, 0x26, 0x4c, 0x8a, 0x9b, 0x3f, 0xff, 0xde, 0xda, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x0e, 0x0f, 0xb8, 0x92, 0x3f, + 0xff, 0xfc, 0xd9, 0xac, 0xb6, 0x33, 0x99, 0x99, 0xb2, 0xb3, 0x7f, 0xff, 0xfd, 0xb3, 0x80, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x78, 0x04, + 0x85, 0xc2, 0x1b, 0xff, 0xff, 0x6e, 0x64, 0xd9, 0xa8, 0xd9, 0xb3, 0x35, 0x24, 0x9f, 0xff, 0x6d, + 0xbc, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, + 0x01, 0xc0, 0x3c, 0x3b, 0x2a, 0x0e, 0xff, 0xff, 0xcb, 0x5b, 0x49, 0x8e, 0x66, 0x4c, 0xcd, 0x4c, + 0xbf, 0xff, 0xf6, 0xcd, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xff, + 0x00, 0x00, 0x01, 0x03, 0x00, 0x29, 0x72, 0x62, 0x07, 0xff, 0xff, 0xf1, 0x4b, 0x2e, 0x73, 0x26, + 0x64, 0x92, 0x73, 0x7f, 0xff, 0xbe, 0xe6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x78, 0x00, 0xe0, 0x00, 0x01, 0x0c, 0x24, 0x31, 0x44, 0xe2, 0x01, 0xdf, 0xff, 0xff, 0x30, + 0xe2, 0xcc, 0xd9, 0x9b, 0x33, 0x93, 0x3f, 0xfe, 0xeb, 0x39, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x01, 0x80, 0x00, 0x18, 0x00, 0x04, 0xe1, 0x95, 0xcc, 0xd1, 0x46, 0x00, 0xff, + 0xff, 0xff, 0xb6, 0x9a, 0x65, 0x93, 0x32, 0xcc, 0x98, 0xbf, 0xff, 0xfb, 0xdb, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x02, 0x00, 0x04, 0x9c, 0x18, 0x3b, 0xdf, + 0x96, 0x00, 0x6f, 0xff, 0xff, 0xcd, 0x9b, 0x35, 0x34, 0xcc, 0xb2, 0x66, 0xbf, 0xff, 0xbc, 0xcc, + 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x20, 0x80, 0x02, 0x43, + 0xf0, 0x02, 0x08, 0x8e, 0x00, 0x3b, 0xff, 0xff, 0xf9, 0x65, 0x99, 0x66, 0x65, 0x2d, 0x34, 0xbf, + 0xfe, 0xe7, 0x76, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x00, 0x40, 0x5b, + 0x00, 0x03, 0x40, 0x04, 0xc4, 0xa2, 0x4c, 0x00, 0x1e, 0xff, 0xff, 0xfe, 0x64, 0xcb, 0x4b, 0x36, + 0xc9, 0x96, 0xbf, 0xff, 0xff, 0x66, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, + 0xf0, 0xc0, 0x89, 0x20, 0x03, 0x20, 0x02, 0x15, 0x29, 0x1c, 0x00, 0x07, 0xff, 0xff, 0xff, 0x9b, + 0x36, 0x59, 0x98, 0xb2, 0xc9, 0x3f, 0xff, 0xb9, 0xb9, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xc0, 0x00, 0x81, 0x35, 0x60, 0x01, 0x92, 0x48, 0x41, 0x19, 0x3c, 0x00, 0x03, 0x6f, + 0xff, 0xff, 0xda, 0xc5, 0xb4, 0xcb, 0x2e, 0x69, 0xdf, 0xfe, 0xee, 0xcd, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x01, 0x80, 0x00, 0x82, 0x26, 0xd0, 0x01, 0xc8, 0x23, 0x28, 0xc6, 0x78, + 0x00, 0x01, 0xff, 0xff, 0xff, 0xf6, 0x79, 0x26, 0x66, 0x61, 0x2e, 0x7f, 0xff, 0xf6, 0xd6, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x85, 0x4d, 0xc0, 0x00, 0x22, 0x08, + 0x26, 0x20, 0xf0, 0x00, 0x00, 0xdd, 0xff, 0xff, 0xfd, 0x26, 0x6b, 0x34, 0xdd, 0x92, 0x3f, 0xff, + 0x77, 0x72, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x03, 0x09, 0x98, 0x87, + 0xff, 0x18, 0xc4, 0x91, 0x23, 0xe0, 0x00, 0x00, 0x7f, 0xff, 0xff, 0xff, 0x9b, 0x99, 0x93, 0x12, + 0x73, 0xbf, 0xff, 0xdb, 0x6d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x06, + 0x04, 0xa6, 0x1c, 0x01, 0xc6, 0x12, 0x49, 0x0f, 0xc0, 0x00, 0x00, 0x36, 0xef, 0xff, 0xff, 0xd8, + 0x94, 0xda, 0xcd, 0x8c, 0xbf, 0xfd, 0xfb, 0x99, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x0c, 0x2b, 0x54, 0x70, 0x00, 0x33, 0x80, 0x48, 0x7f, 0x80, 0x00, 0x00, 0x1f, 0xbf, + 0xff, 0xff, 0xf6, 0x66, 0x49, 0xb1, 0x32, 0x7f, 0xff, 0x6c, 0xd6, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x02, 0x00, 0x18, 0x12, 0x98, 0xc0, 0x00, 0x19, 0xfc, 0x07, 0xff, 0x00, 0x00, + 0x00, 0x0d, 0xfd, 0xff, 0xff, 0xfd, 0xab, 0x34, 0x36, 0x67, 0x3f, 0xff, 0xef, 0x66, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x70, 0x65, 0x31, 0x81, 0xfe, 0x04, 0xff, 0xff, + 0xfc, 0x00, 0x00, 0x00, 0x07, 0x77, 0xff, 0xff, 0xff, 0x39, 0xb7, 0x8c, 0xcc, 0xdf, 0xff, 0xbb, + 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x01, 0x60, 0x49, 0x62, 0x0f, 0x15, + 0x86, 0x7f, 0xff, 0xf0, 0x00, 0x00, 0x00, 0x03, 0xdf, 0xbf, 0xff, 0xff, 0xc4, 0xc8, 0xe3, 0x32, + 0x7f, 0xfe, 0xf6, 0xda, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc1, 0x9a, + 0xc4, 0x18, 0x55, 0x53, 0x3f, 0xff, 0x00, 0x00, 0x00, 0x00, 0x01, 0xfd, 0xfb, 0xff, 0xff, 0xf6, + 0x4e, 0x5b, 0x27, 0x3f, 0xff, 0xdd, 0x9a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, + 0x05, 0x83, 0x65, 0x88, 0x62, 0x05, 0x65, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb7, 0xdf, + 0xbf, 0xff, 0xff, 0x33, 0x18, 0xd9, 0xbf, 0xff, 0x77, 0x64, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x02, 0x01, 0x12, 0x6b, 0x08, 0xe2, 0x40, 0xcd, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x6e, 0xfe, 0xf7, 0xff, 0xff, 0xb2, 0xe6, 0x92, 0x7f, 0xff, 0xf6, 0xdc, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x3e, 0xcc, 0x96, 0x11, 0x89, 0x52, 0xb3, 0x60, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x3b, 0xbb, 0xfd, 0xff, 0xff, 0xcc, 0x96, 0x66, 0x5f, 0xfd, 0xbb, 0x64, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x6a, 0x0b, 0xad, 0x31, 0x4c, 0x95, 0xbe, + 0xd0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xef, 0xbf, 0x6f, 0xff, 0xf7, 0x51, 0x59, 0xbf, + 0xff, 0xed, 0xb4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x01, 0x33, 0x5b, 0x23, + 0x50, 0x95, 0xdb, 0xd0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0xfe, 0xef, 0xfb, 0xff, 0xf9, + 0x6d, 0x94, 0xbf, 0xff, 0x76, 0x98, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x11, + 0x2c, 0xd6, 0x22, 0x12, 0x8a, 0x7f, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x9b, 0xe9, + 0x9e, 0xff, 0xff, 0x2a, 0x66, 0xff, 0xff, 0xde, 0xea, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x04, 0x88, 0xcd, 0x6c, 0x66, 0xab, 0x2b, 0xed, 0xe8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x03, 0x7f, 0x7e, 0xe7, 0xbf, 0xff, 0xcb, 0x2a, 0x3f, 0xfe, 0xf3, 0x6c, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x06, 0x26, 0xb3, 0xda, 0x44, 0xa9, 0x57, 0xbb, 0xe8, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x01, 0xe7, 0xd6, 0xb9, 0xef, 0xff, 0xf4, 0xc9, 0xbf, 0xff, 0xbd, 0x94, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x01, 0x6d, 0x96, 0x45, 0x25, 0x56, 0xe7, 0xe8, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xbc, 0xdb, 0x2c, 0xdb, 0xff, 0xfd, 0x9d, 0xbf, 0xfd, + 0xed, 0xb6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x91, 0xcf, 0x66, 0x4d, 0x56, + 0x6f, 0xff, 0xe8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xdf, 0xbb, 0x62, 0x5e, 0xff, 0xfe, + 0x64, 0xff, 0xff, 0xf6, 0xe8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xc5, 0x96, + 0x7e, 0x4a, 0x5a, 0x2d, 0xdf, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x53, 0xb4, 0xd0, + 0x26, 0xdf, 0xff, 0xd3, 0x7f, 0xff, 0x5b, 0x2e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xe0, 0x75, 0xbe, 0x4a, 0xc9, 0xdf, 0xeb, 0xf4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x3c, 0xef, 0x30, 0x03, 0x77, 0xff, 0xfb, 0xff, 0xfd, 0xfb, 0xd2, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xf0, 0x7b, 0x66, 0x6d, 0x5d, 0xdb, 0xfd, 0xec, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x0f, 0x6b, 0x60, 0x01, 0x6d, 0xff, 0xff, 0xff, 0xff, 0xb6, 0x5a, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7c, 0x0e, 0xef, 0x4d, 0x66, 0xbf, 0xdf, 0xf8, 0x00, + 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x74, 0xc0, 0x00, 0x3b, 0x7f, 0xff, 0xff, 0xff, 0xed, + 0xec, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x80, 0x93, 0x55, 0xb9, 0xbf, + 0xdf, 0xe8, 0x0f, 0x80, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x03, 0x9d, 0x90, 0x00, 0x0e, 0xdf, 0xff, + 0xff, 0xfb, 0x6d, 0xa4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xf0, 0x07, + 0x65, 0x9d, 0x7f, 0x7f, 0xe8, 0x30, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0xeb, 0x60, 0x00, + 0x03, 0xb7, 0xff, 0xff, 0xff, 0xf6, 0xb6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x07, 0xff, 0xff, 0x6d, 0xcb, 0xdf, 0x7f, 0xf8, 0xc0, 0x00, 0x00, 0x87, 0x36, 0x00, 0x00, 0x00, + 0x6a, 0x60, 0x00, 0x01, 0x7d, 0xff, 0xff, 0xfd, 0xbb, 0x98, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x01, 0xff, 0xff, 0x2d, 0x7b, 0xff, 0xff, 0xeb, 0x00, 0x02, 0x00, 0x4d, 0xff, + 0xf9, 0x00, 0x00, 0x36, 0x90, 0x00, 0x00, 0x4d, 0xbf, 0xff, 0xff, 0xcd, 0x6e, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xff, 0xbb, 0x56, 0xff, 0xef, 0xe2, 0x00, 0x02, + 0x09, 0x23, 0xcd, 0xff, 0xe0, 0x00, 0x15, 0xa0, 0x00, 0x00, 0x16, 0xff, 0xff, 0xf6, 0xfd, 0xe6, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xe1, 0xbe, 0xd7, 0x7f, 0x7f, + 0xc4, 0x00, 0x02, 0x05, 0x22, 0xff, 0x6e, 0xfc, 0x00, 0x0d, 0x60, 0x00, 0x00, 0x03, 0x6d, 0xff, + 0xff, 0xb6, 0x98, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xde, + 0xbd, 0xff, 0xf7, 0xc8, 0x00, 0x06, 0x11, 0x19, 0xb7, 0xfb, 0xdf, 0xc0, 0x02, 0x40, 0x00, 0x00, + 0x01, 0x6f, 0xff, 0xed, 0xf6, 0xf7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x01, 0xdb, 0xaf, 0xff, 0xff, 0xc8, 0x00, 0x1e, 0x12, 0xc9, 0xfd, 0xbf, 0xf7, 0xf8, 0x01, + 0x90, 0x00, 0x00, 0x00, 0x36, 0xff, 0xbf, 0x6d, 0x94, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xef, 0xfb, 0xff, 0xdf, 0x90, 0x00, 0xb8, 0x4c, 0xb4, 0xdf, 0xee, + 0xfd, 0xbc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x17, 0xb6, 0xfb, 0xed, 0xdb, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6f, 0x5f, 0xff, 0xff, 0x10, 0x02, 0xe0, 0xc5, + 0x34, 0x76, 0xfb, 0xbf, 0xef, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x7f, 0xee, 0xde, 0x6a, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xfc, 0x00, 0x00, 0x77, 0xff, 0xff, 0x7e, 0x10, + 0x0b, 0x80, 0x62, 0x6a, 0x3f, 0xbf, 0xee, 0x7b, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0xcd, 0xbf, + 0xdb, 0xac, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xf0, 0x03, 0x80, 0x00, 0x3b, 0xff, + 0xff, 0xfe, 0xa0, 0x2e, 0x05, 0x1b, 0x96, 0x89, 0xed, 0xfb, 0xde, 0xf0, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x3b, 0xf7, 0x7b, 0x67, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x70, + 0x00, 0x3f, 0xff, 0xff, 0xf9, 0xa0, 0xf8, 0x0c, 0xcc, 0xb6, 0x43, 0x7f, 0x6f, 0xed, 0xbc, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x1a, 0xdd, 0xed, 0x98, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, + 0x0f, 0x50, 0x08, 0x00, 0x0e, 0x7f, 0xff, 0xf7, 0x93, 0xc0, 0x03, 0x64, 0xcc, 0x40, 0xdb, 0x7d, + 0x3d, 0xee, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0xdd, 0xb6, 0xec, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x30, 0x7a, 0x5e, 0x06, 0x00, 0x07, 0xbf, 0xff, 0xcf, 0x9e, 0x00, 0x91, 0xb3, 0x3a, + 0x40, 0x37, 0xd7, 0xf7, 0x73, 0x80, 0x00, 0x00, 0x00, 0x00, 0x01, 0xb7, 0xbb, 0x36, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x61, 0x82, 0x43, 0x81, 0x00, 0x03, 0xe7, 0xfe, 0x3e, 0x10, 0x02, + 0x10, 0x5d, 0xd6, 0xc0, 0x0c, 0xdc, 0xdb, 0x9f, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6c, 0xed, + 0x90, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc3, 0x20, 0x52, 0xc1, 0x00, 0x01, 0xf8, 0x01, + 0xfc, 0x00, 0x10, 0x4c, 0x4a, 0x6c, 0x80, 0x03, 0x77, 0xda, 0xf9, 0x60, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x5b, 0xb6, 0xec, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x84, 0x2a, 0x12, 0xb0, 0x00, + 0x00, 0x7f, 0xff, 0xf0, 0x08, 0x85, 0x23, 0xab, 0xbc, 0x80, 0x00, 0xdb, 0x6f, 0x6f, 0x58, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x16, 0xda, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x0c, 0x2a, + 0x52, 0x80, 0xfe, 0x00, 0x1f, 0xff, 0xc0, 0x24, 0x24, 0x98, 0xb5, 0xb1, 0x80, 0x00, 0x0d, 0xb5, + 0xb6, 0xd0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x6d, 0x98, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x02, 0x11, 0x22, 0x42, 0x8f, 0x83, 0xf0, 0x07, 0xff, 0x00, 0x24, 0x48, 0xc6, 0x4d, 0xf3, 0x80, + 0x00, 0x04, 0xdd, 0xb4, 0xe8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x65, 0xa0, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x04, 0x24, 0x08, 0x52, 0x38, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x12, 0x4a, 0x33, + 0xdb, 0x73, 0x00, 0x00, 0x01, 0x6e, 0xdb, 0x28, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1a, 0x60, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x24, 0x22, 0x50, 0x60, 0x00, 0x03, 0x00, 0x00, 0x00, + 0x19, 0x23, 0x29, 0x37, 0xc7, 0xf8, 0x00, 0x00, 0x0a, 0xcb, 0xa0, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x41, 0x2a, 0x11, 0x80, 0x00, 0x00, + 0xc0, 0x00, 0x00, 0x0c, 0x91, 0x8e, 0xef, 0x8f, 0xff, 0x80, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x44, 0x28, 0xc2, + 0x00, 0xff, 0x80, 0x60, 0x00, 0x00, 0x0e, 0x1c, 0xd6, 0xde, 0x3f, 0xff, 0xf0, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, + 0x84, 0x8a, 0x4c, 0x07, 0xff, 0xf0, 0x10, 0x00, 0x00, 0x1f, 0x82, 0x75, 0x38, 0x7f, 0xff, 0xfc, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x08, 0x84, 0x2a, 0x48, 0x1c, 0x1e, 0xfc, 0x10, 0x00, 0x00, 0x37, 0xe1, 0x19, 0xc1, + 0xff, 0xfe, 0xdf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x85, 0x2a, 0x10, 0x30, 0x03, 0xbf, 0x08, 0x00, 0x00, 0x37, + 0xfc, 0x00, 0x1f, 0xff, 0xfb, 0xf7, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x85, 0x2a, 0x20, 0x67, 0xc1, 0xef, 0x84, + 0x00, 0x00, 0x3f, 0xff, 0xe6, 0xff, 0xff, 0xff, 0x79, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x85, 0x28, 0x20, 0xff, + 0xe1, 0xed, 0xc6, 0x00, 0x00, 0x2d, 0xff, 0xff, 0xff, 0xff, 0xff, 0xde, 0x60, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x05, + 0x2b, 0x41, 0xbb, 0x61, 0xbe, 0xb2, 0x00, 0x00, 0x37, 0xff, 0xff, 0xff, 0xff, 0xed, 0xf7, 0xb0, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x08, 0x44, 0xca, 0x43, 0xad, 0xe1, 0xf6, 0xb2, 0x40, 0x00, 0x1e, 0xff, 0xff, 0xff, 0xff, + 0xbf, 0x6d, 0xb8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x08, 0x45, 0x38, 0x82, 0xed, 0xa1, 0xde, 0xdf, 0x40, 0x00, 0x0b, 0xb7, + 0xff, 0xff, 0xfe, 0xfb, 0xdb, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0x65, 0x28, 0x87, 0x77, 0x83, 0x7b, 0x7d, 0x00, + 0x00, 0x03, 0x7d, 0xbf, 0xff, 0xff, 0xee, 0xf6, 0xc8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14, 0x25, 0xe8, 0x85, 0xdd, 0x87, + 0xed, 0xff, 0x20, 0x00, 0x00, 0xdf, 0xff, 0xff, 0xdb, 0xff, 0x3d, 0xb0, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x12, 0x14, 0x28, + 0x87, 0xbe, 0x0f, 0xbd, 0x7f, 0xa0, 0x00, 0x00, 0x32, 0x6f, 0xfb, 0x7e, 0xd9, 0xed, 0x30, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x19, 0x15, 0xac, 0x86, 0xe8, 0x3e, 0xfb, 0x7f, 0xa0, 0x00, 0x00, 0x0f, 0xbb, 0x6f, 0xf7, 0xef, + 0xb7, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x0d, 0x0d, 0xa9, 0x0f, 0xf0, 0x7e, 0x6f, 0x7f, 0x20, 0x00, 0x00, 0x00, 0xb7, + 0xfe, 0xdd, 0xbd, 0xb4, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x86, 0x68, 0x87, 0x41, 0xfe, 0x1f, 0xff, 0xa0, 0x00, + 0x00, 0x00, 0x06, 0xdb, 0xfe, 0xf6, 0xdb, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x41, 0xbc, 0x87, 0xc3, 0xf8, 0xf1, + 0xff, 0xb0, 0x00, 0x00, 0x00, 0x00, 0xff, 0x67, 0x9b, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x20, 0xec, 0x87, + 0x0f, 0xfd, 0xb4, 0xff, 0xa0, 0x00, 0x00, 0x00, 0x00, 0x0d, 0xb9, 0xed, 0x80, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, + 0x92, 0x2e, 0x86, 0x1f, 0xfc, 0xf5, 0x87, 0xa0, 0x00, 0x00, 0x00, 0x00, 0x00, 0xde, 0x6c, 0x80, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x01, 0xe0, 0xa6, 0x8c, 0x3f, 0xdb, 0x65, 0xb7, 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, 0xf1, 0x36, 0x40, 0x3f, 0x38, 0xcf, 0x77, 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, 0x7c, 0x17, 0x5e, 0x00, 0x6f, 0xfd, 0x77, + 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, 0x3f, 0x83, 0x23, 0xc0, + 0xfd, 0xb7, 0x8f, 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, 0x1f, + 0xfb, 0xa1, 0xfe, 0xff, 0x6c, 0xfe, 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, 0x07, 0xff, 0x90, 0xff, 0xff, 0xff, 0xfe, 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, 0xff, 0xc8, 0x7f, 0xff, 0xeb, 0xbc, 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, 0x3f, 0xe8, 0x1f, 0xff, 0xef, 0xfd, 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, 0x0f, 0xe4, 0x8f, 0xff, + 0xfd, 0xf9, 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, 0x01, + 0xf2, 0x23, 0xff, 0xf7, 0x73, 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, 0x39, 0x00, 0x3f, 0xdd, 0xe7, 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, 0x1e, 0x48, 0x85, 0xff, 0xcf, 0xff, 0xfb, 0x78, 0x00, 0x00, + 0x00, 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, 0x22, 0x5f, 0xff, 0x9f, 0xff, 0xef, + 0xdc, 0x00, 0x00, 0x00, 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, 0xca, 0x5b, 0xfe, + 0x7f, 0xff, 0xbd, 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, 0x03, + 0xf1, 0xb7, 0xe0, 0xff, 0xfe, 0xf7, 0x3d, 0x00, 0x00, 0x00, 0x00, 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, 0x04, 0x07, 0xff, 0xff, 0xde, 0xdb, 0x00, 0x00, 0x00, 0x00, 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, 0xe0, 0xff, 0xff, 0xfb, 0x7b, 0xda, 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, 0x1f, 0xff, 0xff, 0xff, 0xef, 0xed, 0x66, + 0x00, 0x00, 0x00, 0x00, 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, + 0xbd, 0xb7, 0x74, 0x00, 0x00, 0x00, 0x00, 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, 0xf6, 0xdb, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0xef, 0x6e, 0xd9, 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, 0x1f, 0xfd, 0xbb, 0xbb, 0x66, 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, 0x37, 0x76, 0xd9, 0xb6, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0x5d, 0x66, + 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, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + }; + +// 'logosATM_hand', 280x197px +const unsigned char epd_bitmap_makerlablogosATM_hand [] PROGMEM = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x8a, 0xaa, + 0xaa, 0xaa, 0xaa, 0xaa, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, + 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 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, 0x0a, 0xaa, + 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, + 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, 0x2a, 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, 0xaa, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, + 0xa8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 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, 0x2a, 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, 0xaa, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 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, 0xa8, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 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, 0x2a, 0x80, 0x00, 0x00, 0x00, 0x02, 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, 0xaa, 0x00, + 0x00, 0x00, 0x00, 0x02, 0xa0, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0xa8, 0x00, 0x00, 0x00, 0x00, 0x02, 0xa0, 0x00, 0x2a, 0x80, 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, 0x40, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a, 0xa0, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xa0, 0x00, 0x2a, 0x0a, 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, 0x2a, + 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa8, 0x00, 0xa8, 0xaa, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x82, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xaa, 0x00, 0x00, 0x00, 0x00, 0xa0, 0x00, 0xa8, 0x00, 0xaa, 0xa8, + 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, 0x00, 0x00, 0x00, 0x00, + 0x10, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xa8, 0x00, 0x00, 0x00, 0x00, + 0xa8, 0x00, 0xa8, 0x00, 0xaa, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x0a, 0xa0, 0x00, 0x00, 0x00, 0x00, 0x28, 0x00, 0x28, 0x00, 0xaa, 0x80, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x82, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2a, 0x80, 0x00, 0x00, 0x00, 0x00, 0x28, 0x00, 0x2a, 0x00, + 0xaa, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x82, 0x08, + 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, 0x04, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xaa, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x2a, 0x02, 0x2a, 0x02, 0xa8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x20, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x03, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xa8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a, 0x88, 0x8a, 0x8a, 0xa0, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa0, 0x08, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xa0, 0x00, 0x00, 0x00, 0x00, 0x20, 0x0a, 0xa2, + 0x2a, 0xaa, 0xa0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x02, 0xa8, 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, 0x0a, 0x80, 0x00, + 0x00, 0x00, 0x00, 0x08, 0x8a, 0xa8, 0x82, 0xaa, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x88, 0x20, 0xaa, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x2a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xaa, 0xaa, 0x82, 0xaa, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x20, 0x08, 0x20, 0x88, 0xaa, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x41, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, + 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa8, 0x00, 0x00, 0x00, 0x00, 0x08, 0x20, + 0x8a, 0xaa, 0xaa, 0xa8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, + 0x20, 0x88, 0x0a, 0xa8, 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, 0x41, 0x04, 0x00, 0x04, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xa0, + 0x00, 0x00, 0x00, 0x00, 0x22, 0x08, 0xaa, 0xaa, 0xaa, 0xa0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x20, 0x22, 0xaa, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x61, 0x00, 0x21, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x0a, 0xa0, 0x00, 0x00, 0x00, 0x00, 0x08, 0xa2, 0xaa, 0xaa, 0xaa, 0x80, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x82, 0x08, 0x00, 0x88, 0x28, 0x8a, 0xaa, + 0xa8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2a, 0x80, 0x00, 0x00, 0x00, 0x02, + 0x00, 0xaa, 0xaa, 0xaa, 0xaa, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, + 0x02, 0x08, 0x20, 0x82, 0x2a, 0xaa, 0xaa, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xaa, 0x00, 0x00, 0x00, 0x00, 0x88, 0x22, 0xaa, 0xaa, 0xaa, 0xa8, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x88, 0x28, 0xaa, 0xaa, 0xa8, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x10, 0x41, 0x04, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x88, 0x2a, 0xaa, 0xaa, + 0xa0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x20, 0x80, 0x08, 0x20, 0x02, 0xaa, + 0xaa, 0xaa, 0xa8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xa8, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x22, 0xaa, 0xaa, 0xaa, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x82, 0x08, 0x82, 0x08, 0x22, 0x8a, 0xaa, 0xaa, 0xa8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x04, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x02, 0xa0, 0x00, 0x00, 0x00, 0x00, 0x8a, 0xa2, 0xaa, 0xaa, 0xaa, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x08, 0x22, 0x88, 0xaa, 0xaa, 0xaa, 0xa8, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x42, 0x18, 0x41, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xa0, 0x00, 0x00, 0x00, 0x00, 0x22, 0x8a, 0xaa, + 0xaa, 0xa8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x08, 0x00, 0x08, 0x20, 0x82, 0x08, 0x02, + 0x22, 0xaa, 0xaa, 0xaa, 0xa8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0x20, 0x88, 0xaa, 0xaa, 0xaa, 0xa0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, + 0x00, 0x00, 0x82, 0x28, 0xa2, 0x8a, 0xaa, 0xaa, 0xaa, 0xaa, 0xa0, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x41, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x02, 0x80, 0x00, 0x00, 0x08, 0x8a, 0x2a, 0xaa, 0xaa, 0xaa, 0x80, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x02, 0x08, 0x82, 0x88, 0x00, 0x00, 0x82, 0x08, 0x82, 0xaa, 0xaa, 0xaa, 0xaa, + 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, 0x0c, 0x10, 0x84, 0x08, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xa0, 0x00, 0x00, 0x2a, 0xaa, 0xaa, + 0xaa, 0xaa, 0xaa, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x22, 0x08, 0x22, 0x08, 0x20, 0x08, + 0x02, 0x2a, 0xaa, 0xaa, 0xaa, 0xaa, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x40, 0x00, 0x00, + 0x00, 0x00, 0x10, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, + 0xa0, 0x00, 0x00, 0x0a, 0xaa, 0xaa, 0xaa, 0xaa, 0xa8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, + 0x00, 0x82, 0x08, 0x20, 0x80, 0x20, 0x82, 0xaa, 0xaa, 0xaa, 0xaa, 0xa8, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x08, 0xc3, 0x0c, 0x40, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xa0, 0x00, 0x00, 0x00, 0x22, 0xaa, 0xaa, 0xaa, 0xa0, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x08, 0x82, 0x08, 0x02, 0x00, 0x02, 0x00, 0x82, 0x2a, 0xaa, 0xaa, 0xaa, + 0xaa, 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, 0x10, 0x61, 0x04, 0x01, 0x80, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xa8, 0x00, 0x00, 0x00, + 0x88, 0x2a, 0xaa, 0xaa, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x08, 0x82, 0x28, 0xe2, 0x8a, + 0x28, 0x0a, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x10, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xa8, 0x00, 0x00, 0x00, 0x00, 0xaa, 0xaa, 0xaa, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x82, 0x28, 0xaa, 0x2a, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xa8, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa8, 0x00, 0x00, 0x00, 0x00, 0x0a, 0xaa, 0xa8, + 0x00, 0xa0, 0x00, 0x00, 0x00, 0x00, 0x08, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, + 0xaa, 0xaa, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa8, 0x00, + 0x00, 0x00, 0x00, 0x2a, 0xaa, 0xa8, 0x00, 0xa8, 0x00, 0x00, 0x00, 0x00, 0x82, 0x2a, 0xaa, 0xaa, + 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 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, 0xaa, 0x00, 0x00, 0x00, 0x08, 0x8a, 0xaa, 0xa0, 0x00, 0xaa, 0x80, 0x00, + 0x00, 0x00, 0x20, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0x80, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2a, 0x00, 0x00, 0x00, 0x02, 0x2a, + 0xaa, 0x80, 0x00, 0x0a, 0xa0, 0x00, 0x00, 0x00, 0x02, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, + 0xaa, 0xaa, 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, 0xc0, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x2a, 0x80, 0x00, 0x00, 0x08, 0x8a, 0xaa, 0x80, 0x00, 0x02, 0xa8, 0x00, 0x82, 0x08, 0x8a, 0xaa, + 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xa8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a, 0x80, 0x00, 0x00, 0x00, 0x2a, 0xaa, 0x00, 0x00, 0x00, + 0xaa, 0x00, 0x00, 0x8a, 0x2a, 0xaa, 0xaa, 0xa0, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a, 0x80, 0x00, 0x00, + 0x82, 0x8a, 0xa8, 0x00, 0x00, 0x00, 0x08, 0x00, 0x08, 0x22, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, + 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, 0x44, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x0a, 0x80, 0x00, 0x00, 0x00, 0xaa, 0xa0, 0x00, 0x00, 0x00, 0x00, 0x20, 0x80, 0x8a, + 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 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, 0x0a, 0xa0, 0x00, 0x00, 0x0a, 0xaa, 0xa0, 0x08, + 0x00, 0x00, 0x00, 0x82, 0x20, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0x80, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 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, 0x02, 0x8a, 0x80, 0xaa, 0xa0, 0x00, 0x00, 0x00, 0x8a, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, + 0xaa, 0xaa, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 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, 0xaa, 0x80, 0xaa, 0xa8, 0x00, 0x00, 0x08, + 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xa8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 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, 0x02, 0xa8, 0x00, 0x00, 0x8f, 0xea, + 0x02, 0xa0, 0xaa, 0x00, 0x00, 0x82, 0x2a, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xa0, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x1f, 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, 0xa8, 0x00, 0x00, 0xf8, 0x88, 0x0a, 0x80, 0x0a, 0x80, 0x00, 0x20, 0xaa, 0xaa, 0xaa, 0xaa, + 0xaa, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 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, 0xa8, 0x00, 0x03, 0xa0, 0x08, 0x2a, 0x00, 0x02, 0xa0, + 0x00, 0x08, 0xaa, 0xaa, 0xaa, 0xa0, 0x00, 0x28, 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, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa8, 0x00, 0x0e, + 0x88, 0x88, 0xa8, 0x00, 0x00, 0xa8, 0x00, 0x0a, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0x2a, 0x00, 0x38, 0x00, 0x28, 0xa8, 0x00, 0x00, 0xa8, 0x08, 0x2a, 0xaa, 0xaa, + 0xaa, 0xaa, 0xaa, 0xaa, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 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, 0x2a, 0x00, 0xe8, 0x88, 0xe8, 0xa8, 0x00, + 0x00, 0xa8, 0x02, 0x8a, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xc0, 0x01, + 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, 0x0a, + 0x83, 0x80, 0x03, 0xe8, 0x2a, 0x00, 0x02, 0xa8, 0x20, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xa8, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x07, 0x00, 0x0f, 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, 0x0a, 0x8e, 0x88, 0xaf, 0xe8, 0x2a, 0x80, 0x00, 0xa8, 0x8a, 0xaa, + 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xa0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 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, 0x8a, 0x00, 0xf8, 0x2a, + 0x0a, 0xa0, 0x0a, 0xa0, 0x2a, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, + 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, 0x0a, 0xb8, 0x88, 0xe8, 0x2a, 0x0a, 0xa8, 0xaa, 0x80, 0xa8, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, + 0xa8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x01, 0xc1, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0x02, 0xa0, 0x03, 0x8b, 0xfa, 0x80, 0xaa, 0xaa, 0x22, + 0xa8, 0x0a, 0xaa, 0xaa, 0xaa, 0xaa, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x07, 0x9f, 0xf0, 0x00, + 0x00, 0x00, 0x00, 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, 0x02, 0xe8, 0x8e, + 0xbf, 0xaa, 0xa0, 0x2a, 0xa8, 0x0a, 0xa8, 0x8a, 0xaa, 0xaa, 0xaa, 0x80, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xc0, 0x0f, 0x3f, 0x40, 0x00, 0x00, 0x00, 0x00, 0x58, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xe0, 0x0e, 0x3f, 0xe2, 0xaa, 0x00, 0x00, 0xaa, 0xb8, 0x0e, 0xaa, 0xaa, + 0xa0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xc0, 0x1c, 0x7f, 0xf0, 0x00, 0x00, 0x00, 0x01, 0xfc, + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x88, 0xbc, 0x3f, 0xf8, 0xaa, 0x88, + 0x0a, 0xaa, 0xf8, 0x8e, 0xaa, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xc0, 0x3c, 0x00, + 0xf0, 0xf0, 0x00, 0x00, 0x07, 0xfc, 0x07, 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, + 0x80, 0x38, 0x00, 0xf8, 0xfa, 0xaa, 0xaa, 0xaf, 0xbe, 0x03, 0xa0, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x01, 0x80, 0x78, 0x00, 0xf0, 0xf0, 0x00, 0x00, 0xfd, 0x9e, 0x03, 0x80, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x88, 0xf8, 0x00, 0xe0, 0xf8, 0xaa, 0xaa, 0xff, 0x8e, 0x8b, + 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x80, 0x70, 0x01, 0xe1, 0xf0, 0x00, 0x1d, + 0xdd, 0x9e, 0x01, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x80, 0xf0, 0x01, 0xe0, + 0xe0, 0x02, 0xbf, 0xef, 0x8e, 0x03, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, + 0x70, 0x01, 0xe1, 0xf0, 0x00, 0x4d, 0xdd, 0x8e, 0x01, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x03, 0x88, 0xe0, 0x03, 0xe3, 0xe0, 0x00, 0x0c, 0xe8, 0x8e, 0x8b, 0x80, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x03, 0x80, 0xe0, 0x01, 0xc3, 0xc0, 0x00, 0x0c, 0xdc, 0x0e, 0x01, 0xc0, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x80, 0xe0, 0x03, 0xe3, 0xe0, 0x00, 0x02, 0x88, + 0x0e, 0x03, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0xe0, 0x03, 0xc7, 0xc0, + 0x01, 0x3f, 0x01, 0x0e, 0x01, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x88, 0xe0, + 0x03, 0x87, 0x80, 0x2f, 0xbf, 0x8f, 0x8e, 0x8b, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x03, 0x80, 0xe0, 0x07, 0x87, 0x80, 0x3f, 0x77, 0xdf, 0xce, 0x01, 0xc0, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x03, 0x80, 0xe0, 0x07, 0x8f, 0x80, 0x3a, 0x23, 0xbb, 0xee, 0x03, 0x80, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x70, 0x07, 0x0f, 0x00, 0x70, 0x73, 0xf9, 0xde, + 0x01, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x88, 0xf8, 0x0f, 0x8f, 0x80, 0x3e, + 0x3f, 0xb8, 0xee, 0x8b, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x80, 0x70, 0x0f, + 0x1f, 0x00, 0x7c, 0x7f, 0x30, 0xdc, 0x01, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, + 0x80, 0x38, 0x0e, 0x1e, 0x00, 0xe0, 0xee, 0xb9, 0xf8, 0x03, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x01, 0x80, 0x30, 0x1e, 0x1e, 0x01, 0xf0, 0xe7, 0xfb, 0xfc, 0x03, 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, 0x88, 0xb8, 0x3e, 0x3e, 0x0b, 0xee, 0xef, 0xff, 0xb8, 0x8b, + 0x80, 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, 0x1c, 0x7c, 0x3f, 0x7d, 0xfc, 0xff, + 0xdf, 0x78, 0x07, 0x00, 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, 0x0a, 0xfc, 0x3f, + 0xf8, 0xa8, 0xef, 0xea, 0x60, 0x03, 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, 0xc0, + 0x1f, 0xf8, 0x1f, 0xfc, 0x00, 0xdf, 0xe0, 0xe0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xe8, 0x8f, 0xe8, 0x0e, 0xf8, 0x00, 0xcf, 0xe0, 0xe8, 0x8e, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x07, 0xcf, 0xff, 0xf8, 0x01, 0xdf, 0xe1, 0xc0, 0x0e, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x03, 0xff, 0xff, 0xf8, 0x00, 0xce, 0xe3, + 0x80, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x03, 0xff, 0xff, 0xf0, + 0x01, 0xdf, 0xe7, 0x80, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x88, + 0xfe, 0xee, 0xe8, 0x00, 0xcf, 0xee, 0x88, 0xac, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x38, 0x00, 0xf8, 0x00, 0x00, 0x01, 0xdf, 0xfe, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x38, 0x00, 0x00, 0x00, 0xce, 0xfe, 0x00, 0x38, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x3c, 0x00, 0x00, 0x01, 0xdf, 0xfc, 0x00, + 0x78, 0x00, 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, 0x88, 0x8e, 0x00, 0x00, 0x00, + 0xcf, 0xe8, 0x88, 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, 0x0f, 0x00, 0x0f, + 0x80, 0x00, 0x01, 0xcf, 0xe0, 0x01, 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, + 0x0b, 0x80, 0x03, 0xe0, 0x00, 0x00, 0xef, 0x80, 0x03, 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, 0x07, 0xc0, 0x01, 0xf8, 0x00, 0x00, 0xff, 0x00, 0x03, 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, 0x03, 0xe8, 0x88, 0xbe, 0x88, 0x0a, 0xf8, 0x88, 0x8f, 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, 0x01, 0xf0, 0x00, 0x0f, 0xff, 0xff, 0xe0, + 0x00, 0x0f, 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, 0xf8, 0x00, 0x02, + 0xff, 0xff, 0x80, 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, + 0x7c, 0x00, 0x00, 0x1f, 0xf0, 0x00, 0x00, 0x3f, 0x00, 0x00, 0x00, 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, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 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, 0x1f, 0x80, 0x00, 0x00, 0x00, 0x00, 0x01, 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, 0x0f, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x03, + 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, 0x07, 0xf0, 0x00, 0x00, + 0x00, 0x00, 0x1f, 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, + 0xfe, 0x88, 0x88, 0x88, 0x88, 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, 0xff, 0xc0, 0x00, 0x00, 0x05, 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, 0x3f, 0xfa, 0x00, 0x00, 0x2f, 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, 0x0f, 0xff, 0xf5, 0x55, 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, 0x03, 0xff, 0xff, 0xff, + 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, + 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, 0x2f, 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, 0x07, 0xff, 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, 0xae, 0xee, 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, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 +}; + +// 'logosATM_ML', 250x250px +const unsigned char epd_bitmap_makerlablogosATM_ML [] PROGMEM = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, + 0x00, 0x00, 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, 0x01, 0xf0, 0x00, 0x00, + 0x00, 0x03, 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, 0x03, 0xfc, 0x00, 0x00, + 0x00, 0x0c, 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, 0x0f, 0xff, 0x00, 0x00, + 0x00, 0x13, 0x98, 0x00, 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, 0xc0, 0x00, + 0x00, 0x72, 0x4e, 0x00, 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, 0xbf, 0xe0, 0x00, + 0x01, 0x8d, 0x63, 0x80, 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, 0xfb, 0xf8, 0x00, + 0x06, 0x6d, 0x38, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xfb, 0xff, 0xfe, 0x00, + 0x09, 0x92, 0xcd, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xef, 0xbf, 0x7f, 0x00, + 0x39, 0x9a, 0x93, 0x6c, 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, 0xfb, 0xff, 0xc0, + 0x46, 0x65, 0xb6, 0x4a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xbe, 0xff, 0xef, 0x80, + 0x76, 0x65, 0x24, 0xd2, 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, 0xef, 0xff, 0x80, + 0x11, 0x9a, 0x6b, 0x34, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xfb, 0xfe, 0xfd, 0x80, + 0x6d, 0x33, 0x99, 0x99, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xef, 0xff, 0xef, 0x80, + 0x4d, 0x64, 0xc6, 0x62, 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, 0x7b, 0xff, 0x80, + 0x52, 0xcd, 0x34, 0xc8, 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, 0xbf, 0x80, + 0x5a, 0x33, 0x6d, 0x99, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xef, 0xef, 0xfb, 0x80, + 0x4b, 0x9a, 0x49, 0x24, 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, 0xfe, 0xff, 0x80, + 0x64, 0xc9, 0x96, 0x64, 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, 0xef, 0x80, + 0x35, 0x36, 0xd5, 0x92, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xef, 0xdf, 0xfe, 0xc0, + 0x4d, 0x66, 0x64, 0x92, 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, 0xfd, 0xff, 0x80, + 0x59, 0x99, 0x3a, 0x88, 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, 0xbd, 0x80, + 0x52, 0x93, 0x8b, 0x24, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xef, 0xf7, 0xff, 0x80, + 0x4e, 0x6c, 0xcc, 0x44, 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, 0xff, 0x7b, 0x80, + 0x69, 0xa4, 0x72, 0x53, 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, 0xdf, 0xff, 0x80, + 0x26, 0x9b, 0x26, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xef, 0xfd, 0xef, 0x80, + 0x58, 0xd9, 0xac, 0xcc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1d, 0xbb, 0x7f, 0xfe, 0xc0, + 0x53, 0x26, 0x61, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x99, 0x42, 0x12, 0x00, + 0x1d, 0x33, 0x19, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x67, 0x7b, 0xd8, 0x00, + 0x04, 0xd9, 0xd2, 0x48, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xec, 0x9a, 0x60, 0x00, + 0x03, 0x4c, 0x52, 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, 0x36, 0xe7, 0x60, 0x00, + 0x00, 0x67, 0x24, 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, 0x13, 0x6d, 0x80, 0x00, + 0x00, 0x31, 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, 0x0d, 0x32, 0x00, 0x00, + 0x00, 0x1a, 0x48, 0x00, 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, 0xd8, 0x00, 0x00, + 0x00, 0x06, 0xc0, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x00, 0x40, 0x00, 0x00, + 0x00, 0x01, 0x00, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x19, 0x40, 0x00, 0x20, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xce, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6d, 0x70, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x03, 0x33, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa6, 0x98, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x0d, 0xb3, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x98, 0xce, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x34, 0xcc, 0xd0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0xdb, 0x66, 0xc0, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x56, 0x5a, 0x9c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x36, 0x66, 0x73, 0x20, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x01, 0xd3, 0x66, 0xa6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x49, 0x99, 0x99, 0xb0, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x06, 0x59, 0x99, 0xb3, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xdb, 0x66, 0x9a, 0xdc, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x06, 0xcc, 0xdb, 0x59, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x32, 0x6c, 0xe6, 0x48, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x01, 0xa6, 0x64, 0x4d, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0d, 0x99, 0x2d, 0x68, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x08, 0x33, 0x27, 0xb6, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x85, 0x53, 0x69, 0x9c, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x02, 0x59, 0xb8, 0xb2, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x21, 0x66, 0xce, 0xb0, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x0c, 0xce, 0xcb, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x39, 0x92, 0x64, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x09, 0x26, 0x65, 0x39, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x92, 0x1a, 0x76, 0xcc, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x01, 0x99, 0xa6, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x86, 0x99, 0x98, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x04, 0x90, 0x6e, 0xac, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x64, 0x21, 0xab, 0x30, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x01, 0x04, 0x22, 0xcb, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x08, 0xe6, 0x6c, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x08, 0x41, 0x0c, 0xd9, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x90, 0x42, 0x19, 0x98, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x02, 0x18, 0x43, 0x35, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x10, 0x1a, 0xc4, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x82, 0x10, 0xa6, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x48, 0x84, 0x86, 0x74, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x08, 0x20, 0x84, 0x6b, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x20, 0x81, 0x98, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x03, 0x08, 0x21, 0x19, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x12, 0x08, 0x20, 0xa8, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x43, 0x08, 0x04, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc3, 0x08, 0x2c, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x08, 0x10, 0x42, 0x43, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0x10, 0x44, 0x04, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x02, 0x84, 0x10, 0x10, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x04, 0x11, 0x20, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x21, 0x04, 0x84, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x41, 0x01, 0x08, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x04, 0x48, 0x61, 0x21, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x12, 0x18, 0x64, 0x40, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x01, 0x02, 0x08, 0x08, 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, 0x20, 0x82, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x20, 0x92, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x0c, 0x21, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x04, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x01, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x43, 0x20, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x80, 0x00, 0xf0, 0x00, 0x00, + 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xd8, 0x00, 0x00, + 0x00, 0x05, 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, 0x0f, 0x4e, 0x00, 0x00, + 0x00, 0x1c, 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, 0x1f, 0x73, 0x80, 0x00, + 0x00, 0x63, 0x08, 0x00, 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, 0xdc, 0xc0, 0x00, + 0x01, 0x99, 0x93, 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, 0xfe, 0x97, 0x70, 0x00, + 0x02, 0x66, 0x44, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xf9, 0xb3, 0x3c, 0x00, + 0x0d, 0x99, 0x30, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xfe, 0x6c, 0xcf, 0x00, + 0x34, 0xcd, 0x0b, 0x28, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xf3, 0xcd, 0xd2, 0x80, + 0x46, 0x65, 0x48, 0x8a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xbc, 0xb7, 0x36, 0x80, + 0x73, 0x35, 0x24, 0x92, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, 0xe7, 0x32, 0xed, 0x80, + 0x19, 0x94, 0x92, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xf9, 0xda, 0x99, 0x00, + 0x66, 0x66, 0x49, 0x24, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xce, 0x6e, 0xd7, 0x00, + 0x4c, 0xcb, 0x24, 0x92, 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, 0xa5, 0x75, 0x80, + 0x59, 0x99, 0x24, 0x92, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3d, 0xbc, 0xbd, 0x99, 0x80, + 0x53, 0x35, 0x12, 0x48, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xa7, 0x66, 0xce, 0x00, + 0x4c, 0xc6, 0x49, 0x24, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x6d, 0x5a, 0x76, 0xc0, + 0x6c, 0xd9, 0x89, 0x24, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x59, 0xdb, 0xb3, 0x80, + 0x33, 0x2c, 0x32, 0x49, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, 0xd6, 0x65, 0x9a, 0x00, + 0x4b, 0x27, 0x04, 0x92, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x37, 0x36, 0x6d, 0x80, + 0x58, 0xd1, 0xa4, 0x92, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3d, 0xc9, 0xdb, 0xad, 0x80, + 0x56, 0xdc, 0x22, 0x48, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x19, 0x7b, 0x4c, 0xe6, 0x00, + 0x49, 0x27, 0x19, 0x24, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x4d, 0x76, 0x5b, 0x80, + 0x6d, 0x31, 0x84, 0x92, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x36, 0xe6, 0xd3, 0x99, 0x80, + 0x33, 0xcc, 0x64, 0x92, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x19, 0xba, 0x9d, 0xb6, 0x00, + 0x4a, 0x4e, 0x12, 0x48, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1b, 0x33, 0xb4, 0xe6, 0xc0, + 0x59, 0x33, 0x92, 0x49, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0d, 0xcd, 0x67, 0x3b, 0x00, + 0x27, 0x64, 0x49, 0x24, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0xdd, 0x5b, 0x4c, 0x00, + 0x0c, 0x99, 0x24, 0x90, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x66, 0xd9, 0xf0, 0x00, + 0x02, 0xcf, 0x24, 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, 0x6a, 0xad, 0x20, 0x00, + 0x01, 0x31, 0x12, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1b, 0xad, 0x80, 0x00, + 0x00, 0x66, 0x49, 0x00, 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, 0x72, 0x00, 0x00, + 0x00, 0x1a, 0x88, 0x00, 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, 0x58, 0x00, 0x00, + 0x00, 0x02, 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, 0xc0, 0x00, 0x00, + 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x1c, 0x7f, 0x03, 0xf8, 0x00, 0x00, 0x3f, 0xe0, 0x00, 0x07, 0x00, 0x38, 0x00, 0x01, 0xfe, + 0x00, 0x00, 0x71, 0xf8, 0x00, 0xf0, 0x00, 0x00, 0xff, 0x80, 0x00, 0x1e, 0x3f, 0xc0, 0x00, 0x00, + 0x00, 0x3d, 0xff, 0x8f, 0xfc, 0x00, 0x00, 0xff, 0xf8, 0x00, 0x07, 0x00, 0x78, 0x00, 0x07, 0xff, + 0x80, 0x00, 0x73, 0xf8, 0x00, 0x70, 0x00, 0x03, 0xff, 0xe0, 0x00, 0x1c, 0xff, 0xe0, 0x00, 0x00, + 0x00, 0x1d, 0xcf, 0xde, 0x7e, 0x00, 0x01, 0xf2, 0x7c, 0x00, 0x07, 0x80, 0xf0, 0x00, 0x0f, 0x87, + 0xc0, 0x00, 0x77, 0xc0, 0x00, 0xe0, 0x00, 0x07, 0xc9, 0xf0, 0x00, 0x0e, 0xe3, 0xf0, 0x00, 0x00, + 0x00, 0x1f, 0x01, 0xd8, 0x0f, 0x00, 0x01, 0xc0, 0x1c, 0x00, 0x07, 0x01, 0xe0, 0x00, 0x1e, 0x01, + 0xc0, 0x00, 0x7e, 0x00, 0x00, 0xf0, 0x00, 0x07, 0x00, 0x70, 0x00, 0x1f, 0x80, 0x78, 0x00, 0x00, + 0x00, 0x3e, 0x01, 0xf0, 0x0f, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x07, 0x03, 0xc0, 0x00, 0x1c, 0x00, + 0xe0, 0x00, 0x7c, 0x00, 0x00, 0xd0, 0x00, 0x00, 0x00, 0x78, 0x00, 0x1f, 0x00, 0x3c, 0x00, 0x00, + 0x00, 0x1c, 0x00, 0xf0, 0x07, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x07, 0x87, 0x80, 0x00, 0x38, 0x00, + 0x60, 0x00, 0x78, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x38, 0x00, 0x0e, 0x00, 0x3c, 0x00, 0x00, + 0x00, 0x1c, 0x00, 0xe0, 0x07, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x07, 0x1f, 0x00, 0x00, 0x38, 0x00, + 0x70, 0x00, 0x78, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, 0x38, 0x00, 0x1e, 0x00, 0x1c, 0x00, 0x00, + 0x00, 0x3c, 0x00, 0xe0, 0x07, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x07, 0x1e, 0x00, 0x00, 0x78, 0x00, + 0x70, 0x00, 0x70, 0x00, 0x00, 0xf0, 0x00, 0x00, 0x00, 0x38, 0x00, 0x1e, 0x00, 0x1e, 0x00, 0x00, + 0x00, 0x1c, 0x00, 0xe0, 0x07, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x07, 0xbc, 0x00, 0x00, 0x70, 0x00, + 0x70, 0x00, 0x70, 0x00, 0x00, 0xf0, 0x00, 0x00, 0x00, 0x78, 0x00, 0x0e, 0x00, 0x1e, 0x00, 0x00, + 0x00, 0x1c, 0x00, 0xe0, 0x07, 0x00, 0x00, 0x3f, 0xfe, 0x00, 0x07, 0xf0, 0x00, 0x00, 0x7f, 0xff, + 0xf0, 0x00, 0x78, 0x00, 0x00, 0x60, 0x00, 0x00, 0xff, 0xf8, 0x00, 0x1c, 0x00, 0x0e, 0x00, 0x00, + 0x00, 0x3c, 0x00, 0xe0, 0x07, 0x00, 0x00, 0xff, 0xfc, 0x00, 0x06, 0xf8, 0x00, 0x00, 0x7f, 0xff, + 0xf0, 0x00, 0x70, 0x00, 0x00, 0xf0, 0x00, 0x03, 0xff, 0xf8, 0x00, 0x1e, 0x00, 0x1e, 0x00, 0x00, + 0x00, 0x1c, 0x00, 0xe0, 0x07, 0x00, 0x01, 0xe0, 0x0e, 0x00, 0x07, 0xbc, 0x00, 0x00, 0x70, 0x00, + 0x00, 0x00, 0x70, 0x00, 0x00, 0xf0, 0x00, 0x07, 0x80, 0x38, 0x00, 0x0e, 0x00, 0x1c, 0x00, 0x00, + 0x00, 0x1c, 0x00, 0xe0, 0x07, 0x00, 0x03, 0xc0, 0x0e, 0x00, 0x07, 0x3e, 0x00, 0x00, 0x38, 0x00, + 0x00, 0x00, 0x78, 0x00, 0x00, 0xd0, 0x00, 0x0f, 0x00, 0x38, 0x00, 0x1e, 0x00, 0x1e, 0x00, 0x00, + 0x00, 0x3c, 0x00, 0xe0, 0x07, 0x00, 0x03, 0x80, 0x1e, 0x00, 0x07, 0x0f, 0x00, 0x00, 0x38, 0x00, + 0x00, 0x00, 0x70, 0x00, 0x00, 0x70, 0x00, 0x0e, 0x00, 0x38, 0x00, 0x1e, 0x00, 0x1c, 0x00, 0x00, + 0x00, 0x1c, 0x00, 0xe0, 0x07, 0x00, 0x03, 0x80, 0x1e, 0x00, 0x07, 0x87, 0x80, 0x00, 0x38, 0x00, + 0x00, 0x00, 0x70, 0x00, 0x00, 0xe0, 0x00, 0x0e, 0x00, 0x78, 0x00, 0x0e, 0x00, 0x1c, 0x00, 0x00, + 0x00, 0x1c, 0x00, 0xe0, 0x07, 0x00, 0x03, 0x80, 0x1e, 0x00, 0x07, 0x03, 0xc0, 0x00, 0x3c, 0x00, + 0x00, 0x00, 0x78, 0x00, 0x00, 0xf0, 0x00, 0x0f, 0x00, 0x78, 0x00, 0x1f, 0x00, 0x3c, 0x00, 0x00, + 0x00, 0x3c, 0x00, 0xe0, 0x07, 0x00, 0x03, 0xc0, 0x3c, 0x00, 0x07, 0x01, 0xe0, 0x00, 0x1c, 0x00, + 0x20, 0x00, 0x70, 0x00, 0x00, 0x70, 0x00, 0x0f, 0x00, 0xf8, 0x00, 0x1f, 0x80, 0x78, 0x00, 0x00, + 0x00, 0x1c, 0x00, 0xe0, 0x07, 0x00, 0x01, 0xe0, 0x7e, 0x00, 0x07, 0x80, 0xf0, 0x00, 0x0f, 0x00, + 0xf0, 0x00, 0x70, 0x00, 0x00, 0x78, 0x00, 0x07, 0x81, 0xb8, 0x00, 0x0d, 0xc0, 0xf8, 0x00, 0x00, + 0x00, 0x1c, 0x00, 0xe0, 0x07, 0x00, 0x01, 0xfb, 0xee, 0x00, 0x07, 0x00, 0x78, 0x00, 0x0f, 0xff, + 0xe0, 0x00, 0x78, 0x00, 0x00, 0x3f, 0x80, 0x03, 0xef, 0xb8, 0x00, 0x1c, 0xff, 0xe0, 0x00, 0x00, + 0x00, 0x3c, 0x00, 0xe0, 0x07, 0x00, 0x00, 0x7f, 0x8e, 0x00, 0x03, 0x00, 0x3c, 0x00, 0x03, 0xff, + 0xc0, 0x00, 0x70, 0x00, 0x00, 0x3f, 0x80, 0x01, 0xff, 0x38, 0x00, 0x1e, 0x7f, 0xe0, 0x00, 0x00, + 0x00, 0x18, 0x00, 0xc0, 0x06, 0x00, 0x00, 0x1e, 0x0c, 0x00, 0x03, 0x00, 0x18, 0x00, 0x00, 0xfc, + 0x00, 0x00, 0x30, 0x00, 0x00, 0x0f, 0x80, 0x00, 0x78, 0x30, 0x00, 0x0c, 0x1f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 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, 0xc1, 0x80, 0x60, 0xff, 0x80, + 0xc0, 0x20, 0x06, 0x00, 0x60, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, 0xc0, 0x80, 0x20, 0xc0, 0xc0, + 0xc0, 0x20, 0x07, 0x00, 0x60, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x01, 0xc0, 0x80, 0x20, 0x40, 0x40, + 0xa0, 0x20, 0x05, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a, 0x01, 0x41, 0x80, 0x60, 0x40, 0x60, + 0xb0, 0x20, 0x09, 0x00, 0x40, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x02, 0x40, 0x80, 0x20, 0xc0, 0x60, + 0x90, 0x20, 0x08, 0x80, 0x60, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0d, 0x02, 0x40, 0x80, 0x20, 0x40, 0x40, + 0x88, 0x20, 0x18, 0x80, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x84, 0x41, 0x80, 0x60, 0x40, 0xc0, + 0x8c, 0x20, 0x10, 0xc0, 0x40, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0xc4, 0x40, 0x80, 0x20, 0xff, 0x00, + 0x86, 0x20, 0x30, 0x40, 0x60, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x48, 0x40, 0x80, 0x20, 0x81, 0x00, + 0x82, 0x20, 0x20, 0x60, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x68, 0x40, 0x80, 0x60, 0x41, 0x80, + 0x81, 0x20, 0x6f, 0xa0, 0x60, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x30, 0x40, 0x80, 0x40, 0x40, 0x80, + 0x81, 0xa0, 0x40, 0x30, 0x20, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x10, 0x40, 0xc0, 0x40, 0xc0, 0x40, + 0x80, 0xa0, 0x40, 0x10, 0x20, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x40, 0x40, 0xc0, 0x40, 0x60, + 0x80, 0x60, 0xc0, 0x10, 0x30, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x40, 0x3f, 0x80, 0x40, 0x20, + 0x80, 0x20, 0x80, 0x08, 0x0f, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 +}; + +/* +// 'logosATM_ML_logo_land_big', 289x85px +const unsigned char epd_bitmap_makerlablogosATM_ML_logo_land_big [] PROGMEM = { + 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 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, 0x00, 0x00, 0x00, 0x36, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x66, 0x80, 0x00, + 0x00, 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, 0x01, 0xa4, 0xc0, 0x00, 0x01, 0x31, 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, 0x06, 0x39, 0x30, 0x00, 0x06, 0x5e, 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, 0x09, 0xcb, 0x6c, 0x00, 0x1a, + 0xc2, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0x26, 0x4b, 0x00, 0x63, 0x39, 0x8e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xc6, 0xb4, 0xd2, 0x80, 0x19, 0x24, 0xc1, 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, 0x9a, 0x93, 0x34, 0x80, 0x84, 0x84, + 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, 0xb2, + 0x6c, 0x97, 0x00, 0xa4, 0x93, 0x0c, 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, 0x95, 0xa6, 0xc9, 0x00, 0x22, 0x48, 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, 0xcc, 0x99, 0x39, 0x40, 0x99, 0x24, 0x32, + 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, 0x6a, 0xd3, + 0x46, 0x00, 0x84, 0x93, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x93, 0x36, 0x72, 0x80, 0x64, 0x90, 0xc9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb4, 0x89, 0x98, 0x80, 0x12, 0x4c, 0x24, 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, 0x8c, 0xe9, 0x24, + 0x00, 0x92, 0x43, 0x24, 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, 0xdb, 0x2d, 0xb3, 0x40, 0x89, 0x30, 0x92, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x43, 0x26, 0x48, 0x00, 0x64, 0x8c, 0x92, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb8, 0xd9, 0x64, 0x80, + 0x12, 0x42, 0x49, 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, 0xa6, 0xc9, 0x92, 0x40, 0x92, 0x52, 0x48, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9a, 0x36, 0x49, 0x00, 0x89, 0x11, 0x26, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc9, 0x95, 0x49, 0x00, 0x64, + 0x8c, 0x91, 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, + 0x66, 0xc9, 0x92, 0x40, 0x12, 0x62, 0x48, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x32, 0x6a, 0x24, 0x00, 0x12, 0x12, 0x4a, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 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, 0x36, 0x48, 0x00, 0x09, 0x91, + 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, 0x01, + 0x91, 0x10, 0x00, 0x00, 0x4c, 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, 0xcc, 0x80, 0x00, 0x02, 0x42, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6c, 0x80, 0x00, 0x00, 0x32, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x03, 0x80, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x12, + 0x00, 0x00, 0x00, 0x08, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x80, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, + 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7b, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xc0, 0x00, + 0x00, 0x00, 0x00, 0xf0, 0x00, 0x00, 0x00, 0xe9, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xfb, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x03, 0x80, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x03, 0x36, 0x60, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x07, 0xf4, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x80, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, + 0x0c, 0xc5, 0xb8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xf7, 0xb8, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x80, 0x00, 0x00, + 0x00, 0x00, 0xf0, 0x00, 0x00, 0x13, 0x39, 0x96, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xf9, 0x2c, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x03, 0x80, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x6c, 0xca, 0x53, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xff, 0x7b, 0x67, 0x00, 0x0e, 0x7e, 0x0f, 0xc0, 0x00, 0x1f, 0xe0, 0x00, 0x38, 0x0e, + 0x00, 0x03, 0xf0, 0x00, 0x1c, 0xf8, 0x03, 0x80, 0x00, 0x3f, 0xc0, 0x00, 0x73, 0xf0, 0x00, 0x00, + 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x01, 0xfd, 0xf6, 0xd9, 0x80, 0x0e, 0xff, 0x3f, 0xe0, 0x00, + 0x7f, 0xf0, 0x00, 0x78, 0x1e, 0x00, 0x0f, 0xfc, 0x00, 0x1d, 0xf8, 0x03, 0x80, 0x00, 0xff, 0xe0, + 0x00, 0xf7, 0xfc, 0x00, 0x12, 0x24, 0x88, 0x00, 0x00, 0x00, 0x00, 0x01, 0xff, 0xf4, 0xdb, 0x00, + 0x0f, 0xcf, 0xb9, 0xf0, 0x00, 0x79, 0xf8, 0x00, 0x38, 0x3c, 0x00, 0x1e, 0x1e, 0x00, 0x1f, 0xe0, + 0x03, 0x80, 0x00, 0xf3, 0xf0, 0x00, 0x7e, 0x7e, 0x00, 0x80, 0x80, 0x22, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xf7, 0xdd, 0xa6, 0x80, 0x0f, 0x03, 0xe0, 0x70, 0x00, 0x60, 0x38, 0x00, 0x38, 0x78, 0x00, + 0x38, 0x0e, 0x00, 0x1f, 0x00, 0x03, 0x80, 0x00, 0xc0, 0x70, 0x00, 0x78, 0x0f, 0x00, 0x24, 0x12, + 0x00, 0x80, 0x00, 0x00, 0x00, 0x01, 0xff, 0x7b, 0x3c, 0x80, 0x0f, 0x03, 0xe0, 0x70, 0x00, 0x00, + 0x1c, 0x00, 0x78, 0xf0, 0x00, 0x38, 0x07, 0x00, 0x1e, 0x00, 0x03, 0x80, 0x00, 0x00, 0x38, 0x00, + 0xf8, 0x07, 0x00, 0x01, 0x00, 0xcc, 0x00, 0x00, 0x00, 0x00, 0x01, 0xef, 0xf3, 0x67, 0x00, 0x0e, + 0x01, 0xc0, 0x78, 0x00, 0x00, 0x1c, 0x00, 0x39, 0xe0, 0x00, 0x70, 0x07, 0x00, 0x1c, 0x00, 0x03, + 0x80, 0x00, 0x00, 0x38, 0x00, 0x70, 0x07, 0x00, 0x48, 0x49, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xfe, 0xfc, 0xd9, 0x80, 0x0e, 0x01, 0xc0, 0x38, 0x00, 0x00, 0x1c, 0x00, 0x3b, 0xc0, 0x00, 0x70, + 0x03, 0x00, 0x1c, 0x00, 0x03, 0x80, 0x00, 0x00, 0x38, 0x00, 0x70, 0x07, 0x80, 0x02, 0x10, 0x20, + 0x40, 0x00, 0x00, 0x00, 0x01, 0xff, 0xf6, 0xdb, 0x00, 0x0e, 0x01, 0xc0, 0x70, 0x00, 0x0f, 0xfc, + 0x00, 0x7f, 0x80, 0x00, 0x7f, 0xff, 0x00, 0x1c, 0x00, 0x03, 0x80, 0x00, 0x1f, 0xf8, 0x00, 0xf0, + 0x03, 0x80, 0x20, 0x84, 0x88, 0x00, 0x00, 0x00, 0x00, 0x01, 0xef, 0xdb, 0x26, 0x80, 0x0e, 0x01, + 0xc0, 0x78, 0x00, 0x7f, 0xfc, 0x00, 0x3f, 0x00, 0x00, 0x7f, 0xff, 0x00, 0x1c, 0x00, 0x03, 0x80, + 0x00, 0xff, 0xf8, 0x00, 0x70, 0x03, 0x80, 0x0c, 0x20, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, + 0xf9, 0xb9, 0x80, 0x0e, 0x01, 0xc0, 0x38, 0x00, 0xf8, 0x1c, 0x00, 0x3f, 0x80, 0x00, 0x70, 0x02, + 0x00, 0x1c, 0x00, 0x03, 0x80, 0x01, 0xf0, 0x38, 0x00, 0x70, 0x03, 0x80, 0x11, 0x09, 0x20, 0x40, + 0x00, 0x00, 0x00, 0x01, 0xfb, 0xf6, 0xce, 0x00, 0x0e, 0x01, 0xc0, 0x70, 0x00, 0xe0, 0x1c, 0x00, + 0x7b, 0xc0, 0x00, 0x70, 0x00, 0x00, 0x1c, 0x00, 0x03, 0x80, 0x01, 0xc0, 0x38, 0x00, 0xf0, 0x07, + 0x80, 0x00, 0x40, 0x24, 0x00, 0x00, 0x00, 0x00, 0x01, 0xef, 0xf6, 0x73, 0x80, 0x0e, 0x01, 0xc0, + 0x78, 0x00, 0xe0, 0x1c, 0x00, 0x39, 0xe0, 0x00, 0x70, 0x00, 0x00, 0x1c, 0x00, 0x03, 0xc0, 0x01, + 0xc0, 0x38, 0x00, 0x70, 0x07, 0x00, 0x48, 0x12, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xb9, + 0x9c, 0x80, 0x0e, 0x01, 0xc0, 0x38, 0x00, 0xe0, 0x3c, 0x00, 0x38, 0xf0, 0x00, 0x78, 0x00, 0x00, + 0x1c, 0x00, 0x01, 0x80, 0x01, 0xc0, 0x78, 0x00, 0x70, 0x07, 0x00, 0x03, 0x04, 0x90, 0x40, 0x00, + 0x00, 0x00, 0x01, 0xff, 0xfb, 0xa7, 0x00, 0x0e, 0x01, 0xc0, 0x70, 0x00, 0xe0, 0x3c, 0x00, 0x78, + 0x78, 0x00, 0x38, 0x02, 0x00, 0x1c, 0x00, 0x01, 0xc0, 0x01, 0xc0, 0x78, 0x00, 0xf8, 0x0f, 0x00, + 0x20, 0x40, 0x04, 0x00, 0x00, 0x00, 0x00, 0x01, 0xfb, 0xf6, 0x79, 0x80, 0x0e, 0x01, 0xc0, 0x78, + 0x00, 0xf0, 0x7c, 0x00, 0x38, 0x3c, 0x00, 0x1e, 0x0f, 0x00, 0x1c, 0x00, 0x01, 0xe0, 0x01, 0xe0, + 0xf8, 0x00, 0x7c, 0x1e, 0x00, 0x24, 0x19, 0x21, 0x00, 0x00, 0x00, 0x00, 0x00, 0xef, 0xb5, 0xcc, + 0x80, 0x0e, 0x01, 0xc0, 0x38, 0x00, 0x7f, 0xdc, 0x00, 0x38, 0x1e, 0x00, 0x1f, 0xff, 0x00, 0x1c, + 0x00, 0x01, 0xfc, 0x00, 0xff, 0xb8, 0x00, 0x7f, 0xfc, 0x00, 0x01, 0x20, 0x22, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xff, 0xfd, 0x37, 0x00, 0x0e, 0x01, 0xc0, 0x30, 0x00, 0x3f, 0x9c, 0x00, 0x30, 0x0f, + 0x00, 0x07, 0xfc, 0x00, 0x1c, 0x00, 0x00, 0xfc, 0x00, 0x7f, 0x38, 0x00, 0x63, 0xf8, 0x00, 0x10, + 0x04, 0x88, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3e, 0xf3, 0x64, 0x00, 0x04, 0x00, 0x80, 0x10, 0x00, + 0x08, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x30, 0x00, 0x10, 0x10, + 0x00, 0x20, 0xc0, 0x00, 0x04, 0x90, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xfa, 0xd8, 0x00, + 0x00, 0x00, 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, 0x40, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x03, 0xda, 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, 0x48, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0x01, 0x00, 0x08, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x74, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x30, 0x00, 0x00, 0x00, 0x3e, + 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xc2, 0x00, 0x00, 0x00, 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, 0x01, 0x48, 0x80, 0x00, 0x03, 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, 0x07, 0x20, 0x20, 0x00, 0x0f, 0xfb, 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, 0x18, 0x84, + 0x08, 0x00, 0x1f, 0xef, 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, 0x2e, 0x91, 0x82, 0x00, 0x7f, 0xbf, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe3, 0x00, 0x20, 0x80, 0xfe, 0xff, 0xff, 0x80, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x30, 0x0c, 0x20, 0x20, 0xfe, 0x0c, 0x0c, 0x03, 0x01, 0x80, 0x80, 0x00, 0x00, 0x99, 0x24, 0x08, + 0x00, 0xff, 0xfd, 0xef, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x18, 0x20, 0x21, 0x83, 0x0e, 0x04, 0x07, 0x00, 0x80, 0x80, + 0x00, 0x00, 0xb6, 0x01, 0x42, 0x41, 0xfb, 0xf7, 0xff, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x1c, 0x20, 0x20, 0x81, 0x0a, + 0x04, 0x05, 0x00, 0x80, 0x80, 0x00, 0x00, 0xa4, 0x48, 0x10, 0x00, 0x7f, 0xdf, 0xbd, 0x80, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x28, + 0x30, 0x20, 0x20, 0x81, 0x09, 0x0c, 0x04, 0x80, 0x80, 0x80, 0x00, 0x00, 0xac, 0x02, 0x05, 0x00, + 0xef, 0x7f, 0xff, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x24, 0x2c, 0x20, 0x20, 0x83, 0x0d, 0x84, 0x08, 0x81, 0x80, 0x80, 0x00, + 0x00, 0xb0, 0x90, 0xc0, 0x40, 0xbf, 0xfe, 0xf7, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0x68, 0x20, 0x21, 0xb6, 0x08, 0xc4, + 0x08, 0xc0, 0x80, 0x80, 0x00, 0x00, 0x92, 0x04, 0x12, 0x00, 0xbd, 0xfb, 0xff, 0x80, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x22, 0x48, + 0x20, 0x20, 0xec, 0x08, 0x4c, 0x18, 0x40, 0x80, 0x80, 0x00, 0x00, 0xd0, 0x61, 0x00, 0x80, 0xcf, + 0xef, 0xde, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x32, 0xcc, 0x20, 0x20, 0x86, 0x08, 0x24, 0x1b, 0x60, 0x80, 0x80, 0x00, 0x00, + 0x64, 0x08, 0x48, 0x00, 0xdf, 0xbf, 0xff, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x21, 0x84, 0x20, 0x20, 0x82, 0x0c, 0x34, 0x36, + 0xe0, 0x81, 0x80, 0x00, 0x00, 0x81, 0x02, 0x09, 0x00, 0xb7, 0xff, 0x7b, 0x80, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x21, 0x08, 0x30, + 0x60, 0x83, 0x08, 0x1c, 0x20, 0x30, 0xc1, 0x00, 0x00, 0x00, 0xc8, 0x40, 0x81, 0x00, 0xcf, 0x7d, + 0xff, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x20, 0x08, 0x19, 0xc1, 0x81, 0x08, 0x0c, 0x20, 0x10, 0x67, 0x00, 0x00, 0x00, 0x42, + 0x18, 0x30, 0x40, 0xdb, 0xf7, 0xef, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x04, 0x0f, 0x00, 0x80, 0x80, 0x00, 0x40, 0x10, + 0x3c, 0x00, 0x00, 0x00, 0x90, 0x82, 0x04, 0x00, 0xb3, 0xff, 0xfe, 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, 0x84, 0x20, 0x81, 0x00, 0xad, 0xef, 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, 0x21, 0x09, + 0x24, 0x40, 0xed, 0xfe, 0xfb, 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, 0x08, 0x40, 0x00, 0x00, 0x92, 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, 0x02, 0x12, 0x49, 0x00, 0x3e, 0xef, 0xee, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x82, 0x08, + 0x00, 0x09, 0x7e, 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, 0x20, 0x80, 0x00, 0x07, 0x3f, 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, 0x01, 0x0c, 0x20, 0x00, 0x01, 0xbb, 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, 0x41, 0x00, 0x00, + 0x00, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 +}; +*/ + +// 'logosATM_ML_logo_land', 248x69px +const unsigned char epd_bitmap_makerlablogosATM_ML_logo_land [] PROGMEM = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x38, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xce, 0x00, 0x00, 0xcb, 0x00, 0x00, 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, 0x33, + 0x80, 0x01, 0x29, 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, 0x04, 0xc8, 0xc0, + 0x07, 0x34, 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, 0x1c, 0xce, 0x70, 0x18, + 0xd6, 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, 0x23, 0x33, 0x18, 0x02, 0x01, + 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3b, 0x31, 0xc8, 0x24, 0xa9, 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, 0x08, 0xcc, 0x60, 0x11, 0x24, 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, 0x36, 0x9b, 0x34, 0x13, 0x12, 0x14, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x26, 0xb3, 0x84, 0x08, 0xc9, 0x84, 0x00, 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, 0x64, 0xc8, 0x24, 0x24, 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, 0x2d, 0x1c, 0x48, 0x13, 0x24, 0x18, 0x00, 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, 0xcb, 0x30, 0x10, 0x93, 0x24, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x33, 0x63, 0x84, 0x0c, 0x90, 0x84, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x1b, 0x3c, 0x48, 0x22, 0x4c, 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, 0x24, 0x89, 0x20, 0x12, 0x42, 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, + 0x2c, 0xe6, 0x24, 0x11, 0x32, 0x4c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0b, + 0x34, 0x90, 0x04, 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, 0x02, 0x99, + 0x00, 0x02, 0x49, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc9, 0x00, + 0x00, 0x44, 0x80, 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, 0x64, 0x00, 0x00, + 0x32, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x80, 0x00, 0x00, 0x01, 0x80, 0x00, 0x00, 0x00, 0x00, 0x03, 0x80, 0x10, 0x00, 0x00, 0x08, + 0x03, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, + 0x80, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x0c, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x0f, + 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x80, + 0x00, 0x00, 0x01, 0x80, 0x00, 0x00, 0x00, 0x00, 0x36, 0x58, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x98, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x80, 0x00, + 0x00, 0x01, 0x80, 0x00, 0x00, 0x00, 0x00, 0x53, 0x54, 0x00, 0x00, 0x00, 0x00, 0x7f, 0xae, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x80, 0x00, 0x00, + 0x00, 0xc0, 0x00, 0x00, 0x00, 0x01, 0xd9, 0xb7, 0x00, 0x00, 0x00, 0x01, 0xff, 0x6b, 0x80, 0x11, + 0xc1, 0xc0, 0x00, 0x38, 0x00, 0x30, 0x20, 0x00, 0xe0, 0x00, 0x46, 0x01, 0x80, 0x01, 0xc0, 0x01, + 0x8e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xfd, 0xd9, 0xc0, 0x1b, 0xf3, + 0xf0, 0x01, 0xfe, 0x00, 0x30, 0x70, 0x03, 0xfc, 0x00, 0xde, 0x01, 0x80, 0x07, 0xf8, 0x00, 0xdf, + 0xc0, 0x00, 0x00, 0x02, 0x24, 0x40, 0x80, 0x00, 0x00, 0x03, 0xff, 0x96, 0x40, 0x1e, 0x3e, 0x38, + 0x01, 0x83, 0x00, 0x30, 0xe0, 0x07, 0x0c, 0x00, 0xf0, 0x01, 0x80, 0x0e, 0x1c, 0x01, 0xf1, 0xc0, + 0x00, 0x00, 0x00, 0x81, 0x12, 0x00, 0x00, 0x00, 0x01, 0xef, 0x76, 0xc0, 0x38, 0x1c, 0x18, 0x00, + 0x03, 0x80, 0x31, 0xc0, 0x06, 0x06, 0x00, 0xe0, 0x01, 0x80, 0x00, 0x0c, 0x01, 0xc0, 0x60, 0x00, + 0x00, 0x00, 0x10, 0x04, 0x00, 0x00, 0x00, 0x03, 0xff, 0x59, 0x80, 0x18, 0x18, 0x18, 0x00, 0x01, + 0x80, 0x33, 0x80, 0x0c, 0x03, 0x00, 0xc0, 0x01, 0x80, 0x00, 0x0c, 0x00, 0xc0, 0x60, 0x00, 0x00, + 0x02, 0x46, 0x61, 0x00, 0x00, 0x00, 0x03, 0xdf, 0xcf, 0x40, 0x18, 0x18, 0x18, 0x00, 0x01, 0x80, + 0x36, 0x00, 0x0c, 0x03, 0x00, 0xc0, 0x01, 0x80, 0x00, 0x0c, 0x00, 0xc0, 0x70, 0x00, 0x00, 0x00, + 0x00, 0x08, 0x40, 0x00, 0x00, 0x01, 0xfd, 0xb2, 0x40, 0x18, 0x18, 0x18, 0x00, 0xff, 0x80, 0x3e, + 0x00, 0x0f, 0xfe, 0x00, 0xc0, 0x01, 0x80, 0x03, 0xfc, 0x01, 0x80, 0x30, 0x00, 0x00, 0x01, 0x29, + 0x02, 0x00, 0x00, 0x00, 0x03, 0xff, 0x3b, 0x80, 0x18, 0x18, 0x18, 0x01, 0xc9, 0x80, 0x3e, 0x00, + 0x0c, 0x92, 0x00, 0xc0, 0x01, 0x80, 0x0f, 0x0c, 0x01, 0x80, 0x30, 0x00, 0x00, 0x00, 0x80, 0x90, + 0x80, 0x00, 0x00, 0x03, 0xf7, 0xcc, 0xc0, 0x38, 0x18, 0x18, 0x03, 0x01, 0x80, 0x33, 0x00, 0x0c, + 0x00, 0x00, 0xc0, 0x01, 0x80, 0x0c, 0x0c, 0x00, 0xc0, 0x60, 0x00, 0x00, 0x02, 0x12, 0x10, 0x00, + 0x00, 0x00, 0x01, 0xdf, 0xb6, 0xc0, 0x18, 0x18, 0x18, 0x03, 0x03, 0x00, 0x31, 0x80, 0x0c, 0x00, + 0x00, 0xc0, 0x01, 0x80, 0x18, 0x0c, 0x01, 0xc0, 0x60, 0x00, 0x00, 0x00, 0x40, 0x46, 0x00, 0x00, + 0x00, 0x03, 0xff, 0x33, 0x00, 0x18, 0x18, 0x18, 0x03, 0x03, 0x80, 0x30, 0xe0, 0x06, 0x00, 0x00, + 0xc0, 0x01, 0x80, 0x0c, 0x1c, 0x00, 0xc0, 0x60, 0x00, 0x00, 0x01, 0x0c, 0x00, 0x80, 0x00, 0x00, + 0x03, 0xfd, 0xdd, 0xc0, 0x18, 0x18, 0x18, 0x01, 0x87, 0x80, 0x30, 0x60, 0x07, 0x06, 0x00, 0xc0, + 0x01, 0xc0, 0x0c, 0x3c, 0x01, 0xf1, 0xc0, 0x00, 0x00, 0x00, 0x21, 0x90, 0x00, 0x00, 0x00, 0x01, + 0xff, 0xcc, 0xc0, 0x18, 0x18, 0x18, 0x01, 0xfd, 0x00, 0x30, 0x30, 0x03, 0xfe, 0x00, 0xc0, 0x00, + 0xf8, 0x07, 0xec, 0x00, 0x9f, 0x80, 0x00, 0x00, 0x00, 0x80, 0x12, 0x00, 0x00, 0x00, 0x00, 0xef, + 0x33, 0x00, 0x10, 0x10, 0x08, 0x00, 0x61, 0x00, 0x10, 0x10, 0x00, 0xf0, 0x00, 0x40, 0x00, 0x30, + 0x03, 0x84, 0x00, 0x8c, 0x00, 0x00, 0x00, 0x00, 0x12, 0x40, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xb6, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00, 0x1e, 0xd8, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x20, 0x00, 0x00, 0x00, 0x08, 0x03, 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, 0x20, 0x00, 0x00, 0x3c, 0x01, 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, 0xc8, 0x00, 0x00, 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, 0x01, 0x42, 0x00, 0x01, 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, 0x07, 0x10, 0x80, 0x07, 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, 0x19, 0x84, 0x20, 0x1f, 0xef, 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, 0x2c, 0x21, 0x08, 0x3f, 0xfd, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x01, 0x81, 0x10, 0x23, 0xb0, 0x82, 0x06, 0x04, 0x10, 0x00, 0x00, 0x00, 0x00, + 0x26, 0x08, 0x40, 0x3f, 0xbf, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x83, 0x10, 0x22, 0x00, 0xc2, 0x06, 0x04, 0x10, 0x00, 0x00, 0x00, 0x00, 0x32, + 0x42, 0x10, 0x1e, 0xff, 0xbc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x01, 0x43, 0x00, 0x22, 0x08, 0x82, 0x09, 0x04, 0x10, 0x00, 0x00, 0x00, 0x00, 0x19, 0x10, + 0x84, 0x2f, 0xf7, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x44, 0x10, 0x22, 0x10, 0xa2, 0x09, 0x04, 0x10, 0x00, 0x00, 0x00, 0x00, 0x2c, 0x04, 0x20, + 0x2f, 0xff, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x25, 0x10, 0x23, 0xe0, 0x92, 0x10, 0x04, 0x10, 0x00, 0x00, 0x00, 0x00, 0x20, 0xa1, 0x08, 0x37, + 0xdf, 0xf4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x29, + 0x00, 0x22, 0x20, 0x8a, 0x11, 0x84, 0x10, 0x00, 0x00, 0x00, 0x00, 0x32, 0x08, 0x40, 0x17, 0x7d, + 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x11, 0x08, + 0x42, 0x10, 0x82, 0x14, 0x84, 0x10, 0x00, 0x00, 0x00, 0x00, 0x10, 0x42, 0x10, 0x33, 0xff, 0xec, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x08, 0x42, + 0x10, 0x06, 0x20, 0x44, 0x20, 0x00, 0x00, 0x00, 0x00, 0x24, 0x10, 0x84, 0x1b, 0xff, 0xbc, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x07, 0x82, 0x08, + 0x82, 0x20, 0x43, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x21, 0x84, 0x20, 0x2d, 0xef, 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, 0x08, 0x21, 0x08, 0x2c, 0xfe, 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, 0x02, 0x08, 0x40, 0x13, 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, 0x10, 0x82, 0x10, 0x1d, 0x7b, 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, 0x04, 0x30, 0x80, 0x03, 0x3f, 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, 0x01, 0x04, 0x00, 0x00, 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, 0x40, 0x00, 0x00, 0x5e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x10, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 +}; + +// 'logosATM_BC_LN', 73x64px +const unsigned char epd_bitmap_makerlablogosATM_BC_LN [] PROGMEM = { + 0x00, 0x00, 0x01, 0xff, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xff, 0xf8, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, + 0xff, 0xff, 0xff, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xff, 0xff, 0xff, 0xe0, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x1f, 0xff, 0xff, 0xff, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xff, 0xff, + 0xff, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0xff, 0xff, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x01, 0xff, 0xff, 0xff, 0xff, 0xff, + 0x80, 0x00, 0x00, 0x00, 0x03, 0xff, 0xff, 0xc3, 0xff, 0xff, 0xc0, 0x00, 0x00, 0x00, 0x07, 0xff, + 0xff, 0xc3, 0x1f, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x07, 0xff, 0xff, 0xc7, 0x1f, 0xff, 0xe0, 0x00, + 0x00, 0x00, 0x0f, 0xff, 0xe7, 0xc7, 0x1f, 0xff, 0xf0, 0x00, 0x00, 0x00, 0x0f, 0xff, 0xe0, 0x06, + 0x1f, 0xff, 0xf8, 0x00, 0x00, 0x00, 0x1f, 0xff, 0xe0, 0x02, 0x3f, 0xff, 0xf8, 0x00, 0x00, 0x00, + 0x1f, 0xff, 0xe0, 0x00, 0x3f, 0xff, 0xfc, 0x00, 0x00, 0x00, 0x3f, 0xff, 0xfc, 0x00, 0x0f, 0xff, + 0xfc, 0x00, 0x00, 0x00, 0x3f, 0xff, 0xfc, 0x00, 0x03, 0xff, 0xfc, 0x00, 0x00, 0x00, 0x7f, 0xff, + 0xfc, 0x0c, 0x01, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x7f, 0xff, 0xfc, 0x1f, 0x80, 0xff, 0xfe, 0x00, + 0x00, 0x00, 0x7f, 0xff, 0xf8, 0x1f, 0xc0, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x7f, 0xff, 0xf8, 0x1f, + 0xc0, 0xff, 0xff, 0x00, 0x00, 0x00, 0xff, 0xff, 0xf8, 0x1f, 0xc0, 0xff, 0xff, 0x00, 0x00, 0x00, + 0xff, 0xff, 0xf8, 0x3f, 0xc0, 0xff, 0xff, 0x00, 0x00, 0x00, 0xff, 0xff, 0xf0, 0x0f, 0x80, 0xff, + 0xff, 0x00, 0x00, 0x00, 0xff, 0xff, 0xf0, 0x00, 0x01, 0xff, 0xff, 0x00, 0x00, 0x00, 0xff, 0xff, + 0xf0, 0x00, 0x03, 0xff, 0xff, 0x00, 0x00, 0x00, 0xff, 0xff, 0xf0, 0x60, 0x07, 0xff, 0xff, 0x00, + 0x00, 0x00, 0xff, 0xff, 0xe0, 0x7c, 0x03, 0xff, 0xff, 0x00, 0x00, 0x00, 0xff, 0xff, 0xe0, 0x7f, + 0x01, 0xff, 0xff, 0x00, 0x00, 0x00, 0xff, 0xff, 0xe0, 0x7f, 0x80, 0xff, 0xf0, 0x00, 0x00, 0x00, + 0xff, 0xff, 0xe0, 0xff, 0x80, 0xff, 0x80, 0x01, 0x00, 0x00, 0x7f, 0xfe, 0x00, 0xff, 0x80, 0xfe, + 0x00, 0x00, 0x40, 0x00, 0x7f, 0xfc, 0x00, 0xff, 0x80, 0xfc, 0x00, 0x00, 0x20, 0x00, 0x7f, 0xfc, + 0x00, 0x1f, 0x01, 0xf8, 0x00, 0x00, 0x10, 0x00, 0x7f, 0xfe, 0x00, 0x00, 0x01, 0xf0, 0x00, 0x00, + 0x08, 0x00, 0x3f, 0xff, 0xe0, 0x00, 0x03, 0xe0, 0x00, 0x00, 0x04, 0x00, 0x3f, 0xff, 0xe0, 0x00, + 0x03, 0xc0, 0x00, 0x18, 0x00, 0x00, 0x1f, 0xff, 0xe1, 0x80, 0x0f, 0xc0, 0x00, 0x30, 0x00, 0x00, + 0x1f, 0xff, 0xe3, 0x8f, 0xff, 0x80, 0x00, 0x70, 0x00, 0x00, 0x0f, 0xff, 0xe3, 0x8f, 0xff, 0x80, + 0x00, 0xe0, 0x01, 0x00, 0x0f, 0xff, 0xe3, 0x0f, 0xff, 0x00, 0x01, 0xe0, 0x00, 0x00, 0x07, 0xff, + 0xff, 0x1f, 0xff, 0x00, 0x03, 0xc0, 0x00, 0x00, 0x03, 0xff, 0xff, 0x9f, 0xff, 0x00, 0x0f, 0xc0, + 0x00, 0x00, 0x03, 0xff, 0xff, 0xff, 0xff, 0x00, 0x1f, 0xfe, 0x00, 0x00, 0x01, 0xff, 0xff, 0xff, + 0xff, 0x00, 0x3f, 0xfe, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x7f, 0xfc, 0x00, 0x00, + 0x00, 0x7f, 0xff, 0xff, 0xff, 0x00, 0x7f, 0xf8, 0x00, 0x00, 0x00, 0x3f, 0xff, 0xff, 0xff, 0x00, + 0x01, 0xf0, 0x00, 0x00, 0x00, 0x0f, 0xff, 0xff, 0xff, 0x00, 0x03, 0xe0, 0x00, 0x00, 0x00, 0x07, + 0xff, 0xff, 0xff, 0x00, 0x03, 0xc0, 0x00, 0x00, 0x00, 0x01, 0xff, 0xff, 0xff, 0x80, 0x07, 0x80, + 0x00, 0x00, 0x00, 0x00, 0x7f, 0xff, 0xfe, 0x00, 0x06, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0f, 0xff, + 0xf8, 0x40, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x08, 0x00, 0x02, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 +}; + +/* +// 'logosATM_ML_logo_only', 200x200px +const unsigned char epd_bitmap_makerlablogosATM_ML_logo_only [] PROGMEM = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xc0, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1d, 0x80, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x03, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x7c, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x9c, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf6, 0xdc, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x36, 0xa6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xf3, 0x26, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd3, + 0x69, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xed, + 0xbb, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x59, 0x5b, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xec, 0xd9, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x07, 0x4d, 0x96, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x7f, 0xd3, 0x4d, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x19, 0x66, 0x64, 0x9a, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xfe, 0xdf, 0x76, 0xcc, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x6d, 0x33, 0x6d, 0xb6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x07, 0xfb, 0xa9, 0x96, 0xd7, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa6, 0xd9, 0x99, 0x65, 0xc0, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xff, 0xac, 0xe9, 0x73, 0xc0, + 0x00, 0x00, 0x00, 0x03, 0x99, 0x9c, 0xb3, 0x4d, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x3f, 0xef, 0x77, 0x3b, 0x2c, 0xd0, 0x00, 0x00, 0x00, 0x0c, 0xd9, 0x66, 0xa6, + 0xb3, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xbe, 0x53, 0x56, + 0xed, 0x38, 0x00, 0x00, 0x00, 0x36, 0x66, 0x4a, 0xcc, 0xb4, 0xce, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x03, 0xfe, 0xfe, 0xdc, 0xd6, 0x9b, 0x6e, 0x00, 0x00, 0x00, 0x49, 0x9b, + 0xb9, 0x73, 0x4d, 0x93, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xff, 0xfb, + 0x67, 0xb3, 0xb3, 0x93, 0x80, 0x00, 0x01, 0xdb, 0x64, 0xa7, 0x1b, 0x5a, 0x74, 0xc0, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xf7, 0xf9, 0xb4, 0xb9, 0x6c, 0xf6, 0xc0, 0x00, 0x06, + 0x66, 0x6d, 0x69, 0xac, 0xd3, 0x4d, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, + 0xdf, 0xde, 0x9d, 0x8f, 0x4e, 0x4c, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x7f, 0x76, 0xe6, 0xf4, 0xf3, 0xdb, 0x30, + 0x00, 0x01, 0x11, 0x12, 0x12, 0x42, 0x24, 0x92, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x3f, 0xfd, 0xf3, 0x33, 0x36, 0x9b, 0x33, 0x40, 0x00, 0x08, 0x44, 0x40, 0x80, 0x10, 0x80, + 0x00, 0x90, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3e, 0xff, 0xed, 0xdd, 0xcb, 0xb4, + 0xed, 0xd0, 0x00, 0x02, 0x00, 0x08, 0x24, 0x84, 0x12, 0x64, 0x24, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x3f, 0xf7, 0xec, 0xcc, 0xda, 0x67, 0x2c, 0xb0, 0x00, 0x00, 0x99, 0x83, 0x08, + 0x21, 0x10, 0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3d, 0xff, 0xd3, 0x33, + 0x36, 0xdb, 0x6b, 0xa0, 0x00, 0x08, 0x40, 0x24, 0x42, 0x08, 0x44, 0x10, 0x48, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xdf, 0x5f, 0x77, 0x6d, 0x99, 0xda, 0x60, 0x00, 0x03, 0x04, + 0x20, 0x10, 0xc2, 0x01, 0x06, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xfd, + 0xc9, 0x9c, 0xc9, 0xb6, 0x57, 0x70, 0x00, 0x00, 0x21, 0x09, 0x04, 0x10, 0x98, 0x48, 0x80, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x7f, 0x7a, 0xe6, 0xde, 0x67, 0x65, 0x90, 0x00, + 0x08, 0x88, 0x40, 0x61, 0x04, 0x22, 0x00, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x3d, 0xf7, 0x26, 0x6b, 0x33, 0xd9, 0xbc, 0xd0, 0x00, 0x02, 0x02, 0x12, 0x08, 0x41, 0x00, 0xa4, + 0x44, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xfe, 0xed, 0x9b, 0x6c, 0x9e, 0x96, + 0xd0, 0x00, 0x00, 0x50, 0x84, 0x82, 0x18, 0x48, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x3f, 0xfe, 0x9b, 0xb4, 0xce, 0xe6, 0xf3, 0x30, 0x00, 0x09, 0x04, 0x20, 0x20, 0x82, + 0x03, 0x18, 0x90, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xbd, 0xf2, 0x6d, 0xb3, + 0x39, 0x4d, 0xc0, 0x00, 0x00, 0x21, 0x09, 0x0c, 0x20, 0x90, 0x40, 0x10, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x3d, 0xf9, 0x2f, 0x6b, 0x39, 0xcd, 0xdc, 0xd0, 0x00, 0x04, 0x88, 0x41, + 0x11, 0x08, 0x44, 0x04, 0xc4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xfb, 0xad, + 0x9a, 0xce, 0x76, 0x66, 0xb0, 0x00, 0x01, 0x02, 0x10, 0x40, 0x43, 0x01, 0x21, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xec, 0xe4, 0xd6, 0xf6, 0xd3, 0x3b, 0x30, 0x00, 0x08, + 0x50, 0x86, 0x08, 0x90, 0x28, 0x48, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3e, + 0xf7, 0x3b, 0x75, 0x95, 0x9d, 0xcb, 0x60, 0x00, 0x02, 0x04, 0x20, 0x82, 0x04, 0x82, 0x02, 0x08, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xe5, 0x9b, 0x2d, 0x6d, 0x6d, 0x74, 0xd0, + 0x00, 0x00, 0x89, 0x08, 0x30, 0x40, 0x10, 0x90, 0x90, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x3d, 0xec, 0xe6, 0xeb, 0x6b, 0x66, 0x9d, 0x90, 0x00, 0x08, 0x20, 0x42, 0x04, 0x24, 0x44, + 0x10, 0x84, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xdb, 0x6c, 0xda, 0x9a, 0xb6, + 0xe7, 0x60, 0x00, 0x03, 0x04, 0x10, 0x81, 0x84, 0x81, 0x06, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x3f, 0x9b, 0x37, 0x36, 0xe6, 0xb3, 0x32, 0x70, 0x00, 0x00, 0x42, 0x44, 0x28, + 0x10, 0x24, 0x60, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xb4, 0xd3, 0x65, + 0x6d, 0xcd, 0xbd, 0x90, 0x00, 0x08, 0x18, 0x01, 0x02, 0x43, 0x00, 0x09, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x3d, 0xb7, 0xda, 0xdd, 0x99, 0x7c, 0xcd, 0xd0, 0x00, 0x02, 0x81, + 0x98, 0x44, 0x08, 0x4a, 0x00, 0x64, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x4a, + 0x6c, 0x9a, 0xdb, 0x26, 0xd3, 0x60, 0x00, 0x00, 0x24, 0x02, 0x11, 0x20, 0x10, 0xc4, 0x80, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3e, 0x7b, 0x2d, 0xe6, 0x66, 0xeb, 0x3c, 0xb0, 0x00, + 0x09, 0x00, 0x40, 0x80, 0x04, 0x84, 0x10, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x3d, 0xa5, 0xe7, 0x35, 0xbd, 0x9b, 0x66, 0xd0, 0x00, 0x00, 0x49, 0x14, 0x26, 0x51, 0x21, 0x03, + 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3d, 0xbd, 0x39, 0xb7, 0x25, 0x74, 0xdb, + 0x50, 0x00, 0x04, 0x20, 0x21, 0x08, 0x40, 0x08, 0x48, 0x48, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x3a, 0xcb, 0x6c, 0xcc, 0xf6, 0xcf, 0x33, 0x60, 0x00, 0x01, 0x86, 0x08, 0x41, 0x0a, + 0x42, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3a, 0x6a, 0xcf, 0x6b, 0x9a, + 0xb9, 0xcd, 0xb0, 0x00, 0x08, 0x10, 0xc2, 0x10, 0x20, 0x10, 0x84, 0xa4, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x37, 0xb6, 0xb3, 0x3a, 0x6b, 0x66, 0x7c, 0x90, 0x00, 0x02, 0x40, 0x10, + 0x84, 0x84, 0x84, 0x21, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x34, 0xb5, 0xb4, + 0xd6, 0xdb, 0x5b, 0x93, 0xd0, 0x00, 0x00, 0x09, 0x04, 0x21, 0x10, 0x89, 0x08, 0x48, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3b, 0x9b, 0x5d, 0xd5, 0x99, 0x99, 0xb6, 0x60, 0x00, 0x09, + 0x22, 0x41, 0x08, 0x42, 0x20, 0x42, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2a, + 0xda, 0x67, 0x36, 0x6d, 0xb6, 0x6d, 0xb0, 0x00, 0x00, 0x80, 0x18, 0x42, 0x08, 0x04, 0x10, 0x80, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2e, 0x67, 0xb2, 0xdb, 0xe6, 0x67, 0x69, 0x90, + 0x00, 0x04, 0x19, 0x02, 0x10, 0x89, 0x21, 0x84, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x09, 0xb9, 0x9e, 0xcc, 0x9b, 0xd9, 0x9e, 0x40, 0x00, 0x01, 0x00, 0x40, 0x84, 0x20, 0x88, + 0x21, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x9a, 0x69, 0x36, 0xd9, 0x3a, + 0xd3, 0x00, 0x00, 0x00, 0x64, 0x94, 0x21, 0x04, 0x12, 0x08, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xd7, 0xb7, 0xdb, 0x67, 0x66, 0xd8, 0x00, 0x00, 0x00, 0x00, 0x01, 0x08, + 0x44, 0x40, 0x82, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x64, 0xd4, 0xc9, + 0x3c, 0xdd, 0x30, 0x00, 0x00, 0x00, 0x12, 0x48, 0x42, 0x11, 0x08, 0x30, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x5b, 0x3e, 0xcb, 0x93, 0x60, 0x00, 0x00, 0x00, 0x01, + 0x02, 0x10, 0x80, 0x23, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, + 0xce, 0xe6, 0xea, 0x7b, 0x80, 0x00, 0x00, 0x00, 0x00, 0x30, 0x84, 0x26, 0x20, 0x40, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x72, 0x99, 0xb7, 0x6c, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x84, 0x21, 0x08, 0x88, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xdb, 0x76, 0x55, 0x94, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x08, 0x40, 0x02, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2d, 0x57, 0x59, 0xb0, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x08, 0x42, 0x12, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x0d, 0xd9, 0xce, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x10, 0x80, + 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xac, 0xf6, + 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x84, 0x24, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xaf, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x21, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x73, 0x48, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x19, 0xd0, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x02, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x00, + 0x00, 0x00, 0x0c, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, + 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x38, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, + 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x18, 0xe7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xfe, 0xb0, 0x00, 0x00, 0x00, + 0x00, 0x66, 0xb1, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x07, 0xff, 0x9c, 0x00, 0x00, 0x00, 0x00, 0x96, 0x4c, 0x60, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xef, 0xef, 0x00, + 0x00, 0x00, 0x03, 0x99, 0x5b, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xfe, 0xe3, 0xc0, 0x00, 0x00, 0x0c, 0x69, 0x93, 0x26, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xbf, + 0xdc, 0xd0, 0x00, 0x00, 0x33, 0x66, 0xb4, 0xdb, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xfe, 0xfb, 0xf6, 0x78, 0x00, 0x00, 0x4c, 0x96, 0x66, + 0xc8, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, + 0xfb, 0xff, 0xf3, 0x8e, 0x00, 0x01, 0xa6, 0xb1, 0x99, 0x2d, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xff, 0xf7, 0xdc, 0xe7, 0x80, 0x06, 0x32, + 0xcd, 0x95, 0x33, 0x6c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x7f, 0xdf, 0xdf, 0x7d, 0xb9, 0xa0, 0x09, 0xda, 0x59, 0x66, 0xcc, 0x9b, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xff, 0x7f, 0x7f, 0xfb, 0x2c, 0xe0, + 0x3b, 0x13, 0x4c, 0x6a, 0xa5, 0x92, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x07, 0xfd, 0xfd, 0xff, 0xfc, 0xe7, 0x3c, 0xc6, 0x6d, 0x33, 0x99, 0x34, 0xd6, 0x60, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xff, 0xf7, 0xfd, 0xf7, + 0x9b, 0x5b, 0x34, 0xc9, 0xa6, 0x47, 0x56, 0x65, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x3f, 0xef, 0xff, 0xf7, 0xde, 0xd9, 0xcb, 0x01, 0x12, 0x08, 0x48, 0x41, + 0x09, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0xbf, 0xbf, + 0xdf, 0xff, 0x66, 0x6c, 0xc9, 0x24, 0xc9, 0x22, 0x29, 0x22, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0xfe, 0xfe, 0xff, 0xbf, 0x3e, 0xd6, 0x2c, 0x89, 0x24, + 0x92, 0x88, 0x92, 0x52, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, + 0xfb, 0xfb, 0xfe, 0xff, 0xc9, 0x9b, 0x22, 0x49, 0x24, 0x90, 0x92, 0x49, 0x12, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7d, 0xff, 0xef, 0xfb, 0xfb, 0xed, 0xb9, 0x12, + 0x44, 0x92, 0x4c, 0x46, 0x49, 0x24, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x7f, 0xef, 0xff, 0xbf, 0xff, 0xb6, 0x67, 0x49, 0x32, 0x49, 0x23, 0x31, 0x24, 0x88, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7b, 0xff, 0xbf, 0xff, 0xdf, 0xe6, + 0xdc, 0x49, 0x09, 0x24, 0x90, 0x89, 0x24, 0x9a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x7f, 0xbe, 0xfe, 0xff, 0x7e, 0xf9, 0x97, 0x24, 0xc9, 0x24, 0x94, 0x88, 0x92, + 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0xfb, 0xfb, 0xed, + 0xfb, 0xf7, 0x73, 0x24, 0x24, 0x92, 0x44, 0x66, 0x49, 0x24, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0xff, 0xef, 0xff, 0xff, 0xf4, 0xcc, 0x93, 0x24, 0x92, 0x49, + 0x11, 0x24, 0x92, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7b, 0xef, + 0xff, 0xff, 0xef, 0xbe, 0xbb, 0x10, 0x92, 0x49, 0x23, 0x11, 0x24, 0x92, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0xff, 0x7f, 0x7b, 0xff, 0xfb, 0xab, 0x4c, 0x92, + 0x49, 0x24, 0xcc, 0x92, 0x48, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x7f, 0xfd, 0xfd, 0xff, 0xbd, 0xfc, 0xcc, 0x42, 0x49, 0x24, 0x90, 0x22, 0x49, 0x24, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0x7f, 0xf7, 0xef, 0xff, 0xef, 0x77, + 0x32, 0x49, 0x24, 0x93, 0x22, 0x49, 0x24, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x7b, 0xf7, 0xdf, 0xfe, 0xf7, 0xbf, 0x33, 0x09, 0x24, 0x92, 0x48, 0x99, 0x24, 0x92, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0xff, 0xff, 0xdf, 0xff, + 0xff, 0x9a, 0x49, 0x24, 0x92, 0x4a, 0x44, 0x92, 0x48, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x7f, 0xde, 0xff, 0x7f, 0xdf, 0xfe, 0xed, 0x24, 0x92, 0x49, 0x22, 0x44, + 0x92, 0x48, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7d, 0xff, 0xfb, + 0xfb, 0xfd, 0xf7, 0xad, 0x24, 0x92, 0x49, 0x24, 0x92, 0x49, 0x26, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0xfb, 0xdf, 0xff, 0xbf, 0xdf, 0xd3, 0x12, 0x49, 0x24, + 0x91, 0x22, 0x49, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7b, + 0xdf, 0xff, 0xef, 0xff, 0xff, 0xdd, 0x49, 0x24, 0x92, 0x49, 0x29, 0x24, 0x98, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0xff, 0x7e, 0xfe, 0xf7, 0x7d, 0xed, 0x24, + 0x92, 0x49, 0x26, 0x49, 0x24, 0x86, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x7f, 0x7f, 0xf7, 0xff, 0xff, 0xff, 0xe6, 0x24, 0x92, 0x49, 0x20, 0x92, 0x49, 0x20, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0xf7, 0xff, 0xdf, 0xde, 0xf7, + 0xfb, 0x12, 0x49, 0x24, 0x99, 0x24, 0x92, 0x48, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x7b, 0xff, 0x7f, 0xfb, 0xff, 0xff, 0x79, 0xc9, 0x24, 0x92, 0x44, 0x49, 0x24, + 0x96, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0xdf, 0xfd, 0xff, + 0xfb, 0xdf, 0xfc, 0x24, 0x92, 0x49, 0x24, 0x92, 0x49, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0x7d, 0xef, 0xdf, 0x7f, 0xfd, 0xff, 0x24, 0x92, 0x49, 0x23, + 0x24, 0x92, 0x48, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7d, 0xff, + 0xff, 0xff, 0xff, 0x7f, 0xdd, 0x12, 0x49, 0x24, 0x98, 0x49, 0x24, 0x92, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0xfb, 0xdf, 0x7d, 0xef, 0xf7, 0xfe, 0x49, 0x24, + 0x92, 0x44, 0x92, 0x49, 0x24, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x7b, 0xef, 0xfd, 0xf7, 0xff, 0xff, 0x7b, 0x24, 0x92, 0x49, 0x24, 0x92, 0x49, 0x24, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0xff, 0xbf, 0xff, 0xdd, 0xef, 0xff, + 0x24, 0x92, 0x49, 0x22, 0x49, 0x24, 0x92, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x7f, 0x7e, 0xff, 0xff, 0x7f, 0xff, 0xef, 0x12, 0x49, 0x24, 0x99, 0x24, 0x92, 0x48, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0xff, 0xfd, 0xdf, 0xff, + 0xbd, 0xff, 0x49, 0x24, 0x92, 0x44, 0x92, 0x49, 0x24, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x7b, 0xef, 0xf7, 0xfd, 0xfd, 0xff, 0xdf, 0x24, 0x92, 0x49, 0x24, 0x92, + 0x49, 0x24, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0xfe, 0xff, + 0xff, 0xef, 0xf7, 0xff, 0x24, 0x92, 0x49, 0x22, 0x49, 0x24, 0x92, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0x7f, 0xef, 0x77, 0xff, 0xff, 0x7b, 0x12, 0x49, 0x24, + 0x99, 0x24, 0x92, 0x48, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, + 0xf7, 0xff, 0xff, 0x7f, 0x7f, 0xff, 0x49, 0x24, 0x92, 0x44, 0x92, 0x49, 0x20, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0d, 0xff, 0xbe, 0xff, 0xfb, 0xf7, 0xee, 0x24, + 0x92, 0x49, 0x24, 0x92, 0x49, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x03, 0xde, 0xfb, 0xf7, 0xef, 0xff, 0xf8, 0x04, 0x92, 0x49, 0x22, 0x49, 0x24, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x7f, 0xde, + 0xf0, 0x02, 0x49, 0x24, 0x99, 0x24, 0x90, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x3f, 0xff, 0xdf, 0xfe, 0xff, 0xc0, 0x00, 0x49, 0x24, 0x84, 0x92, 0x40, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1b, 0xdf, 0x7d, + 0xff, 0xfb, 0x00, 0x00, 0x24, 0x92, 0x64, 0x92, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xfd, 0xff, 0xdd, 0xfe, 0x00, 0x00, 0x12, 0x49, 0x12, + 0x49, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, + 0xff, 0xfb, 0xff, 0xd8, 0x00, 0x00, 0x02, 0x49, 0x12, 0x48, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0xef, 0xfb, 0xe0, 0x00, 0x00, 0x01, + 0x24, 0xc9, 0x24, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x3f, 0xff, 0x7f, 0x80, 0x00, 0x00, 0x00, 0x92, 0x24, 0x90, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x7f, 0xf7, 0x00, 0x00, + 0x00, 0x00, 0x12, 0x24, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x03, 0xfd, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x09, 0x92, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xef, 0xd8, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x48, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x02, 0x48, 0x00, + 0x00, 0x00, 0x07, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x80, 0x00, 0x00, 0x00, + 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x1f, 0xc0, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x02, 0x60, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x3f, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x18, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xfc, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x33, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4c, + 0xc5, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xfb, + 0xff, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xd0, 0x30, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xff, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x06, 0x33, 0x0a, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x7f, 0xdf, 0xdb, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x19, 0xa4, 0xc9, 0x14, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xff, 0x7e, 0xff, 0xfc, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x26, 0x64, 0x24, 0x84, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x03, 0xfd, 0xfb, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe6, 0x93, 0x24, 0xa3, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xff, 0xff, 0xf7, 0xff, 0xc0, + 0x00, 0x00, 0x00, 0x03, 0x19, 0x90, 0x92, 0x30, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x3f, 0xef, 0xef, 0xbf, 0xef, 0xf0, 0x00, 0x00, 0x00, 0x0c, 0xd9, 0x4c, 0x92, + 0x4c, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xbf, 0xbf, 0xff, + 0xff, 0xf8, 0x00, 0x00, 0x00, 0x13, 0x26, 0x42, 0x49, 0x03, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x01, 0xff, 0xfe, 0xfe, 0xfd, 0xbd, 0xfe, 0x00, 0x00, 0x00, 0x73, 0x33, + 0x32, 0x49, 0x30, 0xc3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xfe, 0xfb, + 0xfb, 0xef, 0xff, 0xff, 0x80, 0x00, 0x01, 0x8c, 0xcc, 0x89, 0x24, 0x8c, 0x30, 0x80, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xf7, 0xff, 0xff, 0xff, 0xf7, 0xbf, 0xe0, 0x00, 0x06, + 0x6c, 0xcc, 0x89, 0x24, 0x83, 0x0c, 0xb0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x36, + 0x4d, 0x14, 0x8c, 0x92, 0x24, 0xa4, 0xd0, 0x00, 0x09, 0x93, 0x32, 0x64, 0x92, 0x70, 0xc2, 0x08, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2d, 0xb3, 0x67, 0x6b, 0x6d, 0xbe, 0xdb, 0x50, + 0x00, 0x0a, 0x73, 0x32, 0x12, 0x49, 0x0c, 0x32, 0x48, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x29, 0xb6, 0xed, 0x73, 0x6d, 0xcb, 0x5b, 0x60, 0x00, 0x0b, 0x0c, 0xcc, 0x92, 0x49, 0x23, + 0x09, 0x24, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x36, 0x59, 0x99, 0x9c, 0x92, 0x69, + 0x64, 0xb0, 0x00, 0x09, 0xec, 0xc9, 0x24, 0x92, 0x48, 0xc9, 0x24, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x37, 0x6d, 0x76, 0xce, 0xfb, 0xbd, 0xbd, 0xb0, 0x00, 0x0c, 0x23, 0x32, 0x49, + 0x24, 0x92, 0x24, 0x90, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x29, 0xa7, 0x4e, 0x73, + 0x4d, 0x96, 0x97, 0x40, 0x00, 0x07, 0x9b, 0x32, 0x49, 0x24, 0x92, 0x24, 0x90, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x2e, 0xda, 0xd9, 0xb5, 0x66, 0x73, 0x72, 0x70, 0x00, 0x08, 0xd8, + 0xc9, 0x24, 0x92, 0x49, 0x92, 0x4c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x32, 0x72, + 0xb7, 0x9d, 0xbb, 0x6d, 0x6d, 0xb0, 0x00, 0x0a, 0x66, 0xc9, 0x24, 0x92, 0x48, 0x49, 0x20, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x37, 0x9e, 0xcc, 0xd3, 0x33, 0x4d, 0x99, 0x90, 0x00, + 0x0b, 0x26, 0x24, 0x92, 0x49, 0x26, 0x49, 0x24, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x2c, 0xcb, 0x73, 0x6d, 0xcd, 0xb6, 0xdb, 0x60, 0x00, 0x09, 0x99, 0x92, 0x49, 0x24, 0x91, 0x24, + 0x90, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2b, 0x79, 0x36, 0x6c, 0xdc, 0xb2, 0x66, + 0xe0, 0x00, 0x0c, 0xd9, 0x92, 0x49, 0x24, 0x91, 0x24, 0x90, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x33, 0x27, 0xad, 0x9b, 0x33, 0xcf, 0xb6, 0x90, 0x00, 0x06, 0x66, 0x49, 0x24, 0x92, + 0x4c, 0x92, 0x4c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x36, 0xec, 0xe9, 0xd3, 0xb6, + 0x79, 0x99, 0xb0, 0x00, 0x09, 0x96, 0x49, 0x24, 0x92, 0x42, 0x49, 0x20, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x2c, 0xdb, 0x36, 0x76, 0xcd, 0x96, 0x6d, 0xa0, 0x00, 0x0b, 0x31, 0x24, + 0x92, 0x49, 0x32, 0x49, 0x24, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2d, 0x96, 0xd7, + 0x2c, 0xd9, 0xd6, 0xe6, 0x70, 0x00, 0x0a, 0x6c, 0x92, 0x49, 0x24, 0x89, 0x24, 0x90, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x33, 0x74, 0xd9, 0xed, 0x36, 0x73, 0x9b, 0x50, 0x00, 0x09, + 0x8a, 0x49, 0x24, 0x92, 0x49, 0x24, 0x90, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x36, + 0x6d, 0xad, 0x97, 0x67, 0x2c, 0xdb, 0x60, 0x00, 0x0d, 0xb2, 0x49, 0x24, 0x92, 0x44, 0x92, 0x4c, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2d, 0xab, 0x36, 0x73, 0x6d, 0xce, 0x6c, 0xd0, + 0x00, 0x04, 0x64, 0x92, 0x49, 0x24, 0x92, 0x49, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x29, 0xb3, 0x73, 0x6c, 0xd9, 0x73, 0xa7, 0x50, 0x00, 0x0b, 0x19, 0x24, 0x92, 0x49, 0x22, + 0x49, 0x24, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x36, 0xdd, 0xcd, 0x9b, 0x9b, 0x39, + 0xb9, 0xb0, 0x00, 0x0a, 0xd2, 0x49, 0x24, 0x92, 0x4c, 0x92, 0x48, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x36, 0x4c, 0xb6, 0xda, 0x6c, 0xce, 0x6c, 0xa0, 0x00, 0x09, 0x92, 0x49, 0x24, + 0x92, 0x41, 0x24, 0x90, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2b, 0x73, 0xb2, 0x67, + 0x67, 0xd6, 0xcf, 0x60, 0x00, 0x0c, 0x64, 0x92, 0x49, 0x24, 0x99, 0x24, 0x94, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x2b, 0x9e, 0x4f, 0xb5, 0x9a, 0x73, 0x73, 0x70, 0x00, 0x07, 0x24, + 0x92, 0x49, 0x24, 0x84, 0x92, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0xe5, + 0xf4, 0xb4, 0xfb, 0x2d, 0x34, 0xd0, 0x00, 0x09, 0x92, 0x49, 0x24, 0x92, 0x64, 0x92, 0x48, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x27, 0x35, 0x36, 0xcf, 0x25, 0xd9, 0xcf, 0x30, 0x00, + 0x08, 0xc9, 0x24, 0x92, 0x49, 0x12, 0x49, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x3d, 0xdd, 0x9b, 0x69, 0xdc, 0xd6, 0xd9, 0xa0, 0x00, 0x0e, 0x24, 0x92, 0x49, 0x24, 0x92, 0x49, + 0x24, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0xcb, 0x69, 0x6e, 0x56, 0xb6, 0xb6, + 0xd0, 0x00, 0x03, 0x24, 0x92, 0x49, 0x24, 0x89, 0x24, 0x90, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x37, 0x3a, 0x6f, 0x33, 0xb3, 0xad, 0xa6, 0x70, 0x00, 0x09, 0x12, 0x49, 0x24, 0x92, + 0x64, 0x92, 0x48, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x35, 0xe7, 0xb2, 0xdc, 0xec, + 0xc9, 0x6d, 0x90, 0x00, 0x0c, 0xc9, 0x24, 0x92, 0x49, 0x12, 0x49, 0x24, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x2c, 0x9c, 0xda, 0xcd, 0x2e, 0x7b, 0x59, 0xd0, 0x00, 0x06, 0x24, 0x92, + 0x49, 0x24, 0x92, 0x49, 0x24, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2b, 0xb3, 0x4e, + 0xb3, 0xb3, 0xa6, 0xdb, 0x60, 0x00, 0x09, 0x24, 0x92, 0x49, 0x24, 0x89, 0x24, 0x90, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x36, 0x6d, 0x73, 0x6e, 0xdb, 0x3c, 0xce, 0x60, 0x00, 0x09, + 0x12, 0x49, 0x24, 0x92, 0x64, 0x92, 0x48, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x35, + 0xcd, 0x9d, 0x69, 0x4c, 0xd3, 0x69, 0x90, 0x00, 0x04, 0xc9, 0x24, 0x92, 0x49, 0x12, 0x49, 0x24, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x19, 0xb6, 0xe5, 0x9d, 0xb6, 0xdb, 0x3b, 0xb0, + 0x00, 0x04, 0x24, 0x92, 0x49, 0x24, 0x92, 0x49, 0x24, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x0e, 0x6a, 0x6d, 0xb6, 0xb3, 0x6d, 0xb6, 0x40, 0x00, 0x03, 0x24, 0x92, 0x49, 0x24, 0x89, + 0x24, 0x90, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x5b, 0x9a, 0x66, 0xcd, 0x25, + 0xa5, 0x80, 0x00, 0x00, 0x92, 0x49, 0x24, 0x92, 0x64, 0x92, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x01, 0xd5, 0xb3, 0xd9, 0x7d, 0xf6, 0x6c, 0x00, 0x00, 0x00, 0x12, 0x49, 0x24, + 0x92, 0x12, 0x49, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6d, 0x6d, 0x37, + 0x26, 0x5b, 0x70, 0x00, 0x00, 0x00, 0x09, 0x24, 0x92, 0x49, 0x92, 0x48, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1b, 0x4d, 0xac, 0xeb, 0x4d, 0x90, 0x00, 0x00, 0x00, 0x04, + 0x92, 0x49, 0x24, 0x49, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, + 0xda, 0xeb, 0x9b, 0x74, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x92, 0x49, 0x24, 0x49, 0x20, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xb3, 0x33, 0x74, 0xd6, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x49, 0x24, 0x93, 0x24, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xed, 0x9c, 0xcd, 0x98, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0x92, 0x48, 0x92, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2c, 0xe6, 0xbb, 0x68, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x04, 0x92, 0x48, 0x92, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x17, 0x6e, 0xca, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x49, 0x26, + 0x48, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x39, 0x76, + 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x24, 0x91, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xcd, 0x9c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x24, 0x91, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x66, 0xc8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x12, 0x4c, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3b, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x09, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x30, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 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 +}; +*/ + +/* +// Bitcoin Logo +const unsigned char bitcoin_logo[] PROGMEM = { + // 'bitcoin64, 64x64px + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0x03, 0xff, 0xff, 0x80, 0x00, 0x00, + 0x00, 0x00, 0x0f, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xff, 0xff, 0xfc, 0x00, 0x00, + 0x00, 0x00, 0x7f, 0xff, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, + 0x00, 0x03, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x00, 0x00, 0x07, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x00, + 0x00, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x0f, 0xff, 0xfc, 0x7f, 0xff, 0xf0, 0x00, + 0x00, 0x1f, 0xff, 0xfc, 0x63, 0xff, 0xf8, 0x00, 0x00, 0x3f, 0xff, 0xfc, 0x63, 0xff, 0xfc, 0x00, + 0x00, 0x7f, 0xfe, 0x38, 0xe3, 0xff, 0xfe, 0x00, 0x00, 0x7f, 0xfe, 0x00, 0xe3, 0xff, 0xfe, 0x00, + 0x00, 0xff, 0xfe, 0x00, 0x03, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0x80, 0x03, 0xff, 0xff, 0x00, + 0x00, 0xff, 0xff, 0xc0, 0x00, 0xff, 0xff, 0x80, 0x01, 0xff, 0xff, 0xc0, 0x00, 0x7f, 0xff, 0x80, + 0x01, 0xff, 0xff, 0xc1, 0xe0, 0x3f, 0xff, 0x80, 0x01, 0xff, 0xff, 0x81, 0xf8, 0x1f, 0xff, 0x80, + 0x03, 0xff, 0xff, 0x83, 0xf8, 0x1f, 0xff, 0xc0, 0x03, 0xff, 0xff, 0x83, 0xf8, 0x1f, 0xff, 0xc0, + 0x03, 0xff, 0xff, 0x83, 0xf8, 0x1f, 0xff, 0xc0, 0x03, 0xff, 0xff, 0x01, 0xf0, 0x1f, 0xff, 0xc0, + 0x03, 0xff, 0xff, 0x00, 0x00, 0x3f, 0xff, 0xc0, 0x03, 0xff, 0xff, 0x00, 0x00, 0x7f, 0xff, 0xc0, + 0x03, 0xff, 0xff, 0x06, 0x00, 0xff, 0xff, 0xc0, 0x03, 0xff, 0xfe, 0x07, 0xc0, 0x7f, 0xff, 0xc0, + 0x03, 0xff, 0xfe, 0x0f, 0xe0, 0x3f, 0xff, 0xc0, 0x03, 0xff, 0xfe, 0x0f, 0xf0, 0x3f, 0xff, 0xc0, + 0x03, 0xff, 0xec, 0x0f, 0xf0, 0x3f, 0xff, 0xc0, 0x03, 0xff, 0xe0, 0x0f, 0xf0, 0x3f, 0xff, 0xc0, + 0x01, 0xff, 0xc0, 0x0f, 0xf0, 0x3f, 0xff, 0x80, 0x01, 0xff, 0xc0, 0x00, 0x00, 0x3f, 0xff, 0x80, + 0x01, 0xff, 0xf8, 0x00, 0x00, 0x7f, 0xff, 0x80, 0x01, 0xff, 0xfe, 0x00, 0x00, 0x7f, 0xff, 0x00, + 0x00, 0xff, 0xfe, 0x30, 0x00, 0xff, 0xff, 0x00, 0x00, 0xff, 0xfe, 0x38, 0xc7, 0xff, 0xff, 0x00, + 0x00, 0x7f, 0xfe, 0x31, 0xff, 0xff, 0xfe, 0x00, 0x00, 0x7f, 0xfc, 0x31, 0xff, 0xff, 0xfe, 0x00, + 0x00, 0x3f, 0xff, 0xf1, 0xff, 0xff, 0xfc, 0x00, 0x00, 0x1f, 0xff, 0xf1, 0xff, 0xff, 0xf8, 0x00, + 0x00, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x00, + 0x00, 0x07, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x00, 0x00, 0x03, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x00, + 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x7f, 0xff, 0xff, 0xfe, 0x00, 0x00, + 0x00, 0x00, 0x3f, 0xff, 0xff, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xff, 0xff, 0xf0, 0x00, 0x00, + 0x00, 0x00, 0x01, 0xff, 0xff, 0xc0, 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 }; +*/ + +#endif \ No newline at end of file diff --git a/firmware/include/lightning_atm.h b/firmware/include/lightning_atm.h deleted file mode 100644 index 34e8416..0000000 --- a/firmware/include/lightning_atm.h +++ /dev/null @@ -1,146 +0,0 @@ -#ifndef LIGHTNING_ATM_H -#define LIGHTNING_ATM_H - -#include -#include -#include -#include "qrcode.h" -#include "Bitcoin.h" -#include -#include -#include -#include - -// ######################################## -// ########### USER ACTION ########### -// ######################################## -// Generate and copy in LNbits with the LNURLDevice extension the string for the ATM and paste it here: -const char* lnurlDeviceString = "https://legend.lnbits.com/lnurldevice/api/v1/lnurl/idexample,keyexample,EUR"; -// #################### EXAMPLE: https://legend.lnbits.com/lnurldevice/api/v1/lnurl/idexample,keyexample,EUR -// ######################################## -// ######################################## -// ######################################## - -// Activate for debugging over Serial (1), deactivate in production use (0) -#define DEBUG_MODE 1 - -#define COIN_PIN 17 -#define PULSE_TIMEOUT 200 -#define LED_BUTTON_PIN 21 // old: 13 | new: 21 -#define BUTTON_PIN 32 -#define MOSFET_PIN 16 // old: 12 | new: 16 -#define QR_VERSION 6 // 20 is standard. 6 for simpler QR code, but does not always work. - -#define DSPLY_PIN_CS 26 -#define DSPLY_PIN_DC 25 -#define DSPLY_PIN_RST 33 -#define DSPLY_PIN_BUSY 27 -#define DSPLY_PIN_CLK 18 // SCK pin SPI -#define DSPLY_PIN_DIN 23 // MOSI pin SPI - -// Folowing #defines are Taken from : -//#include "GxEPD2_display_selection_new_style.h" -const uint8_t nr_supported_display_types = 6; -const char* supported_display_types[nr_supported_display_types] = {"GxEPD2_420", "GxEPD2_150_BN", "GxEPD2_270", "GxEPD2_270_GDEY027T91", "GxEPD2_213_B74", "GxEPD2_213_flex"}; - -#undef USE_HSPI_FOR_EPD -#define GxEPD2_DISPLAY_CLASS GxEPD2_BW // Black and White e-Paper -#define GxEPD2_DRIVER_CLASS GxEPD2_420 // 4.2 inch Waveshare e-paper display -//#define GxEPD2_DRIVER_CLASS GxEPD2_150_BN // 1.54 inch Waveshare e-paper display -const char* display_type = "GxEPD2_420"; - -// Treiber für das 4.2" Schwarz-Weiß E-Paper -GxEPD2_DISPLAY_CLASS display(GxEPD2_DRIVER_CLASS(DSPLY_PIN_CS, DSPLY_PIN_DC, DSPLY_PIN_RST, DSPLY_PIN_BUSY)); // Waveshare ESP32 Driver Board - -typedef struct s_qrdata -{ - uint8_t current_y; - uint8_t current_x; - uint8_t start_x; - uint8_t start_y; - uint8_t module_size; - uint8_t qr_size; -} t_qrdata; - -extern String baseURLATM; -extern String secretATM; -extern String currencyATM; - -// Bitcoin Logo -const unsigned char bitcoin_logo[] PROGMEM = { - // 'bitcoin64, 64x64px - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0x03, 0xff, 0xff, 0x80, 0x00, 0x00, - 0x00, 0x00, 0x0f, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xff, 0xff, 0xfc, 0x00, 0x00, - 0x00, 0x00, 0x7f, 0xff, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, - 0x00, 0x03, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x00, 0x00, 0x07, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x00, - 0x00, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x0f, 0xff, 0xfc, 0x7f, 0xff, 0xf0, 0x00, - 0x00, 0x1f, 0xff, 0xfc, 0x63, 0xff, 0xf8, 0x00, 0x00, 0x3f, 0xff, 0xfc, 0x63, 0xff, 0xfc, 0x00, - 0x00, 0x7f, 0xfe, 0x38, 0xe3, 0xff, 0xfe, 0x00, 0x00, 0x7f, 0xfe, 0x00, 0xe3, 0xff, 0xfe, 0x00, - 0x00, 0xff, 0xfe, 0x00, 0x03, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0x80, 0x03, 0xff, 0xff, 0x00, - 0x00, 0xff, 0xff, 0xc0, 0x00, 0xff, 0xff, 0x80, 0x01, 0xff, 0xff, 0xc0, 0x00, 0x7f, 0xff, 0x80, - 0x01, 0xff, 0xff, 0xc1, 0xe0, 0x3f, 0xff, 0x80, 0x01, 0xff, 0xff, 0x81, 0xf8, 0x1f, 0xff, 0x80, - 0x03, 0xff, 0xff, 0x83, 0xf8, 0x1f, 0xff, 0xc0, 0x03, 0xff, 0xff, 0x83, 0xf8, 0x1f, 0xff, 0xc0, - 0x03, 0xff, 0xff, 0x83, 0xf8, 0x1f, 0xff, 0xc0, 0x03, 0xff, 0xff, 0x01, 0xf0, 0x1f, 0xff, 0xc0, - 0x03, 0xff, 0xff, 0x00, 0x00, 0x3f, 0xff, 0xc0, 0x03, 0xff, 0xff, 0x00, 0x00, 0x7f, 0xff, 0xc0, - 0x03, 0xff, 0xff, 0x06, 0x00, 0xff, 0xff, 0xc0, 0x03, 0xff, 0xfe, 0x07, 0xc0, 0x7f, 0xff, 0xc0, - 0x03, 0xff, 0xfe, 0x0f, 0xe0, 0x3f, 0xff, 0xc0, 0x03, 0xff, 0xfe, 0x0f, 0xf0, 0x3f, 0xff, 0xc0, - 0x03, 0xff, 0xec, 0x0f, 0xf0, 0x3f, 0xff, 0xc0, 0x03, 0xff, 0xe0, 0x0f, 0xf0, 0x3f, 0xff, 0xc0, - 0x01, 0xff, 0xc0, 0x0f, 0xf0, 0x3f, 0xff, 0x80, 0x01, 0xff, 0xc0, 0x00, 0x00, 0x3f, 0xff, 0x80, - 0x01, 0xff, 0xf8, 0x00, 0x00, 0x7f, 0xff, 0x80, 0x01, 0xff, 0xfe, 0x00, 0x00, 0x7f, 0xff, 0x00, - 0x00, 0xff, 0xfe, 0x30, 0x00, 0xff, 0xff, 0x00, 0x00, 0xff, 0xfe, 0x38, 0xc7, 0xff, 0xff, 0x00, - 0x00, 0x7f, 0xfe, 0x31, 0xff, 0xff, 0xfe, 0x00, 0x00, 0x7f, 0xfc, 0x31, 0xff, 0xff, 0xfe, 0x00, - 0x00, 0x3f, 0xff, 0xf1, 0xff, 0xff, 0xfc, 0x00, 0x00, 0x1f, 0xff, 0xf1, 0xff, 0xff, 0xf8, 0x00, - 0x00, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x00, - 0x00, 0x07, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x00, 0x00, 0x03, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x00, - 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x7f, 0xff, 0xff, 0xfe, 0x00, 0x00, - 0x00, 0x00, 0x3f, 0xff, 0xff, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xff, 0xff, 0xf0, 0x00, 0x00, - 0x00, 0x00, 0x01, 0xff, 0xff, 0xc0, 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 }; - -// put function declarations here: -void clean_screen(); -void initialize_display(); -void to_upper(char* arr); -void qr_withdrawl_screen(const char* qr_content); -char* makeLNURL(float total); -int xor_encrypt(uint8_t* output, size_t outlen, uint8_t* key, size_t keylen, uint8_t* nonce, size_t nonce_len, uint64_t pin, uint64_t amount_in_cents); -void show_inserted_amount(int amount_in_cents); -String get_amount_string(int amount_in_cents); -unsigned int detect_coin(); -void home_screen(); -void IRAM_ATTR button_pressed_itr(); -void wait_for_user_to_scan(); -String getValue(String data, char separator, int index); -void display_sleep(); -void test_macro(); - -// Waveshare 1.54 inch e-ink display functions -void home_screen_waveshare_1_54(); -void show_inserted_amount_waveshare_1_54(String amount_in_euro); -void qr_withdrawl_screen_waveshare_1_54(const char* qr_content); -void clean_screen_waveshare_1_54(); - -// Waveshare 2.7 inch e-ink display functions -void home_screen_waveshare_2_7(); -void show_inserted_amount_waveshare_2_7(String amount_in_euro); -void qr_withdrawl_screen_waveshare_2_7(const char* qr_content); -void clean_screen_waveshare_2_7(); - -// Waveshare 2.13 inch e-ink display (250x122) functions -void home_screen_waveshare_2_13(); -void show_inserted_amount_waveshare_2_13(String amount_in_euro); -void qr_withdrawl_screen_waveshare_2_13(const char* qr_content); -void clean_screen_waveshare_2_13(); - -// Waveshare 2.13 inch e-ink display (D) flex (yellow) (212x104) functions -void home_screen_waveshare_2_13_flex(); -void show_inserted_amount_waveshare_2_13_flex(String amount_in_euro); -void qr_withdrawl_screen_waveshare_2_13_flex(const char* qr_content); -void clean_screen_waveshare_2_13_flex(); - -#endif diff --git a/firmware/include/lnurlutil.h b/firmware/include/lnurlutil.h new file mode 100644 index 0000000..aab1477 --- /dev/null +++ b/firmware/include/lnurlutil.h @@ -0,0 +1,22 @@ +#ifndef BLESKOMAT_UTIL_H +#define BLESKOMAT_UTIL_H + +// Lnurluril.h/cpp code basically taken form Bleskomat util code: https://github.com/bleskomat/bleskomat-diy and simplyfied to our needs. +// Thank you! + +#include +#include +#include +#include +#include + +namespace lnurlutil { + std::string createQrContent (const double accumulatedValue); + std::string createSignedLnurlWithdraw(const double &amount); + std::string lnurlEncode(const std::string &text); + std::string toUpperCase(std::string s); + std::string urlEncode(const std::string &value); + std::string floatToStringWithPrecision(const float &value, const unsigned short &precision = 6); +} + +#endif diff --git a/firmware/include/main.h b/firmware/include/main.h new file mode 100644 index 0000000..ebfa484 --- /dev/null +++ b/firmware/include/main.h @@ -0,0 +1,4 @@ +#ifndef MAIN_H +#define MAIN_H + +#endif diff --git a/firmware/include/state.h b/firmware/include/state.h new file mode 100644 index 0000000..d957b0b --- /dev/null +++ b/firmware/include/state.h @@ -0,0 +1,37 @@ +#ifndef ATM_STATE_H +#define ATM_STATE_H + +#include +#include +#include +#include + +#include "button.h" +#include "coinacceptor.h" +#include "epaperdisplay.h" + +extern EpaperDisplay epDisp; +extern AtmButton ok_button; +extern AtmButton cancel_button; +extern CoinAcceptor cacc; + +namespace atm { + + typedef enum { + INIT, + WAIT_FOR_COIN, + WAIT_FOR_BUTTON, + PROCESS_COIN, + GENERATE_QR, + CANCEL_PAYMENT, + CANCEL_CONFIRMED, + PAYMENT_CONFIRMED, + ERROR_STATE + } State; + + void stateMachine(void); + void reset(void); + +} + +#endif \ No newline at end of file diff --git a/firmware/platformio.ini b/firmware/platformio.ini index 48746ed..1d529a5 100644 --- a/firmware/platformio.ini +++ b/firmware/platformio.ini @@ -16,4 +16,4 @@ monitor_speed = 115200 lib_deps = zinggjm/GxEPD2@^1.5.2 ricmoo/QRCode@^0.0.1 - stepansnigirev/uBitcoin@^0.2.0 + chill1/lnurl@0.4.1 diff --git a/firmware/src/button.cpp b/firmware/src/button.cpp new file mode 100644 index 0000000..b052bcc --- /dev/null +++ b/firmware/src/button.cpp @@ -0,0 +1,92 @@ +#include "button.h" + +// Konstruktor +AtmButton::AtmButton(uint8_t buttonPin, uint8_t buttonLedPin) : pin(buttonPin), ledPin(buttonLedPin), pressed(false) {} + +// Initialisierung des Pins & Interrupts +void AtmButton::begin() { + pinMode(ledPin, OUTPUT); + pinMode(pin, INPUT_PULLUP); + ledOff(); + attachInterruptArg(digitalPinToInterrupt(pin), buttonIsrHandler, this, FALLING); +} + +void IRAM_ATTR AtmButton::buttonIsrHandler(void* arg) { + AtmButton* self = static_cast(arg); + unsigned long current_ms = millis(); + if((false == self->pressed) && ((current_ms - self->last_pressed_ms) > self->DEBOUNCE_BUTTON_MS)) + { + self->pressed = true; + self->pressed_at_ms = current_ms; + self->pressed_after_ms = current_ms - self->last_pressed_ms; + self->last_pressed_ms = current_ms; + self->pressed_count++; + } +} + +bool AtmButton::wasPressed() { + if (pressed) { + pressed = false; // Reset des Status + return true; + } + return false; +} + +void AtmButton::reset() { + pressed = false; // Reset des Status + pressed_count = 0; +} + +void AtmButton::softPress() { + pressed = true; // Reset des Status + pressed_count++; +} + +void AtmButton::ledOn() { + digitalWrite(ledPin, LEDON); + ledState = LEDON; +} + +void AtmButton::ledOff() { + digitalWrite(ledPin, LEDOFF); + ledState = LEDOFF; +} + +void AtmButton::ledToggle() { + ledState = (LEDON == ledState) ? LEDOFF : LEDON; + digitalWrite(ledPin, ledState); +} + +bool AtmButton::iswaitingUntilPressed(unsigned long maxTimeToWaitMs, unsigned long blinkPeriodMs) +{ + /* will return as longs as waiting until the button is pressed */ + /* if blinkPeriodMs is 0 - there is no LED blinking */ + /* if maxTimeToWaitMs is 0 - there is no time out and wait is until button was pressed */ + unsigned long currentMs = millis(); + + if(false == activeWaiting) + { + activeWaiting = true; + pressed = false; + startWaitTime = currentMs; + lastWaitLedToggle = currentMs; + ledOn(); + } + + if( (true == pressed) || ((maxTimeToWaitMs > 0) && ((currentMs - startWaitTime) >= maxTimeToWaitMs)) ) + { + ledOff(); + activeWaiting = false; + return false; + } + + + if( (currentMs - lastWaitLedToggle) >= blinkPeriodMs ) + { + lastWaitLedToggle = currentMs; + ledToggle(); + } + + return true; + +} \ No newline at end of file diff --git a/firmware/src/coinacceptor.cpp b/firmware/src/coinacceptor.cpp new file mode 100644 index 0000000..a1adbae --- /dev/null +++ b/firmware/src/coinacceptor.cpp @@ -0,0 +1,145 @@ +#include "coinacceptor.h" +#include "lnurlutil.h" +#include + +CoinAcceptor::CoinAcceptor(uint8_t pulsePin, uint8_t enablePin, const unsigned int* pulseValues, const size_t maxPulses, const uint8_t pulseWidthMs, const uint16_t maxAllowedCentToInsert) : + pulsePin(pulsePin), enablePin(enablePin), pulseValues(pulseValues), maxPulses(maxPulses), pulseWidthMs(pulseWidthMs), maxAllowedCentToInsert(maxAllowedCentToInsert) { + /* malloc the array to store the single given coins in*/ + coinNumbers = new unsigned int[maxPulses]; + resetSumValue(); +} + +CoinAcceptor::~CoinAcceptor() { + delete[] coinNumbers; +} + +// Initialisierung des Pins & Interrupts +void CoinAcceptor::begin() { + pinMode(enablePin, OUTPUT); + pinMode(pulsePin, INPUT); + disable(); + Serial.println("Attaching interrupt to falling edge of coin acceptor pulse pin."); + attachInterrupt(digitalPinToInterrupt(pulsePin), std::bind(&CoinAcceptor::pulseIsrHandler,this), FALLING); +} + +void IRAM_ATTR CoinAcceptor::pulseIsrHandler() { + currentMs = millis(); + if(digitalRead(pulsePin) == LOW) + //if((lastPulseAtMs == 0) || ((currentMs - lastPulseAtMs) > pulseWidthMs)) + { + coinDetected = true; + lastPulseAtMs = currentMs; + coinPulses++; + } + allPulses++; +} + +void CoinAcceptor::disable() { + accState = ACC_DISABLED; + digitalWrite(enablePin, accState); +} + +void CoinAcceptor::enable() { + if(sumValue < maxAllowedCentToInsert) + { + accState = ACC_ENABLED; + coinDetected = false; + detectionError = 0; + coinPulses = 0; + allPulses = 0; + coinValue = 0; + lastPulseAtMs = 0; + digitalWrite(enablePin, accState); + } +} + +void CoinAcceptor::resetSumValue() +{ + sumValue = 0; + for (size_t i = 0; i < maxPulses; i++) { + coinNumbers[i] = 0; + } +} + +uint16_t CoinAcceptor::getSumValue() +{ + return sumValue; +} + +std::string CoinAcceptor::getSumValueStr() +{ + float value = sumValue/100.0; + return(lnurlutil::floatToStringWithPrecision(value,2)); +} + +std::string CoinAcceptor::getCoinsNumStr() const { + std::string result = ""; + + for (size_t i = 0; i < maxPulses; i++) { + if(pulseValues[i] > 0) + { + char temp[16]; + snprintf(temp, sizeof(temp), " %3d ", coinNumbers[i]); + result += temp; + } + } + return result; +} + +std::string CoinAcceptor::getCoinsValStr() const { + std::string result = ""; + + for (size_t i = 0; i < maxPulses; i++) { + if(pulseValues[i] > 0) + { + char temp[16]; + if(pulseValues[i] < 100) + { + snprintf(temp, sizeof(temp), " %2dct", pulseValues[i]); + } + else + { + snprintf(temp, sizeof(temp), " %1dEur", int(pulseValues[i]/100)); + } + result += temp; + } + } + return result; +} + +uint8_t CoinAcceptor::state() { + return accState; +} + +bool CoinAcceptor::detectCoin() { + if(true == coinDetected) + { + disable(); + long lastPulseBeforeMs = 0; + long maxMsSinceLastPulse = 8*pulseWidthMs; + do + { + lastPulseBeforeMs = millis() - lastPulseAtMs; + } while ((lastPulseAtMs == 0) || (lastPulseBeforeMs < maxMsSinceLastPulse )); + Serial.printf("DONE --- All pulses: %d Coin pulses: %d, Last pulse before: %d ms (max allowed: %d). \n", allPulses, coinPulses, lastPulseBeforeMs, maxMsSinceLastPulse); + if((coinPulses > 1) && (coinPulses <= maxPulses)) + { + coinValue = pulseValues[coinPulses-1]; // coin array index is running from 0 to maxPulses-1 ... + coinNumbers[coinPulses-1]++; + sumValue = sumValue + coinValue; + Serial.printf(" --- Detected coin value: %d cents. Sum is now: %d cents\n", coinValue, sumValue); + } + else + { + Serial.printf(" ERROR --- Number of pulses doesn't match any teached coin value\n"); + detectionError++; + } + coinDetected = false; + return true; + } + return false; +} + +uint16_t CoinAcceptor::getCoinValue() { + return coinValue; +} \ No newline at end of file diff --git a/firmware/src/epaperdisplay.cpp b/firmware/src/epaperdisplay.cpp new file mode 100644 index 0000000..d76ceed --- /dev/null +++ b/firmware/src/epaperdisplay.cpp @@ -0,0 +1,371 @@ +#include "epaperdisplay.h" +#include "qrcode.h" + +// *** for Waveshare ESP32 Driver board *** // +#if defined(ESP32) && defined(USE_HSPI_FOR_EPD) +SPIClass hspi(HSPI); +#endif +// *** end Waveshare ESP32 Driver board *** // + +EpaperDisplay::EpaperDisplay(uint8_t DSPLY_PIN_CS, uint8_t DSPLY_PIN_DC, uint8_t DSPLY_PIN_RST, uint8_t DSPLY_PIN_BUSY) +{ + epDisplay = new GxEPD2_DISPLAY_CLASS(GxEPD2_DRIVER_CLASS(DSPLY_PIN_CS, DSPLY_PIN_DC, DSPLY_PIN_RST, DSPLY_PIN_BUSY)); +} + +EpaperDisplay::~EpaperDisplay() +{ +} + +void EpaperDisplay::sleep() +{ + epDisplay->hibernate(); +} + +void EpaperDisplay::init() +{ + epDisplay->init(115200, true, 2, false); + // *** for Waveshare ESP32 Driver board *** // +#if defined(ESP32) && defined(USE_HSPI_FOR_EPD) + hspi.begin(13, 12, 14, 15); // remap hspi for EPD (swap pins) + epDisplay>epd2.selectSPI(hspi, SPISettings(4000000, MSBFIRST, SPI_MODE0)); +#endif + + epDisplay->setRotation(1); + setTextFont(1); + +} + +void EpaperDisplay::setTextFont(uint8_t size) +{ + switch(size){ + case 0: + /* provide text size of 0 to keep a set font as it is*/ + break; + case 1: + epDisplay->setTextSize(1); + epDisplay->setFont(&FreeSans9pt7b); + break; + case 2: + epDisplay->setTextSize(1); + epDisplay->setFont(&FreeSans12pt7b); + break; + case 3: + epDisplay->setTextSize(1); + epDisplay->setFont(&FreeSans18pt7b); + break; + case 4: + epDisplay->setTextSize(1); + epDisplay->setFont(&FreeSans24pt7b); + break; + // case 5: + // epDisplay->setTextSize(1); + // epDisplay->setFont(&FreeMonoBoldOblique24pt7b); + // break; + default: + epDisplay->setTextSize(1); + epDisplay->setFont(&FreeSans9pt7b); + break; + } +} + +void EpaperDisplay::cleanScreen() +{ + epDisplay->firstPage(); + do{ + epDisplay->clearScreen(); + } + while(epDisplay->nextPage()); + epDisplay->hibernate(); +} + + +uint16_t EpaperDisplay::xCenterText(const char* text) +{ + int16_t xul, yul; + uint16_t textWidth, textHeight; + epDisplay->getTextBounds(text, 0, 0, &xul, &yul, &textWidth, &textHeight); + xul = (epDisplay->width() - textWidth)/2; + if(xul < 0 ) + { + xul = 0; + } + return xul; +} + +uint16_t EpaperDisplay::yCenterText(const char* text) +{ + int16_t xul, yul; + uint16_t textWidth, textHeight; + epDisplay->getTextBounds(text, 0, 0, &xul, &yul, &textWidth, &textHeight); + yul = (epDisplay->height() - textHeight)/2; + if(yul < 0 ) + { + yul = 0; + } + return yul; +} + +void EpaperDisplay::drawText(const char* text, uint16_t x, uint16_t y) +{ + epDisplay->setCursor(x, y); + epDisplay->printf(text); +} + +void EpaperDisplay::drawText(const char* text, uint8_t textSize, uint16_t x, uint16_t y, uint16_t fgColor, uint16_t bgColor ) +{ + //epDisplay->setTextSize(textSize); + setTextFont(textSize); + epDisplay->setTextColor(fgColor, bgColor); + drawText(text, x, y); +} + +void EpaperDisplay::drawXCenteredText(const char* text, uint8_t textSize, uint16_t y, uint16_t fgColor, uint16_t bgColor ) +{ + //epDisplay->setTextSize(textSize); + setTextFont(textSize); + epDisplay->setTextColor(fgColor, bgColor); + drawText(text, xCenterText(text), y); +} + +void EpaperDisplay::drawYCenteredText(const char* text, uint8_t textSize, uint16_t x, uint16_t fgColor, uint16_t bgColor ) +{ + //epDisplay->setTextSize(textSize); + setTextFont(textSize); + epDisplay->setTextColor(fgColor, bgColor); + drawText(text, x, yCenterText(text)); +} + +void EpaperDisplay::drawCenteredText(const char* text, uint8_t textSize, uint16_t fgColor, uint16_t bgColor ) +{ + //epDisplay->setTextSize(textSize); + setTextFont(textSize); + epDisplay->setTextColor(fgColor, bgColor); + drawText(text, xCenterText(text), yCenterText(text)); +} + +void EpaperDisplay::updateText(const char* text, uint16_t x, uint16_t y) +{ + int16_t xul, yul; + uint16_t textWidth, textHeight; + epDisplay->getTextBounds(text, x, y, &xul, &yul, &textWidth, &textHeight); + epDisplay->setPartialWindow(xul, yul, textWidth, textHeight); + epDisplay->firstPage(); + do + { + epDisplay->setCursor(x, y); + epDisplay->printf(text); + } while (epDisplay->nextPage()); +} + +void EpaperDisplay::updateText(const char* text, uint8_t textSize, uint16_t x, uint16_t y, uint16_t fgColor, uint16_t bgColor) +{ + //epDisplay->setTextSize(textSize); + setTextFont(textSize); + epDisplay->setTextColor(fgColor, bgColor); + updateText(text, x, y); +} + + + +void EpaperDisplay::initScreen() +{ + uint16_t y = 360; + epDisplay->setFullWindow(); + epDisplay->firstPage(); + do + { + epDisplay->fillRect(0,0,epDisplay->width(), y - 50, GxEPD_BLACK); + epDisplay->drawBitmap(25, 30, epd_bitmap_makerlablogosATM_ML, 250, 250, GxEPD_WHITE); + + //epDisplay->drawFastHLine(20,y-50,epDisplay->width()-40, GxEPD_BLACK); + drawXCenteredText("Initialisierung ATM ...\n",2, y-20, GxEPD_BLACK,GxEPD_WHITE); + //epDisplay->drawFastHLine(20,y,epDisplay->width()-40, GxEPD_BLACK); + + epDisplay->fillRect(0,epDisplay->height()-40,epDisplay->width(), 40, GxEPD_BLACK); + drawXCenteredText("Zum Fortfahren Taster druecken!\n",1, epDisplay->height()-12, GxEPD_WHITE, GxEPD_BLACK); + } while (epDisplay->nextPage()); + epDisplay->hibernate(); +} + +void EpaperDisplay::homeScreen() +{ + uint16_t y = 0; + epDisplay->setFullWindow(); + epDisplay->firstPage(); + do + { + y = 0; + epDisplay->fillRect(0,y,epDisplay->width(), 50, GxEPD_BLACK); + drawXCenteredText("Belade deine MakerLab\n", 1, y+20, GxEPD_WHITE, GxEPD_BLACK); + drawXCenteredText("Lightning Wallet hier!\n", 1, y+40, GxEPD_WHITE, GxEPD_BLACK); + + y = 210; + epDisplay->drawFastHLine(10,y,epDisplay->width()-20, GxEPD_BLACK); + drawXCenteredText("Bitte Muenzen einwerfen!\n", 2, y + 25, GxEPD_BLACK, GxEPD_WHITE); + epDisplay->drawFastHLine(10,y+35,epDisplay->width()-20, GxEPD_BLACK); + + y = 20; + epDisplay->drawBitmap(50, y, epd_bitmap_makerlablogosATM_hand, 280,197,GxEPD_BLACK); + //drawXCenteredText("Betriebsbereit!\n", 3, 100, GxEPD_BLACK, GxEPD_BLACK); + + y = 270; + drawXCenteredText("1, 2, 5, 10, 20, 50 Cent,\n", 1, y, GxEPD_BLACK, GxEPD_WHITE); + drawXCenteredText("1 oder 2 Euro Muenzen.\n", 1, y+20, GxEPD_BLACK, GxEPD_WHITE); + + y = 310; + epDisplay->fillRect(0,y,epDisplay->width(), epDisplay->height()-y, GxEPD_BLACK); + epDisplay->drawBitmap(1, y+10, epd_bitmap_makerlablogosATM_ML_logo_land, 248, 69, GxEPD_WHITE); + epDisplay->drawBitmap(220, y+10, epd_bitmap_makerlablogosATM_BC_LN, 73, 64, GxEPD_WHITE); + + epDisplay->drawRoundRect(5, 55, epDisplay->width()-10, 250, 5, GxEPD_BLACK); + + } while (epDisplay->nextPage()); +} + +void EpaperDisplay::showInsertedAmount(const char* amount_in_euro, const char* coin_values, const char* coin_numbers, const char* max_ammount_in_euro, bool update) +{ + + uint16_t y = 0; + if(false == update) + { + epDisplay->setFullWindow(); + } + else{ + epDisplay->setPartialWindow(8,64,288,248); + } + epDisplay->firstPage(); + do + { + if(false == update) + { + y = 0; + epDisplay->fillRect(0,y,epDisplay->width(), 50, GxEPD_BLACK); + drawXCenteredText("Druecke den Taster, um die\n", 1, y+20, GxEPD_WHITE, GxEPD_BLACK); + drawXCenteredText("Einzahlung abzuschliessen!\n", 1, y+40, GxEPD_WHITE, GxEPD_BLACK); + } + + y = 180; + epDisplay->setFont(); + epDisplay->setTextSize(1); + drawXCenteredText("Aktueller Einzahlbetrag in Euro:\n", 0, 70, GxEPD_BLACK, GxEPD_WHITE); + epDisplay->setTextSize(9); + drawXCenteredText(amount_in_euro, 0, y - 75, GxEPD_BLACK, GxEPD_WHITE); + //epDisplay->drawFastHLine(10,y,epDisplay->width()-20, GxEPD_BLACK); + epDisplay->setTextSize(1); + drawXCenteredText("Maximaler Betrag: 10,00 Euro.\n", 0, y + 25, GxEPD_BLACK, GxEPD_WHITE); + epDisplay->drawFastHLine(10,y+50,epDisplay->width()-20, GxEPD_BLACK); + + y = 250; + epDisplay->setFont(); + epDisplay->setTextSize(1); + drawText(coin_values, 0, 20, y, GxEPD_BLACK, GxEPD_WHITE); + + drawText(coin_numbers, 0, 20, y+20, GxEPD_BLACK, GxEPD_WHITE); + + if(false == update) + { + y = 310; + epDisplay->fillRect(0,y,epDisplay->width(), epDisplay->height()-y, GxEPD_BLACK); + epDisplay->drawBitmap(1, y+10, epd_bitmap_makerlablogosATM_ML_logo_land, 248, 69, GxEPD_WHITE); + epDisplay->drawBitmap(220, y+10, epd_bitmap_makerlablogosATM_BC_LN, 73, 64, GxEPD_WHITE); + } + epDisplay->drawRoundRect(5, 55, epDisplay->width()-10, 250, 5, GxEPD_BLACK); + + } while (epDisplay->nextPage()); +} + +void EpaperDisplay::updateInsertedAmount(const char* amount_in_euro) +{ + updateText(amount_in_euro, 3, 20, 75, GxEPD_BLACK, GxEPD_WHITE); +} + +void EpaperDisplay::qrCode(const char* content, const char* sumValue) +{ + QRCode qrcoded; + uint8_t qrcodeData[qrcode_getBufferSize(QR_VERSION)]; // 20 is "qr version" + t_qrdata qr; + uint16_t color = GxEPD_BLACK; + + qrcode_initText(&qrcoded, qrcodeData, QR_VERSION, 0, content); + qr.module_size = 3; + qr.qr_size = qrcoded.size * qr.module_size; + Serial.printf("Sum value: %s, Qrcode size: %d, qrcoded.size %d\n", sumValue, qr.qr_size, qrcoded.size); + qr.start_x = (epDisplay->width() - qr.qr_size) / 2; + qr.start_y = (epDisplay->height() - qr.qr_size) / 2; + + epDisplay->setFullWindow(); + epDisplay->firstPage(); + + do + { + + for (qr.current_y = 0; qr.current_y < qrcoded.size; qr.current_y++) + { + for (qr.current_x = 0; qr.current_x < qrcoded.size; qr.current_x++) + { + if (qrcode_getModule(&qrcoded, qr.current_x, qr.current_y)) + { + color = GxEPD_BLACK; + } + else + { + color = GxEPD_WHITE; + } + + epDisplay->fillRect(qr.start_x + (qr.module_size * qr.current_x), + qr.start_y + (qr.module_size * qr.current_y), qr.module_size, qr.module_size, color); + } + } + + uint16_t radius_px = 5; + epDisplay->drawRoundRect(qr.start_x - radius_px , qr.start_y - radius_px, qr.qr_size+(2*radius_px), qr.qr_size+(2*radius_px), radius_px, GxEPD_BLACK); + + drawXCenteredText("Bitte scanne den QR-Code!\n", 1, 20, GxEPD_BLACK, GxEPD_WHITE ); + drawXCenteredText("Das Geld wird auf\n", 1, 40, GxEPD_BLACK, GxEPD_WHITE ); + drawXCenteredText("deine Wallet geladen.\n", 1, 60, GxEPD_BLACK, GxEPD_WHITE ); + drawXCenteredText("Gescannt? - Druecke 4 mal OK!", 1, epDisplay->height() - 20, GxEPD_BLACK, GxEPD_WHITE ); + + /* code */ + } while (epDisplay->nextPage()); + epDisplay->hibernate(); +} + +void EpaperDisplay::update_ok_counter(uint8_t ok_counter) +{ + switch(ok_counter) + { + case 1: + updateText(" ",199,epDisplay->height() - 20); + updateText("3", 1, 199, epDisplay->height() - 20, GxEPD_BLACK, GxEPD_WHITE); + break; + case 2: + updateText(" ",199,epDisplay->height() - 20); + updateText("2",199,epDisplay->height() - 20); + break; + case 3: + updateText(" ",199,epDisplay->height() - 20); + updateText("1",199,epDisplay->height() - 20); + break; + } +} + + +void EpaperDisplay::cancelScreen() +{ + //uint16_t y = 360; + epDisplay->setFullWindow(); + epDisplay->firstPage(); + do + { + //epDisplay->fillRect(0,0,epDisplay->width(), y - 50, GxEPD_BLACK); + epDisplay->drawBitmap(0, 30, epd_bitmap_makerlablogosATM_cancel, 280, 280, GxEPD_BLACK); + + //epDisplay->drawFastHLine(20,y-50,epDisplay->width()-40, GxEPD_BLACK); + //drawXCenteredText("Initialisierung ATM ...\n",2, y-20, GxEPD_BLACK,GxEPD_WHITE); + //epDisplay->drawFastHLine(20,y,epDisplay->width()-40, GxEPD_BLACK); + + //epDisplay->fillRect(0,epDisplay->height()-40,epDisplay->width(), 40, GxEPD_BLACK); + //drawXCenteredText("Zum Fortfahren Taster druecken!\n",1, epDisplay->height()-12, GxEPD_WHITE, GxEPD_BLACK); + } while (epDisplay->nextPage()); + epDisplay->hibernate(); +} diff --git a/firmware/src/lnurlutil.cpp b/firmware/src/lnurlutil.cpp new file mode 100644 index 0000000..090b3f7 --- /dev/null +++ b/firmware/src/lnurlutil.cpp @@ -0,0 +1,89 @@ +#include "lnurlutil.h" +#include "config.h" + +namespace { + +const uint8_t FIATPRECESION = 2; +const char* FIATCURRENCY = "EUR"; + + Lnurl::SignerConfig getLnurlSignerConfig() { + struct Lnurl::SignerConfig lnurl; + lnurl.apiKey.id = APIKEY_ID; + lnurl.apiKey.key = APIKEY_KEY; + lnurl.apiKey.encoding = APIKEY_ENCODING; + lnurl.callbackUrl = CALLBACK_URL; + lnurl.shorten = SHORTEN; + return lnurl; + } + + std::string generate_nonce() { + std::ostringstream ss; + uint32_t entropy = esp_random(); + // Random numbers generated by esp_random are probably sufficient. + // But just to be safe let's append the current time in microseconds as well. + auto extraEntropyFromTime = std::ceil((std::chrono::steady_clock::now().time_since_epoch().count() / 1000) % (UINT32_MAX / 10)); + entropy += extraEntropyFromTime; + ss << entropy; + return ss.str(); + } +} + +namespace lnurlutil { + + std::string createQrContent (const double accumulatedValue) { + const std::string signedUrl = createSignedLnurlWithdraw(accumulatedValue); + const std::string encoded = lnurlEncode(signedUrl); + std::string qrcodeData = ""; + qrcodeData += toUpperCase(encoded); + return qrcodeData; + } + + std::string createSignedLnurlWithdraw(const double &t_amount) { + Lnurl::Signer signer(getLnurlSignerConfig()); + std::string nonce = generate_nonce(); + Lnurl::WithdrawParams params; + std::string amount = floatToStringWithPrecision(t_amount, FIATPRECESION); + params.minWithdrawable = amount; + params.maxWithdrawable = amount; + params.defaultDescription = ""; + params.custom["f"] = FIATCURRENCY; + return signer.create_url(params, nonce); + } + + std::string lnurlEncode(const std::string &text) { + return Lnurl::encode(text); + } + + std::string toUpperCase(std::string s) { + std::transform(s.begin(), s.end(), s.begin(), [](unsigned char c){ return std::toupper(c); }); + return s; + } + + std::string urlEncode(const std::string &value) { + std::ostringstream escaped; + escaped.fill('0'); + escaped << std::hex; + for (std::string::const_iterator i = value.begin(), n = value.end(); i != n; ++i) { + std::string::value_type c = (*i); + // Keep alphanumeric and other accepted characters intact + if (isalnum(c) || c == '-' || c == '_' || c == '.' || c == '~') { + escaped << c; + continue; + } + // Any other characters are percent-encoded + escaped << std::uppercase; + escaped << '%' << std::setw(2) << int((unsigned char) c); + escaped << std::nouppercase; + } + return escaped.str(); + } + + std::string floatToStringWithPrecision(const float &value, const unsigned short &precision) { + std::ostringstream out; + out.precision(precision); + out << std::fixed << value; + return out.str(); + } +} + + diff --git a/firmware/src/main.cpp b/firmware/src/main.cpp index 09033b5..87d1ac7 100644 --- a/firmware/src/main.cpp +++ b/firmware/src/main.cpp @@ -1,937 +1,53 @@ +#include "main.h" +#include +#include "epaperdisplay.h" +#include "button.h" +#include "coinacceptor.h" +#include "state.h" +#include "config.h" // config.h is not in the repository - it contains all the key that are private :-) +//#include "config.example.h" // please take the example config and rename it to config.h and add your keys and ids there. Dont forget to rename it :-) + +EpaperDisplay epDisp(DSPLY_PIN_CS, DSPLY_PIN_DC, DSPLY_PIN_RST, DSPLY_PIN_BUSY); +AtmButton ok_button(OK_BUTTON_PIN, OK_LED_BUTTON_PIN); +AtmButton cancel_button(CANCEL_BUTTON_PIN, CANCEL_LED_BUTTON_PIN); +CoinAcceptor cacc(COIN_PIN, MOSFET_PIN, COINS, COINS_COUNT, COIN_PULSE_WIDTH_MS, MAX_ALLOWED_EUROCENT_VALUE); -#if 0 -#include "lightning_atm.h" - -//#include // Bibliothek für Schwarz-Weiß-Displays -#include - -// #define EPD_CS 26 -// #define EPD_DC 25 -// #define EPD_RST 33 -// #define EPD_BUSY 27 - -// // Treiber für das 4.2" Schwarz-Weiß E-Paper -// GxEPD2_BW display(GxEPD2_420(EPD_CS, EPD_DC, EPD_RST, EPD_BUSY)); - -void drawText(const char* text); - -void setup() { - Serial.begin(115200); - - /* Wichtige Pins manuell setzen - pinMode(EPD_CS, OUTPUT); - pinMode(EPD_DC, OUTPUT); - pinMode(EPD_RST, OUTPUT); - pinMode(EPD_BUSY, INPUT); // BUSY muss als INPUT definiert werden! */ - - display.init(115200, true, 2, false); - display.setRotation(1); // 0 = Hochformat, 1 = Querformat - - // Bildschirm löschen - display.setFullWindow(); - display.firstPage(); - do { - display.fillScreen(GxEPD_WHITE); - } while (display.nextPage()); - delay(1000); - drawText("Text Nummer Eins."); // Beispieltext anzeigen - delay(10000); - drawText("Text Nummer Zwei."); // Beispieltext anzeigen -} - -void loop() { -} - -void drawText(const char* text) { - Serial.printf("Text to show: '%s'\n",text); - display.setFullWindow(); - display.firstPage(); - do { - display.setCursor(50, 100); - display.setFont(&FreeMonoBold9pt7b); - display.setTextColor(GxEPD_BLACK); - display.print(text); - } while (display.nextPage()); - Serial.println("Display updated."); -} -#else - -#include "lightning_atm.h" - -constexpr unsigned int COINS[] = { 0, 0, 5, 10, 20, 50, 100, 200, 1, 2 }; -volatile bool button_pressed = false; -static unsigned int inserted_cents = 0; -static unsigned int pulses = 0; -static unsigned long long time_last_press = millis(); -String baseURLATM, secretATM, currencyATM; - -// *** for Waveshare ESP32 Driver board *** // -#if defined(ESP32) && defined(USE_HSPI_FOR_EPD) -SPIClass hspi(HSPI); -#endif -// *** end Waveshare ESP32 Driver board *** // - -//GxEPD2_BW display(GxEPD2_420(DSPLY_PIN_CS, DSPLY_PIN_DC, DSPLY_PIN_RST, DSPLY_PIN_BUSY)); -//GxEPD2_BW display(GxEPD2_154(DSPLY_PIN_CS, DSPLY_PIN_DC, DSPLY_PIN_RST, DSPLY_PIN_BUSY)); - -void IRAM_ATTR button_pressed_itr() { - button_pressed = true; -} void setup() { Serial.begin(115200); + epDisp.init(); // Init eInk display - initialize_display(); // connection to the e-ink display - home_screen(); - Serial.printf("Selected display type: %s\n", display_type); - - while(0 == 0){} + epDisp.initScreen(); + cacc.begin(); // Init Coin acceptor + cacc.disable(); // Disable coin detection + ok_button.begin(); // Init OK button + ok_button.reset(); // Reset Ok button - if already pressed + cancel_button.begin(); // Init Cancel button + cancel_button.reset(); // Reset cancel button - if already pressed + cancel_button.ledOff(); - // *** for Waveshare ESP32 Driver board *** // -#if defined(ESP32) && defined(USE_HSPI_FOR_EPD) - hspi.begin(13, 12, 14, 15); // remap hspi for EPD (swap pins) - display.epd2.selectSPI(hspi, SPISettings(4000000, MSBFIRST, SPI_MODE0)); -#endif - // *** end Waveshare ESP32 Driver board *** // - if (DEBUG_MODE) // serial connection for debugging over USB - { - sleep(3); - Serial.println("Setup with debug mode..."); // for monitoring with serial monitor to debug - Serial.printf("Selected display type: %s\n", display_type); - } - pinMode(COIN_PIN, INPUT_PULLUP); // coin acceptor input - pinMode(LED_BUTTON_PIN, OUTPUT); // LED of the LED Button - pinMode(BUTTON_PIN, INPUT_PULLUP); // Button - pinMode(MOSFET_PIN, OUTPUT); // mosfet relay to block the coin acceptor - digitalWrite(MOSFET_PIN, LOW); // set it low to accept coins, high to block coins - attachInterrupt(BUTTON_PIN, button_pressed_itr, FALLING); // interrupt, will set button_pressed to true when button is pressed - home_screen(); // will show first screen - digitalWrite(LED_BUTTON_PIN, HIGH); // light up the led - baseURLATM = getValue(lnurlDeviceString, ',', 0); // setup wallet data from string - secretATM = getValue(lnurlDeviceString, ',', 1); - currencyATM = getValue(lnurlDeviceString, ',', 2); + /* activate both buttons and wait until at least one is pressed */ + while( + true == ok_button.iswaitingUntilPressed(/* maxTimeToWaitMs0= */ 0, /* blinkPeriodMs= */ 1000) && + true == cancel_button.iswaitingUntilPressed(/* maxTimeToWaitMs0= */ 0, /* blinkPeriodMs= */ 1000) + ) + {} + cancel_button.softPress(); // just do a 'soft press' to both buttons to stop waiting and blink for the unpressed as well + ok_button.softPress(); // just do a 'soft press' to both buttons to stop waiting and blink for the unpressed as well + + atm::reset(); // reset the ATM state machine and go to init state! } void loop() { - - - pulses = 0; - pulses = detect_coin(); // detect_coin() is a loop to detect the input of coins, will return the amount of pulses - if (pulses >= 2 && pulses <= 9) - { - digitalWrite(MOSFET_PIN, HIGH); - digitalWrite(LED_BUTTON_PIN, LOW); - inserted_cents += COINS[pulses]; - show_inserted_amount(inserted_cents); - } - else if (button_pressed && inserted_cents > 0) - { - digitalWrite(MOSFET_PIN, HIGH); - button_pressed = false; - char* lnurl = makeLNURL(inserted_cents); - qr_withdrawl_screen(lnurl); - free(lnurl); - wait_for_user_to_scan(); - digitalWrite(LED_BUTTON_PIN, HIGH); - home_screen(); - digitalWrite(MOSFET_PIN, LOW); - inserted_cents = 0; - } - else if (button_pressed && !pulses && !inserted_cents) // to clean the screen (for storage), press the button several times - { - int press_counter = 0; - - button_pressed = false; - time_last_press = millis(); - while ((millis() - time_last_press) < 4000 && press_counter < 6) - { - if (button_pressed) - { - if (DEBUG_MODE) - Serial.println("Button pressed"); - time_last_press = millis(); - button_pressed = false; - press_counter++; - delay(500); - } - } - if (press_counter > 5) - { - if (DEBUG_MODE) - Serial.println("Button pressed over 5 times, will clean screen..."); - digitalWrite(LED_BUTTON_PIN, LOW); - clean_screen(); - display_sleep(); - delay(30000); - home_screen(); - } - } -} - -// blocking loop which is called when the qr code is shown -void wait_for_user_to_scan() -{ - unsigned long long time; - bool light_on; - - if (DEBUG_MODE) - Serial.println("Waiting for user to scan qr code and press button..."); - light_on = true; - time = millis(); // save start time - digitalWrite(LED_BUTTON_PIN, HIGH); // light up the led - delay(5000); - button_pressed = false; - Serial.println("wait for user to press button or 10 minutes to go back to home screen"); - while (!button_pressed && (millis() - time) < 600000) - { - if (!light_on && (millis() - time) > 30000) - { - digitalWrite(LED_BUTTON_PIN, HIGH); - light_on = true; - } - else if (light_on && (millis() - time) > 30000) - { - digitalWrite(LED_BUTTON_PIN, LOW); - light_on = false; - } - delay(500); - } - Serial.println("Exit waiting"); -} - -unsigned int detect_coin() -{ - unsigned long last_pulse; - unsigned int pulses; - bool prev_value; - bool read_value; - unsigned long entering_time; - unsigned long current_time; - - if (DEBUG_MODE) - Serial.println("Starting coin detection..."); - pulses = 0; - read_value = 1; - prev_value = digitalRead(COIN_PIN); - digitalWrite(LED_BUTTON_PIN, HIGH); - digitalWrite(MOSFET_PIN, LOW); - button_pressed = false; - entering_time = millis(); - while (true && !button_pressed) - { - read_value = digitalRead(COIN_PIN); - if (read_value != prev_value && !read_value) - { - delay(35); - read_value = digitalRead(COIN_PIN); - if (!read_value) - { - pulses++; - last_pulse = millis(); - digitalWrite(MOSFET_PIN, HIGH); - } - } - prev_value = read_value; - current_time = millis(); - if (pulses > 0 && (current_time - last_pulse > PULSE_TIMEOUT)) - { - break; - } - else if (pulses == 0 && ((current_time - entering_time) > 43200000) // refreshes the screen every 12h - && inserted_cents == 0) - { - clean_screen(); - delay(10000); - entering_time = millis(); - home_screen(); - } - else if (inserted_cents > 0 && (current_time - entering_time) > 360000) // break the loop if no new coin is inserted for some time - button_pressed = true; - } - if (DEBUG_MODE) - Serial.println("Pulses: " + String(pulses)); - if (button_pressed) - { - if (DEBUG_MODE) - Serial.println("Button pressed, stopping coin detection"); - return (0); - } - return (pulses); -} - -/* -** DISPLAY UTILS -*/ - -bool display_check_type(const char* in_display_type) -{ - for(size_t type_nr = 0; type_nr < nr_supported_display_types; type_nr++) - { - if(0 == strcmp(supported_display_types[type_nr], in_display_type)) - { - return true; - } - } - Serial.printf("No suitable display class '%s' defined.\n", in_display_type); - return false; -} - -// sleep is to put the screen in hibernation mode for longer static frames -void display_sleep() -{ - display.hibernate(); -} - -void initialize_display() -{ - display.init(115200, true, 2, false); -} - -void home_screen() -{ - if (display_type == "GxEPD2_150_BN") - home_screen_waveshare_1_54(); - else if (display_type == "GxEPD2_270") - home_screen_waveshare_2_7(); - else if (display_type == "GxEPD2_270_GDEY027T91") - home_screen_waveshare_2_7(); - else if (display_type == "GxEPD2_213_B74") - home_screen_waveshare_2_13(); - else if (display_type == "GxEPD2_213_flex") - home_screen_waveshare_2_13_flex(); - else if (display_type == "GxEPD2_420") - home_screen_waveshare_2_13_flex(); - else - Serial.println("No suitable display class defined."); - if (DEBUG_MODE) - Serial.println("Home screen printed."); -} - -void show_inserted_amount(int amount_in_cents) -{ - String amount_in_euro_string; - - amount_in_euro_string = get_amount_string(amount_in_cents); - if (display_type == "GxEPD2_150_BN") - show_inserted_amount_waveshare_1_54(amount_in_euro_string); - else if (display_type == "GxEPD2_270") - show_inserted_amount_waveshare_2_7(amount_in_euro_string); - else if (display_type == "GxEPD2_270_GDEY027T91") - show_inserted_amount_waveshare_2_7(amount_in_euro_string); - else if (display_type == "GxEPD2_213_B74") - show_inserted_amount_waveshare_2_13(amount_in_euro_string); - else if (display_type == "GxEPD2_213_flex") - show_inserted_amount_waveshare_2_13_flex(amount_in_euro_string); - else - Serial.println("No suitable display class defined."); - if (DEBUG_MODE) - Serial.println("New amount on screen."); -} - -void qr_withdrawl_screen(const char* qr_content) -{ - if (display_type == "GxEPD2_150_BN") - qr_withdrawl_screen_waveshare_1_54(qr_content); - else if (display_type == "GxEPD2_270") - qr_withdrawl_screen_waveshare_2_7(qr_content); - else if (display_type == "GxEPD2_270_GDEY027T91") - qr_withdrawl_screen_waveshare_2_7(qr_content); - else if (display_type == "GxEPD2_213_B74") - qr_withdrawl_screen_waveshare_2_13(qr_content); - else if (display_type == "GxEPD2_213_flex") - qr_withdrawl_screen_waveshare_2_13_flex(qr_content); - else - Serial.println("No suitable display class defined."); - if (DEBUG_MODE) - Serial.println("QR generated and Withdrawl screen printed."); + /* now start the ATM state machine in the endless loop*/ + atm::stateMachine(); } -// Called to clean the e-ink screen for storage over longer periods -// by button presses on home screen -void clean_screen() -{ - if (DEBUG_MODE) - Serial.println("Cleaning screen..."); - if (display_type == "GxEPD2_150_BN") - clean_screen_waveshare_1_54(); - else if (display_type == "GxEPD2_270") - clean_screen_waveshare_2_7(); - else if (display_type == "GxEPD2_270_GDEY027T91") - clean_screen_waveshare_2_7(); - else if (display_type == "GxEPD2_213_B74") - clean_screen_waveshare_2_13(); - else if (display_type == "GxEPD2_213_flex") - clean_screen_waveshare_2_13_flex(); - else - Serial.println("No suitable display class defined."); -} -// converts a cent amount to a String like "1.15 Euro" -String get_amount_string(int amount_in_cents) -{ - String euro; - String cents; - String return_value; - int euro_value; - int cent_remainder; - - euro_value = amount_in_cents / 100; - cent_remainder = amount_in_cents % 100; - euro = String(euro_value); - if (cent_remainder > 9) - cents = String(cent_remainder); - else if (cent_remainder < 10) - cents = "0" + String(cent_remainder); - return_value = String(euro) + "." + String(cents) + " " + currencyATM; - if (DEBUG_MODE) - Serial.println("Calculated amount string: " + return_value); - return (return_value); -} - -//////////////////////////////////////////// -///////////////LNURL STUFF////////////////// -////USING STEPAN SNIGREVS GREAT CRYTPO////// -////////////THANK YOU STEPAN//////////////// -//////////////////////////////////////////// - -int xor_encrypt(uint8_t* output, size_t outlen, uint8_t* key, size_t keylen, uint8_t* nonce, size_t nonce_len, uint64_t pin, uint64_t amount_in_cents) -{ - // check we have space for all the data: - // - if (outlen < 2 + nonce_len + 1 + lenVarInt(pin) + 1 + lenVarInt(amount_in_cents) + 8) - { - return 0; - } - - int cur = 0; - output[cur] = 1; // variant: XOR encryption - cur++; - - // nonce_len | nonce - output[cur] = nonce_len; - cur++; - memcpy(output + cur, nonce, nonce_len); - cur += nonce_len; - - // payload, unxored first - - int payload_len = lenVarInt(pin) + 1 + lenVarInt(amount_in_cents); - output[cur] = (uint8_t)payload_len; - cur++; - uint8_t* payload = output + cur; // pointer to the start of the payload - cur += writeVarInt(pin, output + cur, outlen - cur); // pin code - cur += writeVarInt(amount_in_cents, output + cur, outlen - cur); // amount - cur++; - - // xor it with round key - uint8_t hmacresult[32]; - SHA256 h; - h.beginHMAC(key, keylen); - h.write((uint8_t*)"Round secret:", 13); - h.write(nonce, nonce_len); - h.endHMAC(hmacresult); - for (int i = 0; i < payload_len; i++) - { - payload[i] = payload[i] ^ hmacresult[i]; - } - - // add hmac to authenticate - h.beginHMAC(key, keylen); - h.write((uint8_t*)"Data:", 5); - h.write(output, cur); - h.endHMAC(hmacresult); - memcpy(output + cur, hmacresult, 8); - cur += 8; - - // return number of bytes written to the output - return cur; -} - -char* makeLNURL(float total) -{ - int randomPin = random(1000, 9999); - byte nonce[8]; - for (int i = 0; i < 8; i++) - { - nonce[i] = random(256); - } - byte payload[51]; // 51 bytes is max one can get with xor-encryption - size_t payload_len = xor_encrypt(payload, sizeof(payload), (uint8_t*)secretATM.c_str(), secretATM.length(), nonce, sizeof(nonce), randomPin, float(total)); - String preparedURL = baseURLATM + "?atm=1&p="; - preparedURL += toBase64(payload, payload_len, BASE64_URLSAFE | BASE64_NOPADDING); - if (DEBUG_MODE) - Serial.println(preparedURL); - char Buf[200]; - preparedURL.toCharArray(Buf, 200); - char* url = Buf; - byte* data = (byte*)calloc(strlen(url) * 2, sizeof(byte)); - if (!data) - return (NULL); - size_t len = 0; - int res = convert_bits(data, &len, 5, (byte*)url, strlen(url), 8, 1); - char* charLnurl = (char*)calloc(strlen(url) * 2, sizeof(byte)); - if (!charLnurl) - { - free(data); - return (NULL); - } - bech32_encode(charLnurl, "lnurl", data, len); - to_upper(charLnurl); - free(data); - return (charLnurl); -} - -void to_upper(char* arr) -{ - for (size_t i = 0; i < strlen(arr); i++) - { - if (arr[i] >= 'a' && arr[i] <= 'z') - { - arr[i] = arr[i] - 'a' + 'A'; - } - } -} - -// Function to seperate the LNURLDevice string in key, url and currency -String getValue(const String data, char separator, int index) -{ - int found = 0; - int strIndex[] = { 0, -1 }; - const int maxIndex = data.length() - 1; - - for (int i = 0; i <= maxIndex && found <= index; i++) - { - if (data.charAt(i) == separator || i == maxIndex) - { - found++; - strIndex[0] = strIndex[1] + 1; - strIndex[1] = (i == maxIndex) ? i + 1 : i; - } - } - return found > index ? data.substring(strIndex[0], strIndex[1]) : ""; -} - -// Display functions for specific display types - -// ################################################################ -// # Waveshare 1.54 inch e-Paper Display Modul with SPI Interface # -// ################################################################ - -void home_screen_waveshare_1_54() -{ - if (DEBUG_MODE) - Serial.println("Home screen for Waveshare 1.54 inch display..."); - display.setRotation(1); - display.setFullWindow(); - display.firstPage(); - - display.setCursor(0, 10); - display.setTextSize(3); - display.setTextColor(GxEPD_BLACK, GxEPD_WHITE); - display.println("Insert\nEuro coins\non the\nright\nside to\nstart ->"); - - display.setCursor(0, 160); - display.setTextSize(1); - display.setTextColor(GxEPD_BLACK, GxEPD_WHITE); - display.println("Prepare Lightning enabled Bitcoin\nwallet before starting!\n\nSupported coins:\n5 - 50 Cent and 1 - 2 Euro"); - display.nextPage(); - display.hibernate(); -} - -void show_inserted_amount_waveshare_1_54(String amount_in_euro) -{ - display.setRotation(1); - display.setFullWindow(); - display.firstPage(); - - display.setCursor(0, 4); - display.setTextSize(2); - display.setTextColor(GxEPD_BLACK, GxEPD_WHITE); - display.println("Inserted amount:"); - - display.setCursor(10, 90); - display.setTextSize(3); - display.setTextColor(GxEPD_BLACK, GxEPD_WHITE); - display.println(amount_in_euro); - - display.setCursor(0, 160); - display.setTextSize(2); - display.setTextColor(GxEPD_BLACK, GxEPD_WHITE); - display.println(" Press button\n once finished."); - - display.nextPage(); -} - -void qr_withdrawl_screen_waveshare_1_54(const char* qr_content) -{ - QRCode qrcoded; - uint8_t qrcodeData[qrcode_getBufferSize(QR_VERSION)]; // 20 is "qr version" - t_qrdata qr; - - // initialize qr code data - qrcode_initText(&qrcoded, qrcodeData, QR_VERSION, 0, qr_content); - qr.qr_size = qrcoded.size * 2; - qr.start_x = (150 - qr.qr_size) / 2; - qr.start_y = (150 - qr.qr_size) / 2; - qr.module_size = 3; - - display.setRotation(1); - display.setFullWindow(); - display.firstPage(); - // loop trough Y and X axis to draw the qr code rectangle by rectangle - // 0, 0 is the top left of the screen - for (qr.current_y = 0; qr.current_y < qrcoded.size; qr.current_y++) - { - for (qr.current_x = 0; qr.current_x < qrcoded.size; qr.current_x++) - { - if (qrcode_getModule(&qrcoded, qr.current_x, qr.current_y)) - display.fillRect(qr.start_x + qr.module_size * qr.current_x, - qr.start_y + qr.module_size * qr.current_y, - qr.module_size, - qr.module_size, - GxEPD_BLACK); - else - display.fillRect(qr.start_x + qr.module_size * qr.current_x, - qr.start_y + qr.module_size * qr.current_y, - qr.module_size, - qr.module_size, - GxEPD_WHITE); - } - } - // draw the text messages on the screen - display.setCursor(0, 4); - display.setTextSize(2); - display.setTextColor(GxEPD_BLACK, GxEPD_WHITE); - display.println("Please scan QR:"); // top message - display.setCursor(0, 170); - display.setTextSize(2); - display.setTextColor(GxEPD_BLACK, GxEPD_WHITE); - display.println("Press the \nbutton to reset"); // bottom message - display.nextPage(); - display.hibernate(); -} - -void clean_screen_waveshare_1_54() -{ - display.firstPage(); - display.nextPage(); - display.hibernate(); -} - -// ############################################## -// # Waveshare 2.7 inch e-ink display functions # -// ############################################## - -void home_screen_waveshare_2_7() -{ - display.setRotation(1); - display.setFullWindow(); - display.firstPage(); - - display.setCursor(11, 20); - display.setTextSize(2); - display.setTextColor(GxEPD_BLACK, GxEPD_WHITE); - display.println("Insert Euro coins\n on the right ->\n to start ATM"); - - display.drawBitmap(172, 65, bitcoin_logo, 64, 64, GxEPD_BLACK); - - display.setCursor(12, 140); - display.setTextSize(1); - display.setTextColor(GxEPD_BLACK, GxEPD_WHITE); - display.println("Prepare Lightning enabled Bitcoin\n wallet before starting!\n Supported coins: 5 - 50 Cent, 1 - 2 Euro"); - - display.nextPage(); - display.hibernate(); -} - -void show_inserted_amount_waveshare_2_7(String amount_in_euro) -{ - display.setRotation(1); - display.setFullWindow(); - display.firstPage(); - - display.setCursor(11, 10); - display.setTextSize(2); - display.setTextColor(GxEPD_BLACK, GxEPD_WHITE); - display.println("Inserted amount:"); - - display.setCursor(20, 75); - display.setTextSize(3); - display.setTextColor(GxEPD_BLACK, GxEPD_WHITE); - display.println(amount_in_euro); - - display.setCursor(11, 135); - display.setTextSize(2); - display.setTextColor(GxEPD_BLACK, GxEPD_WHITE); - display.println("Press button\n once finished."); - - display.nextPage(); -} - -void qr_withdrawl_screen_waveshare_2_7(const char* qr_content) -{ - QRCode qrcoded; - uint8_t qrcodeData[qrcode_getBufferSize(QR_VERSION)]; // 20 is "qr version" - t_qrdata qr; - - qrcode_initText(&qrcoded, qrcodeData, QR_VERSION, 0, qr_content); - qr.qr_size = qrcoded.size * 3; - qr.start_x = (264 - qr.qr_size) / 2; - qr.start_y = (176 - qr.qr_size) / 2; - qr.module_size = 3; - - display.setRotation(1); - display.setFullWindow(); - display.firstPage(); - for (qr.current_y = 0; qr.current_y < qrcoded.size; qr.current_y++) - { - for (qr.current_x = 0; qr.current_x < qrcoded.size; qr.current_x++) - { - if (qrcode_getModule(&qrcoded, qr.current_x, qr.current_y)) - display.fillRect(qr.start_x + qr.module_size * qr.current_x, - qr.start_y + qr.module_size * qr.current_y, qr.module_size, qr.module_size, GxEPD_BLACK); - else - display.fillRect(qr.start_x + qr.module_size * qr.current_x, - qr.start_y + qr.module_size * qr.current_y, qr.module_size, qr.module_size, GxEPD_WHITE); - } - } - display.setCursor(11, 5); - display.setTextSize(2); - display.setTextColor(GxEPD_BLACK, GxEPD_WHITE); - display.println("Please scan QR code:"); // top message - - display.setCursor(11, 155); - display.setTextSize(2); - display.setTextColor(GxEPD_BLACK, GxEPD_WHITE); - display.println("Reset - press button"); // bottom message - - display.nextPage(); - display.hibernate(); -} - -void clean_screen_waveshare_2_7() -{ - display.firstPage(); - display.nextPage(); - display.hibernate(); -} - -// ######################################################### -// # Waveshare 2.13 inch e-ink display (250x122) functions # -// ######################################################### - -void home_screen_waveshare_2_13() -{ - display.setRotation(1); - display.setFullWindow(); - display.firstPage(); - - display.setCursor(5, 5); - display.setTextSize(2); - display.setTextColor(GxEPD_BLACK, GxEPD_WHITE); - display.println("LIGHTNING ATM"); - display.setCursor(3, 33); - display.println("Insert coins"); - display.setCursor(3, 50); - display.println("on the right"); - display.setCursor(3, 67); - display.println("side to start"); - - display.drawBitmap(180, 15, bitcoin_logo, 64, 64, GxEPD_BLACK); - - display.setCursor(0, 95); - display.setTextSize(1); - display.setTextColor(GxEPD_BLACK, GxEPD_WHITE); - display.println(" Prepare Lightning enabled Bitcoin\n wallet before starting!\n Supported coins: 2 cent to 2 euro"); - display.nextPage(); - display.hibernate(); -} - -void show_inserted_amount_waveshare_2_13(String amount_in_euro) -{ - display.setRotation(1); - display.setFullWindow(); - display.firstPage(); - - display.setCursor(10, 4); - display.setTextSize(2); - display.setTextColor(GxEPD_BLACK, GxEPD_WHITE); - display.println("Inserted amount:"); - - display.setCursor(35, 45); - display.setTextSize(3); - display.setTextColor(GxEPD_BLACK, GxEPD_WHITE); - display.println(amount_in_euro); - - display.setCursor(0, 85); - display.setTextSize(2); - display.setTextColor(GxEPD_BLACK, GxEPD_WHITE); - display.println(" Press button\n to show QR code"); - - display.nextPage(); -} - -void qr_withdrawl_screen_waveshare_2_13(const char* qr_content) -{ - QRCode qrcoded; - uint8_t qrcodeData[qrcode_getBufferSize(QR_VERSION)]; // 20 is "qr version" - t_qrdata qr; - - qrcode_initText(&qrcoded, qrcodeData, QR_VERSION, 0, qr_content); - qr.qr_size = qrcoded.size * 2; - qr.start_x = (230 - qr.qr_size) / 2; - qr.start_y = (122 - qr.qr_size) / 2; - qr.module_size = 2; - - display.setRotation(1); - display.setFullWindow(); - display.firstPage(); - for (qr.current_y = 0; qr.current_y < qrcoded.size; qr.current_y++) - { - for (qr.current_x = 0; qr.current_x < qrcoded.size; qr.current_x++) - { - if (qrcode_getModule(&qrcoded, qr.current_x, qr.current_y)) - display.fillRect(qr.start_x + qr.module_size * qr.current_x, - qr.start_y + qr.module_size * qr.current_y, qr.module_size, qr.module_size, GxEPD_BLACK); - else - display.fillRect(qr.start_x + qr.module_size * qr.current_x, - qr.start_y + qr.module_size * qr.current_y, qr.module_size, qr.module_size, GxEPD_WHITE); - } - } - display.setCursor(0, 20); - display.setTextSize(2); - display.setTextColor(GxEPD_BLACK, GxEPD_WHITE); - display.println(" Scan\n\n QR\n\n code"); // top message - - display.setCursor(181, 32); - display.setTextSize(2); - display.setTextColor(GxEPD_BLACK, GxEPD_WHITE); - display.println("Reset"); - display.setCursor(181, 53); - display.println("press"); - display.setCursor(176, 77); - display.println("button"); - display.nextPage(); - display.hibernate(); -} - -void clean_screen_waveshare_2_13() -{ - display.firstPage(); - display.nextPage(); - display.hibernate(); -} - -// ########################################################################### -// # Waveshare 2.13 inch e-ink display (D) flex (yellow) (212x104) functions # -// ########################################################################### - -void home_screen_waveshare_2_13_flex() -{ - display.setRotation(1); - display.setFullWindow(); - display.firstPage(); - - display.setCursor(5, 5); - display.setTextSize(2); - display.setTextColor(GxEPD_BLACK, GxEPD_WHITE); - display.println("LIGHTNING ATM"); - display.setCursor(3, 25); - display.println("Insert coins"); - display.setCursor(3, 42); - display.println("on the right"); - display.setCursor(3, 59); - display.println("side to start"); - - display.drawBitmap(151, 8, bitcoin_logo, 64, 64, GxEPD_BLACK); - - display.setCursor(0, 80); - display.setTextSize(1); - display.setTextColor(GxEPD_BLACK, GxEPD_WHITE); - display.println(" Prepare Lightning enabled Bitcoin\n wallet before starting!\n Supported coins: 2 cent to 2 euro"); - display.nextPage(); - display.hibernate(); -} - -void show_inserted_amount_waveshare_2_13_flex(String amount_in_euro) -{ - display.setRotation(1); - display.setFullWindow(); - display.firstPage(); - - display.setCursor(0, 4); - display.setTextSize(2); - display.setTextColor(GxEPD_BLACK, GxEPD_WHITE); - display.println(" Inserted amount:"); - - display.setCursor(30, 35); - display.setTextSize(3); - display.setTextColor(GxEPD_BLACK, GxEPD_WHITE); - display.println(amount_in_euro); - - display.setCursor(0, 70); - display.setTextSize(2); - display.setTextColor(GxEPD_BLACK, GxEPD_WHITE); - display.println(" Press button\n to show QR code"); - - display.nextPage(); -} - -void qr_withdrawl_screen_waveshare_2_13_flex(const char* qr_content) -{ - QRCode qrcoded; - uint8_t qrcodeData[qrcode_getBufferSize(QR_VERSION)]; // 20 is "qr version" - t_qrdata qr; - - qrcode_initText(&qrcoded, qrcodeData, QR_VERSION, 0, qr_content); - qr.qr_size = qrcoded.size * 2; - qr.start_x = (220 - qr.qr_size) / 2; - qr.start_y = (105 - qr.qr_size) / 2; - qr.module_size = 2; - - display.setRotation(1); - display.setFullWindow(); - display.firstPage(); - for (qr.current_y = 0; qr.current_y < qrcoded.size; qr.current_y++) - { - for (qr.current_x = 0; qr.current_x < qrcoded.size; qr.current_x++) - { - if (qrcode_getModule(&qrcoded, qr.current_x, qr.current_y)) - display.fillRect(qr.start_x + qr.module_size * qr.current_x, - qr.start_y + qr.module_size * qr.current_y, qr.module_size, qr.module_size, GxEPD_BLACK); - else - display.fillRect(qr.start_x + qr.module_size * qr.current_x, - qr.start_y + qr.module_size * qr.current_y, qr.module_size, qr.module_size, GxEPD_WHITE); - } - } - display.setCursor(0, 12); - display.setTextSize(2); - display.setTextColor(GxEPD_BLACK, GxEPD_WHITE); - display.println(" Scan\n\n QR\n\n code"); // top message - - display.setCursor(170, 37); - display.setTextSize(1); - display.setTextColor(GxEPD_BLACK, GxEPD_WHITE); - display.println("Reset"); - display.setCursor(170, 47); - display.println("press"); - display.setCursor(167, 57); - display.println("button"); - display.nextPage(); - display.hibernate(); -} - -void clean_screen_waveshare_2_13_flex() -{ - display.firstPage(); - display.nextPage(); - display.hibernate(); -} - -#endif \ No newline at end of file diff --git a/firmware/src/state.cpp b/firmware/src/state.cpp new file mode 100644 index 0000000..97eae31 --- /dev/null +++ b/firmware/src/state.cpp @@ -0,0 +1,110 @@ +#include "state.h" +#include "epaperdisplay.h" +#include "lnurlutil.h" + +namespace { + std::string lnurl_str = ""; + bool update_value = false; + uint8_t ok_button_counter = 0; + + static atm::State current_state = atm::State::INIT; + static atm::State next_state = atm::State::INIT; +} + +namespace atm { + void reset(void) + { + current_state = INIT; + next_state = INIT; + } + + void stateMachine(void) + { + switch (current_state) { + case INIT: + update_value = false; + ok_button_counter = 0; + ok_button.ledOff(); + ok_button.reset(); + cancel_button.ledOff(); + cancel_button.reset(); + epDisp.homeScreen(); + cacc.resetSumValue(); + cacc.enable(); + next_state = WAIT_FOR_COIN; + break; + case WAIT_FOR_BUTTON: + if(ok_button.wasPressed()) + { + next_state = GENERATE_QR; + cacc.disable(); + ok_button.reset(); + } + if(cancel_button.wasPressed()) + { + next_state = CANCEL_PAYMENT; + cacc.disable(); + cancel_button.reset(); + } + case WAIT_FOR_COIN: + if(true == cacc.detectCoin()) + { + next_state = PROCESS_COIN; + } + break; + case PROCESS_COIN: + Serial.printf("Summe: '%s' (cents %d) \n", cacc.getSumValueStr().c_str(), cacc.getSumValue()); + Serial.printf("%s\n", cacc.getCoinsNumStr().c_str()); + Serial.printf("%s\n", cacc.getCoinsValStr().c_str()); + epDisp.showInsertedAmount(cacc.getSumValueStr().c_str(),cacc.getCoinsValStr().c_str(), cacc.getCoinsNumStr().c_str(), "", update_value); + update_value = true; + ok_button.ledOn(); + ok_button.reset(); + cancel_button.ledOn(); + ok_button.reset(); + cacc.enable(); + next_state = WAIT_FOR_BUTTON; + break; + case GENERATE_QR: + lnurl_str = lnurlutil::createQrContent(cacc.getSumValue()/100.0); + epDisp.qrCode(lnurl_str.c_str(), cacc.getSumValueStr().c_str()); + next_state = PAYMENT_CONFIRMED; + ok_button.reset(); + cancel_button.ledOff(); + break; + case CANCEL_PAYMENT: + epDisp.cancelScreen(); + next_state = CANCEL_CONFIRMED; + cancel_button.reset(); + ok_button.ledOff(); + break; + case PAYMENT_CONFIRMED: + if (ok_button.wasPressed()) + { + ok_button_counter++; + if(ok_button_counter == 4) + { + next_state = INIT; + break; + } + epDisp.update_ok_counter(ok_button_counter); + ok_button.reset(); + } + break; + case CANCEL_CONFIRMED: + if(cancel_button.wasPressed()) + { + next_state = INIT; + cancel_button.reset(); + } + break; + case ERROR_STATE: + next_state = WAIT_FOR_COIN; + break; + } + + current_state = next_state; + + } + +} \ No newline at end of file