From 3165ed4faeda3e7337574bd88b489ac1274eaf96 Mon Sep 17 00:00:00 2001 From: bpohvoodoo Date: Sun, 17 Mar 2019 13:56:10 +0100 Subject: [PATCH] Merge Merge --- Arduino/McLighting/McLighting.ino | 1008 ++++------ Arduino/McLighting/McLighting.ino.nodemcu.bin | Bin 0 -> 492368 bytes Arduino/McLighting/definitions.h | 102 +- Arduino/McLighting/htm_edit_gz.h | 463 +++++ Arduino/McLighting/htm_index_gz.h | 1651 +++++++++++++++++ .../mode_custom_ws2812fx_animations.h | 94 + Arduino/McLighting/mode_tv.h | 42 +- Arduino/McLighting/request_handlers.h | 782 +++++--- Arduino/McLighting/rest_api.h | 448 +++++ Arduino/McLighting/version.h | 2 +- Arduino/McLighting/version_info.ino | 67 +- 11 files changed, 3730 insertions(+), 929 deletions(-) create mode 100644 Arduino/McLighting/McLighting.ino.nodemcu.bin create mode 100644 Arduino/McLighting/htm_edit_gz.h create mode 100644 Arduino/McLighting/htm_index_gz.h create mode 100644 Arduino/McLighting/mode_custom_ws2812fx_animations.h create mode 100644 Arduino/McLighting/rest_api.h diff --git a/Arduino/McLighting/McLighting.ino b/Arduino/McLighting/McLighting.ino index 9dba564..707e68a 100644 --- a/Arduino/McLighting/McLighting.ino +++ b/Arduino/McLighting/McLighting.ino @@ -14,8 +14,9 @@ #include #include #include -#include - +#if ENABLE_STATE_SAVE == 0 + #include +#endif #include //https://github.com/Links2004/arduinoWebSockets #include @@ -37,7 +38,7 @@ // *************************************************************************** #include WiFiClient espClient; - PubSubClient mqtt_client(espClient); + PubSubClient* mqtt_client = NULL; #endif #if ENABLE_MQTT == 1 @@ -46,15 +47,15 @@ // *************************************************************************** #include //https://github.com/marvinroger/async-mqtt-client //https://github.com/me-no-dev/ESPAsyncTCP - AsyncMqttClient amqttClient; + AsyncMqttClient* mqtt_client = NULL; WiFiEventHandler wifiConnectHandler; WiFiEventHandler wifiDisconnectHandler; #endif #endif #if defined(ARDUINOJSON_VERSION) - #if !(ARDUINOJSON_VERSION_MAJOR == 6 and ARDUINOJSON_VERSION_MINOR == 7) - #error "Install ArduinoJson v6.7.0-beta" + #if !(ARDUINOJSON_VERSION_MAJOR == 6 and ARDUINOJSON_VERSION_MINOR == 9) + #error "Install ArduinoJson v6.9.x" #endif #endif @@ -64,7 +65,7 @@ // *************************************************************************** #include //https://github.com/me-no-dev/ESPAsyncUDP #include //https://github.com/forkineye/ESPAsyncE131 - ESPAsyncE131 e131(END_UNIVERSE - START_UNIVERSE + 1); + ESPAsyncE131* e131 = NULL; //(END_UNIVERSE - START_UNIVERSE + 1); #endif #if defined(ENABLE_REMOTE) @@ -76,6 +77,12 @@ #include #endif +#if defined(USE_HTML_MIN_GZ) +#include "htm_index_gz.h" +#include "htm_edit_gz.h" +#endif + + // *************************************************************************** // Instanciate HTTP(80) / WebSockets(81) Server // *************************************************************************** @@ -97,59 +104,70 @@ WebSocketsServer webSocket = WebSocketsServer(81); #endif // *************************************************************************** -// Load libraries / Instanciate WS2812FX library +// Load and instanciate WS2812FX library // *************************************************************************** #include // https://github.com/kitesurfer1404/WS2812FX -#if defined(RGBW) - WS2812FX strip = WS2812FX(NUMLEDS, PIN, NEO_GRBW + NEO_KHZ800); -#else - WS2812FX strip = WS2812FX(NUMLEDS, PIN, NEO_GRB + NEO_KHZ800); -#endif -const uint8_t ws2812fx_options = SIZE_SMALL + FADE_MEDIUM; // WS2812FX setSegment OPTIONS, see: https://github.com/kitesurfer1404/WS2812FX/blob/master/extras/WS2812FX%20Users%20Guide.md - -// Parameter 1 = number of pixels in strip -// Parameter 2 = Arduino pin number (most are valid) -// Parameter 3 = pixel type flags, add together as needed: -// NEO_KHZ800 800 KHz bitstream (most NeoPixel products w/WS2812 LEDs) -// NEO_KHZ400 400 KHz (classic 'v1' (not v2) FLORA pixels, WS2811 drivers) -// NEO_GRB Pixels are wired for GRB bitstream (most NeoPixel products) -// NEO_RGB Pixels are wired for RGB bitstream (v1 FLORA pixels, not v2) - -// IMPORTANT: To reduce NeoPixel burnout risk, add 1000 uF capacitor across -// pixel power leads, add 300 - 500 Ohm resistor on first pixel's data input -// and minimize distance between Arduino and first pixel. Avoid connecting -// on a live circuit...if you must, connect GND first. +WS2812FX* strip = NULL; #if defined(USE_WS2812FX_DMA) - #if USE_WS2812FX_DMA == 0// Uses GPIO3/RXD0/RX, more info: https://github.com/Makuna/NeoPixelBus/wiki/ESP8266-NeoMethods - #include - #if defined(RGBW) - NeoEsp8266Dma800KbpsMethod dma = NeoEsp8266Dma800KbpsMethod(NUMLEDS, 4); //800 KHz bitstream (most NeoPixel products w/WS2812 LEDs) + #include + + #if USE_WS2812FX_DMA == 0 // Uses GPIO3/RXD0/RX, more info: https://github.com/Makuna/NeoPixelBus/wiki/ESP8266-NeoMethods + #if !defined(LED_TYPE_WS2811) + NeoEsp8266Dma800KbpsMethod* dma = NULL ; //800 KHz bitstream (most NeoPixel products w/WS2812 LEDs) #else - NeoEsp8266Dma800KbpsMethod dma = NeoEsp8266Dma800KbpsMethod(NUMLEDS, 3); //800 KHz bitstream (most NeoPixel products w/WS2812 LEDs) + NeoEsp8266Dma400KbpsMethod* dma = NULL; //400 KHz (classic 'v1' (not v2) FLORA pixels, WS2811 drivers) #endif - //NeoEsp8266Dma400KbpsMethod dma = NeoEsp8266Dma400KbpsMethod(NUMLEDS, 3); //400 KHz (classic 'v1' (not v2) FLORA pixels, WS2811 drivers) #endif #if USE_WS2812FX_DMA == 1 // Uses UART1: GPIO1/TXD0/TX, more info: https://github.com/Makuna/NeoPixelBus/wiki/ESP8266-NeoMethods - #include - #if defined(RGBW) - NeoEsp8266Uart0800KbpsMethod dma = NeoEsp8266Uart0800KbpsMethod(NUMLEDS, 4); + #if !defined(LED_TYPE_WS2811) + NeoEsp8266Uart0800KbpsMethod* dma = NULL; //800 KHz bitstream (most NeoPixel products w/WS2812 LEDs) #else - NeoEsp8266Uart0800KbpsMethod dma = NeoEsp8266Uart0800KbpsMethod(NUMLEDS, 3); + NeoEsp8266Uart0400KbpsMethod* dma = NULL; //400 KHz (classic 'v1' (not v2) FLORA pixels, WS2811 drivers) #endif #endif #if USE_WS2812FX_DMA == 2 // Uses UART2: GPIO2/TXD1/D4, more info: https://github.com/Makuna/NeoPixelBus/wiki/ESP8266-NeoMethods - #include - #if defined(RGBW) - NeoEsp8266Uart1800KbpsMethod dma = NeoEsp8266Uart1800KbpsMethod(NUMLEDS, 4); + #if !defined(LED_TYPE_WS2811) + NeoEsp8266Uart1800KbpsMethod* dma = NULL; //800 KHz bitstream (most NeoPixel products w/WS2812 LEDs) #else - NeoEsp8266Uart1800KbpsMethod dma = NeoEsp8266Uart1800KbpsMethod(NUMLEDS, 3); + NeoEsp8266Uart1400KbpsMethod* dma = NULL; //400 KHz (classic 'v1' (not v2) FLORA pixels, WS2811 drivers) #endif #endif + + void initDMA(uint16_t stripSize = NUMLEDS){ + if (dma) delete dma; + uint8_t ledcolors = 3; + if (strstr(WS2812FXStripSettings.RGBOrder, "W") != NULL) { + ledcolors = 4; + } + #if USE_WS2812FX_DMA == 0 // Uses GPIO3/RXD0/RX, more info: https://github.com/Makuna/NeoPixelBus/wiki/ESP8266-NeoMethods + #if !defined(LED_TYPE_WS2811) + dma = new NeoEsp8266Dma800KbpsMethod(stripSize, ledcolors); //800 KHz bitstream (most NeoPixel products w/WS2812 LEDs) + #else + dma = new NeoEsp8266Dma400KbpsMethod(stripSize, ledcolors); //400 KHz (classic 'v1' (not v2) FLORA pixels, WS2811 drivers) + #endif + #endif + #if USE_WS2812FX_DMA == 1 // Uses UART1: GPIO1/TXD0/TX, more info: https://github.com/Makuna/NeoPixelBus/wiki/ESP8266-NeoMethods + #if !defined(LED_TYPE_WS2811) + dma = new NeoEsp8266Uart0800KbpsMethod(stripSize, ledcolors); //800 KHz bitstream (most NeoPixel products w/WS2812 LEDs) + #else + dma = new NeoEsp8266Uart0400KbpsMethod(stripSize, ledcolors); //400 KHz (classic 'v1' (not v2) FLORA pixels, WS2811 drivers) + #endif + #endif + #if USE_WS2812FX_DMA == 2 // Uses UART2: GPIO2/TXD1/D4, more info: https://github.com/Makuna/NeoPixelBus/wiki/ESP8266-NeoMethods + #if !defined(LED_TYPE_WS2811) + dma = new NeoEsp8266Uart1800KbpsMethod(stripSize, ledcolors); //800 KHz bitstream (most NeoPixel products w/WS2812 LEDs) + #else + dma = new NeoEsp8266Uart1400KbpsMethod(stripSize, ledcolors); //400 KHz (classic 'v1' (not v2) FLORA pixels, WS2811 drivers) + #endif + #endif + dma->Initialize(); + } + void DMA_Show(void) { - if(dma.IsReadyToUpdate()) { - memcpy(dma.getPixels(), strip.getPixels(), dma.getPixelsSize()); - dma.Update(); + if(dma->IsReadyToUpdate()) { + memcpy(dma->getPixels(), strip->getPixels(), dma->getPixelsSize()); + dma->Update(); } } #endif @@ -170,8 +188,7 @@ Ticker ticker; #endif #endif -void tick() -{ +void tick() { //toggle state int state = digitalRead(LED_BUILTIN); // get the current state of GPIO1 pin digitalWrite(LED_BUILTIN, !state); // set pin to the opposite state @@ -202,8 +219,9 @@ String getValue(String data, char separator, int index) strIndex[1] = (i == maxIndex) ? i+1 : i; } } - - return found>index ? data.substring(strIndex[0], strIndex[1]) : ""; + String return_value = data.substring(strIndex[0], strIndex[1]); + return_value.replace(" ", ""); + return found>index ? return_value : ""; } // *************************************************************************** @@ -217,12 +235,6 @@ void configModeCallback (WiFiManager *myWiFiManager) { DBG_OUTPUT_PORT.println(myWiFiManager->getConfigPortalSSID()); //entered config mode, make led toggle faster ticker.attach(0.2, tick); - - uint16_t i; - for (i = 0; i < strip.numPixels(); i++) { - strip.setPixelColor(i, 0, 0, 0, 255); - } - strip.show(); } //callback notifying us of the need to save config @@ -248,6 +260,123 @@ void saveConfigCallback () { #include "mode_tv.h" #endif +#if defined(CUSTOM_WS2812FX_ANIMATIONS) +// *************************************************************************** +// Include: Custom animations +// *************************************************************************** + #include "mode_custom_ws2812fx_animations.h" // Add animations in this file +#endif + + +// function to Initialize the strip +void initStrip(uint16_t stripSize = WS2812FXStripSettings.stripSize, char RGBOrder[5] = WS2812FXStripSettings.RGBOrder, uint8_t pin = WS2812FXStripSettings.pin, uint8_t fxoptions = WS2812FXStripSettings.fxoptions ){ + if (strip != NULL) { + DBG_OUTPUT_PORT.println("Deleting strip!"); + delete(strip); + WS2812FXStripSettings.stripSize = stripSize; + strcpy(WS2812FXStripSettings.RGBOrder, RGBOrder); + WS2812FXStripSettings.pin = pin; + WS2812FXStripSettings.fxoptions = fxoptions; + } + DBG_OUTPUT_PORT.println("Initializing strip!"); +#if !defined(LED_TYPE_WS2811) + strip = new WS2812FX(stripSize, pin, checkRGBOrder(RGBOrder) + NEO_KHZ800); +#else + strip = new WS2812FX(stripSize, pin, checkRGBOrder(RGBOrder) + NEO_KHZ400); +#endif + // Parameter 1 = number of pixels in strip + // Parameter 2 = Arduino pin number (most are valid) + // Parameter 3 = pixel type flags, add together as needed: + // NEO_KHZ800 800 KHz bitstream (most NeoPixel products w/WS2812 LEDs) + // NEO_KHZ400 400 KHz (classic 'v1' (not v2) FLORA pixels, WS2811 drivers) + // NEO_GRB Pixels are wired for GRB bitstream (most NeoPixel products) + // NEO_RGB Pixels are wired for RGB bitstream (v1 FLORA pixels, not v2) + + // IMPORTANT: To reduce NeoPixel burnout risk, add 1000 uF capacitor across + // pixel power leads, add 300 - 500 Ohm resistor on first pixel's data input + // and minimize distance between Arduino and first pixel. Avoid connecting + // on a live circuit...if you must, connect GND first. + +#if defined(CUSTOM_WS2812FX_ANIMATIONS) + if (heat != NULL) { + delete(heat); + } + heat = new byte [WS2812FXStripSettings.stripSize]; +#endif +#if defined(ENABLE_TV) + if (ledStates != NULL) { + delete(ledStates); + } + ledStates = new uint8_t [WS2812FXStripSettings.stripSize]; +#endif +/* + if (ledstates != NULL) { + delete(ledstates); + } + ledStates = new LEDState ledstates[WS2812FXStripSettings.stripSize]; +*/ + strip->init(); + #if defined(USE_WS2812FX_DMA) + initDMA(stripSize); + strip->setCustomShow(DMA_Show); + #endif + strip->setBrightness(brightness); +//parameters: index, start, stop, mode, color, speed, options + strip->setSegment(0, 0, WS2812FXStripSettings.stripSize - 1, ws2812fx_mode, hex_colors, convertSpeed(ws2812fx_speed), WS2812FXStripSettings.fxoptions); +#if defined(CUSTOM_WS2812FX_ANIMATIONS) + strip->setCustomMode(0, F("Fire 2012"), myCustomEffect0); +//strip->setCustomMode(1, F("CustEffect"), myCustomEffect1); +#endif +} + +#if defined(ENABLE_MQTT) +void initMqtt() { + DBG_OUTPUT_PORT.println("Initializing Mqtt_Client!"); + // *************************************************************************** + // Configure MQTT + // *************************************************************************** + #if ENABLE_MQTT == 0 + mqtt_client = new PubSubClient(espClient); + #endif + #if ENABLE_MQTT == 1 + mqtt_client = new AsyncMqttClient(); + #endif + + #if defined(ENABLE_MQTT_HOSTNAME_CHIPID) + snprintf(mqtt_clientid, sizeof(mqtt_clientid), "%s-%08X", HOSTNAME, ESP.getChipId()); + #else + snprintf(mqtt_clientid, sizeof(mqtt_clientid), "%s", HOSTNAME); + #endif + snprintf(mqtt_will_topic, sizeof(mqtt_will_topic), "%s/config", HOSTNAME); + snprintf(mqtt_intopic, sizeof(mqtt_intopic), "%s/in", HOSTNAME); + snprintf(mqtt_outtopic, sizeof(mqtt_outtopic), "%s/out", HOSTNAME); + #if defined(MQTT_HOME_ASSISTANT_SUPPORT) + snprintf(mqtt_ha_config, sizeof(mqtt_ha_config), "homeassistant/light/%s/config", HOSTNAME); + snprintf(mqtt_ha_state_in, sizeof(mqtt_ha_state_in), "home/%s_ha/state/in", HOSTNAME); + snprintf(mqtt_ha_state_out, sizeof(mqtt_ha_state_out), "home/%s_ha/state/out", HOSTNAME); + #endif + if ((strlen(mqtt_host) != 0) && (mqtt_port != 0)) { + #if ENABLE_MQTT == 0 + DBG_OUTPUT_PORT.printf("MQTT active: %s:%d\r\n", mqtt_host, mqtt_port); + mqtt_client->setServer(mqtt_host, mqtt_port); + mqtt_client->setCallback(mqtt_callback); + #endif + #if ENABLE_MQTT == 1 + DBG_OUTPUT_PORT.printf("AMQTT active: %s:%d\r\n", mqtt_host, mqtt_port); + mqtt_client->onConnect(onMqttConnect); + mqtt_client->onDisconnect(onMqttDisconnect); + mqtt_client->onMessage(onMqttMessage); + if ((strlen(mqtt_user) != 0) || (strlen(mqtt_pass) != 0)) mqtt_client->setCredentials(mqtt_user, mqtt_pass); + mqtt_client->setClientId(mqtt_clientid); + mqtt_client->setWill(mqtt_will_topic, 2, true, mqtt_will_payload, 0); + mqtt_client->setServer(mqtt_host, mqtt_port); + connectToMqtt(); + #endif + } +} +#endif + + // *************************************************************************** // MAIN Setup // *************************************************************************** @@ -255,27 +384,30 @@ void setup() { // system_update_cpu_freq(160); DBG_OUTPUT_PORT.begin(115200); + delay(500); + DBG_OUTPUT_PORT.println(""); + DBG_OUTPUT_PORT.println("Starting...Main Setup"); +#if ENABLE_STATE_SAVE == 0 EEPROM.begin(512); - +#endif // set builtin led pin as output pinMode(LED_BUILTIN, OUTPUT); // button pin setup #if defined(ENABLE_BUTTON) + DBG_OUTPUT_PORT.printf("Enabled Button Mode on PIN: %d\r\n", ENABLE_BUTTON); pinMode(ENABLE_BUTTON,INPUT_PULLUP); #endif #if defined(ENABLE_BUTTON_GY33) + DBG_OUTPUT_PORT.printf("Enabled GY-33 Button Mode on PIN: %d\r\n", ENABLE_BUTTON_GY33); pinMode(ENABLE_BUTTON_GY33, INPUT_PULLUP); if (tcs.begin()) { DBG_OUTPUT_PORT.println("Found GY-33 sensor"); } else { - DBG_OUTPUT_PORT.println("No GY33 sensor found ... check your connections"); + DBG_OUTPUT_PORT.println("No GY33 sensor found ... check your I2C connections"); } #endif -DBG_OUTPUT_PORT.println(""); -DBG_OUTPUT_PORT.println("Starting...."); - // start ticker with 0.5 because we start in AP mode and try to connect ticker.attach(0.5, tick); @@ -288,92 +420,95 @@ DBG_OUTPUT_PORT.println("Starting...."); while (dir.next()) { String fileName = dir.fileName(); size_t fileSize = dir.fileSize(); - DBG_OUTPUT_PORT.printf("FS File: %s, size: %s\n", fileName.c_str(), formatBytes(fileSize).c_str()); + DBG_OUTPUT_PORT.printf("FS File: %s, size: %s\r\n", fileName.c_str(), formatBytes(fileSize).c_str()); } FSInfo fs_info; SPIFFS.info(fs_info); - DBG_OUTPUT_PORT.printf("FS Usage: %d/%d bytes\n\n", fs_info.usedBytes, fs_info.totalBytes); + DBG_OUTPUT_PORT.printf("FS Usage: %d/%d bytes\r\n", fs_info.usedBytes, fs_info.totalBytes); } - wifi_station_set_hostname(const_cast(HOSTNAME)); - - // *************************************************************************** - // Setup: Neopixel - // *************************************************************************** - strip.init(); - #if defined(USE_WS2812FX_DMA) - dma.Initialize(); - strip.setCustomShow(DMA_Show); - #endif - strip.setBrightness(brightness); -// parameters: index, start, stop, mode, color, speed, options - strip.setSegment(0, 0, NUMLEDS-1, FX_MODE_COMET, hex_colors, convertSpeed(ws2812fx_speed), ws2812fx_options); - strip.start(); - // *************************************************************************** // Setup: WiFiManager // *************************************************************************** // The extra parameters to be configured (can be either global or just in the setup) // After connecting, parameter.getValue() will get you the configured value // id/name placeholder/prompt default length - #if defined(ENABLE_MQTT) - #if defined(ENABLE_STATE_SAVE) - #if ENABLE_STATE_SAVE == 1 - (readConfigFS()) ? DBG_OUTPUT_PORT.println("WiFiManager config FS Read success!"): DBG_OUTPUT_PORT.println("WiFiManager config FS Read failure!"); - #endif - #if ENABLE_STATE_SAVE == 0 - String settings_available = readEEPROM(134, 1); - if (settings_available == "1") { - readEEPROM(0, 64).toCharArray(mqtt_host, 64); // 0-63 - readEEPROM(64, 6).toCharArray(mqtt_port, 6); // 64-69 - readEEPROM(70, 32).toCharArray(mqtt_user, 32); // 70-101 - readEEPROM(102, 32).toCharArray(mqtt_pass, 32); // 102-133 - DBG_OUTPUT_PORT.printf("MQTT host: %s\n", mqtt_host); - DBG_OUTPUT_PORT.printf("MQTT port: %s\n", mqtt_port); - DBG_OUTPUT_PORT.printf("MQTT user: %s\n", mqtt_user); - DBG_OUTPUT_PORT.printf("MQTT pass: %s\n", mqtt_pass); - } - #endif - #endif - WiFiManagerParameter custom_mqtt_host("host", "MQTT hostname", mqtt_host, 64); - WiFiManagerParameter custom_mqtt_port("port", "MQTT port", mqtt_port, 6); - WiFiManagerParameter custom_mqtt_user("user", "MQTT user", mqtt_user, 32); - WiFiManagerParameter custom_mqtt_pass("pass", "MQTT pass", mqtt_pass, 32); + +#if defined(ENABLE_STATE_SAVE) + //Strip Config + #if ENABLE_STATE_SAVE == 1 + (readConfigFS()) ? DBG_OUTPUT_PORT.println("WiFiManager config FS read success!"): DBG_OUTPUT_PORT.println("WiFiManager config FS Read failure!"); + delay(500); + (readStateFS()) ? DBG_OUTPUT_PORT.println("Strip state config FS read Success!") : DBG_OUTPUT_PORT.println("Strip state config FS read failure!"); #endif + #if ENABLE_STATE_SAVE == 0 + (setConfByConfString(readEEPROM(0, 222)))? DBG_OUTPUT_PORT.println("WiFiManager config EEPROM read success!"): DBG_OUTPUT_PORT.println("WiFiManager config EEPROM Read failure!"); + (setModeByStateString(readEEPROM(256, 66)))? DBG_OUTPUT_PORT.println("Strip state config EEPROM read Success!") : DBG_OUTPUT_PORT.println("Strip state config EEPROM read failure!"); + #endif + char tmp_strip_size[6], tmp_fxoptions[5], tmp_rgbOrder[5]; //needed tempararily for WiFiManager Settings + WiFiManagerParameter custom_hostname("hostname", "Hostname", HOSTNAME, 64, " maxlength=64"); + #if defined(ENABLE_MQTT) + char tmp_mqtt_port[6]; //needed tempararily for WiFiManager Settings + WiFiManagerParameter custom_mqtt_host("host", "MQTT hostname", mqtt_host, 64, " maxlength=64"); + snprintf(tmp_mqtt_port, sizeof(tmp_mqtt_port), "%d", mqtt_port); + WiFiManagerParameter custom_mqtt_port("port", "MQTT port", tmp_mqtt_port, 5, " maxlength=5 type=\"number\""); + WiFiManagerParameter custom_mqtt_user("user", "MQTT user", mqtt_user, 32, " maxlength=32"); + WiFiManagerParameter custom_mqtt_pass("pass", "MQTT pass", mqtt_pass, 32, " maxlength=32 type=\"password\""); + #endif + snprintf(tmp_strip_size, sizeof(tmp_strip_size), "%d", WS2812FXStripSettings.stripSize); + WiFiManagerParameter custom_strip_size("strip_size", "Number of LEDs", tmp_strip_size, 4, " maxlength=4 type=\"number\""); + #if !defined(USE_WS2812FX_DMA) + char tmp_led_pin[3]; + snprintf(tmp_led_pin, sizeof(tmp_led_pin), "%d", WS2812FXStripSettings.pin); + WiFiManagerParameter custom_led_pin("led_pin", "LED GPIO", tmp_led_pin, 2, " maxlength=2 type=\"number\""); + #endif + snprintf(tmp_rgbOrder, sizeof(tmp_rgbOrder), "%s", WS2812FXStripSettings.RGBOrder); + WiFiManagerParameter custom_rgbOrder("rgbOrder", "RGBOrder", tmp_rgbOrder, 4, " maxlength=4"); + snprintf(tmp_fxoptions, sizeof(tmp_fxoptions), "%d", WS2812FXStripSettings.fxoptions); + WiFiManagerParameter custom_fxoptions("fxoptions", "fxOptions", tmp_fxoptions, 3, " maxlength=3"); +#endif + //Local intialization. Once its business is done, there is no need to keep it around + wifi_station_set_hostname(const_cast(HOSTNAME)); WiFiManager wifiManager; //reset settings - for testing //wifiManager.resetSettings(); //set callback that gets called when connecting to previous WiFi fails, and enters Access Point mode wifiManager.setAPCallback(configModeCallback); - + //set config save notify callback + wifiManager.setSaveConfigCallback(saveConfigCallback); + + wifiManager.addParameter(&custom_hostname); #if defined(ENABLE_MQTT) - //set config save notify callback - wifiManager.setSaveConfigCallback(saveConfigCallback); - //add all your parameters here wifiManager.addParameter(&custom_mqtt_host); wifiManager.addParameter(&custom_mqtt_port); wifiManager.addParameter(&custom_mqtt_user); wifiManager.addParameter(&custom_mqtt_pass); #endif - + wifiManager.addParameter(&custom_strip_size); + #if !defined(USE_WS2812FX_DMA) + wifiManager.addParameter(&custom_led_pin); + #endif + wifiManager.addParameter(&custom_rgbOrder); + wifiManager.addParameter(&custom_fxoptions); + WiFi.setSleepMode(WIFI_NONE_SLEEP); // Uncomment if you want to restart ESP8266 if it cannot connect to WiFi. // Value in brackets is in seconds that WiFiManger waits until restart - #if defined(WIFIMGR_PORTAL_TIMEOUT) +#if defined(WIFIMGR_PORTAL_TIMEOUT) wifiManager.setConfigPortalTimeout(WIFIMGR_PORTAL_TIMEOUT); - #endif +#endif // Uncomment if you want to set static IP // Order is: IP, Gateway and Subnet - #if defined(WIFIMGR_SET_MANUAL_IP) +#if defined(WIFIMGR_SET_MANUAL_IP) wifiManager.setSTAStaticIPConfig(IPAddress(_ip[0], _ip[1], _ip[2], _ip[3]), IPAddress(_gw[0], _gw[1], _gw[2], _gw[3]), IPAddress(_sn[0], _sn[1], _sn[2], _sn[3])); - #endif +#endif //fetches ssid and pass and tries to connect //if it does not connect it starts an access point with the specified name @@ -385,38 +520,46 @@ DBG_OUTPUT_PORT.println("Starting...."); ESP.reset(); //Will be removed when upgrading to standalone offline McLightingUI version delay(1000); //Will be removed when upgrading to standalone offline McLightingUI version } - - #if defined(ENABLE_MQTT) - //read updated parameters - strcpy(mqtt_host, custom_mqtt_host.getValue()); - strcpy(mqtt_port, custom_mqtt_port.getValue()); - strcpy(mqtt_user, custom_mqtt_user.getValue()); - strcpy(mqtt_pass, custom_mqtt_pass.getValue()); - - //save the custom parameters to FS/EEPROM - #if defined(ENABLE_STATE_SAVE) - #if ENABLE_STATE_SAVE == 1 - (writeConfigFS(shouldSaveConfig)) ? DBG_OUTPUT_PORT.println("WiFiManager config FS Save success!"): DBG_OUTPUT_PORT.println("WiFiManager config FS Save failure!"); - #endif - #if ENABLE_STATE_SAVE == 0 - if (shouldSaveConfig) { - DBG_OUTPUT_PORT.println("Saving WiFiManager config"); - writeEEPROM(0, 64, mqtt_host); // 0-63 - writeEEPROM(64, 6, mqtt_port); // 64-69 - writeEEPROM(70, 32, mqtt_user); // 70-101 - writeEEPROM(102, 32, mqtt_pass); // 102-133 - writeEEPROM(134, 1, "1"); // 134 --> always "1" - EEPROM.commit(); - } - #endif + //save the custom parameters to FS/EEPROM + #if defined(ENABLE_STATE_SAVE) + strcpy(HOSTNAME, custom_hostname.getValue()); + #if defined(ENABLE_MQTT) + //read updated parameters + strcpy(mqtt_host, custom_mqtt_host.getValue()); + mqtt_port = atoi(custom_mqtt_port.getValue()); + strcpy(mqtt_user, custom_mqtt_user.getValue()); + strcpy(mqtt_pass, custom_mqtt_pass.getValue()); #endif - - #if ENABLE_MQTT == 1 - wifiConnectHandler = WiFi.onStationModeGotIP(onWifiConnect); - wifiDisconnectHandler = WiFi.onStationModeDisconnected(onWifiDisconnect); + strcpy(tmp_strip_size, custom_strip_size.getValue()); + WS2812FXStripSettings.stripSize = atoi(custom_strip_size.getValue()); + #if !defined(USE_WS2812FX_DMA) + checkPin(atoi(custom_led_pin.getValue())); + #endif + strcpy(tmp_rgbOrder, custom_rgbOrder.getValue()); + checkRGBOrder(tmp_rgbOrder); + WS2812FXStripSettings.fxoptions = atoi(custom_fxoptions.getValue()); + #if ENABLE_STATE_SAVE == 1 + (writeConfigFS(shouldSaveConfig)) ? DBG_OUTPUT_PORT.println("WiFiManager config FS Save success!"): DBG_OUTPUT_PORT.println("WiFiManager config FS Save failure!"); + (writeStateFS(shouldSaveConfig)) ? DBG_OUTPUT_PORT.println("State config FS Save success!"): DBG_OUTPUT_PORT.println("State config FS Save failure!"); + #endif + #if ENABLE_STATE_SAVE == 0 + if (shouldSaveConfig) { + char last_conf[223]; + DBG_OUTPUT_PORT.println("Saving WiFiManager config"); + #if defined(ENABLE_MQTT) + snprintf(last_conf, sizeof(last_conf), "CNF|%64s|%64s|%5d|%32s|%32s|%4d|%2d|%4s|%3d", HOSTNAME, mqtt_host, mqtt_port, mqtt_user, mqtt_pass, WS2812FXStripSettings.stripSize, WS2812FXStripSettings.pin, WS2812FXStripSettings.RGBOrder, WS2812FXStripSettings.fxoptions); + #else + snprintf(last_conf, sizeof(last_conf), "CNF|%64s|%64s|%5d|%32s|%32s|%4d|%2d|%4s|%3d", HOSTNAME, "", "", "", "", WS2812FXStripSettings.stripSize, WS2812FXStripSettings.pin, WS2812FXStripSettings.RGBOrder, WS2812FXStripSettings.fxoptions); + #endif + writeEEPROM(0, 222, last_conf); + EEPROM.commit(); + } #endif #endif + + initStrip(); + //if you get here you have connected to the WiFi DBG_OUTPUT_PORT.println("connected...yeey :)"); ticker.detach(); @@ -425,89 +568,61 @@ DBG_OUTPUT_PORT.println("Starting...."); //switch LED off //digitalWrite(LED_BUILTIN, HIGH); - #if defined(ENABLE_OTA) - #if ENABLE_OTA == 0 - // *************************************************************************** - // Configure Arduino OTA - // *************************************************************************** - DBG_OUTPUT_PORT.println("Arduino OTA activated."); - - // Port defaults to 8266 - ArduinoOTA.setPort(8266); - - // Hostname defaults to esp8266-[ChipID] - ArduinoOTA.setHostname(HOSTNAME); - - // No authentication by default - // ArduinoOTA.setPassword("admin"); - - // Password can be set with it's md5 value as well - // MD5(admin) = 21232f297a57a5a743894a0e4a801fc3 - // ArduinoOTA.setPasswordHash("21232f297a57a5a743894a0e4a801fc3"); - - ArduinoOTA.onStart([]() { - DBG_OUTPUT_PORT.println("Arduino OTA: Start updating"); - }); - ArduinoOTA.onEnd([]() { - DBG_OUTPUT_PORT.println("Arduino OTA: End"); - }); - ArduinoOTA.onProgress([](unsigned int progress, unsigned int total) { - DBG_OUTPUT_PORT.printf("Arduino OTA Progress: %u%%\r", (progress / (total / 100))); - }); - ArduinoOTA.onError([](ota_error_t error) { - DBG_OUTPUT_PORT.printf("Arduino OTA Error[%u]: ", error); - if (error == OTA_AUTH_ERROR) DBG_OUTPUT_PORT.println("Arduino OTA: Auth Failed"); - else if (error == OTA_BEGIN_ERROR) DBG_OUTPUT_PORT.println("Arduino OTA: Begin Failed"); - else if (error == OTA_CONNECT_ERROR) DBG_OUTPUT_PORT.println("Arduino OTA: Connect Failed"); - else if (error == OTA_RECEIVE_ERROR) DBG_OUTPUT_PORT.println("Arduino OTA: Receive Failed"); - else if (error == OTA_END_ERROR) DBG_OUTPUT_PORT.println("Arduino OTA: End Failed"); - }); - - ArduinoOTA.begin(); - DBG_OUTPUT_PORT.println(""); - #endif - #if ENABLE_OTA == 1 - httpUpdater.setup(&server, "/update"); - #endif - #endif - +#if defined(ENABLE_OTA) + #if ENABLE_OTA == 0 // *************************************************************************** - // Configure MQTT + // Configure Arduino OTA // *************************************************************************** - #if defined(ENABLE_MQTT_HOSTNAME_CHIPID) - snprintf(mqtt_clientid, 64, "%s-%08X", HOSTNAME, ESP.getChipId()); - #endif + DBG_OUTPUT_PORT.println("Arduino OTA activated."); - #if defined(ENABLE_MQTT) - snprintf(mqtt_intopic, sizeof mqtt_intopic, "%s/in", HOSTNAME); - snprintf(mqtt_outtopic, sizeof mqtt_outtopic, "%s/out", HOSTNAME); - #if ENABLE_MQTT == 0 - if (mqtt_host != "" && atoi(mqtt_port) > 0) { - DBG_OUTPUT_PORT.printf("MQTT active: %s:%s\n", mqtt_host, mqtt_port); - mqtt_client.setServer(mqtt_host, atoi(mqtt_port)); - mqtt_client.setCallback(mqtt_callback); - } - #endif - - #if ENABLE_MQTT == 1 - if (mqtt_host != "" && atoi(mqtt_port) > 0) { - DBG_OUTPUT_PORT.printf("AMQTT active: %s:%s\n", mqtt_host, mqtt_port); - amqttClient.onConnect(onMqttConnect); - amqttClient.onDisconnect(onMqttDisconnect); - amqttClient.onMessage(onMqttMessage); - amqttClient.setServer(mqtt_host, atoi(mqtt_port)); - if (mqtt_user != "" or mqtt_pass != "") amqttClient.setCredentials(mqtt_user, mqtt_pass); - amqttClient.setClientId(mqtt_clientid); - - connectToMqtt(); - } - #endif - #if defined(ENABLE_HOMEASSISTANT) - snprintf(mqtt_ha_state_in, sizeof mqtt_ha_state_in, "home/%s_ha/state/in", HOSTNAME); - snprintf(mqtt_ha_state_out, sizeof mqtt_ha_state_out , "home/%s_ha/state/out", HOSTNAME); - #endif - #endif + // Port defaults to 8266 + ArduinoOTA.setPort(8266); + // Hostname defaults to esp8266-[ChipID] + ArduinoOTA.setHostname(HOSTNAME); + + // No authentication by default + // ArduinoOTA.setPassword("admin"); + + // Password can be set with it's md5 value as well + // MD5(admin) = 21232f297a57a5a743894a0e4a801fc3 + // ArduinoOTA.setPasswordHash("21232f297a57a5a743894a0e4a801fc3"); + + ArduinoOTA.onStart([]() { + DBG_OUTPUT_PORT.println("Arduino OTA: Start updating"); + }); + ArduinoOTA.onEnd([]() { + DBG_OUTPUT_PORT.println("Arduino OTA: End"); + }); + ArduinoOTA.onProgress([](unsigned int progress, unsigned int total) { + DBG_OUTPUT_PORT.printf("Arduino OTA Progress: %u%%\r", (progress / (total / 100))); + }); + ArduinoOTA.onError([](ota_error_t error) { + DBG_OUTPUT_PORT.printf("Arduino OTA Error[%u]: ", error); + if (error == OTA_AUTH_ERROR) DBG_OUTPUT_PORT.println("Arduino OTA: Auth Failed"); + else if (error == OTA_BEGIN_ERROR) DBG_OUTPUT_PORT.println("Arduino OTA: Begin Failed"); + else if (error == OTA_CONNECT_ERROR) DBG_OUTPUT_PORT.println("Arduino OTA: Connect Failed"); + else if (error == OTA_RECEIVE_ERROR) DBG_OUTPUT_PORT.println("Arduino OTA: Receive Failed"); + else if (error == OTA_END_ERROR) DBG_OUTPUT_PORT.println("Arduino OTA: End Failed"); + }); + + ArduinoOTA.begin(); + DBG_OUTPUT_PORT.println(""); + #endif + #if ENABLE_OTA == 1 + httpUpdater.setup(&server, "/update"); + #endif +#endif + +#if defined(ENABLE_MQTT) + initMqtt(); +#endif + +#if ENABLE_MQTT == 1 + wifiConnectHandler = WiFi.onStationModeGotIP(onWifiConnect); + wifiDisconnectHandler = WiFi.onStationModeDisconnected(onWifiDisconnect); +#endif + // *************************************************************************** // Setup: MDNS responder // *************************************************************************** @@ -527,340 +642,13 @@ DBG_OUTPUT_PORT.println("Starting...."); DBG_OUTPUT_PORT.println(""); - // *************************************************************************** // Setup: WebSocket server // *************************************************************************** webSocket.begin(); webSocket.onEvent(webSocketEvent); - // *************************************************************************** - // Setup: SPIFFS Webserver handler - // *************************************************************************** - //list directory - server.on("/list", HTTP_GET, handleFileList); - //load editor - server.on("/edit", HTTP_GET, []() { - if (!handleFileRead("/edit.htm")) server.send(404, "text/plain", "FileNotFound"); - }); - //create file - server.on("/edit", HTTP_PUT, handleFileCreate); - //delete file - server.on("/edit", HTTP_DELETE, handleFileDelete); - //first callback is called after the request has ended with all parsed arguments - //second callback handles file uploads at that location - server.on("/edit", HTTP_POST, []() { - server.sendHeader("Access-Control-Allow-Origin", "*"); - server.send(200, "text/plain", ""); - }, handleFileUpload); - //get heap status, analog input value and all GPIO statuses in one json call - server.on("/esp_status", HTTP_GET, []() { - const size_t bufferSize = JSON_OBJECT_SIZE(31) + 600; - DynamicJsonDocument jsonBuffer(bufferSize); - JsonObject json = jsonBuffer.to(); - json["HOSTNAME"] = HOSTNAME; - json["version"] = SKETCH_VERSION; - json["heap"] = ESP.getFreeHeap(); - json["sketch_size"] = ESP.getSketchSize(); - json["free_sketch_space"] = ESP.getFreeSketchSpace(); - json["flash_chip_size"] = ESP.getFlashChipSize(); - json["flash_chip_real_size"] = ESP.getFlashChipRealSize(); - json["flash_chip_speed"] = ESP.getFlashChipSpeed(); - json["sdk_version"] = ESP.getSdkVersion(); - json["core_version"] = ESP.getCoreVersion(); - json["cpu_freq"] = ESP.getCpuFreqMHz(); - json["chip_id"] = ESP.getFlashChipId(); - #if defined(USE_WS2812FX_DMA) - #if USE_WS2812FX_DMA == 0 - json["animation_lib"] = "WS2812FX_DMA"; - json["ws2812_pin"] = 3; - #endif - #if USE_WS2812FX_DMA == 1 - json["animation_lib"] = "WS2812FX_UART1"; - json["ws2812_pin"] = 2; - #endif - #if USE_WS2812FX_DMA == 2 - json["animation_lib"] = "WS2812FX_UART2"; - json["ws2812_pin"] = 1; - #endif - #else - json["animation_lib"] = "WS2812FX"; - json["ws2812_pin"] = PIN; - #endif - json["number_leds"] = NUMLEDS; - #if defined(RGBW) - json["rgbw_mode"] = "ON"; - #else - json["rgbw_mode"] = "OFF"; - #endif - #if defined(ENABLE_BUTTON) - json["button_mode"] = "ON"; - json["button_pin"] = ENABLE_BUTTON; - #else - json["button_mode"] = "OFF"; - #endif - #if defined(ENABLE_BUTTON_GY33) - json["button_gy33"] = "ON"; - json["gy33_pin"] = ENABLE_BUTTON_GY33; - #else - json["button_gy33"] = "OFF"; - #endif - #if defined(ENABLE_REMOTE) - json["ir_remote"] = "ON"; - json["tsop_ir_pin"] = ENABLE_REMOTE; - #else - json["ir_remote"] = "OFF"; - #endif - #if defined(ENABLE_MQTT) - #if ENABLE_MQTT == 0 - json["mqtt"] = "MQTT"; - #endif - #if ENABLE_MQTT == 1 - json["mqtt"] = "AMQTT"; - #endif - #else - json["mqtt"] = "OFF"; - #endif - #if defined(ENABLE_HOMEASSISTANT) - json["home_assistant"] = "ON"; - #else - json["home_assistant"] = "OFF"; - #endif - #if defined(ENABLE_LEGACY_ANIMATIONS) - json["legacy_animations"] = "ON"; - #else - json["legacy_animations"] = "OFF"; - #endif - #if defined(ENABLE_TV) - json["tv_animation"] = "ON"; - #else - json["tv_animation"] = "OFF"; - #endif - #if defined(ENABLE_E131) - json["e131_animations"] = "ON"; - #else - json["e131_animations"] = "OFF"; - #endif - #if defined(ENABLE_OTA) - #if ENABLE_OTA == 0 - json["ota"] = "ARDUINO"; - #endif - #if ENABLE_OTA == 1 - json["ota"] = "HTTP"; - #endif - #else - json["ota"] = "OFF"; - #endif - #if defined(ENABLE_STATE_SAVE) - #if ENABLE_STATE_SAVE == 1 - json["state_save"] = "SPIFFS"; - #endif - #if ENABLE_STATE_SAVE == 0 - json["state_save"] = "EEPROM"; - #endif - #else - json["state_save"] = "OFF"; - #endif - - String json_str; - serializeJson(json, json_str); - jsonBuffer.clear(); - server.sendHeader("Access-Control-Allow-Origin", "*"); - server.send(200, "application/json", json_str); - }); - -// *************************************************************************** -// Setup: SPIFFS Webserver handler -// *************************************************************************** - //called when the url is not defined here - //use it to load content from SPIFFS - server.onNotFound([]() { - if (!handleFileRead(server.uri())) - handleNotFound(); - }); - - server.on("/upload", handleMinimalUpload); - - server.on("/restart", []() { - DBG_OUTPUT_PORT.printf("/restart\n"); - server.sendHeader("Access-Control-Allow-Origin", "*"); - server.send(200, "text/plain", "restarting..." ); - ESP.restart(); - }); - - server.on("/reset_wlan", []() { - DBG_OUTPUT_PORT.printf("/reset_wlan\n"); - server.sendHeader("Access-Control-Allow-Origin", "*"); - server.send(200, "text/plain", "Resetting WLAN and restarting..." ); - WiFiManager wifiManager; - wifiManager.resetSettings(); - ESP.restart(); - }); - - server.on("/start_config_ap", []() { - DBG_OUTPUT_PORT.printf("/start_config_ap\n"); - server.sendHeader("Access-Control-Allow-Origin", "*"); - server.send(200, "text/plain", "Starting config AP ..." ); - WiFiManager wifiManager; - wifiManager.startConfigPortal(HOSTNAME); - }); - - server.on("/format_spiffs", []() { - DBG_OUTPUT_PORT.printf("/format_spiffs\n"); - server.send(200, "text/plain", "Formatting SPIFFS ..." ); - SPIFFS.format(); - }); - - server.on("/set_brightness", []() { - getArgs(); - mode = SET_BRIGHTNESS; - getStatusJSON(); - }); - - server.on("/get_brightness", []() { - char str_brightness[3]; - sprintf(str_brightness, "%i", (int) (brightness / 2.55)); - server.sendHeader("Access-Control-Allow-Origin", "*"); - server.send(200, "text/plain", str_brightness ); - DBG_OUTPUT_PORT.printf("/get_brightness: %i\r\n", (int) (brightness / 2.55)); - }); - - server.on("/set_speed", []() { - getArgs(); - mode = SET_SPEED; - getStatusJSON(); - }); - - server.on("/get_speed", []() { - char str_speed[3]; - sprintf(str_speed, "%i", ws2812fx_speed); - server.sendHeader("Access-Control-Allow-Origin", "*"); - server.send(200, "text/plain", str_speed ); - DBG_OUTPUT_PORT.printf("/get_speed: %i\r\n", ws2812fx_speed); - }); - - server.on("/get_switch", []() { - server.sendHeader("Access-Control-Allow-Origin", "*"); - server.send(200, "text/plain", (mode == OFF) ? "0" : "1" ); - DBG_OUTPUT_PORT.printf("/get_switch: %s\r\n", (mode == OFF) ? "0" : "1"); - }); - - server.on("/get_color", []() { - char rgbcolor[9]; - snprintf(rgbcolor, sizeof(rgbcolor), "%02X%02X%02X%02X", main_color.white, main_color.red, main_color.green, main_color.blue); - server.sendHeader("Access-Control-Allow-Origin", "*"); - server.send(200, "text/plain", rgbcolor ); - DBG_OUTPUT_PORT.print("/get_color: "); - DBG_OUTPUT_PORT.println(rgbcolor); - }); - - server.on("/get_color2", []() { - char rgbcolor[9]; - snprintf(rgbcolor, sizeof(rgbcolor), "%02X%02X%02X%02X", back_color.white, back_color.red, back_color.green, back_color.blue); - server.sendHeader("Access-Control-Allow-Origin", "*"); - server.send(200, "text/plain", rgbcolor ); - DBG_OUTPUT_PORT.print("/get_color2: "); - DBG_OUTPUT_PORT.println(rgbcolor); - }); - - server.on("/get_color3", []() { - char rgbcolor[9]; - snprintf(rgbcolor, sizeof(rgbcolor), "%02X%02X%02X%02X", xtra_color.white, xtra_color.red, xtra_color.green, xtra_color.blue); - server.sendHeader("Access-Control-Allow-Origin", "*"); - server.send(200, "text/plain", rgbcolor ); - DBG_OUTPUT_PORT.print("/get_color3: "); - DBG_OUTPUT_PORT.println(rgbcolor); - }); - - - server.on("/status", []() { - getStatusJSON(); - }); - - server.on("/off", []() { - mode = OFF; - getStatusJSON(); - }); - - server.on("/auto", []() { - mode = AUTO; - getStatusJSON(); - }); - - server.on("/all", []() { - getArgs(); - ws2812fx_mode = FX_MODE_STATIC; - mode = SET_ALL; - getStatusJSON(); - }); - - #if defined(ENABLE_LEGACY_ANIMATIONS) - server.on("/wipe", []() { - getArgs(); - ws2812fx_mode = FX_MODE_COLOR_WIPE; - mode = SET_ALL; - getStatusJSON(); - }); - - server.on("/rainbow", []() { - getArgs(); - ws2812fx_mode = FX_MODE_RAINBOW; - mode = SET_ALL; - getStatusJSON(); - }); - - server.on("/rainbowcycle", []() { - getArgs(); - ws2812fx_mode = FX_MODE_RAINBOW_CYCLE; - mode = SET_ALL; - getStatusJSON(); - }); - - server.on("/theaterchase", []() { - getArgs(); - ws2812fx_mode = FX_MODE_THEATER_CHASE; - mode = SET_ALL; - getStatusJSON(); - }); - - server.on("/twinklerandom", []() { - getArgs(); - ws2812fx_mode = FX_MODE_TWINKLE_RANDOM; - mode = SET_ALL; - getStatusJSON(); - }); - - server.on("/theaterchaserainbow", []() { - getArgs(); - ws2812fx_mode = FX_MODE_THEATER_CHASE_RAINBOW; - mode = SET_ALL; - getStatusJSON(); - }); - #endif - - #if defined(ENABLE_E131) - server.on("/e131", []() { - mode = E131; - getStatusJSON(); - }); - #endif - - #if defined(ENABLE_TV) - server.on("/tv", []() { - mode = TV; - getStatusJSON(); - }); - #endif - - server.on("/get_modes", []() { - getModesJSON(); - }); - - server.on("/set_mode", []() { - getArgs(); - mode = SET_MODE; - getStatusJSON(); - }); +#include "rest_api.h" server.begin(); @@ -871,38 +659,27 @@ DBG_OUTPUT_PORT.println("Starting...."); #if defined(ENABLE_E131) // Choose one to begin listening for E1.31 data + e131 = new ESPAsyncE131(END_UNIVERSE - START_UNIVERSE + 1); // if (e131.begin(E131_UNICAST)) // Listen via Unicast - if (e131.begin(E131_MULTICAST, START_UNIVERSE, END_UNIVERSE)) // Listen via Multicast + if (e131->begin(E131_MULTICAST, START_UNIVERSE, END_UNIVERSE)) {// Listen via Multicast DBG_OUTPUT_PORT.println(F("Listening for data...")); - else + } else { DBG_OUTPUT_PORT.println(F("*** e131.begin failed ***")); + } #endif + DBG_OUTPUT_PORT.println("You are here!: 1117"); + prevmode = mode; - #if defined(ENABLE_STATE_SAVE) - #if ENABLE_STATE_SAVE == 1 - (readStateFS()) ? DBG_OUTPUT_PORT.println(" Success!") : DBG_OUTPUT_PORT.println(" Failure!"); - #endif - #if ENABLE_STATE_SAVE == 0 - // Load state string from EEPROM - String saved_state_string = readEEPROM(256, 66); - String chk = getValue(saved_state_string, '|', 0); - if (chk == "STA") { - DBG_OUTPUT_PORT.printf("Found saved state: %s\n", saved_state_string.c_str()); - setModeByStateString(saved_state_string); - mode = SET_ALL; - } - #endif - #endif #if defined(ENABLE_BUTTON_GY33) tcs.setConfig(MCU_LED_06, MCU_WHITE_ON); // delay(2000); // tcs.setConfig(MCU_LED_OFF, MCU_WHITE_OFF); #endif - prevmode = mode; #if defined(ENABLE_REMOTE) irrecv.enableIRIn(); // Start the receiver - sprintf(last_state, "STA|%2d|%3d|%3d|%3d|%3d|%3d|%3d|%3d|%3d|%3d|%3d|%3d|%3d|%3d|%3d|%3d", mode, ws2812fx_mode, ws2812fx_speed, brightness, main_color.red, main_color.green, main_color.blue, main_color.white, back_color.red, back_color.green, back_color.blue, back_color.white, xtra_color.red, xtra_color.green, xtra_color.blue,xtra_color.white); + snprintf(last_state, sizeof(last_state), "STA|%2d|%3d|%3d|%3d|%3d|%3d|%3d|%3d|%3d|%3d|%3d|%3d|%3d|%3d|%3d|%3d", mode, ws2812fx_mode, ws2812fx_speed, brightness, main_color.red, main_color.green, main_color.blue, main_color.white, back_color.red, back_color.green, back_color.blue, back_color.white, xtra_color.red, xtra_color.green, xtra_color.blue,xtra_color.white); #endif + DBG_OUTPUT_PORT.println("finished Main Setup!"); } // *************************************************************************** @@ -938,52 +715,56 @@ void loop() { WiFi.mode(WIFI_STA); WiFi.begin(); } else { - if (mqtt_host != "" && String(mqtt_port).toInt() > 0 && mqtt_reconnect_retries < MQTT_MAX_RECONNECT_TRIES) { - if (!mqtt_client.connected()) { + if ((strlen(mqtt_host) != 0) && (mqtt_port != 0) && (mqtt_reconnect_retries < MQTT_MAX_RECONNECT_TRIES)) { + if (!mqtt_client->connected()) { #if defined(ENABLE_HOMEASSISTANT) ha_send_data.detach(); #endif DBG_OUTPUT_PORT.println("MQTT disconnected, reconnecting!"); mqtt_reconnect(); } else { - mqtt_client.loop(); + mqtt_client->loop(); } } } #endif + + #if defined(ENABLE_HOMEASSISTANT) + if (new_ha_mqtt_msg) sendState(); + #endif #endif // *************************************************************************** // Simple statemachine that handles the different modes // *************************************************************************** - if ((mode != OFF) && (mode != TV) && (mode != E131)) { // strip.start() is only needed for modes with WS2812FX functionality - if(!strip.isRunning()) strip.start(); + if ((mode != OFF) && (mode != TV) && (mode != E131)) { // strip->start() is only needed for modes with WS2812FX functionality + if(!strip->isRunning()) strip->start(); } if ((mode == OFF) || (mode == TV) || (mode == E131)) { - if(strip.isRunning()) { - strip.strip_off(); // Workaround: to be shure, - delay(10); // that strip is really off. Sometimes strip.stop isn't enought - strip.stop(); // should clear memory + if(strip->isRunning()) { + strip->strip_off(); // Workaround: to be shure, + delay(10); // that strip is really off. Sometimes strip->stop isn't enought + strip->stop(); // should clear memory } else { if (prevmode != mode) { // Start temporarily to clear strip - strip.start(); - strip.strip_off(); // Workaround: to be shure, - delay(10); // that strip is really off. Sometimes strip.stop isn't enought - strip.stop(); // should clear memory + strip->start(); + strip->strip_off(); // Workaround: to be shure, + delay(10); // that strip is really off. Sometimes strip->stop isn't enought + strip->stop(); // should clear memory } } } - if (( mode == AUTO) || (mode == HOLD)) { // strip.service() is only needed for modes with WS2812FX functionality - strip.service(); + if (( mode == AUTO) || (mode == HOLD)) { // strip->service() is only needed for modes with WS2812FX functionality + strip->service(); } if ((prevmode == AUTO) && (mode != AUTO)) { handleAutoStop(); } // stop auto mode if (mode == OFF) { #if defined(ENABLE_MQTT) - if (prevmode != mode) { sprintf(mqtt_buf, "OK =off", ""); } + if (prevmode != mode) { snprintf(mqtt_buf, sizeof(mqtt_buf), "OK =off", ""); } #endif } @@ -991,7 +772,7 @@ void loop() { if (prevmode != mode) { handleAutoStart(); #if defined(ENABLE_MQTT) - sprintf(mqtt_buf, "OK =auto", ""); + snprintf(mqtt_buf, sizeof(mqtt_buf), "OK =auto", ""); #endif } } @@ -1000,7 +781,7 @@ void loop() { if (mode == TV) { handleTV(); #if defined(ENABLE_MQTT) - if (prevmode != mode) { sprintf(mqtt_buf, "OK =tv", ""); } + if (prevmode != mode) { snprintf(mqtt_buf, sizeof(mqtt_buf), "OK =tv", ""); } #endif } #endif @@ -1009,60 +790,70 @@ void loop() { if (mode == E131) { handleE131(); #if defined(ENABLE_MQTT) - if (prevmode != mode) { sprintf(mqtt_buf, "OK =e131", ""); } + if (prevmode != mode) { snprintf(mqtt_buf, sizeof(mqtt_buf), "OK =e131", ""); } #endif } #endif + + if (mode == INIT_STRIP) { + mode = prevmode; + //ws2812fx_mode = strip->getMode(); + strip->strip_off(); + delay(10); + if(strip->isRunning()) strip->stop(); + initStrip(); + prevmode = INIT_STRIP; + } if (mode == SET_ALL) { mode = HOLD; if ((prevmode == OFF) || (prevmode == AUTO) || (prevmode == TV) || (prevmode == E131)) { setModeByStateString(last_state); } #if defined(ENABLE_MQTT) - sprintf(mqtt_buf, "OK /%i", ws2812fx_mode); + snprintf(mqtt_buf, sizeof(mqtt_buf), "OK /%i", ws2812fx_mode); #endif - strip.setMode(ws2812fx_mode); + strip->setMode(ws2812fx_mode); convertColors(); - strip.setColors(0, hex_colors); - strip.setSpeed(convertSpeed(ws2812fx_speed)); - strip.setBrightness(brightness); + strip->setColors(0, hex_colors); + strip->setSpeed(convertSpeed(ws2812fx_speed)); + strip->setBrightness(brightness); prevmode = SET_ALL; - strip.trigger(); + strip->trigger(); } if (mode == SET_MODE) { mode = HOLD; #if defined(ENABLE_MQTT) - sprintf(mqtt_buf, "OK /%i", ws2812fx_mode); + snprintf(mqtt_buf, sizeof(mqtt_buf), "OK /%i", ws2812fx_mode); #endif - strip.setMode(ws2812fx_mode); + strip->setMode(ws2812fx_mode); prevmode = SET_MODE; - strip.trigger(); + strip->trigger(); } if (mode == SET_COLOR) { convertColors(); - strip.setColors(0, hex_colors); + strip->setColors(0, hex_colors); mode = prevmode; prevmode = SET_COLOR; - if (mode == HOLD) strip.trigger(); + if (mode == HOLD) strip->trigger(); } if (mode == SET_SPEED) { #if defined(ENABLE_MQTT) - sprintf(mqtt_buf, "OK ?%i", ws2812fx_speed); + snprintf(mqtt_buf, sizeof(mqtt_buf), "OK ?%i", ws2812fx_speed); #endif - strip.setSpeed(convertSpeed(ws2812fx_speed)); + strip->setSpeed(convertSpeed(ws2812fx_speed)); mode = prevmode; prevmode = SET_SPEED; - if (mode == HOLD) strip.trigger(); + if (mode == HOLD) strip->trigger(); } if (mode == SET_BRIGHTNESS) { #if defined(ENABLE_MQTT) - sprintf(mqtt_buf, "OK %%%i", brightness); + snprintf(mqtt_buf, sizeof(mqtt_buf), "OK %%%i", brightness); #endif - strip.setBrightness(brightness); + strip->setBrightness(brightness); mode = prevmode; prevmode = SET_BRIGHTNESS; - if (mode == HOLD) strip.trigger(); + if (mode == HOLD) strip->trigger(); } if (prevmode != mode) { @@ -1070,14 +861,14 @@ void loop() { #if defined(ENABLE_STATE_SAVE) if(!settings_save_state.active()) settings_save_state.once(3, tickerSaveState); #endif - snprintf(last_state, sizeof last_state, "STA|%2d|%3d|%3d|%3d|%3d|%3d|%3d|%3d|%3d|%3d|%3d|%3d|%3d|%3d|%3d|%3d", prevmode, ws2812fx_mode, ws2812fx_speed, brightness, main_color.red, main_color.green, main_color.blue, main_color.white, back_color.red, back_color.green, back_color.blue, back_color.white, xtra_color.red, xtra_color.green, xtra_color.blue, xtra_color.white); + snprintf(last_state, sizeof(last_state), "STA|%2d|%3d|%3d|%3d|%3d|%3d|%3d|%3d|%3d|%3d|%3d|%3d|%3d|%3d|%3d|%3d", prevmode, ws2812fx_mode, ws2812fx_speed, brightness, main_color.red, main_color.green, main_color.blue, main_color.white, back_color.red, back_color.green, back_color.blue, back_color.white, xtra_color.red, xtra_color.green, xtra_color.blue, xtra_color.white); } #if defined(ENABLE_MQTT) #if ENABLE_MQTT == 0 - mqtt_client.publish(mqtt_outtopic, mqtt_buf); + mqtt_client->publish(mqtt_outtopic, mqtt_buf); #endif #if ENABLE_MQTT == 1 - amqttClient.publish(mqtt_outtopic, qospub, false, mqtt_buf); + mqtt_client->publish(mqtt_outtopic, qospub, false, mqtt_buf); #endif #if defined(ENABLE_HOMEASSISTANT) if(!ha_send_data.active()) ha_send_data.once(3, tickerSendState); @@ -1087,21 +878,16 @@ void loop() { #if defined(ENABLE_STATE_SAVE) if (updateState){ #if ENABLE_STATE_SAVE == 1 - (writeStateFS()) ? DBG_OUTPUT_PORT.println(" Success!") : DBG_OUTPUT_PORT.println(" Failure!"); + (writeStateFS(true)) ? DBG_OUTPUT_PORT.println(" Success!") : DBG_OUTPUT_PORT.println(" Failure!"); #endif #if ENABLE_STATE_SAVE == 0 - writeEEPROM(256, 66, last_state); // 256 --> last_state (reserved 66 bytes) - EEPROM.commit(); - updateState = false; - settings_save_state.detach(); + writeEEPROM(384, 66, last_state); // 384 --> last_state (reserved 66 bytes) + EEPROM.commit(); + updateState = false; + settings_save_state.detach(); #endif #endif } - #if defined(ENABLE_MQTT) - #if defined(ENABLE_HOMEASSISTANT) - if (new_ha_mqtt_msg) sendState(); - #endif - #endif prevmode = mode; diff --git a/Arduino/McLighting/McLighting.ino.nodemcu.bin b/Arduino/McLighting/McLighting.ino.nodemcu.bin new file mode 100644 index 0000000000000000000000000000000000000000..c33d37435f8874d5fad432e12f00705d44659724 GIT binary patch literal 492368 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�Ux4P@ZM##pJer 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

nU)42r)GYWz8{7d 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%0DKQZD(p^eDZ$;<`w17E^^y2nSDX8^L*Lv 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�{2Myy%HCx@%jH;-~GHc4X6I&}0`6w>5Xy|d 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%0A9$H-RTppLW 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�l0sZEHg!Sl=0mFUjs*wK1iOCzLgThU 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 M%ffgtkNBMV4|ayGb^rhX literal 0 HcmV?d00001 diff --git a/Arduino/McLighting/definitions.h b/Arduino/McLighting/definitions.h index 64458c0..c0a8117 100644 --- a/Arduino/McLighting/definitions.h +++ b/Arduino/McLighting/definitions.h @@ -1,13 +1,14 @@ -; #define USE_WS2812FX_DMA 0 // 0 = Used PIN is ignored & set to RX/GPIO3; 1 = Used PIN is ignored & set to D4/GPIO2; 2 = Uses PIN is ignored & set to TX/GPIO1; Uses WS2812FX, see: https://github.com/kitesurfer1404/WS2812FX // Neopixel -#define PIN 3 // PIN (15 / D8) where neopixel / WS2811 strip is attached -#define NUMLEDS 144 // Number of leds in the strip +#define LED_PIN 3 // PIN (15 / D8) where neopixel / WS2811 strip is attached; is configurable just for the start +#define NUMLEDS 144 // Number of leds in the; is configurable just for the start +#define RGBORDER "GRBW" // RGBOrder; is configurable just for the start +#define FX_OPTIONS 56 // ws2812fx Options 56 = SIZE_SMALL + FADE_MEDIUM + GAMMA is configurable just for the start; for WS2812FX setSegment OPTIONS, see: https://github.com/kitesurfer1404/WS2812FX/blob/master/extras/WS2812FX%20Users%20Guide.md +//#define LED_TYPE_WS2811 // Uncomment, if LED type uses 400 KHz (classic 'v1' (not v2) FLORA pixels, WS2811 drivers) #define LED_BUILTIN 2 // ESP-12F has the built in LED on GPIO2, see https://github.com/esp8266/Arduino/issues/2192 -#define RGBW // If defined, use RGBW Strips -const char HOSTNAME[] = "McLightingRGBW_01"; // Friedly hostname +char HOSTNAME[65] = "McLightingRGBW"; // Friedly hostname is configurable just for the start #define ENABLE_OTA 1 // If defined, enable Arduino OTA code. If set to 0 enable Arduino OTA code, if set to 1 enable ESP8266HTTPUpdateServer OTA code. #define ENABLE_MQTT 1 // If defined use MQTT OR AMQTT, if set to 0 enable MQTT client code, see: https://github.com/toblum/McLighting/wiki/MQTT-API, if set to 1, enable Async MQTT code, see: https://github.com/marvinroger/async-mqtt-client @@ -16,17 +17,21 @@ const char HOSTNAME[] = "McLightingRGBW_01"; // Friedly hostname #define MQTT_HOME_ASSISTANT_SUPPORT // If defined, use AMQTT and select Tools -> IwIP Variant -> Higher Bandwidth #define ENABLE_BUTTON 14 // If defined, enable button handling code, see: https://github.com/toblum/McLighting/wiki/Button-control, the value defines the input pin (14 / D5) for switching the LED strip on / off, connect this PIN to ground to trigger button. //#define ENABLE_BUTTON_GY33 12 // If defined, enable button handling code for GY-33 color sensor to scan color. The value defines the input pin (12 / D6) for read color data with RGB sensor, connect this PIN to ground to trigger button. -//#define ENABLE_REMOTE 13 // If defined, enable Remote Control via TSOP31238. The value defines the input pin (13 / D7) for TSOP31238 Out +#define ENABLE_REMOTE 13 // If defined, enable Remote Control via TSOP31238. The value defines the input pin (13 / D7) for TSOP31238 Out -#define ENABLE_STATE_SAVE 1 // If defined, save state on reboot, if set to 0 in EEPROM, if set to 1 on SPIFFS +#define ENABLE_STATE_SAVE 1 // If defined, load saved state on reboot and save state. If set to 0 from EEPROM, if set to 1 from SPIFFS #define ENABLE_LEGACY_ANIMATIONS // Enable Legacy Animations +#define CUSTOM_WS2812FX_ANIMATIONS //uncomment and put animations in "custom_ws2812fx_animations.h" #define ENABLE_E131 // E1.31 implementation You have to uncomment #define USE_WS2812FX_DMA and set it to 0 #define ENABLE_TV // Enable TV Animation +#define USE_HTML_MIN_GZ //uncomment for using index.htm & edit.htm from PROGMEM instead of SPIFFs #if defined(ENABLE_E131) + #define MULTICAST false #define START_UNIVERSE 1 // First DMX Universe to listen for #define END_UNIVERSE 2 // Total number of Universes to listen for, starting at UNIVERSE + // MUST: END_UNIVERSE >= START_UNIVERSE #endif #if defined(ENABLE_REMOTE) @@ -47,7 +52,19 @@ const char HOSTNAME[] = "McLightingRGBW_01"; // Friedly hostname #endif #if defined(MQTT_HOME_ASSISTANT_SUPPORT) - #define MQTT_HOME_ASSISTANT_0_84_SUPPORT // Comment if using HA version < 0.84 + #define MQTT_HOME_ASSISTANT_0_87_SUPPORT // Comment if using HA version < 0.87 +#endif + +#if defined(USE_WS2812FX_DMA) and USE_WS2812FX_DMA < 0 and USE_WS2812FX_DMA > 2 +#error "Definition of USE_WS2812FX_DMA is wrong!" +#endif + +#if defined(ENABLE_MQTT) and ENABLE_MQTT < 0 and ENABLE_MQTT > 1 +#error "Definition of ENABLE_MQTT is wrong!" +#endif + +#if defined(ENABLE_MQTT) and ENABLE_MQTT < 0 and ENABLE_MQTT > 1 +#error "Definition of ENABLE_MQTT is wrong!" #endif #if defined(ENABLE_HOMEASSISTANT) and !defined(ENABLE_MQTT) @@ -59,19 +76,21 @@ const char HOSTNAME[] = "McLightingRGBW_01"; // Friedly hostname // parameters for automatically cycling favorite patterns uint32_t autoParams[][6] = { // main_color, back_color, xtra_color, speed, mode, duration (seconds) - {0xff000000, 0x00ff0000, 0x00000000, 200, 1, 5}, // blink red/geen for 5 seconds - {0x00ff0000, 0x0000ff00, 0x00000000, 200, 3, 10}, // wipe green/blue for 10 seconds - {0x0000ff00, 0xff000000, 0x00000000, 60, 14, 10}, // dual scan blue on red for 10 seconds - {0x0000ff00, 0xff000000, 0x00000000, 40, 45, 15}, // fireworks blue/red for 15 seconds - {0xff000000, 0x00ff0000, 0x0000ff00, 40, 54, 15} // tricolor chase red/green/blue for 15 seconds + {0x00ff0000, 0x0000ff00, 0x00000000, 200, 1, 5000}, // blink red/geen for 5 seconds + {0x0000ff00, 0x000000ff, 0x00000000, 200, 3, 10000}, // wipe green/blue for 10 seconds + {0x000000ff, 0x00ff0000, 0x00000000, 60, 14, 10000}, // dual scan blue on red for 10 seconds + {0x000000ff, 0x00ff0000, 0x00000000, 40, 45, 15000}, // fireworks blue/red for 15 seconds + {0x00ff0000, 0x0000ff00, 0x000000ff, 40, 54, 15000} // tricolor chase red/green/blue for 15 seconds }; #if defined(ENABLE_MQTT) - char mqtt_buf[80]; - char mqtt_intopic[strlen(HOSTNAME) + 3 + 1]; // Topic in will be: /in - char mqtt_outtopic[strlen(HOSTNAME) + 4 + 1]; // Topic out will be: /out + char mqtt_buf[80]; + char mqtt_will_topic[sizeof(HOSTNAME) + 7]; // Topic 'will' will be:HOSTNAME "/status"; + char mqtt_will_payload[] = "ONLINE"; + char mqtt_intopic[sizeof(HOSTNAME) + 3]; // Topic 'in' will be: /in + char mqtt_outtopic[sizeof(HOSTNAME) + 4]; // Topic 'out' will be: /out #if ENABLE_MQTT == 0 - #define MQTT_MAX_PACKET_SIZE 2048 + #define MQTT_MAX_PACKET_SIZE 512 #define MQTT_MAX_RECONNECT_TRIES 4 int mqtt_reconnect_retries = 0; uint8_t qossub = 0; // PubSubClient can sub qos 0 or 1 @@ -83,24 +102,20 @@ uint32_t autoParams[][6] = { // main_color, back_color, xtra_color, speed, mod #endif #if defined(ENABLE_HOMEASSISTANT) - char mqtt_ha_state_in[5 + strlen(HOSTNAME) + 12 + 1]; // Topic in will be: home/_ha/state/in" - char mqtt_ha_state_out[5 + strlen(HOSTNAME) + 13 + 1]; // Topic in will be: home/_ha/state/out" + char mqtt_ha_config[20 + sizeof(HOSTNAME) + 7]; // Topic config will be: "homeassistant/light//config" + char mqtt_ha_state_in[5 + sizeof(HOSTNAME) + 12]; // Topic in will be: "home/_ha/state/in" + char mqtt_ha_state_out[5 + sizeof(HOSTNAME) + 13]; // Topic in will be: "home/_ha/state/out" const char* on_cmd = "ON"; const char* off_cmd = "OFF"; bool new_ha_mqtt_msg = false; uint16_t color_temp = 327; // min is 154 and max is 500 #endif - #if defined(ENABLE_MQTT_HOSTNAME_CHIPID) - char mqtt_clientid[64]; - #else - const char* mqtt_clientid = HOSTNAME; - #endif - - char mqtt_host[64] = ""; - char mqtt_port[6] = ""; - char mqtt_user[32] = ""; - char mqtt_pass[32] = ""; + char mqtt_clientid[sizeof(HOSTNAME) + 9]; + char mqtt_host[65] = ""; //is configurable just for the start + uint16_t mqtt_port = 1883; //is configurable just for the start + char mqtt_user[33] = ""; //is configurable just for the start + char mqtt_pass[33] = ""; //is configurable just for the start #endif @@ -110,14 +125,18 @@ uint32_t autoParams[][6] = { // main_color, back_color, xtra_color, speed, mod #define DBG_OUTPUT_PORT Serial // Set debug output port // List of all color modes -enum MODE {OFF, AUTO, TV, E131, CUSTOM, HOLD, SET_ALL, SET_MODE, SET_COLOR, SET_SPEED, SET_BRIGHTNESS}; -MODE mode = SET_MODE; // Standard mode that is active when software starts +#if defined(ENABLE_LEGACY_ANIMATIONS) + enum MODE {OFF, AUTO, TV, E131, CUSTOM, HOLD, SET_ALL, SET_MODE, SET_COLOR, SET_SPEED, SET_BRIGHTNESS, INIT_STRIP, WIPE, RAINBOW, RAINBOWCYCLE, THEATERCHASE, TWINKLERANDOM, THEATERCHASERAINBOW}; +#else + enum MODE {OFF, AUTO, TV, E131, CUSTOM, HOLD, SET_ALL, SET_MODE, SET_COLOR, SET_SPEED, SET_BRIGHTNESS, INIT_STRIP}; +#endif +MODE mode = SET_ALL; // Standard mode that is active when software starts MODE prevmode = mode; int ws2812fx_speed = 196; // Global variable for storing the delay between color changes --> smaller == faster int brightness = 196; // Global variable for storing the brightness (255 == 100%) -int ws2812fx_mode = 0; // Helper variable to set WS2812FX modes +int ws2812fx_mode = 0; // Global variable for storing the WS2812FX modes bool shouldSaveConfig = false; // For WiFiManger custom config @@ -162,3 +181,22 @@ bool updateState = false; byte KeyPressCount_gy33 = 0; byte prevKeyState_gy33 = HIGH; // button is active low #endif + +struct { + uint16_t stripSize = NUMLEDS; + char RGBOrder[5] = RGBORDER; + #if defined(USE_WS2812FX_DMA) + #if USE_WS2812FX_DMA == 0 + uint8_t pin = 3; + #endif + #if USE_WS2812FX_DMA == 1 + uint8_t pin = 2; + #endif + #if USE_WS2812FX_DMA == 2 + uint8_t pin = 1; + #endif + #else + uint8_t pin = LED_PIN; + #endif + uint8_t fxoptions = FX_OPTIONS; +} WS2812FXStripSettings; diff --git a/Arduino/McLighting/htm_edit_gz.h b/Arduino/McLighting/htm_edit_gz.h new file mode 100644 index 0000000..b1fa888 --- /dev/null +++ b/Arduino/McLighting/htm_edit_gz.h @@ -0,0 +1,463 @@ +#include + +#define edit_htm_gz_len 5489 +static const char edit_htm_gz[] PROGMEM ={ + 0x1f, 0x8b, 0x08, 0x08, 0x10, 0x9c, 0x83, 0x5c, 0x04, 0x00, 0x65, 0x64, + 0x69, 0x74, 0x2e, 0x68, 0x74, 0x6d, 0x00, 0xed, 0x1c, 0x67, 0x7b, 0xf2, + 0x36, 0xf0, 0x7b, 0x7f, 0x85, 0xeb, 0x8e, 0x40, 0x99, 0x21, 0x24, 0x6f, + 0x66, 0x5b, 0x76, 0x12, 0xa0, 0x84, 0x91, 0x84, 0xa4, 0xeb, 0x31, 0xb6, + 0x00, 0x27, 0xc6, 0x76, 0x6c, 0x13, 0x20, 0x69, 0xfa, 0xdb, 0x7b, 0x92, + 0xbc, 0x07, 0x38, 0xa3, 0xf3, 0x29, 0xef, 0x00, 0x4b, 0x77, 0xa7, 0xbb, + 0xd3, 0xe9, 0x74, 0x3a, 0x49, 0x3e, 0xfe, 0xbc, 0xda, 0xa9, 0x0c, 0x6e, + 0x2e, 0x6a, 0xcc, 0xd4, 0x98, 0x49, 0xdf, 0x7e, 0x76, 0x8c, 0xbf, 0x18, + 0x89, 0x93, 0x27, 0x27, 0x2c, 0x92, 0xd9, 0x6f, 0x3f, 0x63, 0x98, 0xe3, + 0x29, 0xe2, 0x04, 0xfc, 0x03, 0x7e, 0x1a, 0xa2, 0x21, 0xa1, 0x6f, 0xfb, + 0x17, 0x67, 0xf5, 0x7a, 0x9f, 0xa9, 0x09, 0xa2, 0xa1, 0x68, 0xc7, 0x39, + 0x52, 0x68, 0x02, 0xe8, 0xc6, 0x4a, 0x42, 0x8c, 0xb1, 0x52, 0xd1, 0x09, + 0x6b, 0xa0, 0xa5, 0x91, 0xe3, 0x75, 0x9d, 0x65, 0x66, 0x48, 0x10, 0xb9, + 0x13, 0x56, 0xe7, 0x35, 0x44, 0x89, 0x92, 0x4f, 0x96, 0x57, 0x64, 0x0c, + 0xd3, 0x46, 0xf2, 0x9c, 0x79, 0x86, 0x42, 0xfa, 0x79, 0xca, 0x88, 0xb2, + 0x80, 0x96, 0x87, 0xcc, 0x4e, 0x3e, 0x7f, 0x64, 0x97, 0xaa, 0x8a, 0x2e, + 0x1a, 0xa2, 0x22, 0x1f, 0x32, 0xdc, 0x48, 0x57, 0xa4, 0xb9, 0x81, 0x9c, + 0x3a, 0x09, 0x8d, 0x8d, 0x43, 0x66, 0x57, 0x5d, 0x3a, 0x45, 0x23, 0x45, + 0x13, 0x90, 0x76, 0xc8, 0x6c, 0xab, 0x4b, 0x06, 0xc0, 0x45, 0x81, 0xf9, + 0xa2, 0x58, 0x2c, 0xba, 0xea, 0x39, 0xfe, 0x7e, 0xa2, 0x29, 0x73, 0x59, + 0xc8, 0xf0, 0x8a, 0xa4, 0x00, 0xe4, 0x17, 0xf5, 0x5d, 0xfc, 0xc7, 0x01, + 0x11, 0x44, 0x5d, 0x95, 0xb8, 0xd5, 0x21, 0x23, 0x2b, 0x32, 0x72, 0x53, + 0x5e, 0x66, 0xf4, 0x29, 0x27, 0x28, 0x8b, 0x43, 0x26, 0x0f, 0x7f, 0xb6, + 0xf3, 0xd0, 0x84, 0x36, 0x19, 0x71, 0x09, 0x26, 0x9f, 0x36, 0xff, 0x66, + 0x8b, 0x4c, 0xd2, 0xc1, 0x18, 0x83, 0x98, 0x19, 0x5d, 0x7c, 0x42, 0xc0, + 0x4e, 0xc1, 0x64, 0xd2, 0xa9, 0x18, 0x73, 0x33, 0x51, 0x82, 0x56, 0x74, + 0x4e, 0xd6, 0x33, 0x3a, 0xd2, 0xc4, 0xb1, 0x0f, 0x60, 0x81, 0xc4, 0xc9, + 0xd4, 0x38, 0x1c, 0x29, 0x92, 0x60, 0xd5, 0xbc, 0x84, 0x69, 0x70, 0x2e, + 0xb9, 0x94, 0x28, 0x89, 0x3a, 0xb4, 0x89, 0x3b, 0xc3, 0xcf, 0xbf, 0xa1, + 0xa8, 0xc0, 0xb8, 0x57, 0x79, 0x9e, 0x82, 0x19, 0xa7, 0x4d, 0x44, 0xd9, + 0x53, 0xa4, 0x72, 0x82, 0x20, 0xca, 0x13, 0x28, 0x5b, 0xc7, 0x01, 0x34, + 0x0a, 0x1c, 0x04, 0x3b, 0x4c, 0x43, 0x12, 0x67, 0x88, 0x8f, 0xc8, 0xd5, + 0x84, 0x28, 0x67, 0x16, 0xa2, 0x60, 0x4c, 0x0f, 0x99, 0xbd, 0xbc, 0x5b, + 0x23, 0xfc, 0x5c, 0xd3, 0xa1, 0x33, 0x00, 0x59, 0x04, 0xb2, 0xda, 0xda, + 0xd6, 0x74, 0x95, 0x93, 0x5d, 0xed, 0xd1, 0x6e, 0xa4, 0xdd, 0x1c, 0xec, + 0x43, 0x51, 0x96, 0x44, 0x19, 0x65, 0x46, 0x92, 0xc2, 0xdf, 0x87, 0xc8, + 0xb5, 0xa7, 0x2e, 0x37, 0x48, 0x76, 0x38, 0x55, 0x1e, 0x91, 0xc6, 0x3c, + 0xbb, 0x2c, 0xc7, 0x6c, 0x6c, 0x3d, 0x86, 0xc9, 0xa6, 0xcd, 0x5e, 0xad, + 0x56, 0xb3, 0x30, 0x6c, 0x34, 0x5d, 0xcf, 0x18, 0x30, 0x32, 0x1e, 0x45, + 0xb4, 0x80, 0x5e, 0x4c, 0xfb, 0x4a, 0x1c, 0xad, 0x3a, 0x1c, 0x47, 0x74, + 0xd8, 0xc6, 0xee, 0x7f, 0xf9, 0x2c, 0xb4, 0x51, 0x51, 0x56, 0xe7, 0x06, + 0xf3, 0x1c, 0x6b, 0xb0, 0x29, 0x2a, 0xc7, 0x8b, 0xc6, 0x0a, 0x9a, 0xdb, + 0x40, 0xf4, 0xd9, 0x63, 0xc6, 0x98, 0x0f, 0x6d, 0xc6, 0x49, 0xcc, 0x36, + 0x1e, 0x92, 0x57, 0x48, 0x13, 0x38, 0x99, 0x4b, 0x33, 0x25, 0x4d, 0xe4, + 0x40, 0xe2, 0x7e, 0x88, 0xf1, 0x67, 0x66, 0xca, 0x53, 0x66, 0x0e, 0x85, + 0x50, 0x21, 0x21, 0xde, 0xf0, 0x1b, 0x32, 0x0c, 0x8c, 0xd1, 0xbd, 0x68, + 0xac, 0x03, 0x71, 0x55, 0xc5, 0xd2, 0x43, 0x84, 0x49, 0xe5, 0xf3, 0xe3, + 0x18, 0x26, 0x1a, 0x49, 0xd1, 0x34, 0x04, 0x87, 0x2e, 0x36, 0x92, 0x8c, + 0x80, 0x78, 0x45, 0xe3, 0xa8, 0x96, 0xc1, 0x98, 0x90, 0x26, 0x89, 0x1b, + 0xf9, 0xa3, 0xfd, 0x94, 0x02, 0xff, 0x3c, 0x42, 0x12, 0x7c, 0xe3, 0x21, + 0x1f, 0x34, 0x03, 0xf2, 0xa7, 0x00, 0x9e, 0x26, 0x16, 0xb5, 0xdf, 0x09, + 0x15, 0xff, 0x88, 0x89, 0xa5, 0x2e, 0xc2, 0x46, 0x3a, 0xac, 0xf0, 0xf0, + 0x70, 0x84, 0xc6, 0x8a, 0x86, 0x98, 0xe7, 0x37, 0xea, 0x8d, 0xf0, 0x76, + 0x08, 0xcc, 0x70, 0x23, 0x09, 0x09, 0xb6, 0xc8, 0x41, 0x72, 0x02, 0x1a, + 0x73, 0x73, 0xc9, 0x08, 0xb1, 0xcf, 0xec, 0x5e, 0xac, 0x36, 0xf8, 0x29, + 0xe2, 0xef, 0x91, 0x70, 0x28, 0x2b, 0x46, 0xc2, 0x6e, 0x30, 0x19, 0xa9, + 0x16, 0xe2, 0x41, 0x3e, 0x52, 0x2f, 0x6e, 0x7f, 0x32, 0xd7, 0xa4, 0x04, + 0x2b, 0x70, 0x06, 0x77, 0x28, 0xce, 0xb8, 0x09, 0xca, 0xa9, 0xf2, 0xe4, + 0x68, 0xc4, 0xe9, 0x68, 0xaf, 0x98, 0x16, 0xaf, 0xca, 0x9d, 0xde, 0x22, + 0xdf, 0x6c, 0x4c, 0x94, 0x12, 0x7c, 0x7e, 0xe8, 0x5f, 0x4e, 0x6b, 0x97, + 0x13, 0xf8, 0x55, 0xc6, 0x8f, 0x95, 0x49, 0xa5, 0x74, 0x83, 0x7f, 0xd4, + 0x3b, 0x68, 0x71, 0x89, 0x7f, 0x34, 0x86, 0xbd, 0xfa, 0xf5, 0x69, 0x6f, + 0x30, 0x2a, 0xdc, 0xe6, 0x85, 0x42, 0x7d, 0x75, 0xdb, 0x2d, 0x97, 0x6f, + 0x1b, 0x07, 0xe2, 0x6d, 0xbf, 0x7c, 0x3e, 0xba, 0xae, 0xcb, 0xb7, 0x57, + 0xe7, 0xd2, 0xcd, 0x75, 0x6f, 0x97, 0xe7, 0x25, 0xe9, 0x02, 0x23, 0xa8, + 0xcb, 0xf3, 0x5e, 0xad, 0x7e, 0x89, 0x7e, 0xd0, 0x74, 0xa9, 0xbd, 0x3d, + 0xcf, 0xe7, 0x4b, 0xdd, 0x49, 0x03, 0x5c, 0xf4, 0x8a, 0x93, 0xea, 0xf5, + 0x4e, 0x33, 0x55, 0x91, 0xce, 0xce, 0x9a, 0xdd, 0xe6, 0xea, 0xe1, 0xf2, + 0xaa, 0xfb, 0x38, 0xa8, 0xd5, 0x76, 0xaa, 0xb3, 0xd2, 0xb4, 0xb5, 0x28, + 0x4d, 0x2f, 0xf7, 0xbb, 0xb7, 0xca, 0x69, 0xb1, 0x54, 0xe8, 0x16, 0x26, + 0xed, 0x7e, 0x9d, 0xe3, 0x51, 0xb1, 0x5d, 0x31, 0xce, 0xf7, 0xfb, 0x17, + 0xe5, 0xfa, 0xa2, 0x74, 0xdf, 0x9b, 0x8b, 0xa7, 0x4d, 0xb5, 0xb4, 0xa7, + 0xf7, 0x7e, 0xc8, 0xb5, 0xe6, 0x9f, 0x9e, 0x1a, 0xbb, 0xe2, 0x76, 0xf1, + 0x9e, 0x37, 0xb8, 0xcb, 0x87, 0x5e, 0x63, 0xda, 0x18, 0xca, 0xf3, 0x83, + 0x4e, 0xee, 0xc2, 0xf8, 0xd4, 0x7e, 0xd2, 0xdb, 0xe2, 0xbd, 0xf4, 0x58, + 0x4f, 0x1d, 0x18, 0x85, 0xfb, 0xeb, 0x41, 0xf5, 0x71, 0x75, 0xa6, 0x95, + 0xf4, 0x52, 0x9e, 0x6b, 0xf6, 0x7a, 0xe2, 0xf6, 0x20, 0x5f, 0xc9, 0x4d, + 0xcf, 0x8b, 0xad, 0xcb, 0x91, 0xb1, 0x9b, 0xdb, 0xd7, 0x7e, 0x50, 0xaf, + 0xaf, 0x24, 0x75, 0xbf, 0xd7, 0xd7, 0x0e, 0xce, 0x8b, 0xf9, 0x51, 0x71, + 0x7f, 0xbc, 0xac, 0x73, 0x83, 0xee, 0x41, 0x6a, 0x6c, 0xec, 0xd7, 0x6e, + 0xf7, 0xda, 0xe7, 0x37, 0xa3, 0x7c, 0xe7, 0x3e, 0x25, 0xc8, 0x37, 0x0d, + 0x75, 0x76, 0x31, 0x19, 0x2e, 0x9a, 0x67, 0xa5, 0xc7, 0xd6, 0x72, 0xff, + 0xf1, 0x66, 0xc8, 0xef, 0x36, 0x84, 0x76, 0xa9, 0x7b, 0x3e, 0xe9, 0xd6, + 0xee, 0xd5, 0xbb, 0xde, 0x60, 0xba, 0xb3, 0x37, 0xe8, 0x17, 0x2e, 0x53, + 0xd5, 0xeb, 0xeb, 0x5c, 0x75, 0xfb, 0xd3, 0xf5, 0xfc, 0x66, 0x32, 0xdb, + 0x57, 0x17, 0xe7, 0xab, 0x9b, 0x6d, 0x59, 0xbd, 0xd5, 0x6f, 0x9b, 0x9d, + 0xe5, 0xd9, 0xac, 0x73, 0xb5, 0x7d, 0x96, 0x9b, 0x16, 0x53, 0x9d, 0xbd, + 0xc7, 0xda, 0x64, 0xb7, 0x51, 0xb9, 0x2d, 0xab, 0x93, 0x59, 0x69, 0x6f, + 0x3a, 0xdc, 0x5f, 0x9c, 0x36, 0x2f, 0x4f, 0xab, 0xbd, 0xf2, 0xb0, 0x7b, + 0x23, 0xf2, 0xdd, 0xa2, 0x26, 0xf1, 0x3b, 0x83, 0x71, 0xfe, 0xaa, 0xad, + 0xef, 0x57, 0x4f, 0xcb, 0xfd, 0xfd, 0xbd, 0x62, 0xbd, 0x70, 0x53, 0xd7, + 0xd5, 0xbb, 0xc9, 0xe5, 0xcd, 0x5d, 0x73, 0x98, 0x2b, 0x3d, 0xed, 0x4c, + 0x74, 0xa1, 0x2b, 0x14, 0x10, 0x2a, 0x9f, 0x2e, 0x66, 0x42, 0xe3, 0x7a, + 0x78, 0xca, 0x4f, 0xca, 0x8d, 0xfe, 0xfd, 0xed, 0xb0, 0x33, 0x54, 0xa6, + 0x7c, 0x6d, 0x88, 0x46, 0x3d, 0xa5, 0xcb, 0x97, 0x26, 0x77, 0x0f, 0x10, + 0x36, 0xfd, 0x70, 0x93, 0x2a, 0x5d, 0xad, 0xe6, 0x3b, 0xb7, 0x3b, 0x7a, + 0xa9, 0xf9, 0x30, 0x6e, 0x2a, 0x8d, 0xb6, 0x8e, 0x16, 0x65, 0x54, 0x3b, + 0xeb, 0x5c, 0x4c, 0xba, 0xcb, 0xe5, 0xc5, 0xf9, 0xd9, 0x1d, 0xdf, 0x38, + 0xdd, 0x7b, 0x30, 0x5a, 0xb9, 0x7c, 0x49, 0x28, 0x55, 0x9f, 0x9a, 0x0d, + 0x79, 0x3e, 0xaf, 0xa6, 0x0a, 0x46, 0xab, 0xf9, 0xa9, 0xbb, 0x5f, 0x9d, + 0x9e, 0x9e, 0x8e, 0x3a, 0xe5, 0xeb, 0x54, 0xb3, 0xf6, 0xc4, 0x9f, 0xb6, + 0xe6, 0x37, 0xfc, 0x7e, 0xa1, 0x7d, 0x5f, 0xbb, 0x44, 0xf7, 0x2d, 0x71, + 0x31, 0x7f, 0xbc, 0x3a, 0x4d, 0x4d, 0xe6, 0xdd, 0x72, 0xf7, 0xa9, 0xd3, + 0x28, 0x0e, 0x85, 0xd2, 0x68, 0xbf, 0xd6, 0xe1, 0x7b, 0xfc, 0x43, 0xf7, + 0xb1, 0x7a, 0x7f, 0x53, 0x10, 0x2b, 0xad, 0xf9, 0xb2, 0x56, 0x39, 0x2f, + 0xee, 0x9c, 0x2b, 0xa3, 0xf6, 0x50, 0x99, 0x1b, 0x0f, 0x8d, 0x49, 0x95, + 0x2b, 0x0c, 0x3e, 0x5d, 0x3e, 0xb4, 0x9a, 0x0b, 0xe3, 0xa0, 0xd9, 0x5b, + 0xcd, 0x97, 0xcd, 0xab, 0xf2, 0xea, 0xe1, 0x6a, 0x38, 0x7c, 0x38, 0x53, + 0x2a, 0x95, 0xcb, 0x4a, 0xe9, 0x61, 0x7a, 0xd9, 0x11, 0x95, 0xc1, 0x75, + 0xe5, 0x53, 0xa3, 0x38, 0xe8, 0xd6, 0x3a, 0xd5, 0x7c, 0xe9, 0x62, 0x55, + 0xc8, 0x7d, 0x6a, 0x14, 0x86, 0xea, 0x7c, 0xfb, 0xbc, 0x98, 0x92, 0x96, + 0xa8, 0x5b, 0x1c, 0x0c, 0xcb, 0xa3, 0xb3, 0x41, 0x55, 0x55, 0xae, 0x90, + 0x04, 0x96, 0x51, 0xbe, 0xaa, 0x8f, 0x16, 0xf3, 0x5d, 0xa5, 0xdd, 0x3e, + 0xbf, 0x2c, 0x4f, 0x95, 0xe1, 0x6a, 0xd7, 0x98, 0x09, 0x3d, 0xbe, 0xbd, + 0x58, 0xcd, 0x2e, 0x0a, 0x9d, 0x56, 0x97, 0x6b, 0xdd, 0x2d, 0x0f, 0x72, + 0x8f, 0x72, 0x59, 0xd9, 0xbb, 0xda, 0x69, 0xee, 0x89, 0x4f, 0xa5, 0xc1, + 0xac, 0x2f, 0xb7, 0xb9, 0x7c, 0xf5, 0xe1, 0xd3, 0x18, 0x69, 0x67, 0xca, + 0xf4, 0x7c, 0xaa, 0x6d, 0xab, 0xf9, 0xed, 0x27, 0x4d, 0x7a, 0x2a, 0x1e, + 0x68, 0xb7, 0xf5, 0x62, 0x07, 0xba, 0xe0, 0xfc, 0x7e, 0x58, 0xd8, 0x79, + 0xbc, 0xea, 0x3e, 0xdd, 0xa8, 0xa9, 0xc5, 0xe8, 0xa6, 0x71, 0x95, 0x6b, + 0xaa, 0xc3, 0xe6, 0xdd, 0x23, 0x0c, 0xe6, 0x7d, 0x43, 0x3f, 0x6b, 0x56, + 0xb4, 0xf6, 0x0f, 0xa5, 0x9b, 0xfa, 0xf2, 0xae, 0xd0, 0x68, 0xf6, 0x77, + 0x6f, 0xaf, 0x97, 0x93, 0x22, 0x5a, 0x34, 0xf5, 0xf3, 0x31, 0xd7, 0x68, + 0x9f, 0xdd, 0xec, 0x36, 0x87, 0x0f, 0x17, 0x4f, 0xfb, 0xad, 0x72, 0xf9, + 0x6e, 0x2f, 0xb5, 0xaa, 0x3e, 0x5e, 0x5d, 0x7c, 0x3a, 0x80, 0x6f, 0x35, + 0x77, 0x50, 0x3f, 0x50, 0xce, 0x96, 0x3b, 0x1d, 0x51, 0x3f, 0xbd, 0x5e, + 0xa0, 0x4f, 0x1d, 0x4e, 0xca, 0x9f, 0x2e, 0x2b, 0x30, 0x88, 0xba, 0x30, + 0x22, 0x6b, 0x67, 0x5d, 0x18, 0x90, 0xb5, 0x33, 0x18, 0x9a, 0xa4, 0x68, + 0x0a, 0xff, 0x9d, 0xe1, 0x0a, 0x5a, 0x54, 0x83, 0xc7, 0x29, 0x85, 0x5d, + 0x54, 0xf7, 0x6b, 0xb9, 0xf2, 0xed, 0xa4, 0x74, 0x91, 0x7f, 0x98, 0x36, + 0xef, 0x76, 0xb4, 0x61, 0xe7, 0x53, 0x09, 0x7f, 0x6a, 0x52, 0x7d, 0x70, + 0xdf, 0x9f, 0x77, 0x67, 0x95, 0x0a, 0x9b, 0x04, 0x4f, 0x9c, 0xd1, 0x90, + 0x8a, 0x38, 0xe3, 0x2d, 0x6e, 0x07, 0x4f, 0x40, 0x71, 0x5d, 0xd1, 0x86, + 0x68, 0x69, 0x4a, 0x03, 0x51, 0x66, 0x7b, 0xcf, 0x1d, 0xb2, 0x11, 0xc8, + 0xf0, 0x2a, 0x98, 0xf5, 0x0c, 0x91, 0xe7, 0xa4, 0x0c, 0x27, 0x89, 0x13, + 0x98, 0x99, 0x66, 0xa2, 0x20, 0x48, 0xb1, 0x26, 0x95, 0x50, 0xff, 0x98, + 0x71, 0xc2, 0x92, 0xed, 0x7d, 0x75, 0xb9, 0x31, 0x00, 0x89, 0x12, 0x93, + 0x84, 0x69, 0x38, 0x22, 0x61, 0x59, 0x87, 0x57, 0x12, 0x8e, 0x9a, 0x02, + 0xf8, 0xa7, 0x54, 0x73, 0x3a, 0xc5, 0xf3, 0x6a, 0x5c, 0xe1, 0xc2, 0xf8, + 0x26, 0x84, 0x32, 0x3b, 0x31, 0x27, 0x66, 0x6b, 0x62, 0x62, 0x52, 0x31, + 0xa6, 0x0e, 0x6f, 0x13, 0x20, 0x44, 0xb0, 0x89, 0xdc, 0x37, 0x0c, 0x0d, + 0x98, 0x18, 0x4e, 0xb8, 0xe3, 0x78, 0x50, 0x00, 0x03, 0x81, 0xd1, 0x0c, + 0x7f, 0xd3, 0x08, 0x49, 0xd1, 0x98, 0xd1, 0x7c, 0x32, 0x16, 0x97, 0xcc, + 0x37, 0x39, 0x13, 0xe7, 0x7b, 0xb2, 0x70, 0x63, 0xe8, 0xba, 0x8d, 0xe1, + 0x64, 0x81, 0x49, 0x58, 0x51, 0x17, 0x0e, 0xe1, 0x05, 0x60, 0x97, 0x47, + 0x19, 0x55, 0x5c, 0x22, 0x29, 0x43, 0x62, 0x99, 0xc3, 0x7c, 0x92, 0xa2, + 0x52, 0x2e, 0x83, 0xb2, 0x39, 0xc5, 0x4e, 0x00, 0xc7, 0xc9, 0x30, 0xdb, + 0x51, 0xe6, 0xcd, 0x12, 0x8b, 0xc3, 0x8c, 0xc9, 0x61, 0xc6, 0xe2, 0x30, + 0x63, 0x72, 0x28, 0xca, 0x63, 0x51, 0x16, 0x0d, 0xc4, 0x6c, 0xeb, 0x44, + 0x50, 0x47, 0x54, 0x93, 0x71, 0x8b, 0xf6, 0x3d, 0x5a, 0x8d, 0x35, 0x6e, + 0x86, 0xf4, 0xd8, 0xa4, 0x6d, 0x1a, 0x6e, 0x56, 0xc7, 0x9a, 0x32, 0x83, + 0x12, 0xa7, 0x32, 0x18, 0x8b, 0xdb, 0x5c, 0xb8, 0x81, 0x0c, 0x25, 0x2e, + 0x96, 0x23, 0x85, 0xbf, 0xe3, 0xbe, 0x98, 0xab, 0x92, 0xc2, 0x09, 0x64, + 0xf1, 0x11, 0x2b, 0x42, 0xf7, 0xaf, 0xf0, 0x34, 0x3a, 0x36, 0x83, 0x6b, + 0xbe, 0xc0, 0xd0, 0x2e, 0xec, 0x47, 0x8e, 0xec, 0x42, 0xd1, 0xae, 0x72, + 0x84, 0xc8, 0x10, 0x42, 0x64, 0x09, 0x1c, 0x6a, 0xf8, 0xa1, 0x6b, 0x32, + 0x5a, 0x88, 0x17, 0x42, 0xfe, 0x25, 0xd7, 0x17, 0xd8, 0x4a, 0x5e, 0x25, + 0xa5, 0x97, 0xe1, 0x91, 0x62, 0x18, 0xca, 0x2c, 0x5a, 0x52, 0x67, 0x9c, + 0x17, 0xf2, 0x84, 0xe5, 0x40, 0x9f, 0x38, 0xe4, 0x1c, 0xa6, 0x10, 0x49, + 0x73, 0xa4, 0x99, 0x2f, 0x54, 0x8d, 0x98, 0xf0, 0x3b, 0x18, 0xb4, 0x7a, + 0x22, 0x06, 0xcb, 0x0e, 0x87, 0x0e, 0x2f, 0x2e, 0x16, 0xd6, 0x68, 0x1b, + 0x6b, 0x36, 0x28, 0xda, 0xae, 0x9f, 0xda, 0x71, 0x0e, 0xd6, 0x87, 0x4e, + 0xde, 0x86, 0xd7, 0x44, 0xd5, 0xb0, 0x32, 0x33, 0xe3, 0xb9, 0xcc, 0x63, + 0xb1, 0x18, 0x18, 0xf8, 0x9c, 0x81, 0xea, 0xa2, 0x84, 0x2e, 0x4d, 0x23, + 0x4c, 0x98, 0xe3, 0x26, 0xcd, 0xe0, 0xce, 0x4a, 0x33, 0x54, 0x3b, 0x49, + 0x87, 0xa1, 0x47, 0x4e, 0x63, 0x96, 0x33, 0xe9, 0xd4, 0x30, 0xd4, 0x23, + 0x77, 0xa1, 0xb9, 0xdc, 0x38, 0x61, 0x04, 0x85, 0x9f, 0x63, 0x0a, 0x59, + 0x4a, 0xbc, 0x46, 0xe9, 0x25, 0x58, 0x52, 0xcf, 0x3a, 0x79, 0x13, 0x8a, + 0x90, 0xc5, 0xb9, 0x24, 0xc0, 0x62, 0xc7, 0xc0, 0x04, 0xeb, 0xaf, 0x9c, + 0x41, 0xe8, 0x2f, 0xaa, 0x12, 0x06, 0x18, 0x73, 0x92, 0x8e, 0xfc, 0xf5, + 0x32, 0x37, 0xc3, 0x75, 0x24, 0xa6, 0x76, 0x90, 0x1d, 0x16, 0x26, 0xc8, + 0x30, 0xdb, 0x2f, 0xaf, 0xce, 0x04, 0x4b, 0xb6, 0x64, 0x96, 0x53, 0x55, + 0x24, 0x0b, 0x95, 0xa9, 0x28, 0x09, 0x09, 0x42, 0x29, 0xe9, 0x95, 0x45, + 0xe5, 0x8c, 0xe9, 0x6b, 0x44, 0xc1, 0xf0, 0x59, 0x51, 0xc0, 0xac, 0xd0, + 0xd1, 0x9c, 0xc1, 0x25, 0xac, 0x17, 0xc0, 0x16, 0x15, 0xaf, 0x0f, 0x7d, + 0x75, 0xb6, 0x24, 0x61, 0x78, 0xe6, 0x1a, 0xe8, 0x8a, 0x93, 0xe6, 0x04, + 0x26, 0xf7, 0x56, 0x51, 0x31, 0x35, 0x9f, 0xa4, 0xa3, 0x39, 0x18, 0xa8, + 0xbc, 0x46, 0x56, 0x0a, 0xe0, 0x16, 0x96, 0x96, 0x64, 0x45, 0x59, 0x46, + 0xda, 0xe9, 0xa0, 0xdd, 0x02, 0xe4, 0x2d, 0x6a, 0x3e, 0x5b, 0x6f, 0xe4, + 0x8b, 0x52, 0xf4, 0x71, 0x36, 0xbb, 0x17, 0x44, 0xed, 0x55, 0x8c, 0x11, + 0x0c, 0x2f, 0x5f, 0xed, 0xfb, 0xaa, 0xa8, 0xbd, 0x95, 0x2d, 0x42, 0x2f, + 0xc0, 0x15, 0x36, 0xd4, 0x57, 0xb2, 0x85, 0x51, 0xfc, 0x7c, 0xe1, 0x41, + 0xf7, 0x76, 0xc6, 0x30, 0x45, 0xd2, 0x04, 0xfc, 0xf5, 0x8d, 0xe9, 0x29, + 0x8c, 0xcc, 0x0b, 0x45, 0x37, 0x2e, 0x34, 0x85, 0x47, 0xba, 0xde, 0x43, + 0x0f, 0x73, 0xa4, 0x1b, 0x09, 0x32, 0x84, 0xed, 0xd1, 0x33, 0x66, 0x12, + 0xe6, 0x20, 0xce, 0x02, 0xfb, 0xc2, 0xaa, 0x6f, 0x70, 0x06, 0x48, 0x75, + 0xc2, 0x14, 0x4d, 0x38, 0x07, 0xd2, 0x06, 0xd4, 0x01, 0x66, 0xae, 0x33, + 0x9f, 0x9f, 0x60, 0xe7, 0x95, 0x64, 0x38, 0x09, 0x69, 0x20, 0x6f, 0xad, + 0xd7, 0xeb, 0xf4, 0x7e, 0x64, 0x53, 0x5e, 0xa8, 0x14, 0xfb, 0x33, 0xc4, + 0x5f, 0x29, 0xa7, 0x0d, 0x5d, 0x55, 0x64, 0x1d, 0x0d, 0xd0, 0x92, 0x0e, + 0x35, 0xe7, 0x83, 0x24, 0xdd, 0x8c, 0x79, 0x9c, 0x0f, 0xf1, 0x3d, 0x80, + 0x34, 0x06, 0xbc, 0xe9, 0x05, 0x18, 0x6d, 0x82, 0x8c, 0x83, 0x47, 0x3c, + 0x00, 0x7c, 0xe8, 0x2f, 0xeb, 0x26, 0xd9, 0xa0, 0xab, 0xa3, 0xc4, 0x3c, + 0x32, 0x9a, 0x3c, 0x42, 0xaf, 0xc8, 0xe0, 0x79, 0x87, 0xed, 0x16, 0x7e, + 0xb2, 0xb5, 0x76, 0x14, 0x84, 0xcc, 0x2a, 0x32, 0xd1, 0x19, 0x96, 0x14, + 0xf1, 0x53, 0xc8, 0xa5, 0x83, 0xe6, 0x22, 0xd4, 0x4e, 0xd1, 0x1d, 0xf3, + 0x81, 0x08, 0x6f, 0x56, 0x05, 0x67, 0x65, 0xb6, 0x56, 0x37, 0x1f, 0x3d, + 0xed, 0xd8, 0x40, 0x66, 0x9f, 0x27, 0xa8, 0x53, 0x48, 0x33, 0x6a, 0x38, + 0x37, 0x00, 0x93, 0x60, 0x2f, 0x2e, 0x07, 0x00, 0xc1, 0xe6, 0xb0, 0xbf, + 0x66, 0x43, 0xe1, 0x74, 0x4c, 0xca, 0x22, 0x0d, 0x10, 0x41, 0x5d, 0xf9, + 0x2c, 0x16, 0xe4, 0xe4, 0x25, 0x91, 0xbf, 0x67, 0x4e, 0x6c, 0x2d, 0x26, + 0x90, 0xcf, 0x8c, 0x5c, 0x1d, 0x93, 0x25, 0x69, 0xfd, 0xce, 0x38, 0xc1, + 0x66, 0xd9, 0x24, 0x98, 0xd2, 0x09, 0x04, 0xaa, 0x49, 0x48, 0x0e, 0x1b, + 0x73, 0x4d, 0x76, 0xf1, 0x63, 0x76, 0xc4, 0x9a, 0x5e, 0x35, 0xe7, 0x9c, + 0x2c, 0xf6, 0x28, 0x97, 0x9a, 0x14, 0x0e, 0xf5, 0xe2, 0x1b, 0xf6, 0xaf, + 0x65, 0x56, 0x42, 0xf2, 0x04, 0x7c, 0xfc, 0x31, 0x53, 0xb0, 0x78, 0xf4, + 0x77, 0x15, 0xf5, 0x3e, 0x0e, 0x8a, 0x97, 0x14, 0xd4, 0x7a, 0x05, 0xfe, + 0x9c, 0x08, 0x4c, 0x5a, 0x0c, 0x00, 0x4a, 0x9c, 0x6e, 0x9c, 0x59, 0xc0, + 0x39, 0x53, 0x3b, 0xf9, 0xb0, 0x86, 0x19, 0xb3, 0x59, 0x8c, 0xa5, 0xcf, + 0x47, 0xba, 0xa1, 0xc1, 0xe4, 0x9e, 0x80, 0x2d, 0x87, 0x30, 0x32, 0x1e, + 0xa5, 0xbd, 0x84, 0xab, 0xd8, 0xeb, 0xc1, 0x5e, 0xfc, 0x5e, 0x3c, 0x96, + 0xda, 0xe8, 0x5c, 0x8b, 0x4d, 0x42, 0x37, 0xf5, 0x46, 0x05, 0xf0, 0x09, + 0x1b, 0x94, 0xe6, 0xe5, 0xdf, 0x35, 0xcc, 0x48, 0x14, 0x91, 0x66, 0x5c, + 0xe2, 0xfe, 0x98, 0xff, 0x39, 0xed, 0x32, 0x81, 0x75, 0xe3, 0xaf, 0xd3, + 0x7f, 0xff, 0x00, 0x24, 0x2d, 0x83, 0xdc, 0x54, 0xda, 0xb7, 0xf5, 0x49, + 0x84, 0x35, 0x63, 0x48, 0x1a, 0x63, 0xf8, 0xe4, 0x23, 0x91, 0x87, 0x1f, + 0x1a, 0xdc, 0x34, 0x00, 0xe6, 0x12, 0xdf, 0x1d, 0xfe, 0x94, 0x4d, 0xfc, + 0xf8, 0x4b, 0xf6, 0xe7, 0x54, 0x32, 0xf9, 0xdd, 0x97, 0xb9, 0x2c, 0x5a, + 0x22, 0x3e, 0x61, 0x91, 0x4a, 0xfe, 0xb8, 0xfd, 0xb3, 0x1f, 0x11, 0x97, + 0x13, 0xcc, 0xec, 0x37, 0xc9, 0x9f, 0xb2, 0x04, 0x33, 0x12, 0xcd, 0x11, + 0x06, 0x07, 0x46, 0xca, 0x98, 0x20, 0xe3, 0x71, 0x44, 0xf2, 0xe5, 0x63, + 0x58, 0x9d, 0x08, 0xc1, 0xe1, 0x84, 0x61, 0x2c, 0x81, 0xbf, 0x65, 0xf6, + 0x93, 0x66, 0x8b, 0xe4, 0xcb, 0x3b, 0x62, 0xf6, 0xbd, 0x33, 0x85, 0x5b, + 0x03, 0x7e, 0x91, 0x5f, 0xc2, 0xd8, 0xc1, 0x4a, 0xd8, 0xc4, 0x0d, 0x80, + 0x10, 0xb5, 0xb3, 0x78, 0x5b, 0x95, 0x4d, 0x12, 0x14, 0xfa, 0xc4, 0x06, + 0x67, 0x39, 0x0f, 0xc2, 0x9d, 0x8a, 0x26, 0x26, 0x02, 0x79, 0x9a, 0xb0, + 0x51, 0xdc, 0x3a, 0x3f, 0x53, 0x0c, 0x78, 0x1a, 0xf8, 0x1f, 0x90, 0xd6, + 0x70, 0xef, 0x98, 0x2b, 0x6d, 0x29, 0xc7, 0x32, 0xbf, 0xfd, 0xe6, 0x32, + 0xe2, 0x08, 0x6f, 0xe4, 0x13, 0xce, 0x45, 0x85, 0xd0, 0x48, 0x59, 0x5c, + 0x78, 0x5a, 0xa6, 0x72, 0x45, 0x63, 0x3a, 0x0f, 0xde, 0xce, 0x59, 0xc7, + 0x4e, 0x6a, 0x3b, 0x69, 0x37, 0x16, 0x73, 0x09, 0xed, 0x9b, 0xe4, 0x07, + 0x10, 0x3d, 0x58, 0x81, 0x53, 0xc4, 0x0a, 0xc6, 0x5a, 0x68, 0x9d, 0x44, + 0x06, 0x5e, 0xac, 0x09, 0xc2, 0x7a, 0x03, 0x40, 0x12, 0x9a, 0xf4, 0x14, + 0x65, 0xdd, 0x4a, 0x47, 0x10, 0x1f, 0x5d, 0x58, 0x16, 0x06, 0x80, 0x81, + 0xa8, 0xfa, 0x0f, 0x66, 0xa0, 0xef, 0xce, 0x9a, 0xbc, 0x35, 0x9e, 0xb7, + 0x28, 0x47, 0x44, 0x82, 0x78, 0x02, 0xad, 0x2a, 0x0b, 0x19, 0x7f, 0x13, + 0xb3, 0x20, 0x4a, 0xd8, 0xd4, 0xd2, 0x96, 0x60, 0xa2, 0x64, 0x48, 0x66, + 0x65, 0x2b, 0x99, 0xd5, 0x35, 0xde, 0xec, 0xca, 0x14, 0xfb, 0x9d, 0x55, + 0x7b, 0x62, 0x68, 0x73, 0xf7, 0x82, 0xed, 0x25, 0x92, 0x85, 0x0b, 0xaa, + 0xc8, 0xf8, 0x1c, 0xb0, 0xb4, 0xcb, 0x58, 0x68, 0x19, 0x2f, 0x61, 0xb3, + 0x66, 0xde, 0x12, 0x6b, 0x0d, 0xef, 0x5a, 0xb9, 0x47, 0x8a, 0xd5, 0x91, + 0x41, 0x48, 0x92, 0xdc, 0x0c, 0x03, 0xf5, 0x06, 0xe2, 0xc7, 0xe2, 0x6c, + 0xc2, 0x80, 0x80, 0x27, 0xec, 0x56, 0x8a, 0x48, 0xb8, 0xc5, 0x32, 0x84, + 0xd6, 0x09, 0x3b, 0xe3, 0x96, 0xe6, 0x2e, 0xf6, 0x76, 0x3e, 0xff, 0xd5, + 0x11, 0x03, 0xcf, 0x66, 0xba, 0x84, 0x16, 0x58, 0xe9, 0x43, 0x6e, 0x6e, + 0x28, 0x47, 0x76, 0x72, 0x95, 0x26, 0x55, 0x59, 0x26, 0xf7, 0xed, 0xd6, + 0x06, 0xe5, 0xe0, 0x81, 0x2d, 0xd5, 0x15, 0x09, 0x56, 0xdd, 0x78, 0x4b, + 0x39, 0x81, 0x93, 0xbb, 0x8e, 0x8e, 0x1c, 0x93, 0xc3, 0xbb, 0xbd, 0xeb, + 0xcc, 0x6d, 0x2e, 0x79, 0xe7, 0x1b, 0x24, 0x79, 0x8c, 0x04, 0x63, 0x27, + 0xfd, 0x7e, 0x9a, 0x23, 0x1c, 0xac, 0x21, 0x2a, 0x89, 0x5e, 0xa2, 0x98, + 0x8a, 0x87, 0x2c, 0xa5, 0x10, 0x20, 0x2c, 0xea, 0x15, 0x9a, 0xd7, 0x5c, + 0x33, 0xb4, 0x88, 0x90, 0x59, 0x33, 0xff, 0x19, 0x9c, 0x7a, 0x54, 0x59, + 0x78, 0x0f, 0x63, 0x84, 0x40, 0xd2, 0x37, 0xc3, 0x98, 0x6c, 0x05, 0x7c, + 0x38, 0x01, 0xf6, 0x58, 0x04, 0x7b, 0x8c, 0x53, 0xea, 0xdf, 0x56, 0x14, + 0x49, 0xe2, 0x54, 0x1d, 0x1d, 0xe7, 0xc8, 0x23, 0x7b, 0x14, 0x44, 0xdb, + 0x1c, 0x3b, 0xc1, 0x27, 0x9e, 0x12, 0x02, 0xf9, 0x0d, 0x87, 0x73, 0x1b, + 0x7f, 0xa4, 0x08, 0x2b, 0x17, 0x11, 0xbd, 0xbc, 0xaa, 0x58, 0xfe, 0x24, + 0xb1, 0xe5, 0x3a, 0x9a, 0xb0, 0x95, 0xb4, 0xe7, 0x47, 0x1c, 0x0e, 0x78, + 0xf1, 0x35, 0x34, 0x83, 0xcd, 0x6a, 0x53, 0x51, 0x92, 0x7f, 0x2d, 0x65, + 0x3d, 0x3a, 0xbd, 0x81, 0xd7, 0x60, 0xfa, 0xf4, 0x15, 0xdd, 0x11, 0xd2, + 0x21, 0x94, 0x86, 0x0f, 0x8a, 0x16, 0x86, 0x69, 0xbe, 0x47, 0x97, 0x7d, + 0x8e, 0xe2, 0x83, 0x68, 0xf1, 0x34, 0x4f, 0x86, 0x0e, 0xe2, 0xc6, 0x1b, + 0x2d, 0x51, 0xe5, 0x34, 0x28, 0xf8, 0x41, 0x11, 0xc2, 0xf4, 0x8f, 0x29, + 0x64, 0x79, 0x2c, 0x08, 0x00, 0xb8, 0x83, 0x2d, 0x66, 0x27, 0x49, 0xc8, + 0xbb, 0x75, 0xea, 0x87, 0xfe, 0xb1, 0xf0, 0x73, 0xd2, 0x47, 0x93, 0x44, + 0xb0, 0x0d, 0x64, 0x10, 0x50, 0x73, 0xc0, 0xff, 0x83, 0xba, 0xdd, 0x9c, + 0xd2, 0x63, 0x8e, 0x92, 0xda, 0x12, 0xfe, 0x17, 0xfe, 0xb2, 0x31, 0x82, + 0xa7, 0x9c, 0xa3, 0xff, 0x7b, 0xf9, 0x03, 0x7a, 0xd9, 0xe7, 0x74, 0x49, + 0xd2, 0xf2, 0x5d, 0x5e, 0x97, 0x52, 0xf0, 0xc0, 0x90, 0xa2, 0x50, 0xb3, + 0x21, 0xd9, 0x42, 0xdb, 0x6c, 0x02, 0x38, 0xb1, 0xac, 0xc6, 0x4a, 0xd3, + 0xd6, 0xa4, 0x35, 0x3d, 0xef, 0xce, 0xc6, 0xda, 0x02, 0x38, 0xea, 0xa7, + 0xf8, 0xa1, 0x8e, 0x03, 0xa2, 0xd5, 0x0b, 0x9a, 0x04, 0xa6, 0x40, 0x34, + 0x58, 0x0d, 0xe9, 0x42, 0x13, 0x30, 0x18, 0x55, 0x1f, 0x33, 0xdb, 0x49, + 0x0f, 0xb2, 0x15, 0x43, 0x99, 0x18, 0x3e, 0x5a, 0x64, 0xdc, 0x85, 0xc1, + 0x3b, 0x81, 0x73, 0x64, 0x5b, 0x49, 0x2f, 0x4d, 0xa7, 0x97, 0xff, 0x2e, + 0x73, 0x7b, 0x09, 0x24, 0x53, 0x90, 0x84, 0x13, 0x9e, 0xef, 0xb1, 0x30, + 0x93, 0x84, 0x07, 0xc8, 0x2c, 0x0b, 0xb3, 0xb1, 0x2a, 0x44, 0xcc, 0x86, + 0x3d, 0x7d, 0xfb, 0x91, 0x62, 0xa5, 0xb7, 0xe8, 0x28, 0xa6, 0x84, 0xcc, + 0xdc, 0xf9, 0x3f, 0x41, 0xa3, 0x91, 0xc1, 0x24, 0x11, 0xeb, 0xbf, 0x11, + 0x4a, 0x92, 0x90, 0x0d, 0x67, 0x8b, 0x41, 0x24, 0x53, 0xf7, 0xbe, 0xae, + 0xa1, 0x48, 0x61, 0x3d, 0x8f, 0xcf, 0x2d, 0xdb, 0xfd, 0x1e, 0xc0, 0x89, + 0x93, 0xf3, 0x0a, 0x49, 0x42, 0xfe, 0xe3, 0x3c, 0x38, 0xf1, 0x17, 0x54, + 0x4f, 0x67, 0xf8, 0x30, 0xd9, 0x1b, 0x14, 0x65, 0x2e, 0xcc, 0xde, 0xaf, + 0x2b, 0xd7, 0x2a, 0xef, 0x9f, 0xa7, 0x28, 0x9f, 0xb9, 0xe2, 0xf5, 0xeb, + 0x7b, 0x27, 0x3b, 0x8b, 0x86, 0x07, 0xca, 0x2a, 0x0c, 0x75, 0x46, 0x66, + 0x9d, 0xa5, 0x6a, 0x3f, 0x5e, 0xdc, 0x49, 0xcf, 0xbd, 0xa2, 0xff, 0x07, + 0x79, 0xa4, 0xff, 0x7d, 0xfc, 0x47, 0x6b, 0x34, 0xdc, 0xc7, 0xeb, 0x53, + 0x65, 0x51, 0x71, 0xda, 0x49, 0x20, 0xea, 0xe5, 0xd3, 0xb0, 0xea, 0x26, + 0x1b, 0x82, 0xcf, 0x81, 0x2d, 0x8c, 0x47, 0x0a, 0xfe, 0x8a, 0x6c, 0x15, + 0xc1, 0xc4, 0x47, 0x82, 0x60, 0x01, 0x3c, 0x50, 0x20, 0x5f, 0xef, 0xe3, + 0xdf, 0xa9, 0xf9, 0x2e, 0xb2, 0xe6, 0xd0, 0xa9, 0xb1, 0x7e, 0x98, 0xcd, + 0x39, 0x40, 0xe1, 0x2d, 0xb6, 0xe0, 0x70, 0x44, 0xb0, 0x49, 0xa7, 0xea, + 0xbb, 0xc8, 0xaa, 0xcd, 0x8d, 0x62, 0x28, 0x7f, 0xab, 0x12, 0x6d, 0x0f, + 0x65, 0xc1, 0x4c, 0x00, 0x72, 0x08, 0xd9, 0xd5, 0x48, 0x60, 0x7c, 0xe2, + 0xc3, 0x05, 0x7b, 0x43, 0x60, 0x83, 0xd2, 0x38, 0x5a, 0xf7, 0x66, 0xfc, + 0x3c, 0x16, 0x12, 0x0e, 0x1f, 0xc8, 0x62, 0x6d, 0x91, 0x6c, 0xd2, 0x7a, + 0x68, 0x53, 0x04, 0xfc, 0x05, 0x1c, 0x6d, 0xa9, 0xcb, 0xf5, 0xe0, 0x54, + 0x08, 0xf8, 0xdf, 0x06, 0xf6, 0x18, 0xbb, 0x69, 0x49, 0xde, 0x70, 0xc2, + 0x21, 0x12, 0x5c, 0xca, 0xd0, 0x79, 0xc8, 0x49, 0x65, 0x6d, 0x46, 0xf0, + 0xf4, 0xa0, 0x67, 0xf8, 0x3b, 0x68, 0x01, 0x83, 0x24, 0x89, 0x38, 0xe6, + 0xc4, 0x2d, 0x8f, 0x32, 0x1e, 0xeb, 0xc8, 0xb8, 0xc6, 0x15, 0x7e, 0x68, + 0x9a, 0xa6, 0x0b, 0x03, 0x3f, 0x25, 0x35, 0x11, 0x1a, 0x52, 0xe4, 0x99, + 0x02, 0x77, 0x0a, 0xe0, 0x20, 0x6c, 0xd0, 0x61, 0x78, 0xb4, 0xe4, 0xd8, + 0xcb, 0x31, 0x51, 0x3c, 0xce, 0xb0, 0x3b, 0x65, 0xdf, 0x32, 0x09, 0xda, + 0x1b, 0x94, 0xeb, 0xa4, 0xbb, 0xf6, 0x06, 0x30, 0x40, 0xf9, 0x9e, 0x22, + 0x8c, 0x40, 0x3a, 0xc4, 0xe4, 0x1b, 0x66, 0xf0, 0xbf, 0x72, 0xfe, 0xf4, + 0x69, 0xdd, 0xf9, 0xbc, 0xbc, 0xc6, 0x37, 0x39, 0xa9, 0xf7, 0x16, 0xe2, + 0xe8, 0xd2, 0x2a, 0x4d, 0x36, 0x5a, 0xd2, 0x0c, 0xbe, 0x1b, 0x15, 0x8c, + 0x44, 0x01, 0xea, 0x35, 0x53, 0x05, 0x80, 0xd3, 0x13, 0x36, 0x89, 0x04, + 0x21, 0xce, 0xd0, 0xbd, 0x8d, 0xe4, 0x77, 0x2c, 0x7b, 0x48, 0x4c, 0x2c, + 0x05, 0x4f, 0x29, 0xb2, 0xc1, 0x04, 0x36, 0xde, 0x52, 0x16, 0x48, 0xab, + 0xc0, 0xd1, 0xfa, 0x84, 0xdf, 0x92, 0xe8, 0x69, 0xcb, 0x35, 0x2d, 0xe3, + 0xc9, 0xc4, 0xd3, 0x36, 0xc5, 0xc8, 0x62, 0x05, 0x55, 0xe8, 0xd1, 0x52, + 0x73, 0x0b, 0xc9, 0xd3, 0x4e, 0x80, 0x5b, 0x8f, 0x65, 0x13, 0x12, 0x01, + 0x90, 0x38, 0xd3, 0x93, 0x37, 0x12, 0x36, 0xd5, 0x90, 0xdc, 0x10, 0xae, + 0x5a, 0x70, 0xa4, 0xc5, 0x0d, 0x41, 0xa3, 0x0d, 0xbb, 0x2e, 0xac, 0xb3, + 0x80, 0xe2, 0x59, 0x88, 0x2d, 0x9d, 0x69, 0x8e, 0xa0, 0xd8, 0xf9, 0x3a, + 0x19, 0x51, 0x16, 0xe7, 0xe6, 0x41, 0xb1, 0x55, 0x7a, 0xd2, 0xc9, 0x52, + 0xa6, 0x53, 0xaf, 0xc3, 0xf8, 0x80, 0x2d, 0x5f, 0x95, 0x9b, 0x90, 0x93, + 0xa4, 0x3e, 0x80, 0xb0, 0x89, 0xd1, 0x64, 0x38, 0x4d, 0x92, 0x46, 0xfe, + 0x69, 0xd6, 0xbf, 0x69, 0x4d, 0xa0, 0xe3, 0x5b, 0x78, 0x59, 0xe3, 0x60, + 0x8f, 0xd6, 0x63, 0xe3, 0xd6, 0xcd, 0x92, 0xf7, 0xda, 0x39, 0x46, 0x21, + 0x09, 0xaf, 0xd7, 0x1c, 0x3f, 0x63, 0x28, 0x8a, 0x7d, 0xc0, 0x8c, 0x3c, + 0xc1, 0x45, 0x46, 0x36, 0x00, 0xf2, 0xfe, 0x21, 0xe4, 0xec, 0x8f, 0xda, + 0xb7, 0x77, 0x3e, 0xc7, 0x74, 0xec, 0x5d, 0x52, 0x96, 0xf9, 0xfa, 0x6b, + 0x47, 0x1d, 0x66, 0xb3, 0xd6, 0x33, 0xe6, 0xce, 0xfa, 0xcd, 0xae, 0x1d, + 0x31, 0x04, 0xef, 0xd5, 0x83, 0x97, 0xd4, 0x87, 0x8d, 0x5e, 0xd8, 0x77, + 0x07, 0x34, 0x4b, 0x07, 0x7f, 0xfa, 0xe8, 0x26, 0x0d, 0xc5, 0xd8, 0xc9, + 0x27, 0xfa, 0xa4, 0xc0, 0xbc, 0xb5, 0x41, 0xf1, 0x97, 0x67, 0x27, 0x49, + 0xcb, 0xaf, 0x19, 0xdc, 0x58, 0xdc, 0x98, 0xbe, 0xeb, 0xf3, 0xf5, 0xc2, + 0xd9, 0xb5, 0x4e, 0x86, 0xf7, 0x6f, 0x48, 0xcf, 0x92, 0xf6, 0x23, 0xdd, + 0xe5, 0x1a, 0x9e, 0x9d, 0x9d, 0x9b, 0xb8, 0xaa, 0xfb, 0xdb, 0xfd, 0xa2, + 0x25, 0x6b, 0x9a, 0xf0, 0xed, 0xf3, 0x8c, 0x6f, 0x73, 0x8c, 0x70, 0x04, + 0xb9, 0x05, 0x2b, 0xb9, 0x04, 0xcd, 0xb0, 0xdb, 0x6b, 0x12, 0x03, 0xcd, + 0xf4, 0xf7, 0x26, 0xa0, 0x28, 0xc9, 0xcd, 0x49, 0x28, 0x09, 0x9c, 0x02, + 0x69, 0xd1, 0xb2, 0x0d, 0xdf, 0x41, 0x9f, 0x04, 0xd9, 0x9b, 0x04, 0x98, + 0xfc, 0x11, 0x7c, 0x1d, 0x03, 0x3c, 0x7c, 0xa7, 0x52, 0xc1, 0x9c, 0x32, + 0x21, 0x62, 0xd1, 0xfa, 0x51, 0xfc, 0xf9, 0x28, 0x14, 0xa0, 0x26, 0x05, + 0x56, 0x89, 0xb8, 0xd8, 0x74, 0xc0, 0x27, 0xd6, 0x71, 0x66, 0xbf, 0xb9, + 0x9b, 0xb8, 0x40, 0x3e, 0x34, 0x5a, 0x22, 0x24, 0xb0, 0xeb, 0x31, 0x7f, + 0xe2, 0xb8, 0x29, 0x9e, 0x49, 0x5a, 0x74, 0x03, 0x73, 0x94, 0x8f, 0x72, + 0x80, 0xdc, 0xfa, 0x9d, 0x3b, 0x4a, 0x36, 0xc4, 0x44, 0x36, 0x18, 0x84, + 0x3f, 0x75, 0xf7, 0xfc, 0x9a, 0xe3, 0x45, 0x18, 0x83, 0x9c, 0x11, 0x7a, + 0xd3, 0xa1, 0x1c, 0x7d, 0x21, 0x1a, 0x20, 0x36, 0x80, 0x05, 0x7d, 0x0d, + 0x38, 0x72, 0x38, 0x7c, 0x0d, 0x67, 0xaf, 0x0f, 0x43, 0x6a, 0xc8, 0xa9, + 0x9d, 0xe8, 0x1a, 0x29, 0xa2, 0xea, 0x4e, 0x8f, 0xac, 0x50, 0xe4, 0x88, + 0x2a, 0x3e, 0xaa, 0x99, 0x28, 0x78, 0x55, 0x8d, 0xaa, 0xd1, 0xa3, 0x9a, + 0x5f, 0x06, 0x38, 0x76, 0x06, 0x35, 0xf1, 0xb2, 0x71, 0x8e, 0xd1, 0x5a, + 0x08, 0xa6, 0x8b, 0xdb, 0xd8, 0xeb, 0x24, 0xa6, 0xfc, 0x67, 0x76, 0x3b, + 0x5c, 0xb5, 0x8d, 0xea, 0x28, 0x35, 0xaa, 0x66, 0x22, 0x8e, 0x23, 0x6a, + 0x44, 0x5e, 0xf9, 0x8b, 0xb4, 0x6b, 0x4c, 0x45, 0xdd, 0x7d, 0x12, 0xda, + 0x35, 0x5d, 0x58, 0x4a, 0xf6, 0x6e, 0x69, 0xf9, 0xf7, 0x87, 0xb6, 0x72, + 0x5b, 0x64, 0x2f, 0xca, 0x7f, 0xbe, 0x8b, 0xd2, 0x82, 0x5a, 0xda, 0xb0, + 0xff, 0xb0, 0x92, 0x67, 0x42, 0xb5, 0x0a, 0xdd, 0x93, 0x6a, 0x9e, 0x4c, + 0xaa, 0xc1, 0x29, 0xd5, 0x06, 0x4e, 0x93, 0xd8, 0x72, 0xe3, 0xde, 0x32, + 0x65, 0x84, 0x7c, 0x05, 0x8e, 0x88, 0x05, 0x25, 0x01, 0x7a, 0x1f, 0xba, + 0xf9, 0xfb, 0xf1, 0xb1, 0x45, 0xd4, 0xc6, 0x6f, 0xf0, 0x14, 0x5b, 0xe8, + 0xa1, 0x2d, 0x9c, 0xb9, 0xac, 0x8c, 0xcc, 0xae, 0x0d, 0x98, 0x8a, 0xd3, + 0xf7, 0xa4, 0xf2, 0x2d, 0x07, 0xfa, 0xa3, 0x8f, 0xf4, 0x07, 0x00, 0x99, + 0x8f, 0x3a, 0xe3, 0x1f, 0xe8, 0xfa, 0x37, 0x99, 0x6c, 0x94, 0xe1, 0x7e, + 0x8c, 0xf9, 0xc6, 0x35, 0xe2, 0x50, 0x79, 0x3e, 0xcc, 0xa0, 0x3f, 0xc8, + 0xac, 0xff, 0x2c, 0xe3, 0x8e, 0x65, 0xe2, 0x96, 0xa1, 0xfb, 0x9e, 0x63, + 0x78, 0xc4, 0xf0, 0x79, 0xc5, 0x49, 0xd0, 0xdb, 0x67, 0x88, 0xff, 0x8c, + 0x0b, 0x1c, 0x64, 0xe0, 0x39, 0x2d, 0x7c, 0xcc, 0x91, 0x72, 0xf3, 0xe6, + 0x86, 0x49, 0x75, 0xdd, 0x01, 0xf2, 0x6a, 0xad, 0x55, 0x1b, 0xd4, 0xde, + 0x71, 0x84, 0x3c, 0xa8, 0x38, 0x30, 0x99, 0xca, 0xc8, 0x8e, 0xca, 0xff, + 0x4c, 0x97, 0x92, 0xcb, 0xf1, 0x60, 0x0c, 0x1a, 0xc9, 0x18, 0x81, 0xb5, + 0x6f, 0x74, 0x38, 0x27, 0xd4, 0xe1, 0x44, 0xac, 0x1c, 0xce, 0xfb, 0x9d, + 0x1f, 0xb0, 0x69, 0xc3, 0xba, 0x3b, 0xd4, 0xb9, 0xc4, 0xbe, 0x02, 0x14, + 0x50, 0x89, 0x69, 0xba, 0xde, 0x06, 0xe3, 0x1b, 0x93, 0x1b, 0x2b, 0xbe, + 0x61, 0x91, 0x6e, 0x88, 0x81, 0x4b, 0xcc, 0xa0, 0x51, 0xa3, 0xd7, 0x08, + 0x70, 0x2c, 0xfe, 0x1d, 0x5c, 0xde, 0x38, 0x61, 0xc9, 0xb1, 0x54, 0x9a, + 0xc6, 0x8a, 0xb6, 0x09, 0x79, 0x2e, 0xd1, 0x38, 0xdd, 0xe9, 0x11, 0x60, + 0x42, 0x33, 0xac, 0x1e, 0xf1, 0xaa, 0x25, 0xae, 0xb7, 0xa3, 0x16, 0x42, + 0x62, 0x90, 0xa3, 0x0d, 0x67, 0xae, 0xc9, 0xcb, 0xc2, 0xec, 0xdb, 0xa3, + 0xd4, 0xe2, 0xd3, 0xe4, 0x45, 0x63, 0x69, 0xc0, 0x87, 0x42, 0xf8, 0x5a, + 0xa9, 0x74, 0xe0, 0x06, 0xcd, 0xb4, 0x05, 0x70, 0x75, 0xb8, 0x83, 0x5d, + 0xa7, 0xe3, 0xc4, 0x3f, 0xd0, 0x9d, 0x61, 0x48, 0x28, 0x92, 0x7b, 0x92, + 0x12, 0x27, 0xca, 0xec, 0x87, 0xdc, 0x5b, 0xf8, 0xc0, 0x28, 0x93, 0x2c, + 0x2e, 0xfc, 0x3c, 0x32, 0x23, 0xd0, 0xd0, 0xfd, 0x51, 0xd4, 0xca, 0xc2, + 0x46, 0xa0, 0xeb, 0x8c, 0xf5, 0xf0, 0x77, 0xba, 0x0b, 0xfc, 0x8e, 0x7b, + 0xe4, 0xe8, 0xc5, 0xde, 0xf5, 0x48, 0xbc, 0x0b, 0x87, 0xff, 0x15, 0x56, + 0x13, 0xeb, 0xc1, 0x01, 0xe0, 0x95, 0x08, 0x91, 0xab, 0x10, 0x3d, 0xba, + 0x4a, 0x9d, 0xaa, 0x6f, 0x59, 0x6d, 0x29, 0xf2, 0xab, 0x16, 0x3c, 0x54, + 0x0a, 0xdc, 0xb1, 0x71, 0x7c, 0x86, 0x65, 0xf1, 0x04, 0xcd, 0xe7, 0x5d, + 0x83, 0xd6, 0x42, 0x2f, 0x82, 0x7a, 0x73, 0x9f, 0x49, 0xb3, 0x14, 0x06, + 0x12, 0xb9, 0x1d, 0x96, 0xb5, 0xae, 0x82, 0x04, 0xf1, 0x49, 0x23, 0x01, + 0xfc, 0xe7, 0xcf, 0xfc, 0xcc, 0x47, 0x8e, 0x8f, 0xe4, 0x46, 0x0e, 0xc9, + 0xc0, 0x0b, 0x34, 0x41, 0x8a, 0xed, 0x8b, 0xc8, 0x33, 0x18, 0xbc, 0x51, + 0x1c, 0xe2, 0xaf, 0xb5, 0x1c, 0xba, 0x6f, 0x34, 0x43, 0xea, 0xd8, 0x56, + 0x9b, 0x43, 0xc9, 0x14, 0xd2, 0x36, 0xa4, 0xa4, 0x17, 0x87, 0x0e, 0x91, + 0x80, 0x20, 0xce, 0x88, 0x76, 0xfc, 0x31, 0x76, 0x71, 0x47, 0xee, 0x3a, + 0x73, 0xcf, 0x03, 0xaa, 0xe0, 0x8d, 0x0f, 0x59, 0xfc, 0x60, 0xdf, 0x92, + 0xf0, 0xc8, 0x93, 0xcb, 0xa9, 0x70, 0x61, 0xec, 0x5f, 0x7e, 0x51, 0xd6, + 0x35, 0xb1, 0x45, 0x4b, 0x62, 0xbb, 0xb8, 0x34, 0x83, 0xef, 0xb2, 0x11, + 0x97, 0xfb, 0xa7, 0xc4, 0x4a, 0x7f, 0xc1, 0x2d, 0x3c, 0x8c, 0x51, 0x96, + 0x94, 0x51, 0xe2, 0x47, 0x5c, 0x00, 0xd7, 0xf0, 0x9e, 0x89, 0x34, 0x87, + 0xd4, 0x7e, 0x5e, 0x92, 0xb1, 0x82, 0xaa, 0x0f, 0xb9, 0x95, 0x97, 0xcb, + 0xc1, 0x08, 0x8c, 0x0a, 0x25, 0x3e, 0xc8, 0x7a, 0x36, 0xdf, 0x42, 0x8a, + 0x71, 0x17, 0xe6, 0x4d, 0x37, 0x6a, 0xac, 0x7b, 0x32, 0xf1, 0x02, 0x36, + 0x4a, 0x07, 0x94, 0x46, 0xdf, 0x46, 0x90, 0xd8, 0x68, 0xb7, 0xf4, 0x7c, + 0x40, 0x00, 0x8f, 0xf5, 0x2d, 0xaa, 0x2c, 0x00, 0x12, 0x46, 0xf6, 0x61, + 0x18, 0xd3, 0x90, 0xf4, 0x75, 0x43, 0x80, 0x84, 0x32, 0x53, 0x74, 0xa9, + 0xd1, 0x23, 0xbd, 0x6f, 0xb1, 0xfa, 0x18, 0x76, 0x1f, 0xe8, 0x73, 0x8c, + 0xbf, 0x3e, 0x9c, 0xa3, 0x4c, 0xb9, 0x62, 0xb8, 0x78, 0x51, 0x1c, 0x71, + 0x86, 0x7e, 0x5f, 0xfa, 0xf9, 0x89, 0x1d, 0x59, 0x58, 0xdd, 0x81, 0x7b, + 0xbb, 0x0f, 0xfc, 0x10, 0x8d, 0x61, 0x1d, 0xb7, 0x15, 0x01, 0x54, 0x0c, + 0x5e, 0x31, 0x37, 0x83, 0x5f, 0xa6, 0x63, 0x76, 0x08, 0xbb, 0x7a, 0x63, + 0x00, 0x53, 0x81, 0x09, 0x8a, 0x67, 0x05, 0x0c, 0x4b, 0xbe, 0x83, 0xc0, + 0x5f, 0x12, 0x43, 0xe9, 0x93, 0x03, 0x2f, 0x22, 0x99, 0x97, 0xce, 0xe8, + 0x4b, 0x7a, 0x56, 0x36, 0x68, 0x14, 0x3b, 0x97, 0x3a, 0xea, 0x2b, 0x63, + 0x63, 0x00, 0xef, 0x50, 0x49, 0x10, 0x15, 0x6c, 0xc4, 0x00, 0xd0, 0x3e, + 0x24, 0xbf, 0x13, 0x85, 0x50, 0xa6, 0x4f, 0xe1, 0x90, 0x84, 0x04, 0xff, + 0x8c, 0x12, 0x8f, 0xdf, 0x3b, 0xda, 0x82, 0x79, 0xc9, 0xa2, 0x1b, 0x04, + 0xee, 0xc3, 0x16, 0xc8, 0x05, 0x2c, 0xc1, 0x8d, 0x36, 0xb9, 0xad, 0x95, + 0xb0, 0x76, 0x3d, 0xfc, 0x86, 0xa7, 0xcc, 0x66, 0x70, 0x95, 0x41, 0xcf, + 0xc2, 0x92, 0xa4, 0x42, 0x7f, 0x27, 0xbc, 0x46, 0x84, 0x5d, 0xcd, 0x21, + 0xb3, 0xa5, 0x73, 0x8f, 0xc8, 0x04, 0xd8, 0x4a, 0x7b, 0x00, 0x46, 0x30, + 0xe3, 0x37, 0x11, 0xbc, 0x5e, 0xeb, 0x79, 0x21, 0xca, 0x00, 0x59, 0x31, + 0x34, 0x29, 0xd3, 0xdf, 0x4a, 0xe3, 0xf7, 0x4c, 0xf1, 0xf0, 0x6c, 0x62, + 0x41, 0xd1, 0x8b, 0x17, 0x11, 0x47, 0xa7, 0x87, 0xce, 0x3a, 0xcc, 0xbc, + 0xb0, 0xe8, 0x4f, 0x2e, 0x78, 0xbd, 0x7c, 0xda, 0x56, 0x9d, 0x35, 0xa4, + 0x60, 0xf7, 0x96, 0x25, 0x1e, 0xdf, 0x6f, 0x62, 0xbe, 0xd6, 0xb0, 0x59, + 0x77, 0x64, 0xfc, 0x4a, 0x5a, 0xa2, 0x0a, 0xc7, 0xda, 0xde, 0xa1, 0x14, + 0x08, 0x0f, 0x94, 0x57, 0x28, 0xe5, 0x36, 0xa8, 0x94, 0xdb, 0x37, 0x2a, + 0x25, 0xc4, 0x80, 0xf0, 0xc3, 0x25, 0x30, 0xd4, 0xe6, 0x64, 0x48, 0x47, + 0x6b, 0x50, 0x80, 0xd9, 0x23, 0x1d, 0xff, 0x37, 0xa8, 0x46, 0x43, 0xaf, + 0x52, 0x4d, 0x7f, 0x2a, 0x8e, 0x8d, 0x10, 0x05, 0xd1, 0x8a, 0x3f, 0x57, + 0x4d, 0x1a, 0xfa, 0x38, 0x35, 0x99, 0x9e, 0xd2, 0x0a, 0x54, 0xc3, 0x8f, + 0xa9, 0xb8, 0x92, 0xd9, 0xa1, 0x2b, 0x3e, 0x2b, 0x98, 0xb6, 0xea, 0x8e, + 0xde, 0x14, 0x1c, 0xc7, 0x0e, 0x53, 0x3f, 0xc2, 0xb5, 0x46, 0x4a, 0xfe, + 0xe2, 0x5b, 0x55, 0x9b, 0x0d, 0x38, 0xeb, 0x6a, 0xdf, 0x84, 0xa6, 0xc8, + 0x65, 0x38, 0xa8, 0xd5, 0xc2, 0x07, 0x7d, 0xbd, 0x77, 0x97, 0xf1, 0x3f, + 0x1d, 0xa4, 0x79, 0x7e, 0xf1, 0xbf, 0xb3, 0x48, 0x33, 0x70, 0x39, 0x18, + 0x13, 0x1c, 0x29, 0x06, 0x15, 0xf3, 0x64, 0x4b, 0x38, 0x3b, 0xd5, 0x10, + 0xce, 0xf2, 0xa9, 0x12, 0x30, 0x9d, 0xc8, 0xfd, 0xf8, 0xdd, 0xd7, 0x3f, + 0xa7, 0x60, 0x69, 0x7c, 0x02, 0x5f, 0xc9, 0x13, 0xf8, 0xf1, 0xf5, 0xcf, + 0xdf, 0x24, 0x73, 0x13, 0x31, 0xed, 0xf4, 0xc4, 0x2c, 0x0d, 0x6f, 0x55, + 0x4b, 0xd3, 0x17, 0x1e, 0x30, 0xcf, 0xa4, 0xb9, 0x1f, 0xa1, 0xe4, 0x67, + 0xa0, 0x4d, 0x0a, 0x8f, 0xcc, 0x8e, 0x0e, 0x06, 0xe2, 0x9e, 0x5c, 0x80, + 0x1d, 0x74, 0xa4, 0x09, 0x09, 0xf2, 0xc2, 0x01, 0xf3, 0x27, 0xd6, 0x99, + 0xf9, 0x93, 0xce, 0x36, 0xc1, 0x2b, 0xd6, 0x9e, 0xbd, 0xcc, 0x04, 0x8b, + 0x8b, 0x58, 0xcb, 0xe7, 0x39, 0xe0, 0x61, 0x2f, 0xb0, 0x62, 0xe7, 0xe6, + 0x2f, 0x80, 0xc7, 0x68, 0x01, 0x2c, 0x53, 0x6f, 0xc7, 0x39, 0xba, 0x76, + 0xf6, 0xbc, 0x21, 0x8b, 0x5e, 0x05, 0xc6, 0x5d, 0xa8, 0x1f, 0x42, 0x52, + 0x4b, 0x90, 0xef, 0x74, 0x88, 0x49, 0x94, 0xb9, 0x30, 0x96, 0x20, 0x7f, + 0x83, 0x47, 0x7d, 0x8e, 0xbb, 0xe3, 0x96, 0x90, 0x9e, 0x19, 0xe9, 0x39, + 0x6c, 0x05, 0xdb, 0xd9, 0xed, 0xec, 0x01, 0xfe, 0x95, 0x85, 0xa5, 0xb9, + 0xfb, 0xc5, 0xe8, 0xae, 0xc5, 0x39, 0xec, 0xb9, 0xe3, 0x64, 0x96, 0x71, + 0xc2, 0xce, 0x8d, 0x71, 0x66, 0x9f, 0xfd, 0xd6, 0x69, 0x1a, 0xb3, 0x61, + 0xbd, 0x7f, 0xfd, 0x18, 0x9f, 0xcc, 0x63, 0x14, 0x7a, 0xbb, 0x9a, 0x75, + 0xf7, 0xff, 0x11, 0x6b, 0x32, 0x09, 0x47, 0xf5, 0x18, 0x11, 0x2a, 0x2d, + 0x11, 0x31, 0x29, 0x28, 0xf3, 0xd5, 0x62, 0xa9, 0x43, 0x6b, 0xcc, 0x1e, + 0x09, 0xad, 0xb3, 0x22, 0x4d, 0xfb, 0xfa, 0xb3, 0x75, 0xa1, 0x99, 0xbc, + 0x28, 0xd8, 0x8b, 0x22, 0x92, 0x9b, 0xe1, 0x18, 0xcb, 0x7b, 0x57, 0xdc, + 0x44, 0xdd, 0xf2, 0xa0, 0x6e, 0x01, 0x2a, 0x45, 0xa0, 0xe2, 0x62, 0x29, + 0xe1, 0x45, 0xf4, 0x39, 0xfa, 0x42, 0xfa, 0x3f, 0x00, 0x33, 0xfc, 0x14, + 0xf6, 0xa1, 0x5e, 0x00, 0x00 +}; diff --git a/Arduino/McLighting/htm_index_gz.h b/Arduino/McLighting/htm_index_gz.h new file mode 100644 index 0000000..c4a9306 --- /dev/null +++ b/Arduino/McLighting/htm_index_gz.h @@ -0,0 +1,1651 @@ +#include + +#define index_htm_gz_len 19752 +static const char index_htm_gz[] PROGMEM ={ + 0x1f, 0x8b, 0x08, 0x08, 0x27, 0x3d, 0x8e, 0x5c, 0x04, 0x00, 0x69, 0x6e, + 0x64, 0x65, 0x78, 0x2e, 0x68, 0x74, 0x6d, 0x00, 0xdc, 0x5d, 0xdb, 0x7a, + 0xdb, 0xb8, 0x11, 0xbe, 0xef, 0xf7, 0xf5, 0x1d, 0x18, 0xa5, 0x4d, 0xa4, + 0xae, 0x24, 0xeb, 0x60, 0xbb, 0x8e, 0xbc, 0xf2, 0x36, 0xc9, 0x3a, 0x69, + 0xda, 0x1c, 0xb6, 0x71, 0xb6, 0x69, 0x9b, 0xe6, 0x73, 0x29, 0x09, 0x92, + 0x58, 0x53, 0xa4, 0x4a, 0x52, 0xb1, 0x1d, 0xd7, 0xcf, 0xd2, 0x9b, 0xde, + 0xf4, 0x05, 0x7a, 0xd5, 0xab, 0xf6, 0xc5, 0xfa, 0xcf, 0x00, 0x20, 0xc0, + 0x83, 0x64, 0xd9, 0xb1, 0xd5, 0x83, 0x77, 0x23, 0x89, 0xc0, 0x60, 0x66, + 0x30, 0x18, 0x0c, 0x06, 0xc0, 0x00, 0xfc, 0xfa, 0xde, 0xb7, 0x6f, 0x9e, + 0xbe, 0xfb, 0xed, 0x77, 0x87, 0xce, 0x34, 0x99, 0xf9, 0x07, 0x3f, 0xfc, + 0xc1, 0xd7, 0xea, 0xdb, 0xc1, 0xdf, 0xd7, 0x53, 0xe1, 0x8e, 0xd4, 0x6f, + 0x7e, 0x4e, 0xbc, 0xc4, 0x17, 0x07, 0xaf, 0x86, 0x2f, 0xbd, 0xc9, 0x34, + 0xf1, 0x82, 0xc9, 0xd7, 0x5b, 0x9c, 0x62, 0x83, 0xcc, 0x44, 0xe2, 0x3a, + 0xc3, 0xa9, 0x1b, 0xc5, 0x22, 0xe9, 0x57, 0xbe, 0x7f, 0xf7, 0xac, 0xb1, + 0x57, 0x29, 0xe4, 0x07, 0xee, 0x4c, 0xf4, 0x2b, 0x9f, 0x3c, 0x71, 0x3a, + 0x0f, 0xa3, 0xa4, 0xe2, 0x0c, 0xc3, 0x20, 0x11, 0x01, 0xe0, 0x4f, 0xbd, + 0x51, 0x32, 0xed, 0x8f, 0xc4, 0x27, 0x6f, 0x28, 0x1a, 0xfc, 0x50, 0x77, + 0xbc, 0xc0, 0x4b, 0x3c, 0xd7, 0x6f, 0xc4, 0x43, 0xd7, 0x17, 0xfd, 0x76, + 0xb3, 0xb5, 0x0c, 0xdf, 0x2c, 0x1c, 0x78, 0x3e, 0x8a, 0x89, 0x41, 0xc3, + 0x9d, 0xcf, 0x1b, 0x43, 0x77, 0xee, 0x0e, 0x7c, 0x61, 0x61, 0x3f, 0x17, + 0x71, 0xa6, 0xac, 0xef, 0x05, 0x27, 0x4e, 0x24, 0xfc, 0x7e, 0x25, 0x9e, + 0x82, 0x8f, 0xe1, 0x22, 0x71, 0x3c, 0x00, 0x57, 0x9c, 0x69, 0x24, 0xc6, + 0xfd, 0xca, 0x34, 0x49, 0xe6, 0x71, 0x6f, 0x6b, 0x6b, 0x38, 0x0a, 0x9a, + 0x91, 0x7b, 0x3a, 0xf1, 0x92, 0xe6, 0x30, 0x9c, 0x6d, 0x25, 0xe1, 0xc0, + 0x5f, 0xcc, 0xb6, 0x8c, 0x14, 0xbe, 0x7f, 0xb1, 0xd5, 0xee, 0x6e, 0xef, + 0x8a, 0x6e, 0x77, 0x7b, 0x6b, 0xe6, 0x26, 0x22, 0x02, 0xb7, 0x56, 0xf6, + 0xcb, 0x70, 0x12, 0x6e, 0x8d, 0xdd, 0x4f, 0x84, 0xba, 0x89, 0x8f, 0x8a, + 0x93, 0x9c, 0xcf, 0xc1, 0xae, 0x37, 0x73, 0x27, 0x62, 0xeb, 0xac, 0x21, + 0x49, 0x6e, 0x95, 0x33, 0x86, 0x8a, 0xa0, 0x4a, 0x49, 0xb8, 0x18, 0x4e, + 0x1b, 0x77, 0xc5, 0x5b, 0x9e, 0x46, 0x73, 0x1e, 0x4c, 0x96, 0xc9, 0x29, + 0x39, 0xf7, 0x45, 0x3c, 0x15, 0x22, 0xc9, 0x33, 0x32, 0x86, 0x90, 0xe3, + 0xe6, 0x24, 0x0c, 0x27, 0xbe, 0x70, 0xe7, 0x5e, 0xcc, 0xec, 0x0c, 0xe3, + 0xf8, 0x9b, 0xb1, 0x3b, 0xf3, 0xfc, 0xf3, 0xfe, 0x2b, 0x45, 0xfc, 0xab, + 0x17, 0xa0, 0x90, 0x6d, 0x06, 0x46, 0x8a, 0x84, 0x9f, 0x38, 0x17, 0x94, + 0x3a, 0x70, 0x87, 0x27, 0x93, 0x28, 0x5c, 0x04, 0xa3, 0x46, 0x24, 0xe6, + 0xc2, 0x4d, 0x7a, 0x4e, 0x10, 0xaa, 0x9f, 0xfb, 0x04, 0x30, 0x77, 0x47, + 0x23, 0xf0, 0xde, 0x73, 0x5a, 0xfc, 0x38, 0x73, 0xa3, 0x89, 0x17, 0xc8, + 0xa7, 0x4b, 0x60, 0xa9, 0x3b, 0x3d, 0x77, 0x0c, 0x62, 0xf8, 0x1e, 0x88, + 0x71, 0x18, 0x09, 0x46, 0x8b, 0x3f, 0xd2, 0x8c, 0x13, 0x2f, 0x69, 0x0c, + 0xc2, 0xb3, 0x46, 0xec, 0x7d, 0x66, 0x14, 0x5e, 0x30, 0x05, 0x5b, 0x8c, + 0x17, 0x7f, 0x25, 0x39, 0x12, 0x29, 0x75, 0x0a, 0x8d, 0x86, 0x6a, 0x4a, + 0x50, 0xa2, 0xb7, 0xdb, 0x69, 0xee, 0xfc, 0x98, 0xf3, 0x07, 0xe1, 0xe8, + 0xbc, 0x98, 0xdf, 0x6e, 0xee, 0x88, 0x99, 0x42, 0x0d, 0x19, 0x8a, 0xc6, + 0x54, 0x90, 0xdc, 0x91, 0xbe, 0xbb, 0x6f, 0xc1, 0x9e, 0xca, 0xd4, 0xed, + 0x56, 0xcb, 0x4e, 0x95, 0x72, 0xeb, 0x55, 0xde, 0x42, 0xeb, 0x4f, 0xdd, + 0xf3, 0x4a, 0xbd, 0xf2, 0x73, 0xe1, 0x7f, 0x12, 0x89, 0x37, 0x74, 0x5f, + 0x8b, 0x85, 0xb0, 0x9f, 0x1d, 0x99, 0x90, 0x3e, 0xd7, 0x1f, 0x93, 0xa4, + 0xeb, 0xb1, 0x1b, 0xc4, 0x8d, 0x18, 0x95, 0x18, 0x2b, 0xbc, 0xc3, 0xd0, + 0x0f, 0xa3, 0xde, 0xfd, 0x4e, 0xa7, 0x23, 0x99, 0x5e, 0x24, 0x49, 0x18, + 0xd4, 0x9d, 0x0f, 0x52, 0x1f, 0xe5, 0x63, 0xe5, 0x63, 0x9a, 0x10, 0x09, + 0xf4, 0x61, 0xeb, 0x39, 0x5e, 0x0c, 0x66, 0x9e, 0x4c, 0x88, 0x42, 0xdf, + 0x2a, 0x21, 0x6b, 0x3e, 0x5c, 0x44, 0x31, 0xd0, 0x3b, 0xf3, 0xd0, 0x0b, + 0x20, 0xfe, 0xfd, 0x0c, 0x0d, 0x2f, 0x98, 0x2f, 0x92, 0xba, 0x13, 0xce, + 0x13, 0x6a, 0xda, 0x79, 0xdd, 0x89, 0x85, 0x2f, 0x86, 0x48, 0x49, 0xc4, + 0x59, 0xe2, 0x46, 0xc2, 0x25, 0x1c, 0xb2, 0xe6, 0x46, 0xf4, 0xce, 0xd6, + 0x4f, 0x9c, 0xa3, 0xb9, 0x18, 0x7a, 0xe3, 0x73, 0xce, 0xd1, 0x19, 0x6e, + 0x30, 0x14, 0x4e, 0x38, 0x46, 0x5a, 0x34, 0x73, 0x80, 0x67, 0x26, 0xa0, + 0x7b, 0xce, 0x4f, 0xb6, 0x2c, 0x8a, 0x12, 0x5d, 0xf8, 0x49, 0x44, 0x63, + 0x3f, 0x3c, 0xed, 0x39, 0x9f, 0xbc, 0xd8, 0x83, 0x31, 0x60, 0x94, 0x8f, + 0x47, 0x23, 0x54, 0x2d, 0x76, 0xfe, 0xa0, 0xb3, 0xff, 0xe0, 0xa0, 0xa2, + 0x4e, 0x12, 0x3a, 0x7f, 0x98, 0x7a, 0xa3, 0x91, 0x08, 0xfe, 0x00, 0x42, + 0xce, 0x8b, 0x43, 0x67, 0x6f, 0xeb, 0xd1, 0x56, 0xbb, 0xb5, 0xd5, 0x6e, + 0x67, 0x71, 0xf7, 0x7a, 0x8d, 0x59, 0xf8, 0xb9, 0x31, 0x0e, 0x87, 0x8b, + 0xb8, 0xe1, 0x05, 0x81, 0x88, 0x0a, 0x32, 0x2c, 0x82, 0xe4, 0xa5, 0x5a, + 0x84, 0x28, 0xc8, 0xb9, 0x08, 0xe2, 0x5c, 0x14, 0xf4, 0xdf, 0x70, 0x65, + 0x80, 0x23, 0xe4, 0x6e, 0x96, 0xa5, 0x70, 0x91, 0x90, 0x82, 0x4b, 0x96, + 0xa8, 0x1f, 0x45, 0x23, 0x11, 0xe5, 0x18, 0xac, 0xf3, 0x10, 0x73, 0x6d, + 0x6d, 0x23, 0x02, 0xa6, 0xef, 0xba, 0x73, 0x98, 0x81, 0x08, 0x0a, 0x00, + 0x5a, 0x12, 0x05, 0x37, 0xe9, 0xd3, 0x30, 0x8a, 0xc4, 0x10, 0x6d, 0x38, + 0x15, 0x68, 0x3b, 0x17, 0xe3, 0x80, 0x97, 0x9c, 0x53, 0x8b, 0xb2, 0x6d, + 0x71, 0x86, 0xbe, 0x37, 0x3c, 0xa1, 0xc1, 0x80, 0x4d, 0x6f, 0x4c, 0xcd, + 0xeb, 0xbd, 0x39, 0xca, 0xb6, 0xaa, 0x56, 0x49, 0xa6, 0xc7, 0x6a, 0xd9, + 0x48, 0x40, 0x28, 0x26, 0x25, 0x23, 0x0b, 0x14, 0x48, 0xe5, 0x79, 0xe6, + 0x45, 0x30, 0x2a, 0x67, 0xce, 0x76, 0xeb, 0xab, 0xba, 0xf3, 0x82, 0x14, + 0x3d, 0x80, 0xee, 0x1c, 0x9e, 0xcd, 0xd1, 0xb5, 0x20, 0x8d, 0x76, 0xbb, + 0x01, 0xb4, 0x45, 0xd5, 0x2f, 0x2a, 0x7c, 0xc1, 0xd8, 0xc9, 0xde, 0xe9, + 0x30, 0xd1, 0x39, 0x20, 0x82, 0xc4, 0x92, 0x65, 0x83, 0x2b, 0x22, 0xf9, + 0xe0, 0x64, 0x86, 0xce, 0x59, 0xa9, 0xde, 0xc8, 0x8b, 0xa9, 0x96, 0xa3, + 0xfa, 0x0f, 0x7f, 0xf0, 0x41, 0xff, 0xfe, 0x28, 0x1b, 0x68, 0xee, 0x0e, + 0x21, 0x12, 0x34, 0x49, 0x73, 0x5b, 0x02, 0x37, 0x07, 0x49, 0x70, 0x7c, + 0x2c, 0xc7, 0x46, 0x55, 0x69, 0xd7, 0xf7, 0x26, 0x41, 0xc3, 0x4b, 0xc4, + 0x2c, 0xee, 0x39, 0x43, 0x41, 0x95, 0xb3, 0x59, 0x88, 0xdc, 0x91, 0xb7, + 0x88, 0x53, 0x9a, 0x86, 0x8d, 0x6c, 0x12, 0x08, 0xcf, 0x7d, 0x17, 0xa4, + 0xc6, 0xbe, 0x38, 0xa3, 0x14, 0xfe, 0xd1, 0x73, 0xda, 0x4e, 0xcb, 0x71, + 0x17, 0x49, 0xc8, 0x49, 0x7f, 0x5c, 0xc4, 0x09, 0xba, 0x75, 0x43, 0xd1, + 0x37, 0xe4, 0x8c, 0x41, 0xb7, 0xc1, 0xe7, 0x61, 0x0c, 0x27, 0x00, 0x4a, + 0x4e, 0xc3, 0x90, 0x9b, 0x78, 0x9f, 0x58, 0x08, 0x2c, 0x2b, 0x99, 0x41, + 0x15, 0xeb, 0xc6, 0xb0, 0x41, 0x03, 0x6f, 0xd8, 0x18, 0x88, 0xcf, 0x9e, + 0x88, 0xaa, 0xad, 0x66, 0x67, 0xa7, 0x8e, 0xf4, 0x3d, 0xfa, 0xc0, 0xaf, + 0x76, 0x8d, 0x0b, 0x9d, 0x4e, 0x51, 0xc3, 0x46, 0x0c, 0x81, 0xb0, 0x3c, + 0x4f, 0x23, 0x77, 0xce, 0xe9, 0xec, 0x6e, 0xa4, 0x55, 0x31, 0x42, 0xba, + 0x96, 0x6c, 0x76, 0xe7, 0x67, 0xb6, 0x10, 0x08, 0x1d, 0x5b, 0x7e, 0x29, + 0x0b, 0x43, 0xa5, 0xd3, 0x6e, 0x29, 0x48, 0x35, 0x26, 0x38, 0x5d, 0x2a, + 0x6a, 0xa4, 0xd5, 0x32, 0xd5, 0xb7, 0x87, 0x14, 0xa7, 0xbd, 0xcd, 0x60, + 0xd9, 0xa1, 0xc3, 0xd9, 0x69, 0xb5, 0xd6, 0x16, 0x2b, 0xe8, 0x38, 0x7b, + 0x0a, 0x89, 0x31, 0x25, 0x4e, 0x5b, 0xd3, 0x9f, 0x79, 0x41, 0x43, 0x71, + 0xb9, 0x47, 0x70, 0xb9, 0xfe, 0x9d, 0xf6, 0x8e, 0x91, 0x18, 0x86, 0x91, + 0x4b, 0xc2, 0x67, 0xb5, 0xbc, 0x59, 0x8b, 0xd4, 0xa5, 0x06, 0x39, 0xed, + 0x59, 0xbc, 0xaa, 0xa1, 0x61, 0xa8, 0x69, 0x60, 0xf3, 0x1b, 0xd4, 0x0c, + 0xc8, 0x9c, 0xc1, 0x4e, 0xc3, 0x9a, 0xdb, 0x96, 0x61, 0x11, 0xa3, 0x19, + 0x64, 0x27, 0x33, 0xfc, 0xd0, 0x1f, 0x59, 0xac, 0xf2, 0x5c, 0x95, 0x1d, + 0x97, 0xe7, 0xa6, 0x7f, 0x85, 0x5c, 0xa3, 0x1b, 0x8d, 0xc6, 0xc0, 0x0f, + 0x87, 0x27, 0x52, 0x45, 0x4c, 0xab, 0xdb, 0xae, 0xc6, 0x7e, 0x36, 0x8b, + 0xe9, 0x51, 0x13, 0xeb, 0xac, 0x7c, 0x87, 0x29, 0xfa, 0x2a, 0xaa, 0xfb, + 0xc8, 0x9c, 0xb4, 0xbc, 0x49, 0xb1, 0x9f, 0xd2, 0x66, 0x36, 0xca, 0x93, + 0xea, 0xdc, 0x5e, 0xeb, 0xc7, 0x19, 0x47, 0xc0, 0xb9, 0xff, 0xec, 0xd9, + 0x33, 0x4e, 0x49, 0xd5, 0x58, 0x67, 0x6c, 0x0f, 0xdd, 0xf1, 0x4e, 0xeb, + 0x9e, 0x37, 0x23, 0xff, 0xdc, 0x0d, 0xac, 0xde, 0xd0, 0x5c, 0xc0, 0x02, + 0x47, 0x43, 0x37, 0x66, 0xb7, 0xca, 0xe8, 0xf3, 0xae, 0xd4, 0xe7, 0xa2, + 0xe5, 0xd4, 0xf0, 0x59, 0xa9, 0x85, 0xb0, 0x8d, 0x33, 0x2d, 0x36, 0xf9, + 0x64, 0xba, 0x00, 0xfe, 0x22, 0xd6, 0x6b, 0xa3, 0x94, 0xb6, 0x66, 0xb8, + 0x83, 0x38, 0xf4, 0x17, 0x89, 0xc8, 0x54, 0x58, 0xab, 0xa6, 0xa5, 0xbf, + 0x26, 0x69, 0xaa, 0xbb, 0x89, 0x41, 0x27, 0x21, 0x4c, 0x4a, 0xc1, 0xad, + 0x2c, 0x74, 0xed, 0x9d, 0x54, 0x7c, 0x9f, 0x31, 0xf4, 0x8d, 0x48, 0xe6, + 0xdb, 0x39, 0x79, 0x8e, 0xc7, 0xda, 0xd5, 0x2a, 0xda, 0xf5, 0xfb, 0xe2, + 0x51, 0x5b, 0xec, 0x76, 0x8d, 0x4c, 0x33, 0x54, 0x96, 0x42, 0xa5, 0xec, + 0xfa, 0x7e, 0x03, 0xd3, 0xaa, 0x60, 0x22, 0x7a, 0xd2, 0x4d, 0x9d, 0xba, + 0xa3, 0xf0, 0x54, 0xe5, 0x9a, 0x04, 0xea, 0xc9, 0x5d, 0x74, 0xf0, 0x1d, + 0xfc, 0x6b, 0xb4, 0xf1, 0x11, 0x4d, 0x06, 0x6e, 0xb5, 0x55, 0xa7, 0xff, + 0x9a, 0x9d, 0x1a, 0xfa, 0x1d, 0xf7, 0x7f, 0xb2, 0x3e, 0xf8, 0x69, 0x67, + 0xb6, 0xb7, 0x39, 0xb7, 0x4d, 0xb9, 0x7b, 0xc5, 0xdc, 0x4e, 0x4d, 0xb6, + 0x1f, 0xcd, 0x60, 0x96, 0x9b, 0xc4, 0x55, 0xb6, 0xcf, 0x28, 0xb5, 0xf4, + 0x6f, 0xe1, 0xce, 0x2f, 0x22, 0x81, 0x8e, 0x95, 0xd0, 0x4c, 0x04, 0x28, + 0x1e, 0x02, 0x9f, 0xfb, 0x30, 0xd3, 0xf5, 0xae, 0x86, 0xb4, 0x4c, 0x63, + 0x07, 0xa6, 0xf1, 0x4a, 0x2b, 0x68, 0xfb, 0xe1, 0x4e, 0xfb, 0x46, 0x36, + 0xab, 0xcc, 0x22, 0xb1, 0xda, 0x2b, 0xb5, 0xb6, 0x04, 0xc5, 0x1f, 0x8d, + 0x06, 0x4d, 0xa0, 0x56, 0x38, 0xc9, 0x4d, 0x3d, 0x33, 0xe3, 0xe9, 0x57, + 0xdc, 0x9c, 0x8d, 0x50, 0x02, 0x0c, 0x52, 0x11, 0xad, 0x5c, 0xb2, 0x35, + 0x3a, 0x3b, 0xe0, 0x40, 0x7d, 0x30, 0x2f, 0x4b, 0x11, 0x8c, 0xdc, 0xe8, + 0xa4, 0x58, 0xbe, 0x55, 0x77, 0xe8, 0x7f, 0xae, 0x8f, 0x2a, 0x0b, 0x9f, + 0xe6, 0x1d, 0xbc, 0xa6, 0x57, 0xe1, 0xc8, 0xf5, 0x9d, 0xaa, 0xd1, 0xdb, + 0x1a, 0xfb, 0x31, 0xf7, 0x67, 0x9c, 0x7e, 0x91, 0xb5, 0xcd, 0x63, 0xef, + 0x4c, 0x8c, 0x50, 0xdc, 0xea, 0x0a, 0x6d, 0x7b, 0x3c, 0xc1, 0x64, 0x72, + 0x8e, 0xa4, 0x1d, 0x68, 0x19, 0x3b, 0x4d, 0x2f, 0xc3, 0x21, 0x0f, 0x14, + 0x70, 0xda, 0xc9, 0x45, 0x23, 0x7d, 0x05, 0x76, 0x6e, 0x0e, 0x31, 0x4e, + 0x74, 0x8f, 0xe3, 0x42, 0x2d, 0x7b, 0x94, 0x6c, 0xb7, 0x54, 0x9f, 0x93, + 0x0d, 0x96, 0x26, 0x18, 0xcf, 0x3e, 0xb5, 0x73, 0x99, 0x2e, 0x67, 0xaa, + 0x2c, 0xf5, 0xb7, 0x26, 0x5d, 0x37, 0xd7, 0xf7, 0x09, 0x48, 0x4a, 0x44, + 0x32, 0x50, 0x2c, 0x65, 0xab, 0x3d, 0x9c, 0x25, 0x59, 0xf4, 0x89, 0x4f, + 0xe5, 0x4e, 0xb7, 0xb4, 0x1f, 0xa5, 0x7d, 0xbc, 0x26, 0x8b, 0x47, 0x2b, + 0x9a, 0x71, 0x1d, 0x95, 0x56, 0x18, 0xc5, 0x2b, 0xb5, 0x08, 0x63, 0x41, + 0xff, 0x21, 0xb7, 0x68, 0xb5, 0x8d, 0x35, 0x22, 0x21, 0xe6, 0x35, 0x7d, + 0xbb, 0xd4, 0x09, 0xd8, 0x6d, 0x65, 0xbc, 0x6f, 0xee, 0xca, 0xb0, 0x94, + 0xde, 0xc8, 0xb9, 0xbf, 0xb7, 0xb7, 0xc7, 0x59, 0x66, 0x24, 0x90, 0x8d, + 0x8f, 0x1a, 0x10, 0xef, 0xae, 0xa7, 0x3c, 0x79, 0xe3, 0xab, 0xb5, 0x59, + 0xd6, 0x2b, 0x79, 0x53, 0x3d, 0x4e, 0x0a, 0x02, 0x1d, 0x3e, 0x5c, 0x40, + 0x02, 0xab, 0x3d, 0xc0, 0x36, 0x23, 0x49, 0x93, 0x1a, 0xe4, 0x7c, 0x59, + 0x4e, 0x58, 0xc1, 0x78, 0x1b, 0xcc, 0xcd, 0x28, 0x3c, 0x35, 0x1c, 0x36, + 0x46, 0x1e, 0xfc, 0x7d, 0xa9, 0x8c, 0xc8, 0x28, 0x40, 0x36, 0x23, 0x01, + 0x05, 0x89, 0xc5, 0xd2, 0x12, 0x0d, 0x05, 0x90, 0x2d, 0x89, 0x86, 0x59, + 0xcc, 0x82, 0xf2, 0x42, 0x32, 0xaf, 0x0c, 0x5e, 0x13, 0x5b, 0x55, 0x6e, + 0x25, 0xbd, 0x03, 0xa7, 0x49, 0xa5, 0x64, 0xf9, 0x99, 0x7b, 0xd6, 0xb0, + 0xd4, 0x3f, 0x5b, 0x80, 0xe4, 0x04, 0xb0, 0xac, 0xf8, 0xe8, 0x53, 0x81, + 0xc1, 0x49, 0xf9, 0xc4, 0x3d, 0xad, 0xd1, 0x25, 0xb0, 0xdc, 0xc8, 0x00, + 0x7d, 0xe8, 0xaa, 0x7f, 0x8d, 0x4e, 0x76, 0x6c, 0x68, 0xc9, 0xc1, 0x41, + 0xe5, 0x6e, 0xe3, 0x5f, 0x2b, 0x0f, 0xd0, 0xde, 0x96, 0x10, 0xac, 0x57, + 0x7b, 0xa5, 0x10, 0x9d, 0x9a, 0x63, 0x46, 0xae, 0x65, 0xba, 0xb8, 0xbb, + 0xbb, 0x5b, 0xe0, 0x76, 0xb7, 0x9c, 0x5b, 0x33, 0x92, 0x2d, 0xe1, 0x56, + 0x0d, 0x66, 0x57, 0xb2, 0xdb, 0x5e, 0x8f, 0xdf, 0x2c, 0x53, 0x8f, 0xca, + 0x99, 0xda, 0x51, 0x64, 0x1b, 0xdd, 0x3c, 0xbe, 0x9f, 0x2a, 0x8a, 0x8f, + 0x88, 0x22, 0x09, 0xb8, 0xc0, 0xf6, 0x8e, 0x25, 0xe4, 0x36, 0x21, 0x29, + 0x34, 0x43, 0x77, 0xa9, 0x08, 0xbb, 0xab, 0x45, 0xd8, 0xee, 0x94, 0xb3, + 0xfb, 0x53, 0xd5, 0x5a, 0x8d, 0xed, 0x52, 0x19, 0xa6, 0xac, 0x12, 0x5c, + 0x67, 0xa9, 0x10, 0x77, 0x28, 0x97, 0xb2, 0xb7, 0xaf, 0x29, 0xc4, 0xf6, + 0x4e, 0x39, 0x5b, 0x7b, 0x4a, 0x4e, 0x8d, 0x9d, 0xa5, 0x6c, 0x49, 0x9a, + 0x2b, 0xd9, 0x62, 0x11, 0x12, 0xaa, 0x9d, 0xb5, 0xd8, 0xa2, 0x4e, 0x53, + 0x27, 0x9b, 0x37, 0xf5, 0xfc, 0x11, 0xfb, 0x25, 0xe8, 0x7b, 0xb4, 0xec, + 0x58, 0x34, 0x51, 0x4b, 0xbb, 0xe2, 0xfd, 0x24, 0x0c, 0x31, 0x8c, 0x48, + 0x73, 0x69, 0x7c, 0x07, 0x33, 0x09, 0x2a, 0xd6, 0x95, 0xe5, 0xb6, 0x5c, + 0x8d, 0x55, 0xee, 0xce, 0xd5, 0x5a, 0xdc, 0x5a, 0xa2, 0xc5, 0xab, 0xa6, + 0x4e, 0xd9, 0x0a, 0x64, 0x3d, 0xc9, 0x74, 0xbc, 0xa6, 0x61, 0xb8, 0x9e, + 0x3e, 0x91, 0xf3, 0xad, 0x45, 0xa6, 0x6a, 0xbb, 0xe6, 0x4a, 0x41, 0xd1, + 0xf2, 0x1b, 0xaf, 0x9a, 0x47, 0x8b, 0x3c, 0x56, 0xde, 0x3f, 0x00, 0xce, + 0x9c, 0x27, 0xd7, 0x5a, 0x35, 0xc9, 0xf5, 0x45, 0x02, 0x7a, 0x3c, 0x83, + 0x97, 0x98, 0x9b, 0xad, 0x8e, 0x98, 0xad, 0x9c, 0xdb, 0x1b, 0x77, 0x41, + 0xae, 0xf0, 0x99, 0x99, 0x8a, 0xc9, 0x11, 0xbe, 0xef, 0xcd, 0x63, 0x2f, + 0x2e, 0x65, 0xb1, 0x17, 0x84, 0x49, 0xb5, 0x37, 0xf6, 0xa2, 0x38, 0x69, + 0xb0, 0xf6, 0xd4, 0x9c, 0x0b, 0x33, 0x36, 0xb2, 0xfc, 0x24, 0xdb, 0x4a, + 0x49, 0xc6, 0x61, 0x08, 0x1e, 0x4b, 0x56, 0x9e, 0x8b, 0x9e, 0x81, 0x99, + 0xd3, 0x95, 0x65, 0x96, 0xcb, 0xfa, 0xb6, 0xa7, 0x9b, 0xa9, 0xee, 0x64, + 0x54, 0xc7, 0xb4, 0x1e, 0x1b, 0x2b, 0xd3, 0x9d, 0x96, 0x4e, 0x52, 0xad, + 0x29, 0xa3, 0xa9, 0x9a, 0xce, 0x53, 0x5d, 0xab, 0x00, 0xb2, 0x34, 0xdb, + 0xcc, 0xe7, 0x0a, 0x8b, 0x24, 0x86, 0xb8, 0xdd, 0x03, 0x9b, 0x9d, 0x9c, + 0xf3, 0xde, 0xdc, 0xe6, 0x79, 0x4f, 0xbd, 0x5d, 0x53, 0xa5, 0xd6, 0x87, + 0x66, 0xef, 0xe8, 0x67, 0x33, 0x31, 0xf2, 0x5c, 0x27, 0x0c, 0xfc, 0x73, + 0x27, 0x1e, 0x46, 0x42, 0x04, 0x8e, 0x1b, 0x8c, 0x9c, 0xaa, 0xe5, 0xa6, + 0x3c, 0xa2, 0x99, 0xaf, 0xd2, 0x86, 0xbc, 0x33, 0x95, 0x31, 0x21, 0x8f, + 0x5a, 0x5a, 0xab, 0x2f, 0x81, 0x7d, 0x2d, 0xdc, 0xed, 0xce, 0xee, 0xf6, + 0x7a, 0xc8, 0xdb, 0xed, 0xbd, 0x9d, 0x6b, 0x63, 0x7f, 0xd4, 0x5a, 0x17, + 0xfb, 0x4f, 0xd7, 0xc5, 0x6e, 0x55, 0x77, 0xe7, 0x51, 0x39, 0xf2, 0xa2, + 0x62, 0x15, 0x11, 0xc3, 0x53, 0x2f, 0xb0, 0xdb, 0xd2, 0xc8, 0x48, 0x5f, + 0x9a, 0x67, 0x71, 0x5b, 0x3e, 0x2a, 0x57, 0x68, 0xe0, 0xa2, 0xeb, 0xc2, + 0xb3, 0x6d, 0x76, 0x33, 0x7f, 0x9d, 0x1f, 0xef, 0x5b, 0x40, 0x93, 0x88, + 0x4d, 0xf2, 0x7e, 0xae, 0x82, 0x4b, 0x8b, 0x5d, 0xda, 0xf4, 0x3a, 0x45, + 0x7a, 0xc4, 0x7e, 0x73, 0x37, 0xf3, 0xb7, 0xbd, 0x1e, 0xc1, 0x62, 0xb9, + 0x12, 0x8a, 0xdd, 0x32, 0x8a, 0x9d, 0x9d, 0xf5, 0x28, 0x00, 0xae, 0x88, + 0x71, 0xbb, 0x0c, 0x63, 0xb7, 0x9b, 0xab, 0xfd, 0x7a, 0x04, 0x8a, 0xc5, + 0x8a, 0xf4, 0x76, 0xca, 0xe8, 0x6d, 0xb7, 0xb3, 0x75, 0xff, 0xe9, 0x7a, + 0xf4, 0x8a, 0xc5, 0x8a, 0xf4, 0x76, 0xcb, 0xe8, 0xed, 0xb4, 0xd6, 0x23, + 0x00, 0xb8, 0x22, 0xc6, 0x9f, 0x96, 0x62, 0xcc, 0xeb, 0xcb, 0xee, 0x9a, + 0x14, 0x8a, 0xe5, 0x8a, 0x14, 0xf7, 0xca, 0x28, 0xee, 0xe6, 0xf4, 0x65, + 0x4d, 0x82, 0xc5, 0x62, 0x45, 0x7a, 0x8f, 0xca, 0xe8, 0xfd, 0x74, 0x4d, + 0x2d, 0xfb, 0x69, 0x99, 0x96, 0xb5, 0x5b, 0xa5, 0x5d, 0x33, 0xa7, 0x2f, + 0x6b, 0xf6, 0x94, 0x42, 0xb1, 0x32, 0x82, 0xa5, 0xb6, 0xe0, 0x51, 0xfb, + 0x46, 0x32, 0x7b, 0xd4, 0xbe, 0x5a, 0x66, 0xed, 0x72, 0x63, 0xd0, 0x5a, + 0x53, 0xd3, 0x08, 0x70, 0x3d, 0xa3, 0xb7, 0x4b, 0x83, 0x46, 0xc6, 0xf0, + 0xc5, 0xb3, 0xcd, 0x1a, 0xbe, 0x78, 0xb6, 0x69, 0xc3, 0x17, 0xcf, 0x6e, + 0xdb, 0xf0, 0xc5, 0xb3, 0xcd, 0x1a, 0xbe, 0x78, 0xb6, 0x59, 0xc3, 0x17, + 0xcf, 0x6e, 0xdb, 0xf0, 0xc5, 0xb3, 0x4d, 0x1b, 0xbe, 0x78, 0xb6, 0x59, + 0xc3, 0x17, 0xcf, 0x6e, 0xdb, 0xf0, 0xc5, 0xb3, 0x0d, 0x1b, 0xbe, 0x78, + 0xb6, 0x61, 0xc3, 0x17, 0xcf, 0x36, 0x66, 0xf8, 0xb4, 0x5b, 0x6d, 0x88, + 0xcf, 0x46, 0x9b, 0x35, 0x7c, 0xb3, 0xd1, 0xa6, 0x0d, 0xdf, 0x6c, 0x74, + 0xdb, 0x86, 0x6f, 0x36, 0xda, 0xac, 0xe1, 0x9b, 0x8d, 0x36, 0x6b, 0xf8, + 0x66, 0xa3, 0xdb, 0x36, 0x7c, 0xb3, 0xd1, 0xa6, 0x0d, 0xdf, 0x6c, 0xb4, + 0x59, 0xc3, 0x37, 0x1b, 0xdd, 0xb6, 0xe1, 0x9b, 0x8d, 0x36, 0x6c, 0xf8, + 0x66, 0xa3, 0x0d, 0x1b, 0xbe, 0xd9, 0x68, 0x63, 0x86, 0x2f, 0x9d, 0xf3, + 0x1b, 0xea, 0xfe, 0x64, 0xb3, 0x96, 0xcf, 0x9f, 0x6c, 0xda, 0xf2, 0xf9, + 0x93, 0xdb, 0xb6, 0x7c, 0xfe, 0x64, 0xb3, 0x96, 0xcf, 0x9f, 0x6c, 0xd6, + 0xf2, 0xf9, 0x93, 0xdb, 0xb6, 0x7c, 0xfe, 0x64, 0xd3, 0x96, 0xcf, 0x9f, + 0x6c, 0xd6, 0xf2, 0xf9, 0x93, 0xdb, 0xb6, 0x7c, 0xfe, 0x64, 0xc3, 0x96, + 0xcf, 0x9f, 0x6c, 0xd8, 0xf2, 0xf9, 0x93, 0xcd, 0x59, 0xbe, 0x74, 0x3d, + 0xd2, 0xcc, 0xb4, 0xfd, 0xcd, 0x5a, 0xbe, 0x33, 0x7f, 0xd3, 0x96, 0xef, + 0xcc, 0xbf, 0x6d, 0xcb, 0x77, 0xe6, 0x6f, 0xd6, 0xf2, 0x9d, 0xf9, 0x9b, + 0xb5, 0x7c, 0x67, 0xfe, 0x6d, 0x5b, 0xbe, 0x33, 0x7f, 0xd3, 0x96, 0xef, + 0xcc, 0xdf, 0xac, 0xe5, 0x3b, 0xf3, 0x6f, 0xdb, 0xf2, 0x9d, 0xf9, 0x1b, + 0xb6, 0x7c, 0x67, 0xfe, 0x86, 0x2d, 0xdf, 0x99, 0x7f, 0x27, 0x96, 0x6f, + 0xd5, 0x9e, 0xc9, 0xce, 0x23, 0x6b, 0xcf, 0x44, 0xee, 0x54, 0x36, 0xce, + 0xe2, 0x06, 0x15, 0xc9, 0x85, 0x98, 0xca, 0xdd, 0x66, 0x7b, 0x87, 0xdb, + 0x10, 0x6a, 0xd2, 0xfe, 0xa7, 0xdc, 0x6a, 0xc9, 0xb0, 0xd8, 0x2e, 0x6c, + 0x88, 0x2b, 0x1a, 0xa5, 0xb8, 0x25, 0x04, 0x07, 0x6f, 0xb9, 0xb4, 0x55, + 0x83, 0x93, 0x18, 0x32, 0xe0, 0xff, 0x27, 0x5b, 0xb4, 0x83, 0xee, 0x45, + 0x43, 0x1c, 0x1a, 0xa2, 0x83, 0x5e, 0xc9, 0xf1, 0xb1, 0x7c, 0x52, 0x5b, + 0xc3, 0x81, 0x37, 0x53, 0x51, 0xc1, 0x36, 0x50, 0x63, 0xec, 0xc1, 0xe4, + 0x63, 0xc7, 0x4d, 0x06, 0xc2, 0xc8, 0x60, 0x7a, 0x3a, 0x58, 0xe1, 0x50, + 0x21, 0x2b, 0x5e, 0x34, 0x0a, 0x13, 0x04, 0xb3, 0x55, 0x1b, 0x8f, 0x5a, + 0x23, 0x31, 0x91, 0xd1, 0x57, 0x9d, 0xba, 0xd3, 0x05, 0x64, 0x06, 0xb0, + 0x11, 0x62, 0x97, 0xda, 0x4b, 0xf7, 0x4a, 0x19, 0x6e, 0x5b, 0x86, 0x65, + 0x15, 0xd8, 0xf3, 0x82, 0x71, 0xb8, 0x8a, 0x39, 0x7d, 0xac, 0x80, 0xd8, + 0x03, 0xee, 0x53, 0x37, 0x1a, 0xc5, 0xfb, 0xd9, 0xa8, 0xf9, 0xfd, 0x2c, + 0x97, 0xf2, 0xa7, 0x0f, 0x46, 0x7f, 0x5b, 0x45, 0xcc, 0x86, 0x98, 0xa9, + 0x1d, 0xc3, 0x9f, 0x9d, 0x88, 0xf3, 0x71, 0x84, 0xd3, 0x68, 0x71, 0xb1, + 0xf2, 0x2a, 0x60, 0x00, 0x9c, 0xe0, 0x54, 0x42, 0x14, 0x9e, 0x08, 0xc4, + 0xe8, 0xc5, 0xc8, 0x8d, 0x5c, 0x22, 0x40, 0xda, 0xb2, 0xef, 0x5c, 0x16, + 0xb0, 0x14, 0xb9, 0xd4, 0x78, 0xe4, 0x77, 0xca, 0xa4, 0x0e, 0xc1, 0x5b, + 0xca, 0x66, 0xcd, 0x52, 0x11, 0x3a, 0x58, 0x13, 0x20, 0x20, 0x8d, 0xe2, + 0x18, 0xb6, 0x9c, 0x77, 0xa1, 0x1b, 0x27, 0x32, 0xdc, 0x2f, 0xe6, 0x54, + 0x45, 0x84, 0x4f, 0xcd, 0xc8, 0xb3, 0x14, 0x99, 0x8d, 0x73, 0x6b, 0xcc, + 0xee, 0x70, 0x78, 0x5a, 0x61, 0x27, 0x1c, 0xd1, 0x28, 0xd8, 0x30, 0x5c, + 0x16, 0xf7, 0x86, 0xfe, 0x8d, 0xac, 0x62, 0xd8, 0xac, 0x89, 0x9c, 0x5b, + 0x15, 0x62, 0xdf, 0x61, 0xc4, 0xf9, 0x2d, 0xc4, 0x35, 0x03, 0x14, 0x89, + 0x3d, 0x1e, 0x03, 0x4c, 0xc4, 0x61, 0xb7, 0x24, 0xc0, 0xae, 0xfd, 0x53, + 0xb5, 0x93, 0x6f, 0x24, 0xd2, 0xc4, 0x19, 0xc1, 0xd3, 0x6e, 0xab, 0xd5, + 0x2a, 0x88, 0x46, 0xfe, 0xce, 0x85, 0xa3, 0x5b, 0x9a, 0x36, 0x76, 0x47, + 0xc2, 0x0b, 0x28, 0x7a, 0x34, 0xae, 0xf3, 0x03, 0x22, 0xb9, 0xf8, 0xc9, + 0xe9, 0xe0, 0x83, 0x4b, 0x5d, 0x07, 0xba, 0xc0, 0xd4, 0xce, 0xed, 0x32, + 0xb5, 0x7d, 0x2d, 0xa6, 0xb6, 0x97, 0x30, 0xd5, 0xbe, 0x65, 0xae, 0xda, + 0xd7, 0x63, 0x8b, 0xc1, 0x55, 0x9f, 0xd4, 0x74, 0xd2, 0x5e, 0xa5, 0xca, + 0x29, 0x03, 0x19, 0x51, 0x20, 0xba, 0x8a, 0x3d, 0xb5, 0x7b, 0xfc, 0xa5, + 0xee, 0x66, 0x46, 0x4b, 0xec, 0xbe, 0xa6, 0xba, 0xea, 0x9d, 0x20, 0x2d, + 0x70, 0xac, 0x2b, 0x67, 0xb0, 0x2f, 0xc1, 0x60, 0x08, 0x14, 0x89, 0x6b, + 0xec, 0x77, 0x82, 0x15, 0x16, 0xe5, 0x2d, 0x75, 0x72, 0x31, 0x72, 0xe2, + 0x53, 0x2f, 0x19, 0x4e, 0x9d, 0x06, 0xe2, 0xbf, 0xe3, 0x04, 0x27, 0x88, + 0x29, 0xea, 0x77, 0x38, 0x15, 0xc3, 0x13, 0x1d, 0xf6, 0xdb, 0x54, 0x10, + 0x17, 0xcb, 0xc2, 0x96, 0x8a, 0x41, 0xe4, 0xf2, 0x9c, 0x45, 0xb6, 0xdf, + 0x67, 0x2d, 0x8f, 0x79, 0xd6, 0x5e, 0x51, 0xe1, 0x84, 0x8d, 0x8a, 0x3f, + 0x4a, 0x19, 0x90, 0x47, 0xb3, 0x9c, 0xdc, 0x01, 0x29, 0x1b, 0x47, 0x2b, + 0x83, 0xa0, 0xa5, 0x4b, 0x23, 0x08, 0x4f, 0x8e, 0xaf, 0xcb, 0x8e, 0x25, + 0x14, 0xe3, 0xbc, 0x4d, 0x7c, 0x73, 0x3e, 0xec, 0x39, 0x32, 0xc8, 0xcd, + 0x51, 0x88, 0xd6, 0x32, 0xdb, 0x39, 0x18, 0x0c, 0x90, 0xb5, 0x24, 0xfc, + 0x65, 0x5b, 0xf6, 0x90, 0x62, 0x9a, 0xe1, 0x5a, 0x9d, 0x89, 0x5d, 0xc9, + 0x7c, 0x1a, 0x37, 0x5f, 0xa9, 0x64, 0xea, 0xdf, 0xd9, 0xb5, 0x25, 0xac, + 0x9e, 0x4d, 0x75, 0xa4, 0x78, 0x4d, 0x1d, 0xb6, 0x97, 0x8d, 0x00, 0x32, + 0x4c, 0xeb, 0x66, 0xd5, 0xd8, 0xfa, 0x89, 0x6c, 0xb5, 0x1e, 0x6b, 0x14, + 0xb4, 0xed, 0x2b, 0x27, 0x6d, 0x8f, 0x25, 0x22, 0xeb, 0xb4, 0x1f, 0xed, + 0x3e, 0xeb, 0xca, 0xe2, 0xb2, 0x2c, 0x9f, 0x5f, 0x34, 0x25, 0x4b, 0x22, + 0x14, 0xe5, 0x49, 0x08, 0xbb, 0x2c, 0x29, 0x6e, 0x91, 0x72, 0x51, 0xa6, + 0xa6, 0x46, 0xc5, 0x51, 0xf8, 0x37, 0x55, 0x12, 0x59, 0x4d, 0xd6, 0x7c, + 0x16, 0x5f, 0x09, 0xb3, 0x3a, 0xdf, 0x34, 0x6a, 0x93, 0x2b, 0x0c, 0xfa, + 0xf9, 0xd1, 0x52, 0x29, 0x7d, 0x11, 0x36, 0xc3, 0x72, 0xf1, 0xa0, 0x8b, + 0x2a, 0x01, 0x29, 0xa1, 0x25, 0xd5, 0xd9, 0xa7, 0x15, 0xdd, 0x35, 0x7b, + 0x64, 0xd9, 0xe1, 0xe3, 0xc7, 0x99, 0xd8, 0xd5, 0x8e, 0x89, 0x5d, 0x75, + 0x5d, 0x77, 0xd5, 0xc1, 0x39, 0x13, 0xf7, 0x8e, 0x04, 0xd3, 0x64, 0xea, + 0x50, 0x28, 0x37, 0xa9, 0x3e, 0x13, 0xba, 0x12, 0xfd, 0x52, 0x02, 0xa9, + 0xa7, 0x92, 0x2a, 0x6d, 0xaa, 0x58, 0x8c, 0x5d, 0x5b, 0x1e, 0xe9, 0x0f, + 0x71, 0x52, 0x43, 0x25, 0x65, 0x4f, 0xdf, 0x6e, 0xb3, 0x7d, 0x29, 0x2a, + 0x0e, 0x85, 0xb6, 0x32, 0x1f, 0x4b, 0x6a, 0xda, 0x56, 0x51, 0x82, 0x79, + 0xec, 0x3d, 0xd5, 0x26, 0x17, 0x99, 0x2e, 0xf8, 0xf0, 0x15, 0x22, 0x14, + 0x1d, 0xd9, 0x74, 0x31, 0x99, 0x60, 0x19, 0xba, 0xe9, 0x3c, 0x65, 0x5e, + 0xf1, 0x3f, 0xfb, 0x49, 0x4e, 0xb0, 0x98, 0x0d, 0x08, 0x60, 0x20, 0x92, + 0x53, 0x9a, 0x59, 0xb4, 0x00, 0x4a, 0x67, 0x44, 0xd0, 0x59, 0xe8, 0xc4, + 0x85, 0xca, 0x87, 0x5f, 0x24, 0xfc, 0x51, 0xfc, 0x30, 0xef, 0x7d, 0xd9, + 0x0e, 0x58, 0xa6, 0x2a, 0xdb, 0x54, 0x95, 0x2e, 0xff, 0xa5, 0x52, 0xf2, + 0xdd, 0x81, 0xf0, 0xe5, 0x71, 0x6b, 0xfe, 0x99, 0x95, 0xca, 0x5e, 0xd6, + 0x44, 0xa4, 0xee, 0x61, 0xd1, 0xb7, 0xcb, 0x30, 0xf1, 0xf8, 0xf1, 0x63, + 0xcb, 0x96, 0x73, 0x8b, 0x96, 0x6a, 0x49, 0x51, 0xe4, 0x34, 0xca, 0x88, + 0x84, 0xb9, 0xed, 0x18, 0x6e, 0x0b, 0xaa, 0x23, 0x05, 0x80, 0xe3, 0xc5, + 0x92, 0xe7, 0xa5, 0x43, 0x8c, 0xae, 0xa6, 0x96, 0x18, 0xa3, 0x90, 0xa3, + 0x96, 0x6e, 0x84, 0x22, 0xd6, 0x8b, 0x35, 0x6a, 0xd8, 0x6e, 0xb7, 0x8b, + 0xa3, 0x93, 0x91, 0x1c, 0xd7, 0x2d, 0x3d, 0x9d, 0x55, 0xb0, 0x9c, 0x85, + 0x73, 0xc1, 0x66, 0xd4, 0xe3, 0xb0, 0x53, 0x6a, 0xab, 0xec, 0x59, 0x4d, + 0x39, 0x8b, 0x5b, 0xd1, 0x0b, 0x97, 0x77, 0xc4, 0xbc, 0xf5, 0x55, 0x20, + 0x4e, 0x8b, 0x22, 0x26, 0x85, 0x1b, 0x17, 0xa2, 0x9c, 0x8d, 0xf4, 0x5b, + 0xfc, 0x47, 0x42, 0x5c, 0x29, 0x30, 0x69, 0x81, 0x2f, 0x96, 0x30, 0xb7, + 0xd3, 0xda, 0x1b, 0x8e, 0x87, 0xb9, 0x6e, 0x19, 0xb1, 0xda, 0x2b, 0x94, + 0x4b, 0x1b, 0x84, 0xa1, 0x3e, 0x5e, 0x98, 0x51, 0x2b, 0xd5, 0xc8, 0x62, + 0x37, 0x5c, 0x2a, 0x2f, 0x6b, 0xfe, 0xbe, 0xbc, 0xa6, 0xdb, 0xfc, 0x57, + 0x97, 0xea, 0x97, 0x4f, 0x26, 0xde, 0x57, 0x31, 0x58, 0x2f, 0x26, 0xf5, + 0x7a, 0x7a, 0xe4, 0x90, 0xa5, 0x1a, 0xc9, 0x14, 0xb2, 0xe2, 0x9a, 0xa4, + 0x87, 0xde, 0x6d, 0x26, 0x35, 0x74, 0x49, 0xe6, 0xa5, 0xc3, 0x72, 0x53, + 0x83, 0x1b, 0xe3, 0xc9, 0x08, 0xec, 0x5a, 0xc4, 0xd3, 0xc1, 0xbf, 0x95, + 0x1b, 0xfc, 0xb7, 0xcb, 0xe4, 0x4a, 0x70, 0x3f, 0x2e, 0xf3, 0x80, 0x0a, + 0xfa, 0x7c, 0x7f, 0xc8, 0x7f, 0xcb, 0x14, 0x54, 0xf0, 0x5f, 0xa9, 0xf8, + 0xb7, 0xd7, 0x14, 0xff, 0xfd, 0x01, 0xbb, 0x56, 0xaa, 0xcb, 0x7f, 0x80, + 0x6d, 0xed, 0xcb, 0x14, 0x33, 0x7e, 0x14, 0x9d, 0x85, 0x54, 0x7b, 0xef, + 0xc7, 0x73, 0x81, 0x41, 0xde, 0x2e, 0xcd, 0x29, 0x6b, 0x15, 0xde, 0xfa, + 0x89, 0x32, 0xd0, 0xef, 0x71, 0x57, 0x8a, 0x6f, 0x0d, 0x25, 0xc7, 0xa7, + 0x94, 0x70, 0x3c, 0x74, 0x83, 0x4f, 0x6e, 0xac, 0x31, 0x95, 0x1f, 0x3f, + 0x2e, 0xe8, 0xa1, 0x49, 0xd9, 0x4e, 0x43, 0x89, 0x2d, 0x2b, 0x66, 0x3c, + 0xe4, 0xab, 0x0f, 0x45, 0xa7, 0x4e, 0x8a, 0x3b, 0x6f, 0x4c, 0x21, 0x12, + 0x3e, 0x6e, 0xd8, 0x28, 0x3f, 0x29, 0x48, 0xae, 0xc6, 0xf2, 0x73, 0xd4, + 0x4a, 0xd3, 0xed, 0xca, 0xf9, 0x62, 0x22, 0xb4, 0x37, 0x62, 0xd4, 0xa5, + 0xfb, 0xe3, 0xdc, 0x61, 0xdc, 0x6d, 0x6d, 0x69, 0x8a, 0xa3, 0xc0, 0x2a, + 0xf7, 0x7f, 0x49, 0x30, 0x7f, 0x41, 0xe1, 0x32, 0x83, 0xbd, 0x3a, 0x90, + 0xd8, 0xdc, 0x89, 0xc4, 0xac, 0xcc, 0x0b, 0x68, 0x99, 0x1c, 0x7b, 0x82, + 0xd1, 0xdc, 0x33, 0xa9, 0x45, 0xf3, 0xbe, 0xca, 0xcf, 0xb8, 0xb4, 0xee, + 0xb7, 0xd9, 0xd2, 0x17, 0xdc, 0xc8, 0x27, 0xeb, 0x52, 0xa5, 0xaf, 0xe9, + 0xde, 0x98, 0x03, 0x0b, 0x74, 0xe4, 0x7d, 0x72, 0xbc, 0x11, 0x6e, 0xc7, + 0xc0, 0x82, 0x1d, 0x24, 0x7d, 0x8c, 0xa5, 0xa8, 0x00, 0xac, 0x54, 0xe4, + 0x3d, 0x16, 0xfd, 0x8a, 0x16, 0x0b, 0x49, 0xbe, 0xa2, 0x0a, 0xa6, 0x85, + 0xa7, 0xed, 0x03, 0x05, 0x0f, 0x22, 0xed, 0x7c, 0xee, 0xfc, 0xe0, 0x95, + 0x37, 0x8c, 0xc2, 0x38, 0x1c, 0x27, 0x2f, 0x0e, 0xbf, 0xde, 0x9a, 0xdb, + 0x64, 0xb7, 0x40, 0xb7, 0x8c, 0x0d, 0x3e, 0xdd, 0xa8, 0xe9, 0x64, 0x72, + 0x87, 0xbe, 0x1b, 0xc7, 0x0c, 0x60, 0x8e, 0x3f, 0x6a, 0xc0, 0x0c, 0x70, + 0xfc, 0x69, 0xe2, 0xd0, 0x45, 0x4f, 0xe8, 0xc4, 0xfd, 0x0a, 0xba, 0x29, + 0x6d, 0x28, 0xec, 0x75, 0x5b, 0x8f, 0xf6, 0xf6, 0x76, 0x3b, 0xf6, 0xef, + 0x8a, 0x54, 0x94, 0x7e, 0xa5, 0xd3, 0x6a, 0x55, 0x94, 0x8e, 0xa8, 0x87, + 0xb3, 0x99, 0x1f, 0xc4, 0xf2, 0xa6, 0x21, 0x5c, 0x34, 0x74, 0x7a, 0x7a, + 0xda, 0x3c, 0xed, 0x36, 0xc3, 0x68, 0xb2, 0x85, 0xdc, 0xd6, 0x16, 0x08, + 0x68, 0xc2, 0x05, 0xe2, 0x72, 0xf5, 0x4c, 0x2d, 0xb7, 0xf5, 0x2b, 0xf7, + 0xc5, 0x98, 0xfe, 0xab, 0xe8, 0xf5, 0x37, 0x45, 0x11, 0xb4, 0x69, 0x7d, + 0xae, 0x5f, 0x61, 0xa9, 0x3a, 0x43, 0x30, 0x8a, 0x8d, 0x9b, 0x47, 0xed, + 0x9d, 0xed, 0x47, 0xdb, 0xdd, 0x36, 0x12, 0xce, 0x73, 0x09, 0x11, 0x9e, + 0x77, 0xac, 0xe7, 0xad, 0xd5, 0xf4, 0x59, 0x94, 0x74, 0x08, 0x1e, 0x32, + 0x72, 0x27, 0x58, 0xf6, 0x23, 0x32, 0x5a, 0x82, 0x65, 0x0b, 0xa9, 0x15, + 0xc3, 0x71, 0xab, 0xe5, 0x0e, 0x87, 0xed, 0x22, 0xc7, 0xf9, 0x25, 0x44, + 0x62, 0xb1, 0x55, 0x87, 0xa5, 0x48, 0x73, 0xa8, 0xdb, 0xe0, 0x0a, 0xac, + 0x7e, 0x85, 0x4d, 0xd4, 0x9d, 0x55, 0x71, 0xa2, 0x2b, 0x52, 0x5c, 0x72, + 0xd5, 0xcd, 0x52, 0x5a, 0x8e, 0xba, 0x53, 0x56, 0x30, 0xe0, 0x2b, 0xcf, + 0xd6, 0x39, 0x73, 0xb1, 0x53, 0x91, 0x67, 0x60, 0x66, 0x00, 0xa3, 0x45, + 0x78, 0x41, 0x55, 0x03, 0x41, 0x3c, 0x46, 0x50, 0x4f, 0xd5, 0x33, 0x83, + 0xe1, 0x34, 0x04, 0xd7, 0xf2, 0x66, 0x88, 0x4a, 0xba, 0x98, 0x07, 0x40, + 0x5c, 0x40, 0xd6, 0x6e, 0xfd, 0xf8, 0xeb, 0x2d, 0x82, 0x5b, 0x8b, 0xa5, + 0x8c, 0x56, 0x97, 0x72, 0xd5, 0x69, 0x7d, 0x31, 0x57, 0x9d, 0xca, 0xc1, + 0x4a, 0x96, 0xbe, 0xde, 0x9a, 0x94, 0xf5, 0x27, 0xd2, 0x77, 0x93, 0x6e, + 0xba, 0xef, 0x3a, 0xdd, 0x59, 0x2f, 0xd0, 0x81, 0xf2, 0x32, 0x90, 0xf4, + 0xa0, 0xc6, 0x7a, 0x26, 0x27, 0x70, 0x65, 0x31, 0x79, 0x58, 0xca, 0x14, + 0xb2, 0xad, 0x2e, 0x0d, 0x55, 0xd9, 0xa3, 0x65, 0xd9, 0x34, 0x32, 0xc1, + 0x2a, 0x69, 0xd9, 0xd2, 0x35, 0xcd, 0x77, 0x35, 0xed, 0x65, 0xa6, 0x28, + 0x7f, 0x50, 0x2d, 0xe5, 0x45, 0x8d, 0x37, 0x14, 0x55, 0xa3, 0x71, 0xac, + 0x85, 0x87, 0xce, 0x7d, 0xa1, 0xc6, 0x74, 0xb7, 0x1c, 0x8b, 0x6b, 0x8d, + 0xb2, 0xbc, 0xf1, 0x92, 0x8a, 0xb7, 0x2c, 0x67, 0x25, 0x26, 0x00, 0x05, + 0xba, 0x15, 0xd0, 0x79, 0x13, 0x31, 0x4a, 0xcd, 0x84, 0x1c, 0xe9, 0x50, + 0xde, 0x73, 0x5c, 0xcc, 0xae, 0x1b, 0xf2, 0x19, 0xdc, 0x46, 0x0b, 0x63, + 0x4b, 0xb2, 0xb7, 0x00, 0x54, 0x0e, 0x4e, 0xbd, 0xb1, 0xf7, 0xf5, 0x96, + 0x77, 0xf0, 0x20, 0x18, 0xc4, 0xf3, 0x7d, 0xf9, 0xc9, 0x44, 0x74, 0x81, + 0xec, 0x16, 0x53, 0xe5, 0x80, 0xaa, 0x8c, 0xca, 0x12, 0xc8, 0x81, 0x64, + 0xe7, 0x20, 0x65, 0x45, 0x25, 0xcb, 0xaf, 0x2b, 0x6b, 0x00, 0xad, 0x49, + 0x4b, 0x5e, 0x93, 0xeb, 0x18, 0x9d, 0xca, 0xf5, 0x8f, 0x89, 0xf9, 0xe3, + 0x70, 0x3c, 0xfe, 0xd2, 0x0a, 0x80, 0x93, 0x1b, 0xd6, 0x01, 0xea, 0xc9, + 0xf3, 0x1f, 0x69, 0x0b, 0xf2, 0x4d, 0xb1, 0x2e, 0x16, 0x49, 0x9c, 0xf0, + 0x60, 0x7d, 0xc4, 0xf3, 0xcb, 0xda, 0x54, 0x5d, 0x59, 0x16, 0x06, 0x4f, + 0xe9, 0x9e, 0x2a, 0xdc, 0x82, 0x18, 0x1f, 0x47, 0x42, 0x95, 0xab, 0xd6, + 0x48, 0x7c, 0xcb, 0x64, 0x45, 0x07, 0xe6, 0x30, 0x23, 0x14, 0xa7, 0x46, + 0x4a, 0xb2, 0xd6, 0x69, 0xf9, 0xb4, 0xca, 0x4c, 0x64, 0x45, 0xdd, 0xb5, + 0x66, 0x66, 0xd3, 0xd0, 0xc1, 0x57, 0x0c, 0xff, 0xea, 0xd0, 0x3f, 0x9c, + 0x15, 0x3e, 0x84, 0x7e, 0x55, 0x17, 0xe5, 0x03, 0xb7, 0x7c, 0x78, 0x02, + 0x01, 0xf2, 0x69, 0xff, 0xb4, 0x37, 0xff, 0x79, 0xb9, 0x60, 0x9d, 0x5e, + 0x5a, 0xb4, 0x53, 0x25, 0xfe, 0xd9, 0xca, 0x01, 0x48, 0xba, 0xe0, 0xdc, + 0x44, 0x45, 0xcf, 0xbc, 0x82, 0xc6, 0x18, 0xca, 0xc6, 0x08, 0x83, 0x23, + 0x76, 0x77, 0xd9, 0x9f, 0xaf, 0x8a, 0x4f, 0x40, 0x5d, 0xa3, 0x6c, 0xbe, + 0x2f, 0x71, 0x06, 0x5f, 0x74, 0x09, 0x08, 0x24, 0x2d, 0x71, 0x29, 0x26, + 0x96, 0xd5, 0xc8, 0x70, 0x00, 0x24, 0xed, 0x54, 0x39, 0x4a, 0x1c, 0x6a, + 0xeb, 0x64, 0x3a, 0x31, 0xf0, 0xb4, 0xc0, 0xdf, 0xeb, 0xc5, 0xac, 0xda, + 0xae, 0xad, 0xa8, 0xb5, 0x51, 0xcd, 0x03, 0xc6, 0xaf, 0x7b, 0x4a, 0xbb, + 0x27, 0x53, 0x0d, 0x2f, 0x3f, 0x17, 0x67, 0xed, 0x12, 0x15, 0x5f, 0x47, + 0x69, 0x56, 0x56, 0xb0, 0xb3, 0x5e, 0x05, 0xbb, 0xcb, 0x2b, 0xd8, 0xb9, + 0x49, 0x05, 0x3b, 0x65, 0x15, 0xec, 0xdc, 0x45, 0x05, 0xbb, 0x5f, 0x5c, + 0xc1, 0xee, 0x4d, 0x2a, 0xd8, 0x2d, 0xab, 0x60, 0xf7, 0x0b, 0x2b, 0xc8, + 0x79, 0x6b, 0x9a, 0x8a, 0x55, 0x7d, 0xfd, 0xa7, 0xeb, 0xf4, 0x68, 0xbd, + 0x36, 0x91, 0xf6, 0xec, 0xb4, 0xd0, 0x95, 0xa6, 0x00, 0xb5, 0xe5, 0xab, + 0x30, 0xd6, 0xf2, 0x59, 0x56, 0xb5, 0xa0, 0x59, 0x8c, 0xad, 0x1c, 0x5c, + 0xd9, 0xf2, 0x5b, 0x57, 0x6b, 0xc6, 0x55, 0xa4, 0x79, 0x69, 0x81, 0x42, + 0x0e, 0xe0, 0xa5, 0xd3, 0x38, 0x19, 0xd1, 0x10, 0xc5, 0x89, 0x57, 0x95, + 0x94, 0xcb, 0x92, 0x72, 0x51, 0x5c, 0xae, 0xa9, 0x55, 0x50, 0x09, 0x46, + 0x03, 0x1d, 0xba, 0xb2, 0xce, 0xb2, 0xf8, 0x27, 0xd7, 0x5f, 0xa0, 0x3c, + 0x96, 0x89, 0xf5, 0x9d, 0xb4, 0xbc, 0x1a, 0x54, 0xa1, 0x0d, 0x7e, 0x4c, + 0xd6, 0xf0, 0xed, 0x9e, 0x71, 0x76, 0x8a, 0xbb, 0xb2, 0x39, 0x81, 0x4c, + 0x22, 0x41, 0x83, 0x23, 0x7f, 0x7d, 0xa1, 0x50, 0x18, 0xc7, 0x9d, 0x89, + 0x85, 0xb1, 0x6f, 0x50, 0x30, 0x03, 0x70, 0x57, 0x39, 0xa0, 0xcf, 0x2f, + 0x14, 0x0b, 0xa1, 0xb8, 0x33, 0xa9, 0x10, 0xf2, 0x0d, 0x0a, 0x85, 0x76, + 0x14, 0x41, 0x8f, 0xbe, 0xbe, 0x54, 0x2c, 0x84, 0xe3, 0xee, 0xe4, 0x42, + 0xd8, 0x37, 0x29, 0x18, 0xb9, 0xe2, 0x99, 0x5a, 0x46, 0xbd, 0xb6, 0xb5, + 0xa7, 0x6e, 0x86, 0xe9, 0xca, 0xef, 0xfd, 0x6b, 0xf9, 0xe8, 0x8e, 0xbe, + 0xa0, 0x0c, 0x02, 0x1f, 0x60, 0xaa, 0x0f, 0x3f, 0x67, 0x24, 0x62, 0x72, + 0xba, 0xc8, 0x0d, 0xfd, 0x42, 0xf1, 0x4b, 0x86, 0xef, 0x4c, 0xfe, 0x12, + 0xfd, 0x06, 0x1b, 0x80, 0x17, 0x8d, 0x6f, 0x57, 0xfe, 0x34, 0xcf, 0x99, + 0x89, 0xe8, 0x16, 0x84, 0x0d, 0xe6, 0xee, 0x70, 0xc0, 0x00, 0xf6, 0x2f, + 0x1f, 0x32, 0xf2, 0x63, 0xba, 0x7d, 0xa9, 0xa0, 0xbd, 0xba, 0xdb, 0xa6, + 0x2d, 0xc3, 0x2b, 0xeb, 0xc1, 0xd2, 0xd2, 0x52, 0x95, 0x51, 0x20, 0xba, + 0xcc, 0x1a, 0xf5, 0x97, 0x75, 0xd6, 0xb1, 0x2c, 0xb2, 0x92, 0x34, 0x05, + 0x23, 0xc6, 0xac, 0x29, 0x43, 0x12, 0x4e, 0x70, 0x0b, 0xfa, 0x63, 0x95, + 0x51, 0x4d, 0xa6, 0xb8, 0x0e, 0x5d, 0x05, 0x0d, 0xd4, 0xae, 0x64, 0x31, + 0x75, 0xf0, 0x32, 0xd8, 0x07, 0x13, 0xb9, 0xf5, 0x9d, 0xf5, 0x96, 0x1c, + 0x5e, 0xdb, 0x5b, 0xc3, 0xcb, 0xa3, 0x3f, 0xad, 0x2a, 0x24, 0xd4, 0x0c, + 0xee, 0x97, 0x03, 0x3f, 0xb7, 0x70, 0xd3, 0xa3, 0x2c, 0xde, 0x38, 0xb3, + 0x2e, 0x33, 0xdf, 0x63, 0xf9, 0xea, 0x42, 0x57, 0x36, 0xdd, 0x2d, 0xf9, + 0x95, 0x65, 0x69, 0x3f, 0xfc, 0xc1, 0x17, 0x4e, 0x0b, 0xed, 0x05, 0x6e, + 0xbc, 0x13, 0x60, 0xe9, 0x74, 0x56, 0x12, 0x5f, 0x93, 0x05, 0xc2, 0xa7, + 0xaf, 0xa8, 0xac, 0x14, 0x18, 0x52, 0x7b, 0x15, 0xd7, 0x9d, 0xae, 0x5e, + 0x73, 0xb6, 0xbd, 0xca, 0x0b, 0xdf, 0x46, 0x7d, 0xe6, 0x07, 0x72, 0xef, + 0xe6, 0x25, 0xba, 0xed, 0x02, 0x4b, 0xae, 0x66, 0x1f, 0xa0, 0x14, 0x93, + 0x04, 0xe6, 0x9a, 0xf9, 0xaa, 0x44, 0x5a, 0xb3, 0x4c, 0x6c, 0x08, 0x89, + 0x4a, 0xfe, 0xba, 0x66, 0x93, 0xaf, 0xc1, 0x30, 0x82, 0x09, 0x75, 0x57, + 0x02, 0xbb, 0x5f, 0x60, 0x2d, 0x2a, 0x07, 0x1b, 0x37, 0x0e, 0xd0, 0x87, + 0x86, 0xee, 0x31, 0x6b, 0xa1, 0xa2, 0x7e, 0xac, 0x4b, 0xde, 0x41, 0xdf, + 0xbf, 0xdd, 0xfe, 0xba, 0x46, 0xe3, 0xb1, 0x4e, 0x7c, 0xe7, 0xc1, 0xf4, + 0x45, 0x77, 0xdc, 0x78, 0x28, 0xbf, 0xb6, 0x11, 0xe3, 0x49, 0xb9, 0xac, + 0xd5, 0x1d, 0x34, 0xfa, 0x9c, 0xab, 0x4b, 0xbc, 0x5c, 0x39, 0xf9, 0x34, + 0x6d, 0x6e, 0x0a, 0xde, 0x62, 0x73, 0xb3, 0x50, 0xd6, 0x96, 0x8a, 0xdc, + 0xc1, 0xb9, 0x0b, 0xc3, 0xbe, 0x54, 0x51, 0x4a, 0xcd, 0x21, 0xed, 0x07, + 0xec, 0x5b, 0xea, 0xf3, 0xf3, 0x30, 0x4e, 0x68, 0x15, 0x5e, 0x2a, 0xd0, + 0x5a, 0x0d, 0x42, 0xe8, 0x64, 0x63, 0x4c, 0x55, 0xe1, 0x94, 0xd2, 0xf2, + 0x60, 0x98, 0xb2, 0x9d, 0x5c, 0xb5, 0x7d, 0xcd, 0x5b, 0xf0, 0xd8, 0x05, + 0xbb, 0xad, 0x7a, 0x3b, 0x74, 0x57, 0xc4, 0x5a, 0x95, 0x7f, 0xf5, 0xab, + 0x77, 0xef, 0x48, 0x00, 0x37, 0xaa, 0xfc, 0xec, 0x4f, 0x49, 0x72, 0x4c, + 0x12, 0xf8, 0xaf, 0xab, 0xfd, 0x7a, 0x2d, 0x4f, 0x95, 0xff, 0x2e, 0x8c, + 0xae, 0x53, 0x79, 0xe9, 0xdd, 0xe6, 0x3c, 0xd2, 0xdd, 0x9d, 0x9d, 0xee, + 0x8e, 0x25, 0x12, 0x1c, 0x82, 0xf9, 0xef, 0x13, 0xc9, 0xee, 0xda, 0x22, + 0xf9, 0x3e, 0xbe, 0xd2, 0x9a, 0xae, 0xd0, 0x07, 0x0a, 0xe1, 0xf8, 0x1f, + 0xae, 0xfc, 0x77, 0x28, 0x7b, 0x8d, 0xca, 0xcf, 0x01, 0x7e, 0x8a, 0x9a, + 0x58, 0x02, 0xa0, 0xa4, 0xff, 0x88, 0x00, 0xd6, 0x59, 0x37, 0xbd, 0x45, + 0x27, 0xef, 0x29, 0x46, 0x8c, 0xdb, 0xec, 0x3a, 0x12, 0xeb, 0x10, 0x58, + 0xff, 0xfb, 0x3a, 0x8f, 0x5d, 0xef, 0xb7, 0xcf, 0x9f, 0xbc, 0x59, 0xdf, + 0xb1, 0x95, 0x3f, 0x11, 0xf3, 0x14, 0x6e, 0xde, 0xb5, 0x55, 0xde, 0x51, + 0xf0, 0xa5, 0x8d, 0xd4, 0xde, 0xb5, 0x5b, 0x08, 0xe7, 0xf4, 0xfe, 0x23, + 0xed, 0xb3, 0x01, 0xf5, 0xee, 0x5a, 0x72, 0x7b, 0xf3, 0xdd, 0xbb, 0xb7, + 0x87, 0xbf, 0xbe, 0x6e, 0x43, 0xe3, 0x0d, 0x54, 0x38, 0x81, 0xb8, 0xc1, + 0xa6, 0xce, 0xb1, 0xfc, 0xec, 0xf1, 0xb7, 0x87, 0x37, 0xe0, 0x19, 0x27, + 0x75, 0x36, 0x39, 0xf5, 0xca, 0x31, 0xfd, 0xfc, 0xf1, 0xab, 0x57, 0x8f, + 0x6f, 0xc0, 0xf5, 0xc4, 0x9d, 0xcd, 0xdc, 0xff, 0x1c, 0xdb, 0x47, 0x2f, + 0x7e, 0x77, 0x13, 0x59, 0xc3, 0x27, 0xbe, 0x6d, 0x59, 0xdf, 0x75, 0xd7, + 0x58, 0x3e, 0x7a, 0xea, 0x38, 0x71, 0x19, 0x24, 0xae, 0x06, 0x53, 0xb3, + 0x5b, 0x7d, 0xd5, 0x50, 0x1a, 0x84, 0x83, 0x48, 0xee, 0x34, 0xbe, 0xc2, + 0x32, 0x46, 0xc6, 0x12, 0xa9, 0x59, 0x8a, 0xd9, 0x3a, 0x9b, 0x01, 0xa2, + 0xa2, 0xd7, 0x08, 0xd5, 0xb1, 0x82, 0x8a, 0x8e, 0x4a, 0xd8, 0x22, 0x4c, + 0xeb, 0x51, 0x7a, 0x86, 0x89, 0xc9, 0x6a, 0x4a, 0x34, 0x75, 0xb9, 0x0d, + 0x4a, 0x4f, 0x10, 0x0f, 0xb5, 0x9a, 0x12, 0x05, 0xf9, 0xde, 0x0a, 0xa5, + 0x24, 0xb8, 0x82, 0x50, 0x72, 0x2b, 0xb2, 0x03, 0x1d, 0x6c, 0x26, 0x5f, + 0x49, 0x0a, 0x1a, 0x50, 0xa4, 0x26, 0xe9, 0x5c, 0x53, 0xb3, 0x6f, 0x4b, + 0x25, 0x7d, 0xf7, 0x93, 0x78, 0x4d, 0xab, 0x71, 0xd7, 0x18, 0x0b, 0x8d, + 0x63, 0xcb, 0xc5, 0x03, 0x14, 0xbf, 0x0d, 0xc7, 0x4e, 0xaf, 0x2a, 0xeb, + 0x73, 0x6c, 0xb4, 0xb2, 0x7c, 0x47, 0xc3, 0x61, 0x2a, 0xad, 0x34, 0x0a, + 0x28, 0xb3, 0x8c, 0xd8, 0x88, 0x51, 0x2d, 0xbd, 0xd4, 0x2e, 0xf3, 0x53, + 0xc3, 0x64, 0xbf, 0x3c, 0x81, 0xde, 0x52, 0x66, 0xbd, 0x8d, 0xca, 0x7e, + 0xb3, 0xdb, 0x15, 0x1b, 0x0b, 0xfc, 0x36, 0x9f, 0xfc, 0xee, 0x02, 0x51, + 0xc5, 0xe6, 0x02, 0x7f, 0x1f, 0x29, 0x56, 0xd2, 0x00, 0xa2, 0x1b, 0x2e, + 0xd2, 0xca, 0x0b, 0xd1, 0xb9, 0x76, 0xf2, 0x67, 0xda, 0x50, 0xe9, 0xf1, + 0xcc, 0x65, 0x0b, 0xf8, 0x5f, 0xf3, 0x3a, 0x8d, 0x9b, 0x7b, 0xe1, 0xe8, + 0xc4, 0xc3, 0x19, 0x85, 0x41, 0xf9, 0x5b, 0x4f, 0xb7, 0x2a, 0x16, 0x21, + 0x7e, 0xfb, 0x0e, 0x84, 0x88, 0x46, 0xa5, 0x57, 0xd2, 0x1e, 0x0f, 0x7c, + 0x17, 0xcf, 0x07, 0xdf, 0x45, 0xe1, 0x1f, 0xc9, 0xf4, 0x4f, 0x43, 0x5a, + 0x59, 0x70, 0x0f, 0x70, 0x5e, 0xf5, 0x9f, 0x7f, 0xc3, 0xe9, 0x85, 0xf6, + 0x9e, 0xac, 0x8d, 0x73, 0x9d, 0xf0, 0xbd, 0xd2, 0xc6, 0x0b, 0xe7, 0x22, + 0x58, 0xd2, 0x78, 0xba, 0xc1, 0x94, 0x8e, 0x7d, 0x79, 0x8b, 0xa5, 0xad, + 0xe4, 0xa5, 0xa1, 0x5e, 0x85, 0x36, 0x92, 0xe2, 0x58, 0x15, 0x28, 0x8a, + 0x6b, 0x29, 0xbc, 0xb9, 0x3d, 0xb6, 0x79, 0x63, 0xa7, 0x8a, 0x10, 0x30, + 0xbc, 0x6d, 0x09, 0x71, 0x66, 0x4d, 0x9a, 0x39, 0x3e, 0x9e, 0x80, 0xc5, + 0x26, 0x9f, 0xa9, 0x7f, 0x33, 0xae, 0x3e, 0x7c, 0x75, 0xf4, 0xe2, 0xf0, + 0x61, 0xed, 0x5e, 0xbf, 0xdf, 0x68, 0x3b, 0x7f, 0xfe, 0xb3, 0x63, 0x60, + 0x71, 0x2c, 0xe5, 0xd7, 0x58, 0x04, 0x83, 0x7e, 0x1a, 0xe0, 0x77, 0x91, + 0x37, 0x42, 0xe9, 0xad, 0x87, 0x35, 0xe7, 0x20, 0xbd, 0xce, 0xdb, 0xfc, + 0x51, 0x55, 0xf0, 0x5e, 0xd1, 0xa6, 0x1f, 0x4e, 0xaa, 0x15, 0xbc, 0x7e, + 0x73, 0x24, 0x12, 0x19, 0x3f, 0x58, 0xdb, 0xcf, 0x02, 0x8e, 0x70, 0x78, + 0x68, 0x46, 0x6c, 0xa0, 0x41, 0x0f, 0xe5, 0xeb, 0x3f, 0x9f, 0x9c, 0xbf, + 0x18, 0x55, 0x0b, 0x61, 0xf3, 0xb5, 0x26, 0xeb, 0x58, 0x53, 0x1f, 0xe9, + 0xeb, 0x3b, 0x0f, 0xb9, 0x87, 0x3c, 0x5c, 0x17, 0x61, 0xba, 0x7c, 0x5f, + 0x86, 0x6a, 0x8a, 0xda, 0xd8, 0x98, 0x32, 0x31, 0xff, 0x4a, 0x94, 0x45, + 0xe1, 0xf2, 0xe1, 0x10, 0xbd, 0xfe, 0x8e, 0x3a, 0x8e, 0xf9, 0xfd, 0xc6, + 0xa8, 0x3a, 0x40, 0x7f, 0x82, 0xab, 0x18, 0x1c, 0xec, 0x10, 0x3a, 0xf0, + 0x04, 0x70, 0xb8, 0xef, 0x34, 0x50, 0x51, 0xb0, 0xf2, 0xb8, 0x3b, 0x03, + 0x3c, 0x0d, 0xe7, 0xe7, 0x74, 0x6f, 0x48, 0x9a, 0x23, 0xf8, 0x7c, 0x5f, + 0x85, 0x54, 0xad, 0x7a, 0x18, 0x4c, 0x7c, 0x2f, 0x9e, 0xd6, 0x9c, 0x4f, + 0x52, 0xf4, 0xf5, 0x1c, 0x24, 0xde, 0x12, 0xcc, 0x48, 0x5e, 0x8c, 0x1d, + 0xd7, 0x46, 0xed, 0x78, 0x31, 0x26, 0x14, 0x71, 0x4c, 0xd7, 0x7c, 0xd0, + 0x64, 0x39, 0xae, 0x13, 0xd2, 0x73, 0x7e, 0x57, 0x04, 0xb1, 0xe8, 0x2e, + 0x7c, 0x7e, 0x3f, 0xaa, 0xc2, 0x0f, 0x24, 0x7c, 0xa4, 0xe5, 0x13, 0xee, + 0x89, 0xf0, 0x75, 0x4d, 0xfa, 0xba, 0x39, 0x45, 0xd0, 0xb3, 0x5a, 0x96, + 0x01, 0x8e, 0x69, 0x05, 0x0e, 0xc7, 0x89, 0x55, 0xf9, 0x4a, 0xdd, 0x64, + 0x53, 0xc4, 0x26, 0x65, 0x99, 0xce, 0x6b, 0xe7, 0xa2, 0x9c, 0xcc, 0x74, + 0x74, 0xae, 0xf3, 0xfd, 0x0b, 0xa7, 0x8a, 0x19, 0xde, 0xfb, 0x9a, 0x0d, + 0x97, 0x46, 0x78, 0x02, 0x38, 0xfd, 0x6d, 0x03, 0xa0, 0xd9, 0x6c, 0x18, + 0xf9, 0x58, 0x04, 0x4b, 0xc3, 0x26, 0x01, 0xf3, 0x56, 0xff, 0x2e, 0x21, + 0x74, 0x18, 0x45, 0x61, 0xd4, 0x06, 0x10, 0xe6, 0xd8, 0xfe, 0x08, 0x07, + 0x61, 0x12, 0x95, 0xc3, 0x62, 0x32, 0x75, 0x69, 0x3a, 0xd0, 0x79, 0x9c, + 0x22, 0x5a, 0x86, 0xa2, 0x03, 0x14, 0x0e, 0x6d, 0xe6, 0xc6, 0x4d, 0xe7, + 0x3b, 0x9f, 0x8e, 0xd6, 0xe1, 0x30, 0x90, 0x6c, 0xd1, 0xb7, 0x87, 0x4f, + 0xdf, 0xbc, 0x7e, 0x7d, 0xf8, 0xf4, 0x9d, 0x7a, 0xcf, 0x29, 0x21, 0x4e, + 0x22, 0xb4, 0xfd, 0x04, 0x0a, 0xd9, 0xb4, 0x11, 0xfa, 0xb8, 0xa0, 0xe5, + 0x15, 0x8d, 0x7d, 0x40, 0xa6, 0x2f, 0x6b, 0x99, 0xd1, 0xb3, 0xd3, 0x6c, + 0x02, 0xd0, 0xd9, 0xc2, 0x0d, 0x1f, 0xd8, 0x82, 0x4c, 0x9b, 0xaa, 0x81, + 0x13, 0x02, 0x04, 0x83, 0x24, 0x30, 0x6e, 0xd4, 0x03, 0x77, 0xd1, 0x28, + 0x3b, 0xc2, 0x19, 0x8c, 0x17, 0x89, 0xe7, 0x22, 0xa9, 0x65, 0x89, 0xa9, + 0x31, 0xc1, 0xa6, 0xa7, 0x0a, 0xde, 0x19, 0xc9, 0xf7, 0x62, 0x10, 0xa3, + 0xe3, 0x92, 0xc4, 0xa5, 0xf8, 0x58, 0x55, 0x65, 0xa2, 0x48, 0x14, 0xd9, + 0x6c, 0x91, 0xb7, 0x38, 0x67, 0x73, 0x8e, 0x02, 0xfc, 0x5d, 0x06, 0xc0, + 0x2d, 0x00, 0x00, 0xfe, 0xe6, 0x14, 0x20, 0x35, 0xd7, 0x4b, 0x48, 0x19, + 0xe2, 0xad, 0x28, 0xdc, 0x2e, 0x46, 0xf6, 0x77, 0x50, 0x43, 0x61, 0x73, + 0x62, 0xb3, 0xa9, 0x0c, 0x19, 0xb2, 0xde, 0xcb, 0x5f, 0x76, 0xe6, 0xcc, + 0x9c, 0xe7, 0x01, 0xc0, 0x8b, 0x31, 0x59, 0x0d, 0x34, 0x04, 0x58, 0x25, + 0xc6, 0xa0, 0x53, 0x31, 0xf8, 0xc2, 0x8b, 0x67, 0x31, 0xc0, 0x21, 0x85, + 0xe5, 0x15, 0x24, 0x98, 0x5b, 0x84, 0xc1, 0x24, 0xd5, 0xb6, 0x13, 0x21, + 0xe6, 0x74, 0x46, 0x78, 0x06, 0x23, 0x8d, 0x72, 0x6e, 0xe2, 0xd8, 0xef, + 0x0e, 0x87, 0x61, 0x14, 0x71, 0xf0, 0x30, 0x21, 0xa3, 0x70, 0x02, 0xb0, + 0xe2, 0x0b, 0x6f, 0x33, 0x6a, 0x8b, 0x6d, 0x8c, 0xc5, 0x3c, 0xc1, 0x6e, + 0x7c, 0x63, 0x44, 0xd6, 0x46, 0x59, 0x63, 0xbc, 0x72, 0xef, 0x04, 0xe7, + 0x95, 0xa7, 0x11, 0xf8, 0xa8, 0xa7, 0xef, 0xcf, 0x85, 0xc4, 0x0f, 0x47, + 0x13, 0x91, 0x69, 0x14, 0x76, 0x4f, 0xa9, 0x89, 0xe9, 0x3b, 0xdb, 0x2d, + 0x47, 0xd4, 0x90, 0xd9, 0xbe, 0xca, 0x71, 0x57, 0x48, 0x7e, 0x4e, 0xdf, + 0x76, 0x06, 0x85, 0x1e, 0x21, 0xfd, 0x09, 0xbe, 0x4c, 0xb2, 0x7a, 0x37, + 0x0c, 0x49, 0x12, 0xdf, 0x76, 0x06, 0x35, 0xcb, 0x31, 0x90, 0x81, 0x65, + 0x22, 0x8e, 0x60, 0x16, 0x24, 0xe4, 0x8e, 0x55, 0xab, 0x6c, 0x92, 0x50, + 0x40, 0xc7, 0xaa, 0xf3, 0xc5, 0x7d, 0x08, 0x7b, 0x59, 0x59, 0xca, 0x93, + 0x05, 0x5b, 0x76, 0x31, 0xbd, 0xbb, 0x87, 0x62, 0x8f, 0xd5, 0x4f, 0x3b, + 0x3b, 0xbb, 0x4f, 0x0b, 0xa0, 0x23, 0x39, 0x53, 0x4d, 0x53, 0x72, 0xc0, + 0x66, 0x9f, 0x84, 0x80, 0xd5, 0xcf, 0x22, 0x94, 0xd9, 0x50, 0x00, 0x14, + 0xfd, 0x74, 0x8e, 0x44, 0x84, 0xd1, 0x22, 0x07, 0x67, 0xd6, 0xde, 0x09, + 0x8e, 0x06, 0x11, 0xfe, 0x99, 0x87, 0x32, 0xcb, 0xd1, 0x1a, 0x1b, 0xfd, + 0x2e, 0x10, 0xce, 0x2e, 0xde, 0x6a, 0xd0, 0xef, 0xd4, 0xca, 0x6c, 0x16, + 0xd4, 0xac, 0x5c, 0x52, 0x9d, 0xd1, 0xa7, 0xe6, 0xce, 0xcb, 0xc3, 0x6f, + 0x1d, 0x4e, 0xc9, 0x40, 0x9a, 0xb5, 0x3e, 0x00, 0xe2, 0xcb, 0x79, 0x43, + 0x4e, 0x7d, 0x06, 0x24, 0x5d, 0x5f, 0x4b, 0x51, 0x3d, 0xff, 0xee, 0xc5, + 0x1b, 0x87, 0x12, 0x8a, 0x60, 0x6f, 0xe6, 0x3c, 0x0a, 0xa7, 0xa0, 0xea, + 0x39, 0x07, 0x69, 0x16, 0x9e, 0x88, 0xaa, 0xbc, 0xca, 0x2a, 0x0f, 0x62, + 0x16, 0x7a, 0x00, 0xf3, 0x0c, 0xdd, 0x9d, 0x5e, 0x62, 0x2e, 0x8a, 0xf5, + 0x34, 0x4b, 0x2b, 0xa4, 0xc5, 0xb4, 0x54, 0x82, 0x1e, 0x10, 0xa9, 0x17, + 0xc7, 0xe5, 0xa1, 0xcd, 0x8a, 0x06, 0xeb, 0xc2, 0x64, 0x46, 0x7d, 0xf9, + 0xc8, 0xfb, 0x9c, 0xa7, 0x6e, 0x66, 0xf6, 0x46, 0x67, 0xf8, 0x3c, 0xe4, + 0x18, 0x1e, 0xac, 0xec, 0x61, 0xd9, 0x3a, 0xa5, 0x93, 0x7b, 0xc0, 0xe3, + 0x45, 0x90, 0xb9, 0xa6, 0x4b, 0x27, 0xe4, 0x94, 0x2b, 0xce, 0xb2, 0x4d, + 0x90, 0xce, 0xa1, 0xa9, 0xb7, 0x99, 0xa3, 0xbd, 0x45, 0x90, 0x24, 0x20, + 0x08, 0x1e, 0xc6, 0x72, 0xc4, 0xcd, 0x9c, 0x55, 0xb3, 0x4b, 0x26, 0x53, + 0x82, 0x66, 0x20, 0xed, 0x9d, 0xe4, 0x14, 0x54, 0x1d, 0x0d, 0x97, 0xfb, + 0xa6, 0x19, 0x70, 0xb9, 0x97, 0x49, 0xb6, 0x84, 0x7e, 0xe4, 0xec, 0x80, + 0x60, 0x6a, 0xef, 0xe9, 0xdb, 0xce, 0xb0, 0x23, 0x0d, 0x88, 0x04, 0x1e, + 0x9d, 0xf4, 0xd9, 0x06, 0x54, 0xaf, 0xd6, 0x26, 0x2f, 0x84, 0x7a, 0x07, + 0xda, 0xeb, 0x13, 0xd9, 0x3b, 0x7a, 0xb6, 0xc1, 0xcc, 0x9c, 0x96, 0xfa, + 0x78, 0x7a, 0x98, 0xc4, 0xb2, 0xb0, 0xce, 0x11, 0x81, 0x38, 0x0c, 0xe3, + 0x54, 0x7f, 0x5f, 0xd9, 0xff, 0x7d, 0x05, 0x15, 0xc5, 0x89, 0x38, 0x1a, + 0x38, 0x32, 0x0e, 0x8e, 0x3d, 0x15, 0x23, 0x9f, 0xe1, 0x88, 0xca, 0xe9, + 0x84, 0x1c, 0x20, 0x1b, 0x4b, 0x9d, 0x27, 0x13, 0xf2, 0x10, 0xd9, 0xb1, + 0x8f, 0x92, 0xac, 0x41, 0x7c, 0xd9, 0x98, 0x67, 0x50, 0xcc, 0xe5, 0xdc, + 0xe9, 0xe7, 0x21, 0x1b, 0x1b, 0x7b, 0x26, 0x55, 0x91, 0x40, 0x97, 0x0a, + 0x38, 0xf0, 0x97, 0xfa, 0x82, 0xaf, 0x05, 0xba, 0x2b, 0x12, 0x46, 0xf1, + 0xdd, 0xba, 0x83, 0xe8, 0xa2, 0x83, 0x30, 0xc0, 0xbc, 0x63, 0x85, 0x3b, + 0x18, 0x78, 0x18, 0xd2, 0x52, 0xc0, 0x65, 0x0e, 0xe1, 0xaf, 0x01, 0x40, + 0xc3, 0x64, 0x38, 0x07, 0xfc, 0xe2, 0x74, 0x95, 0x5b, 0xf8, 0x4b, 0xb8, + 0x0f, 0x29, 0x52, 0x8f, 0x90, 0x62, 0x3c, 0xb6, 0xc7, 0xd6, 0xe6, 0x6a, + 0x97, 0xf0, 0x44, 0x60, 0x00, 0x99, 0x08, 0xc8, 0x79, 0x80, 0x5f, 0xa3, + 0xa6, 0xf3, 0x5c, 0x0c, 0xa2, 0x85, 0x77, 0xe2, 0xc0, 0x98, 0xe4, 0xd8, + 0x70, 0x4e, 0x82, 0x70, 0xee, 0x84, 0xb3, 0xf4, 0x19, 0x9a, 0xc8, 0xe5, + 0x22, 0xb1, 0xdc, 0x4d, 0xe4, 0x6f, 0x34, 0xc7, 0x48, 0xdc, 0x85, 0x3b, + 0x93, 0xf3, 0x11, 0x5f, 0xd0, 0x35, 0x50, 0xbe, 0x8f, 0x27, 0x11, 0xdc, + 0x29, 0x4d, 0xe3, 0x24, 0xbe, 0x4f, 0x3d, 0x43, 0xd3, 0x02, 0x2b, 0x5c, + 0xc4, 0x5f, 0xfa, 0xae, 0x1b, 0xad, 0xf0, 0x10, 0x9f, 0xd1, 0xc2, 0xec, + 0xc0, 0xfb, 0xa3, 0xe4, 0x1e, 0x0b, 0x67, 0x81, 0x76, 0x13, 0x85, 0xf6, + 0x12, 0x55, 0x53, 0xe9, 0x56, 0xb8, 0x83, 0x1a, 0x0a, 0x8b, 0x99, 0x25, + 0x3e, 0x22, 0x6a, 0x11, 0x0f, 0xa7, 0x8b, 0xd3, 0x95, 0x8e, 0xe2, 0x63, + 0x5c, 0xde, 0xb2, 0x40, 0x0f, 0x40, 0x8d, 0xb0, 0x86, 0x30, 0x9c, 0x82, + 0x9c, 0x10, 0x31, 0xae, 0x49, 0x98, 0x10, 0x6b, 0xa8, 0x02, 0xf4, 0x96, + 0xa7, 0x83, 0xcd, 0xac, 0x2f, 0x78, 0x2a, 0xa2, 0x93, 0x84, 0xb5, 0xba, + 0xd4, 0x13, 0x34, 0x3a, 0x4a, 0xf7, 0xcf, 0x8c, 0xdd, 0x24, 0x0e, 0x05, + 0xe2, 0x77, 0xfe, 0x78, 0x62, 0x1c, 0xc1, 0xcf, 0xa1, 0x0b, 0xda, 0xd2, + 0x13, 0xc4, 0xa5, 0x60, 0xda, 0x17, 0x2c, 0xfa, 0x80, 0xdc, 0x24, 0x62, + 0x51, 0xe6, 0x03, 0x86, 0xe1, 0x12, 0x27, 0x30, 0x5c, 0xe2, 0x04, 0xba, + 0x8b, 0xd3, 0x52, 0x2f, 0xd0, 0x4b, 0x96, 0xfb, 0x80, 0xcf, 0x81, 0x94, + 0xfc, 0xb7, 0x19, 0xf9, 0x6f, 0xd3, 0x70, 0x02, 0xde, 0x47, 0xcb, 0x1d, + 0xbf, 0x7c, 0x01, 0xdf, 0xe5, 0x02, 0xb7, 0xe3, 0xf0, 0x91, 0x4e, 0xbd, + 0x73, 0x5d, 0x7f, 0x93, 0xfe, 0x9e, 0x08, 0xd6, 0x75, 0xf7, 0x26, 0xb2, + 0xc9, 0x51, 0xeb, 0xc0, 0x75, 0x67, 0x6b, 0x38, 0x7d, 0xa7, 0x2e, 0x14, + 0xee, 0x34, 0x5c, 0xed, 0xf6, 0xc1, 0xe1, 0x63, 0x61, 0x7e, 0x89, 0x3b, + 0xb7, 0x86, 0x63, 0x98, 0xf7, 0xf8, 0x42, 0x3c, 0x8b, 0xff, 0x07, 0x87, + 0x8f, 0x74, 0x66, 0xee, 0xa2, 0x3b, 0xbb, 0xce, 0x09, 0x75, 0x23, 0x11, + 0x2c, 0xf5, 0xf8, 0x1e, 0xfb, 0x13, 0x31, 0x83, 0xf2, 0xae, 0x70, 0xfa, + 0x4e, 0xe2, 0xe5, 0x5e, 0xdf, 0x63, 0xb4, 0xa6, 0x88, 0xe0, 0xf7, 0x2d, + 0x77, 0xfb, 0x7e, 0x89, 0xe1, 0x09, 0x0b, 0xa1, 0x2b, 0xdc, 0xbe, 0xe7, + 0xe2, 0x04, 0x53, 0x44, 0x0c, 0x5b, 0x04, 0x7a, 0xb5, 0xd3, 0x47, 0xb5, + 0x63, 0xeb, 0xe0, 0x9c, 0x78, 0xe2, 0xf3, 0x0a, 0xbf, 0xef, 0x44, 0xf8, + 0xa5, 0x7e, 0x9f, 0xb7, 0xd2, 0xed, 0xd3, 0x3f, 0x1d, 0x78, 0xa0, 0x22, + 0x58, 0xe1, 0xf7, 0xd1, 0x97, 0xc3, 0xce, 0x1f, 0x0d, 0xb5, 0x57, 0x3a, + 0x7e, 0xe0, 0xdd, 0xb2, 0xa7, 0x34, 0x6c, 0x2c, 0x7c, 0xe3, 0xf5, 0x4d, + 0x04, 0x0c, 0xb7, 0xa0, 0xe5, 0xd1, 0x95, 0x6e, 0x5f, 0x66, 0x28, 0x0d, + 0xe7, 0x20, 0xe4, 0x06, 0x65, 0xde, 0x5f, 0x0e, 0x0e, 0xd8, 0xc9, 0x28, + 0x15, 0x40, 0x8b, 0x03, 0xdc, 0x54, 0x24, 0x1a, 0x6f, 0x61, 0x4c, 0x5b, + 0xcb, 0x09, 0x94, 0x7a, 0x97, 0x73, 0x03, 0x47, 0x62, 0xa9, 0x1b, 0xf8, + 0xad, 0x58, 0x24, 0xf1, 0xf0, 0x8e, 0x97, 0x04, 0xc9, 0x07, 0x58, 0x5c, + 0xe1, 0x03, 0x62, 0xe9, 0x17, 0xcd, 0x18, 0x24, 0xcb, 0xbc, 0xbf, 0xf7, + 0x1e, 0x39, 0xac, 0xc6, 0x9d, 0xb8, 0xc2, 0xfd, 0x0b, 0xa0, 0xcf, 0x01, + 0x8f, 0xae, 0x33, 0xcf, 0x76, 0xfc, 0x2c, 0x7f, 0xc4, 0xf9, 0x39, 0x82, + 0x34, 0x1d, 0x11, 0xaf, 0x76, 0x05, 0x67, 0xae, 0xcf, 0xcb, 0xb9, 0x0b, + 0xe0, 0x6a, 0x3a, 0x4f, 0x44, 0xb0, 0x48, 0x3e, 0x0b, 0xe7, 0xfd, 0x8b, + 0xc3, 0x6f, 0x0f, 0xdf, 0x3a, 0xbf, 0x3e, 0x7c, 0xfb, 0xe4, 0xc5, 0xeb, + 0x6f, 0x0f, 0x5f, 0xd7, 0x9d, 0xc5, 0x8c, 0x50, 0x05, 0xe1, 0x70, 0x4a, + 0x25, 0x3e, 0x2f, 0xb8, 0xf5, 0xbc, 0x95, 0x5e, 0xe0, 0x4b, 0x32, 0x55, + 0x78, 0xf0, 0xee, 0x6a, 0xd5, 0x4e, 0xa9, 0x6e, 0x4a, 0xeb, 0xd0, 0x93, + 0x7a, 0xb9, 0x20, 0xbd, 0xbc, 0x2b, 0xa2, 0xca, 0xf7, 0x33, 0x0e, 0x3b, + 0xa4, 0xb5, 0xd6, 0x42, 0xe1, 0x33, 0x11, 0x25, 0xde, 0x64, 0xe9, 0x4a, + 0x21, 0x43, 0x4c, 0x7d, 0xe8, 0xc0, 0x40, 0x78, 0x33, 0xe7, 0x25, 0xbb, + 0x82, 0xa4, 0x12, 0x8f, 0xf5, 0x8a, 0x61, 0xdc, 0x20, 0x61, 0xd6, 0xd1, + 0x91, 0xf0, 0x82, 0x62, 0xd9, 0x14, 0xa6, 0xf1, 0xee, 0xc4, 0xeb, 0x15, + 0x36, 0x63, 0x2b, 0x56, 0x0e, 0x17, 0xab, 0x1c, 0xc2, 0xf7, 0x50, 0x7b, + 0x8c, 0x2c, 0xd8, 0x8c, 0xc0, 0xf0, 0x07, 0x85, 0xc0, 0x15, 0x81, 0x0b, + 0x9e, 0x0d, 0x82, 0xe7, 0x3a, 0xf8, 0xc2, 0x82, 0x56, 0x72, 0x8a, 0xa3, + 0xf2, 0xe8, 0xa6, 0x9e, 0x18, 0xc3, 0x54, 0xc1, 0xa7, 0x1a, 0x93, 0xfe, + 0x3e, 0xe1, 0x7a, 0x42, 0x0c, 0x27, 0x42, 0x21, 0xa0, 0x8b, 0xc8, 0xea, + 0xf8, 0x8a, 0xe3, 0x8c, 0xef, 0xa8, 0x7a, 0x82, 0x37, 0x2b, 0xba, 0x8d, + 0xce, 0x78, 0x11, 0x9c, 0x90, 0xf0, 0x3c, 0x48, 0x5f, 0xa3, 0x0c, 0xc4, + 0x74, 0xa6, 0x50, 0xe2, 0x4a, 0x5d, 0xfc, 0x72, 0x4f, 0x92, 0x05, 0xf4, + 0x06, 0xbf, 0x9e, 0x28, 0x5f, 0xf2, 0x14, 0x79, 0x9f, 0x9b, 0x4f, 0x9a, + 0xc5, 0x85, 0xc5, 0x91, 0x58, 0xb1, 0xb4, 0xf8, 0xcc, 0x8d, 0x06, 0xa2, + 0xcc, 0xad, 0x4c, 0xca, 0xbd, 0xca, 0x7f, 0xfd, 0x63, 0x99, 0x57, 0x59, + 0xea, 0x54, 0x0a, 0xef, 0x5f, 0x7f, 0x59, 0xee, 0x56, 0x3e, 0x3e, 0xf9, + 0x2c, 0xc8, 0xc7, 0x88, 0xb0, 0xee, 0x4a, 0xf5, 0x72, 0x5e, 0xb3, 0x93, + 0x13, 0x80, 0xde, 0xbf, 0xfe, 0xfe, 0xaf, 0xbf, 0x88, 0x68, 0x99, 0x87, + 0xb9, 0xaa, 0xec, 0x89, 0x4f, 0x8f, 0xd1, 0x17, 0xfa, 0x9a, 0xf3, 0xc8, + 0x85, 0x8a, 0xa2, 0x5c, 0x7c, 0xfa, 0xaf, 0xbf, 0x4e, 0x21, 0xe8, 0x4d, + 0xfa, 0x9b, 0x8b, 0xff, 0xfc, 0xfa, 0xe2, 0xe3, 0xe0, 0xb3, 0x3b, 0xf5, + 0x57, 0xfb, 0x91, 0x6f, 0x85, 0x87, 0x1e, 0x31, 0x0e, 0xe1, 0x32, 0xdd, + 0xdc, 0x2f, 0x2d, 0x5f, 0x66, 0x14, 0x81, 0x25, 0xfa, 0x5b, 0xf1, 0x40, + 0x9f, 0x93, 0x43, 0x71, 0xda, 0x5c, 0xc7, 0x07, 0xfd, 0x25, 0x7c, 0xd0, + 0xe6, 0x5a, 0xee, 0xe7, 0x73, 0xd6, 0xd3, 0x95, 0x1e, 0xe8, 0x8b, 0x74, + 0xad, 0x91, 0xba, 0x5a, 0xa6, 0x5e, 0x2b, 0x97, 0x1d, 0xdd, 0x9b, 0x2d, + 0x3b, 0xfe, 0x9c, 0xd7, 0x36, 0x27, 0x2b, 0x96, 0x1d, 0xdf, 0xe1, 0x6e, + 0xfb, 0x2b, 0xdc, 0x4f, 0xe6, 0x0f, 0x66, 0x87, 0x41, 0x57, 0x39, 0xa0, + 0x54, 0xa5, 0x53, 0x17, 0xb0, 0xe7, 0xf3, 0x5c, 0xbd, 0x8a, 0x0e, 0xe8, + 0x2f, 0x23, 0xe1, 0xc5, 0x65, 0xfe, 0xe7, 0x5b, 0x77, 0xb4, 0x8e, 0xfb, + 0xe9, 0x06, 0x9f, 0x11, 0x18, 0xb1, 0x86, 0x07, 0x0a, 0xeb, 0xf9, 0xc9, + 0x5b, 0xe9, 0x82, 0xe2, 0x05, 0xfa, 0x09, 0x00, 0xae, 0x58, 0x78, 0xd4, + 0x0e, 0xd0, 0x2a, 0x07, 0x34, 0x37, 0x82, 0xe3, 0x80, 0xa7, 0x07, 0xb3, + 0x11, 0x95, 0xfa, 0xa0, 0x19, 0x50, 0x60, 0xd7, 0xc0, 0xc9, 0xbd, 0x3c, + 0x74, 0xe9, 0xf8, 0x7a, 0xa4, 0xc0, 0x79, 0x8c, 0xcd, 0xd2, 0x5d, 0x36, + 0xc2, 0xae, 0xb1, 0x4c, 0x89, 0x15, 0x8c, 0x9f, 0xeb, 0x65, 0x4a, 0xf9, + 0x32, 0x04, 0x6c, 0xe0, 0xcb, 0x9d, 0x6c, 0x13, 0x08, 0x6c, 0xf6, 0xb2, + 0x9f, 0xbf, 0x7d, 0x82, 0x92, 0xf8, 0xd4, 0x68, 0x9f, 0x3f, 0x79, 0x8b, + 0x04, 0x7c, 0xea, 0x04, 0xb4, 0x81, 0x6c, 0x89, 0x34, 0xe1, 0xc9, 0x73, + 0x24, 0xe0, 0x53, 0x27, 0x3c, 0x79, 0x4b, 0x09, 0xf8, 0x4c, 0x13, 0x9e, + 0x13, 0x0e, 0x7c, 0xea, 0x84, 0xf7, 0x92, 0x0c, 0x7d, 0xa5, 0x49, 0x92, + 0x10, 0x7d, 0xa5, 0x49, 0x92, 0x14, 0x7d, 0xa5, 0x49, 0x92, 0x18, 0x7d, + 0xa5, 0x49, 0x92, 0x1c, 0xbe, 0x4c, 0x92, 0x24, 0x48, 0x5f, 0x69, 0x35, + 0xde, 0x33, 0x45, 0xfa, 0x32, 0x49, 0xb2, 0x6a, 0xef, 0xad, 0xba, 0xbd, + 0x67, 0x8a, 0xf4, 0x95, 0xf2, 0xfe, 0x9e, 0xd1, 0xd3, 0x97, 0x49, 0x92, + 0xf5, 0x79, 0x6f, 0xa1, 0x7f, 0xfb, 0x9e, 0x0a, 0xd2, 0x97, 0x11, 0xdc, + 0x7b, 0x82, 0xa2, 0x2f, 0x23, 0x3a, 0x86, 0xa2, 0x2f, 0x23, 0xbc, 0xf7, + 0x52, 0x7a, 0xef, 0x2d, 0xf1, 0x71, 0x12, 0x7d, 0x19, 0x01, 0x32, 0x2e, + 0xfa, 0x32, 0x14, 0xb9, 0x47, 0xd0, 0x57, 0x81, 0x62, 0x39, 0x94, 0x69, + 0x2e, 0x4a, 0xa2, 0x2f, 0x43, 0x91, 0x93, 0xf0, 0x55, 0x9a, 0x94, 0xd5, + 0x19, 0x13, 0x53, 0x6c, 0xb4, 0xa6, 0xd5, 0xc3, 0x47, 0xe5, 0xf5, 0x9b, + 0xb7, 0xaf, 0x1e, 0xbf, 0xd4, 0x18, 0xda, 0x9d, 0x3d, 0x22, 0x73, 0x08, + 0x8f, 0xfd, 0xe8, 0x30, 0x8f, 0xc3, 0xc4, 0xf8, 0x1a, 0x24, 0xed, 0x5d, + 0xc0, 0x93, 0x45, 0x3f, 0xfe, 0xcd, 0xb3, 0xc7, 0x47, 0xef, 0x34, 0x9e, + 0x6e, 0x47, 0x27, 0xdb, 0xa9, 0xdb, 0x7b, 0x3a, 0xf5, 0xd5, 0xe1, 0xb7, + 0x2f, 0xbe, 0x7f, 0xa5, 0xd3, 0x77, 0xb7, 0x75, 0xfa, 0xd1, 0xcb, 0x37, + 0x69, 0x6d, 0xf6, 0x5a, 0x29, 0x6a, 0x3b, 0xf9, 0x91, 0xa1, 0x68, 0xa7, + 0xb7, 0xdb, 0x29, 0xc9, 0xe7, 0x2f, 0x1f, 0x3f, 0x7d, 0xf1, 0xf8, 0x65, + 0xca, 0xbe, 0xa9, 0x80, 0x09, 0xf7, 0xb5, 0xc5, 0x40, 0x42, 0x70, 0x78, + 0xb0, 0x49, 0x49, 0x23, 0x8d, 0x13, 0xf2, 0x22, 0x30, 0xa1, 0xb7, 0x59, + 0x04, 0x18, 0x81, 0xc0, 0x3c, 0x04, 0x99, 0x4a, 0xb2, 0x23, 0x53, 0xf3, + 0x55, 0xdd, 0xd6, 0xc9, 0x2f, 0x1f, 0xbf, 0x7d, 0x7e, 0x98, 0x0a, 0x40, + 0xa7, 0xfe, 0x46, 0x26, 0x1b, 0xce, 0x29, 0x0e, 0xe7, 0x1e, 0x05, 0xb2, + 0x98, 0x59, 0x1e, 0x5d, 0x46, 0x97, 0xc6, 0x14, 0x54, 0x1b, 0x9e, 0x37, + 0x16, 0xcd, 0x19, 0x36, 0x3f, 0xfe, 0x18, 0xd7, 0x18, 0xb0, 0x24, 0xf4, + 0x0c, 0xa6, 0x7a, 0x44, 0xb1, 0x5a, 0x5b, 0xe5, 0x48, 0xac, 0x40, 0x99, + 0xb7, 0x16, 0x00, 0xe6, 0x23, 0x47, 0x9c, 0xdf, 0x87, 0xf7, 0xcb, 0xab, + 0x3f, 0xd5, 0xda, 0x45, 0x85, 0xb6, 0xd0, 0x69, 0x32, 0x80, 0x88, 0x93, + 0x7d, 0x2a, 0x21, 0x4c, 0x6e, 0x52, 0x0f, 0x6a, 0x17, 0x91, 0x48, 0x16, + 0x51, 0x50, 0x15, 0xfd, 0x37, 0x03, 0x32, 0x6b, 0x4d, 0x4c, 0x0f, 0x60, + 0xd3, 0x92, 0x90, 0x22, 0xcc, 0xde, 0x8c, 0xff, 0xfc, 0xe7, 0x8b, 0xe3, + 0xe3, 0x39, 0x3d, 0x1f, 0x1f, 0xf7, 0x3e, 0x7c, 0xbc, 0x24, 0x83, 0x49, + 0xb7, 0x02, 0x63, 0x9d, 0xf5, 0x31, 0x5d, 0x10, 0xf9, 0xe0, 0x41, 0x8a, + 0x4d, 0xd4, 0x93, 0xda, 0x85, 0x68, 0xa6, 0xe0, 0xfd, 0xe4, 0xf2, 0xcf, + 0x7f, 0xce, 0xe6, 0x8e, 0x71, 0x91, 0x15, 0xf1, 0x10, 0xf0, 0x05, 0xe2, + 0xb5, 0xa4, 0x39, 0x75, 0xe3, 0x37, 0xa7, 0x01, 0xe8, 0xcd, 0x61, 0xc1, + 0xcf, 0xab, 0x41, 0xed, 0xc1, 0x83, 0xaa, 0xf8, 0x10, 0x7c, 0xec, 0x27, + 0xf8, 0xa8, 0x5d, 0xd6, 0x98, 0xc5, 0xcb, 0x7d, 0x85, 0x05, 0x65, 0x24, + 0xcf, 0xe9, 0x73, 0x88, 0x1a, 0xca, 0x83, 0xf0, 0x61, 0x80, 0x4a, 0x2e, + 0xd0, 0xdc, 0x11, 0xe8, 0x0a, 0x06, 0xab, 0x27, 0x4d, 0x66, 0x45, 0x5d, + 0x11, 0x8d, 0x8b, 0x2a, 0xfb, 0xfd, 0xe0, 0x1b, 0x55, 0xcd, 0x21, 0xfb, + 0xcf, 0xa0, 0xd8, 0xab, 0x86, 0x36, 0x98, 0xf9, 0x5d, 0xc7, 0x05, 0x68, + 0x4e, 0x58, 0xbb, 0x64, 0x86, 0x8d, 0xd0, 0xb4, 0xc4, 0x1c, 0xbb, 0x6a, + 0x8a, 0x0b, 0x15, 0x0d, 0x98, 0xd4, 0xf9, 0x89, 0x11, 0x8a, 0xcb, 0xcb, + 0x6a, 0xad, 0x1e, 0xf6, 0x0d, 0xb4, 0xc5, 0xbe, 0x6a, 0x02, 0xa2, 0x10, + 0xf6, 0x45, 0x73, 0x88, 0xf7, 0xd7, 0xf1, 0xb9, 0xfe, 0x7a, 0x85, 0xa7, + 0x60, 0x15, 0x64, 0xfe, 0xf9, 0xcf, 0x94, 0xb0, 0xaf, 0x68, 0x86, 0x4d, + 0x15, 0x80, 0xd1, 0x4f, 0xf4, 0xaf, 0x7a, 0xd8, 0x64, 0x60, 0x50, 0x0d, + 0x2f, 0x15, 0x58, 0x52, 0x0d, 0xea, 0xa2, 0x56, 0x0f, 0x2e, 0x51, 0xbf, + 0x7a, 0xb4, 0x82, 0x76, 0x3d, 0x04, 0xf5, 0x10, 0x51, 0xac, 0x2d, 0xc8, + 0x26, 0x81, 0xf0, 0x93, 0x7e, 0x5b, 0x74, 0x6b, 0xf5, 0x34, 0x2d, 0x40, + 0x1a, 0x62, 0x05, 0x2b, 0x35, 0xd6, 0x9d, 0x28, 0xcb, 0xe4, 0xd0, 0x0f, + 0x63, 0x4c, 0x7b, 0xc2, 0x1c, 0x93, 0x51, 0x13, 0xf3, 0xba, 0xa7, 0xd8, + 0xeb, 0x0b, 0xfa, 0xf7, 0x5a, 0xf5, 0x08, 0x6d, 0x33, 0x02, 0xbf, 0xf8, + 0x01, 0x91, 0xc7, 0x61, 0xd0, 0x0f, 0xea, 0x51, 0x29, 0xa3, 0x9e, 0x2d, + 0x64, 0x6f, 0x5c, 0x85, 0x07, 0xcf, 0x81, 0x6c, 0xd8, 0x68, 0xbc, 0xd7, + 0x87, 0x30, 0x49, 0xe9, 0x52, 0x1d, 0xaf, 0x49, 0x0c, 0x26, 0xe1, 0xb2, + 0x1e, 0xf7, 0x2f, 0x70, 0x6e, 0x45, 0xf5, 0x08, 0xc6, 0xf3, 0xad, 0x20, + 0xf7, 0xa7, 0x2d, 0xb6, 0xeb, 0xe8, 0x70, 0x65, 0x19, 0xdd, 0xaf, 0xb6, + 0x45, 0xf7, 0x27, 0xaf, 0xdc, 0x64, 0xda, 0xc4, 0x1c, 0x73, 0x14, 0xce, + 0xaa, 0x35, 0x02, 0xfd, 0x7e, 0x4e, 0xd1, 0x53, 0xbd, 0x1d, 0xd1, 0xad, + 0x47, 0xf9, 0x52, 0xcf, 0x31, 0x55, 0x7c, 0xe6, 0x92, 0xa2, 0xf5, 0xda, + 0xcd, 0x6e, 0xdd, 0xe4, 0xbe, 0x43, 0x11, 0x2c, 0x78, 0xf5, 0xb6, 0x51, + 0x8a, 0xf9, 0x48, 0x22, 0x5a, 0xf8, 0x6d, 0x6f, 0xb5, 0xea, 0x23, 0x31, + 0x58, 0x4c, 0x7a, 0xf7, 0xda, 0x97, 0xfb, 0x79, 0xdd, 0xb1, 0x1a, 0x44, + 0x40, 0x91, 0x58, 0x1d, 0x72, 0xc2, 0xbf, 0xb8, 0x94, 0xc2, 0x0f, 0xfb, + 0x2c, 0x64, 0x56, 0xad, 0x63, 0xdf, 0x23, 0xff, 0x53, 0x44, 0xa8, 0x33, + 0xb7, 0x3e, 0xfa, 0x66, 0x5d, 0x29, 0x04, 0xfd, 0xa4, 0x20, 0x51, 0xfa, + 0xe6, 0x16, 0xa2, 0x7e, 0x5b, 0x97, 0xc5, 0x40, 0x3e, 0x3a, 0xe7, 0x79, + 0x0a, 0x42, 0x2b, 0x55, 0x5a, 0x3c, 0xa5, 0x68, 0xb3, 0x54, 0x3a, 0x68, + 0x33, 0x95, 0xa1, 0x12, 0x5e, 0x42, 0xbc, 0xfd, 0x7b, 0x1a, 0x7a, 0x80, + 0x75, 0xb8, 0xe8, 0xfc, 0x9d, 0x0c, 0x3f, 0xf5, 0xc3, 0x41, 0x45, 0xa5, + 0x33, 0xa5, 0xa7, 0xd0, 0x0d, 0x31, 0x32, 0xc0, 0x8a, 0xa3, 0x5f, 0x2d, + 0x04, 0x42, 0xc2, 0x3f, 0x7c, 0x94, 0xa9, 0x61, 0xc0, 0xb0, 0x7d, 0x59, + 0x4d, 0x9d, 0xc6, 0xb5, 0xc8, 0xa5, 0xa9, 0xe2, 0xb9, 0x54, 0xaa, 0x5b, + 0x26, 0xe9, 0x78, 0x8a, 0xa6, 0xf3, 0xc5, 0x1b, 0xa4, 0x67, 0x54, 0x3d, + 0x6c, 0x1e, 0xb3, 0xe0, 0xab, 0x15, 0x2a, 0xe2, 0xf0, 0x0d, 0x7a, 0x4a, + 0x91, 0x93, 0x3e, 0x32, 0x43, 0x39, 0x69, 0x6a, 0xa6, 0x0d, 0x5e, 0x07, + 0xde, 0xb4, 0x33, 0x7c, 0x63, 0x65, 0xf4, 0x92, 0xfd, 0x21, 0xf4, 0x39, + 0x52, 0x4d, 0x5c, 0x0d, 0x53, 0xe1, 0xa8, 0x94, 0x5a, 0x1d, 0x49, 0x0b, + 0x86, 0x55, 0x29, 0x7d, 0xd8, 0x51, 0x0d, 0x5e, 0xb4, 0x1d, 0x80, 0xc6, + 0x0d, 0xbc, 0x98, 0x7a, 0x83, 0x69, 0x24, 0x5f, 0xd6, 0x03, 0xc6, 0x70, + 0x1a, 0x37, 0x2d, 0xf9, 0x22, 0xc1, 0x3c, 0x21, 0x3b, 0x23, 0xce, 0x26, + 0x6c, 0xe9, 0x21, 0x66, 0xd7, 0x06, 0xb9, 0x48, 0xb1, 0x4b, 0x4c, 0x31, + 0xee, 0x86, 0x43, 0xe2, 0x25, 0x30, 0x17, 0x5b, 0x22, 0x54, 0x82, 0x7c, + 0xf0, 0x40, 0xfd, 0xa2, 0xf2, 0x48, 0x35, 0x8a, 0xd5, 0xa4, 0xc4, 0x22, + 0x95, 0xc4, 0xa6, 0x42, 0xb6, 0xe0, 0x90, 0xc4, 0xfa, 0x52, 0x95, 0x22, + 0x15, 0x06, 0xc5, 0xcb, 0x4c, 0xc3, 0xbc, 0x92, 0xb4, 0x97, 0xb4, 0x8d, + 0xe2, 0x4c, 0x37, 0x0f, 0x73, 0xa6, 0xd2, 0xc0, 0x9c, 0x79, 0x28, 0xf0, + 0xa7, 0xd2, 0x6f, 0x85, 0x45, 0x9e, 0x2a, 0x2c, 0x61, 0x90, 0x35, 0x53, + 0xb1, 0x57, 0x17, 0x8a, 0xac, 0x64, 0xc6, 0x2c, 0xf6, 0x56, 0x95, 0x42, + 0x56, 0xde, 0xbd, 0x78, 0x75, 0xf8, 0xe6, 0xfb, 0x77, 0x15, 0xa8, 0x50, + 0x0a, 0xfb, 0x4d, 0x25, 0x91, 0x9a, 0x50, 0xe9, 0x49, 0x30, 0x59, 0x4b, + 0x46, 0xfc, 0xe0, 0x41, 0xfa, 0x93, 0x6b, 0x68, 0xc8, 0x9e, 0x89, 0xa1, + 0x23, 0x69, 0xa7, 0x75, 0xae, 0xe4, 0x44, 0xc0, 0xd9, 0x37, 0x14, 0x00, + 0x61, 0xd2, 0xcc, 0xe7, 0xa4, 0xf1, 0x14, 0xfd, 0x73, 0x59, 0x73, 0x51, + 0xdf, 0xb5, 0x1b, 0xeb, 0xd8, 0xee, 0x18, 0x31, 0x0d, 0x75, 0x05, 0x8b, + 0x82, 0x2a, 0x1a, 0x52, 0xb2, 0xea, 0x8c, 0x05, 0xe9, 0xea, 0x67, 0xb1, + 0x71, 0x29, 0xf5, 0x4b, 0x9b, 0x76, 0x11, 0xf9, 0x7d, 0xa1, 0x7e, 0xf3, + 0xa8, 0x8e, 0x19, 0x7a, 0xac, 0x06, 0xe7, 0xb4, 0xf7, 0xf7, 0x03, 0xf5, + 0x6c, 0x64, 0xa1, 0x28, 0x28, 0x47, 0x41, 0x0e, 0x41, 0xda, 0x45, 0x01, + 0x89, 0x8a, 0x8a, 0xa0, 0x7d, 0xf1, 0x1a, 0x53, 0x87, 0x0b, 0x8c, 0xf7, + 0xbd, 0x62, 0xff, 0x6e, 0x5d, 0xd6, 0xb1, 0xa4, 0x8e, 0x95, 0x34, 0x9a, + 0x57, 0xf7, 0x60, 0x51, 0x81, 0x7d, 0xec, 0x4d, 0x16, 0xfa, 0x19, 0xe2, + 0x5f, 0x8a, 0xfe, 0xcd, 0x77, 0x87, 0xaf, 0x97, 0x22, 0x6e, 0x7f, 0x01, + 0xe2, 0xa7, 0x2f, 0xdf, 0x1c, 0xad, 0x62, 0xba, 0xf3, 0x85, 0xb8, 0x0f, + 0xbf, 0x5d, 0x8a, 0xba, 0x7b, 0x63, 0xd4, 0xa9, 0x3f, 0xb6, 0x9e, 0xe0, + 0x45, 0xd3, 0x00, 0xdd, 0x0a, 0x4d, 0x6a, 0x8d, 0x15, 0xd4, 0x28, 0xfb, + 0x56, 0xe8, 0xa8, 0xc6, 0x59, 0x41, 0x8a, 0x20, 0x6e, 0xab, 0x56, 0xb2, + 0xb9, 0x56, 0x10, 0x93, 0x00, 0xb7, 0x42, 0xcb, 0x8c, 0x61, 0x4b, 0xe9, + 0xc9, 0x1e, 0x78, 0x1a, 0x7f, 0x43, 0x3f, 0x72, 0xc3, 0x60, 0x2f, 0xef, + 0x77, 0xc0, 0xd1, 0x63, 0x24, 0xc6, 0x3a, 0xe5, 0x21, 0xd0, 0xeb, 0x35, + 0x22, 0x72, 0x69, 0x0d, 0x4e, 0x03, 0x50, 0xbb, 0x95, 0xaa, 0x19, 0x77, + 0x6a, 0x69, 0xd5, 0xd8, 0xb7, 0x84, 0x3b, 0x58, 0xcd, 0x3b, 0x60, 0xf5, + 0xd6, 0xed, 0xf0, 0x30, 0x58, 0x8c, 0xc7, 0x02, 0xfb, 0x0d, 0x8f, 0x67, + 0x2b, 0xf9, 0x28, 0x3a, 0x64, 0x4d, 0x14, 0x5a, 0x0c, 0x45, 0xd5, 0x9e, + 0xc7, 0x68, 0xf0, 0x8a, 0xdc, 0x3e, 0xaa, 0xf4, 0xb5, 0xdf, 0x9d, 0x7c, + 0x23, 0xbe, 0xc2, 0x9c, 0x03, 0xeb, 0x92, 0x13, 0x1c, 0x68, 0x4b, 0x1c, + 0x6b, 0x1e, 0xf8, 0x04, 0x5e, 0xa0, 0xcc, 0xe5, 0x6b, 0x5f, 0xf8, 0xd7, + 0xe0, 0x3c, 0x11, 0x2f, 0x19, 0xb6, 0x2e, 0x2e, 0x51, 0xd3, 0xaf, 0xaa, + 0xc5, 0x26, 0xce, 0x32, 0xde, 0xbb, 0x25, 0x71, 0x88, 0x33, 0x0c, 0x05, + 0x31, 0x59, 0xf6, 0x6b, 0x68, 0x9b, 0x29, 0xd4, 0xab, 0x54, 0x6e, 0x85, + 0x0d, 0x3d, 0xde, 0x5c, 0x83, 0x09, 0x5d, 0xe4, 0xb6, 0x58, 0x88, 0x68, + 0x03, 0xf2, 0x08, 0xaf, 0xbd, 0xbd, 0x4e, 0xbf, 0x33, 0x85, 0x7a, 0xb7, + 0x6e, 0x4a, 0x17, 0xd1, 0x75, 0xc4, 0xb1, 0x88, 0xd6, 0x93, 0x84, 0x45, + 0xa2, 0x29, 0x27, 0x16, 0x19, 0x85, 0x36, 0xb3, 0x29, 0x41, 0x6b, 0x0b, + 0x3c, 0xbd, 0x2d, 0x9b, 0xb2, 0xb4, 0xca, 0x67, 0x43, 0x7a, 0x2e, 0x53, + 0xf4, 0x73, 0x56, 0xc9, 0x0e, 0x27, 0xd7, 0x28, 0x55, 0x59, 0x51, 0x03, + 0xc1, 0x14, 0x99, 0x2d, 0xb6, 0x6a, 0x59, 0xa7, 0xaa, 0x87, 0x37, 0x3f, + 0x30, 0x0a, 0x87, 0x1f, 0x47, 0x95, 0x32, 0x20, 0x9c, 0x02, 0xf8, 0x13, + 0x75, 0xde, 0x11, 0xbd, 0x27, 0xc7, 0x39, 0x8d, 0xd3, 0x8e, 0x58, 0xa9, + 0x5d, 0x66, 0x44, 0x91, 0xce, 0x5b, 0x73, 0xe2, 0x58, 0x3d, 0xe7, 0x2b, + 0x4e, 0xe3, 0x8a, 0xb3, 0x46, 0x63, 0x5a, 0xaf, 0xae, 0xb9, 0xea, 0xf6, + 0xc6, 0x4f, 0x66, 0x26, 0xf2, 0x1e, 0x97, 0xac, 0xa8, 0x49, 0xc8, 0x56, + 0x85, 0x27, 0x32, 0x19, 0x6f, 0x74, 0x25, 0x07, 0x7d, 0xc9, 0x01, 0x8f, + 0xcc, 0x4c, 0xdf, 0x48, 0x90, 0x10, 0xc1, 0x85, 0x57, 0xf4, 0xcd, 0x1c, + 0x09, 0x0c, 0x64, 0x01, 0x95, 0x90, 0x25, 0x6c, 0xd1, 0x70, 0xce, 0x17, + 0xf1, 0x14, 0xa5, 0x72, 0x6c, 0xe2, 0x84, 0x5d, 0xc6, 0x1b, 0xcd, 0x09, + 0x3e, 0x37, 0x6f, 0xff, 0x20, 0x3e, 0x3e, 0x78, 0x50, 0x4c, 0x93, 0xb8, + 0x93, 0x42, 0x63, 0xd2, 0x95, 0xf0, 0xd7, 0xc5, 0x5e, 0x2d, 0x26, 0xf6, + 0x4b, 0x28, 0xe2, 0x15, 0x2e, 0xd8, 0xc7, 0x29, 0x9b, 0x47, 0x72, 0x6b, + 0x5e, 0xe6, 0xea, 0xa9, 0x84, 0x64, 0xe8, 0x9b, 0x65, 0x3d, 0x39, 0xc7, + 0xef, 0xb7, 0xf6, 0x93, 0xaf, 0xb1, 0x10, 0xc6, 0x67, 0x1f, 0x63, 0x35, + 0x64, 0xec, 0x27, 0x5f, 0x7d, 0x55, 0x13, 0x1f, 0x92, 0x8f, 0xfd, 0x34, + 0x07, 0x0f, 0xfb, 0x19, 0x57, 0xbc, 0xc9, 0x88, 0x1f, 0x3c, 0xb0, 0x4e, + 0x6c, 0xd2, 0x81, 0x4f, 0xff, 0xbc, 0xaa, 0x52, 0xea, 0x1f, 0xb0, 0x6b, + 0x70, 0x74, 0x50, 0xf9, 0x48, 0xcb, 0x7d, 0x43, 0x37, 0x29, 0xb6, 0xc1, + 0x31, 0xac, 0xcb, 0x6b, 0x58, 0x73, 0x5e, 0xa9, 0xb1, 0x59, 0x94, 0xec, + 0x65, 0xc8, 0x81, 0x53, 0xd1, 0x5c, 0xb1, 0xbc, 0x93, 0x5f, 0x0d, 0x58, + 0xb5, 0x12, 0x84, 0xb5, 0x37, 0x20, 0x2b, 0x5b, 0x64, 0xaa, 0x47, 0x06, + 0x4b, 0x08, 0x2c, 0xa5, 0x0b, 0x51, 0x61, 0xdd, 0xa3, 0xe2, 0xee, 0x59, + 0xb1, 0xf8, 0xd0, 0x14, 0xf7, 0x50, 0xbc, 0x74, 0x81, 0xcb, 0xab, 0x2f, + 0xfa, 0x91, 0x5e, 0x5a, 0xca, 0x77, 0xd9, 0x83, 0x16, 0x34, 0x01, 0xf9, + 0x72, 0x95, 0x6b, 0x1e, 0x9e, 0x56, 0x83, 0x42, 0xb7, 0x6e, 0xb4, 0x6b, + 0xb5, 0x83, 0x21, 0xc3, 0x0d, 0x6b, 0xf5, 0x4c, 0x57, 0x08, 0x20, 0x4d, + 0xec, 0x95, 0xf1, 0x56, 0xff, 0xa2, 0x56, 0x5f, 0xe4, 0xe4, 0x7d, 0xea, + 0x7a, 0x49, 0xb9, 0x9c, 0x35, 0x3f, 0xb4, 0x8a, 0x8a, 0xf1, 0x00, 0x91, + 0xbf, 0x22, 0x33, 0x8f, 0xb3, 0xd6, 0x47, 0x92, 0x7a, 0xae, 0xe5, 0xaa, + 0x68, 0xd7, 0x25, 0x2d, 0xfb, 0x7d, 0xe4, 0x5b, 0xaa, 0xcf, 0xeb, 0x84, + 0x05, 0x67, 0x45, 0xa8, 0xc5, 0x41, 0x45, 0x97, 0x5a, 0x19, 0xea, 0xf3, + 0x89, 0x66, 0x99, 0xfb, 0x04, 0xaf, 0xcb, 0x5b, 0x25, 0x24, 0xe7, 0xd0, + 0x88, 0x2a, 0x83, 0x14, 0xfd, 0x9f, 0x65, 0x28, 0x13, 0x86, 0x4f, 0x9a, + 0x09, 0x36, 0x0a, 0x35, 0x4c, 0x72, 0x99, 0x4c, 0xe9, 0xc2, 0x8d, 0x43, + 0x9e, 0xd5, 0x63, 0xf3, 0xfa, 0x93, 0x4b, 0x37, 0x05, 0x7c, 0xff, 0xf6, + 0x65, 0xce, 0x4a, 0x6b, 0x93, 0xb7, 0x44, 0x84, 0x84, 0xf9, 0x5e, 0x61, + 0x2d, 0xee, 0xc1, 0x83, 0x52, 0x1b, 0x5e, 0xbb, 0x28, 0x59, 0xb5, 0x6b, + 0xc9, 0xd5, 0xae, 0x9c, 0xe2, 0x07, 0xf0, 0xd0, 0xcc, 0x0a, 0x25, 0x54, + 0xd7, 0xac, 0x38, 0x7e, 0x13, 0x5b, 0x39, 0x3d, 0xac, 0xd4, 0x02, 0xb4, + 0xb0, 0xc4, 0x69, 0x2b, 0x65, 0x84, 0x12, 0xc5, 0x35, 0xd0, 0xa8, 0xbe, + 0x40, 0xc1, 0x74, 0x6d, 0xb6, 0xee, 0x9a, 0x02, 0x8b, 0x6f, 0xbc, 0x6a, + 0xad, 0xb7, 0xa0, 0xba, 0x15, 0x54, 0xb5, 0x1f, 0xd6, 0x32, 0xca, 0x07, + 0x56, 0x9c, 0x48, 0xf2, 0x82, 0x6f, 0x8a, 0x25, 0x81, 0xfd, 0x2e, 0x38, + 0xd2, 0x95, 0x83, 0x3e, 0x2d, 0x42, 0xef, 0xe3, 0xfd, 0xa1, 0xe2, 0xa2, + 0x04, 0xed, 0x57, 0x5f, 0x65, 0x55, 0x5a, 0xb1, 0x5b, 0xc4, 0xa4, 0x55, + 0x5f, 0x9a, 0x5b, 0x6d, 0x69, 0x69, 0xb0, 0x4f, 0x55, 0x26, 0x5d, 0x89, + 0xae, 0x4e, 0xfb, 0x2e, 0xd6, 0xbd, 0x3b, 0x30, 0x91, 0x53, 0x3d, 0x35, + 0xab, 0x65, 0x9a, 0xfd, 0x75, 0xe8, 0xc8, 0x76, 0x4f, 0xc5, 0x20, 0x0f, + 0xdb, 0xd3, 0x06, 0xf2, 0x27, 0x0f, 0x51, 0x57, 0x6a, 0x2d, 0x72, 0xca, + 0x56, 0x50, 0x76, 0xa5, 0x6a, 0x8d, 0x15, 0xa9, 0x64, 0xc5, 0x30, 0xd3, + 0x03, 0xaa, 0x82, 0x57, 0x37, 0x6a, 0x97, 0x79, 0x70, 0xda, 0x81, 0xc9, + 0x0c, 0xe2, 0xdf, 0x88, 0xfc, 0x3a, 0x6e, 0x0f, 0x85, 0x0b, 0x92, 0xb8, + 0x00, 0x36, 0x18, 0xb1, 0x74, 0x95, 0xa4, 0x07, 0x98, 0xf4, 0x81, 0x9c, + 0x2c, 0x1a, 0x2d, 0xfb, 0x76, 0xe2, 0x37, 0xd4, 0xaf, 0x5d, 0xee, 0xba, + 0x26, 0xb1, 0xd6, 0x53, 0xa9, 0x28, 0x51, 0x98, 0x72, 0x65, 0x56, 0x33, + 0x0b, 0x6c, 0x51, 0x0a, 0x46, 0x50, 0x5b, 0xe8, 0x06, 0x66, 0xad, 0x35, + 0x55, 0xa1, 0x97, 0xaf, 0x34, 0x08, 0xfa, 0xda, 0x90, 0x0d, 0xc9, 0xa5, + 0xdd, 0xe9, 0x72, 0x60, 0x99, 0xae, 0x67, 0xab, 0x89, 0x5e, 0xb3, 0xd3, + 0x6b, 0x5d, 0xc5, 0xf5, 0xc2, 0x2a, 0x6f, 0x10, 0x55, 0xe5, 0x6f, 0xbd, + 0xf0, 0xa7, 0x00, 0x8b, 0x83, 0xa6, 0x17, 0x97, 0x3a, 0x64, 0xa4, 0xb0, + 0x25, 0x2e, 0xea, 0x15, 0x4e, 0xa7, 0x62, 0xb5, 0xa8, 0xa9, 0xfb, 0xd0, + 0xe5, 0x8b, 0x12, 0x7f, 0xb3, 0xb8, 0xbe, 0xc7, 0xdc, 0xf3, 0x92, 0x99, + 0x66, 0x18, 0x23, 0xea, 0x70, 0x4a, 0x36, 0xb5, 0x20, 0x30, 0xb3, 0x56, + 0xbd, 0x54, 0x5a, 0x12, 0xc4, 0xe1, 0xdb, 0x29, 0x6a, 0x45, 0xbf, 0xb1, + 0x95, 0xc5, 0x58, 0x5c, 0xbb, 0xcb, 0x49, 0xa5, 0xa2, 0xe4, 0xcc, 0xb2, + 0xa7, 0xcd, 0xc2, 0x6f, 0x92, 0xa6, 0x95, 0x04, 0x2e, 0x7b, 0xf4, 0x91, + 0xc1, 0x5a, 0x10, 0x47, 0x9e, 0x59, 0xb3, 0x20, 0x60, 0xf8, 0xce, 0x15, + 0xa9, 0x18, 0x19, 0x97, 0x79, 0x5d, 0x72, 0x2b, 0xa1, 0x52, 0xd8, 0x77, + 0xb8, 0xa2, 0x94, 0xda, 0x29, 0x2b, 0x36, 0xc2, 0x55, 0xe5, 0x94, 0xdb, + 0x59, 0x29, 0x59, 0x4f, 0xbf, 0xb2, 0xac, 0xdc, 0x42, 0x2c, 0xaa, 0x6d, + 0x56, 0x35, 0x65, 0xb7, 0xbb, 0x96, 0xc8, 0x24, 0x7c, 0x51, 0x5e, 0x48, + 0xbf, 0xae, 0xb0, 0x50, 0xe4, 0xfa, 0x92, 0x42, 0xa1, 0x9b, 0x89, 0x09, + 0x05, 0x6f, 0x2a, 0x23, 0xbb, 0x23, 0x66, 0x84, 0x64, 0x67, 0xb0, 0x98, + 0x8a, 0x5b, 0x43, 0x05, 0x90, 0xdc, 0x56, 0x11, 0xd1, 0xc2, 0x26, 0x31, + 0xfe, 0x4f, 0x43, 0x17, 0xe8, 0x76, 0x55, 0x44, 0x2c, 0xe0, 0xc8, 0x15, + 0xde, 0x4f, 0x0b, 0x47, 0x78, 0xc8, 0x91, 0xc0, 0x4d, 0x7d, 0xed, 0x2c, + 0xe0, 0xe8, 0x0e, 0x15, 0x09, 0xd5, 0xef, 0x3b, 0x15, 0x82, 0xf0, 0xe9, + 0xb1, 0x42, 0xf7, 0xa5, 0x98, 0xf4, 0x8a, 0xbe, 0x0e, 0x45, 0x63, 0xac, + 0xb4, 0x1f, 0x75, 0x9a, 0xed, 0xdd, 0xbd, 0x66, 0xbb, 0x83, 0xf7, 0x2e, + 0xb7, 0xbb, 0x15, 0xf9, 0x56, 0x51, 0xde, 0x3e, 0xc7, 0x74, 0x92, 0x46, + 0x15, 0x82, 0x3a, 0xa5, 0x80, 0x84, 0x8a, 0xf3, 0x15, 0x17, 0xc3, 0x57, + 0xa5, 0xb7, 0xd7, 0xae, 0x68, 0xee, 0xd2, 0x13, 0x9d, 0x26, 0xa6, 0xc2, + 0x77, 0x39, 0x28, 0xd8, 0x44, 0x8b, 0x25, 0x74, 0xe6, 0xf7, 0x78, 0x2c, + 0x63, 0xed, 0xee, 0x3f, 0xe3, 0xbf, 0x6c, 0x9e, 0x8e, 0x9d, 0xe5, 0x97, + 0x3b, 0xe7, 0x33, 0x07, 0x32, 0x0e, 0x4f, 0xbd, 0x76, 0x3b, 0x97, 0x97, + 0x04, 0xb2, 0xd8, 0x5e, 0xeb, 0x69, 0xab, 0x90, 0x85, 0xa0, 0x0f, 0x49, + 0x11, 0x58, 0xd3, 0xdc, 0x4f, 0x5e, 0xec, 0x0d, 0x3c, 0xdf, 0x4b, 0x10, + 0x0b, 0xf7, 0xe1, 0xa3, 0x4c, 0x54, 0xe7, 0x7b, 0x8f, 0xa9, 0x7d, 0x29, + 0x9a, 0x4d, 0x9f, 0xdb, 0xcd, 0x06, 0xba, 0xd2, 0x25, 0x39, 0x48, 0x4c, + 0x83, 0xdf, 0x8e, 0x03, 0x15, 0xfd, 0xc6, 0x31, 0x1f, 0x52, 0x1c, 0x72, + 0x4d, 0xc2, 0x08, 0x63, 0x6a, 0x22, 0x5a, 0x35, 0xc2, 0xf4, 0xca, 0xdc, + 0x7c, 0xda, 0x9c, 0x63, 0x55, 0x5b, 0x2a, 0x29, 0xbd, 0x49, 0xb5, 0x00, + 0x06, 0xbf, 0xc1, 0xa4, 0x51, 0x43, 0x0d, 0x03, 0x2a, 0x67, 0x9e, 0x29, + 0xc2, 0x2c, 0x0b, 0x81, 0x0b, 0x1b, 0x33, 0x10, 0xe3, 0xb3, 0x70, 0x6e, + 0x95, 0x11, 0x01, 0xad, 0xa1, 0x50, 0xb9, 0xd3, 0x1e, 0x0e, 0xd6, 0xc1, + 0x77, 0xaa, 0x9b, 0x2a, 0xe1, 0xa6, 0x05, 0x13, 0x72, 0xc3, 0x87, 0x11, + 0x4d, 0x41, 0xd5, 0x70, 0x17, 0xa7, 0x3d, 0xbc, 0xc7, 0x37, 0xa2, 0x8f, + 0x09, 0x7d, 0x0c, 0xe8, 0x63, 0x2a, 0xce, 0x7a, 0x95, 0x96, 0xfa, 0x43, + 0x58, 0xfa, 0x69, 0x87, 0x81, 0xf8, 0x73, 0xc2, 0x9f, 0x83, 0x8e, 0x82, + 0xeb, 0x64, 0x01, 0xbb, 0x0c, 0xc8, 0x9f, 0x13, 0xfe, 0x1c, 0x74, 0x15, + 0x60, 0xd7, 0x02, 0xd4, 0x47, 0x3f, 0xe4, 0xfb, 0x36, 0x02, 0x0e, 0x62, + 0x86, 0x46, 0xab, 0x54, 0x7e, 0x33, 0x04, 0x27, 0xa4, 0xb5, 0xee, 0xec, + 0xb5, 0x3b, 0xe3, 0xb3, 0x63, 0x59, 0x03, 0x8a, 0x01, 0xb1, 0x2b, 0x71, + 0x8c, 0xa5, 0x25, 0x80, 0xd7, 0x4d, 0x2d, 0x63, 0x4b, 0x3f, 0x8c, 0x57, + 0x9b, 0x29, 0x69, 0xde, 0xdf, 0x77, 0x6c, 0x20, 0xec, 0x72, 0x40, 0x7a, + 0x5c, 0x0e, 0x64, 0x64, 0xe8, 0xc5, 0x3a, 0x5d, 0x8c, 0x8c, 0xf4, 0x65, + 0xe4, 0xf8, 0x18, 0x53, 0x8b, 0xe9, 0x31, 0x47, 0xa0, 0xc2, 0x7f, 0x34, + 0x65, 0xe8, 0x46, 0x9f, 0x54, 0x21, 0x4d, 0x1d, 0x64, 0xf0, 0x66, 0x8a, + 0xc6, 0xb4, 0x21, 0xad, 0x6d, 0xbc, 0x48, 0xf6, 0xf9, 0x68, 0x00, 0xbd, + 0xd8, 0x83, 0xae, 0x7a, 0x99, 0x47, 0xe4, 0xcd, 0x50, 0xd8, 0x7f, 0x12, + 0xe3, 0xac, 0x24, 0xc3, 0xa0, 0x27, 0x9b, 0xa8, 0xa5, 0x5f, 0xe3, 0x04, + 0xaa, 0xef, 0xbb, 0xce, 0x2f, 0x62, 0x8a, 0x41, 0x54, 0xaf, 0x9b, 0x3e, + 0x52, 0x2f, 0xd1, 0x1a, 0x9c, 0x3b, 0xcf, 0x91, 0x30, 0x71, 0x9d, 0x5f, + 0x7b, 0x38, 0x06, 0x12, 0xfe, 0xf0, 0x07, 0x14, 0x86, 0x04, 0xfc, 0xf2, + 0xd8, 0xd1, 0xc8, 0xc1, 0xaa, 0x49, 0x74, 0x7e, 0x24, 0xc3, 0xae, 0xa2, + 0x1f, 0xfe, 0x20, 0x0d, 0x6d, 0xf8, 0x53, 0x5c, 0x8d, 0x39, 0xf5, 0xd0, + 0xaf, 0x29, 0x9d, 0x92, 0x4e, 0x9b, 0xb9, 0x23, 0x29, 0x53, 0xd4, 0x40, + 0x4b, 0xf3, 0xc4, 0x44, 0x64, 0x1a, 0xb1, 0x25, 0xdf, 0x34, 0x8e, 0xab, + 0x8d, 0x7c, 0xf8, 0xd4, 0x11, 0xe8, 0xf6, 0x89, 0xc2, 0xc3, 0xfb, 0xf8, + 0xf9, 0xb0, 0x56, 0x97, 0x71, 0xf6, 0x3a, 0x8d, 0x1f, 0x90, 0xca, 0x41, + 0xf6, 0x3a, 0x91, 0x7e, 0x23, 0x8d, 0x23, 0xec, 0xd3, 0x44, 0x7a, 0xa0, + 0x54, 0xa5, 0x5c, 0x3a, 0x59, 0x3e, 0x21, 0x5d, 0xaa, 0x97, 0x4e, 0xc6, + 0x03, 0x51, 0xdb, 0x77, 0x52, 0xde, 0x12, 0x6a, 0xf9, 0x3c, 0x6b, 0x88, + 0xa7, 0xff, 0xb5, 0xeb, 0xeb, 0x42, 0x32, 0x21, 0xe5, 0x31, 0x9b, 0xa9, + 0x93, 0x34, 0xb3, 0xd9, 0x5c, 0x95, 0xa2, 0xb9, 0xce, 0xe5, 0xea, 0x24, + 0xc3, 0x7e, 0x36, 0x3f, 0x4d, 0x4b, 0xeb, 0x91, 0xcd, 0xd7, 0x49, 0xa8, + 0x90, 0x25, 0x6b, 0xd5, 0xfc, 0xdf, 0xca, 0xcb, 0xa9, 0xb8, 0x4e, 0x52, + 0xe9, 0x54, 0x8a, 0x2e, 0x9d, 0x79, 0xc7, 0x59, 0x16, 0x85, 0x7c, 0xcf, + 0xb9, 0x91, 0xc7, 0xcb, 0x81, 0xa6, 0x69, 0x5e, 0x80, 0x8e, 0xe4, 0x8f, + 0xa9, 0x4c, 0xca, 0x00, 0x38, 0xe3, 0xa3, 0x96, 0x4b, 0x19, 0x04, 0xa5, + 0x7f, 0xd4, 0xb2, 0x29, 0x85, 0xe0, 0x8c, 0x8f, 0x46, 0x3e, 0x65, 0x30, + 0x32, 0x07, 0x40, 0xfb, 0x4a, 0xe5, 0x54, 0x95, 0xd4, 0x05, 0x17, 0x46, + 0xa1, 0x75, 0xc6, 0x53, 0x4e, 0xaf, 0xba, 0x3e, 0x70, 0xc9, 0xee, 0x97, + 0x8e, 0xb7, 0x34, 0x3e, 0xdf, 0x43, 0x06, 0x27, 0xac, 0x71, 0x23, 0x98, + 0x7c, 0xcf, 0x1f, 0x86, 0x5c, 0xb6, 0xbd, 0xcd, 0xd4, 0x3e, 0xe9, 0x1b, + 0xc2, 0xcc, 0x7b, 0xe1, 0x99, 0x28, 0xe8, 0xfd, 0x01, 0xa6, 0xbb, 0xfa, + 0xa3, 0x0b, 0x48, 0xaf, 0xc9, 0x77, 0x2e, 0x5e, 0xd6, 0x9d, 0x1f, 0x5d, + 0xb0, 0xa8, 0xac, 0x67, 0x12, 0x8c, 0x7a, 0xac, 0xfd, 0x61, 0x7f, 0x5d, + 0x4e, 0xf0, 0x96, 0xbf, 0x32, 0x4e, 0x3c, 0x58, 0xac, 0xe8, 0xe7, 0xef, + 0x5e, 0xbd, 0x24, 0x17, 0xe1, 0x3e, 0x41, 0x80, 0x85, 0x77, 0x21, 0xa0, + 0xab, 0x1f, 0x48, 0xbe, 0x8a, 0x52, 0xdd, 0x49, 0x79, 0x52, 0x8d, 0xaa, + 0x1f, 0x0c, 0x37, 0x1f, 0xed, 0xdb, 0xd7, 0x20, 0xe9, 0x23, 0x18, 0x22, + 0x29, 0x66, 0x93, 0x9c, 0xf1, 0x9b, 0xa4, 0x35, 0xb3, 0x4b, 0xc9, 0x14, + 0xb0, 0x52, 0x3a, 0x2b, 0x74, 0x2e, 0x28, 0x5d, 0x7a, 0x19, 0x55, 0x74, + 0x53, 0x48, 0x63, 0xa7, 0xd5, 0xd2, 0xe5, 0x2f, 0x1d, 0x5a, 0x2c, 0xb8, + 0x56, 0xd3, 0xb4, 0x2b, 0x57, 0x36, 0x85, 0x91, 0x57, 0x33, 0x02, 0xbd, + 0x4c, 0xc2, 0x24, 0x9f, 0x30, 0xb8, 0x66, 0x83, 0x10, 0xfd, 0x62, 0x03, + 0x58, 0x08, 0x31, 0x54, 0xae, 0x8d, 0x8f, 0xde, 0x99, 0x79, 0xbd, 0xfa, + 0x74, 0x0a, 0x15, 0x2a, 0xa4, 0x0c, 0x3a, 0xd7, 0xac, 0x52, 0x67, 0x8d, + 0x2a, 0x75, 0xd6, 0x46, 0x48, 0xaf, 0xc9, 0xbc, 0x5e, 0x9d, 0xba, 0x85, + 0x3a, 0x15, 0x52, 0x06, 0xdd, 0x6b, 0xd6, 0xa9, 0xbb, 0x46, 0x9d, 0xba, + 0x5a, 0x0b, 0xcd, 0xe0, 0xc6, 0xd7, 0xf5, 0xc1, 0x1e, 0x33, 0x0c, 0xad, + 0x1b, 0xa5, 0x17, 0x3d, 0x9d, 0x4e, 0x31, 0x98, 0x7d, 0xfb, 0xe6, 0x15, + 0x7c, 0x06, 0x7d, 0x5a, 0xcf, 0x18, 0x22, 0x09, 0x0f, 0xc3, 0x1d, 0xfd, + 0x1a, 0xd6, 0xa7, 0xaa, 0x06, 0x57, 0x33, 0xf0, 0xc8, 0xce, 0xe6, 0xf4, + 0x4d, 0x8f, 0x94, 0xa4, 0x65, 0xb7, 0xcc, 0xc2, 0xc8, 0x34, 0x1b, 0x8a, + 0xfb, 0x6b, 0x16, 0x88, 0x93, 0x32, 0x30, 0xd4, 0xf1, 0x73, 0x40, 0x9c, + 0x96, 0x85, 0x32, 0x83, 0x92, 0x01, 0x53, 0x89, 0x36, 0x9c, 0x19, 0x9b, + 0x0c, 0x98, 0x4c, 0x53, 0x50, 0x2c, 0x31, 0x53, 0x7f, 0xe5, 0x7b, 0xa7, + 0x95, 0x5f, 0xd5, 0x44, 0xe6, 0xa5, 0x1d, 0x35, 0x8d, 0x5a, 0x15, 0x37, + 0xf3, 0xaa, 0x2b, 0x30, 0xa4, 0x6e, 0x7c, 0x11, 0x45, 0x9a, 0xb5, 0x16, + 0x0e, 0x72, 0xfb, 0x8b, 0x38, 0x74, 0xd6, 0x7a, 0x38, 0x68, 0x9e, 0x50, + 0xc4, 0x91, 0x66, 0xad, 0x85, 0x83, 0xe6, 0x15, 0x45, 0x1c, 0x69, 0xd6, + 0x15, 0x38, 0xec, 0xbb, 0xfb, 0x8b, 0x58, 0x78, 0x92, 0x72, 0x65, 0x55, + 0xcc, 0xf9, 0x98, 0x52, 0x0c, 0x94, 0xb1, 0x1e, 0x0a, 0x4c, 0x77, 0x4a, + 0x31, 0x20, 0x7d, 0x3d, 0x04, 0xf2, 0xbc, 0x85, 0x85, 0xa3, 0xaa, 0x90, + 0xe8, 0xb9, 0x93, 0xf3, 0x80, 0xce, 0x5b, 0xd4, 0xd6, 0xc6, 0x46, 0x27, + 0x2f, 0xae, 0x40, 0xd7, 0xee, 0xac, 0x8f, 0x8e, 0xcf, 0x41, 0xac, 0xc6, + 0x77, 0x0d, 0xe6, 0x28, 0x56, 0x63, 0x35, 0xb2, 0x5d, 0x20, 0x2b, 0xb5, + 0x4f, 0xa5, 0x46, 0xc9, 0xf4, 0x49, 0x86, 0x95, 0x53, 0x06, 0xb6, 0xbd, + 0xa6, 0x67, 0x02, 0x8f, 0x7c, 0x2f, 0xd2, 0x60, 0xa2, 0x10, 0x71, 0xba, + 0xf2, 0x0b, 0x0b, 0x96, 0xbb, 0xd4, 0xc7, 0x69, 0x21, 0x9a, 0xe4, 0x0f, + 0xb6, 0x11, 0x5b, 0x55, 0xb2, 0x55, 0xcf, 0x7a, 0x44, 0x5c, 0xd6, 0x98, + 0xb6, 0xd5, 0x45, 0x51, 0x38, 0xef, 0x3e, 0x19, 0x83, 0xb7, 0x9a, 0x5f, + 0x06, 0xd1, 0x34, 0x97, 0x3d, 0x1a, 0xac, 0xc6, 0x40, 0xae, 0x46, 0x2b, + 0x61, 0x34, 0xa2, 0xd5, 0xcf, 0x06, 0x33, 0xcd, 0x05, 0xf9, 0x7a, 0xdf, + 0xbe, 0x45, 0x04, 0x87, 0xae, 0xfd, 0x11, 0x1f, 0xd4, 0xfb, 0xd0, 0xfa, + 0xb8, 0x6f, 0x5c, 0x56, 0x1b, 0x85, 0x73, 0xd0, 0x77, 0xda, 0x7b, 0x99, + 0x1b, 0x75, 0x19, 0x51, 0x93, 0xb7, 0x31, 0x5e, 0xbb, 0x33, 0x28, 0x4e, + 0x36, 0x81, 0xb6, 0xc5, 0xe0, 0x17, 0x23, 0xa8, 0x68, 0xeb, 0xf7, 0x03, + 0xfd, 0x3a, 0xcf, 0xdf, 0x0f, 0xb6, 0x26, 0x75, 0xa7, 0x82, 0x47, 0x9c, + 0x69, 0x39, 0xa9, 0x64, 0x5d, 0xb0, 0x9b, 0xe3, 0x26, 0x64, 0x0a, 0xb5, + 0xa6, 0x64, 0x70, 0xff, 0xf0, 0x07, 0xa9, 0xc6, 0xa9, 0x17, 0x5d, 0x15, + 0x55, 0xee, 0x86, 0xfa, 0x76, 0x53, 0x65, 0xbb, 0xa9, 0xa6, 0xdd, 0x85, + 0x9a, 0xdd, 0xaa, 0x8e, 0x69, 0x13, 0x31, 0x9c, 0xd2, 0x5b, 0x3b, 0x9d, + 0x88, 0x3f, 0x39, 0x9f, 0x56, 0x0c, 0x94, 0x1f, 0x23, 0xe7, 0xc5, 0xc6, + 0x48, 0x28, 0xe8, 0xb7, 0xf4, 0x21, 0x87, 0xfb, 0xa2, 0xf3, 0x52, 0x5c, + 0xaf, 0x7d, 0x28, 0x4b, 0x3d, 0xac, 0x3b, 0xd5, 0x5a, 0xff, 0xe0, 0x22, + 0x33, 0x83, 0x98, 0xb9, 0x27, 0x38, 0xe8, 0x84, 0x6b, 0x69, 0x52, 0xcf, + 0xc9, 0xc5, 0x6f, 0x94, 0x16, 0xb4, 0x42, 0x30, 0xc0, 0x65, 0x03, 0xb4, + 0x2a, 0xd0, 0xc2, 0x2a, 0x08, 0x9d, 0x87, 0xcf, 0x1c, 0xd5, 0x4f, 0xad, + 0x20, 0xbf, 0x71, 0x4d, 0xb1, 0x93, 0xb2, 0x61, 0x4d, 0x67, 0xb4, 0x7e, + 0xe9, 0xde, 0x92, 0x9d, 0x20, 0xf1, 0x92, 0x6b, 0xbb, 0xe6, 0xd8, 0x2e, + 0xa6, 0xed, 0x7a, 0x5d, 0x5d, 0xb8, 0x93, 0x2d, 0xdc, 0xb9, 0x5e, 0xe9, + 0x6e, 0xb6, 0x74, 0x77, 0x49, 0xe9, 0xa2, 0x79, 0x36, 0x99, 0xb9, 0x89, + 0x6d, 0xda, 0x9f, 0x6a, 0x76, 0x0f, 0xd8, 0x64, 0xeb, 0x30, 0xc1, 0xd2, + 0xf6, 0xb1, 0x58, 0x51, 0xb3, 0xcc, 0x1b, 0xb6, 0xd1, 0x44, 0xbb, 0xbe, + 0xeb, 0xca, 0xb9, 0x93, 0x2d, 0xde, 0xb9, 0x6e, 0xf9, 0x6e, 0xb6, 0x7c, + 0x57, 0x97, 0xbf, 0xd5, 0x96, 0x22, 0x7b, 0xb2, 0xc9, 0x86, 0x22, 0x7a, + 0xa5, 0xed, 0x64, 0x18, 0x91, 0xf3, 0xff, 0x1b, 0xb6, 0xd2, 0x40, 0xcd, + 0x3d, 0xd6, 0x15, 0x72, 0x27, 0x5b, 0xba, 0x73, 0xcd, 0xe2, 0xdd, 0x6c, + 0xf1, 0xae, 0x2a, 0x7e, 0xab, 0x4d, 0x44, 0x06, 0x7a, 0xa3, 0x6d, 0x44, + 0x04, 0xcb, 0x1b, 0xc9, 0x62, 0x45, 0xae, 0xa1, 0xdd, 0xb4, 0x99, 0x4e, + 0xd5, 0xec, 0x6f, 0x6d, 0x41, 0x77, 0xb2, 0xc5, 0x3b, 0xd7, 0x2d, 0xdf, + 0xcd, 0x96, 0xef, 0xaa, 0xf2, 0xb7, 0xdb, 0x52, 0x72, 0xd0, 0xdb, 0x64, + 0x53, 0x49, 0x8a, 0xa5, 0x6d, 0x65, 0x33, 0xa3, 0x57, 0x33, 0x0b, 0xad, + 0x25, 0x85, 0x62, 0xb6, 0x49, 0x52, 0xe7, 0xef, 0x7a, 0x72, 0xd1, 0x2b, + 0x73, 0x4f, 0x52, 0x44, 0xb7, 0xbb, 0x3c, 0x67, 0x18, 0x2c, 0x59, 0xa3, + 0xab, 0x99, 0x35, 0x81, 0xcd, 0xba, 0x04, 0x4c, 0xb0, 0x54, 0xf6, 0x16, + 0x2b, 0x6a, 0x1d, 0x7d, 0x89, 0xe4, 0x39, 0x2f, 0xb7, 0x76, 0x51, 0x14, + 0xeb, 0x11, 0xe5, 0xde, 0xae, 0x44, 0x99, 0xe0, 0x12, 0x61, 0x5e, 0x1a, + 0xff, 0x2b, 0x53, 0xab, 0x40, 0x55, 0x68, 0xb8, 0x88, 0xf0, 0x6d, 0x2d, + 0x61, 0xab, 0x1c, 0x3d, 0x1d, 0x20, 0x29, 0x65, 0x66, 0x03, 0xae, 0x8f, + 0x28, 0xef, 0xaa, 0xbe, 0x73, 0xea, 0x83, 0xde, 0x17, 0x6e, 0x52, 0xca, + 0xc7, 0x0f, 0x15, 0xeb, 0x9e, 0xa2, 0x4a, 0x66, 0xc1, 0x37, 0x83, 0xb6, + 0xaf, 0xe8, 0x66, 0xe6, 0x05, 0x05, 0xe2, 0x5f, 0x3b, 0xad, 0xeb, 0x92, + 0xa6, 0x3b, 0x8e, 0xae, 0x41, 0xd7, 0xde, 0x97, 0xca, 0x40, 0x1a, 0x1f, + 0x37, 0xb7, 0x1f, 0x46, 0xef, 0xf1, 0x88, 0x10, 0xf6, 0x94, 0x5f, 0x8f, + 0xe3, 0x7c, 0x9e, 0xf7, 0x9a, 0x19, 0x98, 0xdc, 0x77, 0xeb, 0x73, 0x38, + 0x24, 0x6b, 0x70, 0xaa, 0xb9, 0x9a, 0x41, 0xe8, 0x64, 0x89, 0x7a, 0xb3, + 0xdf, 0xcc, 0xda, 0xed, 0xf4, 0x0f, 0x9c, 0x8b, 0xa5, 0x26, 0x6b, 0xdd, + 0x1e, 0x5d, 0xf0, 0xbb, 0xed, 0xdc, 0xfc, 0x72, 0x62, 0x56, 0x65, 0xdf, + 0xa1, 0xb3, 0x4e, 0xe8, 0xe2, 0xbe, 0xe0, 0x29, 0x23, 0x51, 0x75, 0x4a, + 0x42, 0xd6, 0x4c, 0xe9, 0xf2, 0x9b, 0x02, 0xc6, 0x8d, 0x27, 0x4e, 0x29, + 0xb4, 0x48, 0x56, 0x9b, 0x0b, 0x65, 0xd4, 0xd2, 0x72, 0x2d, 0xff, 0x9f, + 0x04, 0xc0, 0x15, 0xba, 0x96, 0x08, 0xc8, 0xc3, 0xf8, 0x7f, 0x92, 0x00, + 0xd5, 0xe7, 0x5a, 0x02, 0xf0, 0xc6, 0xe9, 0x42, 0x94, 0x15, 0x9e, 0xb0, + 0xde, 0x16, 0x1a, 0x8d, 0xfa, 0xb4, 0xa2, 0x35, 0x77, 0x23, 0xa4, 0xd1, + 0xd2, 0x46, 0x66, 0x2d, 0xa1, 0x52, 0xc9, 0xad, 0x3b, 0xac, 0xf9, 0xae, + 0x9e, 0xab, 0xd0, 0xca, 0xb7, 0x29, 0x69, 0xe4, 0xe5, 0x9e, 0x56, 0x2b, + 0x9b, 0x9b, 0x71, 0x58, 0xae, 0xc8, 0xee, 0x5c, 0x91, 0xdf, 0xb5, 0xf2, + 0xd9, 0x48, 0x69, 0xea, 0xff, 0x57, 0x8a, 0x44, 0x15, 0xba, 0x9e, 0x26, + 0x49, 0xc7, 0xe2, 0x3a, 0x32, 0xf8, 0xef, 0xa8, 0xa9, 0xe4, 0xfb, 0x5a, + 0x55, 0xc5, 0x88, 0x7f, 0xbd, 0x91, 0x63, 0x63, 0x95, 0x01, 0x67, 0x6b, + 0x0f, 0x02, 0x97, 0xf6, 0xdd, 0x39, 0x2f, 0x66, 0x73, 0xd9, 0x07, 0x5d, + 0x35, 0xa8, 0x8e, 0x04, 0xa5, 0x6f, 0x65, 0xb6, 0x7e, 0xce, 0xe8, 0xe2, + 0x9c, 0xea, 0x22, 0x82, 0xe3, 0x32, 0x0f, 0xe9, 0xa6, 0x71, 0x8a, 0x29, + 0xa5, 0x25, 0xad, 0x9a, 0x63, 0xc6, 0x5d, 0x40, 0x45, 0x6a, 0xd4, 0xfd, + 0xcd, 0xab, 0x97, 0x3f, 0x47, 0x89, 0xb7, 0xe2, 0x4f, 0x58, 0x99, 0x4a, + 0x74, 0xcd, 0x08, 0x00, 0xa7, 0xd0, 0xf9, 0xfc, 0x50, 0x4c, 0xe7, 0x87, + 0xa4, 0x74, 0x50, 0xc6, 0x76, 0xad, 0x32, 0xd3, 0x10, 0x19, 0xc3, 0x67, + 0x4e, 0x1c, 0xf1, 0x3c, 0x64, 0xdb, 0x79, 0xf0, 0xc0, 0xe1, 0x0c, 0xc2, + 0xb2, 0x88, 0xe5, 0xe4, 0xa6, 0x55, 0xfa, 0x3e, 0xb2, 0x44, 0xba, 0x02, + 0x0a, 0x4d, 0x3c, 0x0f, 0x11, 0xb5, 0x46, 0xf7, 0xd1, 0x29, 0x8e, 0x6c, + 0x52, 0x1a, 0xfa, 0x1e, 0xb0, 0x3d, 0x7c, 0x08, 0x1a, 0x69, 0x52, 0xcd, + 0x60, 0x36, 0x7f, 0xa9, 0x0c, 0x52, 0x28, 0x0b, 0xa7, 0xb1, 0x7e, 0x2b, + 0x4b, 0x56, 0x8e, 0x16, 0xc3, 0x21, 0x5c, 0xa7, 0x7b, 0x95, 0x42, 0x61, + 0xf9, 0x58, 0xc4, 0x73, 0xa5, 0x70, 0x6a, 0x16, 0xfa, 0xc3, 0xb7, 0x6f, + 0xdf, 0xbc, 0xbd, 0xe7, 0x14, 0xde, 0x71, 0x25, 0xe9, 0xe5, 0x68, 0x5d, + 0x5a, 0x6b, 0xd3, 0xd4, 0xca, 0x35, 0x6e, 0x2f, 0xbe, 0xaf, 0xa2, 0xf2, + 0xdd, 0x1b, 0xba, 0xaa, 0xca, 0x61, 0x0d, 0x48, 0xa2, 0xd4, 0x09, 0x97, + 0x9c, 0x19, 0xb0, 0xe7, 0x87, 0x65, 0x50, 0x0c, 0x40, 0x4a, 0xcb, 0x68, + 0xf3, 0xde, 0x31, 0x46, 0x01, 0xbe, 0xce, 0x36, 0x6d, 0x7b, 0xa5, 0x6d, + 0x15, 0xfa, 0xcc, 0x85, 0x46, 0x6e, 0x01, 0x98, 0x03, 0xcc, 0x70, 0xe2, + 0x54, 0x85, 0x72, 0x59, 0x77, 0x03, 0x31, 0x02, 0xd3, 0x83, 0x32, 0x6f, + 0xa3, 0x7b, 0x2e, 0x9d, 0x56, 0x19, 0x79, 0xc6, 0xb7, 0x3c, 0x20, 0x52, + 0xd1, 0xc5, 0x3b, 0xba, 0x8e, 0xde, 0xf5, 0x80, 0xab, 0x30, 0xfb, 0x16, + 0xd4, 0xfe, 0x58, 0x10, 0x5e, 0x0c, 0xe4, 0xf1, 0x14, 0x2c, 0x1d, 0xef, + 0xd6, 0x58, 0x35, 0x94, 0x50, 0x2b, 0x79, 0x9d, 0x50, 0xa8, 0xfb, 0xce, + 0x2f, 0x8e, 0xde, 0xbc, 0xa6, 0x31, 0x8c, 0xaf, 0x5a, 0x28, 0xd1, 0x33, + 0x75, 0xcc, 0x65, 0xa6, 0x76, 0x04, 0x18, 0xa9, 0xb9, 0x7f, 0x27, 0x87, + 0xb7, 0x40, 0x20, 0xbd, 0xa8, 0x01, 0x66, 0x7a, 0x96, 0x5a, 0x1b, 0xf3, + 0x97, 0xa3, 0xc6, 0x60, 0x4d, 0x6c, 0xb8, 0x72, 0x85, 0xd2, 0x07, 0x75, + 0x54, 0xcc, 0xbc, 0xc5, 0x2f, 0xf7, 0x57, 0x18, 0x03, 0x99, 0xb6, 0x3c, + 0x31, 0x77, 0xa1, 0xee, 0x77, 0x36, 0xd8, 0xea, 0x78, 0x6d, 0xa2, 0x7c, + 0x64, 0x38, 0x3d, 0x9d, 0x34, 0x7f, 0x45, 0xcd, 0x2e, 0x26, 0x5f, 0xbb, + 0x07, 0xe8, 0xf6, 0x55, 0x17, 0x7a, 0xac, 0xfd, 0x8e, 0x41, 0x1c, 0x97, + 0x1d, 0xe2, 0x01, 0x53, 0x99, 0x5c, 0xfc, 0x80, 0x9e, 0xe1, 0xc0, 0x21, + 0x92, 0x48, 0x53, 0x8c, 0xe6, 0xa2, 0xc7, 0xa3, 0x00, 0x1d, 0x6b, 0xe0, + 0x46, 0x55, 0x1b, 0x38, 0xbd, 0x61, 0xb8, 0xee, 0xa8, 0x30, 0x67, 0x9e, + 0x10, 0xb6, 0xca, 0x3a, 0x19, 0xa5, 0x15, 0x3a, 0xc0, 0x53, 0x76, 0xc4, + 0xd6, 0xea, 0x01, 0xd2, 0x67, 0xbb, 0x52, 0xfd, 0x4b, 0x95, 0x5f, 0x96, + 0xbd, 0x75, 0xc5, 0xe7, 0xeb, 0xaa, 0xd6, 0x52, 0x7d, 0x40, 0xa5, 0xa5, + 0x97, 0x74, 0x0b, 0x80, 0xa4, 0x31, 0x02, 0x4e, 0xa1, 0x6f, 0xa8, 0x2a, + 0x18, 0x88, 0x7e, 0xa6, 0xc0, 0xfe, 0x95, 0xa8, 0xd3, 0xd8, 0x81, 0xa5, + 0xa8, 0x0d, 0x44, 0x3f, 0x5b, 0x62, 0x4d, 0xe4, 0x08, 0x2a, 0x58, 0x8e, + 0xdc, 0x40, 0xf4, 0x33, 0x25, 0xd6, 0x45, 0x4e, 0xd1, 0x06, 0x4b, 0x91, + 0x1b, 0x88, 0x7e, 0xb6, 0xc4, 0x9a, 0xc8, 0x29, 0x0c, 0x61, 0x29, 0x72, + 0x03, 0xd1, 0xcf, 0x96, 0xb8, 0x1a, 0xb9, 0x8c, 0x4e, 0x40, 0xfa, 0x32, + 0xe4, 0x1a, 0xa2, 0x6f, 0xc0, 0xd7, 0x10, 0x88, 0x0a, 0x59, 0x70, 0x9c, + 0xf5, 0x2d, 0xa8, 0x22, 0x67, 0x4a, 0xf6, 0x6d, 0x4c, 0xcb, 0x8c, 0x56, + 0x71, 0x9a, 0x54, 0x88, 0x9b, 0x80, 0x1d, 0x19, 0xfa, 0x0b, 0x1a, 0xc5, + 0x2a, 0xef, 0x79, 0x6c, 0x5d, 0xc3, 0xea, 0x65, 0xab, 0xa3, 0xe2, 0x27, + 0x56, 0x48, 0x49, 0x43, 0xf4, 0x2d, 0xf0, 0xb5, 0xa4, 0xf4, 0xef, 0xf6, + 0xae, 0x85, 0xb9, 0x71, 0x1a, 0x08, 0xff, 0x15, 0x13, 0x60, 0xea, 0x70, + 0x49, 0xdb, 0xa4, 0xd7, 0x03, 0xae, 0x14, 0x06, 0xee, 0x78, 0xdc, 0x0c, + 0xaf, 0xb9, 0x3b, 0x5e, 0xd3, 0xe9, 0xdc, 0x24, 0xad, 0xdb, 0x06, 0xd2, + 0xa4, 0xd8, 0x2e, 0xd7, 0x0e, 0x94, 0xe1, 0x1f, 0xf2, 0x97, 0xf8, 0x76, + 0x25, 0x59, 0x4f, 0xdb, 0xb2, 0x69, 0x81, 0x01, 0x3a, 0x70, 0x49, 0xec, + 0xdd, 0xd5, 0x6a, 0xb5, 0x92, 0x56, 0xd2, 0x6a, 0x97, 0xbd, 0x0c, 0x6a, + 0xc9, 0x6a, 0x88, 0x7d, 0x0b, 0xe1, 0x3f, 0x31, 0x1c, 0x47, 0xae, 0x84, + 0xff, 0xd4, 0xb2, 0x95, 0x16, 0xac, 0xed, 0x36, 0x61, 0x6f, 0xf2, 0xf6, + 0xaa, 0x38, 0x7e, 0x65, 0x1c, 0xb1, 0x3a, 0x8e, 0x59, 0x21, 0x37, 0xad, + 0x92, 0xb9, 0xc6, 0xe1, 0x4d, 0x51, 0x6e, 0x3d, 0x61, 0xf7, 0x91, 0xc9, + 0x30, 0x4a, 0x38, 0xc7, 0x30, 0x0b, 0x3d, 0x60, 0xbd, 0x11, 0xe0, 0xc3, + 0x84, 0xe6, 0x41, 0x02, 0xde, 0x64, 0xfb, 0x83, 0x66, 0xc3, 0x64, 0x9c, + 0x3c, 0x79, 0x6c, 0xbc, 0x58, 0x1c, 0xcb, 0xa7, 0x9f, 0xb0, 0x50, 0x8c, + 0x37, 0x42, 0x4a, 0x43, 0xc3, 0x4f, 0x83, 0x92, 0x43, 0xef, 0x2b, 0xb1, + 0xab, 0x20, 0x95, 0x52, 0xf2, 0xe9, 0xe0, 0xf1, 0x93, 0xaf, 0x07, 0x26, + 0x74, 0x71, 0xb1, 0x6a, 0x80, 0x7e, 0xf6, 0xe5, 0xfb, 0x9f, 0x03, 0xdc, + 0x72, 0x02, 0x69, 0x00, 0x7f, 0x62, 0xc1, 0xce, 0xcb, 0x26, 0xd2, 0x1f, + 0x7c, 0xf5, 0xfc, 0xf9, 0x17, 0x36, 0xf1, 0x79, 0x27, 0xce, 0xcb, 0xab, + 0xd2, 0x87, 0xc6, 0x12, 0x88, 0x55, 0x29, 0x75, 0xe4, 0x99, 0x3a, 0xa2, + 0x1c, 0x2a, 0x52, 0x54, 0x28, 0x45, 0x08, 0xc8, 0xe0, 0xe5, 0x49, 0xfe, + 0x2c, 0x29, 0xc8, 0x1a, 0xaf, 0x6c, 0x95, 0xb4, 0x92, 0x61, 0x4b, 0x20, + 0x3c, 0xb3, 0xf0, 0x81, 0x34, 0x34, 0x5e, 0x61, 0xc4, 0x22, 0x54, 0x95, + 0x66, 0x5b, 0xbf, 0x21, 0x46, 0xf6, 0x15, 0x4b, 0xfa, 0x31, 0x47, 0x33, + 0xc3, 0xad, 0x22, 0xbc, 0xf3, 0xf6, 0xe5, 0x09, 0x38, 0x95, 0x18, 0xb4, + 0x3b, 0xaf, 0xb1, 0x2c, 0x36, 0x9d, 0x04, 0xec, 0x66, 0xa1, 0xb5, 0x9e, + 0xad, 0xd5, 0xde, 0x77, 0x75, 0x09, 0x4a, 0x22, 0xa1, 0xc1, 0x6d, 0xe2, + 0xec, 0x06, 0x44, 0xff, 0x8c, 0x39, 0x7d, 0xb9, 0x9b, 0xf0, 0x5b, 0xa3, + 0x59, 0x63, 0x5e, 0x6a, 0x28, 0x2b, 0x2f, 0xe7, 0x78, 0x19, 0x95, 0xbc, + 0x97, 0x0c, 0xf8, 0x10, 0xe1, 0xc5, 0x7c, 0x7d, 0xf5, 0x02, 0x67, 0x11, + 0xa0, 0x98, 0xc9, 0x34, 0xe8, 0xc9, 0x43, 0xe3, 0x9d, 0x41, 0xb6, 0x4e, + 0x40, 0xe5, 0xfa, 0xf4, 0x74, 0x99, 0x89, 0x4e, 0xc7, 0xcb, 0x62, 0x2d, + 0x21, 0x52, 0xf2, 0x86, 0xb1, 0x05, 0xaf, 0xed, 0x26, 0x44, 0x29, 0x95, + 0x13, 0x9c, 0xa3, 0x1d, 0x00, 0xad, 0x7b, 0x35, 0x2f, 0xcd, 0x57, 0x56, + 0x79, 0x3a, 0x9b, 0x7e, 0x52, 0x9c, 0x3f, 0x48, 0xce, 0x8f, 0xef, 0x27, + 0x4b, 0x9c, 0xd9, 0x5f, 0x2d, 0xa7, 0xa4, 0x96, 0x69, 0xbd, 0x70, 0x12, + 0xf1, 0x90, 0x85, 0x31, 0x68, 0x75, 0xcc, 0x13, 0x0b, 0xc8, 0xa1, 0xc5, + 0x15, 0x58, 0x71, 0x47, 0xa8, 0x3c, 0xd3, 0xf9, 0x4f, 0x84, 0x69, 0xde, + 0x6f, 0x1e, 0x1b, 0xec, 0xec, 0xbc, 0x3e, 0xd8, 0x8b, 0xc6, 0x1e, 0x1f, + 0xaf, 0x57, 0x44, 0x02, 0xaa, 0xf6, 0x7e, 0x09, 0x13, 0x1c, 0x3d, 0x22, + 0xe3, 0x20, 0x09, 0xeb, 0x1f, 0xf0, 0x6e, 0x56, 0x9c, 0xcd, 0xf2, 0x9c, + 0x22, 0x44, 0x10, 0xdd, 0xd1, 0x64, 0x7b, 0x3b, 0xaa, 0xbe, 0xd0, 0x3b, + 0xd9, 0x1f, 0x1b, 0x26, 0x59, 0x33, 0xe1, 0xcb, 0x5e, 0xeb, 0x42, 0xe4, + 0x72, 0xc1, 0x7b, 0x38, 0x88, 0xad, 0xbc, 0x5e, 0xb5, 0x2e, 0x47, 0x9c, + 0xf1, 0xdc, 0x16, 0xad, 0xbb, 0x0c, 0x29, 0xcf, 0x2f, 0xf4, 0xb5, 0xc7, + 0xb8, 0x15, 0xc9, 0x7b, 0xf6, 0xd2, 0x03, 0x7a, 0xf0, 0xf3, 0x8d, 0xbd, + 0x9d, 0xf6, 0x54, 0x78, 0xb4, 0x55, 0xc9, 0xd0, 0xab, 0x12, 0x5e, 0x2e, + 0xca, 0x33, 0x11, 0xc4, 0x3e, 0x81, 0xe0, 0x0b, 0x8d, 0x74, 0x82, 0x1e, + 0x9f, 0xca, 0x3b, 0x98, 0x98, 0x9e, 0x2a, 0x8c, 0x61, 0x68, 0x2b, 0xe6, + 0x15, 0xf5, 0xd6, 0x8d, 0xb3, 0x8c, 0xe7, 0x43, 0x36, 0xb5, 0xf0, 0xf6, + 0x32, 0xab, 0xdd, 0x0e, 0x48, 0x8d, 0x4a, 0xd3, 0x09, 0xdb, 0xe1, 0xd0, + 0xb7, 0xd7, 0xac, 0xf7, 0x90, 0x8c, 0x8b, 0x12, 0x36, 0x6f, 0x38, 0xac, + 0x4b, 0x25, 0xec, 0x3e, 0xcb, 0x3d, 0xb9, 0x69, 0xa4, 0x13, 0xa0, 0xd2, + 0xcc, 0x61, 0x93, 0x62, 0xab, 0x46, 0x35, 0x31, 0x65, 0xae, 0x91, 0x7b, + 0x4f, 0xc9, 0xd2, 0x49, 0x2f, 0xae, 0xdb, 0xda, 0xb7, 0x09, 0x5c, 0x56, + 0xb5, 0x31, 0x90, 0x7c, 0xa6, 0x8e, 0x97, 0x75, 0xba, 0x7a, 0x99, 0xd9, + 0xbf, 0x48, 0xe8, 0x4a, 0x10, 0x86, 0x63, 0x91, 0xf7, 0x3e, 0x39, 0xc9, + 0xd7, 0xe7, 0x2a, 0xcd, 0xbd, 0x99, 0x21, 0x7f, 0x53, 0x6f, 0x6e, 0x59, + 0x07, 0x98, 0xa2, 0xae, 0x18, 0x3b, 0x50, 0x9c, 0xdf, 0xf6, 0x4c, 0x14, + 0x8d, 0x6f, 0xf6, 0x93, 0x70, 0xfb, 0x1b, 0x00, 0xae, 0x0a, 0x10, 0x0d, + 0x5f, 0x07, 0xc2, 0x5d, 0x83, 0x61, 0x6b, 0xb5, 0xa4, 0xf6, 0x10, 0x96, + 0xd0, 0xa0, 0x32, 0xfb, 0xae, 0xca, 0x34, 0xc2, 0xdb, 0xdd, 0x9f, 0x9f, + 0xb9, 0x3a, 0xa4, 0x3f, 0x94, 0x28, 0xb3, 0xb4, 0x1a, 0x67, 0xe6, 0xeb, + 0xe3, 0x6b, 0x77, 0xf0, 0x91, 0xb6, 0xc4, 0x7e, 0x5d, 0xc9, 0xe2, 0x3d, + 0x90, 0x2a, 0xbb, 0xd1, 0xde, 0xd5, 0xa2, 0x5f, 0xce, 0xae, 0x96, 0x35, + 0xea, 0xf3, 0x38, 0xa3, 0xf0, 0xbd, 0x06, 0xd5, 0x97, 0x8f, 0x37, 0xd9, + 0x9e, 0xfc, 0xe2, 0xa4, 0xb2, 0x03, 0xb0, 0xd5, 0x35, 0x9e, 0xe8, 0xa6, + 0x0b, 0xd2, 0x2e, 0xf3, 0x40, 0xeb, 0xf0, 0x26, 0xeb, 0x6b, 0x28, 0x22, + 0xe5, 0x6f, 0xcc, 0xae, 0x34, 0x57, 0x47, 0x8c, 0x1f, 0x5e, 0x56, 0xd8, + 0x06, 0xae, 0xad, 0xf3, 0x7e, 0xb3, 0x6b, 0x49, 0x38, 0x7d, 0x82, 0x47, + 0x26, 0xbf, 0x4b, 0x90, 0x6a, 0x42, 0x64, 0xe7, 0x8f, 0x81, 0x27, 0xf7, + 0xdc, 0x3f, 0x92, 0x3f, 0x53, 0xcb, 0x54, 0x5c, 0xae, 0xe7, 0xf2, 0xfd, + 0x07, 0xf8, 0x9a, 0x1e, 0xf0, 0x30, 0x29, 0xba, 0xfa, 0xe2, 0xe4, 0xba, + 0x92, 0xdc, 0xf0, 0x70, 0x94, 0xfc, 0x2c, 0xae, 0x67, 0x6f, 0x50, 0x2f, + 0x5c, 0x88, 0x5b, 0xf0, 0x5b, 0x34, 0xb8, 0x6f, 0x28, 0x9e, 0xab, 0x12, + 0xe5, 0xcc, 0x99, 0x6e, 0x28, 0xf4, 0x8d, 0x11, 0x97, 0x34, 0x4a, 0x36, + 0xac, 0x69, 0x81, 0xcf, 0xdb, 0x83, 0x06, 0x3d, 0xb9, 0x64, 0x88, 0xe4, + 0x56, 0xa3, 0x8a, 0xea, 0xb0, 0x7d, 0xce, 0xc9, 0x30, 0x02, 0x19, 0x18, + 0xce, 0x74, 0xd3, 0x7d, 0x64, 0x73, 0xb4, 0xc1, 0x66, 0xf1, 0xab, 0x47, + 0x8f, 0x3e, 0x7c, 0xf6, 0xcc, 0x69, 0x00, 0x1a, 0xbf, 0x46, 0x7a, 0x2a, + 0x88, 0x59, 0x92, 0xba, 0x3d, 0x80, 0xe7, 0x1a, 0x4c, 0xdf, 0x85, 0xd8, + 0xfb, 0x07, 0xc5, 0x1d, 0xb5, 0x38, 0xd5, 0x7f, 0x31, 0x83, 0x6e, 0xd5, + 0x85, 0x20, 0x16, 0x61, 0xf5, 0xaa, 0xfe, 0xd1, 0xba, 0xe2, 0xb4, 0x17, + 0xeb, 0x42, 0x20, 0x81, 0x9a, 0xf6, 0xaf, 0x5f, 0xe4, 0xfa, 0xdb, 0x9d, + 0x02, 0x6c, 0xf3, 0x34, 0x13, 0x0e, 0x32, 0x7e, 0x47, 0x7d, 0xc5, 0xf8, + 0x59, 0x9d, 0x44, 0xd4, 0x1a, 0xd2, 0xdd, 0xed, 0x67, 0xea, 0x3a, 0x17, + 0x6b, 0xb2, 0x3e, 0x62, 0x86, 0x16, 0xe3, 0xdc, 0xc4, 0x64, 0x0c, 0xfa, + 0x47, 0x44, 0xbc, 0x81, 0x27, 0x48, 0xb3, 0xa0, 0x3e, 0x97, 0xa5, 0x80, + 0x1f, 0x25, 0x13, 0xdb, 0x6f, 0x9f, 0x09, 0xfb, 0x74, 0x69, 0xb0, 0x8f, + 0xa1, 0x4c, 0x7b, 0xf6, 0x2e, 0xab, 0x37, 0xc1, 0x4e, 0x29, 0x16, 0xcd, + 0xbc, 0x8f, 0x5f, 0xf0, 0xd2, 0x39, 0x44, 0x4f, 0x36, 0x98, 0xd7, 0x64, + 0x2a, 0xed, 0x51, 0x2a, 0xce, 0xe4, 0xac, 0x91, 0x4a, 0xc5, 0x1d, 0xdf, + 0x4f, 0xe4, 0x5b, 0x6e, 0x11, 0x7c, 0xcd, 0x4b, 0x96, 0x7f, 0x01, 0x54, + 0x25, 0x7a, 0x6c, 0x3f, 0xf1, 0x51, 0x91, 0xc4, 0xb1, 0x84, 0x2b, 0x90, + 0xe3, 0x7c, 0x14, 0x66, 0x92, 0x1f, 0xd8, 0xbb, 0xdc, 0xbc, 0xd9, 0xb1, + 0xea, 0x1c, 0x31, 0x57, 0x0c, 0x15, 0xf6, 0xfc, 0x94, 0xb7, 0x35, 0xea, + 0xef, 0x3a, 0xea, 0xed, 0x1d, 0x93, 0xf9, 0xc1, 0x6b, 0x83, 0x1e, 0xd7, + 0x5f, 0x7d, 0x96, 0xbd, 0x39, 0x49, 0x4f, 0x99, 0x54, 0xf4, 0x64, 0x70, + 0xbb, 0x75, 0xa9, 0x5d, 0xdd, 0xea, 0x4c, 0x5a, 0x2f, 0x44, 0xbe, 0xd4, + 0x17, 0x62, 0x9d, 0x8e, 0xe1, 0xc8, 0xcc, 0xc3, 0x64, 0x6a, 0xc5, 0x7a, + 0xf5, 0x4c, 0xe5, 0x15, 0xc3, 0xb1, 0x74, 0x8a, 0xa2, 0xe1, 0xe7, 0x55, + 0x35, 0x9d, 0xeb, 0x5d, 0x9a, 0x88, 0xf7, 0x20, 0xe1, 0x8d, 0xc3, 0xa2, + 0x5c, 0xc8, 0x82, 0xc1, 0x1f, 0x42, 0x2d, 0x25, 0xb0, 0x9e, 0x49, 0x13, + 0xce, 0xf4, 0x6f, 0x03, 0x4a, 0x3f, 0x44, 0xe3, 0x74, 0x1a, 0xa5, 0x04, + 0x64, 0x54, 0x7c, 0x70, 0xfd, 0x48, 0x2d, 0x41, 0xd3, 0x81, 0x60, 0x89, + 0x03, 0x94, 0xc0, 0xa7, 0xed, 0x14, 0x6d, 0xa9, 0x1a, 0x52, 0x9b, 0x84, + 0x0b, 0xde, 0xe1, 0xc2, 0xc7, 0x3b, 0xc9, 0x95, 0x3c, 0x47, 0xc3, 0xaf, + 0x7b, 0xf7, 0x2c, 0xbd, 0xbc, 0x3a, 0x58, 0x1c, 0x9a, 0x6b, 0x5b, 0x7e, + 0x10, 0xbe, 0x60, 0xa3, 0xb7, 0x21, 0xde, 0x96, 0x97, 0x6c, 0xf4, 0x93, + 0x9d, 0x81, 0xd3, 0x65, 0x51, 0x8b, 0xf6, 0xbb, 0xb9, 0xbe, 0x8c, 0xae, + 0x6c, 0x5e, 0xda, 0x18, 0xd9, 0xf1, 0x18, 0x79, 0x7b, 0x60, 0x8a, 0x3b, + 0x93, 0xf1, 0x0a, 0x44, 0x5e, 0xb5, 0x64, 0xb6, 0x3a, 0xae, 0x1c, 0xf5, + 0xca, 0xb5, 0xd3, 0x10, 0xc0, 0x72, 0xae, 0x7e, 0xe8, 0xc6, 0x3f, 0x18, + 0xe4, 0xc4, 0xab, 0xd4, 0x0e, 0x8c, 0x94, 0x13, 0x0c, 0x0c, 0xf2, 0x07, + 0x2f, 0xe5, 0x0f, 0xcd, 0xcb, 0x10, 0x41, 0x02, 0xa7, 0x71, 0x04, 0xe6, + 0xc0, 0x0c, 0xe2, 0xcf, 0xe3, 0xf0, 0x69, 0x2f, 0x35, 0x4c, 0xe0, 0x65, + 0x1c, 0x81, 0xa0, 0xcf, 0x4b, 0xb3, 0x8b, 0x88, 0xef, 0x1e, 0x72, 0xe3, + 0x5c, 0xfd, 0x0b, 0xae, 0x95, 0x60, 0x32, 0x54, 0xd6, 0x37, 0xb7, 0x87, + 0xfa, 0x21, 0x1b, 0x46, 0x77, 0x09, 0x7a, 0xd1, 0xa4, 0x4f, 0x0a, 0xd1, + 0xeb, 0x03, 0xec, 0x26, 0x62, 0x2e, 0x8b, 0xb8, 0xfc, 0xe0, 0x7a, 0xc8, + 0x5d, 0x0c, 0x11, 0x66, 0x78, 0x31, 0x44, 0x74, 0x39, 0x6c, 0x62, 0xd3, + 0x76, 0x28, 0x52, 0x1a, 0x3e, 0xd1, 0xdb, 0xa1, 0xf4, 0x27, 0x71, 0x9c, + 0xfd, 0x12, 0x6e, 0xa9, 0xc1, 0x88, 0x19, 0xf5, 0x81, 0x83, 0x5b, 0x20, + 0x07, 0x04, 0x7b, 0xb8, 0x59, 0xe5, 0x36, 0xd6, 0x58, 0x0c, 0x62, 0x6d, + 0x17, 0x09, 0x32, 0x66, 0xdf, 0x54, 0x50, 0x4a, 0x45, 0x2c, 0xa3, 0x68, + 0x4f, 0x03, 0x74, 0x72, 0xab, 0x3e, 0x46, 0x67, 0x5a, 0x9f, 0x67, 0xe5, + 0x19, 0x28, 0x25, 0x67, 0x59, 0x9e, 0xc9, 0xf2, 0x4c, 0x13, 0x5f, 0x1f, + 0x85, 0xc6, 0x5c, 0xc7, 0x96, 0x88, 0xea, 0x41, 0xe3, 0xed, 0x6c, 0x0d, + 0xd6, 0x81, 0x69, 0xef, 0x80, 0x56, 0x13, 0xf1, 0x5d, 0xb3, 0xab, 0xf9, + 0xf2, 0xd1, 0x19, 0x7a, 0x91, 0x8b, 0x6b, 0xb6, 0x9b, 0x86, 0x44, 0x1d, + 0x02, 0x52, 0x30, 0x4e, 0x6d, 0xa3, 0xee, 0x94, 0x0b, 0x54, 0x8d, 0xd6, + 0x78, 0xc7, 0xdc, 0x04, 0xec, 0x2e, 0x0a, 0x83, 0x35, 0xb7, 0xbc, 0x60, + 0x05, 0xcf, 0x49, 0x16, 0x1e, 0x72, 0x67, 0x61, 0xe0, 0x54, 0xb9, 0x5d, + 0x18, 0x04, 0xa4, 0x68, 0x68, 0xb4, 0xe6, 0xcb, 0xf2, 0x1a, 0xb0, 0xaf, + 0x30, 0x24, 0x6b, 0xea, 0x7b, 0xa3, 0x30, 0x2e, 0x20, 0x0c, 0x17, 0xb9, + 0xbb, 0x30, 0xe8, 0x14, 0xbc, 0x55, 0x18, 0x04, 0xa4, 0x68, 0x68, 0xb4, + 0xc6, 0x5b, 0xff, 0x26, 0x60, 0x4f, 0x61, 0x08, 0xd6, 0x34, 0x99, 0x26, + 0x61, 0x5c, 0x42, 0x18, 0x1e, 0x72, 0x67, 0x61, 0xd0, 0xa9, 0x7d, 0xab, + 0x30, 0x08, 0x48, 0xd1, 0xd0, 0x68, 0x8d, 0xe1, 0x0b, 0x4c, 0xc0, 0x9e, + 0xc2, 0x10, 0xac, 0x69, 0x32, 0x4d, 0xc2, 0xa0, 0x89, 0xd7, 0x43, 0xee, + 0x22, 0x0c, 0x0e, 0xa6, 0x80, 0xd2, 0xe2, 0x62, 0x2e, 0x48, 0x44, 0xfe, + 0xd5, 0x14, 0x7f, 0x81, 0x21, 0x7a, 0xf4, 0x0c, 0xe5, 0x03, 0x21, 0xf0, + 0x1b, 0x2a, 0x5e, 0x1c, 0xa1, 0xe2, 0x16, 0x56, 0xa7, 0xfe, 0x00, 0xaf, + 0x81, 0xf6, 0x3a, 0x03, 0x48, 0x61, 0x13, 0x42, 0x38, 0xd6, 0x83, 0x7e, + 0xdf, 0xab, 0xb6, 0x82, 0x11, 0xfc, 0xdb, 0x54, 0x57, 0xd5, 0xfd, 0x35, + 0x4e, 0x97, 0xba, 0x92, 0x6b, 0x46, 0x7b, 0x65, 0x09, 0xaa, 0xde, 0xc4, + 0xd1, 0x30, 0x30, 0x72, 0xfe, 0x7e, 0x6b, 0x45, 0xb3, 0x23, 0xec, 0x15, + 0x03, 0x9a, 0x1e, 0xb6, 0x5b, 0x29, 0x04, 0xd5, 0x18, 0xfd, 0x83, 0x21, + 0x7a, 0xb5, 0xa8, 0x14, 0x37, 0x7d, 0x34, 0xb5, 0x29, 0xd9, 0xfc, 0x0e, + 0x56, 0x97, 0x46, 0x15, 0xc1, 0x43, 0xda, 0x9b, 0x55, 0xc0, 0x35, 0x35, + 0xac, 0x86, 0xfa, 0x07, 0x35, 0xad, 0x60, 0xc8, 0x6b, 0x5c, 0xf1, 0xb8, + 0xbd, 0x79, 0x05, 0x5c, 0x64, 0x60, 0x15, 0x01, 0xdc, 0xab, 0xad, 0xa5, + 0xcb, 0x90, 0x5d, 0xde, 0x2f, 0x89, 0x8c, 0xc5, 0xa2, 0x7f, 0xcb, 0x60, + 0x2a, 0xfa, 0x81, 0x88, 0x87, 0xd2, 0xa4, 0x1f, 0x6b, 0xe8, 0x87, 0x53, + 0x52, 0xa7, 0x11, 0x4e, 0xf2, 0x10, 0xa5, 0x21, 0x04, 0x18, 0xa1, 0x22, + 0x04, 0xf6, 0xcf, 0xd2, 0x11, 0xe2, 0xc8, 0x53, 0x12, 0xf9, 0x3c, 0x4a, + 0x4b, 0x08, 0x30, 0x32, 0x60, 0x8e, 0x80, 0xee, 0xb1, 0x0a, 0xf8, 0xc7, + 0xeb, 0x09, 0x97, 0x19, 0xa5, 0x28, 0x0c, 0x19, 0xa1, 0x29, 0x0c, 0xf7, + 0xcf, 0x52, 0x15, 0x66, 0xc9, 0xd3, 0x15, 0xf5, 0x22, 0x4a, 0x59, 0x18, + 0x32, 0x2a, 0x1c, 0x92, 0x02, 0xfe, 0x17, 0x2a, 0x0b, 0x8a, 0x88, 0x1b, + 0x54, 0x00, 0x18, 0x33, 0xa8, 0x00, 0xec, 0x1f, 0x36, 0xa8, 0x10, 0x47, + 0xbe, 0xa2, 0xf0, 0xf3, 0xb8, 0x41, 0x85, 0x00, 0x9b, 0x03, 0x5d, 0x99, + 0xa0, 0xff, 0xaa, 0x11, 0x85, 0x63, 0x56, 0x73, 0xc8, 0x6a, 0x7f, 0x0f, + 0xc8, 0x88, 0x67, 0xdd, 0x6f, 0x2b, 0xc8, 0x76, 0x59, 0xd8, 0x17, 0xe8, + 0xa2, 0x11, 0x8a, 0x03, 0xfe, 0xa1, 0x36, 0x5d, 0x9f, 0xd0, 0xe1, 0xd4, + 0xa1, 0x60, 0x21, 0x6c, 0xfe, 0x1f, 0xfd, 0xd0, 0xbc, 0x16, 0x16, 0x10, + 0x7c, 0x46, 0xa0, 0x6a, 0x29, 0xb1, 0xf4, 0xb1, 0x84, 0x71, 0xe6, 0x6e, + 0xc4, 0xf6, 0x16, 0xfe, 0x07, 0x47, 0x8b, 0xfc, 0xc8, 0x40, 0xcd, 0xb3, + 0xe3, 0x7c, 0xf6, 0xd2, 0xd8, 0x2e, 0xc6, 0x4e, 0x26, 0x3b, 0xe4, 0xf0, + 0x73, 0xb1, 0xc9, 0x29, 0x99, 0x2a, 0xd7, 0xd2, 0x11, 0x47, 0x11, 0xd7, + 0x85, 0x77, 0x5a, 0x5e, 0x07, 0x79, 0x03, 0xcf, 0x76, 0x2d, 0x70, 0x08, + 0x55, 0x31, 0x9b, 0x54, 0x61, 0xc9, 0x25, 0xd7, 0x75, 0x9c, 0xfb, 0x12, + 0xa5, 0xd2, 0xd4, 0x11, 0x4b, 0xf3, 0xe8, 0x50, 0x8e, 0x15, 0x9c, 0x12, + 0x8e, 0x89, 0xab, 0x85, 0xab, 0xf9, 0x57, 0xef, 0xcc, 0x43, 0x30, 0x1f, + 0x05, 0x35, 0x51, 0x4f, 0x0c, 0x2f, 0x61, 0xf3, 0x2b, 0x37, 0xa6, 0x71, + 0x88, 0xe7, 0xfb, 0xf6, 0x19, 0x54, 0xfb, 0x08, 0x5a, 0x0b, 0x20, 0x54, + 0x25, 0x67, 0x93, 0x57, 0x00, 0xb6, 0x1f, 0x58, 0x0d, 0x86, 0xc1, 0xea, + 0x78, 0xde, 0x1f, 0x7e, 0x81, 0xde, 0xc9, 0x3e, 0xbd, 0x0c, 0x4a, 0x81, + 0x7f, 0x41, 0x01, 0x62, 0xbd, 0xd5, 0x51, 0xd8, 0x2d, 0x9d, 0xa7, 0x89, + 0x83, 0xc1, 0x68, 0x46, 0x45, 0x73, 0xdd, 0x0d, 0x9f, 0xb6, 0x8b, 0x7a, + 0x70, 0xa7, 0x64, 0x79, 0x3e, 0x5b, 0xac, 0x5a, 0xcf, 0x9e, 0xc6, 0x04, + 0xa5, 0x94, 0x5b, 0x61, 0xf9, 0xc3, 0xa1, 0x91, 0x95, 0xc0, 0x04, 0xed, + 0xb4, 0x8f, 0x10, 0x22, 0x86, 0x32, 0xac, 0x32, 0x1d, 0xbd, 0x3b, 0xcb, + 0xae, 0x18, 0xac, 0x89, 0x15, 0x0d, 0x7d, 0xbd, 0xf8, 0x91, 0xc6, 0x8c, + 0x94, 0x7d, 0x0a, 0x9f, 0x60, 0xe6, 0x55, 0xe8, 0xd2, 0xa5, 0x24, 0x9d, + 0x8c, 0xa6, 0xc3, 0xd1, 0xe4, 0xc1, 0xf0, 0x8d, 0xe9, 0xdb, 0x6f, 0x0f, + 0xef, 0xd5, 0xc3, 0xed, 0x28, 0xb8, 0xdd, 0xb7, 0xde, 0x6c, 0x82, 0xdb, + 0x55, 0x70, 0x93, 0xc9, 0xfd, 0xe1, 0x70, 0x6b, 0x02, 0x8f, 0x89, 0x98, + 0xe3, 0xdd, 0x72, 0xbd, 0x5e, 0xce, 0x67, 0x1d, 0xd4, 0x90, 0x0b, 0x8d, + 0xa1, 0x7c, 0xb2, 0x5e, 0x97, 0xd9, 0x5d, 0x10, 0x76, 0x59, 0x56, 0xad, + 0x92, 0x42, 0xe6, 0x1c, 0x09, 0x71, 0xba, 0x4b, 0x83, 0xf3, 0xc6, 0xab, + 0x93, 0xc9, 0x64, 0x23, 0x79, 0x88, 0x2f, 0x1f, 0x7e, 0xf8, 0xe1, 0x46, + 0x0c, 0x65, 0x66, 0xf9, 0xee, 0x08, 0xb3, 0x2b, 0x77, 0x3f, 0xea, 0x6e, + 0x7f, 0xa2, 0x7c, 0x1d, 0xed, 0xfd, 0x89, 0xa0, 0xcc, 0xfe, 0x44, 0xbf, + 0xeb, 0xfa, 0x13, 0xbd, 0x33, 0x21, 0x3b, 0x6d, 0x42, 0x06, 0x68, 0xa1, + 0x04, 0xb3, 0xc4, 0x28, 0xbf, 0x09, 0x76, 0x61, 0x73, 0x05, 0x14, 0x22, + 0x5e, 0x23, 0x15, 0xd2, 0xb1, 0x76, 0xa9, 0x10, 0x94, 0x29, 0x15, 0xfa, + 0x5d, 0x27, 0x15, 0x7a, 0x67, 0x43, 0xf6, 0x97, 0x8a, 0xe0, 0x4e, 0xd1, + 0x89, 0x97, 0x8a, 0x74, 0x55, 0xed, 0xd2, 0x97, 0x08, 0x20, 0x86, 0xb4, + 0x3a, 0xbc, 0xbc, 0x7d, 0xca, 0x7a, 0xa3, 0xf1, 0xae, 0x68, 0x0b, 0x03, + 0xfe, 0x0e, 0xa9, 0x63, 0x3d, 0x70, 0x67, 0x82, 0x51, 0xcb, 0x8b, 0x3b, + 0xa4, 0x8f, 0xd5, 0x4a, 0x7f, 0xf6, 0xa5, 0x9b, 0x46, 0x99, 0x5d, 0x95, + 0x5b, 0x7c, 0x17, 0x45, 0x74, 0xc6, 0xe3, 0xec, 0x42, 0xb8, 0x5e, 0x26, + 0x78, 0xa4, 0x69, 0x26, 0x14, 0xe2, 0x95, 0x62, 0x83, 0xc5, 0xce, 0x98, + 0x84, 0xfa, 0xcf, 0x9e, 0x30, 0x55, 0x2c, 0xde, 0x22, 0xc6, 0xef, 0xa7, + 0xba, 0xa8, 0xa3, 0xc7, 0x95, 0x3a, 0x9f, 0x1f, 0xa6, 0xe9, 0xfb, 0xfd, + 0xe8, 0x3f, 0x01, 0x01, 0x77, 0x9f, 0xb6, 0x69, 0x62, 0x3a, 0x9d, 0x06, + 0x27, 0xa1, 0x9b, 0x08, 0x25, 0x51, 0xc6, 0x1d, 0x02, 0x0c, 0xf7, 0x9b, + 0x8f, 0x1a, 0xa9, 0x8b, 0x80, 0x52, 0x77, 0x40, 0x98, 0xfd, 0x78, 0xee, + 0x86, 0x34, 0x79, 0xf8, 0xdc, 0x0d, 0x65, 0xf2, 0xfd, 0xb9, 0x23, 0xd2, + 0x22, 0x06, 0xcd, 0xdd, 0xd0, 0x2e, 0x2e, 0xb2, 0xbb, 0x6a, 0x46, 0x35, + 0x18, 0xf4, 0x23, 0xed, 0x4d, 0xfa, 0x65, 0xc4, 0xca, 0x02, 0x40, 0xd6, + 0x94, 0x5f, 0xd6, 0xae, 0x2b, 0xf0, 0xca, 0x84, 0xfb, 0x13, 0x8b, 0x0a, + 0x66, 0x4c, 0x52, 0x89, 0x9f, 0xed, 0x15, 0x91, 0x31, 0xf6, 0x32, 0xba, + 0x8c, 0xdf, 0xe5, 0x2a, 0x86, 0xba, 0xd8, 0xc3, 0x68, 0x5f, 0xd3, 0xf9, + 0xd4, 0x63, 0x96, 0xcd, 0xb7, 0xb3, 0x9e, 0x6c, 0x2d, 0xbb, 0x75, 0x58, + 0x1b, 0x0c, 0x23, 0x78, 0xba, 0x25, 0x86, 0x9a, 0x1d, 0x5b, 0x7d, 0x5d, + 0x2d, 0xa2, 0x94, 0x15, 0x54, 0x1d, 0x7d, 0x2d, 0x1a, 0x14, 0x16, 0xd0, + 0x16, 0x6c, 0x17, 0xff, 0x89, 0x20, 0x35, 0x94, 0x62, 0x95, 0xda, 0xb9, + 0xbe, 0xd2, 0x7e, 0xe0, 0xdc, 0x68, 0x27, 0xb3, 0xa3, 0x4c, 0x86, 0x74, + 0xef, 0x12, 0x65, 0x51, 0xae, 0xc5, 0xeb, 0xe3, 0x51, 0xe9, 0x85, 0x4a, + 0x33, 0x08, 0x35, 0x68, 0x1b, 0x48, 0xb9, 0x6a, 0x87, 0x28, 0xea, 0x40, + 0x5a, 0x33, 0x39, 0xc8, 0x1e, 0x2d, 0x52, 0xae, 0x06, 0xda, 0x86, 0xaf, + 0xda, 0xaa, 0xa6, 0xb9, 0x5d, 0x1b, 0x44, 0xdd, 0x40, 0xdc, 0x6f, 0xe7, + 0xcf, 0xc3, 0x9b, 0xe5, 0x52, 0xfb, 0xb5, 0xc3, 0x2f, 0xdf, 0x34, 0xc0, + 0x31, 0x42, 0x32, 0x70, 0xaf, 0x02, 0x02, 0xb8, 0xba, 0xda, 0xa0, 0xb6, + 0x9b, 0x86, 0xfe, 0x2d, 0x03, 0xfe, 0xb3, 0x69, 0x26, 0xf7, 0xf6, 0xf5, + 0x1d, 0x5c, 0xef, 0x02, 0x15, 0xbd, 0xc8, 0x44, 0x10, 0x54, 0x5c, 0xb1, + 0xc8, 0x0a, 0x76, 0x17, 0x56, 0xa9, 0xf4, 0x12, 0xa1, 0x7f, 0xd0, 0xab, + 0x9a, 0x90, 0x43, 0xe7, 0xb3, 0x0b, 0xef, 0x52, 0x98, 0xfe, 0x73, 0xef, + 0x46, 0x54, 0x7c, 0xc6, 0x86, 0x57, 0x90, 0x17, 0x23, 0xcc, 0x9d, 0xc6, + 0xb8, 0x7a, 0x39, 0x86, 0x9a, 0xd5, 0x77, 0xfe, 0x9c, 0xf9, 0x68, 0x9a, + 0x90, 0xf5, 0x6c, 0x49, 0xae, 0xba, 0x46, 0xe9, 0xb0, 0xdb, 0x8d, 0x75, + 0x23, 0xec, 0x0c, 0x2e, 0xab, 0x2d, 0x1d, 0xc1, 0x07, 0x43, 0xaf, 0x59, + 0xf9, 0x32, 0x90, 0xdb, 0xac, 0xb3, 0xe5, 0xf2, 0xaf, 0x6a, 0x51, 0x92, + 0xab, 0x90, 0x4e, 0xb2, 0xdf, 0xa5, 0x79, 0xf7, 0xc2, 0xe4, 0x18, 0xc0, + 0x96, 0x0d, 0x3f, 0xea, 0x27, 0x9e, 0xbf, 0x53, 0x3b, 0xf6, 0x9b, 0xdf, + 0x9b, 0xb5, 0x68, 0xae, 0xc4, 0x8d, 0xbf, 0x29, 0xdc, 0x7a, 0xd7, 0xdc, + 0x32, 0x7e, 0xba, 0x0c, 0x95, 0xa1, 0xb3, 0xb2, 0xa6, 0x31, 0x4f, 0x1f, + 0xb7, 0xa1, 0x14, 0x67, 0x8a, 0x73, 0x6e, 0xb2, 0xdd, 0xf2, 0xa2, 0x30, + 0x4e, 0x95, 0x63, 0xd4, 0xb8, 0x83, 0xd6, 0xc6, 0x0d, 0x4a, 0x66, 0x8b, + 0xdd, 0xe2, 0x3a, 0xb6, 0x0b, 0x1b, 0x06, 0x0b, 0xfa, 0x5b, 0x84, 0x5d, + 0xab, 0xe7, 0xb0, 0xe6, 0x32, 0x6e, 0xbc, 0x0b, 0x68, 0xf6, 0xad, 0xc4, + 0xf3, 0xe2, 0x94, 0xc2, 0xea, 0x5f, 0x8f, 0x12, 0x4a, 0xfb, 0x8c, 0x3a, + 0xb5, 0xde, 0x00, 0x92, 0xe5, 0x4b, 0x02, 0x55, 0x53, 0x5f, 0x59, 0x47, + 0xe4, 0x20, 0xab, 0x9e, 0xd7, 0x5a, 0x99, 0x29, 0x8a, 0xa5, 0xf9, 0x52, + 0xdd, 0x7a, 0xe4, 0x03, 0xc6, 0x57, 0x67, 0xc7, 0xd3, 0x37, 0xa7, 0x6f, + 0xf2, 0x09, 0xe3, 0xab, 0xf7, 0x8f, 0x66, 0x27, 0xbb, 0xdb, 0x03, 0x6d, + 0x62, 0xbd, 0xbf, 0x5a, 0x9c, 0xcf, 0xb8, 0x12, 0x8b, 0x82, 0x19, 0x3e, + 0x16, 0xf1, 0x08, 0x58, 0x04, 0xec, 0x3f, 0x9f, 0xd2, 0xe5, 0x50, 0x71, + 0x7f, 0x32, 0x41, 0x29, 0x13, 0xfa, 0x32, 0x0c, 0x5d, 0xea, 0x19, 0x40, + 0x0c, 0xe4, 0x12, 0xcb, 0x64, 0x64, 0x09, 0xe1, 0x24, 0xfe, 0x11, 0xb7, + 0x81, 0x2c, 0x62, 0x62, 0x6c, 0x48, 0x6e, 0xa4, 0x48, 0x75, 0x04, 0xd1, + 0xe4, 0x9b, 0x6c, 0xfe, 0x6c, 0x0d, 0x2b, 0xbd, 0x64, 0x2f, 0x03, 0x8e, + 0x1a, 0xba, 0xcc, 0x38, 0xb9, 0xb5, 0x3c, 0x9b, 0x06, 0xf9, 0x9f, 0xdd, + 0x14, 0xbf, 0x92, 0xa3, 0x87, 0xc9, 0x84, 0x6a, 0x26, 0xde, 0x9e, 0xcf, + 0xae, 0x9e, 0x66, 0x65, 0xbe, 0xa0, 0xac, 0xc0, 0x53, 0xf9, 0x2c, 0xcf, + 0x34, 0xce, 0xe3, 0x0c, 0x76, 0xfe, 0xc7, 0xf9, 0xfa, 0xe5, 0x47, 0x33, + 0x4a, 0x5a, 0xab, 0x81, 0x38, 0x4f, 0xba, 0x48, 0xd5, 0x4b, 0x57, 0xd0, + 0xec, 0xbc, 0xa1, 0xea, 0x0e, 0xed, 0x72, 0xe9, 0x5e, 0xa3, 0x35, 0xef, + 0xcb, 0x70, 0xce, 0xf3, 0xe4, 0x62, 0x5d, 0x42, 0x17, 0x16, 0x98, 0xc0, + 0xae, 0x39, 0xb3, 0xbe, 0xc1, 0x70, 0x61, 0xdc, 0x59, 0x0b, 0x66, 0x1b, + 0xd6, 0xd7, 0xd7, 0x53, 0x7a, 0xe8, 0x05, 0x81, 0xc5, 0x33, 0xc8, 0x18, + 0xa5, 0xa4, 0x5c, 0xe5, 0x64, 0xf0, 0xd9, 0x6c, 0x75, 0xc9, 0x25, 0xf1, + 0xd3, 0xe3, 0x87, 0x0f, 0x1b, 0x98, 0xe5, 0x9b, 0xb8, 0x3f, 0xff, 0x90, + 0x65, 0x17, 0x8f, 0x18, 0x58, 0x54, 0xf6, 0xc6, 0x30, 0xd8, 0x5b, 0xd9, + 0x43, 0x2b, 0x1c, 0x1c, 0x9a, 0x60, 0xf5, 0x79, 0x93, 0x79, 0x7c, 0x30, + 0x57, 0x3c, 0x8d, 0x4b, 0x73, 0x4d, 0x63, 0x0c, 0x48, 0xee, 0x3a, 0xb6, + 0xe9, 0x89, 0xa7, 0x75, 0xa6, 0x67, 0x67, 0xb3, 0x13, 0xb4, 0x5a, 0x86, + 0x06, 0xfb, 0x82, 0x94, 0xac, 0x55, 0x6d, 0xd3, 0x37, 0x2b, 0x08, 0x68, + 0x6a, 0x0d, 0x11, 0x60, 0xe4, 0x9f, 0x80, 0x35, 0x96, 0x74, 0x10, 0xb9, + 0xcc, 0xd1, 0x59, 0x79, 0x02, 0x12, 0x70, 0x50, 0x7c, 0xf1, 0xb3, 0xc6, + 0xf1, 0x43, 0xd5, 0x7e, 0x4f, 0xd5, 0x9e, 0xa1, 0x0d, 0xd5, 0xa1, 0x5b, + 0x1e, 0xae, 0xea, 0xd0, 0x33, 0x79, 0x85, 0x66, 0x13, 0xdd, 0xe3, 0xdc, + 0x8b, 0xdf, 0xa1, 0x43, 0x19, 0xfa, 0xd7, 0xd9, 0xc1, 0x11, 0x0b, 0x41, + 0x2e, 0xd2, 0x9e, 0xaa, 0xfe, 0x04, 0xce, 0xaa, 0x8e, 0x9b, 0x86, 0xf3, + 0xcf, 0x43, 0x47, 0x67, 0xf9, 0xf1, 0xe5, 0x62, 0xb5, 0xc6, 0x57, 0xdd, + 0x9d, 0x51, 0x7a, 0xfd, 0x85, 0xf9, 0x47, 0x15, 0x75, 0x12, 0x94, 0x56, + 0x0d, 0xae, 0x27, 0xc8, 0xb8, 0xb7, 0x58, 0x9a, 0x95, 0x56, 0x06, 0x1b, + 0xa5, 0x07, 0x02, 0xc9, 0x2b, 0x99, 0x62, 0x40, 0x71, 0x4f, 0xdd, 0x77, + 0xe3, 0x2e, 0x37, 0x33, 0x98, 0x1d, 0xc7, 0xf3, 0x17, 0xd1, 0x63, 0xee, + 0xdd, 0x73, 0x70, 0xfe, 0x5c, 0xdf, 0x71, 0xb8, 0x37, 0x47, 0x6a, 0xef, + 0xf7, 0x60, 0x10, 0x46, 0xb2, 0xc3, 0x0f, 0xdd, 0x43, 0xe3, 0xb6, 0x55, + 0xc2, 0xb5, 0x23, 0xf6, 0x82, 0xd2, 0xe6, 0xd1, 0x2a, 0x5a, 0xdc, 0x8f, + 0xd1, 0xbf, 0xee, 0x44, 0xe2, 0xe3, 0xf1, 0x9d, 0x4a, 0xfc, 0xcf, 0x0a, + 0x4f, 0x75, 0xcd, 0xb6, 0x91, 0xf6, 0x9d, 0xfd, 0x44, 0x0f, 0x70, 0x01, + 0x46, 0x62, 0xc3, 0xfc, 0xdd, 0x44, 0xb5, 0x1d, 0x9b, 0x24, 0xd1, 0x6d, + 0xf7, 0x21, 0x43, 0xaf, 0x57, 0x91, 0x8d, 0x76, 0x13, 0x11, 0xd9, 0x01, + 0xa3, 0x48, 0x35, 0xa3, 0x9b, 0xf3, 0x2f, 0x8b, 0x49, 0xcb, 0x65, 0xd3, + 0x00, 0xd2, 0x21, 0x01, 0xaa, 0x47, 0xf1, 0x73, 0x93, 0x26, 0x39, 0x3e, + 0x99, 0x2d, 0x96, 0x99, 0xbc, 0xc9, 0xdd, 0x2c, 0x5b, 0x30, 0x6c, 0xb3, + 0xec, 0x31, 0x6c, 0xb3, 0xdb, 0x3c, 0xb6, 0x02, 0xff, 0x32, 0x5f, 0xd6, + 0x8c, 0xa5, 0xad, 0x4b, 0xa9, 0xfa, 0x80, 0x62, 0x0f, 0xde, 0xbc, 0x9b, + 0x80, 0x62, 0x0f, 0xde, 0xbc, 0xbd, 0x80, 0x62, 0x4e, 0x54, 0x10, 0x0e, + 0x2e, 0x06, 0xc9, 0x14, 0x90, 0x8c, 0x39, 0xb5, 0x7e, 0x73, 0x96, 0xad, + 0x78, 0x52, 0x35, 0x44, 0xba, 0x28, 0xd8, 0x02, 0x1b, 0x71, 0xa0, 0x7b, + 0xbe, 0x00, 0xcb, 0x52, 0x97, 0xd3, 0x2f, 0x9e, 0xe6, 0x3f, 0x65, 0x79, + 0xa8, 0x35, 0xf4, 0x8c, 0xe0, 0x47, 0x94, 0xf7, 0x75, 0xbc, 0x6a, 0x27, + 0x2e, 0xcd, 0x5f, 0xe2, 0x2d, 0xaa, 0xd6, 0xaf, 0x0d, 0xc4, 0x90, 0x67, + 0x27, 0x79, 0x56, 0x9c, 0xbd, 0xe0, 0x5d, 0x52, 0x2c, 0x42, 0xc5, 0xd4, + 0xff, 0x44, 0xfe, 0x4a, 0xb9, 0xaf, 0x59, 0x41, 0x21, 0x46, 0x6c, 0xf4, + 0x6e, 0x53, 0x59, 0x1d, 0x06, 0x2e, 0x6d, 0xa9, 0x48, 0x2d, 0xee, 0x30, + 0x4a, 0xc4, 0xf5, 0x12, 0x49, 0xb7, 0xd7, 0xc4, 0x13, 0xa1, 0x82, 0xae, + 0x02, 0x43, 0x08, 0xaf, 0x77, 0x24, 0x11, 0xaf, 0xc5, 0x20, 0x2e, 0xd4, + 0x38, 0xa6, 0x80, 0xbe, 0xaa, 0xfc, 0x94, 0xa2, 0xee, 0x5b, 0xc7, 0xed, + 0x75, 0x99, 0xa2, 0x74, 0xf3, 0xcb, 0x45, 0xd4, 0x94, 0x14, 0xa0, 0x1b, + 0xea, 0x23, 0x89, 0xba, 0xd3, 0x1d, 0xf5, 0x57, 0x89, 0x7a, 0xdf, 0x40, + 0xbd, 0xb9, 0xd3, 0x1e, 0xc8, 0x56, 0x42, 0xd7, 0x2e, 0x28, 0x16, 0x42, + 0xad, 0x9d, 0x50, 0x07, 0x70, 0x31, 0xd2, 0x78, 0x55, 0xfd, 0x2d, 0xd8, + 0x27, 0x83, 0x95, 0xfe, 0x74, 0x7d, 0x9a, 0xf0, 0x8c, 0x58, 0xd4, 0xd5, + 0x82, 0xdf, 0x9a, 0xb5, 0xe0, 0x07, 0xc1, 0xaa, 0xf0, 0x1b, 0xb3, 0x32, + 0x2a, 0xe8, 0x11, 0x7f, 0x76, 0xad, 0x12, 0x99, 0x0e, 0xfe, 0x9c, 0x58, + 0xe6, 0xd7, 0x8f, 0xf8, 0xba, 0xea, 0xbb, 0xfb, 0xc6, 0x1c, 0xb2, 0xa9, + 0xd7, 0xcd, 0xcc, 0x59, 0x47, 0x83, 0xc8, 0x1f, 0x57, 0xf4, 0x5f, 0xbb, + 0xb1, 0xd9, 0x6b, 0x64, 0x89, 0x1a, 0x5d, 0xd4, 0x28, 0xd6, 0xb9, 0x42, + 0xce, 0x9c, 0xdf, 0xa7, 0xec, 0x41, 0x9f, 0x90, 0x57, 0xb2, 0x5c, 0xb6, + 0x9a, 0x26, 0xc9, 0xbd, 0x70, 0x0b, 0xe1, 0x79, 0x0c, 0xfe, 0xd4, 0x88, + 0x9a, 0x35, 0xf1, 0xc2, 0x66, 0x85, 0x75, 0x59, 0x45, 0x58, 0x12, 0xe1, + 0x0f, 0x23, 0xfa, 0x68, 0x15, 0x91, 0x29, 0x2a, 0x7f, 0x80, 0xd6, 0x6c, + 0x22, 0x2f, 0x49, 0x73, 0xf6, 0x80, 0x4d, 0x22, 0x6d, 0x32, 0x08, 0x3d, + 0x8d, 0x4b, 0x0f, 0x50, 0x61, 0x6e, 0x6d, 0x45, 0xed, 0x89, 0x6e, 0xf0, + 0x48, 0xbd, 0xa1, 0xce, 0x78, 0x65, 0x1a, 0x25, 0x6a, 0xb1, 0x15, 0x3a, + 0xab, 0x7f, 0xea, 0x64, 0xd7, 0x00, 0xe5, 0x83, 0x5d, 0xfc, 0xdb, 0x25, + 0x2b, 0x01, 0x1d, 0x81, 0x8a, 0x04, 0x33, 0x1c, 0xaa, 0xaa, 0xe0, 0x08, + 0x1c, 0xad, 0x01, 0xd7, 0xc1, 0x67, 0xe6, 0xc5, 0xee, 0x34, 0xe3, 0x36, + 0x29, 0xa8, 0x88, 0x6c, 0x05, 0x2f, 0x8b, 0xe9, 0x5b, 0x93, 0xe9, 0xc9, + 0xd5, 0x8b, 0x7a, 0xa2, 0x0e, 0xcc, 0xbe, 0x8d, 0x17, 0x57, 0x0c, 0x7b, + 0x8a, 0xc4, 0x47, 0xd1, 0x37, 0xb3, 0x2e, 0x6a, 0xfc, 0xbd, 0x30, 0xb4, + 0x4c, 0x68, 0x2f, 0xe2, 0x03, 0x71, 0x24, 0x1b, 0x0f, 0xce, 0x4f, 0x04, + 0xa9, 0xa9, 0xb6, 0xaf, 0x77, 0xfc, 0xfa, 0x18, 0xb9, 0x38, 0xa3, 0x2b, + 0xe5, 0xe5, 0xf0, 0x74, 0x08, 0xb5, 0xd4, 0x8e, 0xb7, 0x80, 0xeb, 0xab, + 0xe8, 0x27, 0x1a, 0x8d, 0x29, 0xa0, 0xbd, 0xa2, 0x7c, 0x26, 0xdf, 0xad, + 0x8e, 0x55, 0xb4, 0x77, 0x4d, 0x80, 0xd2, 0xd2, 0xb7, 0x62, 0xe4, 0x16, + 0xc6, 0x24, 0x02, 0xe3, 0xd4, 0xc2, 0x98, 0x46, 0x60, 0xcc, 0x2d, 0x8c, + 0x9d, 0x08, 0x0c, 0xb8, 0x04, 0x8a, 0x0b, 0xe7, 0xcf, 0xd7, 0x9f, 0x64, + 0x57, 0xe9, 0x81, 0x59, 0xa7, 0x91, 0xc5, 0xef, 0xc8, 0xe2, 0x65, 0x64, + 0x95, 0x73, 0x38, 0x6c, 0x2f, 0xe9, 0xe5, 0xd4, 0x62, 0xee, 0x7e, 0x04, + 0x73, 0xb9, 0x8d, 0xb2, 0x1b, 0x81, 0x72, 0x6a, 0xa3, 0x3c, 0x88, 0x40, + 0x99, 0xdb, 0x28, 0x6f, 0x46, 0xa0, 0x40, 0x6a, 0xd3, 0xb0, 0xd8, 0x50, + 0xaf, 0x91, 0xc5, 0xf2, 0xc8, 0xe2, 0x66, 0x64, 0x16, 0x14, 0x27, 0xb6, + 0x1d, 0x8b, 0xbb, 0xb7, 0x22, 0xb8, 0xcb, 0x6d, 0x94, 0xb7, 0x23, 0x50, + 0x4e, 0x6d, 0x94, 0x49, 0x8c, 0x42, 0xcf, 0x1d, 0x9c, 0x18, 0x95, 0x86, + 0xe0, 0x76, 0x6a, 0x04, 0xf7, 0x96, 0x25, 0x9c, 0xb7, 0x6d, 0xed, 0x73, + 0x94, 0x71, 0x02, 0xd1, 0xdd, 0xc6, 0x80, 0x52, 0x97, 0x26, 0xba, 0x76, + 0x04, 0xa8, 0x8f, 0xc4, 0xb6, 0x99, 0xd7, 0x30, 0xd4, 0x10, 0x7d, 0x0d, + 0x72, 0x6f, 0x40, 0x0a, 0x47, 0x5c, 0x83, 0xdc, 0x6b, 0x71, 0xfc, 0x28, + 0x6b, 0x5a, 0x8d, 0x80, 0xd4, 0x21, 0x99, 0x54, 0x8d, 0x60, 0xa6, 0xbd, + 0x04, 0x33, 0xed, 0x25, 0x99, 0x69, 0x1f, 0xd1, 0x4c, 0x7b, 0xc9, 0x66, + 0xda, 0x49, 0x38, 0x35, 0xb2, 0xd9, 0xe9, 0x25, 0x9b, 0x9d, 0x5e, 0xb2, + 0xd9, 0xe9, 0x23, 0x1b, 0x42, 0xea, 0x2c, 0x9a, 0x9d, 0x78, 0xd1, 0xdc, + 0x04, 0x0d, 0x40, 0x91, 0x99, 0xab, 0x93, 0x01, 0xd8, 0x21, 0x7b, 0xd5, + 0xff, 0xe9, 0xab, 0xfe, 0x4f, 0x5f, 0xf5, 0x7f, 0xfa, 0xaa, 0xbf, 0x22, + 0x7d, 0x95, 0xec, 0xce, 0x14, 0x90, 0xbd, 0xd3, 0x72, 0xae, 0x53, 0x82, + 0xc6, 0xfc, 0x3f, 0x94, 0x9e, 0x51, 0xc2, 0x36, 0xda, 0x2f, 0x89, 0x6d, + 0xba, 0xb4, 0xa7, 0xbd, 0xb5, 0x55, 0xd6, 0x7b, 0x1d, 0x95, 0x3f, 0xd8, + 0xe5, 0x44, 0x66, 0xcf, 0x7d, 0xca, 0xff, 0x82, 0xa4, 0x86, 0x8c, 0x4b, + 0xd2, 0x1b, 0xac, 0x99, 0x4a, 0x48, 0x5f, 0x5b, 0x3d, 0x66, 0xaf, 0x85, + 0x33, 0xb9, 0x87, 0x21, 0x29, 0x6a, 0xb8, 0x70, 0xaa, 0x68, 0x3a, 0x7f, + 0x30, 0xa9, 0x45, 0xb9, 0x73, 0x87, 0x5b, 0x4a, 0xdb, 0x00, 0xcc, 0x87, + 0x4a, 0xa5, 0x53, 0xbb, 0x09, 0x92, 0x95, 0x3a, 0xa6, 0x2f, 0x6b, 0x90, + 0x28, 0x25, 0x04, 0x5c, 0xb7, 0x7d, 0xe3, 0x6f, 0x55, 0x74, 0xf1, 0xd6, + 0x47, 0xe9, 0x7e, 0xcd, 0xb5, 0xef, 0xce, 0xa7, 0x32, 0xc9, 0x08, 0x7a, + 0xb7, 0xdf, 0xbe, 0xa6, 0x17, 0x94, 0x38, 0x91, 0xe9, 0xea, 0x23, 0xdc, + 0x6d, 0xeb, 0xa9, 0x95, 0x5a, 0x75, 0x1b, 0x34, 0x44, 0x31, 0x78, 0xc0, + 0xcb, 0xee, 0x5f, 0xb5, 0x1d, 0x41, 0x48, 0x2b, 0xac, 0x6a, 0xba, 0x91, + 0xe5, 0x46, 0x73, 0x93, 0xbf, 0xf0, 0x11, 0x79, 0xc6, 0x27, 0xbc, 0x11, + 0xa8, 0xf7, 0x19, 0xfd, 0x23, 0x51, 0x33, 0x3c, 0x3b, 0xab, 0x8c, 0xbf, + 0x5f, 0xf8, 0x2c, 0x21, 0x20, 0xce, 0xee, 0xa0, 0x00, 0xf7, 0xc2, 0x5b, + 0x91, 0x35, 0xb1, 0xde, 0xd5, 0xa3, 0x57, 0xf6, 0x71, 0x6c, 0xc2, 0x85, + 0xc4, 0x78, 0x8c, 0x34, 0x7a, 0x61, 0xd5, 0x71, 0x69, 0x1e, 0x71, 0x97, + 0x6b, 0xe6, 0x99, 0x8f, 0xcc, 0x71, 0x72, 0x1b, 0xd8, 0x3c, 0xf6, 0x39, + 0xd6, 0x23, 0x64, 0xd0, 0x0d, 0x49, 0x79, 0xba, 0xbf, 0x10, 0xe6, 0x36, + 0xf5, 0x23, 0x7e, 0xee, 0xc6, 0xc9, 0x37, 0x4c, 0x72, 0x81, 0xc1, 0xbb, + 0x6b, 0x02, 0xa8, 0xed, 0x3c, 0x36, 0xa7, 0x59, 0x69, 0xb3, 0x0f, 0x1a, + 0xc6, 0xbb, 0x9e, 0x98, 0x7d, 0xd0, 0x78, 0x45, 0xd0, 0x1b, 0xb1, 0x27, + 0xaf, 0xb4, 0xa0, 0xe8, 0x8b, 0xd7, 0xb3, 0x48, 0x5a, 0x8f, 0xf4, 0x2a, + 0x93, 0x11, 0x9b, 0x0b, 0x45, 0xe7, 0x70, 0x55, 0xe7, 0xc6, 0xed, 0xa4, + 0xe1, 0x29, 0x41, 0x81, 0xcf, 0xcb, 0x38, 0xf7, 0x67, 0xc0, 0xd9, 0x41, + 0xac, 0xb4, 0xf3, 0x30, 0x68, 0xd4, 0xfb, 0x0e, 0xe3, 0x25, 0xbb, 0x0d, + 0x77, 0x18, 0xdf, 0x75, 0xcf, 0x31, 0x67, 0x27, 0xb5, 0x95, 0x9e, 0x4c, + 0x22, 0x2e, 0x81, 0x05, 0xf3, 0x3c, 0xf8, 0xd4, 0x70, 0x7c, 0xb6, 0x1b, + 0x95, 0x40, 0xe2, 0x36, 0x27, 0x2c, 0xd9, 0x96, 0x4c, 0x45, 0xde, 0x8e, + 0x48, 0x89, 0x45, 0x73, 0xfc, 0xa8, 0x1b, 0x27, 0xea, 0x01, 0xc5, 0xde, + 0x71, 0x0c, 0x24, 0xef, 0xa4, 0x87, 0x00, 0xfd, 0x7b, 0x22, 0xbe, 0xc4, + 0xf6, 0xd1, 0xe8, 0xf1, 0xc9, 0x50, 0xd7, 0x27, 0x27, 0x9d, 0xee, 0xe1, + 0x69, 0x41, 0x75, 0x12, 0x56, 0x93, 0xc0, 0x4c, 0x43, 0xa9, 0x55, 0x66, + 0x4d, 0xc0, 0x2c, 0x36, 0x17, 0xb6, 0x35, 0x82, 0x8f, 0x2b, 0x3d, 0xde, + 0x8e, 0x63, 0x5f, 0xef, 0xaf, 0x9e, 0x7f, 0x11, 0x7f, 0x07, 0x20, 0x2a, + 0x1b, 0x48, 0x93, 0xcc, 0x4c, 0x6e, 0xfb, 0x8a, 0xad, 0xb3, 0xe8, 0xba, + 0x88, 0xcf, 0x17, 0x61, 0xa3, 0x18, 0xa7, 0x9d, 0xef, 0x76, 0x0d, 0xca, + 0x2e, 0xc1, 0x25, 0x4c, 0x5d, 0x8c, 0x91, 0xaf, 0xa5, 0x93, 0x7f, 0x56, + 0xc8, 0xdd, 0xfa, 0x75, 0x8c, 0xb4, 0x2d, 0xa4, 0x38, 0x91, 0xfb, 0x62, + 0x6f, 0xdd, 0x17, 0xac, 0x15, 0x7d, 0x36, 0xd9, 0x99, 0xdc, 0x92, 0xf0, + 0x7b, 0x35, 0x40, 0xdf, 0x46, 0xe8, 0xdf, 0x10, 0x5d, 0x55, 0x3f, 0x7e, + 0x2b, 0xd2, 0x34, 0xd2, 0xc3, 0x33, 0x7e, 0x98, 0x65, 0x6d, 0x65, 0xb6, + 0x67, 0x2f, 0x15, 0x88, 0x7d, 0x6c, 0x16, 0x81, 0x59, 0x6b, 0xb4, 0xf8, + 0x8c, 0x6a, 0x09, 0xf5, 0xe0, 0x13, 0x78, 0xfd, 0x6c, 0x4f, 0x46, 0xec, + 0xca, 0xa5, 0xa1, 0x6e, 0x9a, 0xc3, 0x2e, 0xb9, 0x0b, 0xb7, 0xb6, 0xfa, + 0xe7, 0x27, 0x6c, 0xbd, 0x1d, 0xe6, 0xd5, 0xa3, 0xe1, 0x8a, 0x94, 0x99, + 0x16, 0xf9, 0x05, 0x90, 0xa9, 0xa0, 0x1e, 0xb7, 0xf1, 0x13, 0xb5, 0x55, + 0xe0, 0x64, 0xfd, 0x52, 0x5d, 0x43, 0x13, 0xfd, 0x9c, 0xd3, 0x2f, 0xc1, + 0xd9, 0x89, 0xbc, 0xb3, 0x4e, 0xb3, 0xbc, 0x2a, 0x19, 0x45, 0x87, 0xd3, + 0x59, 0xed, 0xea, 0x0e, 0x12, 0xf6, 0x6c, 0x90, 0x14, 0x6a, 0xed, 0x16, + 0xcc, 0xb1, 0x1f, 0x61, 0x74, 0xa1, 0x2d, 0xaf, 0x63, 0x06, 0x2e, 0x6c, + 0x9b, 0x46, 0xe0, 0x73, 0x1d, 0xd8, 0x4e, 0x51, 0x9c, 0xf8, 0xbc, 0xf8, + 0x19, 0xcc, 0xc3, 0x54, 0xca, 0x9f, 0x9a, 0x88, 0x4c, 0xe3, 0x88, 0xd0, + 0x50, 0xd9, 0x44, 0x66, 0x27, 0x98, 0x93, 0xb3, 0x75, 0xeb, 0xa7, 0xf2, + 0x00, 0xe4, 0xcb, 0x1d, 0xb2, 0x40, 0xd6, 0x0c, 0x47, 0x2f, 0xb8, 0x67, + 0xd0, 0xf2, 0xc0, 0xc1, 0x7b, 0x0f, 0x78, 0xda, 0xd7, 0x23, 0x88, 0xaa, + 0xdd, 0x17, 0x02, 0xf8, 0xaf, 0x57, 0xf8, 0x1a, 0x2c, 0x44, 0x84, 0x87, + 0x67, 0x81, 0x1f, 0x7d, 0xa8, 0x59, 0x15, 0xf2, 0x2a, 0x0a, 0x31, 0xce, + 0x63, 0xcd, 0xb3, 0x9f, 0x91, 0x75, 0x52, 0x65, 0xfd, 0x3a, 0xb5, 0x7e, + 0xcd, 0x0f, 0x87, 0xc6, 0xda, 0x3d, 0xfa, 0xfc, 0x50, 0xf3, 0xd0, 0xc0, + 0xc4, 0xd4, 0xe6, 0xc2, 0xfe, 0x79, 0x6a, 0xff, 0x9c, 0x4f, 0x63, 0x19, + 0xd9, 0xa9, 0x61, 0xa4, 0x89, 0x93, 0x1d, 0x9b, 0x13, 0xfb, 0xe7, 0xa9, + 0xfd, 0x73, 0xbe, 0x63, 0x71, 0x72, 0x43, 0x9f, 0xf2, 0xca, 0x9f, 0x99, + 0xf7, 0xeb, 0x91, 0xba, 0xf4, 0xc7, 0xae, 0x79, 0xb3, 0xd5, 0x4f, 0xb3, + 0xa6, 0x2b, 0xbb, 0x1b, 0x66, 0x72, 0x35, 0x01, 0xbd, 0x81, 0x42, 0x18, + 0x99, 0x1d, 0x70, 0x39, 0x51, 0xbd, 0x78, 0x41, 0xb8, 0x8f, 0xc4, 0xb3, + 0x74, 0x63, 0x7a, 0xcc, 0x70, 0xd6, 0xd5, 0xae, 0xf3, 0x8b, 0xf5, 0x0a, + 0x84, 0x45, 0x3d, 0x8f, 0x2a, 0x71, 0xe4, 0x59, 0x79, 0x99, 0xaf, 0x92, + 0x74, 0xb0, 0x4d, 0x82, 0x10, 0x63, 0x10, 0x5e, 0x6f, 0x96, 0xeb, 0x67, + 0x22, 0x09, 0x28, 0xc2, 0x45, 0xc1, 0x2a, 0xe1, 0x5c, 0x8b, 0xe3, 0x29, + 0x3d, 0xff, 0xea, 0xe2, 0x02, 0xdb, 0xc8, 0xb3, 0x22, 0x4b, 0xbd, 0x51, + 0x53, 0x0b, 0x12, 0x5f, 0xbc, 0x22, 0x34, 0x0f, 0x0a, 0x04, 0x67, 0x05, + 0x43, 0x94, 0x1a, 0x78, 0x31, 0xa9, 0x7b, 0x31, 0xad, 0x7b, 0x21, 0x1b, + 0xe0, 0xa6, 0x2e, 0xa7, 0xde, 0x3a, 0x97, 0xd1, 0x2b, 0xcc, 0x6e, 0xf3, + 0x4a, 0x60, 0x13, 0x09, 0x00, 0x56, 0x4e, 0x4b, 0xd9, 0xaa, 0x8c, 0xbc, + 0x79, 0x91, 0xf3, 0xe7, 0x63, 0x91, 0x13, 0x9b, 0x25, 0xa0, 0xa9, 0x09, + 0x10, 0x1d, 0xd7, 0xb7, 0x5c, 0x5f, 0x1e, 0x9d, 0x9d, 0xaf, 0x71, 0xad, + 0xdb, 0x0b, 0x5a, 0xcd, 0xf1, 0x46, 0x24, 0xfc, 0x2c, 0x47, 0xdb, 0xe9, + 0x21, 0x4b, 0xa4, 0xaa, 0x74, 0x6d, 0xc8, 0xab, 0x87, 0xc9, 0x67, 0xb3, + 0xf2, 0x6c, 0x93, 0x8d, 0xc2, 0xd4, 0xc4, 0x7c, 0x4e, 0xa5, 0xf0, 0xb9, + 0x0b, 0x3c, 0x05, 0x4f, 0xb3, 0x6f, 0x93, 0x31, 0xa8, 0x6f, 0x62, 0xb8, + 0xc6, 0x50, 0xf1, 0x69, 0x76, 0x52, 0x0e, 0x47, 0x36, 0xa5, 0xeb, 0x58, + 0x4a, 0xdf, 0x69, 0x4a, 0xf4, 0xee, 0x62, 0x68, 0x8c, 0xaa, 0x4a, 0xd5, + 0xeb, 0x2b, 0xcf, 0xb7, 0xd6, 0xa9, 0xe2, 0x3d, 0x2a, 0x26, 0x8a, 0xfc, + 0x36, 0x86, 0x73, 0x01, 0xfa, 0x5d, 0x98, 0x37, 0xdd, 0x8e, 0x3a, 0xda, + 0x29, 0x75, 0x11, 0xee, 0x69, 0x4f, 0xce, 0x51, 0x47, 0xce, 0xff, 0x0b, + 0xbe, 0x36, 0xaf, 0x46, 0x09, 0x7d, 0x5c, 0xc3, 0x85, 0x14, 0xff, 0x0d, + 0xd9, 0xd9, 0x12, 0x84, 0x8c, 0xb8, 0x6e, 0x2f, 0x24, 0x0d, 0xad, 0xe4, + 0xfc, 0xc0, 0x09, 0x77, 0xc3, 0x03, 0x4e, 0x78, 0x3c, 0xe6, 0xdb, 0xcd, + 0x74, 0xad, 0xd9, 0x7e, 0x29, 0xf1, 0xcd, 0x0c, 0x79, 0x28, 0x4d, 0x67, + 0x24, 0x44, 0xd6, 0x69, 0x5d, 0x7c, 0x00, 0x38, 0xb7, 0x41, 0xb5, 0x83, + 0x9a, 0x07, 0x79, 0x1a, 0x82, 0x9c, 0x84, 0x20, 0xe7, 0x21, 0xc8, 0x69, + 0x08, 0xf2, 0xa5, 0x01, 0xa9, 0xcd, 0x00, 0xed, 0xfe, 0xe0, 0x71, 0x64, + 0x7a, 0x39, 0xf8, 0x4c, 0x68, 0x67, 0x06, 0xaf, 0x58, 0xd3, 0x69, 0x41, + 0x96, 0xe4, 0x9f, 0xf9, 0x0c, 0x6f, 0x39, 0x79, 0xa0, 0x39, 0xf5, 0xfa, + 0xd1, 0xad, 0xad, 0xb1, 0x44, 0xaa, 0x96, 0xa9, 0xf1, 0x95, 0xba, 0xb1, + 0xd7, 0xfd, 0x53, 0xba, 0x16, 0x85, 0xcb, 0xcc, 0xf8, 0x4f, 0x8e, 0xd9, + 0x2f, 0x17, 0xc7, 0xe5, 0x59, 0xf5, 0xeb, 0x2c, 0xa3, 0x49, 0xdf, 0x98, + 0x45, 0x14, 0xed, 0x98, 0xd8, 0xe1, 0x66, 0xa9, 0xcc, 0x26, 0x3f, 0x4f, + 0xfd, 0x3d, 0x2b, 0x13, 0xe8, 0x1b, 0x9a, 0x59, 0x52, 0xa3, 0xc4, 0xaa, + 0xd0, 0xad, 0x37, 0xde, 0x90, 0xa0, 0x6f, 0x24, 0x8f, 0x01, 0x59, 0xc8, + 0x1e, 0x44, 0x53, 0x82, 0x7a, 0xb1, 0xa5, 0x65, 0x63, 0x52, 0x33, 0x87, + 0xcf, 0xa3, 0x0c, 0xf5, 0xcf, 0xbf, 0x4d, 0xf6, 0xad, 0x1a, 0x27, 0x5b, + 0xb0, 0xf4, 0x5c, 0xa0, 0xef, 0x00, 0x64, 0x09, 0x42, 0x41, 0xf9, 0xce, + 0xc9, 0x92, 0xea, 0x48, 0x61, 0x46, 0xc9, 0x93, 0x4a, 0xe2, 0xbb, 0x2a, + 0x4f, 0x71, 0xf4, 0x75, 0x59, 0xf8, 0x2c, 0xdd, 0xdf, 0xdc, 0x35, 0x40, + 0x71, 0xf6, 0x65, 0x80, 0xa6, 0x16, 0xec, 0x18, 0x77, 0x92, 0x86, 0x36, + 0x7b, 0x0c, 0x9e, 0xcc, 0xd7, 0x39, 0x34, 0x0e, 0x0f, 0x8d, 0xa6, 0x9f, + 0x67, 0xa7, 0x8b, 0xd5, 0x97, 0x18, 0xb6, 0xd2, 0xa1, 0x0b, 0x2e, 0xda, + 0xce, 0x06, 0x9f, 0xe5, 0x47, 0x7e, 0xfd, 0x4c, 0x6e, 0x58, 0x7f, 0xa6, + 0x68, 0x16, 0x1e, 0x0a, 0xbf, 0x7c, 0x32, 0x12, 0x7b, 0xb7, 0x9a, 0x38, + 0xb7, 0x05, 0x7b, 0xb4, 0x9b, 0x4c, 0x3d, 0x4c, 0x52, 0x8c, 0x79, 0x05, + 0xbf, 0x5c, 0x25, 0x33, 0x1e, 0x42, 0x09, 0x48, 0x32, 0xf1, 0xca, 0xd0, + 0x66, 0x83, 0xf2, 0x3d, 0x7f, 0xc3, 0x95, 0xdd, 0x4f, 0xee, 0xef, 0xd9, + 0xef, 0xc4, 0x15, 0xa2, 0x67, 0xb4, 0x51, 0x81, 0xb7, 0x83, 0x57, 0xb7, + 0xf9, 0x6f, 0x10, 0x84, 0x4a, 0x87, 0xce, 0x63, 0xbe, 0xb6, 0x52, 0x89, + 0xa3, 0xe2, 0xf9, 0x64, 0xb1, 0x5c, 0x8a, 0x40, 0x0e, 0xf3, 0x0c, 0x8b, + 0xa8, 0xc5, 0xc9, 0xe5, 0x52, 0xc5, 0xcf, 0x52, 0x20, 0xe5, 0xec, 0x87, + 0x6c, 0xc5, 0xfe, 0xf4, 0xec, 0x87, 0xf0, 0x30, 0x91, 0xf9, 0xce, 0x8b, + 0x12, 0x9b, 0x25, 0x98, 0x64, 0xf3, 0x93, 0xe5, 0xfa, 0x25, 0x86, 0xa5, + 0xf3, 0xad, 0x1f, 0x2f, 0xb3, 0x82, 0xcf, 0xb7, 0xb6, 0x26, 0x6f, 0x4d, + 0x1f, 0xec, 0xbe, 0xb5, 0x7d, 0x7f, 0x6b, 0x7e, 0xb9, 0x58, 0xd2, 0x89, + 0xe7, 0x78, 0x36, 0x66, 0xb2, 0x63, 0x36, 0xaa, 0xc6, 0x8b, 0xd5, 0xf8, + 0xac, 0x3c, 0x5f, 0xee, 0x3a, 0x89, 0x27, 0x30, 0x3a, 0x2c, 0xc5, 0x18, + 0x23, 0xbf, 0xbe, 0x03, 0x0b, 0xf2, 0x41, 0xf5, 0xeb, 0x9e, 0x6b, 0x5c, + 0x03, 0x47, 0xb8, 0x48, 0xbc, 0x2f, 0x11, 0x53, 0x01, 0x38, 0x86, 0x01, + 0xac, 0x5b, 0x0a, 0x1a, 0x33, 0x79, 0xcb, 0x0d, 0xb8, 0x09, 0x33, 0x54, + 0x21, 0x31, 0x4e, 0x2d, 0x78, 0x58, 0xa3, 0xfc, 0xb7, 0x64, 0x6f, 0x3c, + 0x5f, 0x7b, 0x3a, 0xa4, 0x40, 0x5d, 0x5d, 0xb3, 0x67, 0x58, 0x85, 0xe5, + 0x3f, 0x05, 0x09, 0xfb, 0xa9, 0xa9, 0x93, 0xce, 0x1b, 0x2d, 0x0a, 0xe7, + 0x05, 0x2a, 0x1b, 0x7a, 0xcc, 0x0a, 0xac, 0x1f, 0x69, 0x56, 0xc3, 0x6a, + 0xe3, 0xbf, 0x25, 0xed, 0xa9, 0xf4, 0xf1, 0xac, 0x58, 0xa6, 0x98, 0x94, + 0x54, 0x5b, 0xd1, 0xf1, 0x24, 0xdd, 0x9e, 0xa3, 0x23, 0xe1, 0xd7, 0x87, + 0x83, 0x1a, 0xec, 0x34, 0xae, 0xd0, 0x1b, 0xad, 0xb2, 0x34, 0x98, 0x74, + 0xe9, 0xf2, 0xe5, 0xd9, 0xa2, 0xd8, 0x6c, 0xee, 0xe5, 0xb9, 0x10, 0xa6, + 0x29, 0x3f, 0x2d, 0x32, 0x50, 0xbf, 0x24, 0x38, 0x1c, 0xe0, 0x1f, 0xfd, + 0xf0, 0x72, 0x41, 0x3d, 0x3e, 0x66, 0xe4, 0x00, 0x97, 0xf1, 0x23, 0x07, + 0x49, 0x82, 0x06, 0x05, 0x89, 0x6e, 0x64, 0x41, 0xbc, 0x7e, 0x71, 0x4a, + 0xdc, 0xe1, 0xb1, 0x36, 0xa2, 0x64, 0x9e, 0x95, 0x4f, 0x31, 0x54, 0xcc, + 0xf2, 0x8f, 0xc5, 0x6b, 0x35, 0xc1, 0x4d, 0xde, 0xa4, 0x4f, 0x49, 0xda, + 0x44, 0xa7, 0x93, 0x68, 0xe1, 0xaa, 0x8b, 0x7d, 0x10, 0x02, 0xc6, 0xb1, + 0x21, 0x05, 0xa7, 0x6e, 0x05, 0x85, 0x59, 0xa6, 0x8e, 0x09, 0x79, 0xe0, + 0xa8, 0x69, 0x7f, 0x93, 0xc0, 0x5e, 0x2d, 0x94, 0x22, 0x05, 0x88, 0xa0, + 0x26, 0x78, 0x63, 0xa9, 0x6c, 0x6d, 0x1a, 0x16, 0xeb, 0x07, 0xca, 0xe9, + 0xdd, 0x0d, 0x94, 0xad, 0x13, 0xb3, 0x18, 0xc6, 0xc3, 0x53, 0xb3, 0xb6, + 0x06, 0xd4, 0xa0, 0xb5, 0xcc, 0x4a, 0xa9, 0x6d, 0xa1, 0xa9, 0x59, 0xc3, + 0x2c, 0xc8, 0x46, 0xf6, 0x5a, 0x5c, 0x5b, 0xce, 0xd0, 0xa6, 0x4a, 0x6b, + 0xf5, 0xf7, 0xa1, 0xa6, 0x20, 0x6e, 0x41, 0xee, 0x0b, 0x42, 0xca, 0xa8, + 0x36, 0x46, 0x5b, 0x02, 0xb9, 0xc2, 0xfb, 0xb1, 0xc0, 0xdc, 0xc3, 0x8f, + 0x77, 0x92, 0xea, 0xbb, 0x79, 0x4c, 0x6a, 0x62, 0x5c, 0x9b, 0x18, 0xd7, + 0x06, 0xc6, 0xb5, 0x83, 0xa1, 0xb8, 0x38, 0xc8, 0x61, 0xde, 0x9f, 0x2d, + 0xc8, 0x42, 0xbd, 0xba, 0x9e, 0x5e, 0xac, 0x97, 0xb3, 0x3c, 0x85, 0xc5, + 0x7f, 0x4d, 0x9c, 0x06, 0xae, 0x37, 0x25, 0xef, 0x4a, 0x8a, 0x75, 0x0e, + 0x3e, 0xc5, 0x0f, 0x8b, 0x0b, 0x0e, 0xdd, 0x06, 0x2a, 0xd7, 0xe4, 0x58, + 0x87, 0x51, 0x60, 0xb1, 0x82, 0x68, 0x0a, 0x28, 0xcb, 0xac, 0xc4, 0xfc, + 0xca, 0xb3, 0x6f, 0xb1, 0x38, 0xc6, 0xe7, 0x89, 0x31, 0xcf, 0x7a, 0xd4, + 0x42, 0x79, 0x9d, 0xe5, 0x48, 0xe3, 0x57, 0xe3, 0x38, 0xc3, 0x15, 0x11, + 0x62, 0x6d, 0x8a, 0x6f, 0x29, 0x2a, 0xa4, 0xf9, 0x37, 0xb7, 0xf4, 0x16, + 0xa7, 0x97, 0xa2, 0x7c, 0x2e, 0x98, 0x47, 0x13, 0x72, 0xf6, 0xe1, 0x0d, + 0x54, 0xc1, 0xce, 0xa2, 0x48, 0x2e, 0x16, 0x57, 0xd9, 0x12, 0xcf, 0x18, + 0x86, 0x9b, 0x47, 0xb4, 0x15, 0xdf, 0x0a, 0xde, 0xf4, 0xcb, 0xce, 0xd7, + 0x2f, 0x3f, 0x15, 0x3e, 0x76, 0xfb, 0x46, 0x53, 0xef, 0xf9, 0x80, 0xb3, + 0xe3, 0xef, 0x2f, 0x8b, 0x32, 0x3b, 0x86, 0xd5, 0x87, 0xd6, 0xbc, 0xa7, + 0x00, 0xa5, 0x11, 0x87, 0x79, 0x1a, 0x2d, 0x2e, 0xa6, 0xf1, 0x83, 0xf1, + 0x2e, 0x07, 0x6a, 0x3a, 0xa4, 0x6b, 0xb2, 0x07, 0xdb, 0x34, 0x4e, 0xe3, + 0x7b, 0x0a, 0x86, 0x4c, 0x89, 0x82, 0xe3, 0x20, 0x8f, 0xc3, 0xfa, 0xa2, + 0xc9, 0x96, 0xbc, 0x0e, 0x17, 0x7d, 0x7d, 0x47, 0x45, 0xb3, 0x38, 0xb5, + 0xc5, 0x44, 0x45, 0x66, 0xd8, 0xe2, 0x96, 0x62, 0xce, 0xb3, 0x1f, 0x2f, + 0x17, 0x39, 0x08, 0xde, 0x4f, 0x8a, 0xe5, 0xba, 0x2c, 0x94, 0xdc, 0x35, + 0x49, 0x9f, 0x22, 0x37, 0x17, 0xdb, 0x12, 0x4a, 0xa0, 0xa8, 0x51, 0xaa, + 0xab, 0xf8, 0x86, 0x6e, 0x92, 0x21, 0xac, 0x0c, 0x83, 0x83, 0xbd, 0x90, + 0xee, 0x9c, 0x09, 0x57, 0xef, 0xec, 0x34, 0xd0, 0x64, 0xc5, 0x0c, 0x3b, + 0x34, 0x33, 0x19, 0x9d, 0x21, 0x4f, 0xb6, 0xea, 0x1b, 0x57, 0xad, 0xbe, + 0x26, 0x9b, 0xdb, 0xc1, 0x52, 0x0e, 0xb0, 0x48, 0x1a, 0x89, 0x25, 0xde, + 0x88, 0x17, 0x73, 0xbc, 0x7a, 0x2d, 0x7e, 0x9a, 0x62, 0xd1, 0x9c, 0x82, + 0x85, 0x91, 0x51, 0xd6, 0x48, 0x50, 0x1b, 0x86, 0x74, 0x68, 0x79, 0x71, + 0x36, 0x23, 0x45, 0xdb, 0xdd, 0x75, 0x8b, 0x61, 0x99, 0x1d, 0xb0, 0x70, + 0x88, 0x36, 0xca, 0xdb, 0xab, 0x7b, 0x0f, 0x79, 0x4d, 0x00, 0x23, 0xd8, + 0x69, 0x82, 0x9a, 0x02, 0x8a, 0xb9, 0x6d, 0x02, 0xda, 0x01, 0x90, 0x60, + 0xac, 0x6e, 0x7b, 0xd9, 0x9e, 0xe3, 0x2f, 0x2e, 0x8d, 0x2d, 0x06, 0xd6, + 0x20, 0x9e, 0x19, 0xb7, 0x9d, 0x1d, 0x5d, 0x7b, 0x40, 0xb2, 0x47, 0x68, + 0x14, 0xc8, 0x73, 0x75, 0xf1, 0x63, 0x5e, 0xa6, 0x57, 0x68, 0x63, 0xe2, + 0xe3, 0x1a, 0x9f, 0xd7, 0xe6, 0x10, 0x8b, 0x71, 0x40, 0x01, 0xa2, 0xa8, + 0xd5, 0x34, 0xc5, 0x26, 0xc6, 0x15, 0x00, 0xcc, 0xcd, 0x37, 0x35, 0x00, + 0x3a, 0x65, 0xab, 0xa1, 0x04, 0x9f, 0x66, 0x80, 0x2f, 0xfc, 0x84, 0xfa, + 0xa1, 0x93, 0xfc, 0xfe, 0xdb, 0x28, 0xf9, 0xfd, 0xb7, 0x43, 0x3c, 0xc0, + 0x7a, 0x59, 0xbd, 0x56, 0x34, 0x81, 0x08, 0xc1, 0x32, 0x20, 0xea, 0x05, + 0xfb, 0x58, 0xc3, 0xe9, 0x82, 0x53, 0xa2, 0x0d, 0xae, 0xa5, 0xcd, 0x41, + 0xcb, 0xa6, 0xd4, 0xb0, 0x41, 0x58, 0x73, 0x81, 0xea, 0xf0, 0xd5, 0xac, + 0x31, 0x96, 0x90, 0x8e, 0xce, 0xd0, 0x9f, 0xa1, 0x2b, 0xe2, 0x15, 0xa8, + 0x69, 0x70, 0x43, 0x46, 0x20, 0x34, 0x01, 0x0c, 0x3e, 0xc0, 0x00, 0x8a, + 0xd3, 0x6f, 0xd0, 0xc5, 0x24, 0x0d, 0xe0, 0xa6, 0x93, 0x64, 0x2c, 0x25, + 0x39, 0x2f, 0xd2, 0x94, 0xb1, 0x5e, 0x27, 0x23, 0x7e, 0x0c, 0x8b, 0xdf, + 0x94, 0x79, 0x3e, 0x81, 0x96, 0xe3, 0xff, 0xf9, 0xc4, 0xdc, 0x01, 0x14, + 0x08, 0xef, 0x62, 0xe1, 0x00, 0xe7, 0x64, 0x2e, 0xd3, 0x8f, 0x59, 0x93, + 0x1e, 0x68, 0x5c, 0xd2, 0xa8, 0x03, 0x51, 0x38, 0x9a, 0x0c, 0xba, 0x71, + 0xe8, 0xac, 0xd7, 0x4d, 0x9a, 0x13, 0x93, 0xe6, 0xb4, 0x99, 0x26, 0x68, + 0x49, 0xb2, 0xcd, 0x34, 0xa7, 0x26, 0xcd, 0x9d, 0x66, 0x9a, 0xdb, 0x9a, + 0xe6, 0x55, 0x13, 0xcd, 0x1d, 0x93, 0xe6, 0xfd, 0x56, 0x9a, 0x15, 0xab, + 0x4d, 0x34, 0xef, 0x9b, 0x34, 0x77, 0x5b, 0xeb, 0xbe, 0x1d, 0x43, 0x73, + 0xd7, 0xa4, 0xf9, 0x20, 0xae, 0x8d, 0xb6, 0xcd, 0xba, 0x43, 0x61, 0xb5, + 0x42, 0x9c, 0x57, 0x1a, 0x38, 0x96, 0x65, 0x03, 0xca, 0x34, 0x3f, 0x4e, + 0x41, 0x8c, 0x69, 0xf1, 0x7d, 0xf7, 0x73, 0x3c, 0x90, 0x9f, 0x73, 0xfe, + 0x3c, 0x34, 0xac, 0x4e, 0xe5, 0x81, 0x9d, 0x8f, 0x4e, 0x47, 0x73, 0xa6, + 0xaa, 0xee, 0xa9, 0x43, 0x60, 0x13, 0x35, 0x65, 0x61, 0x6c, 0x3c, 0xb4, + 0xfb, 0x38, 0x9e, 0x40, 0x87, 0x51, 0x96, 0xf8, 0x72, 0x2a, 0xbf, 0xa0, + 0x5c, 0x6f, 0x63, 0xbc, 0x44, 0x4f, 0x2d, 0x96, 0x98, 0xe3, 0x52, 0x0a, + 0x52, 0x64, 0xee, 0x63, 0xf1, 0x83, 0x4d, 0xfa, 0xe7, 0xb9, 0xda, 0x64, + 0xe2, 0x16, 0xe5, 0xc7, 0x3c, 0x5f, 0x2d, 0x56, 0xd5, 0xb5, 0xfc, 0x4d, + 0x3b, 0x4e, 0xa7, 0x06, 0xaa, 0x0f, 0x06, 0x72, 0x50, 0xc1, 0x1c, 0x2a, + 0x39, 0x36, 0x95, 0xcd, 0x5a, 0x5f, 0x3d, 0x86, 0x9f, 0x9d, 0xbc, 0xd5, + 0xfd, 0xec, 0xd1, 0xd3, 0x27, 0x5f, 0x3e, 0x1f, 0xa0, 0xf4, 0xe6, 0xa0, + 0x9d, 0x8c, 0x7a, 0x44, 0x29, 0x18, 0x3f, 0xc7, 0xb7, 0xe6, 0xf0, 0x9d, + 0x5a, 0x28, 0x0e, 0xd6, 0xc1, 0x02, 0x8d, 0x5e, 0xe3, 0x53, 0xa0, 0x0e, + 0x6f, 0xfc, 0xc0, 0xad, 0x83, 0xc7, 0x5f, 0x7c, 0xc6, 0x47, 0x32, 0x78, + 0x06, 0x7f, 0xeb, 0xec, 0x18, 0x2b, 0x51, 0xd5, 0x00, 0xd5, 0x59, 0x84, + 0x6e, 0x73, 0x14, 0x44, 0x2d, 0x9b, 0x5f, 0xae, 0x92, 0x62, 0xb1, 0x3a, + 0xca, 0x12, 0xa0, 0x53, 0x5c, 0x91, 0x25, 0xe3, 0x72, 0xb0, 0xe0, 0x9c, + 0x62, 0xa8, 0xc8, 0x5d, 0xd4, 0xac, 0xe4, 0xab, 0x19, 0x6a, 0xdd, 0xc0, + 0xef, 0x94, 0x67, 0x73, 0x53, 0x20, 0x28, 0x33, 0xba, 0xca, 0x2d, 0x44, + 0x2d, 0x82, 0x06, 0x6c, 0x12, 0x87, 0xcc, 0x4c, 0xb5, 0x92, 0x0c, 0xa4, + 0x7d, 0x04, 0x71, 0x71, 0x35, 0x4c, 0x71, 0x62, 0xaf, 0x3b, 0xd0, 0xc7, + 0x55, 0x32, 0x12, 0x67, 0x1b, 0x50, 0xbd, 0xa9, 0x4f, 0x8e, 0x88, 0x76, + 0x30, 0x9b, 0xe7, 0x9d, 0xad, 0xe2, 0x28, 0x5f, 0x5c, 0x94, 0xef, 0xe2, + 0x11, 0xff, 0x9c, 0xaf, 0x8f, 0xaf, 0xf1, 0xe3, 0x9d, 0x2d, 0xda, 0xeb, + 0xc1, 0x97, 0x3f, 0x00, 0x44, 0xc6, 0x8f, 0x63, 0x02, 0x8c, 0x01, 0x00 +}; diff --git a/Arduino/McLighting/mode_custom_ws2812fx_animations.h b/Arduino/McLighting/mode_custom_ws2812fx_animations.h new file mode 100644 index 0000000..66db560 --- /dev/null +++ b/Arduino/McLighting/mode_custom_ws2812fx_animations.h @@ -0,0 +1,94 @@ +/* + +Example of adding the example: https://github.com/kitesurfer1404/WS2812FX/blob/master/examples/ws2812fx_custom_FastLED/ws2812fx_custom_FastLED.ino +as a custom effect + +More info on how to create custom aniamtions for WS2812FX: https://github.com/kitesurfer1404/WS2812FX/blob/master/extras/WS2812FX%20Users%20Guide.md#custom-effects + +*/ + +#include //https://github.com/FastLED/FastLED + +byte* heat; + +/* + * paste in the Fire2012 code with a small edit at the end which uses the + * setPixelColor() function to copy the color data to the ws2812fx instance. +*/ + + // Fire2012 by Mark Kriegsman, July 2012 +// as part of "Five Elements" shown here: http://youtu.be/knWiGsmgycY +//// +// This basic one-dimensional 'fire' simulation works roughly as follows: +// There's a underlying array of 'heat' cells, that model the temperature +// at each point along the line. Every cycle through the simulation, +// four steps are performed: +// 1) All cells cool down a little bit, losing heat to the air +// 2) The heat from each cell drifts 'up' and diffuses a little +// 3) Sometimes randomly new 'sparks' of heat are added at the bottom +// 4) The heat from each cell is rendered as a color into the leds array +// The heat-to-color mapping uses a black-body radiation approximation. +// +// Temperature is in arbitrary units from 0 (cold black) to 255 (white hot). +// +// This simulation scales it self a bit depending on NUM_LEDS; it should look +// "OK" on anywhere from 20 to 100 LEDs without too much tweaking. +// +// I recommend running this simulation at anywhere from 30-100 frames per second, +// meaning an interframe delay of about 10-35 milliseconds. +// +// Looks best on a high-density LED setup (60+ pixels/meter). +// +// +// There are two main parameters you can play with to control the look and +// feel of your fire: COOLING (used in step 1 above), and SPARKING (used +// in step 3 above). +// +// COOLING: How much does the air cool as it rises? +// Less cooling = taller flames. More cooling = shorter flames. +// Default 50, suggested range 20-100 +#define COOLING 70 + +// SPARKING: What chance (out of 255) is there that a new spark will be lit? +// Higher chance = more roaring fire. Lower chance = more flickery fire. +// Default 120, suggested range 50-200. +#define SPARKING 120 + +bool gReverseDirection = false; + +void Fire2012() { +// Array of temperature readings at each simulation cell + + // Step 1. Cool down every cell a little + for( int i = 0; i < WS2812FXStripSettings.stripSize; i++) { + heat[i] = qsub8( heat[i], random8(0, ((COOLING * 10) / WS2812FXStripSettings.stripSize) + 2)); + } + + // Step 2. Heat from each cell drifts 'up' and diffuses a little + for( int k= WS2812FXStripSettings.stripSize - 1; k >= 2; k--) { + heat[k] = (heat[k - 1] + heat[k - 2] + heat[k - 2] ) / 3; + } + + // Step 3. Randomly ignite new 'sparks' of heat near the bottom + if( random8() < SPARKING ) { + int y = random8(7); + heat[y] = qadd8( heat[y], random8(160,255) ); + } + + // Step 4. Map from heat cells to LED colors + for( int j = 0; j < WS2812FXStripSettings.stripSize; j++) { + CRGB color = HeatColor( heat[j]); + int pixelnumber; + if( gReverseDirection ) { + pixelnumber = (WS2812FXStripSettings.stripSize - 1) - j; + } else { + pixelnumber = j; + } + strip->setPixelColor(pixelnumber, color.red, color.green, color.blue); + } +} + +uint16_t myCustomEffect0() { + Fire2012(); + return (strip->getSpeed() / WS2812FXStripSettings.stripSize); +} diff --git a/Arduino/McLighting/mode_tv.h b/Arduino/McLighting/mode_tv.h index 7871484..a069b42 100644 --- a/Arduino/McLighting/mode_tv.h +++ b/Arduino/McLighting/mode_tv.h @@ -2,20 +2,20 @@ // TV mode // *************************************************************************** -int dipInterval = 10; -int darkTime = 250; +uint8_t dipInterval = 10; +uint16_t darkTime = 250; unsigned long currentDipTime; unsigned long dipStartTime; unsigned long currentMillis; -int ledState = LOW; -long previousMillis = 0; -int led = 5; -int interval = 2000; -int twitch = 50; -int dipCount = 0; -int analogLevel = 100; -boolean timeToDip = false; -int ledStates[NUMLEDS]; +uint8_t ledState = LOW; +long previousMillis = 0; +uint16_t led = 5; +uint16_t interv = 2000; +uint8_t twitch = 50; +uint8_t dipCount = 0; +uint8_t analogLevel = 100; +boolean timeToDip = false; +uint8_t* ledStates; void hsb2rgbAN1(uint16_t index, uint8_t sat, uint8_t bright, uint8_t myled) { @@ -24,17 +24,17 @@ void hsb2rgbAN1(uint16_t index, uint8_t sat, uint8_t bright, uint8_t myled) { temp[0] = temp[3] = (uint8_t)(( (sat ^ 255) * bright) / 255); temp[1] = temp[4] = (uint8_t)((((( (index & 255) * sat) / 255) + (sat ^ 255)) * bright) / 255); temp[2] = (uint8_t)(((((((index & 255) ^ 255) * sat) / 255) + (sat ^ 255)) * bright) / 255); - strip.setPixelColor(myled, temp[n + 2], temp[n + 1], temp[n], 0); + strip->setPixelColor(myled, temp[n + 2], temp[n + 1], temp[n], 0); } -void updateLed (int led, int brightness) { +void updateLed (uint16_t led, uint8_t brightness) { ledStates[led] = brightness; - for (int i=0; ishow(); } @@ -42,15 +42,15 @@ void updateLed (int led, int brightness) { void handleTV() { if (timeToDip == false) { currentMillis = millis(); - if(currentMillis-previousMillis > interval) { + if(currentMillis-previousMillis > interv) { previousMillis = currentMillis; - //interval = random(750,4001);//Adjusts the interval for more/less frequent random light changes - interval = random(1000-(ws2812fx_speed*2),5001-(ws2812fx_speed*8)); + //interv = random(750,4001);//Adjusts the interval for more/less frequent random light changes + interv = random(1000-(ws2812fx_speed*2),5001-(ws2812fx_speed*8)); twitch = random(40,100);// Twitch provides motion effect but can be a bit much if too high dipCount = dipCount++; } if(currentMillis-previousMillisnumPixels()-1)); analogLevel=random(50,255);// set the range of the 3 pwm leds ledState = ledState == LOW ? HIGH: LOW; // if the LED is off turn it on and vice-versa: updateLed(led, (ledState) ? 255 : 0); @@ -67,12 +67,12 @@ void handleTV() { DBG_OUTPUT_PORT.println("Dip Time"); currentDipTime = millis(); if (currentDipTime - dipStartTime < darkTime) { - for (int i=3; inumPixels(); i++) { updateLed(i, 0); } } else { timeToDip = false; } - strip.show(); + strip->show(); } } diff --git a/Arduino/McLighting/request_handlers.h b/Arduino/McLighting/request_handlers.h index d1c6d2b..9fc8a8b 100644 --- a/Arduino/McLighting/request_handlers.h +++ b/Arduino/McLighting/request_handlers.h @@ -3,15 +3,16 @@ // *************************************************************************** // Prototypes -void handleAutoStart(void); -String listStatusJSON(void); +void handleAutoStart(); +String listStatusJSON(); +bool writeConfigFS(bool); #if defined(ENABLE_E131) void handleE131(){ - if (!e131.isEmpty()) + if (!e131->isEmpty()) { e131_packet_t packet; - e131.pull(&packet); // Pull packet from ring buffer + e131->pull(&packet); // Pull packet from ring buffer uint16_t universe = htons(packet.universe); uint8_t *data = packet.property_values + 1; @@ -36,12 +37,12 @@ void handleE131(){ for (uint16_t i = 0; i < len; i++){ uint16_t j = i * 3; /* #if defined(RGBW) - strip.setPixelColor(i + multipacketOffset, data[j], data[j + 1], data[j + 2], data[j + 3]); + strip->setPixelColor(i + multipacketOffset, data[j], data[j + 1], data[j + 2], data[j + 3]); #else */ - strip.setPixelColor(i + multipacketOffset, data[j], data[j + 1], data[j + 2], 0); + strip->setPixelColor(i + multipacketOffset, data[j], data[j + 1], data[j + 2], 0); /* #endif */ } - strip.show(); + strip->show(); } } #endif @@ -82,7 +83,7 @@ void getArgs() { back_color.blue = ((rgb2 >> 0) & 0xFF); } else { if ((server.arg("r2") != "") && (server.arg("r2").toInt() >= 0) && (server.arg("r2").toInt() <= 255)) { - back_color.red = server.arg("r2").toInt(); + back_color.red = constrain(server.arg("r2").toInt(), 0, 255); } if ((server.arg("g2") != "") && (server.arg("g2").toInt() >= 0) && (server.arg("g2").toInt() <= 255)) { back_color.green = server.arg("g2").toInt(); @@ -118,8 +119,8 @@ void getArgs() { ws2812fx_speed = constrain(server.arg("s").toInt(), 0, 255); } - if ((server.arg("m") != "") && (server.arg("m").toInt() >= 0) && (server.arg("m").toInt() <= strip.getModeCount())) { - ws2812fx_mode = constrain(server.arg("m").toInt(), 0, strip.getModeCount() - 1); + if ((server.arg("m") != "") && (server.arg("m").toInt() >= 0) && (server.arg("m").toInt() <= strip->getModeCount())) { + ws2812fx_mode = constrain(server.arg("m").toInt(), 0, strip->getModeCount() - 1); } if ((server.arg("c") != "") && (server.arg("c").toInt() >= 0) && (server.arg("c").toInt() <= 100)) { @@ -198,7 +199,7 @@ void handleSetAllMode(uint8_t * mypayload) { main_color.red = ((rgb >> 16) & 0xFF); main_color.green = ((rgb >> 8) & 0xFF); main_color.blue = ((rgb >> 0) & 0xFF); - DBG_OUTPUT_PORT.printf("WS: Set all leds to main color: R: [%u] G: [%u] B: [%u] W: [%u]\n", main_color.red, main_color.green, main_color.blue, main_color.white); + DBG_OUTPUT_PORT.printf("WS: Set all leds to main color: R: [%u] G: [%u] B: [%u] W: [%u]\r\n", main_color.red, main_color.green, main_color.blue, main_color.white); ws2812fx_mode = FX_MODE_STATIC; mode = SET_ALL; } @@ -209,8 +210,8 @@ void handleSetSingleLED(uint8_t * mypayload, uint8_t firstChar = 0) { strncpy (templed, (const char *) &mypayload[firstChar], 2 ); uint8_t led = atoi(templed); - DBG_OUTPUT_PORT.printf("led value: [%i]. Entry threshold: <= [%i] (=> %s)\n", led, strip.numPixels(), mypayload ); - if (led <= strip.numPixels()) { + DBG_OUTPUT_PORT.printf("led value: [%i]. Entry threshold: <= [%i] (=> %s)\r\n", led, strip->numPixels(), mypayload ); + if (led <= strip->numPixels()) { char redhex[3]; char greenhex[3]; char bluehex[3]; @@ -219,15 +220,18 @@ void handleSetSingleLED(uint8_t * mypayload, uint8_t firstChar = 0) { strncpy (greenhex, (const char *) &mypayload[4 + firstChar], 2 ); strncpy (bluehex, (const char *) &mypayload[6 + firstChar], 2 ); strncpy (whitehex, (const char *) &mypayload[8 + firstChar], 2 ); + redhex[2] = 0x00; + greenhex[2] = 0x00; + bluehex[2] = 0x00; ledstates[led].red = strtol(redhex, NULL, 16); ledstates[led].green = strtol(greenhex, NULL, 16); ledstates[led].blue = strtol(bluehex, NULL, 16); ledstates[led].white = strtol(whitehex, NULL, 16); - DBG_OUTPUT_PORT.printf("rgb.red: [%s] rgb.green: [%s] rgb.blue: [%s] rgb.white: [%s]\n", redhex, greenhex, bluehex, whitehex); - DBG_OUTPUT_PORT.printf("rgb.red: [%i] rgb.green: [%i] rgb.blue: [%i] rgb.white: [%i]\n", strtol(redhex, NULL, 16), strtol(greenhex, NULL, 16), strtol(bluehex, NULL, 16), strtol(whitehex, NULL, 16)); - DBG_OUTPUT_PORT.printf("WS: Set single led [%i] to [%i] [%i] [%i] [%i] (%s)!\n", led, ledstates[led].red, ledstates[led].green, ledstates[led].blue, ledstates[led].white, mypayload); - strip.setPixelColor(led, ledstates[led].red, ledstates[led].green, ledstates[led].blue, ledstates[led].white); - strip.show(); + DBG_OUTPUT_PORT.printf("rgb.red: [%s] rgb.green: [%s] rgb.blue: [%s] rgb.white: [%s]\r\n", redhex, greenhex, bluehex, whitehex); + DBG_OUTPUT_PORT.printf("rgb.red: [%i] rgb.green: [%i] rgb.blue: [%i] rgb.white: [%i]\r\n", strtol(redhex, NULL, 16), strtol(greenhex, NULL, 16), strtol(bluehex, NULL, 16), strtol(whitehex, NULL, 16)); + DBG_OUTPUT_PORT.printf("WS: Set single led [%i] to [%i] [%i] [%i] [%i] (%s)!\r\n", led, ledstates[led].red, ledstates[led].green, ledstates[led].blue, ledstates[led].white, mypayload); + strip->setPixelColor(led, ledstates[led].red, ledstates[led].green, ledstates[led].blue, ledstates[led].white); + strip->show(); } mode = CUSTOM; } @@ -248,25 +252,25 @@ void handleRangeDifferentColors(uint8_t * mypayload) { while (nextCommand) { // Loop for each LED. - char startled[3] = { 0, 0, 0 }; - char endled[3] = { 0, 0, 0 }; - char colorval[8] = { 0, 0, 0, 0, 0, 0, 0, 0 }; + char startled[4] = { 0, 0, 0 }; + char endled[4] = { 0, 0, 0 }; + char colorval[9] = { 0, 0, 0, 0, 0, 0, 0, 0 }; strncpy ( startled, (const char *) &nextCommand[0], 2 ); strncpy ( endled, (const char *) &nextCommand[2], 2 ); strncpy ( colorval, (const char *) &nextCommand[4], 8 ); int rangebegin = atoi(startled); int rangeend = atoi(endled); - DBG_OUTPUT_PORT.printf("Setting RANGE from [%i] to [%i] as color [%s] \n", rangebegin, rangeend, colorval); + DBG_OUTPUT_PORT.printf("Setting RANGE from [%i] to [%i] as color [%s] \r\n", rangebegin, rangeend, colorval); while ( rangebegin <= rangeend ) { - char rangeData[9] = { 0, 0, 0, 0, 0, 0, 0, 0, 0 }; + char rangeData[10] = { 0, 0, 0, 0, 0, 0, 0, 0, 0 }; if ( rangebegin < 10 ) { // Create the valid 'nextCommand' structure - sprintf(rangeData, "0%d%s", rangebegin, colorval); + snprintf(rangeData, sizeof(rangeData), "0%d%s", rangebegin, colorval); } if ( rangebegin >= 10 ) { // Create the valid 'nextCommand' structure - sprintf(rangeData, "%d%s", rangebegin, colorval); + snprintf(rangeData, sizeof(rangeData), "%d%s", rangebegin, colorval); } // Set one LED handleSetSingleLED((uint8_t*) rangeData, 0); @@ -278,44 +282,158 @@ void handleRangeDifferentColors(uint8_t * mypayload) { } } -void setModeByStateString(String saved_state_string) { - String str_mode = getValue(saved_state_string, '|', 1); - mode = static_cast(str_mode.toInt()); - DBG_OUTPUT_PORT.print("mode: "); - DBG_OUTPUT_PORT.println(mode); - String str_ws2812fx_mode = getValue(saved_state_string, '|', 2); - ws2812fx_mode = str_ws2812fx_mode.toInt(); - String str_ws2812fx_speed = getValue(saved_state_string, '|', 3); - ws2812fx_speed = str_ws2812fx_speed.toInt(); - String str_brightness = getValue(saved_state_string, '|', 4); - brightness = str_brightness.toInt(); - String str_red = getValue(saved_state_string, '|', 5); - main_color.red = str_red.toInt(); - String str_green = getValue(saved_state_string, '|', 6); - main_color.green = str_green.toInt(); - String str_blue = getValue(saved_state_string, '|', 7); - main_color.blue = str_blue.toInt(); - String str_white = getValue(saved_state_string, '|', 8); - main_color.white = str_white.toInt(); - str_red = getValue(saved_state_string, '|', 9); - back_color.red = str_red.toInt(); - str_green = getValue(saved_state_string, '|', 10); - back_color.green = str_green.toInt(); - str_blue = getValue(saved_state_string, '|', 11); - back_color.blue = str_blue.toInt(); - str_white = getValue(saved_state_string, '|', 12); - back_color.white = str_white.toInt(); - str_red = getValue(saved_state_string, '|', 13); - xtra_color.red = str_red.toInt(); - str_green = getValue(saved_state_string, '|', 14); - xtra_color.green = str_green.toInt(); - str_blue = getValue(saved_state_string, '|', 15); - xtra_color.blue = str_blue.toInt(); - str_white = getValue(saved_state_string, '|', 16); - xtra_color.white = str_white.toInt(); - convertColors(); - DBG_OUTPUT_PORT.print("Set to state: "); - DBG_OUTPUT_PORT.println(listStatusJSON()); +bool checkPin(uint8_t pin) { + if (((pin >= 0 && pin <= 5) || (pin >= 12 && pin <= 16)) && (pin != WS2812FXStripSettings.pin)) { + WS2812FXStripSettings.pin = pin; + return true; + } + return false; +} + + +neoPixelType checkRGBOrder(char rgbOrder[5]) { + for( int i=0 ; i < sizeof(rgbOrder) ; ++i ) rgbOrder[i] = toupper(rgbOrder[i]) ; + DBG_OUTPUT_PORT.printf("Checking RGB Order: %s ...", rgbOrder); + neoPixelType returnOrder; + if (strcmp(rgbOrder, "GRB") == 0) { + returnOrder = NEO_GRB; + } else if (strcmp(rgbOrder, "GBR") == 0) { + returnOrder = NEO_GBR; + } else if (strcmp(rgbOrder, "RGB") == 0) { + returnOrder = NEO_RGB; + } else if (strcmp(rgbOrder, "RBG") == 0) { + returnOrder = NEO_RBG; + } else if (strcmp(rgbOrder, "BRG") == 0) { + returnOrder = NEO_BRG; + } else if (strcmp(rgbOrder, "BGR") == 0) { + returnOrder = NEO_BGR; + } else if (strcmp(rgbOrder, "WGRB") == 0) { + returnOrder = NEO_WGRB; + } else if (strcmp(rgbOrder, "WGBR") == 0) { + returnOrder = NEO_WGBR; + } else if (strcmp(rgbOrder, "WRGB") == 0) { + returnOrder = NEO_WRGB; + } else if (strcmp(rgbOrder, "WRBG") == 0) { + returnOrder = NEO_WRBG; + } else if (strcmp(rgbOrder, "WBRG") == 0) { + returnOrder = NEO_WBRG; + } else if (strcmp(rgbOrder, "WBGR") == 0) { + returnOrder = NEO_WBGR; + } else if (strcmp(rgbOrder, "GWRB") == 0) { + returnOrder = NEO_GWRB; + } else if (strcmp(rgbOrder, "GWBR") == 0) { + returnOrder = NEO_GWBR; + } else if (strcmp(rgbOrder, "RWGB") == 0) { + returnOrder = NEO_RWGB; + } else if (strcmp(rgbOrder, "RWBG") == 0) { + returnOrder = NEO_RWBG; + } else if (strcmp(rgbOrder, "BWRG") == 0) { + returnOrder = NEO_BWRG; + } else if (strcmp(rgbOrder, "BWGR") == 0) { + returnOrder = NEO_BWGR; + } else if (strcmp(rgbOrder, "GRWB") == 0) { + returnOrder = NEO_GRWB; + } else if (strcmp(rgbOrder, "GBWR") == 0) { + returnOrder = NEO_GBWR; + } else if (strcmp(rgbOrder, "RGWB") == 0) { + returnOrder = NEO_RGWB; + } else if (strcmp(rgbOrder, "RBWG") == 0) { + returnOrder = NEO_RBWG; + } else if (strcmp(rgbOrder, "BRWG") == 0){ + returnOrder = NEO_BRWG; + } else if (strcmp(rgbOrder, "BGWR") == 0) { + returnOrder = NEO_GRBW; + } else if (strcmp(rgbOrder, "GRBW") == 0) { + returnOrder = NEO_GRBW; + } else if (strcmp(rgbOrder, "GBWR") == 0) { + returnOrder = NEO_GBRW; + } else if (strcmp(rgbOrder, "RGBW") == 0) { + returnOrder = NEO_RGBW; + } else if (strcmp(rgbOrder, "RBGW") == 0) { + returnOrder = NEO_RBGW; + } else if (strcmp(rgbOrder, "BRGW") == 0) { + returnOrder = NEO_BRGW; + } else if (strcmp(rgbOrder, "BGRW") == 0) { + returnOrder = NEO_BGRW; + } else { + DBG_OUTPUT_PORT.print("invalid input!"); + returnOrder = static_cast(checkRGBOrder(WS2812FXStripSettings.RGBOrder)); + } + DBG_OUTPUT_PORT.println("success!"); + strcpy(WS2812FXStripSettings.RGBOrder, rgbOrder); + return returnOrder; +} + +bool setConfByConfString(String saved_conf_string) { + if (getValue(saved_conf_string, '|', 0) == "CNF") { + DBG_OUTPUT_PORT.printf("Parsed conf: %s\r\n", saved_conf_string.c_str()); + getValue(saved_conf_string, '|', 1).toCharArray(HOSTNAME, 64); + #if defined(ENABLE_MQTT) + getValue(saved_conf_string, '|', 2).toCharArray(mqtt_host, 64); + mqtt_port = getValue(saved_conf_string, '|', 3).toInt(); + getValue(saved_conf_string, '|', 4).toCharArray(mqtt_user, 32); + getValue(saved_conf_string, '|', 5).toCharArray(mqtt_pass, 32); + #endif + WS2812FXStripSettings.stripSize = getValue(saved_conf_string, '|', 6).toInt(); + checkPin(getValue(saved_conf_string, '|', 7).toInt()); + char tmp_rgbOrder[5]; + getValue(saved_conf_string, '|', 8).toCharArray(tmp_rgbOrder, 4); + checkRGBOrder(tmp_rgbOrder); + WS2812FXStripSettings.fxoptions = getValue(saved_conf_string, '|', 9).toInt(); + return true; + } else { + DBG_OUTPUT_PORT.println("Saved conf not found!"); + return false; + } + return false; +} + + + +bool setModeByStateString(String saved_state_string) { + if (getValue(saved_state_string, '|', 0) == "STA") { + DBG_OUTPUT_PORT.printf("Parsed state: %s\r\n", saved_state_string.c_str()); + String str_mode = getValue(saved_state_string, '|', 1); + mode = static_cast(str_mode.toInt()); + String str_ws2812fx_mode = getValue(saved_state_string, '|', 2); + ws2812fx_mode = str_ws2812fx_mode.toInt(); + String str_ws2812fx_speed = getValue(saved_state_string, '|', 3); + ws2812fx_speed = str_ws2812fx_speed.toInt(); + String str_brightness = getValue(saved_state_string, '|', 4); + brightness = str_brightness.toInt(); + String str_red = getValue(saved_state_string, '|', 5); + main_color.red = str_red.toInt(); + String str_green = getValue(saved_state_string, '|', 6); + main_color.green = str_green.toInt(); + String str_blue = getValue(saved_state_string, '|', 7); + main_color.blue = str_blue.toInt(); + String str_white = getValue(saved_state_string, '|', 8); + main_color.white = str_white.toInt(); + str_red = getValue(saved_state_string, '|', 9); + back_color.red = str_red.toInt(); + str_green = getValue(saved_state_string, '|', 10); + back_color.green = str_green.toInt(); + str_blue = getValue(saved_state_string, '|', 11); + back_color.blue = str_blue.toInt(); + str_white = getValue(saved_state_string, '|', 12); + back_color.white = str_white.toInt(); + str_red = getValue(saved_state_string, '|', 13); + xtra_color.red = str_red.toInt(); + str_green = getValue(saved_state_string, '|', 14); + xtra_color.green = str_green.toInt(); + str_blue = getValue(saved_state_string, '|', 15); + xtra_color.blue = str_blue.toInt(); + str_white = getValue(saved_state_string, '|', 16); + xtra_color.white = str_white.toInt(); + convertColors(); + DBG_OUTPUT_PORT.print("Set to state: "); + DBG_OUTPUT_PORT.println(listStatusJSON()); + return true; + } else { + DBG_OUTPUT_PORT.println("Saved conf not found!"); + return false; + } + return false; } #if defined(ENABLE_LEGACY_ANIMATIONS) @@ -373,7 +491,7 @@ void handleSetNamedMode(uint8_t * mypayload) { void handleSetWS2812FXMode(uint8_t * mypayload) { if (isDigit(mypayload[1])) { ws2812fx_mode = (uint8_t) strtol((const char *) &mypayload[1], NULL, 10); - ws2812fx_mode = constrain(ws2812fx_mode, 0, strip.getModeCount() - 1); + ws2812fx_mode = constrain(ws2812fx_mode, 0, strip->getModeCount() - 1); mode = SET_MODE; } else { if (strcmp((char *) &mypayload[1], "off") == 0) { @@ -398,16 +516,16 @@ void handleSetWS2812FXMode(uint8_t * mypayload) { } } -String listStatusJSON(void) { - //uint8_t tmp_mode = (mode == SET_MODE) ? (uint8_t) ws2812fx_mode : strip.getMode(); - const size_t bufferSize = JSON_ARRAY_SIZE(12) + JSON_OBJECT_SIZE(6) + 150; +String listStatusJSON() { + //uint8_t tmp_mode = (mode == SET_MODE) ? (uint8_t) ws2812fx_mode : strip->getMode(); + const size_t bufferSize = JSON_ARRAY_SIZE(12) + JSON_OBJECT_SIZE(6) + 500; DynamicJsonDocument jsonBuffer(bufferSize); JsonObject root = jsonBuffer.to(); root["mode"] = (uint8_t) mode; root["ws2812fx_mode"] = ws2812fx_mode; - root["ws2812fx_mode_name"] = strip.getModeName(ws2812fx_mode); + root["ws2812fx_mode_name"] = strip->getModeName(ws2812fx_mode); //root["ws2812fx_mode"] = tmp_mode; - //root["ws2812fx_mode_name"] = strip.getModeName(tmp_mode); + //root["ws2812fx_mode_name"] = strip->getModeName(tmp_mode); root["speed"] = ws2812fx_speed; root["brightness"] = brightness; JsonArray color = root.createNestedArray("color"); @@ -422,20 +540,53 @@ String listStatusJSON(void) { color.add(xtra_color.white); color.add(xtra_color.red); color.add(xtra_color.green); - color.add(xtra_color.blue); + color.add(xtra_color.blue); String json; serializeJson(root, json); jsonBuffer.clear(); return json; } +String listConfigJSON() { + //uint8_t tmp_mode = (mode == SET_MODE) ? (uint8_t) ws2812fx_mode : strip->getMode(); + #if defined(ENABLE_MQTT) + const size_t bufferSize = JSON_OBJECT_SIZE(9) + 500; + #else + const size_t bufferSize = JSON_OBJECT_SIZE(5) + 150; + #endif + DynamicJsonDocument jsonBuffer(bufferSize); + JsonObject root = jsonBuffer.to(); + root["hostname"] = HOSTNAME; + #if defined(ENABLE_MQTT) + root["mqtt_host"] = mqtt_host; + root["mqtt_port"] = mqtt_port; + root["mqtt_user"] = mqtt_user; + root["mqtt_pass"] = mqtt_pass; + #endif + root["ws_cnt"] = WS2812FXStripSettings.stripSize; + root["ws_rgbo"] = WS2812FXStripSettings.RGBOrder; + root["ws_pin"] = WS2812FXStripSettings.pin; + root["ws_fxopt"] = WS2812FXStripSettings.fxoptions; + String json; + serializeJson(root, json); + jsonBuffer.clear(); + return json; +} + + void getStatusJSON() { server.sendHeader("Access-Control-Allow-Origin", "*"); server.send ( 200, "application/json", listStatusJSON() ); } -String listModesJSON(void) { - const size_t bufferSize = JSON_ARRAY_SIZE(strip.getModeCount() + 3) + (strip.getModeCount() + 3)*JSON_OBJECT_SIZE(2) + 2000; +void getConfigJSON() { + server.sendHeader("Access-Control-Allow-Origin", "*"); + server.send ( 200, "application/json", listConfigJSON() ); +} + + +String listModesJSON() { + const size_t bufferSize = JSON_ARRAY_SIZE(strip->getModeCount() + 3) + (strip->getModeCount() + 3)*JSON_OBJECT_SIZE(2) + 2000; DynamicJsonDocument jsonBuffer(bufferSize); JsonArray root = jsonBuffer.to(); JsonObject objectoff = root.createNestedObject(); @@ -451,10 +602,10 @@ String listModesJSON(void) { objecte131["mode"] = "e131"; objecte131["name"] = "E131"; #endif - for (uint8_t i = 0; i < strip.getModeCount(); i++) { + for (uint8_t i = 0; i < strip->getModeCount(); i++) { JsonObject object = root.createNestedObject(); object["mode"] = i; - object["name"] = strip.getModeName(i); + object["name"] = strip->getModeName(i); } String json; serializeJson(root, json); @@ -496,7 +647,7 @@ void handleMinimalUpload() { } void handleNotFound() { - String message = "File Not Found\n\n"; + String message = "File Not Found\r\n"; message += "URI: "; message += server.uri(); message += "\nMethod: "; @@ -518,12 +669,12 @@ int autoCount = 0; void autoTick() { uint32_t setcolors[] = {autoParams[autoCount][0],autoParams[autoCount][1],autoParams[autoCount][2]}; - strip.setColors(0, setcolors); - strip.setSpeed(convertSpeed((uint8_t)autoParams[autoCount][3])); - strip.setMode((uint8_t)autoParams[autoCount][4]); - autoTicker.once((float)autoParams[autoCount][5], autoTick); + strip->setColors(0, setcolors); + strip->setSpeed(convertSpeed((uint8_t)autoParams[autoCount][3])); + strip->setMode((uint8_t)autoParams[autoCount][4]); + autoTicker.once_ms((uint32_t)autoParams[autoCount][5], autoTick); DBG_OUTPUT_PORT.print("autoTick "); - DBG_OUTPUT_PORT.println(autoCount); + DBG_OUTPUT_PORT.printf("autoTick[%d]: {0x%06x, %d, %d, %d}\r\n", autoCount, autoParams[autoCount][0], (uint8_t)autoParams[autoCount][1], (uint8_t)autoParams[autoCount][2], (uint32_t)autoParams[autoCount][3], (uint32_t)autoParams[autoCount][4], (uint32_t)autoParams[autoCount][5]); autoCount++; if (autoCount >= (sizeof(autoParams) / sizeof(autoParams[0]))) autoCount = 0; @@ -556,17 +707,17 @@ void checkpayload(uint8_t * payload, bool mqtt = false, uint8_t num = 0) { // # ==> Set main color - ## ==> Set 2nd color - ### ==> Set 3rd color if (payload[0] == '#') { #if defined(ENABLE_MQTT) - sprintf(mqtt_buf, "OK %s", payload); + snprintf(mqtt_buf, sizeof(mqtt_buf), "OK %s", payload); #endif if (payload[2] == '#') { handleSetXtraColor(payload); - DBG_OUTPUT_PORT.printf("Set 3rd color to: R: [%u] G: [%u] B: [%u] W: [%u]\n", xtra_color.red, xtra_color.green, xtra_color.blue, xtra_color.white); + DBG_OUTPUT_PORT.printf("Set 3rd color to: R: [%u] G: [%u] B: [%u] W: [%u]\r\n", xtra_color.red, xtra_color.green, xtra_color.blue, xtra_color.white); } else if (payload[1] == '#') { handleSetBackColor(payload); - DBG_OUTPUT_PORT.printf("Set 2nd color to: R: [%u] G: [%u] B: [%u] W: [%u]\n", back_color.red, back_color.green, back_color.blue, back_color.white); + DBG_OUTPUT_PORT.printf("Set 2nd color to: R: [%u] G: [%u] B: [%u] W: [%u]\r\n", back_color.red, back_color.green, back_color.blue, back_color.white); } else { handleSetMainColor(payload); - DBG_OUTPUT_PORT.printf("Set main color to: R: [%u] G: [%u] B: [%u] W: [%u]\n", main_color.red, main_color.green, main_color.blue, main_color.white); + DBG_OUTPUT_PORT.printf("Set main color to: R: [%u] G: [%u] B: [%u] W: [%u]\r\n", main_color.red, main_color.green, main_color.blue, main_color.white); } } @@ -576,7 +727,7 @@ void checkpayload(uint8_t * payload, bool mqtt = false, uint8_t num = 0) { ws2812fx_speed = constrain(d, 0, 255); mode = SET_SPEED; Dbg_Prefix(mqtt, num); - DBG_OUTPUT_PORT.printf("Set speed to: [%u]\n", ws2812fx_speed); + DBG_OUTPUT_PORT.printf("Set speed to: [%u]\r\n", ws2812fx_speed); } // % ==> Set brightness @@ -585,14 +736,14 @@ void checkpayload(uint8_t * payload, bool mqtt = false, uint8_t num = 0) { brightness = constrain(b, 0, 255); mode = SET_BRIGHTNESS; Dbg_Prefix(mqtt, num); - DBG_OUTPUT_PORT.printf("Set brightness to: [%u]\n", brightness); + DBG_OUTPUT_PORT.printf("Set brightness to: [%u]\r\n", brightness); } // * ==> Set main color and light all LEDs (Shortcut) if (payload[0] == '*') { handleSetAllMode(payload); Dbg_Prefix(mqtt, num); - DBG_OUTPUT_PORT.printf("Set main color and light all LEDs [%s]\n", payload); + DBG_OUTPUT_PORT.printf("Set main color and light all LEDs [%s]\r\n", payload); } // ! ==> Set single LED in given color @@ -600,9 +751,9 @@ void checkpayload(uint8_t * payload, bool mqtt = false, uint8_t num = 0) { handleSetSingleLED(payload, 1); Dbg_Prefix(mqtt, num); #if defined(ENABLE_MQTT) - sprintf(mqtt_buf, "OK %s", payload); + snprintf(mqtt_buf, sizeof(mqtt_buf), "OK %s", payload); #endif - DBG_OUTPUT_PORT.printf("Set single LED in given color [%s]\n", payload); + DBG_OUTPUT_PORT.printf("Set single LED in given color [%s]\r\n", payload); } // + ==> Set multiple LED in the given colors @@ -610,18 +761,18 @@ void checkpayload(uint8_t * payload, bool mqtt = false, uint8_t num = 0) { handleSetDifferentColors(payload); Dbg_Prefix(mqtt, num); #if defined(ENABLE_MQTT) - sprintf(mqtt_buf, "OK %s", payload); + snprintf(mqtt_buf, sizeof(mqtt_buf), "OK %s", payload); #endif - DBG_OUTPUT_PORT.printf("Set multiple LEDs in given color [%s]\n", payload); + DBG_OUTPUT_PORT.printf("Set multiple LEDs in given color [%s]\r\n", payload); } // + ==> Set range of LEDs in the given color if (payload[0] == 'R') { handleRangeDifferentColors(payload); Dbg_Prefix(mqtt, num); - DBG_OUTPUT_PORT.printf("Set range of LEDs in given color [%s]\n", payload); + DBG_OUTPUT_PORT.printf("Set range of LEDs in given color [%s]\r\n", payload); #if defined(ENABLE_MQTT) - sprintf(mqtt_buf, "OK %s", payload); + snprintf(mqtt_buf, sizeof(mqtt_buf), "OK %s", payload); #endif } @@ -631,7 +782,7 @@ void checkpayload(uint8_t * payload, bool mqtt = false, uint8_t num = 0) { // we get mode data handleSetNamedMode(payload); Dbg_Prefix(mqtt, num); - DBG_OUTPUT_PORT.printf("Activated mode [%u]!\n", mode); + DBG_OUTPUT_PORT.printf("Activated mode [%u]!\r\n", mode); } #endif @@ -642,10 +793,110 @@ void checkpayload(uint8_t * payload, bool mqtt = false, uint8_t num = 0) { DBG_OUTPUT_PORT.print("MQTT: "); #if defined(ENABLE_MQTT) #if ENABLE_MQTT == 0 - mqtt_client.publish(mqtt_outtopic, json.c_str()); + mqtt_client->publish(mqtt_outtopic, json.c_str()); #endif #if ENABLE_MQTT == 1 - amqttClient.publish(mqtt_outtopic, qospub, false, json.c_str()); + mqtt_client->publish(mqtt_outtopic, qospub, false, json.c_str()); + #endif + #endif + } else { + DBG_OUTPUT_PORT.print("WS: "); + webSocket.sendTXT(num, "OK"); + webSocket.sendTXT(num, json); + } + DBG_OUTPUT_PORT.println("Get status info: " + json); + } + + + // $ ==> Get config Info. + if (payload[0] == 'C') { + bool updateFSE = false; + if (payload[1] == 'h') { + snprintf(HOSTNAME, sizeof(HOSTNAME), "%s", &payload[2]); + updateFSE=true; + #if defined(ENABLE_MQTT) + initMqtt(); + #endif + } + #if defined(ENABLE_MQTT) + if (payload[1] == 'm') { + if (payload[2] == 'h') { + snprintf(mqtt_host, sizeof(mqtt_host), "%s", &payload[3]); + updateFSE=true; + } + if (payload[2] == 'p') { + char tmp_port[6]; + snprintf(tmp_port, sizeof(tmp_port), "%s", &payload[3]); + mqtt_port = constrain(atoi(tmp_port), 0, 65535); + updateFSE=true; + } + if (payload[2] == 'u') { + snprintf(mqtt_user, sizeof(mqtt_user), "%s", &payload[3]); + updateFSE=true; + } + if (payload[2] == 'w') { + snprintf(mqtt_pass, sizeof(mqtt_pass), "%s", &payload[3]); + updateFSE=true; + } + initMqtt(); + } + #endif + if (payload[1] == 's') { + if (payload[2] == 'c') { + char tmp_count[6]; + snprintf(tmp_count, sizeof(tmp_count), "%s", &payload[3]); + WS2812FXStripSettings.stripSize = constrain(atoi(tmp_count), 0, 65535); + updateFSE=true; + } + if (payload[2] == 'r') { + char tmp_rgbOrder[5]; + snprintf(tmp_rgbOrder, sizeof(tmp_rgbOrder), "%s", &payload[3]); + checkRGBOrder(tmp_rgbOrder); + updateFSE=true; + } + #if !defined(USE_WS2812FX_DMA) + if (payload[2] == 'p') { + char tmp_pin[3]; + snprintf(tmp_pin, sizeof(tmp_pin), "%s", &payload[3]); + checkPin(atoi(tmp_pin)); + updateFSE=true; + } + #endif + if (payload[2] == 'o') { + char tmp_fxoptions[4]; + snprintf(tmp_fxoptions, sizeof(tmp_fxoptions), "%s", &payload[3]); + WS2812FXStripSettings.fxoptions = constrain(atoi(tmp_fxoptions), 0, 255); + updateFSE=true; + } + mode = INIT_STRIP; + } + + #if defined(ENABLE_STATE_SAVE) + #if ENABLE_STATE_SAVE == 1 + (writeConfigFS(updateFSE)) ? DBG_OUTPUT_PORT.println("Config FS Save success!"): DBG_OUTPUT_PORT.println("Config FS Save failure!"); + #endif + #if ENABLE_STATE_SAVE == 0 + if (updateFSE) { + char last_conf[223]; + #if defined(ENABLE_MQTT) + snprintf(last_conf, sizeof(last_conf), "CNF|%64s|%64s|%5d|%32s|%32s|%4d|%2d|%4s|%3d", HOSTNAME, mqtt_host, mqtt_port, mqtt_user, mqtt_pass, WS2812FXStripSettings.stripSize, WS2812FXStripSettings.pin, WS2812FXStripSettings.RGBOrder, WS2812FXStripSettings.fxoptions); + #else + snprintf(last_conf, sizeof(last_conf), "CNF|%64s|%64s|%5d|%32s|%32s|%4d|%2d|%4s|%3d", HOSTNAME, "", "", "", "", WS2812FXStripSettings.stripSize, WS2812FXStripSettings.pin, WS2812FXStripSettings.RGBOrder, WS2812FXStripSettings.fxoptions); + #endif + writeEEPROM(0, 222, last_conf); + EEPROM.commit(); + } + #endif + #endif + String json = listConfigJSON(); + if (mqtt == true) { + DBG_OUTPUT_PORT.print("MQTT: "); + #if defined(ENABLE_MQTT) + #if ENABLE_MQTT == 0 + mqtt_client->publish(mqtt_outtopic, json.c_str()); + #endif + #if ENABLE_MQTT == 1 + mqtt_client->publish(mqtt_outtopic, qospub, false, json.c_str()); #endif #endif } else { @@ -663,18 +914,16 @@ void checkpayload(uint8_t * payload, bool mqtt = false, uint8_t num = 0) { DBG_OUTPUT_PORT.print("MQTT: "); #if defined(ENABLE_MQTT) #if ENABLE_MQTT == 0 - // TODO: Fix this, doesn't return anything. Too long? - // Hint: https://github.com/knolleary/pubsubclient/issues/110 - DBG_OUTPUT_PORT.printf("Error: Not implemented. Message too large for pubsubclient."); - mqtt_client.publish(mqtt_outtopic, "ERROR: Not implemented. Message too large for pubsubclient."); - //String json_modes = listModesJSON(); - //DBG_OUTPUT_PORT.printf(json_modes.c_str()); - - //int res = mqtt_client.publish(mqtt_outtopic, json_modes.c_str(), json_modes.length()); - //DBG_OUTPUT_PORT.printf("Result: %d / %d", res, json_modes.length()); + String json = listModesJSON(); + unsigned int msg_len = measureJson(json) + 1; + char buffer[msg_len]; + serializeJson(json, buffer, sizeof(buffer)); + mqtt_client->beginPublish(mqtt_outtopic, msg_len, true); + mqtt_client->write((const uint8_t*)buffer, msg_len); + mqtt_client->endPublish(); #endif #if ENABLE_MQTT == 1 - amqttClient.publish(mqtt_outtopic, qospub, false, json.c_str()); + mqtt_client->publish(mqtt_outtopic, qospub, false, json.c_str()); #endif #endif } else { @@ -690,7 +939,7 @@ void checkpayload(uint8_t * payload, bool mqtt = false, uint8_t num = 0) { if (payload[0] == '/') { handleSetWS2812FXMode(payload); Dbg_Prefix(mqtt, num); - DBG_OUTPUT_PORT.printf("Set WS2812 mode: [%s]\n", payload); + DBG_OUTPUT_PORT.printf("Set WS2812 mode: [%s]\r\n", payload); } } @@ -700,12 +949,12 @@ void checkpayload(uint8_t * payload, bool mqtt = false, uint8_t num = 0) { void webSocketEvent(uint8_t num, WStype_t type, uint8_t * payload, size_t lenght) { switch (type) { case WStype_DISCONNECTED: - DBG_OUTPUT_PORT.printf("WS: [%u] Disconnected!\n", num); + DBG_OUTPUT_PORT.printf("WS: [%u] Disconnected!\r\n", num); break; case WStype_CONNECTED: { IPAddress ip = webSocket.remoteIP(num); - DBG_OUTPUT_PORT.printf("WS: [%u] Connected from %d.%d.%d.%d url: %s\n", num, ip[0], ip[1], ip[2], ip[3], payload); + DBG_OUTPUT_PORT.printf("WS: [%u] Connected from %d.%d.%d.%d url: %s\r\n", num, ip[0], ip[1], ip[2], ip[3], payload); // send message to client webSocket.sendTXT(num, "Connected"); @@ -713,7 +962,7 @@ void webSocketEvent(uint8_t num, WStype_t type, uint8_t * payload, size_t lenght break; case WStype_TEXT: - DBG_OUTPUT_PORT.printf("WS: [%u] get Text: %s\n", num, payload); + DBG_OUTPUT_PORT.printf("WS: [%u] get Text: %s\r\n", num, payload); checkpayload(payload, false, num); @@ -821,7 +1070,7 @@ void webSocketEvent(uint8_t num, WStype_t type, uint8_t * payload, size_t lenght root["color_temp"] = color_temp; root["speed"] = ws2812fx_speed; //char modeName[30]; - //strncpy_P(modeName, (PGM_P)strip.getModeName(strip.getMode()), sizeof(modeName)); // copy from progmem + //strncpy_P(modeName, (PGM_P)strip->getModeName(strip->getMode()), sizeof(modeName)); // copy from progmem #if defined(ENABLE_HOMEASSISTANT) if (mode == OFF){ root["effect"] = "OFF"; @@ -835,7 +1084,7 @@ void webSocketEvent(uint8_t num, WStype_t type, uint8_t * payload, size_t lenght if (mode == E131){ root["effect"] = "E131"; } else { - root["effect"] = strip.getModeName(strip.getMode()); + root["effect"] = strip->getModeName(strip->getMode()); } } } @@ -845,16 +1094,16 @@ void webSocketEvent(uint8_t num, WStype_t type, uint8_t * payload, size_t lenght serializeJson(root, buffer, sizeof(buffer)); jsonBuffer.clear(); #if ENABLE_MQTT == 0 - mqtt_client.publish(mqtt_ha_state_out, buffer, true); - DBG_OUTPUT_PORT.printf("MQTT: Send [%s]: %s\n", mqtt_ha_state_out, buffer); + mqtt_client->publish(mqtt_ha_state_out, buffer, true); + DBG_OUTPUT_PORT.printf("MQTT: Send [%s]: %s\r\n", mqtt_ha_state_out, buffer); #endif #if ENABLE_MQTT == 1 - amqttClient.publish(mqtt_ha_state_out, 1, true, buffer); - DBG_OUTPUT_PORT.printf("MQTT: Send [%s]: %s\n", mqtt_ha_state_out, buffer); + mqtt_client->publish(mqtt_ha_state_out, 1, true, buffer); + DBG_OUTPUT_PORT.printf("MQTT: Send [%s]: %s\r\n", mqtt_ha_state_out, buffer); #endif new_ha_mqtt_msg = false; ha_send_data.detach(); - DBG_OUTPUT_PORT.printf("Heap size: %u\n", ESP.getFreeHeap()); + DBG_OUTPUT_PORT.printf("Heap size: %u\r\n", ESP.getFreeHeap()); } bool processJson(char* message) { @@ -942,8 +1191,8 @@ void webSocketEvent(uint8_t num, WStype_t type, uint8_t * payload, size_t lenght mode = E131; } #endif - for (uint8_t i = 0; i < strip.getModeCount(); i++) { - if(String(strip.getModeName(i)) == effectString) { + for (uint8_t i = 0; i < strip->getModeCount(); i++) { + if(String(strip->getModeName(i)) == effectString) { mode = SET_MODE; ws2812fx_mode = i; break; @@ -962,7 +1211,7 @@ void webSocketEvent(uint8_t num, WStype_t type, uint8_t * payload, size_t lenght uint8_t * payload = (uint8_t *) malloc(length + 1); memcpy(payload, payload_in, length); payload[length] = 0; - DBG_OUTPUT_PORT.printf("]: %s\n", payload); + DBG_OUTPUT_PORT.printf("]: %s\r\n", payload); #endif #if ENABLE_MQTT == 0 @@ -970,7 +1219,7 @@ void webSocketEvent(uint8_t num, WStype_t type, uint8_t * payload, size_t lenght uint8_t * payload = (uint8_t *)malloc(length + 1); memcpy(payload, payload_in, length); payload[length] = 0; - DBG_OUTPUT_PORT.printf("MQTT: Message arrived [%s]\n", payload); + DBG_OUTPUT_PORT.printf("MQTT: Message arrived [%s]\r\n", payload); #endif #if defined(ENABLE_HOMEASSISTANT) @@ -978,13 +1227,8 @@ void webSocketEvent(uint8_t num, WStype_t type, uint8_t * payload, size_t lenght if (!processJson((char*)payload)) { return; } - if(!ha_send_data.active()) ha_send_data.once(5, tickerSendState); - #if ENABLE_MQTT == 0 - } else if (strcmp(topic, (char *)mqtt_intopic) == 0) { - #endif - #if ENABLE_MQTT == 1 + if(!ha_send_data.active()) ha_send_data.once(5, tickerSendState); } else if (strcmp(topic, mqtt_intopic) == 0) { - #endif #endif checkpayload(payload, true); @@ -998,35 +1242,37 @@ void webSocketEvent(uint8_t num, WStype_t type, uint8_t * payload, size_t lenght #if ENABLE_MQTT == 0 void mqtt_reconnect() { // Loop until we're reconnected - while (!mqtt_client.connected() && mqtt_reconnect_retries < MQTT_MAX_RECONNECT_TRIES) { + while (!mqtt_client->connected() && mqtt_reconnect_retries < MQTT_MAX_RECONNECT_TRIES) { mqtt_reconnect_retries++; - DBG_OUTPUT_PORT.printf("Attempting MQTT connection %d / %d ...\n", mqtt_reconnect_retries, MQTT_MAX_RECONNECT_TRIES); + DBG_OUTPUT_PORT.printf("Attempting MQTT connection %d / %d ...\r\n", mqtt_reconnect_retries, MQTT_MAX_RECONNECT_TRIES); // Attempt to connect - if (mqtt_client.connect(mqtt_clientid, mqtt_user, mqtt_pass)) { + if (mqtt_client->connect(mqtt_clientid, mqtt_user, mqtt_pass)) { DBG_OUTPUT_PORT.println("MQTT connected!"); // Once connected, publish an announcement... char * message = new char[18 + strlen(HOSTNAME) + 1]; strcpy(message, "McLighting ready: "); strcat(message, HOSTNAME); - mqtt_client.publish(mqtt_outtopic, message); + mqtt_client->publish(mqtt_outtopic, message); // ... and resubscribe - mqtt_client.subscribe(mqtt_intopic, qossub); + mqtt_client->subscribe(mqtt_intopic, qossub); #if defined(ENABLE_HOMEASSISTANT) ha_send_data.detach(); - mqtt_client.subscribe(mqtt_ha_state_in, qossub); + mqtt_client->subscribe(mqtt_ha_state_in, qossub); #if defined(MQTT_HOME_ASSISTANT_SUPPORT) - const size_t bufferSize = JSON_ARRAY_SIZE(strip.getModeCount()+ 4) + JSON_OBJECT_SIZE(11) + 1500; + const size_t bufferSize = JSON_ARRAY_SIZE(strip->getModeCount()+ 4) + JSON_OBJECT_SIZE(11) + 1500; DynamicJsonDocument jsonBuffer(bufferSize); JsonObject json = jsonBuffer.to(); json["name"] = HOSTNAME; - #if defined(MQTT_HOME_ASSISTANT_0_84_SUPPORT) + #if defined(MQTT_HOME_ASSISTANT_0_87_SUPPORT) json["schema"] = "json"; #else json["platform"] = "mqtt_json"; #endif json["state_topic"] = mqtt_ha_state_out; json["command_topic"] = mqtt_ha_state_in; + #if !defined(MQTT_HOME_ASSISTANT_0_87_SUPPORT) json["on_command_type"] = "first"; + #endif json["brightness"] = "true"; json["rgb"] = "true"; json["optimistic"] = "false"; @@ -1041,28 +1287,37 @@ void webSocketEvent(uint8_t num, WStype_t type, uint8_t * payload, size_t lenght #if defined(ENABLE_E131) effect_list.add("E131"); #endif - for (uint8_t i = 0; i < strip.getModeCount(); i++) { - effect_list.add(strip.getModeName(i)); + for (uint8_t i = 0; i < strip->getModeCount(); i++) { + effect_list.add(strip->getModeName(i)); } - char buffer[measureJson(json) + 1]; + // Following will never work for PubSubClient as message size > 1.6kB + // char buffer[measureJson(json) + 1]; + // serializeJson(json, buffer, sizeof(buffer)); + // mqtt_client->publish(String("homeassistant/light/" + String(HOSTNAME) + "/config").c_str(), buffer, true); + + // Alternate way to publish large messages using PubSubClient + unsigned int msg_len = measureJson(json) + 1; + char buffer[msg_len]; serializeJson(json, buffer, sizeof(buffer)); - jsonBuffer.clear(); - mqtt_client.publish(String("homeassistant/light/" + String(HOSTNAME) + "/config").c_str(), buffer, true); + + mqtt_client->beginPublish(mqtt_ha_config, msg_len, true); + mqtt_client->write((const uint8_t*)buffer, msg_len); + mqtt_client->endPublish(); #endif #endif - DBG_OUTPUT_PORT.printf("MQTT topic in: %s\n", mqtt_intopic); - DBG_OUTPUT_PORT.printf("MQTT topic out: %s\n", mqtt_outtopic); + DBG_OUTPUT_PORT.printf("MQTT topic in: %s\r\n", mqtt_intopic); + DBG_OUTPUT_PORT.printf("MQTT topic out: %s\r\n", mqtt_outtopic); } else { DBG_OUTPUT_PORT.print("failed, rc="); - DBG_OUTPUT_PORT.print(mqtt_client.state()); + DBG_OUTPUT_PORT.print(mqtt_client->state()); DBG_OUTPUT_PORT.println(" try again in 5 seconds"); // Wait 5 seconds before retrying delay(5000); } } if (mqtt_reconnect_retries >= MQTT_MAX_RECONNECT_TRIES) { - DBG_OUTPUT_PORT.printf("MQTT connection failed, giving up after %d tries ...\n", mqtt_reconnect_retries); + DBG_OUTPUT_PORT.printf("MQTT connection failed, giving up after %d tries ...\r\n", mqtt_reconnect_retries); } } #endif @@ -1076,7 +1331,7 @@ void webSocketEvent(uint8_t num, WStype_t type, uint8_t * payload, size_t lenght void connectToMqtt() { DBG_OUTPUT_PORT.println("Connecting to MQTT..."); - amqttClient.connect(); + mqtt_client->connect(); } void onWifiConnect(const WiFiEventStationModeGotIP& event) { @@ -1100,27 +1355,29 @@ void webSocketEvent(uint8_t num, WStype_t type, uint8_t * payload, size_t lenght char * message = new char[18 + strlen(HOSTNAME) + 1]; strcpy(message, "McLighting ready: "); strcat(message, HOSTNAME); - amqttClient.publish(mqtt_outtopic, qospub, false, message); + mqtt_client->publish(mqtt_outtopic, qospub, false, message); //Subscribe - uint16_t packetIdSub1 = amqttClient.subscribe((char *)mqtt_intopic, qossub); + uint16_t packetIdSub1 = mqtt_client->subscribe((char *)mqtt_intopic, qossub); DBG_OUTPUT_PORT.printf("Subscribing at QoS %d, packetId: ", qossub); DBG_OUTPUT_PORT.println(packetIdSub1); #if defined(ENABLE_HOMEASSISTANT) ha_send_data.detach(); - uint16_t packetIdSub2 = amqttClient.subscribe((char *)mqtt_ha_state_in, qossub); + uint16_t packetIdSub2 = mqtt_client->subscribe((char *)mqtt_ha_state_in, qossub); DBG_OUTPUT_PORT.printf("Subscribing at QoS %d, packetId: ", qossub); DBG_OUTPUT_PORT.println(packetIdSub2); #if defined(MQTT_HOME_ASSISTANT_SUPPORT) - const size_t bufferSize = JSON_ARRAY_SIZE(strip.getModeCount()+ 4) + JSON_OBJECT_SIZE(11) + 1500; + const size_t bufferSize = JSON_ARRAY_SIZE(strip->getModeCount()+ 4) + JSON_OBJECT_SIZE(11) + 1500; DynamicJsonDocument jsonBuffer(bufferSize); JsonObject json = jsonBuffer.to(); json["name"] = HOSTNAME; - #if defined(MQTT_HOME_ASSISTANT_0_84_SUPPORT) + #if defined(MQTT_HOME_ASSISTANT_0_87_SUPPORT) json["schema"] = "json"; #else json["platform"] = "mqtt_json"; #endif json["state_topic"] = mqtt_ha_state_out; json["command_topic"] = mqtt_ha_state_in; + #if !defined(MQTT_HOME_ASSISTANT_0_87_SUPPORT) json["on_command_type"] = "first"; + #endif json["brightness"] = "true"; json["rgb"] = "true"; json["optimistic"] = "false"; @@ -1135,13 +1392,13 @@ void webSocketEvent(uint8_t num, WStype_t type, uint8_t * payload, size_t lenght #if defined(ENABLE_E131) effect_list.add("E131"); #endif - for (uint8_t i = 0; i < strip.getModeCount(); i++) { - effect_list.add(strip.getModeName(i)); + for (uint8_t i = 0; i < strip->getModeCount(); i++) { + effect_list.add(strip->getModeName(i)); } char buffer[measureJson(json) + 1]; serializeJson(json, buffer, sizeof(buffer)); jsonBuffer.clear(); - amqttClient.publish(String("homeassistant/light/" + String(HOSTNAME) + "/config").c_str(), qospub, true, buffer); + mqtt_client->publish(mqtt_ha_config, qospub, true, buffer); #endif #endif } @@ -1178,7 +1435,7 @@ void webSocketEvent(uint8_t num, WStype_t type, uint8_t * payload, size_t lenght // *************************************************************************** #if defined(ENABLE_BUTTON) void shortKeyPress() { - DBG_OUTPUT_PORT.printf("Short button press\n"); + DBG_OUTPUT_PORT.printf("Short button press\r\n"); if (mode == OFF) { setModeByStateString(BTN_MODE_SHORT); mode = SET_ALL; @@ -1189,14 +1446,14 @@ void webSocketEvent(uint8_t num, WStype_t type, uint8_t * payload, size_t lenght // called when button is kept pressed for less than 2 seconds void mediumKeyPress() { - DBG_OUTPUT_PORT.printf("Medium button press\n"); + DBG_OUTPUT_PORT.printf("Medium button press\r\n"); setModeByStateString(BTN_MODE_MEDIUM); mode = SET_ALL; } // called when button is kept pressed for 2 seconds or more void longKeyPress() { - DBG_OUTPUT_PORT.printf("Long button press\n"); + DBG_OUTPUT_PORT.printf("Long button press\r\n"); setModeByStateString(BTN_MODE_LONG); mode = SET_ALL; } @@ -1231,18 +1488,18 @@ void webSocketEvent(uint8_t num, WStype_t type, uint8_t * payload, size_t lenght } } #endif - + #if defined(ENABLE_BUTTON_GY33) void shortKeyPress_gy33() { - DBG_OUTPUT_PORT.printf("Short GY-33 button press\n"); + DBG_OUTPUT_PORT.printf("Short GY-33 button press\r\n"); // tcs.setConfig(MCU_LED_04, MCU_WHITE_OFF); // delay(500); uint16_t red, green, blue, cl, ct, lux; tcs.getRawData(&red, &green, &blue, &cl, &lux, &ct); - DBG_OUTPUT_PORT.printf("Raw Colors: R: [%d] G: [%d] B: [%d] Clear: [%d] Lux: [%d] Colortemp: [%d]\n", (int)red, (int)green, (int)blue, (int)cl, (int)lux, (int)ct); + DBG_OUTPUT_PORT.printf("Raw Colors: R: [%d] G: [%d] B: [%d] Clear: [%d] Lux: [%d] Colortemp: [%d]\r\n", (int)red, (int)green, (int)blue, (int)cl, (int)lux, (int)ct); uint8_t r, g, b, col, conf; tcs.getData(&r, &g, &b, &col, &conf); - DBG_OUTPUT_PORT.printf("Colors: R: [%d] G: [%d] B: [%d] Color: [%d] Conf: [%d]\n", (int)r, (int)g, (int)b, (int)col, (int)conf); + DBG_OUTPUT_PORT.printf("Colors: R: [%d] G: [%d] B: [%d] Color: [%d] Conf: [%d]\r\n", (int)r, (int)g, (int)b, (int)col, (int)conf); main_color.red = (pow((r/255.0), 2.5)*255); main_color.green = (pow((g/255.0), 2.5)*255); main_color.blue = (pow((b/255.0), 2.5)*255);main_color.white = 0; ws2812fx_mode = 0; mode = SET_ALL; @@ -1294,128 +1551,132 @@ void webSocketEvent(uint8_t num, WStype_t type, uint8_t * payload, size_t lenght void tickerSaveState(){ updateState = true; } - #if ENABLE_STATE_SAVE == 1 - bool updateFS = false; - - #if defined(ENABLE_MQTT) - // Write configuration to FS JSON - bool writeConfigFS(bool saveConfig){ - if (saveConfig) { - //FS save - updateFS = true; - DBG_OUTPUT_PORT.print("Saving config: "); - const size_t bufferSize = JSON_OBJECT_SIZE(4) + 150; - DynamicJsonDocument jsonBuffer(bufferSize); - JsonObject json = jsonBuffer.to(); - json["mqtt_host"] = mqtt_host; - json["mqtt_port"] = mqtt_port; - json["mqtt_user"] = mqtt_user; - json["mqtt_pass"] = mqtt_pass; - - //SPIFFS.remove("/config.json") ? DBG_OUTPUT_PORT.println("removed file") : DBG_OUTPUT_PORT.println("failed removing file"); - File configFile = SPIFFS.open("/config.json", "w"); - if (!configFile) DBG_OUTPUT_PORT.println("failed to open config file for writing"); - - serializeJson(json, DBG_OUTPUT_PORT); - serializeJson(json, configFile); - jsonBuffer.clear(); - configFile.close(); - updateFS = false; - return true; - //end save - } else { - DBG_OUTPUT_PORT.println("SaveConfig is False!"); - return false; - } + + #if ENABLE_STATE_SAVE == 1 + // Write configuration to FS JSON + bool writeConfigFS(bool saveConfig){ + if (saveConfig) { + //FS save + DBG_OUTPUT_PORT.println("Saving config: "); + File configFile = SPIFFS.open("/config.json", "w"); + if (!configFile) DBG_OUTPUT_PORT.println("failed to open config file for writing"); + DBG_OUTPUT_PORT.println(listConfigJSON()); + configFile.print(listConfigJSON()); + configFile.close(); + return true; + //end save + } else { + DBG_OUTPUT_PORT.println("SaveConfig is false!"); + return false; } + } - // Read search_str to FS - bool readConfigFS() { - //read configuration from FS JSON - updateFS = true; - if (SPIFFS.exists("/config.json")) { - //file exists, reading and loading - DBG_OUTPUT_PORT.print("Reading config file... "); - File configFile = SPIFFS.open("/config.json", "r"); - if (configFile) { - DBG_OUTPUT_PORT.println("Opened!"); - size_t size = configFile.size(); - std::unique_ptr buf(new char[size]); - configFile.readBytes(buf.get(), size); - const size_t bufferSize = JSON_OBJECT_SIZE(4) + 150; - DynamicJsonDocument jsonBuffer(bufferSize); - DeserializationError error = deserializeJson(jsonBuffer, buf.get()); - DBG_OUTPUT_PORT.print("Config: "); - if (!error) { - DBG_OUTPUT_PORT.println(" Parsed!"); - JsonObject json = jsonBuffer.as(); - serializeJson(json, DBG_OUTPUT_PORT); - strcpy(mqtt_host, json["mqtt_host"]); - strcpy(mqtt_port, json["mqtt_port"]); - strcpy(mqtt_user, json["mqtt_user"]); - strcpy(mqtt_pass, json["mqtt_pass"]); - updateFS = false; - jsonBuffer.clear(); - return true; - } else { - DBG_OUTPUT_PORT.print("Failed to load json config: "); - DBG_OUTPUT_PORT.println(error.c_str()); - jsonBuffer.clear(); - } + // Read search_str to FS + bool readConfigFS() { + //read configuration from FS JSON + if (SPIFFS.exists("/config.json")) { + //file exists, reading and loading + DBG_OUTPUT_PORT.print("Reading config file... "); + File configFile = SPIFFS.open("/config.json", "r"); + if (configFile) { + DBG_OUTPUT_PORT.println("Opened!"); + size_t size = configFile.size(); + std::unique_ptr buf(new char[size]); + configFile.readBytes(buf.get(), size); + configFile.close(); + #if defined(ENABLE_MQTT) + const size_t bufferSize = JSON_OBJECT_SIZE(5) + 500; + #else + const size_t bufferSize = JSON_OBJECT_SIZE(1) + 150; + #endif + DynamicJsonDocument jsonBuffer(bufferSize); + DeserializationError error = deserializeJson(jsonBuffer, buf.get()); + DBG_OUTPUT_PORT.print("Config: "); + if (!error) { + DBG_OUTPUT_PORT.println("Parsed!"); + JsonObject json = jsonBuffer.as(); + serializeJson(json, DBG_OUTPUT_PORT); + DBG_OUTPUT_PORT.println(""); + strcpy(HOSTNAME, json["hostname"]); + #if defined(ENABLE_MQTT) + strcpy(mqtt_host, json["mqtt_host"]); + mqtt_port = (uint16_t) json["mqtt_port"]; + strcpy(mqtt_user, json["mqtt_user"]); + strcpy(mqtt_pass, json["mqtt_pass"]); + #endif + WS2812FXStripSettings.stripSize = (uint8_t) json["ws_cnt"]; + char tmp_rgbOrder[5]; + strcpy(tmp_rgbOrder, json["ws_rgbo"]); + checkRGBOrder(tmp_rgbOrder); + uint8_t temp_pin; + WS2812FXStripSettings.pin = (uint8_t) json["ws_pin"]; + WS2812FXStripSettings.fxoptions = (uint8_t) json["ws_fxopt"]; + jsonBuffer.clear(); + return true; } else { - DBG_OUTPUT_PORT.println("Failed to open /config.json"); + DBG_OUTPUT_PORT.print("Failed to load json config: "); + DBG_OUTPUT_PORT.println(error.c_str()); + jsonBuffer.clear(); } } else { - DBG_OUTPUT_PORT.println("Coudnt find config.json"); + DBG_OUTPUT_PORT.println("Failed to open /config.json"); } - //end read - updateFS = false; - return false; + } else { + DBG_OUTPUT_PORT.println("Coudnt find config.json"); + writeConfigFS(true); } - #endif + //end read + return false; + } - bool writeStateFS(){ - updateFS = true; - //save the strip state to FS JSON - DBG_OUTPUT_PORT.print("Saving cfg: "); - //SPIFFS.remove("/stripstate.json") ? DBG_OUTPUT_PORT.println("removed file") : DBG_OUTPUT_PORT.println("failed removing file"); - File configFile = SPIFFS.open("/stripstate.json", "w"); - if (!configFile) { - DBG_OUTPUT_PORT.println("Failed!"); - updateFS = false; + bool writeStateFS(bool saveConfig){ + if (saveConfig) { + //save the strip state to FS JSON + DBG_OUTPUT_PORT.print("Saving cfg: "); + //SPIFFS.remove("/stripstate.json") ? DBG_OUTPUT_PORT.println("removed file") : DBG_OUTPUT_PORT.println("failed removing file"); + File configFile = SPIFFS.open("/stripstate.json", "w"); + if (!configFile) { + DBG_OUTPUT_PORT.println("Failed!"); + settings_save_state.detach(); + updateState = false; + return false; + } + DBG_OUTPUT_PORT.println(listStatusJSON()); + configFile.print(listStatusJSON()); + configFile.close(); settings_save_state.detach(); updateState = false; + return true; + //end save + } else { + DBG_OUTPUT_PORT.println("SaveStateConfig is false!"); return false; } - DBG_OUTPUT_PORT.println(listStatusJSON()); - configFile.print(listStatusJSON()); - configFile.close(); - updateFS = false; - settings_save_state.detach(); - updateState = false; - return true; - //end save } bool readStateFS() { //read strip state from FS JSON - updateFS = true; //if (resetsettings) { SPIFFS.begin(); SPIFFS.remove("/config.json"); SPIFFS.format(); delay(1000);} if (SPIFFS.exists("/stripstate.json")) { //file exists, reading and loading - DBG_OUTPUT_PORT.print("Read cfg: "); + DBG_OUTPUT_PORT.print("Reading state file... "); File configFile = SPIFFS.open("/stripstate.json", "r"); if (configFile) { + DBG_OUTPUT_PORT.println("Opened!"); size_t size = configFile.size(); // Allocate a buffer to store contents of the file. std::unique_ptr buf(new char[size]); configFile.readBytes(buf.get(), size); + configFile.close(); const size_t bufferSize = JSON_OBJECT_SIZE(5) + JSON_ARRAY_SIZE(12) + 500; DynamicJsonDocument jsonBuffer(bufferSize); DeserializationError error = deserializeJson(jsonBuffer, buf.get()); + DBG_OUTPUT_PORT.print("Config: "); if (!error) { + DBG_OUTPUT_PORT.print("Parsed"); JsonObject json = jsonBuffer.as(); serializeJson(json, DBG_OUTPUT_PORT); + DBG_OUTPUT_PORT.println(""); mode = static_cast((int) json["mode"]); ws2812fx_mode = json["ws2812fx_mode"]; ws2812fx_speed = json["speed"]; @@ -1433,15 +1694,11 @@ void webSocketEvent(uint8_t num, WStype_t type, uint8_t * payload, size_t lenght xtra_color.green = (uint8_t) json["color"][10]; xtra_color.blue = (uint8_t) json["color"][11]; convertColors(); - strip.setMode(ws2812fx_mode); - strip.setSpeed(convertSpeed(ws2812fx_speed)); - strip.setBrightness(brightness); - strip.setColors(0, hex_colors); - updateFS = false; jsonBuffer.clear(); return true; } else { - DBG_OUTPUT_PORT.println("Failed to parse JSON!"); + DBG_OUTPUT_PORT.print("Failed to load json config: "); + DBG_OUTPUT_PORT.println(error.c_str()); jsonBuffer.clear(); } } else { @@ -1449,9 +1706,9 @@ void webSocketEvent(uint8_t num, WStype_t type, uint8_t * payload, size_t lenght } } else { DBG_OUTPUT_PORT.println("Couldn't find \"/stripstate.json\""); + writeStateFS(true); } //end read - updateFS = false; return false; } #endif @@ -1467,12 +1724,12 @@ void webSocketEvent(uint8_t num, WStype_t type, uint8_t * payload, size_t lenght res += char(EEPROM.read(i + offset)); //DBG_OUTPUT_PORT.println(char(EEPROM.read(i + offset))); } - DBG_OUTPUT_PORT.printf("readEEPROM(): %s\n", res.c_str()); + DBG_OUTPUT_PORT.printf("readEEPROM(): %s\r\n", res.c_str()); return res; } void writeEEPROM(int offset, int len, String value) { - DBG_OUTPUT_PORT.printf("writeEEPROM(): %s\n", value.c_str()); + DBG_OUTPUT_PORT.printf("writeEEPROM(): %s\r\n", value.c_str()); for (int i = 0; i < len; ++i) { if (i < value.length()) { @@ -1482,6 +1739,9 @@ void webSocketEvent(uint8_t num, WStype_t type, uint8_t * payload, size_t lenght } } } + + + #endif #endif @@ -1724,7 +1984,7 @@ void handleRemote() { } // end of if HOLD if (results.value == rmt_commands[MODE_UP]) { //Mode Up last_remote_cmd = results.value; - if ((ws2812fx_mode < strip.getModeCount()-1) && (mode == HOLD)) { + if ((ws2812fx_mode < strip->getModeCount()-1) && (mode == HOLD)) { ws2812fx_mode = ws2812fx_mode + 1; } mode = SET_MODE; diff --git a/Arduino/McLighting/rest_api.h b/Arduino/McLighting/rest_api.h new file mode 100644 index 0000000..dbeb5a3 --- /dev/null +++ b/Arduino/McLighting/rest_api.h @@ -0,0 +1,448 @@ +// *************************************************************************** + // Setup: Webserver handler + // *************************************************************************** + //list directory + server.on("/list", HTTP_GET, handleFileList); + //create file + server.on("/edit", HTTP_PUT, handleFileCreate); + //delete file + server.on("/edit", HTTP_DELETE, handleFileDelete); + //first callback is called after the request has ended with all parsed arguments + //second callback handles file uploads at that location + server.on("/edit", HTTP_POST, []() { + server.sendHeader("Access-Control-Allow-Origin", "*"); + server.send(200, "text/plain", ""); + }, handleFileUpload); + +// *************************************************************************** +// Setup: SPIFFS Webserver handler +// *************************************************************************** + + server.on("/", HTTP_GET, [&](){ +#if defined(USE_HTML_MIN_GZ) + server.sendHeader("Content-Encoding", "gzip", true); + server.send_P(200, PSTR("text/html"), index_htm_gz, index_htm_gz_len); +#else + if (!handleFileRead(server.uri())) + handleNotFound(); +#endif + }); + + server.on("/edit", HTTP_GET, [&](){ +#if defined(USE_HTML_MIN_GZ) + server.sendHeader("Content-Encoding", "gzip", true); + server.send_P(200, PSTR("text/html"), edit_htm_gz, edit_htm_gz_len); +#else + if (!handleFileRead("/edit.htm")) + handleNotFound(); +#endif + }); + + + //called when the url is not defined here + //use it to load content from SPIFFS + server.onNotFound([]() { + if (!handleFileRead(server.uri())) + handleNotFound(); + }); + + server.on("/upload", handleMinimalUpload); + + server.on("/esp_status", HTTP_GET, []() { //get heap status, analog input value and all GPIO statuses in one json call + const size_t bufferSize = JSON_OBJECT_SIZE(31) + 1500; + DynamicJsonDocument jsonBuffer(bufferSize); + JsonObject json = jsonBuffer.to(); + json["HOSTNAME"] = HOSTNAME; + json["version"] = SKETCH_VERSION; + json["heap"] = ESP.getFreeHeap(); + json["sketch_size"] = ESP.getSketchSize(); + json["free_sketch_space"] = ESP.getFreeSketchSpace(); + json["flash_chip_size"] = ESP.getFlashChipSize(); + json["flash_chip_real_size"] = ESP.getFlashChipRealSize(); + json["flash_chip_speed"] = ESP.getFlashChipSpeed(); + json["sdk_version"] = ESP.getSdkVersion(); + json["core_version"] = ESP.getCoreVersion(); + json["cpu_freq"] = ESP.getCpuFreqMHz(); + json["chip_id"] = ESP.getFlashChipId(); + #if defined(USE_WS2812FX_DMA) + #if USE_WS2812FX_DMA == 0 + json["animation_lib"] = "WS2812FX_DMA"; + #endif + #if USE_WS2812FX_DMA == 1 + json["animation_lib"] = "WS2812FX_UART1"; + #endif + #if USE_WS2812FX_DMA == 2 + json["animation_lib"] = "WS2812FX_UART2"; + #endif + #else + json["animation_lib"] = "WS2812FX"; + #endif + json["ws2812_pin"] = WS2812FXStripSettings.pin; + json["led_count"] = WS2812FXStripSettings.stripSize; + json["rgb_order"] = WS2812FXStripSettings.RGBOrder; + if (strstr(WS2812FXStripSettings.RGBOrder, "W") != NULL) { + json["rgbw_mode"] = "ON"; + } else { + json["rgbw_mode"] = "OFF"; + } + #if defined(ENABLE_BUTTON) + json["button_mode"] = "ON"; + json["button_pin"] = ENABLE_BUTTON; + #else + json["button_mode"] = "OFF"; + #endif + #if defined(ENABLE_BUTTON_GY33) + json["button_gy33"] = "ON"; + json["gy33_pin"] = ENABLE_BUTTON_GY33; + #else + json["button_gy33"] = "OFF"; + #endif + #if defined(ENABLE_REMOTE) + json["ir_remote"] = "ON"; + json["tsop_ir_pin"] = ENABLE_REMOTE; + #else + json["ir_remote"] = "OFF"; + #endif + #if defined(ENABLE_MQTT) + #if ENABLE_MQTT == 0 + json["mqtt"] = "MQTT"; + #endif + #if ENABLE_MQTT == 1 + json["mqtt"] = "AMQTT"; + #endif + #else + json["mqtt"] = "OFF"; + #endif + #if defined(ENABLE_HOMEASSISTANT) + json["home_assistant"] = "ON"; + #else + json["home_assistant"] = "OFF"; + #endif + #if defined(ENABLE_LEGACY_ANIMATIONS) + json["legacy_animations"] = "ON"; + #else + json["legacy_animations"] = "OFF"; + #endif + #if defined(ENABLE_TV) + json["tv_animation"] = "ON"; + #else + json["tv_animation"] = "OFF"; + #endif + #if defined(ENABLE_E131) + json["e131_animations"] = "ON"; + #else + json["e131_animations"] = "OFF"; + #endif + #if defined(ENABLE_OTA) + #if ENABLE_OTA == 0 + json["ota"] = "ARDUINO"; + #endif + #if ENABLE_OTA == 1 + json["ota"] = "HTTP"; + #endif + #else + json["ota"] = "OFF"; + #endif + #if defined(ENABLE_STATE_SAVE) + #if ENABLE_STATE_SAVE == 1 + json["state_save"] = "SPIFFS"; + #endif + #if ENABLE_STATE_SAVE == 0 + json["state_save"] = "EEPROM"; + #endif + #else + json["state_save"] = "OFF"; + #endif + + String json_str; + serializeJson(json, json_str); + jsonBuffer.clear(); + server.sendHeader("Access-Control-Allow-Origin", "*"); + server.send(200, "application/json", json_str); + }); + + server.on("/restart", []() { + DBG_OUTPUT_PORT.printf("/restart\r\n"); + server.sendHeader("Access-Control-Allow-Origin", "*"); + server.send(200, "text/plain", "restarting..." ); + ESP.restart(); + }); + + server.on("/reset_wlan", []() { + DBG_OUTPUT_PORT.printf("/reset_wlan\r\n"); + server.sendHeader("Access-Control-Allow-Origin", "*"); + server.send(200, "text/plain", "Resetting WLAN and restarting..." ); + WiFiManager wifiManager; + wifiManager.resetSettings(); + ESP.restart(); + }); + + server.on("/start_config_ap", []() { + DBG_OUTPUT_PORT.printf("/start_config_ap\r\n"); + server.sendHeader("Access-Control-Allow-Origin", "*"); + server.send(200, "text/plain", "Starting config AP ..." ); + WiFiManager wifiManager; + wifiManager.startConfigPortal(HOSTNAME); + }); + + server.on("/format_spiffs", []() { + DBG_OUTPUT_PORT.printf("/format_spiffs\r\n"); + server.send(200, "text/plain", "Formatting SPIFFS ..." ); + SPIFFS.format(); + }); + + server.on("/set_brightness", []() { + getArgs(); + mode = SET_BRIGHTNESS; + getStatusJSON(); + }); + + server.on("/get_brightness", []() { + char str_brightness[4]; + snprintf(str_brightness, sizeof(str_brightness), "%i", (int) (brightness / 2.55)); + server.sendHeader("Access-Control-Allow-Origin", "*"); + server.send(200, "text/plain", str_brightness ); + DBG_OUTPUT_PORT.printf("/get_brightness: %i\r\n", (int) (brightness / 2.55)); + }); + + server.on("/set_speed", []() { + getArgs(); + mode = SET_SPEED; + getStatusJSON(); + }); + + server.on("/get_speed", []() { + char str_speed[4]; + snprintf(str_speed, sizeof(str_speed), "%i", ws2812fx_speed); + server.sendHeader("Access-Control-Allow-Origin", "*"); + server.send(200, "text/plain", str_speed ); + DBG_OUTPUT_PORT.printf("/get_speed: %i\r\n", ws2812fx_speed); + }); + + server.on("/get_switch", []() { + server.sendHeader("Access-Control-Allow-Origin", "*"); + server.send(200, "text/plain", (mode == OFF) ? "0" : "1" ); + DBG_OUTPUT_PORT.printf("/get_switch: %s\r\n", (mode == OFF) ? "0" : "1"); + }); + + server.on("/get_color", []() { + char rgbcolor[10]; + snprintf(rgbcolor, sizeof(rgbcolor), "%02X%02X%02X%02X", main_color.white, main_color.red, main_color.green, main_color.blue); + server.sendHeader("Access-Control-Allow-Origin", "*"); + server.send(200, "text/plain", rgbcolor ); + DBG_OUTPUT_PORT.print("/get_color: "); + DBG_OUTPUT_PORT.println(rgbcolor); + }); + + server.on("/get_color2", []() { + char rgbcolor[10]; + snprintf(rgbcolor, sizeof(rgbcolor), "%02X%02X%02X%02X", back_color.white, back_color.red, back_color.green, back_color.blue); + server.sendHeader("Access-Control-Allow-Origin", "*"); + server.send(200, "text/plain", rgbcolor ); + DBG_OUTPUT_PORT.print("/get_color2: "); + DBG_OUTPUT_PORT.println(rgbcolor); + }); + + server.on("/get_color3", []() { + char rgbcolor[10]; + snprintf(rgbcolor, sizeof(rgbcolor), "%02X%02X%02X%02X", xtra_color.white, xtra_color.red, xtra_color.green, xtra_color.blue); + server.sendHeader("Access-Control-Allow-Origin", "*"); + server.send(200, "text/plain", rgbcolor ); + DBG_OUTPUT_PORT.print("/get_color3: "); + DBG_OUTPUT_PORT.println(rgbcolor); + }); + + + server.on("/status", []() { + getStatusJSON(); + }); + + server.on("/config", []() { + + /* + + // This will be used later when web-interface is ready and HTTP_GET will not be allowed to update the Strip Settings + + if(server.args() == 0 and server.method() != HTTP_POST) + { + server.sendHeader("Access-Control-Allow-Origin", "*"); + server.send(200, "text/plain", "Only HTTP POST method is allowed and check the number of arguments!"); + return; + } + + */ + + bool updateFSE = false; + if(server.hasArg("ws_cnt")){ + uint16_t pixelCt = server.arg("ws_cnt").toInt(); + if (pixelCt > 0) { + WS2812FXStripSettings.stripSize = pixelCt; + updateFSE = true; + } + } + if(server.hasArg("ws_rgbo")){ + char tmp_rgbOrder[5]; + snprintf(tmp_rgbOrder, sizeof(tmp_rgbOrder), "%s", server.arg("ws_rgbo").c_str()); + checkRGBOrder(tmp_rgbOrder); + updateFSE = true; + } + +#if !defined(USE_WS2812FX_DMA) + if(server.hasArg("wspin")){ + if (checkPin(server.arg("wspin").toInt()) { + updateFSE = true; + DBG_OUTPUT_PORT.println(WS2812FXStripSettings.pin); + } else { + DBG_OUTPUT_PORT.println("invalid input!"); + } + } +#endif + + if(server.hasArg("ws_fxopt")){ + WS2812FXStripSettings.fxoptions = server.arg("ws_fxopt").toInt(); + updateFSE = true; + } + + if(updateFSE) { + mode = INIT_STRIP; + } + + if(server.hasArg("hostname")){ + snprintf(HOSTNAME, sizeof(HOSTNAME), "%s", server.arg("hostname").c_str()); + updateFSE = true; + } + +#if defined(ENABLE_MQTT) + if(server.hasArg("mqtt_host")){ + snprintf(mqtt_host, sizeof(mqtt_host), "%s", server.arg("mqtt_host").c_str()); + updateFSE = true; + } + if(server.hasArg("mqtt_port")){ + if ((server.arg("mqtt_port").toInt() >= 0) && (server.arg("mqtt_port").toInt() <=65535)) { + mqtt_port = server.arg("mqttport").toInt(); + updateFSE = true; + } + } + if(server.hasArg("mqtt_user")){ + snprintf(mqtt_user, sizeof(mqtt_user), "%s", server.arg("mqtt_user").c_str()); + updateFSE = true; + } + if(server.hasArg("mqtt_pass")){ + snprintf(mqtt_pass, sizeof(mqtt_pass), "%s", server.arg("mqtt_pass").c_str()); + updateFSE = true; + } +#endif + +#if defined(ENABLE_STATE_SAVE) + #if ENABLE_STATE_SAVE == 1 + (writeConfigFS(updateFSE)) ? DBG_OUTPUT_PORT.println("Config FS Save success!"): DBG_OUTPUT_PORT.println("Config FS Save failure!"); + #endif + #if ENABLE_STATE_SAVE == 0 + if (updateFSE) { + char last_conf[223]; + #if defined(ENABLE_MQTT) + snprintf(last_conf, sizeof(last_conf), "CNF|%64s|%64s|%5d|%32s|%32s|%4d|%2d|%4s|%3d", HOSTNAME, mqtt_host, mqtt_port, mqtt_user, mqtt_pass, WS2812FXStripSettings.stripSize, WS2812FXStripSettings.pin, WS2812FXStripSettings.RGBOrder, WS2812FXStripSettings.fxoptions); + #else + snprintf(last_conf, sizeof(last_conf), "CNF|%64s|%64s|%5d|%32s|%32s|%4d|%2d|%4s|%3d", HOSTNAME, "", "", "", "", WS2812FXStripSettings.stripSize, WS2812FXStripSettings.pin, WS2812FXStripSettings.RGBOrder, WS2812FXStripSettings.fxoptions); + #endif + writeEEPROM(0, 222, last_conf); + EEPROM.commit(); + } + #endif +#endif + getConfigJSON(); + delay(500); + +#if defined(ENABLE_MQTT) + if (updateFSE) { + initMqtt(); + } +#endif + + updateFSE = false; + }); + + server.on("/off", []() { + mode = OFF; + getStatusJSON(); + }); + + server.on("/auto", []() { + mode = AUTO; + getStatusJSON(); + }); + + server.on("/all", []() { + getArgs(); + ws2812fx_mode = FX_MODE_STATIC; + mode = SET_ALL; + getStatusJSON(); + }); + + #if defined(ENABLE_LEGACY_ANIMATIONS) + server.on("/wipe", []() { + getArgs(); + ws2812fx_mode = FX_MODE_COLOR_WIPE; + mode = SET_ALL; + getStatusJSON(); + }); + + server.on("/rainbow", []() { + getArgs(); + ws2812fx_mode = FX_MODE_RAINBOW; + mode = SET_ALL; + getStatusJSON(); + }); + + server.on("/rainbowcycle", []() { + getArgs(); + ws2812fx_mode = FX_MODE_RAINBOW_CYCLE; + mode = SET_ALL; + getStatusJSON(); + }); + + server.on("/theaterchase", []() { + getArgs(); + ws2812fx_mode = FX_MODE_THEATER_CHASE; + mode = SET_ALL; + getStatusJSON(); + }); + + server.on("/twinklerandom", []() { + getArgs(); + ws2812fx_mode = FX_MODE_TWINKLE_RANDOM; + mode = SET_ALL; + getStatusJSON(); + }); + + server.on("/theaterchaserainbow", []() { + getArgs(); + ws2812fx_mode = FX_MODE_THEATER_CHASE_RAINBOW; + mode = SET_ALL; + getStatusJSON(); + }); + #endif + + #if defined(ENABLE_E131) + server.on("/e131", []() { + mode = E131; + getStatusJSON(); + }); + #endif + + #if defined(ENABLE_TV) + server.on("/tv", []() { + mode = TV; + getStatusJSON(); + }); + #endif + + server.on("/get_modes", []() { + getModesJSON(); + }); + + server.on("/set_mode", []() { + getArgs(); + mode = SET_MODE; + getStatusJSON(); + }); diff --git a/Arduino/McLighting/version.h b/Arduino/McLighting/version.h index 827798a..d165c4f 100644 --- a/Arduino/McLighting/version.h +++ b/Arduino/McLighting/version.h @@ -1 +1 @@ -#define SKETCH_VERSION "2.2.0.rgbw.3c" +#define SKETCH_VERSION "2.2.2.rgbw.3c" diff --git a/Arduino/McLighting/version_info.ino b/Arduino/McLighting/version_info.ino index b642a81..4ad988c 100644 --- a/Arduino/McLighting/version_info.ino +++ b/Arduino/McLighting/version_info.ino @@ -56,13 +56,74 @@ * 23 Dec 2018 v 2.2.0 * - Add E1.31 mode to getModes(), no need to change McLightingUI * - * 6 Jan 2018 v 2.2.0 + * 6 Jan 2019 v 2.2.0 * - fix webserver not responding when E1.31 is mode is acivated: do a webserver.loop() for every 1.31 packet * - HA E1.31 mode added - * - * 15 Feb 2018 v 2.2.0 rgbw 3colors + * + * 15 Feb 2019 v 2.2.0 rgbw 3colors * - Code cleanup * - Implemented support for back- and xtra-color * - Implemented IR remote control * - Remove some string data types (to be continued) + * + * 08 Mar 2018 v 2.2.1 rgbw 3colors + * - checkForRequests() is not needed + * - Minor fixes related to NeoPixelBus UART methods + * - Modify platformio.ini for future bump to esp8266-arduino v2.5.0 (shamelessly stolen settings from espurna project) + * - Gzipped index.htm & edit.htm, convereted to hex format using xxd -i abcd.gz > html_gz.h + * - Pointers added for WS2812FX & NeoPixelBus + * - new "REST API": /config?ws_cnt=xxx to change length of LED strip + * - new "REST API": /config?ws_rgbo=xxx to change RGB order + * - new "REST API": /config?ws_pin=GPIO_NO to change PIN# (Allowed GPIO values: 16/5/4/0/2/14/12/13/15/3/1) if not used DMA or UART. Otherwise it is ignored + * - added HA 0.87 version support https://github.com/toblum/McLighting/issues/327 + * - Added alternative way to send large messages using PubSubClient + * - Bump PIO core to 2.0.4 + * - Send HA state on MQTT connect, address https://github.com/toblum/McLighting/issues/349 + * - Add LWT for MQTT and AMQTT, address https://github.com/toblum/McLighting/issues/340 + * - Added file for custom WS2812FX animations in custom slots + * - Rename variables to be char instead of String + * - Added LED pixel count and PIN settings to WiFiManager + * - Gamma correction to LEDs via ws_fxopts + * + * 10 Mar 2019 v 2.2.2 rgbw 3colors + * - integraded neoconfig.json into config.json + * - Add compiler flag for WS2811 strips #define LED_TYPE_WS2811 + * - new "REST API": /config?hostname=xxx to change hostname + * - new "REST API": /config?mqtt_host=xxx to change mqtt hostname + * - new "REST API": /config?mqtt_port=xxx to change mqtt port + * - new "REST API": /config?mqtt_user=xxx to change mqtt username + * - new "REST API": /config?mqtt_pass=xxx to change mqtt password + * - new "REST API": /config?ws_fxopt=xxx to change ws2812fx options + * - Pointers added for PubSubClient & AMQTTCLient + * - RGBOrder is now stored human readable not as integer + * - Bugfix on Fire 2012 animation as one variable was destroyed + * + * 15 Mar 2019 v 2.2.2 rgbw 3colors + * websocket commands + * # Set Maincolor + * ## Set Back color + * ### Set xtra Color + * ? Set speed + * % Set brightness + * * Set all + * ! Set single LED + * + Set multiple LEDs + * R Set Range + * = Set named Mode (legacy) + * $ Get Status + * new from here + * C Get Config + * Ch Set hostname + * Cmh Set mqtt hostname + * Cmp Set mqtt port + * Cmu Set mqtt username + * Cmw Set mqtt password + * Csc Set Strip LED count + * Csr Set Strip RGB Order + * Csp Set Strip pin + * Cso Set Strip FX Options + * to here + * ~ Get Modes + * / Set modes + * */