diff --git a/.gitignore b/.gitignore index 813d1a78..48b49f4e 100644 --- a/.gitignore +++ b/.gitignore @@ -3,24 +3,5 @@ build_distrib/temp -# ignore SquareLine Studio files -ui_design/backup -ui_design/cache -ui_design/autosave -ui_design_0.85/backup -ui_design_0.85/cache -ui_design_0.85/autosave -ui_design_1.69/backup -ui_design_1.69/cache -ui_design_1.69/autosave -ui_design_1.69_land/backup -ui_design_1.69_land/cache -ui_design_1.69_land/autosave -ui_design_1.9/backup -ui_design_1.9/cache -ui_design_1.9/autosave -ui_design_480x320land/backup -ui_design_480x320land/cache -ui_design_480x320land/autosave - - +# ignore EEZ Studio state files +**/*.eez-project-ui-state diff --git a/source/.gitignore b/source/.gitignore index 4e9a03b9..b11b1054 100644 --- a/source/.gitignore +++ b/source/.gitignore @@ -18,6 +18,8 @@ build_lgtdisps3/ build_ws19t/ build_ws35b/ build_jc3248w/ +build_piratemax35/ +build_piratepro/ # ignore everything in managed components directory. Will be generated by the build system managed_components/ diff --git a/source/CMakeLists.txt b/source/CMakeLists.txt index 9186b4ed..d88d06ca 100644 --- a/source/CMakeLists.txt +++ b/source/CMakeLists.txt @@ -20,7 +20,7 @@ if(CONFIG_TONEX_CONTROLLER_DISPLAY_FULL_UI) set(image_file ${project_dir}/skin_images/16bit/skins_minimal.bin) endif() - if(CONFIG_TONEX_CONTROLLER_HARDWARE_PLATFORM_WAVESHARE_35B OR CONFIG_TONEX_CONTROLLER_HARDWARE_PLATFORM_JC3248W535) + if(CONFIG_TONEX_CONTROLLER_HARDWARE_PLATFORM_WAVESHARE_35B OR CONFIG_TONEX_CONTROLLER_HARDWARE_PLATFORM_JC3248W535 OR CONFIG_TONEX_CONTROLLER_HARDWARE_PLATFORM_PIRATE_MIDI_POLAR_MAX_V2) set(image_file ${project_dir}/skin_images/16bitswapped/skins.bin) endif() diff --git a/source/components/esp_lcd_touch_ft6336/esp_lcd_touch_ft6336.c b/source/components/esp_lcd_touch_ft6336/esp_lcd_touch_ft6336.c index 6b6dbc36..aa95339e 100644 --- a/source/components/esp_lcd_touch_ft6336/esp_lcd_touch_ft6336.c +++ b/source/components/esp_lcd_touch_ft6336/esp_lcd_touch_ft6336.c @@ -220,7 +220,7 @@ static esp_err_t esp_lcd_touch_ft6336_del(esp_lcd_touch_handle_t tp) } -static esp_err_t touch_ft6336_i2c_write(esp_lcd_touch_handle_t tp, uint8_t reg, uint8_t data) +static esp_err_t __attribute__((unused)) touch_ft6336_i2c_write(esp_lcd_touch_handle_t tp, uint8_t reg, uint8_t data) { assert(tp != NULL); diff --git a/source/components/lvgl__lvgl/src/lv_conf_internal.h b/source/components/lvgl__lvgl/src/lv_conf_internal.h index 0c297081..4eb24d1b 100644 --- a/source/components/lvgl__lvgl/src/lv_conf_internal.h +++ b/source/components/lvgl__lvgl/src/lv_conf_internal.h @@ -160,30 +160,30 @@ #else /*LV_MEM_CUSTOM*/ #ifndef LV_MEM_CUSTOM_INCLUDE #ifdef CONFIG_LV_MEM_CUSTOM_INCLUDE - #define LV_MEM_CUSTOM_INCLUDE CONFIG_LV_MEM_CUSTOM_INCLUDE + #define LV_MEM_CUSTOM_INCLUDE "esp_heap_caps.h" //CONFIG_LV_MEM_CUSTOM_INCLUDE #else - #define LV_MEM_CUSTOM_INCLUDE /*Header for the dynamic memory function*/ + #define LV_MEM_CUSTOM_INCLUDE "esp_heap_caps.h" /*Header for the dynamic memory function*/ #endif #endif #ifndef LV_MEM_CUSTOM_ALLOC #ifdef CONFIG_LV_MEM_CUSTOM_ALLOC #define LV_MEM_CUSTOM_ALLOC CONFIG_LV_MEM_CUSTOM_ALLOC #else - #define LV_MEM_CUSTOM_ALLOC malloc + #define LV_MEM_CUSTOM_ALLOC(size) heap_caps_malloc((size), MALLOC_CAP_SPIRAM | MALLOC_CAP_8BIT) #endif #endif #ifndef LV_MEM_CUSTOM_FREE #ifdef CONFIG_LV_MEM_CUSTOM_FREE #define LV_MEM_CUSTOM_FREE CONFIG_LV_MEM_CUSTOM_FREE #else - #define LV_MEM_CUSTOM_FREE free + #define LV_MEM_CUSTOM_FREE(ptr) heap_caps_free(ptr) #endif #endif #ifndef LV_MEM_CUSTOM_REALLOC #ifdef CONFIG_LV_MEM_CUSTOM_REALLOC #define LV_MEM_CUSTOM_REALLOC CONFIG_LV_MEM_CUSTOM_REALLOC #else - #define LV_MEM_CUSTOM_REALLOC realloc + #define LV_MEM_CUSTOM_REALLOC(ptr, new_size) heap_caps_realloc((ptr), (new_size), MALLOC_CAP_SPIRAM | MALLOC_CAP_8BIT) #endif #endif #endif /*LV_MEM_CUSTOM*/ diff --git a/source/esp_idf_project_configuration.json b/source/esp_idf_project_configuration.json index 261392f4..14c43fab 100644 --- a/source/esp_idf_project_configuration.json +++ b/source/esp_idf_project_configuration.json @@ -466,5 +466,57 @@ "postBuild": "", "postFlash": "" } + }, + "PiratePro": { + "build": { + "compileArgs": [], + "ninjaArgs": [], + "buildDirectoryPath": "${workspaceFolder}/build_piratepro", + "sdkconfigDefaults": [ + "sdkconfig.defaults", + "sdkconfig.piratepro" + ], + "sdkconfigFilePath": "${workspaceFolder}/build_piratepro" + }, + "env": {}, + "flashBaudRate": "", + "monitorBaudRate": "", + "openOCD": { + "debugLevel": 0, + "configs": [], + "args": [] + }, + "tasks": { + "preBuild": "", + "preFlash": "", + "postBuild": "", + "postFlash": "" + } + }, + "PirateMaxV2": { + "build": { + "compileArgs": [], + "ninjaArgs": [], + "buildDirectoryPath": "${workspaceFolder}/build_piratemax35", + "sdkconfigDefaults": [ + "sdkconfig.defaults", + "sdkconfig.piratemax35" + ], + "sdkconfigFilePath": "${workspaceFolder}/build_piratemax35" + }, + "env": {}, + "flashBaudRate": "", + "monitorBaudRate": "", + "openOCD": { + "debugLevel": 0, + "configs": [], + "args": [] + }, + "tasks": { + "preBuild": "", + "preFlash": "", + "postBuild": "", + "postFlash": "" + } } } diff --git a/source/main/CMakeLists.txt b/source/main/CMakeLists.txt index 704ce656..f7a84041 100644 --- a/source/main/CMakeLists.txt +++ b/source/main/CMakeLists.txt @@ -1,11 +1,22 @@ - -idf_component_register(SRCS "valeton_params.c" "midi_control.c" "control.c" "footswitches.c" "CH422G.c" "display.c" "main.c" "tonex_params.c" "SX1509.c" - "usb_comms.c" "usb_tonex_one.c" "usb_tonex_common.c" "usb_tonex.c" "usb_valeton_gp5.c" "CH422G.c" "midi_serial.c" "wifi_config.c" "leds.c" "midi_helper.c" "LP5562.c" +idf_component_register(SRCS "platform_pirate_pro_169.c" "platform_pirate_max35.c" "valeton_params.c" "midi_control.c" "control.c" "footswitches.c" "CH422G.c" "display.c" "main.c" "tonex_params.c" "SX1509.c" "display_tonex.c" "display_valeton.c" + "usb_comms.c" "usb_tonex_one.c" "usb_tonex_common.c" "usb_tonex.c" "usb_valeton_gp5.c" "CH422G.c" "midi_serial.c" "wifi_config.c" "leds.c" "midi_helper.c" "midi_helper_tonex.c" "midi_helper_valeton.c" "LP5562.c" "platform_devkitc.c" "platform_lgtdisps3.c" "platform_m5atoms3r.c" "platform_ws19t.c" "platform_ws43.c" "platform_wszero.c" "platform_ws169.c" "platform_ws35b.c" "platform_jc3248w.c" - INCLUDE_DIRS "." "./" - EMBED_TXTFILES index.html) - + INCLUDE_DIRS "." "./" + EMBED_FILES + "web/index.html" "web/amp_disabled.png" "web/amp_off.png" "web/amp_on.png" "web/cab_disabled.png" "web/cab_off.png" "web/cab_on.png" + "web/dly_off.png" "web/dly_on.png" "web/dst_off.png" "web/dst_on.png" "web/effect_icon_amp_off.png" "web/effect_icon_amp_on.png" + "web/effect_icon_cab_off.png" "web/effect_icon_cab_on.png" "web/effect_icon_comp_off.png" "web/effect_icon_comp_on.png" + "web/effect_icon_delay_off.png" "web/effect_icon_delay_on_d.png" "web/effect_icon_delay_on_t.png" "web/effect_icon_eq.png" + "web/effect_icon_gate_on.png" "web/effect_icon_gate_off.png" "web/effect_icon_mod_off.png" "web/effect_icon_mod_on_chorus.png" + "web/effect_icon_mod_on_flanger.png" "web/effect_icon_mod_on_phaser.png" "web/effect_icon_mod_on_rotary.png" "web/effect_icon_mod_on_tremolo.png" + "web/effect_icon_reverb_off.png" "web/effect_icon_reverb_on.png" "web/effect_icon_reverb_on_p.png" "web/effect_icon_reverb_on_r.png" + "web/effect_icon_reverb_on_s1.png" "web/effect_icon_reverb_on_s2.png" "web/effect_icon_reverb_on_s3.png" "web/effect_icon_reverb_on_s4.png" + "web/eq_off.png" "web/eq_on.png" "web/mod_off.png" "web/mod_on.png" "web/nr_off.png" "web/nr_on.png" "web/pre_off.png" "web/pre_on.png" + "web/rvb_off.png" "web/rvb_on.png" "web/tc_off.png" "web/tc_on.png" + "web/favicon.ico" "web/bootstrap.js" "web/jquery.js" "web/index.css" "web/bootstrap.css" "web/script.js" +) + if(CONFIG_TONEX_CONTROLLER_HARDWARE_PLATFORM_WAVESHARE_43B OR CONFIG_TONEX_CONTROLLER_HARDWARE_PLATFORM_WAVESHARE_43DEVONLY) target_include_directories(${COMPONENT_LIB} PRIVATE include "ui_generated_800x480land") @@ -38,14 +49,14 @@ if(CONFIG_TONEX_CONTROLLER_HARDWARE_PLATFORM_WAVESHARE_43B OR CONFIG_TONEX_CONTR "ui_generated_800x480land/ui_image_nr_off.c" "ui_generated_800x480land/ui_image_nr_on.c" "ui_generated_800x480land/ui_image_rvb_off.c" "ui_generated_800x480land/ui_image_rvb_on.c" "ui_generated_800x480land/ui_image_tc_off.c" "ui_generated_800x480land/ui_image_tc_on.c" - "ui_generated_800x480land/ui_image_amp_off.c" "ui_generated_800x480land/ui_image_amp_on.c" + "ui_generated_800x480land/ui_image_amp_off.c" "ui_generated_800x480land/ui_image_amp_on.c" "ui_generated_800x480land/ui_image_amp_disabled.c" "ui_generated_800x480land/ui_image_dly_off.c" "ui_generated_800x480land/ui_image_dly_on.c" "ui_generated_800x480land/ui_image_dst_off.c" "ui_generated_800x480land/ui_image_dst_on.c" - "ui_generated_800x480land/ui_image_cab_off.c" "ui_generated_800x480land/ui_image_cab_on.c" + "ui_generated_800x480land/ui_image_cab_off.c" "ui_generated_800x480land/ui_image_cab_on.c" "ui_generated_800x480land/ui_image_cab_disabled.c" "ui_generated_800x480land/ui_image_skin_jcm.c") endif() -if(CONFIG_TONEX_CONTROLLER_HARDWARE_PLATFORM_WAVESHARE_35B OR CONFIG_TONEX_CONTROLLER_HARDWARE_PLATFORM_JC3248W535) +if(CONFIG_TONEX_CONTROLLER_HARDWARE_PLATFORM_WAVESHARE_35B OR CONFIG_TONEX_CONTROLLER_HARDWARE_PLATFORM_JC3248W535 OR CONFIG_TONEX_CONTROLLER_HARDWARE_PLATFORM_PIRATE_MIDI_POLAR_MAX_V2) target_include_directories(${COMPONENT_LIB} PRIVATE include "ui_generated_480x320land") target_sources(${COMPONENT_LIB} PRIVATE "ui_generated_480x320land/ui.c" "ui_generated_480x320land/styles.c" @@ -54,8 +65,8 @@ if(CONFIG_TONEX_CONTROLLER_HARDWARE_PLATFORM_WAVESHARE_35B OR CONFIG_TONEX_CONTR "ui_generated_480x320land/ui_image_usb_fail.c" "ui_generated_480x320land/ui_image_next.c" "ui_generated_480x320land/ui_image_previous.c" "ui_generated_480x320land/ui_image_usb_ok.c" "ui_generated_480x320land/ui_image_next_down.c" "ui_generated_480x320land/ui_image_previous_down.c" "ui_generated_480x320land/ui_image_settings.c" "ui_generated_480x320land/ui_image_wifi_conn.c" "ui_generated_480x320land/ui_image_wifi_disconn.c" - "ui_generated_480x320land/ui_image_effect_icon_amp_off.c" "ui_generated_480x320land/ui_image_effect_icon_amp_on.c" - "ui_generated_480x320land/ui_image_effect_icon_cab_off.c" "ui_generated_480x320land/ui_image_effect_icon_cab_on.c" + "ui_generated_480x320land/ui_image_effect_icon_amp_off.c" "ui_generated_480x320land/ui_image_effect_icon_amp_on.c" "ui_generated_480x320land/ui_image_amp_disabled.c" + "ui_generated_480x320land/ui_image_effect_icon_cab_off.c" "ui_generated_480x320land/ui_image_effect_icon_cab_on.c" "ui_generated_480x320land/ui_image_cab_disabled.c" "ui_generated_480x320land/ui_image_effect_icon_comp_off.c" "ui_generated_480x320land/ui_image_effect_icon_comp_on.c" "ui_generated_480x320land/ui_image_effect_icon_delay_off.c" "ui_generated_480x320land/ui_image_effect_icon_gate_off.c" "ui_generated_480x320land/ui_image_effect_icon_gate_on.c" @@ -84,7 +95,7 @@ if(CONFIG_TONEX_CONTROLLER_HARDWARE_PLATFORM_WAVESHARE_35B OR CONFIG_TONEX_CONTR "ui_generated_480x320land/ui_image_skin_jcm.c") endif() -if(CONFIG_TONEX_CONTROLLER_HARDWARE_PLATFORM_WAVESHARE_169 OR CONFIG_TONEX_CONTROLLER_HARDWARE_PLATFORM_WAVESHARE_169TOUCH) +if(CONFIG_TONEX_CONTROLLER_HARDWARE_PLATFORM_WAVESHARE_169 OR CONFIG_TONEX_CONTROLLER_HARDWARE_PLATFORM_WAVESHARE_169TOUCH OR CONFIG_TONEX_CONTROLLER_HARDWARE_PLATFORM_PIRATE_MIDI_POLAR_PRO) if(CONFIG_TONEX_CONTROLLER_WAVESHARE_169_LANDSCAPE) target_include_directories(${COMPONENT_LIB} PRIVATE include "ui_generated_280x240land") diff --git a/source/main/Kconfig.projbuild b/source/main/Kconfig.projbuild index 7e25bcc6..3e2f92ac 100644 --- a/source/main/Kconfig.projbuild +++ b/source/main/Kconfig.projbuild @@ -36,6 +36,12 @@ menu "Tonex Controller Configuration" config TONEX_CONTROLLER_HARDWARE_PLATFORM_WAVESHARE_19TOUCH bool "Waveshare 1.9 Touch" + + config TONEX_CONTROLLER_HARDWARE_PLATFORM_PIRATE_MIDI_POLAR_PRO + bool "Pirate Midi Polar Pro 1.69" + + config TONEX_CONTROLLER_HARDWARE_PLATFORM_PIRATE_MIDI_POLAR_MAX_V2 + bool "Pirate Midi Polar Max V2 3.5 touch" endchoice @@ -94,11 +100,41 @@ menu "Tonex Controller Configuration" Enable this option to show BPM indicator config TONEX_CONTROLLER_ENABLE_MIDI_THRU - bool "Enable Midi Thru" + bool "Enable Midi Thru" default "y" help Enable this option if the platform can support Midi Transmit - + + choice TONEX_CONTROLLER_LED_CONTROL_MODE + prompt "Led control mode" + default TONEX_CONTROLLER_LED_CONTROL_DISABLED + + config TONEX_CONTROLLER_LED_CONTROL_DISABLED + bool "Disabled" + + config TONEX_CONTROLLER_LED_CONTROL_BOOT_FLASH + bool "Boot flash" + endchoice + + choice TONEX_CONTROLLER_LED_COLOUR_ORDER + prompt "Led colour order" + default TONEX_CONTROLLER_LED_COLOUR_ORDER_RGB + + config TONEX_CONTROLLER_LED_COLOUR_ORDER_RGB + bool "RGB" + + config TONEX_CONTROLLER_LED_COLOUR_ORDER_GBR + bool "GBR" + + endchoice + + config TONEX_CONTROLLER_LED_NUMBER + int "Number of Leds" + range 0 16 + default 0 + help + Set the number of leds the platform has + config EXAMPLE_DOUBLE_FB bool "Use double Frame Buffer" default "n" diff --git a/source/main/control.c b/source/main/control.c index 0d0cdfe8..d81367e8 100644 --- a/source/main/control.c +++ b/source/main/control.c @@ -43,6 +43,7 @@ limitations under the License. #include "wifi_config.h" #include "task_priorities.h" #include "tonex_params.h" +#include "valeton_params.h" #define CTRL_TASK_STACK_SIZE (3 * 1024) @@ -892,7 +893,20 @@ static uint8_t process_control_command(tControlMessage* message) ESP_LOGI(TAG, "Tap Tempo BPM = %d", (int)bpm); // update pedal - usb_modify_parameter(TONEX_GLOBAL_BPM, ControlData.TapTempo.BPM); + switch (usb_get_connected_modeller_type()) + { + case AMP_MODELLER_TONEX_ONE: // fallthrough + case AMP_MODELLER_TONEX: // fallthrough + default: + { + usb_modify_parameter(TONEX_GLOBAL_BPM, ControlData.TapTempo.BPM); + } break; + + case AMP_MODELLER_VALETON_GP5: + { + usb_modify_parameter(VALETON_GLOBAL_BPM, ControlData.TapTempo.BPM); + } break; + } // save time for next trigger ControlData.TapTempo.LastTime = current_time; diff --git a/source/main/control.h b/source/main/control.h index 94e855e0..ade49d25 100644 --- a/source/main/control.h +++ b/source/main/control.h @@ -191,7 +191,7 @@ enum WiFiTxPower WIFI_TX_POWER_100 }; -enum ConfigTabs43B +enum ConfigTabs43BTonex { CONFIG_TAB_GATE, CONFIG_TAB_COMPRESSOR, @@ -203,6 +203,21 @@ enum ConfigTabs43B CONFIG_TAB_GLOBAL, }; +enum ConfigTabs43BValeton +{ + CONFIG_TAB_VAL_NR, + CONFIG_TAB_VAL_PRE, + CONFIG_TAB_VAL_DST, + CONFIG_TAB_VAL_AMP, + CONFIG_TAB_VAL_CAB, + CONFIG_TAB_VAL_EQ, + CONFIG_TAB_VAL_MOD, + CONFIG_TAB_VAL_DLY, + CONFIG_TAB_VAL_RVB, + CONFIG_TAB_VAL_NS, + CONFIG_TAB_VAL_GLOBAL, +}; + enum FootswitchLayouts { FOOTSWITCH_LAYOUT_1X2, // next/previous @@ -254,6 +269,9 @@ enum ParamTypes #define MAX_PARAM_NAME 12 +// special cases for handling effect switches that use Midi but don't change a parameter +#define TONEX_UNKNOWN 0xFFFF + typedef struct { float Value; @@ -261,6 +279,9 @@ typedef struct float Max; char Name[MAX_PARAM_NAME]; uint8_t Type; + uint8_t Data1; // usage depends on connected modeller + uint8_t Data2; // usage depends on connected modeller + uint8_t Data3; // usage depends on connected modeller } tModellerParameter; typedef struct __attribute__ ((packed)) diff --git a/source/main/display.c b/source/main/display.c index 4067dbcd..d6b7e636 100644 --- a/source/main/display.c +++ b/source/main/display.c @@ -69,6 +69,8 @@ limitations under the License. #include "usb_tonex_one.h" #include "usb_tonex.h" #include "display.h" +#include "display_tonex.h" +#include "display_valeton.h" #include "CH422G.h" #include "control.h" #include "task_priorities.h" @@ -404,42 +406,19 @@ bool display_on_vsync_event(esp_lcd_panel_handle_t panel, const esp_lcd_rgb_pane *****************************************************************************/ void ui_show_settings_tab(lv_event_t * e) { - lv_obj_t* target = lv_event_get_current_target(e); - - if (target == objects.ui_icon_eq) - { - // show EQ settings - lv_tabview_set_act(objects.ui_settings_tab_view, CONFIG_TAB_EQ, LV_ANIM_OFF); - } - else if (target == objects.ui_icon_gate) - { - // show gate settings - lv_tabview_set_act(objects.ui_settings_tab_view, CONFIG_TAB_GATE, LV_ANIM_OFF); - } - else if ((target == objects.ui_icon_amp) || (target == objects.ui_icon_cab)) - { - // show amp settings - lv_tabview_set_act(objects.ui_settings_tab_view, CONFIG_TAB_AMPLIFIER, LV_ANIM_OFF); - } - else if (target == objects.ui_icon_comp) - { - // show comnpressor settings - lv_tabview_set_act(objects.ui_settings_tab_view, CONFIG_TAB_COMPRESSOR, LV_ANIM_OFF); - } - else if (target == objects.ui_icon_mod) - { - // show modulation settings - lv_tabview_set_act(objects.ui_settings_tab_view, CONFIG_TAB_MODULATION, LV_ANIM_OFF); - } - else if (target == objects.ui_icon_delay) - { - // show delay settings - lv_tabview_set_act(objects.ui_settings_tab_view, CONFIG_TAB_DELAY, LV_ANIM_OFF); - } - else if (target == objects.ui_icon_reverb) + switch (usb_get_connected_modeller_type()) { - // show reverb settings - lv_tabview_set_act(objects.ui_settings_tab_view, CONFIG_TAB_REVERB, LV_ANIM_OFF); + case AMP_MODELLER_TONEX_ONE: // fallthrough + case AMP_MODELLER_TONEX: // fallthrough + default: + { + tonex_show_settings_tab(e); + } break; + + case AMP_MODELLER_VALETON_GP5: + { + valeton_show_settings_tab(e); + } break; } } @@ -452,146 +431,19 @@ void ui_show_settings_tab(lv_event_t * e) *****************************************************************************/ void action_effect_icon_clicked(lv_event_t * e) { - tModellerParameter* param_ptr; - float value; - lv_event_code_t event_code = lv_event_get_code(e); - lv_obj_t* event_object = lv_event_get_target(e); - - // called from LVGL - ESP_LOGI(TAG, "action_effect_icon_clicked"); - - if (event_code == LV_EVENT_SHORT_CLICKED) + switch (usb_get_connected_modeller_type()) { - if (event_object == objects.ui_icon_reverb) - { - ESP_LOGI(TAG, "UI Toggle reverb"); - - tonex_params_get_locked_access(¶m_ptr); - if (param_ptr[TONEX_PARAM_REVERB_ENABLE].Value == 0.0f) - { - value = 1.0f; - } - else - { - value = 0.0f; - } - tonex_params_release_locked_access(); - - usb_modify_parameter(TONEX_PARAM_REVERB_ENABLE, value); - } - else if (event_object == objects.ui_icon_delay) - { - ESP_LOGI(TAG, "UI Toggle delay"); - - tonex_params_get_locked_access(¶m_ptr); - if (param_ptr[TONEX_PARAM_DELAY_ENABLE].Value == 0.0f) - { - value = 1.0f; - } - else - { - value = 0.0f; - } - tonex_params_release_locked_access(); - - usb_modify_parameter(TONEX_PARAM_DELAY_ENABLE, value); - } - else if (event_object == objects.ui_icon_mod) - { - ESP_LOGI(TAG, "UI Toggle mod"); - - tonex_params_get_locked_access(¶m_ptr); - if (param_ptr[TONEX_PARAM_MODULATION_ENABLE].Value == 0.0f) - { - value = 1.0f; - } - else - { - value = 0.0f; - } - tonex_params_release_locked_access(); - - usb_modify_parameter(TONEX_PARAM_MODULATION_ENABLE, value); - } - else if (event_object == objects.ui_icon_comp) - { - ESP_LOGI(TAG, "UI Toggle comp"); - - tonex_params_get_locked_access(¶m_ptr); - if (param_ptr[TONEX_PARAM_COMP_ENABLE].Value == 0.0f) - { - value = 1.0f; - } - else - { - value = 0.0f; - } - tonex_params_release_locked_access(); - - usb_modify_parameter(TONEX_PARAM_COMP_ENABLE, value); - } - else if (event_object == objects.ui_icon_cab) - { - ESP_LOGI(TAG, "UI Toggle cab"); - - tonex_params_get_locked_access(¶m_ptr); - if (param_ptr[TONEX_PARAM_CABINET_TYPE].Value == TONEX_CABINET_DISABLED) - { - //todo here: this could have been a VIR cabinet - value = TONEX_CABINET_TONE_MODEL; - } - else - { - value = TONEX_CABINET_DISABLED; - } - tonex_params_release_locked_access(); - - usb_modify_parameter(TONEX_PARAM_CABINET_TYPE, value); - } - else if (event_object == objects.ui_icon_amp) + case AMP_MODELLER_TONEX_ONE: // fallthrough + case AMP_MODELLER_TONEX: // fallthrough + default: { - ESP_LOGI(TAG, "UI Toggle amp"); - - tonex_params_get_locked_access(¶m_ptr); - if (param_ptr[TONEX_PARAM_MODEL_AMP_ENABLE].Value == 0.0f) - { - value = 1.0f; - } - else - { - value = 0.0f; - } - tonex_params_release_locked_access(); + tonex_action_effect_icon_clicked(e); + } break; - usb_modify_parameter(TONEX_PARAM_MODEL_AMP_ENABLE, value); - } - else if (event_object == objects.ui_icon_gate) + case AMP_MODELLER_VALETON_GP5: { - ESP_LOGI(TAG, "UI Toggle gate"); - - tonex_params_get_locked_access(¶m_ptr); - if (param_ptr[TONEX_PARAM_NOISE_GATE_ENABLE].Value == 0.0f) - { - value = 1.0f; - } - else - { - value = 0.0f; - } - tonex_params_release_locked_access(); - - usb_modify_parameter(TONEX_PARAM_NOISE_GATE_ENABLE, value); - } - else if (event_object == objects.ui_icon_eq) - { - // no short press action - } - } - else if (event_code == LV_EVENT_LONG_PRESSED) - { - // change to settings page and jump to relevant tab - action_show_settings_page(e); - ui_show_settings_tab(e); + valeton_action_effect_icon_clicked(e); + } break; } } @@ -640,7 +492,20 @@ void action_close_settings_page(lv_event_t * e) *****************************************************************************/ void action_show_settings_page(lv_event_t * e) { - lv_scr_load_anim(objects.settings, LV_SCR_LOAD_ANIM_FADE_IN, 0, 0, false); + switch (usb_get_connected_modeller_type()) + { + case AMP_MODELLER_TONEX_ONE: // fallthrough + case AMP_MODELLER_TONEX: // fallthrough + default: + { + lv_scr_load_anim(objects.settings, LV_SCR_LOAD_ANIM_FADE_IN, 0, 0, false); + } break; + + case AMP_MODELLER_VALETON_GP5: + { + lv_scr_load_anim(objects.val_settings, LV_SCR_LOAD_ANIM_FADE_IN, 0, 0, false); + } break; + } } /**************************************************************************** @@ -758,584 +623,19 @@ void action_keyboard_ok(lv_event_t * e) *****************************************************************************/ void action_parameter_changed(lv_event_t * e) { - // get the object that was changed - lv_obj_t* obj = lv_event_get_current_target(e); - - ESP_LOGI(TAG, "Parameter changed"); - - // see what it was, and update the pedal - if (obj == objects.ui_noise_gate_switch) - { - usb_modify_parameter(TONEX_PARAM_NOISE_GATE_ENABLE, lv_obj_has_state(obj, LV_STATE_CHECKED) ? 1 : 0); - } - else if (obj == objects.ui_noise_gate_post_switch) - { - usb_modify_parameter(TONEX_PARAM_NOISE_GATE_POST, lv_obj_has_state(obj, LV_STATE_CHECKED) ? 1 : 0); - } - else if (obj == objects.ui_noise_gate_threshold_slider) - { - usb_modify_parameter(TONEX_PARAM_NOISE_GATE_THRESHOLD, lv_slider_get_value(obj)); - } - else if (obj == objects.ui_noise_gate_release_slider) - { - usb_modify_parameter(TONEX_PARAM_NOISE_GATE_RELEASE, lv_slider_get_value(obj)); - } - else if (obj == objects.ui_noise_gate_depth_slider) - { - usb_modify_parameter(TONEX_PARAM_NOISE_GATE_DEPTH, lv_slider_get_value(obj)); - } - else if (obj == objects.ui_compressor_enable_switch) - { - usb_modify_parameter(TONEX_PARAM_COMP_ENABLE, lv_obj_has_state(obj, LV_STATE_CHECKED) ? 1 : 0); - } - else if (obj == objects.ui_compressor_post_switch) - { - usb_modify_parameter(TONEX_PARAM_COMP_POST, lv_obj_has_state(obj, LV_STATE_CHECKED) ? 1 : 0); - } - else if (obj == objects.ui_compressor_threshold_slider) - { - usb_modify_parameter(TONEX_PARAM_COMP_THRESHOLD, lv_slider_get_value(obj)); - } - else if (obj == objects.ui_compressor_attack_slider) - { - usb_modify_parameter(TONEX_PARAM_COMP_ATTACK, lv_slider_get_value(obj)); - } - else if (obj == objects.ui_compressor_gain_slider) - { - usb_modify_parameter(TONEX_PARAM_COMP_MAKE_UP, lv_slider_get_value(obj)); - } - else if (obj == objects.ui_eq_post_switch) - { - usb_modify_parameter(TONEX_PARAM_EQ_POST, lv_obj_has_state(obj, LV_STATE_CHECKED) ? 1 : 0); - } - else if (obj == objects.ui_eq_bass_slider) - { - usb_modify_parameter(TONEX_PARAM_EQ_BASS, ((float)lv_slider_get_value(obj))/10.0f); - } - else if (obj == objects.ui_eq_mid_slider) - { - usb_modify_parameter(TONEX_PARAM_EQ_MID, ((float)lv_slider_get_value(obj))/10.0f); - } - else if (obj == objects.ui_eq_mid_qslider) - { - usb_modify_parameter(TONEX_PARAM_EQ_MIDQ, ((float)lv_slider_get_value(obj))/10.0f); - } - else if (obj == objects.ui_eq_treble_slider) - { - usb_modify_parameter(TONEX_PARAM_EQ_TREBLE, ((float)lv_slider_get_value(obj))/10.0f); - } - else if (obj == objects.ui_reverb_enable_switch) - { - usb_modify_parameter(TONEX_PARAM_REVERB_ENABLE, lv_obj_has_state(obj, LV_STATE_CHECKED) ? 1 : 0); - } - else if (obj == objects.ui_reverb_post_switch) - { - usb_modify_parameter(TONEX_PARAM_REVERB_POSITION, lv_obj_has_state(obj, LV_STATE_CHECKED) ? 1 : 0); - } - else if (obj == objects.ui_reverb_model_dropdown) - { - usb_modify_parameter(TONEX_PARAM_REVERB_MODEL, lv_dropdown_get_selected(obj)); - } - else if (obj == objects.ui_reverb_mix_slider) - { - // check which model is set - switch (lv_dropdown_get_selected(objects.ui_reverb_model_dropdown)) - { - case TONEX_REVERB_SPRING_1: - { - usb_modify_parameter(TONEX_PARAM_REVERB_SPRING1_MIX, lv_slider_get_value(obj)); - } break; - - case TONEX_REVERB_SPRING_2: - { - usb_modify_parameter(TONEX_PARAM_REVERB_SPRING2_MIX, lv_slider_get_value(obj)); - } break; - - case TONEX_REVERB_SPRING_3: - { - usb_modify_parameter(TONEX_PARAM_REVERB_SPRING3_MIX, lv_slider_get_value(obj)); - } break; - - case TONEX_REVERB_SPRING_4: - { - usb_modify_parameter(TONEX_PARAM_REVERB_SPRING4_MIX, lv_slider_get_value(obj)); - } break; - - case TONEX_REVERB_ROOM: - { - usb_modify_parameter(TONEX_PARAM_REVERB_ROOM_MIX, lv_slider_get_value(obj)); - } break; - - case TONEX_REVERB_PLATE: - { - usb_modify_parameter(TONEX_PARAM_REVERB_PLATE_MIX, lv_slider_get_value(obj)); - } break; - } - } - else if (obj == objects.ui_reverb_time_slider) - { - // check which model is set - switch (lv_dropdown_get_selected(objects.ui_reverb_model_dropdown)) - { - case TONEX_REVERB_SPRING_1: - { - usb_modify_parameter(TONEX_PARAM_REVERB_SPRING1_TIME, lv_slider_get_value(obj)); - } break; - - case TONEX_REVERB_SPRING_2: - { - usb_modify_parameter(TONEX_PARAM_REVERB_SPRING2_TIME, lv_slider_get_value(obj)); - } break; - - case TONEX_REVERB_SPRING_3: - { - usb_modify_parameter(TONEX_PARAM_REVERB_SPRING3_TIME, lv_slider_get_value(obj)); - } break; - - case TONEX_REVERB_SPRING_4: - { - usb_modify_parameter(TONEX_PARAM_REVERB_SPRING4_TIME, lv_slider_get_value(obj)); - } break; - - case TONEX_REVERB_ROOM: - { - usb_modify_parameter(TONEX_PARAM_REVERB_ROOM_TIME, lv_slider_get_value(obj)); - } break; - - case TONEX_REVERB_PLATE: - { - usb_modify_parameter(TONEX_PARAM_REVERB_PLATE_TIME, lv_slider_get_value(obj)); - } break; - } - } - else if (obj == objects.ui_reverb_predelay_slider) - { - // check which model is set - switch (lv_dropdown_get_selected(objects.ui_reverb_model_dropdown)) - { - case TONEX_REVERB_SPRING_1: - { - usb_modify_parameter(TONEX_PARAM_REVERB_SPRING1_PREDELAY, lv_slider_get_value(obj)); - } break; - - case TONEX_REVERB_SPRING_2: - { - usb_modify_parameter(TONEX_PARAM_REVERB_SPRING2_PREDELAY, lv_slider_get_value(obj)); - } break; - - case TONEX_REVERB_SPRING_3: - { - usb_modify_parameter(TONEX_PARAM_REVERB_SPRING3_PREDELAY, lv_slider_get_value(obj)); - } break; - - case TONEX_REVERB_SPRING_4: - { - usb_modify_parameter(TONEX_PARAM_REVERB_SPRING4_PREDELAY, lv_slider_get_value(obj)); - } break; - - case TONEX_REVERB_ROOM: - { - usb_modify_parameter(TONEX_PARAM_REVERB_ROOM_PREDELAY, lv_slider_get_value(obj)); - } break; - - case TONEX_REVERB_PLATE: - { - usb_modify_parameter(TONEX_PARAM_REVERB_PLATE_PREDELAY, lv_slider_get_value(obj)); - } break; - } - } - else if (obj == objects.ui_reverb_color_slider) - { - // check which model is set - switch (lv_dropdown_get_selected(objects.ui_reverb_model_dropdown)) - { - case TONEX_REVERB_SPRING_1: - { - usb_modify_parameter(TONEX_PARAM_REVERB_SPRING1_COLOR, lv_slider_get_value(obj)); - } break; - - case TONEX_REVERB_SPRING_2: - { - usb_modify_parameter(TONEX_PARAM_REVERB_SPRING2_COLOR, lv_slider_get_value(obj)); - } break; - - case TONEX_REVERB_SPRING_3: - { - usb_modify_parameter(TONEX_PARAM_REVERB_SPRING3_COLOR, lv_slider_get_value(obj)); - } break; - - case TONEX_REVERB_SPRING_4: - { - usb_modify_parameter(TONEX_PARAM_REVERB_SPRING4_COLOR, lv_slider_get_value(obj)); - } break; - - case TONEX_REVERB_ROOM: - { - usb_modify_parameter(TONEX_PARAM_REVERB_ROOM_COLOR, lv_slider_get_value(obj)); - } break; - - case TONEX_REVERB_PLATE: - { - usb_modify_parameter(TONEX_PARAM_REVERB_PLATE_COLOR, lv_slider_get_value(obj)); - } break; - } - } - else if (obj == objects.ui_modulation_enable_switch) - { - usb_modify_parameter(TONEX_PARAM_MODULATION_ENABLE, lv_obj_has_state(obj, LV_STATE_CHECKED) ? 1 : 0); - } - else if (obj == objects.ui_modulation_post_switch) - { - usb_modify_parameter(TONEX_PARAM_MODULATION_POST, lv_obj_has_state(obj, LV_STATE_CHECKED) ? 1 : 0); - } - else if (obj == objects.ui_modulation_model_dropdown) - { - usb_modify_parameter(TONEX_PARAM_MODULATION_MODEL, lv_dropdown_get_selected(obj)); - } - else if (obj == objects.ui_modulation_sync_switch) - { - // check which model is set - switch (lv_dropdown_get_selected(objects.ui_modulation_model_dropdown)) - { - case TONEX_MODULATION_CHORUS: - { - usb_modify_parameter(TONEX_PARAM_MODULATION_CHORUS_SYNC, lv_obj_has_state(obj, LV_STATE_CHECKED) ? 1 : 0); - } break; - - case TONEX_MODULATION_TREMOLO: - { - usb_modify_parameter(TONEX_PARAM_MODULATION_TREMOLO_SYNC, lv_obj_has_state(obj, LV_STATE_CHECKED) ? 1 : 0); - } break; - - case TONEX_MODULATION_PHASER: - { - usb_modify_parameter(TONEX_PARAM_MODULATION_PHASER_SYNC, lv_obj_has_state(obj, LV_STATE_CHECKED) ? 1 : 0); - } break; - - case TONEX_MODULATION_FLANGER: - { - usb_modify_parameter(TONEX_PARAM_MODULATION_FLANGER_SYNC, lv_obj_has_state(obj, LV_STATE_CHECKED) ? 1 : 0); - } break; - - case TONEX_MODULATION_ROTARY: - { - usb_modify_parameter(TONEX_PARAM_MODULATION_ROTARY_SYNC, lv_obj_has_state(obj, LV_STATE_CHECKED) ? 1 : 0); - } break; - } - } - else if (obj == objects.ui_modulation_ts_dropdown) + switch (usb_get_connected_modeller_type()) { - switch (lv_dropdown_get_selected(objects.ui_modulation_model_dropdown)) - { - case TONEX_MODULATION_CHORUS: - { - usb_modify_parameter(TONEX_PARAM_MODULATION_CHORUS_TS, lv_dropdown_get_selected(obj)); - } break; - - case TONEX_MODULATION_TREMOLO: - { - usb_modify_parameter(TONEX_PARAM_MODULATION_TREMOLO_TS, lv_dropdown_get_selected(obj)); - } break; - - case TONEX_MODULATION_PHASER: - { - usb_modify_parameter(TONEX_PARAM_MODULATION_PHASER_TS, lv_dropdown_get_selected(obj)); - } break; - - case TONEX_MODULATION_FLANGER: - { - usb_modify_parameter(TONEX_PARAM_MODULATION_FLANGER_TS, lv_dropdown_get_selected(obj)); - } break; - - case TONEX_MODULATION_ROTARY: - { - usb_modify_parameter(TONEX_PARAM_MODULATION_ROTARY_TS, lv_dropdown_get_selected(obj)); - } break; - } - } - else if (obj == objects.ui_modulation_param1_slider) - { - // check which model is set - switch (lv_dropdown_get_selected(objects.ui_modulation_model_dropdown)) - { - case TONEX_MODULATION_CHORUS: - { - usb_modify_parameter(TONEX_PARAM_MODULATION_CHORUS_RATE, lv_slider_get_value(obj)); - } break; - - case TONEX_MODULATION_TREMOLO: - { - usb_modify_parameter(TONEX_PARAM_MODULATION_TREMOLO_RATE, lv_slider_get_value(obj)); - } break; - - case TONEX_MODULATION_PHASER: - { - usb_modify_parameter(TONEX_PARAM_MODULATION_PHASER_RATE, lv_slider_get_value(obj)); - } break; - - case TONEX_MODULATION_FLANGER: - { - usb_modify_parameter(TONEX_PARAM_MODULATION_FLANGER_RATE, lv_slider_get_value(obj)); - } break; - - case TONEX_MODULATION_ROTARY: - { - usb_modify_parameter(TONEX_PARAM_MODULATION_ROTARY_SPEED, lv_slider_get_value(obj)); - } break; - } - } - else if (obj == objects.ui_modulation_param2_slider) - { - // check which model is set - switch (lv_dropdown_get_selected(objects.ui_modulation_model_dropdown)) - { - case TONEX_MODULATION_CHORUS: - { - usb_modify_parameter(TONEX_PARAM_MODULATION_CHORUS_DEPTH, lv_slider_get_value(obj)); - } break; - - case TONEX_MODULATION_TREMOLO: - { - usb_modify_parameter(TONEX_PARAM_MODULATION_TREMOLO_SHAPE, lv_slider_get_value(obj)); - } break; - - case TONEX_MODULATION_PHASER: - { - usb_modify_parameter(TONEX_PARAM_MODULATION_PHASER_DEPTH, lv_slider_get_value(obj)); - } break; - - case TONEX_MODULATION_FLANGER: - { - usb_modify_parameter(TONEX_PARAM_MODULATION_FLANGER_DEPTH, lv_slider_get_value(obj)); - } break; - - case TONEX_MODULATION_ROTARY: - { - usb_modify_parameter(TONEX_PARAM_MODULATION_ROTARY_RADIUS, lv_slider_get_value(obj)); - } break; - } - } - else if (obj == objects.ui_modulation_param3_slider) - { - // check which model is set - switch (lv_dropdown_get_selected(objects.ui_modulation_model_dropdown)) - { - case TONEX_MODULATION_CHORUS: - { - usb_modify_parameter(TONEX_PARAM_MODULATION_CHORUS_LEVEL, lv_slider_get_value(obj)); - } break; - - case TONEX_MODULATION_TREMOLO: - { - usb_modify_parameter(TONEX_PARAM_MODULATION_TREMOLO_SPREAD, lv_slider_get_value(obj)); - } break; - - case TONEX_MODULATION_PHASER: - { - usb_modify_parameter(TONEX_PARAM_MODULATION_PHASER_LEVEL, lv_slider_get_value(obj)); - } break; - - case TONEX_MODULATION_FLANGER: - { - usb_modify_parameter(TONEX_PARAM_MODULATION_FLANGER_FEEDBACK, lv_slider_get_value(obj)); - } break; - - case TONEX_MODULATION_ROTARY: - { - usb_modify_parameter(TONEX_PARAM_MODULATION_ROTARY_SPREAD, lv_slider_get_value(obj)); - } break; - } - } - else if (obj == objects.ui_modulation_param4_slider) - { - // check which model is set - switch (lv_dropdown_get_selected(objects.ui_modulation_model_dropdown)) - { - case TONEX_MODULATION_CHORUS: - { - // not used - } break; - - case TONEX_MODULATION_TREMOLO: - { - usb_modify_parameter(TONEX_PARAM_MODULATION_TREMOLO_LEVEL, lv_slider_get_value(obj)); - } break; - - case TONEX_MODULATION_PHASER: - { - // not used - } break; - - case TONEX_MODULATION_FLANGER: - { - usb_modify_parameter(TONEX_PARAM_MODULATION_FLANGER_LEVEL, lv_slider_get_value(obj)); - } break; - - case TONEX_MODULATION_ROTARY: - { - usb_modify_parameter(TONEX_PARAM_MODULATION_ROTARY_LEVEL, lv_slider_get_value(obj)); - } break; - } - } - else if (obj == objects.ui_delay_enable_switch) - { - usb_modify_parameter(TONEX_PARAM_DELAY_ENABLE, lv_obj_has_state(obj, LV_STATE_CHECKED) ? 1 : 0); - } - else if (obj == objects.ui_delay_post_switch) - { - usb_modify_parameter(TONEX_PARAM_DELAY_POST, lv_obj_has_state(obj, LV_STATE_CHECKED) ? 1 : 0); - } - else if (obj == objects.ui_delay_model_dropdown) - { - usb_modify_parameter(TONEX_PARAM_DELAY_MODEL, lv_dropdown_get_selected(obj)); - } - else if (obj == objects.ui_delay_sync_switch) - { - // check which model is set - switch (lv_dropdown_get_selected(objects.ui_delay_model_dropdown)) - { - case TONEX_DELAY_DIGITAL: - { - usb_modify_parameter(TONEX_PARAM_DELAY_DIGITAL_SYNC, lv_obj_has_state(obj, LV_STATE_CHECKED) ? 1 : 0); - } break; - - case TONEX_DELAY_TAPE: - { - usb_modify_parameter(TONEX_PARAM_DELAY_TAPE_SYNC, lv_obj_has_state(obj, LV_STATE_CHECKED) ? 1 : 0); - } break; - } - } - else if (obj == objects.ui_delay_ping_pong_switch) - { - // check which model is set - switch (lv_dropdown_get_selected(objects.ui_delay_model_dropdown)) - { - case TONEX_DELAY_DIGITAL: - { - usb_modify_parameter(TONEX_PARAM_DELAY_DIGITAL_MODE, lv_obj_has_state(obj, LV_STATE_CHECKED) ? 1 : 0); - } break; - - case TONEX_DELAY_TAPE: - { - usb_modify_parameter(TONEX_PARAM_DELAY_TAPE_MODE, lv_obj_has_state(obj, LV_STATE_CHECKED) ? 1 : 0); - } break; - } - } - else if (obj == objects.ui_delay_ts_slider) - { - // check which model is set - switch (lv_dropdown_get_selected(objects.ui_delay_model_dropdown)) - { - case TONEX_DELAY_DIGITAL: - { - usb_modify_parameter(TONEX_PARAM_DELAY_DIGITAL_TIME, lv_slider_get_value(obj)); - } break; - - case TONEX_DELAY_TAPE: - { - usb_modify_parameter(TONEX_PARAM_DELAY_TAPE_TIME, lv_slider_get_value(obj)); - } break; - } - } - else if (obj == objects.ui_delay_ts_dropdown) - { - // check which model is set - switch (lv_dropdown_get_selected(objects.ui_delay_model_dropdown)) - { - case TONEX_DELAY_DIGITAL: - { - usb_modify_parameter(TONEX_PARAM_DELAY_DIGITAL_TS, lv_dropdown_get_selected(obj)); - } break; - - case TONEX_DELAY_TAPE: - { - usb_modify_parameter(TONEX_PARAM_DELAY_TAPE_TS, lv_dropdown_get_selected(obj)); - } break; - } - } - else if (obj == objects.ui_delay_feedback_slider) - { - // check which model is set - switch (lv_dropdown_get_selected(objects.ui_delay_model_dropdown)) + case AMP_MODELLER_TONEX_ONE: // fallthrough + case AMP_MODELLER_TONEX: // fallthrough + default: { - case TONEX_DELAY_DIGITAL: - { - usb_modify_parameter(TONEX_PARAM_DELAY_DIGITAL_FEEDBACK, lv_slider_get_value(obj)); - } break; + tonex_action_parameter_changed(e); + } break; - case TONEX_DELAY_TAPE: - { - usb_modify_parameter(TONEX_PARAM_DELAY_TAPE_FEEDBACK, lv_slider_get_value(obj)); - } break; - } - } - else if (obj == objects.ui_delay_mix_slider) - { - // check which model is set - switch (lv_dropdown_get_selected(objects.ui_delay_model_dropdown)) + case AMP_MODELLER_VALETON_GP5: { - case TONEX_DELAY_DIGITAL: - { - usb_modify_parameter(TONEX_PARAM_DELAY_DIGITAL_MIX, lv_slider_get_value(obj)); - } break; - - case TONEX_DELAY_TAPE: - { - usb_modify_parameter(TONEX_PARAM_DELAY_TAPE_MIX, lv_slider_get_value(obj)); - } break; - } - } - else if (obj == objects.ui_amp_enable_switch) - { - usb_modify_parameter(TONEX_PARAM_MODEL_AMP_ENABLE, lv_obj_has_state(obj, LV_STATE_CHECKED) ? 1 : 0); - } - else if (obj == objects.ui_cabinet_model_dropdown) - { - usb_modify_parameter(TONEX_PARAM_CABINET_TYPE, lv_dropdown_get_selected(obj)); - } - else if (obj == objects.ui_amplifier_gain_slider) - { - usb_modify_parameter(TONEX_PARAM_MODEL_GAIN, ((float)lv_slider_get_value(obj))/10.0f); - } - else if (obj == objects.ui_amplifier_volume_slider) - { - usb_modify_parameter(TONEX_PARAM_MODEL_VOLUME, ((float)lv_slider_get_value(obj))/10.0f); - } - else if (obj == objects.ui_amplifier_presense_slider) - { - usb_modify_parameter(TONEX_PARAM_MODEL_PRESENCE, ((float)lv_slider_get_value(obj))/10.0f); - } - else if (obj == objects.ui_amplifier_depth_slider) - { - usb_modify_parameter(TONEX_PARAM_MODEL_DEPTH, ((float)lv_slider_get_value(obj))/10.0f); - } - else if (obj == objects.ui_bpm_slider) - { - usb_modify_parameter(TONEX_GLOBAL_BPM, lv_slider_get_value(obj)); - } - else if (obj == objects.ui_input_trim_slider) - { - usb_modify_parameter(TONEX_GLOBAL_INPUT_TRIM, lv_slider_get_value(obj)); - } - else if (obj == objects.ui_cab_bypass_switch) - { - usb_modify_parameter(TONEX_GLOBAL_CABSIM_BYPASS, lv_obj_has_state(obj, LV_STATE_CHECKED) ? 1 : 0); - } - else if (obj == objects.ui_tempo_source_switch) - { - usb_modify_parameter(TONEX_GLOBAL_TEMPO_SOURCE, lv_obj_has_state(obj, LV_STATE_CHECKED) ? 1 : 0); - } - else if (obj == objects.ui_tuning_reference_slider) - { - usb_modify_parameter(TONEX_GLOBAL_TUNING_REFERENCE, lv_slider_get_value(obj)); - } - else if (obj == objects.ui_volume_slider) - { - usb_modify_parameter(TONEX_GLOBAL_MASTER_VOLUME, lv_slider_get_value(obj)); - } - else - { - ESP_LOGW(TAG, "Unknown Parameter changed"); + valeton_action_parameter_changed(e); + } break; } } #endif //CONFIG_TONEX_CONTROLLER_DISPLAY_FULL_UI @@ -1693,78 +993,21 @@ static uint32_t ui_get_skin_image(uint16_t index) * RETURN: * NOTES: *****************************************************************************/ -void updateIconOrder() +void updateIconOrder(void) { - bool gatePost = lv_obj_has_state(objects.ui_noise_gate_post_switch, LV_STATE_CHECKED); - bool compPost = lv_obj_has_state(objects.ui_compressor_post_switch, LV_STATE_CHECKED); - bool eqPost = lv_obj_has_state(objects.ui_eq_post_switch, LV_STATE_CHECKED); - bool modPost = lv_obj_has_state(objects.ui_modulation_post_switch, LV_STATE_CHECKED); - bool delayPost = lv_obj_has_state(objects.ui_delay_post_switch, LV_STATE_CHECKED); - bool revPost = lv_obj_has_state(objects.ui_reverb_post_switch, LV_STATE_CHECKED); - - lv_obj_t *icons[8]; - uint8_t index = 0; - - if (!gatePost) - { - icons[index++] = objects.ui_icon_gate; - } - if (!compPost) - { - icons[index++] = objects.ui_icon_comp; - } - if (!modPost) - { - icons[index++] = objects.ui_icon_mod; - } - if (!delayPost) - { - icons[index++] = objects.ui_icon_delay; - } - if (!eqPost) - { - icons[index++] = objects.ui_icon_eq; - } - icons[index++] = objects.ui_icon_amp; - icons[index++] = objects.ui_icon_cab; - if (eqPost) - { - icons[index++] = objects.ui_icon_eq; - } - if (gatePost) - { - icons[index++] = objects.ui_icon_gate; - } - if (compPost) - { - icons[index++] = objects.ui_icon_comp; - } - if (!revPost) - { - icons[index++] = objects.ui_icon_reverb; - } - if (modPost) - { - icons[index++] = objects.ui_icon_mod; - } - if (delayPost) + switch (usb_get_connected_modeller_type()) { - icons[index++] = objects.ui_icon_delay; - } - if (revPost) - { - icons[index] = objects.ui_icon_reverb; - } - - // get the icon coords for this platform - int16_t offsets[8]; - platform_get_icon_coords(offsets, sizeof(offsets) / sizeof(int16_t)); + case AMP_MODELLER_TONEX_ONE: // fallthrough + case AMP_MODELLER_TONEX: // fallthrough + default: + { + tonex_update_icon_order(); + } break; - for (uint8_t i = 0; i<8; i++) - { - lv_obj_t *icon = icons[i]; - int16_t offset = offsets[i]; - lv_obj_set_x(icon, offset); + case AMP_MODELLER_VALETON_GP5: + { + valeton_update_icon_order(); + } break; } } #endif @@ -1788,7 +1031,6 @@ static __attribute__((unused)) uint8_t update_ui_element(tUIUpdate* update) { element_1 = objects.ui_usb_status_fail; -#if CONFIG_TONEX_CONTROLLER_DISPLAY_FULL_UI if (update->Value == 1) { // if enabled, adjust UI to suit modeller @@ -1798,22 +1040,32 @@ static __attribute__((unused)) uint8_t update_ui_element(tUIUpdate* update) case AMP_MODELLER_TONEX: // fallthrough default: { +#if CONFIG_TONEX_CONTROLLER_DISPLAY_FULL_UI lv_obj_clear_flag(objects.ui_bottom_panel_tonex, LV_OBJ_FLAG_HIDDEN); lv_obj_add_flag(objects.ui_bottom_panel_valeton, LV_OBJ_FLAG_HIDDEN); lv_label_set_text(objects.ui_project_heading_label, "Tonex Controller"); +#else + // set effect letter to "C" (Compressor) + lv_label_set_text(objects.ui_cstatus, "C"); +#endif + } break; case AMP_MODELLER_VALETON_GP5: { +#if CONFIG_TONEX_CONTROLLER_DISPLAY_FULL_UI lv_obj_add_flag(objects.ui_bottom_panel_tonex, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_bottom_panel_valeton, LV_OBJ_FLAG_HIDDEN); lv_label_set_text(objects.ui_project_heading_label, "Valeton Controller"); +#else + // set effect letter to "T" (Distortion) + lv_label_set_text(objects.ui_cstatus, "T"); +#endif } break; } } -#endif } break; case UI_ELEMENT_BT_STATUS: @@ -1854,1583 +1106,26 @@ static __attribute__((unused)) uint8_t update_ui_element(tUIUpdate* update) case UI_ELEMENT_PARAMETERS: { -#if CONFIG_TONEX_CONTROLLER_DISPLAY_FULL_UI ESP_LOGI(TAG, "Syncing params to UI"); - tModellerParameter* param_ptr; - - for (uint16_t param = 0; param < TONEX_GLOBAL_LAST; param++) - { - if (tonex_params_get_locked_access(¶m_ptr) == ESP_OK) + switch (usb_get_connected_modeller_type()) + { + case AMP_MODELLER_TONEX_ONE: // fallthrough + case AMP_MODELLER_TONEX: // fallthrough + default: { - tModellerParameter* param_entry = ¶m_ptr[param]; + tonex_update_ui_parameters(); + } break; - // debug - //ESP_LOGI(TAG, "Param %d: val: %02f, min: %02f, max: %02f", param, param_entry->Value, param_entry->Min, param_entry->Max); - - switch (param) - { - case TONEX_PARAM_NOISE_GATE_POST: - { - if (param_entry->Value) - { - lv_obj_add_state(objects.ui_noise_gate_post_switch, LV_STATE_CHECKED); - } - else - { - lv_obj_clear_state(objects.ui_noise_gate_post_switch, LV_STATE_CHECKED); - } - updateIconOrder(); - } break; - - case TONEX_PARAM_NOISE_GATE_ENABLE: - { - if (param_entry->Value) - { - lv_obj_add_state(objects.ui_noise_gate_switch, LV_STATE_CHECKED); - lv_img_set_src(objects.ui_icon_gate, (lv_obj_t*)&img_effect_icon_gate_on); - } - else - { - lv_obj_clear_state(objects.ui_noise_gate_switch, LV_STATE_CHECKED); - lv_img_set_src(objects.ui_icon_gate, (lv_obj_t*)&img_effect_icon_gate_off); - } - } break; - - case TONEX_PARAM_NOISE_GATE_THRESHOLD: - { - lv_slider_set_range(objects.ui_noise_gate_threshold_slider, round(param_entry->Min), round(param_entry->Max)); - lv_slider_set_value(objects.ui_noise_gate_threshold_slider, round(param_entry->Value), LV_ANIM_OFF); - - // show value and units - sprintf(value_string, "%d db", (int)round(param_entry->Value)); - lv_label_set_text(objects.ui_noise_gate_threshold_value, value_string); - } break; - - case TONEX_PARAM_NOISE_GATE_RELEASE: - { - lv_slider_set_range(objects.ui_noise_gate_release_slider, round(param_entry->Min), round(param_entry->Max)); - lv_slider_set_value(objects.ui_noise_gate_release_slider, round(param_entry->Value), LV_ANIM_OFF); - - // show value and units - sprintf(value_string, "%d ms", (int)round(param_entry->Value)); - lv_label_set_text(objects.ui_noise_gate_release_value, value_string); - } break; - - case TONEX_PARAM_NOISE_GATE_DEPTH: - { - lv_slider_set_range(objects.ui_noise_gate_depth_slider, round(param_entry->Min), round(param_entry->Max)); - lv_slider_set_value(objects.ui_noise_gate_depth_slider, round(param_entry->Value), LV_ANIM_OFF); - - // show value and units - sprintf(value_string, "%d db", (int)round(param_entry->Value)); - lv_label_set_text(objects.ui_noise_gate_depth_value, value_string); - } break; - - case TONEX_PARAM_COMP_POST: - { - if (param_entry->Value) - { - lv_obj_add_state(objects.ui_compressor_post_switch, LV_STATE_CHECKED); - } - else - { - lv_obj_clear_state(objects.ui_compressor_post_switch, LV_STATE_CHECKED); - } - updateIconOrder(); - } break; - - case TONEX_PARAM_COMP_ENABLE: - { - if (param_entry->Value) - { - lv_obj_add_state(objects.ui_compressor_enable_switch, LV_STATE_CHECKED); - lv_img_set_src(objects.ui_icon_comp, (lv_obj_t*)&img_effect_icon_comp_on); - } - else - { - lv_obj_clear_state(objects.ui_compressor_enable_switch, LV_STATE_CHECKED); - lv_img_set_src(objects.ui_icon_comp, (lv_obj_t*)&img_effect_icon_comp_off); - } - } break; - - case TONEX_PARAM_COMP_THRESHOLD: - { - lv_slider_set_range(objects.ui_compressor_threshold_slider, round(param_entry->Min), round(param_entry->Max)); - lv_slider_set_value(objects.ui_compressor_threshold_slider, round(param_entry->Value), LV_ANIM_OFF); - - // show value and units - sprintf(value_string, "%1.1f db", param_entry->Value); - lv_label_set_text(objects.ui_compressor_threshold_value, value_string); - } break; - - case TONEX_PARAM_COMP_MAKE_UP: - { - lv_slider_set_range(objects.ui_compressor_gain_slider, round(param_entry->Min), round(param_entry->Max)); - lv_slider_set_value(objects.ui_compressor_gain_slider, round(param_entry->Value), LV_ANIM_OFF); - - // show value and units - sprintf(value_string, "%d db", (int)round(param_entry->Value)); - lv_label_set_text(objects.ui_compressor_gain_value, value_string); - } break; - - case TONEX_PARAM_COMP_ATTACK: - { - lv_slider_set_range(objects.ui_compressor_attack_slider, round(param_entry->Min), round(param_entry->Max)); - lv_slider_set_value(objects.ui_compressor_attack_slider, round(param_entry->Value), LV_ANIM_OFF); - - // show value and units - sprintf(value_string, "%d ms", (int)round(param_entry->Value)); - lv_label_set_text(objects.ui_compressor_attack_value, value_string); - } break; - - case TONEX_PARAM_EQ_POST: - { - if (param_entry->Value) - { - lv_obj_add_state(objects.ui_eq_post_switch, LV_STATE_CHECKED); - } - else - { - lv_obj_clear_state(objects.ui_eq_post_switch, LV_STATE_CHECKED); - } - updateIconOrder(); - } break; - - case TONEX_PARAM_EQ_BASS: - { - lv_slider_set_range(objects.ui_eq_bass_slider, round(param_entry->Min), round(param_entry->Max * 10.0f)); - lv_slider_set_value(objects.ui_eq_bass_slider, round(param_entry->Value * 10.0f), LV_ANIM_OFF); - - // show value and units - sprintf(value_string, "%1.1f", param_entry->Value); - lv_label_set_text(objects.ui_eq_bass_value, value_string); - } break; - - case TONEX_PARAM_EQ_BASS_FREQ: - { - // not exposed via UI - } break; - - case TONEX_PARAM_EQ_MID: - { - lv_slider_set_range(objects.ui_eq_mid_slider, round(param_entry->Min), round(param_entry->Max * 10.0f)); - lv_slider_set_value(objects.ui_eq_mid_slider, round(param_entry->Value * 10.0f), LV_ANIM_OFF); - - // show value and units - sprintf(value_string, "%1.1f", param_entry->Value); - lv_label_set_text(objects.ui_eq_mid_value, value_string); - } break; - - case TONEX_PARAM_EQ_MIDQ: - { - lv_slider_set_range(objects.ui_eq_mid_qslider, round(param_entry->Min * 10.0f), round(param_entry->Max * 10.0f)); - lv_slider_set_value(objects.ui_eq_mid_qslider, round(param_entry->Value * 10.0f), LV_ANIM_OFF); - - // show value and units - sprintf(value_string, "%1.1f", param_entry->Value); - lv_label_set_text(objects.ui_eq_mid_qvalue, value_string); - } break; - - case TONEX_PARAM_EQ_MID_FREQ: - { - // not exposed via UI - } break; - - case TONEX_PARAM_EQ_TREBLE: - { - lv_slider_set_range(objects.ui_eq_treble_slider, round(param_entry->Min), round(param_entry->Max * 10.0f)); - lv_slider_set_value(objects.ui_eq_treble_slider, round(param_entry->Value * 10.0f), LV_ANIM_OFF); - - // show value and units - sprintf(value_string, "%1.1f", param_entry->Value); - lv_label_set_text(objects.ui_eq_treble_value, value_string); - } break; - - case TONEX_PARAM_EQ_TREBLE_FREQ: - { - // not exposed via UI - } break; - - case TONEX_PARAM_MODEL_AMP_ENABLE: - { - if (param_entry->Value) - { - lv_obj_add_state(objects.ui_amp_enable_switch, LV_STATE_CHECKED); - lv_img_set_src(objects.ui_icon_amp, (lv_obj_t*)&img_effect_icon_amp_on); - } - else - { - lv_obj_clear_state(objects.ui_amp_enable_switch, LV_STATE_CHECKED); - lv_img_set_src(objects.ui_icon_amp, (lv_obj_t*)&img_effect_icon_amp_off); - } - } break; - - case TONEX_PARAM_MODEL_SW1: - { - // not exposed via UI - } break; - - case TONEX_PARAM_CABINET_TYPE: - { - lv_dropdown_set_selected(objects.ui_cabinet_model_dropdown, param_entry->Value); - - if (param_entry->Value == TONEX_CABINET_DISABLED) - { - lv_img_set_src(objects.ui_icon_cab, (lv_obj_t*)&img_effect_icon_cab_off); - } - else - { - lv_img_set_src(objects.ui_icon_cab, (lv_obj_t*)&img_effect_icon_cab_on); - } - } break; - - case TONEX_PARAM_MODEL_GAIN: - { - lv_slider_set_range(objects.ui_amplifier_gain_slider, round(param_entry->Min), round(param_entry->Max * 10.0f)); - lv_slider_set_value(objects.ui_amplifier_gain_slider, round(param_entry->Value * 10.0f), LV_ANIM_OFF); - - // show value and units - sprintf(value_string, "%1.1f", param_entry->Value); - lv_label_set_text(objects.ui_amplifier_gain_value, value_string); - } break; - - case TONEX_PARAM_MODEL_VOLUME: - { - lv_slider_set_range(objects.ui_amplifier_volume_slider, round(param_entry->Min), round(param_entry->Max * 10.0f)); - lv_slider_set_value(objects.ui_amplifier_volume_slider, round(param_entry->Value * 10.0f), LV_ANIM_OFF); - - // show value and units - sprintf(value_string, "%1.1f", param_entry->Value); - lv_label_set_text(objects.ui_amplifier_volume_value, value_string); - } break; - - case TONEX_PARAM_MODEX_MIX: - { - // not exposed via UI - } break; - - case TONEX_PARAM_MODEL_PRESENCE: - { - lv_slider_set_range(objects.ui_amplifier_presense_slider, round(param_entry->Min), round(param_entry->Max * 10.0f)); - lv_slider_set_value(objects.ui_amplifier_presense_slider, round(param_entry->Value * 10.0f), LV_ANIM_OFF); - - // show value and units - sprintf(value_string, "%1.1f", param_entry->Value); - lv_label_set_text(objects.ui_amplifier_presense_value, value_string); - } break; - - //case TONEX_PARAM_CABINET_UNKNOWN: - //{ - // not exposed via UI - //} break; - - //case TONEX_PARAM_VIR_CABINET: - //{ - // not exposed via UI - //} break; - - case TONEX_PARAM_MODEL_DEPTH: - { - lv_slider_set_range(objects.ui_amplifier_depth_slider, round(param_entry->Min), round(param_entry->Max * 10.0f)); - lv_slider_set_value(objects.ui_amplifier_depth_slider, round(param_entry->Value * 10.0f), LV_ANIM_OFF); - - // show value and units - sprintf(value_string, "%1.1f", param_entry->Value); - lv_label_set_text(objects.ui_amplifier_depth_value, value_string); - } break; - - case TONEX_PARAM_VIR_RESO: - { - // not exposed via UI - } break; - - case TONEX_PARAM_VIR_MIC_1: - { - // not exposed via UI - } break; - - case TONEX_PARAM_VIR_MIC_1_X: - { - // not exposed via UI - } break; - - case TONEX_PARAM_VIR_MIC_1_Z: - { - // not exposed via UI - } break; - - case TONEX_PARAM_VIR_MIC_2: - { - // not exposed via UI - } break; - - case TONEX_PARAM_VIR_MIC_2_X: - { - // not exposed via UI - } break; - - case TONEX_PARAM_VIR_MIC_2_Z: - { - // not exposed via UI - } break; - - case TONEX_PARAM_VIR_BLEND: - { - // not exposed via UI - } break; - - case TONEX_PARAM_REVERB_POSITION: - { - if (param_entry->Value) - { - lv_obj_add_state(objects.ui_reverb_post_switch, LV_STATE_CHECKED); - } - else - { - lv_obj_clear_state(objects.ui_reverb_post_switch, LV_STATE_CHECKED); - } - updateIconOrder(); - } break; - - case TONEX_PARAM_REVERB_ENABLE: - { - if (param_entry->Value) - { - lv_obj_add_state(objects.ui_reverb_enable_switch, LV_STATE_CHECKED); - - // show enabled icon with letter to indicate the type - switch ((int)param_ptr[TONEX_PARAM_REVERB_MODEL].Value) - { - case TONEX_REVERB_SPRING_1: - { - lv_img_set_src(objects.ui_icon_reverb, (lv_obj_t*)&img_effect_icon_reverb_on_s1); - } break; - - case TONEX_REVERB_SPRING_2: - { - lv_img_set_src(objects.ui_icon_reverb, (lv_obj_t*)&img_effect_icon_reverb_on_s2); - } break; - - case TONEX_REVERB_SPRING_3: - { - lv_img_set_src(objects.ui_icon_reverb, (lv_obj_t*)&img_effect_icon_reverb_on_s3); - } break; - - case TONEX_REVERB_SPRING_4: - { - lv_img_set_src(objects.ui_icon_reverb, (lv_obj_t*)&img_effect_icon_reverb_on_s4); - } break; - - case TONEX_REVERB_ROOM: - { - lv_img_set_src(objects.ui_icon_reverb, (lv_obj_t*)&img_effect_icon_reverb_on_r); - } break; - - case TONEX_REVERB_PLATE: - default: - { - lv_img_set_src(objects.ui_icon_reverb, (lv_obj_t*)&img_effect_icon_reverb_on_p); - } break; - } - } - else - { - lv_obj_clear_state(objects.ui_reverb_enable_switch, LV_STATE_CHECKED); - lv_img_set_src(objects.ui_icon_reverb, (lv_obj_t*)&img_effect_icon_reverb_off); - } - } break; - - case TONEX_PARAM_REVERB_MODEL: - { - lv_dropdown_set_selected(objects.ui_reverb_model_dropdown, param_entry->Value); - } break; - - case TONEX_PARAM_REVERB_SPRING1_TIME: - { - if (param_ptr[TONEX_PARAM_REVERB_MODEL].Value == TONEX_REVERB_SPRING_1) - { - lv_slider_set_range(objects.ui_reverb_time_slider, round(param_entry->Min), round(param_entry->Max)); - lv_slider_set_value(objects.ui_reverb_time_slider, round(param_entry->Value), LV_ANIM_OFF); - - // show value and units - sprintf(value_string, "%1.1f", param_entry->Value); - lv_label_set_text(objects.ui_reverb_time_value, value_string); - } - } break; - - case TONEX_PARAM_REVERB_SPRING1_PREDELAY: - { - if (param_ptr[TONEX_PARAM_REVERB_MODEL].Value == TONEX_REVERB_SPRING_1) - { - lv_slider_set_range(objects.ui_reverb_predelay_slider, round(param_entry->Min), round(param_entry->Max)); - lv_slider_set_value(objects.ui_reverb_predelay_slider, round(param_entry->Value), LV_ANIM_OFF); - - // show value and units - sprintf(value_string, "%d ms", (int)round(param_entry->Value)); - lv_label_set_text(objects.ui_reverb_predelay_value, value_string); - } - } break; - - case TONEX_PARAM_REVERB_SPRING1_COLOR: - { - if (param_ptr[TONEX_PARAM_REVERB_MODEL].Value == TONEX_REVERB_SPRING_1) - { - lv_slider_set_range(objects.ui_reverb_color_slider, round(param_entry->Min), round(param_entry->Max)); - lv_slider_set_value(objects.ui_reverb_color_slider, round(param_entry->Value), LV_ANIM_OFF); - - // show value and units - sprintf(value_string, "%d", (int)round(param_entry->Value)); - lv_label_set_text(objects.ui_reverb_color_value, value_string); - } - } break; - - case TONEX_PARAM_REVERB_SPRING1_MIX: - { - if (param_ptr[TONEX_PARAM_REVERB_MODEL].Value == TONEX_REVERB_SPRING_1) - { - lv_slider_set_range(objects.ui_reverb_mix_slider, round(param_entry->Min), round(param_entry->Max)); - lv_slider_set_value(objects.ui_reverb_mix_slider, round(param_entry->Value), LV_ANIM_OFF); - - // show value and units - sprintf(value_string, "%d%%", (int)round(param_entry->Value)); - lv_label_set_text(objects.ui_reverb_mix_value, value_string); - } - } break; - - case TONEX_PARAM_REVERB_SPRING2_TIME: - { - if (param_ptr[TONEX_PARAM_REVERB_MODEL].Value == TONEX_REVERB_SPRING_2) - { - lv_slider_set_range(objects.ui_reverb_time_slider, round(param_entry->Min), round(param_entry->Max)); - lv_slider_set_value(objects.ui_reverb_time_slider, round(param_entry->Value), LV_ANIM_OFF); - - // show value and units - sprintf(value_string, "%1.1f", param_entry->Value); - lv_label_set_text(objects.ui_reverb_time_value, value_string); - } - } break; - - case TONEX_PARAM_REVERB_SPRING2_PREDELAY: - { - if (param_ptr[TONEX_PARAM_REVERB_MODEL].Value == TONEX_REVERB_SPRING_2) - { - lv_slider_set_range(objects.ui_reverb_predelay_slider, round(param_entry->Min), round(param_entry->Max)); - lv_slider_set_value(objects.ui_reverb_predelay_slider, round(param_entry->Value), LV_ANIM_OFF); - - // show value and units - sprintf(value_string, "%d ms", (int)round(param_entry->Value)); - lv_label_set_text(objects.ui_reverb_predelay_value, value_string); - } - } break; - - case TONEX_PARAM_REVERB_SPRING2_COLOR: - { - if (param_ptr[TONEX_PARAM_REVERB_MODEL].Value == TONEX_REVERB_SPRING_2) - { - lv_slider_set_range(objects.ui_reverb_color_slider, round(param_entry->Min), round(param_entry->Max)); - lv_slider_set_value(objects.ui_reverb_color_slider, round(param_entry->Value), LV_ANIM_OFF); - - // show value and units - sprintf(value_string, "%d", (int)round(param_entry->Value)); - lv_label_set_text(objects.ui_reverb_color_value, value_string); - } - } break; - - case TONEX_PARAM_REVERB_SPRING2_MIX: - { - if (param_ptr[TONEX_PARAM_REVERB_MODEL].Value == TONEX_REVERB_SPRING_2) - { - lv_slider_set_range(objects.ui_reverb_mix_slider, round(param_entry->Min), round(param_entry->Max)); - lv_slider_set_value(objects.ui_reverb_mix_slider, round(param_entry->Value), LV_ANIM_OFF); - - // show value and units - sprintf(value_string, "%d%%", (int)round(param_entry->Value)); - lv_label_set_text(objects.ui_reverb_mix_value, value_string); - } - } break; - - case TONEX_PARAM_REVERB_SPRING3_TIME: - { - if (param_ptr[TONEX_PARAM_REVERB_MODEL].Value == TONEX_REVERB_SPRING_3) - { - lv_slider_set_range(objects.ui_reverb_time_slider, round(param_entry->Min), round(param_entry->Max)); - lv_slider_set_value(objects.ui_reverb_time_slider, round(param_entry->Value), LV_ANIM_OFF); - - // show value and units - sprintf(value_string, "%1.1f", param_entry->Value); - lv_label_set_text(objects.ui_reverb_time_value, value_string); - } - } break; - - case TONEX_PARAM_REVERB_SPRING3_PREDELAY: - { - if (param_ptr[TONEX_PARAM_REVERB_MODEL].Value == TONEX_REVERB_SPRING_3) - { - lv_slider_set_range(objects.ui_reverb_predelay_slider, round(param_entry->Min), round(param_entry->Max)); - lv_slider_set_value(objects.ui_reverb_predelay_slider, round(param_entry->Value), LV_ANIM_OFF); - - // show value and units - sprintf(value_string, "%d ms", (int)round(param_entry->Value)); - lv_label_set_text(objects.ui_reverb_predelay_value, value_string); - } - } break; - - case TONEX_PARAM_REVERB_SPRING3_COLOR: - { - if (param_ptr[TONEX_PARAM_REVERB_MODEL].Value == TONEX_REVERB_SPRING_3) - { - lv_slider_set_range(objects.ui_reverb_color_slider, round(param_entry->Min), round(param_entry->Max)); - lv_slider_set_value(objects.ui_reverb_color_slider, round(param_entry->Value), LV_ANIM_OFF); - - // show value and units - sprintf(value_string, "%d", (int)round(param_entry->Value)); - lv_label_set_text(objects.ui_reverb_color_value, value_string); - } - } break; - - case TONEX_PARAM_REVERB_SPRING3_MIX: - { - if (param_ptr[TONEX_PARAM_REVERB_MODEL].Value == TONEX_REVERB_SPRING_3) - { - lv_slider_set_range(objects.ui_reverb_mix_slider, round(param_entry->Min), round(param_entry->Max)); - lv_slider_set_value(objects.ui_reverb_mix_slider, round(param_entry->Value), LV_ANIM_OFF); - - // show value and units - sprintf(value_string, "%d%%", (int)round(param_entry->Value)); - lv_label_set_text(objects.ui_reverb_mix_value, value_string); - } - } break; - - case TONEX_PARAM_REVERB_SPRING4_TIME: - { - if (param_ptr[TONEX_PARAM_REVERB_MODEL].Value == TONEX_REVERB_SPRING_4) - { - lv_slider_set_range(objects.ui_reverb_time_slider, round(param_entry->Min), round(param_entry->Max)); - lv_slider_set_value(objects.ui_reverb_time_slider, round(param_entry->Value), LV_ANIM_OFF); - - // show value and units - sprintf(value_string, "%1.1f", param_entry->Value); - lv_label_set_text(objects.ui_reverb_time_value, value_string); - } - } break; - - case TONEX_PARAM_REVERB_SPRING4_PREDELAY: - { - if (param_ptr[TONEX_PARAM_REVERB_MODEL].Value == TONEX_REVERB_SPRING_4) - { - lv_slider_set_range(objects.ui_reverb_predelay_slider, round(param_entry->Min), round(param_entry->Max)); - lv_slider_set_value(objects.ui_reverb_predelay_slider, round(param_entry->Value), LV_ANIM_OFF); - - // show value and units - sprintf(value_string, "%d ms", (int)round(param_entry->Value)); - lv_label_set_text(objects.ui_reverb_predelay_value, value_string); - } - } break; - - case TONEX_PARAM_REVERB_SPRING4_COLOR: - { - if (param_ptr[TONEX_PARAM_REVERB_MODEL].Value == TONEX_REVERB_SPRING_4) - { - lv_slider_set_range(objects.ui_reverb_color_slider, round(param_entry->Min), round(param_entry->Max)); - lv_slider_set_value(objects.ui_reverb_color_slider, round(param_entry->Value), LV_ANIM_OFF); - - // show value and units - sprintf(value_string, "%d", (int)round(param_entry->Value)); - lv_label_set_text(objects.ui_reverb_color_value, value_string); - } - } break; - - case TONEX_PARAM_REVERB_SPRING4_MIX: - { - if (param_ptr[TONEX_PARAM_REVERB_MODEL].Value == TONEX_REVERB_SPRING_4) - { - lv_slider_set_range(objects.ui_reverb_mix_slider, round(param_entry->Min), round(param_entry->Max)); - lv_slider_set_value(objects.ui_reverb_mix_slider, round(param_entry->Value), LV_ANIM_OFF); - - // show value and units - sprintf(value_string, "%d%%", (int)round(param_entry->Value)); - lv_label_set_text(objects.ui_reverb_mix_value, value_string); - } - } break; - - case TONEX_PARAM_REVERB_ROOM_TIME: - { - if (param_ptr[TONEX_PARAM_REVERB_MODEL].Value == TONEX_REVERB_ROOM) - { - lv_slider_set_range(objects.ui_reverb_time_slider, round(param_entry->Min), round(param_entry->Max)); - lv_slider_set_value(objects.ui_reverb_time_slider, round(param_entry->Value), LV_ANIM_OFF); - - // show value and units - sprintf(value_string, "%1.1f", param_entry->Value); - lv_label_set_text(objects.ui_reverb_time_value, value_string); - } - } break; - - case TONEX_PARAM_REVERB_ROOM_PREDELAY: - { - if (param_ptr[TONEX_PARAM_REVERB_MODEL].Value == TONEX_REVERB_ROOM) - { - lv_slider_set_range(objects.ui_reverb_predelay_slider, round(param_entry->Min), round(param_entry->Max)); - lv_slider_set_value(objects.ui_reverb_predelay_slider, round(param_entry->Value), LV_ANIM_OFF); - - // show value and units - sprintf(value_string, "%d ms", (int)round(param_entry->Value)); - lv_label_set_text(objects.ui_reverb_predelay_value, value_string); - } - } break; - - case TONEX_PARAM_REVERB_ROOM_COLOR: - { - if (param_ptr[TONEX_PARAM_REVERB_MODEL].Value == TONEX_REVERB_ROOM) - { - lv_slider_set_range(objects.ui_reverb_color_slider, round(param_entry->Min), round(param_entry->Max)); - lv_slider_set_value(objects.ui_reverb_color_slider, round(param_entry->Value), LV_ANIM_OFF); - - // show value and units - sprintf(value_string, "%d", (int)round(param_entry->Value)); - lv_label_set_text(objects.ui_reverb_color_value, value_string); - } - } break; - - case TONEX_PARAM_REVERB_ROOM_MIX: - { - if (param_ptr[TONEX_PARAM_REVERB_MODEL].Value == TONEX_REVERB_ROOM) - { - lv_slider_set_range(objects.ui_reverb_mix_slider, round(param_entry->Min), round(param_entry->Max)); - lv_slider_set_value(objects.ui_reverb_mix_slider, round(param_entry->Value), LV_ANIM_OFF); - - // show value and units - sprintf(value_string, "%d%%", (int)round(param_entry->Value)); - lv_label_set_text(objects.ui_reverb_mix_value, value_string); - } - } break; - - case TONEX_PARAM_REVERB_PLATE_TIME: - { - if (param_ptr[TONEX_PARAM_REVERB_MODEL].Value == TONEX_REVERB_PLATE) - { - lv_slider_set_range(objects.ui_reverb_time_slider, round(param_entry->Min), round(param_entry->Max)); - lv_slider_set_value(objects.ui_reverb_time_slider, round(param_entry->Value), LV_ANIM_OFF); - - // show value and units - sprintf(value_string, "%1.1f", param_entry->Value); - lv_label_set_text(objects.ui_reverb_time_value, value_string); - } - } break; - - case TONEX_PARAM_REVERB_PLATE_PREDELAY: - { - if (param_ptr[TONEX_PARAM_REVERB_MODEL].Value == TONEX_REVERB_PLATE) - { - lv_slider_set_range(objects.ui_reverb_predelay_slider, round(param_entry->Min), round(param_entry->Max)); - lv_slider_set_value(objects.ui_reverb_predelay_slider, round(param_entry->Value), LV_ANIM_OFF); - - // show value and units - sprintf(value_string, "%d ms", (int)round(param_entry->Value)); - lv_label_set_text(objects.ui_reverb_predelay_value, value_string); - } - } break; - - case TONEX_PARAM_REVERB_PLATE_COLOR: - { - if (param_ptr[TONEX_PARAM_REVERB_MODEL].Value == TONEX_REVERB_PLATE) - { - lv_slider_set_range(objects.ui_reverb_color_slider, round(param_entry->Min), round(param_entry->Max)); - lv_slider_set_value(objects.ui_reverb_color_slider, round(param_entry->Value), LV_ANIM_OFF); - - // show value and units - sprintf(value_string, "%d", (int)round(param_entry->Value)); - lv_label_set_text(objects.ui_reverb_color_value, value_string); - } - } break; - - case TONEX_PARAM_REVERB_PLATE_MIX: - { - if (param_ptr[TONEX_PARAM_REVERB_MODEL].Value == TONEX_REVERB_PLATE) - { - lv_slider_set_range(objects.ui_reverb_mix_slider, round(param_entry->Min), round(param_entry->Max)); - lv_slider_set_value(objects.ui_reverb_mix_slider, round(param_entry->Value), LV_ANIM_OFF); - - // show value and units - sprintf(value_string, "%d%%", (int)round(param_entry->Value)); - lv_label_set_text(objects.ui_reverb_mix_value, value_string); - } - } break; - - case TONEX_PARAM_MODULATION_POST: - { - if (param_entry->Value) - { - lv_obj_add_state(objects.ui_modulation_post_switch, LV_STATE_CHECKED); - } - else - { - lv_obj_clear_state(objects.ui_modulation_post_switch, LV_STATE_CHECKED); - } - updateIconOrder(); - } break; - - case TONEX_PARAM_MODULATION_ENABLE: - { - if (param_entry->Value) - { - lv_obj_add_state(objects.ui_modulation_enable_switch, LV_STATE_CHECKED); - - // show enabled icon with letter to indicate the type - switch ((int)param_ptr[TONEX_PARAM_MODULATION_MODEL].Value) - { - case TONEX_MODULATION_CHORUS: - { - lv_img_set_src(objects.ui_icon_mod, (lv_obj_t*)&img_effect_icon_mod_on_chorus); - } break; - - case TONEX_MODULATION_TREMOLO: - { - lv_img_set_src(objects.ui_icon_mod, (lv_obj_t*)&img_effect_icon_mod_on_tremolo); - } break; - - case TONEX_MODULATION_PHASER: - { - lv_img_set_src(objects.ui_icon_mod, (lv_obj_t*)&img_effect_icon_mod_on_phaser); - } break; - - case TONEX_MODULATION_FLANGER: - { - lv_img_set_src(objects.ui_icon_mod, (lv_obj_t*)&img_effect_icon_mod_on_flanger); - } break; - - case TONEX_MODULATION_ROTARY: - default: - { - lv_img_set_src(objects.ui_icon_mod, (lv_obj_t*)&img_effect_icon_mod_on_rotary); - } break; - } - } - else - { - lv_obj_clear_state(objects.ui_modulation_enable_switch, LV_STATE_CHECKED); - lv_img_set_src(objects.ui_icon_mod, (lv_obj_t*)&img_effect_icon_mod_off); - } - } break; - - case TONEX_PARAM_MODULATION_MODEL: - { - lv_dropdown_set_selected(objects.ui_modulation_model_dropdown, param_entry->Value); - - // configure the variable UI items - switch ((int)param_entry->Value) - { - case TONEX_MODULATION_CHORUS: - { - lv_label_set_text(objects.ui_modulation_param1_label, "Rate"); - lv_label_set_text(objects.ui_modulation_param2_label, "Depth"); - lv_label_set_text(objects.ui_modulation_param3_label, "Level"); - lv_obj_add_flag(objects.ui_modulation_param4_label, LV_OBJ_FLAG_HIDDEN); - lv_obj_add_flag(objects.ui_modulation_param4_slider, LV_OBJ_FLAG_HIDDEN); - lv_obj_add_flag(objects.ui_modulation_param4_value, LV_OBJ_FLAG_HIDDEN); - } break; - - case TONEX_MODULATION_TREMOLO: - { - lv_label_set_text(objects.ui_modulation_param1_label, "Rate"); - lv_label_set_text(objects.ui_modulation_param2_label, "Shape"); - lv_label_set_text(objects.ui_modulation_param3_label, "Spread"); - lv_label_set_text(objects.ui_modulation_param4_label, "Level"); - lv_obj_clear_flag(objects.ui_modulation_param4_label, LV_OBJ_FLAG_HIDDEN); - lv_obj_clear_flag(objects.ui_modulation_param4_slider, LV_OBJ_FLAG_HIDDEN); - lv_obj_clear_flag(objects.ui_modulation_param4_value, LV_OBJ_FLAG_HIDDEN); - } break; - - case TONEX_MODULATION_PHASER: - { - lv_label_set_text(objects.ui_modulation_param1_label, "Rate"); - lv_label_set_text(objects.ui_modulation_param2_label, "Depth"); - lv_label_set_text(objects.ui_modulation_param3_label, "Level"); - lv_obj_add_flag(objects.ui_modulation_param4_label, LV_OBJ_FLAG_HIDDEN); - lv_obj_add_flag(objects.ui_modulation_param4_slider, LV_OBJ_FLAG_HIDDEN); - lv_obj_add_flag(objects.ui_modulation_param4_value, LV_OBJ_FLAG_HIDDEN); - } break; - - case TONEX_MODULATION_FLANGER: - { - lv_label_set_text(objects.ui_modulation_param1_label, "Rate"); - lv_label_set_text(objects.ui_modulation_param2_label, "Depth"); - lv_label_set_text(objects.ui_modulation_param3_label, "Feedback"); - lv_label_set_text(objects.ui_modulation_param4_label, "Level"); - lv_obj_clear_flag(objects.ui_modulation_param4_label, LV_OBJ_FLAG_HIDDEN); - lv_obj_clear_flag(objects.ui_modulation_param4_slider, LV_OBJ_FLAG_HIDDEN); - lv_obj_clear_flag(objects.ui_modulation_param4_value, LV_OBJ_FLAG_HIDDEN); - } break; - - case TONEX_MODULATION_ROTARY: - { - lv_label_set_text(objects.ui_modulation_param1_label, "Speed"); - lv_label_set_text(objects.ui_modulation_param2_label, "Radius"); - lv_label_set_text(objects.ui_modulation_param3_label, "Spread"); - lv_label_set_text(objects.ui_modulation_param4_label, "Level"); - lv_obj_clear_flag(objects.ui_modulation_param4_label, LV_OBJ_FLAG_HIDDEN); - lv_obj_clear_flag(objects.ui_modulation_param4_slider, LV_OBJ_FLAG_HIDDEN); - lv_obj_clear_flag(objects.ui_modulation_param4_value, LV_OBJ_FLAG_HIDDEN); - } break; - - default: - { - ESP_LOGW(TAG, "Unknown modulation model: %d", (int)param_entry->Value); - } break; - } - } break; - - case TONEX_PARAM_MODULATION_CHORUS_SYNC: - { - if (param_ptr[TONEX_PARAM_MODULATION_MODEL].Value == TONEX_MODULATION_CHORUS) - { - if (param_entry->Value) - { - lv_obj_add_state(objects.ui_modulation_sync_switch, LV_STATE_CHECKED); - lv_obj_add_flag(objects.ui_modulation_param1_slider, LV_OBJ_FLAG_HIDDEN); - lv_obj_add_flag(objects.ui_modulation_param1_value, LV_OBJ_FLAG_HIDDEN); - lv_obj_clear_flag(objects.ui_modulation_ts_dropdown, LV_OBJ_FLAG_HIDDEN); - } - else - { - lv_obj_clear_state(objects.ui_modulation_sync_switch, LV_STATE_CHECKED); - lv_obj_clear_flag(objects.ui_modulation_param1_slider, LV_OBJ_FLAG_HIDDEN); - lv_obj_clear_flag(objects.ui_modulation_param1_value, LV_OBJ_FLAG_HIDDEN); - lv_obj_add_flag(objects.ui_modulation_ts_dropdown, LV_OBJ_FLAG_HIDDEN); - } - } - } break; - - case TONEX_PARAM_MODULATION_CHORUS_TS: - { - if (param_ptr[TONEX_PARAM_MODULATION_MODEL].Value == TONEX_MODULATION_CHORUS) - { - lv_dropdown_set_selected(objects.ui_modulation_ts_dropdown, param_entry->Value); - } - } break; - - case TONEX_PARAM_MODULATION_CHORUS_RATE: - { - if (param_ptr[TONEX_PARAM_MODULATION_MODEL].Value == TONEX_MODULATION_CHORUS) - { - lv_slider_set_range(objects.ui_modulation_param1_slider, round(param_entry->Min), round(param_entry->Max)); - lv_slider_set_value(objects.ui_modulation_param1_slider, round(param_entry->Value), LV_ANIM_OFF); - - // show value and units - sprintf(value_string, "%1.1f Hz", param_entry->Value); - lv_label_set_text(objects.ui_modulation_param1_value, value_string); - } - } break; - - case TONEX_PARAM_MODULATION_CHORUS_DEPTH: - { - if (param_ptr[TONEX_PARAM_MODULATION_MODEL].Value == TONEX_MODULATION_CHORUS) - { - lv_slider_set_range(objects.ui_modulation_param2_slider, round(param_entry->Min), round(param_entry->Max)); - lv_slider_set_value(objects.ui_modulation_param2_slider, round(param_entry->Value), LV_ANIM_OFF); - - // show value and units - sprintf(value_string, "%d%%", (int)round(param_entry->Value)); - lv_label_set_text(objects.ui_modulation_param2_value, value_string); - } - } break; - - case TONEX_PARAM_MODULATION_CHORUS_LEVEL: - { - if (param_ptr[TONEX_PARAM_MODULATION_MODEL].Value == TONEX_MODULATION_CHORUS) - { - lv_slider_set_range(objects.ui_modulation_param3_slider, round(param_entry->Min), round(param_entry->Max)); - lv_slider_set_value(objects.ui_modulation_param3_slider, round(param_entry->Value), LV_ANIM_OFF); - - // show value and units - sprintf(value_string, "%1.1f", param_entry->Value); - lv_label_set_text(objects.ui_modulation_param3_value, value_string); - } - } break; - - case TONEX_PARAM_MODULATION_TREMOLO_SYNC: - { - if (param_ptr[TONEX_PARAM_MODULATION_MODEL].Value == TONEX_MODULATION_TREMOLO) - { - if (param_entry->Value) - { - lv_obj_add_state(objects.ui_modulation_sync_switch, LV_STATE_CHECKED); - lv_obj_add_flag(objects.ui_modulation_param1_slider, LV_OBJ_FLAG_HIDDEN); - lv_obj_add_flag(objects.ui_modulation_param1_value, LV_OBJ_FLAG_HIDDEN); - lv_obj_clear_flag(objects.ui_modulation_ts_dropdown, LV_OBJ_FLAG_HIDDEN); - } - else - { - lv_obj_clear_state(objects.ui_modulation_sync_switch, LV_STATE_CHECKED); - lv_obj_clear_flag(objects.ui_modulation_param1_slider, LV_OBJ_FLAG_HIDDEN); - lv_obj_clear_flag(objects.ui_modulation_param1_value, LV_OBJ_FLAG_HIDDEN); - lv_obj_add_flag(objects.ui_modulation_ts_dropdown, LV_OBJ_FLAG_HIDDEN); - } - } - } break; - - case TONEX_PARAM_MODULATION_TREMOLO_TS: - { - if (param_ptr[TONEX_PARAM_MODULATION_MODEL].Value == TONEX_MODULATION_TREMOLO) - { - lv_dropdown_set_selected(objects.ui_modulation_ts_dropdown, param_entry->Value); - } - } break; - - case TONEX_PARAM_MODULATION_TREMOLO_RATE: - { - if (param_ptr[TONEX_PARAM_MODULATION_MODEL].Value == TONEX_MODULATION_TREMOLO) - { - lv_slider_set_range(objects.ui_modulation_param1_slider, round(param_entry->Min), round(param_entry->Max)); - lv_slider_set_value(objects.ui_modulation_param1_slider, round(param_entry->Value), LV_ANIM_OFF); - - // show value and units - sprintf(value_string, "%1.1f Hz", param_entry->Value); - lv_label_set_text(objects.ui_modulation_param1_value, value_string); - } - } break; - - case TONEX_PARAM_MODULATION_TREMOLO_SHAPE: - { - if (param_ptr[TONEX_PARAM_MODULATION_MODEL].Value == TONEX_MODULATION_TREMOLO) - { - lv_slider_set_range(objects.ui_modulation_param2_slider, round(param_entry->Min), round(param_entry->Max)); - lv_slider_set_value(objects.ui_modulation_param2_slider, round(param_entry->Value), LV_ANIM_OFF); - - // show value and units - sprintf(value_string, "%1.1f", param_entry->Value); - lv_label_set_text(objects.ui_modulation_param2_value, value_string); - } - } break; - - case TONEX_PARAM_MODULATION_TREMOLO_SPREAD: - { - if (param_ptr[TONEX_PARAM_MODULATION_MODEL].Value == TONEX_MODULATION_TREMOLO) - { - lv_slider_set_range(objects.ui_modulation_param3_slider, round(param_entry->Min), round(param_entry->Max)); - lv_slider_set_value(objects.ui_modulation_param3_slider, round(param_entry->Value), LV_ANIM_OFF); - - // show value and units - sprintf(value_string, "%d%%", (int)round(param_entry->Value)); - lv_label_set_text(objects.ui_modulation_param3_value, value_string); - } - } break; - - case TONEX_PARAM_MODULATION_TREMOLO_LEVEL: - { - if (param_ptr[TONEX_PARAM_MODULATION_MODEL].Value == TONEX_MODULATION_TREMOLO) - { - lv_slider_set_range(objects.ui_modulation_param4_slider, round(param_entry->Min), round(param_entry->Max)); - lv_slider_set_value(objects.ui_modulation_param4_slider, round(param_entry->Value), LV_ANIM_OFF); - - // show value and units - sprintf(value_string, "%1.1f", param_entry->Value); - lv_label_set_text(objects.ui_modulation_param4_value, value_string); - } - } break; - - case TONEX_PARAM_MODULATION_PHASER_SYNC: - { - if (param_ptr[TONEX_PARAM_MODULATION_MODEL].Value == TONEX_MODULATION_PHASER) - { - if (param_entry->Value) - { - lv_obj_add_state(objects.ui_modulation_sync_switch, LV_STATE_CHECKED); - lv_obj_add_flag(objects.ui_modulation_param1_slider, LV_OBJ_FLAG_HIDDEN); - lv_obj_add_flag(objects.ui_modulation_param1_value, LV_OBJ_FLAG_HIDDEN); - lv_obj_clear_flag(objects.ui_modulation_ts_dropdown, LV_OBJ_FLAG_HIDDEN); - } - else - { - lv_obj_clear_state(objects.ui_modulation_sync_switch, LV_STATE_CHECKED); - lv_obj_clear_flag(objects.ui_modulation_param1_slider, LV_OBJ_FLAG_HIDDEN); - lv_obj_clear_flag(objects.ui_modulation_param1_value, LV_OBJ_FLAG_HIDDEN); - lv_obj_add_flag(objects.ui_modulation_ts_dropdown, LV_OBJ_FLAG_HIDDEN); - } - } - } break; - - case TONEX_PARAM_MODULATION_PHASER_TS: - { - if (param_ptr[TONEX_PARAM_MODULATION_MODEL].Value == TONEX_MODULATION_PHASER) - { - lv_dropdown_set_selected(objects.ui_modulation_ts_dropdown, param_entry->Value); - } - } break; - - case TONEX_PARAM_MODULATION_PHASER_RATE: - { - if (param_ptr[TONEX_PARAM_MODULATION_MODEL].Value == TONEX_MODULATION_PHASER) - { - lv_slider_set_range(objects.ui_modulation_param1_slider, round(param_entry->Min), round(param_entry->Max)); - lv_slider_set_value(objects.ui_modulation_param1_slider, round(param_entry->Value), LV_ANIM_OFF); - - // show value and units - sprintf(value_string, "%1.1f Hz", param_entry->Value); - lv_label_set_text(objects.ui_modulation_param1_value, value_string); - } - } break; - - case TONEX_PARAM_MODULATION_PHASER_DEPTH: - { - if (param_ptr[TONEX_PARAM_MODULATION_MODEL].Value == TONEX_MODULATION_PHASER) - { - lv_slider_set_range(objects.ui_modulation_param2_slider, round(param_entry->Min), round(param_entry->Max)); - lv_slider_set_value(objects.ui_modulation_param2_slider, round(param_entry->Value), LV_ANIM_OFF); - - // show value and units - sprintf(value_string, "%d%%", (int)round(param_entry->Value)); - lv_label_set_text(objects.ui_modulation_param2_value, value_string); - } - } break; - - case TONEX_PARAM_MODULATION_PHASER_LEVEL: - { - if (param_ptr[TONEX_PARAM_MODULATION_MODEL].Value == TONEX_MODULATION_PHASER) - { - lv_slider_set_range(objects.ui_modulation_param3_slider, round(param_entry->Min), round(param_entry->Max)); - lv_slider_set_value(objects.ui_modulation_param3_slider, round(param_entry->Value), LV_ANIM_OFF); - - // show value and units - sprintf(value_string, "%1.1f", param_entry->Value); - lv_label_set_text(objects.ui_modulation_param3_value, value_string); - } - } break; - - case TONEX_PARAM_MODULATION_FLANGER_SYNC: - { - if (param_ptr[TONEX_PARAM_MODULATION_MODEL].Value == TONEX_MODULATION_FLANGER) - { - if (param_entry->Value) - { - lv_obj_add_state(objects.ui_modulation_sync_switch, LV_STATE_CHECKED); - lv_obj_add_flag(objects.ui_modulation_param1_slider, LV_OBJ_FLAG_HIDDEN); - lv_obj_add_flag(objects.ui_modulation_param1_value, LV_OBJ_FLAG_HIDDEN); - lv_obj_clear_flag(objects.ui_modulation_ts_dropdown, LV_OBJ_FLAG_HIDDEN); - } - else - { - lv_obj_clear_state(objects.ui_modulation_sync_switch, LV_STATE_CHECKED); - lv_obj_clear_flag(objects.ui_modulation_param1_slider, LV_OBJ_FLAG_HIDDEN); - lv_obj_clear_flag(objects.ui_modulation_param1_value, LV_OBJ_FLAG_HIDDEN); - lv_obj_add_flag(objects.ui_modulation_ts_dropdown, LV_OBJ_FLAG_HIDDEN); - } - } - } break; - - case TONEX_PARAM_MODULATION_FLANGER_TS: - { - if (param_ptr[TONEX_PARAM_MODULATION_MODEL].Value == TONEX_MODULATION_FLANGER) - { - lv_dropdown_set_selected(objects.ui_modulation_ts_dropdown, param_entry->Value); - } - } break; - - case TONEX_PARAM_MODULATION_FLANGER_RATE: - { - if (param_ptr[TONEX_PARAM_MODULATION_MODEL].Value == TONEX_MODULATION_FLANGER) - { - lv_slider_set_range(objects.ui_modulation_param1_slider, round(param_entry->Min), round(param_entry->Max)); - lv_slider_set_value(objects.ui_modulation_param1_slider, round(param_entry->Value), LV_ANIM_OFF); - - // show value and units - sprintf(value_string, "%1.1f Hz", param_entry->Value); - lv_label_set_text(objects.ui_modulation_param1_value, value_string); - } - } break; - - case TONEX_PARAM_MODULATION_FLANGER_DEPTH: - { - if (param_ptr[TONEX_PARAM_MODULATION_MODEL].Value == TONEX_MODULATION_FLANGER) - { - lv_slider_set_range(objects.ui_modulation_param2_slider, round(param_entry->Min), round(param_entry->Max)); - lv_slider_set_value(objects.ui_modulation_param2_slider, round(param_entry->Value), LV_ANIM_OFF); - - // show value and units - sprintf(value_string, "%d%%", (int)round(param_entry->Value)); - lv_label_set_text(objects.ui_modulation_param2_value, value_string); - } - } break; - - case TONEX_PARAM_MODULATION_FLANGER_FEEDBACK: - { - if (param_ptr[TONEX_PARAM_MODULATION_MODEL].Value == TONEX_MODULATION_FLANGER) - { - lv_slider_set_range(objects.ui_modulation_param3_slider, round(param_entry->Min), round(param_entry->Max)); - lv_slider_set_value(objects.ui_modulation_param3_slider, round(param_entry->Value), LV_ANIM_OFF); - - // show value and units - sprintf(value_string, "%d%%", (int)round(param_entry->Value)); - lv_label_set_text(objects.ui_modulation_param3_value, value_string); - } - } break; - - case TONEX_PARAM_MODULATION_FLANGER_LEVEL: - { - if (param_ptr[TONEX_PARAM_MODULATION_MODEL].Value == TONEX_MODULATION_FLANGER) - { - lv_slider_set_range(objects.ui_modulation_param4_slider, round(param_entry->Min), round(param_entry->Max)); - lv_slider_set_value(objects.ui_modulation_param4_slider, round(param_entry->Value), LV_ANIM_OFF); - - // show value and units - sprintf(value_string, "%1.1f", param_entry->Value); - lv_label_set_text(objects.ui_modulation_param4_value, value_string); - } - } break; - - case TONEX_PARAM_MODULATION_ROTARY_SYNC: - { - if (param_ptr[TONEX_PARAM_MODULATION_MODEL].Value == TONEX_MODULATION_ROTARY) - { - if (param_entry->Value) - { - lv_obj_add_state(objects.ui_modulation_sync_switch, LV_STATE_CHECKED); - lv_obj_add_flag(objects.ui_modulation_param1_slider, LV_OBJ_FLAG_HIDDEN); - lv_obj_add_flag(objects.ui_modulation_param1_value, LV_OBJ_FLAG_HIDDEN); - lv_obj_clear_flag(objects.ui_modulation_ts_dropdown, LV_OBJ_FLAG_HIDDEN); - } - else - { - lv_obj_clear_state(objects.ui_modulation_sync_switch, LV_STATE_CHECKED); - lv_obj_clear_flag(objects.ui_modulation_param1_slider, LV_OBJ_FLAG_HIDDEN); - lv_obj_clear_flag(objects.ui_modulation_param1_value, LV_OBJ_FLAG_HIDDEN); - lv_obj_add_flag(objects.ui_modulation_ts_dropdown, LV_OBJ_FLAG_HIDDEN); - } - } - } break; - - case TONEX_PARAM_MODULATION_ROTARY_TS: - { - if (param_ptr[TONEX_PARAM_MODULATION_MODEL].Value == TONEX_MODULATION_ROTARY) - { - lv_dropdown_set_selected(objects.ui_modulation_ts_dropdown, param_entry->Value); - } - } break; - - case TONEX_PARAM_MODULATION_ROTARY_SPEED: - { - if (param_ptr[TONEX_PARAM_MODULATION_MODEL].Value == TONEX_MODULATION_ROTARY) - { - lv_slider_set_range(objects.ui_modulation_param1_slider, round(param_entry->Min), round(param_entry->Max)); - lv_slider_set_value(objects.ui_modulation_param1_slider, round(param_entry->Value), LV_ANIM_OFF); - - // show value and units - sprintf(value_string, "%d RPM", (int)round(param_entry->Value)); - lv_label_set_text(objects.ui_modulation_param1_value, value_string); - } - } break; - - case TONEX_PARAM_MODULATION_ROTARY_RADIUS: - { - if (param_ptr[TONEX_PARAM_MODULATION_MODEL].Value == TONEX_MODULATION_ROTARY) - { - lv_slider_set_range(objects.ui_modulation_param2_slider, round(param_entry->Min), round(param_entry->Max)); - lv_slider_set_value(objects.ui_modulation_param2_slider, round(param_entry->Value), LV_ANIM_OFF); - - // show value and units - sprintf(value_string, "%d mm", (int)round(param_entry->Value)); - lv_label_set_text(objects.ui_modulation_param2_value, value_string); - } - } break; - - case TONEX_PARAM_MODULATION_ROTARY_SPREAD: - { - if (param_ptr[TONEX_PARAM_MODULATION_MODEL].Value == TONEX_MODULATION_ROTARY) - { - lv_slider_set_range(objects.ui_modulation_param3_slider, round(param_entry->Min), round(param_entry->Max)); - lv_slider_set_value(objects.ui_modulation_param3_slider, round(param_entry->Value), LV_ANIM_OFF); - - // show value and units - sprintf(value_string, "%d%%", (int)round(param_entry->Value)); - lv_label_set_text(objects.ui_modulation_param3_value, value_string); - } - } break; - - case TONEX_PARAM_MODULATION_ROTARY_LEVEL: - { - if (param_ptr[TONEX_PARAM_MODULATION_MODEL].Value == TONEX_MODULATION_ROTARY) - { - lv_slider_set_range(objects.ui_modulation_param4_slider, round(param_entry->Min), round(param_entry->Max)); - lv_slider_set_value(objects.ui_modulation_param4_slider, round(param_entry->Value), LV_ANIM_OFF); - - // show value and units - sprintf(value_string, "%1.1f", param_entry->Value); - lv_label_set_text(objects.ui_modulation_param4_value, value_string); - } - } break; - - case TONEX_PARAM_DELAY_POST: - { - if (param_entry->Value) - { - lv_obj_add_state(objects.ui_delay_post_switch, LV_STATE_CHECKED); - } - else - { - lv_obj_clear_state(objects.ui_delay_post_switch, LV_STATE_CHECKED); - } - updateIconOrder(); - } break; - - case TONEX_PARAM_DELAY_ENABLE: - { - if (param_entry->Value) - { - lv_obj_add_state(objects.ui_delay_enable_switch, LV_STATE_CHECKED); - - // show enabled icon with letter to indicate the type - switch ((int)param_ptr[TONEX_PARAM_DELAY_MODEL].Value) - { - case TONEX_DELAY_DIGITAL: - { - lv_img_set_src(objects.ui_icon_delay, (lv_obj_t*)&img_effect_icon_delay_on_d); - } break; - - case TONEX_DELAY_TAPE: - default: - { - lv_img_set_src(objects.ui_icon_delay, (lv_obj_t*)&img_effect_icon_delay_on_t); - } break; - } - } - else - { - lv_obj_clear_state(objects.ui_delay_enable_switch, LV_STATE_CHECKED); - lv_img_set_src(objects.ui_icon_delay, (lv_obj_t*)&img_effect_icon_delay_off); - } - } break; - - case TONEX_PARAM_DELAY_MODEL: - { - lv_dropdown_set_selected(objects.ui_delay_model_dropdown, param_entry->Value); - } break; - - case TONEX_PARAM_DELAY_DIGITAL_SYNC: - { - if (param_ptr[TONEX_PARAM_DELAY_MODEL].Value == TONEX_DELAY_DIGITAL) - { - if (param_entry->Value) - { - lv_obj_add_state(objects.ui_delay_sync_switch, LV_STATE_CHECKED); - lv_obj_add_flag(objects.ui_delay_ts_slider, LV_OBJ_FLAG_HIDDEN); - lv_obj_add_flag(objects.ui_delay_ts_value, LV_OBJ_FLAG_HIDDEN); - lv_obj_clear_flag(objects.ui_delay_ts_dropdown, LV_OBJ_FLAG_HIDDEN); - } - else - { - lv_obj_clear_state(objects.ui_delay_sync_switch, LV_STATE_CHECKED); - lv_obj_clear_flag(objects.ui_delay_ts_slider, LV_OBJ_FLAG_HIDDEN); - lv_obj_clear_flag(objects.ui_delay_ts_value, LV_OBJ_FLAG_HIDDEN); - lv_obj_add_flag(objects.ui_delay_ts_dropdown, LV_OBJ_FLAG_HIDDEN); - } - } - } break; - - case TONEX_PARAM_DELAY_DIGITAL_TS: - { - if (param_ptr[TONEX_PARAM_DELAY_MODEL].Value == TONEX_DELAY_DIGITAL) - { - lv_dropdown_set_selected(objects.ui_delay_ts_dropdown, param_entry->Value); - } - } break; - - case TONEX_PARAM_DELAY_DIGITAL_TIME: - { - if (param_ptr[TONEX_PARAM_DELAY_MODEL].Value == TONEX_DELAY_DIGITAL) - { - lv_slider_set_range(objects.ui_delay_ts_slider, round(param_entry->Min), round(param_entry->Max)); - lv_slider_set_value(objects.ui_delay_ts_slider, round(param_entry->Value), LV_ANIM_OFF); - - // show value and units - sprintf(value_string, "%d ms", (int)round(param_entry->Value)); - lv_label_set_text(objects.ui_delay_ts_value, value_string); - } - } break; - - case TONEX_PARAM_DELAY_DIGITAL_FEEDBACK: - { - if (param_ptr[TONEX_PARAM_DELAY_MODEL].Value == TONEX_DELAY_DIGITAL) - { - lv_slider_set_range(objects.ui_delay_feedback_slider, round(param_entry->Min), round(param_entry->Max)); - lv_slider_set_value(objects.ui_delay_feedback_slider, round(param_entry->Value), LV_ANIM_OFF); - - // show value and units - sprintf(value_string, "%d%%", (int)round(param_entry->Value)); - lv_label_set_text(objects.ui_delay_feedback_value, value_string); - } - } break; - - case TONEX_PARAM_DELAY_DIGITAL_MODE: - { - if (param_ptr[TONEX_PARAM_DELAY_MODEL].Value == TONEX_DELAY_DIGITAL) - { - if (param_entry->Value) - { - lv_obj_add_state(objects.ui_delay_ping_pong_switch, LV_STATE_CHECKED); - } - else - { - lv_obj_clear_state(objects.ui_delay_ping_pong_switch, LV_STATE_CHECKED); - } - } - } break; - - case TONEX_PARAM_DELAY_DIGITAL_MIX: - { - if (param_ptr[TONEX_PARAM_DELAY_MODEL].Value == TONEX_DELAY_DIGITAL) - { - lv_slider_set_range(objects.ui_delay_mix_slider, round(param_entry->Min), round(param_entry->Max)); - lv_slider_set_value(objects.ui_delay_mix_slider, round(param_entry->Value), LV_ANIM_OFF); - - // show value and units - sprintf(value_string, "%d%%", (int)round(param_entry->Value)); - lv_label_set_text(objects.ui_delay_mix_value, value_string); - } - } break; - - case TONEX_PARAM_DELAY_TAPE_SYNC: - { - if (param_ptr[TONEX_PARAM_DELAY_MODEL].Value == TONEX_DELAY_TAPE) - { - if (param_entry->Value) - { - lv_obj_add_state(objects.ui_delay_sync_switch, LV_STATE_CHECKED); - lv_obj_add_flag(objects.ui_delay_ts_slider, LV_OBJ_FLAG_HIDDEN); - lv_obj_add_flag(objects.ui_delay_ts_value, LV_OBJ_FLAG_HIDDEN); - lv_obj_clear_flag(objects.ui_delay_ts_dropdown, LV_OBJ_FLAG_HIDDEN); - } - else - { - lv_obj_clear_state(objects.ui_delay_sync_switch, LV_STATE_CHECKED); - lv_obj_clear_flag(objects.ui_delay_ts_slider, LV_OBJ_FLAG_HIDDEN); - lv_obj_clear_flag(objects.ui_delay_ts_value, LV_OBJ_FLAG_HIDDEN); - lv_obj_add_flag(objects.ui_delay_ts_dropdown, LV_OBJ_FLAG_HIDDEN); - } - } - } break; - - case TONEX_PARAM_DELAY_TAPE_TS: - { - if (param_ptr[TONEX_PARAM_DELAY_MODEL].Value == TONEX_DELAY_TAPE) - { - lv_dropdown_set_selected(objects.ui_delay_ts_dropdown, param_entry->Value); - } - } break; - - case TONEX_PARAM_DELAY_TAPE_TIME: - { - if (param_ptr[TONEX_PARAM_DELAY_MODEL].Value == TONEX_DELAY_TAPE) - { - lv_slider_set_range(objects.ui_delay_ts_slider, round(param_entry->Min), round(param_entry->Max)); - lv_slider_set_value(objects.ui_delay_ts_slider, round(param_entry->Value), LV_ANIM_OFF); - - // show value and units - sprintf(value_string, "%d ms", (int)round(param_entry->Value)); - lv_label_set_text(objects.ui_delay_ts_value, value_string); - } - } break; - - case TONEX_PARAM_DELAY_TAPE_FEEDBACK: - { - if (param_ptr[TONEX_PARAM_DELAY_MODEL].Value == TONEX_DELAY_TAPE) - { - lv_slider_set_range(objects.ui_delay_feedback_slider, round(param_entry->Min), round(param_entry->Max)); - lv_slider_set_value(objects.ui_delay_feedback_slider, round(param_entry->Value), LV_ANIM_OFF); - - // show value and units - sprintf(value_string, "%d%%", (int)round(param_entry->Value)); - lv_label_set_text(objects.ui_delay_feedback_value, value_string); - } - } break; - - case TONEX_PARAM_DELAY_TAPE_MODE: - { - if (param_ptr[TONEX_PARAM_DELAY_MODEL].Value == TONEX_DELAY_TAPE) - { - if (param_entry->Value) - { - lv_obj_add_state(objects.ui_delay_ping_pong_switch, LV_STATE_CHECKED); - } - else - { - lv_obj_clear_state(objects.ui_delay_ping_pong_switch, LV_STATE_CHECKED); - } - } - } break; - - case TONEX_PARAM_DELAY_TAPE_MIX: - { - if (param_ptr[TONEX_PARAM_DELAY_MODEL].Value == TONEX_DELAY_TAPE) - { - lv_slider_set_range(objects.ui_delay_mix_slider, round(param_entry->Min), round(param_entry->Max)); - lv_slider_set_value(objects.ui_delay_mix_slider, round(param_entry->Value), LV_ANIM_OFF); - - // show value and units - sprintf(value_string, "%d%%", (int)round(param_entry->Value)); - lv_label_set_text(objects.ui_delay_mix_value, value_string); - } - } break; - - case TONEX_GLOBAL_CABSIM_BYPASS: - { - if (param_entry->Value) - { - lv_obj_add_state(objects.ui_cab_bypass_switch, LV_STATE_CHECKED); - } - else - { - lv_obj_clear_state(objects.ui_cab_bypass_switch, LV_STATE_CHECKED); - } - } break; - - case TONEX_GLOBAL_TEMPO_SOURCE: - { - if (param_entry->Value) - { - lv_obj_add_state(objects.ui_tempo_source_switch, LV_STATE_CHECKED); - } - else - { - lv_obj_clear_state(objects.ui_tempo_source_switch, LV_STATE_CHECKED); - } - } break; - - case TONEX_GLOBAL_BPM: - { - lv_slider_set_range(objects.ui_bpm_slider, round(param_entry->Min), round(param_entry->Max)); - lv_slider_set_value(objects.ui_bpm_slider, round(param_entry->Value), LV_ANIM_OFF); - - // show value and units - sprintf(value_string, "%1.1f", param_entry->Value); - lv_label_set_text(objects.ui_bpm_value, value_string); - - char buf[128]; - sprintf(buf, "%.1f", param_entry->Value); - lv_label_set_text(objects.ui_bpm_value_label, buf); - -#if CONFIG_TONEX_CONTROLLER_SHOW_BPM_INDICATOR - ui_BPMAnimate(objects.ui_bpm_indicator, 1000 * 60 / param_entry->Value); -#endif - } break; - - case TONEX_GLOBAL_INPUT_TRIM: - { - lv_slider_set_range(objects.ui_input_trim_slider, round(param_entry->Min), round(param_entry->Max)); - lv_slider_set_value(objects.ui_input_trim_slider, round(param_entry->Value), LV_ANIM_OFF); - - // show value and units - sprintf(value_string, "%1.1f db", param_entry->Value); - lv_label_set_text(objects.ui_input_trim_value, value_string); - } break; - - case TONEX_GLOBAL_TUNING_REFERENCE: - { - lv_slider_set_range(objects.ui_tuning_reference_slider, round(param_entry->Min), round(param_entry->Max)); - lv_slider_set_value(objects.ui_tuning_reference_slider, round(param_entry->Value), LV_ANIM_OFF); - - // show value and units - sprintf(value_string, "%d Hz", (int)round(param_entry->Value)); - lv_label_set_text(objects.ui_tuning_reference_value, value_string); - } break; - - case TONEX_GLOBAL_MASTER_VOLUME: - { - lv_slider_set_range(objects.ui_volume_slider, round(param_entry->Min), round(param_entry->Max)); - lv_slider_set_value(objects.ui_volume_slider, round(param_entry->Value), LV_ANIM_OFF); - - // show value and units - sprintf(value_string, "%1.1f db", param_entry->Value); - lv_label_set_text(objects.ui_volume_value, value_string); - } break; - } - - tonex_params_release_locked_access(); - } - } -#endif - -#if CONFIG_TONEX_CONTROLLER_HARDWARE_PLATFORM_WAVESHARE_169 \ - || CONFIG_TONEX_CONTROLLER_HARDWARE_PLATFORM_WAVESHARE_169TOUCH \ - || CONFIG_TONEX_CONTROLLER_HARDWARE_PLATFORM_M5ATOMS3R \ - || CONFIG_TONEX_CONTROLLER_HARDWARE_PLATFORM_LILYGO_TDISPLAY_S3 \ - || CONFIG_TONEX_CONTROLLER_HARDWARE_PLATFORM_WAVESHARE_19TOUCH - ESP_LOGI(TAG, "Syncing params to UI"); - - tModellerParameter* param_ptr; - - for (uint16_t param = 0; param < TONEX_GLOBAL_LAST; param++) - { - if (tonex_params_get_locked_access(¶m_ptr) == ESP_OK) + case AMP_MODELLER_VALETON_GP5: { - tModellerParameter* param_entry = ¶m_ptr[param]; - - // debug - //ESP_LOGI(TAG, "Param %d: val: %02f, min: %02f, max: %02f", param, param_entry->Value, param_entry->Min, param_entry->Max); - - switch (param) - { - case TONEX_GLOBAL_BPM: - { - char buf[128]; - sprintf(buf, "%d", (int)round(param_entry->Value)); - lv_label_set_text(objects.ui_bpm, buf); - } break; - - case TONEX_PARAM_COMP_ENABLE: - { - if (param_entry->Value) - { - lv_obj_set_style_border_color(objects.ui_cstatus, lv_color_hex(0xDDDD00), LV_PART_MAIN | LV_STATE_DEFAULT); - } - else - { - lv_obj_set_style_border_color(objects.ui_cstatus, lv_color_hex(0x563F2A), LV_PART_MAIN | LV_STATE_DEFAULT); - } - } break; - - case TONEX_PARAM_MODULATION_ENABLE: - { - if (param_entry->Value) - { - lv_obj_set_style_border_color(objects.ui_mstatus, lv_color_hex(0xEEAA00), LV_PART_MAIN | LV_STATE_DEFAULT); - } - else - { - lv_obj_set_style_border_color(objects.ui_mstatus, lv_color_hex(0x563F2A), LV_PART_MAIN | LV_STATE_DEFAULT); - } - } break; - - case TONEX_PARAM_DELAY_ENABLE: - { - if (param_entry->Value) - { - lv_obj_set_style_border_color(objects.ui_dstatus, lv_color_hex(0x00CC00), LV_PART_MAIN | LV_STATE_DEFAULT); - } - else - { - lv_obj_set_style_border_color(objects.ui_dstatus, lv_color_hex(0x563F2A), LV_PART_MAIN | LV_STATE_DEFAULT); - } - } break; - - case TONEX_PARAM_REVERB_ENABLE: - { - if (param_entry->Value) - { - lv_obj_set_style_border_color(objects.ui_rstatus, lv_color_hex(0x33FFFF), LV_PART_MAIN | LV_STATE_DEFAULT); - } - else - { - lv_obj_set_style_border_color(objects.ui_rstatus, lv_color_hex(0x563F2A), LV_PART_MAIN | LV_STATE_DEFAULT); - } - } break; - - } - - tonex_params_release_locked_access(); - } + valeton_update_ui_parameters(); + } break; } -#endif + +#if CONFIG_TONEX_CONTROLLER_DISPLAY_FULL_UI + updateIconOrder(); +#endif } break; case UI_ELEMENT_TOAST: @@ -3764,7 +1459,7 @@ void display_task(void *arg) tUIUpdate ui_update; ESP_LOGI(TAG, "Display task start"); - + while (1) { // Lock the mutex due to the LVGL APIs are not thread-safe diff --git a/source/main/display.h b/source/main/display.h index 72552e64..c18b2467 100644 --- a/source/main/display.h +++ b/source/main/display.h @@ -41,6 +41,7 @@ void display_lvgl_touch_cb(lv_indev_drv_t * drv, lv_indev_data_t * data); void display_lvgl_flush_cb(lv_disp_drv_t *drv, const lv_area_t *area, lv_color_t *color_map); bool display_notify_lvgl_flush_ready(esp_lcd_panel_io_handle_t panel_io, esp_lcd_panel_io_event_data_t *edata, void *user_ctx); bool display_on_vsync_event(esp_lcd_panel_handle_t panel, const esp_lcd_rgb_panel_event_data_t *event_data, void *user_data); +void ui_BPMAnimate(lv_obj_t *target_obj, uint32_t duration); // thread-safe API for other tasks to update the UI void UI_SetUSBStatus(uint8_t state); diff --git a/source/main/display_tonex.c b/source/main/display_tonex.c new file mode 100644 index 00000000..5eed1798 --- /dev/null +++ b/source/main/display_tonex.c @@ -0,0 +1,2537 @@ +/* + Copyright (C) 2025 Greg Smith + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + +*/ + +#include +#include "sdkconfig.h" +#include +#include "freertos/FreeRTOS.h" +#include "freertos/task.h" +#include "freertos/semphr.h" +#include "esp_timer.h" +#include "esp_lcd_panel_ops.h" +#include "esp_lcd_panel_rgb.h" +#include "driver/gpio.h" +#include "esp_err.h" +#include "esp_system.h" +#include "esp_wifi.h" +#include "esp_event.h" +#include "esp_log.h" +#include "nvs_flash.h" +#include "driver/uart.h" +#include "driver/gpio.h" +#include "driver/spi_master.h" +#include "lvgl.h" +#include "demos/lv_demos.h" +#include "esp_lcd_panel_io.h" +#include "esp_lcd_panel_vendor.h" +#include "esp_lcd_panel_ops.h" +#include "esp_vfs.h" +#include "esp_vfs_fat.h" +#include "esp_ota_ops.h" +#include "sys/param.h" +#include "esp_wifi.h" +#include "esp_log.h" +#include "esp_mac.h" +#include "esp_crc.h" +#include "esp_now.h" +#include "driver/i2c.h" +#include "soc/lldesc.h" +#include "esp_lcd_touch_gt911.h" +#include "esp_lcd_touch_cst816s.h" +#include "esp_lcd_gc9107.h" +#include "esp_lcd_sh8601.h" +#include "esp_intr_alloc.h" +#include "main.h" +#if CONFIG_TONEX_CONTROLLER_HAS_DISPLAY + #include "ui.h" + #include "images.h" + #include "actions.h" +#endif +#include "usb/usb_host.h" +#include "usb/cdc_acm_host.h" +#include "esp_partition.h" +#include "usb_comms.h" +#include "usb_tonex_common.h" +#include "usb_tonex_one.h" +#include "usb_tonex.h" +#include "display.h" +#include "display_tonex.h" +#include "CH422G.h" +#include "control.h" +#include "task_priorities.h" +#include "midi_control.h" +#include "LP5562.h" +#include "tonex_params.h" +#include "platform_common.h" + +static const char __attribute__((unused)) *TAG = "app_display_tonex"; + +/**************************************************************************** +* NAME: +* DESCRIPTION: +* PARAMETERS: +* RETURN: +* NOTES: +*****************************************************************************/ +void tonex_show_settings_tab(lv_event_t * e) +{ +#if CONFIG_TONEX_CONTROLLER_DISPLAY_FULL_UI + lv_obj_t* target = lv_event_get_current_target(e); + + if (target == objects.ui_icon_eq) + { + // show EQ settings + lv_tabview_set_act(objects.ui_settings_tab_view, CONFIG_TAB_EQ, LV_ANIM_OFF); + } + else if (target == objects.ui_icon_gate) + { + // show gate settings + lv_tabview_set_act(objects.ui_settings_tab_view, CONFIG_TAB_GATE, LV_ANIM_OFF); + } + else if ((target == objects.ui_icon_amp) || (target == objects.ui_icon_cab)) + { + // show amp settings + lv_tabview_set_act(objects.ui_settings_tab_view, CONFIG_TAB_AMPLIFIER, LV_ANIM_OFF); + } + else if (target == objects.ui_icon_comp) + { + // show comnpressor settings + lv_tabview_set_act(objects.ui_settings_tab_view, CONFIG_TAB_COMPRESSOR, LV_ANIM_OFF); + } + else if (target == objects.ui_icon_mod) + { + // show modulation settings + lv_tabview_set_act(objects.ui_settings_tab_view, CONFIG_TAB_MODULATION, LV_ANIM_OFF); + } + else if (target == objects.ui_icon_delay) + { + // show delay settings + lv_tabview_set_act(objects.ui_settings_tab_view, CONFIG_TAB_DELAY, LV_ANIM_OFF); + } + else if (target == objects.ui_icon_reverb) + { + // show reverb settings + lv_tabview_set_act(objects.ui_settings_tab_view, CONFIG_TAB_REVERB, LV_ANIM_OFF); + } +#endif //CONFIG_TONEX_CONTROLLER_DISPLAY_FULL_UI +} + +/**************************************************************************** +* NAME: +* DESCRIPTION: +* PARAMETERS: +* RETURN: +* NOTES: +*****************************************************************************/ +void tonex_action_effect_icon_clicked(lv_event_t * e) +{ +#if CONFIG_TONEX_CONTROLLER_DISPLAY_FULL_UI + tModellerParameter* param_ptr; + float value; + lv_event_code_t event_code = lv_event_get_code(e); + lv_obj_t* event_object = lv_event_get_target(e); + + // called from LVGL + ESP_LOGI(TAG, "action_effect_icon_clicked"); + + if (event_code == LV_EVENT_SHORT_CLICKED) + { + if (event_object == objects.ui_icon_reverb) + { + ESP_LOGI(TAG, "UI Toggle reverb"); + + tonex_params_get_locked_access(¶m_ptr); + if (param_ptr[TONEX_PARAM_REVERB_ENABLE].Value == 0.0f) + { + value = 1.0f; + } + else + { + value = 0.0f; + } + tonex_params_release_locked_access(); + + usb_modify_parameter(TONEX_PARAM_REVERB_ENABLE, value); + } + else if (event_object == objects.ui_icon_delay) + { + ESP_LOGI(TAG, "UI Toggle delay"); + + tonex_params_get_locked_access(¶m_ptr); + if (param_ptr[TONEX_PARAM_DELAY_ENABLE].Value == 0.0f) + { + value = 1.0f; + } + else + { + value = 0.0f; + } + tonex_params_release_locked_access(); + + usb_modify_parameter(TONEX_PARAM_DELAY_ENABLE, value); + } + else if (event_object == objects.ui_icon_mod) + { + ESP_LOGI(TAG, "UI Toggle mod"); + + tonex_params_get_locked_access(¶m_ptr); + if (param_ptr[TONEX_PARAM_MODULATION_ENABLE].Value == 0.0f) + { + value = 1.0f; + } + else + { + value = 0.0f; + } + tonex_params_release_locked_access(); + + usb_modify_parameter(TONEX_PARAM_MODULATION_ENABLE, value); + } + else if (event_object == objects.ui_icon_comp) + { + ESP_LOGI(TAG, "UI Toggle comp"); + + tonex_params_get_locked_access(¶m_ptr); + if (param_ptr[TONEX_PARAM_COMP_ENABLE].Value == 0.0f) + { + value = 1.0f; + } + else + { + value = 0.0f; + } + tonex_params_release_locked_access(); + + usb_modify_parameter(TONEX_PARAM_COMP_ENABLE, value); + } + else if (event_object == objects.ui_icon_cab) + { + ESP_LOGI(TAG, "UI Toggle cab"); + + tonex_params_get_locked_access(¶m_ptr); + if (param_ptr[TONEX_PARAM_CABINET_TYPE].Value == TONEX_CABINET_DISABLED) + { + //todo here: this could have been a VIR cabinet + value = TONEX_CABINET_TONE_MODEL; + } + else + { + value = TONEX_CABINET_DISABLED; + } + tonex_params_release_locked_access(); + + usb_modify_parameter(TONEX_PARAM_CABINET_TYPE, value); + } + else if (event_object == objects.ui_icon_amp) + { + ESP_LOGI(TAG, "UI Toggle amp"); + + tonex_params_get_locked_access(¶m_ptr); + if (param_ptr[TONEX_PARAM_MODEL_AMP_ENABLE].Value == 0.0f) + { + value = 1.0f; + } + else + { + value = 0.0f; + } + tonex_params_release_locked_access(); + + usb_modify_parameter(TONEX_PARAM_MODEL_AMP_ENABLE, value); + } + else if (event_object == objects.ui_icon_gate) + { + ESP_LOGI(TAG, "UI Toggle gate"); + + tonex_params_get_locked_access(¶m_ptr); + if (param_ptr[TONEX_PARAM_NOISE_GATE_ENABLE].Value == 0.0f) + { + value = 1.0f; + } + else + { + value = 0.0f; + } + tonex_params_release_locked_access(); + + usb_modify_parameter(TONEX_PARAM_NOISE_GATE_ENABLE, value); + } + else if (event_object == objects.ui_icon_eq) + { + // no short press action + } + } + else if (event_code == LV_EVENT_LONG_PRESSED) + { + // change to settings page and jump to relevant tab + action_show_settings_page(e); + tonex_show_settings_tab(e); + } +#endif //CONFIG_TONEX_CONTROLLER_DISPLAY_FULL_UI +} + +/**************************************************************************** +* NAME: +* DESCRIPTION: +* PARAMETERS: +* RETURN: +* NOTES: +*****************************************************************************/ +void tonex_action_parameter_changed(lv_event_t * e) +{ +#if CONFIG_TONEX_CONTROLLER_DISPLAY_FULL_UI + // get the object that was changed + lv_obj_t* obj = lv_event_get_current_target(e); + + ESP_LOGI(TAG, "Tonex Parameter changed"); + + // see what it was, and update the pedal + if (obj == objects.ui_noise_gate_switch) + { + usb_modify_parameter(TONEX_PARAM_NOISE_GATE_ENABLE, lv_obj_has_state(obj, LV_STATE_CHECKED) ? 1 : 0); + } + else if (obj == objects.ui_noise_gate_post_switch) + { + usb_modify_parameter(TONEX_PARAM_NOISE_GATE_POST, lv_obj_has_state(obj, LV_STATE_CHECKED) ? 1 : 0); + } + else if (obj == objects.ui_noise_gate_threshold_slider) + { + usb_modify_parameter(TONEX_PARAM_NOISE_GATE_THRESHOLD, lv_slider_get_value(obj)); + } + else if (obj == objects.ui_noise_gate_release_slider) + { + usb_modify_parameter(TONEX_PARAM_NOISE_GATE_RELEASE, lv_slider_get_value(obj)); + } + else if (obj == objects.ui_noise_gate_depth_slider) + { + usb_modify_parameter(TONEX_PARAM_NOISE_GATE_DEPTH, lv_slider_get_value(obj)); + } + else if (obj == objects.ui_compressor_enable_switch) + { + usb_modify_parameter(TONEX_PARAM_COMP_ENABLE, lv_obj_has_state(obj, LV_STATE_CHECKED) ? 1 : 0); + } + else if (obj == objects.ui_compressor_post_switch) + { + usb_modify_parameter(TONEX_PARAM_COMP_POST, lv_obj_has_state(obj, LV_STATE_CHECKED) ? 1 : 0); + } + else if (obj == objects.ui_compressor_threshold_slider) + { + usb_modify_parameter(TONEX_PARAM_COMP_THRESHOLD, lv_slider_get_value(obj)); + } + else if (obj == objects.ui_compressor_attack_slider) + { + usb_modify_parameter(TONEX_PARAM_COMP_ATTACK, lv_slider_get_value(obj)); + } + else if (obj == objects.ui_compressor_gain_slider) + { + usb_modify_parameter(TONEX_PARAM_COMP_MAKE_UP, lv_slider_get_value(obj)); + } + else if (obj == objects.ui_eq_post_switch) + { + usb_modify_parameter(TONEX_PARAM_EQ_POST, lv_obj_has_state(obj, LV_STATE_CHECKED) ? 1 : 0); + } + else if (obj == objects.ui_eq_bass_slider) + { + usb_modify_parameter(TONEX_PARAM_EQ_BASS, ((float)lv_slider_get_value(obj))/10.0f); + } + else if (obj == objects.ui_eq_mid_slider) + { + usb_modify_parameter(TONEX_PARAM_EQ_MID, ((float)lv_slider_get_value(obj))/10.0f); + } + else if (obj == objects.ui_eq_mid_qslider) + { + usb_modify_parameter(TONEX_PARAM_EQ_MIDQ, ((float)lv_slider_get_value(obj))/10.0f); + } + else if (obj == objects.ui_eq_treble_slider) + { + usb_modify_parameter(TONEX_PARAM_EQ_TREBLE, ((float)lv_slider_get_value(obj))/10.0f); + } + else if (obj == objects.ui_reverb_enable_switch) + { + usb_modify_parameter(TONEX_PARAM_REVERB_ENABLE, lv_obj_has_state(obj, LV_STATE_CHECKED) ? 1 : 0); + } + else if (obj == objects.ui_reverb_post_switch) + { + usb_modify_parameter(TONEX_PARAM_REVERB_POSITION, lv_obj_has_state(obj, LV_STATE_CHECKED) ? 1 : 0); + } + else if (obj == objects.ui_reverb_model_dropdown) + { + usb_modify_parameter(TONEX_PARAM_REVERB_MODEL, lv_dropdown_get_selected(obj)); + } + else if (obj == objects.ui_reverb_mix_slider) + { + // check which model is set + switch (lv_dropdown_get_selected(objects.ui_reverb_model_dropdown)) + { + case TONEX_REVERB_SPRING_1: + { + usb_modify_parameter(TONEX_PARAM_REVERB_SPRING1_MIX, lv_slider_get_value(obj)); + } break; + + case TONEX_REVERB_SPRING_2: + { + usb_modify_parameter(TONEX_PARAM_REVERB_SPRING2_MIX, lv_slider_get_value(obj)); + } break; + + case TONEX_REVERB_SPRING_3: + { + usb_modify_parameter(TONEX_PARAM_REVERB_SPRING3_MIX, lv_slider_get_value(obj)); + } break; + + case TONEX_REVERB_SPRING_4: + { + usb_modify_parameter(TONEX_PARAM_REVERB_SPRING4_MIX, lv_slider_get_value(obj)); + } break; + + case TONEX_REVERB_ROOM: + { + usb_modify_parameter(TONEX_PARAM_REVERB_ROOM_MIX, lv_slider_get_value(obj)); + } break; + + case TONEX_REVERB_PLATE: + { + usb_modify_parameter(TONEX_PARAM_REVERB_PLATE_MIX, lv_slider_get_value(obj)); + } break; + } + } + else if (obj == objects.ui_reverb_time_slider) + { + // check which model is set + switch (lv_dropdown_get_selected(objects.ui_reverb_model_dropdown)) + { + case TONEX_REVERB_SPRING_1: + { + usb_modify_parameter(TONEX_PARAM_REVERB_SPRING1_TIME, lv_slider_get_value(obj)); + } break; + + case TONEX_REVERB_SPRING_2: + { + usb_modify_parameter(TONEX_PARAM_REVERB_SPRING2_TIME, lv_slider_get_value(obj)); + } break; + + case TONEX_REVERB_SPRING_3: + { + usb_modify_parameter(TONEX_PARAM_REVERB_SPRING3_TIME, lv_slider_get_value(obj)); + } break; + + case TONEX_REVERB_SPRING_4: + { + usb_modify_parameter(TONEX_PARAM_REVERB_SPRING4_TIME, lv_slider_get_value(obj)); + } break; + + case TONEX_REVERB_ROOM: + { + usb_modify_parameter(TONEX_PARAM_REVERB_ROOM_TIME, lv_slider_get_value(obj)); + } break; + + case TONEX_REVERB_PLATE: + { + usb_modify_parameter(TONEX_PARAM_REVERB_PLATE_TIME, lv_slider_get_value(obj)); + } break; + } + } + else if (obj == objects.ui_reverb_predelay_slider) + { + // check which model is set + switch (lv_dropdown_get_selected(objects.ui_reverb_model_dropdown)) + { + case TONEX_REVERB_SPRING_1: + { + usb_modify_parameter(TONEX_PARAM_REVERB_SPRING1_PREDELAY, lv_slider_get_value(obj)); + } break; + + case TONEX_REVERB_SPRING_2: + { + usb_modify_parameter(TONEX_PARAM_REVERB_SPRING2_PREDELAY, lv_slider_get_value(obj)); + } break; + + case TONEX_REVERB_SPRING_3: + { + usb_modify_parameter(TONEX_PARAM_REVERB_SPRING3_PREDELAY, lv_slider_get_value(obj)); + } break; + + case TONEX_REVERB_SPRING_4: + { + usb_modify_parameter(TONEX_PARAM_REVERB_SPRING4_PREDELAY, lv_slider_get_value(obj)); + } break; + + case TONEX_REVERB_ROOM: + { + usb_modify_parameter(TONEX_PARAM_REVERB_ROOM_PREDELAY, lv_slider_get_value(obj)); + } break; + + case TONEX_REVERB_PLATE: + { + usb_modify_parameter(TONEX_PARAM_REVERB_PLATE_PREDELAY, lv_slider_get_value(obj)); + } break; + } + } + else if (obj == objects.ui_reverb_color_slider) + { + // check which model is set + switch (lv_dropdown_get_selected(objects.ui_reverb_model_dropdown)) + { + case TONEX_REVERB_SPRING_1: + { + usb_modify_parameter(TONEX_PARAM_REVERB_SPRING1_COLOR, lv_slider_get_value(obj)); + } break; + + case TONEX_REVERB_SPRING_2: + { + usb_modify_parameter(TONEX_PARAM_REVERB_SPRING2_COLOR, lv_slider_get_value(obj)); + } break; + + case TONEX_REVERB_SPRING_3: + { + usb_modify_parameter(TONEX_PARAM_REVERB_SPRING3_COLOR, lv_slider_get_value(obj)); + } break; + + case TONEX_REVERB_SPRING_4: + { + usb_modify_parameter(TONEX_PARAM_REVERB_SPRING4_COLOR, lv_slider_get_value(obj)); + } break; + + case TONEX_REVERB_ROOM: + { + usb_modify_parameter(TONEX_PARAM_REVERB_ROOM_COLOR, lv_slider_get_value(obj)); + } break; + + case TONEX_REVERB_PLATE: + { + usb_modify_parameter(TONEX_PARAM_REVERB_PLATE_COLOR, lv_slider_get_value(obj)); + } break; + } + } + else if (obj == objects.ui_modulation_enable_switch) + { + usb_modify_parameter(TONEX_PARAM_MODULATION_ENABLE, lv_obj_has_state(obj, LV_STATE_CHECKED) ? 1 : 0); + } + else if (obj == objects.ui_modulation_post_switch) + { + usb_modify_parameter(TONEX_PARAM_MODULATION_POST, lv_obj_has_state(obj, LV_STATE_CHECKED) ? 1 : 0); + } + else if (obj == objects.ui_modulation_model_dropdown) + { + usb_modify_parameter(TONEX_PARAM_MODULATION_MODEL, lv_dropdown_get_selected(obj)); + } + else if (obj == objects.ui_modulation_sync_switch) + { + // check which model is set + switch (lv_dropdown_get_selected(objects.ui_modulation_model_dropdown)) + { + case TONEX_MODULATION_CHORUS: + { + usb_modify_parameter(TONEX_PARAM_MODULATION_CHORUS_SYNC, lv_obj_has_state(obj, LV_STATE_CHECKED) ? 1 : 0); + } break; + + case TONEX_MODULATION_TREMOLO: + { + usb_modify_parameter(TONEX_PARAM_MODULATION_TREMOLO_SYNC, lv_obj_has_state(obj, LV_STATE_CHECKED) ? 1 : 0); + } break; + + case TONEX_MODULATION_PHASER: + { + usb_modify_parameter(TONEX_PARAM_MODULATION_PHASER_SYNC, lv_obj_has_state(obj, LV_STATE_CHECKED) ? 1 : 0); + } break; + + case TONEX_MODULATION_FLANGER: + { + usb_modify_parameter(TONEX_PARAM_MODULATION_FLANGER_SYNC, lv_obj_has_state(obj, LV_STATE_CHECKED) ? 1 : 0); + } break; + + case TONEX_MODULATION_ROTARY: + { + usb_modify_parameter(TONEX_PARAM_MODULATION_ROTARY_SYNC, lv_obj_has_state(obj, LV_STATE_CHECKED) ? 1 : 0); + } break; + } + } + else if (obj == objects.ui_modulation_ts_dropdown) + { + switch (lv_dropdown_get_selected(objects.ui_modulation_model_dropdown)) + { + case TONEX_MODULATION_CHORUS: + { + usb_modify_parameter(TONEX_PARAM_MODULATION_CHORUS_TS, lv_dropdown_get_selected(obj)); + } break; + + case TONEX_MODULATION_TREMOLO: + { + usb_modify_parameter(TONEX_PARAM_MODULATION_TREMOLO_TS, lv_dropdown_get_selected(obj)); + } break; + + case TONEX_MODULATION_PHASER: + { + usb_modify_parameter(TONEX_PARAM_MODULATION_PHASER_TS, lv_dropdown_get_selected(obj)); + } break; + + case TONEX_MODULATION_FLANGER: + { + usb_modify_parameter(TONEX_PARAM_MODULATION_FLANGER_TS, lv_dropdown_get_selected(obj)); + } break; + + case TONEX_MODULATION_ROTARY: + { + usb_modify_parameter(TONEX_PARAM_MODULATION_ROTARY_TS, lv_dropdown_get_selected(obj)); + } break; + } + } + else if (obj == objects.ui_modulation_param1_slider) + { + // check which model is set + switch (lv_dropdown_get_selected(objects.ui_modulation_model_dropdown)) + { + case TONEX_MODULATION_CHORUS: + { + usb_modify_parameter(TONEX_PARAM_MODULATION_CHORUS_RATE, lv_slider_get_value(obj)); + } break; + + case TONEX_MODULATION_TREMOLO: + { + usb_modify_parameter(TONEX_PARAM_MODULATION_TREMOLO_RATE, lv_slider_get_value(obj)); + } break; + + case TONEX_MODULATION_PHASER: + { + usb_modify_parameter(TONEX_PARAM_MODULATION_PHASER_RATE, lv_slider_get_value(obj)); + } break; + + case TONEX_MODULATION_FLANGER: + { + usb_modify_parameter(TONEX_PARAM_MODULATION_FLANGER_RATE, lv_slider_get_value(obj)); + } break; + + case TONEX_MODULATION_ROTARY: + { + usb_modify_parameter(TONEX_PARAM_MODULATION_ROTARY_SPEED, lv_slider_get_value(obj)); + } break; + } + } + else if (obj == objects.ui_modulation_param2_slider) + { + // check which model is set + switch (lv_dropdown_get_selected(objects.ui_modulation_model_dropdown)) + { + case TONEX_MODULATION_CHORUS: + { + usb_modify_parameter(TONEX_PARAM_MODULATION_CHORUS_DEPTH, lv_slider_get_value(obj)); + } break; + + case TONEX_MODULATION_TREMOLO: + { + usb_modify_parameter(TONEX_PARAM_MODULATION_TREMOLO_SHAPE, lv_slider_get_value(obj)); + } break; + + case TONEX_MODULATION_PHASER: + { + usb_modify_parameter(TONEX_PARAM_MODULATION_PHASER_DEPTH, lv_slider_get_value(obj)); + } break; + + case TONEX_MODULATION_FLANGER: + { + usb_modify_parameter(TONEX_PARAM_MODULATION_FLANGER_DEPTH, lv_slider_get_value(obj)); + } break; + + case TONEX_MODULATION_ROTARY: + { + usb_modify_parameter(TONEX_PARAM_MODULATION_ROTARY_RADIUS, lv_slider_get_value(obj)); + } break; + } + } + else if (obj == objects.ui_modulation_param3_slider) + { + // check which model is set + switch (lv_dropdown_get_selected(objects.ui_modulation_model_dropdown)) + { + case TONEX_MODULATION_CHORUS: + { + usb_modify_parameter(TONEX_PARAM_MODULATION_CHORUS_LEVEL, lv_slider_get_value(obj)); + } break; + + case TONEX_MODULATION_TREMOLO: + { + usb_modify_parameter(TONEX_PARAM_MODULATION_TREMOLO_SPREAD, lv_slider_get_value(obj)); + } break; + + case TONEX_MODULATION_PHASER: + { + usb_modify_parameter(TONEX_PARAM_MODULATION_PHASER_LEVEL, lv_slider_get_value(obj)); + } break; + + case TONEX_MODULATION_FLANGER: + { + usb_modify_parameter(TONEX_PARAM_MODULATION_FLANGER_FEEDBACK, lv_slider_get_value(obj)); + } break; + + case TONEX_MODULATION_ROTARY: + { + usb_modify_parameter(TONEX_PARAM_MODULATION_ROTARY_SPREAD, lv_slider_get_value(obj)); + } break; + } + } + else if (obj == objects.ui_modulation_param4_slider) + { + // check which model is set + switch (lv_dropdown_get_selected(objects.ui_modulation_model_dropdown)) + { + case TONEX_MODULATION_CHORUS: + { + // not used + } break; + + case TONEX_MODULATION_TREMOLO: + { + usb_modify_parameter(TONEX_PARAM_MODULATION_TREMOLO_LEVEL, lv_slider_get_value(obj)); + } break; + + case TONEX_MODULATION_PHASER: + { + // not used + } break; + + case TONEX_MODULATION_FLANGER: + { + usb_modify_parameter(TONEX_PARAM_MODULATION_FLANGER_LEVEL, lv_slider_get_value(obj)); + } break; + + case TONEX_MODULATION_ROTARY: + { + usb_modify_parameter(TONEX_PARAM_MODULATION_ROTARY_LEVEL, lv_slider_get_value(obj)); + } break; + } + } + else if (obj == objects.ui_delay_enable_switch) + { + usb_modify_parameter(TONEX_PARAM_DELAY_ENABLE, lv_obj_has_state(obj, LV_STATE_CHECKED) ? 1 : 0); + } + else if (obj == objects.ui_delay_post_switch) + { + usb_modify_parameter(TONEX_PARAM_DELAY_POST, lv_obj_has_state(obj, LV_STATE_CHECKED) ? 1 : 0); + } + else if (obj == objects.ui_delay_model_dropdown) + { + usb_modify_parameter(TONEX_PARAM_DELAY_MODEL, lv_dropdown_get_selected(obj)); + } + else if (obj == objects.ui_delay_sync_switch) + { + // check which model is set + switch (lv_dropdown_get_selected(objects.ui_delay_model_dropdown)) + { + case TONEX_DELAY_DIGITAL: + { + usb_modify_parameter(TONEX_PARAM_DELAY_DIGITAL_SYNC, lv_obj_has_state(obj, LV_STATE_CHECKED) ? 1 : 0); + } break; + + case TONEX_DELAY_TAPE: + { + usb_modify_parameter(TONEX_PARAM_DELAY_TAPE_SYNC, lv_obj_has_state(obj, LV_STATE_CHECKED) ? 1 : 0); + } break; + } + } + else if (obj == objects.ui_delay_ping_pong_switch) + { + // check which model is set + switch (lv_dropdown_get_selected(objects.ui_delay_model_dropdown)) + { + case TONEX_DELAY_DIGITAL: + { + usb_modify_parameter(TONEX_PARAM_DELAY_DIGITAL_MODE, lv_obj_has_state(obj, LV_STATE_CHECKED) ? 1 : 0); + } break; + + case TONEX_DELAY_TAPE: + { + usb_modify_parameter(TONEX_PARAM_DELAY_TAPE_MODE, lv_obj_has_state(obj, LV_STATE_CHECKED) ? 1 : 0); + } break; + } + } + else if (obj == objects.ui_delay_ts_slider) + { + // check which model is set + switch (lv_dropdown_get_selected(objects.ui_delay_model_dropdown)) + { + case TONEX_DELAY_DIGITAL: + { + usb_modify_parameter(TONEX_PARAM_DELAY_DIGITAL_TIME, lv_slider_get_value(obj)); + } break; + + case TONEX_DELAY_TAPE: + { + usb_modify_parameter(TONEX_PARAM_DELAY_TAPE_TIME, lv_slider_get_value(obj)); + } break; + } + } + else if (obj == objects.ui_delay_ts_dropdown) + { + // check which model is set + switch (lv_dropdown_get_selected(objects.ui_delay_model_dropdown)) + { + case TONEX_DELAY_DIGITAL: + { + usb_modify_parameter(TONEX_PARAM_DELAY_DIGITAL_TS, lv_dropdown_get_selected(obj)); + } break; + + case TONEX_DELAY_TAPE: + { + usb_modify_parameter(TONEX_PARAM_DELAY_TAPE_TS, lv_dropdown_get_selected(obj)); + } break; + } + } + else if (obj == objects.ui_delay_feedback_slider) + { + // check which model is set + switch (lv_dropdown_get_selected(objects.ui_delay_model_dropdown)) + { + case TONEX_DELAY_DIGITAL: + { + usb_modify_parameter(TONEX_PARAM_DELAY_DIGITAL_FEEDBACK, lv_slider_get_value(obj)); + } break; + + case TONEX_DELAY_TAPE: + { + usb_modify_parameter(TONEX_PARAM_DELAY_TAPE_FEEDBACK, lv_slider_get_value(obj)); + } break; + } + } + else if (obj == objects.ui_delay_mix_slider) + { + // check which model is set + switch (lv_dropdown_get_selected(objects.ui_delay_model_dropdown)) + { + case TONEX_DELAY_DIGITAL: + { + usb_modify_parameter(TONEX_PARAM_DELAY_DIGITAL_MIX, lv_slider_get_value(obj)); + } break; + + case TONEX_DELAY_TAPE: + { + usb_modify_parameter(TONEX_PARAM_DELAY_TAPE_MIX, lv_slider_get_value(obj)); + } break; + } + } + else if (obj == objects.ui_amp_enable_switch) + { + usb_modify_parameter(TONEX_PARAM_MODEL_AMP_ENABLE, lv_obj_has_state(obj, LV_STATE_CHECKED) ? 1 : 0); + } + else if (obj == objects.ui_cabinet_model_dropdown) + { + usb_modify_parameter(TONEX_PARAM_CABINET_TYPE, lv_dropdown_get_selected(obj)); + } + else if (obj == objects.ui_amplifier_gain_slider) + { + usb_modify_parameter(TONEX_PARAM_MODEL_GAIN, ((float)lv_slider_get_value(obj))/10.0f); + } + else if (obj == objects.ui_amplifier_volume_slider) + { + usb_modify_parameter(TONEX_PARAM_MODEL_VOLUME, ((float)lv_slider_get_value(obj))/10.0f); + } + else if (obj == objects.ui_amplifier_presense_slider) + { + usb_modify_parameter(TONEX_PARAM_MODEL_PRESENCE, ((float)lv_slider_get_value(obj))/10.0f); + } + else if (obj == objects.ui_amplifier_depth_slider) + { + usb_modify_parameter(TONEX_PARAM_MODEL_DEPTH, ((float)lv_slider_get_value(obj))/10.0f); + } + else if (obj == objects.ui_bpm_slider) + { + usb_modify_parameter(TONEX_GLOBAL_BPM, lv_slider_get_value(obj)); + } + else if (obj == objects.ui_input_trim_slider) + { + usb_modify_parameter(TONEX_GLOBAL_INPUT_TRIM, lv_slider_get_value(obj)); + } + else if (obj == objects.ui_cab_bypass_switch) + { + usb_modify_parameter(TONEX_GLOBAL_CABSIM_BYPASS, lv_obj_has_state(obj, LV_STATE_CHECKED) ? 1 : 0); + } + else if (obj == objects.ui_tempo_source_switch) + { + usb_modify_parameter(TONEX_GLOBAL_TEMPO_SOURCE, lv_obj_has_state(obj, LV_STATE_CHECKED) ? 1 : 0); + } + else if (obj == objects.ui_tuning_reference_slider) + { + usb_modify_parameter(TONEX_GLOBAL_TUNING_REFERENCE, lv_slider_get_value(obj)); + } + else if (obj == objects.ui_volume_slider) + { + usb_modify_parameter(TONEX_GLOBAL_MASTER_VOLUME, lv_slider_get_value(obj)); + } + else + { + ESP_LOGW(TAG, "Unknown Parameter changed"); + } +#endif // CONFIG_TONEX_CONTROLLER_DISPLAY_FULL_UI +} + +/**************************************************************************** +* NAME: +* DESCRIPTION: +* PARAMETERS: +* RETURN: +* NOTES: +*****************************************************************************/ +void tonex_update_icon_order(void) +{ +#if CONFIG_TONEX_CONTROLLER_DISPLAY_FULL_UI + bool gatePost = lv_obj_has_state(objects.ui_noise_gate_post_switch, LV_STATE_CHECKED); + bool compPost = lv_obj_has_state(objects.ui_compressor_post_switch, LV_STATE_CHECKED); + bool eqPost = lv_obj_has_state(objects.ui_eq_post_switch, LV_STATE_CHECKED); + bool modPost = lv_obj_has_state(objects.ui_modulation_post_switch, LV_STATE_CHECKED); + bool delayPost = lv_obj_has_state(objects.ui_delay_post_switch, LV_STATE_CHECKED); + bool revPost = lv_obj_has_state(objects.ui_reverb_post_switch, LV_STATE_CHECKED); + + lv_obj_t *icons[8]; + uint8_t index = 0; + + if (!gatePost) + { + icons[index++] = objects.ui_icon_gate; + } + if (!compPost) + { + icons[index++] = objects.ui_icon_comp; + } + if (!modPost) + { + icons[index++] = objects.ui_icon_mod; + } + if (!delayPost) + { + icons[index++] = objects.ui_icon_delay; + } + if (!eqPost) + { + icons[index++] = objects.ui_icon_eq; + } + icons[index++] = objects.ui_icon_amp; + icons[index++] = objects.ui_icon_cab; + if (eqPost) + { + icons[index++] = objects.ui_icon_eq; + } + if (gatePost) + { + icons[index++] = objects.ui_icon_gate; + } + if (compPost) + { + icons[index++] = objects.ui_icon_comp; + } + if (!revPost) + { + icons[index++] = objects.ui_icon_reverb; + } + if (modPost) + { + icons[index++] = objects.ui_icon_mod; + } + if (delayPost) + { + icons[index++] = objects.ui_icon_delay; + } + if (revPost) + { + icons[index] = objects.ui_icon_reverb; + } + + // get the icon coords for this platform + int16_t offsets[8]; + platform_get_icon_coords(offsets, sizeof(offsets) / sizeof(int16_t)); + + for (uint8_t i = 0; i<8; i++) + { + lv_obj_t *icon = icons[i]; + int16_t offset = offsets[i]; + lv_obj_set_x(icon, offset); + } +#endif +} + +/**************************************************************************** +* NAME: +* DESCRIPTION: +* PARAMETERS: +* RETURN: +* NOTES: +*****************************************************************************/ +uint8_t tonex_update_ui_parameters(void) +{ +#if CONFIG_TONEX_CONTROLLER_HAS_DISPLAY + tModellerParameter* param_ptr; + __attribute__((unused)) char value_string[20]; + +#if CONFIG_TONEX_CONTROLLER_DISPLAY_FULL_UI + for (uint16_t param = 0; param < TONEX_GLOBAL_LAST; param++) + { + if (tonex_params_get_locked_access(¶m_ptr) == ESP_OK) + { + tModellerParameter* param_entry = ¶m_ptr[param]; + + // debug + //ESP_LOGI(TAG, "Param %d: val: %02f, min: %02f, max: %02f", param, param_entry->Value, param_entry->Min, param_entry->Max); + + switch (param) + { + case TONEX_PARAM_NOISE_GATE_POST: + { + if (param_entry->Value) + { + lv_obj_add_state(objects.ui_noise_gate_post_switch, LV_STATE_CHECKED); + } + else + { + lv_obj_clear_state(objects.ui_noise_gate_post_switch, LV_STATE_CHECKED); + } + } break; + + case TONEX_PARAM_NOISE_GATE_ENABLE: + { + if (param_entry->Value) + { + lv_obj_add_state(objects.ui_noise_gate_switch, LV_STATE_CHECKED); + lv_img_set_src(objects.ui_icon_gate, (lv_obj_t*)&img_effect_icon_gate_on); + } + else + { + lv_obj_clear_state(objects.ui_noise_gate_switch, LV_STATE_CHECKED); + lv_img_set_src(objects.ui_icon_gate, (lv_obj_t*)&img_effect_icon_gate_off); + } + } break; + + case TONEX_PARAM_NOISE_GATE_THRESHOLD: + { + lv_slider_set_range(objects.ui_noise_gate_threshold_slider, round(param_entry->Min), round(param_entry->Max)); + lv_slider_set_value(objects.ui_noise_gate_threshold_slider, round(param_entry->Value), LV_ANIM_OFF); + + // show value and units + sprintf(value_string, "%d db", (int)round(param_entry->Value)); + lv_label_set_text(objects.ui_noise_gate_threshold_value, value_string); + } break; + + case TONEX_PARAM_NOISE_GATE_RELEASE: + { + lv_slider_set_range(objects.ui_noise_gate_release_slider, round(param_entry->Min), round(param_entry->Max)); + lv_slider_set_value(objects.ui_noise_gate_release_slider, round(param_entry->Value), LV_ANIM_OFF); + + // show value and units + sprintf(value_string, "%d ms", (int)round(param_entry->Value)); + lv_label_set_text(objects.ui_noise_gate_release_value, value_string); + } break; + + case TONEX_PARAM_NOISE_GATE_DEPTH: + { + lv_slider_set_range(objects.ui_noise_gate_depth_slider, round(param_entry->Min), round(param_entry->Max)); + lv_slider_set_value(objects.ui_noise_gate_depth_slider, round(param_entry->Value), LV_ANIM_OFF); + + // show value and units + sprintf(value_string, "%d db", (int)round(param_entry->Value)); + lv_label_set_text(objects.ui_noise_gate_depth_value, value_string); + } break; + + case TONEX_PARAM_COMP_POST: + { + if (param_entry->Value) + { + lv_obj_add_state(objects.ui_compressor_post_switch, LV_STATE_CHECKED); + } + else + { + lv_obj_clear_state(objects.ui_compressor_post_switch, LV_STATE_CHECKED); + } + } break; + + case TONEX_PARAM_COMP_ENABLE: + { + if (param_entry->Value) + { + lv_obj_add_state(objects.ui_compressor_enable_switch, LV_STATE_CHECKED); + lv_img_set_src(objects.ui_icon_comp, (lv_obj_t*)&img_effect_icon_comp_on); + } + else + { + lv_obj_clear_state(objects.ui_compressor_enable_switch, LV_STATE_CHECKED); + lv_img_set_src(objects.ui_icon_comp, (lv_obj_t*)&img_effect_icon_comp_off); + } + } break; + + case TONEX_PARAM_COMP_THRESHOLD: + { + lv_slider_set_range(objects.ui_compressor_threshold_slider, round(param_entry->Min), round(param_entry->Max)); + lv_slider_set_value(objects.ui_compressor_threshold_slider, round(param_entry->Value), LV_ANIM_OFF); + + // show value and units + sprintf(value_string, "%1.1f db", param_entry->Value); + lv_label_set_text(objects.ui_compressor_threshold_value, value_string); + } break; + + case TONEX_PARAM_COMP_MAKE_UP: + { + lv_slider_set_range(objects.ui_compressor_gain_slider, round(param_entry->Min), round(param_entry->Max)); + lv_slider_set_value(objects.ui_compressor_gain_slider, round(param_entry->Value), LV_ANIM_OFF); + + // show value and units + sprintf(value_string, "%d db", (int)round(param_entry->Value)); + lv_label_set_text(objects.ui_compressor_gain_value, value_string); + } break; + + case TONEX_PARAM_COMP_ATTACK: + { + lv_slider_set_range(objects.ui_compressor_attack_slider, round(param_entry->Min), round(param_entry->Max)); + lv_slider_set_value(objects.ui_compressor_attack_slider, round(param_entry->Value), LV_ANIM_OFF); + + // show value and units + sprintf(value_string, "%d ms", (int)round(param_entry->Value)); + lv_label_set_text(objects.ui_compressor_attack_value, value_string); + } break; + + case TONEX_PARAM_EQ_POST: + { + if (param_entry->Value) + { + lv_obj_add_state(objects.ui_eq_post_switch, LV_STATE_CHECKED); + } + else + { + lv_obj_clear_state(objects.ui_eq_post_switch, LV_STATE_CHECKED); + } + } break; + + case TONEX_PARAM_EQ_BASS: + { + lv_slider_set_range(objects.ui_eq_bass_slider, round(param_entry->Min), round(param_entry->Max * 10.0f)); + lv_slider_set_value(objects.ui_eq_bass_slider, round(param_entry->Value * 10.0f), LV_ANIM_OFF); + + // show value and units + sprintf(value_string, "%1.1f", param_entry->Value); + lv_label_set_text(objects.ui_eq_bass_value, value_string); + } break; + + case TONEX_PARAM_EQ_BASS_FREQ: + { + // not exposed via UI + } break; + + case TONEX_PARAM_EQ_MID: + { + lv_slider_set_range(objects.ui_eq_mid_slider, round(param_entry->Min), round(param_entry->Max * 10.0f)); + lv_slider_set_value(objects.ui_eq_mid_slider, round(param_entry->Value * 10.0f), LV_ANIM_OFF); + + // show value and units + sprintf(value_string, "%1.1f", param_entry->Value); + lv_label_set_text(objects.ui_eq_mid_value, value_string); + } break; + + case TONEX_PARAM_EQ_MIDQ: + { + lv_slider_set_range(objects.ui_eq_mid_qslider, round(param_entry->Min * 10.0f), round(param_entry->Max * 10.0f)); + lv_slider_set_value(objects.ui_eq_mid_qslider, round(param_entry->Value * 10.0f), LV_ANIM_OFF); + + // show value and units + sprintf(value_string, "%1.1f", param_entry->Value); + lv_label_set_text(objects.ui_eq_mid_qvalue, value_string); + } break; + + case TONEX_PARAM_EQ_MID_FREQ: + { + // not exposed via UI + } break; + + case TONEX_PARAM_EQ_TREBLE: + { + lv_slider_set_range(objects.ui_eq_treble_slider, round(param_entry->Min), round(param_entry->Max * 10.0f)); + lv_slider_set_value(objects.ui_eq_treble_slider, round(param_entry->Value * 10.0f), LV_ANIM_OFF); + + // show value and units + sprintf(value_string, "%1.1f", param_entry->Value); + lv_label_set_text(objects.ui_eq_treble_value, value_string); + } break; + + case TONEX_PARAM_EQ_TREBLE_FREQ: + { + // not exposed via UI + } break; + + case TONEX_PARAM_MODEL_AMP_ENABLE: + { + if (param_entry->Value) + { + lv_obj_add_state(objects.ui_amp_enable_switch, LV_STATE_CHECKED); + lv_img_set_src(objects.ui_icon_amp, (lv_obj_t*)&img_effect_icon_amp_on); + } + else + { + lv_obj_clear_state(objects.ui_amp_enable_switch, LV_STATE_CHECKED); + lv_img_set_src(objects.ui_icon_amp, (lv_obj_t*)&img_effect_icon_amp_off); + } + } break; + + case TONEX_PARAM_MODEL_SW1: + { + // not exposed via UI + } break; + + case TONEX_PARAM_CABINET_TYPE: + { + lv_dropdown_set_selected(objects.ui_cabinet_model_dropdown, param_entry->Value); + + if (param_entry->Value == TONEX_CABINET_DISABLED) + { + lv_img_set_src(objects.ui_icon_cab, (lv_obj_t*)&img_effect_icon_cab_off); + } + else + { + lv_img_set_src(objects.ui_icon_cab, (lv_obj_t*)&img_effect_icon_cab_on); + } + } break; + + case TONEX_PARAM_MODEL_GAIN: + { + lv_slider_set_range(objects.ui_amplifier_gain_slider, round(param_entry->Min), round(param_entry->Max * 10.0f)); + lv_slider_set_value(objects.ui_amplifier_gain_slider, round(param_entry->Value * 10.0f), LV_ANIM_OFF); + + // show value and units + sprintf(value_string, "%1.1f", param_entry->Value); + lv_label_set_text(objects.ui_amplifier_gain_value, value_string); + } break; + + case TONEX_PARAM_MODEL_VOLUME: + { + lv_slider_set_range(objects.ui_amplifier_volume_slider, round(param_entry->Min), round(param_entry->Max * 10.0f)); + lv_slider_set_value(objects.ui_amplifier_volume_slider, round(param_entry->Value * 10.0f), LV_ANIM_OFF); + + // show value and units + sprintf(value_string, "%1.1f", param_entry->Value); + lv_label_set_text(objects.ui_amplifier_volume_value, value_string); + } break; + + case TONEX_PARAM_MODEX_MIX: + { + // not exposed via UI + } break; + + case TONEX_PARAM_MODEL_PRESENCE: + { + lv_slider_set_range(objects.ui_amplifier_presense_slider, round(param_entry->Min), round(param_entry->Max * 10.0f)); + lv_slider_set_value(objects.ui_amplifier_presense_slider, round(param_entry->Value * 10.0f), LV_ANIM_OFF); + + // show value and units + sprintf(value_string, "%1.1f", param_entry->Value); + lv_label_set_text(objects.ui_amplifier_presense_value, value_string); + } break; + + //case TONEX_PARAM_CABINET_UNKNOWN: + //{ + // not exposed via UI + //} break; + + //case TONEX_PARAM_VIR_CABINET: + //{ + // not exposed via UI + //} break; + + case TONEX_PARAM_MODEL_DEPTH: + { + lv_slider_set_range(objects.ui_amplifier_depth_slider, round(param_entry->Min), round(param_entry->Max * 10.0f)); + lv_slider_set_value(objects.ui_amplifier_depth_slider, round(param_entry->Value * 10.0f), LV_ANIM_OFF); + + // show value and units + sprintf(value_string, "%1.1f", param_entry->Value); + lv_label_set_text(objects.ui_amplifier_depth_value, value_string); + } break; + + case TONEX_PARAM_VIR_RESO: + { + // not exposed via UI + } break; + + case TONEX_PARAM_VIR_MIC_1: + { + // not exposed via UI + } break; + + case TONEX_PARAM_VIR_MIC_1_X: + { + // not exposed via UI + } break; + + case TONEX_PARAM_VIR_MIC_1_Z: + { + // not exposed via UI + } break; + + case TONEX_PARAM_VIR_MIC_2: + { + // not exposed via UI + } break; + + case TONEX_PARAM_VIR_MIC_2_X: + { + // not exposed via UI + } break; + + case TONEX_PARAM_VIR_MIC_2_Z: + { + // not exposed via UI + } break; + + case TONEX_PARAM_VIR_BLEND: + { + // not exposed via UI + } break; + + case TONEX_PARAM_REVERB_POSITION: + { + if (param_entry->Value) + { + lv_obj_add_state(objects.ui_reverb_post_switch, LV_STATE_CHECKED); + } + else + { + lv_obj_clear_state(objects.ui_reverb_post_switch, LV_STATE_CHECKED); + } + } break; + + case TONEX_PARAM_REVERB_ENABLE: + { + if (param_entry->Value) + { + lv_obj_add_state(objects.ui_reverb_enable_switch, LV_STATE_CHECKED); + + // show enabled icon with letter to indicate the type + switch ((int)param_ptr[TONEX_PARAM_REVERB_MODEL].Value) + { + case TONEX_REVERB_SPRING_1: + { + lv_img_set_src(objects.ui_icon_reverb, (lv_obj_t*)&img_effect_icon_reverb_on_s1); + } break; + + case TONEX_REVERB_SPRING_2: + { + lv_img_set_src(objects.ui_icon_reverb, (lv_obj_t*)&img_effect_icon_reverb_on_s2); + } break; + + case TONEX_REVERB_SPRING_3: + { + lv_img_set_src(objects.ui_icon_reverb, (lv_obj_t*)&img_effect_icon_reverb_on_s3); + } break; + + case TONEX_REVERB_SPRING_4: + { + lv_img_set_src(objects.ui_icon_reverb, (lv_obj_t*)&img_effect_icon_reverb_on_s4); + } break; + + case TONEX_REVERB_ROOM: + { + lv_img_set_src(objects.ui_icon_reverb, (lv_obj_t*)&img_effect_icon_reverb_on_r); + } break; + + case TONEX_REVERB_PLATE: + default: + { + lv_img_set_src(objects.ui_icon_reverb, (lv_obj_t*)&img_effect_icon_reverb_on_p); + } break; + } + } + else + { + lv_obj_clear_state(objects.ui_reverb_enable_switch, LV_STATE_CHECKED); + lv_img_set_src(objects.ui_icon_reverb, (lv_obj_t*)&img_effect_icon_reverb_off); + } + } break; + + case TONEX_PARAM_REVERB_MODEL: + { + lv_dropdown_set_selected(objects.ui_reverb_model_dropdown, param_entry->Value); + } break; + + case TONEX_PARAM_REVERB_SPRING1_TIME: + { + if (param_ptr[TONEX_PARAM_REVERB_MODEL].Value == TONEX_REVERB_SPRING_1) + { + lv_slider_set_range(objects.ui_reverb_time_slider, round(param_entry->Min), round(param_entry->Max)); + lv_slider_set_value(objects.ui_reverb_time_slider, round(param_entry->Value), LV_ANIM_OFF); + + // show value and units + sprintf(value_string, "%1.1f", param_entry->Value); + lv_label_set_text(objects.ui_reverb_time_value, value_string); + } + } break; + + case TONEX_PARAM_REVERB_SPRING1_PREDELAY: + { + if (param_ptr[TONEX_PARAM_REVERB_MODEL].Value == TONEX_REVERB_SPRING_1) + { + lv_slider_set_range(objects.ui_reverb_predelay_slider, round(param_entry->Min), round(param_entry->Max)); + lv_slider_set_value(objects.ui_reverb_predelay_slider, round(param_entry->Value), LV_ANIM_OFF); + + // show value and units + sprintf(value_string, "%d ms", (int)round(param_entry->Value)); + lv_label_set_text(objects.ui_reverb_predelay_value, value_string); + } + } break; + + case TONEX_PARAM_REVERB_SPRING1_COLOR: + { + if (param_ptr[TONEX_PARAM_REVERB_MODEL].Value == TONEX_REVERB_SPRING_1) + { + lv_slider_set_range(objects.ui_reverb_color_slider, round(param_entry->Min), round(param_entry->Max)); + lv_slider_set_value(objects.ui_reverb_color_slider, round(param_entry->Value), LV_ANIM_OFF); + + // show value and units + sprintf(value_string, "%d", (int)round(param_entry->Value)); + lv_label_set_text(objects.ui_reverb_color_value, value_string); + } + } break; + + case TONEX_PARAM_REVERB_SPRING1_MIX: + { + if (param_ptr[TONEX_PARAM_REVERB_MODEL].Value == TONEX_REVERB_SPRING_1) + { + lv_slider_set_range(objects.ui_reverb_mix_slider, round(param_entry->Min), round(param_entry->Max)); + lv_slider_set_value(objects.ui_reverb_mix_slider, round(param_entry->Value), LV_ANIM_OFF); + + // show value and units + sprintf(value_string, "%d%%", (int)round(param_entry->Value)); + lv_label_set_text(objects.ui_reverb_mix_value, value_string); + } + } break; + + case TONEX_PARAM_REVERB_SPRING2_TIME: + { + if (param_ptr[TONEX_PARAM_REVERB_MODEL].Value == TONEX_REVERB_SPRING_2) + { + lv_slider_set_range(objects.ui_reverb_time_slider, round(param_entry->Min), round(param_entry->Max)); + lv_slider_set_value(objects.ui_reverb_time_slider, round(param_entry->Value), LV_ANIM_OFF); + + // show value and units + sprintf(value_string, "%1.1f", param_entry->Value); + lv_label_set_text(objects.ui_reverb_time_value, value_string); + } + } break; + + case TONEX_PARAM_REVERB_SPRING2_PREDELAY: + { + if (param_ptr[TONEX_PARAM_REVERB_MODEL].Value == TONEX_REVERB_SPRING_2) + { + lv_slider_set_range(objects.ui_reverb_predelay_slider, round(param_entry->Min), round(param_entry->Max)); + lv_slider_set_value(objects.ui_reverb_predelay_slider, round(param_entry->Value), LV_ANIM_OFF); + + // show value and units + sprintf(value_string, "%d ms", (int)round(param_entry->Value)); + lv_label_set_text(objects.ui_reverb_predelay_value, value_string); + } + } break; + + case TONEX_PARAM_REVERB_SPRING2_COLOR: + { + if (param_ptr[TONEX_PARAM_REVERB_MODEL].Value == TONEX_REVERB_SPRING_2) + { + lv_slider_set_range(objects.ui_reverb_color_slider, round(param_entry->Min), round(param_entry->Max)); + lv_slider_set_value(objects.ui_reverb_color_slider, round(param_entry->Value), LV_ANIM_OFF); + + // show value and units + sprintf(value_string, "%d", (int)round(param_entry->Value)); + lv_label_set_text(objects.ui_reverb_color_value, value_string); + } + } break; + + case TONEX_PARAM_REVERB_SPRING2_MIX: + { + if (param_ptr[TONEX_PARAM_REVERB_MODEL].Value == TONEX_REVERB_SPRING_2) + { + lv_slider_set_range(objects.ui_reverb_mix_slider, round(param_entry->Min), round(param_entry->Max)); + lv_slider_set_value(objects.ui_reverb_mix_slider, round(param_entry->Value), LV_ANIM_OFF); + + // show value and units + sprintf(value_string, "%d%%", (int)round(param_entry->Value)); + lv_label_set_text(objects.ui_reverb_mix_value, value_string); + } + } break; + + case TONEX_PARAM_REVERB_SPRING3_TIME: + { + if (param_ptr[TONEX_PARAM_REVERB_MODEL].Value == TONEX_REVERB_SPRING_3) + { + lv_slider_set_range(objects.ui_reverb_time_slider, round(param_entry->Min), round(param_entry->Max)); + lv_slider_set_value(objects.ui_reverb_time_slider, round(param_entry->Value), LV_ANIM_OFF); + + // show value and units + sprintf(value_string, "%1.1f", param_entry->Value); + lv_label_set_text(objects.ui_reverb_time_value, value_string); + } + } break; + + case TONEX_PARAM_REVERB_SPRING3_PREDELAY: + { + if (param_ptr[TONEX_PARAM_REVERB_MODEL].Value == TONEX_REVERB_SPRING_3) + { + lv_slider_set_range(objects.ui_reverb_predelay_slider, round(param_entry->Min), round(param_entry->Max)); + lv_slider_set_value(objects.ui_reverb_predelay_slider, round(param_entry->Value), LV_ANIM_OFF); + + // show value and units + sprintf(value_string, "%d ms", (int)round(param_entry->Value)); + lv_label_set_text(objects.ui_reverb_predelay_value, value_string); + } + } break; + + case TONEX_PARAM_REVERB_SPRING3_COLOR: + { + if (param_ptr[TONEX_PARAM_REVERB_MODEL].Value == TONEX_REVERB_SPRING_3) + { + lv_slider_set_range(objects.ui_reverb_color_slider, round(param_entry->Min), round(param_entry->Max)); + lv_slider_set_value(objects.ui_reverb_color_slider, round(param_entry->Value), LV_ANIM_OFF); + + // show value and units + sprintf(value_string, "%d", (int)round(param_entry->Value)); + lv_label_set_text(objects.ui_reverb_color_value, value_string); + } + } break; + + case TONEX_PARAM_REVERB_SPRING3_MIX: + { + if (param_ptr[TONEX_PARAM_REVERB_MODEL].Value == TONEX_REVERB_SPRING_3) + { + lv_slider_set_range(objects.ui_reverb_mix_slider, round(param_entry->Min), round(param_entry->Max)); + lv_slider_set_value(objects.ui_reverb_mix_slider, round(param_entry->Value), LV_ANIM_OFF); + + // show value and units + sprintf(value_string, "%d%%", (int)round(param_entry->Value)); + lv_label_set_text(objects.ui_reverb_mix_value, value_string); + } + } break; + + case TONEX_PARAM_REVERB_SPRING4_TIME: + { + if (param_ptr[TONEX_PARAM_REVERB_MODEL].Value == TONEX_REVERB_SPRING_4) + { + lv_slider_set_range(objects.ui_reverb_time_slider, round(param_entry->Min), round(param_entry->Max)); + lv_slider_set_value(objects.ui_reverb_time_slider, round(param_entry->Value), LV_ANIM_OFF); + + // show value and units + sprintf(value_string, "%1.1f", param_entry->Value); + lv_label_set_text(objects.ui_reverb_time_value, value_string); + } + } break; + + case TONEX_PARAM_REVERB_SPRING4_PREDELAY: + { + if (param_ptr[TONEX_PARAM_REVERB_MODEL].Value == TONEX_REVERB_SPRING_4) + { + lv_slider_set_range(objects.ui_reverb_predelay_slider, round(param_entry->Min), round(param_entry->Max)); + lv_slider_set_value(objects.ui_reverb_predelay_slider, round(param_entry->Value), LV_ANIM_OFF); + + // show value and units + sprintf(value_string, "%d ms", (int)round(param_entry->Value)); + lv_label_set_text(objects.ui_reverb_predelay_value, value_string); + } + } break; + + case TONEX_PARAM_REVERB_SPRING4_COLOR: + { + if (param_ptr[TONEX_PARAM_REVERB_MODEL].Value == TONEX_REVERB_SPRING_4) + { + lv_slider_set_range(objects.ui_reverb_color_slider, round(param_entry->Min), round(param_entry->Max)); + lv_slider_set_value(objects.ui_reverb_color_slider, round(param_entry->Value), LV_ANIM_OFF); + + // show value and units + sprintf(value_string, "%d", (int)round(param_entry->Value)); + lv_label_set_text(objects.ui_reverb_color_value, value_string); + } + } break; + + case TONEX_PARAM_REVERB_SPRING4_MIX: + { + if (param_ptr[TONEX_PARAM_REVERB_MODEL].Value == TONEX_REVERB_SPRING_4) + { + lv_slider_set_range(objects.ui_reverb_mix_slider, round(param_entry->Min), round(param_entry->Max)); + lv_slider_set_value(objects.ui_reverb_mix_slider, round(param_entry->Value), LV_ANIM_OFF); + + // show value and units + sprintf(value_string, "%d%%", (int)round(param_entry->Value)); + lv_label_set_text(objects.ui_reverb_mix_value, value_string); + } + } break; + + case TONEX_PARAM_REVERB_ROOM_TIME: + { + if (param_ptr[TONEX_PARAM_REVERB_MODEL].Value == TONEX_REVERB_ROOM) + { + lv_slider_set_range(objects.ui_reverb_time_slider, round(param_entry->Min), round(param_entry->Max)); + lv_slider_set_value(objects.ui_reverb_time_slider, round(param_entry->Value), LV_ANIM_OFF); + + // show value and units + sprintf(value_string, "%1.1f", param_entry->Value); + lv_label_set_text(objects.ui_reverb_time_value, value_string); + } + } break; + + case TONEX_PARAM_REVERB_ROOM_PREDELAY: + { + if (param_ptr[TONEX_PARAM_REVERB_MODEL].Value == TONEX_REVERB_ROOM) + { + lv_slider_set_range(objects.ui_reverb_predelay_slider, round(param_entry->Min), round(param_entry->Max)); + lv_slider_set_value(objects.ui_reverb_predelay_slider, round(param_entry->Value), LV_ANIM_OFF); + + // show value and units + sprintf(value_string, "%d ms", (int)round(param_entry->Value)); + lv_label_set_text(objects.ui_reverb_predelay_value, value_string); + } + } break; + + case TONEX_PARAM_REVERB_ROOM_COLOR: + { + if (param_ptr[TONEX_PARAM_REVERB_MODEL].Value == TONEX_REVERB_ROOM) + { + lv_slider_set_range(objects.ui_reverb_color_slider, round(param_entry->Min), round(param_entry->Max)); + lv_slider_set_value(objects.ui_reverb_color_slider, round(param_entry->Value), LV_ANIM_OFF); + + // show value and units + sprintf(value_string, "%d", (int)round(param_entry->Value)); + lv_label_set_text(objects.ui_reverb_color_value, value_string); + } + } break; + + case TONEX_PARAM_REVERB_ROOM_MIX: + { + if (param_ptr[TONEX_PARAM_REVERB_MODEL].Value == TONEX_REVERB_ROOM) + { + lv_slider_set_range(objects.ui_reverb_mix_slider, round(param_entry->Min), round(param_entry->Max)); + lv_slider_set_value(objects.ui_reverb_mix_slider, round(param_entry->Value), LV_ANIM_OFF); + + // show value and units + sprintf(value_string, "%d%%", (int)round(param_entry->Value)); + lv_label_set_text(objects.ui_reverb_mix_value, value_string); + } + } break; + + case TONEX_PARAM_REVERB_PLATE_TIME: + { + if (param_ptr[TONEX_PARAM_REVERB_MODEL].Value == TONEX_REVERB_PLATE) + { + lv_slider_set_range(objects.ui_reverb_time_slider, round(param_entry->Min), round(param_entry->Max)); + lv_slider_set_value(objects.ui_reverb_time_slider, round(param_entry->Value), LV_ANIM_OFF); + + // show value and units + sprintf(value_string, "%1.1f", param_entry->Value); + lv_label_set_text(objects.ui_reverb_time_value, value_string); + } + } break; + + case TONEX_PARAM_REVERB_PLATE_PREDELAY: + { + if (param_ptr[TONEX_PARAM_REVERB_MODEL].Value == TONEX_REVERB_PLATE) + { + lv_slider_set_range(objects.ui_reverb_predelay_slider, round(param_entry->Min), round(param_entry->Max)); + lv_slider_set_value(objects.ui_reverb_predelay_slider, round(param_entry->Value), LV_ANIM_OFF); + + // show value and units + sprintf(value_string, "%d ms", (int)round(param_entry->Value)); + lv_label_set_text(objects.ui_reverb_predelay_value, value_string); + } + } break; + + case TONEX_PARAM_REVERB_PLATE_COLOR: + { + if (param_ptr[TONEX_PARAM_REVERB_MODEL].Value == TONEX_REVERB_PLATE) + { + lv_slider_set_range(objects.ui_reverb_color_slider, round(param_entry->Min), round(param_entry->Max)); + lv_slider_set_value(objects.ui_reverb_color_slider, round(param_entry->Value), LV_ANIM_OFF); + + // show value and units + sprintf(value_string, "%d", (int)round(param_entry->Value)); + lv_label_set_text(objects.ui_reverb_color_value, value_string); + } + } break; + + case TONEX_PARAM_REVERB_PLATE_MIX: + { + if (param_ptr[TONEX_PARAM_REVERB_MODEL].Value == TONEX_REVERB_PLATE) + { + lv_slider_set_range(objects.ui_reverb_mix_slider, round(param_entry->Min), round(param_entry->Max)); + lv_slider_set_value(objects.ui_reverb_mix_slider, round(param_entry->Value), LV_ANIM_OFF); + + // show value and units + sprintf(value_string, "%d%%", (int)round(param_entry->Value)); + lv_label_set_text(objects.ui_reverb_mix_value, value_string); + } + } break; + + case TONEX_PARAM_MODULATION_POST: + { + if (param_entry->Value) + { + lv_obj_add_state(objects.ui_modulation_post_switch, LV_STATE_CHECKED); + } + else + { + lv_obj_clear_state(objects.ui_modulation_post_switch, LV_STATE_CHECKED); + } + } break; + + case TONEX_PARAM_MODULATION_ENABLE: + { + if (param_entry->Value) + { + lv_obj_add_state(objects.ui_modulation_enable_switch, LV_STATE_CHECKED); + + // show enabled icon with letter to indicate the type + switch ((int)param_ptr[TONEX_PARAM_MODULATION_MODEL].Value) + { + case TONEX_MODULATION_CHORUS: + { + lv_img_set_src(objects.ui_icon_mod, (lv_obj_t*)&img_effect_icon_mod_on_chorus); + } break; + + case TONEX_MODULATION_TREMOLO: + { + lv_img_set_src(objects.ui_icon_mod, (lv_obj_t*)&img_effect_icon_mod_on_tremolo); + } break; + + case TONEX_MODULATION_PHASER: + { + lv_img_set_src(objects.ui_icon_mod, (lv_obj_t*)&img_effect_icon_mod_on_phaser); + } break; + + case TONEX_MODULATION_FLANGER: + { + lv_img_set_src(objects.ui_icon_mod, (lv_obj_t*)&img_effect_icon_mod_on_flanger); + } break; + + case TONEX_MODULATION_ROTARY: + default: + { + lv_img_set_src(objects.ui_icon_mod, (lv_obj_t*)&img_effect_icon_mod_on_rotary); + } break; + } + } + else + { + lv_obj_clear_state(objects.ui_modulation_enable_switch, LV_STATE_CHECKED); + lv_img_set_src(objects.ui_icon_mod, (lv_obj_t*)&img_effect_icon_mod_off); + } + } break; + + case TONEX_PARAM_MODULATION_MODEL: + { + lv_dropdown_set_selected(objects.ui_modulation_model_dropdown, param_entry->Value); + + // configure the variable UI items + switch ((int)param_entry->Value) + { + case TONEX_MODULATION_CHORUS: + { + lv_label_set_text(objects.ui_modulation_param1_label, "Rate"); + lv_label_set_text(objects.ui_modulation_param2_label, "Depth"); + lv_label_set_text(objects.ui_modulation_param3_label, "Level"); + lv_obj_add_flag(objects.ui_modulation_param4_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_modulation_param4_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_modulation_param4_value, LV_OBJ_FLAG_HIDDEN); + } break; + + case TONEX_MODULATION_TREMOLO: + { + lv_label_set_text(objects.ui_modulation_param1_label, "Rate"); + lv_label_set_text(objects.ui_modulation_param2_label, "Shape"); + lv_label_set_text(objects.ui_modulation_param3_label, "Spread"); + lv_label_set_text(objects.ui_modulation_param4_label, "Level"); + lv_obj_clear_flag(objects.ui_modulation_param4_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_modulation_param4_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_modulation_param4_value, LV_OBJ_FLAG_HIDDEN); + } break; + + case TONEX_MODULATION_PHASER: + { + lv_label_set_text(objects.ui_modulation_param1_label, "Rate"); + lv_label_set_text(objects.ui_modulation_param2_label, "Depth"); + lv_label_set_text(objects.ui_modulation_param3_label, "Level"); + lv_obj_add_flag(objects.ui_modulation_param4_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_modulation_param4_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_modulation_param4_value, LV_OBJ_FLAG_HIDDEN); + } break; + + case TONEX_MODULATION_FLANGER: + { + lv_label_set_text(objects.ui_modulation_param1_label, "Rate"); + lv_label_set_text(objects.ui_modulation_param2_label, "Depth"); + lv_label_set_text(objects.ui_modulation_param3_label, "Feedback"); + lv_label_set_text(objects.ui_modulation_param4_label, "Level"); + lv_obj_clear_flag(objects.ui_modulation_param4_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_modulation_param4_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_modulation_param4_value, LV_OBJ_FLAG_HIDDEN); + } break; + + case TONEX_MODULATION_ROTARY: + { + lv_label_set_text(objects.ui_modulation_param1_label, "Speed"); + lv_label_set_text(objects.ui_modulation_param2_label, "Radius"); + lv_label_set_text(objects.ui_modulation_param3_label, "Spread"); + lv_label_set_text(objects.ui_modulation_param4_label, "Level"); + lv_obj_clear_flag(objects.ui_modulation_param4_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_modulation_param4_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_modulation_param4_value, LV_OBJ_FLAG_HIDDEN); + } break; + + default: + { + ESP_LOGW(TAG, "Unknown modulation model: %d", (int)param_entry->Value); + } break; + } + } break; + + case TONEX_PARAM_MODULATION_CHORUS_SYNC: + { + if (param_ptr[TONEX_PARAM_MODULATION_MODEL].Value == TONEX_MODULATION_CHORUS) + { + if (param_entry->Value) + { + lv_obj_add_state(objects.ui_modulation_sync_switch, LV_STATE_CHECKED); + lv_obj_add_flag(objects.ui_modulation_param1_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_modulation_param1_value, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_modulation_ts_dropdown, LV_OBJ_FLAG_HIDDEN); + } + else + { + lv_obj_clear_state(objects.ui_modulation_sync_switch, LV_STATE_CHECKED); + lv_obj_clear_flag(objects.ui_modulation_param1_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_modulation_param1_value, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_modulation_ts_dropdown, LV_OBJ_FLAG_HIDDEN); + } + } + } break; + + case TONEX_PARAM_MODULATION_CHORUS_TS: + { + if (param_ptr[TONEX_PARAM_MODULATION_MODEL].Value == TONEX_MODULATION_CHORUS) + { + lv_dropdown_set_selected(objects.ui_modulation_ts_dropdown, param_entry->Value); + } + } break; + + case TONEX_PARAM_MODULATION_CHORUS_RATE: + { + if (param_ptr[TONEX_PARAM_MODULATION_MODEL].Value == TONEX_MODULATION_CHORUS) + { + lv_slider_set_range(objects.ui_modulation_param1_slider, round(param_entry->Min), round(param_entry->Max)); + lv_slider_set_value(objects.ui_modulation_param1_slider, round(param_entry->Value), LV_ANIM_OFF); + + // show value and units + sprintf(value_string, "%1.1f Hz", param_entry->Value); + lv_label_set_text(objects.ui_modulation_param1_value, value_string); + } + } break; + + case TONEX_PARAM_MODULATION_CHORUS_DEPTH: + { + if (param_ptr[TONEX_PARAM_MODULATION_MODEL].Value == TONEX_MODULATION_CHORUS) + { + lv_slider_set_range(objects.ui_modulation_param2_slider, round(param_entry->Min), round(param_entry->Max)); + lv_slider_set_value(objects.ui_modulation_param2_slider, round(param_entry->Value), LV_ANIM_OFF); + + // show value and units + sprintf(value_string, "%d%%", (int)round(param_entry->Value)); + lv_label_set_text(objects.ui_modulation_param2_value, value_string); + } + } break; + + case TONEX_PARAM_MODULATION_CHORUS_LEVEL: + { + if (param_ptr[TONEX_PARAM_MODULATION_MODEL].Value == TONEX_MODULATION_CHORUS) + { + lv_slider_set_range(objects.ui_modulation_param3_slider, round(param_entry->Min), round(param_entry->Max)); + lv_slider_set_value(objects.ui_modulation_param3_slider, round(param_entry->Value), LV_ANIM_OFF); + + // show value and units + sprintf(value_string, "%1.1f", param_entry->Value); + lv_label_set_text(objects.ui_modulation_param3_value, value_string); + } + } break; + + case TONEX_PARAM_MODULATION_TREMOLO_SYNC: + { + if (param_ptr[TONEX_PARAM_MODULATION_MODEL].Value == TONEX_MODULATION_TREMOLO) + { + if (param_entry->Value) + { + lv_obj_add_state(objects.ui_modulation_sync_switch, LV_STATE_CHECKED); + lv_obj_add_flag(objects.ui_modulation_param1_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_modulation_param1_value, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_modulation_ts_dropdown, LV_OBJ_FLAG_HIDDEN); + } + else + { + lv_obj_clear_state(objects.ui_modulation_sync_switch, LV_STATE_CHECKED); + lv_obj_clear_flag(objects.ui_modulation_param1_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_modulation_param1_value, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_modulation_ts_dropdown, LV_OBJ_FLAG_HIDDEN); + } + } + } break; + + case TONEX_PARAM_MODULATION_TREMOLO_TS: + { + if (param_ptr[TONEX_PARAM_MODULATION_MODEL].Value == TONEX_MODULATION_TREMOLO) + { + lv_dropdown_set_selected(objects.ui_modulation_ts_dropdown, param_entry->Value); + } + } break; + + case TONEX_PARAM_MODULATION_TREMOLO_RATE: + { + if (param_ptr[TONEX_PARAM_MODULATION_MODEL].Value == TONEX_MODULATION_TREMOLO) + { + lv_slider_set_range(objects.ui_modulation_param1_slider, round(param_entry->Min), round(param_entry->Max)); + lv_slider_set_value(objects.ui_modulation_param1_slider, round(param_entry->Value), LV_ANIM_OFF); + + // show value and units + sprintf(value_string, "%1.1f Hz", param_entry->Value); + lv_label_set_text(objects.ui_modulation_param1_value, value_string); + } + } break; + + case TONEX_PARAM_MODULATION_TREMOLO_SHAPE: + { + if (param_ptr[TONEX_PARAM_MODULATION_MODEL].Value == TONEX_MODULATION_TREMOLO) + { + lv_slider_set_range(objects.ui_modulation_param2_slider, round(param_entry->Min), round(param_entry->Max)); + lv_slider_set_value(objects.ui_modulation_param2_slider, round(param_entry->Value), LV_ANIM_OFF); + + // show value and units + sprintf(value_string, "%1.1f", param_entry->Value); + lv_label_set_text(objects.ui_modulation_param2_value, value_string); + } + } break; + + case TONEX_PARAM_MODULATION_TREMOLO_SPREAD: + { + if (param_ptr[TONEX_PARAM_MODULATION_MODEL].Value == TONEX_MODULATION_TREMOLO) + { + lv_slider_set_range(objects.ui_modulation_param3_slider, round(param_entry->Min), round(param_entry->Max)); + lv_slider_set_value(objects.ui_modulation_param3_slider, round(param_entry->Value), LV_ANIM_OFF); + + // show value and units + sprintf(value_string, "%d%%", (int)round(param_entry->Value)); + lv_label_set_text(objects.ui_modulation_param3_value, value_string); + } + } break; + + case TONEX_PARAM_MODULATION_TREMOLO_LEVEL: + { + if (param_ptr[TONEX_PARAM_MODULATION_MODEL].Value == TONEX_MODULATION_TREMOLO) + { + lv_slider_set_range(objects.ui_modulation_param4_slider, round(param_entry->Min), round(param_entry->Max)); + lv_slider_set_value(objects.ui_modulation_param4_slider, round(param_entry->Value), LV_ANIM_OFF); + + // show value and units + sprintf(value_string, "%1.1f", param_entry->Value); + lv_label_set_text(objects.ui_modulation_param4_value, value_string); + } + } break; + + case TONEX_PARAM_MODULATION_PHASER_SYNC: + { + if (param_ptr[TONEX_PARAM_MODULATION_MODEL].Value == TONEX_MODULATION_PHASER) + { + if (param_entry->Value) + { + lv_obj_add_state(objects.ui_modulation_sync_switch, LV_STATE_CHECKED); + lv_obj_add_flag(objects.ui_modulation_param1_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_modulation_param1_value, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_modulation_ts_dropdown, LV_OBJ_FLAG_HIDDEN); + } + else + { + lv_obj_clear_state(objects.ui_modulation_sync_switch, LV_STATE_CHECKED); + lv_obj_clear_flag(objects.ui_modulation_param1_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_modulation_param1_value, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_modulation_ts_dropdown, LV_OBJ_FLAG_HIDDEN); + } + } + } break; + + case TONEX_PARAM_MODULATION_PHASER_TS: + { + if (param_ptr[TONEX_PARAM_MODULATION_MODEL].Value == TONEX_MODULATION_PHASER) + { + lv_dropdown_set_selected(objects.ui_modulation_ts_dropdown, param_entry->Value); + } + } break; + + case TONEX_PARAM_MODULATION_PHASER_RATE: + { + if (param_ptr[TONEX_PARAM_MODULATION_MODEL].Value == TONEX_MODULATION_PHASER) + { + lv_slider_set_range(objects.ui_modulation_param1_slider, round(param_entry->Min), round(param_entry->Max)); + lv_slider_set_value(objects.ui_modulation_param1_slider, round(param_entry->Value), LV_ANIM_OFF); + + // show value and units + sprintf(value_string, "%1.1f Hz", param_entry->Value); + lv_label_set_text(objects.ui_modulation_param1_value, value_string); + } + } break; + + case TONEX_PARAM_MODULATION_PHASER_DEPTH: + { + if (param_ptr[TONEX_PARAM_MODULATION_MODEL].Value == TONEX_MODULATION_PHASER) + { + lv_slider_set_range(objects.ui_modulation_param2_slider, round(param_entry->Min), round(param_entry->Max)); + lv_slider_set_value(objects.ui_modulation_param2_slider, round(param_entry->Value), LV_ANIM_OFF); + + // show value and units + sprintf(value_string, "%d%%", (int)round(param_entry->Value)); + lv_label_set_text(objects.ui_modulation_param2_value, value_string); + } + } break; + + case TONEX_PARAM_MODULATION_PHASER_LEVEL: + { + if (param_ptr[TONEX_PARAM_MODULATION_MODEL].Value == TONEX_MODULATION_PHASER) + { + lv_slider_set_range(objects.ui_modulation_param3_slider, round(param_entry->Min), round(param_entry->Max)); + lv_slider_set_value(objects.ui_modulation_param3_slider, round(param_entry->Value), LV_ANIM_OFF); + + // show value and units + sprintf(value_string, "%1.1f", param_entry->Value); + lv_label_set_text(objects.ui_modulation_param3_value, value_string); + } + } break; + + case TONEX_PARAM_MODULATION_FLANGER_SYNC: + { + if (param_ptr[TONEX_PARAM_MODULATION_MODEL].Value == TONEX_MODULATION_FLANGER) + { + if (param_entry->Value) + { + lv_obj_add_state(objects.ui_modulation_sync_switch, LV_STATE_CHECKED); + lv_obj_add_flag(objects.ui_modulation_param1_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_modulation_param1_value, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_modulation_ts_dropdown, LV_OBJ_FLAG_HIDDEN); + } + else + { + lv_obj_clear_state(objects.ui_modulation_sync_switch, LV_STATE_CHECKED); + lv_obj_clear_flag(objects.ui_modulation_param1_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_modulation_param1_value, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_modulation_ts_dropdown, LV_OBJ_FLAG_HIDDEN); + } + } + } break; + + case TONEX_PARAM_MODULATION_FLANGER_TS: + { + if (param_ptr[TONEX_PARAM_MODULATION_MODEL].Value == TONEX_MODULATION_FLANGER) + { + lv_dropdown_set_selected(objects.ui_modulation_ts_dropdown, param_entry->Value); + } + } break; + + case TONEX_PARAM_MODULATION_FLANGER_RATE: + { + if (param_ptr[TONEX_PARAM_MODULATION_MODEL].Value == TONEX_MODULATION_FLANGER) + { + lv_slider_set_range(objects.ui_modulation_param1_slider, round(param_entry->Min), round(param_entry->Max)); + lv_slider_set_value(objects.ui_modulation_param1_slider, round(param_entry->Value), LV_ANIM_OFF); + + // show value and units + sprintf(value_string, "%1.1f Hz", param_entry->Value); + lv_label_set_text(objects.ui_modulation_param1_value, value_string); + } + } break; + + case TONEX_PARAM_MODULATION_FLANGER_DEPTH: + { + if (param_ptr[TONEX_PARAM_MODULATION_MODEL].Value == TONEX_MODULATION_FLANGER) + { + lv_slider_set_range(objects.ui_modulation_param2_slider, round(param_entry->Min), round(param_entry->Max)); + lv_slider_set_value(objects.ui_modulation_param2_slider, round(param_entry->Value), LV_ANIM_OFF); + + // show value and units + sprintf(value_string, "%d%%", (int)round(param_entry->Value)); + lv_label_set_text(objects.ui_modulation_param2_value, value_string); + } + } break; + + case TONEX_PARAM_MODULATION_FLANGER_FEEDBACK: + { + if (param_ptr[TONEX_PARAM_MODULATION_MODEL].Value == TONEX_MODULATION_FLANGER) + { + lv_slider_set_range(objects.ui_modulation_param3_slider, round(param_entry->Min), round(param_entry->Max)); + lv_slider_set_value(objects.ui_modulation_param3_slider, round(param_entry->Value), LV_ANIM_OFF); + + // show value and units + sprintf(value_string, "%d%%", (int)round(param_entry->Value)); + lv_label_set_text(objects.ui_modulation_param3_value, value_string); + } + } break; + + case TONEX_PARAM_MODULATION_FLANGER_LEVEL: + { + if (param_ptr[TONEX_PARAM_MODULATION_MODEL].Value == TONEX_MODULATION_FLANGER) + { + lv_slider_set_range(objects.ui_modulation_param4_slider, round(param_entry->Min), round(param_entry->Max)); + lv_slider_set_value(objects.ui_modulation_param4_slider, round(param_entry->Value), LV_ANIM_OFF); + + // show value and units + sprintf(value_string, "%1.1f", param_entry->Value); + lv_label_set_text(objects.ui_modulation_param4_value, value_string); + } + } break; + + case TONEX_PARAM_MODULATION_ROTARY_SYNC: + { + if (param_ptr[TONEX_PARAM_MODULATION_MODEL].Value == TONEX_MODULATION_ROTARY) + { + if (param_entry->Value) + { + lv_obj_add_state(objects.ui_modulation_sync_switch, LV_STATE_CHECKED); + lv_obj_add_flag(objects.ui_modulation_param1_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_modulation_param1_value, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_modulation_ts_dropdown, LV_OBJ_FLAG_HIDDEN); + } + else + { + lv_obj_clear_state(objects.ui_modulation_sync_switch, LV_STATE_CHECKED); + lv_obj_clear_flag(objects.ui_modulation_param1_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_modulation_param1_value, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_modulation_ts_dropdown, LV_OBJ_FLAG_HIDDEN); + } + } + } break; + + case TONEX_PARAM_MODULATION_ROTARY_TS: + { + if (param_ptr[TONEX_PARAM_MODULATION_MODEL].Value == TONEX_MODULATION_ROTARY) + { + lv_dropdown_set_selected(objects.ui_modulation_ts_dropdown, param_entry->Value); + } + } break; + + case TONEX_PARAM_MODULATION_ROTARY_SPEED: + { + if (param_ptr[TONEX_PARAM_MODULATION_MODEL].Value == TONEX_MODULATION_ROTARY) + { + lv_slider_set_range(objects.ui_modulation_param1_slider, round(param_entry->Min), round(param_entry->Max)); + lv_slider_set_value(objects.ui_modulation_param1_slider, round(param_entry->Value), LV_ANIM_OFF); + + // show value and units + sprintf(value_string, "%d RPM", (int)round(param_entry->Value)); + lv_label_set_text(objects.ui_modulation_param1_value, value_string); + } + } break; + + case TONEX_PARAM_MODULATION_ROTARY_RADIUS: + { + if (param_ptr[TONEX_PARAM_MODULATION_MODEL].Value == TONEX_MODULATION_ROTARY) + { + lv_slider_set_range(objects.ui_modulation_param2_slider, round(param_entry->Min), round(param_entry->Max)); + lv_slider_set_value(objects.ui_modulation_param2_slider, round(param_entry->Value), LV_ANIM_OFF); + + // show value and units + sprintf(value_string, "%d mm", (int)round(param_entry->Value)); + lv_label_set_text(objects.ui_modulation_param2_value, value_string); + } + } break; + + case TONEX_PARAM_MODULATION_ROTARY_SPREAD: + { + if (param_ptr[TONEX_PARAM_MODULATION_MODEL].Value == TONEX_MODULATION_ROTARY) + { + lv_slider_set_range(objects.ui_modulation_param3_slider, round(param_entry->Min), round(param_entry->Max)); + lv_slider_set_value(objects.ui_modulation_param3_slider, round(param_entry->Value), LV_ANIM_OFF); + + // show value and units + sprintf(value_string, "%d%%", (int)round(param_entry->Value)); + lv_label_set_text(objects.ui_modulation_param3_value, value_string); + } + } break; + + case TONEX_PARAM_MODULATION_ROTARY_LEVEL: + { + if (param_ptr[TONEX_PARAM_MODULATION_MODEL].Value == TONEX_MODULATION_ROTARY) + { + lv_slider_set_range(objects.ui_modulation_param4_slider, round(param_entry->Min), round(param_entry->Max)); + lv_slider_set_value(objects.ui_modulation_param4_slider, round(param_entry->Value), LV_ANIM_OFF); + + // show value and units + sprintf(value_string, "%1.1f", param_entry->Value); + lv_label_set_text(objects.ui_modulation_param4_value, value_string); + } + } break; + + case TONEX_PARAM_DELAY_POST: + { + if (param_entry->Value) + { + lv_obj_add_state(objects.ui_delay_post_switch, LV_STATE_CHECKED); + } + else + { + lv_obj_clear_state(objects.ui_delay_post_switch, LV_STATE_CHECKED); + } + } break; + + case TONEX_PARAM_DELAY_ENABLE: + { + if (param_entry->Value) + { + lv_obj_add_state(objects.ui_delay_enable_switch, LV_STATE_CHECKED); + + // show enabled icon with letter to indicate the type + switch ((int)param_ptr[TONEX_PARAM_DELAY_MODEL].Value) + { + case TONEX_DELAY_DIGITAL: + { + lv_img_set_src(objects.ui_icon_delay, (lv_obj_t*)&img_effect_icon_delay_on_d); + } break; + + case TONEX_DELAY_TAPE: + default: + { + lv_img_set_src(objects.ui_icon_delay, (lv_obj_t*)&img_effect_icon_delay_on_t); + } break; + } + } + else + { + lv_obj_clear_state(objects.ui_delay_enable_switch, LV_STATE_CHECKED); + lv_img_set_src(objects.ui_icon_delay, (lv_obj_t*)&img_effect_icon_delay_off); + } + } break; + + case TONEX_PARAM_DELAY_MODEL: + { + lv_dropdown_set_selected(objects.ui_delay_model_dropdown, param_entry->Value); + } break; + + case TONEX_PARAM_DELAY_DIGITAL_SYNC: + { + if (param_ptr[TONEX_PARAM_DELAY_MODEL].Value == TONEX_DELAY_DIGITAL) + { + if (param_entry->Value) + { + lv_obj_add_state(objects.ui_delay_sync_switch, LV_STATE_CHECKED); + lv_obj_add_flag(objects.ui_delay_ts_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_delay_ts_value, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_delay_ts_dropdown, LV_OBJ_FLAG_HIDDEN); + } + else + { + lv_obj_clear_state(objects.ui_delay_sync_switch, LV_STATE_CHECKED); + lv_obj_clear_flag(objects.ui_delay_ts_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_delay_ts_value, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_delay_ts_dropdown, LV_OBJ_FLAG_HIDDEN); + } + } + } break; + + case TONEX_PARAM_DELAY_DIGITAL_TS: + { + if (param_ptr[TONEX_PARAM_DELAY_MODEL].Value == TONEX_DELAY_DIGITAL) + { + lv_dropdown_set_selected(objects.ui_delay_ts_dropdown, param_entry->Value); + } + } break; + + case TONEX_PARAM_DELAY_DIGITAL_TIME: + { + if (param_ptr[TONEX_PARAM_DELAY_MODEL].Value == TONEX_DELAY_DIGITAL) + { + lv_slider_set_range(objects.ui_delay_ts_slider, round(param_entry->Min), round(param_entry->Max)); + lv_slider_set_value(objects.ui_delay_ts_slider, round(param_entry->Value), LV_ANIM_OFF); + + // show value and units + sprintf(value_string, "%d ms", (int)round(param_entry->Value)); + lv_label_set_text(objects.ui_delay_ts_value, value_string); + } + } break; + + case TONEX_PARAM_DELAY_DIGITAL_FEEDBACK: + { + if (param_ptr[TONEX_PARAM_DELAY_MODEL].Value == TONEX_DELAY_DIGITAL) + { + lv_slider_set_range(objects.ui_delay_feedback_slider, round(param_entry->Min), round(param_entry->Max)); + lv_slider_set_value(objects.ui_delay_feedback_slider, round(param_entry->Value), LV_ANIM_OFF); + + // show value and units + sprintf(value_string, "%d%%", (int)round(param_entry->Value)); + lv_label_set_text(objects.ui_delay_feedback_value, value_string); + } + } break; + + case TONEX_PARAM_DELAY_DIGITAL_MODE: + { + if (param_ptr[TONEX_PARAM_DELAY_MODEL].Value == TONEX_DELAY_DIGITAL) + { + if (param_entry->Value) + { + lv_obj_add_state(objects.ui_delay_ping_pong_switch, LV_STATE_CHECKED); + } + else + { + lv_obj_clear_state(objects.ui_delay_ping_pong_switch, LV_STATE_CHECKED); + } + } + } break; + + case TONEX_PARAM_DELAY_DIGITAL_MIX: + { + if (param_ptr[TONEX_PARAM_DELAY_MODEL].Value == TONEX_DELAY_DIGITAL) + { + lv_slider_set_range(objects.ui_delay_mix_slider, round(param_entry->Min), round(param_entry->Max)); + lv_slider_set_value(objects.ui_delay_mix_slider, round(param_entry->Value), LV_ANIM_OFF); + + // show value and units + sprintf(value_string, "%d%%", (int)round(param_entry->Value)); + lv_label_set_text(objects.ui_delay_mix_value, value_string); + } + } break; + + case TONEX_PARAM_DELAY_TAPE_SYNC: + { + if (param_ptr[TONEX_PARAM_DELAY_MODEL].Value == TONEX_DELAY_TAPE) + { + if (param_entry->Value) + { + lv_obj_add_state(objects.ui_delay_sync_switch, LV_STATE_CHECKED); + lv_obj_add_flag(objects.ui_delay_ts_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_delay_ts_value, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_delay_ts_dropdown, LV_OBJ_FLAG_HIDDEN); + } + else + { + lv_obj_clear_state(objects.ui_delay_sync_switch, LV_STATE_CHECKED); + lv_obj_clear_flag(objects.ui_delay_ts_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_delay_ts_value, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_delay_ts_dropdown, LV_OBJ_FLAG_HIDDEN); + } + } + } break; + + case TONEX_PARAM_DELAY_TAPE_TS: + { + if (param_ptr[TONEX_PARAM_DELAY_MODEL].Value == TONEX_DELAY_TAPE) + { + lv_dropdown_set_selected(objects.ui_delay_ts_dropdown, param_entry->Value); + } + } break; + + case TONEX_PARAM_DELAY_TAPE_TIME: + { + if (param_ptr[TONEX_PARAM_DELAY_MODEL].Value == TONEX_DELAY_TAPE) + { + lv_slider_set_range(objects.ui_delay_ts_slider, round(param_entry->Min), round(param_entry->Max)); + lv_slider_set_value(objects.ui_delay_ts_slider, round(param_entry->Value), LV_ANIM_OFF); + + // show value and units + sprintf(value_string, "%d ms", (int)round(param_entry->Value)); + lv_label_set_text(objects.ui_delay_ts_value, value_string); + } + } break; + + case TONEX_PARAM_DELAY_TAPE_FEEDBACK: + { + if (param_ptr[TONEX_PARAM_DELAY_MODEL].Value == TONEX_DELAY_TAPE) + { + lv_slider_set_range(objects.ui_delay_feedback_slider, round(param_entry->Min), round(param_entry->Max)); + lv_slider_set_value(objects.ui_delay_feedback_slider, round(param_entry->Value), LV_ANIM_OFF); + + // show value and units + sprintf(value_string, "%d%%", (int)round(param_entry->Value)); + lv_label_set_text(objects.ui_delay_feedback_value, value_string); + } + } break; + + case TONEX_PARAM_DELAY_TAPE_MODE: + { + if (param_ptr[TONEX_PARAM_DELAY_MODEL].Value == TONEX_DELAY_TAPE) + { + if (param_entry->Value) + { + lv_obj_add_state(objects.ui_delay_ping_pong_switch, LV_STATE_CHECKED); + } + else + { + lv_obj_clear_state(objects.ui_delay_ping_pong_switch, LV_STATE_CHECKED); + } + } + } break; + + case TONEX_PARAM_DELAY_TAPE_MIX: + { + if (param_ptr[TONEX_PARAM_DELAY_MODEL].Value == TONEX_DELAY_TAPE) + { + lv_slider_set_range(objects.ui_delay_mix_slider, round(param_entry->Min), round(param_entry->Max)); + lv_slider_set_value(objects.ui_delay_mix_slider, round(param_entry->Value), LV_ANIM_OFF); + + // show value and units + sprintf(value_string, "%d%%", (int)round(param_entry->Value)); + lv_label_set_text(objects.ui_delay_mix_value, value_string); + } + } break; + + case TONEX_GLOBAL_CABSIM_BYPASS: + { + if (param_entry->Value) + { + lv_obj_add_state(objects.ui_cab_bypass_switch, LV_STATE_CHECKED); + } + else + { + lv_obj_clear_state(objects.ui_cab_bypass_switch, LV_STATE_CHECKED); + } + } break; + + case TONEX_GLOBAL_TEMPO_SOURCE: + { + if (param_entry->Value) + { + lv_obj_add_state(objects.ui_tempo_source_switch, LV_STATE_CHECKED); + } + else + { + lv_obj_clear_state(objects.ui_tempo_source_switch, LV_STATE_CHECKED); + } + } break; + + case TONEX_GLOBAL_BPM: + { + lv_slider_set_range(objects.ui_bpm_slider, round(param_entry->Min), round(param_entry->Max)); + lv_slider_set_value(objects.ui_bpm_slider, round(param_entry->Value), LV_ANIM_OFF); + + // show value and units + sprintf(value_string, "%1.1f", param_entry->Value); + lv_label_set_text(objects.ui_bpm_value, value_string); + + char buf[128]; + sprintf(buf, "%.1f", param_entry->Value); + lv_label_set_text(objects.ui_bpm_value_label, buf); + +#if CONFIG_TONEX_CONTROLLER_SHOW_BPM_INDICATOR + ui_BPMAnimate(objects.ui_bpm_indicator, 1000 * 60 / param_entry->Value); +#endif + } break; + + case TONEX_GLOBAL_INPUT_TRIM: + { + lv_slider_set_range(objects.ui_input_trim_slider, round(param_entry->Min), round(param_entry->Max)); + lv_slider_set_value(objects.ui_input_trim_slider, round(param_entry->Value), LV_ANIM_OFF); + + // show value and units + sprintf(value_string, "%1.1f db", param_entry->Value); + lv_label_set_text(objects.ui_input_trim_value, value_string); + } break; + + case TONEX_GLOBAL_TUNING_REFERENCE: + { + lv_slider_set_range(objects.ui_tuning_reference_slider, round(param_entry->Min), round(param_entry->Max)); + lv_slider_set_value(objects.ui_tuning_reference_slider, round(param_entry->Value), LV_ANIM_OFF); + + // show value and units + sprintf(value_string, "%d Hz", (int)round(param_entry->Value)); + lv_label_set_text(objects.ui_tuning_reference_value, value_string); + } break; + + case TONEX_GLOBAL_MASTER_VOLUME: + { + lv_slider_set_range(objects.ui_volume_slider, round(param_entry->Min), round(param_entry->Max)); + lv_slider_set_value(objects.ui_volume_slider, round(param_entry->Value), LV_ANIM_OFF); + + // show value and units + sprintf(value_string, "%1.1f db", param_entry->Value); + lv_label_set_text(objects.ui_volume_value, value_string); + } break; + } + + tonex_params_release_locked_access(); + } + } +#else //CONFIG_TONEX_CONTROLLER_DISPLAY_FULL_UI + + for (uint16_t param = 0; param < TONEX_GLOBAL_LAST; param++) + { + if (tonex_params_get_locked_access(¶m_ptr) == ESP_OK) + { + tModellerParameter* param_entry = ¶m_ptr[param]; + + // debug + //ESP_LOGI(TAG, "Param %d: val: %02f, min: %02f, max: %02f", param, param_entry->Value, param_entry->Min, param_entry->Max); + + switch (param) + { + case TONEX_GLOBAL_BPM: + { + char buf[128]; + sprintf(buf, "%d", (int)round(param_entry->Value)); + lv_label_set_text(objects.ui_bpm, buf); + } break; + + case TONEX_PARAM_COMP_ENABLE: + { + if (param_entry->Value) + { + lv_obj_set_style_border_color(objects.ui_cstatus, lv_color_hex(0xDDDD00), LV_PART_MAIN | LV_STATE_DEFAULT); + } + else + { + lv_obj_set_style_border_color(objects.ui_cstatus, lv_color_hex(0x563F2A), LV_PART_MAIN | LV_STATE_DEFAULT); + } + } break; + + case TONEX_PARAM_MODULATION_ENABLE: + { + if (param_entry->Value) + { + lv_obj_set_style_border_color(objects.ui_mstatus, lv_color_hex(0xEEAA00), LV_PART_MAIN | LV_STATE_DEFAULT); + } + else + { + lv_obj_set_style_border_color(objects.ui_mstatus, lv_color_hex(0x563F2A), LV_PART_MAIN | LV_STATE_DEFAULT); + } + } break; + + case TONEX_PARAM_DELAY_ENABLE: + { + if (param_entry->Value) + { + lv_obj_set_style_border_color(objects.ui_dstatus, lv_color_hex(0x00CC00), LV_PART_MAIN | LV_STATE_DEFAULT); + } + else + { + lv_obj_set_style_border_color(objects.ui_dstatus, lv_color_hex(0x563F2A), LV_PART_MAIN | LV_STATE_DEFAULT); + } + } break; + + case TONEX_PARAM_REVERB_ENABLE: + { + if (param_entry->Value) + { + lv_obj_set_style_border_color(objects.ui_rstatus, lv_color_hex(0x33FFFF), LV_PART_MAIN | LV_STATE_DEFAULT); + } + else + { + lv_obj_set_style_border_color(objects.ui_rstatus, lv_color_hex(0x563F2A), LV_PART_MAIN | LV_STATE_DEFAULT); + } + } break; + + } + + tonex_params_release_locked_access(); + } + } +#endif //CONFIG_TONEX_CONTROLLER_DISPLAY_FULL_UI +#endif //CONFIG_TONEX_CONTROLLER_HAS_DISPLAY + + return 1; +} diff --git a/source/main/display_tonex.h b/source/main/display_tonex.h new file mode 100644 index 00000000..bc7c8ee7 --- /dev/null +++ b/source/main/display_tonex.h @@ -0,0 +1,37 @@ +/* + Copyright (C) 2024 Greg Smith + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + +*/ + +#ifndef _DISPLAY_TONEX_H +#define _DISPLAY_TONEX_H + +#ifdef __cplusplus +extern "C" { +#endif + +#include "lvgl.h" + +void tonex_show_settings_tab(lv_event_t* e); +void tonex_action_effect_icon_clicked(lv_event_t* e); +void tonex_action_parameter_changed(lv_event_t* e); +void tonex_update_icon_order(void); +uint8_t tonex_update_ui_parameters(void); + +#ifdef __cplusplus +} /*extern "C"*/ +#endif + +#endif \ No newline at end of file diff --git a/source/main/display_valeton.c b/source/main/display_valeton.c new file mode 100644 index 00000000..f5dd8308 --- /dev/null +++ b/source/main/display_valeton.c @@ -0,0 +1,3156 @@ +/* + Copyright (C) 2025 Greg Smith + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + +*/ + +#include +#include "sdkconfig.h" +#include +#include "freertos/FreeRTOS.h" +#include "freertos/task.h" +#include "freertos/semphr.h" +#include "esp_timer.h" +#include "esp_lcd_panel_ops.h" +#include "esp_lcd_panel_rgb.h" +#include "driver/gpio.h" +#include "esp_err.h" +#include "esp_system.h" +#include "esp_wifi.h" +#include "esp_event.h" +#include "esp_log.h" +#include "nvs_flash.h" +#include "driver/uart.h" +#include "driver/gpio.h" +#include "driver/spi_master.h" +#include "lvgl.h" +#include "demos/lv_demos.h" +#include "esp_lcd_panel_io.h" +#include "esp_lcd_panel_vendor.h" +#include "esp_lcd_panel_ops.h" +#include "esp_vfs.h" +#include "esp_vfs_fat.h" +#include "esp_ota_ops.h" +#include "sys/param.h" +#include "esp_wifi.h" +#include "esp_log.h" +#include "esp_mac.h" +#include "esp_crc.h" +#include "esp_now.h" +#include "driver/i2c.h" +#include "soc/lldesc.h" +#include "esp_lcd_touch_gt911.h" +#include "esp_lcd_touch_cst816s.h" +#include "esp_lcd_gc9107.h" +#include "esp_lcd_sh8601.h" +#include "esp_intr_alloc.h" +#include "main.h" +#if CONFIG_TONEX_CONTROLLER_HAS_DISPLAY + #include "ui.h" + #include "images.h" + #include "actions.h" +#endif +#include "usb/usb_host.h" +#include "usb/cdc_acm_host.h" +#include "esp_partition.h" +#include "usb_comms.h" +#include "usb_valeton_gp5.h" +#include "usb_tonex.h" +#include "display.h" +#include "display_valeton.h" +#include "CH422G.h" +#include "control.h" +#include "task_priorities.h" +#include "midi_control.h" +#include "LP5562.h" +#include "valeton_params.h" +#include "platform_common.h" + +static const char __attribute__((unused)) *TAG = "app_display_valeton"; + +/**************************************************************************** +* NAME: +* DESCRIPTION: +* PARAMETERS: +* RETURN: +* NOTES: +*****************************************************************************/ +void valeton_show_settings_tab(lv_event_t * e) +{ +#if CONFIG_TONEX_CONTROLLER_DISPLAY_FULL_UI + lv_obj_t* target = lv_event_get_current_target(e); + + if (target == objects.ui_icon_val_pre) + { + lv_tabview_set_act(objects.ui_val_settings_tab_view, CONFIG_TAB_VAL_PRE, LV_ANIM_OFF); + } + else if (target == objects.ui_icon_val_nr) + { + lv_tabview_set_act(objects.ui_val_settings_tab_view, CONFIG_TAB_VAL_NR, LV_ANIM_OFF); + } + else if (target == objects.ui_icon_val_rvb) + { + lv_tabview_set_act(objects.ui_val_settings_tab_view, CONFIG_TAB_VAL_RVB, LV_ANIM_OFF); + } + else if (target == objects.ui_icon_val_amp) + { + lv_tabview_set_act(objects.ui_val_settings_tab_view, CONFIG_TAB_VAL_AMP, LV_ANIM_OFF); + } + else if (target == objects.ui_icon_val_cab) + { + lv_tabview_set_act(objects.ui_val_settings_tab_view, CONFIG_TAB_VAL_CAB, LV_ANIM_OFF); + } + else if (target == objects.ui_icon_val_tc) + { + lv_tabview_set_act(objects.ui_val_settings_tab_view, CONFIG_TAB_VAL_NR, LV_ANIM_OFF); + } + else if (target == objects.ui_icon_val_eq) + { + lv_tabview_set_act(objects.ui_val_settings_tab_view, CONFIG_TAB_VAL_EQ, LV_ANIM_OFF); + } + else if (target == objects.ui_icon_val_mod) + { + lv_tabview_set_act(objects.ui_val_settings_tab_view, CONFIG_TAB_VAL_MOD, LV_ANIM_OFF); + } + else if (target == objects.ui_icon_val_dly) + { + lv_tabview_set_act(objects.ui_val_settings_tab_view, CONFIG_TAB_VAL_DLY, LV_ANIM_OFF); + } + else if (target == objects.ui_icon_val_dst) + { + lv_tabview_set_act(objects.ui_val_settings_tab_view, CONFIG_TAB_VAL_DST, LV_ANIM_OFF); + } +#endif //CONFIG_TONEX_CONTROLLER_DISPLAY_FULL_UI +} + +/**************************************************************************** +* NAME: +* DESCRIPTION: +* PARAMETERS: +* RETURN: +* NOTES: +*****************************************************************************/ +void valeton_action_effect_icon_clicked(lv_event_t * e) +{ +#if CONFIG_TONEX_CONTROLLER_DISPLAY_FULL_UI + tModellerParameter* param_ptr; + float value; + lv_event_code_t event_code = lv_event_get_code(e); + lv_obj_t* event_object = lv_event_get_target(e); + + // called from LVGL + ESP_LOGI(TAG, "action_effect_icon_clicked"); + + if (event_code == LV_EVENT_SHORT_CLICKED) + { + if (event_object == objects.ui_icon_val_pre) + { + ESP_LOGI(TAG, "UI Toggle Pre"); + + if (valeton_params_get_locked_access(¶m_ptr) == ESP_OK) + { + if (param_ptr[VALETON_PARAM_PRE_ENABLE].Value == 0.0f) + { + value = 1.0f; + } + else + { + value = 0.0f; + } + valeton_params_release_locked_access(); + + usb_modify_parameter(VALETON_PARAM_PRE_ENABLE, value); + } + } + else if (event_object == objects.ui_icon_val_nr) + { + ESP_LOGI(TAG, "UI Toggle NR"); + + if (valeton_params_get_locked_access(¶m_ptr) == ESP_OK) + { + if (param_ptr[VALETON_PARAM_NR_ENABLE].Value == 0.0f) + { + value = 1.0f; + } + else + { + value = 0.0f; + } + valeton_params_release_locked_access(); + + usb_modify_parameter(VALETON_PARAM_NR_ENABLE, value); + } + } + else if (event_object == objects.ui_icon_val_rvb) + { + ESP_LOGI(TAG, "UI Toggle RVB"); + + if (valeton_params_get_locked_access(¶m_ptr) == ESP_OK) + { + if (param_ptr[VALETON_PARAM_RVB_ENABLE].Value == 0.0f) + { + value = 1.0f; + } + else + { + value = 0.0f; + } + valeton_params_release_locked_access(); + + usb_modify_parameter(VALETON_PARAM_RVB_ENABLE, value); + } + } + else if (event_object == objects.ui_icon_val_eq) + { + ESP_LOGI(TAG, "UI Toggle EQ"); + + if (valeton_params_get_locked_access(¶m_ptr) == ESP_OK) + { + if (param_ptr[VALETON_PARAM_EQ_ENABLE].Value == 0.0f) + { + value = 1.0f; + } + else + { + value = 0.0f; + } + valeton_params_release_locked_access(); + + usb_modify_parameter(VALETON_PARAM_EQ_ENABLE, value); + } + } + else if (event_object == objects.ui_icon_val_mod) + { + ESP_LOGI(TAG, "UI Toggle Mod"); + + if (valeton_params_get_locked_access(¶m_ptr) == ESP_OK) + { + if (param_ptr[VALETON_PARAM_MOD_ENABLE].Value == 0.0f) + { + value = 1.0f; + } + else + { + value = 0.0f; + } + valeton_params_release_locked_access(); + + usb_modify_parameter(VALETON_PARAM_MOD_ENABLE, value); + } + } + else if (event_object == objects.ui_icon_val_dly) + { + ESP_LOGI(TAG, "UI Toggle Dly"); + + if (valeton_params_get_locked_access(¶m_ptr) == ESP_OK) + { + if (param_ptr[VALETON_PARAM_DLY_ENABLE].Value == 0.0f) + { + value = 1.0f; + } + else + { + value = 0.0f; + } + valeton_params_release_locked_access(); + + usb_modify_parameter(VALETON_PARAM_DLY_ENABLE, value); + } + } + else if (event_object == objects.ui_icon_val_dst) + { + ESP_LOGI(TAG, "UI Toggle Dst"); + + if (valeton_params_get_locked_access(¶m_ptr) == ESP_OK) + { + if (param_ptr[VALETON_PARAM_DIST_ENABLE].Value == 0.0f) + { + value = 1.0f; + } + else + { + value = 0.0f; + } + valeton_params_release_locked_access(); + + usb_modify_parameter(VALETON_PARAM_DIST_ENABLE, value); + } + } + else if (event_object == objects.ui_icon_val_amp) + { + if (valeton_params_get_locked_access(¶m_ptr) == ESP_OK) + { + if (param_ptr[VALETON_PARAM_AMP_ENABLE].Value == 0.0f) + { + value = 1.0f; + } + else + { + value = 0.0f; + } + valeton_params_release_locked_access(); + + usb_modify_parameter(VALETON_PARAM_AMP_ENABLE, value); + } + } + else if (event_object == objects.ui_icon_val_cab) + { + if (valeton_params_get_locked_access(¶m_ptr) == ESP_OK) + { + if (param_ptr[VALETON_PARAM_CAB_ENABLE].Value == 0.0f) + { + value = 1.0f; + } + else + { + value = 0.0f; + } + valeton_params_release_locked_access(); + + usb_modify_parameter(VALETON_PARAM_CAB_ENABLE, value); + } + } + else if (event_object == objects.ui_icon_val_tc) + { + if (valeton_params_get_locked_access(¶m_ptr) == ESP_OK) + { + if (param_ptr[VALETON_PARAM_NS_ENABLE].Value == 0.0f) + { + value = 1.0f; + } + else + { + value = 0.0f; + } + valeton_params_release_locked_access(); + + usb_modify_parameter(VALETON_PARAM_NS_ENABLE, value); + } + } + else + { + ESP_LOGI(TAG, "UI Toggle unknown"); + } + } + else if (event_code == LV_EVENT_LONG_PRESSED) + { + // change to settings page and jump to relevant tab + action_show_settings_page(e); + valeton_show_settings_tab(e); + } +#endif //CONFIG_TONEX_CONTROLLER_DISPLAY_FULL_UI +} + +/**************************************************************************** +* NAME: +* DESCRIPTION: +* PARAMETERS: +* RETURN: +* NOTES: +*****************************************************************************/ +void valeton_action_parameter_changed(lv_event_t * e) +{ +#if CONFIG_TONEX_CONTROLLER_DISPLAY_FULL_UI + // get the object that was changed + lv_obj_t* obj = lv_event_get_current_target(e); + + ESP_LOGI(TAG, "Valeton Parameter changed"); + + // Block Switches + if (obj == objects.ui_val_nr_block_switch) + { + usb_modify_parameter(VALETON_PARAM_NR_ENABLE, lv_obj_has_state(obj, LV_STATE_CHECKED) ? 1 : 0); + } + else if (obj == objects.ui_val_pre_block_switch) + { + usb_modify_parameter(VALETON_PARAM_PRE_ENABLE, lv_obj_has_state(obj, LV_STATE_CHECKED) ? 1 : 0); + } + else if (obj == objects.ui_val_dst_block_switch) + { + usb_modify_parameter(VALETON_PARAM_DIST_ENABLE, lv_obj_has_state(obj, LV_STATE_CHECKED) ? 1 : 0); + } + else if (obj == objects.ui_val_amp_block_switch) + { + usb_modify_parameter(VALETON_PARAM_AMP_ENABLE, lv_obj_has_state(obj, LV_STATE_CHECKED) ? 1 : 0); + } + else if (obj == objects.ui_val_cab_block_switch) + { + usb_modify_parameter(VALETON_PARAM_CAB_ENABLE, lv_obj_has_state(obj, LV_STATE_CHECKED) ? 1 : 0); + } + else if (obj == objects.ui_val_eq_block_switch) + { + usb_modify_parameter(VALETON_PARAM_EQ_ENABLE, lv_obj_has_state(obj, LV_STATE_CHECKED) ? 1 : 0); + } + else if (obj == objects.ui_val_mod_block_switch) + { + usb_modify_parameter(VALETON_PARAM_MOD_ENABLE, lv_obj_has_state(obj, LV_STATE_CHECKED) ? 1 : 0); + } + else if (obj == objects.ui_val_dly_block_switch) + { + usb_modify_parameter(VALETON_PARAM_DLY_ENABLE, lv_obj_has_state(obj, LV_STATE_CHECKED) ? 1 : 0); + } + else if (obj == objects.ui_val_rvb_block_switch) + { + usb_modify_parameter(VALETON_PARAM_RVB_ENABLE, lv_obj_has_state(obj, LV_STATE_CHECKED) ? 1 : 0); + } + else if (obj == objects.ui_val_ns_block_switch) + { + usb_modify_parameter(VALETON_PARAM_NS_ENABLE, lv_obj_has_state(obj, LV_STATE_CHECKED) ? 1 : 0); + } + // Models + else if (obj == objects.ui_val_nr_model_dropdown) + { + usb_modify_parameter(VALETON_PARAM_NR_TYPE, lv_dropdown_get_selected(obj)); + } + else if (obj == objects.ui_val_pre_model_dropdown) + { + usb_modify_parameter(VALETON_PARAM_PRE_TYPE, lv_dropdown_get_selected(obj)); + } + else if (obj == objects.ui_val_dst_model_dropdown) + { + usb_modify_parameter(VALETON_PARAM_DIST_TYPE, lv_dropdown_get_selected(obj)); + } + else if (obj == objects.ui_val_amp_model_dropdown) + { + usb_modify_parameter(VALETON_PARAM_AMP_TYPE, lv_dropdown_get_selected(obj)); + } + else if (obj == objects.ui_val_cab_model_dropdown) + { + usb_modify_parameter(VALETON_PARAM_CAB_TYPE, lv_dropdown_get_selected(obj)); + } + else if (obj == objects.ui_val_eq_model_dropdown) + { + usb_modify_parameter(VALETON_PARAM_EQ_TYPE, lv_dropdown_get_selected(obj)); + } + else if (obj == objects.ui_val_mod_model_dropdown) + { + usb_modify_parameter(VALETON_PARAM_MOD_TYPE, lv_dropdown_get_selected(obj)); + } + else if (obj == objects.ui_val_dly_model_dropdown) + { + usb_modify_parameter(VALETON_PARAM_DLY_TYPE, lv_dropdown_get_selected(obj)); + } + else if (obj == objects.ui_val_rvb_model_dropdown) + { + usb_modify_parameter(VALETON_PARAM_RVB_TYPE, lv_dropdown_get_selected(obj)); + } + else if (obj == objects.ui_val_ns_model_dropdown) + { + usb_modify_parameter(VALETON_PARAM_NS_TYPE, lv_dropdown_get_selected(obj)); + } + // NR params + else if (obj == objects.ui_val_nr_param0_slider) + { + usb_modify_parameter(VALETON_PARAM_NR_PARAM_0, ((float)lv_slider_get_value(obj))); + } + else if (obj == objects.ui_val_nr_param1_slider) + { + usb_modify_parameter(VALETON_PARAM_NR_PARAM_1, ((float)lv_slider_get_value(obj))); + } + else if (obj == objects.ui_val_nr_param2_slider) + { + usb_modify_parameter(VALETON_PARAM_NR_PARAM_2, ((float)lv_slider_get_value(obj))); + } + else if (obj == objects.ui_val_nr_param3_slider) + { + usb_modify_parameter(VALETON_PARAM_NR_PARAM_3, ((float)lv_slider_get_value(obj))); + } + else if (obj == objects.ui_val_nr_param4_slider) + { + usb_modify_parameter(VALETON_PARAM_NR_PARAM_4, ((float)lv_slider_get_value(obj))); + } + // Pre block + else if (obj == objects.ui_val_pre_param0_slider) + { + usb_modify_parameter(VALETON_PARAM_PRE_PARAM_0, ((float)lv_slider_get_value(obj))); + } + else if (obj == objects.ui_val_pre_param1_slider) + { + usb_modify_parameter(VALETON_PARAM_PRE_PARAM_1, ((float)lv_slider_get_value(obj))); + } + else if (obj == objects.ui_val_pre_param2_slider) + { + usb_modify_parameter(VALETON_PARAM_PRE_PARAM_2, ((float)lv_slider_get_value(obj))); + } + else if (obj == objects.ui_val_pre_param3_slider) + { + usb_modify_parameter(VALETON_PARAM_PRE_PARAM_3, ((float)lv_slider_get_value(obj))); + } + else if (obj == objects.ui_val_pre_param4_slider) + { + usb_modify_parameter(VALETON_PARAM_PRE_PARAM_4, ((float)lv_slider_get_value(obj))); + } + // Dst block + else if (obj == objects.ui_val_dst_param0_slider) + { + usb_modify_parameter(VALETON_PARAM_DIST_PARAM_0, ((float)lv_slider_get_value(obj))); + } + else if (obj == objects.ui_val_dst_param1_slider) + { + usb_modify_parameter(VALETON_PARAM_DIST_PARAM_1, ((float)lv_slider_get_value(obj))); + } + else if (obj == objects.ui_val_dst_param2_slider) + { + usb_modify_parameter(VALETON_PARAM_DIST_PARAM_2, ((float)lv_slider_get_value(obj))); + } + else if (obj == objects.ui_val_dst_param3_slider) + { + usb_modify_parameter(VALETON_PARAM_DIST_PARAM_3, ((float)lv_slider_get_value(obj))); + } + else if (obj == objects.ui_val_dst_param4_slider) + { + usb_modify_parameter(VALETON_PARAM_DIST_PARAM_4, ((float)lv_slider_get_value(obj))); + } + // Amp block + else if (obj == objects.ui_val_amp_param0_slider) + { + usb_modify_parameter(VALETON_PARAM_AMP_PARAM_0, ((float)lv_slider_get_value(obj))); + } + else if (obj == objects.ui_val_amp_param1_slider) + { + usb_modify_parameter(VALETON_PARAM_AMP_PARAM_1, ((float)lv_slider_get_value(obj))); + } + else if (obj == objects.ui_val_amp_param2_slider) + { + usb_modify_parameter(VALETON_PARAM_AMP_PARAM_2, ((float)lv_slider_get_value(obj))); + } + else if (obj == objects.ui_val_amp_param3_slider) + { + usb_modify_parameter(VALETON_PARAM_AMP_PARAM_3, ((float)lv_slider_get_value(obj))); + } + else if (obj == objects.ui_val_amp_param4_slider) + { + usb_modify_parameter(VALETON_PARAM_AMP_PARAM_4, ((float)lv_slider_get_value(obj))); + } + // Cab block + else if (obj == objects.ui_val_cab_param0_slider) + { + usb_modify_parameter(VALETON_PARAM_CAB_PARAM_0, ((float)lv_slider_get_value(obj))); + } + else if (obj == objects.ui_val_cab_param1_slider) + { + usb_modify_parameter(VALETON_PARAM_CAB_PARAM_1, ((float)lv_slider_get_value(obj))); + } + else if (obj == objects.ui_val_cab_param2_slider) + { + usb_modify_parameter(VALETON_PARAM_CAB_PARAM_2, ((float)lv_slider_get_value(obj))); + } + else if (obj == objects.ui_val_cab_param3_slider) + { + usb_modify_parameter(VALETON_PARAM_CAB_PARAM_3, ((float)lv_slider_get_value(obj))); + } + else if (obj == objects.ui_val_cab_param4_slider) + { + usb_modify_parameter(VALETON_PARAM_CAB_PARAM_4, ((float)lv_slider_get_value(obj))); + } + // EQ block + else if (obj == objects.ui_val_eq_param0_slider) + { + usb_modify_parameter(VALETON_PARAM_EQ_PARAM_0, ((float)lv_slider_get_value(obj))); + } + else if (obj == objects.ui_val_eq_param1_slider) + { + usb_modify_parameter(VALETON_PARAM_EQ_PARAM_1, ((float)lv_slider_get_value(obj))); + } + else if (obj == objects.ui_val_eq_param2_slider) + { + usb_modify_parameter(VALETON_PARAM_EQ_PARAM_2, ((float)lv_slider_get_value(obj))); + } + else if (obj == objects.ui_val_eq_param3_slider) + { + usb_modify_parameter(VALETON_PARAM_EQ_PARAM_3, ((float)lv_slider_get_value(obj))); + } + else if (obj == objects.ui_val_eq_param4_slider) + { + usb_modify_parameter(VALETON_PARAM_EQ_PARAM_4, ((float)lv_slider_get_value(obj))); + } + // Mod block + else if (obj == objects.ui_val_mod_param0_slider) + { + usb_modify_parameter(VALETON_PARAM_MOD_PARAM_0, ((float)lv_slider_get_value(obj))); + } + else if (obj == objects.ui_val_mod_param1_slider) + { + usb_modify_parameter(VALETON_PARAM_MOD_PARAM_1, ((float)lv_slider_get_value(obj))); + } + else if (obj == objects.ui_val_mod_param2_slider) + { + usb_modify_parameter(VALETON_PARAM_MOD_PARAM_2, ((float)lv_slider_get_value(obj))); + } + else if (obj == objects.ui_val_mod_param3_slider) + { + usb_modify_parameter(VALETON_PARAM_MOD_PARAM_3, ((float)lv_slider_get_value(obj))); + } + else if (obj == objects.ui_val_mod_param4_slider) + { + usb_modify_parameter(VALETON_PARAM_MOD_PARAM_4, ((float)lv_slider_get_value(obj))); + } + // Dly block + else if (obj == objects.ui_val_dly_param0_slider) + { + usb_modify_parameter(VALETON_PARAM_DLY_PARAM_0, ((float)lv_slider_get_value(obj))); + } + else if (obj == objects.ui_val_dly_param1_slider) + { + usb_modify_parameter(VALETON_PARAM_DLY_PARAM_1, ((float)lv_slider_get_value(obj))); + } + else if (obj == objects.ui_val_dly_param2_slider) + { + usb_modify_parameter(VALETON_PARAM_DLY_PARAM_2, ((float)lv_slider_get_value(obj))); + } + else if (obj == objects.ui_val_dly_param3_slider) + { + usb_modify_parameter(VALETON_PARAM_DLY_PARAM_3, ((float)lv_slider_get_value(obj))); + } + else if (obj == objects.ui_val_dly_param4_slider) + { + usb_modify_parameter(VALETON_PARAM_DLY_PARAM_4, ((float)lv_slider_get_value(obj))); + } + // Rvb block + else if (obj == objects.ui_val_rvb_param0_slider) + { + usb_modify_parameter(VALETON_PARAM_RVB_PARAM_0, ((float)lv_slider_get_value(obj))); + } + else if (obj == objects.ui_val_rvb_param1_slider) + { + usb_modify_parameter(VALETON_PARAM_RVB_PARAM_1, ((float)lv_slider_get_value(obj))); + } + else if (obj == objects.ui_val_rvb_param2_slider) + { + usb_modify_parameter(VALETON_PARAM_RVB_PARAM_2, ((float)lv_slider_get_value(obj))); + } + else if (obj == objects.ui_val_rvb_param3_slider) + { + usb_modify_parameter(VALETON_PARAM_RVB_PARAM_3, ((float)lv_slider_get_value(obj))); + } + else if (obj == objects.ui_val_rvb_param4_slider) + { + usb_modify_parameter(VALETON_PARAM_RVB_PARAM_4, ((float)lv_slider_get_value(obj))); + } + // NS block + else if (obj == objects.ui_val_ns_param0_slider) + { + usb_modify_parameter(VALETON_PARAM_NS_PARAM_0, ((float)lv_slider_get_value(obj))); + } + else if (obj == objects.ui_val_ns_param1_slider) + { + usb_modify_parameter(VALETON_PARAM_NS_PARAM_1, ((float)lv_slider_get_value(obj))); + } + else if (obj == objects.ui_val_ns_param2_slider) + { + usb_modify_parameter(VALETON_PARAM_NS_PARAM_2, ((float)lv_slider_get_value(obj))); + } + else if (obj == objects.ui_val_ns_param3_slider) + { + usb_modify_parameter(VALETON_PARAM_NS_PARAM_3, ((float)lv_slider_get_value(obj))); + } + else if (obj == objects.ui_val_ns_param4_slider) + { + usb_modify_parameter(VALETON_PARAM_NS_PARAM_4, ((float)lv_slider_get_value(obj))); + } + // Globals + else if (obj == objects.ui_val_glob_no_cab_switch) + { + usb_modify_parameter(VALETON_GLOBAL_CABSIM_BYPASS, lv_obj_has_state(obj, LV_STATE_CHECKED) ? 1 : 0); + } + else if (obj == objects.ui_val_glob_input_level_slider) + { + usb_modify_parameter(VALETON_GLOBAL_INPUT_TRIM, ((float)lv_slider_get_value(obj))); + } + else if (obj == objects.ui_val_glob_master_vol_slider) + { + usb_modify_parameter(VALETON_GLOBAL_MASTER_VOLUME, ((float)lv_slider_get_value(obj))); + } + else if (obj == objects.ui_val_patch_vol_slider) + { + usb_modify_parameter(VALETON_PARAM_PATCH_VOLUME, ((float)lv_slider_get_value(obj))); + } +#endif // CONFIG_TONEX_CONTROLLER_DISPLAY_FULL_UI +} + +/**************************************************************************** +* NAME: +* DESCRIPTION: +* PARAMETERS: +* RETURN: +* NOTES: +*****************************************************************************/ +void valeton_update_icon_order(void) +{ +#if CONFIG_TONEX_CONTROLLER_DISPLAY_FULL_UI + tModellerParameter* param_ptr; + lv_obj_t* icons[VALETON_EFFECT_BLOCK_LAST]; + uint8_t index = 0; + int16_t offsets[VALETON_EFFECT_BLOCK_LAST]; + + ESP_LOGI(TAG, "Update effect icon order"); + + if (valeton_params_get_locked_access(¶m_ptr) == ESP_OK) + { + // build array with lvgl object in the current effect order + for (uint32_t loop = VALETON_PARAM_EFFECT_SLOT_0; loop <= VALETON_PARAM_EFFECT_SLOT_9; loop++) + { + switch ((int)param_ptr[loop].Value) + { + case VALETON_EFFECT_BLOCK_NR: + { + icons[index] = objects.ui_icon_val_nr; + } break; + + case VALETON_EFFECT_BLOCK_PRE: + { + icons[index] = objects.ui_icon_val_pre; + } break; + + case VALETON_EFFECT_BLOCK_DST: + { + icons[index] = objects.ui_icon_val_dst; + } break; + + case VALETON_EFFECT_BLOCK_AMP: + { + icons[index] = objects.ui_icon_val_amp; + } break; + + case VALETON_EFFECT_BLOCK_CAB: + { + icons[index] = objects.ui_icon_val_cab; + } break; + + case VALETON_EFFECT_BLOCK_EQ: + { + icons[index] = objects.ui_icon_val_eq; + } break; + + case VALETON_EFFECT_BLOCK_MOD: + { + icons[index] = objects.ui_icon_val_mod; + } break; + + case VALETON_EFFECT_BLOCK_DLY: + { + icons[index] = objects.ui_icon_val_dly; + } break; + + case VALETON_EFFECT_BLOCK_RVB: + { + icons[index] = objects.ui_icon_val_rvb; + } break; + + case VALETON_EFFECT_BLOCK_NS: + { + icons[index] = objects.ui_icon_val_tc; + } break; + } + + index++; + } + + valeton_params_release_locked_access(); + + platform_get_icon_coords(offsets, sizeof(offsets) / sizeof(int16_t)); + + // update X pos of each to set the correct order + for (uint8_t i = 0; i < VALETON_EFFECT_BLOCK_LAST; i++) + { + lv_obj_t* icon = icons[i]; + int16_t offset = offsets[i]; + lv_obj_set_x(icon, offset); + } + } +#endif +} + +/**************************************************************************** +* NAME: +* DESCRIPTION: +* PARAMETERS: +* RETURN: +* NOTES: +*****************************************************************************/ +uint8_t valeton_update_ui_parameters(void) +{ +#if CONFIG_TONEX_CONTROLLER_HAS_DISPLAY + tModellerParameter* param_ptr; + __attribute__((unused)) char value_string[20]; + +#if CONFIG_TONEX_CONTROLLER_DISPLAY_FULL_UI + + for (uint16_t param = 0; param < VALETON_GLOBAL_LAST; param++) + { + if (valeton_params_get_locked_access(¶m_ptr) == ESP_OK) + { + tModellerParameter* param_entry = ¶m_ptr[param]; + + // debug + //ESP_LOGI(TAG, "Param %d: val: %02f, min: %02f, max: %02f", param, param_entry->Value, param_entry->Min, param_entry->Max); + + switch (param) + { + case VALETON_PARAM_PATCH_VOLUME: + { + lv_slider_set_value(objects.ui_val_patch_vol_slider, round(param_entry->Value), LV_ANIM_OFF); + sprintf(value_string, "%d", (int)round(param_entry->Value)); + lv_label_set_text(objects.ui_val_patch_vol_value, value_string); + } break; + + case VALETON_PARAM_NR_ENABLE: + { + if (param_entry->Value) + { + lv_img_set_src(objects.ui_icon_val_nr, (lv_obj_t*)&img_nr_on); + lv_obj_add_state(objects.ui_val_nr_block_switch, LV_STATE_CHECKED); + } + else + { + lv_img_set_src(objects.ui_icon_val_nr, (lv_obj_t*)&img_nr_off); + lv_obj_clear_state(objects.ui_val_nr_block_switch, LV_STATE_CHECKED); + } + } break; + + case VALETON_PARAM_NR_TYPE: + { + lv_dropdown_set_selected(objects.ui_val_nr_model_dropdown, (int)param_entry->Value); + + switch ((int)param_entry->Value) + { + case VALETON_EFFECT_NR_GATE: + { + // enable param 0, hide the rest + lv_obj_clear_flag(objects.ui_val_nr_param0_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_nr_param0_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_nr_param0_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_nr_param0_label, "Threshold"); + + lv_obj_add_flag(objects.ui_val_nr_param1_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_nr_param1_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_nr_param1_value, LV_OBJ_FLAG_HIDDEN); + + lv_obj_add_flag(objects.ui_val_nr_param2_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_nr_param2_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_nr_param2_value, LV_OBJ_FLAG_HIDDEN); + + lv_obj_add_flag(objects.ui_val_nr_param3_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_nr_param3_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_nr_param3_value, LV_OBJ_FLAG_HIDDEN); + + lv_obj_add_flag(objects.ui_val_nr_param4_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_nr_param4_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_nr_param4_value, LV_OBJ_FLAG_HIDDEN); + } break; + } + } break; + + case VALETON_PARAM_NR_PARAM_0: + { + lv_slider_set_range(objects.ui_val_nr_param0_slider, param_entry->Min, param_entry->Max); + lv_slider_set_value(objects.ui_val_nr_param0_slider, round(param_entry->Value), LV_ANIM_OFF); + sprintf(value_string, "%d", (int)round(param_entry->Value)); + lv_label_set_text(objects.ui_val_nr_param0_value, value_string); + } break; + + case VALETON_PARAM_NR_PARAM_1: + { + lv_slider_set_range(objects.ui_val_nr_param1_slider, param_entry->Min, param_entry->Max); + lv_slider_set_value(objects.ui_val_nr_param1_slider, round(param_entry->Value), LV_ANIM_OFF); + sprintf(value_string, "%d", (int)round(param_entry->Value)); + lv_label_set_text(objects.ui_val_nr_param1_value, value_string); + } break; + + case VALETON_PARAM_NR_PARAM_2: + { + lv_slider_set_range(objects.ui_val_nr_param2_slider, param_entry->Min, param_entry->Max); + lv_slider_set_value(objects.ui_val_nr_param2_slider, round(param_entry->Value), LV_ANIM_OFF); + sprintf(value_string, "%d", (int)round(param_entry->Value)); + lv_label_set_text(objects.ui_val_nr_param2_value, value_string); + } break; + + case VALETON_PARAM_NR_PARAM_3: + { + lv_slider_set_range(objects.ui_val_nr_param3_slider, param_entry->Min, param_entry->Max); + lv_slider_set_value(objects.ui_val_nr_param3_slider, round(param_entry->Value), LV_ANIM_OFF); + sprintf(value_string, "%d", (int)round(param_entry->Value)); + lv_label_set_text(objects.ui_val_nr_param3_value, value_string); + } break; + + case VALETON_PARAM_NR_PARAM_4: + { + lv_slider_set_range(objects.ui_val_nr_param4_slider, param_entry->Min, param_entry->Max); + lv_slider_set_value(objects.ui_val_nr_param4_slider, round(param_entry->Value), LV_ANIM_OFF); + sprintf(value_string, "%d", (int)round(param_entry->Value)); + lv_label_set_text(objects.ui_val_nr_param4_value, value_string); + } break; + + case VALETON_PARAM_NR_PARAM_5: // fallthrough + case VALETON_PARAM_NR_PARAM_6: // fallthrough + case VALETON_PARAM_NR_PARAM_7: + { + // not used + } break; + + case VALETON_PARAM_PRE_ENABLE: + { + if (param_entry->Value) + { + lv_img_set_src(objects.ui_icon_val_pre, (lv_obj_t*)&img_pre_on); + lv_obj_add_state(objects.ui_val_pre_block_switch, LV_STATE_CHECKED); + } + else + { + lv_img_set_src(objects.ui_icon_val_pre, (lv_obj_t*)&img_pre_off); + lv_obj_clear_state(objects.ui_val_pre_block_switch, LV_STATE_CHECKED); + } + } break; + + case VALETON_PARAM_PRE_TYPE: + { + lv_dropdown_set_selected(objects.ui_val_pre_model_dropdown, (int)param_entry->Value); + + switch ((int)param_entry->Value) + { + case VALETON_EFFECT_PRE_COMP: + { + lv_obj_clear_flag(objects.ui_val_pre_param0_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_pre_param0_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_pre_param0_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_pre_param0_label, "Sustain"); + + lv_obj_clear_flag(objects.ui_val_pre_param1_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_pre_param1_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_pre_param1_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_pre_param1_label, "Volume"); + + lv_obj_add_flag(objects.ui_val_pre_param2_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_pre_param2_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_pre_param2_value, LV_OBJ_FLAG_HIDDEN); + + lv_obj_add_flag(objects.ui_val_pre_param3_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_pre_param3_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_pre_param3_value, LV_OBJ_FLAG_HIDDEN); + + lv_obj_add_flag(objects.ui_val_pre_param4_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_pre_param4_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_pre_param4_value, LV_OBJ_FLAG_HIDDEN); + } break; + + case VALETON_EFFECT_PRE_COMP4: + { + lv_obj_clear_flag(objects.ui_val_pre_param0_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_pre_param0_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_pre_param0_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_pre_param0_label, "Sustain"); + + lv_obj_clear_flag(objects.ui_val_pre_param1_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_pre_param1_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_pre_param1_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_pre_param1_label, "Attack"); + + lv_obj_clear_flag(objects.ui_val_pre_param2_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_pre_param2_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_pre_param2_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_pre_param2_label, "Volume"); + + lv_obj_clear_flag(objects.ui_val_pre_param3_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_pre_param3_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_pre_param3_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_pre_param3_label, "Clip"); + + lv_obj_add_flag(objects.ui_val_pre_param4_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_pre_param4_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_pre_param4_value, LV_OBJ_FLAG_HIDDEN); + } break; + + case VALETON_EFFECT_PRE_BOOST: + { + lv_obj_clear_flag(objects.ui_val_pre_param0_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_pre_param0_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_pre_param0_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_pre_param0_label, "Gain"); + + //todo 2 switches here + + lv_obj_add_flag(objects.ui_val_pre_param1_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_pre_param1_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_pre_param1_value, LV_OBJ_FLAG_HIDDEN); + + lv_obj_add_flag(objects.ui_val_pre_param2_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_pre_param2_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_pre_param2_value, LV_OBJ_FLAG_HIDDEN); + + lv_obj_add_flag(objects.ui_val_pre_param3_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_pre_param3_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_pre_param3_value, LV_OBJ_FLAG_HIDDEN); + + lv_obj_add_flag(objects.ui_val_pre_param4_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_pre_param4_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_pre_param4_value, LV_OBJ_FLAG_HIDDEN); + } break; + + case VALETON_EFFECT_PRE_MICRO_BOOST: + { + lv_obj_clear_flag(objects.ui_val_pre_param0_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_pre_param0_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_pre_param0_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_pre_param0_label, "Gain"); + + lv_obj_add_flag(objects.ui_val_pre_param1_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_pre_param1_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_pre_param1_value, LV_OBJ_FLAG_HIDDEN); + + lv_obj_add_flag(objects.ui_val_pre_param2_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_pre_param2_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_pre_param2_value, LV_OBJ_FLAG_HIDDEN); + + lv_obj_add_flag(objects.ui_val_pre_param3_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_pre_param3_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_pre_param3_value, LV_OBJ_FLAG_HIDDEN); + + lv_obj_add_flag(objects.ui_val_pre_param4_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_pre_param4_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_pre_param4_value, LV_OBJ_FLAG_HIDDEN); + } break; + + case VALETON_EFFECT_PRE_B_BOOST: + { + lv_obj_clear_flag(objects.ui_val_pre_param0_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_pre_param0_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_pre_param0_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_pre_param0_label, "Gain"); + + lv_obj_clear_flag(objects.ui_val_pre_param1_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_pre_param1_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_pre_param1_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_pre_param1_label, "Volume"); + + lv_obj_clear_flag(objects.ui_val_pre_param2_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_pre_param2_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_pre_param2_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_pre_param2_label, "Bass"); + + lv_obj_clear_flag(objects.ui_val_pre_param3_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_pre_param3_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_pre_param3_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_pre_param3_label, "Treble"); + + lv_obj_add_flag(objects.ui_val_pre_param4_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_pre_param4_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_pre_param4_value, LV_OBJ_FLAG_HIDDEN); + } break; + + case VALETON_EFFECT_PRE_TOUCHER: + { + lv_obj_clear_flag(objects.ui_val_pre_param0_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_pre_param0_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_pre_param0_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_pre_param0_label, "Sense"); + + lv_obj_clear_flag(objects.ui_val_pre_param1_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_pre_param1_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_pre_param1_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_pre_param1_label, "Range"); + + lv_obj_clear_flag(objects.ui_val_pre_param2_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_pre_param2_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_pre_param2_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_pre_param2_label, "Q"); + + lv_obj_clear_flag(objects.ui_val_pre_param3_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_pre_param3_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_pre_param3_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_pre_param3_label, "Mix"); + + // todo switch here + + lv_obj_add_flag(objects.ui_val_pre_param4_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_pre_param4_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_pre_param4_value, LV_OBJ_FLAG_HIDDEN); + } break; + + case VALETON_EFFECT_PRE_CRIER: + { + lv_obj_clear_flag(objects.ui_val_pre_param0_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_pre_param0_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_pre_param0_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_pre_param0_label, "Depth"); + + lv_obj_clear_flag(objects.ui_val_pre_param1_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_pre_param1_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_pre_param1_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_pre_param1_label, "Rate"); + + lv_obj_clear_flag(objects.ui_val_pre_param2_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_pre_param2_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_pre_param2_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_pre_param2_label, "Volume"); + + lv_obj_clear_flag(objects.ui_val_pre_param3_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_pre_param3_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_pre_param3_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_pre_param3_label, "Low"); + + lv_obj_clear_flag(objects.ui_val_pre_param4_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_pre_param4_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_pre_param4_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_pre_param4_label, "Q"); + + //todo one more slider + } break; + + case VALETON_EFFECT_PRE_OCTA: + { + lv_obj_clear_flag(objects.ui_val_pre_param0_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_pre_param0_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_pre_param0_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_pre_param0_label, "Low"); + + lv_obj_clear_flag(objects.ui_val_pre_param1_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_pre_param1_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_pre_param1_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_pre_param1_label, "High"); + + lv_obj_clear_flag(objects.ui_val_pre_param2_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_pre_param2_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_pre_param2_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_pre_param2_label, "Dry"); + + lv_obj_add_flag(objects.ui_val_pre_param3_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_pre_param3_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_pre_param3_value, LV_OBJ_FLAG_HIDDEN); + + lv_obj_add_flag(objects.ui_val_pre_param4_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_pre_param4_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_pre_param4_value, LV_OBJ_FLAG_HIDDEN); + } break; + + case VALETON_EFFECT_PRE_PITCH: + { + lv_obj_clear_flag(objects.ui_val_pre_param0_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_pre_param0_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_pre_param0_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_pre_param0_label, "High"); + + lv_obj_clear_flag(objects.ui_val_pre_param1_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_pre_param1_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_pre_param1_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_pre_param1_label, "Low"); + + lv_obj_clear_flag(objects.ui_val_pre_param2_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_pre_param2_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_pre_param2_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_pre_param2_label, "Dry"); + + lv_obj_clear_flag(objects.ui_val_pre_param3_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_pre_param3_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_pre_param3_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_pre_param3_label, "H-Vol"); + + lv_obj_clear_flag(objects.ui_val_pre_param4_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_pre_param4_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_pre_param4_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_pre_param4_label, "L-Vol"); + } break; + + case VALETON_EFFECT_PRE_DETUNE: + { + lv_obj_clear_flag(objects.ui_val_pre_param0_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_pre_param0_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_pre_param0_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_pre_param0_label, "Detune"); + + lv_obj_clear_flag(objects.ui_val_pre_param1_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_pre_param1_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_pre_param1_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_pre_param1_label, "Wet"); + + lv_obj_clear_flag(objects.ui_val_pre_param2_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_pre_param2_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_pre_param2_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_pre_param2_label, "Dry"); + + lv_obj_add_flag(objects.ui_val_pre_param3_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_pre_param3_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_pre_param3_value, LV_OBJ_FLAG_HIDDEN); + + lv_obj_add_flag(objects.ui_val_pre_param4_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_pre_param4_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_pre_param4_value, LV_OBJ_FLAG_HIDDEN); + } break; + } + } break; + + case VALETON_PARAM_PRE_PARAM_0: + { + lv_slider_set_range(objects.ui_val_pre_param0_slider, param_entry->Min, param_entry->Max); + lv_slider_set_value(objects.ui_val_pre_param0_slider, round(param_entry->Value), LV_ANIM_OFF); + sprintf(value_string, "%d", (int)round(param_entry->Value)); + lv_label_set_text(objects.ui_val_pre_param0_value, value_string); + } break; + + case VALETON_PARAM_PRE_PARAM_1: + { + lv_slider_set_range(objects.ui_val_pre_param1_slider, param_entry->Min, param_entry->Max); + lv_slider_set_value(objects.ui_val_pre_param1_slider, round(param_entry->Value), LV_ANIM_OFF); + sprintf(value_string, "%d", (int)round(param_entry->Value)); + lv_label_set_text(objects.ui_val_pre_param1_value, value_string); + } break; + + case VALETON_PARAM_PRE_PARAM_2: + { + lv_slider_set_range(objects.ui_val_pre_param2_slider, param_entry->Min, param_entry->Max); + lv_slider_set_value(objects.ui_val_pre_param2_slider, round(param_entry->Value), LV_ANIM_OFF); + sprintf(value_string, "%d", (int)round(param_entry->Value)); + lv_label_set_text(objects.ui_val_pre_param2_value, value_string); + } break; + + case VALETON_PARAM_PRE_PARAM_3: + { + lv_slider_set_range(objects.ui_val_pre_param3_slider, param_entry->Min, param_entry->Max); + lv_slider_set_value(objects.ui_val_pre_param3_slider, round(param_entry->Value), LV_ANIM_OFF); + sprintf(value_string, "%d", (int)round(param_entry->Value)); + lv_label_set_text(objects.ui_val_pre_param3_value, value_string); + } break; + + case VALETON_PARAM_PRE_PARAM_4: + { + lv_slider_set_range(objects.ui_val_pre_param4_slider, param_entry->Min, param_entry->Max); + lv_slider_set_value(objects.ui_val_pre_param4_slider, round(param_entry->Value), LV_ANIM_OFF); + sprintf(value_string, "%d", (int)round(param_entry->Value)); + lv_label_set_text(objects.ui_val_pre_param4_value, value_string); + } break; + + case VALETON_PARAM_PRE_PARAM_5: + { + // not used + } break; + + case VALETON_PARAM_DIST_ENABLE: + { + if (param_entry->Value) + { + lv_img_set_src(objects.ui_icon_val_dst, (lv_obj_t*)&img_dst_on); + lv_obj_add_state(objects.ui_val_dst_block_switch, LV_STATE_CHECKED); + } + else + { + lv_img_set_src(objects.ui_icon_val_dst, (lv_obj_t*)&img_dst_off); + lv_obj_clear_state(objects.ui_val_dst_block_switch, LV_STATE_CHECKED); + } + } break; + + case VALETON_PARAM_DIST_TYPE: + { + lv_dropdown_set_selected(objects.ui_val_dst_model_dropdown, (int)param_entry->Value); + + switch ((int)param_entry->Value) + { + case VALETON_EFFECT_DIST_GREEN_OD: // fallthrough + case VALETON_EFFECT_DIST_SUPER_OD: // fallthrough + case VALETON_EFFECT_DIST_SM_DIST: // fallthrough + case VALETON_EFFECT_DIST_LA_CHARGER: + { + lv_obj_clear_flag(objects.ui_val_dst_param0_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_dst_param0_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_dst_param0_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_dst_param0_label, "Gain"); + + lv_obj_clear_flag(objects.ui_val_dst_param1_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_dst_param1_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_dst_param1_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_dst_param1_label, "Tone"); + + lv_obj_clear_flag(objects.ui_val_dst_param2_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_dst_param2_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_dst_param2_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_dst_param2_label, "Volume"); + + lv_obj_add_flag(objects.ui_val_dst_param3_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_dst_param3_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_dst_param3_value, LV_OBJ_FLAG_HIDDEN); + + lv_obj_add_flag(objects.ui_val_dst_param4_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_dst_param4_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_dst_param4_value, LV_OBJ_FLAG_HIDDEN); + } break; + + case VALETON_EFFECT_DIST_YELLOW_OD: // fallthrough + case VALETON_EFFECT_DIST_PLUSTORTION: + { + lv_obj_clear_flag(objects.ui_val_dst_param0_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_dst_param0_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_dst_param0_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_dst_param0_label, "Gain"); + + lv_obj_clear_flag(objects.ui_val_dst_param1_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_dst_param1_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_dst_param1_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_dst_param1_label, "Volume"); + + lv_obj_add_flag(objects.ui_val_dst_param2_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_dst_param2_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_dst_param2_value, LV_OBJ_FLAG_HIDDEN); + + lv_obj_add_flag(objects.ui_val_dst_param3_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_dst_param3_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_dst_param3_value, LV_OBJ_FLAG_HIDDEN); + + lv_obj_add_flag(objects.ui_val_dst_param4_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_dst_param4_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_dst_param4_value, LV_OBJ_FLAG_HIDDEN); + } break; + + case VALETON_EFFECT_DIST_DARKTALE: + { + lv_obj_clear_flag(objects.ui_val_dst_param0_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_dst_param0_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_dst_param0_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_dst_param0_label, "Gain"); + + lv_obj_clear_flag(objects.ui_val_dst_param1_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_dst_param1_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_dst_param1_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_dst_param1_label, "Filter"); + + lv_obj_clear_flag(objects.ui_val_dst_param2_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_dst_param2_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_dst_param2_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_dst_param2_label, "Volume"); + + lv_obj_add_flag(objects.ui_val_dst_param3_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_dst_param3_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_dst_param3_value, LV_OBJ_FLAG_HIDDEN); + + lv_obj_add_flag(objects.ui_val_dst_param4_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_dst_param4_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_dst_param4_value, LV_OBJ_FLAG_HIDDEN); + } break; + + case VALETON_EFFECT_DIST_SORA_FUZZ: // fallthrough + case VALETON_EFFECT_DIST_RED_HAZE: + { + lv_obj_clear_flag(objects.ui_val_dst_param0_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_dst_param0_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_dst_param0_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_dst_param0_label, "Fuzz"); + + lv_obj_clear_flag(objects.ui_val_dst_param1_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_dst_param1_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_dst_param1_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_dst_param1_label, "Volume"); + + lv_obj_add_flag(objects.ui_val_dst_param2_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_dst_param2_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_dst_param2_value, LV_OBJ_FLAG_HIDDEN); + + lv_obj_add_flag(objects.ui_val_dst_param3_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_dst_param3_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_dst_param3_value, LV_OBJ_FLAG_HIDDEN); + + lv_obj_add_flag(objects.ui_val_dst_param4_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_dst_param4_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_dst_param4_value, LV_OBJ_FLAG_HIDDEN); + } break; + + case VALETON_EFFECT_DIST_BASS_OD: + { + lv_obj_clear_flag(objects.ui_val_dst_param0_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_dst_param0_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_dst_param0_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_dst_param0_label, "Gain"); + + lv_obj_clear_flag(objects.ui_val_dst_param1_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_dst_param1_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_dst_param1_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_dst_param1_label, "Blend"); + + lv_obj_clear_flag(objects.ui_val_dst_param2_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_dst_param2_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_dst_param2_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_dst_param2_label, "Volume"); + + lv_obj_clear_flag(objects.ui_val_dst_param3_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_dst_param3_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_dst_param3_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_dst_param3_label, "Bass"); + + lv_obj_clear_flag(objects.ui_val_dst_param4_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_dst_param4_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_dst_param4_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_dst_param4_label, "Treble"); + } break; + } + } break; + + case VALETON_PARAM_DIST_PARAM_0: + { + lv_slider_set_range(objects.ui_val_dst_param0_slider, param_entry->Min, param_entry->Max); + lv_slider_set_value(objects.ui_val_dst_param0_slider, round(param_entry->Value), LV_ANIM_OFF); + sprintf(value_string, "%d", (int)round(param_entry->Value)); + lv_label_set_text(objects.ui_val_dst_param0_value, value_string); + } break; + + case VALETON_PARAM_DIST_PARAM_1: + { + lv_slider_set_range(objects.ui_val_dst_param1_slider, param_entry->Min, param_entry->Max); + lv_slider_set_value(objects.ui_val_dst_param1_slider, round(param_entry->Value), LV_ANIM_OFF); + sprintf(value_string, "%d", (int)round(param_entry->Value)); + lv_label_set_text(objects.ui_val_dst_param1_value, value_string); + } break; + + case VALETON_PARAM_DIST_PARAM_2: + { + lv_slider_set_range(objects.ui_val_dst_param2_slider, param_entry->Min, param_entry->Max); + lv_slider_set_value(objects.ui_val_dst_param2_slider, round(param_entry->Value), LV_ANIM_OFF); + sprintf(value_string, "%d", (int)round(param_entry->Value)); + lv_label_set_text(objects.ui_val_dst_param2_value, value_string); + } break; + + case VALETON_PARAM_DIST_PARAM_3: + { + lv_slider_set_range(objects.ui_val_dst_param3_slider, param_entry->Min, param_entry->Max); + lv_slider_set_value(objects.ui_val_dst_param3_slider, round(param_entry->Value), LV_ANIM_OFF); + sprintf(value_string, "%d", (int)round(param_entry->Value)); + lv_label_set_text(objects.ui_val_dst_param3_value, value_string); + } break; + + case VALETON_PARAM_DIST_PARAM_4: + { + lv_slider_set_range(objects.ui_val_dst_param4_slider, param_entry->Min, param_entry->Max); + lv_slider_set_value(objects.ui_val_dst_param4_slider, round(param_entry->Value), LV_ANIM_OFF); + sprintf(value_string, "%d", (int)round(param_entry->Value)); + lv_label_set_text(objects.ui_val_dst_param4_value, value_string); + } break; + + case VALETON_PARAM_DIST_PARAM_5: // fallthrough + case VALETON_PARAM_DIST_PARAM_6: // fallthrough + case VALETON_PARAM_DIST_PARAM_7: + { + // not used + } break; + + case VALETON_PARAM_AMP_ENABLE: + { + if (param_entry->Value) + { + if (param_ptr[VALETON_PARAM_NS_ENABLE].Value != 0.0f) + { + // show disabled + lv_img_set_src(objects.ui_icon_val_amp, (lv_obj_t*)&img_amp_disabled); + } + else + { + lv_img_set_src(objects.ui_icon_val_amp, (lv_obj_t*)&img_amp_on); + } + lv_obj_add_state(objects.ui_val_amp_block_switch, LV_STATE_CHECKED); + } + else + { + lv_img_set_src(objects.ui_icon_val_amp, (lv_obj_t*)&img_amp_off); + lv_obj_clear_state(objects.ui_val_amp_block_switch, LV_STATE_CHECKED); + } + } break; + + case VALETON_PARAM_AMP_TYPE: + { + lv_dropdown_set_selected(objects.ui_val_amp_model_dropdown, (int)param_entry->Value); + + switch ((int)param_entry->Value) + { + case VALETON_EFFECT_AMP_TWEEDY: + { + lv_obj_clear_flag(objects.ui_val_amp_param0_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param0_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param0_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_amp_param0_label, "Gain"); + + lv_obj_clear_flag(objects.ui_val_amp_param1_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param1_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param1_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_amp_param1_label, "Tone"); + + lv_obj_clear_flag(objects.ui_val_amp_param2_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param2_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param2_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_amp_param2_label, "Volume"); + + lv_obj_add_flag(objects.ui_val_amp_param3_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_amp_param3_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_amp_param3_value, LV_OBJ_FLAG_HIDDEN); + + lv_obj_add_flag(objects.ui_val_amp_param4_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_amp_param4_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_amp_param4_value, LV_OBJ_FLAG_HIDDEN); + } break; + + case VALETON_EFFECT_AMP_BELLMAN_59N: // fallthrough + case VALETON_EFFECT_AMP_MATCH_CL: // fallthrough + case VALETON_EFFECT_AMP_L_STAR_CL: // fallthrough + case VALETON_EFFECT_AMP_UK_45: // fallthough + case VALETON_EFFECT_AMP_UK_800: // fallthrough + case VALETON_EFFECT_AMP_BELLMAN_59B: // fallthough + case VALETON_EFFECT_AMP_SOLO100_OD: // fallthrough + case VALETON_EFFECT_AMP_BAD_KT_OD: // fallthough + case VALETON_EFFECT_AMP_DIZZ_VH: // fallthrough + case VALETON_EFFECT_AMP_DIZZ_VH_PLUS: // fallthrough + case VALETON_EFFECT_AMP_EAGLE_120: // fallthrough + case VALETON_EFFECT_AMP_SOLO100_LD: // fallthrough + case VALETON_EFFECT_AMP_MESS_DUALV: // fallthrough + case VALETON_EFFECT_AMP_MESS_DUALM: // fallthrough + case VALETON_EFFECT_AMP_POWER_LD: // fallthrough + case VALETON_EFFECT_AMP_FLAGMAN_PLUS: // fallthrough + case VALETON_EFFECT_AMP_BOG_REDV: + { + lv_obj_clear_flag(objects.ui_val_amp_param0_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param0_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param0_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_amp_param0_label, "Gain"); + + lv_obj_clear_flag(objects.ui_val_amp_param1_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param1_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param1_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_amp_param1_label, "Presence"); + + lv_obj_clear_flag(objects.ui_val_amp_param2_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param2_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param2_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_amp_param2_label, "Volume"); + + lv_obj_clear_flag(objects.ui_val_amp_param3_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param3_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param3_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_amp_param3_label, "Bass"); + + lv_obj_clear_flag(objects.ui_val_amp_param4_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param4_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param4_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_amp_param4_label, "Middle"); + + // todo Treble + } break; + + case VALETON_EFFECT_AMP_DARK_TWIN: + case VALETON_EFFECT_AMP_JUICE_R100: + { + lv_obj_clear_flag(objects.ui_val_amp_param0_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param0_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param0_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_amp_param0_label, "Gain"); + + lv_obj_clear_flag(objects.ui_val_amp_param1_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param1_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param1_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_amp_param1_label, "Volume"); + + lv_obj_clear_flag(objects.ui_val_amp_param2_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param2_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param2_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_amp_param2_label, "Bass"); + + lv_obj_clear_flag(objects.ui_val_amp_param3_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param3_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param3_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_amp_param3_label, "Middle"); + + lv_obj_clear_flag(objects.ui_val_amp_param4_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param4_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param4_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_amp_param4_label, "Treble"); + + //todo bright switch + } break; + + case VALETON_EFFECT_AMP_FOXY_30N: + { + lv_obj_clear_flag(objects.ui_val_amp_param0_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param0_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param0_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_amp_param0_label, "Gain"); + + lv_obj_clear_flag(objects.ui_val_amp_param1_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param1_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param1_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_amp_param1_label, "Tone Cut"); + + lv_obj_clear_flag(objects.ui_val_amp_param2_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param2_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param2_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_amp_param2_label, "Volume"); + + //todo bright switch + + lv_obj_add_flag(objects.ui_val_amp_param3_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_amp_param3_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_amp_param3_value, LV_OBJ_FLAG_HIDDEN); + + lv_obj_add_flag(objects.ui_val_amp_param4_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_amp_param4_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_amp_param4_value, LV_OBJ_FLAG_HIDDEN); + } break; + + case VALETON_EFFECT_AMP_J_120_CL: + { + lv_obj_clear_flag(objects.ui_val_amp_param0_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param0_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param0_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_amp_param0_label, "Volume"); + + lv_obj_clear_flag(objects.ui_val_amp_param1_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param1_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param1_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_amp_param1_label, "Bass"); + + lv_obj_clear_flag(objects.ui_val_amp_param2_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param2_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param2_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_amp_param2_label, "Middle"); + + lv_obj_clear_flag(objects.ui_val_amp_param3_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param3_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param3_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_amp_param3_label, "Treble"); + + //todo bright switch + + lv_obj_add_flag(objects.ui_val_amp_param4_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_amp_param4_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_amp_param4_value, LV_OBJ_FLAG_HIDDEN); + } break; + + case VALETON_EFFECT_AMP_UK_50JP: + { + lv_obj_clear_flag(objects.ui_val_amp_param0_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param0_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param0_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_amp_param0_label, "Gain 1"); + + lv_obj_clear_flag(objects.ui_val_amp_param1_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param1_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param1_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_amp_param1_label, "Presence"); + + lv_obj_clear_flag(objects.ui_val_amp_param2_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param2_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param2_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_amp_param2_label, "Volume"); + + lv_obj_clear_flag(objects.ui_val_amp_param3_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param3_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param3_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_amp_param3_label, "Bass"); + + lv_obj_clear_flag(objects.ui_val_amp_param4_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param4_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param4_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_amp_param4_label, "Middle"); + + //todo: treble, gain 2 + } break; + + case VALETON_EFFECT_AMP_FOXY_30TB: + { + lv_obj_clear_flag(objects.ui_val_amp_param0_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param0_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param0_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_amp_param0_label, "Gain"); + + lv_obj_clear_flag(objects.ui_val_amp_param1_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param1_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param1_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_amp_param1_label, "Tone Cut"); + + lv_obj_clear_flag(objects.ui_val_amp_param2_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param2_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param2_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_amp_param2_label, "Volume"); + + lv_obj_clear_flag(objects.ui_val_amp_param3_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param3_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param3_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_amp_param3_label, "Bass"); + + lv_obj_clear_flag(objects.ui_val_amp_param4_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param4_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param4_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_amp_param4_label, "Treble"); + + //todo: add character switch + } break; + + case VALETON_EFFECT_AMP_SUPDUAL_OD: + { + lv_obj_clear_flag(objects.ui_val_amp_param0_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param0_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param0_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_amp_param0_label, "Gain 1"); + + lv_obj_clear_flag(objects.ui_val_amp_param1_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param1_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param1_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_amp_param1_label, "Tone 1"); + + lv_obj_clear_flag(objects.ui_val_amp_param2_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param2_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param2_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_amp_param2_label, "Gain 2"); + + lv_obj_clear_flag(objects.ui_val_amp_param3_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param3_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param3_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_amp_param3_label, "Tone 2"); + + lv_obj_clear_flag(objects.ui_val_amp_param4_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param4_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param4_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_amp_param4_label, "Volume"); + } break; + + case VALETON_EFFECT_AMP_Z38_OD: + { + lv_obj_clear_flag(objects.ui_val_amp_param0_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param0_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param0_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_amp_param0_label, "Gain"); + + lv_obj_clear_flag(objects.ui_val_amp_param1_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param1_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param1_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_amp_param1_label, "Tone Cut"); + + lv_obj_clear_flag(objects.ui_val_amp_param2_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param2_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param2_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_amp_param2_label, "Volume"); + + lv_obj_clear_flag(objects.ui_val_amp_param3_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param3_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param3_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_amp_param3_label, "Bass"); + + lv_obj_clear_flag(objects.ui_val_amp_param4_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param4_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param4_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_amp_param4_label, "Middle"); + + //todo: treble + } break; + + case VALETON_EFFECT_AMP_EV_51: + { + lv_obj_clear_flag(objects.ui_val_amp_param0_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param0_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param0_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_amp_param0_label, "Gain"); + + lv_obj_clear_flag(objects.ui_val_amp_param1_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param1_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param1_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_amp_param1_label, "Volume"); + + lv_obj_clear_flag(objects.ui_val_amp_param2_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param2_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param2_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_amp_param2_label, "Bass"); + + lv_obj_clear_flag(objects.ui_val_amp_param3_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param3_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param3_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_amp_param3_label, "Mid"); + + lv_obj_clear_flag(objects.ui_val_amp_param4_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param4_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param4_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_amp_param4_label, "Treble"); + + // todo presence + } break; + + case VALETON_EFFECT_AMP_CLASSIC_BASS: + { + lv_obj_clear_flag(objects.ui_val_amp_param0_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param0_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param0_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_amp_param0_label, "Gain"); + + lv_obj_clear_flag(objects.ui_val_amp_param1_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param1_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param1_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_amp_param1_label, "Bass"); + + lv_obj_clear_flag(objects.ui_val_amp_param2_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param2_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param2_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_amp_param2_label, "Middle"); + + lv_obj_clear_flag(objects.ui_val_amp_param3_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param3_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param3_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_amp_param3_label, "Mid Freq"); + + lv_obj_clear_flag(objects.ui_val_amp_param4_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param4_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param4_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_amp_param4_label, "Treble"); + + //todo vol + } break; + + case VALETON_EFFECT_AMP_FOXY_BASS: + { + lv_obj_clear_flag(objects.ui_val_amp_param0_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param0_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param0_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_amp_param0_label, "Volume"); + + lv_obj_clear_flag(objects.ui_val_amp_param1_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param1_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param1_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_amp_param1_label, "Bass"); + + lv_obj_clear_flag(objects.ui_val_amp_param2_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param2_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param2_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_amp_param2_label, "Treble"); + + lv_obj_add_flag(objects.ui_val_amp_param3_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_amp_param3_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_amp_param3_value, LV_OBJ_FLAG_HIDDEN); + + lv_obj_add_flag(objects.ui_val_amp_param4_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_amp_param4_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_amp_param4_value, LV_OBJ_FLAG_HIDDEN); + + } break; + + case VALETON_EFFECT_AMP_MESS_BASS: + { + lv_obj_clear_flag(objects.ui_val_amp_param0_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param0_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param0_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_amp_param0_label, "Gain"); + + lv_obj_clear_flag(objects.ui_val_amp_param1_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param1_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param1_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_amp_param1_label, "Volume"); + + lv_obj_clear_flag(objects.ui_val_amp_param2_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param2_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param2_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_amp_param2_label, "Bass"); + + lv_obj_clear_flag(objects.ui_val_amp_param3_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param3_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param3_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_amp_param3_label, "Mid"); + + lv_obj_clear_flag(objects.ui_val_amp_param4_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param4_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param4_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_amp_param4_label, "Treble"); + } break; + + case VALETON_EFFECT_AMP_AC_PRE1: // fallthrough + case VALETON_EFFECT_AMP_AC_PRE2: + { + lv_obj_clear_flag(objects.ui_val_amp_param0_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param0_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param0_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_amp_param0_label, "Volume"); + + lv_obj_clear_flag(objects.ui_val_amp_param1_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param1_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param1_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_amp_param1_label, "Tone"); + + lv_obj_clear_flag(objects.ui_val_amp_param2_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param2_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param2_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_amp_param2_label, "Balance"); + + lv_obj_clear_flag(objects.ui_val_amp_param3_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param3_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param3_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_amp_param3_label, "EQ Freq"); + + lv_obj_clear_flag(objects.ui_val_amp_param4_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param4_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param4_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_amp_param4_label, "EQ Q"); + + //todo : EQ gain + } break; + } + } break; + + case VALETON_PARAM_AMP_PARAM_0: + { + lv_slider_set_range(objects.ui_val_amp_param0_slider, param_entry->Min, param_entry->Max); + lv_slider_set_value(objects.ui_val_amp_param0_slider, round(param_entry->Value), LV_ANIM_OFF); + sprintf(value_string, "%d", (int)round(param_entry->Value)); + lv_label_set_text(objects.ui_val_amp_param0_value, value_string); + } break; + + case VALETON_PARAM_AMP_PARAM_1: + { + lv_slider_set_range(objects.ui_val_amp_param1_slider, param_entry->Min, param_entry->Max); + lv_slider_set_value(objects.ui_val_amp_param1_slider, round(param_entry->Value), LV_ANIM_OFF); + sprintf(value_string, "%d", (int)round(param_entry->Value)); + lv_label_set_text(objects.ui_val_amp_param1_value, value_string); + } break; + + case VALETON_PARAM_AMP_PARAM_2: + { + lv_slider_set_range(objects.ui_val_amp_param2_slider, param_entry->Min, param_entry->Max); + lv_slider_set_value(objects.ui_val_amp_param2_slider, round(param_entry->Value), LV_ANIM_OFF); + sprintf(value_string, "%d", (int)round(param_entry->Value)); + lv_label_set_text(objects.ui_val_amp_param2_value, value_string); + } break; + + case VALETON_PARAM_AMP_PARAM_3: + { + lv_slider_set_range(objects.ui_val_amp_param3_slider, param_entry->Min, param_entry->Max); + lv_slider_set_value(objects.ui_val_amp_param3_slider, round(param_entry->Value), LV_ANIM_OFF); + sprintf(value_string, "%d", (int)round(param_entry->Value)); + lv_label_set_text(objects.ui_val_amp_param3_value, value_string); + } break; + + case VALETON_PARAM_AMP_PARAM_4: + { + lv_slider_set_range(objects.ui_val_amp_param4_slider, param_entry->Min, param_entry->Max); + lv_slider_set_value(objects.ui_val_amp_param4_slider, round(param_entry->Value), LV_ANIM_OFF); + sprintf(value_string, "%d", (int)round(param_entry->Value)); + lv_label_set_text(objects.ui_val_amp_param4_value, value_string); + } break; + + case VALETON_PARAM_AMP_PARAM_5: // fallthrough + case VALETON_PARAM_AMP_PARAM_6: // fallthrough + case VALETON_PARAM_AMP_PARAM_7: + { + // not used + } break; + + case VALETON_PARAM_CAB_ENABLE: + { + if (param_entry->Value) + { + if (param_ptr[VALETON_PARAM_NS_ENABLE].Value != 0.0f) + { + // show disabled + lv_img_set_src(objects.ui_icon_val_cab, (lv_obj_t*)&img_cab_disabled); + } + else + { + lv_img_set_src(objects.ui_icon_val_cab, (lv_obj_t*)&img_cab_on); + } + lv_obj_add_state(objects.ui_val_cab_block_switch, LV_STATE_CHECKED); + } + else + { + lv_img_set_src(objects.ui_icon_val_cab, (lv_obj_t*)&img_cab_off); + lv_obj_clear_state(objects.ui_val_cab_block_switch, LV_STATE_CHECKED); + } + } break; + + case VALETON_PARAM_CAB_TYPE: + { + lv_dropdown_set_selected(objects.ui_val_cab_model_dropdown, (int)param_entry->Value); + + // all cabs have volume only + lv_obj_clear_flag(objects.ui_val_cab_param0_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_cab_param0_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_cab_param0_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_cab_param0_label, "Volume"); + + lv_obj_add_flag(objects.ui_val_cab_param1_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_cab_param1_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_cab_param1_value, LV_OBJ_FLAG_HIDDEN); + + lv_obj_add_flag(objects.ui_val_cab_param2_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_cab_param2_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_cab_param2_value, LV_OBJ_FLAG_HIDDEN); + + lv_obj_add_flag(objects.ui_val_cab_param3_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_cab_param3_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_cab_param3_value, LV_OBJ_FLAG_HIDDEN); + + lv_obj_add_flag(objects.ui_val_cab_param4_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_cab_param4_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_cab_param4_value, LV_OBJ_FLAG_HIDDEN); + } break; + + case VALETON_PARAM_CAB_PARAM_0: + { + lv_slider_set_range(objects.ui_val_cab_param0_slider, param_entry->Min, param_entry->Max); + lv_slider_set_value(objects.ui_val_cab_param0_slider, round(param_entry->Value), LV_ANIM_OFF); + sprintf(value_string, "%d", (int)round(param_entry->Value)); + lv_label_set_text(objects.ui_val_cab_param0_value, value_string); + } break; + + case VALETON_PARAM_CAB_PARAM_1: + { + lv_slider_set_range(objects.ui_val_cab_param1_slider, param_entry->Min, param_entry->Max); + lv_slider_set_value(objects.ui_val_cab_param1_slider, round(param_entry->Value), LV_ANIM_OFF); + sprintf(value_string, "%d", (int)round(param_entry->Value)); + lv_label_set_text(objects.ui_val_cab_param1_value, value_string); + } break; + + case VALETON_PARAM_CAB_PARAM_2: + { + lv_slider_set_range(objects.ui_val_cab_param2_slider, param_entry->Min, param_entry->Max); + lv_slider_set_value(objects.ui_val_cab_param2_slider, round(param_entry->Value), LV_ANIM_OFF); + sprintf(value_string, "%d", (int)round(param_entry->Value)); + lv_label_set_text(objects.ui_val_cab_param2_value, value_string); + } break; + + case VALETON_PARAM_CAB_PARAM_3: + { + lv_slider_set_range(objects.ui_val_cab_param3_slider, param_entry->Min, param_entry->Max); + lv_slider_set_value(objects.ui_val_cab_param3_slider, round(param_entry->Value), LV_ANIM_OFF); + sprintf(value_string, "%d", (int)round(param_entry->Value)); + lv_label_set_text(objects.ui_val_cab_param3_value, value_string); + } break; + + case VALETON_PARAM_CAB_PARAM_4: + { + lv_slider_set_range(objects.ui_val_cab_param4_slider, param_entry->Min, param_entry->Max); + lv_slider_set_value(objects.ui_val_cab_param4_slider, round(param_entry->Value), LV_ANIM_OFF); + sprintf(value_string, "%d", (int)round(param_entry->Value)); + lv_label_set_text(objects.ui_val_cab_param4_value, value_string); + } break; + + case VALETON_PARAM_CAB_PARAM_5: // fallthrough + case VALETON_PARAM_CAB_PARAM_6: // fallthrough + case VALETON_PARAM_CAB_PARAM_7: + { + // not used + } break; + + case VALETON_PARAM_EQ_ENABLE: + { + if (param_entry->Value) + { + lv_img_set_src(objects.ui_icon_val_eq, (lv_obj_t*)&img_eq_on); + lv_obj_add_state(objects.ui_val_eq_block_switch, LV_STATE_CHECKED); + } + else + { + lv_img_set_src(objects.ui_icon_val_eq, (lv_obj_t*)&img_eq_off); + lv_obj_clear_state(objects.ui_val_eq_block_switch, LV_STATE_CHECKED); + } + } break; + + case VALETON_PARAM_EQ_TYPE: + { + lv_dropdown_set_selected(objects.ui_val_eq_model_dropdown, (int)param_entry->Value); + + switch ((int)param_entry->Value) + { + case VALETON_EFFECT_EQ_GUITAR_EQ1: + { + lv_obj_clear_flag(objects.ui_val_eq_param0_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_eq_param0_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_eq_param0_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_eq_param0_label, "125 Hz"); + + lv_obj_clear_flag(objects.ui_val_eq_param1_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_eq_param1_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_eq_param1_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_eq_param1_label, "400 Hz"); + + lv_obj_clear_flag(objects.ui_val_eq_param2_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_eq_param2_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_eq_param2_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_eq_param2_label, "800 Hz"); + + lv_obj_clear_flag(objects.ui_val_eq_param3_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_eq_param3_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_eq_param3_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_eq_param3_label, "1.6 kHz"); + + lv_obj_clear_flag(objects.ui_val_eq_param4_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_eq_param4_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_eq_param4_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_eq_param4_label, "4 kHz"); + + //todo Volume + } break; + + case VALETON_EFFECT_EQ_GUITAR_EQ2: + { + lv_obj_clear_flag(objects.ui_val_eq_param0_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_eq_param0_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_eq_param0_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_eq_param0_label, "100 Hz"); + + lv_obj_clear_flag(objects.ui_val_eq_param1_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_eq_param1_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_eq_param1_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_eq_param1_label, "500 Hz"); + + lv_obj_clear_flag(objects.ui_val_eq_param2_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_eq_param2_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_eq_param2_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_eq_param2_label, "1 kHz"); + + lv_obj_clear_flag(objects.ui_val_eq_param3_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_eq_param3_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_eq_param3_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_eq_param3_label, "3 kHz"); + + lv_obj_clear_flag(objects.ui_val_eq_param4_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_eq_param4_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_eq_param4_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_eq_param4_label, "6 kHz"); + + //todo volume + } break; + + case VALETON_EFFECT_EQ_BASS_EQ1: + { + lv_obj_clear_flag(objects.ui_val_eq_param0_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_eq_param0_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_eq_param0_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_eq_param0_label, "33 Hz"); + + lv_obj_clear_flag(objects.ui_val_eq_param1_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_eq_param1_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_eq_param1_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_eq_param1_label, "150 Hz"); + + lv_obj_clear_flag(objects.ui_val_eq_param2_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_eq_param2_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_eq_param2_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_eq_param2_label, "600 Hz"); + + lv_obj_clear_flag(objects.ui_val_eq_param3_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_eq_param3_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_eq_param3_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_eq_param3_label, "2 kHz"); + + lv_obj_clear_flag(objects.ui_val_eq_param4_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_eq_param4_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_eq_param4_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_eq_param4_label, "8 kHz"); + + //todo Volume + } break; + + case VALETON_EFFECT_EQ_BASS_EQ2: + { + lv_obj_clear_flag(objects.ui_val_eq_param0_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_eq_param0_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_eq_param0_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_eq_param0_label, "50 Hz"); + + lv_obj_clear_flag(objects.ui_val_eq_param1_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_eq_param1_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_eq_param1_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_eq_param1_label, "120 Hz"); + + lv_obj_clear_flag(objects.ui_val_eq_param2_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_eq_param2_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_eq_param2_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_eq_param2_label, "400 Hz"); + + lv_obj_clear_flag(objects.ui_val_eq_param3_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_eq_param3_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_eq_param3_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_eq_param3_label, "800 Hz"); + + lv_obj_clear_flag(objects.ui_val_eq_param4_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_eq_param4_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_eq_param4_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_eq_param4_label, "4.5 kHz"); + + //todo Volume + } break; + + case VALETON_EFFECT_EQ_MESS_EQ: + { + lv_obj_clear_flag(objects.ui_val_eq_param0_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_eq_param0_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_eq_param0_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_eq_param0_label, "80 Hz"); + + lv_obj_clear_flag(objects.ui_val_eq_param1_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_eq_param1_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_eq_param1_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_eq_param1_label, "240 Hz"); + + lv_obj_clear_flag(objects.ui_val_eq_param2_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_eq_param2_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_eq_param2_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_eq_param2_label, "750 Hz"); + + lv_obj_clear_flag(objects.ui_val_eq_param3_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_eq_param3_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_eq_param3_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_eq_param3_label, "2.2 kHz"); + + lv_obj_clear_flag(objects.ui_val_eq_param4_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_eq_param4_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_eq_param4_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_eq_param4_label, "6.6 kHz"); + } break; + } + } break; + + case VALETON_PARAM_EQ_PARAM_0: + { + lv_slider_set_range(objects.ui_val_eq_param0_slider, param_entry->Min, param_entry->Max); + lv_slider_set_value(objects.ui_val_eq_param0_slider, round(param_entry->Value), LV_ANIM_OFF); + sprintf(value_string, "%d", (int)round(param_entry->Value)); + lv_label_set_text(objects.ui_val_eq_param0_value, value_string); + } break; + + case VALETON_PARAM_EQ_PARAM_1: + { + lv_slider_set_range(objects.ui_val_eq_param1_slider, param_entry->Min, param_entry->Max); + lv_slider_set_value(objects.ui_val_eq_param1_slider, round(param_entry->Value), LV_ANIM_OFF); + sprintf(value_string, "%d", (int)round(param_entry->Value)); + lv_label_set_text(objects.ui_val_eq_param1_value, value_string); + } break; + + case VALETON_PARAM_EQ_PARAM_2: + { + lv_slider_set_range(objects.ui_val_eq_param2_slider, param_entry->Min, param_entry->Max); + lv_slider_set_value(objects.ui_val_eq_param2_slider, round(param_entry->Value), LV_ANIM_OFF); + sprintf(value_string, "%d", (int)round(param_entry->Value)); + lv_label_set_text(objects.ui_val_eq_param2_value, value_string); + } break; + + case VALETON_PARAM_EQ_PARAM_3: + { + lv_slider_set_range(objects.ui_val_eq_param3_slider, param_entry->Min, param_entry->Max); + lv_slider_set_value(objects.ui_val_eq_param3_slider, round(param_entry->Value), LV_ANIM_OFF); + sprintf(value_string, "%d", (int)round(param_entry->Value)); + lv_label_set_text(objects.ui_val_eq_param3_value, value_string); + } break; + + case VALETON_PARAM_EQ_PARAM_4: + { + lv_slider_set_range(objects.ui_val_eq_param4_slider, param_entry->Min, param_entry->Max); + lv_slider_set_value(objects.ui_val_eq_param4_slider, round(param_entry->Value), LV_ANIM_OFF); + sprintf(value_string, "%d", (int)round(param_entry->Value)); + lv_label_set_text(objects.ui_val_eq_param4_value, value_string); + } break; + + case VALETON_PARAM_EQ_PARAM_5: // fallthrough + case VALETON_PARAM_EQ_PARAM_6: // fallthrough + case VALETON_PARAM_EQ_PARAM_7: + { + // not used + } break; + + case VALETON_PARAM_MOD_ENABLE: + { + if (param_entry->Value) + { + lv_img_set_src(objects.ui_icon_val_mod, (lv_obj_t*)&img_mod_on); + lv_obj_add_state(objects.ui_val_mod_block_switch, LV_STATE_CHECKED); + } + else + { + lv_img_set_src(objects.ui_icon_val_mod, (lv_obj_t*)&img_mod_off); + lv_obj_clear_state(objects.ui_val_mod_block_switch, LV_STATE_CHECKED); + } + } break; + + case VALETON_PARAM_MOD_TYPE: + { + lv_dropdown_set_selected(objects.ui_val_mod_model_dropdown, (int)param_entry->Value); + + switch ((int)param_entry->Value) + { + case VALETON_EFFECT_MOD_A_CHORUS: // fallthrough + case VALETON_EFFECT_MOD_B_CHORUS: + { + lv_obj_clear_flag(objects.ui_val_mod_param0_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_mod_param0_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_mod_param0_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_mod_param0_label, "Depth"); + + lv_obj_clear_flag(objects.ui_val_mod_param1_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_mod_param1_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_mod_param1_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_mod_param1_label, "Rate"); + + lv_obj_clear_flag(objects.ui_val_mod_param2_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_mod_param2_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_mod_param2_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_mod_param2_label, "Tone"); + + lv_obj_add_flag(objects.ui_val_mod_param3_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_mod_param3_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_mod_param3_value, LV_OBJ_FLAG_HIDDEN); + + lv_obj_add_flag(objects.ui_val_mod_param4_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_mod_param4_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_mod_param4_value, LV_OBJ_FLAG_HIDDEN); + } break; + + case VALETON_EFFECT_MOD_JET: // Fallthrough + case VALETON_EFFECT_MOD_N_JET: + { + lv_obj_clear_flag(objects.ui_val_mod_param0_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_mod_param0_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_mod_param0_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_mod_param0_label, "Depth"); + + lv_obj_clear_flag(objects.ui_val_mod_param1_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_mod_param1_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_mod_param1_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_mod_param1_label, "Rate"); + + lv_obj_clear_flag(objects.ui_val_mod_param2_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_mod_param2_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_mod_param2_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_mod_param2_label, "P.Delay"); + + lv_obj_clear_flag(objects.ui_val_mod_param3_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_mod_param3_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_mod_param3_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_mod_param3_label, "F.Back"); + + lv_obj_add_flag(objects.ui_val_mod_param4_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_mod_param4_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_mod_param4_value, LV_OBJ_FLAG_HIDDEN); + } break; + + case VALETON_EFFECT_MOD_O_PHASE: + { + lv_obj_clear_flag(objects.ui_val_mod_param0_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_mod_param0_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_mod_param0_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_mod_param0_label, "Rate"); + + lv_obj_add_flag(objects.ui_val_mod_param1_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_mod_param1_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_mod_param1_value, LV_OBJ_FLAG_HIDDEN); + + lv_obj_add_flag(objects.ui_val_mod_param2_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_mod_param2_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_mod_param2_value, LV_OBJ_FLAG_HIDDEN); + + lv_obj_add_flag(objects.ui_val_mod_param3_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_mod_param3_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_mod_param3_value, LV_OBJ_FLAG_HIDDEN); + + lv_obj_add_flag(objects.ui_val_mod_param4_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_mod_param4_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_mod_param4_value, LV_OBJ_FLAG_HIDDEN); + } break; + + case VALETON_EFFECT_MOD_M_VIBE: // fallthrough + case VALETON_EFFECT_MOD_V_ROTO: // fallthrough + case VALETON_EFFECT_MOD_O_TREM: + { + lv_obj_clear_flag(objects.ui_val_mod_param0_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_mod_param0_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_mod_param0_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_mod_param0_label, "Depth"); + + lv_obj_clear_flag(objects.ui_val_mod_param1_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_mod_param1_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_mod_param1_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_mod_param1_label, "Rate"); + + lv_obj_add_flag(objects.ui_val_mod_param2_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_mod_param2_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_mod_param2_value, LV_OBJ_FLAG_HIDDEN); + + lv_obj_add_flag(objects.ui_val_mod_param3_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_mod_param3_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_mod_param3_value, LV_OBJ_FLAG_HIDDEN); + + lv_obj_add_flag(objects.ui_val_mod_param4_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_mod_param4_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_mod_param4_value, LV_OBJ_FLAG_HIDDEN); + } break; + + case VALETON_EFFECT_MOD_VIBRATO: // fallthrough + case VALETON_EFFECT_MOD_SINE_TREM: + { + lv_obj_clear_flag(objects.ui_val_mod_param0_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_mod_param0_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_mod_param0_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_mod_param0_label, "Depth"); + + lv_obj_clear_flag(objects.ui_val_mod_param1_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_mod_param1_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_mod_param1_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_mod_param1_label, "Rate"); + + lv_obj_clear_flag(objects.ui_val_mod_param2_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_mod_param2_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_mod_param2_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_mod_param2_label, "Volume"); + + lv_obj_add_flag(objects.ui_val_mod_param3_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_mod_param3_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_mod_param3_value, LV_OBJ_FLAG_HIDDEN); + + lv_obj_add_flag(objects.ui_val_mod_param4_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_mod_param4_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_mod_param4_value, LV_OBJ_FLAG_HIDDEN); + } break; + + case VALETON_EFFECT_MOD_BIAS_TREM: + { + lv_obj_clear_flag(objects.ui_val_mod_param0_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_mod_param0_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_mod_param0_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_mod_param0_label, "Depth"); + + lv_obj_clear_flag(objects.ui_val_mod_param1_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_mod_param1_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_mod_param1_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_mod_param1_label, "Rate"); + + lv_obj_clear_flag(objects.ui_val_mod_param2_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_mod_param2_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_mod_param2_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_mod_param2_label, "Volume"); + + lv_obj_clear_flag(objects.ui_val_mod_param3_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_mod_param3_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_mod_param3_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_mod_param3_label, "Bias"); + + lv_obj_add_flag(objects.ui_val_mod_param4_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_mod_param4_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_mod_param4_value, LV_OBJ_FLAG_HIDDEN); + } break; + } + } break; + + case VALETON_PARAM_MOD_PARAM_0: + { + lv_slider_set_range(objects.ui_val_mod_param0_slider, param_entry->Min, param_entry->Max); + lv_slider_set_value(objects.ui_val_mod_param0_slider, round(param_entry->Value), LV_ANIM_OFF); + sprintf(value_string, "%d", (int)round(param_entry->Value)); + lv_label_set_text(objects.ui_val_mod_param0_value, value_string); + } break; + + case VALETON_PARAM_MOD_PARAM_1: + { + lv_slider_set_range(objects.ui_val_mod_param1_slider, param_entry->Min, param_entry->Max); + lv_slider_set_value(objects.ui_val_mod_param1_slider, round(param_entry->Value), LV_ANIM_OFF); + sprintf(value_string, "%d", (int)round(param_entry->Value)); + lv_label_set_text(objects.ui_val_mod_param1_value, value_string); + } break; + + case VALETON_PARAM_MOD_PARAM_2: + { + lv_slider_set_range(objects.ui_val_mod_param2_slider, param_entry->Min, param_entry->Max); + lv_slider_set_value(objects.ui_val_mod_param2_slider, round(param_entry->Value), LV_ANIM_OFF); + sprintf(value_string, "%d", (int)round(param_entry->Value)); + lv_label_set_text(objects.ui_val_mod_param2_value, value_string); + } break; + + case VALETON_PARAM_MOD_PARAM_3: + { + lv_slider_set_range(objects.ui_val_mod_param3_slider, param_entry->Min, param_entry->Max); + lv_slider_set_value(objects.ui_val_mod_param3_slider, round(param_entry->Value), LV_ANIM_OFF); + sprintf(value_string, "%d", (int)round(param_entry->Value)); + lv_label_set_text(objects.ui_val_mod_param3_value, value_string); + } break; + + case VALETON_PARAM_MOD_PARAM_4: + { + lv_slider_set_range(objects.ui_val_mod_param4_slider, param_entry->Min, param_entry->Max); + lv_slider_set_value(objects.ui_val_mod_param4_slider, round(param_entry->Value), LV_ANIM_OFF); + sprintf(value_string, "%d", (int)round(param_entry->Value)); + lv_label_set_text(objects.ui_val_mod_param4_value, value_string); + } break; + + case VALETON_PARAM_MOD_PARAM_5: // fallthrough + case VALETON_PARAM_MOD_PARAM_6: // fallthrough + case VALETON_PARAM_MOD_PARAM_7: + { + // not used + } break; + + case VALETON_PARAM_DLY_ENABLE: + { + if (param_entry->Value) + { + lv_img_set_src(objects.ui_icon_val_dly, (lv_obj_t*)&img_dly_on); + lv_obj_add_state(objects.ui_val_dly_block_switch, LV_STATE_CHECKED); + } + else + { + lv_img_set_src(objects.ui_icon_val_dly, (lv_obj_t*)&img_dly_off); + lv_obj_clear_state(objects.ui_val_dly_block_switch, LV_STATE_CHECKED); + } + } break; + + case VALETON_PARAM_DLY_TYPE: + { + lv_dropdown_set_selected(objects.ui_val_dly_model_dropdown, (int)param_entry->Value); + + switch ((int)param_entry->Value) + { + case VALETON_EFFECT_DLY_PURE: // fallthrough + case VALETON_EFFECT_DLY_SWEET_ECHO: // fallthrough + case VALETON_EFFECT_DLY_TAPE: // fallthrough + case VALETON_EFFECT_DLY_TUBE: + { + lv_obj_clear_flag(objects.ui_val_dly_param0_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_dly_param0_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_dly_param0_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_dly_param0_label, "Mix"); + + lv_obj_clear_flag(objects.ui_val_dly_param1_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_dly_param1_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_dly_param1_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_dly_param1_label, "Time"); + + lv_obj_clear_flag(objects.ui_val_dly_param2_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_dly_param2_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_dly_param2_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_dly_param2_label, "F.Back"); + + // todo trail switch + + lv_obj_add_flag(objects.ui_val_dly_param3_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_dly_param3_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_dly_param3_value, LV_OBJ_FLAG_HIDDEN); + + lv_obj_add_flag(objects.ui_val_dly_param4_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_dly_param4_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_dly_param4_value, LV_OBJ_FLAG_HIDDEN); + } break; + + case VALETON_EFFECT_DLY_ANALOG: + { + lv_obj_clear_flag(objects.ui_val_dly_param0_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_dly_param0_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_dly_param0_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_dly_param0_label, "Mix"); + + lv_obj_clear_flag(objects.ui_val_dly_param1_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_dly_param1_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_dly_param1_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_dly_param1_label, "Time"); + + lv_obj_clear_flag(objects.ui_val_dly_param2_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_dly_param2_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_dly_param2_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_dly_param2_label, "F.Back"); + + // todo trail switch + + lv_obj_add_flag(objects.ui_val_dly_param3_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_dly_param3_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_dly_param3_value, LV_OBJ_FLAG_HIDDEN); + + lv_obj_add_flag(objects.ui_val_dly_param4_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_dly_param4_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_dly_param4_value, LV_OBJ_FLAG_HIDDEN); + } break; + + case VALETON_EFFECT_DLY_SLAPBACK: + { + lv_obj_clear_flag(objects.ui_val_dly_param0_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_dly_param0_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_dly_param0_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_dly_param0_label, "Mix"); + + lv_obj_clear_flag(objects.ui_val_dly_param1_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_dly_param1_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_dly_param1_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_dly_param1_label, "Time"); + + lv_obj_clear_flag(objects.ui_val_dly_param2_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_dly_param2_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_dly_param2_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_dly_param2_label, "F.Back"); + + // todo trail switch + + lv_obj_add_flag(objects.ui_val_dly_param3_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_dly_param3_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_dly_param3_value, LV_OBJ_FLAG_HIDDEN); + + lv_obj_add_flag(objects.ui_val_dly_param4_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_dly_param4_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_dly_param4_value, LV_OBJ_FLAG_HIDDEN); + } break; + + case VALETON_EFFECT_DLY_REV_ECHO: + { + lv_obj_clear_flag(objects.ui_val_dly_param0_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_dly_param0_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_dly_param0_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_dly_param0_label, "Mix"); + + lv_obj_clear_flag(objects.ui_val_dly_param1_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_dly_param1_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_dly_param1_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_dly_param1_label, "Time"); + + lv_obj_clear_flag(objects.ui_val_dly_param2_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_dly_param2_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_dly_param2_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_dly_param2_label, "F.Back"); + + // todo trail switch + + lv_obj_add_flag(objects.ui_val_dly_param3_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_dly_param3_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_dly_param3_value, LV_OBJ_FLAG_HIDDEN); + + lv_obj_add_flag(objects.ui_val_dly_param4_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_dly_param4_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_dly_param4_value, LV_OBJ_FLAG_HIDDEN); + } break; + + case VALETON_EFFECT_DLY_PING_PONG: + { + lv_obj_clear_flag(objects.ui_val_dly_param0_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_dly_param0_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_dly_param0_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_dly_param0_label, "Mix"); + + lv_obj_clear_flag(objects.ui_val_dly_param1_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_dly_param1_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_dly_param1_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_dly_param1_label, "Time"); + + lv_obj_clear_flag(objects.ui_val_dly_param2_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_dly_param2_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_dly_param2_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_dly_param2_label, "F.Back"); + + // todo trail switch + + lv_obj_add_flag(objects.ui_val_dly_param3_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_dly_param3_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_dly_param3_value, LV_OBJ_FLAG_HIDDEN); + + lv_obj_add_flag(objects.ui_val_dly_param4_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_dly_param4_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_dly_param4_value, LV_OBJ_FLAG_HIDDEN); + } break; + + case VALETON_EFFECT_DLY_RING_ECHO: + { + lv_obj_clear_flag(objects.ui_val_dly_param0_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_dly_param0_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_dly_param0_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_dly_param0_label, "Mix"); + + lv_obj_clear_flag(objects.ui_val_dly_param1_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_dly_param1_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_dly_param1_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_dly_param1_label, "Time"); + + lv_obj_clear_flag(objects.ui_val_dly_param2_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_dly_param2_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_dly_param2_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_dly_param2_label, "F.Back"); + + lv_obj_add_flag(objects.ui_val_dly_param3_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_dly_param3_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_dly_param3_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_dly_param3_label, "R-Mix"); + + lv_obj_add_flag(objects.ui_val_dly_param4_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_dly_param4_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_dly_param4_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_dly_param4_label, "Freq"); + + // todo Tone + // todo trail switch + } break; + + case VALETON_EFFECT_DLY_SWEEP_ECHO: + { + lv_obj_clear_flag(objects.ui_val_dly_param0_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_dly_param0_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_dly_param0_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_dly_param0_label, "Mix"); + + lv_obj_clear_flag(objects.ui_val_dly_param1_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_dly_param1_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_dly_param1_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_dly_param1_label, "Time"); + + lv_obj_clear_flag(objects.ui_val_dly_param2_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_dly_param2_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_dly_param2_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_dly_param2_label, "F.Back"); + + lv_obj_clear_flag(objects.ui_val_dly_param3_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_dly_param3_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_dly_param3_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_dly_param3_label, "S-Depth"); + + lv_obj_clear_flag(objects.ui_val_dly_param4_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_dly_param4_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_dly_param4_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_dly_param4_label, "S-Rate"); + + // todo trail switch + } break; + } + } break; + + case VALETON_PARAM_DLY_PARAM_0: + { + lv_slider_set_range(objects.ui_val_dly_param0_slider, param_entry->Min, param_entry->Max); + lv_slider_set_value(objects.ui_val_dly_param0_slider, round(param_entry->Value), LV_ANIM_OFF); + sprintf(value_string, "%d", (int)round(param_entry->Value)); + lv_label_set_text(objects.ui_val_dly_param0_value, value_string); + } break; + + case VALETON_PARAM_DLY_PARAM_1: + { + lv_slider_set_range(objects.ui_val_dly_param1_slider, param_entry->Min, param_entry->Max); + lv_slider_set_value(objects.ui_val_dly_param1_slider, round(param_entry->Value), LV_ANIM_OFF); + sprintf(value_string, "%d", (int)round(param_entry->Value)); + lv_label_set_text(objects.ui_val_dly_param1_value, value_string); + } break; + + case VALETON_PARAM_DLY_PARAM_2: + { + lv_slider_set_range(objects.ui_val_dly_param2_slider, param_entry->Min, param_entry->Max); + lv_slider_set_value(objects.ui_val_dly_param2_slider, round(param_entry->Value), LV_ANIM_OFF); + sprintf(value_string, "%d", (int)round(param_entry->Value)); + lv_label_set_text(objects.ui_val_dly_param2_value, value_string); + } break; + + case VALETON_PARAM_DLY_PARAM_3: + { + lv_slider_set_range(objects.ui_val_dly_param3_slider, param_entry->Min, param_entry->Max); + lv_slider_set_value(objects.ui_val_dly_param3_slider, round(param_entry->Value), LV_ANIM_OFF); + sprintf(value_string, "%d", (int)round(param_entry->Value)); + lv_label_set_text(objects.ui_val_dly_param3_value, value_string); + } break; + + case VALETON_PARAM_DLY_PARAM_4: + { + lv_slider_set_range(objects.ui_val_dly_param4_slider, param_entry->Min, param_entry->Max); + lv_slider_set_value(objects.ui_val_dly_param4_slider, round(param_entry->Value), LV_ANIM_OFF); + sprintf(value_string, "%d", (int)round(param_entry->Value)); + lv_label_set_text(objects.ui_val_dly_param4_value, value_string); + } break; + + case VALETON_PARAM_DLY_PARAM_5: // fallthrough + case VALETON_PARAM_DLY_PARAM_6: // fallthrough + case VALETON_PARAM_DLY_PARAM_7: + { + // not used + } break; + + case VALETON_PARAM_RVB_ENABLE: + { + if (param_entry->Value) + { + lv_img_set_src(objects.ui_icon_val_rvb, (lv_obj_t*)&img_rvb_on); + lv_obj_add_state(objects.ui_val_rvb_block_switch, LV_STATE_CHECKED); + } + else + { + lv_img_set_src(objects.ui_icon_val_rvb, (lv_obj_t*)&img_rvb_off); + lv_obj_clear_state(objects.ui_val_rvb_block_switch, LV_STATE_CHECKED); + } + } break; + + case VALETON_PARAM_RVB_TYPE: + { + lv_dropdown_set_selected(objects.ui_val_rvb_model_dropdown, (int)param_entry->Value); + + switch ((int)param_entry->Value) + { + case VALETON_EFFECT_RVB_AIR: // fallthrough + case VALETON_EFFECT_RVB_PLATE: + { + lv_obj_clear_flag(objects.ui_val_rvb_param0_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_rvb_param0_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_rvb_param0_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_rvb_param0_label, "Mix"); + + lv_obj_clear_flag(objects.ui_val_rvb_param1_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_rvb_param1_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_rvb_param1_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_rvb_param1_label, "Decay"); + + lv_obj_clear_flag(objects.ui_val_rvb_param2_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_rvb_param2_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_rvb_param2_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_rvb_param2_label, "Damp"); + + //todo trail switch + + lv_obj_add_flag(objects.ui_val_rvb_param3_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_rvb_param3_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_rvb_param3_value, LV_OBJ_FLAG_HIDDEN); + + lv_obj_add_flag(objects.ui_val_rvb_param4_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_rvb_param4_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_rvb_param4_value, LV_OBJ_FLAG_HIDDEN); + } break; + + case VALETON_EFFECT_RVB_ROOM: // fallthrough + case VALETON_EFFECT_RVB_HALL: // fallthrough + case VALETON_EFFECT_RVB_CHURCH: // fallthrough + case VALETON_EFFECT_RVB_PLATE_L: // fallthrough + case VALETON_EFFECT_RVB_SPRING: // fallthrough + case VALETON_EFFECT_RVB_N_STAR: // fallthrough + case VALETON_EFFECT_RVB_DEEPSEA: + { + lv_obj_clear_flag(objects.ui_val_rvb_param0_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_rvb_param0_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_rvb_param0_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_rvb_param0_label, "Mix"); + + lv_obj_clear_flag(objects.ui_val_rvb_param1_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_rvb_param1_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_rvb_param1_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_rvb_param1_label, "Decay"); + + //todo trail switch + + lv_obj_add_flag(objects.ui_val_rvb_param2_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_rvb_param2_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_rvb_param2_value, LV_OBJ_FLAG_HIDDEN); + + lv_obj_add_flag(objects.ui_val_rvb_param3_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_rvb_param3_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_rvb_param3_value, LV_OBJ_FLAG_HIDDEN); + + lv_obj_add_flag(objects.ui_val_rvb_param4_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_rvb_param4_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_rvb_param4_value, LV_OBJ_FLAG_HIDDEN); + } break; + + case VALETON_EFFECT_RVB_SWEET_SPACE: + { + lv_obj_clear_flag(objects.ui_val_rvb_param0_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_rvb_param0_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_rvb_param0_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_rvb_param0_label, "Mix"); + + lv_obj_clear_flag(objects.ui_val_rvb_param1_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_rvb_param1_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_rvb_param1_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_rvb_param1_label, "Decay"); + + lv_obj_clear_flag(objects.ui_val_rvb_param2_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_rvb_param2_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_rvb_param2_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_rvb_param2_label, "Damp"); + + lv_obj_clear_flag(objects.ui_val_rvb_param3_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_rvb_param3_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_rvb_param3_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_rvb_param3_label, "Mod"); + + //todo trail switch + + lv_obj_add_flag(objects.ui_val_rvb_param4_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_rvb_param4_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_rvb_param4_value, LV_OBJ_FLAG_HIDDEN); + } break; + } + } break; + + case VALETON_PARAM_RVB_PARAM_0: + { + lv_slider_set_range(objects.ui_val_rvb_param0_slider, param_entry->Min, param_entry->Max); + lv_slider_set_value(objects.ui_val_rvb_param0_slider, round(param_entry->Value), LV_ANIM_OFF); + sprintf(value_string, "%d", (int)round(param_entry->Value)); + lv_label_set_text(objects.ui_val_rvb_param0_value, value_string); + } break; + + case VALETON_PARAM_RVB_PARAM_1: + { + lv_slider_set_range(objects.ui_val_rvb_param1_slider, param_entry->Min, param_entry->Max); + lv_slider_set_value(objects.ui_val_rvb_param1_slider, round(param_entry->Value), LV_ANIM_OFF); + sprintf(value_string, "%d", (int)round(param_entry->Value)); + lv_label_set_text(objects.ui_val_rvb_param1_value, value_string); + } break; + + case VALETON_PARAM_RVB_PARAM_2: + { + lv_slider_set_range(objects.ui_val_rvb_param2_slider, param_entry->Min, param_entry->Max); + lv_slider_set_value(objects.ui_val_rvb_param2_slider, round(param_entry->Value), LV_ANIM_OFF); + sprintf(value_string, "%d", (int)round(param_entry->Value)); + lv_label_set_text(objects.ui_val_rvb_param2_value, value_string); + } break; + + case VALETON_PARAM_RVB_PARAM_3: + { + lv_slider_set_range(objects.ui_val_rvb_param3_slider, param_entry->Min, param_entry->Max); + lv_slider_set_value(objects.ui_val_rvb_param3_slider, round(param_entry->Value), LV_ANIM_OFF); + sprintf(value_string, "%d", (int)round(param_entry->Value)); + lv_label_set_text(objects.ui_val_rvb_param3_value, value_string); + } break; + + case VALETON_PARAM_RVB_PARAM_4: + { + lv_slider_set_range(objects.ui_val_rvb_param4_slider, param_entry->Min, param_entry->Max); + lv_slider_set_value(objects.ui_val_rvb_param4_slider, round(param_entry->Value), LV_ANIM_OFF); + sprintf(value_string, "%d", (int)round(param_entry->Value)); + lv_label_set_text(objects.ui_val_rvb_param4_value, value_string); + } break; + + case VALETON_PARAM_RVB_PARAM_5: // fallthrough + case VALETON_PARAM_RVB_PARAM_6: // fallthrough + case VALETON_PARAM_RVB_PARAM_7: + { + // not used + } break; + + case VALETON_PARAM_NS_ENABLE: + { + if (param_entry->Value) + { + lv_img_set_src(objects.ui_icon_val_tc, (lv_obj_t*)&img_tc_on); + lv_obj_add_state(objects.ui_val_ns_block_switch, LV_STATE_CHECKED); + } + else + { + lv_img_set_src(objects.ui_icon_val_tc, (lv_obj_t*)&img_tc_off); + lv_obj_clear_state(objects.ui_val_ns_block_switch, LV_STATE_CHECKED); + } + } break; + + case VALETON_PARAM_NS_TYPE: + { + lv_dropdown_set_selected(objects.ui_val_ns_model_dropdown, (int)param_entry->Value); + + // all models have same params + lv_obj_clear_flag(objects.ui_val_ns_param0_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_ns_param0_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_ns_param0_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_ns_param0_label, "Gain"); + + lv_obj_clear_flag(objects.ui_val_ns_param1_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_ns_param1_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_ns_param1_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_ns_param1_label, "Volume"); + + lv_obj_clear_flag(objects.ui_val_ns_param2_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_ns_param2_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_ns_param2_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_ns_param2_label, "Bass"); + + lv_obj_clear_flag(objects.ui_val_ns_param3_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_ns_param3_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_ns_param3_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_ns_param3_label, "Middle"); + + lv_obj_clear_flag(objects.ui_val_ns_param4_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_ns_param4_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_ns_param4_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_ns_param4_label, "Treble"); + } break; + + case VALETON_PARAM_NS_PARAM_0: + { + lv_slider_set_range(objects.ui_val_ns_param0_slider, param_entry->Min, param_entry->Max); + lv_slider_set_value(objects.ui_val_ns_param0_slider, round(param_entry->Value), LV_ANIM_OFF); + sprintf(value_string, "%d", (int)round(param_entry->Value)); + lv_label_set_text(objects.ui_val_ns_param0_value, value_string); + } break; + + case VALETON_PARAM_NS_PARAM_1: + { + lv_slider_set_range(objects.ui_val_ns_param1_slider, param_entry->Min, param_entry->Max); + lv_slider_set_value(objects.ui_val_ns_param1_slider, round(param_entry->Value), LV_ANIM_OFF); + sprintf(value_string, "%d", (int)round(param_entry->Value)); + lv_label_set_text(objects.ui_val_ns_param1_value, value_string); + } break; + + case VALETON_PARAM_NS_PARAM_2: + { + lv_slider_set_range(objects.ui_val_ns_param2_slider, param_entry->Min, param_entry->Max); + lv_slider_set_value(objects.ui_val_ns_param2_slider, round(param_entry->Value), LV_ANIM_OFF); + sprintf(value_string, "%d", (int)round(param_entry->Value)); + lv_label_set_text(objects.ui_val_ns_param2_value, value_string); + } break; + + case VALETON_PARAM_NS_PARAM_3: + { + lv_slider_set_range(objects.ui_val_ns_param3_slider, param_entry->Min, param_entry->Max); + lv_slider_set_value(objects.ui_val_ns_param3_slider, round(param_entry->Value), LV_ANIM_OFF); + sprintf(value_string, "%d", (int)round(param_entry->Value)); + lv_label_set_text(objects.ui_val_ns_param3_value, value_string); + } break; + + case VALETON_PARAM_NS_PARAM_4: + { + lv_slider_set_range(objects.ui_val_ns_param4_slider, param_entry->Min, param_entry->Max); + lv_slider_set_value(objects.ui_val_ns_param4_slider, round(param_entry->Value), LV_ANIM_OFF); + sprintf(value_string, "%d", (int)round(param_entry->Value)); + lv_label_set_text(objects.ui_val_ns_param4_value, value_string); + } break; + + case VALETON_PARAM_NS_PARAM_5: // fallthrough + case VALETON_PARAM_NS_PARAM_6: // fallthrough + case VALETON_PARAM_NS_PARAM_7: // fallthrough + case VALETON_PARAM_NS_PARAM_8: // fallthrough + case VALETON_PARAM_NS_PARAM_9: // fallthrough + case VALETON_PARAM_NS_PARAM_10: + { + // not used + } break; + + case VALETON_GLOBAL_BPM: + { + // show value and units + // todo + // sprintf(value_string, "%1.1f", param_entry->Value); + //lv_label_set_text(objects.ui_val_bpm_value, value_string); + + char buf[128]; + sprintf(buf, "%.1f", param_entry->Value); + lv_label_set_text(objects.ui_bpm_value_label, buf); + +#if CONFIG_TONEX_CONTROLLER_SHOW_BPM_INDICATOR + ui_BPMAnimate(objects.ui_bpm_indicator, 1000 * 60 / param_entry->Value); +#endif + } break; + + case VALETON_GLOBAL_INPUT_TRIM: + { + lv_slider_set_value(objects.ui_val_glob_input_level_slider, round(param_entry->Value), LV_ANIM_OFF); + sprintf(value_string, "%d", (int)round(param_entry->Value)); + lv_label_set_text(objects.ui_val_glob_input_level_value, value_string); + } break; + + case VALETON_GLOBAL_CABSIM_BYPASS: + { + if (param_entry->Value) + { + lv_obj_add_state(objects.ui_val_glob_no_cab_switch, LV_STATE_CHECKED); + } + else + { + lv_obj_clear_state(objects.ui_val_glob_no_cab_switch, LV_STATE_CHECKED); + } + } break; + + case VALETON_GLOBAL_MASTER_VOLUME: + { + lv_slider_set_value(objects.ui_val_glob_master_vol_slider, round(param_entry->Value), LV_ANIM_OFF); + sprintf(value_string, "%d", (int)round(param_entry->Value)); + lv_label_set_text(objects.ui_val_glob_master_vol_value, value_string); + } break; + + case VALETON_GLOBAL_RECORD_LEVEL: // fallthrough + case VALETON_GLOBAL_MONITOR_LEVEL: // fallthrough + case VALETON_GLOBAL_BT_LEVEL: // fallthrough + case VALETON_PARAM_EFFECT_SLOT_0: // fallthrough + case VALETON_PARAM_EFFECT_SLOT_1: // fallthrough + case VALETON_PARAM_EFFECT_SLOT_2: // fallthrough + case VALETON_PARAM_EFFECT_SLOT_3: // fallthrough + case VALETON_PARAM_EFFECT_SLOT_4: // fallthrough + case VALETON_PARAM_EFFECT_SLOT_5: // fallthrough + case VALETON_PARAM_EFFECT_SLOT_6: // fallthrough + case VALETON_PARAM_EFFECT_SLOT_7: // fallthrough + case VALETON_PARAM_EFFECT_SLOT_8: // fallthrough + case VALETON_PARAM_EFFECT_SLOT_9: + { + // not exposed to UI + } break; + } + + valeton_params_release_locked_access(); + } + } +#else //CONFIG_TONEX_CONTROLLER_DISPLAY_FULL_UI + // Small UI + for (uint16_t param = 0; param < VALETON_PARAM_LAST; param++) + { + if (valeton_params_get_locked_access(¶m_ptr) == ESP_OK) + { + tModellerParameter* param_entry = ¶m_ptr[param]; + + // debug + //ESP_LOGI(TAG, "Param %d: val: %02f, min: %02f, max: %02f", param, param_entry->Value, param_entry->Min, param_entry->Max); + + switch (param) + { + case VALETON_GLOBAL_BPM: + { + char buf[128]; + sprintf(buf, "%d", (int)round(param_entry->Value)); + lv_label_set_text(objects.ui_bpm, buf); + } break; + + case VALETON_PARAM_DIST_ENABLE: + { + if (param_entry->Value) + { + lv_obj_set_style_border_color(objects.ui_cstatus, lv_color_hex(0xDDDD00), LV_PART_MAIN | LV_STATE_DEFAULT); + } + else + { + lv_obj_set_style_border_color(objects.ui_cstatus, lv_color_hex(0x563F2A), LV_PART_MAIN | LV_STATE_DEFAULT); + } + } break; + + case VALETON_PARAM_MOD_ENABLE: + { + if (param_entry->Value) + { + lv_obj_set_style_border_color(objects.ui_mstatus, lv_color_hex(0xEEAA00), LV_PART_MAIN | LV_STATE_DEFAULT); + } + else + { + lv_obj_set_style_border_color(objects.ui_mstatus, lv_color_hex(0x563F2A), LV_PART_MAIN | LV_STATE_DEFAULT); + } + } break; + + case VALETON_PARAM_DLY_ENABLE: + { + if (param_entry->Value) + { + lv_obj_set_style_border_color(objects.ui_dstatus, lv_color_hex(0x00CC00), LV_PART_MAIN | LV_STATE_DEFAULT); + } + else + { + lv_obj_set_style_border_color(objects.ui_dstatus, lv_color_hex(0x563F2A), LV_PART_MAIN | LV_STATE_DEFAULT); + } + } break; + + case VALETON_PARAM_RVB_ENABLE: + { + if (param_entry->Value) + { + lv_obj_set_style_border_color(objects.ui_rstatus, lv_color_hex(0x33FFFF), LV_PART_MAIN | LV_STATE_DEFAULT); + } + else + { + lv_obj_set_style_border_color(objects.ui_rstatus, lv_color_hex(0x563F2A), LV_PART_MAIN | LV_STATE_DEFAULT); + } + } break; + + default: + { + // param not displayed + } break; + } + + valeton_params_release_locked_access(); + } + } +#endif //CONFIG_TONEX_CONTROLLER_DISPLAY_FULL_UI +#endif //CONFIG_TONEX_CONTROLLER_HAS_DISPLAY + + return 1; +} diff --git a/source/main/display_valeton.h b/source/main/display_valeton.h new file mode 100644 index 00000000..0864756b --- /dev/null +++ b/source/main/display_valeton.h @@ -0,0 +1,37 @@ +/* + Copyright (C) 2024 Greg Smith + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + +*/ + +#ifndef _DISPLAY_VALETON_H +#define _DISPLAY_VALETON_H + +#ifdef __cplusplus +extern "C" { +#endif + +#include "lvgl.h" + +void valeton_show_settings_tab(lv_event_t* e); +void valeton_action_effect_icon_clicked(lv_event_t* e); +void valeton_action_parameter_changed(lv_event_t* e); +void valeton_update_icon_order(void); +uint8_t valeton_update_ui_parameters(void); + +#ifdef __cplusplus +} /*extern "C"*/ +#endif + +#endif \ No newline at end of file diff --git a/source/main/index.html b/source/main/index.html deleted file mode 100644 index 6fc16b20..00000000 --- a/source/main/index.html +++ /dev/null @@ -1,4459 +0,0 @@ - - - - - - - - - Tonex One Controller Project - - - - - - - - - - - - - - - - - -
- - - - - - - - -
- - - -
-
-
- -
-
- -
-
-
- -
-
- -
- -
- -
-
-
- -
-
-
Noise Gate
-

-

-
-
-
- - -
-
-
-
- - -
-
-
-
-
-
- - -
-
- - -
-
- - -
-

-
-
- -
-
-
Compressor
-

-

-
-
-
- - -
-
-
-
- - -
-
-
-
-
-
- - -
-
- - -
-
- - -
-

-
-
- -
-
-
Equalisation
-

-

-
-
-
- - -
-
-
-
-
-
-
-
-
- -
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-

-
-
- -
-
-
Reverb
-

-

-
-
-
- - -
-
-
-
- - -
-
-
-
-
-
- - -
-
-
- - -
-
- - -
-
- - -
-
- - -
- -

-
-
- -
-
-
Modulation
-

-

-
-
-
- - -
-
-
-
- - -
-
-
-
-
-
-
-
-
- - -
-
-
-
-
-
-
-
-
-
- - -
-
-
- - -
-
-
-
-
- -
-
-
-
-
- -
-
- - -
-
- - -
-
- - -
-

-
-
- -
-
-
Delay
-

-

-
-
-
- - -
-
-
-
- - -
-
-
-
-
-
-
-
-
- - -
-
-
-
- - -
-
-
-
-
-
- - -
-
-
-
-
- -
-
-
-
-
- -
-
- - -
-
-
- - -
-
- - -
-

-
-
- -
-
-
Amplifier
-

-

-
-
-
- - -
-
-
-
-
-
- - -
-
-
- - -
-
- - -
-
- - -
- -
- - -
- -
- - -
-

-
-
- -
-
-
Global
-

-

-
-
-
- - -
-
-
-
- - -
-
-
-
-
-
-
-
-
- - -
-
-
-
-
-
-
-
-
-
TAP
-
-
-
- - -
-
- - -
-
- - -
-
- - -
-

-
-
- -
-
-
Presets
-

-

-
-
-
- -
-
-
-
-
-
-
- -
-

-
-
- -
-
-
Bluetooth
-

-

- - -
-
-
-
- - -
-
-
-
-
- - -
-
-
-
-
-
- - -
-
-
-
- -
-
-
-
-
- - -
-
-
-
-
- -
-

-
-
- -
-
-
Midi
-

-

-
- - -
-
-
-
- - -
-
-
-
- -
-

-
-
- -
-
-
Internal Footswitches
-

-

- - -
-
-
-
- - - - -
-
-
-
- - -
-
-
- - -
-
-
- - - - -
-
-
- - - - -
-
-
-
- - -
-
-
- - -
-
-
- - - - -
-
-
- - - - -
-
-
-
- - -
-
-
- - -
-
-
- - - - -
-
-
- - - - -
-
-
-
- - -
-
-
- - -
-
-
- - - - -
-
-
- - - - -
-
-
-
-
- -
-

-
-
- -
-
-
External Footswitches
-

-

- - -
-
-
-
- - - - - - - - -
-
-
-
- - -
-
-
- - -
-
-
- - - - -
-
-
- - - - -
-
-
-
- - -
-
-
- - -
-
-
- - - - -
-
-
- - - - -
-
-
-
- - -
-
-
- - -
-
-
- - - - -
-
-
- - - - -
-
-
-
- - -
-
-
- - -
-
-
- - - - -
-
-
- - - - -
-
-
-
- - -
-
-
- - -
-
-
- - - - -
-
-
- - - - -
-
-
-
- - -
-
-
- - -
-
-
- - - - -
-
-
- - - - -
-
-
-
- - -
-
-
- - -
-
-
- - - - -
-
-
- - - - -
-
-
-
- - -
-
-
- - -
-
-
- - - - -
-
-
- - - - -
-
-
-
-
- -
-

-
-
- -
-
-
WiFi
-

-

- - -
-
-
- - -
-
-
-
-
-
-
- - -
-
-
- - -
-
-
- - -
-
-
-
- -
-

-
-
- -
-
-
Miscellaneous
-

-

-
- - -
-
-
-
- - -
-
-
-
- - -
-
-
-
- - -
-
-
-
- - -
-
-
-
-
- -
-

-
-
- -
- - - - - - - - - diff --git a/source/main/leds.c b/source/main/leds.c index 58ac56ca..e635f056 100644 --- a/source/main/leds.c +++ b/source/main/leds.c @@ -42,8 +42,9 @@ limitations under the License. #include "usb_tonex_one.h" #include "leds.h" +#if !CONFIG_TONEX_CONTROLLER_LED_CONTROL_DISABLED + #define RMT_LED_STRIP_RESOLUTION_HZ 10000000 // 10MHz resolution, 1 tick = 0.1us (led strip needs a high resolution) -#define LED_NUMBER 1 enum LedStates { @@ -74,7 +75,7 @@ typedef struct uint32_t timer; uint32_t counter; - uint8_t led_strip_pixels[LED_NUMBER * 3]; + uint8_t led_strip_pixels[CONFIG_TONEX_CONTROLLER_LED_NUMBER * 3]; rmt_channel_handle_t led_chan; rmt_encoder_handle_t led_encoder; rmt_transmit_config_t tx_config; @@ -82,9 +83,7 @@ typedef struct static const char *TAG = "app_leds"; -#if CONFIG_TONEX_CONTROLLER_HARDWARE_PLATFORM_WAVESHARE_ZERO || CONFIG_TONEX_CONTROLLER_HARDWARE_PLATFORM_DEVKITC static tLedControl LedControl; -#endif /**************************************************************************** * NAME: @@ -316,6 +315,7 @@ esp_err_t __attribute__((unused)) rmt_new_led_strip_encoder(const led_strip_enco return ret; } +#endif //CONFIG_TONEX_CONTROLLER_LED_CONTROL_DISABLED /**************************************************************************** * NAME: @@ -326,7 +326,7 @@ esp_err_t __attribute__((unused)) rmt_new_led_strip_encoder(const led_strip_enco *****************************************************************************/ void leds_handle(void) { -#if CONFIG_TONEX_CONTROLLER_HARDWARE_PLATFORM_WAVESHARE_ZERO || CONFIG_TONEX_CONTROLLER_HARDWARE_PLATFORM_DEVKITC +#if !CONFIG_TONEX_CONTROLLER_LED_CONTROL_DISABLED uint32_t red = 0; uint32_t green = 0; uint32_t blue = 10; @@ -335,13 +335,13 @@ void leds_handle(void) { case LED_STATE_BOOT_FLASH_ON: { -#if CONFIG_TONEX_CONTROLLER_HARDWARE_PLATFORM_DEVKITC +#if CONFIG_TONEX_CONTROLLER_LED_COLOUR_ORDER_GBR // led is GBR colour order LedControl.led_strip_pixels[0] = green; LedControl.led_strip_pixels[1] = blue; LedControl.led_strip_pixels[2] = red; #endif -#if CONFIG_TONEX_CONTROLLER_HARDWARE_PLATFORM_WAVESHARE_ZERO +#if CONFIG_TONEX_CONTROLLER_LED_COLOUR_ORDER_RGB // led is RGB colour order LedControl.led_strip_pixels[0] = red; LedControl.led_strip_pixels[1] = green; @@ -396,7 +396,7 @@ void leds_handle(void) // nothing to do } break; } -#endif +#endif //CONFIG_TONEX_CONTROLLER_LED_CONTROL_DISABLED } /**************************************************************************** @@ -408,7 +408,7 @@ void leds_handle(void) *****************************************************************************/ void leds_init(void) { -#if CONFIG_TONEX_CONTROLLER_HARDWARE_PLATFORM_WAVESHARE_ZERO || CONFIG_TONEX_CONTROLLER_HARDWARE_PLATFORM_DEVKITC +#if !CONFIG_TONEX_CONTROLLER_LED_CONTROL_DISABLED ESP_LOGI(TAG, "Leds Init start"); // init memory @@ -439,5 +439,5 @@ void leds_init(void) ESP_LOGI(TAG, "Enable RMT TX channel"); ESP_ERROR_CHECK(rmt_enable(LedControl.led_chan)); -#endif +#endif //CONFIG_TONEX_CONTROLLER_LED_CONTROL_DISABLED } diff --git a/source/main/main.h b/source/main/main.h index da60f25d..f852bc64 100644 --- a/source/main/main.h +++ b/source/main/main.h @@ -520,6 +520,86 @@ extern SemaphoreHandle_t I2CMutex_2; #define PIN_NUM_CLK GPIO_NUM12 #define PIN_NUM_CS GPIO_NUM10 +#elif CONFIG_TONEX_CONTROLLER_HARDWARE_PLATFORM_PIRATE_MIDI_POLAR_PRO + // I2C bus 1 + #define I2C_MASTER_1_SCL_IO GPIO_NUM_12 // not actually used + #define I2C_MASTER_1_SDA_IO GPIO_NUM_13 // not actually used + + #define EXTERNAL_IO_EXPANDER_BUS I2C_MASTER_NUM_1 + #define EXTERNAL_IO_EXPANDER_MUTEX I2CMutex_1 + + // I2C bus 2 + #define I2C_MASTER_2_SCL_IO -1 + #define I2C_MASTER_2_SDA_IO -1 + + // direct IO pins + #define FOOTSWITCH_1 GPIO_NUM_16 + #define FOOTSWITCH_2 GPIO_NUM_3 + #define FOOTSWITCH_3 GPIO_NUM_2 + #define FOOTSWITCH_4 GPIO_NUM_44 // same as UART RX + + // Midi + #define UART_RX_PIN GPIO_NUM_18 + #define UART_TX_PIN GPIO_NUM_17 + + // leds + #define LED_OUTPUT_GPIO_NUM GPIO_NUM_1 + + // charger + #define LBO_STATUS GPIO_NUM_10 + #define CHARGE_STATUS GPIO_NUM_11 + + // LCD pins + #define POLAR_PRO_240_280_LCD_GPIO_SCLK (GPIO_NUM_6) + #define POLAR_PRO_240_280_LCD_GPIO_MOSI (GPIO_NUM_7) + #define POLAR_PRO_240_280_LCD_GPIO_RST (GPIO_NUM_8) + #define POLAR_PRO_240_280_LCD_GPIO_DC (GPIO_NUM_4) + #define POLAR_PRO_240_280_LCD_GPIO_CS (GPIO_NUM_5) + #define POLAR_PRO_240_280_LCD_GPIO_BL (GPIO_NUM_15) + +#elif CONFIG_TONEX_CONTROLLER_HARDWARE_PLATFORM_PIRATE_MIDI_POLAR_MAX_V2 + // I2C bus 1 + #define I2C_MASTER_1_SCL_IO GPIO_NUM_41 + #define I2C_MASTER_1_SDA_IO GPIO_NUM_40 + + // I2C bus 2 + #define I2C_MASTER_2_SCL_IO -1 + #define I2C_MASTER_2_SDA_IO -1 + + #define EXTERNAL_IO_EXPANDER_BUS I2C_MASTER_NUM_1 + #define EXTERNAL_IO_EXPANDER_MUTEX I2CMutex_1 + + #define FOOTSWITCH_1 GPIO_NUM_2 + #define FOOTSWITCH_2 GPIO_NUM_4 + #define FOOTSWITCH_3 GPIO_NUM_5 + #define FOOTSWITCH_4 GPIO_NUM_6 + + // Midi: + #define UART_RX_PIN GPIO_NUM_10 + #define UART_TX_PIN GPIO_NUM_9 + + // leds + #define LED_OUTPUT_GPIO_NUM GPIO_NUM_1 + + // LCD pins + #define POLAR_MAX_35_LCD_GPIO_SCLK GPIO_NUM_47 + #define POLAR_MAX_35_LCD_GPIO_MOSI GPIO_NUM_21 + #define POLAR_MAX_35_LCD_GPIO_DC GPIO_NUM_14 + #define POLAR_MAX_35_LCD_GPIO_RST GPIO_NUM_13 + #define POLAR_MAX_35_LCD_GPIO_CS GPIO_NUM_48 + #define POLAR_MAX_35_LCD_GPIO_BL GPIO_NUM_39 + + // backlight + #define POLAR_MAX_35_LCD_BL_LEDC_TIMER LEDC_TIMER_1 + #define POLAR_MAX_35_LCD_BL_LEDC_MODE LEDC_LOW_SPEED_MODE + #define POLAR_MAX_35_LCD_BL_LEDC_CHANNEL LEDC_CHANNEL_0 + #define POLAR_MAX_35_LCD_BL_LEDC_DUTY_RES LEDC_TIMER_10_BIT // Set duty resolution to 13 bits + #define POLAR_MAX_35_LCD_BL_LEDC_DUTY (1024) // Set duty to 50%. (2 ** 13) * 50% = 4096 + #define POLAR_MAX_35_LCD_BL_LEDC_FREQUENCY (10000) // Frequency in Hertz. Set frequency at 5 kHz + + // Touch + #define TOUCH_INT GPIO_NUM_42 + #else #error "Unknown hardware platform!" #endif diff --git a/source/main/midi_helper.c b/source/main/midi_helper.c index 7f9834d2..dc035377 100644 --- a/source/main/midi_helper.c +++ b/source/main/midi_helper.c @@ -37,15 +37,12 @@ limitations under the License. #include "usb/usb_host.h" #include "usb_tonex_one.h" #include "tonex_params.h" +#include "midi_helper.h" +#include "midi_helper_tonex.h" +#include "midi_helper_valeton.h" static const char *TAG = "app_midi_helper"; -// for boolean values: -// 0 = off, 127 = on, and 64 to toggle the current state -#define MIDI_BOOL_DISABLE 0 // matches Tonex -#define MIDI_BOOL_TOGGLE 64 // custom for this controller, not natively supported by Tonex -#define MIDI_BOOL_ENABLE 127 // matches Tonex - /**************************************************************************** * NAME: * DESCRIPTION: @@ -72,7 +69,7 @@ float midi_helper_scale_midi_to_float(uint16_t param_index, uint8_t midi_value) * RETURN: * NOTES: *****************************************************************************/ -static float midi_helper_boolean_midi_to_float(uint8_t midi_value) +float midi_helper_boolean_midi_to_float(uint8_t midi_value) { if (midi_value == MIDI_BOOL_ENABLE) { @@ -91,35 +88,22 @@ static float midi_helper_boolean_midi_to_float(uint8_t midi_value) * RETURN: * NOTES: *****************************************************************************/ -static uint8_t midi_helper_boolean_midi_toggle(uint16_t param, uint8_t midi_value, float* value) +esp_err_t midi_helper_adjust_param_via_midi(uint8_t change_num, uint8_t midi_value) { - tModellerParameter* param_ptr; - - if (midi_value == MIDI_BOOL_TOGGLE) + switch (usb_get_connected_modeller_type()) { - // take mutex - if (tonex_params_get_locked_access(¶m_ptr) == ESP_OK) - { - // toggle current state - if (param_ptr[param].Value == 0.0f) - { - *value = 1.0f; - } - else - { - *value = 0.0f; - } - - // release mutex - tonex_params_release_locked_access(); - } - - // toggling - return 1; - } + case AMP_MODELLER_TONEX_ONE: // fallthrough + case AMP_MODELLER_TONEX: // fallthrough + default: + { + return midi_helper_tonex_adjust_param_via_midi(change_num, midi_value); + } break; - // not toggling - return 0; + case AMP_MODELLER_VALETON_GP5: + { + return midi_helper_valeton_adjust_param_via_midi(change_num, midi_value); + } break; + } } /**************************************************************************** @@ -129,1885 +113,22 @@ static uint8_t midi_helper_boolean_midi_toggle(uint16_t param, uint8_t midi_valu * RETURN: * NOTES: *****************************************************************************/ -esp_err_t midi_helper_adjust_param_via_midi(uint8_t change_num, uint8_t midi_value) +uint16_t midi_helper_get_param_for_change_num(uint8_t change_num, uint8_t midi_value_1, uint8_t midi_value_2) { - uint16_t param; - float value; - tModellerParameter* param_ptr; - - // Midi mapping done to match the big Tonex pedal - switch (change_num) + switch (usb_get_connected_modeller_type()) { - // 0: midi patch bank on big tonex - - case 1: - { - param = TONEX_PARAM_DELAY_POST; - - // check for toggling - if (!midi_helper_boolean_midi_toggle(param, midi_value, &value)) - { - value = midi_helper_boolean_midi_to_float(midi_value); - value = tonex_params_clamp_value(param, value); - } - } break; - - case 2: - { - param = TONEX_PARAM_DELAY_ENABLE; - - // check for toggling - if (!midi_helper_boolean_midi_toggle(param, midi_value, &value)) - { - value = midi_helper_boolean_midi_to_float(midi_value); - value = tonex_params_clamp_value(param, value); - } - } break; - - case 3: - { - param = TONEX_PARAM_DELAY_MODEL; - value = (float)midi_value; - value = tonex_params_clamp_value(param, value); - } break; - - case 4: - { - param = TONEX_PARAM_DELAY_DIGITAL_SYNC; - - // check for toggling - if (!midi_helper_boolean_midi_toggle(param, midi_value, &value)) - { - value = midi_helper_boolean_midi_to_float(midi_value); - value = tonex_params_clamp_value(param, value); - } - } break; - - case 5: - { - // take mutex - if (tonex_params_get_locked_access(¶m_ptr) == ESP_OK) - { - if (param_ptr[TONEX_PARAM_DELAY_DIGITAL_SYNC].Value == 0.00f) - { - ESP_LOGW(TAG, "TONEX_PARAM_DELAY_DIGITAL_TIME"); - - param = TONEX_PARAM_DELAY_DIGITAL_TIME; - - // release mutex as next functions need it - tonex_params_release_locked_access(); - - // scale the value to the time range - value = midi_helper_scale_midi_to_float(param, midi_value); - value = tonex_params_clamp_value(param, value); - } - else - { - ESP_LOGW(TAG, "TONEX_PARAM_DELAY_DIGITAL_TS"); - - param = TONEX_PARAM_DELAY_DIGITAL_TS; - - // release mutex as next functions need it - tonex_params_release_locked_access(); - - // set the time sign - value = (float)midi_value; - value = tonex_params_clamp_value(param, value); - } - } - else - { - // failed to get access to params - ESP_LOGW(TAG, "TONEX_PARAM_DELAY_DIGITAL_TIME param access failed"); - return ESP_FAIL; - } - } break; - - case 6: - { - param = TONEX_PARAM_DELAY_DIGITAL_FEEDBACK; - value = midi_helper_scale_midi_to_float(param, midi_value); - value = tonex_params_clamp_value(param, value); - } break; - - case 7: - { - param = TONEX_PARAM_DELAY_DIGITAL_MODE; - if (midi_value == 64) - { - value = 1.0f; - } - else - { - value = 0.0f; - } - value = tonex_params_clamp_value(param, value); - } break; - - case 8: - { - param = TONEX_PARAM_DELAY_DIGITAL_MIX; - value = midi_helper_scale_midi_to_float(param, midi_value); - value = tonex_params_clamp_value(param, value); - } break; - - // 9 tuner - - case 10: - { - //tap tempo - control_trigger_tap_tempo(); - - // no param change needed - return ESP_OK; - } break; - - // 11: expression pedal - - case 12: - { - //preset on/off - param = TONEX_GLOBAL_BYPASS; - - // check for toggling - if (!midi_helper_boolean_midi_toggle(param, midi_value, &value)) - { - value = midi_helper_boolean_midi_to_float(midi_value); - value = tonex_params_clamp_value(param, value); - } - } break; - - case 13: - { - param = TONEX_PARAM_NOISE_GATE_POST; - - // check for toggling - if (!midi_helper_boolean_midi_toggle(param, midi_value, &value)) - { - value = midi_helper_boolean_midi_to_float(midi_value); - value = tonex_params_clamp_value(param, value); - } - } break; - - case 14: - { - param = TONEX_PARAM_NOISE_GATE_ENABLE; - - // check for toggling - if (!midi_helper_boolean_midi_toggle(param, midi_value, &value)) - { - value = midi_helper_boolean_midi_to_float(midi_value); - value = tonex_params_clamp_value(param, value); - } - } break; - - case 15: - { - param = TONEX_PARAM_NOISE_GATE_THRESHOLD; - value = midi_helper_scale_midi_to_float(param, midi_value); - value = tonex_params_clamp_value(param, value); - } break; - - case 16: - { - param = TONEX_PARAM_NOISE_GATE_RELEASE; - value = midi_helper_scale_midi_to_float(param, midi_value); - value = tonex_params_clamp_value(param, value); - } break; - - case 17: - { - param = TONEX_PARAM_NOISE_GATE_DEPTH; - value = midi_helper_scale_midi_to_float(param, midi_value); - value = tonex_params_clamp_value(param, value); - } break; - - case 18: - { - param = TONEX_PARAM_COMP_ENABLE; - - // check for toggling - if (!midi_helper_boolean_midi_toggle(param, midi_value, &value)) - { - value = midi_helper_boolean_midi_to_float(midi_value); - value = tonex_params_clamp_value(param, value); - } - } break; - - case 19: - { - param = TONEX_PARAM_COMP_THRESHOLD; - value = midi_helper_scale_midi_to_float(param, midi_value); - value = tonex_params_clamp_value(param, value); - } break; - - case 20: - { - param = TONEX_PARAM_COMP_MAKE_UP; - value = midi_helper_scale_midi_to_float(param, midi_value); - value = tonex_params_clamp_value(param, value); - } break; - - case 21: - { - param = TONEX_PARAM_COMP_ATTACK; - value = midi_helper_scale_midi_to_float(param, midi_value); - value = tonex_params_clamp_value(param, value); - } break; - - case 22: - { - param = TONEX_PARAM_COMP_POST; - - // check for toggling - if (!midi_helper_boolean_midi_toggle(param, midi_value, &value)) - { - value = midi_helper_boolean_midi_to_float(midi_value); - value = tonex_params_clamp_value(param, value); - } - } break; - - case 23: - { - param = TONEX_PARAM_EQ_BASS; - value = midi_helper_scale_midi_to_float(param, midi_value); - } break; - - case 24: - { - param = TONEX_PARAM_EQ_BASS_FREQ; - value = midi_helper_scale_midi_to_float(param, midi_value); - value = tonex_params_clamp_value(param, value); - } break; - - case 25: - { - param = TONEX_PARAM_EQ_MID; - value = midi_helper_scale_midi_to_float(param, midi_value); - value = tonex_params_clamp_value(param, value); - } break; - - case 26: - { - param = TONEX_PARAM_EQ_MIDQ; - value = midi_helper_scale_midi_to_float(param, midi_value); - value = tonex_params_clamp_value(param, value); - } break; - - case 27: - { - param = TONEX_PARAM_EQ_MID_FREQ; - value = midi_helper_scale_midi_to_float(param, midi_value); - value = tonex_params_clamp_value(param, value); - } break; - - case 28: - { - param = TONEX_PARAM_EQ_TREBLE; - value = midi_helper_scale_midi_to_float(param, midi_value); - value = tonex_params_clamp_value(param, value); - } break; - - case 29: - { - param = TONEX_PARAM_EQ_TREBLE_FREQ; - value = midi_helper_scale_midi_to_float(param, midi_value); - value = tonex_params_clamp_value(param, value); - } break; - - case 30: - { - param = TONEX_PARAM_EQ_POST; - value = midi_helper_boolean_midi_to_float(midi_value); - value = tonex_params_clamp_value(param, value); - } break; - - case 31: - { - param = TONEX_PARAM_MODULATION_POST; - - // check for toggling - if (!midi_helper_boolean_midi_toggle(param, midi_value, &value)) - { - value = midi_helper_boolean_midi_to_float(midi_value); - value = tonex_params_clamp_value(param, value); - } - } break; - - case 32: - { - param = TONEX_PARAM_MODULATION_ENABLE; - - // check for toggling - if (!midi_helper_boolean_midi_toggle(param, midi_value, &value)) - { - value = midi_helper_boolean_midi_to_float(midi_value); - value = tonex_params_clamp_value(param, value); - } - } break; - - case 33: - { - param = TONEX_PARAM_MODULATION_MODEL; - value = (float)midi_value; - value = tonex_params_clamp_value(param, value); - } break; - - case 34: - { - param = TONEX_PARAM_MODULATION_CHORUS_SYNC; - - // check for toggling - if (!midi_helper_boolean_midi_toggle(param, midi_value, &value)) - { - value = midi_helper_boolean_midi_to_float(midi_value); - value = tonex_params_clamp_value(param, value); - } - } break; - - case 35: - { - // take mutex - if (tonex_params_get_locked_access(¶m_ptr) == ESP_OK) - { - if (param_ptr[TONEX_PARAM_MODULATION_CHORUS_SYNC].Value == 0.00f) - { - param = TONEX_PARAM_MODULATION_CHORUS_RATE; - - // release mutex as next functions need it - tonex_params_release_locked_access(); - - // scale the value to the time range - value = midi_helper_scale_midi_to_float(param, midi_value); - value = tonex_params_clamp_value(param, value); - } - else - { - param = TONEX_PARAM_MODULATION_CHORUS_TS; - - // release mutex as next functions need it - tonex_params_release_locked_access(); - - // set the time sign - value = (float)midi_value; - value = tonex_params_clamp_value(param, value); - } - } - else - { - // failed to get access to params - return ESP_FAIL; - } - } break; - - case 36: - { - param = TONEX_PARAM_MODULATION_CHORUS_DEPTH; - value = midi_helper_scale_midi_to_float(param, midi_value); - value = tonex_params_clamp_value(param, value); - } break; - - case 37: - { - param = TONEX_PARAM_MODULATION_CHORUS_LEVEL; - value = midi_helper_scale_midi_to_float(param, midi_value); - value = tonex_params_clamp_value(param, value); - } break; - - case 38: - { - param = TONEX_PARAM_MODULATION_TREMOLO_SYNC; - value = midi_helper_scale_midi_to_float(param, midi_value); - value = tonex_params_clamp_value(param, value); - } break; - - case 39: - { - // take mutex - if (tonex_params_get_locked_access(¶m_ptr) == ESP_OK) - { - if (param_ptr[TONEX_PARAM_MODULATION_TREMOLO_SYNC].Value == 0.00f) - { - param = TONEX_PARAM_MODULATION_TREMOLO_RATE; - - // release mutex as next functions need it - tonex_params_release_locked_access(); - - // scale the value to the time range - value = midi_helper_scale_midi_to_float(param, midi_value); - value = tonex_params_clamp_value(param, value); - } - else - { - param = TONEX_PARAM_MODULATION_TREMOLO_TS; - - // release mutex as next functions need it - tonex_params_release_locked_access(); - - // set the time sign - value = (float)midi_value; - value = tonex_params_clamp_value(param, value); - } - } - else - { - // failed to get access to params - return ESP_FAIL; - } - } break; - - case 40: - { - param = TONEX_PARAM_MODULATION_TREMOLO_SHAPE; - value = midi_helper_scale_midi_to_float(param, midi_value); - value = tonex_params_clamp_value(param, value); - } break; - - case 41: - { - param = TONEX_PARAM_MODULATION_TREMOLO_SPREAD; - value = midi_helper_scale_midi_to_float(param, midi_value); - value = tonex_params_clamp_value(param, value); - } break; - - case 42: - { - param = TONEX_PARAM_MODULATION_TREMOLO_LEVEL; - value = midi_helper_scale_midi_to_float(param, midi_value); - value = tonex_params_clamp_value(param, value); - } break; - - case 43: - { - param = TONEX_PARAM_MODULATION_PHASER_SYNC; - - // check for toggling - if (!midi_helper_boolean_midi_toggle(param, midi_value, &value)) - { - value = midi_helper_boolean_midi_to_float(midi_value); - value = tonex_params_clamp_value(param, value); - } - } break; - - case 44: - { - // take mutex - if (tonex_params_get_locked_access(¶m_ptr) == ESP_OK) - { - if (param_ptr[TONEX_PARAM_MODULATION_PHASER_SYNC].Value == 0.00f) - { - param = TONEX_PARAM_MODULATION_PHASER_RATE; - - // release mutex as next functions need it - tonex_params_release_locked_access(); - - // scale the value to the time range - value = midi_helper_scale_midi_to_float(param, midi_value); - value = tonex_params_clamp_value(param, value); - } - else - { - param = TONEX_PARAM_MODULATION_PHASER_TS; - - // release mutex as next functions need it - tonex_params_release_locked_access(); - - // set the time sign - value = (float)midi_value; - value = tonex_params_clamp_value(param, value); - } - } - else - { - // failed to get access to params - return ESP_FAIL; - } - } break; - - case 45: - { - param = TONEX_PARAM_MODULATION_PHASER_DEPTH; - value = midi_helper_scale_midi_to_float(param, midi_value); - value = tonex_params_clamp_value(param, value); - } break; - - case 46: - { - param = TONEX_PARAM_MODULATION_PHASER_LEVEL; - value = midi_helper_scale_midi_to_float(param, midi_value); - value = tonex_params_clamp_value(param, value); - } break; - - case 47: - { - param = TONEX_PARAM_MODULATION_FLANGER_SYNC; - - // check for toggling - if (!midi_helper_boolean_midi_toggle(param, midi_value, &value)) - { - value = midi_helper_boolean_midi_to_float(midi_value); - value = tonex_params_clamp_value(param, value); - } - } break; - - case 48: - { - // take mutex - if (tonex_params_get_locked_access(¶m_ptr) == ESP_OK) - { - if (param_ptr[TONEX_PARAM_MODULATION_FLANGER_SYNC].Value == 0.00f) - { - param = TONEX_PARAM_MODULATION_FLANGER_RATE; - - // release mutex as next functions need it - tonex_params_release_locked_access(); - - // scale the value to the time range - value = midi_helper_scale_midi_to_float(param, midi_value); - value = tonex_params_clamp_value(param, value); - } - else - { - param = TONEX_PARAM_MODULATION_FLANGER_TS; - - // release mutex as next functions need it - tonex_params_release_locked_access(); - - // set the time sign - value = (float)midi_value; - value = tonex_params_clamp_value(param, value); - } - } - else - { - // failed to get access to params - return ESP_FAIL; - } - } break; - - case 49: - { - param = TONEX_PARAM_MODULATION_FLANGER_DEPTH; - value = midi_helper_scale_midi_to_float(param, midi_value); - value = tonex_params_clamp_value(param, value); - } break; - - case 50: - { - param = TONEX_PARAM_MODULATION_FLANGER_FEEDBACK; - value = midi_helper_scale_midi_to_float(param, midi_value); - value = tonex_params_clamp_value(param, value); - } break; - - case 51: - { - param = TONEX_PARAM_MODULATION_FLANGER_LEVEL; - value = midi_helper_scale_midi_to_float(param, midi_value); - value = tonex_params_clamp_value(param, value); - } break; - - case 52: - { - param = TONEX_PARAM_MODULATION_ROTARY_SYNC; - - // check for toggling - if (!midi_helper_boolean_midi_toggle(param, midi_value, &value)) - { - value = midi_helper_boolean_midi_to_float(midi_value); - value = tonex_params_clamp_value(param, value); - } - } break; - - case 53: - { - // take mutex - if (tonex_params_get_locked_access(¶m_ptr) == ESP_OK) - { - if (param_ptr[TONEX_PARAM_MODULATION_ROTARY_SYNC].Value == 0.00f) - { - param = TONEX_PARAM_MODULATION_ROTARY_SPEED; - - // release mutex as next functions need it - tonex_params_release_locked_access(); - - // scale the value to the time range - value = midi_helper_scale_midi_to_float(param, midi_value); - value = tonex_params_clamp_value(param, value); - } - else - { - param = TONEX_PARAM_MODULATION_ROTARY_TS; - - // release mutex as next functions need it - tonex_params_release_locked_access(); - - // set the time sign - value = (float)midi_value; - value = tonex_params_clamp_value(param, value); - } - } - else - { - // failed to get access to params - return ESP_FAIL; - } - } break; - - case 54: - { - param = TONEX_PARAM_MODULATION_ROTARY_RADIUS; - value = midi_helper_scale_midi_to_float(param, midi_value); - value = tonex_params_clamp_value(param, value); - } break; - - case 55: - { - param = TONEX_PARAM_MODULATION_ROTARY_SPREAD; - value = midi_helper_scale_midi_to_float(param, midi_value); - value = tonex_params_clamp_value(param, value); - } break; - - case 56: - { - param = TONEX_PARAM_MODULATION_ROTARY_LEVEL; - value = midi_helper_scale_midi_to_float(param, midi_value); - value = tonex_params_clamp_value(param, value); - } break; - - // 57 - 58 not used - - case 59: - { - param = TONEX_PARAM_REVERB_SPRING1_TIME; - value = midi_helper_scale_midi_to_float(param, midi_value); - value = tonex_params_clamp_value(param, value); - } break; - - case 60: + case AMP_MODELLER_TONEX_ONE: // fallthrough + case AMP_MODELLER_TONEX: // fallthrough + default: { - param = TONEX_PARAM_REVERB_SPRING1_PREDELAY; - value = midi_helper_scale_midi_to_float(param, midi_value); - value = tonex_params_clamp_value(param, value); + return midi_helper_tonex_get_param_for_change_num(change_num, midi_value_1, midi_value_2); } break; - case 61: + case AMP_MODELLER_VALETON_GP5: { - param = TONEX_PARAM_REVERB_SPRING1_COLOR; - value = midi_helper_scale_midi_to_float(param, midi_value); - value = tonex_params_clamp_value(param, value); + return midi_helper_valeton_get_param_for_change_num(change_num, midi_value_1, midi_value_2); } break; - - case 62: - { - param = TONEX_PARAM_REVERB_SPRING1_MIX; - value = midi_helper_scale_midi_to_float(param, midi_value); - value = tonex_params_clamp_value(param, value); - } break; - - case 63: - { - param = TONEX_PARAM_REVERB_SPRING2_TIME; - value = midi_helper_scale_midi_to_float(param, midi_value); - value = tonex_params_clamp_value(param, value); - } break; - - case 64: - { - param = TONEX_PARAM_REVERB_SPRING2_PREDELAY; - value = midi_helper_scale_midi_to_float(param, midi_value); - value = tonex_params_clamp_value(param, value); - } break; - - case 65: - { - param = TONEX_PARAM_REVERB_SPRING2_COLOR; - value = midi_helper_scale_midi_to_float(param, midi_value); - value = tonex_params_clamp_value(param, value); - } break; - - case 66: - { - param = TONEX_PARAM_REVERB_SPRING2_MIX; - value = midi_helper_scale_midi_to_float(param, midi_value); - value = tonex_params_clamp_value(param, value); - } break; - - case 67: - { - param = TONEX_PARAM_REVERB_SPRING3_TIME; - value = midi_helper_scale_midi_to_float(param, midi_value); - value = tonex_params_clamp_value(param, value); - } break; - - case 68: - { - param = TONEX_PARAM_REVERB_SPRING3_PREDELAY; - value = midi_helper_scale_midi_to_float(param, midi_value); - value = tonex_params_clamp_value(param, value); - } break; - - case 69: - { - param = TONEX_PARAM_REVERB_SPRING3_COLOR; - value = midi_helper_scale_midi_to_float(param, midi_value); - value = tonex_params_clamp_value(param, value); - } break; - - case 70: - { - param = TONEX_PARAM_REVERB_SPRING3_MIX; - value = midi_helper_scale_midi_to_float(param, midi_value); - value = tonex_params_clamp_value(param, value); - } break; - - case 71: - { - param = TONEX_PARAM_REVERB_ROOM_TIME; - value = midi_helper_scale_midi_to_float(param, midi_value); - value = tonex_params_clamp_value(param, value); - } break; - - case 72: - { - param = TONEX_PARAM_REVERB_ROOM_PREDELAY; - value = midi_helper_scale_midi_to_float(param, midi_value); - value = tonex_params_clamp_value(param, value); - } break; - - case 73: - { - param = TONEX_PARAM_REVERB_ROOM_COLOR; - value = midi_helper_scale_midi_to_float(param, midi_value); - value = tonex_params_clamp_value(param, value); - } break; - - case 74: - { - param = TONEX_PARAM_REVERB_ROOM_MIX; - value = midi_helper_scale_midi_to_float(param, midi_value); - value = tonex_params_clamp_value(param, value); - } break; - - case 75: - { - param = TONEX_PARAM_REVERB_ENABLE; - - // check for toggling - if (!midi_helper_boolean_midi_toggle(param, midi_value, &value)) - { - value = midi_helper_boolean_midi_to_float(midi_value); - value = tonex_params_clamp_value(param, value); - } - } break; - - case 76: - { - param = TONEX_PARAM_REVERB_PLATE_TIME; - value = midi_helper_scale_midi_to_float(param, midi_value); - value = tonex_params_clamp_value(param, value); - } break; - - case 77: - { - param = TONEX_PARAM_REVERB_PLATE_PREDELAY; - value = midi_helper_scale_midi_to_float(param, midi_value); - value = tonex_params_clamp_value(param, value); - } break; - - case 78: - { - param = TONEX_PARAM_REVERB_PLATE_COLOR; - value = midi_helper_scale_midi_to_float(param, midi_value); - value = tonex_params_clamp_value(param, value); - } break; - - case 79: - { - param = TONEX_PARAM_REVERB_PLATE_MIX; - value = midi_helper_scale_midi_to_float(param, midi_value); - value = tonex_params_clamp_value(param, value); - } break; - - case 80: - { - param = TONEX_PARAM_REVERB_SPRING4_TIME; - value = midi_helper_scale_midi_to_float(param, midi_value); - value = tonex_params_clamp_value(param, value); - } break; - - case 81: - { - param = TONEX_PARAM_REVERB_SPRING4_PREDELAY; - value = midi_helper_scale_midi_to_float(param, midi_value); - value = tonex_params_clamp_value(param, value); - } break; - - case 82: - { - param = TONEX_PARAM_REVERB_SPRING4_COLOR; - value = midi_helper_scale_midi_to_float(param, midi_value); - value = tonex_params_clamp_value(param, value); - } break; - - case 83: - { - param = TONEX_PARAM_REVERB_SPRING4_MIX; - value = midi_helper_scale_midi_to_float(param, midi_value); - value = tonex_params_clamp_value(param, value); - } break; - - case 84: - { - param = TONEX_PARAM_REVERB_POSITION; - - // check for toggling - if (!midi_helper_boolean_midi_toggle(param, midi_value, &value)) - { - value = midi_helper_boolean_midi_to_float(midi_value); - value = tonex_params_clamp_value(param, value); - } - } break; - - case 85: - { - param = TONEX_PARAM_REVERB_MODEL; - value = (float)midi_value; - value = tonex_params_clamp_value(param, value); - } break; - - case 86: - { - //preset down - control_request_preset_down(); - - // no param change needed - return ESP_OK; - } break; - - case 87: - { - //preset up - control_request_preset_up(); - - // no param change needed - return ESP_OK; - } break; - - case 88: - { - // bpm - param = TONEX_GLOBAL_BPM; - value = midi_helper_scale_midi_to_float(param, midi_value); - } break; - - // 89: bank down - // 90: bank up - - case 91: - { - param = TONEX_PARAM_DELAY_TAPE_SYNC; - - // check for toggling - if (!midi_helper_boolean_midi_toggle(param, midi_value, &value)) - { - value = midi_helper_boolean_midi_to_float(midi_value); - value = tonex_params_clamp_value(param, value); - } - } break; - - case 92: - { - // take mutex - if (tonex_params_get_locked_access(¶m_ptr) == ESP_OK) - { - if (param_ptr[TONEX_PARAM_DELAY_TAPE_SYNC].Value == 0.00f) - { - param = TONEX_PARAM_DELAY_TAPE_TIME; - - // release mutex as next functions need it - tonex_params_release_locked_access(); - - // scale the value to the time range - value = midi_helper_scale_midi_to_float(param, midi_value); - value = tonex_params_clamp_value(param, value); - } - else - { - param = TONEX_PARAM_DELAY_TAPE_TS; - - // release mutex as next functions need it - tonex_params_release_locked_access(); - - // set the time sign - value = (float)midi_value; - value = tonex_params_clamp_value(param, value); - } - } - else - { - // failed to get access to params - return ESP_FAIL; - } - } break; - - case 93: - { - param = TONEX_PARAM_DELAY_TAPE_FEEDBACK; - value = midi_helper_scale_midi_to_float(param, midi_value); - value = tonex_params_clamp_value(param, value); - } break; - - case 94: - { - param = TONEX_PARAM_DELAY_TAPE_MODE; - if (midi_value == 64) - { - value = 1.0f; - } - else - { - value = 0.0f; - } - value = tonex_params_clamp_value(param, value); - } break; - - case 95: - { - param = TONEX_PARAM_DELAY_TAPE_MIX; - value = midi_helper_scale_midi_to_float(param, midi_value); - value = tonex_params_clamp_value(param, value); - } break; - - // 96 to 101 not used - - case 99: - { - // bpm - param = TONEX_GLOBAL_BPM; - value = (midi_value < 40) ? 40 : midi_value; - } break; - - case 100: - { - // bpm - param = TONEX_GLOBAL_BPM; - value = midi_value+100; - } break; - - case 102: - { - param = TONEX_PARAM_MODEL_GAIN; - value = midi_helper_scale_midi_to_float(param, midi_value); - value = tonex_params_clamp_value(param, value); - } break; - - case 103: - { - param = TONEX_PARAM_MODEL_VOLUME; - value = midi_helper_scale_midi_to_float(param, midi_value); - value = tonex_params_clamp_value(param, value); - } break; - - case 104: - { - param = TONEX_PARAM_MODEX_MIX; - value = midi_helper_scale_midi_to_float(param, midi_value); - value = tonex_params_clamp_value(param, value); - } break; - - // 105 not used - - case 106: - { - param = TONEX_PARAM_MODEL_PRESENCE; - value = midi_helper_scale_midi_to_float(param, midi_value); - value = tonex_params_clamp_value(param, value); - } break; - - case 107: - { - param = TONEX_PARAM_MODEL_DEPTH; - value = midi_helper_scale_midi_to_float(param, midi_value); - value = tonex_params_clamp_value(param, value); - } break; - - case 108: - { - param = TONEX_PARAM_VIR_RESO; - value = midi_helper_scale_midi_to_float(param, midi_value); - value = tonex_params_clamp_value(param, value); - } break; - - case 109: - { - param = TONEX_PARAM_VIR_MIC_1; - value = (float)midi_value; - value = tonex_params_clamp_value(param, value); - } break; - - case 110: - { - param = TONEX_PARAM_VIR_MIC_1_X; - value = midi_helper_scale_midi_to_float(param, midi_value); - value = tonex_params_clamp_value(param, value); - } break; - - case 111: - { - param = TONEX_PARAM_VIR_MIC_1_Z; - value = midi_helper_scale_midi_to_float(param, midi_value); - value = tonex_params_clamp_value(param, value); - } break; - - case 112: - { - param = TONEX_PARAM_VIR_MIC_2; - value = (float)midi_value; - value = tonex_params_clamp_value(param, value); - } break; - - case 113: - { - param = TONEX_PARAM_VIR_MIC_2_X; - value = midi_helper_scale_midi_to_float(param, midi_value); - value = tonex_params_clamp_value(param, value); - } break; - - case 114: - { - param = TONEX_PARAM_VIR_MIC_2_Z; - value = midi_helper_scale_midi_to_float(param, midi_value); - value = tonex_params_clamp_value(param, value); - } break; - - case 115: - { - param = TONEX_PARAM_VIR_BLEND; - value = midi_helper_scale_midi_to_float(param, midi_value); - value = tonex_params_clamp_value(param, value); - } break; - - // below items not supported on bigger Tonex pedal, custom for this controller - case 116: - { - // input trim - param = TONEX_GLOBAL_INPUT_TRIM; - value = midi_helper_scale_midi_to_float(param, midi_value); - value = tonex_params_clamp_value(param, value); - } break; - - case 117: - { - param = TONEX_GLOBAL_CABSIM_BYPASS; - - // check for toggling - if (!midi_helper_boolean_midi_toggle(param, midi_value, &value)) - { - value = midi_helper_boolean_midi_to_float(midi_value); - value = tonex_params_clamp_value(param, value); - } - } break; - - case 118: - { - param = TONEX_GLOBAL_TEMPO_SOURCE; - - // check for toggling - if (!midi_helper_boolean_midi_toggle(param, midi_value, &value)) - { - value = midi_helper_boolean_midi_to_float(midi_value); - value = tonex_params_clamp_value(param, value); - } - } break; - - case 119: - { - param = TONEX_GLOBAL_TUNING_REFERENCE; - value = midi_helper_scale_midi_to_float(param, midi_value); - value = tonex_params_clamp_value(param, value); - } break; - - case 120: - { - // Load preset to Slot A without switching to it - if (midi_value >= (usb_get_max_presets_for_connected_modeller())) - { - ESP_LOGW(TAG, "Unsupported Midi CC 120 value %d (max %d)", midi_value, usb_get_max_presets_for_connected_modeller() - 1); - } - else - { - usb_load_preset_to_slot_a(midi_value); - } - - // no param change needed - return ESP_OK; - } break; - - case 121: - { - // Load preset to Slot B without switching to it - if (midi_value >= (usb_get_max_presets_for_connected_modeller())) - { - ESP_LOGW(TAG, "Unsupported Midi CC 121 value %d (max %d)", midi_value, usb_get_max_presets_for_connected_modeller() - 1); - } - else - { - usb_load_preset_to_slot_b(midi_value); - } - - // no param change needed - return ESP_OK; - } break; - - case 122: - { - param = TONEX_GLOBAL_MASTER_VOLUME; - value = midi_helper_scale_midi_to_float(param, midi_value); - value = tonex_params_clamp_value(param, value); - } break; - - case 127: - { - // Custom case: use CC to change params. - if (midi_value >= (usb_get_max_presets_for_connected_modeller())) - { - ESP_LOGW(TAG, "Unsupported Midi CC 127 value %d", midi_value); - } - else - { - control_request_preset_index(midi_value); - } - - // no param change needed - return ESP_OK; - } break; - - default: - { - ESP_LOGW(TAG, "Unsupported Midi change number %d", change_num); - return ESP_FAIL; - } break; - } - - // modify the parameter - usb_modify_parameter(param, value); - - return ESP_OK; -} - -/**************************************************************************** -* NAME: -* DESCRIPTION: -* PARAMETERS: -* RETURN: -* NOTES: -*****************************************************************************/ -uint16_t midi_helper_get_param_for_change_num(uint8_t change_num, uint8_t midi_value_1, uint8_t midi_value_2) -{ - uint16_t param = TONEX_UNKNOWN; - tModellerParameter* param_ptr; - - // Midi mapping done to match the big Tonex pedal - switch (change_num) - { - // 0: midi patch bank on big tonex - - case 1: - { - param = TONEX_PARAM_DELAY_POST; - } break; - - case 2: - { - param = TONEX_PARAM_DELAY_ENABLE; - } break; - - case 3: - { - param = TONEX_PARAM_DELAY_MODEL; - } break; - - case 4: - { - param = TONEX_PARAM_DELAY_DIGITAL_SYNC; - } break; - - case 5: - { - // take mutex - if (tonex_params_get_locked_access(¶m_ptr) == ESP_OK) - { - if (param_ptr[TONEX_PARAM_DELAY_DIGITAL_SYNC].Value == 0.00f) - { - param = TONEX_PARAM_DELAY_DIGITAL_TIME; - } - else - { - param = TONEX_PARAM_DELAY_DIGITAL_TS; - } - - // release mutex - tonex_params_release_locked_access(); - } - } break; - - case 6: - { - param = TONEX_PARAM_DELAY_DIGITAL_FEEDBACK; - } break; - - case 7: - { - param = TONEX_PARAM_DELAY_DIGITAL_MODE; - } break; - - case 8: - { - param = TONEX_PARAM_DELAY_DIGITAL_MIX; - } break; - - // 9 tuner - - case 10: - { - // BPM - param = TONEX_GLOBAL_BPM; - } break; - - // 11: expression pedal - - case 12: - { - // preset on/off - param = TONEX_GLOBAL_BYPASS; - } break; - - case 13: - { - param = TONEX_PARAM_NOISE_GATE_POST; - } break; - - case 14: - { - param = TONEX_PARAM_NOISE_GATE_ENABLE; - } break; - - case 15: - { - param = TONEX_PARAM_NOISE_GATE_THRESHOLD; - } break; - - case 16: - { - param = TONEX_PARAM_NOISE_GATE_RELEASE; - } break; - - case 17: - { - param = TONEX_PARAM_NOISE_GATE_DEPTH; - } break; - - case 18: - { - param = TONEX_PARAM_COMP_ENABLE; - } break; - - case 19: - { - param = TONEX_PARAM_COMP_THRESHOLD; - } break; - - case 20: - { - param = TONEX_PARAM_COMP_MAKE_UP; - } break; - - case 21: - { - param = TONEX_PARAM_COMP_ATTACK; - } break; - - case 22: - { - param = TONEX_PARAM_COMP_POST; - } break; - - case 23: - { - param = TONEX_PARAM_EQ_BASS; - } break; - - case 24: - { - param = TONEX_PARAM_EQ_BASS_FREQ; - } break; - - case 25: - { - param = TONEX_PARAM_EQ_MID; - } break; - - case 26: - { - param = TONEX_PARAM_EQ_MIDQ; - } break; - - case 27: - { - param = TONEX_PARAM_EQ_MID_FREQ; - } break; - - case 28: - { - param = TONEX_PARAM_EQ_TREBLE; - } break; - - case 29: - { - param = TONEX_PARAM_EQ_TREBLE_FREQ; - } break; - - case 30: - { - param = TONEX_PARAM_EQ_POST; - } break; - - case 31: - { - param = TONEX_PARAM_MODULATION_POST; - } break; - - case 32: - { - param = TONEX_PARAM_MODULATION_ENABLE; - } break; - - case 33: - { - param = TONEX_PARAM_MODULATION_MODEL; - } break; - - case 34: - { - param = TONEX_PARAM_MODULATION_CHORUS_SYNC; - } break; - - case 35: - { - // take mutex - if (tonex_params_get_locked_access(¶m_ptr) == ESP_OK) - { - if (param_ptr[TONEX_PARAM_MODULATION_CHORUS_SYNC].Value == 0.00f) - { - param = TONEX_PARAM_MODULATION_CHORUS_RATE; - } - else - { - param = TONEX_PARAM_MODULATION_CHORUS_TS; - } - - // release mutex - tonex_params_release_locked_access(); - } - } break; - - case 36: - { - param = TONEX_PARAM_MODULATION_CHORUS_DEPTH; - } break; - - case 37: - { - param = TONEX_PARAM_MODULATION_CHORUS_LEVEL; - } break; - - case 38: - { - param = TONEX_PARAM_MODULATION_TREMOLO_SYNC; - } break; - - case 39: - { - // take mutex - if (tonex_params_get_locked_access(¶m_ptr) == ESP_OK) - { - if (param_ptr[TONEX_PARAM_MODULATION_TREMOLO_SYNC].Value == 0.00f) - { - param = TONEX_PARAM_MODULATION_TREMOLO_RATE; - } - else - { - param = TONEX_PARAM_MODULATION_TREMOLO_TS; - } - - // release mutex - tonex_params_release_locked_access(); - } - } break; - - case 40: - { - param = TONEX_PARAM_MODULATION_TREMOLO_SHAPE; - } break; - - case 41: - { - param = TONEX_PARAM_MODULATION_TREMOLO_SPREAD; - } break; - - case 42: - { - param = TONEX_PARAM_MODULATION_TREMOLO_LEVEL; - } break; - - case 43: - { - param = TONEX_PARAM_MODULATION_PHASER_SYNC; - } break; - - case 44: - { - // take mutex - if (tonex_params_get_locked_access(¶m_ptr) == ESP_OK) - { - if (param_ptr[TONEX_PARAM_MODULATION_PHASER_SYNC].Value == 0.00f) - { - param = TONEX_PARAM_MODULATION_PHASER_RATE; - } - else - { - param = TONEX_PARAM_MODULATION_PHASER_TS; - } - - // release mutex - tonex_params_release_locked_access(); - } - } break; - - case 45: - { - param = TONEX_PARAM_MODULATION_PHASER_DEPTH; - } break; - - case 46: - { - param = TONEX_PARAM_MODULATION_PHASER_LEVEL; - } break; - - case 47: - { - param = TONEX_PARAM_MODULATION_FLANGER_SYNC; - } break; - - case 48: - { - // take mutex - if (tonex_params_get_locked_access(¶m_ptr) == ESP_OK) - { - if (param_ptr[TONEX_PARAM_MODULATION_FLANGER_SYNC].Value == 0.00f) - { - param = TONEX_PARAM_MODULATION_FLANGER_RATE; - } - else - { - param = TONEX_PARAM_MODULATION_FLANGER_TS; - } - - // release mutex - tonex_params_release_locked_access(); - } - } break; - - case 49: - { - param = TONEX_PARAM_MODULATION_FLANGER_DEPTH; - } break; - - case 50: - { - param = TONEX_PARAM_MODULATION_FLANGER_FEEDBACK; - } break; - - case 51: - { - param = TONEX_PARAM_MODULATION_FLANGER_LEVEL; - } break; - - case 52: - { - param = TONEX_PARAM_MODULATION_ROTARY_SYNC; - } break; - - case 53: - { - // take mutex - if (tonex_params_get_locked_access(¶m_ptr) == ESP_OK) - { - if (param_ptr[TONEX_PARAM_MODULATION_ROTARY_SYNC].Value == 0.00f) - { - param = TONEX_PARAM_MODULATION_ROTARY_SPEED; - } - else - { - param = TONEX_PARAM_MODULATION_ROTARY_TS; - } - - // release mutex - tonex_params_release_locked_access(); - } - } break; - - case 54: - { - param = TONEX_PARAM_MODULATION_ROTARY_RADIUS; - } break; - - case 55: - { - param = TONEX_PARAM_MODULATION_ROTARY_SPREAD; - } break; - - case 56: - { - param = TONEX_PARAM_MODULATION_ROTARY_LEVEL; - } break; - - // 57 - 58 not used - - case 59: - { - param = TONEX_PARAM_REVERB_SPRING1_TIME; - } break; - - case 60: - { - param = TONEX_PARAM_REVERB_SPRING1_PREDELAY; - } break; - - case 61: - { - param = TONEX_PARAM_REVERB_SPRING1_COLOR; - } break; - - case 62: - { - param = TONEX_PARAM_REVERB_SPRING1_MIX; - } break; - - case 63: - { - param = TONEX_PARAM_REVERB_SPRING2_TIME; - } break; - - case 64: - { - param = TONEX_PARAM_REVERB_SPRING2_PREDELAY; - } break; - - case 65: - { - param = TONEX_PARAM_REVERB_SPRING2_COLOR; - } break; - - case 66: - { - param = TONEX_PARAM_REVERB_SPRING2_MIX; - } break; - - case 67: - { - param = TONEX_PARAM_REVERB_SPRING3_TIME; - } break; - - case 68: - { - param = TONEX_PARAM_REVERB_SPRING3_PREDELAY; - } break; - - case 69: - { - param = TONEX_PARAM_REVERB_SPRING3_COLOR; - } break; - - case 70: - { - param = TONEX_PARAM_REVERB_SPRING3_MIX; - } break; - - case 71: - { - param = TONEX_PARAM_REVERB_ROOM_TIME; - } break; - - case 72: - { - param = TONEX_PARAM_REVERB_ROOM_PREDELAY; - } break; - - case 73: - { - param = TONEX_PARAM_REVERB_ROOM_COLOR; - } break; - - case 74: - { - param = TONEX_PARAM_REVERB_ROOM_MIX; - } break; - - case 75: - { - param = TONEX_PARAM_REVERB_ENABLE; - } break; - - case 76: - { - param = TONEX_PARAM_REVERB_PLATE_TIME; - } break; - - case 77: - { - param = TONEX_PARAM_REVERB_PLATE_PREDELAY; - } break; - - case 78: - { - param = TONEX_PARAM_REVERB_PLATE_COLOR; - } break; - - case 79: - { - param = TONEX_PARAM_REVERB_PLATE_MIX; - } break; - - case 80: - { - param = TONEX_PARAM_REVERB_SPRING4_TIME; - } break; - - case 81: - { - param = TONEX_PARAM_REVERB_SPRING4_PREDELAY; - } break; - - case 82: - { - param = TONEX_PARAM_REVERB_SPRING4_COLOR; - } break; - - case 83: - { - param = TONEX_PARAM_REVERB_SPRING4_MIX; - } break; - - case 84: - { - param = TONEX_PARAM_REVERB_POSITION; - } break; - - case 85: - { - param = TONEX_PARAM_REVERB_MODEL; - } break; - - case 86: - { - // preset down - control_request_preset_down(); - - // don't set any return param, as this one is already handled and its not a parameter - } break; - - case 87: - { - //preset up - control_request_preset_up(); - - // don't set any return param, as this one is already handled and its not a parameter - } break; - - case 88: - { - //bpm - param = TONEX_GLOBAL_BPM; - } break; - - // 89: bank down - // 90: bank up - - case 91: - { - param = TONEX_PARAM_DELAY_TAPE_SYNC; - } break; - - case 92: - { - // take mutex - if (tonex_params_get_locked_access(¶m_ptr) == ESP_OK) - { - if (param_ptr[TONEX_PARAM_DELAY_TAPE_SYNC].Value == 0.00f) - { - param = TONEX_PARAM_DELAY_TAPE_TIME; - } - else - { - param = TONEX_PARAM_DELAY_TAPE_TS; - } - - // release mutex - tonex_params_release_locked_access(); - } - } break; - - case 93: - { - param = TONEX_PARAM_DELAY_TAPE_FEEDBACK; - } break; - - case 94: - { - param = TONEX_PARAM_DELAY_TAPE_MODE; - } break; - - case 95: - { - param = TONEX_PARAM_DELAY_TAPE_MIX; - } break; - - // 96 to 101 not used - - case 102: - { - param = TONEX_PARAM_MODEL_GAIN; - } break; - - case 103: - { - param = TONEX_PARAM_MODEL_VOLUME; - } break; - - case 104: - { - param = TONEX_PARAM_MODEX_MIX; - } break; - - // 105 not used - - case 106: - { - param = TONEX_PARAM_MODEL_PRESENCE; - } break; - - case 107: - { - param = TONEX_PARAM_MODEL_DEPTH; - } break; - - case 108: - { - param = TONEX_PARAM_VIR_RESO; - } break; - - case 109: - { - param = TONEX_PARAM_VIR_MIC_1; - } break; - - case 110: - { - param = TONEX_PARAM_VIR_MIC_1_X; - } break; - - case 111: - { - param = TONEX_PARAM_VIR_MIC_1_Z; - } break; - - case 112: - { - param = TONEX_PARAM_VIR_MIC_2; - } break; - - case 113: - { - param = TONEX_PARAM_VIR_MIC_2_X; - } break; - - case 114: - { - param = TONEX_PARAM_VIR_MIC_2_Z; - } break; - - case 115: - { - param = TONEX_PARAM_VIR_BLEND; - } break; - - // below items not supported on bigger Tonex pedal, custom for this controller - case 116: - { - param = TONEX_GLOBAL_INPUT_TRIM; - } break; - - case 117: - { - param = TONEX_GLOBAL_CABSIM_BYPASS; - } break; - - case 118: - { - param = TONEX_GLOBAL_TEMPO_SOURCE; - } break; - - case 119: - { - param = TONEX_GLOBAL_TUNING_REFERENCE; - } break; - - case 120: - { - // reserved for setting preset in slot A - } break; - - case 121: - { - // reserved for setting preset in slot B - } break; - - case 122: - { - param = TONEX_GLOBAL_MASTER_VOLUME; - } break; - - case 127: - { - uint32_t new_preset; - uint32_t current_preset = control_get_current_preset_index(); - - if (current_preset == midi_value_1) - { - // select midi value 2 - new_preset = midi_value_2; - } - else - { - // select midi value 1 - new_preset = midi_value_1; - } - - if (new_preset >= (usb_get_max_presets_for_connected_modeller())) - { - ESP_LOGW(TAG, "Unsupported Midi CC 127 value %d", new_preset); - } - else - { - control_request_preset_index(new_preset); - } - - // don't set any return param, as this one is already handled and its not a parameter - } - } - - return param; + } } /**************************************************************************** diff --git a/source/main/midi_helper.h b/source/main/midi_helper.h index 047938f0..c4b7fbe3 100644 --- a/source/main/midi_helper.h +++ b/source/main/midi_helper.h @@ -17,7 +17,14 @@ limitations under the License. #pragma once +// for boolean values: +// 0 = off, 127 = on, and 64 to toggle the current state +#define MIDI_BOOL_DISABLE 0 // matches Tonex +#define MIDI_BOOL_TOGGLE 64 // custom for this controller, not natively supported by Tonex +#define MIDI_BOOL_ENABLE 127 // matches Tonex + esp_err_t midi_helper_adjust_param_via_midi(uint8_t change_num, uint8_t midi_value); uint16_t midi_helper_get_param_for_change_num(uint8_t change_num, uint8_t midi_value_1, uint8_t midi_value_2); float midi_helper_scale_midi_to_float(uint16_t param_index, uint8_t midi_value); +float midi_helper_boolean_midi_to_float(uint8_t midi_value); uint8_t midi_helper_process_incoming_data(uint8_t* data, uint8_t length, uint8_t midi_channel, uint8_t enable_CC); diff --git a/source/main/midi_helper_tonex.c b/source/main/midi_helper_tonex.c new file mode 100644 index 00000000..4038caeb --- /dev/null +++ b/source/main/midi_helper_tonex.c @@ -0,0 +1,1969 @@ +/* + Copyright (C) 2025 Greg Smith + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + +*/ + + +#include +#include +#include +#include "sdkconfig.h" +#include "freertos/FreeRTOS.h" +#include "freertos/task.h" +#include "freertos/semphr.h" +#include "esp_check.h" +#include "esp_log.h" +#include "usb/usb_host.h" +#include "driver/i2c.h" +#include "nvs_flash.h" +#include "esp_vfs.h" +#include "esp_vfs_fat.h" +#include "esp_ota_ops.h" +#include "sys/param.h" +#include "control.h" +#include "usb_comms.h" +#include "usb/usb_host.h" +#include "usb_tonex_one.h" +#include "tonex_params.h" +#include "midi_helper.h" +#include "midi_helper_tonex.h" + +static const char *TAG = "app_midi_helper_tonex"; + +/**************************************************************************** +* NAME: +* DESCRIPTION: +* PARAMETERS: +* RETURN: +* NOTES: +*****************************************************************************/ +static uint8_t midi_helper_tonex_boolean_midi_toggle(uint16_t param, uint8_t midi_value, float* value) +{ + tModellerParameter* param_ptr; + + if (midi_value == MIDI_BOOL_TOGGLE) + { + // take mutex + if (tonex_params_get_locked_access(¶m_ptr) == ESP_OK) + { + // toggle current state + if (param_ptr[param].Value == 0.0f) + { + *value = 1.0f; + } + else + { + *value = 0.0f; + } + + // release mutex + tonex_params_release_locked_access(); + } + + // toggling + return 1; + } + + // not toggling + return 0; +} + +/**************************************************************************** +* NAME: +* DESCRIPTION: +* PARAMETERS: +* RETURN: +* NOTES: +*****************************************************************************/ +esp_err_t midi_helper_tonex_adjust_param_via_midi(uint8_t change_num, uint8_t midi_value) +{ + uint16_t param; + float value; + tModellerParameter* param_ptr; + + // Midi mapping done to match the big Tonex pedal + switch (change_num) + { + // 0: midi patch bank on big tonex + + case 1: + { + param = TONEX_PARAM_DELAY_POST; + + // check for toggling + if (!midi_helper_tonex_boolean_midi_toggle(param, midi_value, &value)) + { + value = midi_helper_boolean_midi_to_float(midi_value); + value = tonex_params_clamp_value(param, value); + } + } break; + + case 2: + { + param = TONEX_PARAM_DELAY_ENABLE; + + // check for toggling + if (!midi_helper_tonex_boolean_midi_toggle(param, midi_value, &value)) + { + value = midi_helper_boolean_midi_to_float(midi_value); + value = tonex_params_clamp_value(param, value); + } + } break; + + case 3: + { + param = TONEX_PARAM_DELAY_MODEL; + value = (float)midi_value; + value = tonex_params_clamp_value(param, value); + } break; + + case 4: + { + param = TONEX_PARAM_DELAY_DIGITAL_SYNC; + + // check for toggling + if (!midi_helper_tonex_boolean_midi_toggle(param, midi_value, &value)) + { + value = midi_helper_boolean_midi_to_float(midi_value); + value = tonex_params_clamp_value(param, value); + } + } break; + + case 5: + { + // take mutex + if (tonex_params_get_locked_access(¶m_ptr) == ESP_OK) + { + if (param_ptr[TONEX_PARAM_DELAY_DIGITAL_SYNC].Value == 0.00f) + { + ESP_LOGW(TAG, "TONEX_PARAM_DELAY_DIGITAL_TIME"); + + param = TONEX_PARAM_DELAY_DIGITAL_TIME; + + // release mutex as next functions need it + tonex_params_release_locked_access(); + + // scale the value to the time range + value = midi_helper_scale_midi_to_float(param, midi_value); + value = tonex_params_clamp_value(param, value); + } + else + { + ESP_LOGW(TAG, "TONEX_PARAM_DELAY_DIGITAL_TS"); + + param = TONEX_PARAM_DELAY_DIGITAL_TS; + + // release mutex as next functions need it + tonex_params_release_locked_access(); + + // set the time sign + value = (float)midi_value; + value = tonex_params_clamp_value(param, value); + } + } + else + { + // failed to get access to params + ESP_LOGW(TAG, "TONEX_PARAM_DELAY_DIGITAL_TIME param access failed"); + return ESP_FAIL; + } + } break; + + case 6: + { + param = TONEX_PARAM_DELAY_DIGITAL_FEEDBACK; + value = midi_helper_scale_midi_to_float(param, midi_value); + value = tonex_params_clamp_value(param, value); + } break; + + case 7: + { + param = TONEX_PARAM_DELAY_DIGITAL_MODE; + if (midi_value == 64) + { + value = 1.0f; + } + else + { + value = 0.0f; + } + value = tonex_params_clamp_value(param, value); + } break; + + case 8: + { + param = TONEX_PARAM_DELAY_DIGITAL_MIX; + value = midi_helper_scale_midi_to_float(param, midi_value); + value = tonex_params_clamp_value(param, value); + } break; + + // 9 tuner + + case 10: + { + //tap tempo + control_trigger_tap_tempo(); + + // no param change needed + return ESP_OK; + } break; + + // 11: expression pedal + + case 12: + { + //preset on/off + param = TONEX_GLOBAL_BYPASS; + + // check for toggling + if (!midi_helper_tonex_boolean_midi_toggle(param, midi_value, &value)) + { + value = midi_helper_boolean_midi_to_float(midi_value); + value = tonex_params_clamp_value(param, value); + } + } break; + + case 13: + { + param = TONEX_PARAM_NOISE_GATE_POST; + + // check for toggling + if (!midi_helper_tonex_boolean_midi_toggle(param, midi_value, &value)) + { + value = midi_helper_boolean_midi_to_float(midi_value); + value = tonex_params_clamp_value(param, value); + } + } break; + + case 14: + { + param = TONEX_PARAM_NOISE_GATE_ENABLE; + + // check for toggling + if (!midi_helper_tonex_boolean_midi_toggle(param, midi_value, &value)) + { + value = midi_helper_boolean_midi_to_float(midi_value); + value = tonex_params_clamp_value(param, value); + } + } break; + + case 15: + { + param = TONEX_PARAM_NOISE_GATE_THRESHOLD; + value = midi_helper_scale_midi_to_float(param, midi_value); + value = tonex_params_clamp_value(param, value); + } break; + + case 16: + { + param = TONEX_PARAM_NOISE_GATE_RELEASE; + value = midi_helper_scale_midi_to_float(param, midi_value); + value = tonex_params_clamp_value(param, value); + } break; + + case 17: + { + param = TONEX_PARAM_NOISE_GATE_DEPTH; + value = midi_helper_scale_midi_to_float(param, midi_value); + value = tonex_params_clamp_value(param, value); + } break; + + case 18: + { + param = TONEX_PARAM_COMP_ENABLE; + + // check for toggling + if (!midi_helper_tonex_boolean_midi_toggle(param, midi_value, &value)) + { + value = midi_helper_boolean_midi_to_float(midi_value); + value = tonex_params_clamp_value(param, value); + } + } break; + + case 19: + { + param = TONEX_PARAM_COMP_THRESHOLD; + value = midi_helper_scale_midi_to_float(param, midi_value); + value = tonex_params_clamp_value(param, value); + } break; + + case 20: + { + param = TONEX_PARAM_COMP_MAKE_UP; + value = midi_helper_scale_midi_to_float(param, midi_value); + value = tonex_params_clamp_value(param, value); + } break; + + case 21: + { + param = TONEX_PARAM_COMP_ATTACK; + value = midi_helper_scale_midi_to_float(param, midi_value); + value = tonex_params_clamp_value(param, value); + } break; + + case 22: + { + param = TONEX_PARAM_COMP_POST; + + // check for toggling + if (!midi_helper_tonex_boolean_midi_toggle(param, midi_value, &value)) + { + value = midi_helper_boolean_midi_to_float(midi_value); + value = tonex_params_clamp_value(param, value); + } + } break; + + case 23: + { + param = TONEX_PARAM_EQ_BASS; + value = midi_helper_scale_midi_to_float(param, midi_value); + } break; + + case 24: + { + param = TONEX_PARAM_EQ_BASS_FREQ; + value = midi_helper_scale_midi_to_float(param, midi_value); + value = tonex_params_clamp_value(param, value); + } break; + + case 25: + { + param = TONEX_PARAM_EQ_MID; + value = midi_helper_scale_midi_to_float(param, midi_value); + value = tonex_params_clamp_value(param, value); + } break; + + case 26: + { + param = TONEX_PARAM_EQ_MIDQ; + value = midi_helper_scale_midi_to_float(param, midi_value); + value = tonex_params_clamp_value(param, value); + } break; + + case 27: + { + param = TONEX_PARAM_EQ_MID_FREQ; + value = midi_helper_scale_midi_to_float(param, midi_value); + value = tonex_params_clamp_value(param, value); + } break; + + case 28: + { + param = TONEX_PARAM_EQ_TREBLE; + value = midi_helper_scale_midi_to_float(param, midi_value); + value = tonex_params_clamp_value(param, value); + } break; + + case 29: + { + param = TONEX_PARAM_EQ_TREBLE_FREQ; + value = midi_helper_scale_midi_to_float(param, midi_value); + value = tonex_params_clamp_value(param, value); + } break; + + case 30: + { + param = TONEX_PARAM_EQ_POST; + value = midi_helper_boolean_midi_to_float(midi_value); + value = tonex_params_clamp_value(param, value); + } break; + + case 31: + { + param = TONEX_PARAM_MODULATION_POST; + + // check for toggling + if (!midi_helper_tonex_boolean_midi_toggle(param, midi_value, &value)) + { + value = midi_helper_boolean_midi_to_float(midi_value); + value = tonex_params_clamp_value(param, value); + } + } break; + + case 32: + { + param = TONEX_PARAM_MODULATION_ENABLE; + + // check for toggling + if (!midi_helper_tonex_boolean_midi_toggle(param, midi_value, &value)) + { + value = midi_helper_boolean_midi_to_float(midi_value); + value = tonex_params_clamp_value(param, value); + } + } break; + + case 33: + { + param = TONEX_PARAM_MODULATION_MODEL; + value = (float)midi_value; + value = tonex_params_clamp_value(param, value); + } break; + + case 34: + { + param = TONEX_PARAM_MODULATION_CHORUS_SYNC; + + // check for toggling + if (!midi_helper_tonex_boolean_midi_toggle(param, midi_value, &value)) + { + value = midi_helper_boolean_midi_to_float(midi_value); + value = tonex_params_clamp_value(param, value); + } + } break; + + case 35: + { + // take mutex + if (tonex_params_get_locked_access(¶m_ptr) == ESP_OK) + { + if (param_ptr[TONEX_PARAM_MODULATION_CHORUS_SYNC].Value == 0.00f) + { + param = TONEX_PARAM_MODULATION_CHORUS_RATE; + + // release mutex as next functions need it + tonex_params_release_locked_access(); + + // scale the value to the time range + value = midi_helper_scale_midi_to_float(param, midi_value); + value = tonex_params_clamp_value(param, value); + } + else + { + param = TONEX_PARAM_MODULATION_CHORUS_TS; + + // release mutex as next functions need it + tonex_params_release_locked_access(); + + // set the time sign + value = (float)midi_value; + value = tonex_params_clamp_value(param, value); + } + } + else + { + // failed to get access to params + return ESP_FAIL; + } + } break; + + case 36: + { + param = TONEX_PARAM_MODULATION_CHORUS_DEPTH; + value = midi_helper_scale_midi_to_float(param, midi_value); + value = tonex_params_clamp_value(param, value); + } break; + + case 37: + { + param = TONEX_PARAM_MODULATION_CHORUS_LEVEL; + value = midi_helper_scale_midi_to_float(param, midi_value); + value = tonex_params_clamp_value(param, value); + } break; + + case 38: + { + param = TONEX_PARAM_MODULATION_TREMOLO_SYNC; + value = midi_helper_scale_midi_to_float(param, midi_value); + value = tonex_params_clamp_value(param, value); + } break; + + case 39: + { + // take mutex + if (tonex_params_get_locked_access(¶m_ptr) == ESP_OK) + { + if (param_ptr[TONEX_PARAM_MODULATION_TREMOLO_SYNC].Value == 0.00f) + { + param = TONEX_PARAM_MODULATION_TREMOLO_RATE; + + // release mutex as next functions need it + tonex_params_release_locked_access(); + + // scale the value to the time range + value = midi_helper_scale_midi_to_float(param, midi_value); + value = tonex_params_clamp_value(param, value); + } + else + { + param = TONEX_PARAM_MODULATION_TREMOLO_TS; + + // release mutex as next functions need it + tonex_params_release_locked_access(); + + // set the time sign + value = (float)midi_value; + value = tonex_params_clamp_value(param, value); + } + } + else + { + // failed to get access to params + return ESP_FAIL; + } + } break; + + case 40: + { + param = TONEX_PARAM_MODULATION_TREMOLO_SHAPE; + value = midi_helper_scale_midi_to_float(param, midi_value); + value = tonex_params_clamp_value(param, value); + } break; + + case 41: + { + param = TONEX_PARAM_MODULATION_TREMOLO_SPREAD; + value = midi_helper_scale_midi_to_float(param, midi_value); + value = tonex_params_clamp_value(param, value); + } break; + + case 42: + { + param = TONEX_PARAM_MODULATION_TREMOLO_LEVEL; + value = midi_helper_scale_midi_to_float(param, midi_value); + value = tonex_params_clamp_value(param, value); + } break; + + case 43: + { + param = TONEX_PARAM_MODULATION_PHASER_SYNC; + + // check for toggling + if (!midi_helper_tonex_boolean_midi_toggle(param, midi_value, &value)) + { + value = midi_helper_boolean_midi_to_float(midi_value); + value = tonex_params_clamp_value(param, value); + } + } break; + + case 44: + { + // take mutex + if (tonex_params_get_locked_access(¶m_ptr) == ESP_OK) + { + if (param_ptr[TONEX_PARAM_MODULATION_PHASER_SYNC].Value == 0.00f) + { + param = TONEX_PARAM_MODULATION_PHASER_RATE; + + // release mutex as next functions need it + tonex_params_release_locked_access(); + + // scale the value to the time range + value = midi_helper_scale_midi_to_float(param, midi_value); + value = tonex_params_clamp_value(param, value); + } + else + { + param = TONEX_PARAM_MODULATION_PHASER_TS; + + // release mutex as next functions need it + tonex_params_release_locked_access(); + + // set the time sign + value = (float)midi_value; + value = tonex_params_clamp_value(param, value); + } + } + else + { + // failed to get access to params + return ESP_FAIL; + } + } break; + + case 45: + { + param = TONEX_PARAM_MODULATION_PHASER_DEPTH; + value = midi_helper_scale_midi_to_float(param, midi_value); + value = tonex_params_clamp_value(param, value); + } break; + + case 46: + { + param = TONEX_PARAM_MODULATION_PHASER_LEVEL; + value = midi_helper_scale_midi_to_float(param, midi_value); + value = tonex_params_clamp_value(param, value); + } break; + + case 47: + { + param = TONEX_PARAM_MODULATION_FLANGER_SYNC; + + // check for toggling + if (!midi_helper_tonex_boolean_midi_toggle(param, midi_value, &value)) + { + value = midi_helper_boolean_midi_to_float(midi_value); + value = tonex_params_clamp_value(param, value); + } + } break; + + case 48: + { + // take mutex + if (tonex_params_get_locked_access(¶m_ptr) == ESP_OK) + { + if (param_ptr[TONEX_PARAM_MODULATION_FLANGER_SYNC].Value == 0.00f) + { + param = TONEX_PARAM_MODULATION_FLANGER_RATE; + + // release mutex as next functions need it + tonex_params_release_locked_access(); + + // scale the value to the time range + value = midi_helper_scale_midi_to_float(param, midi_value); + value = tonex_params_clamp_value(param, value); + } + else + { + param = TONEX_PARAM_MODULATION_FLANGER_TS; + + // release mutex as next functions need it + tonex_params_release_locked_access(); + + // set the time sign + value = (float)midi_value; + value = tonex_params_clamp_value(param, value); + } + } + else + { + // failed to get access to params + return ESP_FAIL; + } + } break; + + case 49: + { + param = TONEX_PARAM_MODULATION_FLANGER_DEPTH; + value = midi_helper_scale_midi_to_float(param, midi_value); + value = tonex_params_clamp_value(param, value); + } break; + + case 50: + { + param = TONEX_PARAM_MODULATION_FLANGER_FEEDBACK; + value = midi_helper_scale_midi_to_float(param, midi_value); + value = tonex_params_clamp_value(param, value); + } break; + + case 51: + { + param = TONEX_PARAM_MODULATION_FLANGER_LEVEL; + value = midi_helper_scale_midi_to_float(param, midi_value); + value = tonex_params_clamp_value(param, value); + } break; + + case 52: + { + param = TONEX_PARAM_MODULATION_ROTARY_SYNC; + + // check for toggling + if (!midi_helper_tonex_boolean_midi_toggle(param, midi_value, &value)) + { + value = midi_helper_boolean_midi_to_float(midi_value); + value = tonex_params_clamp_value(param, value); + } + } break; + + case 53: + { + // take mutex + if (tonex_params_get_locked_access(¶m_ptr) == ESP_OK) + { + if (param_ptr[TONEX_PARAM_MODULATION_ROTARY_SYNC].Value == 0.00f) + { + param = TONEX_PARAM_MODULATION_ROTARY_SPEED; + + // release mutex as next functions need it + tonex_params_release_locked_access(); + + // scale the value to the time range + value = midi_helper_scale_midi_to_float(param, midi_value); + value = tonex_params_clamp_value(param, value); + } + else + { + param = TONEX_PARAM_MODULATION_ROTARY_TS; + + // release mutex as next functions need it + tonex_params_release_locked_access(); + + // set the time sign + value = (float)midi_value; + value = tonex_params_clamp_value(param, value); + } + } + else + { + // failed to get access to params + return ESP_FAIL; + } + } break; + + case 54: + { + param = TONEX_PARAM_MODULATION_ROTARY_RADIUS; + value = midi_helper_scale_midi_to_float(param, midi_value); + value = tonex_params_clamp_value(param, value); + } break; + + case 55: + { + param = TONEX_PARAM_MODULATION_ROTARY_SPREAD; + value = midi_helper_scale_midi_to_float(param, midi_value); + value = tonex_params_clamp_value(param, value); + } break; + + case 56: + { + param = TONEX_PARAM_MODULATION_ROTARY_LEVEL; + value = midi_helper_scale_midi_to_float(param, midi_value); + value = tonex_params_clamp_value(param, value); + } break; + + // 57 - 58 not used + + case 59: + { + param = TONEX_PARAM_REVERB_SPRING1_TIME; + value = midi_helper_scale_midi_to_float(param, midi_value); + value = tonex_params_clamp_value(param, value); + } break; + + case 60: + { + param = TONEX_PARAM_REVERB_SPRING1_PREDELAY; + value = midi_helper_scale_midi_to_float(param, midi_value); + value = tonex_params_clamp_value(param, value); + } break; + + case 61: + { + param = TONEX_PARAM_REVERB_SPRING1_COLOR; + value = midi_helper_scale_midi_to_float(param, midi_value); + value = tonex_params_clamp_value(param, value); + } break; + + case 62: + { + param = TONEX_PARAM_REVERB_SPRING1_MIX; + value = midi_helper_scale_midi_to_float(param, midi_value); + value = tonex_params_clamp_value(param, value); + } break; + + case 63: + { + param = TONEX_PARAM_REVERB_SPRING2_TIME; + value = midi_helper_scale_midi_to_float(param, midi_value); + value = tonex_params_clamp_value(param, value); + } break; + + case 64: + { + param = TONEX_PARAM_REVERB_SPRING2_PREDELAY; + value = midi_helper_scale_midi_to_float(param, midi_value); + value = tonex_params_clamp_value(param, value); + } break; + + case 65: + { + param = TONEX_PARAM_REVERB_SPRING2_COLOR; + value = midi_helper_scale_midi_to_float(param, midi_value); + value = tonex_params_clamp_value(param, value); + } break; + + case 66: + { + param = TONEX_PARAM_REVERB_SPRING2_MIX; + value = midi_helper_scale_midi_to_float(param, midi_value); + value = tonex_params_clamp_value(param, value); + } break; + + case 67: + { + param = TONEX_PARAM_REVERB_SPRING3_TIME; + value = midi_helper_scale_midi_to_float(param, midi_value); + value = tonex_params_clamp_value(param, value); + } break; + + case 68: + { + param = TONEX_PARAM_REVERB_SPRING3_PREDELAY; + value = midi_helper_scale_midi_to_float(param, midi_value); + value = tonex_params_clamp_value(param, value); + } break; + + case 69: + { + param = TONEX_PARAM_REVERB_SPRING3_COLOR; + value = midi_helper_scale_midi_to_float(param, midi_value); + value = tonex_params_clamp_value(param, value); + } break; + + case 70: + { + param = TONEX_PARAM_REVERB_SPRING3_MIX; + value = midi_helper_scale_midi_to_float(param, midi_value); + value = tonex_params_clamp_value(param, value); + } break; + + case 71: + { + param = TONEX_PARAM_REVERB_ROOM_TIME; + value = midi_helper_scale_midi_to_float(param, midi_value); + value = tonex_params_clamp_value(param, value); + } break; + + case 72: + { + param = TONEX_PARAM_REVERB_ROOM_PREDELAY; + value = midi_helper_scale_midi_to_float(param, midi_value); + value = tonex_params_clamp_value(param, value); + } break; + + case 73: + { + param = TONEX_PARAM_REVERB_ROOM_COLOR; + value = midi_helper_scale_midi_to_float(param, midi_value); + value = tonex_params_clamp_value(param, value); + } break; + + case 74: + { + param = TONEX_PARAM_REVERB_ROOM_MIX; + value = midi_helper_scale_midi_to_float(param, midi_value); + value = tonex_params_clamp_value(param, value); + } break; + + case 75: + { + param = TONEX_PARAM_REVERB_ENABLE; + + // check for toggling + if (!midi_helper_tonex_boolean_midi_toggle(param, midi_value, &value)) + { + value = midi_helper_boolean_midi_to_float(midi_value); + value = tonex_params_clamp_value(param, value); + } + } break; + + case 76: + { + param = TONEX_PARAM_REVERB_PLATE_TIME; + value = midi_helper_scale_midi_to_float(param, midi_value); + value = tonex_params_clamp_value(param, value); + } break; + + case 77: + { + param = TONEX_PARAM_REVERB_PLATE_PREDELAY; + value = midi_helper_scale_midi_to_float(param, midi_value); + value = tonex_params_clamp_value(param, value); + } break; + + case 78: + { + param = TONEX_PARAM_REVERB_PLATE_COLOR; + value = midi_helper_scale_midi_to_float(param, midi_value); + value = tonex_params_clamp_value(param, value); + } break; + + case 79: + { + param = TONEX_PARAM_REVERB_PLATE_MIX; + value = midi_helper_scale_midi_to_float(param, midi_value); + value = tonex_params_clamp_value(param, value); + } break; + + case 80: + { + param = TONEX_PARAM_REVERB_SPRING4_TIME; + value = midi_helper_scale_midi_to_float(param, midi_value); + value = tonex_params_clamp_value(param, value); + } break; + + case 81: + { + param = TONEX_PARAM_REVERB_SPRING4_PREDELAY; + value = midi_helper_scale_midi_to_float(param, midi_value); + value = tonex_params_clamp_value(param, value); + } break; + + case 82: + { + param = TONEX_PARAM_REVERB_SPRING4_COLOR; + value = midi_helper_scale_midi_to_float(param, midi_value); + value = tonex_params_clamp_value(param, value); + } break; + + case 83: + { + param = TONEX_PARAM_REVERB_SPRING4_MIX; + value = midi_helper_scale_midi_to_float(param, midi_value); + value = tonex_params_clamp_value(param, value); + } break; + + case 84: + { + param = TONEX_PARAM_REVERB_POSITION; + + // check for toggling + if (!midi_helper_tonex_boolean_midi_toggle(param, midi_value, &value)) + { + value = midi_helper_boolean_midi_to_float(midi_value); + value = tonex_params_clamp_value(param, value); + } + } break; + + case 85: + { + param = TONEX_PARAM_REVERB_MODEL; + value = (float)midi_value; + value = tonex_params_clamp_value(param, value); + } break; + + case 86: + { + //preset down + control_request_preset_down(); + + // no param change needed + return ESP_OK; + } break; + + case 87: + { + //preset up + control_request_preset_up(); + + // no param change needed + return ESP_OK; + } break; + + case 88: + { + // bpm + param = TONEX_GLOBAL_BPM; + value = midi_helper_scale_midi_to_float(param, midi_value); + } break; + + // 89: bank down + // 90: bank up + + case 91: + { + param = TONEX_PARAM_DELAY_TAPE_SYNC; + + // check for toggling + if (!midi_helper_tonex_boolean_midi_toggle(param, midi_value, &value)) + { + value = midi_helper_boolean_midi_to_float(midi_value); + value = tonex_params_clamp_value(param, value); + } + } break; + + case 92: + { + // take mutex + if (tonex_params_get_locked_access(¶m_ptr) == ESP_OK) + { + if (param_ptr[TONEX_PARAM_DELAY_TAPE_SYNC].Value == 0.00f) + { + param = TONEX_PARAM_DELAY_TAPE_TIME; + + // release mutex as next functions need it + tonex_params_release_locked_access(); + + // scale the value to the time range + value = midi_helper_scale_midi_to_float(param, midi_value); + value = tonex_params_clamp_value(param, value); + } + else + { + param = TONEX_PARAM_DELAY_TAPE_TS; + + // release mutex as next functions need it + tonex_params_release_locked_access(); + + // set the time sign + value = (float)midi_value; + value = tonex_params_clamp_value(param, value); + } + } + else + { + // failed to get access to params + return ESP_FAIL; + } + } break; + + case 93: + { + param = TONEX_PARAM_DELAY_TAPE_FEEDBACK; + value = midi_helper_scale_midi_to_float(param, midi_value); + value = tonex_params_clamp_value(param, value); + } break; + + case 94: + { + param = TONEX_PARAM_DELAY_TAPE_MODE; + if (midi_value == 64) + { + value = 1.0f; + } + else + { + value = 0.0f; + } + value = tonex_params_clamp_value(param, value); + } break; + + case 95: + { + param = TONEX_PARAM_DELAY_TAPE_MIX; + value = midi_helper_scale_midi_to_float(param, midi_value); + value = tonex_params_clamp_value(param, value); + } break; + + // 96 to 101 not used + + case 99: + { + // bpm + param = TONEX_GLOBAL_BPM; + value = (midi_value < 40) ? 40 : midi_value; + } break; + + case 100: + { + // bpm + param = TONEX_GLOBAL_BPM; + value = midi_value+100; + } break; + + case 102: + { + param = TONEX_PARAM_MODEL_GAIN; + value = midi_helper_scale_midi_to_float(param, midi_value); + value = tonex_params_clamp_value(param, value); + } break; + + case 103: + { + param = TONEX_PARAM_MODEL_VOLUME; + value = midi_helper_scale_midi_to_float(param, midi_value); + value = tonex_params_clamp_value(param, value); + } break; + + case 104: + { + param = TONEX_PARAM_MODEX_MIX; + value = midi_helper_scale_midi_to_float(param, midi_value); + value = tonex_params_clamp_value(param, value); + } break; + + // 105 not used + + case 106: + { + param = TONEX_PARAM_MODEL_PRESENCE; + value = midi_helper_scale_midi_to_float(param, midi_value); + value = tonex_params_clamp_value(param, value); + } break; + + case 107: + { + param = TONEX_PARAM_MODEL_DEPTH; + value = midi_helper_scale_midi_to_float(param, midi_value); + value = tonex_params_clamp_value(param, value); + } break; + + case 108: + { + param = TONEX_PARAM_VIR_RESO; + value = midi_helper_scale_midi_to_float(param, midi_value); + value = tonex_params_clamp_value(param, value); + } break; + + case 109: + { + param = TONEX_PARAM_VIR_MIC_1; + value = (float)midi_value; + value = tonex_params_clamp_value(param, value); + } break; + + case 110: + { + param = TONEX_PARAM_VIR_MIC_1_X; + value = midi_helper_scale_midi_to_float(param, midi_value); + value = tonex_params_clamp_value(param, value); + } break; + + case 111: + { + param = TONEX_PARAM_VIR_MIC_1_Z; + value = midi_helper_scale_midi_to_float(param, midi_value); + value = tonex_params_clamp_value(param, value); + } break; + + case 112: + { + param = TONEX_PARAM_VIR_MIC_2; + value = (float)midi_value; + value = tonex_params_clamp_value(param, value); + } break; + + case 113: + { + param = TONEX_PARAM_VIR_MIC_2_X; + value = midi_helper_scale_midi_to_float(param, midi_value); + value = tonex_params_clamp_value(param, value); + } break; + + case 114: + { + param = TONEX_PARAM_VIR_MIC_2_Z; + value = midi_helper_scale_midi_to_float(param, midi_value); + value = tonex_params_clamp_value(param, value); + } break; + + case 115: + { + param = TONEX_PARAM_VIR_BLEND; + value = midi_helper_scale_midi_to_float(param, midi_value); + value = tonex_params_clamp_value(param, value); + } break; + + // below items not supported on bigger Tonex pedal, custom for this controller + case 116: + { + // input trim + param = TONEX_GLOBAL_INPUT_TRIM; + value = midi_helper_scale_midi_to_float(param, midi_value); + value = tonex_params_clamp_value(param, value); + } break; + + case 117: + { + param = TONEX_GLOBAL_CABSIM_BYPASS; + + // check for toggling + if (!midi_helper_tonex_boolean_midi_toggle(param, midi_value, &value)) + { + value = midi_helper_boolean_midi_to_float(midi_value); + value = tonex_params_clamp_value(param, value); + } + } break; + + case 118: + { + param = TONEX_GLOBAL_TEMPO_SOURCE; + + // check for toggling + if (!midi_helper_tonex_boolean_midi_toggle(param, midi_value, &value)) + { + value = midi_helper_boolean_midi_to_float(midi_value); + value = tonex_params_clamp_value(param, value); + } + } break; + + case 119: + { + param = TONEX_GLOBAL_TUNING_REFERENCE; + value = midi_helper_scale_midi_to_float(param, midi_value); + value = tonex_params_clamp_value(param, value); + } break; + + case 120: + { + // Load preset to Slot A without switching to it + if (midi_value >= (usb_get_max_presets_for_connected_modeller())) + { + ESP_LOGW(TAG, "Unsupported Midi CC 120 value %d (max %d)", midi_value, usb_get_max_presets_for_connected_modeller() - 1); + } + else + { + usb_load_preset_to_slot_a(midi_value); + } + + // no param change needed + return ESP_OK; + } break; + + case 121: + { + // Load preset to Slot B without switching to it + if (midi_value >= (usb_get_max_presets_for_connected_modeller())) + { + ESP_LOGW(TAG, "Unsupported Midi CC 121 value %d (max %d)", midi_value, usb_get_max_presets_for_connected_modeller() - 1); + } + else + { + usb_load_preset_to_slot_b(midi_value); + } + + // no param change needed + return ESP_OK; + } break; + + case 122: + { + param = TONEX_GLOBAL_MASTER_VOLUME; + value = midi_helper_scale_midi_to_float(param, midi_value); + value = tonex_params_clamp_value(param, value); + } break; + + case 127: + { + // Custom case: use CC to change params. + if (midi_value >= (usb_get_max_presets_for_connected_modeller())) + { + ESP_LOGW(TAG, "Unsupported Midi CC 127 value %d", midi_value); + } + else + { + control_request_preset_index(midi_value); + } + + // no param change needed + return ESP_OK; + } break; + + default: + { + ESP_LOGW(TAG, "Unsupported Midi change number %d", change_num); + return ESP_FAIL; + } break; + } + + // modify the parameter + usb_modify_parameter(param, value); + + return ESP_OK; +} + +/**************************************************************************** +* NAME: +* DESCRIPTION: +* PARAMETERS: +* RETURN: +* NOTES: +*****************************************************************************/ +uint16_t midi_helper_tonex_get_param_for_change_num(uint8_t change_num, uint8_t midi_value_1, uint8_t midi_value_2) +{ + uint16_t param = TONEX_UNKNOWN; + tModellerParameter* param_ptr; + + // Midi mapping done to match the big Tonex pedal + switch (change_num) + { + // 0: midi patch bank on big tonex + + case 1: + { + param = TONEX_PARAM_DELAY_POST; + } break; + + case 2: + { + param = TONEX_PARAM_DELAY_ENABLE; + } break; + + case 3: + { + param = TONEX_PARAM_DELAY_MODEL; + } break; + + case 4: + { + param = TONEX_PARAM_DELAY_DIGITAL_SYNC; + } break; + + case 5: + { + // take mutex + if (tonex_params_get_locked_access(¶m_ptr) == ESP_OK) + { + if (param_ptr[TONEX_PARAM_DELAY_DIGITAL_SYNC].Value == 0.00f) + { + param = TONEX_PARAM_DELAY_DIGITAL_TIME; + } + else + { + param = TONEX_PARAM_DELAY_DIGITAL_TS; + } + + // release mutex + tonex_params_release_locked_access(); + } + } break; + + case 6: + { + param = TONEX_PARAM_DELAY_DIGITAL_FEEDBACK; + } break; + + case 7: + { + param = TONEX_PARAM_DELAY_DIGITAL_MODE; + } break; + + case 8: + { + param = TONEX_PARAM_DELAY_DIGITAL_MIX; + } break; + + // 9 tuner + + case 10: + { + // BPM + param = TONEX_GLOBAL_BPM; + } break; + + // 11: expression pedal + + case 12: + { + // preset on/off + param = TONEX_GLOBAL_BYPASS; + } break; + + case 13: + { + param = TONEX_PARAM_NOISE_GATE_POST; + } break; + + case 14: + { + param = TONEX_PARAM_NOISE_GATE_ENABLE; + } break; + + case 15: + { + param = TONEX_PARAM_NOISE_GATE_THRESHOLD; + } break; + + case 16: + { + param = TONEX_PARAM_NOISE_GATE_RELEASE; + } break; + + case 17: + { + param = TONEX_PARAM_NOISE_GATE_DEPTH; + } break; + + case 18: + { + param = TONEX_PARAM_COMP_ENABLE; + } break; + + case 19: + { + param = TONEX_PARAM_COMP_THRESHOLD; + } break; + + case 20: + { + param = TONEX_PARAM_COMP_MAKE_UP; + } break; + + case 21: + { + param = TONEX_PARAM_COMP_ATTACK; + } break; + + case 22: + { + param = TONEX_PARAM_COMP_POST; + } break; + + case 23: + { + param = TONEX_PARAM_EQ_BASS; + } break; + + case 24: + { + param = TONEX_PARAM_EQ_BASS_FREQ; + } break; + + case 25: + { + param = TONEX_PARAM_EQ_MID; + } break; + + case 26: + { + param = TONEX_PARAM_EQ_MIDQ; + } break; + + case 27: + { + param = TONEX_PARAM_EQ_MID_FREQ; + } break; + + case 28: + { + param = TONEX_PARAM_EQ_TREBLE; + } break; + + case 29: + { + param = TONEX_PARAM_EQ_TREBLE_FREQ; + } break; + + case 30: + { + param = TONEX_PARAM_EQ_POST; + } break; + + case 31: + { + param = TONEX_PARAM_MODULATION_POST; + } break; + + case 32: + { + param = TONEX_PARAM_MODULATION_ENABLE; + } break; + + case 33: + { + param = TONEX_PARAM_MODULATION_MODEL; + } break; + + case 34: + { + param = TONEX_PARAM_MODULATION_CHORUS_SYNC; + } break; + + case 35: + { + // take mutex + if (tonex_params_get_locked_access(¶m_ptr) == ESP_OK) + { + if (param_ptr[TONEX_PARAM_MODULATION_CHORUS_SYNC].Value == 0.00f) + { + param = TONEX_PARAM_MODULATION_CHORUS_RATE; + } + else + { + param = TONEX_PARAM_MODULATION_CHORUS_TS; + } + + // release mutex + tonex_params_release_locked_access(); + } + } break; + + case 36: + { + param = TONEX_PARAM_MODULATION_CHORUS_DEPTH; + } break; + + case 37: + { + param = TONEX_PARAM_MODULATION_CHORUS_LEVEL; + } break; + + case 38: + { + param = TONEX_PARAM_MODULATION_TREMOLO_SYNC; + } break; + + case 39: + { + // take mutex + if (tonex_params_get_locked_access(¶m_ptr) == ESP_OK) + { + if (param_ptr[TONEX_PARAM_MODULATION_TREMOLO_SYNC].Value == 0.00f) + { + param = TONEX_PARAM_MODULATION_TREMOLO_RATE; + } + else + { + param = TONEX_PARAM_MODULATION_TREMOLO_TS; + } + + // release mutex + tonex_params_release_locked_access(); + } + } break; + + case 40: + { + param = TONEX_PARAM_MODULATION_TREMOLO_SHAPE; + } break; + + case 41: + { + param = TONEX_PARAM_MODULATION_TREMOLO_SPREAD; + } break; + + case 42: + { + param = TONEX_PARAM_MODULATION_TREMOLO_LEVEL; + } break; + + case 43: + { + param = TONEX_PARAM_MODULATION_PHASER_SYNC; + } break; + + case 44: + { + // take mutex + if (tonex_params_get_locked_access(¶m_ptr) == ESP_OK) + { + if (param_ptr[TONEX_PARAM_MODULATION_PHASER_SYNC].Value == 0.00f) + { + param = TONEX_PARAM_MODULATION_PHASER_RATE; + } + else + { + param = TONEX_PARAM_MODULATION_PHASER_TS; + } + + // release mutex + tonex_params_release_locked_access(); + } + } break; + + case 45: + { + param = TONEX_PARAM_MODULATION_PHASER_DEPTH; + } break; + + case 46: + { + param = TONEX_PARAM_MODULATION_PHASER_LEVEL; + } break; + + case 47: + { + param = TONEX_PARAM_MODULATION_FLANGER_SYNC; + } break; + + case 48: + { + // take mutex + if (tonex_params_get_locked_access(¶m_ptr) == ESP_OK) + { + if (param_ptr[TONEX_PARAM_MODULATION_FLANGER_SYNC].Value == 0.00f) + { + param = TONEX_PARAM_MODULATION_FLANGER_RATE; + } + else + { + param = TONEX_PARAM_MODULATION_FLANGER_TS; + } + + // release mutex + tonex_params_release_locked_access(); + } + } break; + + case 49: + { + param = TONEX_PARAM_MODULATION_FLANGER_DEPTH; + } break; + + case 50: + { + param = TONEX_PARAM_MODULATION_FLANGER_FEEDBACK; + } break; + + case 51: + { + param = TONEX_PARAM_MODULATION_FLANGER_LEVEL; + } break; + + case 52: + { + param = TONEX_PARAM_MODULATION_ROTARY_SYNC; + } break; + + case 53: + { + // take mutex + if (tonex_params_get_locked_access(¶m_ptr) == ESP_OK) + { + if (param_ptr[TONEX_PARAM_MODULATION_ROTARY_SYNC].Value == 0.00f) + { + param = TONEX_PARAM_MODULATION_ROTARY_SPEED; + } + else + { + param = TONEX_PARAM_MODULATION_ROTARY_TS; + } + + // release mutex + tonex_params_release_locked_access(); + } + } break; + + case 54: + { + param = TONEX_PARAM_MODULATION_ROTARY_RADIUS; + } break; + + case 55: + { + param = TONEX_PARAM_MODULATION_ROTARY_SPREAD; + } break; + + case 56: + { + param = TONEX_PARAM_MODULATION_ROTARY_LEVEL; + } break; + + // 57 - 58 not used + + case 59: + { + param = TONEX_PARAM_REVERB_SPRING1_TIME; + } break; + + case 60: + { + param = TONEX_PARAM_REVERB_SPRING1_PREDELAY; + } break; + + case 61: + { + param = TONEX_PARAM_REVERB_SPRING1_COLOR; + } break; + + case 62: + { + param = TONEX_PARAM_REVERB_SPRING1_MIX; + } break; + + case 63: + { + param = TONEX_PARAM_REVERB_SPRING2_TIME; + } break; + + case 64: + { + param = TONEX_PARAM_REVERB_SPRING2_PREDELAY; + } break; + + case 65: + { + param = TONEX_PARAM_REVERB_SPRING2_COLOR; + } break; + + case 66: + { + param = TONEX_PARAM_REVERB_SPRING2_MIX; + } break; + + case 67: + { + param = TONEX_PARAM_REVERB_SPRING3_TIME; + } break; + + case 68: + { + param = TONEX_PARAM_REVERB_SPRING3_PREDELAY; + } break; + + case 69: + { + param = TONEX_PARAM_REVERB_SPRING3_COLOR; + } break; + + case 70: + { + param = TONEX_PARAM_REVERB_SPRING3_MIX; + } break; + + case 71: + { + param = TONEX_PARAM_REVERB_ROOM_TIME; + } break; + + case 72: + { + param = TONEX_PARAM_REVERB_ROOM_PREDELAY; + } break; + + case 73: + { + param = TONEX_PARAM_REVERB_ROOM_COLOR; + } break; + + case 74: + { + param = TONEX_PARAM_REVERB_ROOM_MIX; + } break; + + case 75: + { + param = TONEX_PARAM_REVERB_ENABLE; + } break; + + case 76: + { + param = TONEX_PARAM_REVERB_PLATE_TIME; + } break; + + case 77: + { + param = TONEX_PARAM_REVERB_PLATE_PREDELAY; + } break; + + case 78: + { + param = TONEX_PARAM_REVERB_PLATE_COLOR; + } break; + + case 79: + { + param = TONEX_PARAM_REVERB_PLATE_MIX; + } break; + + case 80: + { + param = TONEX_PARAM_REVERB_SPRING4_TIME; + } break; + + case 81: + { + param = TONEX_PARAM_REVERB_SPRING4_PREDELAY; + } break; + + case 82: + { + param = TONEX_PARAM_REVERB_SPRING4_COLOR; + } break; + + case 83: + { + param = TONEX_PARAM_REVERB_SPRING4_MIX; + } break; + + case 84: + { + param = TONEX_PARAM_REVERB_POSITION; + } break; + + case 85: + { + param = TONEX_PARAM_REVERB_MODEL; + } break; + + case 86: + { + // preset down + control_request_preset_down(); + + // don't set any return param, as this one is already handled and its not a parameter + } break; + + case 87: + { + //preset up + control_request_preset_up(); + + // don't set any return param, as this one is already handled and its not a parameter + } break; + + case 88: + { + //bpm + param = TONEX_GLOBAL_BPM; + } break; + + // 89: bank down + // 90: bank up + + case 91: + { + param = TONEX_PARAM_DELAY_TAPE_SYNC; + } break; + + case 92: + { + // take mutex + if (tonex_params_get_locked_access(¶m_ptr) == ESP_OK) + { + if (param_ptr[TONEX_PARAM_DELAY_TAPE_SYNC].Value == 0.00f) + { + param = TONEX_PARAM_DELAY_TAPE_TIME; + } + else + { + param = TONEX_PARAM_DELAY_TAPE_TS; + } + + // release mutex + tonex_params_release_locked_access(); + } + } break; + + case 93: + { + param = TONEX_PARAM_DELAY_TAPE_FEEDBACK; + } break; + + case 94: + { + param = TONEX_PARAM_DELAY_TAPE_MODE; + } break; + + case 95: + { + param = TONEX_PARAM_DELAY_TAPE_MIX; + } break; + + // 96 to 101 not used + + case 102: + { + param = TONEX_PARAM_MODEL_GAIN; + } break; + + case 103: + { + param = TONEX_PARAM_MODEL_VOLUME; + } break; + + case 104: + { + param = TONEX_PARAM_MODEX_MIX; + } break; + + // 105 not used + + case 106: + { + param = TONEX_PARAM_MODEL_PRESENCE; + } break; + + case 107: + { + param = TONEX_PARAM_MODEL_DEPTH; + } break; + + case 108: + { + param = TONEX_PARAM_VIR_RESO; + } break; + + case 109: + { + param = TONEX_PARAM_VIR_MIC_1; + } break; + + case 110: + { + param = TONEX_PARAM_VIR_MIC_1_X; + } break; + + case 111: + { + param = TONEX_PARAM_VIR_MIC_1_Z; + } break; + + case 112: + { + param = TONEX_PARAM_VIR_MIC_2; + } break; + + case 113: + { + param = TONEX_PARAM_VIR_MIC_2_X; + } break; + + case 114: + { + param = TONEX_PARAM_VIR_MIC_2_Z; + } break; + + case 115: + { + param = TONEX_PARAM_VIR_BLEND; + } break; + + // below items not supported on bigger Tonex pedal, custom for this controller + case 116: + { + param = TONEX_GLOBAL_INPUT_TRIM; + } break; + + case 117: + { + param = TONEX_GLOBAL_CABSIM_BYPASS; + } break; + + case 118: + { + param = TONEX_GLOBAL_TEMPO_SOURCE; + } break; + + case 119: + { + param = TONEX_GLOBAL_TUNING_REFERENCE; + } break; + + case 120: + { + // reserved for setting preset in slot A + } break; + + case 121: + { + // reserved for setting preset in slot B + } break; + + case 122: + { + param = TONEX_GLOBAL_MASTER_VOLUME; + } break; + + case 127: + { + uint32_t new_preset; + uint32_t current_preset = control_get_current_preset_index(); + + if (current_preset == midi_value_1) + { + // select midi value 2 + new_preset = midi_value_2; + } + else + { + // select midi value 1 + new_preset = midi_value_1; + } + + if (new_preset >= (usb_get_max_presets_for_connected_modeller())) + { + ESP_LOGW(TAG, "Unsupported Midi CC 127 value %d", new_preset); + } + else + { + control_request_preset_index(new_preset); + } + + // don't set any return param, as this one is already handled and its not a parameter + } + } + + return param; +} diff --git a/source/main/midi_helper_tonex.h b/source/main/midi_helper_tonex.h new file mode 100644 index 00000000..8aa16705 --- /dev/null +++ b/source/main/midi_helper_tonex.h @@ -0,0 +1,21 @@ +/* + Copyright (C) 2025 Greg Smith + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + +*/ + +#pragma once + +esp_err_t midi_helper_tonex_adjust_param_via_midi(uint8_t change_num, uint8_t midi_value); +uint16_t midi_helper_tonex_get_param_for_change_num(uint8_t change_num, uint8_t midi_value_1, uint8_t midi_value_2); diff --git a/source/main/midi_helper_valeton.c b/source/main/midi_helper_valeton.c new file mode 100644 index 00000000..607c50d1 --- /dev/null +++ b/source/main/midi_helper_valeton.c @@ -0,0 +1,1743 @@ +/* + Copyright (C) 2025 Greg Smith + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + +*/ + + +#include +#include +#include +#include "sdkconfig.h" +#include "freertos/FreeRTOS.h" +#include "freertos/task.h" +#include "freertos/semphr.h" +#include "esp_check.h" +#include "esp_log.h" +#include "usb/usb_host.h" +#include "driver/i2c.h" +#include "nvs_flash.h" +#include "esp_vfs.h" +#include "esp_vfs_fat.h" +#include "esp_ota_ops.h" +#include "sys/param.h" +#include "control.h" +#include "usb_comms.h" +#include "usb/usb_host.h" +#include "usb_tonex_one.h" +#include "valeton_params.h" +#include "midi_helper.h" +#include "midi_helper_valeton.h" + +static const char *TAG = "app_midi_helper_valeton"; + +/**************************************************************************** +* NAME: +* DESCRIPTION: +* PARAMETERS: +* RETURN: +* NOTES: +*****************************************************************************/ +static uint8_t midi_helper_valeton_boolean_midi_toggle(uint16_t param, uint8_t midi_value, float* value) +{ + tModellerParameter* param_ptr; + + if (midi_value == MIDI_BOOL_TOGGLE) + { + // take mutex + if (valeton_params_get_locked_access(¶m_ptr) == ESP_OK) + { + // toggle current state + if (param_ptr[param].Value == 0.0f) + { + *value = 1.0f; + } + else + { + *value = 0.0f; + } + + // release mutex + valeton_params_release_locked_access(); + } + + // toggling + return 1; + } + + // not toggling + return 0; +} + +/**************************************************************************** +* NAME: +* DESCRIPTION: +* PARAMETERS: +* RETURN: +* NOTES: +*****************************************************************************/ +esp_err_t midi_helper_valeton_adjust_param_via_midi(uint8_t change_num, uint8_t midi_value) +{ + uint16_t param = 0; + float value = 0.0f; + + switch (change_num) + { + case 0: + { + param = VALETON_PARAM_NR_ENABLE; + + // check for toggling + if (!midi_helper_valeton_boolean_midi_toggle(param, midi_value, &value)) + { + value = midi_helper_boolean_midi_to_float(midi_value); + value = valeton_params_clamp_value(param, value); + } + } break; + + case 1: + { + param = VALETON_PARAM_PRE_ENABLE; + + // check for toggling + if (!midi_helper_valeton_boolean_midi_toggle(param, midi_value, &value)) + { + value = midi_helper_boolean_midi_to_float(midi_value); + value = valeton_params_clamp_value(param, value); + } + } break; + + case 2: + { + param = VALETON_PARAM_DIST_ENABLE; + + // check for toggling + if (!midi_helper_valeton_boolean_midi_toggle(param, midi_value, &value)) + { + value = midi_helper_boolean_midi_to_float(midi_value); + value = valeton_params_clamp_value(param, value); + } + } break; + + case 3: + { + param = VALETON_PARAM_AMP_ENABLE; + + // check for toggling + if (!midi_helper_valeton_boolean_midi_toggle(param, midi_value, &value)) + { + value = midi_helper_boolean_midi_to_float(midi_value); + value = valeton_params_clamp_value(param, value); + } + } break; + + case 4: + { + param = VALETON_PARAM_CAB_ENABLE; + + // check for toggling + if (!midi_helper_valeton_boolean_midi_toggle(param, midi_value, &value)) + { + value = midi_helper_boolean_midi_to_float(midi_value); + value = valeton_params_clamp_value(param, value); + } + } break; + + case 5: + { + param = VALETON_PARAM_EQ_ENABLE; + + // check for toggling + if (!midi_helper_valeton_boolean_midi_toggle(param, midi_value, &value)) + { + value = midi_helper_boolean_midi_to_float(midi_value); + value = valeton_params_clamp_value(param, value); + } + } break; + + case 6: + { + param = VALETON_PARAM_MOD_ENABLE; + + // check for toggling + if (!midi_helper_valeton_boolean_midi_toggle(param, midi_value, &value)) + { + value = midi_helper_boolean_midi_to_float(midi_value); + value = valeton_params_clamp_value(param, value); + } + } break; + + case 7: + { + param = VALETON_PARAM_DLY_ENABLE; + + // check for toggling + if (!midi_helper_valeton_boolean_midi_toggle(param, midi_value, &value)) + { + value = midi_helper_boolean_midi_to_float(midi_value); + value = valeton_params_clamp_value(param, value); + } + } break; + + case 8: + { + param = VALETON_PARAM_RVB_ENABLE; + + // check for toggling + if (!midi_helper_valeton_boolean_midi_toggle(param, midi_value, &value)) + { + value = midi_helper_boolean_midi_to_float(midi_value); + value = valeton_params_clamp_value(param, value); + } + } break; + + case 9: + { + param = VALETON_PARAM_NS_ENABLE; + + // check for toggling + if (!midi_helper_valeton_boolean_midi_toggle(param, midi_value, &value)) + { + value = midi_helper_boolean_midi_to_float(midi_value); + value = valeton_params_clamp_value(param, value); + } + } break; + + case 10: + { + param = VALETON_PARAM_NR_TYPE; + value = (float)midi_value; + value = valeton_params_clamp_value(param, value); + } break; + + case 11: + { + param = VALETON_PARAM_PRE_TYPE; + value = (float)midi_value; + value = valeton_params_clamp_value(param, value); + } break; + + case 12: + { + param = VALETON_PARAM_DIST_TYPE; + value = (float)midi_value; + value = valeton_params_clamp_value(param, value); + } break; + + case 13: + { + param = VALETON_PARAM_AMP_TYPE; + value = (float)midi_value; + value = valeton_params_clamp_value(param, value); + } break; + + case 14: + { + param = VALETON_PARAM_CAB_TYPE; + value = (float)midi_value; + value = valeton_params_clamp_value(param, value); + } break; + + case 15: + { + param = VALETON_PARAM_EQ_TYPE; + value = (float)midi_value; + value = valeton_params_clamp_value(param, value); + } break; + + case 16: + { + param = VALETON_PARAM_MOD_TYPE; + value = (float)midi_value; + value = valeton_params_clamp_value(param, value); + } break; + + case 17: + { + param = VALETON_PARAM_DLY_TYPE; + value = (float)midi_value; + value = valeton_params_clamp_value(param, value); + } break; + + case 18: + { + param = VALETON_PARAM_RVB_TYPE; + value = (float)midi_value; + value = valeton_params_clamp_value(param, value); + } break; + + case 19: + { + param = VALETON_PARAM_NS_TYPE; + value = (float)midi_value; + value = valeton_params_clamp_value(param, value); + } break; + + case 20: + { + param = VALETON_PARAM_PATCH_VOLUME; + + // scale the value to the range + value = midi_helper_scale_midi_to_float(param, midi_value); + value = valeton_params_clamp_value(param, value); + } break; + + case 21: + { + param = VALETON_PARAM_NR_PARAM_0; + + // scale the value to the range + value = midi_helper_scale_midi_to_float(param, midi_value); + value = valeton_params_clamp_value(param, value); + } break; + + case 23: + { + param = VALETON_PARAM_NR_PARAM_1; + + // scale the value to the range + value = midi_helper_scale_midi_to_float(param, midi_value); + value = valeton_params_clamp_value(param, value); + } break; + + case 24: + { + param = VALETON_PARAM_NR_PARAM_2; + + // scale the value to the range + value = midi_helper_scale_midi_to_float(param, midi_value); + value = valeton_params_clamp_value(param, value); + } break; + + case 25: + { + param = VALETON_PARAM_NR_PARAM_3; + + // scale the value to the range + value = midi_helper_scale_midi_to_float(param, midi_value); + value = valeton_params_clamp_value(param, value); + } break; + + case 26: + { + param = VALETON_PARAM_NR_PARAM_4; + + // scale the value to the range + value = midi_helper_scale_midi_to_float(param, midi_value); + value = valeton_params_clamp_value(param, value); + } break; + + case 27: + { + param = VALETON_PARAM_NR_PARAM_5; + + // scale the value to the range + value = midi_helper_scale_midi_to_float(param, midi_value); + value = valeton_params_clamp_value(param, value); + } break; + + case 28: + { + param = VALETON_PARAM_NR_PARAM_6; + + // scale the value to the range + value = midi_helper_scale_midi_to_float(param, midi_value); + value = valeton_params_clamp_value(param, value); + } break; + + case 29: + { + param = VALETON_PARAM_NR_PARAM_7; + + // scale the value to the range + value = midi_helper_scale_midi_to_float(param, midi_value); + value = valeton_params_clamp_value(param, value); + } break; + + case 30: + { + param = VALETON_PARAM_PRE_PARAM_0; + + // scale the value to the range + value = midi_helper_scale_midi_to_float(param, midi_value); + value = valeton_params_clamp_value(param, value); + } break; + + case 31: + { + param = VALETON_PARAM_PRE_PARAM_1; + + // scale the value to the range + value = midi_helper_scale_midi_to_float(param, midi_value); + value = valeton_params_clamp_value(param, value); + } break; + + case 32: + { + param = VALETON_PARAM_PRE_PARAM_2; + + // scale the value to the range + value = midi_helper_scale_midi_to_float(param, midi_value); + value = valeton_params_clamp_value(param, value); + } break; + + case 33: + { + param = VALETON_PARAM_PRE_PARAM_3; + + // scale the value to the range + value = midi_helper_scale_midi_to_float(param, midi_value); + value = valeton_params_clamp_value(param, value); + } break; + + case 34: + { + param = VALETON_PARAM_PRE_PARAM_4; + + // scale the value to the range + value = midi_helper_scale_midi_to_float(param, midi_value); + value = valeton_params_clamp_value(param, value); + } break; + + case 35: + { + param = VALETON_PARAM_PRE_PARAM_5; + + // scale the value to the range + value = midi_helper_scale_midi_to_float(param, midi_value); + value = valeton_params_clamp_value(param, value); + } break; + + case 36: + { + param = VALETON_PARAM_PRE_PARAM_6; + + // scale the value to the range + value = midi_helper_scale_midi_to_float(param, midi_value); + value = valeton_params_clamp_value(param, value); + } break; + + case 37: + { + param = VALETON_PARAM_PRE_PARAM_7; + + // scale the value to the range + value = midi_helper_scale_midi_to_float(param, midi_value); + value = valeton_params_clamp_value(param, value); + } break; + + case 38: + { + param = VALETON_PARAM_DIST_PARAM_0; + + // scale the value to the range + value = midi_helper_scale_midi_to_float(param, midi_value); + value = valeton_params_clamp_value(param, value); + } break; + + case 39: + { + param = VALETON_PARAM_DIST_PARAM_1; + + // scale the value to the range + value = midi_helper_scale_midi_to_float(param, midi_value); + value = valeton_params_clamp_value(param, value); + } break; + + case 40: + { + param = VALETON_PARAM_DIST_PARAM_2; + + // scale the value to the range + value = midi_helper_scale_midi_to_float(param, midi_value); + value = valeton_params_clamp_value(param, value); + } break; + + case 41: + { + param = VALETON_PARAM_DIST_PARAM_3; + + // scale the value to the range + value = midi_helper_scale_midi_to_float(param, midi_value); + value = valeton_params_clamp_value(param, value); + } break; + + case 42: + { + param = VALETON_PARAM_DIST_PARAM_4; + + // scale the value to the range + value = midi_helper_scale_midi_to_float(param, midi_value); + value = valeton_params_clamp_value(param, value); + } break; + + case 43: + { + param = VALETON_PARAM_DIST_PARAM_5; + + // scale the value to the range + value = midi_helper_scale_midi_to_float(param, midi_value); + value = valeton_params_clamp_value(param, value); + } break; + + case 44: + { + param = VALETON_PARAM_DIST_PARAM_6; + + // scale the value to the range + value = midi_helper_scale_midi_to_float(param, midi_value); + value = valeton_params_clamp_value(param, value); + } break; + + case 45: + { + param = VALETON_PARAM_DIST_PARAM_7; + + // scale the value to the range + value = midi_helper_scale_midi_to_float(param, midi_value); + value = valeton_params_clamp_value(param, value); + } break; + + case 46: + { + param = VALETON_PARAM_AMP_PARAM_0; + + // scale the value to the range + value = midi_helper_scale_midi_to_float(param, midi_value); + value = valeton_params_clamp_value(param, value); + } break; + + case 47: + { + param = VALETON_PARAM_AMP_PARAM_1; + + // scale the value to the range + value = midi_helper_scale_midi_to_float(param, midi_value); + value = valeton_params_clamp_value(param, value); + } break; + + case 48: + { + param = VALETON_PARAM_AMP_PARAM_2; + + // scale the value to the range + value = midi_helper_scale_midi_to_float(param, midi_value); + value = valeton_params_clamp_value(param, value); + } break; + + case 49: + { + param = VALETON_PARAM_AMP_PARAM_3; + + // scale the value to the range + value = midi_helper_scale_midi_to_float(param, midi_value); + value = valeton_params_clamp_value(param, value); + } break; + + case 50: + { + param = VALETON_PARAM_AMP_PARAM_4; + + // scale the value to the range + value = midi_helper_scale_midi_to_float(param, midi_value); + value = valeton_params_clamp_value(param, value); + } break; + + case 51: + { + param = VALETON_PARAM_AMP_PARAM_5; + + // scale the value to the range + value = midi_helper_scale_midi_to_float(param, midi_value); + value = valeton_params_clamp_value(param, value); + } break; + + case 52: + { + param = VALETON_PARAM_AMP_PARAM_6; + + // scale the value to the range + value = midi_helper_scale_midi_to_float(param, midi_value); + value = valeton_params_clamp_value(param, value); + } break; + + case 53: + { + param = VALETON_PARAM_AMP_PARAM_7; + + // scale the value to the range + value = midi_helper_scale_midi_to_float(param, midi_value); + value = valeton_params_clamp_value(param, value); + } break; + + case 54: + { + param = VALETON_PARAM_CAB_PARAM_0; + + // scale the value to the range + value = midi_helper_scale_midi_to_float(param, midi_value); + value = valeton_params_clamp_value(param, value); + } break; + + case 55: + { + param = VALETON_PARAM_CAB_PARAM_1; + + // scale the value to the range + value = midi_helper_scale_midi_to_float(param, midi_value); + value = valeton_params_clamp_value(param, value); + } break; + + case 56: + { + param = VALETON_PARAM_CAB_PARAM_2; + + // scale the value to the range + value = midi_helper_scale_midi_to_float(param, midi_value); + value = valeton_params_clamp_value(param, value); + } break; + + case 57: + { + param = VALETON_PARAM_CAB_PARAM_3; + + // scale the value to the range + value = midi_helper_scale_midi_to_float(param, midi_value); + value = valeton_params_clamp_value(param, value); + } break; + + case 58: + { + param = VALETON_PARAM_CAB_PARAM_4; + + // scale the value to the range + value = midi_helper_scale_midi_to_float(param, midi_value); + value = valeton_params_clamp_value(param, value); + } break; + + case 59: + { + param = VALETON_PARAM_CAB_PARAM_5; + + // scale the value to the range + value = midi_helper_scale_midi_to_float(param, midi_value); + value = valeton_params_clamp_value(param, value); + } break; + + case 60: + { + param = VALETON_PARAM_CAB_PARAM_6; + + // scale the value to the range + value = midi_helper_scale_midi_to_float(param, midi_value); + value = valeton_params_clamp_value(param, value); + } break; + + case 61: + { + param = VALETON_PARAM_CAB_PARAM_7; + + // scale the value to the range + value = midi_helper_scale_midi_to_float(param, midi_value); + value = valeton_params_clamp_value(param, value); + } break; + + case 62: + { + param = VALETON_PARAM_EQ_PARAM_0; + + // scale the value to the range + value = midi_helper_scale_midi_to_float(param, midi_value); + value = valeton_params_clamp_value(param, value); + } break; + + case 63: + { + param = VALETON_PARAM_EQ_PARAM_1; + + // scale the value to the range + value = midi_helper_scale_midi_to_float(param, midi_value); + value = valeton_params_clamp_value(param, value); + } break; + + case 64: + { + param = VALETON_PARAM_EQ_PARAM_2; + + // scale the value to the range + value = midi_helper_scale_midi_to_float(param, midi_value); + value = valeton_params_clamp_value(param, value); + } break; + + case 65: + { + param = VALETON_PARAM_EQ_PARAM_3; + + // scale the value to the range + value = midi_helper_scale_midi_to_float(param, midi_value); + value = valeton_params_clamp_value(param, value); + } break; + + case 66: + { + param = VALETON_PARAM_EQ_PARAM_4; + + // scale the value to the range + value = midi_helper_scale_midi_to_float(param, midi_value); + value = valeton_params_clamp_value(param, value); + } break; + + case 67: + { + param = VALETON_PARAM_EQ_PARAM_5; + + // scale the value to the range + value = midi_helper_scale_midi_to_float(param, midi_value); + value = valeton_params_clamp_value(param, value); + } break; + + case 68: + { + param = VALETON_PARAM_EQ_PARAM_6; + + // scale the value to the range + value = midi_helper_scale_midi_to_float(param, midi_value); + value = valeton_params_clamp_value(param, value); + } break; + + case 69: + { + param = VALETON_PARAM_EQ_PARAM_7; + + // scale the value to the range + value = midi_helper_scale_midi_to_float(param, midi_value); + value = valeton_params_clamp_value(param, value); + } break; + + case 70: + { + param = VALETON_PARAM_MOD_PARAM_0; + + // scale the value to the range + value = midi_helper_scale_midi_to_float(param, midi_value); + value = valeton_params_clamp_value(param, value); + } break; + + case 71: + { + param = VALETON_PARAM_MOD_PARAM_1; + + // scale the value to the range + value = midi_helper_scale_midi_to_float(param, midi_value); + value = valeton_params_clamp_value(param, value); + } break; + + case 72: + { + param = VALETON_PARAM_MOD_PARAM_2; + + // scale the value to the range + value = midi_helper_scale_midi_to_float(param, midi_value); + value = valeton_params_clamp_value(param, value); + } break; + + case 73: + { + param = VALETON_PARAM_MOD_PARAM_3; + + // scale the value to the range + value = midi_helper_scale_midi_to_float(param, midi_value); + value = valeton_params_clamp_value(param, value); + } break; + + case 74: + { + param = VALETON_PARAM_MOD_PARAM_4; + + // scale the value to the range + value = midi_helper_scale_midi_to_float(param, midi_value); + value = valeton_params_clamp_value(param, value); + } break; + + case 75: + { + param = VALETON_PARAM_MOD_PARAM_5; + + // scale the value to the range + value = midi_helper_scale_midi_to_float(param, midi_value); + value = valeton_params_clamp_value(param, value); + } break; + + case 76: + { + param = VALETON_PARAM_MOD_PARAM_6; + + // scale the value to the range + value = midi_helper_scale_midi_to_float(param, midi_value); + value = valeton_params_clamp_value(param, value); + } break; + + case 77: + { + param = VALETON_PARAM_MOD_PARAM_7; + + // scale the value to the range + value = midi_helper_scale_midi_to_float(param, midi_value); + value = valeton_params_clamp_value(param, value); + } break; + + case 78: + { + param = VALETON_PARAM_DLY_PARAM_0; + + // scale the value to the range + value = midi_helper_scale_midi_to_float(param, midi_value); + value = valeton_params_clamp_value(param, value); + } break; + + case 79: + { + param = VALETON_PARAM_DLY_PARAM_1; + + // scale the value to the range + value = midi_helper_scale_midi_to_float(param, midi_value); + value = valeton_params_clamp_value(param, value); + } break; + + case 80: + { + param = VALETON_PARAM_DLY_PARAM_2; + + // scale the value to the range + value = midi_helper_scale_midi_to_float(param, midi_value); + value = valeton_params_clamp_value(param, value); + } break; + + case 81: + { + param = VALETON_PARAM_DLY_PARAM_3; + + // scale the value to the range + value = midi_helper_scale_midi_to_float(param, midi_value); + value = valeton_params_clamp_value(param, value); + } break; + + case 82: + { + param = VALETON_PARAM_DLY_PARAM_4; + + // scale the value to the range + value = midi_helper_scale_midi_to_float(param, midi_value); + value = valeton_params_clamp_value(param, value); + } break; + + case 83: + { + param = VALETON_PARAM_DLY_PARAM_5; + + // scale the value to the range + value = midi_helper_scale_midi_to_float(param, midi_value); + value = valeton_params_clamp_value(param, value); + } break; + + case 84: + { + param = VALETON_PARAM_DLY_PARAM_6; + + // scale the value to the range + value = midi_helper_scale_midi_to_float(param, midi_value); + value = valeton_params_clamp_value(param, value); + } break; + + case 85: + { + param = VALETON_PARAM_DLY_PARAM_7; + + // scale the value to the range + value = midi_helper_scale_midi_to_float(param, midi_value); + value = valeton_params_clamp_value(param, value); + } break; + + case 86: + { + param = VALETON_PARAM_RVB_PARAM_0; + + // scale the value to the range + value = midi_helper_scale_midi_to_float(param, midi_value); + value = valeton_params_clamp_value(param, value); + } break; + + case 87: + { + param = VALETON_PARAM_RVB_PARAM_1; + + // scale the value to the range + value = midi_helper_scale_midi_to_float(param, midi_value); + value = valeton_params_clamp_value(param, value); + } break; + + case 88: + { + param = VALETON_PARAM_RVB_PARAM_2; + + // scale the value to the range + value = midi_helper_scale_midi_to_float(param, midi_value); + value = valeton_params_clamp_value(param, value); + } break; + + case 89: + { + param = VALETON_PARAM_RVB_PARAM_3; + + // scale the value to the range + value = midi_helper_scale_midi_to_float(param, midi_value); + value = valeton_params_clamp_value(param, value); + } break; + + case 90: + { + param = VALETON_PARAM_RVB_PARAM_4; + + // scale the value to the range + value = midi_helper_scale_midi_to_float(param, midi_value); + value = valeton_params_clamp_value(param, value); + } break; + + case 91: + { + param = VALETON_PARAM_RVB_PARAM_5; + + // scale the value to the range + value = midi_helper_scale_midi_to_float(param, midi_value); + value = valeton_params_clamp_value(param, value); + } break; + + case 92: + { + param = VALETON_PARAM_RVB_PARAM_6; + + // scale the value to the range + value = midi_helper_scale_midi_to_float(param, midi_value); + value = valeton_params_clamp_value(param, value); + } break; + + case 93: + { + param = VALETON_PARAM_RVB_PARAM_7; + + // scale the value to the range + value = midi_helper_scale_midi_to_float(param, midi_value); + value = valeton_params_clamp_value(param, value); + } break; + + case 94: + { + param = VALETON_PARAM_NS_PARAM_0; + + // scale the value to the range + value = midi_helper_scale_midi_to_float(param, midi_value); + value = valeton_params_clamp_value(param, value); + } break; + + case 95: + { + param = VALETON_PARAM_NS_PARAM_1; + + // scale the value to the range + value = midi_helper_scale_midi_to_float(param, midi_value); + value = valeton_params_clamp_value(param, value); + } break; + + case 96: + { + param = VALETON_PARAM_NS_PARAM_2; + + // scale the value to the range + value = midi_helper_scale_midi_to_float(param, midi_value); + value = valeton_params_clamp_value(param, value); + } break; + + case 97: + { + param = VALETON_PARAM_NS_PARAM_3; + + // scale the value to the range + value = midi_helper_scale_midi_to_float(param, midi_value); + value = valeton_params_clamp_value(param, value); + } break; + + case 98: + { + param = VALETON_PARAM_NS_PARAM_4; + + // scale the value to the range + value = midi_helper_scale_midi_to_float(param, midi_value); + value = valeton_params_clamp_value(param, value); + } break; + + case 99: + { + param = VALETON_PARAM_NS_PARAM_5; + + // scale the value to the range + value = midi_helper_scale_midi_to_float(param, midi_value); + value = valeton_params_clamp_value(param, value); + } break; + + case 100: + { + param = VALETON_PARAM_NS_PARAM_6; + + // scale the value to the range + value = midi_helper_scale_midi_to_float(param, midi_value); + value = valeton_params_clamp_value(param, value); + } break; + + case 101: + { + param = VALETON_PARAM_NS_PARAM_7; + + // scale the value to the range + value = midi_helper_scale_midi_to_float(param, midi_value); + value = valeton_params_clamp_value(param, value); + } break; + + // gap for expansion + + case 116: + { + //preset down + control_request_preset_down(); + + // no param change needed + return ESP_OK; + } break; + + case 117: + { + //preset up + control_request_preset_up(); + + // no param change needed + return ESP_OK; + } break; + + case 118: + { + // bpm + param = VALETON_GLOBAL_BPM; + value = midi_helper_scale_midi_to_float(param, midi_value); + value = valeton_params_clamp_value(param, value); + } break; + + case 119: + { + //tap tempo + control_trigger_tap_tempo(); + + // no param change needed + return ESP_OK; + } break; + + case 120: + { + // input trim + param = VALETON_GLOBAL_INPUT_TRIM; + value = midi_helper_scale_midi_to_float(param, midi_value); + value = valeton_params_clamp_value(param, value); + } break; + + case 121: + { + param = VALETON_GLOBAL_CABSIM_BYPASS; + + // check for toggling + if (!midi_helper_valeton_boolean_midi_toggle(param, midi_value, &value)) + { + value = midi_helper_boolean_midi_to_float(midi_value); + value = valeton_params_clamp_value(param, value); + } + } break; + + case 122: + { + param = VALETON_GLOBAL_MASTER_VOLUME; + value = midi_helper_scale_midi_to_float(param, midi_value); + value = valeton_params_clamp_value(param, value); + } break; + + case 123: + { + param = VALETON_GLOBAL_RECORD_LEVEL; + value = midi_helper_scale_midi_to_float(param, midi_value); + value = valeton_params_clamp_value(param, value); + } break; + + case 124: + { + param = VALETON_GLOBAL_MONITOR_LEVEL; + value = midi_helper_scale_midi_to_float(param, midi_value); + value = valeton_params_clamp_value(param, value); + } break; + + case 125: + { + param = VALETON_GLOBAL_BT_LEVEL; + value = midi_helper_scale_midi_to_float(param, midi_value); + value = valeton_params_clamp_value(param, value); + } break; + + //126 + + case 127: + { + // set preset + if (midi_value >= (usb_get_max_presets_for_connected_modeller())) + { + ESP_LOGW(TAG, "Unsupported Midi CC 127 value %d", midi_value); + } + else + { + control_request_preset_index(midi_value); + } + + // no param change needed + return ESP_OK; + } break; + + default: + { + ESP_LOGW(TAG, "Unsupported Midi change number %d", change_num); + return ESP_FAIL; + } break; + } + + // modify the parameter + usb_modify_parameter(param, value); + + return ESP_OK; +} + +/**************************************************************************** +* NAME: +* DESCRIPTION: +* PARAMETERS: +* RETURN: +* NOTES: +*****************************************************************************/ +uint16_t midi_helper_valeton_get_param_for_change_num(uint8_t change_num, uint8_t midi_value_1, uint8_t midi_value_2) +{ + uint16_t param = TONEX_UNKNOWN; + + switch (change_num) + { + case 0: + { + param = VALETON_PARAM_NR_ENABLE; + } break; + + case 1: + { + param = VALETON_PARAM_PRE_ENABLE; + } break; + + case 2: + { + param = VALETON_PARAM_DIST_ENABLE; + } break; + + case 3: + { + param = VALETON_PARAM_AMP_ENABLE; + } break; + + case 4: + { + param = VALETON_PARAM_CAB_ENABLE; + } break; + + case 5: + { + param = VALETON_PARAM_EQ_ENABLE; + } break; + + case 6: + { + param = VALETON_PARAM_MOD_ENABLE; + } break; + + case 7: + { + param = VALETON_PARAM_DLY_ENABLE; + } break; + + case 8: + { + param = VALETON_PARAM_RVB_ENABLE; + } break; + + case 9: + { + param = VALETON_PARAM_NS_ENABLE; + } break; + + case 10: + { + param = VALETON_PARAM_NR_TYPE; + } break; + + case 11: + { + param = VALETON_PARAM_PRE_TYPE; + } break; + + case 12: + { + param = VALETON_PARAM_DIST_TYPE; + } break; + + case 13: + { + param = VALETON_PARAM_AMP_TYPE; + } break; + + case 14: + { + param = VALETON_PARAM_CAB_TYPE; + } break; + + case 15: + { + param = VALETON_PARAM_EQ_TYPE; + } break; + + case 16: + { + param = VALETON_PARAM_MOD_TYPE; + } break; + + case 17: + { + param = VALETON_PARAM_DLY_TYPE; + } break; + + case 18: + { + param = VALETON_PARAM_RVB_TYPE; + } break; + + case 19: + { + param = VALETON_PARAM_NS_TYPE; + } break; + + case 20: + { + param = VALETON_PARAM_PATCH_VOLUME; + } break; + + case 21: + { + param = VALETON_PARAM_NR_PARAM_0; + } break; + + case 23: + { + param = VALETON_PARAM_NR_PARAM_1; + } break; + + case 24: + { + param = VALETON_PARAM_NR_PARAM_2; + } break; + + case 25: + { + param = VALETON_PARAM_NR_PARAM_3; + } break; + + case 26: + { + param = VALETON_PARAM_NR_PARAM_4; + } break; + + case 27: + { + param = VALETON_PARAM_NR_PARAM_5; + } break; + + case 28: + { + param = VALETON_PARAM_NR_PARAM_6; + } break; + + case 29: + { + param = VALETON_PARAM_NR_PARAM_7; + } break; + + case 30: + { + param = VALETON_PARAM_PRE_PARAM_0; + } break; + + case 31: + { + param = VALETON_PARAM_PRE_PARAM_1; + } break; + + case 32: + { + param = VALETON_PARAM_PRE_PARAM_2; + } break; + + case 33: + { + param = VALETON_PARAM_PRE_PARAM_3; + } break; + + case 34: + { + param = VALETON_PARAM_PRE_PARAM_4; + } break; + + case 35: + { + param = VALETON_PARAM_PRE_PARAM_5; + } break; + + case 36: + { + param = VALETON_PARAM_PRE_PARAM_6; + } break; + + case 37: + { + param = VALETON_PARAM_PRE_PARAM_7; + } break; + + case 38: + { + param = VALETON_PARAM_DIST_PARAM_0; + } break; + + case 39: + { + param = VALETON_PARAM_DIST_PARAM_1; + } break; + + case 40: + { + param = VALETON_PARAM_DIST_PARAM_2; + } break; + + case 41: + { + param = VALETON_PARAM_DIST_PARAM_3; + } break; + + case 42: + { + param = VALETON_PARAM_DIST_PARAM_4; + } break; + + case 43: + { + param = VALETON_PARAM_DIST_PARAM_5; + } break; + + case 44: + { + param = VALETON_PARAM_DIST_PARAM_6; + } break; + + case 45: + { + param = VALETON_PARAM_DIST_PARAM_7; + } break; + + case 46: + { + param = VALETON_PARAM_AMP_PARAM_0; + } break; + + case 47: + { + param = VALETON_PARAM_AMP_PARAM_1; + } break; + + case 48: + { + param = VALETON_PARAM_AMP_PARAM_2; + } break; + + case 49: + { + param = VALETON_PARAM_AMP_PARAM_3; + } break; + + case 50: + { + param = VALETON_PARAM_AMP_PARAM_4; + } break; + + case 51: + { + param = VALETON_PARAM_AMP_PARAM_5; + } break; + + case 52: + { + param = VALETON_PARAM_AMP_PARAM_6; + } break; + + case 53: + { + param = VALETON_PARAM_AMP_PARAM_7; + } break; + + case 54: + { + param = VALETON_PARAM_CAB_PARAM_0; + } break; + + case 55: + { + param = VALETON_PARAM_CAB_PARAM_1; + } break; + + case 56: + { + param = VALETON_PARAM_CAB_PARAM_2; + } break; + + case 57: + { + param = VALETON_PARAM_CAB_PARAM_3; + } break; + + case 58: + { + param = VALETON_PARAM_CAB_PARAM_4; + } break; + + case 59: + { + param = VALETON_PARAM_CAB_PARAM_5; + } break; + + case 60: + { + param = VALETON_PARAM_CAB_PARAM_6; + } break; + + case 61: + { + param = VALETON_PARAM_CAB_PARAM_7; + } break; + + case 62: + { + param = VALETON_PARAM_EQ_PARAM_0; + } break; + + case 63: + { + param = VALETON_PARAM_EQ_PARAM_1; + } break; + + case 64: + { + param = VALETON_PARAM_EQ_PARAM_2; + } break; + + case 65: + { + param = VALETON_PARAM_EQ_PARAM_3; + } break; + + case 66: + { + param = VALETON_PARAM_EQ_PARAM_4; + } break; + + case 67: + { + param = VALETON_PARAM_EQ_PARAM_5; + } break; + + case 68: + { + param = VALETON_PARAM_EQ_PARAM_6; + } break; + + case 69: + { + param = VALETON_PARAM_EQ_PARAM_7; + } break; + + case 70: + { + param = VALETON_PARAM_MOD_PARAM_0; + } break; + + case 71: + { + param = VALETON_PARAM_MOD_PARAM_1; + } break; + + case 72: + { + param = VALETON_PARAM_MOD_PARAM_2; + } break; + + case 73: + { + param = VALETON_PARAM_MOD_PARAM_3; + } break; + + case 74: + { + param = VALETON_PARAM_MOD_PARAM_4; + } break; + + case 75: + { + param = VALETON_PARAM_MOD_PARAM_5; + } break; + + case 76: + { + param = VALETON_PARAM_MOD_PARAM_6; + } break; + + case 77: + { + param = VALETON_PARAM_MOD_PARAM_7; + } break; + + case 78: + { + param = VALETON_PARAM_DLY_PARAM_0; + } break; + + case 79: + { + param = VALETON_PARAM_DLY_PARAM_1; + } break; + + case 80: + { + param = VALETON_PARAM_DLY_PARAM_2; + } break; + + case 81: + { + param = VALETON_PARAM_DLY_PARAM_3; + } break; + + case 82: + { + param = VALETON_PARAM_DLY_PARAM_4; + } break; + + case 83: + { + param = VALETON_PARAM_DLY_PARAM_5; + } break; + + case 84: + { + param = VALETON_PARAM_DLY_PARAM_6; + } break; + + case 85: + { + param = VALETON_PARAM_DLY_PARAM_7; + } break; + + case 86: + { + param = VALETON_PARAM_RVB_PARAM_0; + } break; + + case 87: + { + param = VALETON_PARAM_RVB_PARAM_1; + } break; + + case 88: + { + param = VALETON_PARAM_RVB_PARAM_2; + } break; + + case 89: + { + param = VALETON_PARAM_RVB_PARAM_3; + } break; + + case 90: + { + param = VALETON_PARAM_RVB_PARAM_4; + } break; + + case 91: + { + param = VALETON_PARAM_RVB_PARAM_5; + } break; + + case 92: + { + param = VALETON_PARAM_RVB_PARAM_6; + } break; + + case 93: + { + param = VALETON_PARAM_RVB_PARAM_7; + } break; + + case 94: + { + param = VALETON_PARAM_NS_PARAM_0; + } break; + + case 95: + { + param = VALETON_PARAM_NS_PARAM_1; + } break; + + case 96: + { + param = VALETON_PARAM_NS_PARAM_2; + } break; + + case 97: + { + param = VALETON_PARAM_NS_PARAM_3; + } break; + + case 98: + { + param = VALETON_PARAM_NS_PARAM_4; + } break; + + case 99: + { + param = VALETON_PARAM_NS_PARAM_5; + } break; + + case 100: + { + param = VALETON_PARAM_NS_PARAM_6; + } break; + + case 101: + { + param = VALETON_PARAM_NS_PARAM_7; + } break; + + // gap for expansion + + case 116: + { + // preset down + control_request_preset_down(); + + // don't set any return param, as this one is already handled and its not a parameter + } break; + + case 117: + { + // preset up + control_request_preset_up(); + + // don't set any return param, as this one is already handled and its not a parameter + } break; + + case 118: + { + // bpm + param = VALETON_GLOBAL_BPM; + } break; + + case 119: + { + // BPM + param = VALETON_GLOBAL_BPM; + } break; + + case 120: + { + // input trim + param = VALETON_GLOBAL_INPUT_TRIM; + } break; + + case 121: + { + param = VALETON_GLOBAL_CABSIM_BYPASS; + } break; + + case 122: + { + param = VALETON_GLOBAL_MASTER_VOLUME; + } break; + + case 123: + { + param = VALETON_GLOBAL_RECORD_LEVEL; + } break; + + case 124: + { + param = VALETON_GLOBAL_MONITOR_LEVEL; + } break; + + case 125: + { + param = VALETON_GLOBAL_BT_LEVEL; + } break; + + //126 + + case 127: + { + uint32_t new_preset; + uint32_t current_preset = control_get_current_preset_index(); + + if (current_preset == midi_value_1) + { + // select midi value 2 + new_preset = midi_value_2; + } + else + { + // select midi value 1 + new_preset = midi_value_1; + } + + if (new_preset >= (usb_get_max_presets_for_connected_modeller())) + { + ESP_LOGW(TAG, "Unsupported Midi CC 127 value %d", new_preset); + } + else + { + control_request_preset_index(new_preset); + } + + // don't set any return param, as this one is already handled and its not a parameter + } + } + + return param; +} diff --git a/source/main/midi_helper_valeton.h b/source/main/midi_helper_valeton.h new file mode 100644 index 00000000..47b17d40 --- /dev/null +++ b/source/main/midi_helper_valeton.h @@ -0,0 +1,21 @@ +/* + Copyright (C) 2025 Greg Smith + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + +*/ + +#pragma once + +esp_err_t midi_helper_valeton_adjust_param_via_midi(uint8_t change_num, uint8_t midi_value); +uint16_t midi_helper_valeton_get_param_for_change_num(uint8_t change_num, uint8_t midi_value_1, uint8_t midi_value_2); diff --git a/source/main/platform_pirate_max35.c b/source/main/platform_pirate_max35.c new file mode 100644 index 00000000..99177619 --- /dev/null +++ b/source/main/platform_pirate_max35.c @@ -0,0 +1,461 @@ +/* + Copyright (C) 2025 Greg Smith + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + +*/ + +#include +#include "sdkconfig.h" +#include +#include "freertos/FreeRTOS.h" +#include "freertos/task.h" +#include "freertos/semphr.h" +#include "esp_timer.h" +#include "esp_lcd_panel_ops.h" +#include "esp_lcd_panel_rgb.h" +#include "driver/gpio.h" +#include "esp_err.h" +#include "esp_system.h" +#include "esp_wifi.h" +#include "esp_event.h" +#include "esp_log.h" +#include "nvs_flash.h" +#include "driver/uart.h" +#include "driver/gpio.h" +#include "driver/ledc.h" +#include "driver/spi_master.h" +#include "lvgl.h" +#include "demos/lv_demos.h" +#include "esp_lcd_panel_io.h" +#include "esp_lcd_panel_vendor.h" +#include "esp_lcd_panel_ops.h" +#include "esp_vfs.h" +#include "esp_vfs_fat.h" +#include "esp_ota_ops.h" +#include "sys/param.h" +#include "esp_wifi.h" +#include "esp_log.h" +#include "esp_mac.h" +#include "esp_crc.h" +#include "esp_now.h" +#include "driver/i2c.h" +#include "soc/lldesc.h" +#include "esp_lcd_touch_ft6336.h" +#include "esp_lcd_touch_cst816s.h" +#include "esp_lcd_st7796.h" +#include "esp_io_expander_tca9554.h" +#include "esp_intr_alloc.h" +#include "main.h" +#if CONFIG_TONEX_CONTROLLER_HAS_DISPLAY + #include "ui.h" +#endif +#include "usb/usb_host.h" +#include "usb/cdc_acm_host.h" +#include "usb_comms.h" +#include "usb_tonex_common.h" +#include "usb_tonex_one.h" +#include "usb_tonex.h" +#include "display.h" +#include "CH422G.h" +#include "control.h" +#include "task_priorities.h" +#include "midi_control.h" +#include "LP5562.h" +#include "tonex_params.h" + +#if CONFIG_TONEX_CONTROLLER_HARDWARE_PLATFORM_PIRATE_MIDI_POLAR_MAX_V2 +// LCD: ST7796, touch: GT911 + +static const char *TAG = "platform_piratemax35"; + +// LCD panel config +#define POLAR_MAX_35_LCD_H_RES (480) +#define POLAR_MAX_35_LCD_V_RES (320) + +/* LCD settings */ +#define POLAR_MAX_35_LCD_SPI_NUM (SPI2_HOST) +#define POLAR_MAX_35_LCD_PIXEL_CLK_HZ (80 * 1000 * 1000) +#define POLAR_MAX_35_LCD_CMD_BITS (8) +#define POLAR_MAX_35_LCD_PARAM_BITS (8) +#define POLAR_MAX_35_LCD_COLOR_SPACE (LCD_RGB_ELEMENT_ORDER_RGB) +#define POLAR_MAX_35_LCD_BITS_PER_PIXEL (16) +#define POLAR_MAX_35_LCD_DRAW_BUFF_DOUBLE (1) +#define POLAR_MAX_35_LCD_DRAW_BUFF_HEIGHT (50) +#define POLAR_MAX_35_LCD_BL_ON_LEVEL (0) + +#define BUF_SIZE (1024) +#define I2C_MASTER_TIMEOUT_MS 1000 + +static SemaphoreHandle_t I2CMutexHandle; +static lv_disp_draw_buf_t disp_buf; // contains internal graphic buffer(s) called draw buffer(s) +static lv_disp_drv_t* disp_drv; // contains callback functions +static esp_lcd_panel_io_handle_t lcd_io = NULL; +static esp_lcd_panel_handle_t lcd_panel = NULL; +static esp_lcd_touch_handle_t tp = NULL; +static esp_lcd_panel_io_handle_t tp_io_handle = NULL; +static lv_indev_drv_t indev_drv; // Input device driver (Touch) +static esp_io_expander_handle_t expander_handle = NULL; + +// below from Waveshare sample +static const st7796_lcd_init_cmd_t lcd_init_cmds[] = +{ +// {cmd, { data }, data_size, delay_ms} + /* Power contorl B, power control = 0, DC_ENA = 1 */ + {0x11, (uint8_t []){ 0x00 }, 0, 120}, + + // {0x36, (uint8_t []){ 0x08 }, 1, 0}, + + {0x3A, (uint8_t []){ 0x05 }, 1, 0}, + {0xF0, (uint8_t []){ 0xC3 }, 1, 0}, + {0xF0, (uint8_t []){ 0x96 }, 1, 0}, + {0xB4, (uint8_t []){ 0x01 }, 1, 0}, + {0xB7, (uint8_t []){ 0xC6 }, 1, 0}, + {0xC0, (uint8_t []){ 0x80, 0x45 }, 2, 0}, + {0xC1, (uint8_t []){ 0x13 }, 1, 0}, + {0xC2, (uint8_t []){ 0xA7 }, 1, 0}, + {0xC5, (uint8_t []){ 0x0A }, 1, 0}, + {0xE8, (uint8_t []){ 0x40, 0x8A, 0x00, 0x00, 0x29, 0x19, 0xA5, 0x33}, 8, 0}, + {0xE0, (uint8_t []){ 0xD0, 0x08, 0x0F, 0x06, 0x06, 0x33, 0x30, 0x33, 0x47, 0x17, 0x13, 0x13, 0x2B, 0x31}, 14, 0}, + {0xE1, (uint8_t []){ 0xD0, 0x0A, 0x11, 0x0B, 0x09, 0x07, 0x2F, 0x33, 0x47, 0x38, 0x15, 0x16, 0x2C, 0x32},14, 0}, + {0xF0, (uint8_t []){ 0x3C }, 1, 0}, + {0xF0, (uint8_t []){ 0x69 }, 1, 120}, + {0x21, (uint8_t []){ 0x00 }, 0, 0}, + {0x29, (uint8_t []){ 0x00 }, 0, 0}, +}; + +/**************************************************************************** +* NAME: +* DESCRIPTION: +* PARAMETERS: +* RETURN: +* NOTES: +*****************************************************************************/ +__attribute__((unused)) void platform_adjust_touch_coords(lv_coord_t* x, lv_coord_t* y) +{ + // nothing needed +} + +/**************************************************************************** +* NAME: +* DESCRIPTION: +* PARAMETERS: +* RETURN: +* NOTES: +*****************************************************************************/ +__attribute__((unused)) void platform_adjust_display_flush_area(lv_area_t *area) +{ + // nothing needed} +} + +/**************************************************************************** +* NAME: +* DESCRIPTION: +* PARAMETERS: +* RETURN: +* NOTES: +*****************************************************************************/ +__attribute__((unused)) void platform_get_icon_coords(int16_t* dest, uint8_t max_entries) +{ + if (max_entries <= 8) + { + dest[0] = -168; + dest[1] = -126; + dest[2] = -84; + dest[3] = -42; + dest[4] = 0; + dest[5] = 42; + dest[6] = 84; + dest[7] = 126; + } +} + +/**************************************************************************** +* NAME: +* DESCRIPTION: +* PARAMETERS: +* RETURN: +* NOTES: +*****************************************************************************/ +__attribute__((unused)) const lv_font_t* platform_get_toast_font(void) +{ + return &lv_font_montserrat_30; +} + +/**************************************************************************** +* NAME: +* DESCRIPTION: +* PARAMETERS: +* RETURN: +* NOTES: +*****************************************************************************/ +__attribute__((unused)) uint16_t platform_get_toast_padding(void) +{ + return 25; +} + +/**************************************************************************** +* NAME: +* DESCRIPTION: +* PARAMETERS: +* RETURN: +* NOTES: +*****************************************************************************/ +__attribute__((unused)) lv_dir_t platform_adjust_gesture(lv_dir_t gesture) +{ + // nothing special needed + return gesture; +} + +/**************************************************************************** +* NAME: +* DESCRIPTION: +* PARAMETERS: +* RETURN: +* NOTES: +*****************************************************************************/ +void platform_init(i2c_master_bus_handle_t bus_handle, SemaphoreHandle_t I2CMutex, lv_disp_drv_t* pdisp_drv) +{ + __attribute__((unused)) esp_err_t ret = ESP_OK; + uint8_t touch_ok = 0; + I2CMutexHandle = I2CMutex; + gpio_config_t gpio_config_struct; + disp_drv = pdisp_drv; + + ESP_LOGI(TAG, "Platform Init"); + + //todo + // LED_OUTPUT_GPIO_NUM + + /* LCD initialization */ + ESP_LOGD(TAG, "Initialize SPI bus"); + const spi_bus_config_t buscfg = { + .sclk_io_num = POLAR_MAX_35_LCD_GPIO_SCLK, + .mosi_io_num = POLAR_MAX_35_LCD_GPIO_MOSI, + .miso_io_num = GPIO_NUM_NC, + .quadwp_io_num = GPIO_NUM_NC, + .quadhd_io_num = GPIO_NUM_NC, + // note here: this value needs to be: POLAR_MAX_35_LCD_H_RES * POLAR_MAX_35_LCD_DRAW_BUFF_HEIGHT * sizeof(uint16_t) + // however, the ESP framework uses multiples of 4092 for DMA (LLDESC_MAX_NUM_PER_DESC). + // this theoretical number is 5.8 times the DMA size, which gets rounded down and ends up too small. + // so instead, manually setting it to a little larger + .max_transfer_sz = 6 * LLDESC_MAX_NUM_PER_DESC, + }; + + if (spi_bus_initialize(POLAR_MAX_35_LCD_SPI_NUM, &buscfg, SPI_DMA_CH_AUTO) != ESP_OK) + { + ESP_LOGE(TAG, "Platform Init spi_bus_initialize() failed"); + } + + ESP_LOGD(TAG, "Install panel IO"); + const esp_lcd_panel_io_spi_config_t io_config = { + .dc_gpio_num = POLAR_MAX_35_LCD_GPIO_DC, + .cs_gpio_num = POLAR_MAX_35_LCD_GPIO_CS, + .pclk_hz = POLAR_MAX_35_LCD_PIXEL_CLK_HZ, + .lcd_cmd_bits = POLAR_MAX_35_LCD_CMD_BITS, + .lcd_param_bits = POLAR_MAX_35_LCD_PARAM_BITS, + .spi_mode = 0, + .trans_queue_depth = 5, + .on_color_trans_done = NULL, + .user_ctx = disp_drv, + }; + + if (esp_lcd_new_panel_io_spi((esp_lcd_spi_bus_handle_t)POLAR_MAX_35_LCD_SPI_NUM, &io_config, &lcd_io) != ESP_OK) + { + ESP_LOGE(TAG, "Platform Init esp_lcd_new_panel_io_spi() failed"); + } + + st7796_vendor_config_t vendor_config = + { + .init_cmds = lcd_init_cmds, + .init_cmds_size = sizeof(lcd_init_cmds) / sizeof(lcd_init_cmds[0]), + }; + + ESP_LOGD(TAG, "Install LCD driver"); + const esp_lcd_panel_dev_config_t panel_config = { + .reset_gpio_num = POLAR_MAX_35_LCD_GPIO_RST, + .rgb_ele_order = LCD_RGB_ELEMENT_ORDER_BGR, + .bits_per_pixel = POLAR_MAX_35_LCD_BITS_PER_PIXEL, + .vendor_config = &vendor_config, + }; + + if (esp_lcd_new_panel_st7796(lcd_io, &panel_config, &lcd_panel) != ESP_OK) + { + ESP_LOGE(TAG, "LCD panel create failed"); + } + + if (esp_lcd_panel_reset(lcd_panel) != ESP_OK) + { + ESP_LOGE(TAG, "LCD panel reset failed"); + } + + if (esp_lcd_panel_init(lcd_panel) != ESP_OK) + { + ESP_LOGE(TAG, "LCD panel init failed"); + } + + esp_lcd_panel_invert_color(lcd_panel, true); + esp_lcd_panel_disp_on_off(lcd_panel, true); + //esp_lcd_panel_swap_xy(lcd_panel, true); + //esp_lcd_panel_mirror(lcd_panel, false, true); + + ESP_LOGI(TAG, "Initialize LVGL library"); + lv_init(); + + void *buf1 = NULL; + void *buf2 = NULL; + ESP_LOGI(TAG, "Allocate separate LVGL draw buffers from PSRAM"); + buf1 = heap_caps_malloc(POLAR_MAX_35_LCD_H_RES * 32 * sizeof(lv_color_t), MALLOC_CAP_SPIRAM); + assert(buf1); + buf2 = heap_caps_malloc(POLAR_MAX_35_LCD_H_RES * 32 * sizeof(lv_color_t), MALLOC_CAP_SPIRAM); + assert(buf2); + lv_disp_draw_buf_init(&disp_buf, buf1, buf2, POLAR_MAX_35_LCD_H_RES * 32); + + ESP_LOGI(TAG, "Register display driver to LVGL"); + lv_disp_drv_init(disp_drv); + disp_drv->hor_res = POLAR_MAX_35_LCD_H_RES; + disp_drv->ver_res = POLAR_MAX_35_LCD_V_RES; + disp_drv->flush_cb = display_lvgl_flush_cb; + disp_drv->draw_buf = &disp_buf; + disp_drv->user_data = lcd_panel; + //?? disp_drv->sw_rotate = 1; + + lv_disp_t* __attribute__((unused)) disp = lv_disp_drv_register(disp_drv); + + // init LCD backlight + // Prepare and then apply the LEDC PWM timer configuration + ledc_timer_config_t ledc_timer = {}; + ledc_timer.speed_mode = POLAR_MAX_35_LCD_BL_LEDC_MODE, + ledc_timer.timer_num = POLAR_MAX_35_LCD_BL_LEDC_TIMER; + ledc_timer.duty_resolution = POLAR_MAX_35_LCD_BL_LEDC_DUTY_RES; + ledc_timer.freq_hz = POLAR_MAX_35_LCD_BL_LEDC_FREQUENCY; + ledc_timer.clk_cfg = LEDC_AUTO_CLK; + ledc_timer_config(&ledc_timer); + + // Prepare and then apply the LEDC PWM channel configuration + ledc_channel_config_t ledc_channel = {}; + ledc_channel.speed_mode = POLAR_MAX_35_LCD_BL_LEDC_MODE; + ledc_channel.channel = POLAR_MAX_35_LCD_BL_LEDC_CHANNEL; + ledc_channel.timer_sel = POLAR_MAX_35_LCD_BL_LEDC_TIMER; + ledc_channel.intr_type = LEDC_INTR_DISABLE; + ledc_channel.gpio_num = POLAR_MAX_35_LCD_GPIO_BL; + ledc_channel.duty = 0, // Set duty to 0% + ledc_channel.hpoint = 0; + ledc_channel_config(&ledc_channel); + + // set brightness + uint8_t brightness = 70; + uint32_t duty = (brightness * (POLAR_MAX_35_LCD_BL_LEDC_DUTY - 1)) / 100; + ledc_set_duty(POLAR_MAX_35_LCD_BL_LEDC_MODE, POLAR_MAX_35_LCD_BL_LEDC_CHANNEL, duty); + ledc_update_duty(POLAR_MAX_35_LCD_BL_LEDC_MODE, POLAR_MAX_35_LCD_BL_LEDC_CHANNEL); + + esp_lcd_panel_io_i2c_config_t tp_io_config = ESP_LCD_TOUCH_IO_I2C_GT911_CONFIG(); + tp_io_config.scl_speed_hz = 400000; + + // set Int pin to output temporarily + gpio_config_struct.pin_bit_mask = (uint64_t)1 << TOUCH_INT; + gpio_config_struct.mode = GPIO_MODE_OUTPUT; + gpio_config_struct.pull_up_en = GPIO_PULLUP_DISABLE; + gpio_config_struct.pull_down_en = GPIO_PULLDOWN_DISABLE; + gpio_config_struct.intr_type = GPIO_INTR_DISABLE; + gpio_config(&gpio_config_struct); + + // set Int to low/output + gpio_set_level(TOUCH_INT, 0); + esp_rom_delay_us(100 * 1000); + + // set interrupt to tristate + gpio_config_struct.mode = GPIO_MODE_INPUT; + gpio_config_struct.pull_down_en = GPIO_PULLDOWN_ENABLE; + gpio_config(&gpio_config_struct); + + // Touch IO handle + if (esp_lcd_new_panel_io_i2c(bus_handle, &tp_io_config, &tp_io_handle) != ESP_OK) + { + ESP_LOGE(TAG, "Touch reset 3 failed!"); + } + + esp_lcd_touch_config_t tp_cfg = { + .x_max = POLAR_MAX_35_LCD_V_RES, + .y_max = POLAR_MAX_35_LCD_H_RES, + .rst_gpio_num = -1, + .int_gpio_num = -1, + .flags = { + .swap_xy = 0, + .mirror_x = 0, + .mirror_y = 0, + }, + }; + + // Initialize touch + ESP_LOGI(TAG, "Initialize touch controller GT911"); + + // try a few times + for (int loop = 0; loop < 5; loop++) + { + ret = ESP_FAIL; + + if (xSemaphoreTake(I2CMutexHandle, (TickType_t)10000) == pdTRUE) + { + ret = (esp_lcd_touch_new_i2c_gt911(tp_io_handle, &tp_cfg, &tp)); + + xSemaphoreGive(I2CMutexHandle); + } + else + { + ESP_LOGE(TAG, "Initialize touch loop mutex timeout"); + } + + if (ret == ESP_OK) + { + ESP_LOGI(TAG, "Touch controller init OK"); + touch_ok = 1; + break; + } + else + { + ESP_LOGI(TAG, "Touch controller init retry %s", esp_err_to_name(ret)); + + // reset I2C bus + i2c_master_reset(); + } + + vTaskDelay(pdMS_TO_TICKS(25)); + } + + if (ret != ESP_OK) + { + ESP_LOGE(TAG, "Failed to init touch screen"); + } + + if (touch_ok) + { + lv_indev_drv_init(&indev_drv); + indev_drv.type = LV_INDEV_TYPE_POINTER; + indev_drv.disp = disp; + indev_drv.read_cb = display_lvgl_touch_cb; + indev_drv.user_data = tp; + + lv_indev_drv_register(&indev_drv); + } + + if (control_get_config_item_int(CONFIG_ITEM_SCREEN_ROTATION) == SCREEN_ROTATION_180) + { + disp_drv->rotated = LV_DISP_ROT_180; + + // can only do software rotation, with a drop in frame rate + disp_drv->sw_rotate = 1; + } +} + +#endif //CONFIG_TONEX_CONTROLLER_HARDWARE_PLATFORM_PIRATE_MIDI_POLAR_MAX_V2 \ No newline at end of file diff --git a/source/main/platform_pirate_pro_169.c b/source/main/platform_pirate_pro_169.c new file mode 100644 index 00000000..a54d0272 --- /dev/null +++ b/source/main/platform_pirate_pro_169.c @@ -0,0 +1,355 @@ +/* + Copyright (C) 2025 Greg Smith + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + +*/ + +#include +#include "sdkconfig.h" +#include +#include "freertos/FreeRTOS.h" +#include "freertos/task.h" +#include "freertos/semphr.h" +#include "esp_timer.h" +#include "esp_lcd_panel_ops.h" +#include "esp_lcd_panel_rgb.h" +#include "driver/gpio.h" +#include "esp_err.h" +#include "esp_system.h" +#include "esp_wifi.h" +#include "esp_event.h" +#include "esp_log.h" +#include "nvs_flash.h" +#include "driver/uart.h" +#include "driver/gpio.h" +#include "driver/spi_master.h" +#include "lvgl.h" +#include "demos/lv_demos.h" +#include "esp_lcd_panel_io.h" +#include "esp_lcd_panel_vendor.h" +#include "esp_lcd_panel_ops.h" +#include "esp_vfs.h" +#include "esp_vfs_fat.h" +#include "esp_ota_ops.h" +#include "sys/param.h" +#include "esp_wifi.h" +#include "esp_log.h" +#include "esp_mac.h" +#include "esp_crc.h" +#include "esp_now.h" +#include "driver/i2c.h" +#include "soc/lldesc.h" +#include "esp_lcd_touch_gt911.h" +#include "esp_lcd_touch_cst816s.h" +#include "esp_lcd_gc9107.h" +#include "esp_lcd_sh8601.h" +#include "esp_intr_alloc.h" +#include "main.h" +#if CONFIG_TONEX_CONTROLLER_HAS_DISPLAY + #include "ui.h" +#endif +#include "usb/usb_host.h" +#include "usb/cdc_acm_host.h" +#include "usb_comms.h" +#include "usb_tonex_common.h" +#include "usb_tonex_one.h" +#include "usb_tonex.h" +#include "display.h" +#include "CH422G.h" +#include "control.h" +#include "task_priorities.h" +#include "midi_control.h" +#include "LP5562.h" +#include "tonex_params.h" + +#if CONFIG_TONEX_CONTROLLER_HARDWARE_PLATFORM_PIRATE_MIDI_POLAR_PRO + +static const char *TAG = "platform_piratepro"; + +#define POLAR_PRO_240_280_LCD_H_RES (240) +#define POLAR_PRO_240_280_LCD_V_RES (280) + +/* LCD settings */ +#define POLAR_PRO_240_280_LCD_SPI_NUM (SPI3_HOST) +#define POLAR_PRO_240_280_LCD_PIXEL_CLK_HZ (40 * 1000 * 1000) +#define POLAR_PRO_240_280_LCD_CMD_BITS (8) +#define POLAR_PRO_240_280_LCD_PARAM_BITS (8) +#define POLAR_PRO_240_280_LCD_COLOR_SPACE (ESP_LCD_COLOR_SPACE_RGB) +#define POLAR_PRO_240_280_LCD_BITS_PER_PIXEL (16) +#define POLAR_PRO_240_280_LCD_DRAW_BUFF_DOUBLE (1) +#define POLAR_PRO_240_280_LCD_DRAW_BUFF_HEIGHT (50) +#define POLAR_PRO_240_280_LCD_BL_ON_LEVEL (1) + +static lv_disp_draw_buf_t disp_buf; // contains internal graphic buffer(s) called draw buffer(s) +static lv_disp_drv_t* disp_drv; // contains callback functions +static esp_lcd_panel_io_handle_t lcd_io = NULL; +static esp_lcd_panel_handle_t lcd_panel = NULL; +__attribute__((unused)) static esp_lcd_touch_handle_t tp = NULL; +__attribute__((unused)) static esp_lcd_panel_io_handle_t tp_io_handle = NULL; +__attribute__((unused)) static lv_indev_drv_t indev_drv; // Input device driver (Touch) + +/**************************************************************************** +* NAME: +* DESCRIPTION: +* PARAMETERS: +* RETURN: +* NOTES: +*****************************************************************************/ +void platform_adjust_touch_coords(lv_coord_t* x, lv_coord_t* y) +{ + // nothing needed +} + +/**************************************************************************** +* NAME: +* DESCRIPTION: +* PARAMETERS: +* RETURN: +* NOTES: +*****************************************************************************/ +__attribute__((unused)) void platform_adjust_display_flush_area(lv_area_t *area) +{ + // nothing needed} +} + +/**************************************************************************** +* NAME: +* DESCRIPTION: +* PARAMETERS: +* RETURN: +* NOTES: +*****************************************************************************/ +__attribute__((unused)) void platform_get_icon_coords(int16_t* dest, uint8_t max_entries) +{ + // nothing needed +} + +/**************************************************************************** +* NAME: +* DESCRIPTION: +* PARAMETERS: +* RETURN: +* NOTES: +*****************************************************************************/ +__attribute__((unused)) const lv_font_t* platform_get_toast_font(void) +{ + return &lv_font_montserrat_20; +} + +/**************************************************************************** +* NAME: +* DESCRIPTION: +* PARAMETERS: +* RETURN: +* NOTES: +*****************************************************************************/ +__attribute__((unused)) uint16_t platform_get_toast_padding(void) +{ + return 10; +} + +/**************************************************************************** +* NAME: +* DESCRIPTION: +* PARAMETERS: +* RETURN: +* NOTES: +*****************************************************************************/ +__attribute__((unused)) lv_dir_t platform_adjust_gesture(lv_dir_t gesture) +{ +#if CONFIG_TONEX_CONTROLLER_POLAR_PRO_169_LANDSCAPE + // landscape mode + if (gesture == LV_DIR_TOP) + { + return LV_DIR_LEFT; + } + else if (gesture == LV_DIR_BOTTOM) + { + return LV_DIR_RIGHT; + } +#endif + + // portrait, nothing special needed + return gesture; +} + +/**************************************************************************** +* NAME: +* DESCRIPTION: +* PARAMETERS: +* RETURN: +* NOTES: +*****************************************************************************/ +void platform_init(i2c_master_bus_handle_t bus_handle, SemaphoreHandle_t I2CMutex, lv_disp_drv_t* pdisp_drv) +{ + __attribute__((unused)) esp_err_t ret = ESP_OK; + __attribute__((unused)) uint8_t touch_ok = 0; + gpio_config_t gpio_config_struct; + + ESP_LOGI(TAG, "Platform Init"); + + // todo + // LED_OUTPUT_GPIO_NUM + // LBO_STATUS + // CHARGE_STATUS + + disp_drv = pdisp_drv; + + // LCD backlight + gpio_config_t bk_gpio_config = { + .mode = GPIO_MODE_OUTPUT, + .pin_bit_mask = 1ULL << POLAR_PRO_240_280_LCD_GPIO_BL}; + ESP_ERROR_CHECK(gpio_config(&bk_gpio_config)); + + /* LCD initialization */ + ESP_LOGD(TAG, "Initialize SPI bus"); + const spi_bus_config_t buscfg = { + .sclk_io_num = POLAR_PRO_240_280_LCD_GPIO_SCLK, + .mosi_io_num = POLAR_PRO_240_280_LCD_GPIO_MOSI, + .miso_io_num = GPIO_NUM_NC, + .quadwp_io_num = GPIO_NUM_NC, + .quadhd_io_num = GPIO_NUM_NC, + // note here: this value needs to be: POLAR_PRO_240_280_LCD_H_RES * POLAR_PRO_240_280_LCD_DRAW_BUFF_HEIGHT * sizeof(uint16_t) + // however, the ESP framework uses multiples of 4092 for DMA (LLDESC_MAX_NUM_PER_DESC). + // this theoretical number is 5.9 times the DMA size, which gets rounded down and ends up too small. + // so instead, manually setting it to a little larger + .max_transfer_sz = 6 * LLDESC_MAX_NUM_PER_DESC, + }; + spi_bus_initialize(POLAR_PRO_240_280_LCD_SPI_NUM, &buscfg, SPI_DMA_CH_AUTO); + + ESP_LOGD(TAG, "Install panel IO"); + const esp_lcd_panel_io_spi_config_t io_config = { + .dc_gpio_num = POLAR_PRO_240_280_LCD_GPIO_DC, + .cs_gpio_num = POLAR_PRO_240_280_LCD_GPIO_CS, + .pclk_hz = POLAR_PRO_240_280_LCD_PIXEL_CLK_HZ, + .lcd_cmd_bits = POLAR_PRO_240_280_LCD_CMD_BITS, + .lcd_param_bits = POLAR_PRO_240_280_LCD_PARAM_BITS, + .spi_mode = 0, + .trans_queue_depth = 10, + }; + esp_lcd_new_panel_io_spi((esp_lcd_spi_bus_handle_t)POLAR_PRO_240_280_LCD_SPI_NUM, &io_config, &lcd_io); + + ESP_LOGD(TAG, "Install LCD driver"); + const esp_lcd_panel_dev_config_t panel_config = { + .reset_gpio_num = POLAR_PRO_240_280_LCD_GPIO_RST, + .color_space = POLAR_PRO_240_280_LCD_COLOR_SPACE, + .bits_per_pixel = POLAR_PRO_240_280_LCD_BITS_PER_PIXEL, + }; + esp_lcd_new_panel_st7789(lcd_io, &panel_config, &lcd_panel); + + esp_lcd_panel_reset(lcd_panel); + esp_lcd_panel_init(lcd_panel); + esp_lcd_panel_mirror(lcd_panel, true, true); + esp_lcd_panel_disp_on_off(lcd_panel, true); + + // LCD backlight on + gpio_set_level(POLAR_PRO_240_280_LCD_GPIO_BL, POLAR_PRO_240_280_LCD_BL_ON_LEVEL); + + esp_lcd_panel_set_gap(lcd_panel, 0, 20); + esp_lcd_panel_invert_color(lcd_panel, true); + + ESP_LOGI(TAG, "Initialize LVGL library"); + lv_init(); + + void *buf1 = NULL; + void *buf2 = NULL; + ESP_LOGI(TAG, "Allocate separate LVGL draw buffers from PSRAM"); + buf1 = heap_caps_malloc(POLAR_PRO_240_280_LCD_H_RES * 32 * sizeof(lv_color_t), MALLOC_CAP_SPIRAM); + assert(buf1); + buf2 = heap_caps_malloc(POLAR_PRO_240_280_LCD_H_RES * 32 * sizeof(lv_color_t), MALLOC_CAP_SPIRAM); + assert(buf2); + lv_disp_draw_buf_init(&disp_buf, buf1, buf2, POLAR_PRO_240_280_LCD_H_RES * 32); + + ESP_LOGI(TAG, "Register display driver to LVGL"); + lv_disp_drv_init(disp_drv); + disp_drv->hor_res = POLAR_PRO_240_280_LCD_H_RES; + disp_drv->ver_res = POLAR_PRO_240_280_LCD_V_RES; + disp_drv->flush_cb = display_lvgl_flush_cb; + disp_drv->draw_buf = &disp_buf; + disp_drv->user_data = lcd_panel; + + lv_disp_t* __attribute__((unused)) disp = lv_disp_drv_register(disp_drv); + +#if CONFIG_TONEX_CONTROLLER_HAS_TOUCH + // init touch screen + const esp_lcd_panel_io_i2c_config_t tp_io_config = ESP_LCD_TOUCH_IO_I2C_CST816S_CONFIG(); + + const esp_lcd_touch_config_t tp_cfg = { + .x_max = POLAR_PRO_240_280_LCD_H_RES, + .y_max = POLAR_PRO_240_280_LCD_V_RES, + .rst_gpio_num = TOUCH_RESET, + .int_gpio_num = TOUCH_INT, + .interrupt_callback = touch_data_ready, + .levels = { + .reset = 0, + .interrupt = 0, + }, + .flags = { + .swap_xy = 0, + .mirror_x = 1, + .mirror_y = 0, + }, + }; + + // Touch IO handle + if (esp_lcd_new_panel_io_i2c(bus_handle, &tp_io_config, &tp_io_handle) != ESP_OK) + { + ESP_LOGE(TAG, "Touch IO handle failed!"); + } + + // Initialize touch + ESP_LOGI(TAG, "Initialize touch controller CST816"); + + if (xSemaphoreTake(I2CMutex, (TickType_t)10000) == pdTRUE) + { + ret = esp_lcd_touch_new_i2c_cst816s(tp_io_handle, &tp_cfg, &tp); + xSemaphoreGive(I2CMutex); + } + else + { + ESP_LOGE(TAG, "Initialize touch mutex timeout"); + } + + if (ret == ESP_OK) + { + ESP_LOGI(TAG, "Touch controller init OK"); + touch_ok = 1; + } + else + { + ESP_LOGW(TAG, "Touch controller init failed %s", esp_err_to_name(ret)); + } + + if (touch_ok) + { + lv_indev_drv_init(&indev_drv); + indev_drv.type = LV_INDEV_TYPE_POINTER; + indev_drv.disp = disp; + indev_drv.read_cb = display_lvgl_touch_cb; + indev_drv.user_data = tp; + + lv_indev_drv_register(&indev_drv); + } +#endif // TONEX_CONTROLLER_HAS_TOUCH + + if (control_get_config_item_int(CONFIG_ITEM_SCREEN_ROTATION) == SCREEN_ROTATION_180) + { + disp_drv->rotated = LV_DISP_ROT_180; + + // can only do software rotation, with a drop in frame rate + disp_drv->sw_rotate = 1; + } +} + +#endif //CONFIG_TONEX_CONTROLLER_HARDWARE_PLATFORM_PIRATE_MIDI_POLAR_PRO \ No newline at end of file diff --git a/source/main/platform_ws43.c b/source/main/platform_ws43.c index 6132250c..3c3ac415 100644 --- a/source/main/platform_ws43.c +++ b/source/main/platform_ws43.c @@ -355,7 +355,7 @@ void platform_init(i2c_master_bus_handle_t bus_handle, SemaphoreHandle_t I2CMute // somehow fixes it, and simulates the way that older versions of the project // did it (a lot of PSRAM was allocated for skin images.) // If anybody figures out the root cause here I'd love to hear it. - void* psram_workaround_ptr = heap_caps_malloc(75000, MALLOC_CAP_SPIRAM); + void* psram_workaround_ptr = heap_caps_malloc(80000, MALLOC_CAP_SPIRAM); ESP_ERROR_CHECK(esp_lcd_new_rgb_panel(&panel_config, &panel_handle)); free(psram_workaround_ptr); diff --git a/source/main/tonex_params.c b/source/main/tonex_params.c index a3c33b36..049e498b 100644 --- a/source/main/tonex_params.c +++ b/source/main/tonex_params.c @@ -43,144 +43,144 @@ static SemaphoreHandle_t ParamMutex; // "value" below is just a default, is overridden by the preset on load static tModellerParameter TonexParameters[TONEX_GLOBAL_LAST] = { - //value, Min, Max, Name Type - {0, 0, 1, "NG POST", MODELLER_PARAM_TYPE_SWITCH}, // TONEX_PARAM_NOISE_GATE_POST - {1, 0, 1, "NG POWER", MODELLER_PARAM_TYPE_SWITCH}, // TONEX_PARAM_NOISE_GATE_ENABLE, - {-64, -100, 0, "NG THRESH", MODELLER_PARAM_TYPE_RANGE}, // TONEX_PARAM_NOISE_GATE_THRESHOLD, - {20, 5, 500, "NG REL", MODELLER_PARAM_TYPE_RANGE}, // TONEX_PARAM_NOISE_GATE_RELEASE, - {-60, -100, -20, "NG DEPTH", MODELLER_PARAM_TYPE_RANGE}, // TONEX_PARAM_NOISE_GATE_DEPTH, + //value, Min, Max, Name Type Data1,2,3 + {0, 0, 1, "NG POST", MODELLER_PARAM_TYPE_SWITCH, 0, 0, 0}, // TONEX_PARAM_NOISE_GATE_POST + {1, 0, 1, "NG POWER", MODELLER_PARAM_TYPE_SWITCH, 0, 0, 0}, // TONEX_PARAM_NOISE_GATE_ENABLE, + {-64, -100, 0, "NG THRESH", MODELLER_PARAM_TYPE_RANGE, 0, 0, 0}, // TONEX_PARAM_NOISE_GATE_THRESHOLD, + {20, 5, 500, "NG REL", MODELLER_PARAM_TYPE_RANGE, 0, 0, 0}, // TONEX_PARAM_NOISE_GATE_RELEASE, + {-60, -100, -20, "NG DEPTH", MODELLER_PARAM_TYPE_RANGE, 0, 0, 0}, // TONEX_PARAM_NOISE_GATE_DEPTH, // Compressor - {1, 0, 1, "COMP POST", MODELLER_PARAM_TYPE_SWITCH}, // TONEX_PARAM_COMP_POST, - {0, 0, 1, "COMP POWER", MODELLER_PARAM_TYPE_SWITCH}, // TONEX_PARAM_COMP_ENABLE, - {-14, -40, 0, "COMP THRESH", MODELLER_PARAM_TYPE_RANGE}, // TONEX_PARAM_COMP_THRESHOLD, - {-12, -30, 10, "COMP GAIN", MODELLER_PARAM_TYPE_RANGE}, // TONEX_PARAM_COMP_MAKE_UP, - {14, 1, 51, "COMP ATTACK", MODELLER_PARAM_TYPE_RANGE}, // TONEX_PARAM_COMP_ATTACK, + {1, 0, 1, "COMP POST", MODELLER_PARAM_TYPE_SWITCH, 0, 0, 0}, // TONEX_PARAM_COMP_POST, + {0, 0, 1, "COMP POWER", MODELLER_PARAM_TYPE_SWITCH, 0, 0, 0}, // TONEX_PARAM_COMP_ENABLE, + {-14, -40, 0, "COMP THRESH", MODELLER_PARAM_TYPE_RANGE, 0, 0, 0}, // TONEX_PARAM_COMP_THRESHOLD, + {-12, -30, 10, "COMP GAIN", MODELLER_PARAM_TYPE_RANGE, 0, 0, 0}, // TONEX_PARAM_COMP_MAKE_UP, + {14, 1, 51, "COMP ATTACK", MODELLER_PARAM_TYPE_RANGE, 0, 0, 0}, // TONEX_PARAM_COMP_ATTACK, // EQ - {0, 0, 1, "EQ POST", MODELLER_PARAM_TYPE_SWITCH}, // TONEX_PARAM_EQ_POST, // Pre/Post - {5, 0, 10, "EQ BASS", MODELLER_PARAM_TYPE_RANGE}, // TONEX_PARAM_EQ_BASS, - {300, 75, 600, "EQ BFREQ", MODELLER_PARAM_TYPE_RANGE}, // TONEX_PARAM_EQ_BASS_FREQ, - {5, 0, 10, "EQ MID", MODELLER_PARAM_TYPE_RANGE}, // TONEX_PARAM_EQ_MID, - {0.7, 0.2, 3.0, "EQ MIDQ", MODELLER_PARAM_TYPE_RANGE}, // TONEX_PARAM_EQ_MIDQ, - {750, 150, 5000, "EQ MFREQ", MODELLER_PARAM_TYPE_RANGE}, // TONEX_PARAM_EQ_MID_FREQ, - {5, 0, 10, "EQ TREBLE", MODELLER_PARAM_TYPE_RANGE}, // TONEX_PARAM_EQ_TREBLE, - {1900, 1000, 4000, "EQ TFREQ", MODELLER_PARAM_TYPE_RANGE}, // TONEX_PARAM_EQ_TREBLE_FREQ, + {0, 0, 1, "EQ POST", MODELLER_PARAM_TYPE_SWITCH, 0, 0, 0}, // TONEX_PARAM_EQ_POST, // Pre/Post + {5, 0, 10, "EQ BASS", MODELLER_PARAM_TYPE_RANGE, 0, 0, 0}, // TONEX_PARAM_EQ_BASS, + {300, 75, 600, "EQ BFREQ", MODELLER_PARAM_TYPE_RANGE, 0, 0, 0}, // TONEX_PARAM_EQ_BASS_FREQ, + {5, 0, 10, "EQ MID", MODELLER_PARAM_TYPE_RANGE, 0, 0, 0}, // TONEX_PARAM_EQ_MID, + {0.7, 0.2, 3.0, "EQ MIDQ", MODELLER_PARAM_TYPE_RANGE, 0, 0, 0}, // TONEX_PARAM_EQ_MIDQ, + {750, 150, 5000, "EQ MFREQ", MODELLER_PARAM_TYPE_RANGE, 0, 0, 0}, // TONEX_PARAM_EQ_MID_FREQ, + {5, 0, 10, "EQ TREBLE", MODELLER_PARAM_TYPE_RANGE, 0, 0, 0}, // TONEX_PARAM_EQ_TREBLE, + {1900, 1000, 4000, "EQ TFREQ", MODELLER_PARAM_TYPE_RANGE, 0, 0, 0}, // TONEX_PARAM_EQ_TREBLE_FREQ, // Amplifier Model - {1, 0, 1, "MDL AMP", MODELLER_PARAM_TYPE_SWITCH}, // TONEX_PARAM_MODEL_AMP_ENABLE, - {0, 0, 1, "MDL SW1", MODELLER_PARAM_TYPE_SWITCH}, // TONEX_PARAM_MODEL_SW1, - {5, 0, 10, "MDL GAIN", MODELLER_PARAM_TYPE_RANGE}, // TONEX_PARAM_MODEL_GAIN, - {5, 0, 10, "MDL VOL", MODELLER_PARAM_TYPE_RANGE}, // TONEX_PARAM_MODEL_VOLUME, - {100, 0, 100, "MDL MIX", MODELLER_PARAM_TYPE_RANGE}, // TONEX_PARAM_MODEX_MIX, - {1, 0, 1, "MDL CABU", MODELLER_PARAM_TYPE_SWITCH}, // TONEX_PARAM_MODEL_CABINET_UNKNOWN - {0, 0, 2, "MDL CAB", MODELLER_PARAM_TYPE_SELECT}, // TONEX_PARAM_CABINET_TYPE, // 0 = TONEX_CABINET_TONE_MODEL, 1=TONEX_CABINET_VIR, 2=TONEX_CABINET_DISABLED + {1, 0, 1, "MDL AMP", MODELLER_PARAM_TYPE_SWITCH, 0, 0, 0}, // TONEX_PARAM_MODEL_AMP_ENABLE, + {0, 0, 1, "MDL SW1", MODELLER_PARAM_TYPE_SWITCH, 0, 0, 0}, // TONEX_PARAM_MODEL_SW1, + {5, 0, 10, "MDL GAIN", MODELLER_PARAM_TYPE_RANGE, 0, 0, 0}, // TONEX_PARAM_MODEL_GAIN, + {5, 0, 10, "MDL VOL", MODELLER_PARAM_TYPE_RANGE, 0, 0, 0}, // TONEX_PARAM_MODEL_VOLUME, + {100, 0, 100, "MDL MIX", MODELLER_PARAM_TYPE_RANGE, 0, 0, 0}, // TONEX_PARAM_MODEX_MIX, + {1, 0, 1, "MDL CABU", MODELLER_PARAM_TYPE_SWITCH, 0, 0, 0}, // TONEX_PARAM_MODEL_CABINET_UNKNOWN + {0, 0, 2, "MDL CAB", MODELLER_PARAM_TYPE_SELECT, 0, 0, 0}, // TONEX_PARAM_CABINET_TYPE, // 0 = TONEX_CABINET_TONE_MODEL, 1=TONEX_CABINET_VIR, 2=TONEX_CABINET_DISABLED // Virtual IR Cabinet - {5, 0, 10, "VIR_CMDL", MODELLER_PARAM_TYPE_SELECT}, // TONEX_PARAM_VIR_CABINET_MODEL, - {0, 0, 10, "VIR_RESO", MODELLER_PARAM_TYPE_RANGE}, // TONEX_PARAM_VIR_RESO, - {0, 0, 2, "VIR M1", MODELLER_PARAM_TYPE_SELECT}, // TONEX_PARAM_VIR_MIC_1, - {0, 0, 10, "VIR M1X", MODELLER_PARAM_TYPE_RANGE}, // TONEX_PARAM_VIR_MIC_1_X, - {0, 0, 10, "VIR M1Z", MODELLER_PARAM_TYPE_RANGE}, // TONEX_PARAM_VIR_MIC_1_Z, - {0, 0, 2, "VIR M2", MODELLER_PARAM_TYPE_SELECT}, // TONEX_PARAM_VIR_MIC_2 - {0, 0, 2, "VIR M2X", MODELLER_PARAM_TYPE_RANGE}, // TONEX_PARAM_VIR_MIC_2_X - {0, 0, 10, "VIR M2Z", MODELLER_PARAM_TYPE_RANGE}, // TONEX_PARAM_VIR_MIC_2_Z - {0, -100, 100, "VIR BLEND", MODELLER_PARAM_TYPE_RANGE}, // TONEX_PARAM_VIR_BLEND + {5, 0, 10, "VIR_CMDL", MODELLER_PARAM_TYPE_SELECT, 0, 0, 0}, // TONEX_PARAM_VIR_CABINET_MODEL, + {0, 0, 10, "VIR_RESO", MODELLER_PARAM_TYPE_RANGE, 0, 0, 0}, // TONEX_PARAM_VIR_RESO, + {0, 0, 2, "VIR M1", MODELLER_PARAM_TYPE_SELECT, 0, 0, 0}, // TONEX_PARAM_VIR_MIC_1, + {0, 0, 10, "VIR M1X", MODELLER_PARAM_TYPE_RANGE, 0, 0, 0}, // TONEX_PARAM_VIR_MIC_1_X, + {0, 0, 10, "VIR M1Z", MODELLER_PARAM_TYPE_RANGE, 0, 0, 0}, // TONEX_PARAM_VIR_MIC_1_Z, + {0, 0, 2, "VIR M2", MODELLER_PARAM_TYPE_SELECT, 0, 0, 0}, // TONEX_PARAM_VIR_MIC_2 + {0, 0, 2, "VIR M2X", MODELLER_PARAM_TYPE_RANGE, 0, 0, 0}, // TONEX_PARAM_VIR_MIC_2_X + {0, 0, 10, "VIR M2Z", MODELLER_PARAM_TYPE_RANGE, 0, 0, 0}, // TONEX_PARAM_VIR_MIC_2_Z + {0, -100, 100, "VIR BLEND", MODELLER_PARAM_TYPE_RANGE, 0, 0, 0}, // TONEX_PARAM_VIR_BLEND // More amp params - {5, 0, 10, "MDL PRE", MODELLER_PARAM_TYPE_RANGE}, // TONEX_PARAM_MODEL_PRESENCE - {5, 0, 10, "MDL DEP", MODELLER_PARAM_TYPE_RANGE}, // TONEX_PARAM_MODEL_DEPTH + {5, 0, 10, "MDL PRE", MODELLER_PARAM_TYPE_RANGE, 0, 0, 0}, // TONEX_PARAM_MODEL_PRESENCE + {5, 0, 10, "MDL DEP", MODELLER_PARAM_TYPE_RANGE, 0, 0, 0}, // TONEX_PARAM_MODEL_DEPTH // Reverb - {0, 0, 1, "RVB POS", MODELLER_PARAM_TYPE_SWITCH}, // TONEX_PARAM_REVERB_POSITION, - {1, 0, 1, "RVB POWER", MODELLER_PARAM_TYPE_SWITCH}, // TONEX_PARAM_REVERB_ENABLE, - {0, 0, 5, "RVB MODEL", MODELLER_PARAM_TYPE_SELECT}, // TONEX_PARAM_REVERB_MODEL, - {5, 0, 10, "RVB S1 T", MODELLER_PARAM_TYPE_RANGE}, // TONEX_PARAM_REVERB_SPRING1_TIME, - {0, 0, 500, "RVB S1 P", MODELLER_PARAM_TYPE_RANGE}, // TONEX_PARAM_REVERB_SPRING1_PREDELAY, - {0, -10, 10, "RVB S1 C", MODELLER_PARAM_TYPE_RANGE}, // TONEX_PARAM_REVERB_SPRING1_COLOR, - {0, 0, 100, "RVB S1 M", MODELLER_PARAM_TYPE_RANGE}, // TONEX_PARAM_REVERB_SPRING1_MIX, - {5, 0, 10, "RVB S2 T", MODELLER_PARAM_TYPE_RANGE}, // TONEX_PARAM_REVERB_SPRING2_TIME, - {0, 0, 500, "RVB S2 P", MODELLER_PARAM_TYPE_RANGE}, // TONEX_PARAM_REVERB_SPRING2_PREDELAY, - {0, -10, 10, "RVB S2 C", MODELLER_PARAM_TYPE_RANGE}, // TONEX_PARAM_REVERB_SPRING2_COLOR, - {0, 0, 100, "RVB S2 M", MODELLER_PARAM_TYPE_RANGE}, // TONEX_PARAM_REVERB_SPRING2_MIX, - {5, 0, 10, "RVB S3 T", MODELLER_PARAM_TYPE_RANGE}, // TONEX_PARAM_REVERB_SPRING3_TIME, - {0, 0, 500, "RVB S3 P", MODELLER_PARAM_TYPE_RANGE}, // TONEX_PARAM_REVERB_SPRING3_PREDELAY, - {0, -10, 10, "RVB S3 C", MODELLER_PARAM_TYPE_RANGE}, // TONEX_PARAM_REVERB_SPRING3_COLOR, - {0, 0, 100, "RVB S3 M", MODELLER_PARAM_TYPE_RANGE}, // TONEX_PARAM_REVERB_SPRING3_MIX, - {5, 0, 10, "RVB S4 T", MODELLER_PARAM_TYPE_RANGE}, // TONEX_PARAM_REVERB_SPRING4_TIME, - {0, 0, 500, "RVB S4 P", MODELLER_PARAM_TYPE_RANGE}, // TONEX_PARAM_REVERB_SPRING4_PREDELAY, - {0, -10, 10, "RVB S4 C", MODELLER_PARAM_TYPE_RANGE}, // TONEX_PARAM_REVERB_SPRING4_COLOR, - {0, 0, 100, "RVB S4 M", MODELLER_PARAM_TYPE_RANGE}, // TONEX_PARAM_REVERB_SPRING4_MIX, - {5, 0, 10, "RVB RM T", MODELLER_PARAM_TYPE_RANGE}, // TONEX_PARAM_REVERB_ROOM_TIME, - {0, 0, 500, "RVB RM P", MODELLER_PARAM_TYPE_RANGE}, // TONEX_PARAM_REVERB_ROOM_PREDELAY, - {0, -10, 10, "RVB RM C", MODELLER_PARAM_TYPE_RANGE}, // TONEX_PARAM_REVERB_ROOM_COLOR, - {0, 0, 100, "RVB RM M", MODELLER_PARAM_TYPE_RANGE}, // TONEX_PARAM_REVERB_ROOM_MIX, - {5, 0, 10, "RVB PL T", MODELLER_PARAM_TYPE_RANGE}, // TONEX_PARAM_REVERB_PLATE_TIME, - {0, 0, 500, "RVB PL P", MODELLER_PARAM_TYPE_RANGE}, // TONEX_PARAM_REVERB_PLATE_PREDELAY, - {0, -10, 10, "RVB PL C", MODELLER_PARAM_TYPE_RANGE}, // TONEX_PARAM_REVERB_PLATE_COLOR, - {0, 0, 100, "RVB PL M", MODELLER_PARAM_TYPE_RANGE}, // TONEX_PARAM_REVERB_PLATE_MIX, + {0, 0, 1, "RVB POS", MODELLER_PARAM_TYPE_SWITCH, 0, 0, 0}, // TONEX_PARAM_REVERB_POSITION, + {1, 0, 1, "RVB POWER", MODELLER_PARAM_TYPE_SWITCH, 0, 0, 0}, // TONEX_PARAM_REVERB_ENABLE, + {0, 0, 5, "RVB MODEL", MODELLER_PARAM_TYPE_SELECT, 0, 0, 0}, // TONEX_PARAM_REVERB_MODEL, + {5, 0, 10, "RVB S1 T", MODELLER_PARAM_TYPE_RANGE, 0, 0, 0}, // TONEX_PARAM_REVERB_SPRING1_TIME, + {0, 0, 500, "RVB S1 P", MODELLER_PARAM_TYPE_RANGE, 0, 0, 0}, // TONEX_PARAM_REVERB_SPRING1_PREDELAY, + {0, -10, 10, "RVB S1 C", MODELLER_PARAM_TYPE_RANGE, 0, 0, 0}, // TONEX_PARAM_REVERB_SPRING1_COLOR, + {0, 0, 100, "RVB S1 M", MODELLER_PARAM_TYPE_RANGE, 0, 0, 0}, // TONEX_PARAM_REVERB_SPRING1_MIX, + {5, 0, 10, "RVB S2 T", MODELLER_PARAM_TYPE_RANGE, 0, 0, 0}, // TONEX_PARAM_REVERB_SPRING2_TIME, + {0, 0, 500, "RVB S2 P", MODELLER_PARAM_TYPE_RANGE, 0, 0, 0}, // TONEX_PARAM_REVERB_SPRING2_PREDELAY, + {0, -10, 10, "RVB S2 C", MODELLER_PARAM_TYPE_RANGE, 0, 0, 0}, // TONEX_PARAM_REVERB_SPRING2_COLOR, + {0, 0, 100, "RVB S2 M", MODELLER_PARAM_TYPE_RANGE, 0, 0, 0}, // TONEX_PARAM_REVERB_SPRING2_MIX, + {5, 0, 10, "RVB S3 T", MODELLER_PARAM_TYPE_RANGE, 0, 0, 0}, // TONEX_PARAM_REVERB_SPRING3_TIME, + {0, 0, 500, "RVB S3 P", MODELLER_PARAM_TYPE_RANGE, 0, 0, 0}, // TONEX_PARAM_REVERB_SPRING3_PREDELAY, + {0, -10, 10, "RVB S3 C", MODELLER_PARAM_TYPE_RANGE, 0, 0, 0}, // TONEX_PARAM_REVERB_SPRING3_COLOR, + {0, 0, 100, "RVB S3 M", MODELLER_PARAM_TYPE_RANGE, 0, 0, 0}, // TONEX_PARAM_REVERB_SPRING3_MIX, + {5, 0, 10, "RVB S4 T", MODELLER_PARAM_TYPE_RANGE, 0, 0, 0}, // TONEX_PARAM_REVERB_SPRING4_TIME, + {0, 0, 500, "RVB S4 P", MODELLER_PARAM_TYPE_RANGE, 0, 0, 0}, // TONEX_PARAM_REVERB_SPRING4_PREDELAY, + {0, -10, 10, "RVB S4 C", MODELLER_PARAM_TYPE_RANGE, 0, 0, 0}, // TONEX_PARAM_REVERB_SPRING4_COLOR, + {0, 0, 100, "RVB S4 M", MODELLER_PARAM_TYPE_RANGE, 0, 0, 0}, // TONEX_PARAM_REVERB_SPRING4_MIX, + {5, 0, 10, "RVB RM T", MODELLER_PARAM_TYPE_RANGE, 0, 0, 0}, // TONEX_PARAM_REVERB_ROOM_TIME, + {0, 0, 500, "RVB RM P", MODELLER_PARAM_TYPE_RANGE, 0, 0, 0}, // TONEX_PARAM_REVERB_ROOM_PREDELAY, + {0, -10, 10, "RVB RM C", MODELLER_PARAM_TYPE_RANGE, 0, 0, 0}, // TONEX_PARAM_REVERB_ROOM_COLOR, + {0, 0, 100, "RVB RM M", MODELLER_PARAM_TYPE_RANGE, 0, 0, 0}, // TONEX_PARAM_REVERB_ROOM_MIX, + {5, 0, 10, "RVB PL T", MODELLER_PARAM_TYPE_RANGE, 0, 0, 0}, // TONEX_PARAM_REVERB_PLATE_TIME, + {0, 0, 500, "RVB PL P", MODELLER_PARAM_TYPE_RANGE, 0, 0, 0}, // TONEX_PARAM_REVERB_PLATE_PREDELAY, + {0, -10, 10, "RVB PL C", MODELLER_PARAM_TYPE_RANGE, 0, 0, 0}, // TONEX_PARAM_REVERB_PLATE_COLOR, + {0, 0, 100, "RVB PL M", MODELLER_PARAM_TYPE_RANGE, 0, 0, 0}, // TONEX_PARAM_REVERB_PLATE_MIX, // Modulation - {0, 0, 1, "MOD POST", MODELLER_PARAM_TYPE_SWITCH}, // TONEX_PARAM_MODULATION_POST, - {0, 0, 1, "MOD POWER", MODELLER_PARAM_TYPE_SWITCH}, // TONEX_PARAM_MODULATION_ENABLE, - {0, 0, 4, "MOD MODEL", MODELLER_PARAM_TYPE_SELECT}, // TONEX_PARAM_MODULATION_MODEL, - {0, 0, 1, "MOD CH S", MODELLER_PARAM_TYPE_SWITCH}, // TONEX_PARAM_MODULATION_CHORUS_SYNC, - {0, 0, 17, "MOD CH T", MODELLER_PARAM_TYPE_SELECT}, // TONEX_PARAM_MODULATION_CHORUS_TS, - {0.5, 0.1, 10, "MOD CH R", MODELLER_PARAM_TYPE_RANGE}, // TONEX_PARAM_MODULATION_CHORUS_RATE, - {0, 0, 100, "MOD CH D", MODELLER_PARAM_TYPE_RANGE}, // TONEX_PARAM_MODULATION_CHORUS_DEPTH, - {0, 0, 10, "MOD CH L", MODELLER_PARAM_TYPE_RANGE}, // TONEX_PARAM_MODULATION_CHORUS_LEVEL, - {0, 0, 1, "MOD TR S", MODELLER_PARAM_TYPE_SWITCH}, // TONEX_PARAM_MODULATION_TREMOLO_SYNC, - {0, 0, 17, "MOD TR T", MODELLER_PARAM_TYPE_SELECT}, // TONEX_PARAM_MODULATION_TREMOLO_TS, - {0.5, 0.1, 10, "MOD TR R", MODELLER_PARAM_TYPE_RANGE}, // TONEX_PARAM_MODULATION_TREMOLO_RATE, - {0, 0, 10, "MOD TR P", MODELLER_PARAM_TYPE_RANGE}, // TONEX_PARAM_MODULATION_TREMOLO_SHAPE, - {0, 0, 100, "MOD TR D", MODELLER_PARAM_TYPE_RANGE}, // TONEX_PARAM_MODULATION_TREMOLO_SPREAD, - {0, 0, 10, "MOD TR L", MODELLER_PARAM_TYPE_RANGE}, // TONEX_PARAM_MODULATION_TREMOLO_LEVEL, - {0, 0, 1, "MOD PH S", MODELLER_PARAM_TYPE_SWITCH}, // TONEX_PARAM_PHASER_SYNC, - {0, 0, 17, "MOD PH T", MODELLER_PARAM_TYPE_SELECT}, // TONEX_PARAM_PHASER_TS, - {0.5, 0.1, 10, "MOD PH R", MODELLER_PARAM_TYPE_RANGE}, // TONEX_PARAM_PHASER_RATE, - {0, 0, 100, "MOD PH D", MODELLER_PARAM_TYPE_RANGE}, // TONEX_PARAM_PHASER_DEPTH, - {0, 0, 10, "MOD PH L", MODELLER_PARAM_TYPE_RANGE}, // TONEX_PARAM_PHASER_LEVEL, - {0, 0, 1, "MOD FL S", MODELLER_PARAM_TYPE_SWITCH}, // TONEX_PARAM_FLANGER_SYNC, - {0, 0, 17, "MOD FL T", MODELLER_PARAM_TYPE_SELECT}, // TONEX_PARAM_FLANGER_TS, - {0.5, 0.1, 10, "MOD FL R", MODELLER_PARAM_TYPE_RANGE}, // TONEX_PARAM_FLANGER_RATE, - {0, 0, 100, "MOD FL D", MODELLER_PARAM_TYPE_RANGE}, // TONEX_PARAM_FLANGER_DEPTH, - {0, 0, 100, "MOD FL F", MODELLER_PARAM_TYPE_RANGE}, // TONEX_PARAM_FLANGER_FEEDEBACK, - {0, 0, 10, "MOD FL L", MODELLER_PARAM_TYPE_RANGE}, // TONEX_PARAM_FLANGER_LEVEL, - {0, 0, 1, "MOD RO S", MODELLER_PARAM_TYPE_SWITCH}, // TONEX_PARAM_ROTARY_SYNC, - {0, 0, 17, "MOD RO T", MODELLER_PARAM_TYPE_SELECT}, // TONEX_PARAM_ROTARY_TS, - {0, 0, 400, "MOD RO S", MODELLER_PARAM_TYPE_RANGE}, // TONEX_PARAM_ROTARY_SPEED, - {0, 0, 300, "MOD RO R", MODELLER_PARAM_TYPE_RANGE}, // TONEX_PARAM_ROTARY_RADIUS, - {0, 0, 100, "MOD RO D", MODELLER_PARAM_TYPE_RANGE}, // TONEX_PARAM_ROTARY_SPREAD, - {0, 0, 10, "MOD RO L", MODELLER_PARAM_TYPE_RANGE}, // TONEX_PARAM_ROTARY_LEVEL, + {0, 0, 1, "MOD POST", MODELLER_PARAM_TYPE_SWITCH, 0, 0, 0}, // TONEX_PARAM_MODULATION_POST, + {0, 0, 1, "MOD POWER", MODELLER_PARAM_TYPE_SWITCH, 0, 0, 0}, // TONEX_PARAM_MODULATION_ENABLE, + {0, 0, 4, "MOD MODEL", MODELLER_PARAM_TYPE_SELECT, 0, 0, 0}, // TONEX_PARAM_MODULATION_MODEL, + {0, 0, 1, "MOD CH S", MODELLER_PARAM_TYPE_SWITCH, 0, 0, 0}, // TONEX_PARAM_MODULATION_CHORUS_SYNC, + {0, 0, 17, "MOD CH T", MODELLER_PARAM_TYPE_SELECT, 0, 0, 0}, // TONEX_PARAM_MODULATION_CHORUS_TS, + {0.5, 0.1, 10, "MOD CH R", MODELLER_PARAM_TYPE_RANGE, 0, 0, 0}, // TONEX_PARAM_MODULATION_CHORUS_RATE, + {0, 0, 100, "MOD CH D", MODELLER_PARAM_TYPE_RANGE, 0, 0, 0}, // TONEX_PARAM_MODULATION_CHORUS_DEPTH, + {0, 0, 10, "MOD CH L", MODELLER_PARAM_TYPE_RANGE, 0, 0, 0}, // TONEX_PARAM_MODULATION_CHORUS_LEVEL, + {0, 0, 1, "MOD TR S", MODELLER_PARAM_TYPE_SWITCH, 0, 0, 0}, // TONEX_PARAM_MODULATION_TREMOLO_SYNC, + {0, 0, 17, "MOD TR T", MODELLER_PARAM_TYPE_SELECT, 0, 0, 0}, // TONEX_PARAM_MODULATION_TREMOLO_TS, + {0.5, 0.1, 10, "MOD TR R", MODELLER_PARAM_TYPE_RANGE, 0, 0, 0}, // TONEX_PARAM_MODULATION_TREMOLO_RATE, + {0, 0, 10, "MOD TR P", MODELLER_PARAM_TYPE_RANGE, 0, 0, 0}, // TONEX_PARAM_MODULATION_TREMOLO_SHAPE, + {0, 0, 100, "MOD TR D", MODELLER_PARAM_TYPE_RANGE, 0, 0, 0}, // TONEX_PARAM_MODULATION_TREMOLO_SPREAD, + {0, 0, 10, "MOD TR L", MODELLER_PARAM_TYPE_RANGE, 0, 0, 0}, // TONEX_PARAM_MODULATION_TREMOLO_LEVEL, + {0, 0, 1, "MOD PH S", MODELLER_PARAM_TYPE_SWITCH, 0, 0, 0}, // TONEX_PARAM_PHASER_SYNC, + {0, 0, 17, "MOD PH T", MODELLER_PARAM_TYPE_SELECT, 0, 0, 0}, // TONEX_PARAM_PHASER_TS, + {0.5, 0.1, 10, "MOD PH R", MODELLER_PARAM_TYPE_RANGE, 0, 0, 0}, // TONEX_PARAM_PHASER_RATE, + {0, 0, 100, "MOD PH D", MODELLER_PARAM_TYPE_RANGE, 0, 0, 0}, // TONEX_PARAM_PHASER_DEPTH, + {0, 0, 10, "MOD PH L", MODELLER_PARAM_TYPE_RANGE, 0, 0, 0}, // TONEX_PARAM_PHASER_LEVEL, + {0, 0, 1, "MOD FL S", MODELLER_PARAM_TYPE_SWITCH, 0, 0, 0}, // TONEX_PARAM_FLANGER_SYNC, + {0, 0, 17, "MOD FL T", MODELLER_PARAM_TYPE_SELECT, 0, 0, 0}, // TONEX_PARAM_FLANGER_TS, + {0.5, 0.1, 10, "MOD FL R", MODELLER_PARAM_TYPE_RANGE, 0, 0, 0}, // TONEX_PARAM_FLANGER_RATE, + {0, 0, 100, "MOD FL D", MODELLER_PARAM_TYPE_RANGE, 0, 0, 0}, // TONEX_PARAM_FLANGER_DEPTH, + {0, 0, 100, "MOD FL F", MODELLER_PARAM_TYPE_RANGE, 0, 0, 0}, // TONEX_PARAM_FLANGER_FEEDEBACK, + {0, 0, 10, "MOD FL L", MODELLER_PARAM_TYPE_RANGE, 0, 0, 0}, // TONEX_PARAM_FLANGER_LEVEL, + {0, 0, 1, "MOD RO S", MODELLER_PARAM_TYPE_SWITCH, 0, 0, 0}, // TONEX_PARAM_ROTARY_SYNC, + {0, 0, 17, "MOD RO T", MODELLER_PARAM_TYPE_SELECT, 0, 0, 0}, // TONEX_PARAM_ROTARY_TS, + {0, 0, 400, "MOD RO S", MODELLER_PARAM_TYPE_RANGE, 0, 0, 0}, // TONEX_PARAM_ROTARY_SPEED, + {0, 0, 300, "MOD RO R", MODELLER_PARAM_TYPE_RANGE, 0, 0, 0}, // TONEX_PARAM_ROTARY_RADIUS, + {0, 0, 100, "MOD RO D", MODELLER_PARAM_TYPE_RANGE, 0, 0, 0}, // TONEX_PARAM_ROTARY_SPREAD, + {0, 0, 10, "MOD RO L", MODELLER_PARAM_TYPE_RANGE, 0, 0, 0}, // TONEX_PARAM_ROTARY_LEVEL, // Delay - {0, 0, 1, "DLY POST", MODELLER_PARAM_TYPE_SWITCH}, // TONEX_PARAM_DELAY_POST, - {0, 0, 1, "DLY POWER", MODELLER_PARAM_TYPE_SWITCH}, // TONEX_PARAM_DELAY_ENABLE, - {0, 0, 1, "DLY MODEL", MODELLER_PARAM_TYPE_SELECT}, // TONEX_PARAM_DELAY_MODEL, - {0, 0, 1, "DLY DG S", MODELLER_PARAM_TYPE_SWITCH}, // TONEX_PARAM_DELAY_DIGITAL_SYNC, - {0, 0, 17, "DLY DG T", MODELLER_PARAM_TYPE_SELECT}, // TONEX_PARAM_DELAY_DIGITAL_TS, - {0, 0, 1000, "DLY DT M", MODELLER_PARAM_TYPE_RANGE}, // TONEX_PARAM_DELAY_DIGITAL_TIME, - {0, 0, 100, "DLY DT F", MODELLER_PARAM_TYPE_RANGE}, // TONEX_PARAM_DELAY_DIGITAL_FEEDBACK, - {0, 0, 1, "DLY DT O", MODELLER_PARAM_TYPE_SWITCH}, // TONEX_PARAM_DELAY_DIGITAL_MODE, - {0, 0, 100, "DLY DT X", MODELLER_PARAM_TYPE_RANGE}, // TONEX_PARAM_DELAY_DIGITAL_MIX, - {0, 0, 1, "DLY TA S", MODELLER_PARAM_TYPE_SWITCH}, // TONEX_PARAM_DELAY_TAPE_SYNC, - {0, 0, 17, "DLY TA T", MODELLER_PARAM_TYPE_SELECT}, // TONEX_PARAM_DELAY_TAPE_TS, - {0, 0, 1000, "DLY TA M", MODELLER_PARAM_TYPE_RANGE}, // TONEX_PARAM_DELAY_TAPE_TIME, - {0, 0, 100, "DLY TA F", MODELLER_PARAM_TYPE_RANGE}, // TONEX_PARAM_DELAY_TAPE_FEEDBACK, - {0, 0, 1, "DLY TA O", MODELLER_PARAM_TYPE_SWITCH}, // TONEX_PARAM_DELAY_TAPE_MODE, - {0, 0, 100, "DLY TA X", MODELLER_PARAM_TYPE_RANGE}, // TONEX_PARAM_DELAY_TAPE_MIX, + {0, 0, 1, "DLY POST", MODELLER_PARAM_TYPE_SWITCH, 0, 0, 0}, // TONEX_PARAM_DELAY_POST, + {0, 0, 1, "DLY POWER", MODELLER_PARAM_TYPE_SWITCH, 0, 0, 0}, // TONEX_PARAM_DELAY_ENABLE, + {0, 0, 1, "DLY MODEL", MODELLER_PARAM_TYPE_SELECT, 0, 0, 0}, // TONEX_PARAM_DELAY_MODEL, + {0, 0, 1, "DLY DG S", MODELLER_PARAM_TYPE_SWITCH, 0, 0, 0}, // TONEX_PARAM_DELAY_DIGITAL_SYNC, + {0, 0, 17, "DLY DG T", MODELLER_PARAM_TYPE_SELECT, 0, 0, 0}, // TONEX_PARAM_DELAY_DIGITAL_TS, + {0, 0, 1000, "DLY DT M", MODELLER_PARAM_TYPE_RANGE, 0, 0, 0}, // TONEX_PARAM_DELAY_DIGITAL_TIME, + {0, 0, 100, "DLY DT F", MODELLER_PARAM_TYPE_RANGE, 0, 0, 0}, // TONEX_PARAM_DELAY_DIGITAL_FEEDBACK, + {0, 0, 1, "DLY DT O", MODELLER_PARAM_TYPE_SWITCH, 0, 0, 0}, // TONEX_PARAM_DELAY_DIGITAL_MODE, + {0, 0, 100, "DLY DT X", MODELLER_PARAM_TYPE_RANGE, 0, 0, 0}, // TONEX_PARAM_DELAY_DIGITAL_MIX, + {0, 0, 1, "DLY TA S", MODELLER_PARAM_TYPE_SWITCH, 0, 0, 0}, // TONEX_PARAM_DELAY_TAPE_SYNC, + {0, 0, 17, "DLY TA T", MODELLER_PARAM_TYPE_SELECT, 0, 0, 0}, // TONEX_PARAM_DELAY_TAPE_TS, + {0, 0, 1000, "DLY TA M", MODELLER_PARAM_TYPE_RANGE, 0, 0, 0}, // TONEX_PARAM_DELAY_TAPE_TIME, + {0, 0, 100, "DLY TA F", MODELLER_PARAM_TYPE_RANGE, 0, 0, 0}, // TONEX_PARAM_DELAY_TAPE_FEEDBACK, + {0, 0, 1, "DLY TA O", MODELLER_PARAM_TYPE_SWITCH, 0, 0, 0}, // TONEX_PARAM_DELAY_TAPE_MODE, + {0, 0, 100, "DLY TA X", MODELLER_PARAM_TYPE_RANGE, 0, 0, 0}, // TONEX_PARAM_DELAY_TAPE_MIX, // dummy end of params marker - {0, 0, 0, "LAST", MODELLER_PARAM_TYPE_RANGE}, // TONEX_PARAM_LAST, + {0, 0, 0, "LAST", MODELLER_PARAM_TYPE_RANGE, 0, 0, 0}, // TONEX_PARAM_LAST, //************* Global params ***************** - {80, 40, 240, "BPM", MODELLER_PARAM_TYPE_RANGE}, // TONEX_GLOBAL_BPM - {0, -15, 15, "TRIM", MODELLER_PARAM_TYPE_RANGE}, // TONEX_GLOBAL_INPUT_TRIM - {0, 0, 1, "CABSIM", MODELLER_PARAM_TYPE_SWITCH}, // TONEX_GLOBAL_CABSIM_BYPASS - {0, 0, 1, "TEMPOS", MODELLER_PARAM_TYPE_SWITCH}, // TONEX_GLOBAL_TEMPO_SOURCE - {440, 415, 465, "TUNEREF", MODELLER_PARAM_TYPE_RANGE}, // TONEX_GLOBAL_TUNING_REFERENCE - {0, 0, 1, "BYPASS", MODELLER_PARAM_TYPE_SWITCH}, // TONEX_GLOBAL_BYPASS - {0, -40, 3, "MVOL", MODELLER_PARAM_TYPE_RANGE}, // TONEX_GLOBAL_MASTER_VOLUME + {80, 40, 240, "BPM", MODELLER_PARAM_TYPE_RANGE, 0, 0, 0}, // TONEX_GLOBAL_BPM + {0, -15, 15, "TRIM", MODELLER_PARAM_TYPE_RANGE, 0, 0, 0}, // TONEX_GLOBAL_INPUT_TRIM + {0, 0, 1, "CABSIM", MODELLER_PARAM_TYPE_SWITCH, 0, 0, 0}, // TONEX_GLOBAL_CABSIM_BYPASS + {0, 0, 1, "TEMPOS", MODELLER_PARAM_TYPE_SWITCH, 0, 0, 0}, // TONEX_GLOBAL_TEMPO_SOURCE + {440, 415, 465, "TUNEREF", MODELLER_PARAM_TYPE_RANGE, 0, 0, 0}, // TONEX_GLOBAL_TUNING_REFERENCE + {0, 0, 1, "BYPASS", MODELLER_PARAM_TYPE_SWITCH, 0, 0, 0}, // TONEX_GLOBAL_BYPASS + {0, -40, 3, "MVOL", MODELLER_PARAM_TYPE_RANGE, 0, 0, 0}, // TONEX_GLOBAL_MASTER_VOLUME }; static tTonexPresetColor TonexPresetColors[MAX_SUPPORTED_PRESETS]; diff --git a/source/main/tonex_params.h b/source/main/tonex_params.h index 70d854b0..d6206416 100644 --- a/source/main/tonex_params.h +++ b/source/main/tonex_params.h @@ -197,9 +197,6 @@ enum TonexParameters TONEX_GLOBAL_LAST }; -// special cases for handling effect switches that use Midi but don't change a parameter -#define TONEX_UNKNOWN 0xFFFF - typedef struct { uint8_t red; diff --git a/source/main/ui_generated_320x170land/screens.c b/source/main/ui_generated_320x170land/screens.c index 69109896..61292aad 100644 --- a/source/main/ui_generated_320x170land/screens.c +++ b/source/main/ui_generated_320x170land/screens.c @@ -96,7 +96,7 @@ void create_screen_screen1() { lv_obj_set_pos(obj, 183, -21); lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); lv_img_set_src(obj, &img_wifi_conn); - lv_img_set_zoom(obj, 192); + lv_img_set_zoom(obj, 160); lv_obj_add_flag(obj, LV_OBJ_FLAG_HIDDEN); } { @@ -116,7 +116,7 @@ void create_screen_screen1() { lv_obj_set_pos(obj, 248, -21); lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); lv_img_set_src(obj, &img_usb_ok); - lv_img_set_zoom(obj, 192); + lv_img_set_zoom(obj, 180); lv_obj_add_flag(obj, LV_OBJ_FLAG_HIDDEN); } } diff --git a/source/main/ui_generated_480x320land/images.c b/source/main/ui_generated_480x320land/images.c index 0acca683..d24623b7 100644 --- a/source/main/ui_generated_480x320land/images.c +++ b/source/main/ui_generated_480x320land/images.c @@ -1,6 +1,6 @@ #include "images.h" -const ext_img_desc_t images[113] = { +const ext_img_desc_t images[115] = { { "arrow_left", &img_arrow_left }, { "arrow_right", &img_arrow_right }, { "bt_conn", &img_bt_conn }, @@ -114,4 +114,6 @@ const ext_img_desc_t images[113] = { { "rvb_on", &img_rvb_on }, { "tc_off", &img_tc_off }, { "tc_on", &img_tc_on }, + { "amp_disabled", &img_amp_disabled }, + { "cab_disabled", &img_cab_disabled }, }; diff --git a/source/main/ui_generated_480x320land/images.h b/source/main/ui_generated_480x320land/images.h index b175c9dd..3bb1d145 100644 --- a/source/main/ui_generated_480x320land/images.h +++ b/source/main/ui_generated_480x320land/images.h @@ -120,6 +120,8 @@ extern const lv_img_dsc_t img_rvb_off; extern const lv_img_dsc_t img_rvb_on; extern const lv_img_dsc_t img_tc_off; extern const lv_img_dsc_t img_tc_on; +extern const lv_img_dsc_t img_amp_disabled; +extern const lv_img_dsc_t img_cab_disabled; #ifndef EXT_IMG_DESC_T #define EXT_IMG_DESC_T @@ -129,7 +131,7 @@ typedef struct _ext_img_desc_t { } ext_img_desc_t; #endif -extern const ext_img_desc_t images[113]; +extern const ext_img_desc_t images[115]; #ifdef __cplusplus diff --git a/source/main/ui_generated_480x320land/screens.c b/source/main/ui_generated_480x320land/screens.c index 9de0e989..4fd5ed9e 100644 --- a/source/main/ui_generated_480x320land/screens.c +++ b/source/main/ui_generated_480x320land/screens.c @@ -256,53 +256,6 @@ void create_screen_screen1() { lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_MAIN | LV_STATE_DEFAULT); lv_obj_set_style_bg_opa(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); } - { - // ui_LeftArrow - lv_obj_t *obj = lv_img_create(parent_obj); - objects.ui_left_arrow = obj; - lv_obj_set_pos(obj, 6, 90); - lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); - lv_img_set_src(obj, &img_arrow_left); - lv_img_set_zoom(obj, 192); - lv_obj_add_event_cb(obj, action_amp_skin_previous, LV_EVENT_PRESSED, (void *)0); - lv_obj_add_flag(obj, LV_OBJ_FLAG_HIDDEN|LV_OBJ_FLAG_CLICKABLE); - lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); - } - { - // ui_RightArrow - lv_obj_t *obj = lv_img_create(parent_obj); - objects.ui_right_arrow = obj; - lv_obj_set_pos(obj, 397, 90); - lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); - lv_img_set_src(obj, &img_arrow_right); - lv_img_set_zoom(obj, 192); - lv_obj_add_event_cb(obj, action_amp_skin_next, LV_EVENT_PRESSED, (void *)0); - lv_obj_add_flag(obj, LV_OBJ_FLAG_HIDDEN|LV_OBJ_FLAG_CLICKABLE); - lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); - } - { - // ui_EntryKeyboard - lv_obj_t *obj = lv_keyboard_create(parent_obj); - objects.ui_entry_keyboard = obj; - lv_obj_set_pos(obj, 0, 0); - lv_obj_set_size(obj, 480, 183); - lv_obj_add_event_cb(obj, action_keyboard_ok, LV_EVENT_READY, (void *)0); - lv_obj_add_flag(obj, LV_OBJ_FLAG_HIDDEN); - lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); - lv_obj_set_style_align(obj, LV_ALIGN_DEFAULT, LV_PART_MAIN | LV_STATE_DEFAULT); - } - { - // ui_OKTick - lv_obj_t *obj = lv_img_create(parent_obj); - objects.ui_ok_tick = obj; - lv_obj_set_pos(obj, 197, 258); - lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); - lv_img_set_src(obj, &img_tick); - lv_img_set_zoom(obj, 192); - lv_obj_add_event_cb(obj, action_save_skin_edit, LV_EVENT_PRESSED, (void *)0); - lv_obj_add_flag(obj, LV_OBJ_FLAG_HIDDEN|LV_OBJ_FLAG_CLICKABLE); - lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); - } { // ui_BottomPanelTonex lv_obj_t *obj = lv_obj_create(parent_obj); @@ -443,8 +396,8 @@ void create_screen_screen1() { lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); lv_img_set_src(obj, &img_pre_off); lv_img_set_zoom(obj, 200); - lv_obj_add_event_cb(obj, action_effect_icon_clicked, LV_EVENT_SHORT_CLICKED, (void *)0); lv_obj_add_event_cb(obj, action_effect_icon_clicked, LV_EVENT_LONG_PRESSED, (void *)0); + lv_obj_add_event_cb(obj, action_effect_icon_clicked, LV_EVENT_SHORT_CLICKED, (void *)0); lv_obj_add_flag(obj, LV_OBJ_FLAG_CLICKABLE); } { @@ -568,6 +521,53 @@ void create_screen_screen1() { } } } + { + // ui_LeftArrow + lv_obj_t *obj = lv_img_create(parent_obj); + objects.ui_left_arrow = obj; + lv_obj_set_pos(obj, 6, 90); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_img_set_src(obj, &img_arrow_left); + lv_img_set_zoom(obj, 192); + lv_obj_add_event_cb(obj, action_amp_skin_previous, LV_EVENT_PRESSED, (void *)0); + lv_obj_add_flag(obj, LV_OBJ_FLAG_HIDDEN|LV_OBJ_FLAG_CLICKABLE); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + } + { + // ui_RightArrow + lv_obj_t *obj = lv_img_create(parent_obj); + objects.ui_right_arrow = obj; + lv_obj_set_pos(obj, 397, 90); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_img_set_src(obj, &img_arrow_right); + lv_img_set_zoom(obj, 192); + lv_obj_add_event_cb(obj, action_amp_skin_next, LV_EVENT_PRESSED, (void *)0); + lv_obj_add_flag(obj, LV_OBJ_FLAG_HIDDEN|LV_OBJ_FLAG_CLICKABLE); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + } + { + // ui_EntryKeyboard + lv_obj_t *obj = lv_keyboard_create(parent_obj); + objects.ui_entry_keyboard = obj; + lv_obj_set_pos(obj, 0, 0); + lv_obj_set_size(obj, 480, 183); + lv_obj_add_event_cb(obj, action_keyboard_ok, LV_EVENT_READY, (void *)0); + lv_obj_add_flag(obj, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_align(obj, LV_ALIGN_DEFAULT, LV_PART_MAIN | LV_STATE_DEFAULT); + } + { + // ui_OKTick + lv_obj_t *obj = lv_img_create(parent_obj); + objects.ui_ok_tick = obj; + lv_obj_set_pos(obj, 197, 258); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_img_set_src(obj, &img_tick); + lv_img_set_zoom(obj, 192); + lv_obj_add_event_cb(obj, action_save_skin_edit, LV_EVENT_PRESSED, (void *)0); + lv_obj_add_flag(obj, LV_OBJ_FLAG_HIDDEN|LV_OBJ_FLAG_CLICKABLE); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + } } } } @@ -2470,12 +2470,2800 @@ void create_screen_settings() { void tick_screen_settings() { } +void create_screen_val_settings() { + lv_obj_t *obj = lv_obj_create(0); + objects.val_settings = obj; + lv_obj_set_pos(obj, 0, 0); + lv_obj_set_size(obj, 480, 320); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE|LV_OBJ_FLAG_SCROLL_MOMENTUM|LV_OBJ_FLAG_SCROLL_CHAIN_HOR|LV_OBJ_FLAG_SCROLL_CHAIN_VER); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff1f1f1f), LV_PART_MAIN | LV_STATE_DEFAULT); + { + lv_obj_t *parent_obj = obj; + { + // ui_ValSettingsTabView + lv_obj_t *obj = lv_tabview_create(parent_obj, LV_DIR_TOP, 52); + objects.ui_val_settings_tab_view = obj; + lv_obj_set_pos(obj, 5, 5); + lv_obj_set_size(obj, 480, 320); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE|LV_OBJ_FLAG_SCROLL_CHAIN_HOR|LV_OBJ_FLAG_SCROLL_CHAIN_VER|LV_OBJ_FLAG_SCROLL_ELASTIC|LV_OBJ_FLAG_SCROLL_MOMENTUM|LV_OBJ_FLAG_SCROLL_WITH_ARROW); + lv_obj_set_scrollbar_mode(obj, LV_SCROLLBAR_MODE_OFF); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff1f1f1f), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_outline_color(obj, lv_color_hex(0xff3b3c40), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_outline_width(obj, 3, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_opa(obj, 255, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_CHECKED); + lv_obj_set_style_text_color(obj, lv_color_hex(0xfffb9230), LV_PART_MAIN | LV_STATE_CHECKED); + lv_obj_set_style_bg_opa(obj, 255, LV_PART_MAIN | LV_STATE_CHECKED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff1f1f1f), LV_PART_MAIN | LV_STATE_CHECKED); + { + lv_obj_t *parent_obj = obj; + { + lv_obj_t *obj = lv_tabview_get_tab_btns(parent_obj); + objects.obj7 = obj; + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff2a2a2a), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_text_color(obj, lv_color_hex(0xffffffff), LV_PART_ITEMS | LV_STATE_DEFAULT); + lv_obj_set_style_border_color(obj, lv_color_hex(0xff373737), LV_PART_ITEMS | LV_STATE_DEFAULT); + lv_obj_set_style_border_width(obj, 2, LV_PART_ITEMS | LV_STATE_DEFAULT); + lv_obj_set_style_border_side(obj, LV_BORDER_SIDE_LEFT, LV_PART_ITEMS | LV_STATE_DEFAULT); + lv_obj_set_style_border_color(obj, lv_color_hex(0xff96969e), LV_PART_ITEMS | LV_STATE_CHECKED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff2196f3), LV_PART_ITEMS | LV_STATE_CHECKED); + } + { + // ui_ValNRTab + lv_obj_t *obj = lv_tabview_add_tab(parent_obj, "NR"); + objects.ui_val_nr_tab = obj; + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE|LV_OBJ_FLAG_SCROLL_CHAIN_HOR|LV_OBJ_FLAG_SCROLL_CHAIN_VER|LV_OBJ_FLAG_SCROLL_ELASTIC|LV_OBJ_FLAG_SCROLL_MOMENTUM|LV_OBJ_FLAG_SCROLL_WITH_ARROW); + lv_obj_set_scrollbar_mode(obj, LV_SCROLLBAR_MODE_OFF); + lv_obj_set_style_text_color(obj, lv_color_hex(0xfffb9230), LV_PART_MAIN | LV_STATE_CHECKED); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_CHECKED); + lv_obj_set_style_border_color(obj, lv_color_hex(0xff373737), LV_PART_MAIN | LV_STATE_CHECKED); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_text_color(obj, lv_color_hex(0xfffafafa), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_top(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_bottom(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_left(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_right(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_row(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_column(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_border_color(obj, lv_color_hex(0xff373737), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_border_width(obj, 2, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_border_side(obj, LV_BORDER_SIDE_LEFT, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff513d2b), LV_PART_MAIN | LV_STATE_PRESSED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff513d2b), LV_PART_MAIN | LV_STATE_CHECKED | LV_STATE_PRESSED); + { + lv_obj_t *parent_obj = obj; + { + // ui_ValNRBlockLabel + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_nr_block_label = obj; + lv_obj_set_pos(obj, 4, -110); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE|LV_OBJ_FLAG_SCROLL_CHAIN_HOR|LV_OBJ_FLAG_SCROLL_CHAIN_VER|LV_OBJ_FLAG_SCROLL_ELASTIC|LV_OBJ_FLAG_SCROLL_MOMENTUM|LV_OBJ_FLAG_SCROLL_WITH_ARROW); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_text_align(obj, LV_TEXT_ALIGN_AUTO, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Enable"); + } + { + // ui_ValNRBlockSwitch + lv_obj_t *obj = lv_switch_create(parent_obj); + objects.ui_val_nr_block_switch = obj; + lv_obj_set_pos(obj, 113, -109); + lv_obj_set_size(obj, 60, 24); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_CHECKED); + } + { + // ui_ValNRModelDropdown + lv_obj_t *obj = lv_dropdown_create(parent_obj); + objects.ui_val_nr_model_dropdown = obj; + lv_obj_set_pos(obj, 298, 1); + lv_obj_set_size(obj, 165, 38); + lv_dropdown_set_options(obj, "Noise Gate"); + lv_dropdown_set_selected(obj, 0); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_VALUE_CHANGED, (void *)0); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff1f1f1f), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_SELECTED | LV_STATE_CHECKED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_SELECTED | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_SELECTED | LV_STATE_CHECKED | LV_STATE_PRESSED); + { + lv_obj_t *parent_obj = obj; + { + lv_obj_t *obj = lv_dropdown_get_list(parent_obj); + objects.obj8 = obj; + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff1f1f1f), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_SELECTED | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_SELECTED | LV_STATE_CHECKED); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_SELECTED | LV_STATE_CHECKED); + } + } + } + { + // ui_ValNRParam0Label + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_nr_param0_label = obj; + lv_obj_set_pos(obj, 4, -72); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Param0"); + } + { + // ui_ValNRParam0Slider + lv_obj_t *obj = lv_slider_create(parent_obj); + objects.ui_val_nr_param0_slider = obj; + lv_obj_set_pos(obj, 113, -72); + lv_obj_set_size(obj, 290, 15); + lv_slider_set_range(obj, -100, -20); + lv_slider_set_value(obj, -64, LV_ANIM_OFF); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_SCROLLED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + } + { + // ui_ValNRParam0Value + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_nr_param0_value = obj; + lv_obj_set_pos(obj, 417, -72); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "0"); + } + { + // ui_ValNRParam1Label + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_nr_param1_label = obj; + lv_obj_set_pos(obj, 4, -34); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Param1"); + } + { + // ui_ValNRParam1Slider + lv_obj_t *obj = lv_slider_create(parent_obj); + objects.ui_val_nr_param1_slider = obj; + lv_obj_set_pos(obj, 113, -34); + lv_obj_set_size(obj, 290, 15); + lv_slider_set_range(obj, -100, -20); + lv_slider_set_value(obj, -64, LV_ANIM_OFF); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_SCROLLED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + } + { + // ui_ValNRParam1Value + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_nr_param1_value = obj; + lv_obj_set_pos(obj, 417, -36); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "0"); + } + { + // ui_ValNRParam2Label + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_nr_param2_label = obj; + lv_obj_set_pos(obj, 4, 4); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Param2"); + } + { + // ui_ValNRParam2Slider + lv_obj_t *obj = lv_slider_create(parent_obj); + objects.ui_val_nr_param2_slider = obj; + lv_obj_set_pos(obj, 113, 4); + lv_obj_set_size(obj, 290, 15); + lv_slider_set_range(obj, -100, -20); + lv_slider_set_value(obj, -64, LV_ANIM_OFF); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_SCROLLED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + } + { + // ui_ValNRParam2Value + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_nr_param2_value = obj; + lv_obj_set_pos(obj, 417, 4); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "0"); + } + { + // ui_ValNRParam3Label + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_nr_param3_label = obj; + lv_obj_set_pos(obj, 4, 42); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Param3"); + } + { + // ui_ValNRParam3Slider + lv_obj_t *obj = lv_slider_create(parent_obj); + objects.ui_val_nr_param3_slider = obj; + lv_obj_set_pos(obj, 113, 42); + lv_obj_set_size(obj, 290, 15); + lv_slider_set_range(obj, -100, -20); + lv_slider_set_value(obj, -64, LV_ANIM_OFF); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_SCROLLED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + } + { + // ui_ValNRParam3Value + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_nr_param3_value = obj; + lv_obj_set_pos(obj, 417, 42); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "0"); + } + { + // ui_ValNRParam4Label + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_nr_param4_label = obj; + lv_obj_set_pos(obj, 4, 80); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Param4"); + } + { + // ui_ValNRParam4Slider + lv_obj_t *obj = lv_slider_create(parent_obj); + objects.ui_val_nr_param4_slider = obj; + lv_obj_set_pos(obj, 113, 80); + lv_obj_set_size(obj, 290, 15); + lv_slider_set_range(obj, -100, -20); + lv_slider_set_value(obj, -64, LV_ANIM_OFF); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_SCROLLED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + } + { + // ui_ValNRParam4Value + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_nr_param4_value = obj; + lv_obj_set_pos(obj, 417, 80); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "0"); + } + } + } + { + // ui_ValPreTab + lv_obj_t *obj = lv_tabview_add_tab(parent_obj, "Pre"); + objects.ui_val_pre_tab = obj; + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE|LV_OBJ_FLAG_SCROLL_CHAIN_HOR|LV_OBJ_FLAG_SCROLL_CHAIN_VER|LV_OBJ_FLAG_SCROLL_ELASTIC|LV_OBJ_FLAG_SCROLL_MOMENTUM|LV_OBJ_FLAG_SCROLL_WITH_ARROW); + lv_obj_set_scrollbar_mode(obj, LV_SCROLLBAR_MODE_OFF); + lv_obj_set_style_text_color(obj, lv_color_hex(0xfffb9230), LV_PART_MAIN | LV_STATE_CHECKED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff513d2b), LV_PART_MAIN | LV_STATE_CHECKED); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_20, LV_PART_MAIN | LV_STATE_CHECKED); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_20, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_top(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_bottom(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_left(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_right(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_row(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_column(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_border_width(obj, 2, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_border_color(obj, lv_color_hex(0xff373737), LV_PART_MAIN | LV_STATE_DEFAULT); + { + lv_obj_t *parent_obj = obj; + { + // ui_ValNPreBlockLabel + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_npre_block_label = obj; + lv_obj_set_pos(obj, 4, -110); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE|LV_OBJ_FLAG_SCROLL_CHAIN_HOR|LV_OBJ_FLAG_SCROLL_CHAIN_VER|LV_OBJ_FLAG_SCROLL_ELASTIC|LV_OBJ_FLAG_SCROLL_MOMENTUM|LV_OBJ_FLAG_SCROLL_WITH_ARROW); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_text_align(obj, LV_TEXT_ALIGN_AUTO, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Enable"); + } + { + // ui_ValPreBlockSwitch + lv_obj_t *obj = lv_switch_create(parent_obj); + objects.ui_val_pre_block_switch = obj; + lv_obj_set_pos(obj, 113, -110); + lv_obj_set_size(obj, 60, 24); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_CHECKED); + } + { + // ui_ValPreModelDropdown + lv_obj_t *obj = lv_dropdown_create(parent_obj); + objects.ui_val_pre_model_dropdown = obj; + lv_obj_set_pos(obj, 298, 1); + lv_obj_set_size(obj, 165, 38); + lv_dropdown_set_options(obj, "Comp\nComp4\nBoost\nMicro Boost\nB-Boost\nToucher\nCrier\nOcta\nPitch\nDetune"); + lv_dropdown_set_selected(obj, 0); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_VALUE_CHANGED, (void *)0); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff1f1f1f), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_SELECTED | LV_STATE_CHECKED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_SELECTED | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_SELECTED | LV_STATE_CHECKED | LV_STATE_PRESSED); + { + lv_obj_t *parent_obj = obj; + { + lv_obj_t *obj = lv_dropdown_get_list(parent_obj); + objects.obj9 = obj; + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff1f1f1f), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_SELECTED | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_SELECTED | LV_STATE_CHECKED); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_SELECTED | LV_STATE_CHECKED); + } + } + } + { + // ui_ValPreParam0Label + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_pre_param0_label = obj; + lv_obj_set_pos(obj, 4, -72); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Param0"); + } + { + // ui_ValPreParam0Slider + lv_obj_t *obj = lv_slider_create(parent_obj); + objects.ui_val_pre_param0_slider = obj; + lv_obj_set_pos(obj, 113, -72); + lv_obj_set_size(obj, 290, 15); + lv_slider_set_range(obj, -100, -20); + lv_slider_set_value(obj, -64, LV_ANIM_OFF); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_SCROLLED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + } + { + // ui_ValPreParam0Value + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_pre_param0_value = obj; + lv_obj_set_pos(obj, 417, -72); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "0"); + } + { + // ui_ValPreParam1Label + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_pre_param1_label = obj; + lv_obj_set_pos(obj, 4, -34); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Param1"); + } + { + // ui_ValPreParam1Slider + lv_obj_t *obj = lv_slider_create(parent_obj); + objects.ui_val_pre_param1_slider = obj; + lv_obj_set_pos(obj, 113, -34); + lv_obj_set_size(obj, 290, 15); + lv_slider_set_range(obj, -100, -20); + lv_slider_set_value(obj, -64, LV_ANIM_OFF); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_SCROLLED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + } + { + // ui_ValPreParam1Value + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_pre_param1_value = obj; + lv_obj_set_pos(obj, 417, -34); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "0"); + } + { + // ui_ValPreParam2Label + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_pre_param2_label = obj; + lv_obj_set_pos(obj, 4, 4); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Param2"); + } + { + // ui_ValPreParam2Slider + lv_obj_t *obj = lv_slider_create(parent_obj); + objects.ui_val_pre_param2_slider = obj; + lv_obj_set_pos(obj, 113, 4); + lv_obj_set_size(obj, 290, 15); + lv_slider_set_range(obj, -100, -20); + lv_slider_set_value(obj, -64, LV_ANIM_OFF); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_SCROLLED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + } + { + // ui_ValPreParam2Value + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_pre_param2_value = obj; + lv_obj_set_pos(obj, 417, 4); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "0"); + } + { + // ui_ValPreParam3Label + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_pre_param3_label = obj; + lv_obj_set_pos(obj, 4, 42); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Param3"); + } + { + // ui_ValPreParam3Slider + lv_obj_t *obj = lv_slider_create(parent_obj); + objects.ui_val_pre_param3_slider = obj; + lv_obj_set_pos(obj, 113, 42); + lv_obj_set_size(obj, 290, 15); + lv_slider_set_range(obj, -100, -20); + lv_slider_set_value(obj, -64, LV_ANIM_OFF); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_SCROLLED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + } + { + // ui_ValPreParam3Value + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_pre_param3_value = obj; + lv_obj_set_pos(obj, 417, 42); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "0"); + } + { + // ui_ValPreParam4Label + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_pre_param4_label = obj; + lv_obj_set_pos(obj, 4, 80); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Param4"); + } + { + // ui_ValPreParam4Slider + lv_obj_t *obj = lv_slider_create(parent_obj); + objects.ui_val_pre_param4_slider = obj; + lv_obj_set_pos(obj, 113, 80); + lv_obj_set_size(obj, 290, 15); + lv_slider_set_range(obj, -100, -20); + lv_slider_set_value(obj, -64, LV_ANIM_OFF); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_SCROLLED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + } + { + // ui_ValPreParam4Value + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_pre_param4_value = obj; + lv_obj_set_pos(obj, 417, 80); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "0"); + } + } + } + { + // ui_ValDstTab + lv_obj_t *obj = lv_tabview_add_tab(parent_obj, "Dst"); + objects.ui_val_dst_tab = obj; + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE|LV_OBJ_FLAG_SCROLL_CHAIN_HOR|LV_OBJ_FLAG_SCROLL_CHAIN_VER|LV_OBJ_FLAG_SCROLL_ELASTIC|LV_OBJ_FLAG_SCROLL_MOMENTUM|LV_OBJ_FLAG_SCROLL_WITH_ARROW); + lv_obj_set_scrollbar_mode(obj, LV_SCROLLBAR_MODE_OFF); + lv_obj_set_style_text_color(obj, lv_color_hex(0xfffb9230), LV_PART_MAIN | LV_STATE_CHECKED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff513d2b), LV_PART_MAIN | LV_STATE_CHECKED); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_20, LV_PART_MAIN | LV_STATE_CHECKED); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_20, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_top(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_bottom(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_left(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_right(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_row(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_column(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_border_width(obj, 2, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_border_color(obj, lv_color_hex(0xff373737), LV_PART_MAIN | LV_STATE_DEFAULT); + { + lv_obj_t *parent_obj = obj; + { + // ui_ValDstBlockLabel + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_dst_block_label = obj; + lv_obj_set_pos(obj, 4, -110); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE|LV_OBJ_FLAG_SCROLL_CHAIN_HOR|LV_OBJ_FLAG_SCROLL_CHAIN_VER|LV_OBJ_FLAG_SCROLL_ELASTIC|LV_OBJ_FLAG_SCROLL_MOMENTUM|LV_OBJ_FLAG_SCROLL_WITH_ARROW); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_text_align(obj, LV_TEXT_ALIGN_AUTO, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Enable"); + } + { + // ui_ValDstBlockSwitch + lv_obj_t *obj = lv_switch_create(parent_obj); + objects.ui_val_dst_block_switch = obj; + lv_obj_set_pos(obj, 113, -110); + lv_obj_set_size(obj, 60, 24); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_CHECKED); + } + { + // ui_ValDstModelDropdown + lv_obj_t *obj = lv_dropdown_create(parent_obj); + objects.ui_val_dst_model_dropdown = obj; + lv_obj_set_pos(obj, 298, 1); + lv_obj_set_size(obj, 165, 38); + lv_dropdown_set_options(obj, "Green OD\nYellow OD\nSuper OD\nSM Dist\nPlustortion\nLa Charger\nDarktale\nSora Fuzz\nRed Haze\nBass OD"); + lv_dropdown_set_selected(obj, 0); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_VALUE_CHANGED, (void *)0); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff1f1f1f), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_SELECTED | LV_STATE_CHECKED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_SELECTED | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_SELECTED | LV_STATE_CHECKED | LV_STATE_PRESSED); + { + lv_obj_t *parent_obj = obj; + { + lv_obj_t *obj = lv_dropdown_get_list(parent_obj); + objects.obj10 = obj; + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff1f1f1f), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_SELECTED | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_SELECTED | LV_STATE_CHECKED); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_SELECTED | LV_STATE_CHECKED); + } + } + } + { + // ui_ValDstParam0Label + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_dst_param0_label = obj; + lv_obj_set_pos(obj, 4, -72); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Param0"); + } + { + // ui_ValDstParam0Slider + lv_obj_t *obj = lv_slider_create(parent_obj); + objects.ui_val_dst_param0_slider = obj; + lv_obj_set_pos(obj, 113, -72); + lv_obj_set_size(obj, 290, 15); + lv_slider_set_range(obj, -100, -20); + lv_slider_set_value(obj, -64, LV_ANIM_OFF); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_SCROLLED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + } + { + // ui_ValDstParam0Value + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_dst_param0_value = obj; + lv_obj_set_pos(obj, 417, -72); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "0"); + } + { + // ui_ValDstParam1Label + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_dst_param1_label = obj; + lv_obj_set_pos(obj, 4, -34); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Param1"); + } + { + // ui_ValDstParam1Slider + lv_obj_t *obj = lv_slider_create(parent_obj); + objects.ui_val_dst_param1_slider = obj; + lv_obj_set_pos(obj, 113, -34); + lv_obj_set_size(obj, 290, 15); + lv_slider_set_range(obj, -100, -20); + lv_slider_set_value(obj, -64, LV_ANIM_OFF); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_SCROLLED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + } + { + // ui_ValDstParam1Value + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_dst_param1_value = obj; + lv_obj_set_pos(obj, 417, -34); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "0"); + } + { + // ui_ValDstParam2Label + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_dst_param2_label = obj; + lv_obj_set_pos(obj, 4, 4); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Param2"); + } + { + // ui_ValDstParam2Slider + lv_obj_t *obj = lv_slider_create(parent_obj); + objects.ui_val_dst_param2_slider = obj; + lv_obj_set_pos(obj, 113, 4); + lv_obj_set_size(obj, 290, 15); + lv_slider_set_range(obj, -100, -20); + lv_slider_set_value(obj, -64, LV_ANIM_OFF); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_SCROLLED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + } + { + // ui_ValDstParam2Value + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_dst_param2_value = obj; + lv_obj_set_pos(obj, 417, 4); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "0"); + } + { + // ui_ValDstParam3Label + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_dst_param3_label = obj; + lv_obj_set_pos(obj, 4, 42); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Param3"); + } + { + // ui_ValDstParam3Slider + lv_obj_t *obj = lv_slider_create(parent_obj); + objects.ui_val_dst_param3_slider = obj; + lv_obj_set_pos(obj, 113, 42); + lv_obj_set_size(obj, 290, 15); + lv_slider_set_range(obj, -100, -20); + lv_slider_set_value(obj, -64, LV_ANIM_OFF); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_SCROLLED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + } + { + // ui_ValDstParam3Value + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_dst_param3_value = obj; + lv_obj_set_pos(obj, 417, 42); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "0"); + } + { + // ui_ValDstParam4Label + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_dst_param4_label = obj; + lv_obj_set_pos(obj, 4, 80); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Param4"); + } + { + // ui_ValDstParam4Slider + lv_obj_t *obj = lv_slider_create(parent_obj); + objects.ui_val_dst_param4_slider = obj; + lv_obj_set_pos(obj, 113, 80); + lv_obj_set_size(obj, 290, 15); + lv_slider_set_range(obj, -100, -20); + lv_slider_set_value(obj, -64, LV_ANIM_OFF); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_SCROLLED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + } + { + // ui_ValDstParam4Value + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_dst_param4_value = obj; + lv_obj_set_pos(obj, 417, 80); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "0"); + } + } + } + { + // ui_ValAmpTab + lv_obj_t *obj = lv_tabview_add_tab(parent_obj, "Amp"); + objects.ui_val_amp_tab = obj; + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE|LV_OBJ_FLAG_SCROLL_CHAIN_HOR|LV_OBJ_FLAG_SCROLL_CHAIN_VER|LV_OBJ_FLAG_SCROLL_ELASTIC|LV_OBJ_FLAG_SCROLL_MOMENTUM|LV_OBJ_FLAG_SCROLL_WITH_ARROW); + lv_obj_set_scrollbar_mode(obj, LV_SCROLLBAR_MODE_OFF); + lv_obj_set_style_text_color(obj, lv_color_hex(0xfffb9230), LV_PART_MAIN | LV_STATE_CHECKED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff513d2b), LV_PART_MAIN | LV_STATE_CHECKED); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_20, LV_PART_MAIN | LV_STATE_CHECKED); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_20, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_top(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_bottom(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_left(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_right(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_row(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_column(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_border_width(obj, 2, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_border_color(obj, lv_color_hex(0xff373737), LV_PART_MAIN | LV_STATE_DEFAULT); + { + lv_obj_t *parent_obj = obj; + { + // ui_ValAmpBlockLabel + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_amp_block_label = obj; + lv_obj_set_pos(obj, 4, -110); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE|LV_OBJ_FLAG_SCROLL_CHAIN_HOR|LV_OBJ_FLAG_SCROLL_CHAIN_VER|LV_OBJ_FLAG_SCROLL_ELASTIC|LV_OBJ_FLAG_SCROLL_MOMENTUM|LV_OBJ_FLAG_SCROLL_WITH_ARROW); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_text_align(obj, LV_TEXT_ALIGN_AUTO, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Enable"); + } + { + // ui_ValAmpBlockSwitch + lv_obj_t *obj = lv_switch_create(parent_obj); + objects.ui_val_amp_block_switch = obj; + lv_obj_set_pos(obj, 113, -110); + lv_obj_set_size(obj, 60, 24); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_CHECKED); + } + { + // ui_ValAmpModelDropdown + lv_obj_t *obj = lv_dropdown_create(parent_obj); + objects.ui_val_amp_model_dropdown = obj; + lv_obj_set_pos(obj, 298, 1); + lv_obj_set_size(obj, 165, 38); + lv_dropdown_set_options(obj, "Tweedy\nBellman 59N\nDark Twin\nFoxy 30N\nJ-120 CL\nMatch CL\nL-Star CL\nUK 45\nUK 50JP\nUK 800\nBellman 59B\nFoxy 30TB\nSup Dual OD\nSolo100 OD\nZ38 OD\nBad KT OD\nJuiceW R100\nDizz VH\nDizz VH+\nEagle 120\nEV51\nSolo100 LD\nMess Dual V\nMess Dual M\nPower LD\nFlagman+\nBog Red V\nClassic Bass\nFoxy Bass\nMess Bass\nAC Pre 1\nAC Pre 2\n"); + lv_dropdown_set_selected(obj, 0); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_VALUE_CHANGED, (void *)0); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff1f1f1f), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_SELECTED | LV_STATE_CHECKED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_SELECTED | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_SELECTED | LV_STATE_CHECKED | LV_STATE_PRESSED); + { + lv_obj_t *parent_obj = obj; + { + lv_obj_t *obj = lv_dropdown_get_list(parent_obj); + objects.obj11 = obj; + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff1f1f1f), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_SELECTED | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_SELECTED | LV_STATE_CHECKED); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_SELECTED | LV_STATE_CHECKED); + } + } + } + { + // ui_ValAmpParam0Label + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_amp_param0_label = obj; + lv_obj_set_pos(obj, 4, -72); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Param0"); + } + { + // ui_ValAmpParam0Slider + lv_obj_t *obj = lv_slider_create(parent_obj); + objects.ui_val_amp_param0_slider = obj; + lv_obj_set_pos(obj, 113, -72); + lv_obj_set_size(obj, 290, 15); + lv_slider_set_range(obj, -100, -20); + lv_slider_set_value(obj, -64, LV_ANIM_OFF); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_SCROLLED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + } + { + // ui_ValAmpParam0Value + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_amp_param0_value = obj; + lv_obj_set_pos(obj, 417, -72); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "0"); + } + { + // ui_ValAmpParam1Label + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_amp_param1_label = obj; + lv_obj_set_pos(obj, 4, -34); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Param1"); + } + { + // ui_ValAmpParam1Slider + lv_obj_t *obj = lv_slider_create(parent_obj); + objects.ui_val_amp_param1_slider = obj; + lv_obj_set_pos(obj, 113, -34); + lv_obj_set_size(obj, 290, 15); + lv_slider_set_range(obj, -100, -20); + lv_slider_set_value(obj, -64, LV_ANIM_OFF); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_SCROLLED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + } + { + // ui_ValAmpParam1Value + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_amp_param1_value = obj; + lv_obj_set_pos(obj, 417, -34); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "0"); + } + { + // ui_ValAmpParam2Label + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_amp_param2_label = obj; + lv_obj_set_pos(obj, 4, 4); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Param2"); + } + { + // ui_ValAmpParam2Slider + lv_obj_t *obj = lv_slider_create(parent_obj); + objects.ui_val_amp_param2_slider = obj; + lv_obj_set_pos(obj, 113, 4); + lv_obj_set_size(obj, 290, 15); + lv_slider_set_range(obj, -100, -20); + lv_slider_set_value(obj, -64, LV_ANIM_OFF); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_SCROLLED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + } + { + // ui_ValAmpParam2Value + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_amp_param2_value = obj; + lv_obj_set_pos(obj, 417, 4); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "0"); + } + { + // ui_ValAmpParam3Label + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_amp_param3_label = obj; + lv_obj_set_pos(obj, 4, 42); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Param3"); + } + { + // ui_ValAmpParam3Slider + lv_obj_t *obj = lv_slider_create(parent_obj); + objects.ui_val_amp_param3_slider = obj; + lv_obj_set_pos(obj, 113, 42); + lv_obj_set_size(obj, 290, 15); + lv_slider_set_range(obj, -100, -20); + lv_slider_set_value(obj, -64, LV_ANIM_OFF); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_SCROLLED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + } + { + // ui_ValAmpParam3Value + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_amp_param3_value = obj; + lv_obj_set_pos(obj, 417, 42); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "0"); + } + { + // ui_ValAmpParam4Label + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_amp_param4_label = obj; + lv_obj_set_pos(obj, 4, 80); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Param4"); + } + { + // ui_ValAmpParam4Slider + lv_obj_t *obj = lv_slider_create(parent_obj); + objects.ui_val_amp_param4_slider = obj; + lv_obj_set_pos(obj, 113, 80); + lv_obj_set_size(obj, 290, 15); + lv_slider_set_range(obj, -100, -20); + lv_slider_set_value(obj, -64, LV_ANIM_OFF); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_SCROLLED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + } + { + // ui_ValAmpParam4Value + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_amp_param4_value = obj; + lv_obj_set_pos(obj, 417, 80); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "0"); + } + } + } + { + // ui_ValCabTab + lv_obj_t *obj = lv_tabview_add_tab(parent_obj, "Cab"); + objects.ui_val_cab_tab = obj; + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE|LV_OBJ_FLAG_SCROLL_CHAIN_HOR|LV_OBJ_FLAG_SCROLL_CHAIN_VER|LV_OBJ_FLAG_SCROLL_ELASTIC|LV_OBJ_FLAG_SCROLL_MOMENTUM|LV_OBJ_FLAG_SCROLL_WITH_ARROW); + lv_obj_set_scrollbar_mode(obj, LV_SCROLLBAR_MODE_OFF); + lv_obj_set_style_text_color(obj, lv_color_hex(0xfffb9230), LV_PART_MAIN | LV_STATE_CHECKED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff513d2b), LV_PART_MAIN | LV_STATE_CHECKED); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_20, LV_PART_MAIN | LV_STATE_CHECKED); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_20, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_top(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_bottom(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_left(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_right(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_row(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_column(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_border_width(obj, 2, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_border_color(obj, lv_color_hex(0xff373737), LV_PART_MAIN | LV_STATE_DEFAULT); + { + lv_obj_t *parent_obj = obj; + { + // ui_ValCabBlockLabel + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_cab_block_label = obj; + lv_obj_set_pos(obj, 4, -110); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE|LV_OBJ_FLAG_SCROLL_CHAIN_HOR|LV_OBJ_FLAG_SCROLL_CHAIN_VER|LV_OBJ_FLAG_SCROLL_ELASTIC|LV_OBJ_FLAG_SCROLL_MOMENTUM|LV_OBJ_FLAG_SCROLL_WITH_ARROW); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_text_align(obj, LV_TEXT_ALIGN_AUTO, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Enable"); + } + { + // ui_ValCabBlockSwitch + lv_obj_t *obj = lv_switch_create(parent_obj); + objects.ui_val_cab_block_switch = obj; + lv_obj_set_pos(obj, 113, -110); + lv_obj_set_size(obj, 60, 24); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_CHECKED); + } + { + // ui_ValCabModelDropdown + lv_obj_t *obj = lv_dropdown_create(parent_obj); + objects.ui_val_cab_model_dropdown = obj; + lv_obj_set_pos(obj, 298, 1); + lv_obj_set_size(obj, 165, 38); + lv_dropdown_set_options(obj, "Twd CP\nDark VIT\nFoxy 1x12\nL-Star 1x12\nDark CS 2x12\nDark Twin 2x12\nSup Star 2x12\nJ-120 2x12\nFoxy 2x12\nUK Grn 2x12\nUK Grn 4x12\nBog 4x12\nDizz 4x12\nEV 4x12\nSolo 4x12\nMess 4x12\nEagle 4x12\nJuice 4x12\nBellman 2x12\nAmpg 4x10"); + lv_dropdown_set_selected(obj, 0); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_VALUE_CHANGED, (void *)0); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff1f1f1f), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_SELECTED | LV_STATE_CHECKED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_SELECTED | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_SELECTED | LV_STATE_CHECKED | LV_STATE_PRESSED); + { + lv_obj_t *parent_obj = obj; + { + lv_obj_t *obj = lv_dropdown_get_list(parent_obj); + objects.obj12 = obj; + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff1f1f1f), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_SELECTED | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_SELECTED | LV_STATE_CHECKED); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_SELECTED | LV_STATE_CHECKED); + } + } + } + { + // ui_ValCabParam0Label + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_cab_param0_label = obj; + lv_obj_set_pos(obj, 4, -72); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Param0"); + } + { + // ui_ValCabParam0Slider + lv_obj_t *obj = lv_slider_create(parent_obj); + objects.ui_val_cab_param0_slider = obj; + lv_obj_set_pos(obj, 113, -72); + lv_obj_set_size(obj, 290, 15); + lv_slider_set_range(obj, -100, -20); + lv_slider_set_value(obj, -64, LV_ANIM_OFF); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_SCROLLED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + } + { + // ui_ValCabParam0Value + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_cab_param0_value = obj; + lv_obj_set_pos(obj, 417, -72); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "0"); + } + { + // ui_ValCabParam1Label + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_cab_param1_label = obj; + lv_obj_set_pos(obj, 4, -34); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Param1"); + } + { + // ui_ValCabParam1Slider + lv_obj_t *obj = lv_slider_create(parent_obj); + objects.ui_val_cab_param1_slider = obj; + lv_obj_set_pos(obj, 113, -34); + lv_obj_set_size(obj, 290, 15); + lv_slider_set_range(obj, -100, -20); + lv_slider_set_value(obj, -64, LV_ANIM_OFF); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_SCROLLED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + } + { + // ui_ValCabParam1Value + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_cab_param1_value = obj; + lv_obj_set_pos(obj, 417, -34); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "0"); + } + { + // ui_ValCabParam2Label + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_cab_param2_label = obj; + lv_obj_set_pos(obj, 4, 4); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Param2"); + } + { + // ui_ValCabParam2Slider + lv_obj_t *obj = lv_slider_create(parent_obj); + objects.ui_val_cab_param2_slider = obj; + lv_obj_set_pos(obj, 113, 4); + lv_obj_set_size(obj, 290, 15); + lv_slider_set_range(obj, -100, -20); + lv_slider_set_value(obj, -64, LV_ANIM_OFF); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_SCROLLED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + } + { + // ui_ValCabParam2Value + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_cab_param2_value = obj; + lv_obj_set_pos(obj, 417, 4); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "0"); + } + { + // ui_ValCabParam3Label + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_cab_param3_label = obj; + lv_obj_set_pos(obj, 4, 42); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Param3"); + } + { + // ui_ValCabParam3Slider + lv_obj_t *obj = lv_slider_create(parent_obj); + objects.ui_val_cab_param3_slider = obj; + lv_obj_set_pos(obj, 113, 42); + lv_obj_set_size(obj, 290, 15); + lv_slider_set_range(obj, -100, -20); + lv_slider_set_value(obj, -64, LV_ANIM_OFF); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_SCROLLED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + } + { + // ui_ValCabParam3Value + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_cab_param3_value = obj; + lv_obj_set_pos(obj, 417, 42); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "0"); + } + { + // ui_ValCabParam4Label + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_cab_param4_label = obj; + lv_obj_set_pos(obj, 4, 80); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Param4"); + } + { + // ui_ValCabParam4Slider + lv_obj_t *obj = lv_slider_create(parent_obj); + objects.ui_val_cab_param4_slider = obj; + lv_obj_set_pos(obj, 113, 80); + lv_obj_set_size(obj, 290, 15); + lv_slider_set_range(obj, -100, -20); + lv_slider_set_value(obj, -64, LV_ANIM_OFF); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_SCROLLED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + } + { + // ui_ValCabParam4Value + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_cab_param4_value = obj; + lv_obj_set_pos(obj, 417, 80); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "0"); + } + } + } + { + // ui_ValEQTab + lv_obj_t *obj = lv_tabview_add_tab(parent_obj, "EQ"); + objects.ui_val_eq_tab = obj; + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE|LV_OBJ_FLAG_SCROLL_CHAIN_HOR|LV_OBJ_FLAG_SCROLL_CHAIN_VER|LV_OBJ_FLAG_SCROLL_ELASTIC|LV_OBJ_FLAG_SCROLL_MOMENTUM|LV_OBJ_FLAG_SCROLL_WITH_ARROW); + lv_obj_set_scrollbar_mode(obj, LV_SCROLLBAR_MODE_OFF); + lv_obj_set_style_text_color(obj, lv_color_hex(0xfffb9230), LV_PART_MAIN | LV_STATE_CHECKED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff513d2b), LV_PART_MAIN | LV_STATE_CHECKED); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_20, LV_PART_MAIN | LV_STATE_CHECKED); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_20, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_top(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_bottom(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_left(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_right(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_row(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_column(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_border_width(obj, 2, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_border_color(obj, lv_color_hex(0xff373737), LV_PART_MAIN | LV_STATE_DEFAULT); + { + lv_obj_t *parent_obj = obj; + { + // ui_ValEQBlockLabel + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_eq_block_label = obj; + lv_obj_set_pos(obj, 4, -110); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE|LV_OBJ_FLAG_SCROLL_CHAIN_HOR|LV_OBJ_FLAG_SCROLL_CHAIN_VER|LV_OBJ_FLAG_SCROLL_ELASTIC|LV_OBJ_FLAG_SCROLL_MOMENTUM|LV_OBJ_FLAG_SCROLL_WITH_ARROW); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_text_align(obj, LV_TEXT_ALIGN_AUTO, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Enable"); + } + { + // ui_ValEQBlockSwitch + lv_obj_t *obj = lv_switch_create(parent_obj); + objects.ui_val_eq_block_switch = obj; + lv_obj_set_pos(obj, 113, -110); + lv_obj_set_size(obj, 60, 24); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_CHECKED); + } + { + // ui_ValEQModelDropdown + lv_obj_t *obj = lv_dropdown_create(parent_obj); + objects.ui_val_eq_model_dropdown = obj; + lv_obj_set_pos(obj, 298, 1); + lv_obj_set_size(obj, 165, 38); + lv_dropdown_set_options(obj, "Guitar 1\nGuitar 2\nBass 1\nBass 2\nMess"); + lv_dropdown_set_selected(obj, 0); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_VALUE_CHANGED, (void *)0); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff1f1f1f), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_SELECTED | LV_STATE_CHECKED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_SELECTED | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_SELECTED | LV_STATE_CHECKED | LV_STATE_PRESSED); + { + lv_obj_t *parent_obj = obj; + { + lv_obj_t *obj = lv_dropdown_get_list(parent_obj); + objects.obj13 = obj; + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff1f1f1f), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_SELECTED | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_SELECTED | LV_STATE_CHECKED); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_SELECTED | LV_STATE_CHECKED); + } + } + } + { + // ui_ValEQParam0Label + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_eq_param0_label = obj; + lv_obj_set_pos(obj, 4, -72); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Param0"); + } + { + // ui_ValEQParam0Slider + lv_obj_t *obj = lv_slider_create(parent_obj); + objects.ui_val_eq_param0_slider = obj; + lv_obj_set_pos(obj, 113, -72); + lv_obj_set_size(obj, 290, 15); + lv_slider_set_range(obj, -100, -20); + lv_slider_set_value(obj, -64, LV_ANIM_OFF); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_SCROLLED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + } + { + // ui_ValEQParam0Value + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_eq_param0_value = obj; + lv_obj_set_pos(obj, 417, -72); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "0"); + } + { + // ui_ValEQParam1Label + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_eq_param1_label = obj; + lv_obj_set_pos(obj, 4, -34); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Param1"); + } + { + // ui_ValEQParam1Slider + lv_obj_t *obj = lv_slider_create(parent_obj); + objects.ui_val_eq_param1_slider = obj; + lv_obj_set_pos(obj, 113, -34); + lv_obj_set_size(obj, 290, 15); + lv_slider_set_range(obj, -100, -20); + lv_slider_set_value(obj, -64, LV_ANIM_OFF); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_SCROLLED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + } + { + // ui_ValEQParam1Value + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_eq_param1_value = obj; + lv_obj_set_pos(obj, 417, -34); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "0"); + } + { + // ui_ValEQParam2Label + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_eq_param2_label = obj; + lv_obj_set_pos(obj, 4, 4); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Param2"); + } + { + // ui_ValEQParam2Slider + lv_obj_t *obj = lv_slider_create(parent_obj); + objects.ui_val_eq_param2_slider = obj; + lv_obj_set_pos(obj, 113, 4); + lv_obj_set_size(obj, 290, 15); + lv_slider_set_range(obj, -100, -20); + lv_slider_set_value(obj, -64, LV_ANIM_OFF); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_SCROLLED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + } + { + // ui_ValEQParam2Value + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_eq_param2_value = obj; + lv_obj_set_pos(obj, 417, 4); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "0"); + } + { + // ui_ValEQParam3Label + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_eq_param3_label = obj; + lv_obj_set_pos(obj, 4, 42); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Param3"); + } + { + // ui_ValEQParam3Slider + lv_obj_t *obj = lv_slider_create(parent_obj); + objects.ui_val_eq_param3_slider = obj; + lv_obj_set_pos(obj, 113, 42); + lv_obj_set_size(obj, 290, 15); + lv_slider_set_range(obj, -100, -20); + lv_slider_set_value(obj, -64, LV_ANIM_OFF); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_SCROLLED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + } + { + // ui_ValEQParam3Value + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_eq_param3_value = obj; + lv_obj_set_pos(obj, 417, 42); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "0"); + } + { + // ui_ValEQParam4Label + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_eq_param4_label = obj; + lv_obj_set_pos(obj, 4, 80); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Param4"); + } + { + // ui_ValEQParam4Slider + lv_obj_t *obj = lv_slider_create(parent_obj); + objects.ui_val_eq_param4_slider = obj; + lv_obj_set_pos(obj, 113, 80); + lv_obj_set_size(obj, 290, 15); + lv_slider_set_range(obj, -100, -20); + lv_slider_set_value(obj, -64, LV_ANIM_OFF); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_SCROLLED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + } + { + // ui_ValEQParam4Value + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_eq_param4_value = obj; + lv_obj_set_pos(obj, 417, 80); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "0"); + } + } + } + { + // ui_ValModTab + lv_obj_t *obj = lv_tabview_add_tab(parent_obj, "Mod"); + objects.ui_val_mod_tab = obj; + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE|LV_OBJ_FLAG_SCROLL_CHAIN_HOR|LV_OBJ_FLAG_SCROLL_CHAIN_VER|LV_OBJ_FLAG_SCROLL_ELASTIC|LV_OBJ_FLAG_SCROLL_MOMENTUM|LV_OBJ_FLAG_SCROLL_WITH_ARROW); + lv_obj_set_scrollbar_mode(obj, LV_SCROLLBAR_MODE_OFF); + lv_obj_set_style_text_color(obj, lv_color_hex(0xfffb9230), LV_PART_MAIN | LV_STATE_CHECKED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff513d2b), LV_PART_MAIN | LV_STATE_CHECKED); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_20, LV_PART_MAIN | LV_STATE_CHECKED); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_20, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_top(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_bottom(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_left(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_right(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_row(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_column(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_border_width(obj, 2, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_border_color(obj, lv_color_hex(0xff373737), LV_PART_MAIN | LV_STATE_DEFAULT); + { + lv_obj_t *parent_obj = obj; + { + // ui_ValModBlockLabel + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_mod_block_label = obj; + lv_obj_set_pos(obj, 4, -110); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE|LV_OBJ_FLAG_SCROLL_CHAIN_HOR|LV_OBJ_FLAG_SCROLL_CHAIN_VER|LV_OBJ_FLAG_SCROLL_ELASTIC|LV_OBJ_FLAG_SCROLL_MOMENTUM|LV_OBJ_FLAG_SCROLL_WITH_ARROW); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_text_align(obj, LV_TEXT_ALIGN_AUTO, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Enable"); + } + { + // ui_ValModBlockSwitch + lv_obj_t *obj = lv_switch_create(parent_obj); + objects.ui_val_mod_block_switch = obj; + lv_obj_set_pos(obj, 113, -110); + lv_obj_set_size(obj, 60, 24); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_CHECKED); + } + { + // ui_ValModModelDropdown + lv_obj_t *obj = lv_dropdown_create(parent_obj); + objects.ui_val_mod_model_dropdown = obj; + lv_obj_set_pos(obj, 298, 1); + lv_obj_set_size(obj, 165, 38); + lv_dropdown_set_options(obj, "A-Chorus\nB-Chorus\nJet\nN-Jet\nO-Phase\nM-Vibe\nV-Roto\nVibrato\nO-Trem\nSine Trem\nBias Trem"); + lv_dropdown_set_selected(obj, 0); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_VALUE_CHANGED, (void *)0); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff1f1f1f), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_SELECTED | LV_STATE_CHECKED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_SELECTED | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_SELECTED | LV_STATE_CHECKED | LV_STATE_PRESSED); + { + lv_obj_t *parent_obj = obj; + { + lv_obj_t *obj = lv_dropdown_get_list(parent_obj); + objects.obj14 = obj; + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff1f1f1f), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_SELECTED | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_SELECTED | LV_STATE_CHECKED); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_SELECTED | LV_STATE_CHECKED); + } + } + } + { + // ui_ValModParam0Label + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_mod_param0_label = obj; + lv_obj_set_pos(obj, 4, -72); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Param0"); + } + { + // ui_ValModParam0Slider + lv_obj_t *obj = lv_slider_create(parent_obj); + objects.ui_val_mod_param0_slider = obj; + lv_obj_set_pos(obj, 113, -72); + lv_obj_set_size(obj, 290, 15); + lv_slider_set_range(obj, -100, -20); + lv_slider_set_value(obj, -64, LV_ANIM_OFF); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_SCROLLED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + } + { + // ui_ValModParam0Value + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_mod_param0_value = obj; + lv_obj_set_pos(obj, 417, -72); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "0"); + } + { + // ui_ValModParam1Label + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_mod_param1_label = obj; + lv_obj_set_pos(obj, 4, -34); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Param1"); + } + { + // ui_ValModParam1Slider + lv_obj_t *obj = lv_slider_create(parent_obj); + objects.ui_val_mod_param1_slider = obj; + lv_obj_set_pos(obj, 113, -34); + lv_obj_set_size(obj, 290, 15); + lv_slider_set_range(obj, -100, -20); + lv_slider_set_value(obj, -64, LV_ANIM_OFF); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_SCROLLED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + } + { + // ui_ValModParam1Value + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_mod_param1_value = obj; + lv_obj_set_pos(obj, 417, -34); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "0"); + } + { + // ui_ValModParam2Label + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_mod_param2_label = obj; + lv_obj_set_pos(obj, 4, 4); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Param2"); + } + { + // ui_ValModParam2Slider + lv_obj_t *obj = lv_slider_create(parent_obj); + objects.ui_val_mod_param2_slider = obj; + lv_obj_set_pos(obj, 113, 4); + lv_obj_set_size(obj, 290, 15); + lv_slider_set_range(obj, -100, -20); + lv_slider_set_value(obj, -64, LV_ANIM_OFF); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_SCROLLED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + } + { + // ui_ValModParam2Value + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_mod_param2_value = obj; + lv_obj_set_pos(obj, 417, 4); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "0"); + } + { + // ui_ValModParam3Label + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_mod_param3_label = obj; + lv_obj_set_pos(obj, 4, 42); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Param3"); + } + { + // ui_ValModParam3Slider + lv_obj_t *obj = lv_slider_create(parent_obj); + objects.ui_val_mod_param3_slider = obj; + lv_obj_set_pos(obj, 113, 42); + lv_obj_set_size(obj, 290, 15); + lv_slider_set_range(obj, -100, -20); + lv_slider_set_value(obj, -64, LV_ANIM_OFF); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_SCROLLED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + } + { + // ui_ValModParam3Value + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_mod_param3_value = obj; + lv_obj_set_pos(obj, 417, 42); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "0"); + } + { + // ui_ValModParam4Label + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_mod_param4_label = obj; + lv_obj_set_pos(obj, 4, 80); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Param4"); + } + { + // ui_ValModParam4Slider + lv_obj_t *obj = lv_slider_create(parent_obj); + objects.ui_val_mod_param4_slider = obj; + lv_obj_set_pos(obj, 113, 80); + lv_obj_set_size(obj, 290, 15); + lv_slider_set_range(obj, -100, -20); + lv_slider_set_value(obj, -64, LV_ANIM_OFF); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_SCROLLED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + } + { + // ui_ValModParam4Value + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_mod_param4_value = obj; + lv_obj_set_pos(obj, 417, 80); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "0"); + } + } + } + { + // ui_ValDlyTab + lv_obj_t *obj = lv_tabview_add_tab(parent_obj, "Dly"); + objects.ui_val_dly_tab = obj; + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE|LV_OBJ_FLAG_SCROLL_CHAIN_HOR|LV_OBJ_FLAG_SCROLL_CHAIN_VER|LV_OBJ_FLAG_SCROLL_ELASTIC|LV_OBJ_FLAG_SCROLL_MOMENTUM|LV_OBJ_FLAG_SCROLL_WITH_ARROW); + lv_obj_set_scrollbar_mode(obj, LV_SCROLLBAR_MODE_OFF); + lv_obj_set_style_text_color(obj, lv_color_hex(0xfffb9230), LV_PART_MAIN | LV_STATE_CHECKED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff513d2b), LV_PART_MAIN | LV_STATE_CHECKED); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_20, LV_PART_MAIN | LV_STATE_CHECKED); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_20, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_top(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_bottom(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_left(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_right(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_row(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_column(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_border_width(obj, 2, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_border_color(obj, lv_color_hex(0xff373737), LV_PART_MAIN | LV_STATE_DEFAULT); + { + lv_obj_t *parent_obj = obj; + { + // ui_ValDlyBlockLabel + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_dly_block_label = obj; + lv_obj_set_pos(obj, 4, -110); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE|LV_OBJ_FLAG_SCROLL_CHAIN_HOR|LV_OBJ_FLAG_SCROLL_CHAIN_VER|LV_OBJ_FLAG_SCROLL_ELASTIC|LV_OBJ_FLAG_SCROLL_MOMENTUM|LV_OBJ_FLAG_SCROLL_WITH_ARROW); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_text_align(obj, LV_TEXT_ALIGN_AUTO, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Enable"); + } + { + // ui_ValDlyBlockSwitch + lv_obj_t *obj = lv_switch_create(parent_obj); + objects.ui_val_dly_block_switch = obj; + lv_obj_set_pos(obj, 113, -110); + lv_obj_set_size(obj, 60, 24); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_CHECKED); + } + { + // ui_ValDlyModelDropdown + lv_obj_t *obj = lv_dropdown_create(parent_obj); + objects.ui_val_dly_model_dropdown = obj; + lv_obj_set_pos(obj, 298, 1); + lv_obj_set_size(obj, 165, 38); + lv_dropdown_set_options(obj, "Pure\nAnalog\nSlapback\nSweet Echo\nTape\nTube\nRev Echo\nRing Echo\nSweep Echo\nPing Pong"); + lv_dropdown_set_selected(obj, 0); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_VALUE_CHANGED, (void *)0); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff1f1f1f), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_SELECTED | LV_STATE_CHECKED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_SELECTED | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_SELECTED | LV_STATE_CHECKED | LV_STATE_PRESSED); + { + lv_obj_t *parent_obj = obj; + { + lv_obj_t *obj = lv_dropdown_get_list(parent_obj); + objects.obj15 = obj; + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff1f1f1f), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_SELECTED | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_SELECTED | LV_STATE_CHECKED); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_SELECTED | LV_STATE_CHECKED); + } + } + } + { + // ui_ValDlyParam0Label + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_dly_param0_label = obj; + lv_obj_set_pos(obj, 4, -72); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Param0"); + } + { + // ui_ValDlyParam0Slider + lv_obj_t *obj = lv_slider_create(parent_obj); + objects.ui_val_dly_param0_slider = obj; + lv_obj_set_pos(obj, 113, -72); + lv_obj_set_size(obj, 290, 15); + lv_slider_set_range(obj, -100, -20); + lv_slider_set_value(obj, -64, LV_ANIM_OFF); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_SCROLLED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + } + { + // ui_ValDlyParam0Value + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_dly_param0_value = obj; + lv_obj_set_pos(obj, 417, -72); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "0"); + } + { + // ui_ValDlyParam1Label + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_dly_param1_label = obj; + lv_obj_set_pos(obj, 4, -34); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Param1"); + } + { + // ui_ValDlyParam1Slider + lv_obj_t *obj = lv_slider_create(parent_obj); + objects.ui_val_dly_param1_slider = obj; + lv_obj_set_pos(obj, 113, -34); + lv_obj_set_size(obj, 290, 15); + lv_slider_set_range(obj, -100, -20); + lv_slider_set_value(obj, -64, LV_ANIM_OFF); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_SCROLLED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + } + { + // ui_ValDlyParam1Value + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_dly_param1_value = obj; + lv_obj_set_pos(obj, 417, -34); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "0"); + } + { + // ui_ValDlyParam2Label + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_dly_param2_label = obj; + lv_obj_set_pos(obj, 4, 4); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Param2"); + } + { + // ui_ValDlyParam2Slider + lv_obj_t *obj = lv_slider_create(parent_obj); + objects.ui_val_dly_param2_slider = obj; + lv_obj_set_pos(obj, 113, 4); + lv_obj_set_size(obj, 290, 15); + lv_slider_set_range(obj, -100, -20); + lv_slider_set_value(obj, -64, LV_ANIM_OFF); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_SCROLLED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + } + { + // ui_ValDlyParam2Value + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_dly_param2_value = obj; + lv_obj_set_pos(obj, 417, 4); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "0"); + } + { + // ui_ValDlyParam3Label + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_dly_param3_label = obj; + lv_obj_set_pos(obj, 4, 42); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Param3"); + } + { + // ui_ValDlyParam3Slider + lv_obj_t *obj = lv_slider_create(parent_obj); + objects.ui_val_dly_param3_slider = obj; + lv_obj_set_pos(obj, 113, 42); + lv_obj_set_size(obj, 290, 15); + lv_slider_set_range(obj, -100, -20); + lv_slider_set_value(obj, -64, LV_ANIM_OFF); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_SCROLLED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + } + { + // ui_ValDlyParam3Value + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_dly_param3_value = obj; + lv_obj_set_pos(obj, 417, 42); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "0"); + } + { + // ui_ValDlyParam4Label + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_dly_param4_label = obj; + lv_obj_set_pos(obj, 4, 80); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Param4"); + } + { + // ui_ValDlyParam4Slider + lv_obj_t *obj = lv_slider_create(parent_obj); + objects.ui_val_dly_param4_slider = obj; + lv_obj_set_pos(obj, 113, 80); + lv_obj_set_size(obj, 290, 15); + lv_slider_set_range(obj, -100, -20); + lv_slider_set_value(obj, -64, LV_ANIM_OFF); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_SCROLLED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + } + { + // ui_ValDlyParam4Value + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_dly_param4_value = obj; + lv_obj_set_pos(obj, 417, 80); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "0"); + } + } + } + { + // ui_ValRvbTab + lv_obj_t *obj = lv_tabview_add_tab(parent_obj, "Rvb"); + objects.ui_val_rvb_tab = obj; + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE|LV_OBJ_FLAG_SCROLL_CHAIN_HOR|LV_OBJ_FLAG_SCROLL_CHAIN_VER|LV_OBJ_FLAG_SCROLL_ELASTIC|LV_OBJ_FLAG_SCROLL_MOMENTUM|LV_OBJ_FLAG_SCROLL_WITH_ARROW); + lv_obj_set_scrollbar_mode(obj, LV_SCROLLBAR_MODE_OFF); + lv_obj_set_style_text_color(obj, lv_color_hex(0xfffb9230), LV_PART_MAIN | LV_STATE_CHECKED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff513d2b), LV_PART_MAIN | LV_STATE_CHECKED); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_20, LV_PART_MAIN | LV_STATE_CHECKED); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_20, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_top(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_bottom(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_left(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_right(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_row(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_column(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_border_width(obj, 2, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_border_color(obj, lv_color_hex(0xff373737), LV_PART_MAIN | LV_STATE_DEFAULT); + { + lv_obj_t *parent_obj = obj; + { + // ui_ValRvbBlockLabel + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_rvb_block_label = obj; + lv_obj_set_pos(obj, 4, -110); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE|LV_OBJ_FLAG_SCROLL_CHAIN_HOR|LV_OBJ_FLAG_SCROLL_CHAIN_VER|LV_OBJ_FLAG_SCROLL_ELASTIC|LV_OBJ_FLAG_SCROLL_MOMENTUM|LV_OBJ_FLAG_SCROLL_WITH_ARROW); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_text_align(obj, LV_TEXT_ALIGN_AUTO, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Enable"); + } + { + // ui_ValRvbBlockSwitch + lv_obj_t *obj = lv_switch_create(parent_obj); + objects.ui_val_rvb_block_switch = obj; + lv_obj_set_pos(obj, 113, -110); + lv_obj_set_size(obj, 60, 24); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_CHECKED); + } + { + // ui_ValRvbModelDropdown + lv_obj_t *obj = lv_dropdown_create(parent_obj); + objects.ui_val_rvb_model_dropdown = obj; + lv_obj_set_pos(obj, 298, 1); + lv_obj_set_size(obj, 165, 38); + lv_dropdown_set_options(obj, "Air\nRoom\nHall\nChurch\nPlate L\nPlate\nSpring\nN-Star\nDeepsea\nSweet Space"); + lv_dropdown_set_selected(obj, 0); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_VALUE_CHANGED, (void *)0); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff1f1f1f), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_SELECTED | LV_STATE_CHECKED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_SELECTED | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_SELECTED | LV_STATE_CHECKED | LV_STATE_PRESSED); + { + lv_obj_t *parent_obj = obj; + { + lv_obj_t *obj = lv_dropdown_get_list(parent_obj); + objects.obj16 = obj; + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff1f1f1f), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_SELECTED | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_SELECTED | LV_STATE_CHECKED); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_SELECTED | LV_STATE_CHECKED); + } + } + } + { + // ui_ValRvbParam0Label + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_rvb_param0_label = obj; + lv_obj_set_pos(obj, 4, -72); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Param0"); + } + { + // ui_ValRvbParam0Slider + lv_obj_t *obj = lv_slider_create(parent_obj); + objects.ui_val_rvb_param0_slider = obj; + lv_obj_set_pos(obj, 113, -72); + lv_obj_set_size(obj, 290, 15); + lv_slider_set_range(obj, -100, -20); + lv_slider_set_value(obj, -64, LV_ANIM_OFF); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_SCROLLED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + } + { + // ui_ValRvbParam0Value + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_rvb_param0_value = obj; + lv_obj_set_pos(obj, 417, -72); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "0"); + } + { + // ui_ValRvbParam1Label + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_rvb_param1_label = obj; + lv_obj_set_pos(obj, 4, -34); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Param1"); + } + { + // ui_ValRvbParam1Slider + lv_obj_t *obj = lv_slider_create(parent_obj); + objects.ui_val_rvb_param1_slider = obj; + lv_obj_set_pos(obj, 113, -34); + lv_obj_set_size(obj, 290, 15); + lv_slider_set_range(obj, -100, -20); + lv_slider_set_value(obj, -64, LV_ANIM_OFF); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_SCROLLED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + } + { + // ui_ValRvbParam1Value + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_rvb_param1_value = obj; + lv_obj_set_pos(obj, 417, -34); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "0"); + } + { + // ui_ValRvbParam2Label + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_rvb_param2_label = obj; + lv_obj_set_pos(obj, 4, 4); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Param2"); + } + { + // ui_ValRvbParam2Slider + lv_obj_t *obj = lv_slider_create(parent_obj); + objects.ui_val_rvb_param2_slider = obj; + lv_obj_set_pos(obj, 113, 4); + lv_obj_set_size(obj, 290, 15); + lv_slider_set_range(obj, -100, -20); + lv_slider_set_value(obj, -64, LV_ANIM_OFF); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_SCROLLED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + } + { + // ui_ValRvbParam2Value + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_rvb_param2_value = obj; + lv_obj_set_pos(obj, 417, 4); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "0"); + } + { + // ui_ValRvbParam3Label + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_rvb_param3_label = obj; + lv_obj_set_pos(obj, 4, 42); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Param3"); + } + { + // ui_ValRvbParam3Slider + lv_obj_t *obj = lv_slider_create(parent_obj); + objects.ui_val_rvb_param3_slider = obj; + lv_obj_set_pos(obj, 113, 42); + lv_obj_set_size(obj, 290, 15); + lv_slider_set_range(obj, -100, -20); + lv_slider_set_value(obj, -64, LV_ANIM_OFF); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_SCROLLED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + } + { + // ui_ValRvbParam3Value + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_rvb_param3_value = obj; + lv_obj_set_pos(obj, 417, 42); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "0"); + } + { + // ui_ValRvbParam4Label + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_rvb_param4_label = obj; + lv_obj_set_pos(obj, 4, 80); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Param4"); + } + { + // ui_ValRvbParam4Slider + lv_obj_t *obj = lv_slider_create(parent_obj); + objects.ui_val_rvb_param4_slider = obj; + lv_obj_set_pos(obj, 113, 80); + lv_obj_set_size(obj, 290, 15); + lv_slider_set_range(obj, -100, -20); + lv_slider_set_value(obj, -64, LV_ANIM_OFF); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_SCROLLED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + } + { + // ui_ValRvbParam4Value + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_rvb_param4_value = obj; + lv_obj_set_pos(obj, 417, 80); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "0"); + } + } + } + { + // ui_ValNSTab + lv_obj_t *obj = lv_tabview_add_tab(parent_obj, "NS"); + objects.ui_val_ns_tab = obj; + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE|LV_OBJ_FLAG_SCROLL_CHAIN_HOR|LV_OBJ_FLAG_SCROLL_CHAIN_VER|LV_OBJ_FLAG_SCROLL_ELASTIC|LV_OBJ_FLAG_SCROLL_MOMENTUM|LV_OBJ_FLAG_SCROLL_WITH_ARROW); + lv_obj_set_scrollbar_mode(obj, LV_SCROLLBAR_MODE_OFF); + lv_obj_set_style_text_color(obj, lv_color_hex(0xfffb9230), LV_PART_MAIN | LV_STATE_CHECKED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff513d2b), LV_PART_MAIN | LV_STATE_CHECKED); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_20, LV_PART_MAIN | LV_STATE_CHECKED); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_20, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_top(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_bottom(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_left(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_right(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_row(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_column(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_border_width(obj, 2, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_border_color(obj, lv_color_hex(0xff373737), LV_PART_MAIN | LV_STATE_DEFAULT); + { + lv_obj_t *parent_obj = obj; + { + // ui_ValNSBlockLabel + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_ns_block_label = obj; + lv_obj_set_pos(obj, 4, -110); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE|LV_OBJ_FLAG_SCROLL_CHAIN_HOR|LV_OBJ_FLAG_SCROLL_CHAIN_VER|LV_OBJ_FLAG_SCROLL_ELASTIC|LV_OBJ_FLAG_SCROLL_MOMENTUM|LV_OBJ_FLAG_SCROLL_WITH_ARROW); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_text_align(obj, LV_TEXT_ALIGN_AUTO, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Enable"); + } + { + // ui_ValNSBlockSwitch + lv_obj_t *obj = lv_switch_create(parent_obj); + objects.ui_val_ns_block_switch = obj; + lv_obj_set_pos(obj, 113, -110); + lv_obj_set_size(obj, 60, 24); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_CHECKED); + } + { + // ui_ValNSModelDropdown + lv_obj_t *obj = lv_dropdown_create(parent_obj); + objects.ui_val_ns_model_dropdown = obj; + lv_obj_set_pos(obj, 298, 1); + lv_obj_set_size(obj, 165, 38); + lv_dropdown_set_options(obj, "1\n2\n3\n4\n5\n6\n7\n8\n9\n10\n11\n12\n13\n14\n15\n16\n17\n18\n19\n20\n21\n22\n23\n24\n25\n26\n27\n28\n29\n30\n31\n32\n33\n34\n35\n36\n37\n38\n39\n40\n41\n42\n43\n44\n45\n46\n47\n48\n49\n50\n51\n52\n52\n53\n54\n55\n56\n57\n58\n59\n60\n61\n62\n63\n64\n65\n66\n67\n68\n69\n70\n71\n72\n73\n74\n75\n76\n77\n78\n79"); + lv_dropdown_set_selected(obj, 0); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_VALUE_CHANGED, (void *)0); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff1f1f1f), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_SELECTED | LV_STATE_CHECKED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_SELECTED | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_SELECTED | LV_STATE_CHECKED | LV_STATE_PRESSED); + { + lv_obj_t *parent_obj = obj; + { + lv_obj_t *obj = lv_dropdown_get_list(parent_obj); + objects.obj17 = obj; + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff1f1f1f), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_SELECTED | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_SELECTED | LV_STATE_CHECKED); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_SELECTED | LV_STATE_CHECKED); + } + } + } + { + // ui_ValNSParam0Label + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_ns_param0_label = obj; + lv_obj_set_pos(obj, 4, -72); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Param0"); + } + { + // ui_ValNSParam0Slider + lv_obj_t *obj = lv_slider_create(parent_obj); + objects.ui_val_ns_param0_slider = obj; + lv_obj_set_pos(obj, 113, -72); + lv_obj_set_size(obj, 290, 15); + lv_slider_set_range(obj, -100, -20); + lv_slider_set_value(obj, -64, LV_ANIM_OFF); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_SCROLLED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + } + { + // ui_ValNSParam0Value + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_ns_param0_value = obj; + lv_obj_set_pos(obj, 417, -72); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "0"); + } + { + // ui_ValNSParam1Label + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_ns_param1_label = obj; + lv_obj_set_pos(obj, 4, -34); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Param1"); + } + { + // ui_ValNSParam1Slider + lv_obj_t *obj = lv_slider_create(parent_obj); + objects.ui_val_ns_param1_slider = obj; + lv_obj_set_pos(obj, 113, -34); + lv_obj_set_size(obj, 290, 15); + lv_slider_set_range(obj, -100, -20); + lv_slider_set_value(obj, -64, LV_ANIM_OFF); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_SCROLLED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + } + { + // ui_ValNSParam1Value + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_ns_param1_value = obj; + lv_obj_set_pos(obj, 417, -34); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "0"); + } + { + // ui_ValNSParam2Label + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_ns_param2_label = obj; + lv_obj_set_pos(obj, 4, 4); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Param2"); + } + { + // ui_ValNSParam2Slider + lv_obj_t *obj = lv_slider_create(parent_obj); + objects.ui_val_ns_param2_slider = obj; + lv_obj_set_pos(obj, 113, 4); + lv_obj_set_size(obj, 290, 15); + lv_slider_set_range(obj, -100, -20); + lv_slider_set_value(obj, -64, LV_ANIM_OFF); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_SCROLLED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + } + { + // ui_ValNSParam2Value + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_ns_param2_value = obj; + lv_obj_set_pos(obj, 413, 4); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "0"); + } + { + // ui_ValNSParam3Label + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_ns_param3_label = obj; + lv_obj_set_pos(obj, 4, 42); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Param3"); + } + { + // ui_ValNSParam3Slider + lv_obj_t *obj = lv_slider_create(parent_obj); + objects.ui_val_ns_param3_slider = obj; + lv_obj_set_pos(obj, 113, 42); + lv_obj_set_size(obj, 290, 15); + lv_slider_set_range(obj, -100, -20); + lv_slider_set_value(obj, -64, LV_ANIM_OFF); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_SCROLLED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + } + { + // ui_ValNSParam3Value + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_ns_param3_value = obj; + lv_obj_set_pos(obj, 413, 42); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "0"); + } + { + // ui_ValNSParam4Label + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_ns_param4_label = obj; + lv_obj_set_pos(obj, 4, 80); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Param4"); + } + { + // ui_ValNSParam4Slider + lv_obj_t *obj = lv_slider_create(parent_obj); + objects.ui_val_ns_param4_slider = obj; + lv_obj_set_pos(obj, 113, 80); + lv_obj_set_size(obj, 290, 15); + lv_slider_set_range(obj, -100, -20); + lv_slider_set_value(obj, -64, LV_ANIM_OFF); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_SCROLLED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + } + { + // ui_ValNSParam4Value + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_ns_param4_value = obj; + lv_obj_set_pos(obj, 417, 80); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "0"); + } + } + } + { + // ui_ValGlobTab + lv_obj_t *obj = lv_tabview_add_tab(parent_obj, "Glb"); + objects.ui_val_glob_tab = obj; + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE|LV_OBJ_FLAG_SCROLL_CHAIN_HOR|LV_OBJ_FLAG_SCROLL_CHAIN_VER|LV_OBJ_FLAG_SCROLL_ELASTIC|LV_OBJ_FLAG_SCROLL_MOMENTUM|LV_OBJ_FLAG_SCROLL_WITH_ARROW); + lv_obj_set_scrollbar_mode(obj, LV_SCROLLBAR_MODE_OFF); + lv_obj_set_style_text_color(obj, lv_color_hex(0xfffb9230), LV_PART_MAIN | LV_STATE_CHECKED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff513d2b), LV_PART_MAIN | LV_STATE_CHECKED); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_20, LV_PART_MAIN | LV_STATE_CHECKED); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_20, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_top(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_bottom(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_left(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_right(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_row(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_column(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_border_width(obj, 2, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_border_color(obj, lv_color_hex(0xff373737), LV_PART_MAIN | LV_STATE_DEFAULT); + { + lv_obj_t *parent_obj = obj; + { + // ui_ValGlobNoCabLabel + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_glob_no_cab_label = obj; + lv_obj_set_pos(obj, 4, -110); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE|LV_OBJ_FLAG_SCROLL_CHAIN_HOR|LV_OBJ_FLAG_SCROLL_CHAIN_VER|LV_OBJ_FLAG_SCROLL_ELASTIC|LV_OBJ_FLAG_SCROLL_MOMENTUM|LV_OBJ_FLAG_SCROLL_WITH_ARROW); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_text_align(obj, LV_TEXT_ALIGN_AUTO, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "No Cab"); + } + { + // ui_ValGlobNoCabSwitch + lv_obj_t *obj = lv_switch_create(parent_obj); + objects.ui_val_glob_no_cab_switch = obj; + lv_obj_set_pos(obj, 113, -110); + lv_obj_set_size(obj, 60, 24); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_CHECKED); + } + { + // ui_ValGlobInputLevelLabel + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_glob_input_level_label = obj; + lv_obj_set_pos(obj, 4, -72); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Input Lev"); + } + { + // ui_ValGlobInputLevelSlider + lv_obj_t *obj = lv_slider_create(parent_obj); + objects.ui_val_glob_input_level_slider = obj; + lv_obj_set_pos(obj, 113, -72); + lv_obj_set_size(obj, 290, 15); + lv_slider_set_range(obj, -20, 20); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_SCROLLED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + } + { + // ui_ValGlobInputLevelValue + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_glob_input_level_value = obj; + lv_obj_set_pos(obj, 417, -72); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "0"); + } + { + // ui_ValGlobMasterVolLabel + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_glob_master_vol_label = obj; + lv_obj_set_pos(obj, 4, -34); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Master Vol"); + } + { + // ui_ValGlobMasterVolSlider + lv_obj_t *obj = lv_slider_create(parent_obj); + objects.ui_val_glob_master_vol_slider = obj; + lv_obj_set_pos(obj, 113, -34); + lv_obj_set_size(obj, 290, 15); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_SCROLLED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + } + { + // ui_ValGlobMasterVolValue + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_glob_master_vol_value = obj; + lv_obj_set_pos(obj, 417, -31); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "0"); + } + { + // ui_ValPatchVolLabel + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_patch_vol_label = obj; + lv_obj_set_pos(obj, 4, 4); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Patch Vol"); + } + { + // ui_ValPatchVolSlider + lv_obj_t *obj = lv_slider_create(parent_obj); + objects.ui_val_patch_vol_slider = obj; + lv_obj_set_pos(obj, 113, 4); + lv_obj_set_size(obj, 290, 15); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_SCROLLED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + } + { + // ui_ValPatchVolValue + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_patch_vol_value = obj; + lv_obj_set_pos(obj, 417, 4); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "0"); + } + } + } + } + } + { + // ui_ValCloseimage + lv_obj_t *obj = lv_img_create(parent_obj); + objects.ui_val_closeimage = obj; + lv_obj_set_pos(obj, 202, 266); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_img_set_src(obj, &img_tick); + lv_img_set_zoom(obj, 120); + lv_obj_add_event_cb(obj, action_close_settings_page, LV_EVENT_PRESSED, (void *)0); + lv_obj_add_flag(obj, LV_OBJ_FLAG_CLICKABLE); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + } + } + + tick_screen_val_settings(); +} + +void tick_screen_val_settings() { +} + typedef void (*tick_screen_func_t)(); tick_screen_func_t tick_screen_funcs[] = { tick_screen_screen1, tick_screen_settings, + tick_screen_val_settings, }; void tick_screen(int screen_index) { tick_screen_funcs[screen_index](); @@ -2491,4 +5279,5 @@ void create_screens() { create_screen_screen1(); create_screen_settings(); + create_screen_val_settings(); } diff --git a/source/main/ui_generated_480x320land/screens.h b/source/main/ui_generated_480x320land/screens.h index 0f66b278..5908a634 100644 --- a/source/main/ui_generated_480x320land/screens.h +++ b/source/main/ui_generated_480x320land/screens.h @@ -10,6 +10,7 @@ extern "C" { typedef struct _objects_t { lv_obj_t *screen1; lv_obj_t *settings; + lv_obj_t *val_settings; lv_obj_t *ui_touch_gesture_container; lv_obj_t *ui_top_panel; lv_obj_t *ui_usb_status_fail; @@ -29,10 +30,6 @@ typedef struct _objects_t { lv_obj_t *ui_bpm_value_label; lv_obj_t *ui_bpm_indicator; lv_obj_t *ui_preset_details_text_area; - lv_obj_t *ui_left_arrow; - lv_obj_t *ui_right_arrow; - lv_obj_t *ui_entry_keyboard; - lv_obj_t *ui_ok_tick; lv_obj_t *ui_bottom_panel_tonex; lv_obj_t *ui_settings_image; lv_obj_t *ui_icon_reverb; @@ -55,6 +52,10 @@ typedef struct _objects_t { lv_obj_t *ui_icon_val_dly; lv_obj_t *ui_icon_val_dst; lv_obj_t *ui_val_settings; + lv_obj_t *ui_left_arrow; + lv_obj_t *ui_right_arrow; + lv_obj_t *ui_entry_keyboard; + lv_obj_t *ui_ok_tick; lv_obj_t *ui_settings_tab_view; lv_obj_t *obj0; lv_obj_t *ui_gate_tab; @@ -203,6 +204,221 @@ typedef struct _objects_t { lv_obj_t *ui_volume_slider; lv_obj_t *ui_volume_value; lv_obj_t *ui_closeimage; + lv_obj_t *ui_val_settings_tab_view; + lv_obj_t *obj7; + lv_obj_t *ui_val_nr_tab; + lv_obj_t *ui_val_nr_block_label; + lv_obj_t *ui_val_nr_block_switch; + lv_obj_t *ui_val_nr_model_dropdown; + lv_obj_t *obj8; + lv_obj_t *ui_val_nr_param0_label; + lv_obj_t *ui_val_nr_param0_slider; + lv_obj_t *ui_val_nr_param0_value; + lv_obj_t *ui_val_nr_param1_label; + lv_obj_t *ui_val_nr_param1_slider; + lv_obj_t *ui_val_nr_param1_value; + lv_obj_t *ui_val_nr_param2_label; + lv_obj_t *ui_val_nr_param2_slider; + lv_obj_t *ui_val_nr_param2_value; + lv_obj_t *ui_val_nr_param3_label; + lv_obj_t *ui_val_nr_param3_slider; + lv_obj_t *ui_val_nr_param3_value; + lv_obj_t *ui_val_nr_param4_label; + lv_obj_t *ui_val_nr_param4_slider; + lv_obj_t *ui_val_nr_param4_value; + lv_obj_t *ui_val_pre_tab; + lv_obj_t *ui_val_npre_block_label; + lv_obj_t *ui_val_pre_block_switch; + lv_obj_t *ui_val_pre_model_dropdown; + lv_obj_t *obj9; + lv_obj_t *ui_val_pre_param0_label; + lv_obj_t *ui_val_pre_param0_slider; + lv_obj_t *ui_val_pre_param0_value; + lv_obj_t *ui_val_pre_param1_label; + lv_obj_t *ui_val_pre_param1_slider; + lv_obj_t *ui_val_pre_param1_value; + lv_obj_t *ui_val_pre_param2_label; + lv_obj_t *ui_val_pre_param2_slider; + lv_obj_t *ui_val_pre_param2_value; + lv_obj_t *ui_val_pre_param3_label; + lv_obj_t *ui_val_pre_param3_slider; + lv_obj_t *ui_val_pre_param3_value; + lv_obj_t *ui_val_pre_param4_label; + lv_obj_t *ui_val_pre_param4_slider; + lv_obj_t *ui_val_pre_param4_value; + lv_obj_t *ui_val_dst_tab; + lv_obj_t *ui_val_dst_block_label; + lv_obj_t *ui_val_dst_block_switch; + lv_obj_t *ui_val_dst_model_dropdown; + lv_obj_t *obj10; + lv_obj_t *ui_val_dst_param0_label; + lv_obj_t *ui_val_dst_param0_slider; + lv_obj_t *ui_val_dst_param0_value; + lv_obj_t *ui_val_dst_param1_label; + lv_obj_t *ui_val_dst_param1_slider; + lv_obj_t *ui_val_dst_param1_value; + lv_obj_t *ui_val_dst_param2_label; + lv_obj_t *ui_val_dst_param2_slider; + lv_obj_t *ui_val_dst_param2_value; + lv_obj_t *ui_val_dst_param3_label; + lv_obj_t *ui_val_dst_param3_slider; + lv_obj_t *ui_val_dst_param3_value; + lv_obj_t *ui_val_dst_param4_label; + lv_obj_t *ui_val_dst_param4_slider; + lv_obj_t *ui_val_dst_param4_value; + lv_obj_t *ui_val_amp_tab; + lv_obj_t *ui_val_amp_block_label; + lv_obj_t *ui_val_amp_block_switch; + lv_obj_t *ui_val_amp_model_dropdown; + lv_obj_t *obj11; + lv_obj_t *ui_val_amp_param0_label; + lv_obj_t *ui_val_amp_param0_slider; + lv_obj_t *ui_val_amp_param0_value; + lv_obj_t *ui_val_amp_param1_label; + lv_obj_t *ui_val_amp_param1_slider; + lv_obj_t *ui_val_amp_param1_value; + lv_obj_t *ui_val_amp_param2_label; + lv_obj_t *ui_val_amp_param2_slider; + lv_obj_t *ui_val_amp_param2_value; + lv_obj_t *ui_val_amp_param3_label; + lv_obj_t *ui_val_amp_param3_slider; + lv_obj_t *ui_val_amp_param3_value; + lv_obj_t *ui_val_amp_param4_label; + lv_obj_t *ui_val_amp_param4_slider; + lv_obj_t *ui_val_amp_param4_value; + lv_obj_t *ui_val_cab_tab; + lv_obj_t *ui_val_cab_block_label; + lv_obj_t *ui_val_cab_block_switch; + lv_obj_t *ui_val_cab_model_dropdown; + lv_obj_t *obj12; + lv_obj_t *ui_val_cab_param0_label; + lv_obj_t *ui_val_cab_param0_slider; + lv_obj_t *ui_val_cab_param0_value; + lv_obj_t *ui_val_cab_param1_label; + lv_obj_t *ui_val_cab_param1_slider; + lv_obj_t *ui_val_cab_param1_value; + lv_obj_t *ui_val_cab_param2_label; + lv_obj_t *ui_val_cab_param2_slider; + lv_obj_t *ui_val_cab_param2_value; + lv_obj_t *ui_val_cab_param3_label; + lv_obj_t *ui_val_cab_param3_slider; + lv_obj_t *ui_val_cab_param3_value; + lv_obj_t *ui_val_cab_param4_label; + lv_obj_t *ui_val_cab_param4_slider; + lv_obj_t *ui_val_cab_param4_value; + lv_obj_t *ui_val_eq_tab; + lv_obj_t *ui_val_eq_block_label; + lv_obj_t *ui_val_eq_block_switch; + lv_obj_t *ui_val_eq_model_dropdown; + lv_obj_t *obj13; + lv_obj_t *ui_val_eq_param0_label; + lv_obj_t *ui_val_eq_param0_slider; + lv_obj_t *ui_val_eq_param0_value; + lv_obj_t *ui_val_eq_param1_label; + lv_obj_t *ui_val_eq_param1_slider; + lv_obj_t *ui_val_eq_param1_value; + lv_obj_t *ui_val_eq_param2_label; + lv_obj_t *ui_val_eq_param2_slider; + lv_obj_t *ui_val_eq_param2_value; + lv_obj_t *ui_val_eq_param3_label; + lv_obj_t *ui_val_eq_param3_slider; + lv_obj_t *ui_val_eq_param3_value; + lv_obj_t *ui_val_eq_param4_label; + lv_obj_t *ui_val_eq_param4_slider; + lv_obj_t *ui_val_eq_param4_value; + lv_obj_t *ui_val_mod_tab; + lv_obj_t *ui_val_mod_block_label; + lv_obj_t *ui_val_mod_block_switch; + lv_obj_t *ui_val_mod_model_dropdown; + lv_obj_t *obj14; + lv_obj_t *ui_val_mod_param0_label; + lv_obj_t *ui_val_mod_param0_slider; + lv_obj_t *ui_val_mod_param0_value; + lv_obj_t *ui_val_mod_param1_label; + lv_obj_t *ui_val_mod_param1_slider; + lv_obj_t *ui_val_mod_param1_value; + lv_obj_t *ui_val_mod_param2_label; + lv_obj_t *ui_val_mod_param2_slider; + lv_obj_t *ui_val_mod_param2_value; + lv_obj_t *ui_val_mod_param3_label; + lv_obj_t *ui_val_mod_param3_slider; + lv_obj_t *ui_val_mod_param3_value; + lv_obj_t *ui_val_mod_param4_label; + lv_obj_t *ui_val_mod_param4_slider; + lv_obj_t *ui_val_mod_param4_value; + lv_obj_t *ui_val_dly_tab; + lv_obj_t *ui_val_dly_block_label; + lv_obj_t *ui_val_dly_block_switch; + lv_obj_t *ui_val_dly_model_dropdown; + lv_obj_t *obj15; + lv_obj_t *ui_val_dly_param0_label; + lv_obj_t *ui_val_dly_param0_slider; + lv_obj_t *ui_val_dly_param0_value; + lv_obj_t *ui_val_dly_param1_label; + lv_obj_t *ui_val_dly_param1_slider; + lv_obj_t *ui_val_dly_param1_value; + lv_obj_t *ui_val_dly_param2_label; + lv_obj_t *ui_val_dly_param2_slider; + lv_obj_t *ui_val_dly_param2_value; + lv_obj_t *ui_val_dly_param3_label; + lv_obj_t *ui_val_dly_param3_slider; + lv_obj_t *ui_val_dly_param3_value; + lv_obj_t *ui_val_dly_param4_label; + lv_obj_t *ui_val_dly_param4_slider; + lv_obj_t *ui_val_dly_param4_value; + lv_obj_t *ui_val_rvb_tab; + lv_obj_t *ui_val_rvb_block_label; + lv_obj_t *ui_val_rvb_block_switch; + lv_obj_t *ui_val_rvb_model_dropdown; + lv_obj_t *obj16; + lv_obj_t *ui_val_rvb_param0_label; + lv_obj_t *ui_val_rvb_param0_slider; + lv_obj_t *ui_val_rvb_param0_value; + lv_obj_t *ui_val_rvb_param1_label; + lv_obj_t *ui_val_rvb_param1_slider; + lv_obj_t *ui_val_rvb_param1_value; + lv_obj_t *ui_val_rvb_param2_label; + lv_obj_t *ui_val_rvb_param2_slider; + lv_obj_t *ui_val_rvb_param2_value; + lv_obj_t *ui_val_rvb_param3_label; + lv_obj_t *ui_val_rvb_param3_slider; + lv_obj_t *ui_val_rvb_param3_value; + lv_obj_t *ui_val_rvb_param4_label; + lv_obj_t *ui_val_rvb_param4_slider; + lv_obj_t *ui_val_rvb_param4_value; + lv_obj_t *ui_val_ns_tab; + lv_obj_t *ui_val_ns_block_label; + lv_obj_t *ui_val_ns_block_switch; + lv_obj_t *ui_val_ns_model_dropdown; + lv_obj_t *obj17; + lv_obj_t *ui_val_ns_param0_label; + lv_obj_t *ui_val_ns_param0_slider; + lv_obj_t *ui_val_ns_param0_value; + lv_obj_t *ui_val_ns_param1_label; + lv_obj_t *ui_val_ns_param1_slider; + lv_obj_t *ui_val_ns_param1_value; + lv_obj_t *ui_val_ns_param2_label; + lv_obj_t *ui_val_ns_param2_slider; + lv_obj_t *ui_val_ns_param2_value; + lv_obj_t *ui_val_ns_param3_label; + lv_obj_t *ui_val_ns_param3_slider; + lv_obj_t *ui_val_ns_param3_value; + lv_obj_t *ui_val_ns_param4_label; + lv_obj_t *ui_val_ns_param4_slider; + lv_obj_t *ui_val_ns_param4_value; + lv_obj_t *ui_val_glob_tab; + lv_obj_t *ui_val_glob_no_cab_label; + lv_obj_t *ui_val_glob_no_cab_switch; + lv_obj_t *ui_val_glob_input_level_label; + lv_obj_t *ui_val_glob_input_level_slider; + lv_obj_t *ui_val_glob_input_level_value; + lv_obj_t *ui_val_glob_master_vol_label; + lv_obj_t *ui_val_glob_master_vol_slider; + lv_obj_t *ui_val_glob_master_vol_value; + lv_obj_t *ui_val_patch_vol_label; + lv_obj_t *ui_val_patch_vol_slider; + lv_obj_t *ui_val_patch_vol_value; + lv_obj_t *ui_val_closeimage; } objects_t; extern objects_t objects; @@ -210,6 +426,7 @@ extern objects_t objects; enum ScreensEnum { SCREEN_ID_SCREEN1 = 1, SCREEN_ID_SETTINGS = 2, + SCREEN_ID_VAL_SETTINGS = 3, }; void create_screen_screen1(); @@ -218,6 +435,9 @@ void tick_screen_screen1(); void create_screen_settings(); void tick_screen_settings(); +void create_screen_val_settings(); +void tick_screen_val_settings(); + void tick_screen_by_id(enum ScreensEnum screenId); void tick_screen(int screen_index); diff --git a/source/main/ui_generated_480x320land/ui_image_amp_disabled.c b/source/main/ui_generated_480x320land/ui_image_amp_disabled.c new file mode 100644 index 00000000..80ebe5b0 --- /dev/null +++ b/source/main/ui_generated_480x320land/ui_image_amp_disabled.c @@ -0,0 +1,265 @@ +#ifdef __has_include + #if __has_include("lvgl.h") + #ifndef LV_LVGL_H_INCLUDE_SIMPLE + #define LV_LVGL_H_INCLUDE_SIMPLE + #endif + #endif +#endif +#ifdef __has_include + #if __has_include("lvgl.h") + #ifndef LV_LVGL_H_INCLUDE_SIMPLE + #define LV_LVGL_H_INCLUDE_SIMPLE + #endif + #endif +#endif + +#if defined(LV_LVGL_H_INCLUDE_SIMPLE) + #include "lvgl.h" +#else + #include "lvgl/lvgl.h" +#endif + + +#ifndef LV_ATTRIBUTE_MEM_ALIGN +#define LV_ATTRIBUTE_MEM_ALIGN +#endif + +#ifndef LV_ATTRIBUTE_IMG_IMG_AMP_DISABLED +#define LV_ATTRIBUTE_IMG_IMG_AMP_DISABLED +#endif + +const LV_ATTRIBUTE_MEM_ALIGN LV_ATTRIBUTE_LARGE_CONST LV_ATTRIBUTE_IMG_IMG_AMP_DISABLED uint8_t img_amp_disabled_map[] = { +#if LV_COLOR_DEPTH == 1 || LV_COLOR_DEPTH == 8 + /*Pixel format: Alpha 8 bit, Red: 3 bit, Green: 3 bit, Blue: 2 bit*/ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf5, 0x5e, 0xf5, 0xd7, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xfd, 0xf5, 0xfe, 0xf5, 0xfe, 0xf5, 0xfe, 0xf5, 0xfe, 0xf5, 0xfe, 0xf5, 0xfe, 0xf5, 0xfe, 0xf5, 0xfe, 0xf5, 0xfe, 0xf5, 0xfe, 0xf5, 0xfe, 0xf5, 0xfe, 0xf5, 0xfe, 0xf5, 0xfd, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xd7, 0xf5, 0x5c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf5, 0x6e, 0xf5, 0xff, 0xf5, 0xe4, 0xf5, 0xa0, 0xf5, 0xa6, 0xf5, 0xab, 0xf5, 0xaa, 0xf5, 0xaa, 0xf5, 0xaa, 0xf5, 0xaa, 0xf5, 0xaa, 0xf5, 0xaa, 0xf5, 0xaa, 0xf5, 0xaa, 0xf5, 0xaa, 0xf5, 0xaa, 0xf5, 0xaa, 0xf5, 0xaa, 0xf5, 0xaa, 0xf5, 0xab, 0xf5, 0xa5, 0xf5, 0xa0, 0xf5, 0xe4, 0xf5, 0xff, 0xf5, 0x6d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf9, 0x26, 0xf5, 0xff, 0xf5, 0xc5, 0xf5, 0x16, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf5, 0x16, 0xf5, 0xc5, 0xf5, 0xff, 0xf5, 0x26, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf5, 0x5a, 0xf9, 0xff, 0xf9, 0x43, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf9, 0x43, 0xf9, 0xff, 0xf5, 0x5a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd1, 0x1c, 0xd1, 0x41, 0xd1, 0x3f, 0xd1, 0x3c, 0xd1, 0x3b, 0xd1, 0x32, 0xd5, 0x8f, 0xf5, 0xff, 0xd1, 0x65, 0xb1, 0x31, 0xd1, 0x3c, 0xd1, 0x3c, 0xd1, 0x3c, 0xd1, 0x3c, 0xd1, 0x3c, 0xd1, 0x3c, 0xd1, 0x3c, 0xd1, 0x3c, 0xd1, 0x3c, 0xd1, 0x3c, 0xd1, 0x3c, 0xd1, 0x3c, 0xd1, 0x3c, 0xd1, 0x3c, 0xd1, 0x3c, 0xd1, 0x3c, 0xd1, 0x3c, 0xd1, 0x3c, 0xd1, 0x3c, 0xb1, 0x31, 0xd1, 0x65, 0xf5, 0xff, 0xd5, 0x8f, 0xd1, 0x32, 0xd1, 0x3b, 0xd1, 0x3c, 0xd1, 0x3f, 0xd1, 0x41, 0xd1, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xd5, 0x73, 0xd1, 0xdf, 0xd1, 0xfa, 0xd5, 0xf8, 0xd5, 0xf7, 0xd5, 0xf7, 0xd1, 0xf0, 0xd1, 0xf9, 0xd1, 0xff, 0xd1, 0xf6, 0xd1, 0xef, 0xd5, 0xf7, 0xd5, 0xf7, 0xd5, 0xf7, 0xd5, 0xf7, 0xd5, 0xf7, 0xd5, 0xf7, 0xd5, 0xf7, 0xd5, 0xf7, 0xd5, 0xf7, 0xd5, 0xf7, 0xd5, 0xf7, 0xd5, 0xf7, 0xd5, 0xf7, 0xd5, 0xf7, 0xd5, 0xf7, 0xd5, 0xf7, 0xd5, 0xf7, 0xd5, 0xf7, 0xd5, 0xf7, 0xd1, 0xef, 0xd1, 0xf6, 0xd1, 0xff, 0xd1, 0xf9, 0xd1, 0xf0, 0xd5, 0xf7, 0xd5, 0xf7, 0xd5, 0xf8, 0xd1, 0xfa, 0xd1, 0xdf, 0xd5, 0x73, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xd5, 0x67, 0xd1, 0xff, 0xd1, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf1, 0xff, 0xed, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xed, 0xff, 0xf1, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xd1, 0xff, 0xd1, 0xff, 0xd5, 0x67, 0x00, 0x00, + 0xd1, 0x1e, 0xd1, 0xe1, 0xd5, 0xff, 0xf5, 0xff, 0xb1, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0xc9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xc9, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0xb1, 0xff, 0xf5, 0xff, 0xd5, 0xff, 0xd1, 0xe2, 0xd1, 0x49, + 0xb1, 0x65, 0xd1, 0xfb, 0xf5, 0xff, 0xb1, 0xff, 0x44, 0xff, 0x48, 0xff, 0x48, 0xff, 0x48, 0xff, 0x48, 0xff, 0x48, 0xff, 0x68, 0xff, 0xa9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xa9, 0xff, 0x68, 0xff, 0x48, 0xff, 0x48, 0xff, 0x48, 0xff, 0x48, 0xff, 0x48, 0xff, 0x44, 0xff, 0xb1, 0xff, 0xf5, 0xff, 0xd1, 0xfa, 0xd1, 0xa7, + 0xd1, 0x6b, 0xd5, 0xfa, 0xf5, 0xff, 0x69, 0xff, 0x44, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x89, 0xff, 0xc9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xc9, 0xff, 0xc9, 0xff, 0xa9, 0xff, 0xa9, 0xff, 0xa9, 0xff, 0xa9, 0xff, 0xa9, 0xff, 0xc9, 0xff, 0xc9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xc9, 0xff, 0x89, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x44, 0xff, 0x69, 0xff, 0xf5, 0xff, 0xd5, 0xf8, 0xd1, 0xa3, + 0xd1, 0x65, 0xd5, 0xf8, 0xf5, 0xff, 0x8d, 0xff, 0x48, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0xa9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xc9, 0xff, 0xa9, 0xff, 0x89, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x89, 0xff, 0xa9, 0xff, 0xc9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xa9, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x48, 0xff, 0x8d, 0xff, 0xf5, 0xff, 0xd5, 0xf6, 0xd1, 0x9e, + 0xd1, 0x65, 0xd5, 0xf8, 0xf5, 0xff, 0x8d, 0xff, 0x48, 0xff, 0x69, 0xff, 0x69, 0xff, 0xa9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xc9, 0xff, 0x89, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x89, 0xff, 0xc9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xa9, 0xff, 0x69, 0xff, 0x69, 0xff, 0x48, 0xff, 0x8d, 0xff, 0xf5, 0xff, 0xd5, 0xf6, 0xd1, 0x9e, + 0xd1, 0x65, 0xd5, 0xf8, 0xf5, 0xff, 0x8d, 0xff, 0x48, 0xff, 0x69, 0xff, 0xa9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xc9, 0xff, 0xa9, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x68, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x68, 0xff, 0x69, 0xff, 0x69, 0xff, 0xa9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xa9, 0xff, 0x69, 0xff, 0x48, 0xff, 0x8d, 0xff, 0xf5, 0xff, 0xd5, 0xf6, 0xd1, 0x9e, + 0xd1, 0x65, 0xd5, 0xf8, 0xf5, 0xff, 0x8d, 0xff, 0x48, 0xff, 0xa9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0x88, 0xff, 0x69, 0xff, 0x69, 0xff, 0x68, 0xff, 0x48, 0xff, 0x68, 0xff, 0x68, 0xff, 0x68, 0xff, 0x69, 0xff, 0x69, 0xff, 0x68, 0xff, 0x68, 0xff, 0x68, 0xff, 0x68, 0xff, 0x6d, 0xff, 0x69, 0xff, 0x68, 0xff, 0x68, 0xff, 0x68, 0xff, 0x48, 0xff, 0x69, 0xff, 0x69, 0xff, 0x89, 0xff, 0xc9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xa9, 0xff, 0x48, 0xff, 0x8d, 0xff, 0xf5, 0xff, 0xd5, 0xf6, 0xd1, 0x9e, + 0xd1, 0x65, 0xd5, 0xf8, 0xf5, 0xff, 0x8d, 0xff, 0x89, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xc9, 0xff, 0x88, 0xff, 0x69, 0xff, 0x68, 0xff, 0x8d, 0xff, 0x69, 0xff, 0x8d, 0xff, 0x68, 0xff, 0x69, 0xff, 0x68, 0xff, 0x8d, 0xff, 0x6d, 0xff, 0x6d, 0xff, 0x68, 0xff, 0x68, 0xff, 0x69, 0xff, 0x68, 0xff, 0x8d, 0xff, 0x69, 0xff, 0x8d, 0xff, 0x68, 0xff, 0x69, 0xff, 0x68, 0xff, 0x8d, 0xff, 0xc9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0x89, 0xff, 0x8d, 0xff, 0xf5, 0xff, 0xd5, 0xf6, 0xd1, 0x9e, + 0xd1, 0x65, 0xd5, 0xf8, 0xf5, 0xff, 0x8d, 0xff, 0xc9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0x64, 0xff, 0xb1, 0xff, 0xff, 0xff, 0x6d, 0xff, 0xff, 0xff, 0xb1, 0xff, 0x44, 0xff, 0x68, 0xff, 0xff, 0xff, 0x92, 0xff, 0xb6, 0xff, 0xfb, 0xff, 0x44, 0xff, 0x44, 0xff, 0xd6, 0xff, 0xdb, 0xff, 0x49, 0xff, 0xff, 0xff, 0x8d, 0xff, 0x44, 0xff, 0x68, 0xff, 0xff, 0xff, 0xb2, 0xff, 0xed, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xc9, 0xff, 0x8d, 0xff, 0xf5, 0xff, 0xd5, 0xf6, 0xd1, 0x9e, + 0xd1, 0x65, 0xd5, 0xf8, 0xf5, 0xff, 0xc9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xc9, 0xff, 0xf6, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xd2, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xd6, 0xff, 0x44, 0xff, 0x8d, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x68, 0xff, 0x44, 0xff, 0xfb, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xb1, 0xff, 0x20, 0xff, 0x8d, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xc9, 0xff, 0xf5, 0xff, 0xd5, 0xf6, 0xd1, 0x9e, + 0xd1, 0x65, 0xd5, 0xf8, 0xf1, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0x89, 0xff, 0xb6, 0xff, 0xfb, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xf6, 0xff, 0xff, 0xff, 0xff, 0xff, 0x8d, 0xff, 0x68, 0xff, 0x68, 0xff, 0xd6, 0xff, 0xff, 0xff, 0xff, 0xff, 0xb6, 0xff, 0x48, 0xff, 0x68, 0xff, 0x8d, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfb, 0xff, 0x69, 0xff, 0x44, 0xff, 0x68, 0xff, 0xfa, 0xff, 0xff, 0xff, 0xff, 0xff, 0xad, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xf1, 0xff, 0xd5, 0xf6, 0xd1, 0x9e, + 0xd1, 0x65, 0xd1, 0xf8, 0xed, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xc9, 0xff, 0x68, 0xff, 0x68, 0xff, 0x91, 0xff, 0xad, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xb1, 0xff, 0x6d, 0xff, 0x68, 0xff, 0x69, 0xff, 0x68, 0xff, 0x68, 0xff, 0xb1, 0xff, 0x91, 0xff, 0x68, 0xff, 0x68, 0xff, 0x69, 0xff, 0x68, 0xff, 0x8d, 0xff, 0xb2, 0xff, 0x69, 0xff, 0x68, 0xff, 0x6d, 0xff, 0x68, 0xff, 0x69, 0xff, 0xb2, 0xff, 0x8d, 0xff, 0x48, 0xff, 0xc9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xed, 0xff, 0xd1, 0xf6, 0xd1, 0x9e, + 0xd1, 0x65, 0xd1, 0xf9, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0x89, 0xff, 0x69, 0xff, 0x68, 0xff, 0x44, 0xff, 0x44, 0xff, 0x89, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xc9, 0xff, 0x88, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x68, 0xff, 0x44, 0xff, 0x44, 0xff, 0x68, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x48, 0xff, 0x44, 0xff, 0x68, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x68, 0xff, 0x44, 0xff, 0x48, 0xff, 0x68, 0xff, 0x89, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xd1, 0xf8, 0xd1, 0x9e, + 0xd1, 0x68, 0xed, 0xfb, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xa9, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0xa9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0x89, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0xa9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xed, 0xfa, 0xd1, 0xa0, + 0xd1, 0x79, 0xe9, 0xfe, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0x89, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0xa9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0x89, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x89, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xfd, 0xd1, 0xab, + 0xed, 0x95, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xc9, 0xff, 0x89, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0xa9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0x89, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x89, 0xff, 0xc9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xfe, 0xcd, 0xbc, + 0xed, 0xb4, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xa9, 0xff, 0x68, 0xff, 0x68, 0xff, 0x68, 0xff, 0x48, 0xff, 0x68, 0xff, 0x68, 0xff, 0x68, 0xff, 0x68, 0xff, 0x68, 0xff, 0x68, 0xff, 0x89, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0x89, 0xff, 0x68, 0xff, 0x68, 0xff, 0x68, 0xff, 0x68, 0xff, 0x68, 0xff, 0x68, 0xff, 0x68, 0xff, 0x68, 0xff, 0x68, 0xff, 0x68, 0xff, 0x68, 0xff, 0x68, 0xff, 0x68, 0xff, 0x68, 0xff, 0x68, 0xff, 0x68, 0xff, 0x68, 0xff, 0x68, 0xff, 0xa9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xed, 0xcf, + 0xe9, 0xca, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xa9, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0xa9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0x89, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0xa9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xdc, + 0xe9, 0xd7, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xf1, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf1, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xf1, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf1, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xe6, + 0xe9, 0xe1, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xf1, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf1, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xf1, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xec, + 0xe9, 0xe7, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xf1, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf1, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xf1, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf1, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xf0, + 0xe9, 0xe4, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xf1, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf1, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xf1, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf1, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xef, + 0xe9, 0xdd, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xf1, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf1, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xf1, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf1, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xe9, + 0xe9, 0xd0, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xf1, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf1, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xf1, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf1, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xe2, + 0xe9, 0xbf, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xed, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf1, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xf1, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf1, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xed, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xed, 0xd7, + 0xed, 0xa4, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xed, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfa, 0xff, 0xf0, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf6, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xfb, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xed, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xcd, 0xc6, + 0xcd, 0x85, 0xe9, 0xfe, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xf1, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xfa, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfb, 0xff, 0xf0, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf5, 0xff, 0xf0, 0xff, 0xf5, 0xff, 0xff, 0xff, 0xfb, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xfb, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf1, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xfe, 0xd1, 0xb3, + 0xd1, 0x70, 0xed, 0xfc, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xf1, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf5, 0xff, 0xf0, 0xff, 0xfa, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfb, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xf1, 0xff, 0xf0, 0xff, 0xfa, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf1, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xed, 0xfc, 0xd1, 0xa4, + 0xd1, 0x66, 0xcd, 0xfa, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf5, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf5, 0xff, 0xf0, 0xff, 0xf5, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfa, 0xff, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf6, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xec, 0xff, 0xf5, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xed, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xcd, 0xf9, 0xd1, 0x9e, + 0xd1, 0x65, 0xd1, 0xf9, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xf1, 0xff, 0xf5, 0xff, 0xfa, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfa, 0xff, 0xf0, 0xff, 0xf5, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfa, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfa, 0xff, 0xff, 0xff, 0xff, 0xff, 0xec, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xf5, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf5, 0xff, 0xf1, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xd1, 0xf7, 0xd1, 0x9e, + 0xd1, 0x65, 0xd1, 0xf8, 0xed, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xf1, 0xff, 0xfa, 0xff, 0xff, 0xff, 0xff, 0xff, 0xd0, 0xff, 0xfa, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0xff, 0xf5, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf5, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfa, 0xff, 0xff, 0xff, 0xfa, 0xff, 0xfa, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0xff, 0xf6, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xfb, 0xff, 0xff, 0xff, 0xf1, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xed, 0xff, 0xd1, 0xf6, 0xd1, 0x9e, + 0xd1, 0x65, 0xd1, 0xf8, 0xd1, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xed, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfa, 0xff, 0xcc, 0xff, 0xf6, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf1, 0xff, 0xf5, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf5, 0xff, 0xfa, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf5, 0xff, 0xfa, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0xff, 0xff, 0xff, 0xfb, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xed, 0xff, 0xf6, 0xff, 0xed, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xd1, 0xff, 0xd1, 0xf6, 0xd1, 0x9e, + 0xd1, 0x65, 0xd1, 0xf8, 0xd5, 0xff, 0xf1, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xf6, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf5, 0xff, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0xff, 0xfa, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf6, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xf1, 0xff, 0xd5, 0xff, 0xd1, 0xf6, 0xd1, 0x9e, + 0xd1, 0x65, 0xd1, 0xf8, 0xd5, 0xff, 0xf5, 0xff, 0xed, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xfb, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfa, 0xff, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf6, 0xff, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfa, 0xff, 0xd0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xd0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfa, 0xff, 0xec, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xed, 0xff, 0xf5, 0xff, 0xd5, 0xff, 0xd1, 0xf6, 0xd1, 0x9e, + 0xd1, 0x65, 0xd1, 0xf8, 0xd5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xf1, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfa, 0xff, 0xf0, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xd0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0xff, 0xf1, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xf1, 0xff, 0xf5, 0xff, 0xd5, 0xff, 0xd1, 0xf6, 0xd1, 0x9e, + 0xd1, 0x65, 0xd1, 0xf8, 0xd5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf1, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xed, 0xff, 0xd0, 0xff, 0xfa, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf5, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfa, 0xff, 0xf1, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xd0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf1, 0xff, 0xed, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xf1, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xd5, 0xff, 0xd1, 0xf6, 0xd1, 0x9e, + 0xd1, 0x65, 0xd1, 0xf8, 0xd5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf1, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xf1, 0xff, 0xfa, 0xff, 0xfa, 0xff, 0xf5, 0xff, 0xfa, 0xff, 0xfa, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf6, 0xff, 0xfa, 0xff, 0xf6, 0xff, 0xf5, 0xff, 0xfa, 0xff, 0xfa, 0xff, 0xf1, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xf1, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xd5, 0xff, 0xd1, 0xf6, 0xd1, 0x9e, + 0xd1, 0x65, 0xd1, 0xf8, 0xd5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf1, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xed, 0xff, 0xf1, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf1, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf1, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf1, 0xff, 0xed, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xf1, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xd5, 0xff, 0xd1, 0xf5, 0xd1, 0x9d, + 0xb1, 0x71, 0xd1, 0xfc, 0xd5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xed, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xed, 0xff, 0xf1, 0xff, 0xf1, 0xff, 0xf1, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf1, 0xff, 0xf1, 0xff, 0xed, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xed, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xd5, 0xff, 0xd1, 0xfb, 0xd1, 0xac, + 0xb1, 0x4f, 0xd1, 0xfb, 0xd5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf1, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xed, 0xff, 0xed, 0xff, 0xed, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xf1, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xd5, 0xff, 0xd1, 0xfa, 0xd1, 0x8e, + 0xd5, 0x07, 0xd1, 0xc0, 0xd1, 0xff, 0xd5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf1, 0xff, 0xed, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xed, 0xff, 0xf1, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xd5, 0xff, 0xd1, 0xff, 0xd1, 0xc0, 0xb1, 0x1f, + 0x00, 0x00, 0xd5, 0x2b, 0xd1, 0xe4, 0xd1, 0xff, 0xd5, 0xff, 0xd5, 0xff, 0xd1, 0xff, 0xd1, 0xff, 0xd5, 0xff, 0xd5, 0xff, 0xd1, 0xff, 0xd1, 0xff, 0xf1, 0xff, 0xf1, 0xff, 0xed, 0xff, 0xed, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xed, 0xff, 0xed, 0xff, 0xf1, 0xff, 0xd1, 0xff, 0xd5, 0xff, 0xd1, 0xff, 0xd1, 0xff, 0xd1, 0xff, 0xf1, 0xff, 0xd1, 0xff, 0xd5, 0xff, 0xd5, 0xff, 0xd1, 0xff, 0xd1, 0xe4, 0xf5, 0x2b, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xd5, 0x29, 0xd1, 0x92, 0xd1, 0xc5, 0xd1, 0xc5, 0xd1, 0x9f, 0xd1, 0x7f, 0xd1, 0x86, 0xd1, 0x87, 0xd1, 0x86, 0xd1, 0x86, 0xd1, 0x7f, 0xd1, 0x98, 0xd1, 0xc1, 0xd1, 0xc3, 0xd1, 0xcb, 0xed, 0xd7, 0xed, 0xe3, 0xe9, 0xec, 0xe9, 0xf2, 0xe9, 0xf5, 0xe9, 0xf7, 0xe9, 0xf5, 0xe9, 0xf2, 0xe9, 0xeb, 0xed, 0xe3, 0xed, 0xd7, 0xd1, 0xcb, 0xd1, 0xc3, 0xd1, 0xc0, 0xd1, 0x9a, 0xd1, 0x7f, 0xd1, 0x86, 0xd1, 0x86, 0xd1, 0x87, 0xd1, 0x87, 0xd1, 0x7f, 0xd1, 0x9e, 0xd1, 0xc5, 0xd1, 0xc5, 0xd1, 0x92, 0xd5, 0x29, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd1, 0x08, 0xd0, 0x04, 0xbb, 0x2b, 0xbb, 0x5a, 0xb7, 0x4c, 0xbb, 0x4b, 0xb7, 0x4c, 0xbb, 0x4c, 0xbb, 0x57, 0xb7, 0x35, 0xf0, 0x06, 0xf1, 0x06, 0xd5, 0x05, 0xd5, 0x05, 0xd5, 0x05, 0xd5, 0x05, 0xd5, 0x05, 0xd5, 0x05, 0xd5, 0x05, 0xd5, 0x05, 0xd5, 0x05, 0xd5, 0x05, 0xd5, 0x05, 0xd5, 0x05, 0xd5, 0x05, 0xb1, 0x06, 0xcc, 0x05, 0xbb, 0x34, 0xbb, 0x57, 0xb7, 0x4c, 0xb7, 0x4c, 0xbb, 0x4b, 0xbb, 0x4c, 0xbb, 0x5a, 0xb7, 0x2b, 0xd0, 0x04, 0xd1, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xbb, 0x90, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0x97, 0xb8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xbb, 0xb5, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xdb, 0xff, 0xbb, 0xff, 0xb7, 0x92, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb7, 0x2f, 0xb7, 0xcb, 0xb7, 0xee, 0xb7, 0xdd, 0xb7, 0xdc, 0xb7, 0xec, 0xb6, 0xd2, 0x92, 0x42, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb7, 0x41, 0xb7, 0xd3, 0xb7, 0xec, 0xb7, 0xdc, 0xb7, 0xdd, 0xb7, 0xee, 0xb6, 0xc9, 0xb6, 0x2e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +#endif +#if LV_COLOR_DEPTH == 16 && LV_COLOR_16_SWAP == 0 + /*Pixel format: Alpha 8 bit, Red: 5 bit, Green: 6 bit, Blue: 5 bit*/ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6a, 0xed, 0x5e, 0x4a, 0xed, 0xd7, 0x4a, 0xed, 0xff, 0x4a, 0xed, 0xff, 0x4a, 0xed, 0xfd, 0x4a, 0xed, 0xfe, 0x4a, 0xed, 0xfe, 0x4a, 0xed, 0xfe, 0x4a, 0xed, 0xfe, 0x4a, 0xed, 0xfe, 0x4a, 0xed, 0xfe, 0x4a, 0xed, 0xfe, 0x4a, 0xed, 0xfe, 0x4a, 0xed, 0xfe, 0x4a, 0xed, 0xfe, 0x4a, 0xed, 0xfe, 0x4a, 0xed, 0xfe, 0x4a, 0xed, 0xfe, 0x4a, 0xed, 0xfd, 0x4a, 0xed, 0xff, 0x4a, 0xed, 0xff, 0x4a, 0xed, 0xd7, 0x4a, 0xe5, 0x5c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4a, 0xed, 0x6e, 0x4a, 0xed, 0xff, 0x4a, 0xed, 0xe4, 0x6a, 0xed, 0xa0, 0x6a, 0xed, 0xa6, 0x6a, 0xed, 0xab, 0x6a, 0xed, 0xaa, 0x6a, 0xed, 0xaa, 0x6a, 0xed, 0xaa, 0x6a, 0xed, 0xaa, 0x6a, 0xed, 0xaa, 0x6a, 0xed, 0xaa, 0x6a, 0xed, 0xaa, 0x6a, 0xed, 0xaa, 0x6a, 0xed, 0xaa, 0x6a, 0xed, 0xaa, 0x6a, 0xed, 0xaa, 0x6a, 0xed, 0xaa, 0x6a, 0xed, 0xaa, 0x6a, 0xed, 0xab, 0x6a, 0xed, 0xa5, 0x6a, 0xed, 0xa0, 0x4a, 0xed, 0xe4, 0x4a, 0xed, 0xff, 0x6a, 0xed, 0x6d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xab, 0xf5, 0x26, 0x4a, 0xe5, 0xff, 0x6a, 0xed, 0xc5, 0x8a, 0xed, 0x16, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8a, 0xed, 0x16, 0x6a, 0xf5, 0xc5, 0x4a, 0xe5, 0xff, 0x8b, 0xed, 0x26, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4a, 0xed, 0x5a, 0xab, 0xf5, 0xff, 0xcb, 0xfd, 0x43, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xab, 0xfd, 0x43, 0xab, 0xf5, 0xff, 0x4a, 0xed, 0x5a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0xc4, 0x1c, 0x27, 0xc4, 0x41, 0x67, 0xbc, 0x3f, 0x47, 0xbc, 0x3c, 0x47, 0xbc, 0x3b, 0x06, 0xb4, 0x32, 0xa8, 0xcc, 0x8f, 0x8a, 0xf5, 0xff, 0x68, 0xcc, 0x65, 0xe6, 0xb3, 0x31, 0x27, 0xbc, 0x3c, 0x27, 0xbc, 0x3c, 0x27, 0xbc, 0x3c, 0x27, 0xbc, 0x3c, 0x27, 0xbc, 0x3c, 0x27, 0xbc, 0x3c, 0x27, 0xbc, 0x3c, 0x27, 0xbc, 0x3c, 0x27, 0xbc, 0x3c, 0x27, 0xbc, 0x3c, 0x27, 0xbc, 0x3c, 0x27, 0xbc, 0x3c, 0x27, 0xbc, 0x3c, 0x27, 0xbc, 0x3c, 0x27, 0xbc, 0x3c, 0x27, 0xbc, 0x3c, 0x27, 0xbc, 0x3c, 0x27, 0xbc, 0x3c, 0x27, 0xbc, 0x3c, 0xe6, 0xb3, 0x31, 0x68, 0xcc, 0x65, 0x8a, 0xf5, 0xff, 0xa8, 0xcc, 0x8f, 0x06, 0xb4, 0x32, 0x47, 0xbc, 0x3b, 0x47, 0xbc, 0x3c, 0x67, 0xbc, 0x3f, 0x27, 0xc4, 0x41, 0x48, 0xc4, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x87, 0xc4, 0x73, 0x27, 0xbc, 0xdf, 0x47, 0xc4, 0xfa, 0x88, 0xcc, 0xf8, 0x88, 0xcc, 0xf7, 0x88, 0xcc, 0xf7, 0x87, 0xcc, 0xf0, 0x67, 0xcc, 0xf9, 0x67, 0xc4, 0xff, 0x47, 0xc4, 0xf6, 0x87, 0xcc, 0xef, 0x88, 0xcc, 0xf7, 0x88, 0xcc, 0xf7, 0x88, 0xcc, 0xf7, 0x88, 0xcc, 0xf7, 0x88, 0xcc, 0xf7, 0x88, 0xcc, 0xf7, 0x88, 0xcc, 0xf7, 0x88, 0xcc, 0xf7, 0x88, 0xcc, 0xf7, 0x88, 0xcc, 0xf7, 0x88, 0xcc, 0xf7, 0x88, 0xcc, 0xf7, 0x88, 0xcc, 0xf7, 0x88, 0xcc, 0xf7, 0x88, 0xcc, 0xf7, 0x88, 0xcc, 0xf7, 0x88, 0xcc, 0xf7, 0x88, 0xcc, 0xf7, 0x88, 0xcc, 0xf7, 0x87, 0xcc, 0xef, 0x47, 0xc4, 0xf6, 0x67, 0xc4, 0xff, 0x67, 0xcc, 0xf9, 0x87, 0xcc, 0xf0, 0x88, 0xcc, 0xf7, 0x88, 0xcc, 0xf7, 0x87, 0xcc, 0xf8, 0x47, 0xc4, 0xfa, 0x27, 0xbc, 0xdf, 0xa6, 0xcc, 0x73, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xc7, 0xcc, 0x67, 0xe8, 0xbb, 0xff, 0x67, 0xcc, 0xff, 0x28, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0xe8, 0xdc, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0xa8, 0xe4, 0xff, 0xe8, 0xe3, 0xff, 0x08, 0xe3, 0xff, 0x88, 0xe2, 0xff, 0x27, 0xe2, 0xff, 0x07, 0xe2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x07, 0xe2, 0xff, 0x27, 0xe2, 0xff, 0x88, 0xe2, 0xff, 0xe8, 0xe2, 0xff, 0xc8, 0xe3, 0xff, 0xa8, 0xe4, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0xe8, 0xdc, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x28, 0xe5, 0xff, 0x68, 0xcc, 0xff, 0x07, 0xbc, 0xff, 0xa7, 0xcc, 0x67, 0x00, 0x00, 0x00, + 0x09, 0xb4, 0x1e, 0x27, 0xbc, 0xe1, 0x88, 0xcc, 0xff, 0x08, 0xe5, 0xff, 0xa6, 0xa3, 0xff, 0x85, 0x72, 0xff, 0xc5, 0x7a, 0xff, 0xc5, 0x7a, 0xff, 0xc5, 0x7a, 0xff, 0xc5, 0x7a, 0xff, 0xc5, 0x7a, 0xff, 0xc5, 0x7a, 0xff, 0xa5, 0x8a, 0xff, 0x46, 0xb2, 0xff, 0x07, 0xd2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x07, 0xd2, 0xff, 0x46, 0xb2, 0xff, 0xa5, 0x92, 0xff, 0xc5, 0x7a, 0xff, 0xc5, 0x7a, 0xff, 0xc5, 0x7a, 0xff, 0xc5, 0x7a, 0xff, 0xc5, 0x7a, 0xff, 0xc5, 0x7a, 0xff, 0x85, 0x72, 0xff, 0xa6, 0xa3, 0xff, 0x08, 0xe5, 0xff, 0x88, 0xcc, 0xff, 0x08, 0xbc, 0xe2, 0x28, 0xc4, 0x49, + 0x2a, 0xac, 0x65, 0x67, 0xcc, 0xfb, 0x48, 0xed, 0xff, 0xa6, 0xa3, 0xff, 0x23, 0x31, 0xff, 0xa3, 0x41, 0xff, 0xc3, 0x49, 0xff, 0xc3, 0x49, 0xff, 0xc3, 0x49, 0xff, 0xc3, 0x49, 0xff, 0xc4, 0x59, 0xff, 0xc6, 0x99, 0xff, 0xe7, 0xd9, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xd9, 0xff, 0xc6, 0xa1, 0xff, 0xc4, 0x59, 0xff, 0xc3, 0x49, 0xff, 0xc3, 0x49, 0xff, 0xa3, 0x49, 0xff, 0xc3, 0x49, 0xff, 0xa3, 0x41, 0xff, 0x23, 0x31, 0xff, 0xa6, 0xa3, 0xff, 0x49, 0xed, 0xff, 0x67, 0xc4, 0xfa, 0x67, 0xc4, 0xa7, + 0x49, 0xb4, 0x6b, 0x87, 0xcc, 0xfa, 0x49, 0xed, 0xff, 0x85, 0x72, 0xff, 0x63, 0x41, 0xff, 0x44, 0x62, 0xff, 0x44, 0x62, 0xff, 0x44, 0x62, 0xff, 0x44, 0x62, 0xff, 0x25, 0x8a, 0xff, 0xe7, 0xc9, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xd9, 0xff, 0xe7, 0xc9, 0xff, 0x06, 0xb2, 0xff, 0x06, 0xa2, 0xff, 0x26, 0x9a, 0xff, 0x25, 0x9a, 0xff, 0x26, 0x9a, 0xff, 0x06, 0xa2, 0xff, 0x06, 0xb2, 0xff, 0xe7, 0xc9, 0xff, 0xe7, 0xd1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xc9, 0xff, 0x25, 0x8a, 0xff, 0x44, 0x62, 0xff, 0x24, 0x62, 0xff, 0x44, 0x62, 0xff, 0x44, 0x6a, 0xff, 0x63, 0x41, 0xff, 0x85, 0x72, 0xff, 0x49, 0xed, 0xff, 0x88, 0xcc, 0xf8, 0x47, 0xc4, 0xa3, + 0x47, 0xc4, 0x65, 0xa8, 0xcc, 0xf8, 0x29, 0xed, 0xff, 0xa5, 0x72, 0xff, 0xa3, 0x49, 0xff, 0x44, 0x62, 0xff, 0x24, 0x62, 0xff, 0x44, 0x62, 0xff, 0x26, 0x9a, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x06, 0xc2, 0xff, 0x06, 0x9a, 0xff, 0x25, 0x7a, 0xff, 0x44, 0x6a, 0xff, 0x44, 0x62, 0xff, 0x44, 0x62, 0xff, 0x44, 0x62, 0xff, 0x44, 0x62, 0xff, 0x44, 0x62, 0xff, 0x44, 0x62, 0xff, 0x44, 0x62, 0xff, 0x44, 0x6a, 0xff, 0x25, 0x7a, 0xff, 0x26, 0x9a, 0xff, 0x06, 0xc2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xc7, 0xe1, 0xff, 0x06, 0x9a, 0xff, 0x44, 0x62, 0xff, 0x24, 0x62, 0xff, 0x44, 0x62, 0xff, 0xa3, 0x49, 0xff, 0xa5, 0x72, 0xff, 0x49, 0xed, 0xff, 0xa8, 0xcc, 0xf6, 0x47, 0xc4, 0x9e, + 0x47, 0xc4, 0x65, 0xa8, 0xcc, 0xf8, 0x29, 0xed, 0xff, 0xa5, 0x7a, 0xff, 0xa3, 0x49, 0xff, 0x44, 0x62, 0xff, 0x44, 0x6a, 0xff, 0x06, 0xaa, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x06, 0xba, 0xff, 0x25, 0x8a, 0xff, 0x44, 0x6a, 0xff, 0x44, 0x62, 0xff, 0x44, 0x62, 0xff, 0x44, 0x62, 0xff, 0x44, 0x62, 0xff, 0x44, 0x62, 0xff, 0x44, 0x62, 0xff, 0x44, 0x62, 0xff, 0x44, 0x62, 0xff, 0x44, 0x62, 0xff, 0x44, 0x62, 0xff, 0x44, 0x62, 0xff, 0x44, 0x62, 0xff, 0x44, 0x62, 0xff, 0x44, 0x6a, 0xff, 0x25, 0x8a, 0xff, 0x06, 0xba, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x06, 0xaa, 0xff, 0x24, 0x6a, 0xff, 0x44, 0x62, 0xff, 0xa3, 0x49, 0xff, 0xa5, 0x7a, 0xff, 0x29, 0xed, 0xff, 0x88, 0xcc, 0xf6, 0x47, 0xc4, 0x9e, + 0x47, 0xc4, 0x65, 0x88, 0xcc, 0xf8, 0x49, 0xed, 0xff, 0xc5, 0x7a, 0xff, 0xa3, 0x49, 0xff, 0x44, 0x6a, 0xff, 0x06, 0xaa, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xd1, 0xff, 0x26, 0x9a, 0xff, 0x44, 0x6a, 0xff, 0x65, 0x6a, 0xff, 0x65, 0x6a, 0xff, 0x44, 0x62, 0xff, 0x65, 0x6a, 0xff, 0x65, 0x6a, 0xff, 0x44, 0x62, 0xff, 0x44, 0x6a, 0xff, 0x65, 0x6a, 0xff, 0x44, 0x62, 0xff, 0x64, 0x6a, 0xff, 0x65, 0x6a, 0xff, 0x44, 0x6a, 0xff, 0x44, 0x6a, 0xff, 0x65, 0x6a, 0xff, 0x65, 0x6a, 0xff, 0x44, 0x62, 0xff, 0x65, 0x6a, 0xff, 0x45, 0x6a, 0xff, 0x26, 0x9a, 0xff, 0xe7, 0xd1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x06, 0xb2, 0xff, 0x44, 0x6a, 0xff, 0xa3, 0x49, 0xff, 0xc5, 0x7a, 0xff, 0x49, 0xed, 0xff, 0x88, 0xcc, 0xf6, 0x47, 0xc4, 0x9e, + 0x47, 0xc4, 0x65, 0x88, 0xcc, 0xf8, 0x49, 0xed, 0xff, 0xc5, 0x7a, 0xff, 0xa3, 0x49, 0xff, 0x26, 0xaa, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xc4, 0x89, 0xff, 0x85, 0x6a, 0xff, 0x85, 0x6a, 0xff, 0x44, 0x62, 0xff, 0x81, 0x51, 0xff, 0x63, 0x6a, 0xff, 0xa2, 0x51, 0xff, 0x44, 0x62, 0xff, 0x65, 0x6a, 0xff, 0x85, 0x6a, 0xff, 0xa2, 0x51, 0xff, 0x23, 0x6a, 0xff, 0xe2, 0x61, 0xff, 0xe2, 0x51, 0xff, 0x85, 0x6a, 0xff, 0x65, 0x6a, 0xff, 0x03, 0x5a, 0xff, 0xc2, 0x59, 0xff, 0x63, 0x6a, 0xff, 0xa1, 0x51, 0xff, 0x65, 0x6a, 0xff, 0x65, 0x6a, 0xff, 0x65, 0x82, 0xff, 0xc6, 0xc1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x06, 0xaa, 0xff, 0xa3, 0x49, 0xff, 0xc5, 0x7a, 0xff, 0x49, 0xed, 0xff, 0x88, 0xcc, 0xf6, 0x47, 0xc4, 0x9e, + 0x47, 0xbc, 0x65, 0x88, 0xcc, 0xf8, 0x29, 0xed, 0xff, 0xa5, 0x7a, 0xff, 0xc5, 0x81, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x07, 0xd2, 0xff, 0xe4, 0x79, 0xff, 0x65, 0x6a, 0xff, 0x02, 0x5a, 0xff, 0x08, 0x83, 0xff, 0x87, 0x62, 0xff, 0xe7, 0x7a, 0xff, 0x23, 0x62, 0xff, 0x85, 0x6a, 0xff, 0xe2, 0x59, 0xff, 0xc6, 0x7a, 0xff, 0xa8, 0x6a, 0xff, 0xe8, 0x72, 0xff, 0x64, 0x6a, 0xff, 0x03, 0x5a, 0xff, 0x44, 0x6a, 0xff, 0x43, 0x6a, 0xff, 0x08, 0x7b, 0xff, 0x67, 0x5a, 0xff, 0x07, 0x7b, 0xff, 0xc2, 0x59, 0xff, 0x85, 0x6a, 0xff, 0xc2, 0x59, 0xff, 0xa6, 0x82, 0xff, 0x28, 0xc2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xc5, 0x81, 0xff, 0xa5, 0x7a, 0xff, 0x29, 0xed, 0xff, 0x88, 0xcc, 0xf6, 0x47, 0xbc, 0x9e, + 0x47, 0xbc, 0x65, 0x88, 0xcc, 0xf8, 0x29, 0xed, 0xff, 0x85, 0x8a, 0xff, 0xe7, 0xc9, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xd1, 0xff, 0x62, 0x71, 0xff, 0x2c, 0x9c, 0xff, 0xfa, 0xe6, 0xff, 0xa9, 0x5a, 0xff, 0xd8, 0xe6, 0xff, 0x2c, 0x9c, 0xff, 0x81, 0x49, 0xff, 0x23, 0x62, 0xff, 0x5a, 0xff, 0xff, 0xce, 0x7b, 0xff, 0xf3, 0x9c, 0xff, 0x56, 0xde, 0xff, 0x60, 0x49, 0xff, 0x81, 0x51, 0xff, 0x71, 0xc5, 0xff, 0x16, 0xc6, 0xff, 0x69, 0x4a, 0xff, 0x3b, 0xef, 0xff, 0xe6, 0x7a, 0xff, 0x01, 0x41, 0xff, 0x44, 0x62, 0xff, 0x9a, 0xff, 0xff, 0xee, 0x93, 0xff, 0xcb, 0xda, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xd1, 0xff, 0x85, 0x8a, 0xff, 0x29, 0xed, 0xff, 0x88, 0xcc, 0xf6, 0x47, 0xbc, 0x9e, + 0x47, 0xbc, 0x65, 0x88, 0xcc, 0xf8, 0x29, 0xed, 0xff, 0x26, 0xba, 0xff, 0xc7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xc9, 0xff, 0xd1, 0xf4, 0xff, 0x69, 0xe2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xc7, 0xd1, 0xff, 0x6e, 0xcc, 0xff, 0xfd, 0xff, 0xff, 0x95, 0xe6, 0xff, 0xfc, 0xff, 0xff, 0xef, 0xbc, 0xff, 0xe0, 0x38, 0xff, 0x07, 0x7b, 0xff, 0xfc, 0xff, 0xff, 0x17, 0xef, 0xff, 0x9a, 0xff, 0xff, 0x7a, 0xff, 0xff, 0xa2, 0x51, 0xff, 0x20, 0x41, 0xff, 0x34, 0xd6, 0xff, 0xda, 0xff, 0xff, 0x95, 0xde, 0xff, 0xfd, 0xff, 0xff, 0x2c, 0xa4, 0xff, 0x40, 0x28, 0xff, 0x48, 0x83, 0xff, 0xfd, 0xff, 0xff, 0xf7, 0xee, 0xff, 0x38, 0xff, 0xff, 0x89, 0xe2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xc7, 0xe1, 0xff, 0x26, 0xba, 0xff, 0x29, 0xed, 0xff, 0x88, 0xcc, 0xf6, 0x47, 0xbc, 0x9e, + 0x47, 0xbc, 0x65, 0x88, 0xcc, 0xf8, 0x68, 0xec, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xc4, 0x81, 0xff, 0xae, 0xac, 0xff, 0xb4, 0xfd, 0xff, 0x49, 0xea, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xd9, 0xff, 0x93, 0xed, 0xff, 0xfd, 0xff, 0xff, 0x96, 0xee, 0xff, 0xe7, 0x7a, 0xff, 0xc2, 0x51, 0xff, 0xe3, 0x59, 0xff, 0x51, 0xc5, 0xff, 0xfd, 0xff, 0xff, 0xfc, 0xff, 0xff, 0x8e, 0xac, 0xff, 0x81, 0x51, 0xff, 0xa2, 0x51, 0xff, 0x8a, 0x8b, 0xff, 0x59, 0xff, 0xff, 0xfd, 0xff, 0xff, 0x55, 0xe6, 0xff, 0x45, 0x6a, 0xff, 0x61, 0x49, 0xff, 0x03, 0x5a, 0xff, 0xf3, 0xd5, 0xff, 0xfd, 0xff, 0xff, 0xba, 0xff, 0xff, 0x2a, 0xab, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x48, 0xec, 0xff, 0x88, 0xcc, 0xf6, 0x47, 0xbc, 0x9e, + 0x47, 0xbc, 0x65, 0x88, 0xcc, 0xf8, 0x28, 0xeb, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x06, 0xba, 0xff, 0x24, 0x62, 0xff, 0xe3, 0x59, 0xff, 0xaa, 0x8b, 0xff, 0x0a, 0xb3, 0xff, 0xe7, 0xd9, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xd9, 0xff, 0x8b, 0xb3, 0xff, 0xa7, 0x72, 0xff, 0xc2, 0x51, 0xff, 0x85, 0x6a, 0xff, 0xe3, 0x59, 0xff, 0x03, 0x5a, 0xff, 0xec, 0x93, 0xff, 0x8a, 0x8b, 0xff, 0xc2, 0x51, 0xff, 0x24, 0x62, 0xff, 0x64, 0x6a, 0xff, 0xc2, 0x51, 0xff, 0x29, 0x83, 0xff, 0x2d, 0x9c, 0xff, 0x65, 0x62, 0xff, 0xc2, 0x51, 0xff, 0x85, 0x72, 0xff, 0xe2, 0x59, 0xff, 0x24, 0x62, 0xff, 0x0c, 0x9c, 0xff, 0x49, 0x83, 0xff, 0xa2, 0x51, 0xff, 0x06, 0xb2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x08, 0xeb, 0xff, 0x88, 0xcc, 0xf6, 0x47, 0xbc, 0x9e, + 0x47, 0xbc, 0x65, 0x08, 0xd4, 0xf9, 0x28, 0xe2, 0xff, 0xc7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xd9, 0xff, 0x45, 0x7a, 0xff, 0x64, 0x6a, 0xff, 0x03, 0x5a, 0xff, 0x81, 0x49, 0xff, 0x61, 0x49, 0xff, 0xe5, 0x91, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xc7, 0xd1, 0xff, 0xc4, 0x79, 0xff, 0x44, 0x62, 0xff, 0x65, 0x6a, 0xff, 0x65, 0x6a, 0xff, 0xe3, 0x59, 0xff, 0x61, 0x49, 0xff, 0x61, 0x49, 0xff, 0x04, 0x5a, 0xff, 0x65, 0x6a, 0xff, 0x65, 0x6a, 0xff, 0x24, 0x62, 0xff, 0xa2, 0x49, 0xff, 0x61, 0x49, 0xff, 0xc2, 0x51, 0xff, 0x65, 0x6a, 0xff, 0x65, 0x6a, 0xff, 0x65, 0x6a, 0xff, 0xe3, 0x59, 0xff, 0x61, 0x49, 0xff, 0x81, 0x49, 0xff, 0x24, 0x62, 0xff, 0x45, 0x82, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x07, 0xe2, 0xff, 0x08, 0xd4, 0xf8, 0x47, 0xbc, 0x9e, + 0x27, 0xc4, 0x68, 0x48, 0xdb, 0xfb, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xc7, 0xe1, 0xff, 0x06, 0xb2, 0xff, 0x44, 0x6a, 0xff, 0x44, 0x62, 0xff, 0x44, 0x6a, 0xff, 0x65, 0x6a, 0xff, 0x65, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x25, 0x92, 0xff, 0xe7, 0xd9, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xd1, 0xff, 0x45, 0x8a, 0xff, 0x64, 0x6a, 0xff, 0x44, 0x6a, 0xff, 0x65, 0x6a, 0xff, 0x65, 0x6a, 0xff, 0x65, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x44, 0x6a, 0xff, 0x44, 0x6a, 0xff, 0x44, 0x6a, 0xff, 0x65, 0x6a, 0xff, 0x65, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x62, 0xff, 0x64, 0x6a, 0xff, 0x65, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x44, 0x62, 0xff, 0x44, 0x6a, 0xff, 0x06, 0xb2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x47, 0xdb, 0xfa, 0x27, 0xc4, 0xa0, + 0xa7, 0xcb, 0x79, 0x67, 0xe2, 0xfe, 0xe7, 0xe1, 0xff, 0xc7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x45, 0x8a, 0xff, 0x44, 0x62, 0xff, 0x44, 0x62, 0xff, 0x44, 0x62, 0xff, 0x44, 0x62, 0xff, 0x44, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x25, 0x92, 0xff, 0xe7, 0xd9, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xd9, 0xff, 0x45, 0x8a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x44, 0x62, 0xff, 0x44, 0x62, 0xff, 0x44, 0x62, 0xff, 0x44, 0x62, 0xff, 0x44, 0x62, 0xff, 0x45, 0x8a, 0xff, 0xc7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x67, 0xe2, 0xfd, 0xc7, 0xc3, 0xab, + 0x07, 0xd3, 0x95, 0x07, 0xe2, 0xff, 0xe7, 0xe1, 0xff, 0xc7, 0xe1, 0xff, 0xe7, 0xc1, 0xff, 0x65, 0x7a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x26, 0x9a, 0xff, 0xe7, 0xd9, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xd9, 0xff, 0x45, 0x8a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x65, 0x72, 0xff, 0xe6, 0xc1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x07, 0xe2, 0xfe, 0x47, 0xcb, 0xbc, + 0x88, 0xda, 0xb4, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xc7, 0xe1, 0xff, 0xa6, 0xa1, 0xff, 0xe4, 0x59, 0xff, 0xe4, 0x51, 0xff, 0xe4, 0x51, 0xff, 0xe4, 0x51, 0xff, 0xe4, 0x51, 0xff, 0xe4, 0x51, 0xff, 0xe4, 0x51, 0xff, 0xe4, 0x51, 0xff, 0xe4, 0x51, 0xff, 0xe4, 0x51, 0xff, 0xe5, 0x89, 0xff, 0xe7, 0xd9, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xd1, 0xff, 0xe5, 0x79, 0xff, 0xe4, 0x51, 0xff, 0xe4, 0x51, 0xff, 0xe4, 0x51, 0xff, 0xe4, 0x51, 0xff, 0xe4, 0x51, 0xff, 0xe4, 0x51, 0xff, 0xe4, 0x51, 0xff, 0xe4, 0x51, 0xff, 0xe4, 0x51, 0xff, 0xe4, 0x51, 0xff, 0xe4, 0x51, 0xff, 0xe4, 0x51, 0xff, 0xe4, 0x51, 0xff, 0xe4, 0x51, 0xff, 0xe4, 0x51, 0xff, 0xe4, 0x51, 0xff, 0xe4, 0x51, 0xff, 0xe4, 0x51, 0xff, 0xa5, 0xa1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xc7, 0xd2, 0xcf, + 0x47, 0xda, 0xca, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe5, 0x91, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x46, 0x9a, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xd9, 0xff, 0x45, 0x8a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0xe5, 0x91, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x87, 0xda, 0xdc, + 0x27, 0xe2, 0xd7, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x07, 0xe2, 0xff, 0x28, 0xec, 0xff, 0x49, 0xed, 0xff, 0x49, 0xed, 0xff, 0x49, 0xed, 0xff, 0x49, 0xed, 0xff, 0x49, 0xed, 0xff, 0x49, 0xed, 0xff, 0x49, 0xed, 0xff, 0x49, 0xed, 0xff, 0x49, 0xed, 0xff, 0x49, 0xed, 0xff, 0x49, 0xed, 0xff, 0x49, 0xed, 0xff, 0x08, 0xec, 0xff, 0x07, 0xe2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x47, 0xe2, 0xff, 0x48, 0xec, 0xff, 0x49, 0xed, 0xff, 0x49, 0xed, 0xff, 0x49, 0xed, 0xff, 0x49, 0xed, 0xff, 0x49, 0xed, 0xff, 0x49, 0xed, 0xff, 0x49, 0xed, 0xff, 0x49, 0xed, 0xff, 0x49, 0xed, 0xff, 0x49, 0xed, 0xff, 0x49, 0xed, 0xff, 0x49, 0xed, 0xff, 0x49, 0xed, 0xff, 0x49, 0xed, 0xff, 0x49, 0xed, 0xff, 0x49, 0xed, 0xff, 0x28, 0xec, 0xff, 0x07, 0xe2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x47, 0xe2, 0xe6, + 0x07, 0xe2, 0xe1, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x27, 0xe2, 0xff, 0x89, 0xec, 0xff, 0x69, 0xf5, 0xff, 0x69, 0xf5, 0xff, 0x69, 0xf5, 0xff, 0x69, 0xf5, 0xff, 0x69, 0xf5, 0xff, 0x69, 0xf5, 0xff, 0x69, 0xf5, 0xff, 0x69, 0xf5, 0xff, 0x69, 0xf5, 0xff, 0x69, 0xf5, 0xff, 0x69, 0xf5, 0xff, 0x69, 0xf5, 0xff, 0x69, 0xf5, 0xff, 0x28, 0xec, 0xff, 0x07, 0xe2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x47, 0xe2, 0xff, 0x68, 0xec, 0xff, 0x69, 0xf5, 0xff, 0x69, 0xf5, 0xff, 0x69, 0xf5, 0xff, 0x69, 0xf5, 0xff, 0x69, 0xf5, 0xff, 0x69, 0xf5, 0xff, 0x69, 0xf5, 0xff, 0x69, 0xf5, 0xff, 0x69, 0xf5, 0xff, 0x69, 0xf5, 0xff, 0x69, 0xf5, 0xff, 0x69, 0xf5, 0xff, 0x69, 0xf5, 0xff, 0x69, 0xf5, 0xff, 0x69, 0xf5, 0xff, 0x89, 0xec, 0xff, 0x28, 0xe2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x27, 0xe2, 0xec, + 0x07, 0xe2, 0xe7, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x27, 0xe2, 0xff, 0x48, 0xe4, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0xe8, 0xe3, 0xff, 0x07, 0xe2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x27, 0xe2, 0xff, 0x28, 0xe4, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x48, 0xe4, 0xff, 0x27, 0xe2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x27, 0xe2, 0xf0, + 0x07, 0xe2, 0xe4, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x27, 0xe2, 0xff, 0x48, 0xe4, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0xe8, 0xe3, 0xff, 0x07, 0xe2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x27, 0xe2, 0xff, 0x28, 0xe4, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x48, 0xe4, 0xff, 0x27, 0xe2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x27, 0xe2, 0xef, + 0x27, 0xe2, 0xdd, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x07, 0xe2, 0xff, 0x28, 0xe4, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x09, 0xe5, 0xff, 0x09, 0xe5, 0xff, 0x09, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x09, 0xe5, 0xff, 0x09, 0xe5, 0xff, 0x09, 0xe5, 0xff, 0x09, 0xe5, 0xff, 0xc8, 0xe3, 0xff, 0x07, 0xe2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x47, 0xe2, 0xff, 0x28, 0xe4, 0xff, 0x08, 0xe5, 0xff, 0x09, 0xe5, 0xff, 0x09, 0xe5, 0xff, 0x09, 0xe5, 0xff, 0x09, 0xe5, 0xff, 0x09, 0xe5, 0xff, 0x09, 0xe5, 0xff, 0x09, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x28, 0xe4, 0xff, 0x07, 0xe2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x27, 0xe2, 0xe9, + 0x27, 0xda, 0xd0, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xc8, 0xe3, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x09, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0xa5, 0xdc, 0xff, 0xa5, 0xdc, 0xff, 0xa5, 0xdc, 0xff, 0x08, 0xe5, 0xff, 0x29, 0xe5, 0xff, 0x09, 0xe5, 0xff, 0x09, 0xe5, 0xff, 0xc6, 0xdc, 0xff, 0x85, 0xdc, 0xff, 0x85, 0xdc, 0xff, 0xe7, 0xe4, 0xff, 0x29, 0xe5, 0xff, 0xe8, 0xe3, 0xff, 0x07, 0xe2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x27, 0xe2, 0xff, 0x49, 0xe4, 0xff, 0xc7, 0xdc, 0xff, 0xa5, 0xdc, 0xff, 0xa5, 0xdc, 0xff, 0xa5, 0xdc, 0xff, 0xa5, 0xdc, 0xff, 0xa5, 0xdc, 0xff, 0xe7, 0xe4, 0xff, 0x29, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0xc8, 0xe3, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x67, 0xda, 0xe2, + 0x67, 0xda, 0xbf, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x48, 0xe3, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x09, 0xe5, 0xff, 0xc7, 0xdc, 0xff, 0x09, 0xe5, 0xff, 0x4a, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0xc7, 0xe4, 0xff, 0x29, 0xe5, 0xff, 0x09, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x09, 0xe5, 0xff, 0x4a, 0xe5, 0xff, 0x2a, 0xe5, 0xff, 0xe7, 0xe4, 0xff, 0x08, 0xe5, 0xff, 0x29, 0xe5, 0xff, 0xc7, 0xe3, 0xff, 0x07, 0xe2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x27, 0xe2, 0xff, 0x28, 0xe4, 0xff, 0x4a, 0xe5, 0xff, 0x29, 0xe5, 0xff, 0x29, 0xe5, 0xff, 0x2a, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x84, 0xdc, 0xff, 0xa6, 0xdc, 0xff, 0x29, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x68, 0xe3, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xa7, 0xda, 0xd7, + 0xc7, 0xd2, 0xa4, 0x07, 0xe2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xc8, 0xe2, 0xff, 0xe8, 0xe4, 0xff, 0x08, 0xe5, 0xff, 0x09, 0xe5, 0xff, 0xa5, 0xdc, 0xff, 0x6c, 0xe5, 0xff, 0xbd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xbd, 0xff, 0xff, 0x6b, 0xe5, 0xff, 0xa5, 0xdc, 0xff, 0xe7, 0xe4, 0xff, 0xe7, 0xe4, 0xff, 0x5a, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x10, 0xee, 0xff, 0x84, 0xdc, 0xff, 0xe8, 0xe4, 0xff, 0x85, 0xdc, 0xff, 0x11, 0xf5, 0xff, 0x29, 0xea, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x69, 0xe2, 0xff, 0x59, 0xfe, 0xff, 0xbe, 0xff, 0xff, 0xdf, 0xff, 0xff, 0xdf, 0xff, 0xff, 0xde, 0xff, 0xff, 0xf7, 0xf6, 0xff, 0xe8, 0xe4, 0xff, 0xc7, 0xdc, 0xff, 0x29, 0xe5, 0xff, 0xe8, 0xe4, 0xff, 0xe8, 0xe2, 0xff, 0xc7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x07, 0xe2, 0xff, 0x07, 0xd3, 0xc6, + 0x47, 0xcb, 0x85, 0x27, 0xe2, 0xfe, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x27, 0xe2, 0xff, 0x68, 0xe4, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x85, 0xdc, 0xff, 0x73, 0xf6, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x94, 0xf6, 0xff, 0x64, 0xdc, 0xff, 0xc6, 0xdc, 0xff, 0xe7, 0xdc, 0xff, 0xbd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x39, 0xff, 0xff, 0xa5, 0xdc, 0xff, 0x64, 0xdc, 0xff, 0x2a, 0xe5, 0xff, 0xff, 0xff, 0xff, 0xd7, 0xfd, 0xff, 0x29, 0xea, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x8a, 0xea, 0xff, 0x79, 0xfe, 0xff, 0x9c, 0xff, 0xff, 0x9d, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf7, 0xf6, 0xff, 0x85, 0xdc, 0xff, 0x08, 0xe5, 0xff, 0x89, 0xe4, 0xff, 0x47, 0xe2, 0xff, 0xc7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x27, 0xe2, 0xfe, 0x87, 0xcb, 0xb3, + 0xe7, 0xc3, 0x70, 0xc7, 0xda, 0xfc, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xc7, 0xe1, 0xff, 0xa8, 0xe3, 0xff, 0x08, 0xe5, 0xff, 0xe8, 0xe4, 0xff, 0xc6, 0xdc, 0xff, 0x18, 0xf7, 0xff, 0xff, 0xff, 0xff, 0x5a, 0xff, 0xff, 0xff, 0xff, 0xff, 0x5a, 0xff, 0xff, 0xa6, 0xdc, 0xff, 0xa5, 0xdc, 0xff, 0xe7, 0xe4, 0xff, 0x9c, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x2a, 0xe5, 0xff, 0xe0, 0xd3, 0xff, 0x31, 0xee, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xb6, 0xf5, 0xff, 0x08, 0xe2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x69, 0xea, 0xff, 0xc5, 0xdb, 0xff, 0x64, 0xdc, 0xff, 0x32, 0xee, 0xff, 0xff, 0xff, 0xff, 0xde, 0xff, 0xff, 0xe7, 0xe4, 0xff, 0xc7, 0xdc, 0xff, 0xc8, 0xe3, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xa7, 0xda, 0xfc, 0x07, 0xc4, 0xa4, + 0x27, 0xbc, 0x66, 0x87, 0xcb, 0xfa, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x88, 0xe2, 0xff, 0xc9, 0xe4, 0xff, 0xc6, 0xdc, 0xff, 0x29, 0xe5, 0xff, 0xdf, 0xff, 0xff, 0xbd, 0xff, 0xff, 0x6c, 0xe5, 0xff, 0x7c, 0xff, 0xff, 0xff, 0xff, 0xff, 0x29, 0xe5, 0xff, 0x63, 0xdc, 0xff, 0xe8, 0xe4, 0xff, 0xbd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0xf6, 0xff, 0xff, 0xff, 0xff, 0xef, 0xed, 0xff, 0xe0, 0xd3, 0xff, 0x5a, 0xff, 0xff, 0xde, 0xff, 0xff, 0xf7, 0xf6, 0xff, 0xff, 0xff, 0xff, 0xf0, 0xec, 0xff, 0x07, 0xe2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x27, 0xe2, 0xff, 0x62, 0xdb, 0xff, 0x6b, 0xe5, 0xff, 0xff, 0xff, 0xff, 0xde, 0xff, 0xff, 0xe8, 0xe4, 0xff, 0xa6, 0xdc, 0xff, 0xa8, 0xe2, 0xff, 0xc7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x87, 0xcb, 0xf9, 0x27, 0xbc, 0x9e, + 0x47, 0xbc, 0x65, 0x27, 0xc4, 0xf9, 0x67, 0xe2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xc8, 0xe3, 0xff, 0xa5, 0xdc, 0xff, 0xad, 0xe5, 0xff, 0xff, 0xff, 0xff, 0x7b, 0xff, 0xff, 0x84, 0xdc, 0xff, 0x18, 0xff, 0xff, 0xff, 0xff, 0xff, 0xef, 0xed, 0xff, 0x42, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xbd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xcf, 0xed, 0xff, 0xde, 0xff, 0xff, 0xf7, 0xf6, 0xff, 0x43, 0xdc, 0xff, 0xde, 0xff, 0xff, 0xf7, 0xf6, 0xff, 0x31, 0xee, 0xff, 0xff, 0xff, 0xff, 0xb5, 0xf6, 0xff, 0x43, 0xdb, 0xff, 0x28, 0xe2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x07, 0xe2, 0xff, 0x8b, 0xe4, 0xff, 0xff, 0xff, 0xff, 0xdf, 0xff, 0xff, 0xe8, 0xe4, 0xff, 0xa7, 0xe3, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xc7, 0xe1, 0xff, 0x68, 0xe2, 0xff, 0x27, 0xc4, 0xf7, 0x47, 0xbc, 0x9e, + 0x47, 0xbc, 0x65, 0x47, 0xc4, 0xf8, 0x68, 0xdb, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x47, 0xe2, 0xff, 0x45, 0xdc, 0xff, 0x74, 0xf6, 0xff, 0xff, 0xff, 0xff, 0xd6, 0xf6, 0xff, 0x80, 0xcb, 0xff, 0x53, 0xf6, 0xff, 0xff, 0xff, 0xff, 0x95, 0xf6, 0xff, 0x22, 0xd4, 0xff, 0xc7, 0xdc, 0xff, 0xbe, 0xff, 0xff, 0xff, 0xff, 0xff, 0x29, 0xe5, 0xff, 0x18, 0xf7, 0xff, 0xbd, 0xff, 0xff, 0xcf, 0xed, 0xff, 0xff, 0xff, 0xff, 0xce, 0xed, 0xff, 0xf0, 0xed, 0xff, 0xff, 0xff, 0xff, 0x95, 0xf6, 0xff, 0x01, 0xd4, 0xff, 0x11, 0xf5, 0xff, 0x49, 0xea, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x69, 0xea, 0xff, 0x79, 0xfe, 0xff, 0x9c, 0xff, 0xff, 0x66, 0xdc, 0xff, 0x47, 0xe2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x68, 0xdb, 0xff, 0x47, 0xc4, 0xf6, 0x47, 0xbc, 0x9e, + 0x47, 0xbc, 0x65, 0x47, 0xc4, 0xf8, 0x68, 0xd4, 0xff, 0x87, 0xe2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe2, 0xff, 0x5b, 0xff, 0xff, 0xff, 0xff, 0xff, 0xae, 0xed, 0xff, 0x40, 0xcb, 0xff, 0x8d, 0xe5, 0xff, 0xff, 0xff, 0xff, 0x7b, 0xff, 0xff, 0x64, 0xdc, 0xff, 0xa5, 0xdc, 0xff, 0xbe, 0xff, 0xff, 0xff, 0xff, 0xff, 0x08, 0xe5, 0xff, 0xae, 0xed, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xa6, 0xdc, 0xff, 0x11, 0xee, 0xff, 0xff, 0xff, 0xff, 0x95, 0xf6, 0xff, 0x01, 0xd4, 0xff, 0xf7, 0xf6, 0xff, 0xd7, 0xfd, 0xff, 0x49, 0xea, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xaa, 0xea, 0xff, 0xcc, 0xe4, 0xff, 0x27, 0xe3, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xc7, 0xe1, 0xff, 0x67, 0xe2, 0xff, 0x48, 0xd4, 0xff, 0x47, 0xc4, 0xf6, 0x27, 0xbc, 0x9e, + 0x47, 0xbc, 0x65, 0x47, 0xc4, 0xf8, 0xa8, 0xd4, 0xff, 0xc8, 0xdb, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x34, 0xf5, 0xff, 0xff, 0xff, 0xff, 0x9c, 0xff, 0xff, 0x39, 0xff, 0xff, 0x9c, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x08, 0xe5, 0xff, 0x43, 0xdc, 0xff, 0xde, 0xff, 0xff, 0xff, 0xff, 0xff, 0x2a, 0xe5, 0xff, 0xa6, 0xdc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x5b, 0xff, 0xff, 0x01, 0xd4, 0xff, 0x74, 0xf6, 0xff, 0xff, 0xff, 0xff, 0x95, 0xf6, 0xff, 0x01, 0xd4, 0xff, 0xf7, 0xf6, 0xff, 0xff, 0xff, 0xff, 0x53, 0xf5, 0xff, 0x08, 0xe2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xa8, 0xdb, 0xff, 0xa8, 0xd4, 0xff, 0x47, 0xc4, 0xf6, 0x27, 0xbc, 0x9e, + 0x47, 0xbc, 0x65, 0x47, 0xc4, 0xf8, 0x88, 0xcc, 0xff, 0xc8, 0xdc, 0xff, 0x08, 0xe3, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x28, 0xe2, 0xff, 0x96, 0xf5, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xae, 0xed, 0xff, 0x22, 0xd4, 0xff, 0xde, 0xff, 0xff, 0xff, 0xff, 0xff, 0x8d, 0xe5, 0xff, 0x01, 0xd4, 0xff, 0xf8, 0xf6, 0xff, 0xde, 0xff, 0xff, 0x10, 0xee, 0xff, 0xe0, 0xd3, 0xff, 0xb5, 0xf6, 0xff, 0xff, 0xff, 0xff, 0x95, 0xf6, 0xff, 0x01, 0xd4, 0xff, 0xf7, 0xf6, 0xff, 0xff, 0xff, 0xff, 0x74, 0xf6, 0xff, 0x23, 0xdb, 0xff, 0x07, 0xe2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x08, 0xe3, 0xff, 0xc8, 0xdc, 0xff, 0x88, 0xcc, 0xff, 0x47, 0xc4, 0xf6, 0x27, 0xbc, 0x9e, + 0x47, 0xbc, 0x65, 0x47, 0xc4, 0xf8, 0x88, 0xcc, 0xff, 0xe8, 0xdc, 0xff, 0x88, 0xdc, 0xff, 0x67, 0xe2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x28, 0xe2, 0xff, 0xa7, 0xe3, 0xff, 0x08, 0xdd, 0xff, 0xc7, 0xdc, 0xff, 0xf8, 0xf6, 0xff, 0xff, 0xff, 0xff, 0xb5, 0xf6, 0xff, 0x22, 0xd4, 0xff, 0x9c, 0xff, 0xff, 0xff, 0xff, 0xff, 0xce, 0xed, 0xff, 0x63, 0xd4, 0xff, 0xc7, 0xdc, 0xff, 0xe7, 0xdc, 0xff, 0xa6, 0xdc, 0xff, 0x64, 0xdc, 0xff, 0xb5, 0xf6, 0xff, 0xff, 0xff, 0xff, 0xb5, 0xf6, 0xff, 0x01, 0xd4, 0xff, 0xf7, 0xf6, 0xff, 0xff, 0xff, 0xff, 0xd6, 0xf6, 0xff, 0x64, 0xdc, 0xff, 0x08, 0xe4, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x67, 0xe2, 0xff, 0x88, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0x88, 0xcc, 0xff, 0x47, 0xc4, 0xf6, 0x27, 0xbc, 0x9e, + 0x47, 0xbc, 0x65, 0x47, 0xc4, 0xf8, 0xa8, 0xcc, 0xff, 0xc8, 0xdc, 0xff, 0x09, 0xdd, 0xff, 0x06, 0xdc, 0xff, 0x47, 0xe2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x27, 0xe3, 0xff, 0xa1, 0xd3, 0xff, 0xcf, 0xed, 0xff, 0xff, 0xff, 0xff, 0xbd, 0xff, 0xff, 0xa6, 0xdc, 0xff, 0x7b, 0xff, 0xff, 0xff, 0xff, 0xff, 0xce, 0xed, 0xff, 0x64, 0xdc, 0xff, 0xc8, 0xdc, 0xff, 0xa6, 0xdc, 0xff, 0xc7, 0xdc, 0xff, 0x64, 0xdc, 0xff, 0xb6, 0xf6, 0xff, 0xff, 0xff, 0xff, 0xb6, 0xf6, 0xff, 0xe0, 0xd3, 0xff, 0x18, 0xf7, 0xff, 0xff, 0xff, 0xff, 0xd7, 0xf6, 0xff, 0x24, 0xdc, 0xff, 0x88, 0xe3, 0xff, 0x07, 0xe2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x47, 0xe2, 0xff, 0x48, 0xe4, 0xff, 0xe8, 0xdc, 0xff, 0xc8, 0xdc, 0xff, 0xa8, 0xcc, 0xff, 0x47, 0xc4, 0xf6, 0x27, 0xbc, 0x9e, + 0x27, 0xbc, 0x65, 0x47, 0xc4, 0xf8, 0xa8, 0xcc, 0xff, 0xc8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xc7, 0xdc, 0xff, 0x28, 0xdc, 0xff, 0x69, 0xe2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x67, 0xe2, 0xff, 0x08, 0xe4, 0xff, 0x11, 0xee, 0xff, 0x31, 0xee, 0xff, 0x08, 0xdd, 0xff, 0xae, 0xe5, 0xff, 0x32, 0xee, 0xff, 0x2a, 0xe5, 0xff, 0xc7, 0xdc, 0xff, 0x09, 0xdd, 0xff, 0x09, 0xdd, 0xff, 0x09, 0xdd, 0xff, 0xa6, 0xdc, 0xff, 0x6c, 0xe5, 0xff, 0x32, 0xee, 0xff, 0x8d, 0xe5, 0xff, 0x85, 0xdc, 0xff, 0x8d, 0xe5, 0xff, 0x32, 0xee, 0xff, 0x6b, 0xe4, 0xff, 0x67, 0xe2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x47, 0xe2, 0xff, 0x28, 0xe4, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xc8, 0xdc, 0xff, 0xa8, 0xcc, 0xff, 0x47, 0xc4, 0xf6, 0x27, 0xbc, 0x9e, + 0x26, 0xc4, 0x65, 0x47, 0xc4, 0xf8, 0x88, 0xcc, 0xff, 0xc8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0x09, 0xdd, 0xff, 0x09, 0xdd, 0xff, 0xe6, 0xdb, 0xff, 0x67, 0xe2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xa7, 0xe2, 0xff, 0xc6, 0xdb, 0xff, 0xa8, 0xdc, 0xff, 0x86, 0xdc, 0xff, 0x85, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0x09, 0xdd, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0x09, 0xdd, 0xff, 0xa7, 0xdc, 0xff, 0x65, 0xdc, 0xff, 0xa7, 0xdc, 0xff, 0xc9, 0xe4, 0xff, 0xc7, 0xdb, 0xff, 0x87, 0xe2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x68, 0xe2, 0xff, 0x28, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xc8, 0xdc, 0xff, 0x88, 0xcc, 0xff, 0x47, 0xc4, 0xf5, 0x27, 0xbc, 0x9d, + 0x2a, 0xa4, 0x71, 0x47, 0xc4, 0xfc, 0x87, 0xcc, 0xff, 0xc8, 0xd4, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0x88, 0xdc, 0xff, 0xc8, 0xe2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xc7, 0xe1, 0xff, 0xc7, 0xe1, 0xff, 0x68, 0xe2, 0xff, 0x48, 0xe3, 0xff, 0xc8, 0xe3, 0xff, 0x28, 0xe4, 0xff, 0x88, 0xdc, 0xff, 0xa8, 0xdc, 0xff, 0xa8, 0xdc, 0xff, 0xa8, 0xdc, 0xff, 0x88, 0xdc, 0xff, 0x48, 0xe4, 0xff, 0xc8, 0xe3, 0xff, 0x48, 0xe3, 0xff, 0x67, 0xe2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xa7, 0xe2, 0xff, 0x88, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xc8, 0xdc, 0xff, 0x88, 0xcc, 0xff, 0x47, 0xc4, 0xfb, 0x47, 0xbc, 0xac, + 0x0a, 0xa4, 0x4f, 0x27, 0xbc, 0xfb, 0xa7, 0xcc, 0xff, 0xc8, 0xd4, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xc8, 0xdc, 0xff, 0x88, 0xe3, 0xff, 0x47, 0xe2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x07, 0xe2, 0xff, 0x47, 0xe2, 0xff, 0x88, 0xe2, 0xff, 0x87, 0xe2, 0xff, 0x88, 0xe2, 0xff, 0x68, 0xe2, 0xff, 0x07, 0xe2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x47, 0xe2, 0xff, 0x88, 0xe3, 0xff, 0xc8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xc8, 0xd4, 0xff, 0xa7, 0xcc, 0xff, 0x27, 0xbc, 0xfa, 0x07, 0xbc, 0x8e, + 0xa9, 0xbc, 0x07, 0xe8, 0xb3, 0xc0, 0x47, 0xc4, 0xff, 0xa8, 0xd4, 0xff, 0xc8, 0xd4, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0x48, 0xdc, 0xff, 0x28, 0xe3, 0xff, 0x47, 0xe2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x48, 0xe2, 0xff, 0x28, 0xe3, 0xff, 0x48, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xc8, 0xdc, 0xff, 0xc8, 0xd4, 0xff, 0xa8, 0xd4, 0xff, 0x47, 0xc4, 0xff, 0x07, 0xbc, 0xc0, 0xa8, 0xb3, 0x1f, + 0x00, 0x00, 0x00, 0x45, 0xcd, 0x2b, 0x27, 0xbc, 0xe4, 0x47, 0xc4, 0xff, 0x87, 0xcc, 0xff, 0xa8, 0xd4, 0xff, 0x86, 0xd4, 0xff, 0x86, 0xd4, 0xff, 0x86, 0xd4, 0xff, 0x86, 0xd4, 0xff, 0x86, 0xd4, 0xff, 0x86, 0xd4, 0xff, 0x85, 0xd4, 0xff, 0x27, 0xd4, 0xff, 0x68, 0xdb, 0xff, 0xa7, 0xe2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xa8, 0xe2, 0xff, 0x68, 0xdb, 0xff, 0x26, 0xd4, 0xff, 0x86, 0xd4, 0xff, 0x86, 0xd4, 0xff, 0x86, 0xd4, 0xff, 0x86, 0xd4, 0xff, 0x86, 0xd4, 0xff, 0x86, 0xd4, 0xff, 0x86, 0xd4, 0xff, 0xa8, 0xcc, 0xff, 0x87, 0xcc, 0xff, 0x47, 0xc4, 0xff, 0x27, 0xbc, 0xe4, 0x65, 0xd5, 0x2b, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe6, 0xcc, 0x29, 0xe8, 0xbb, 0x92, 0x48, 0xc4, 0xc5, 0x46, 0xc4, 0xc5, 0x46, 0xc4, 0x9f, 0x68, 0xc4, 0x7f, 0x67, 0xc4, 0x86, 0x67, 0xc4, 0x87, 0x67, 0xc4, 0x86, 0x67, 0xc4, 0x86, 0x68, 0xc4, 0x7f, 0x46, 0xcc, 0x98, 0x26, 0xcc, 0xc1, 0x28, 0xc4, 0xc3, 0xc7, 0xcb, 0xcb, 0x47, 0xd3, 0xd7, 0xc8, 0xda, 0xe3, 0x87, 0xda, 0xec, 0x47, 0xe2, 0xf2, 0x27, 0xe2, 0xf5, 0x27, 0xe2, 0xf7, 0x27, 0xe2, 0xf5, 0x47, 0xe2, 0xf2, 0x67, 0xda, 0xeb, 0xc7, 0xda, 0xe3, 0x27, 0xd3, 0xd7, 0xa7, 0xcb, 0xcb, 0x28, 0xc4, 0xc3, 0x45, 0xc4, 0xc0, 0x45, 0xc4, 0x9a, 0x68, 0xc4, 0x7f, 0x67, 0xc4, 0x86, 0x67, 0xc4, 0x86, 0x67, 0xc4, 0x87, 0x67, 0xc4, 0x87, 0x68, 0xc4, 0x7f, 0x46, 0xc4, 0x9e, 0x46, 0xc4, 0xc5, 0x48, 0xbc, 0xc5, 0xe8, 0xbb, 0x92, 0xa6, 0xcc, 0x29, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0xc4, 0x08, 0x00, 0xc4, 0x04, 0xb7, 0xb5, 0x2b, 0xb9, 0xad, 0x5a, 0x97, 0xad, 0x4c, 0x97, 0xad, 0x4b, 0x98, 0xad, 0x4c, 0xb8, 0xad, 0x4c, 0xb9, 0xad, 0x57, 0x35, 0xa5, 0x35, 0x00, 0xdc, 0x06, 0x05, 0xdc, 0x06, 0xc6, 0xd4, 0x05, 0xc6, 0xd4, 0x05, 0xc6, 0xd4, 0x05, 0xc6, 0xd4, 0x05, 0xc6, 0xd4, 0x05, 0xc6, 0xd4, 0x05, 0xc6, 0xd4, 0x05, 0xc6, 0xd4, 0x05, 0xc6, 0xd4, 0x05, 0xc6, 0xd4, 0x05, 0xc6, 0xd4, 0x05, 0xc6, 0xd4, 0x05, 0xc6, 0xd4, 0x05, 0x05, 0xac, 0x06, 0x40, 0xd3, 0x05, 0x97, 0xb5, 0x34, 0xb9, 0xad, 0x57, 0x97, 0xad, 0x4c, 0x98, 0xad, 0x4c, 0x97, 0xad, 0x4b, 0xb8, 0xad, 0x4c, 0xb9, 0xad, 0x5a, 0x56, 0xad, 0x2b, 0x00, 0xc4, 0x04, 0x08, 0xc4, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xda, 0xad, 0x90, 0xb8, 0xb5, 0xff, 0xd9, 0xb5, 0xff, 0xb8, 0xad, 0xff, 0xb8, 0xad, 0xff, 0xd9, 0xb5, 0xff, 0xb8, 0xb5, 0xff, 0x18, 0x95, 0xb8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xdb, 0xad, 0xb5, 0xb8, 0xb5, 0xff, 0xd9, 0xad, 0xff, 0xb8, 0xad, 0xff, 0xb8, 0xad, 0xff, 0xd9, 0xb5, 0xff, 0x98, 0xad, 0xff, 0x17, 0x95, 0x92, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x35, 0xa5, 0x2f, 0x34, 0xa5, 0xcb, 0x35, 0xad, 0xee, 0x35, 0xad, 0xdd, 0x35, 0xad, 0xdc, 0x55, 0xad, 0xec, 0xf3, 0xa4, 0xd2, 0x92, 0x8c, 0x42, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x56, 0xad, 0x41, 0x14, 0xa5, 0xd3, 0x35, 0xad, 0xec, 0x34, 0xad, 0xdc, 0x35, 0xad, 0xdd, 0x55, 0xad, 0xee, 0xf3, 0xa4, 0xc9, 0x93, 0x94, 0x2e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +#endif +#if LV_COLOR_DEPTH == 16 && LV_COLOR_16_SWAP != 0 + /*Pixel format: Alpha 8 bit, Red: 5 bit, Green: 6 bit, Blue: 5 bit BUT the 2 color bytes are swapped*/ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xed, 0x6a, 0x5e, 0xed, 0x4a, 0xd7, 0xed, 0x4a, 0xff, 0xed, 0x4a, 0xff, 0xed, 0x4a, 0xfd, 0xed, 0x4a, 0xfe, 0xed, 0x4a, 0xfe, 0xed, 0x4a, 0xfe, 0xed, 0x4a, 0xfe, 0xed, 0x4a, 0xfe, 0xed, 0x4a, 0xfe, 0xed, 0x4a, 0xfe, 0xed, 0x4a, 0xfe, 0xed, 0x4a, 0xfe, 0xed, 0x4a, 0xfe, 0xed, 0x4a, 0xfe, 0xed, 0x4a, 0xfe, 0xed, 0x4a, 0xfe, 0xed, 0x4a, 0xfd, 0xed, 0x4a, 0xff, 0xed, 0x4a, 0xff, 0xed, 0x4a, 0xd7, 0xe5, 0x4a, 0x5c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xed, 0x4a, 0x6e, 0xed, 0x4a, 0xff, 0xed, 0x4a, 0xe4, 0xed, 0x6a, 0xa0, 0xed, 0x6a, 0xa6, 0xed, 0x6a, 0xab, 0xed, 0x6a, 0xaa, 0xed, 0x6a, 0xaa, 0xed, 0x6a, 0xaa, 0xed, 0x6a, 0xaa, 0xed, 0x6a, 0xaa, 0xed, 0x6a, 0xaa, 0xed, 0x6a, 0xaa, 0xed, 0x6a, 0xaa, 0xed, 0x6a, 0xaa, 0xed, 0x6a, 0xaa, 0xed, 0x6a, 0xaa, 0xed, 0x6a, 0xaa, 0xed, 0x6a, 0xaa, 0xed, 0x6a, 0xab, 0xed, 0x6a, 0xa5, 0xed, 0x6a, 0xa0, 0xed, 0x4a, 0xe4, 0xed, 0x4a, 0xff, 0xed, 0x6a, 0x6d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf5, 0xab, 0x26, 0xe5, 0x4a, 0xff, 0xed, 0x6a, 0xc5, 0xed, 0x8a, 0x16, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xed, 0x8a, 0x16, 0xf5, 0x6a, 0xc5, 0xe5, 0x4a, 0xff, 0xed, 0x8b, 0x26, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xed, 0x4a, 0x5a, 0xf5, 0xab, 0xff, 0xfd, 0xcb, 0x43, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfd, 0xab, 0x43, 0xf5, 0xab, 0xff, 0xed, 0x4a, 0x5a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc4, 0x47, 0x1c, 0xc4, 0x27, 0x41, 0xbc, 0x67, 0x3f, 0xbc, 0x47, 0x3c, 0xbc, 0x47, 0x3b, 0xb4, 0x06, 0x32, 0xcc, 0xa8, 0x8f, 0xf5, 0x8a, 0xff, 0xcc, 0x68, 0x65, 0xb3, 0xe6, 0x31, 0xbc, 0x27, 0x3c, 0xbc, 0x27, 0x3c, 0xbc, 0x27, 0x3c, 0xbc, 0x27, 0x3c, 0xbc, 0x27, 0x3c, 0xbc, 0x27, 0x3c, 0xbc, 0x27, 0x3c, 0xbc, 0x27, 0x3c, 0xbc, 0x27, 0x3c, 0xbc, 0x27, 0x3c, 0xbc, 0x27, 0x3c, 0xbc, 0x27, 0x3c, 0xbc, 0x27, 0x3c, 0xbc, 0x27, 0x3c, 0xbc, 0x27, 0x3c, 0xbc, 0x27, 0x3c, 0xbc, 0x27, 0x3c, 0xbc, 0x27, 0x3c, 0xbc, 0x27, 0x3c, 0xb3, 0xe6, 0x31, 0xcc, 0x68, 0x65, 0xf5, 0x8a, 0xff, 0xcc, 0xa8, 0x8f, 0xb4, 0x06, 0x32, 0xbc, 0x47, 0x3b, 0xbc, 0x47, 0x3c, 0xbc, 0x67, 0x3f, 0xc4, 0x27, 0x41, 0xc4, 0x48, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc4, 0x87, 0x73, 0xbc, 0x27, 0xdf, 0xc4, 0x47, 0xfa, 0xcc, 0x88, 0xf8, 0xcc, 0x88, 0xf7, 0xcc, 0x88, 0xf7, 0xcc, 0x87, 0xf0, 0xcc, 0x67, 0xf9, 0xc4, 0x67, 0xff, 0xc4, 0x47, 0xf6, 0xcc, 0x87, 0xef, 0xcc, 0x88, 0xf7, 0xcc, 0x88, 0xf7, 0xcc, 0x88, 0xf7, 0xcc, 0x88, 0xf7, 0xcc, 0x88, 0xf7, 0xcc, 0x88, 0xf7, 0xcc, 0x88, 0xf7, 0xcc, 0x88, 0xf7, 0xcc, 0x88, 0xf7, 0xcc, 0x88, 0xf7, 0xcc, 0x88, 0xf7, 0xcc, 0x88, 0xf7, 0xcc, 0x88, 0xf7, 0xcc, 0x88, 0xf7, 0xcc, 0x88, 0xf7, 0xcc, 0x88, 0xf7, 0xcc, 0x88, 0xf7, 0xcc, 0x88, 0xf7, 0xcc, 0x88, 0xf7, 0xcc, 0x87, 0xef, 0xc4, 0x47, 0xf6, 0xc4, 0x67, 0xff, 0xcc, 0x67, 0xf9, 0xcc, 0x87, 0xf0, 0xcc, 0x88, 0xf7, 0xcc, 0x88, 0xf7, 0xcc, 0x87, 0xf8, 0xc4, 0x47, 0xfa, 0xbc, 0x27, 0xdf, 0xcc, 0xa6, 0x73, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xcc, 0xc7, 0x67, 0xbb, 0xe8, 0xff, 0xcc, 0x67, 0xff, 0xe5, 0x28, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xdc, 0xe8, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe4, 0xa8, 0xff, 0xe3, 0xe8, 0xff, 0xe3, 0x08, 0xff, 0xe2, 0x88, 0xff, 0xe2, 0x27, 0xff, 0xe2, 0x07, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x07, 0xff, 0xe2, 0x27, 0xff, 0xe2, 0x88, 0xff, 0xe2, 0xe8, 0xff, 0xe3, 0xc8, 0xff, 0xe4, 0xa8, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xdc, 0xe8, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x28, 0xff, 0xcc, 0x68, 0xff, 0xbc, 0x07, 0xff, 0xcc, 0xa7, 0x67, 0x00, 0x00, 0x00, + 0xb4, 0x09, 0x1e, 0xbc, 0x27, 0xe1, 0xcc, 0x88, 0xff, 0xe5, 0x08, 0xff, 0xa3, 0xa6, 0xff, 0x72, 0x85, 0xff, 0x7a, 0xc5, 0xff, 0x7a, 0xc5, 0xff, 0x7a, 0xc5, 0xff, 0x7a, 0xc5, 0xff, 0x7a, 0xc5, 0xff, 0x7a, 0xc5, 0xff, 0x8a, 0xa5, 0xff, 0xb2, 0x46, 0xff, 0xd2, 0x07, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xd2, 0x07, 0xff, 0xb2, 0x46, 0xff, 0x92, 0xa5, 0xff, 0x7a, 0xc5, 0xff, 0x7a, 0xc5, 0xff, 0x7a, 0xc5, 0xff, 0x7a, 0xc5, 0xff, 0x7a, 0xc5, 0xff, 0x7a, 0xc5, 0xff, 0x72, 0x85, 0xff, 0xa3, 0xa6, 0xff, 0xe5, 0x08, 0xff, 0xcc, 0x88, 0xff, 0xbc, 0x08, 0xe2, 0xc4, 0x28, 0x49, + 0xac, 0x2a, 0x65, 0xcc, 0x67, 0xfb, 0xed, 0x48, 0xff, 0xa3, 0xa6, 0xff, 0x31, 0x23, 0xff, 0x41, 0xa3, 0xff, 0x49, 0xc3, 0xff, 0x49, 0xc3, 0xff, 0x49, 0xc3, 0xff, 0x49, 0xc3, 0xff, 0x59, 0xc4, 0xff, 0x99, 0xc6, 0xff, 0xd9, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xd9, 0xe7, 0xff, 0xa1, 0xc6, 0xff, 0x59, 0xc4, 0xff, 0x49, 0xc3, 0xff, 0x49, 0xc3, 0xff, 0x49, 0xa3, 0xff, 0x49, 0xc3, 0xff, 0x41, 0xa3, 0xff, 0x31, 0x23, 0xff, 0xa3, 0xa6, 0xff, 0xed, 0x49, 0xff, 0xc4, 0x67, 0xfa, 0xc4, 0x67, 0xa7, + 0xb4, 0x49, 0x6b, 0xcc, 0x87, 0xfa, 0xed, 0x49, 0xff, 0x72, 0x85, 0xff, 0x41, 0x63, 0xff, 0x62, 0x44, 0xff, 0x62, 0x44, 0xff, 0x62, 0x44, 0xff, 0x62, 0x44, 0xff, 0x8a, 0x25, 0xff, 0xc9, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xd9, 0xe7, 0xff, 0xc9, 0xe7, 0xff, 0xb2, 0x06, 0xff, 0xa2, 0x06, 0xff, 0x9a, 0x26, 0xff, 0x9a, 0x25, 0xff, 0x9a, 0x26, 0xff, 0xa2, 0x06, 0xff, 0xb2, 0x06, 0xff, 0xc9, 0xe7, 0xff, 0xd1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xc9, 0xe7, 0xff, 0x8a, 0x25, 0xff, 0x62, 0x44, 0xff, 0x62, 0x24, 0xff, 0x62, 0x44, 0xff, 0x6a, 0x44, 0xff, 0x41, 0x63, 0xff, 0x72, 0x85, 0xff, 0xed, 0x49, 0xff, 0xcc, 0x88, 0xf8, 0xc4, 0x47, 0xa3, + 0xc4, 0x47, 0x65, 0xcc, 0xa8, 0xf8, 0xed, 0x29, 0xff, 0x72, 0xa5, 0xff, 0x49, 0xa3, 0xff, 0x62, 0x44, 0xff, 0x62, 0x24, 0xff, 0x62, 0x44, 0xff, 0x9a, 0x26, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xc2, 0x06, 0xff, 0x9a, 0x06, 0xff, 0x7a, 0x25, 0xff, 0x6a, 0x44, 0xff, 0x62, 0x44, 0xff, 0x62, 0x44, 0xff, 0x62, 0x44, 0xff, 0x62, 0x44, 0xff, 0x62, 0x44, 0xff, 0x62, 0x44, 0xff, 0x62, 0x44, 0xff, 0x6a, 0x44, 0xff, 0x7a, 0x25, 0xff, 0x9a, 0x26, 0xff, 0xc2, 0x06, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xc7, 0xff, 0x9a, 0x06, 0xff, 0x62, 0x44, 0xff, 0x62, 0x24, 0xff, 0x62, 0x44, 0xff, 0x49, 0xa3, 0xff, 0x72, 0xa5, 0xff, 0xed, 0x49, 0xff, 0xcc, 0xa8, 0xf6, 0xc4, 0x47, 0x9e, + 0xc4, 0x47, 0x65, 0xcc, 0xa8, 0xf8, 0xed, 0x29, 0xff, 0x7a, 0xa5, 0xff, 0x49, 0xa3, 0xff, 0x62, 0x44, 0xff, 0x6a, 0x44, 0xff, 0xaa, 0x06, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xba, 0x06, 0xff, 0x8a, 0x25, 0xff, 0x6a, 0x44, 0xff, 0x62, 0x44, 0xff, 0x62, 0x44, 0xff, 0x62, 0x44, 0xff, 0x62, 0x44, 0xff, 0x62, 0x44, 0xff, 0x62, 0x44, 0xff, 0x62, 0x44, 0xff, 0x62, 0x44, 0xff, 0x62, 0x44, 0xff, 0x62, 0x44, 0xff, 0x62, 0x44, 0xff, 0x62, 0x44, 0xff, 0x62, 0x44, 0xff, 0x6a, 0x44, 0xff, 0x8a, 0x25, 0xff, 0xba, 0x06, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xaa, 0x06, 0xff, 0x6a, 0x24, 0xff, 0x62, 0x44, 0xff, 0x49, 0xa3, 0xff, 0x7a, 0xa5, 0xff, 0xed, 0x29, 0xff, 0xcc, 0x88, 0xf6, 0xc4, 0x47, 0x9e, + 0xc4, 0x47, 0x65, 0xcc, 0x88, 0xf8, 0xed, 0x49, 0xff, 0x7a, 0xc5, 0xff, 0x49, 0xa3, 0xff, 0x6a, 0x44, 0xff, 0xaa, 0x06, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xd1, 0xe7, 0xff, 0x9a, 0x26, 0xff, 0x6a, 0x44, 0xff, 0x6a, 0x65, 0xff, 0x6a, 0x65, 0xff, 0x62, 0x44, 0xff, 0x6a, 0x65, 0xff, 0x6a, 0x65, 0xff, 0x62, 0x44, 0xff, 0x6a, 0x44, 0xff, 0x6a, 0x65, 0xff, 0x62, 0x44, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x65, 0xff, 0x6a, 0x44, 0xff, 0x6a, 0x44, 0xff, 0x6a, 0x65, 0xff, 0x6a, 0x65, 0xff, 0x62, 0x44, 0xff, 0x6a, 0x65, 0xff, 0x6a, 0x45, 0xff, 0x9a, 0x26, 0xff, 0xd1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xb2, 0x06, 0xff, 0x6a, 0x44, 0xff, 0x49, 0xa3, 0xff, 0x7a, 0xc5, 0xff, 0xed, 0x49, 0xff, 0xcc, 0x88, 0xf6, 0xc4, 0x47, 0x9e, + 0xc4, 0x47, 0x65, 0xcc, 0x88, 0xf8, 0xed, 0x49, 0xff, 0x7a, 0xc5, 0xff, 0x49, 0xa3, 0xff, 0xaa, 0x26, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0x89, 0xc4, 0xff, 0x6a, 0x85, 0xff, 0x6a, 0x85, 0xff, 0x62, 0x44, 0xff, 0x51, 0x81, 0xff, 0x6a, 0x63, 0xff, 0x51, 0xa2, 0xff, 0x62, 0x44, 0xff, 0x6a, 0x65, 0xff, 0x6a, 0x85, 0xff, 0x51, 0xa2, 0xff, 0x6a, 0x23, 0xff, 0x61, 0xe2, 0xff, 0x51, 0xe2, 0xff, 0x6a, 0x85, 0xff, 0x6a, 0x65, 0xff, 0x5a, 0x03, 0xff, 0x59, 0xc2, 0xff, 0x6a, 0x63, 0xff, 0x51, 0xa1, 0xff, 0x6a, 0x65, 0xff, 0x6a, 0x65, 0xff, 0x82, 0x65, 0xff, 0xc1, 0xc6, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xaa, 0x06, 0xff, 0x49, 0xa3, 0xff, 0x7a, 0xc5, 0xff, 0xed, 0x49, 0xff, 0xcc, 0x88, 0xf6, 0xc4, 0x47, 0x9e, + 0xbc, 0x47, 0x65, 0xcc, 0x88, 0xf8, 0xed, 0x29, 0xff, 0x7a, 0xa5, 0xff, 0x81, 0xc5, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xd2, 0x07, 0xff, 0x79, 0xe4, 0xff, 0x6a, 0x65, 0xff, 0x5a, 0x02, 0xff, 0x83, 0x08, 0xff, 0x62, 0x87, 0xff, 0x7a, 0xe7, 0xff, 0x62, 0x23, 0xff, 0x6a, 0x85, 0xff, 0x59, 0xe2, 0xff, 0x7a, 0xc6, 0xff, 0x6a, 0xa8, 0xff, 0x72, 0xe8, 0xff, 0x6a, 0x64, 0xff, 0x5a, 0x03, 0xff, 0x6a, 0x44, 0xff, 0x6a, 0x43, 0xff, 0x7b, 0x08, 0xff, 0x5a, 0x67, 0xff, 0x7b, 0x07, 0xff, 0x59, 0xc2, 0xff, 0x6a, 0x85, 0xff, 0x59, 0xc2, 0xff, 0x82, 0xa6, 0xff, 0xc2, 0x28, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0x81, 0xc5, 0xff, 0x7a, 0xa5, 0xff, 0xed, 0x29, 0xff, 0xcc, 0x88, 0xf6, 0xbc, 0x47, 0x9e, + 0xbc, 0x47, 0x65, 0xcc, 0x88, 0xf8, 0xed, 0x29, 0xff, 0x8a, 0x85, 0xff, 0xc9, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xd1, 0xe7, 0xff, 0x71, 0x62, 0xff, 0x9c, 0x2c, 0xff, 0xe6, 0xfa, 0xff, 0x5a, 0xa9, 0xff, 0xe6, 0xd8, 0xff, 0x9c, 0x2c, 0xff, 0x49, 0x81, 0xff, 0x62, 0x23, 0xff, 0xff, 0x5a, 0xff, 0x7b, 0xce, 0xff, 0x9c, 0xf3, 0xff, 0xde, 0x56, 0xff, 0x49, 0x60, 0xff, 0x51, 0x81, 0xff, 0xc5, 0x71, 0xff, 0xc6, 0x16, 0xff, 0x4a, 0x69, 0xff, 0xef, 0x3b, 0xff, 0x7a, 0xe6, 0xff, 0x41, 0x01, 0xff, 0x62, 0x44, 0xff, 0xff, 0x9a, 0xff, 0x93, 0xee, 0xff, 0xda, 0xcb, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xd1, 0xe7, 0xff, 0x8a, 0x85, 0xff, 0xed, 0x29, 0xff, 0xcc, 0x88, 0xf6, 0xbc, 0x47, 0x9e, + 0xbc, 0x47, 0x65, 0xcc, 0x88, 0xf8, 0xed, 0x29, 0xff, 0xba, 0x26, 0xff, 0xe1, 0xc7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xc9, 0xe7, 0xff, 0xf4, 0xd1, 0xff, 0xe2, 0x69, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xd1, 0xc7, 0xff, 0xcc, 0x6e, 0xff, 0xff, 0xfd, 0xff, 0xe6, 0x95, 0xff, 0xff, 0xfc, 0xff, 0xbc, 0xef, 0xff, 0x38, 0xe0, 0xff, 0x7b, 0x07, 0xff, 0xff, 0xfc, 0xff, 0xef, 0x17, 0xff, 0xff, 0x9a, 0xff, 0xff, 0x7a, 0xff, 0x51, 0xa2, 0xff, 0x41, 0x20, 0xff, 0xd6, 0x34, 0xff, 0xff, 0xda, 0xff, 0xde, 0x95, 0xff, 0xff, 0xfd, 0xff, 0xa4, 0x2c, 0xff, 0x28, 0x40, 0xff, 0x83, 0x48, 0xff, 0xff, 0xfd, 0xff, 0xee, 0xf7, 0xff, 0xff, 0x38, 0xff, 0xe2, 0x89, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xc7, 0xff, 0xba, 0x26, 0xff, 0xed, 0x29, 0xff, 0xcc, 0x88, 0xf6, 0xbc, 0x47, 0x9e, + 0xbc, 0x47, 0x65, 0xcc, 0x88, 0xf8, 0xec, 0x68, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0x81, 0xc4, 0xff, 0xac, 0xae, 0xff, 0xfd, 0xb4, 0xff, 0xea, 0x49, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xd9, 0xe7, 0xff, 0xed, 0x93, 0xff, 0xff, 0xfd, 0xff, 0xee, 0x96, 0xff, 0x7a, 0xe7, 0xff, 0x51, 0xc2, 0xff, 0x59, 0xe3, 0xff, 0xc5, 0x51, 0xff, 0xff, 0xfd, 0xff, 0xff, 0xfc, 0xff, 0xac, 0x8e, 0xff, 0x51, 0x81, 0xff, 0x51, 0xa2, 0xff, 0x8b, 0x8a, 0xff, 0xff, 0x59, 0xff, 0xff, 0xfd, 0xff, 0xe6, 0x55, 0xff, 0x6a, 0x45, 0xff, 0x49, 0x61, 0xff, 0x5a, 0x03, 0xff, 0xd5, 0xf3, 0xff, 0xff, 0xfd, 0xff, 0xff, 0xba, 0xff, 0xab, 0x2a, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xec, 0x48, 0xff, 0xcc, 0x88, 0xf6, 0xbc, 0x47, 0x9e, + 0xbc, 0x47, 0x65, 0xcc, 0x88, 0xf8, 0xeb, 0x28, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xba, 0x06, 0xff, 0x62, 0x24, 0xff, 0x59, 0xe3, 0xff, 0x8b, 0xaa, 0xff, 0xb3, 0x0a, 0xff, 0xd9, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xd9, 0xe7, 0xff, 0xb3, 0x8b, 0xff, 0x72, 0xa7, 0xff, 0x51, 0xc2, 0xff, 0x6a, 0x85, 0xff, 0x59, 0xe3, 0xff, 0x5a, 0x03, 0xff, 0x93, 0xec, 0xff, 0x8b, 0x8a, 0xff, 0x51, 0xc2, 0xff, 0x62, 0x24, 0xff, 0x6a, 0x64, 0xff, 0x51, 0xc2, 0xff, 0x83, 0x29, 0xff, 0x9c, 0x2d, 0xff, 0x62, 0x65, 0xff, 0x51, 0xc2, 0xff, 0x72, 0x85, 0xff, 0x59, 0xe2, 0xff, 0x62, 0x24, 0xff, 0x9c, 0x0c, 0xff, 0x83, 0x49, 0xff, 0x51, 0xa2, 0xff, 0xb2, 0x06, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xeb, 0x08, 0xff, 0xcc, 0x88, 0xf6, 0xbc, 0x47, 0x9e, + 0xbc, 0x47, 0x65, 0xd4, 0x08, 0xf9, 0xe2, 0x28, 0xff, 0xe1, 0xc7, 0xff, 0xe1, 0xe7, 0xff, 0xd9, 0xe7, 0xff, 0x7a, 0x45, 0xff, 0x6a, 0x64, 0xff, 0x5a, 0x03, 0xff, 0x49, 0x81, 0xff, 0x49, 0x61, 0xff, 0x91, 0xe5, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xd1, 0xc7, 0xff, 0x79, 0xc4, 0xff, 0x62, 0x44, 0xff, 0x6a, 0x65, 0xff, 0x6a, 0x65, 0xff, 0x59, 0xe3, 0xff, 0x49, 0x61, 0xff, 0x49, 0x61, 0xff, 0x5a, 0x04, 0xff, 0x6a, 0x65, 0xff, 0x6a, 0x65, 0xff, 0x62, 0x24, 0xff, 0x49, 0xa2, 0xff, 0x49, 0x61, 0xff, 0x51, 0xc2, 0xff, 0x6a, 0x65, 0xff, 0x6a, 0x65, 0xff, 0x6a, 0x65, 0xff, 0x59, 0xe3, 0xff, 0x49, 0x61, 0xff, 0x49, 0x81, 0xff, 0x62, 0x24, 0xff, 0x82, 0x45, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x07, 0xff, 0xd4, 0x08, 0xf8, 0xbc, 0x47, 0x9e, + 0xc4, 0x27, 0x68, 0xdb, 0x48, 0xfb, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xc7, 0xff, 0xb2, 0x06, 0xff, 0x6a, 0x44, 0xff, 0x62, 0x44, 0xff, 0x6a, 0x44, 0xff, 0x6a, 0x65, 0xff, 0x6a, 0x65, 0xff, 0x6a, 0x64, 0xff, 0x92, 0x25, 0xff, 0xd9, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xd1, 0xe7, 0xff, 0x8a, 0x45, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x44, 0xff, 0x6a, 0x65, 0xff, 0x6a, 0x65, 0xff, 0x6a, 0x65, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x44, 0xff, 0x6a, 0x44, 0xff, 0x6a, 0x44, 0xff, 0x6a, 0x65, 0xff, 0x6a, 0x65, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x62, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x65, 0xff, 0x6a, 0x64, 0xff, 0x62, 0x44, 0xff, 0x6a, 0x44, 0xff, 0xb2, 0x06, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xdb, 0x47, 0xfa, 0xc4, 0x27, 0xa0, + 0xcb, 0xa7, 0x79, 0xe2, 0x67, 0xfe, 0xe1, 0xe7, 0xff, 0xe1, 0xc7, 0xff, 0xe1, 0xe7, 0xff, 0x8a, 0x45, 0xff, 0x62, 0x44, 0xff, 0x62, 0x44, 0xff, 0x62, 0x44, 0xff, 0x62, 0x44, 0xff, 0x6a, 0x44, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x92, 0x25, 0xff, 0xd9, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xd9, 0xe7, 0xff, 0x8a, 0x45, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x62, 0x44, 0xff, 0x62, 0x44, 0xff, 0x62, 0x44, 0xff, 0x62, 0x44, 0xff, 0x62, 0x44, 0xff, 0x8a, 0x45, 0xff, 0xe1, 0xc7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x67, 0xfd, 0xc3, 0xc7, 0xab, + 0xd3, 0x07, 0x95, 0xe2, 0x07, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xc7, 0xff, 0xc1, 0xe7, 0xff, 0x7a, 0x65, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x9a, 0x26, 0xff, 0xd9, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xd9, 0xe7, 0xff, 0x8a, 0x45, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x72, 0x65, 0xff, 0xc1, 0xe6, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x07, 0xfe, 0xcb, 0x47, 0xbc, + 0xda, 0x88, 0xb4, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xc7, 0xff, 0xa1, 0xa6, 0xff, 0x59, 0xe4, 0xff, 0x51, 0xe4, 0xff, 0x51, 0xe4, 0xff, 0x51, 0xe4, 0xff, 0x51, 0xe4, 0xff, 0x51, 0xe4, 0xff, 0x51, 0xe4, 0xff, 0x51, 0xe4, 0xff, 0x51, 0xe4, 0xff, 0x51, 0xe4, 0xff, 0x89, 0xe5, 0xff, 0xd9, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xd1, 0xe7, 0xff, 0x79, 0xe5, 0xff, 0x51, 0xe4, 0xff, 0x51, 0xe4, 0xff, 0x51, 0xe4, 0xff, 0x51, 0xe4, 0xff, 0x51, 0xe4, 0xff, 0x51, 0xe4, 0xff, 0x51, 0xe4, 0xff, 0x51, 0xe4, 0xff, 0x51, 0xe4, 0xff, 0x51, 0xe4, 0xff, 0x51, 0xe4, 0xff, 0x51, 0xe4, 0xff, 0x51, 0xe4, 0xff, 0x51, 0xe4, 0xff, 0x51, 0xe4, 0xff, 0x51, 0xe4, 0xff, 0x51, 0xe4, 0xff, 0x51, 0xe4, 0xff, 0xa1, 0xa5, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xd2, 0xc7, 0xcf, + 0xda, 0x47, 0xca, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0x91, 0xe5, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x9a, 0x46, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xd9, 0xe7, 0xff, 0x8a, 0x45, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x91, 0xe5, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xda, 0x87, 0xdc, + 0xe2, 0x27, 0xd7, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x07, 0xff, 0xec, 0x28, 0xff, 0xed, 0x49, 0xff, 0xed, 0x49, 0xff, 0xed, 0x49, 0xff, 0xed, 0x49, 0xff, 0xed, 0x49, 0xff, 0xed, 0x49, 0xff, 0xed, 0x49, 0xff, 0xed, 0x49, 0xff, 0xed, 0x49, 0xff, 0xed, 0x49, 0xff, 0xed, 0x49, 0xff, 0xed, 0x49, 0xff, 0xec, 0x08, 0xff, 0xe2, 0x07, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x47, 0xff, 0xec, 0x48, 0xff, 0xed, 0x49, 0xff, 0xed, 0x49, 0xff, 0xed, 0x49, 0xff, 0xed, 0x49, 0xff, 0xed, 0x49, 0xff, 0xed, 0x49, 0xff, 0xed, 0x49, 0xff, 0xed, 0x49, 0xff, 0xed, 0x49, 0xff, 0xed, 0x49, 0xff, 0xed, 0x49, 0xff, 0xed, 0x49, 0xff, 0xed, 0x49, 0xff, 0xed, 0x49, 0xff, 0xed, 0x49, 0xff, 0xed, 0x49, 0xff, 0xec, 0x28, 0xff, 0xe2, 0x07, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x47, 0xe6, + 0xe2, 0x07, 0xe1, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x27, 0xff, 0xec, 0x89, 0xff, 0xf5, 0x69, 0xff, 0xf5, 0x69, 0xff, 0xf5, 0x69, 0xff, 0xf5, 0x69, 0xff, 0xf5, 0x69, 0xff, 0xf5, 0x69, 0xff, 0xf5, 0x69, 0xff, 0xf5, 0x69, 0xff, 0xf5, 0x69, 0xff, 0xf5, 0x69, 0xff, 0xf5, 0x69, 0xff, 0xf5, 0x69, 0xff, 0xf5, 0x69, 0xff, 0xec, 0x28, 0xff, 0xe2, 0x07, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x47, 0xff, 0xec, 0x68, 0xff, 0xf5, 0x69, 0xff, 0xf5, 0x69, 0xff, 0xf5, 0x69, 0xff, 0xf5, 0x69, 0xff, 0xf5, 0x69, 0xff, 0xf5, 0x69, 0xff, 0xf5, 0x69, 0xff, 0xf5, 0x69, 0xff, 0xf5, 0x69, 0xff, 0xf5, 0x69, 0xff, 0xf5, 0x69, 0xff, 0xf5, 0x69, 0xff, 0xf5, 0x69, 0xff, 0xf5, 0x69, 0xff, 0xf5, 0x69, 0xff, 0xec, 0x89, 0xff, 0xe2, 0x28, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x27, 0xec, + 0xe2, 0x07, 0xe7, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x27, 0xff, 0xe4, 0x48, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe3, 0xe8, 0xff, 0xe2, 0x07, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x27, 0xff, 0xe4, 0x28, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe4, 0x48, 0xff, 0xe2, 0x27, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x27, 0xf0, + 0xe2, 0x07, 0xe4, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x27, 0xff, 0xe4, 0x48, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe3, 0xe8, 0xff, 0xe2, 0x07, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x27, 0xff, 0xe4, 0x28, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe4, 0x48, 0xff, 0xe2, 0x27, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x27, 0xef, + 0xe2, 0x27, 0xdd, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x07, 0xff, 0xe4, 0x28, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x09, 0xff, 0xe5, 0x09, 0xff, 0xe5, 0x09, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x09, 0xff, 0xe5, 0x09, 0xff, 0xe5, 0x09, 0xff, 0xe5, 0x09, 0xff, 0xe3, 0xc8, 0xff, 0xe2, 0x07, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x47, 0xff, 0xe4, 0x28, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x09, 0xff, 0xe5, 0x09, 0xff, 0xe5, 0x09, 0xff, 0xe5, 0x09, 0xff, 0xe5, 0x09, 0xff, 0xe5, 0x09, 0xff, 0xe5, 0x09, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe4, 0x28, 0xff, 0xe2, 0x07, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x27, 0xe9, + 0xda, 0x27, 0xd0, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe3, 0xc8, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x09, 0xff, 0xe5, 0x08, 0xff, 0xdc, 0xa5, 0xff, 0xdc, 0xa5, 0xff, 0xdc, 0xa5, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x29, 0xff, 0xe5, 0x09, 0xff, 0xe5, 0x09, 0xff, 0xdc, 0xc6, 0xff, 0xdc, 0x85, 0xff, 0xdc, 0x85, 0xff, 0xe4, 0xe7, 0xff, 0xe5, 0x29, 0xff, 0xe3, 0xe8, 0xff, 0xe2, 0x07, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x27, 0xff, 0xe4, 0x49, 0xff, 0xdc, 0xc7, 0xff, 0xdc, 0xa5, 0xff, 0xdc, 0xa5, 0xff, 0xdc, 0xa5, 0xff, 0xdc, 0xa5, 0xff, 0xdc, 0xa5, 0xff, 0xe4, 0xe7, 0xff, 0xe5, 0x29, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe3, 0xc8, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xda, 0x67, 0xe2, + 0xda, 0x67, 0xbf, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe3, 0x48, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x09, 0xff, 0xdc, 0xc7, 0xff, 0xe5, 0x09, 0xff, 0xe5, 0x4a, 0xff, 0xe5, 0x08, 0xff, 0xe4, 0xc7, 0xff, 0xe5, 0x29, 0xff, 0xe5, 0x09, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x09, 0xff, 0xe5, 0x4a, 0xff, 0xe5, 0x2a, 0xff, 0xe4, 0xe7, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x29, 0xff, 0xe3, 0xc7, 0xff, 0xe2, 0x07, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x27, 0xff, 0xe4, 0x28, 0xff, 0xe5, 0x4a, 0xff, 0xe5, 0x29, 0xff, 0xe5, 0x29, 0xff, 0xe5, 0x2a, 0xff, 0xe5, 0x08, 0xff, 0xdc, 0x84, 0xff, 0xdc, 0xa6, 0xff, 0xe5, 0x29, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe3, 0x68, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xda, 0xa7, 0xd7, + 0xd2, 0xc7, 0xa4, 0xe2, 0x07, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0xc8, 0xff, 0xe4, 0xe8, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x09, 0xff, 0xdc, 0xa5, 0xff, 0xe5, 0x6c, 0xff, 0xff, 0xbd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xbd, 0xff, 0xe5, 0x6b, 0xff, 0xdc, 0xa5, 0xff, 0xe4, 0xe7, 0xff, 0xe4, 0xe7, 0xff, 0xff, 0x5a, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xee, 0x10, 0xff, 0xdc, 0x84, 0xff, 0xe4, 0xe8, 0xff, 0xdc, 0x85, 0xff, 0xf5, 0x11, 0xff, 0xea, 0x29, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x69, 0xff, 0xfe, 0x59, 0xff, 0xff, 0xbe, 0xff, 0xff, 0xdf, 0xff, 0xff, 0xdf, 0xff, 0xff, 0xde, 0xff, 0xf6, 0xf7, 0xff, 0xe4, 0xe8, 0xff, 0xdc, 0xc7, 0xff, 0xe5, 0x29, 0xff, 0xe4, 0xe8, 0xff, 0xe2, 0xe8, 0xff, 0xe1, 0xc7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x07, 0xff, 0xd3, 0x07, 0xc6, + 0xcb, 0x47, 0x85, 0xe2, 0x27, 0xfe, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x27, 0xff, 0xe4, 0x68, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xdc, 0x85, 0xff, 0xf6, 0x73, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf6, 0x94, 0xff, 0xdc, 0x64, 0xff, 0xdc, 0xc6, 0xff, 0xdc, 0xe7, 0xff, 0xff, 0xbd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x39, 0xff, 0xdc, 0xa5, 0xff, 0xdc, 0x64, 0xff, 0xe5, 0x2a, 0xff, 0xff, 0xff, 0xff, 0xfd, 0xd7, 0xff, 0xea, 0x29, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xea, 0x8a, 0xff, 0xfe, 0x79, 0xff, 0xff, 0x9c, 0xff, 0xff, 0x9d, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf6, 0xf7, 0xff, 0xdc, 0x85, 0xff, 0xe5, 0x08, 0xff, 0xe4, 0x89, 0xff, 0xe2, 0x47, 0xff, 0xe1, 0xc7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x27, 0xfe, 0xcb, 0x87, 0xb3, + 0xc3, 0xe7, 0x70, 0xda, 0xc7, 0xfc, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xc7, 0xff, 0xe3, 0xa8, 0xff, 0xe5, 0x08, 0xff, 0xe4, 0xe8, 0xff, 0xdc, 0xc6, 0xff, 0xf7, 0x18, 0xff, 0xff, 0xff, 0xff, 0xff, 0x5a, 0xff, 0xff, 0xff, 0xff, 0xff, 0x5a, 0xff, 0xdc, 0xa6, 0xff, 0xdc, 0xa5, 0xff, 0xe4, 0xe7, 0xff, 0xff, 0x9c, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe5, 0x2a, 0xff, 0xd3, 0xe0, 0xff, 0xee, 0x31, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf5, 0xb6, 0xff, 0xe2, 0x08, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xea, 0x69, 0xff, 0xdb, 0xc5, 0xff, 0xdc, 0x64, 0xff, 0xee, 0x32, 0xff, 0xff, 0xff, 0xff, 0xff, 0xde, 0xff, 0xe4, 0xe7, 0xff, 0xdc, 0xc7, 0xff, 0xe3, 0xc8, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xda, 0xa7, 0xfc, 0xc4, 0x07, 0xa4, + 0xbc, 0x27, 0x66, 0xcb, 0x87, 0xfa, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x88, 0xff, 0xe4, 0xc9, 0xff, 0xdc, 0xc6, 0xff, 0xe5, 0x29, 0xff, 0xff, 0xdf, 0xff, 0xff, 0xbd, 0xff, 0xe5, 0x6c, 0xff, 0xff, 0x7c, 0xff, 0xff, 0xff, 0xff, 0xe5, 0x29, 0xff, 0xdc, 0x63, 0xff, 0xe4, 0xe8, 0xff, 0xff, 0xbd, 0xff, 0xff, 0xff, 0xff, 0xf6, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xed, 0xef, 0xff, 0xd3, 0xe0, 0xff, 0xff, 0x5a, 0xff, 0xff, 0xde, 0xff, 0xf6, 0xf7, 0xff, 0xff, 0xff, 0xff, 0xec, 0xf0, 0xff, 0xe2, 0x07, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x27, 0xff, 0xdb, 0x62, 0xff, 0xe5, 0x6b, 0xff, 0xff, 0xff, 0xff, 0xff, 0xde, 0xff, 0xe4, 0xe8, 0xff, 0xdc, 0xa6, 0xff, 0xe2, 0xa8, 0xff, 0xe1, 0xc7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xcb, 0x87, 0xf9, 0xbc, 0x27, 0x9e, + 0xbc, 0x47, 0x65, 0xc4, 0x27, 0xf9, 0xe2, 0x67, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe3, 0xc8, 0xff, 0xdc, 0xa5, 0xff, 0xe5, 0xad, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7b, 0xff, 0xdc, 0x84, 0xff, 0xff, 0x18, 0xff, 0xff, 0xff, 0xff, 0xed, 0xef, 0xff, 0xdc, 0x42, 0xff, 0xdc, 0xe8, 0xff, 0xff, 0xbd, 0xff, 0xff, 0xff, 0xff, 0xed, 0xcf, 0xff, 0xff, 0xde, 0xff, 0xf6, 0xf7, 0xff, 0xdc, 0x43, 0xff, 0xff, 0xde, 0xff, 0xf6, 0xf7, 0xff, 0xee, 0x31, 0xff, 0xff, 0xff, 0xff, 0xf6, 0xb5, 0xff, 0xdb, 0x43, 0xff, 0xe2, 0x28, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x07, 0xff, 0xe4, 0x8b, 0xff, 0xff, 0xff, 0xff, 0xff, 0xdf, 0xff, 0xe4, 0xe8, 0xff, 0xe3, 0xa7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xc7, 0xff, 0xe2, 0x68, 0xff, 0xc4, 0x27, 0xf7, 0xbc, 0x47, 0x9e, + 0xbc, 0x47, 0x65, 0xc4, 0x47, 0xf8, 0xdb, 0x68, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x47, 0xff, 0xdc, 0x45, 0xff, 0xf6, 0x74, 0xff, 0xff, 0xff, 0xff, 0xf6, 0xd6, 0xff, 0xcb, 0x80, 0xff, 0xf6, 0x53, 0xff, 0xff, 0xff, 0xff, 0xf6, 0x95, 0xff, 0xd4, 0x22, 0xff, 0xdc, 0xc7, 0xff, 0xff, 0xbe, 0xff, 0xff, 0xff, 0xff, 0xe5, 0x29, 0xff, 0xf7, 0x18, 0xff, 0xff, 0xbd, 0xff, 0xed, 0xcf, 0xff, 0xff, 0xff, 0xff, 0xed, 0xce, 0xff, 0xed, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xf6, 0x95, 0xff, 0xd4, 0x01, 0xff, 0xf5, 0x11, 0xff, 0xea, 0x49, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xea, 0x69, 0xff, 0xfe, 0x79, 0xff, 0xff, 0x9c, 0xff, 0xdc, 0x66, 0xff, 0xe2, 0x47, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xdb, 0x68, 0xff, 0xc4, 0x47, 0xf6, 0xbc, 0x47, 0x9e, + 0xbc, 0x47, 0x65, 0xc4, 0x47, 0xf8, 0xd4, 0x68, 0xff, 0xe2, 0x87, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0xe7, 0xff, 0xff, 0x5b, 0xff, 0xff, 0xff, 0xff, 0xed, 0xae, 0xff, 0xcb, 0x40, 0xff, 0xe5, 0x8d, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7b, 0xff, 0xdc, 0x64, 0xff, 0xdc, 0xa5, 0xff, 0xff, 0xbe, 0xff, 0xff, 0xff, 0xff, 0xe5, 0x08, 0xff, 0xed, 0xae, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xdc, 0xa6, 0xff, 0xee, 0x11, 0xff, 0xff, 0xff, 0xff, 0xf6, 0x95, 0xff, 0xd4, 0x01, 0xff, 0xf6, 0xf7, 0xff, 0xfd, 0xd7, 0xff, 0xea, 0x49, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xea, 0xaa, 0xff, 0xe4, 0xcc, 0xff, 0xe3, 0x27, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xc7, 0xff, 0xe2, 0x67, 0xff, 0xd4, 0x48, 0xff, 0xc4, 0x47, 0xf6, 0xbc, 0x27, 0x9e, + 0xbc, 0x47, 0x65, 0xc4, 0x47, 0xf8, 0xd4, 0xa8, 0xff, 0xdb, 0xc8, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xf5, 0x34, 0xff, 0xff, 0xff, 0xff, 0xff, 0x9c, 0xff, 0xff, 0x39, 0xff, 0xff, 0x9c, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe5, 0x08, 0xff, 0xdc, 0x43, 0xff, 0xff, 0xde, 0xff, 0xff, 0xff, 0xff, 0xe5, 0x2a, 0xff, 0xdc, 0xa6, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x5b, 0xff, 0xd4, 0x01, 0xff, 0xf6, 0x74, 0xff, 0xff, 0xff, 0xff, 0xf6, 0x95, 0xff, 0xd4, 0x01, 0xff, 0xf6, 0xf7, 0xff, 0xff, 0xff, 0xff, 0xf5, 0x53, 0xff, 0xe2, 0x08, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xdb, 0xa8, 0xff, 0xd4, 0xa8, 0xff, 0xc4, 0x47, 0xf6, 0xbc, 0x27, 0x9e, + 0xbc, 0x47, 0x65, 0xc4, 0x47, 0xf8, 0xcc, 0x88, 0xff, 0xdc, 0xc8, 0xff, 0xe3, 0x08, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x28, 0xff, 0xf5, 0x96, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xed, 0xae, 0xff, 0xd4, 0x22, 0xff, 0xff, 0xde, 0xff, 0xff, 0xff, 0xff, 0xe5, 0x8d, 0xff, 0xd4, 0x01, 0xff, 0xf6, 0xf8, 0xff, 0xff, 0xde, 0xff, 0xee, 0x10, 0xff, 0xd3, 0xe0, 0xff, 0xf6, 0xb5, 0xff, 0xff, 0xff, 0xff, 0xf6, 0x95, 0xff, 0xd4, 0x01, 0xff, 0xf6, 0xf7, 0xff, 0xff, 0xff, 0xff, 0xf6, 0x74, 0xff, 0xdb, 0x23, 0xff, 0xe2, 0x07, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe3, 0x08, 0xff, 0xdc, 0xc8, 0xff, 0xcc, 0x88, 0xff, 0xc4, 0x47, 0xf6, 0xbc, 0x27, 0x9e, + 0xbc, 0x47, 0x65, 0xc4, 0x47, 0xf8, 0xcc, 0x88, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0x88, 0xff, 0xe2, 0x67, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x28, 0xff, 0xe3, 0xa7, 0xff, 0xdd, 0x08, 0xff, 0xdc, 0xc7, 0xff, 0xf6, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xf6, 0xb5, 0xff, 0xd4, 0x22, 0xff, 0xff, 0x9c, 0xff, 0xff, 0xff, 0xff, 0xed, 0xce, 0xff, 0xd4, 0x63, 0xff, 0xdc, 0xc7, 0xff, 0xdc, 0xe7, 0xff, 0xdc, 0xa6, 0xff, 0xdc, 0x64, 0xff, 0xf6, 0xb5, 0xff, 0xff, 0xff, 0xff, 0xf6, 0xb5, 0xff, 0xd4, 0x01, 0xff, 0xf6, 0xf7, 0xff, 0xff, 0xff, 0xff, 0xf6, 0xd6, 0xff, 0xdc, 0x64, 0xff, 0xe4, 0x08, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x67, 0xff, 0xdc, 0x88, 0xff, 0xdc, 0xe8, 0xff, 0xcc, 0x88, 0xff, 0xc4, 0x47, 0xf6, 0xbc, 0x27, 0x9e, + 0xbc, 0x47, 0x65, 0xc4, 0x47, 0xf8, 0xcc, 0xa8, 0xff, 0xdc, 0xc8, 0xff, 0xdd, 0x09, 0xff, 0xdc, 0x06, 0xff, 0xe2, 0x47, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe3, 0x27, 0xff, 0xd3, 0xa1, 0xff, 0xed, 0xcf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xbd, 0xff, 0xdc, 0xa6, 0xff, 0xff, 0x7b, 0xff, 0xff, 0xff, 0xff, 0xed, 0xce, 0xff, 0xdc, 0x64, 0xff, 0xdc, 0xc8, 0xff, 0xdc, 0xa6, 0xff, 0xdc, 0xc7, 0xff, 0xdc, 0x64, 0xff, 0xf6, 0xb6, 0xff, 0xff, 0xff, 0xff, 0xf6, 0xb6, 0xff, 0xd3, 0xe0, 0xff, 0xf7, 0x18, 0xff, 0xff, 0xff, 0xff, 0xf6, 0xd7, 0xff, 0xdc, 0x24, 0xff, 0xe3, 0x88, 0xff, 0xe2, 0x07, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x47, 0xff, 0xe4, 0x48, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xc8, 0xff, 0xcc, 0xa8, 0xff, 0xc4, 0x47, 0xf6, 0xbc, 0x27, 0x9e, + 0xbc, 0x27, 0x65, 0xc4, 0x47, 0xf8, 0xcc, 0xa8, 0xff, 0xdc, 0xc8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xc7, 0xff, 0xdc, 0x28, 0xff, 0xe2, 0x69, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x67, 0xff, 0xe4, 0x08, 0xff, 0xee, 0x11, 0xff, 0xee, 0x31, 0xff, 0xdd, 0x08, 0xff, 0xe5, 0xae, 0xff, 0xee, 0x32, 0xff, 0xe5, 0x2a, 0xff, 0xdc, 0xc7, 0xff, 0xdd, 0x09, 0xff, 0xdd, 0x09, 0xff, 0xdd, 0x09, 0xff, 0xdc, 0xa6, 0xff, 0xe5, 0x6c, 0xff, 0xee, 0x32, 0xff, 0xe5, 0x8d, 0xff, 0xdc, 0x85, 0xff, 0xe5, 0x8d, 0xff, 0xee, 0x32, 0xff, 0xe4, 0x6b, 0xff, 0xe2, 0x67, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x47, 0xff, 0xe4, 0x28, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xc8, 0xff, 0xcc, 0xa8, 0xff, 0xc4, 0x47, 0xf6, 0xbc, 0x27, 0x9e, + 0xc4, 0x26, 0x65, 0xc4, 0x47, 0xf8, 0xcc, 0x88, 0xff, 0xdc, 0xc8, 0xff, 0xdc, 0xe8, 0xff, 0xdd, 0x09, 0xff, 0xdd, 0x09, 0xff, 0xdb, 0xe6, 0xff, 0xe2, 0x67, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0xa7, 0xff, 0xdb, 0xc6, 0xff, 0xdc, 0xa8, 0xff, 0xdc, 0x86, 0xff, 0xdc, 0x85, 0xff, 0xdc, 0xe8, 0xff, 0xdd, 0x09, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdd, 0x09, 0xff, 0xdc, 0xa7, 0xff, 0xdc, 0x65, 0xff, 0xdc, 0xa7, 0xff, 0xe4, 0xc9, 0xff, 0xdb, 0xc7, 0xff, 0xe2, 0x87, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x68, 0xff, 0xdc, 0x28, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xc8, 0xff, 0xcc, 0x88, 0xff, 0xc4, 0x47, 0xf5, 0xbc, 0x27, 0x9d, + 0xa4, 0x2a, 0x71, 0xc4, 0x47, 0xfc, 0xcc, 0x87, 0xff, 0xd4, 0xc8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0x88, 0xff, 0xe2, 0xc8, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xc7, 0xff, 0xe1, 0xc7, 0xff, 0xe2, 0x68, 0xff, 0xe3, 0x48, 0xff, 0xe3, 0xc8, 0xff, 0xe4, 0x28, 0xff, 0xdc, 0x88, 0xff, 0xdc, 0xa8, 0xff, 0xdc, 0xa8, 0xff, 0xdc, 0xa8, 0xff, 0xdc, 0x88, 0xff, 0xe4, 0x48, 0xff, 0xe3, 0xc8, 0xff, 0xe3, 0x48, 0xff, 0xe2, 0x67, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0xa7, 0xff, 0xdc, 0x88, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xc8, 0xff, 0xcc, 0x88, 0xff, 0xc4, 0x47, 0xfb, 0xbc, 0x47, 0xac, + 0xa4, 0x0a, 0x4f, 0xbc, 0x27, 0xfb, 0xcc, 0xa7, 0xff, 0xd4, 0xc8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xc8, 0xff, 0xe3, 0x88, 0xff, 0xe2, 0x47, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x07, 0xff, 0xe2, 0x47, 0xff, 0xe2, 0x88, 0xff, 0xe2, 0x87, 0xff, 0xe2, 0x88, 0xff, 0xe2, 0x68, 0xff, 0xe2, 0x07, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x47, 0xff, 0xe3, 0x88, 0xff, 0xdc, 0xc8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xd4, 0xc8, 0xff, 0xcc, 0xa7, 0xff, 0xbc, 0x27, 0xfa, 0xbc, 0x07, 0x8e, + 0xbc, 0xa9, 0x07, 0xb3, 0xe8, 0xc0, 0xc4, 0x47, 0xff, 0xd4, 0xa8, 0xff, 0xd4, 0xc8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0x48, 0xff, 0xe3, 0x28, 0xff, 0xe2, 0x47, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x48, 0xff, 0xe3, 0x28, 0xff, 0xdc, 0x48, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xc8, 0xff, 0xd4, 0xc8, 0xff, 0xd4, 0xa8, 0xff, 0xc4, 0x47, 0xff, 0xbc, 0x07, 0xc0, 0xb3, 0xa8, 0x1f, + 0x00, 0x00, 0x00, 0xcd, 0x45, 0x2b, 0xbc, 0x27, 0xe4, 0xc4, 0x47, 0xff, 0xcc, 0x87, 0xff, 0xd4, 0xa8, 0xff, 0xd4, 0x86, 0xff, 0xd4, 0x86, 0xff, 0xd4, 0x86, 0xff, 0xd4, 0x86, 0xff, 0xd4, 0x86, 0xff, 0xd4, 0x86, 0xff, 0xd4, 0x85, 0xff, 0xd4, 0x27, 0xff, 0xdb, 0x68, 0xff, 0xe2, 0xa7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0xa8, 0xff, 0xdb, 0x68, 0xff, 0xd4, 0x26, 0xff, 0xd4, 0x86, 0xff, 0xd4, 0x86, 0xff, 0xd4, 0x86, 0xff, 0xd4, 0x86, 0xff, 0xd4, 0x86, 0xff, 0xd4, 0x86, 0xff, 0xd4, 0x86, 0xff, 0xcc, 0xa8, 0xff, 0xcc, 0x87, 0xff, 0xc4, 0x47, 0xff, 0xbc, 0x27, 0xe4, 0xd5, 0x65, 0x2b, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xcc, 0xe6, 0x29, 0xbb, 0xe8, 0x92, 0xc4, 0x48, 0xc5, 0xc4, 0x46, 0xc5, 0xc4, 0x46, 0x9f, 0xc4, 0x68, 0x7f, 0xc4, 0x67, 0x86, 0xc4, 0x67, 0x87, 0xc4, 0x67, 0x86, 0xc4, 0x67, 0x86, 0xc4, 0x68, 0x7f, 0xcc, 0x46, 0x98, 0xcc, 0x26, 0xc1, 0xc4, 0x28, 0xc3, 0xcb, 0xc7, 0xcb, 0xd3, 0x47, 0xd7, 0xda, 0xc8, 0xe3, 0xda, 0x87, 0xec, 0xe2, 0x47, 0xf2, 0xe2, 0x27, 0xf5, 0xe2, 0x27, 0xf7, 0xe2, 0x27, 0xf5, 0xe2, 0x47, 0xf2, 0xda, 0x67, 0xeb, 0xda, 0xc7, 0xe3, 0xd3, 0x27, 0xd7, 0xcb, 0xa7, 0xcb, 0xc4, 0x28, 0xc3, 0xc4, 0x45, 0xc0, 0xc4, 0x45, 0x9a, 0xc4, 0x68, 0x7f, 0xc4, 0x67, 0x86, 0xc4, 0x67, 0x86, 0xc4, 0x67, 0x87, 0xc4, 0x67, 0x87, 0xc4, 0x68, 0x7f, 0xc4, 0x46, 0x9e, 0xc4, 0x46, 0xc5, 0xbc, 0x48, 0xc5, 0xbb, 0xe8, 0x92, 0xcc, 0xa6, 0x29, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc4, 0x08, 0x08, 0xc4, 0x00, 0x04, 0xb5, 0xb7, 0x2b, 0xad, 0xb9, 0x5a, 0xad, 0x97, 0x4c, 0xad, 0x97, 0x4b, 0xad, 0x98, 0x4c, 0xad, 0xb8, 0x4c, 0xad, 0xb9, 0x57, 0xa5, 0x35, 0x35, 0xdc, 0x00, 0x06, 0xdc, 0x05, 0x06, 0xd4, 0xc6, 0x05, 0xd4, 0xc6, 0x05, 0xd4, 0xc6, 0x05, 0xd4, 0xc6, 0x05, 0xd4, 0xc6, 0x05, 0xd4, 0xc6, 0x05, 0xd4, 0xc6, 0x05, 0xd4, 0xc6, 0x05, 0xd4, 0xc6, 0x05, 0xd4, 0xc6, 0x05, 0xd4, 0xc6, 0x05, 0xd4, 0xc6, 0x05, 0xd4, 0xc6, 0x05, 0xac, 0x05, 0x06, 0xd3, 0x40, 0x05, 0xb5, 0x97, 0x34, 0xad, 0xb9, 0x57, 0xad, 0x97, 0x4c, 0xad, 0x98, 0x4c, 0xad, 0x97, 0x4b, 0xad, 0xb8, 0x4c, 0xad, 0xb9, 0x5a, 0xad, 0x56, 0x2b, 0xc4, 0x00, 0x04, 0xc4, 0x08, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xad, 0xda, 0x90, 0xb5, 0xb8, 0xff, 0xb5, 0xd9, 0xff, 0xad, 0xb8, 0xff, 0xad, 0xb8, 0xff, 0xb5, 0xd9, 0xff, 0xb5, 0xb8, 0xff, 0x95, 0x18, 0xb8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xad, 0xdb, 0xb5, 0xb5, 0xb8, 0xff, 0xad, 0xd9, 0xff, 0xad, 0xb8, 0xff, 0xad, 0xb8, 0xff, 0xb5, 0xd9, 0xff, 0xad, 0x98, 0xff, 0x95, 0x17, 0x92, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa5, 0x35, 0x2f, 0xa5, 0x34, 0xcb, 0xad, 0x35, 0xee, 0xad, 0x35, 0xdd, 0xad, 0x35, 0xdc, 0xad, 0x55, 0xec, 0xa4, 0xf3, 0xd2, 0x8c, 0x92, 0x42, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xad, 0x56, 0x41, 0xa5, 0x14, 0xd3, 0xad, 0x35, 0xec, 0xad, 0x34, 0xdc, 0xad, 0x35, 0xdd, 0xad, 0x55, 0xee, 0xa4, 0xf3, 0xc9, 0x94, 0x93, 0x2e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +#endif +#if LV_COLOR_DEPTH == 32 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4f, 0xab, 0xe7, 0x5e, 0x4f, 0xa8, 0xe6, 0xd7, 0x4f, 0xa9, 0xe6, 0xff, 0x4f, 0xa9, 0xe6, 0xff, 0x4f, 0xa9, 0xe6, 0xfd, 0x4f, 0xa9, 0xe6, 0xfe, 0x4f, 0xa9, 0xe6, 0xfe, 0x4f, 0xa9, 0xe6, 0xfe, 0x4f, 0xa9, 0xe6, 0xfe, 0x4f, 0xa9, 0xe6, 0xfe, 0x4f, 0xa9, 0xe6, 0xfe, 0x4f, 0xa9, 0xe6, 0xfe, 0x4f, 0xa9, 0xe6, 0xfe, 0x4f, 0xa9, 0xe6, 0xfe, 0x4f, 0xa9, 0xe6, 0xfe, 0x4f, 0xa9, 0xe6, 0xfe, 0x4f, 0xa9, 0xe6, 0xfe, 0x4f, 0xa9, 0xe6, 0xfe, 0x4f, 0xa9, 0xe6, 0xfd, 0x4f, 0xa9, 0xe6, 0xff, 0x4f, 0xa9, 0xe6, 0xff, 0x4f, 0xa8, 0xe6, 0xd7, 0x50, 0xa9, 0xe3, 0x5c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x51, 0xa9, 0xe6, 0x6e, 0x4f, 0xa8, 0xe5, 0xff, 0x4f, 0xa9, 0xe6, 0xe4, 0x50, 0xab, 0xe9, 0xa0, 0x50, 0xab, 0xe6, 0xa6, 0x51, 0xaa, 0xe7, 0xab, 0x50, 0xaa, 0xe7, 0xaa, 0x50, 0xaa, 0xe7, 0xaa, 0x50, 0xaa, 0xe7, 0xaa, 0x50, 0xaa, 0xe7, 0xaa, 0x50, 0xaa, 0xe7, 0xaa, 0x50, 0xaa, 0xe7, 0xaa, 0x50, 0xaa, 0xe7, 0xaa, 0x50, 0xaa, 0xe7, 0xaa, 0x50, 0xaa, 0xe7, 0xaa, 0x50, 0xaa, 0xe7, 0xaa, 0x50, 0xaa, 0xe7, 0xaa, 0x50, 0xaa, 0xe7, 0xaa, 0x50, 0xaa, 0xe7, 0xaa, 0x51, 0xaa, 0xe7, 0xab, 0x50, 0xaa, 0xe6, 0xa5, 0x50, 0xab, 0xe9, 0xa0, 0x4f, 0xa9, 0xe5, 0xe4, 0x4f, 0xa8, 0xe4, 0xff, 0x50, 0xab, 0xe8, 0x6d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x57, 0xb5, 0xf2, 0x26, 0x4d, 0xa6, 0xe3, 0xff, 0x52, 0xac, 0xea, 0xc5, 0x51, 0xae, 0xe8, 0x16, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x51, 0xae, 0xe8, 0x16, 0x52, 0xac, 0xec, 0xc5, 0x4d, 0xa6, 0xe3, 0xff, 0x57, 0xae, 0xeb, 0x26, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4f, 0xa7, 0xe6, 0x5a, 0x55, 0xb2, 0xf2, 0xff, 0x58, 0xb7, 0xf4, 0x43, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x58, 0xb3, 0xf7, 0x43, 0x55, 0xb2, 0xf1, 0xff, 0x4f, 0xa7, 0xe6, 0x5a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x37, 0x89, 0xbf, 0x1c, 0x3b, 0x85, 0xbc, 0x41, 0x39, 0x8a, 0xba, 0x3f, 0x37, 0x88, 0xbb, 0x3c, 0x38, 0x86, 0xba, 0x3b, 0x33, 0x80, 0xb2, 0x32, 0x40, 0x92, 0xca, 0x8f, 0x53, 0xaf, 0xed, 0xff, 0x3d, 0x8d, 0xc5, 0x65, 0x2f, 0x7d, 0xac, 0x31, 0x37, 0x84, 0xbb, 0x3c, 0x37, 0x84, 0xb7, 0x3c, 0x37, 0x84, 0xb7, 0x3c, 0x37, 0x84, 0xb7, 0x3c, 0x37, 0x84, 0xb7, 0x3c, 0x37, 0x84, 0xb7, 0x3c, 0x37, 0x84, 0xb7, 0x3c, 0x37, 0x84, 0xb7, 0x3c, 0x37, 0x84, 0xb7, 0x3c, 0x37, 0x84, 0xb7, 0x3c, 0x37, 0x84, 0xb7, 0x3c, 0x37, 0x84, 0xb7, 0x3c, 0x37, 0x84, 0xb7, 0x3c, 0x37, 0x84, 0xb7, 0x3c, 0x37, 0x84, 0xb7, 0x3c, 0x37, 0x84, 0xb7, 0x3c, 0x37, 0x84, 0xb7, 0x3c, 0x37, 0x84, 0xb7, 0x3c, 0x37, 0x84, 0xb7, 0x3c, 0x2f, 0x7d, 0xac, 0x31, 0x3d, 0x8d, 0xc5, 0x65, 0x53, 0xaf, 0xed, 0xff, 0x40, 0x92, 0xca, 0x8f, 0x33, 0x80, 0xb2, 0x32, 0x38, 0x86, 0xba, 0x3b, 0x37, 0x88, 0xbb, 0x3c, 0x39, 0x8a, 0xba, 0x3f, 0x3b, 0x85, 0xbc, 0x41, 0x40, 0x89, 0xbf, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x37, 0x90, 0xc1, 0x73, 0x3a, 0x84, 0xba, 0xdf, 0x3a, 0x89, 0xbe, 0xfa, 0x3c, 0x90, 0xc9, 0xf8, 0x3c, 0x90, 0xc8, 0xf7, 0x3c, 0x90, 0xc8, 0xf7, 0x3b, 0x8f, 0xc8, 0xf0, 0x3a, 0x8d, 0xc4, 0xf9, 0x38, 0x8b, 0xc1, 0xff, 0x38, 0x89, 0xc1, 0xf6, 0x3b, 0x8f, 0xc8, 0xef, 0x3d, 0x90, 0xc8, 0xf7, 0x3c, 0x90, 0xc8, 0xf7, 0x3c, 0x90, 0xc8, 0xf7, 0x3c, 0x90, 0xc8, 0xf7, 0x3c, 0x90, 0xc8, 0xf7, 0x3c, 0x90, 0xc8, 0xf7, 0x3c, 0x90, 0xc8, 0xf7, 0x3c, 0x90, 0xc8, 0xf7, 0x3c, 0x90, 0xc8, 0xf7, 0x3c, 0x90, 0xc8, 0xf7, 0x3c, 0x90, 0xc8, 0xf7, 0x3c, 0x90, 0xc8, 0xf7, 0x3c, 0x90, 0xc8, 0xf7, 0x3c, 0x90, 0xc8, 0xf7, 0x3c, 0x90, 0xc8, 0xf7, 0x3c, 0x90, 0xc8, 0xf7, 0x3c, 0x90, 0xc8, 0xf7, 0x3c, 0x90, 0xc8, 0xf7, 0x3d, 0x90, 0xc9, 0xf7, 0x3b, 0x8f, 0xc8, 0xef, 0x38, 0x89, 0xc1, 0xf6, 0x38, 0x8b, 0xc2, 0xff, 0x3a, 0x8d, 0xc4, 0xf9, 0x3b, 0x8f, 0xc8, 0xf0, 0x3c, 0x90, 0xc8, 0xf7, 0x3c, 0x90, 0xc8, 0xf7, 0x3b, 0x90, 0xc7, 0xf8, 0x3a, 0x87, 0xbe, 0xfa, 0x3b, 0x82, 0xb8, 0xdf, 0x33, 0x95, 0xc5, 0x73, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x34, 0x99, 0xc6, 0x67, 0x3c, 0x7d, 0xb6, 0xff, 0x3b, 0x8d, 0xc6, 0xff, 0x42, 0xa3, 0xe1, 0xff, 0x43, 0xa0, 0xdf, 0xff, 0x42, 0x9e, 0xdd, 0xff, 0x42, 0xa0, 0xdc, 0xff, 0x42, 0xa0, 0xde, 0xff, 0x41, 0x9e, 0xdc, 0xff, 0x3f, 0x9b, 0xd8, 0xff, 0x43, 0x9f, 0xde, 0xff, 0x42, 0xa0, 0xdf, 0xff, 0x41, 0xa0, 0xdd, 0xff, 0x41, 0x94, 0xde, 0xff, 0x3f, 0x7a, 0xdf, 0xff, 0x3d, 0x5e, 0xe0, 0xff, 0x3c, 0x4f, 0xe1, 0xff, 0x3b, 0x45, 0xe1, 0xff, 0x3a, 0x3e, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3e, 0xe2, 0xff, 0x3b, 0x45, 0xe1, 0xff, 0x3c, 0x4f, 0xe1, 0xff, 0x3d, 0x5d, 0xe0, 0xff, 0x3f, 0x79, 0xdf, 0xff, 0x41, 0x94, 0xdd, 0xff, 0x41, 0x9f, 0xdd, 0xff, 0x42, 0xa0, 0xdf, 0xff, 0x43, 0x9f, 0xde, 0xff, 0x3f, 0x9c, 0xd8, 0xff, 0x41, 0x9e, 0xdc, 0xff, 0x42, 0xa0, 0xde, 0xff, 0x42, 0xa0, 0xdd, 0xff, 0x42, 0x9e, 0xdd, 0xff, 0x43, 0x9f, 0xdf, 0xff, 0x42, 0xa3, 0xe1, 0xff, 0x3c, 0x8d, 0xc5, 0xff, 0x39, 0x81, 0xb9, 0xff, 0x36, 0x95, 0xc4, 0x67, 0x00, 0x00, 0x00, 0x00, + 0x44, 0x7f, 0xb2, 0x1e, 0x3b, 0x82, 0xbb, 0xe1, 0x3c, 0x91, 0xc9, 0xff, 0x42, 0xa1, 0xde, 0xff, 0x32, 0x74, 0xa1, 0xff, 0x25, 0x51, 0x71, 0xff, 0x26, 0x56, 0x76, 0xff, 0x27, 0x58, 0x78, 0xff, 0x27, 0x58, 0x79, 0xff, 0x27, 0x58, 0x7a, 0xff, 0x28, 0x58, 0x7a, 0xff, 0x28, 0x58, 0x7a, 0xff, 0x2b, 0x52, 0x8b, 0xff, 0x32, 0x49, 0xb1, 0xff, 0x37, 0x3f, 0xd2, 0xff, 0x39, 0x3b, 0xde, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x39, 0x3b, 0xde, 0xff, 0x38, 0x3f, 0xd3, 0xff, 0x32, 0x48, 0xb2, 0xff, 0x2b, 0x52, 0x8c, 0xff, 0x28, 0x58, 0x7a, 0xff, 0x28, 0x58, 0x7a, 0xff, 0x27, 0x58, 0x7a, 0xff, 0x27, 0x58, 0x79, 0xff, 0x27, 0x58, 0x78, 0xff, 0x26, 0x56, 0x76, 0xff, 0x25, 0x51, 0x70, 0xff, 0x32, 0x74, 0xa1, 0xff, 0x42, 0xa1, 0xdf, 0xff, 0x3c, 0x91, 0xca, 0xff, 0x3c, 0x81, 0xb9, 0xe2, 0x3f, 0x85, 0xbd, 0x49, + 0x53, 0x83, 0xa4, 0x65, 0x36, 0x8b, 0xc4, 0xfb, 0x42, 0xa6, 0xe7, 0xff, 0x33, 0x74, 0xa0, 0xff, 0x14, 0x25, 0x31, 0xff, 0x18, 0x32, 0x42, 0xff, 0x1b, 0x37, 0x49, 0xff, 0x1b, 0x36, 0x49, 0xff, 0x1b, 0x36, 0x49, 0xff, 0x1b, 0x36, 0x49, 0xff, 0x1e, 0x36, 0x58, 0xff, 0x2c, 0x38, 0x9b, 0xff, 0x38, 0x3a, 0xd6, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe0, 0xff, 0x39, 0x3a, 0xdf, 0xff, 0x3a, 0x3a, 0xe0, 0xff, 0x3a, 0x3a, 0xe1, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x38, 0x3a, 0xd7, 0xff, 0x2c, 0x38, 0x9c, 0xff, 0x1f, 0x37, 0x5a, 0xff, 0x1b, 0x36, 0x49, 0xff, 0x1b, 0x36, 0x49, 0xff, 0x1b, 0x35, 0x49, 0xff, 0x1b, 0x37, 0x49, 0xff, 0x19, 0x32, 0x42, 0xff, 0x14, 0x25, 0x31, 0xff, 0x32, 0x74, 0xa1, 0xff, 0x44, 0xa6, 0xe6, 0xff, 0x39, 0x8c, 0xc2, 0xfa, 0x37, 0x8b, 0xbf, 0xa7, + 0x45, 0x88, 0xb3, 0x6b, 0x3a, 0x91, 0xca, 0xfa, 0x45, 0xa6, 0xe9, 0xff, 0x25, 0x4f, 0x6d, 0xff, 0x16, 0x2d, 0x3d, 0xff, 0x21, 0x49, 0x63, 0xff, 0x20, 0x46, 0x5f, 0xff, 0x20, 0x46, 0x5f, 0xff, 0x20, 0x46, 0x5f, 0xff, 0x28, 0x42, 0x87, 0xff, 0x35, 0x3d, 0xc7, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x37, 0x3b, 0xd4, 0xff, 0x35, 0x3d, 0xc8, 0xff, 0x31, 0x3f, 0xb3, 0xff, 0x2e, 0x41, 0xa2, 0xff, 0x2d, 0x42, 0x9a, 0xff, 0x2b, 0x42, 0x96, 0xff, 0x2d, 0x42, 0x99, 0xff, 0x2d, 0x40, 0xa2, 0xff, 0x30, 0x3e, 0xb1, 0xff, 0x35, 0x3d, 0xc7, 0xff, 0x38, 0x3c, 0xd3, 0xff, 0x3a, 0x3a, 0xe1, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x36, 0x3d, 0xc9, 0xff, 0x28, 0x42, 0x89, 0xff, 0x20, 0x46, 0x5f, 0xff, 0x20, 0x45, 0x5f, 0xff, 0x20, 0x46, 0x5f, 0xff, 0x21, 0x49, 0x64, 0xff, 0x16, 0x2d, 0x3d, 0xff, 0x24, 0x4f, 0x6d, 0xff, 0x45, 0xa6, 0xe6, 0xff, 0x3c, 0x90, 0xc9, 0xf8, 0x38, 0x87, 0xbd, 0xa3, + 0x35, 0x88, 0xc2, 0x65, 0x3e, 0x93, 0xca, 0xf8, 0x45, 0xa5, 0xe6, 0xff, 0x25, 0x52, 0x71, 0xff, 0x1a, 0x34, 0x46, 0xff, 0x21, 0x48, 0x63, 0xff, 0x20, 0x45, 0x5f, 0xff, 0x22, 0x47, 0x63, 0xff, 0x2d, 0x42, 0x9a, 0xff, 0x38, 0x3a, 0xdd, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xdf, 0xff, 0x33, 0x3e, 0xbf, 0xff, 0x2c, 0x41, 0x9b, 0xff, 0x26, 0x44, 0x7a, 0xff, 0x22, 0x46, 0x68, 0xff, 0x21, 0x47, 0x62, 0xff, 0x21, 0x47, 0x61, 0xff, 0x21, 0x47, 0x61, 0xff, 0x21, 0x47, 0x61, 0xff, 0x21, 0x47, 0x61, 0xff, 0x21, 0x47, 0x61, 0xff, 0x21, 0x47, 0x61, 0xff, 0x22, 0x46, 0x68, 0xff, 0x26, 0x45, 0x7a, 0xff, 0x2c, 0x42, 0x99, 0xff, 0x33, 0x3e, 0xbd, 0xff, 0x39, 0x3b, 0xdd, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x38, 0x39, 0xde, 0xff, 0x2d, 0x41, 0x9b, 0xff, 0x22, 0x47, 0x63, 0xff, 0x20, 0x45, 0x5f, 0xff, 0x21, 0x48, 0x63, 0xff, 0x1a, 0x34, 0x45, 0xff, 0x25, 0x52, 0x71, 0xff, 0x44, 0xa6, 0xe6, 0xff, 0x3d, 0x92, 0xca, 0xf6, 0x38, 0x88, 0xbe, 0x9e, + 0x3a, 0x88, 0xbd, 0x65, 0x3d, 0x92, 0xca, 0xf8, 0x45, 0xa5, 0xe7, 0xff, 0x26, 0x55, 0x74, 0xff, 0x1a, 0x35, 0x45, 0xff, 0x22, 0x49, 0x63, 0xff, 0x22, 0x46, 0x64, 0xff, 0x2f, 0x3f, 0xaa, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x33, 0x3e, 0xba, 0xff, 0x29, 0x42, 0x8b, 0xff, 0x23, 0x47, 0x69, 0xff, 0x22, 0x48, 0x62, 0xff, 0x22, 0x48, 0x63, 0xff, 0x22, 0x48, 0x62, 0xff, 0x22, 0x48, 0x62, 0xff, 0x21, 0x47, 0x62, 0xff, 0x22, 0x48, 0x63, 0xff, 0x22, 0x48, 0x63, 0xff, 0x22, 0x48, 0x63, 0xff, 0x22, 0x48, 0x63, 0xff, 0x21, 0x47, 0x62, 0xff, 0x22, 0x48, 0x62, 0xff, 0x22, 0x48, 0x62, 0xff, 0x22, 0x48, 0x63, 0xff, 0x23, 0x47, 0x68, 0xff, 0x29, 0x44, 0x87, 0xff, 0x32, 0x3e, 0xb9, 0xff, 0x3a, 0x3a, 0xe3, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x2f, 0x3f, 0xab, 0xff, 0x22, 0x45, 0x65, 0xff, 0x22, 0x49, 0x63, 0xff, 0x1a, 0x35, 0x46, 0xff, 0x26, 0x55, 0x74, 0xff, 0x45, 0xa5, 0xe7, 0xff, 0x3c, 0x91, 0xca, 0xf6, 0x38, 0x88, 0xbd, 0x9e, + 0x3a, 0x88, 0xbd, 0x65, 0x3d, 0x91, 0xca, 0xf8, 0x46, 0xa6, 0xe7, 0xff, 0x26, 0x56, 0x75, 0xff, 0x1a, 0x34, 0x46, 0xff, 0x22, 0x49, 0x66, 0xff, 0x2f, 0x40, 0xaa, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x37, 0x3d, 0xcc, 0xff, 0x2c, 0x43, 0x97, 0xff, 0x22, 0x48, 0x6a, 0xff, 0x24, 0x4c, 0x65, 0xff, 0x26, 0x4c, 0x66, 0xff, 0x1f, 0x47, 0x63, 0xff, 0x24, 0x4c, 0x66, 0xff, 0x24, 0x4b, 0x65, 0xff, 0x21, 0x49, 0x63, 0xff, 0x22, 0x49, 0x65, 0xff, 0x26, 0x4c, 0x67, 0xff, 0x20, 0x48, 0x63, 0xff, 0x22, 0x4a, 0x64, 0xff, 0x26, 0x4d, 0x67, 0xff, 0x22, 0x49, 0x64, 0xff, 0x21, 0x49, 0x64, 0xff, 0x25, 0x4b, 0x66, 0xff, 0x24, 0x4a, 0x65, 0xff, 0x1f, 0x47, 0x61, 0xff, 0x25, 0x4c, 0x65, 0xff, 0x24, 0x49, 0x6b, 0xff, 0x2c, 0x43, 0x97, 0xff, 0x37, 0x3c, 0xd2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x2f, 0x3f, 0xac, 0xff, 0x23, 0x49, 0x68, 0xff, 0x1a, 0x34, 0x46, 0xff, 0x26, 0x56, 0x75, 0xff, 0x45, 0xa6, 0xe7, 0xff, 0x3c, 0x91, 0xc9, 0xf6, 0x38, 0x88, 0xbd, 0x9e, + 0x3a, 0x88, 0xbd, 0x65, 0x3c, 0x91, 0xca, 0xf8, 0x44, 0xa6, 0xe6, 0xff, 0x26, 0x56, 0x75, 0xff, 0x1a, 0x35, 0x49, 0xff, 0x2e, 0x42, 0xa6, 0xff, 0x3a, 0x3a, 0xe3, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3b, 0x3b, 0xe2, 0xff, 0x1e, 0x38, 0x85, 0xff, 0x28, 0x4f, 0x69, 0xff, 0x25, 0x4e, 0x69, 0xff, 0x1f, 0x47, 0x61, 0xff, 0x08, 0x31, 0x4d, 0xff, 0x1b, 0x4b, 0x69, 0xff, 0x0c, 0x35, 0x52, 0xff, 0x1e, 0x46, 0x5f, 0xff, 0x25, 0x4d, 0x67, 0xff, 0x27, 0x4f, 0x68, 0xff, 0x0d, 0x35, 0x50, 0xff, 0x15, 0x43, 0x64, 0xff, 0x10, 0x3c, 0x5c, 0xff, 0x12, 0x3a, 0x53, 0xff, 0x29, 0x51, 0x6b, 0xff, 0x25, 0x4d, 0x68, 0xff, 0x18, 0x3f, 0x59, 0xff, 0x0d, 0x38, 0x55, 0xff, 0x1b, 0x4b, 0x6b, 0xff, 0x08, 0x32, 0x4e, 0xff, 0x25, 0x4c, 0x66, 0xff, 0x26, 0x4d, 0x68, 0xff, 0x2b, 0x4b, 0x7d, 0xff, 0x2f, 0x39, 0xbd, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe3, 0xff, 0x2f, 0x41, 0xa9, 0xff, 0x1a, 0x35, 0x49, 0xff, 0x26, 0x56, 0x75, 0xff, 0x44, 0xa6, 0xe6, 0xff, 0x3c, 0x91, 0xca, 0xf6, 0x38, 0x88, 0xbd, 0x9e, + 0x3a, 0x88, 0xbb, 0x65, 0x3c, 0x91, 0xc9, 0xf8, 0x44, 0xa5, 0xe5, 0xff, 0x26, 0x55, 0x75, 0xff, 0x26, 0x38, 0x7e, 0xff, 0x38, 0x3a, 0xdd, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x37, 0x3e, 0xcf, 0xff, 0x1e, 0x3c, 0x7a, 0xff, 0x26, 0x4d, 0x68, 0xff, 0x13, 0x3e, 0x5b, 0xff, 0x3c, 0x60, 0x7c, 0xff, 0x38, 0x4e, 0x5c, 0xff, 0x34, 0x5b, 0x75, 0xff, 0x19, 0x42, 0x5f, 0xff, 0x27, 0x4f, 0x69, 0xff, 0x13, 0x3c, 0x57, 0xff, 0x2c, 0x56, 0x75, 0xff, 0x3e, 0x53, 0x64, 0xff, 0x3d, 0x5b, 0x6d, 0xff, 0x1f, 0x4c, 0x69, 0xff, 0x1a, 0x40, 0x5b, 0xff, 0x22, 0x49, 0x64, 0xff, 0x1b, 0x47, 0x65, 0xff, 0x3d, 0x5e, 0x74, 0xff, 0x38, 0x4b, 0x59, 0xff, 0x37, 0x5e, 0x7a, 0xff, 0x10, 0x39, 0x55, 0xff, 0x27, 0x4f, 0x6a, 0xff, 0x11, 0x39, 0x55, 0xff, 0x2e, 0x55, 0x7f, 0xff, 0x3d, 0x44, 0xc0, 0xff, 0x3a, 0x3a, 0xe3, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x39, 0x3b, 0xde, 0xff, 0x25, 0x37, 0x80, 0xff, 0x26, 0x55, 0x75, 0xff, 0x44, 0xa5, 0xe5, 0xff, 0x3c, 0x91, 0xc9, 0xf6, 0x38, 0x88, 0xbb, 0x9e, + 0x3a, 0x88, 0xbb, 0x65, 0x3c, 0x91, 0xc9, 0xf8, 0x44, 0xa5, 0xe5, 0xff, 0x2a, 0x51, 0x86, 0xff, 0x36, 0x3a, 0xcb, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x35, 0x3a, 0xd3, 0xff, 0x12, 0x2b, 0x6c, 0xff, 0x5e, 0x83, 0x99, 0xff, 0xd2, 0xdd, 0xe2, 0xff, 0x49, 0x53, 0x5b, 0xff, 0xbc, 0xd7, 0xdd, 0xff, 0x5c, 0x83, 0x9b, 0xff, 0x09, 0x2e, 0x4a, 0xff, 0x18, 0x43, 0x61, 0xff, 0xcc, 0xe9, 0xf4, 0xff, 0x71, 0x76, 0x74, 0xff, 0x95, 0x9c, 0x9b, 0xff, 0xae, 0xc9, 0xd9, 0xff, 0x01, 0x2b, 0x4b, 0xff, 0x05, 0x2e, 0x4c, 0xff, 0x84, 0xac, 0xbf, 0xff, 0xb0, 0xc0, 0xbf, 0xff, 0x4b, 0x4b, 0x4a, 0xff, 0xd4, 0xe2, 0xea, 0xff, 0x33, 0x5d, 0x7a, 0xff, 0x05, 0x21, 0x3e, 0xff, 0x1e, 0x46, 0x62, 0xff, 0xd0, 0xf0, 0xf7, 0xff, 0x71, 0x7d, 0x92, 0xff, 0x55, 0x59, 0xdb, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x36, 0x3a, 0xcc, 0xff, 0x29, 0x50, 0x87, 0xff, 0x44, 0xa5, 0xe5, 0xff, 0x3c, 0x91, 0xc9, 0xf6, 0x38, 0x88, 0xbb, 0x9e, + 0x3a, 0x86, 0xbb, 0x65, 0x3c, 0x90, 0xc9, 0xf8, 0x45, 0xa3, 0xe5, 0xff, 0x32, 0x45, 0xb7, 0xff, 0x39, 0x39, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x34, 0x3b, 0xca, 0xff, 0x86, 0x98, 0xee, 0xff, 0x47, 0x4b, 0xe3, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x34, 0x36, 0xd1, 0xff, 0x72, 0x8a, 0xc6, 0xff, 0xe7, 0xff, 0xff, 0xff, 0xa8, 0xd0, 0xdd, 0xff, 0xdc, 0xfc, 0xff, 0xff, 0x7b, 0x9d, 0xb4, 0xff, 0x00, 0x1a, 0x36, 0xff, 0x39, 0x5e, 0x79, 0xff, 0xdf, 0xfe, 0xff, 0xff, 0xb6, 0xde, 0xe5, 0xff, 0xce, 0xf0, 0xf5, 0xff, 0xd0, 0xeb, 0xf9, 0xff, 0x0c, 0x35, 0x53, 0xff, 0x00, 0x25, 0x42, 0xff, 0xa3, 0xc4, 0xd3, 0xff, 0xd3, 0xf8, 0xff, 0xff, 0xaa, 0xd1, 0xdb, 0xff, 0xe7, 0xff, 0xff, 0xff, 0x5f, 0x83, 0x9c, 0xff, 0x00, 0x08, 0x27, 0xff, 0x43, 0x67, 0x81, 0xff, 0xea, 0xff, 0xff, 0xff, 0xb6, 0xdd, 0xe6, 0xff, 0xc2, 0xe2, 0xfb, 0xff, 0x4a, 0x4f, 0xe0, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x39, 0x39, 0xe2, 0xff, 0x33, 0x44, 0xb9, 0xff, 0x45, 0xa3, 0xe5, 0xff, 0x3c, 0x90, 0xc9, 0xf6, 0x38, 0x88, 0xbb, 0x9e, + 0x3a, 0x86, 0xbb, 0x65, 0x3c, 0x90, 0xc9, 0xf8, 0x42, 0x8a, 0xe4, 0xff, 0x39, 0x3b, 0xdd, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x39, 0x3a, 0xdf, 0xff, 0x20, 0x39, 0x81, 0xff, 0x71, 0x92, 0xab, 0xff, 0xa0, 0xb5, 0xf5, 0xff, 0x44, 0x46, 0xe4, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3d, 0xd6, 0xff, 0x98, 0xaf, 0xea, 0xff, 0xe6, 0xff, 0xff, 0xff, 0xaf, 0xd0, 0xe6, 0xff, 0x39, 0x5d, 0x76, 0xff, 0x0e, 0x36, 0x52, 0xff, 0x16, 0x3c, 0x57, 0xff, 0x86, 0xa7, 0xbe, 0xff, 0xe4, 0xff, 0xff, 0xff, 0xdd, 0xff, 0xff, 0xff, 0x6e, 0x90, 0xa8, 0xff, 0x09, 0x31, 0x4c, 0xff, 0x0c, 0x35, 0x50, 0xff, 0x4d, 0x6f, 0x8a, 0xff, 0xc7, 0xe6, 0xf9, 0xff, 0xe8, 0xff, 0xff, 0xff, 0xa6, 0xc9, 0xde, 0xff, 0x24, 0x49, 0x64, 0xff, 0x0a, 0x2d, 0x4a, 0xff, 0x1a, 0x3f, 0x5a, 0xff, 0x9b, 0xba, 0xd1, 0xff, 0xe7, 0xff, 0xff, 0xff, 0xd3, 0xf2, 0xff, 0xff, 0x4c, 0x63, 0xa9, 0xff, 0x38, 0x3a, 0xde, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x39, 0x3b, 0xde, 0xff, 0x42, 0x87, 0xe4, 0xff, 0x3c, 0x90, 0xc9, 0xf6, 0x38, 0x88, 0xbb, 0x9e, + 0x3a, 0x86, 0xbb, 0x65, 0x3c, 0x8f, 0xc9, 0xf8, 0x3f, 0x64, 0xe4, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x33, 0x40, 0xb6, 0xff, 0x1c, 0x42, 0x5f, 0xff, 0x17, 0x3c, 0x54, 0xff, 0x51, 0x72, 0x89, 0xff, 0x4e, 0x61, 0xae, 0xff, 0x38, 0x3a, 0xda, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x39, 0x3d, 0xd5, 0xff, 0x5a, 0x70, 0xac, 0xff, 0x34, 0x55, 0x6d, 0xff, 0x12, 0x38, 0x52, 0xff, 0x28, 0x4f, 0x6a, 0xff, 0x15, 0x3d, 0x58, 0xff, 0x1a, 0x3e, 0x57, 0xff, 0x5e, 0x7d, 0x93, 0xff, 0x53, 0x71, 0x8b, 0xff, 0x12, 0x37, 0x51, 0xff, 0x1d, 0x45, 0x5f, 0xff, 0x22, 0x4b, 0x65, 0xff, 0x0f, 0x36, 0x50, 0xff, 0x44, 0x64, 0x7c, 0xff, 0x66, 0x84, 0x99, 0xff, 0x2a, 0x4c, 0x63, 0xff, 0x0f, 0x36, 0x51, 0xff, 0x26, 0x50, 0x6c, 0xff, 0x13, 0x3a, 0x55, 0xff, 0x22, 0x45, 0x5d, 0xff, 0x61, 0x80, 0x94, 0xff, 0x47, 0x68, 0x81, 0xff, 0x10, 0x35, 0x4e, 0xff, 0x30, 0x3f, 0xb1, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3f, 0x61, 0xe4, 0xff, 0x3c, 0x8e, 0xc8, 0xf6, 0x38, 0x88, 0xbb, 0x9e, + 0x3a, 0x86, 0xbb, 0x65, 0x3c, 0x80, 0xcd, 0xf9, 0x3c, 0x42, 0xe2, 0xff, 0x39, 0x39, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x39, 0x3b, 0xdb, 0xff, 0x27, 0x46, 0x7a, 0xff, 0x23, 0x4b, 0x64, 0xff, 0x1a, 0x40, 0x5a, 0xff, 0x09, 0x2e, 0x46, 0xff, 0x08, 0x2d, 0x46, 0xff, 0x25, 0x3d, 0x8c, 0xff, 0x39, 0x3b, 0xdc, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x34, 0x38, 0xce, 0xff, 0x1c, 0x37, 0x75, 0xff, 0x22, 0x48, 0x63, 0xff, 0x24, 0x4c, 0x66, 0xff, 0x26, 0x4c, 0x67, 0xff, 0x18, 0x3d, 0x58, 0xff, 0x07, 0x2c, 0x45, 0xff, 0x09, 0x2d, 0x47, 0xff, 0x1c, 0x41, 0x5b, 0xff, 0x26, 0x4d, 0x68, 0xff, 0x25, 0x4c, 0x67, 0xff, 0x20, 0x45, 0x60, 0xff, 0x0d, 0x32, 0x4b, 0xff, 0x06, 0x2b, 0x45, 0xff, 0x13, 0x38, 0x52, 0xff, 0x25, 0x4a, 0x66, 0xff, 0x25, 0x4c, 0x68, 0xff, 0x25, 0x4c, 0x67, 0xff, 0x16, 0x3a, 0x54, 0xff, 0x04, 0x2a, 0x44, 0xff, 0x09, 0x30, 0x48, 0xff, 0x1d, 0x44, 0x5c, 0xff, 0x29, 0x47, 0x7d, 0xff, 0x39, 0x3b, 0xdc, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3b, 0x40, 0xe2, 0xff, 0x3c, 0x80, 0xcd, 0xf8, 0x38, 0x88, 0xbb, 0x9e, + 0x38, 0x82, 0xbd, 0x68, 0x3c, 0x67, 0xd5, 0xfb, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x39, 0x39, 0xe2, 0xff, 0x31, 0x41, 0xaf, 0xff, 0x22, 0x48, 0x65, 0xff, 0x21, 0x49, 0x62, 0xff, 0x23, 0x49, 0x64, 0xff, 0x24, 0x4b, 0x66, 0xff, 0x24, 0x4b, 0x66, 0xff, 0x23, 0x4a, 0x64, 0xff, 0x2b, 0x44, 0x92, 0xff, 0x39, 0x3b, 0xdb, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x37, 0x3c, 0xd3, 0xff, 0x29, 0x46, 0x86, 0xff, 0x23, 0x4a, 0x65, 0xff, 0x22, 0x49, 0x64, 0xff, 0x24, 0x4a, 0x65, 0xff, 0x25, 0x4c, 0x66, 0xff, 0x26, 0x4d, 0x66, 0xff, 0x23, 0x4a, 0x64, 0xff, 0x22, 0x49, 0x65, 0xff, 0x23, 0x49, 0x65, 0xff, 0x23, 0x49, 0x64, 0xff, 0x25, 0x4c, 0x65, 0xff, 0x25, 0x4c, 0x66, 0xff, 0x23, 0x4b, 0x65, 0xff, 0x22, 0x4a, 0x65, 0xff, 0x22, 0x4a, 0x64, 0xff, 0x22, 0x4a, 0x63, 0xff, 0x22, 0x4b, 0x64, 0xff, 0x24, 0x4c, 0x65, 0xff, 0x23, 0x4a, 0x64, 0xff, 0x22, 0x48, 0x62, 0xff, 0x21, 0x48, 0x64, 0xff, 0x30, 0x41, 0xad, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3b, 0x66, 0xd5, 0xfa, 0x39, 0x84, 0xbe, 0xa0, + 0x3b, 0x72, 0xc6, 0x79, 0x3a, 0x4c, 0xdd, 0xfe, 0x3a, 0x3a, 0xe2, 0xff, 0x39, 0x39, 0xe3, 0xff, 0x39, 0x3a, 0xdc, 0xff, 0x2a, 0x46, 0x8a, 0xff, 0x21, 0x47, 0x61, 0xff, 0x22, 0x49, 0x63, 0xff, 0x22, 0x48, 0x63, 0xff, 0x21, 0x48, 0x62, 0xff, 0x21, 0x49, 0x64, 0xff, 0x22, 0x4a, 0x64, 0xff, 0x22, 0x4a, 0x64, 0xff, 0x2b, 0x44, 0x91, 0xff, 0x39, 0x3b, 0xda, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x38, 0x3c, 0xd6, 0xff, 0x28, 0x46, 0x86, 0xff, 0x22, 0x4a, 0x64, 0xff, 0x22, 0x4a, 0x64, 0xff, 0x21, 0x4a, 0x64, 0xff, 0x21, 0x4a, 0x64, 0xff, 0x22, 0x4a, 0x64, 0xff, 0x22, 0x4a, 0x64, 0xff, 0x22, 0x4a, 0x64, 0xff, 0x22, 0x4a, 0x64, 0xff, 0x21, 0x4a, 0x64, 0xff, 0x21, 0x4a, 0x64, 0xff, 0x22, 0x4a, 0x64, 0xff, 0x22, 0x4a, 0x64, 0xff, 0x22, 0x4a, 0x64, 0xff, 0x22, 0x4a, 0x64, 0xff, 0x22, 0x49, 0x63, 0xff, 0x21, 0x48, 0x62, 0xff, 0x21, 0x49, 0x63, 0xff, 0x22, 0x48, 0x63, 0xff, 0x21, 0x47, 0x61, 0xff, 0x29, 0x46, 0x86, 0xff, 0x38, 0x39, 0xdd, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3b, 0x4b, 0xde, 0xfd, 0x3a, 0x79, 0xc2, 0xab, + 0x3a, 0x5e, 0xd1, 0x95, 0x3a, 0x40, 0xe0, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x39, 0x39, 0xe2, 0xff, 0x34, 0x3b, 0xc3, 0xff, 0x26, 0x4b, 0x74, 0xff, 0x22, 0x4a, 0x65, 0xff, 0x22, 0x4b, 0x66, 0xff, 0x23, 0x4b, 0x67, 0xff, 0x23, 0x4b, 0x67, 0xff, 0x23, 0x4c, 0x67, 0xff, 0x23, 0x4c, 0x68, 0xff, 0x23, 0x4c, 0x68, 0xff, 0x23, 0x4c, 0x68, 0xff, 0x2c, 0x45, 0x95, 0xff, 0x39, 0x3b, 0xdb, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x38, 0x3c, 0xd7, 0xff, 0x29, 0x47, 0x89, 0xff, 0x23, 0x4c, 0x68, 0xff, 0x23, 0x4d, 0x68, 0xff, 0x23, 0x4d, 0x68, 0xff, 0x23, 0x4c, 0x68, 0xff, 0x23, 0x4c, 0x68, 0xff, 0x23, 0x4c, 0x68, 0xff, 0x23, 0x4c, 0x68, 0xff, 0x23, 0x4d, 0x68, 0xff, 0x23, 0x4d, 0x68, 0xff, 0x23, 0x4d, 0x68, 0xff, 0x23, 0x4c, 0x68, 0xff, 0x23, 0x4c, 0x68, 0xff, 0x23, 0x4c, 0x68, 0xff, 0x23, 0x4b, 0x67, 0xff, 0x23, 0x4b, 0x67, 0xff, 0x23, 0x4c, 0x67, 0xff, 0x22, 0x4a, 0x66, 0xff, 0x22, 0x4a, 0x65, 0xff, 0x25, 0x4b, 0x73, 0xff, 0x33, 0x3a, 0xc0, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3f, 0xe1, 0xfe, 0x3a, 0x68, 0xcb, 0xbc, + 0x3c, 0x51, 0xd6, 0xb4, 0x39, 0x3c, 0xe1, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x39, 0x39, 0xe2, 0xff, 0x2d, 0x34, 0xa2, 0xff, 0x1e, 0x3d, 0x54, 0xff, 0x1d, 0x3a, 0x50, 0xff, 0x1d, 0x3c, 0x51, 0xff, 0x1c, 0x3c, 0x4f, 0xff, 0x1c, 0x3d, 0x52, 0xff, 0x1d, 0x3d, 0x51, 0xff, 0x1d, 0x3c, 0x52, 0xff, 0x1d, 0x3c, 0x52, 0xff, 0x1d, 0x3c, 0x50, 0xff, 0x1d, 0x3c, 0x50, 0xff, 0x28, 0x3b, 0x86, 0xff, 0x39, 0x3a, 0xdb, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x37, 0x3a, 0xd2, 0xff, 0x25, 0x3b, 0x78, 0xff, 0x1d, 0x3c, 0x50, 0xff, 0x1d, 0x3c, 0x50, 0xff, 0x1d, 0x3c, 0x50, 0xff, 0x1d, 0x3c, 0x50, 0xff, 0x1d, 0x3c, 0x50, 0xff, 0x1d, 0x3c, 0x50, 0xff, 0x1d, 0x3c, 0x50, 0xff, 0x1d, 0x3c, 0x50, 0xff, 0x1d, 0x3c, 0x50, 0xff, 0x1d, 0x3c, 0x50, 0xff, 0x1d, 0x3c, 0x52, 0xff, 0x1d, 0x3c, 0x52, 0xff, 0x1c, 0x3d, 0x51, 0xff, 0x1c, 0x3d, 0x52, 0xff, 0x1c, 0x3b, 0x50, 0xff, 0x1d, 0x3c, 0x50, 0xff, 0x1d, 0x3a, 0x50, 0xff, 0x1e, 0x3d, 0x53, 0xff, 0x2b, 0x32, 0x9e, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3c, 0xe1, 0xff, 0x3a, 0x56, 0xd3, 0xcf, + 0x3a, 0x48, 0xda, 0xca, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x2a, 0x3a, 0x93, 0xff, 0x23, 0x4c, 0x69, 0xff, 0x22, 0x4a, 0x66, 0xff, 0x23, 0x4b, 0x66, 0xff, 0x23, 0x4b, 0x66, 0xff, 0x23, 0x4c, 0x67, 0xff, 0x23, 0x4d, 0x67, 0xff, 0x23, 0x4c, 0x67, 0xff, 0x23, 0x4c, 0x67, 0xff, 0x23, 0x4c, 0x67, 0xff, 0x23, 0x4c, 0x67, 0xff, 0x23, 0x4d, 0x67, 0xff, 0x2c, 0x46, 0x95, 0xff, 0x39, 0x3b, 0xdc, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x37, 0x3c, 0xd4, 0xff, 0x29, 0x48, 0x88, 0xff, 0x23, 0x4d, 0x67, 0xff, 0x23, 0x4c, 0x67, 0xff, 0x23, 0x4c, 0x67, 0xff, 0x23, 0x4c, 0x67, 0xff, 0x23, 0x4c, 0x67, 0xff, 0x23, 0x4d, 0x67, 0xff, 0x23, 0x4d, 0x67, 0xff, 0x23, 0x4d, 0x67, 0xff, 0x23, 0x4c, 0x67, 0xff, 0x23, 0x4c, 0x67, 0xff, 0x23, 0x4c, 0x67, 0xff, 0x23, 0x4d, 0x67, 0xff, 0x23, 0x4c, 0x67, 0xff, 0x23, 0x4b, 0x66, 0xff, 0x23, 0x4b, 0x66, 0xff, 0x22, 0x4a, 0x66, 0xff, 0x23, 0x4c, 0x69, 0xff, 0x2a, 0x3a, 0x92, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x39, 0x4e, 0xd9, 0xdc, + 0x3a, 0x42, 0xdd, 0xd7, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3e, 0xe2, 0xff, 0x41, 0x82, 0xe5, 0xff, 0x44, 0xa6, 0xe7, 0xff, 0x44, 0xa6, 0xe7, 0xff, 0x45, 0xa6, 0xe7, 0xff, 0x45, 0xa6, 0xe7, 0xff, 0x45, 0xa6, 0xe7, 0xff, 0x45, 0xa6, 0xe7, 0xff, 0x45, 0xa6, 0xe7, 0xff, 0x45, 0xa6, 0xe7, 0xff, 0x45, 0xa6, 0xe7, 0xff, 0x45, 0xa6, 0xe7, 0xff, 0x45, 0xa6, 0xe7, 0xff, 0x45, 0xa6, 0xe7, 0xff, 0x41, 0x7f, 0xe5, 0xff, 0x3b, 0x40, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3b, 0x47, 0xe3, 0xff, 0x42, 0x89, 0xe5, 0xff, 0x45, 0xa6, 0xe7, 0xff, 0x45, 0xa6, 0xe7, 0xff, 0x45, 0xa6, 0xe7, 0xff, 0x45, 0xa6, 0xe7, 0xff, 0x45, 0xa6, 0xe7, 0xff, 0x45, 0xa6, 0xe7, 0xff, 0x45, 0xa6, 0xe7, 0xff, 0x45, 0xa6, 0xe7, 0xff, 0x45, 0xa6, 0xe7, 0xff, 0x45, 0xa6, 0xe7, 0xff, 0x45, 0xa6, 0xe7, 0xff, 0x45, 0xa6, 0xe7, 0xff, 0x45, 0xa6, 0xe7, 0xff, 0x45, 0xa6, 0xe7, 0xff, 0x44, 0xa6, 0xe7, 0xff, 0x44, 0xa6, 0xe7, 0xff, 0x41, 0x83, 0xe5, 0xff, 0x3a, 0x3e, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x48, 0xdc, 0xe6, + 0x3a, 0x41, 0xdf, 0xe1, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3b, 0x42, 0xe2, 0xff, 0x44, 0x8e, 0xeb, 0xff, 0x47, 0xaa, 0xed, 0xff, 0x47, 0xaa, 0xed, 0xff, 0x46, 0xaa, 0xed, 0xff, 0x46, 0xaa, 0xed, 0xff, 0x46, 0xaa, 0xed, 0xff, 0x46, 0xaa, 0xed, 0xff, 0x46, 0xaa, 0xed, 0xff, 0x46, 0xaa, 0xed, 0xff, 0x46, 0xaa, 0xed, 0xff, 0x46, 0xaa, 0xed, 0xff, 0x46, 0xaa, 0xed, 0xff, 0x46, 0xaa, 0xed, 0xff, 0x46, 0xaa, 0xed, 0xff, 0x42, 0x82, 0xe9, 0xff, 0x3b, 0x41, 0xe3, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3b, 0x46, 0xe3, 0xff, 0x43, 0x8d, 0xea, 0xff, 0x46, 0xaa, 0xed, 0xff, 0x46, 0xaa, 0xed, 0xff, 0x46, 0xaa, 0xed, 0xff, 0x46, 0xaa, 0xed, 0xff, 0x46, 0xaa, 0xed, 0xff, 0x46, 0xaa, 0xed, 0xff, 0x46, 0xaa, 0xed, 0xff, 0x46, 0xaa, 0xed, 0xff, 0x46, 0xaa, 0xed, 0xff, 0x46, 0xaa, 0xed, 0xff, 0x46, 0xaa, 0xed, 0xff, 0x46, 0xaa, 0xed, 0xff, 0x46, 0xaa, 0xed, 0xff, 0x47, 0xaa, 0xed, 0xff, 0x47, 0xaa, 0xed, 0xff, 0x45, 0x91, 0xeb, 0xff, 0x3c, 0x43, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x44, 0xde, 0xec, + 0x3b, 0x3f, 0xdf, 0xe7, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3b, 0x43, 0xe0, 0xff, 0x40, 0x87, 0xdc, 0xff, 0x42, 0xa0, 0xdd, 0xff, 0x42, 0xa0, 0xdd, 0xff, 0x42, 0xa0, 0xdd, 0xff, 0x42, 0xa0, 0xdd, 0xff, 0x42, 0xa0, 0xdd, 0xff, 0x42, 0xa0, 0xdd, 0xff, 0x42, 0xa0, 0xdd, 0xff, 0x42, 0xa0, 0xdd, 0xff, 0x42, 0xa0, 0xdd, 0xff, 0x42, 0xa0, 0xdd, 0xff, 0x42, 0xa0, 0xdd, 0xff, 0x42, 0xa0, 0xdd, 0xff, 0x42, 0xa0, 0xdd, 0xff, 0x42, 0xa0, 0xdd, 0xff, 0x3f, 0x7b, 0xdf, 0xff, 0x3a, 0x40, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3b, 0x44, 0xe2, 0xff, 0x40, 0x84, 0xde, 0xff, 0x42, 0xa0, 0xdd, 0xff, 0x42, 0xa0, 0xdd, 0xff, 0x42, 0xa0, 0xdd, 0xff, 0x42, 0xa0, 0xdd, 0xff, 0x42, 0xa0, 0xdd, 0xff, 0x42, 0xa0, 0xdd, 0xff, 0x42, 0xa0, 0xdd, 0xff, 0x42, 0xa0, 0xdd, 0xff, 0x42, 0xa0, 0xdd, 0xff, 0x42, 0xa0, 0xdd, 0xff, 0x42, 0xa0, 0xdd, 0xff, 0x42, 0xa0, 0xdd, 0xff, 0x42, 0xa0, 0xdd, 0xff, 0x42, 0x9f, 0xdd, 0xff, 0x41, 0x88, 0xdc, 0xff, 0x3b, 0x44, 0xe0, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x42, 0xde, 0xf0, + 0x3a, 0x40, 0xdf, 0xe4, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3b, 0x42, 0xe1, 0xff, 0x41, 0x87, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x40, 0x7b, 0xe0, 0xff, 0x3a, 0x40, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3b, 0x45, 0xe2, 0xff, 0x41, 0x85, 0xe0, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa0, 0xdf, 0xff, 0x41, 0x88, 0xdf, 0xff, 0x3b, 0x43, 0xe1, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x43, 0xde, 0xef, + 0x3a, 0x42, 0xde, 0xdd, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3b, 0x40, 0xe1, 0xff, 0x41, 0x82, 0xdf, 0xff, 0x43, 0xa0, 0xdf, 0xff, 0x43, 0xa0, 0xdf, 0xff, 0x43, 0xa0, 0xdf, 0xff, 0x43, 0xa0, 0xdf, 0xff, 0x43, 0xa0, 0xdf, 0xff, 0x46, 0xa1, 0xdf, 0xff, 0x46, 0xa1, 0xdf, 0xff, 0x46, 0xa1, 0xdf, 0xff, 0x43, 0xa0, 0xdf, 0xff, 0x43, 0xa0, 0xdf, 0xff, 0x43, 0xa0, 0xdf, 0xff, 0x43, 0xa0, 0xdf, 0xff, 0x46, 0xa1, 0xdf, 0xff, 0x46, 0xa1, 0xdf, 0xff, 0x46, 0xa1, 0xdf, 0xff, 0x44, 0xa0, 0xdf, 0xff, 0x40, 0x79, 0xe0, 0xff, 0x3a, 0x3f, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3b, 0x46, 0xe2, 0xff, 0x42, 0x84, 0xe0, 0xff, 0x42, 0xa0, 0xdf, 0xff, 0x45, 0xa0, 0xdf, 0xff, 0x46, 0xa1, 0xdf, 0xff, 0x46, 0xa1, 0xdf, 0xff, 0x46, 0xa1, 0xdf, 0xff, 0x46, 0xa1, 0xdf, 0xff, 0x46, 0xa1, 0xdf, 0xff, 0x45, 0xa0, 0xdf, 0xff, 0x43, 0xa0, 0xdf, 0xff, 0x43, 0xa0, 0xdf, 0xff, 0x43, 0xa0, 0xdf, 0xff, 0x43, 0xa0, 0xdf, 0xff, 0x41, 0x83, 0xdf, 0xff, 0x3b, 0x40, 0xe1, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x45, 0xdc, 0xe9, + 0x3a, 0x45, 0xdb, 0xd0, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3c, 0xe2, 0xff, 0x3f, 0x77, 0xde, 0xff, 0x43, 0xa0, 0xde, 0xff, 0x43, 0xa0, 0xde, 0xff, 0x43, 0xa0, 0xde, 0xff, 0x47, 0xa1, 0xde, 0xff, 0x41, 0x9e, 0xdd, 0xff, 0x2a, 0x95, 0xd9, 0xff, 0x25, 0x92, 0xd9, 0xff, 0x2a, 0x94, 0xda, 0xff, 0x42, 0x9f, 0xdd, 0xff, 0x46, 0xa2, 0xde, 0xff, 0x44, 0xa0, 0xde, 0xff, 0x45, 0xa1, 0xdf, 0xff, 0x2f, 0x96, 0xda, 0xff, 0x27, 0x91, 0xd9, 0xff, 0x26, 0x91, 0xd9, 0xff, 0x3b, 0x9c, 0xdd, 0xff, 0x48, 0xa2, 0xdf, 0xff, 0x40, 0x7b, 0xdf, 0xff, 0x3b, 0x40, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x45, 0xe1, 0xff, 0x47, 0x86, 0xe0, 0xff, 0x34, 0x98, 0xdb, 0xff, 0x25, 0x92, 0xd9, 0xff, 0x2a, 0x94, 0xda, 0xff, 0x2a, 0x94, 0xd9, 0xff, 0x2a, 0x94, 0xd9, 0xff, 0x2b, 0x94, 0xda, 0xff, 0x39, 0x9b, 0xdd, 0xff, 0x46, 0xa2, 0xdf, 0xff, 0x43, 0xa0, 0xde, 0xff, 0x43, 0xa0, 0xde, 0xff, 0x43, 0xa0, 0xde, 0xff, 0x3f, 0x79, 0xde, 0xff, 0x3a, 0x3c, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x4a, 0xda, 0xe2, + 0x39, 0x4b, 0xda, 0xbf, 0x3a, 0x3b, 0xe1, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3e, 0x67, 0xe0, 0xff, 0x43, 0xa0, 0xde, 0xff, 0x43, 0xa0, 0xde, 0xff, 0x43, 0xa0, 0xde, 0xff, 0x44, 0xa0, 0xde, 0xff, 0x36, 0x98, 0xdb, 0xff, 0x44, 0xa1, 0xde, 0xff, 0x51, 0xa7, 0xe1, 0xff, 0x43, 0xa0, 0xdd, 0xff, 0x34, 0x99, 0xdc, 0xff, 0x46, 0xa2, 0xde, 0xff, 0x45, 0xa1, 0xde, 0xff, 0x40, 0x9e, 0xdf, 0xff, 0x44, 0x9f, 0xdf, 0xff, 0x4f, 0xa6, 0xe0, 0xff, 0x4d, 0xa5, 0xe0, 0xff, 0x38, 0x9a, 0xdc, 0xff, 0x42, 0x9f, 0xdd, 0xff, 0x49, 0xa3, 0xdf, 0xff, 0x3a, 0x79, 0xde, 0xff, 0x3a, 0x40, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3b, 0x45, 0xe1, 0xff, 0x3e, 0x83, 0xde, 0xff, 0x4e, 0xa6, 0xdf, 0xff, 0x48, 0xa2, 0xde, 0xff, 0x48, 0xa2, 0xdf, 0xff, 0x4c, 0xa3, 0xdf, 0xff, 0x42, 0xa0, 0xdd, 0xff, 0x20, 0x8f, 0xd8, 0xff, 0x2e, 0x95, 0xda, 0xff, 0x48, 0xa3, 0xdf, 0xff, 0x43, 0xa0, 0xde, 0xff, 0x43, 0xa0, 0xde, 0xff, 0x3e, 0x6a, 0xe0, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x39, 0x3a, 0xe2, 0xff, 0x3b, 0x52, 0xd5, 0xd7, + 0x3a, 0x56, 0xd3, 0xa4, 0x3a, 0x3e, 0xe0, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3c, 0x58, 0xe1, 0xff, 0x43, 0x9c, 0xde, 0xff, 0x43, 0xa0, 0xde, 0xff, 0x44, 0xa0, 0xde, 0xff, 0x2b, 0x94, 0xda, 0xff, 0x5d, 0xad, 0xe3, 0xff, 0xe8, 0xf3, 0xfc, 0xff, 0xfb, 0xfc, 0xfe, 0xff, 0xe9, 0xf4, 0xfb, 0xff, 0x5b, 0xad, 0xe3, 0xff, 0x28, 0x93, 0xda, 0xff, 0x3b, 0x9c, 0xdc, 0xff, 0x37, 0x9a, 0xdd, 0xff, 0xd0, 0xe7, 0xf7, 0xff, 0xf7, 0xfb, 0xfd, 0xff, 0xf7, 0xfb, 0xfe, 0xff, 0x7f, 0xbe, 0xe9, 0xff, 0x1e, 0x8e, 0xd7, 0xff, 0x3d, 0x9d, 0xdd, 0xff, 0x27, 0x91, 0xda, 0xff, 0x8b, 0xa1, 0xed, 0xff, 0x45, 0x45, 0xe4, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x46, 0x4a, 0xe3, 0xff, 0xc8, 0xc9, 0xf6, 0xff, 0xec, 0xf5, 0xfc, 0xff, 0xf4, 0xf9, 0xfd, 0xff, 0xf6, 0xf9, 0xfd, 0xff, 0xed, 0xf6, 0xfc, 0xff, 0xb5, 0xda, 0xf2, 0xff, 0x3c, 0x9b, 0xdc, 0xff, 0x37, 0x99, 0xdb, 0xff, 0x47, 0xa2, 0xdf, 0xff, 0x43, 0x9c, 0xde, 0xff, 0x3d, 0x5a, 0xe2, 0xff, 0x39, 0x39, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3e, 0xe0, 0xff, 0x3a, 0x5f, 0xcf, 0xc6, + 0x3a, 0x68, 0xc9, 0x85, 0x3a, 0x43, 0xde, 0xfe, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x44, 0xe2, 0xff, 0x41, 0x8c, 0xde, 0xff, 0x43, 0x9f, 0xdd, 0xff, 0x42, 0x9f, 0xdd, 0xff, 0x25, 0x90, 0xd8, 0xff, 0x99, 0xca, 0xed, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xa0, 0xcf, 0xed, 0xff, 0x1f, 0x8d, 0xd6, 0xff, 0x33, 0x96, 0xda, 0xff, 0x3a, 0x9a, 0xdb, 0xff, 0xe8, 0xf3, 0xfa, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc7, 0xe3, 0xf5, 0xff, 0x29, 0x93, 0xd9, 0xff, 0x1d, 0x8c, 0xd6, 0xff, 0x4e, 0xa4, 0xe0, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xb6, 0xb6, 0xf4, 0xff, 0x45, 0x45, 0xe4, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x4e, 0x4e, 0xe4, 0xff, 0xca, 0xca, 0xf6, 0xff, 0xe3, 0xf0, 0xfa, 0xff, 0xe4, 0xf1, 0xfa, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xb9, 0xdc, 0xf2, 0xff, 0x28, 0x91, 0xd8, 0xff, 0x40, 0x9e, 0xdd, 0xff, 0x44, 0x8f, 0xdf, 0xff, 0x3b, 0x46, 0xe1, 0xff, 0x39, 0x39, 0xe3, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x42, 0xde, 0xfe, 0x3a, 0x71, 0xc6, 0xb3, + 0x39, 0x7b, 0xc2, 0x70, 0x3a, 0x57, 0xd6, 0xfc, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x39, 0x39, 0xe2, 0xff, 0x3f, 0x73, 0xdf, 0xff, 0x42, 0x9f, 0xdd, 0xff, 0x3d, 0x9c, 0xdc, 0xff, 0x33, 0x96, 0xda, 0xff, 0xc3, 0xe0, 0xf3, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xcf, 0xe6, 0xf7, 0xff, 0xfe, 0xfe, 0xff, 0xff, 0xd2, 0xe8, 0xf7, 0xff, 0x2e, 0x94, 0xd9, 0xff, 0x28, 0x92, 0xd9, 0xff, 0x3b, 0x9b, 0xdc, 0xff, 0xe0, 0xee, 0xf9, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfd, 0xfe, 0xff, 0xff, 0xf9, 0xfc, 0xfd, 0xff, 0x4e, 0xa5, 0xe0, 0xff, 0x02, 0x7d, 0xd2, 0xff, 0x88, 0xc3, 0xe9, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xfd, 0xfe, 0xff, 0xb3, 0xb3, 0xf3, 0xff, 0x3f, 0x41, 0xe3, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x47, 0x4b, 0xe4, 0xff, 0x28, 0x79, 0xda, 0xff, 0x1e, 0x8d, 0xd7, 0xff, 0x8e, 0xc5, 0xeb, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf1, 0xf8, 0xfc, 0xff, 0x38, 0x9a, 0xdc, 0xff, 0x34, 0x97, 0xdb, 0xff, 0x42, 0x77, 0xe0, 0xff, 0x3a, 0x3a, 0xe1, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x55, 0xd7, 0xfc, 0x38, 0x7e, 0xbe, 0xa4, + 0x37, 0x85, 0xb9, 0x66, 0x39, 0x6f, 0xca, 0xfa, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3c, 0x4f, 0xe0, 0xff, 0x44, 0x98, 0xde, 0xff, 0x33, 0x97, 0xda, 0xff, 0x4b, 0xa4, 0xdf, 0xff, 0xf4, 0xf9, 0xfd, 0xff, 0xe8, 0xf3, 0xfb, 0xff, 0x5f, 0xad, 0xe2, 0xff, 0xdc, 0xed, 0xf9, 0xff, 0xf8, 0xfc, 0xfe, 0xff, 0x48, 0xa2, 0xde, 0xff, 0x1b, 0x8b, 0xd7, 0xff, 0x3c, 0x9c, 0xdc, 0xff, 0xe7, 0xf3, 0xfa, 0xff, 0xfa, 0xfc, 0xfd, 0xff, 0xbd, 0xdd, 0xf2, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7b, 0xbb, 0xe7, 0xff, 0x00, 0x7b, 0xd0, 0xff, 0xd0, 0xe8, 0xf7, 0xff, 0xf2, 0xf9, 0xfc, 0xff, 0xb7, 0xdb, 0xf1, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x9a, 0xea, 0xff, 0x37, 0x3e, 0xe1, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x35, 0x42, 0xe0, 0xff, 0x10, 0x6c, 0xd6, 0xff, 0x57, 0xaa, 0xe1, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf2, 0xf8, 0xfc, 0xff, 0x3c, 0x9c, 0xdc, 0xff, 0x33, 0x92, 0xdb, 0xff, 0x3e, 0x53, 0xe0, 0xff, 0x39, 0x39, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x6e, 0xcb, 0xf9, 0x38, 0x84, 0xba, 0x9e, + 0x38, 0x86, 0xb8, 0x65, 0x39, 0x83, 0xc1, 0xf9, 0x3b, 0x4b, 0xde, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe1, 0xff, 0x42, 0x78, 0xdf, 0xff, 0x2b, 0x93, 0xd8, 0xff, 0x6a, 0xb3, 0xe3, 0xff, 0xff, 0xff, 0xff, 0xff, 0xd9, 0xec, 0xf8, 0xff, 0x1d, 0x8e, 0xd6, 0xff, 0xbe, 0xde, 0xf4, 0xff, 0xff, 0xff, 0xff, 0xff, 0x76, 0xba, 0xe6, 0xff, 0x11, 0x86, 0xd4, 0xff, 0x3c, 0x9c, 0xdb, 0xff, 0xeb, 0xf4, 0xfc, 0xff, 0xfa, 0xfd, 0xfe, 0xff, 0x76, 0xb9, 0xe5, 0xff, 0xf3, 0xf9, 0xfd, 0xff, 0xb6, 0xda, 0xf1, 0xff, 0x14, 0x88, 0xd4, 0xff, 0xf1, 0xf8, 0xfd, 0xff, 0xb8, 0xdc, 0xf2, 0xff, 0x87, 0xc3, 0xe9, 0xff, 0xff, 0xff, 0xff, 0xff, 0xa9, 0xd3, 0xef, 0xff, 0x19, 0x67, 0xd7, 0xff, 0x41, 0x43, 0xe3, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x34, 0x41, 0xe0, 0xff, 0x59, 0x90, 0xe2, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf4, 0xf9, 0xfd, 0xff, 0x3d, 0x9c, 0xdc, 0xff, 0x34, 0x75, 0xdc, 0xff, 0x3a, 0x3a, 0xe1, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x39, 0x39, 0xe2, 0xff, 0x3c, 0x4a, 0xde, 0xff, 0x39, 0x82, 0xc1, 0xf7, 0x38, 0x86, 0xba, 0x9e, + 0x38, 0x86, 0xb8, 0x65, 0x39, 0x89, 0xbe, 0xf8, 0x3d, 0x6c, 0xd6, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3b, 0x48, 0xe2, 0xff, 0x28, 0x87, 0xd8, 0xff, 0x9c, 0xcc, 0xed, 0xff, 0xff, 0xff, 0xff, 0xff, 0xaf, 0xd6, 0xf0, 0xff, 0x00, 0x71, 0xcb, 0xff, 0x95, 0xc8, 0xec, 0xff, 0xff, 0xff, 0xff, 0xff, 0xa6, 0xd1, 0xef, 0xff, 0x0d, 0x83, 0xd2, 0xff, 0x38, 0x99, 0xda, 0xff, 0xec, 0xf5, 0xfb, 0xff, 0xff, 0xff, 0xff, 0xff, 0x4a, 0xa3, 0xde, 0xff, 0xbe, 0xdf, 0xf2, 0xff, 0xe7, 0xf3, 0xfb, 0xff, 0x75, 0xb9, 0xe5, 0xff, 0xfa, 0xfc, 0xfe, 0xff, 0x73, 0xb8, 0xe6, 0xff, 0x7d, 0xbd, 0xe8, 0xff, 0xff, 0xff, 0xff, 0xff, 0xa7, 0xd1, 0xee, 0xff, 0x07, 0x81, 0xd1, 0xff, 0x8b, 0xa1, 0xec, 0xff, 0x46, 0x46, 0xe4, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x4a, 0x4d, 0xe4, 0xff, 0xca, 0xca, 0xf7, 0xff, 0xde, 0xee, 0xf9, 0xff, 0x31, 0x8c, 0xd9, 0xff, 0x3a, 0x48, 0xe1, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3d, 0x6b, 0xd6, 0xff, 0x39, 0x89, 0xbe, 0xf6, 0x38, 0x86, 0xba, 0x9e, + 0x38, 0x86, 0xb8, 0x65, 0x39, 0x89, 0xbe, 0xf8, 0x3e, 0x8a, 0xce, 0xff, 0x3b, 0x4e, 0xe0, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x34, 0x5b, 0xde, 0xff, 0xd4, 0xe8, 0xf7, 0xff, 0xff, 0xff, 0xff, 0xff, 0x6d, 0xb4, 0xe4, 0xff, 0x00, 0x66, 0xc8, 0xff, 0x64, 0xae, 0xe2, 0xff, 0xff, 0xff, 0xff, 0xff, 0xda, 0xec, 0xf9, 0xff, 0x21, 0x8c, 0xd6, 0xff, 0x2b, 0x93, 0xd8, 0xff, 0xec, 0xf5, 0xfb, 0xff, 0xff, 0xff, 0xff, 0xff, 0x41, 0x9e, 0xdc, 0xff, 0x70, 0xb5, 0xe4, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf3, 0xfa, 0xfd, 0xff, 0xf8, 0xfb, 0xfe, 0xff, 0x2f, 0x94, 0xd9, 0xff, 0x86, 0xc1, 0xe9, 0xff, 0xff, 0xff, 0xff, 0xff, 0xa6, 0xd1, 0xee, 0xff, 0x07, 0x80, 0xd1, 0xff, 0xb8, 0xdb, 0xf2, 0xff, 0xb7, 0xb7, 0xf4, 0xff, 0x46, 0x46, 0xe4, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x52, 0x53, 0xe6, 0xff, 0x62, 0x96, 0xe3, 0xff, 0x35, 0x62, 0xdd, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x39, 0x39, 0xe2, 0xff, 0x3b, 0x4c, 0xe1, 0xff, 0x3d, 0x89, 0xcf, 0xff, 0x38, 0x89, 0xbe, 0xf6, 0x38, 0x84, 0xb8, 0x9e, + 0x38, 0x86, 0xb8, 0x65, 0x39, 0x89, 0xbe, 0xf8, 0x3e, 0x93, 0xcc, 0xff, 0x3e, 0x76, 0xda, 0xff, 0x39, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3b, 0xe2, 0xff, 0x9f, 0xa2, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe1, 0xef, 0xf9, 0xff, 0xc4, 0xe3, 0xf6, 0xff, 0xdd, 0xee, 0xf9, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0x41, 0x9e, 0xdc, 0xff, 0x1a, 0x89, 0xd4, 0xff, 0xee, 0xf6, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0x4c, 0xa4, 0xdd, 0xff, 0x2e, 0x94, 0xd8, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xd5, 0xe9, 0xf6, 0xff, 0x05, 0x7e, 0xd0, 0xff, 0x9d, 0xcd, 0xed, 0xff, 0xff, 0xff, 0xff, 0xff, 0xa5, 0xd1, 0xee, 0xff, 0x07, 0x80, 0xd1, 0xff, 0xb8, 0xda, 0xf2, 0xff, 0xff, 0xff, 0xff, 0xff, 0x99, 0xa7, 0xef, 0xff, 0x3d, 0x41, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x39, 0x3d, 0xe2, 0xff, 0x3a, 0x3c, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x39, 0x3a, 0xe2, 0xff, 0x3f, 0x74, 0xda, 0xff, 0x3e, 0x93, 0xcc, 0xff, 0x39, 0x89, 0xbe, 0xf6, 0x38, 0x84, 0xb8, 0x9e, + 0x38, 0x86, 0xb8, 0x65, 0x39, 0x88, 0xbd, 0xf8, 0x3d, 0x91, 0xcb, 0xff, 0x40, 0x98, 0xd5, 0xff, 0x3d, 0x60, 0xdf, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x42, 0x42, 0xe3, 0xff, 0xb1, 0xb1, 0xf3, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x6d, 0xb4, 0xe4, 0xff, 0x0f, 0x83, 0xd1, 0xff, 0xec, 0xf6, 0xfb, 0xff, 0xff, 0xff, 0xff, 0xff, 0x65, 0xaf, 0xe2, 0xff, 0x0a, 0x81, 0xd0, 0xff, 0xbc, 0xdd, 0xf3, 0xff, 0xef, 0xf7, 0xfc, 0xff, 0x81, 0xbe, 0xe7, 0xff, 0x00, 0x7a, 0xcd, 0xff, 0xaa, 0xd4, 0xef, 0xff, 0xff, 0xff, 0xff, 0xff, 0xa5, 0xd1, 0xee, 0xff, 0x07, 0x80, 0xcf, 0xff, 0xb8, 0xdb, 0xf2, 0xff, 0xff, 0xff, 0xff, 0xff, 0x9f, 0xcd, 0xec, 0xff, 0x15, 0x62, 0xd4, 0xff, 0x38, 0x40, 0xe1, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3d, 0x5f, 0xdf, 0xff, 0x3f, 0x97, 0xd5, 0xff, 0x3e, 0x91, 0xcb, 0xff, 0x39, 0x88, 0xbd, 0xf6, 0x38, 0x84, 0xb8, 0x9e, + 0x38, 0x86, 0xb8, 0x65, 0x39, 0x88, 0xbd, 0xf8, 0x3d, 0x91, 0xcb, 0xff, 0x3f, 0x9a, 0xd5, 0xff, 0x40, 0x91, 0xdb, 0xff, 0x3b, 0x4d, 0xe1, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe3, 0xff, 0x41, 0x42, 0xe2, 0xff, 0x38, 0x72, 0xdc, 0xff, 0x42, 0x9f, 0xda, 0xff, 0x35, 0x96, 0xd8, 0xff, 0xbc, 0xdc, 0xf3, 0xff, 0xff, 0xff, 0xff, 0xff, 0xa8, 0xd2, 0xee, 0xff, 0x11, 0x85, 0xd1, 0xff, 0xe2, 0xf1, 0xfa, 0xff, 0xff, 0xff, 0xff, 0xff, 0x72, 0xb6, 0xe5, 0xff, 0x1b, 0x8b, 0xd3, 0xff, 0x35, 0x98, 0xd9, 0xff, 0x3a, 0x9a, 0xda, 0xff, 0x2f, 0x93, 0xd7, 0xff, 0x1e, 0x8b, 0xd4, 0xff, 0xaa, 0xd5, 0xef, 0xff, 0xff, 0xff, 0xff, 0xff, 0xa6, 0xd2, 0xee, 0xff, 0x07, 0x80, 0xcf, 0xff, 0xbb, 0xdc, 0xf2, 0xff, 0xff, 0xff, 0xff, 0xff, 0xae, 0xd6, 0xee, 0xff, 0x1f, 0x8c, 0xd4, 0xff, 0x3c, 0x80, 0xdc, 0xff, 0x3a, 0x3d, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3b, 0x4b, 0xe1, 0xff, 0x40, 0x8f, 0xdb, 0xff, 0x3f, 0x9a, 0xd5, 0xff, 0x3d, 0x91, 0xca, 0xff, 0x39, 0x88, 0xbe, 0xf6, 0x38, 0x84, 0xb8, 0x9e, + 0x38, 0x86, 0xb8, 0x65, 0x39, 0x88, 0xbd, 0xf8, 0x3d, 0x92, 0xcb, 0xff, 0x3f, 0x99, 0xd5, 0xff, 0x45, 0x9f, 0xdb, 0xff, 0x30, 0x80, 0xd9, 0xff, 0x39, 0x46, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x39, 0x3b, 0xe2, 0xff, 0x35, 0x63, 0xdc, 0xff, 0x08, 0x73, 0xcf, 0xff, 0x74, 0xb7, 0xe5, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe7, 0xf2, 0xfb, 0xff, 0x2e, 0x93, 0xd7, 0xff, 0xd8, 0xeb, 0xf7, 0xff, 0xff, 0xff, 0xff, 0xff, 0x72, 0xb6, 0xe4, 0xff, 0x22, 0x8d, 0xd4, 0xff, 0x3c, 0x99, 0xda, 0xff, 0x2e, 0x92, 0xd7, 0xff, 0x3b, 0x99, 0xdb, 0xff, 0x1e, 0x8a, 0xd5, 0xff, 0xad, 0xd5, 0xef, 0xff, 0xff, 0xff, 0xff, 0xff, 0xac, 0xd4, 0xef, 0xff, 0x03, 0x7c, 0xce, 0xff, 0xc0, 0xde, 0xf3, 0xff, 0xff, 0xff, 0xff, 0xff, 0xb5, 0xd9, 0xf1, 0xff, 0x20, 0x82, 0xd6, 0xff, 0x3c, 0x6e, 0xdd, 0xff, 0x3b, 0x3e, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3b, 0x46, 0xe2, 0xff, 0x40, 0x87, 0xdc, 0xff, 0x41, 0x9c, 0xda, 0xff, 0x3f, 0x99, 0xd5, 0xff, 0x3d, 0x92, 0xcb, 0xff, 0x39, 0x88, 0xbd, 0xf6, 0x38, 0x84, 0xb8, 0x9e, + 0x35, 0x83, 0xb8, 0x65, 0x39, 0x88, 0xbc, 0xf8, 0x3d, 0x92, 0xca, 0xff, 0x3f, 0x99, 0xd4, 0xff, 0x43, 0x9d, 0xd9, 0xff, 0x37, 0x96, 0xd8, 0xff, 0x3f, 0x84, 0xdb, 0xff, 0x45, 0x4d, 0xe3, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x4d, 0xe1, 0xff, 0x43, 0x7e, 0xdd, 0xff, 0x8a, 0xc1, 0xe8, 0xff, 0x8b, 0xc2, 0xe8, 0xff, 0x42, 0x9e, 0xdb, 0xff, 0x71, 0xb5, 0xe3, 0xff, 0x8d, 0xc3, 0xe8, 0xff, 0x4e, 0xa3, 0xdd, 0xff, 0x36, 0x96, 0xd8, 0xff, 0x47, 0x9f, 0xdb, 0xff, 0x49, 0xa0, 0xdb, 0xff, 0x45, 0x9e, 0xdb, 0xff, 0x33, 0x95, 0xd7, 0xff, 0x61, 0xad, 0xe0, 0xff, 0x91, 0xc5, 0xea, 0xff, 0x65, 0xaf, 0xe1, 0xff, 0x2a, 0x91, 0xd5, 0xff, 0x68, 0xb0, 0xe2, 0xff, 0x90, 0xc3, 0xea, 0xff, 0x57, 0x8b, 0xe1, 0xff, 0x39, 0x4d, 0xe0, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3b, 0x47, 0xe1, 0xff, 0x40, 0x84, 0xdc, 0xff, 0x42, 0x9d, 0xda, 0xff, 0x41, 0x9c, 0xd9, 0xff, 0x3f, 0x99, 0xd4, 0xff, 0x3d, 0x92, 0xca, 0xff, 0x39, 0x88, 0xbc, 0xf6, 0x38, 0x84, 0xb8, 0x9e, + 0x30, 0x83, 0xbd, 0x65, 0x3a, 0x88, 0xbc, 0xf8, 0x3d, 0x91, 0xc9, 0xff, 0x40, 0x99, 0xd4, 0xff, 0x41, 0x9c, 0xd9, 0xff, 0x46, 0x9e, 0xda, 0xff, 0x44, 0x9e, 0xda, 0xff, 0x2d, 0x7c, 0xd8, 0xff, 0x37, 0x4a, 0xdf, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3d, 0xe2, 0xff, 0x35, 0x53, 0xdd, 0xff, 0x30, 0x76, 0xda, 0xff, 0x43, 0x95, 0xdb, 0xff, 0x2e, 0x91, 0xd6, 0xff, 0x25, 0x8e, 0xd5, 0xff, 0x3c, 0x9a, 0xd9, 0xff, 0x47, 0x9f, 0xda, 0xff, 0x42, 0x9d, 0xda, 0xff, 0x42, 0x9d, 0xda, 0xff, 0x43, 0x9d, 0xda, 0xff, 0x47, 0xa0, 0xda, 0xff, 0x35, 0x95, 0xd7, 0xff, 0x25, 0x8d, 0xd5, 0xff, 0x34, 0x95, 0xd7, 0xff, 0x49, 0x99, 0xdc, 0xff, 0x34, 0x78, 0xda, 0xff, 0x34, 0x51, 0xde, 0xff, 0x3a, 0x3d, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3c, 0x4c, 0xe0, 0xff, 0x40, 0x85, 0xdb, 0xff, 0x42, 0x9d, 0xda, 0xff, 0x42, 0x9d, 0xda, 0xff, 0x41, 0x9c, 0xd9, 0xff, 0x40, 0x99, 0xd5, 0xff, 0x3c, 0x91, 0xca, 0xff, 0x38, 0x87, 0xbc, 0xf5, 0x37, 0x84, 0xb8, 0x9d, + 0x51, 0x83, 0xa2, 0x71, 0x34, 0x89, 0xc0, 0xfc, 0x3a, 0x90, 0xca, 0xff, 0x40, 0x99, 0xd3, 0xff, 0x40, 0x9d, 0xd9, 0xff, 0x41, 0x9d, 0xda, 0xff, 0x41, 0x9d, 0xda, 0xff, 0x41, 0x9d, 0xda, 0xff, 0x41, 0x91, 0xdb, 0xff, 0x3c, 0x56, 0xe0, 0xff, 0x3a, 0x3b, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x39, 0x39, 0xe2, 0xff, 0x39, 0x39, 0xe1, 0xff, 0x3c, 0x4d, 0xe0, 0xff, 0x3f, 0x69, 0xdf, 0xff, 0x3f, 0x79, 0xde, 0xff, 0x40, 0x85, 0xdc, 0xff, 0x40, 0x8f, 0xdb, 0xff, 0x41, 0x94, 0xdb, 0xff, 0x40, 0x94, 0xdb, 0xff, 0x41, 0x94, 0xdb, 0xff, 0x40, 0x90, 0xdb, 0xff, 0x40, 0x86, 0xdc, 0xff, 0x3f, 0x79, 0xdd, 0xff, 0x3e, 0x68, 0xde, 0xff, 0x3b, 0x4d, 0xe0, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3b, 0xe2, 0xff, 0x3b, 0x55, 0xe0, 0xff, 0x40, 0x90, 0xdb, 0xff, 0x41, 0x9d, 0xda, 0xff, 0x41, 0x9d, 0xda, 0xff, 0x42, 0x9d, 0xda, 0xff, 0x40, 0x9c, 0xd9, 0xff, 0x3e, 0x98, 0xd4, 0xff, 0x3d, 0x90, 0xc8, 0xff, 0x38, 0x88, 0xbc, 0xfb, 0x35, 0x87, 0xb8, 0xac, + 0x51, 0x7e, 0xa1, 0x4f, 0x36, 0x82, 0xbb, 0xfb, 0x39, 0x92, 0xca, 0xff, 0x41, 0x98, 0xd1, 0xff, 0x40, 0x9b, 0xd8, 0xff, 0x40, 0x9d, 0xda, 0xff, 0x40, 0x9d, 0xda, 0xff, 0x40, 0x9d, 0xda, 0xff, 0x40, 0x9c, 0xda, 0xff, 0x40, 0x98, 0xda, 0xff, 0x3e, 0x71, 0xde, 0xff, 0x3b, 0x48, 0xe1, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x40, 0xe0, 0xff, 0x3a, 0x48, 0xe1, 0xff, 0x3c, 0x50, 0xe1, 0xff, 0x3b, 0x50, 0xdf, 0xff, 0x3c, 0x50, 0xe1, 0xff, 0x3c, 0x4a, 0xe1, 0xff, 0x3a, 0x41, 0xe0, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3b, 0x47, 0xe1, 0xff, 0x3d, 0x70, 0xde, 0xff, 0x40, 0x98, 0xda, 0xff, 0x40, 0x9d, 0xda, 0xff, 0x40, 0x9c, 0xda, 0xff, 0x40, 0x9c, 0xda, 0xff, 0x41, 0x9d, 0xda, 0xff, 0x40, 0x9b, 0xd8, 0xff, 0x3f, 0x98, 0xd2, 0xff, 0x3b, 0x92, 0xc8, 0xff, 0x3b, 0x82, 0xb7, 0xfa, 0x39, 0x81, 0xb5, 0x8e, + 0x49, 0x92, 0xb6, 0x07, 0x3c, 0x7c, 0xb2, 0xc0, 0x3b, 0x89, 0xc0, 0xff, 0x3e, 0x94, 0xce, 0xff, 0x3e, 0x97, 0xd2, 0xff, 0x40, 0x9a, 0xd5, 0xff, 0x43, 0x9b, 0xd5, 0xff, 0x43, 0x9b, 0xd5, 0xff, 0x43, 0x9b, 0xd5, 0xff, 0x43, 0x9b, 0xd5, 0xff, 0x43, 0x9b, 0xd5, 0xff, 0x41, 0x89, 0xd7, 0xff, 0x3e, 0x65, 0xdc, 0xff, 0x3b, 0x48, 0xe0, 0xff, 0x3b, 0x3b, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3c, 0x48, 0xe0, 0xff, 0x3e, 0x64, 0xdc, 0xff, 0x41, 0x88, 0xd7, 0xff, 0x43, 0x9b, 0xd5, 0xff, 0x43, 0x9b, 0xd5, 0xff, 0x43, 0x9b, 0xd5, 0xff, 0x43, 0x9b, 0xd5, 0xff, 0x42, 0x9b, 0xd5, 0xff, 0x40, 0x99, 0xd5, 0xff, 0x3f, 0x96, 0xd2, 0xff, 0x3e, 0x94, 0xce, 0xff, 0x3b, 0x89, 0xc1, 0xff, 0x3a, 0x80, 0xb5, 0xc0, 0x42, 0x73, 0xad, 0x1f, + 0x00, 0x00, 0x00, 0x00, 0x2a, 0xa6, 0xca, 0x2b, 0x3a, 0x82, 0xb9, 0xe4, 0x3b, 0x88, 0xbf, 0xff, 0x3b, 0x91, 0xcb, 0xff, 0x3f, 0x93, 0xcc, 0xff, 0x30, 0x8f, 0xcd, 0xff, 0x2d, 0x8f, 0xcf, 0xff, 0x2f, 0x90, 0xcf, 0xff, 0x2f, 0x90, 0xcf, 0xff, 0x2f, 0x8f, 0xcf, 0xff, 0x2f, 0x8e, 0xcf, 0xff, 0x2b, 0x8e, 0xd0, 0xff, 0x34, 0x84, 0xd2, 0xff, 0x3f, 0x6c, 0xd5, 0xff, 0x3b, 0x52, 0xdc, 0xff, 0x3a, 0x3c, 0xe1, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3c, 0xe2, 0xff, 0x3c, 0x53, 0xdd, 0xff, 0x3e, 0x6c, 0xd5, 0xff, 0x33, 0x82, 0xd1, 0xff, 0x2c, 0x8f, 0xcf, 0xff, 0x2f, 0x90, 0xcf, 0xff, 0x2f, 0x8f, 0xcf, 0xff, 0x2f, 0x8f, 0xcf, 0xff, 0x2f, 0x8f, 0xcf, 0xff, 0x2c, 0x8f, 0xd0, 0xff, 0x31, 0x8f, 0xcf, 0xff, 0x40, 0x92, 0xcb, 0xff, 0x3b, 0x91, 0xcb, 0xff, 0x3b, 0x88, 0xbf, 0xff, 0x3a, 0x82, 0xb9, 0xe4, 0x2a, 0xac, 0xd0, 0x2b, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x32, 0x9b, 0xc7, 0x29, 0x3d, 0x7c, 0xb6, 0x92, 0x3e, 0x88, 0xbc, 0xc5, 0x30, 0x87, 0xc0, 0xc5, 0x32, 0x88, 0xc0, 0x9f, 0x3c, 0x8b, 0xc1, 0x7f, 0x37, 0x8b, 0xc0, 0x86, 0x39, 0x8a, 0xc1, 0x87, 0x39, 0x8b, 0xc0, 0x86, 0x39, 0x8b, 0xc0, 0x86, 0x3e, 0x8b, 0xbf, 0x7f, 0x2c, 0x86, 0xc4, 0x98, 0x2c, 0x85, 0xc4, 0xc1, 0x3d, 0x83, 0xc2, 0xc3, 0x3a, 0x76, 0xc8, 0xcb, 0x3a, 0x66, 0xd0, 0xd7, 0x3c, 0x56, 0xd5, 0xe3, 0x3b, 0x4e, 0xda, 0xec, 0x3a, 0x47, 0xdc, 0xf2, 0x3a, 0x43, 0xde, 0xf5, 0x3a, 0x42, 0xdf, 0xf7, 0x3a, 0x43, 0xde, 0xf5, 0x3a, 0x47, 0xdc, 0xf2, 0x3a, 0x4d, 0xda, 0xeb, 0x3a, 0x56, 0xd7, 0xe3, 0x3a, 0x65, 0xd0, 0xd7, 0x3a, 0x74, 0xc8, 0xcb, 0x3d, 0x83, 0xc2, 0xc3, 0x2a, 0x86, 0xc2, 0xc0, 0x29, 0x86, 0xc2, 0x9a, 0x3e, 0x8d, 0xc1, 0x7f, 0x39, 0x8b, 0xc0, 0x86, 0x39, 0x8b, 0xc0, 0x86, 0x39, 0x8a, 0xc1, 0x87, 0x39, 0x8a, 0xc1, 0x87, 0x3c, 0x8b, 0xc1, 0x7f, 0x32, 0x88, 0xc3, 0x9e, 0x2f, 0x87, 0xc2, 0xc5, 0x3e, 0x89, 0xba, 0xc5, 0x3d, 0x7c, 0xb4, 0x92, 0x32, 0x95, 0xc7, 0x29, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x80, 0xbf, 0x08, 0x00, 0x80, 0xbf, 0x04, 0xb8, 0xb2, 0xac, 0x2b, 0xc9, 0xb3, 0xa7, 0x5a, 0xb9, 0xae, 0xa8, 0x4c, 0xbb, 0xb1, 0xa7, 0x4b, 0xbc, 0xae, 0xa8, 0x4c, 0xbc, 0xb2, 0xab, 0x4c, 0xca, 0xb3, 0xa4, 0x57, 0xa8, 0xa4, 0x9f, 0x35, 0x00, 0x80, 0xd5, 0x06, 0x2a, 0x80, 0xd5, 0x06, 0x33, 0x99, 0xcc, 0x05, 0x33, 0x99, 0xcc, 0x05, 0x33, 0x99, 0xcc, 0x05, 0x33, 0x99, 0xcc, 0x05, 0x33, 0x99, 0xcc, 0x05, 0x33, 0x99, 0xcc, 0x05, 0x33, 0x99, 0xcc, 0x05, 0x33, 0x99, 0xcc, 0x05, 0x33, 0x99, 0xcc, 0x05, 0x33, 0x99, 0xcc, 0x05, 0x33, 0x99, 0xcc, 0x05, 0x33, 0x99, 0xcc, 0x05, 0x33, 0x99, 0xcc, 0x05, 0x2a, 0x80, 0xaa, 0x06, 0x00, 0x66, 0xcc, 0x05, 0xba, 0xb1, 0xac, 0x34, 0xca, 0xb3, 0xa7, 0x57, 0xb9, 0xae, 0xa8, 0x4c, 0xbc, 0xae, 0xa8, 0x4c, 0xbb, 0xb1, 0xa7, 0x4b, 0xbc, 0xb2, 0xab, 0x4c, 0xc6, 0xb3, 0xa4, 0x5a, 0xb2, 0xa6, 0xa6, 0x2b, 0x00, 0x80, 0xbf, 0x04, 0x40, 0x80, 0xbf, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xcd, 0xb6, 0xaa, 0x90, 0xc3, 0xb4, 0xac, 0xff, 0xc4, 0xb6, 0xac, 0xff, 0xc3, 0xb5, 0xab, 0xff, 0xc3, 0xb5, 0xab, 0xff, 0xc6, 0xb8, 0xaf, 0xff, 0xc0, 0xb4, 0xad, 0xff, 0xbe, 0xa1, 0x8d, 0xb8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd9, 0xb9, 0xa6, 0xb5, 0xc1, 0xb4, 0xac, 0xff, 0xc4, 0xb6, 0xab, 0xff, 0xc3, 0xb5, 0xab, 0xff, 0xc3, 0xb5, 0xab, 0xff, 0xc8, 0xb9, 0xb0, 0xff, 0xc0, 0xb1, 0xa8, 0xff, 0xb6, 0xa1, 0x93, 0x92, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa8, 0xa3, 0xa3, 0x2f, 0xa0, 0xa2, 0xa3, 0xcb, 0xa5, 0xa5, 0xa6, 0xee, 0xa4, 0xa4, 0xa5, 0xdd, 0xa5, 0xa3, 0xa6, 0xdc, 0xa7, 0xa6, 0xa7, 0xec, 0x9b, 0x9b, 0x9d, 0xd2, 0x93, 0x8f, 0x8b, 0x42, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xad, 0xa9, 0xa5, 0x41, 0xa1, 0xa1, 0xa3, 0xd3, 0xa5, 0xa5, 0xa5, 0xec, 0xa3, 0xa3, 0xa5, 0xdc, 0xa5, 0xa5, 0xa6, 0xdd, 0xa6, 0xa6, 0xa6, 0xee, 0x9a, 0x9a, 0x9c, 0xc9, 0x96, 0x90, 0x90, 0x2e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +#endif +}; + +const lv_img_dsc_t img_amp_disabled = { + .header.cf = LV_IMG_CF_TRUE_COLOR_ALPHA, + .header.always_zero = 0, + .header.reserved = 0, + .header.w = 45, + .header.h = 53, + .data_size = 2385 * LV_IMG_PX_SIZE_ALPHA_BYTE, + .data = img_amp_disabled_map, +}; diff --git a/source/main/ui_generated_480x320land/ui_image_cab_disabled.c b/source/main/ui_generated_480x320land/ui_image_cab_disabled.c new file mode 100644 index 00000000..3a81fe79 --- /dev/null +++ b/source/main/ui_generated_480x320land/ui_image_cab_disabled.c @@ -0,0 +1,265 @@ +#ifdef __has_include + #if __has_include("lvgl.h") + #ifndef LV_LVGL_H_INCLUDE_SIMPLE + #define LV_LVGL_H_INCLUDE_SIMPLE + #endif + #endif +#endif +#ifdef __has_include + #if __has_include("lvgl.h") + #ifndef LV_LVGL_H_INCLUDE_SIMPLE + #define LV_LVGL_H_INCLUDE_SIMPLE + #endif + #endif +#endif + +#if defined(LV_LVGL_H_INCLUDE_SIMPLE) + #include "lvgl.h" +#else + #include "lvgl/lvgl.h" +#endif + + +#ifndef LV_ATTRIBUTE_MEM_ALIGN +#define LV_ATTRIBUTE_MEM_ALIGN +#endif + +#ifndef LV_ATTRIBUTE_IMG_IMG_CAB_DISABLED +#define LV_ATTRIBUTE_IMG_IMG_CAB_DISABLED +#endif + +const LV_ATTRIBUTE_MEM_ALIGN LV_ATTRIBUTE_LARGE_CONST LV_ATTRIBUTE_IMG_IMG_CAB_DISABLED uint8_t img_cab_disabled_map[] = { +#if LV_COLOR_DEPTH == 1 || LV_COLOR_DEPTH == 8 + /*Pixel format: Alpha 8 bit, Red: 3 bit, Green: 3 bit, Blue: 2 bit*/ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf1, 0x5e, 0xf1, 0xd7, 0xf1, 0xff, 0xf1, 0xff, 0xf1, 0xfd, 0xf1, 0xfe, 0xf1, 0xfe, 0xf1, 0xfe, 0xf1, 0xfe, 0xf1, 0xfe, 0xf1, 0xfe, 0xf1, 0xfe, 0xf1, 0xfe, 0xf1, 0xfe, 0xf1, 0xfe, 0xf1, 0xfe, 0xf1, 0xfe, 0xf1, 0xfe, 0xf1, 0xfd, 0xf1, 0xff, 0xf1, 0xff, 0xf1, 0xd7, 0xf1, 0x5c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf1, 0x6e, 0xf1, 0xff, 0xf1, 0xe4, 0xf1, 0xa0, 0xf1, 0xa6, 0xf1, 0xab, 0xf1, 0xaa, 0xf1, 0xaa, 0xf1, 0xaa, 0xf1, 0xaa, 0xf1, 0xaa, 0xf1, 0xaa, 0xf1, 0xaa, 0xf1, 0xaa, 0xf1, 0xaa, 0xf1, 0xaa, 0xf1, 0xaa, 0xf1, 0xaa, 0xf1, 0xaa, 0xf1, 0xab, 0xf1, 0xa5, 0xf1, 0xa0, 0xf1, 0xe4, 0xf1, 0xff, 0xf1, 0x6d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf1, 0x26, 0xf1, 0xff, 0xf1, 0xc5, 0xf1, 0x16, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf1, 0x16, 0xf1, 0xc5, 0xf1, 0xff, 0xf1, 0x26, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf1, 0x5a, 0xf5, 0xff, 0xf5, 0x43, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf5, 0x43, 0xf5, 0xff, 0xf1, 0x5a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xd0, 0x04, 0xd0, 0x3d, 0xd0, 0x43, 0xd0, 0x3b, 0xd0, 0x3c, 0xd0, 0x3b, 0xd0, 0x32, 0xf0, 0x8f, 0xf5, 0xff, 0xd0, 0x65, 0xd0, 0x31, 0xd0, 0x3c, 0xd0, 0x3c, 0xd0, 0x3c, 0xd0, 0x3c, 0xd0, 0x3c, 0xd0, 0x3c, 0xd0, 0x3c, 0xd0, 0x3c, 0xd0, 0x3c, 0xd0, 0x3c, 0xd0, 0x3c, 0xd0, 0x3c, 0xd0, 0x3c, 0xd0, 0x3c, 0xd0, 0x3c, 0xd0, 0x3c, 0xd0, 0x3c, 0xd0, 0x3c, 0xd0, 0x3c, 0xd0, 0x31, 0xd0, 0x65, 0xf5, 0xff, 0xf0, 0x8f, 0xd0, 0x32, 0xd0, 0x3b, 0xd0, 0x3c, 0xd0, 0x3c, 0xd0, 0x42, 0xd0, 0x3d, 0xd0, 0x04, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xd1, 0x1e, 0xd0, 0xc0, 0xf0, 0xf7, 0xf0, 0xfa, 0xf0, 0xf6, 0xd1, 0xf7, 0xf0, 0xf7, 0xf0, 0xf0, 0xf0, 0xf9, 0xf0, 0xff, 0xf0, 0xf6, 0xf0, 0xef, 0xf0, 0xf7, 0xf0, 0xf7, 0xf0, 0xf7, 0xf0, 0xf7, 0xf0, 0xf7, 0xf0, 0xf7, 0xf0, 0xf7, 0xf0, 0xf7, 0xf0, 0xf7, 0xf0, 0xf7, 0xf0, 0xf7, 0xf0, 0xf7, 0xf0, 0xf7, 0xf0, 0xf7, 0xf0, 0xf7, 0xf0, 0xf7, 0xf0, 0xf7, 0xf0, 0xf7, 0xf0, 0xf7, 0xf0, 0xef, 0xf0, 0xf6, 0xf0, 0xff, 0xf0, 0xf9, 0xf0, 0xf0, 0xf0, 0xf7, 0xd1, 0xf7, 0xf0, 0xf7, 0xf0, 0xfa, 0xf0, 0xf7, 0xd0, 0xc0, 0xd1, 0x1e, 0x00, 0x00, + 0xd1, 0x15, 0xd0, 0xb6, 0xf0, 0xff, 0xd0, 0xff, 0x6d, 0xff, 0xad, 0xff, 0xf0, 0xff, 0xad, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0xad, 0xff, 0xf0, 0xff, 0xad, 0xff, 0x6d, 0xff, 0xf0, 0xff, 0xf0, 0xff, 0xd0, 0xb6, 0xd0, 0x14, + 0xd0, 0x95, 0xf0, 0xfc, 0xd0, 0xfb, 0x29, 0xf1, 0x05, 0xfb, 0x69, 0xff, 0xf4, 0xff, 0x49, 0xff, 0x05, 0xff, 0x25, 0xff, 0x25, 0xff, 0x25, 0xff, 0x25, 0xff, 0x25, 0xff, 0x25, 0xff, 0x45, 0xff, 0x69, 0xff, 0x89, 0xff, 0xa9, 0xff, 0xc9, 0xff, 0xc9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xc9, 0xff, 0xc9, 0xff, 0xa9, 0xff, 0x89, 0xff, 0x69, 0xff, 0x45, 0xff, 0x25, 0xff, 0x25, 0xff, 0x25, 0xff, 0x25, 0xff, 0x25, 0xff, 0x25, 0xff, 0x25, 0xff, 0x05, 0xff, 0x49, 0xff, 0xf4, 0xff, 0x69, 0xff, 0x05, 0xfb, 0x29, 0xf2, 0xd1, 0xfc, 0xf0, 0xfd, 0xd0, 0x94, + 0xd0, 0xaa, 0xf0, 0xfc, 0x69, 0xf9, 0x05, 0xfb, 0x05, 0xff, 0x6d, 0xff, 0xf4, 0xff, 0x8d, 0xff, 0x69, 0xff, 0x8d, 0xff, 0x6d, 0xff, 0x6d, 0xff, 0x8d, 0xff, 0xa9, 0xff, 0xc9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xc9, 0xff, 0xa9, 0xff, 0x8d, 0xff, 0x6d, 0xff, 0x6d, 0xff, 0x6d, 0xff, 0x8d, 0xff, 0x69, 0xff, 0x8d, 0xff, 0xf4, 0xff, 0x6d, 0xff, 0x05, 0xff, 0x05, 0xfc, 0x69, 0xfa, 0xf4, 0xfc, 0xd0, 0xaa, + 0xd0, 0x9e, 0xf0, 0xf6, 0xad, 0xff, 0x6d, 0xff, 0x6d, 0xff, 0xd1, 0xff, 0xf0, 0xff, 0xad, 0xff, 0xad, 0xff, 0xad, 0xff, 0xad, 0xff, 0xcd, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xcd, 0xff, 0xad, 0xff, 0xad, 0xff, 0xad, 0xff, 0xad, 0xff, 0xad, 0xff, 0xf0, 0xff, 0xd1, 0xff, 0x6d, 0xff, 0x8d, 0xff, 0xad, 0xff, 0xf0, 0xf6, 0xd0, 0x9e, + 0xd0, 0x9e, 0xd1, 0xf6, 0xf0, 0xff, 0xf4, 0xff, 0xf0, 0xff, 0xf0, 0xff, 0x8d, 0xff, 0x29, 0xff, 0x49, 0xff, 0x69, 0xff, 0xc9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xc9, 0xff, 0xc9, 0xff, 0xa9, 0xff, 0xa9, 0xff, 0xc9, 0xff, 0xc9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xc9, 0xff, 0x69, 0xff, 0x49, 0xff, 0x49, 0xff, 0x29, 0xff, 0x8d, 0xff, 0xf0, 0xff, 0xf0, 0xff, 0xf4, 0xff, 0xf0, 0xff, 0xd1, 0xf6, 0xd0, 0x9e, + 0xd0, 0x9e, 0xf0, 0xf6, 0x8d, 0xff, 0x49, 0xff, 0x8d, 0xff, 0xad, 0xff, 0x25, 0xff, 0x49, 0xff, 0xa9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xa9, 0xff, 0x89, 0xff, 0x69, 0xff, 0x69, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x69, 0xff, 0x69, 0xff, 0x89, 0xff, 0xa9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0x89, 0xff, 0x49, 0xff, 0x49, 0xff, 0x25, 0xff, 0xad, 0xff, 0x8d, 0xff, 0x49, 0xff, 0x8d, 0xff, 0xf0, 0xf6, 0xd0, 0x9e, + 0xd0, 0x9e, 0xf0, 0xf6, 0x69, 0xff, 0x05, 0xff, 0x69, 0xff, 0xad, 0xff, 0x49, 0xff, 0xa9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xc9, 0xff, 0x89, 0xff, 0x69, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x69, 0xff, 0x89, 0xff, 0xc9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xa9, 0xff, 0x49, 0xff, 0x29, 0xff, 0xad, 0xff, 0x69, 0xff, 0x05, 0xff, 0x69, 0xff, 0xf0, 0xf6, 0xd0, 0x9e, + 0xd0, 0x9e, 0xf0, 0xf6, 0x8d, 0xff, 0x05, 0xff, 0x8d, 0xff, 0xad, 0xff, 0xa9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xc9, 0xff, 0x89, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x69, 0xff, 0xa9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xa9, 0xff, 0x49, 0xff, 0xad, 0xff, 0x8d, 0xff, 0x05, 0xff, 0x8d, 0xff, 0xf0, 0xf6, 0xd0, 0x9e, + 0xd0, 0x9e, 0xf0, 0xf6, 0x8d, 0xff, 0x05, 0xff, 0x8d, 0xff, 0xc9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xc9, 0xff, 0x69, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x69, 0xff, 0xc9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xa9, 0xff, 0xad, 0xff, 0x8d, 0xff, 0x05, 0xff, 0x8d, 0xff, 0xf0, 0xf6, 0xd0, 0x9e, + 0xd0, 0x9e, 0xf0, 0xf6, 0x8d, 0xff, 0x05, 0xff, 0xa9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0x89, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x69, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x69, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x69, 0xff, 0xc9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xcd, 0xff, 0x8d, 0xff, 0x05, 0xff, 0x8d, 0xff, 0xf0, 0xf6, 0xd0, 0x9e, + 0xd0, 0x9e, 0xf0, 0xf6, 0x8d, 0xff, 0x45, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0x89, 0xff, 0x49, 0xff, 0x49, 0xff, 0x69, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x69, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x69, 0xff, 0xc9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0x8d, 0xff, 0x05, 0xff, 0x8d, 0xff, 0xf0, 0xf6, 0xd0, 0x9e, + 0xd0, 0x9e, 0xf0, 0xf6, 0x8d, 0xff, 0xc9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xc9, 0xff, 0xc9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0x89, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x69, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x69, 0xff, 0xc9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xc9, 0xff, 0x25, 0xff, 0x8d, 0xff, 0xf0, 0xf6, 0xd0, 0x9e, + 0xd0, 0x9e, 0xf0, 0xf6, 0xa9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xc9, 0xff, 0x69, 0xff, 0x69, 0xff, 0xc9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xa9, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8c, 0xff, 0x69, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x69, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0x69, 0xff, 0x8d, 0xff, 0xf0, 0xf6, 0xd0, 0x9e, + 0xd0, 0x9e, 0xf0, 0xf7, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0x89, 0xff, 0x49, 0xff, 0x49, 0xff, 0x69, 0xff, 0xc9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xa9, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8c, 0xff, 0x69, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0xa9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xc9, 0xff, 0x8d, 0xff, 0xf0, 0xf6, 0xd0, 0x9e, + 0xd0, 0x9e, 0xed, 0xfa, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x69, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xa9, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x69, 0xff, 0x49, 0xff, 0x49, 0xff, 0x69, 0xff, 0xc9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xa9, 0xff, 0xf0, 0xf6, 0xd0, 0x9e, + 0xd0, 0xa3, 0xed, 0xfc, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xcd, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x89, 0xff, 0x88, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xa9, 0xff, 0x8d, 0xff, 0x69, 0xff, 0x49, 0xff, 0x25, 0xff, 0x25, 0xff, 0x49, 0xff, 0x49, 0xff, 0x69, 0xff, 0x8d, 0xff, 0x88, 0xff, 0x68, 0xff, 0x68, 0xff, 0x68, 0xff, 0x68, 0xff, 0x68, 0xff, 0x8c, 0xff, 0x8d, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x89, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xc9, 0xff, 0xf0, 0xf6, 0xd0, 0x9e, + 0xcd, 0xb3, 0xe9, 0xfe, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xad, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x69, 0xff, 0x64, 0xff, 0x68, 0xff, 0x88, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0x89, 0xff, 0x49, 0xff, 0x25, 0xff, 0x49, 0xff, 0x49, 0xff, 0x25, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x69, 0xff, 0x68, 0xff, 0x68, 0xff, 0x68, 0xff, 0x68, 0xff, 0x68, 0xff, 0x64, 0xff, 0x88, 0xff, 0x6d, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xf0, 0xf7, 0xd0, 0x9e, + 0xed, 0xc6, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xa9, 0xff, 0xad, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x68, 0xff, 0xd6, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfb, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0x85, 0xff, 0xb7, 0xff, 0xff, 0xff, 0xff, 0xff, 0x92, 0xff, 0x25, 0xff, 0x49, 0xff, 0x29, 0xff, 0x92, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xd6, 0xff, 0x68, 0xff, 0x68, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0xc9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xed, 0xf9, 0xd0, 0x9e, + 0xe9, 0xd8, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xa9, 0xff, 0xad, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0xd6, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xed, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xf7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0xb7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xdb, 0xff, 0x68, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0xcd, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xed, 0xfb, 0xd0, 0x9e, + 0xe9, 0xe7, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0x8d, 0xff, 0xad, 0xff, 0x49, 0xff, 0x49, 0xff, 0x6d, 0xff, 0xff, 0xff, 0xff, 0xff, 0xd6, 0xff, 0x89, 0xff, 0x8d, 0xff, 0xfb, 0xff, 0xff, 0xff, 0xed, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xf7, 0xff, 0xff, 0xff, 0xff, 0xff, 0x6d, 0xff, 0x25, 0xff, 0x49, 0xff, 0xb6, 0xff, 0xff, 0xff, 0xdb, 0xff, 0x69, 0xff, 0x68, 0xff, 0xb6, 0xff, 0xff, 0xff, 0xff, 0xff, 0x8d, 0xff, 0x68, 0xff, 0x49, 0xff, 0x49, 0xff, 0xcd, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xed, 0xfc, 0xd0, 0x9e, + 0xe9, 0xf0, 0xe9, 0xff, 0xe9, 0xff, 0xc9, 0xff, 0x8d, 0xff, 0xad, 0xff, 0x49, 0xff, 0x49, 0xff, 0x8d, 0xff, 0xff, 0xff, 0xff, 0xff, 0x8d, 0xff, 0x44, 0xff, 0x44, 0xff, 0xb6, 0xff, 0xff, 0xff, 0xfb, 0xff, 0xc9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xd2, 0xff, 0xff, 0xff, 0x92, 0xff, 0x24, 0xff, 0x49, 0xff, 0xb7, 0xff, 0xff, 0xff, 0xb7, 0xff, 0x20, 0xff, 0x40, 0xff, 0x69, 0xff, 0xff, 0xff, 0xff, 0xff, 0x8d, 0xff, 0x68, 0xff, 0x49, 0xff, 0x49, 0xff, 0xcd, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xfd, 0xd0, 0x9e, + 0xe9, 0xf7, 0xe9, 0xff, 0xe9, 0xff, 0xa9, 0xff, 0x8d, 0xff, 0xad, 0xff, 0x49, 0xff, 0x49, 0xff, 0x8d, 0xff, 0xff, 0xff, 0xff, 0xff, 0x91, 0xff, 0x68, 0xff, 0x8c, 0xff, 0x8d, 0xff, 0x92, 0xff, 0x6e, 0xff, 0x69, 0xff, 0xc9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xfb, 0xff, 0xdb, 0xff, 0x24, 0xff, 0x25, 0xff, 0xb7, 0xff, 0xff, 0xff, 0xdb, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0xd6, 0xff, 0xff, 0xff, 0xff, 0xff, 0x88, 0xff, 0x68, 0xff, 0x49, 0xff, 0x29, 0xff, 0xad, 0xff, 0xc9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xfe, 0xd0, 0x9e, + 0xe9, 0xfb, 0xe9, 0xff, 0xe9, 0xff, 0xa9, 0xff, 0x8d, 0xff, 0xad, 0xff, 0x49, 0xff, 0x49, 0xff, 0x8d, 0xff, 0xff, 0xff, 0xff, 0xff, 0x91, 0xff, 0x68, 0xff, 0x8d, 0xff, 0x69, 0xff, 0x25, 0xff, 0x49, 0xff, 0x49, 0xff, 0x89, 0xff, 0xed, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xf7, 0xff, 0x49, 0xff, 0x24, 0xff, 0xb7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x8d, 0xff, 0x64, 0xff, 0x8d, 0xff, 0x49, 0xff, 0x29, 0xff, 0xad, 0xff, 0xc9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xfe, 0xd0, 0x9e, + 0xe9, 0xfa, 0xe9, 0xff, 0xe9, 0xff, 0xa9, 0xff, 0x8d, 0xff, 0xad, 0xff, 0x49, 0xff, 0x49, 0xff, 0x8d, 0xff, 0xff, 0xff, 0xff, 0xff, 0x91, 0xff, 0x68, 0xff, 0x8d, 0xff, 0x49, 0xff, 0x25, 0xff, 0x25, 0xff, 0x25, 0xff, 0x92, 0xff, 0xff, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xad, 0xff, 0x00, 0xff, 0xb7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xdb, 0xff, 0xda, 0xff, 0xff, 0xff, 0xff, 0xff, 0xdb, 0xff, 0x88, 0xff, 0x68, 0xff, 0x49, 0xff, 0x29, 0xff, 0xad, 0xff, 0xc9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xfe, 0xd0, 0x9e, + 0xe9, 0xf6, 0xe9, 0xff, 0xe9, 0xff, 0xa9, 0xff, 0x8d, 0xff, 0xad, 0xff, 0x49, 0xff, 0x49, 0xff, 0x8d, 0xff, 0xff, 0xff, 0xff, 0xff, 0x8d, 0xff, 0x68, 0xff, 0x68, 0xff, 0x8d, 0xff, 0xdb, 0xff, 0xb2, 0xff, 0x25, 0xff, 0xb7, 0xff, 0xff, 0xff, 0xfb, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0x64, 0xff, 0xb6, 0xff, 0xff, 0xff, 0xb7, 0xff, 0x20, 0xff, 0x44, 0xff, 0x68, 0xff, 0xff, 0xff, 0xff, 0xff, 0xb1, 0xff, 0x68, 0xff, 0x49, 0xff, 0x29, 0xff, 0xad, 0xff, 0xc9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xfe, 0xd0, 0x9e, + 0xe9, 0xef, 0xe9, 0xff, 0xe9, 0xff, 0xc9, 0xff, 0x8d, 0xff, 0xad, 0xff, 0x49, 0xff, 0x29, 0xff, 0x8d, 0xff, 0xff, 0xff, 0xff, 0xff, 0x8d, 0xff, 0x40, 0xff, 0x40, 0xff, 0xb6, 0xff, 0xff, 0xff, 0xff, 0xff, 0x49, 0xff, 0xdb, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xed, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xce, 0xff, 0xff, 0xff, 0xb7, 0xff, 0x20, 0xff, 0x40, 0xff, 0x64, 0xff, 0xff, 0xff, 0xff, 0xff, 0xb1, 0xff, 0x68, 0xff, 0x49, 0xff, 0x49, 0xff, 0xcd, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xfd, 0xd0, 0x9e, + 0xe9, 0xe6, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0x8d, 0xff, 0xad, 0xff, 0x49, 0xff, 0x49, 0xff, 0x69, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfb, 0xff, 0xb1, 0xff, 0xb2, 0xff, 0xff, 0xff, 0xff, 0xff, 0xdb, 0xff, 0x49, 0xff, 0xff, 0xff, 0xff, 0xff, 0x92, 0xff, 0x6d, 0xff, 0x89, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xfb, 0xff, 0xff, 0xff, 0xb1, 0xff, 0x8d, 0xff, 0xd6, 0xff, 0xff, 0xff, 0xff, 0xff, 0x8d, 0xff, 0x48, 0xff, 0x49, 0xff, 0x49, 0xff, 0xcd, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xed, 0xfc, 0xd0, 0x9e, + 0xe9, 0xd8, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xa9, 0xff, 0xad, 0xff, 0x49, 0xff, 0x49, 0xff, 0x44, 0xff, 0xb2, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x49, 0xff, 0x72, 0xff, 0xff, 0xff, 0xff, 0xff, 0x24, 0xff, 0x20, 0xff, 0x00, 0xff, 0x65, 0xff, 0xed, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xfb, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xd6, 0xff, 0x68, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0xcd, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xed, 0xfb, 0xd0, 0x9e, + 0xed, 0xc4, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xc9, 0xff, 0xad, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x68, 0xff, 0xb1, 0xff, 0xd6, 0xff, 0xd6, 0xff, 0xd6, 0xff, 0xd6, 0xff, 0x8d, 0xff, 0x44, 0xff, 0x92, 0xff, 0xbb, 0xff, 0x92, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0xb2, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xd2, 0xff, 0xd6, 0xff, 0xda, 0xff, 0xb2, 0xff, 0x68, 0xff, 0x68, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0xc9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xed, 0xf9, 0xd0, 0x9e, + 0xcd, 0xb2, 0xe9, 0xfe, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xad, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x69, 0xff, 0x68, 0xff, 0x68, 0xff, 0x68, 0xff, 0x68, 0xff, 0x68, 0xff, 0x68, 0xff, 0x8d, 0xff, 0x69, 0xff, 0x25, 0xff, 0x25, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x25, 0xff, 0x45, 0xff, 0xc9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xa8, 0xff, 0x68, 0xff, 0x68, 0xff, 0x88, 0xff, 0x69, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xf0, 0xf7, 0xd0, 0x9e, + 0xd0, 0xa3, 0xe9, 0xfc, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xcd, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x89, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x69, 0xff, 0x69, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x69, 0xff, 0x69, 0xff, 0xa9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xa9, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x89, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xc9, 0xff, 0xf0, 0xf6, 0xd0, 0x9e, + 0xd0, 0x9e, 0xed, 0xfa, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x89, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xa9, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x69, 0xff, 0xc9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xa9, 0xff, 0xf0, 0xf6, 0xd0, 0x9e, + 0xd0, 0x9e, 0xf0, 0xf7, 0xc9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0x89, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x69, 0xff, 0x8c, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x89, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0x89, 0xff, 0x49, 0xff, 0x49, 0xff, 0xa9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xa9, 0xff, 0x8d, 0xff, 0xf0, 0xf6, 0xd0, 0x9e, + 0xd0, 0x9e, 0xf0, 0xf6, 0xa9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0x69, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x69, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x89, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0x89, 0xff, 0x69, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0x69, 0xff, 0x8d, 0xff, 0xf0, 0xf6, 0xd0, 0x9e, + 0xd0, 0x9e, 0xf0, 0xf6, 0x8d, 0xff, 0xc9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xc9, 0xff, 0x69, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x8d, 0xff, 0x8c, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8c, 0xff, 0x89, 0xff, 0xc9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xc9, 0xff, 0x25, 0xff, 0x8d, 0xff, 0xf0, 0xf6, 0xd0, 0x9e, + 0xd0, 0x9e, 0xf0, 0xf6, 0x8d, 0xff, 0x45, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xa9, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x69, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x69, 0xff, 0x49, 0xff, 0x69, 0xff, 0xc9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0x8d, 0xff, 0x05, 0xff, 0x8d, 0xff, 0xf0, 0xf6, 0xd0, 0x9e, + 0xd0, 0x9e, 0xf0, 0xf6, 0x8d, 0xff, 0x05, 0xff, 0xa9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xa9, 0xff, 0x69, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x69, 0xff, 0x6d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x6d, 0xff, 0x69, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x69, 0xff, 0xc9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xcd, 0xff, 0x8d, 0xff, 0x05, 0xff, 0x8d, 0xff, 0xf0, 0xf6, 0xd0, 0x9e, + 0xd0, 0x9e, 0xf0, 0xf6, 0x8d, 0xff, 0x05, 0xff, 0x8d, 0xff, 0xc9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xc9, 0xff, 0x69, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x69, 0xff, 0xc9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0x89, 0xff, 0xad, 0xff, 0x8d, 0xff, 0x05, 0xff, 0x8d, 0xff, 0xf0, 0xf6, 0xd0, 0x9e, + 0xd0, 0x9e, 0xf0, 0xf6, 0x8d, 0xff, 0x05, 0xff, 0x8d, 0xff, 0xad, 0xff, 0xa9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xa9, 0xff, 0x69, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x69, 0xff, 0xa9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xa9, 0xff, 0x49, 0xff, 0xad, 0xff, 0x8d, 0xff, 0x05, 0xff, 0x8d, 0xff, 0xf0, 0xf6, 0xd0, 0x9e, + 0xd0, 0x9e, 0xf0, 0xf6, 0x69, 0xff, 0x05, 0xff, 0x69, 0xff, 0xad, 0xff, 0x29, 0xff, 0xa9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xc9, 0xff, 0x89, 0xff, 0x69, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x69, 0xff, 0xa9, 0xff, 0xc9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xa9, 0xff, 0x49, 0xff, 0x29, 0xff, 0xad, 0xff, 0x69, 0xff, 0x05, 0xff, 0x69, 0xff, 0xf0, 0xf6, 0xd0, 0x9e, + 0xcc, 0x9e, 0xd0, 0xf6, 0xad, 0xff, 0x6d, 0xff, 0xad, 0xff, 0xd1, 0xff, 0x29, 0xff, 0x29, 0xff, 0x89, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xa9, 0xff, 0x89, 0xff, 0x69, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x69, 0xff, 0x89, 0xff, 0xa9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0x89, 0xff, 0x49, 0xff, 0x29, 0xff, 0x29, 0xff, 0xd1, 0xff, 0xad, 0xff, 0x6d, 0xff, 0xad, 0xff, 0xd0, 0xf6, 0xcc, 0x9e, + 0xcc, 0x9e, 0xac, 0xf6, 0xf0, 0xff, 0xf4, 0xff, 0xf0, 0xff, 0xf0, 0xff, 0xad, 0xff, 0x29, 0xff, 0x49, 0xff, 0x69, 0xff, 0xc9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xc9, 0xff, 0xc9, 0xff, 0xc9, 0xff, 0xc9, 0xff, 0xc9, 0xff, 0xc9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xa9, 0xff, 0x69, 0xff, 0x49, 0xff, 0x49, 0xff, 0x29, 0xff, 0xad, 0xff, 0xf0, 0xff, 0xf0, 0xff, 0xf4, 0xff, 0xf0, 0xff, 0xac, 0xf6, 0xcc, 0x9e, + 0xd0, 0x9f, 0xd0, 0xf6, 0x8d, 0xff, 0x49, 0xff, 0x49, 0xff, 0xad, 0xff, 0xf0, 0xff, 0xd1, 0xff, 0xcd, 0xff, 0xd1, 0xff, 0xcd, 0xff, 0xcd, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xcd, 0xff, 0xd1, 0xff, 0xd1, 0xff, 0xd1, 0xff, 0xcd, 0xff, 0xd1, 0xff, 0xf0, 0xff, 0xad, 0xff, 0x49, 0xff, 0x49, 0xff, 0x8d, 0xff, 0xd0, 0xf6, 0xd0, 0x9f, + 0xcc, 0xb1, 0xf0, 0xff, 0x69, 0xf8, 0x05, 0xf9, 0x05, 0xff, 0x69, 0xff, 0xf4, 0xff, 0x8d, 0xff, 0x49, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x89, 0xff, 0xa9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xa9, 0xff, 0x89, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x49, 0xff, 0x8d, 0xff, 0xf4, 0xff, 0x69, 0xff, 0x05, 0xff, 0x05, 0xf8, 0x69, 0xf8, 0xf0, 0xff, 0xcc, 0xb1, + 0xcc, 0x85, 0xd0, 0xfb, 0xd0, 0xfb, 0x49, 0xf0, 0x05, 0xf9, 0x6d, 0xff, 0xf4, 0xff, 0x49, 0xff, 0x05, 0xff, 0x29, 0xff, 0x29, 0xff, 0x29, 0xff, 0x29, 0xff, 0x29, 0xff, 0x29, 0xff, 0x49, 0xff, 0x69, 0xff, 0x89, 0xff, 0xa9, 0xff, 0xc9, 0xff, 0xc9, 0xff, 0xe9, 0xff, 0xc9, 0xff, 0xc9, 0xff, 0xc9, 0xff, 0xa9, 0xff, 0x89, 0xff, 0x69, 0xff, 0x49, 0xff, 0x29, 0xff, 0x29, 0xff, 0x29, 0xff, 0x29, 0xff, 0x29, 0xff, 0x29, 0xff, 0x29, 0xff, 0x05, 0xff, 0x49, 0xff, 0xf4, 0xff, 0x6d, 0xff, 0x05, 0xf9, 0x49, 0xef, 0xd0, 0xfb, 0xd0, 0xfb, 0xcc, 0x85, + 0xd0, 0x0d, 0xcc, 0x9e, 0xd0, 0xff, 0xd0, 0xff, 0x8d, 0xff, 0xad, 0xff, 0xf0, 0xff, 0xad, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0xad, 0xff, 0xf0, 0xff, 0xad, 0xff, 0x8d, 0xff, 0xd0, 0xff, 0xd0, 0xff, 0xcc, 0x9e, 0xd0, 0x0d, + 0x00, 0x00, 0xcc, 0x0a, 0xcc, 0x91, 0xd0, 0xe5, 0xf0, 0xe3, 0xd0, 0xd9, 0xac, 0xda, 0xd0, 0xda, 0xf0, 0xda, 0xf0, 0xda, 0xf0, 0xda, 0xf0, 0xda, 0xf0, 0xda, 0xf0, 0xda, 0xf0, 0xda, 0xf0, 0xda, 0xf0, 0xda, 0xf0, 0xda, 0xf0, 0xda, 0xf0, 0xda, 0xf0, 0xda, 0xf0, 0xda, 0xf0, 0xda, 0xf0, 0xda, 0xf0, 0xda, 0xf0, 0xda, 0xf0, 0xda, 0xf0, 0xda, 0xf0, 0xda, 0xf0, 0xda, 0xf0, 0xda, 0xf0, 0xda, 0xf0, 0xda, 0xf0, 0xda, 0xf0, 0xda, 0xf0, 0xda, 0xf0, 0xda, 0xd0, 0xda, 0xac, 0xda, 0xd0, 0xd9, 0xf0, 0xe3, 0xd0, 0xe5, 0xcc, 0x91, 0xcc, 0x0a, 0x00, 0x00, +#endif +#if LV_COLOR_DEPTH == 16 && LV_COLOR_16_SWAP == 0 + /*Pixel format: Alpha 8 bit, Red: 5 bit, Green: 6 bit, Blue: 5 bit*/ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x64, 0xec, 0x5e, 0x64, 0xec, 0xd7, 0x64, 0xec, 0xff, 0x64, 0xec, 0xff, 0x64, 0xec, 0xfd, 0x64, 0xec, 0xfe, 0x64, 0xec, 0xfe, 0x64, 0xec, 0xfe, 0x64, 0xec, 0xfe, 0x64, 0xec, 0xfe, 0x64, 0xec, 0xfe, 0x64, 0xec, 0xfe, 0x64, 0xec, 0xfe, 0x64, 0xec, 0xfe, 0x64, 0xec, 0xfe, 0x64, 0xec, 0xfe, 0x64, 0xec, 0xfe, 0x64, 0xec, 0xfe, 0x64, 0xec, 0xfd, 0x64, 0xec, 0xff, 0x64, 0xec, 0xff, 0x64, 0xec, 0xd7, 0x64, 0xe4, 0x5c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x64, 0xec, 0x6e, 0x64, 0xec, 0xff, 0x64, 0xec, 0xe4, 0x64, 0xec, 0xa0, 0x64, 0xec, 0xa6, 0x84, 0xec, 0xab, 0x64, 0xec, 0xaa, 0x64, 0xec, 0xaa, 0x64, 0xec, 0xaa, 0x64, 0xec, 0xaa, 0x64, 0xec, 0xaa, 0x64, 0xec, 0xaa, 0x64, 0xec, 0xaa, 0x64, 0xec, 0xaa, 0x64, 0xec, 0xaa, 0x64, 0xec, 0xaa, 0x64, 0xec, 0xaa, 0x64, 0xec, 0xaa, 0x64, 0xec, 0xaa, 0x84, 0xec, 0xab, 0x64, 0xec, 0xa5, 0x64, 0xec, 0xa0, 0x64, 0xec, 0xe4, 0x64, 0xec, 0xff, 0x64, 0xec, 0x6d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x65, 0xf4, 0x26, 0x64, 0xe4, 0xff, 0x84, 0xec, 0xc5, 0x64, 0xec, 0x16, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x64, 0xec, 0x16, 0x84, 0xec, 0xc5, 0x64, 0xec, 0xff, 0x65, 0xec, 0x26, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x64, 0xec, 0x5a, 0x84, 0xf4, 0xff, 0x85, 0xf4, 0x43, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa5, 0xfc, 0x43, 0x85, 0xf4, 0xff, 0x64, 0xec, 0x5a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc4, 0x04, 0xa4, 0xc3, 0x3d, 0xc4, 0xc3, 0x43, 0xc4, 0xc3, 0x3b, 0xc4, 0xcb, 0x3c, 0xc4, 0xc3, 0x3b, 0xa3, 0xc3, 0x32, 0x04, 0xd4, 0x8f, 0x84, 0xf4, 0xff, 0x04, 0xd4, 0x65, 0xa3, 0xbb, 0x31, 0xc4, 0xc3, 0x3c, 0xc4, 0xc3, 0x3c, 0xc4, 0xc3, 0x3c, 0xc4, 0xc3, 0x3c, 0xc4, 0xc3, 0x3c, 0xc4, 0xc3, 0x3c, 0xc4, 0xc3, 0x3c, 0xc4, 0xc3, 0x3c, 0xc4, 0xc3, 0x3c, 0xc4, 0xc3, 0x3c, 0xc4, 0xc3, 0x3c, 0xc4, 0xc3, 0x3c, 0xc4, 0xc3, 0x3c, 0xc4, 0xc3, 0x3c, 0xc4, 0xc3, 0x3c, 0xc4, 0xc3, 0x3c, 0xc4, 0xc3, 0x3c, 0xc4, 0xc3, 0x3c, 0xc4, 0xc3, 0x3c, 0xa3, 0xbb, 0x31, 0x04, 0xd4, 0x65, 0x84, 0xf4, 0xff, 0x04, 0xd4, 0x8f, 0xa3, 0xc3, 0x32, 0xc4, 0xc3, 0x3b, 0xc4, 0xcb, 0x3c, 0xc4, 0xc3, 0x3c, 0xc3, 0xc3, 0x42, 0xa4, 0xc3, 0x3d, 0x00, 0xc4, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xc4, 0xc3, 0x1e, 0xa4, 0xc3, 0xc0, 0x23, 0xe4, 0xf7, 0x83, 0xfc, 0xfa, 0x23, 0xe4, 0xf6, 0xc4, 0xc3, 0xf7, 0x43, 0xec, 0xf7, 0x63, 0xf4, 0xf0, 0x43, 0xec, 0xf9, 0x43, 0xec, 0xff, 0x43, 0xec, 0xf6, 0x43, 0xec, 0xef, 0x63, 0xf4, 0xf7, 0x63, 0xec, 0xf7, 0x63, 0xec, 0xf7, 0x63, 0xec, 0xf7, 0x63, 0xec, 0xf7, 0x63, 0xec, 0xf7, 0x63, 0xec, 0xf7, 0x63, 0xec, 0xf7, 0x63, 0xec, 0xf7, 0x63, 0xec, 0xf7, 0x63, 0xec, 0xf7, 0x63, 0xec, 0xf7, 0x63, 0xec, 0xf7, 0x63, 0xec, 0xf7, 0x63, 0xec, 0xf7, 0x63, 0xec, 0xf7, 0x63, 0xec, 0xf7, 0x63, 0xec, 0xf7, 0x63, 0xf4, 0xf7, 0x43, 0xec, 0xef, 0x43, 0xec, 0xf6, 0x43, 0xec, 0xff, 0x43, 0xec, 0xf9, 0x63, 0xf4, 0xf0, 0x43, 0xec, 0xf7, 0xc4, 0xc3, 0xf7, 0x23, 0xe4, 0xf7, 0x83, 0xf4, 0xfa, 0x23, 0xe4, 0xf7, 0xa4, 0xc3, 0xc0, 0xc4, 0xc3, 0x1e, 0x00, 0x00, 0x00, + 0xc5, 0xc3, 0x15, 0xc4, 0xc3, 0xb6, 0x43, 0xec, 0xff, 0x04, 0xd4, 0xff, 0x87, 0x72, 0xff, 0x25, 0x9b, 0xff, 0x43, 0xec, 0xff, 0x05, 0x93, 0xff, 0xa7, 0x72, 0xff, 0xe6, 0x82, 0xff, 0xc6, 0x82, 0xff, 0xe6, 0x82, 0xff, 0xe6, 0x82, 0xff, 0xe6, 0x82, 0xff, 0xe6, 0x82, 0xff, 0xe6, 0x82, 0xff, 0xe6, 0x82, 0xff, 0xe6, 0x82, 0xff, 0xe6, 0x82, 0xff, 0xe6, 0x82, 0xff, 0xe6, 0x82, 0xff, 0xe6, 0x82, 0xff, 0xe6, 0x82, 0xff, 0xe6, 0x82, 0xff, 0xe6, 0x82, 0xff, 0xe6, 0x82, 0xff, 0xe6, 0x82, 0xff, 0xe6, 0x82, 0xff, 0xe6, 0x82, 0xff, 0xe6, 0x82, 0xff, 0xe6, 0x82, 0xff, 0xe6, 0x82, 0xff, 0xe6, 0x82, 0xff, 0xe6, 0x82, 0xff, 0xc6, 0x82, 0xff, 0xe6, 0x82, 0xff, 0xa7, 0x72, 0xff, 0x05, 0x93, 0xff, 0x43, 0xec, 0xff, 0x25, 0x9b, 0xff, 0x87, 0x72, 0xff, 0x04, 0xd4, 0xff, 0x43, 0xec, 0xff, 0xc4, 0xc3, 0xb6, 0x03, 0xc4, 0x14, + 0xa4, 0xc3, 0x95, 0x23, 0xe4, 0xfc, 0xe4, 0xcb, 0xfb, 0xc8, 0x29, 0xf1, 0xca, 0x00, 0xfb, 0x87, 0x6a, 0xff, 0xa2, 0xfc, 0xff, 0xe8, 0x39, 0xff, 0xeb, 0x00, 0xff, 0x69, 0x11, 0xff, 0x69, 0x11, 0xff, 0x69, 0x11, 0xff, 0x69, 0x11, 0xff, 0x6a, 0x11, 0xff, 0x69, 0x21, 0xff, 0x89, 0x41, 0xff, 0x89, 0x61, 0xff, 0xa8, 0x89, 0xff, 0xc8, 0xa9, 0xff, 0xc8, 0xc1, 0xff, 0xc8, 0xd1, 0xff, 0xc7, 0xd9, 0xff, 0xc7, 0xd9, 0xff, 0xc8, 0xd1, 0xff, 0xc8, 0xc1, 0xff, 0xc8, 0xa9, 0xff, 0xa8, 0x89, 0xff, 0x89, 0x61, 0xff, 0x89, 0x39, 0xff, 0x69, 0x19, 0xff, 0x6a, 0x11, 0xff, 0x69, 0x11, 0xff, 0x69, 0x11, 0xff, 0x69, 0x11, 0xff, 0x69, 0x11, 0xff, 0x69, 0x11, 0xff, 0xeb, 0x00, 0xff, 0xe8, 0x39, 0xff, 0xa2, 0xfc, 0xff, 0x87, 0x6a, 0xff, 0xca, 0x00, 0xfb, 0xc8, 0x31, 0xf2, 0xe4, 0xcb, 0xfc, 0x43, 0xe4, 0xfd, 0xc4, 0xc3, 0x94, + 0xe4, 0xcb, 0xaa, 0x83, 0xfc, 0xfc, 0x87, 0x62, 0xf9, 0xea, 0x00, 0xfb, 0x49, 0x09, 0xff, 0xa7, 0x72, 0xff, 0x82, 0xfc, 0xff, 0x06, 0x93, 0xff, 0x67, 0x5a, 0xff, 0xa7, 0x72, 0xff, 0xa6, 0x72, 0xff, 0xa6, 0x72, 0xff, 0x87, 0x82, 0xff, 0x67, 0xa2, 0xff, 0x27, 0xc2, 0xff, 0xe7, 0xd9, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xd9, 0xff, 0x27, 0xba, 0xff, 0x67, 0x9a, 0xff, 0xa7, 0x7a, 0xff, 0xa6, 0x72, 0xff, 0xa6, 0x72, 0xff, 0xa6, 0x72, 0xff, 0xa7, 0x72, 0xff, 0x47, 0x5a, 0xff, 0x06, 0x93, 0xff, 0x82, 0xfc, 0xff, 0xa7, 0x72, 0xff, 0x49, 0x09, 0xff, 0xea, 0x00, 0xfc, 0x87, 0x62, 0xfa, 0x83, 0xfc, 0xfc, 0xe4, 0xcb, 0xaa, + 0xe4, 0xcb, 0x9e, 0x23, 0xe4, 0xf6, 0x25, 0x9b, 0xff, 0xa6, 0x72, 0xff, 0xa7, 0x72, 0xff, 0xa4, 0xbb, 0xff, 0x62, 0xfc, 0xff, 0x25, 0x9b, 0xff, 0x25, 0x93, 0xff, 0x45, 0xa3, 0xff, 0x25, 0xa3, 0xff, 0xa6, 0xc2, 0xff, 0x27, 0xda, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x27, 0xd2, 0xff, 0xa6, 0xba, 0xff, 0x25, 0xa3, 0xff, 0x45, 0x9b, 0xff, 0x45, 0xa3, 0xff, 0x25, 0x93, 0xff, 0x25, 0x9b, 0xff, 0x82, 0xfc, 0xff, 0xa4, 0xbb, 0xff, 0xa7, 0x6a, 0xff, 0xa6, 0x72, 0xff, 0x25, 0x9b, 0xff, 0x23, 0xe4, 0xf6, 0xe4, 0xcb, 0x9e, + 0xc4, 0xcb, 0x9e, 0xc4, 0xc3, 0xf6, 0x43, 0xec, 0xff, 0xa2, 0xfc, 0xff, 0x82, 0xfc, 0xff, 0x63, 0xec, 0xff, 0xe6, 0x82, 0xff, 0x89, 0x21, 0xff, 0xe9, 0x39, 0xff, 0xe8, 0x69, 0xff, 0xe8, 0xb9, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xd9, 0xff, 0xe8, 0xc1, 0xff, 0xe8, 0xb9, 0xff, 0xe8, 0xb1, 0xff, 0xe8, 0xb1, 0xff, 0xe8, 0xb9, 0xff, 0xe7, 0xc1, 0xff, 0xe7, 0xd9, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe8, 0xb1, 0xff, 0xe8, 0x61, 0xff, 0xe9, 0x39, 0xff, 0xe9, 0x39, 0xff, 0x89, 0x21, 0xff, 0xe6, 0x82, 0xff, 0x63, 0xf4, 0xff, 0x82, 0xfc, 0xff, 0xa2, 0xfc, 0xff, 0x43, 0xec, 0xff, 0xc4, 0xc3, 0xf6, 0xc4, 0xcb, 0x9e, + 0xe4, 0xcb, 0x9e, 0x43, 0xe4, 0xf6, 0xe6, 0x82, 0xff, 0xa9, 0x31, 0xff, 0x06, 0x8b, 0xff, 0x65, 0xa3, 0xff, 0x8a, 0x19, 0xff, 0x08, 0x42, 0xff, 0x08, 0x92, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xd1, 0xff, 0x08, 0xa2, 0xff, 0x08, 0x7a, 0xff, 0x08, 0x62, 0xff, 0x28, 0x52, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x28, 0x5a, 0xff, 0x08, 0x62, 0xff, 0x08, 0x7a, 0xff, 0x08, 0xa2, 0xff, 0xe7, 0xd1, 0xff, 0xc7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xd9, 0xff, 0x08, 0x8a, 0xff, 0x28, 0x4a, 0xff, 0x08, 0x42, 0xff, 0x8a, 0x19, 0xff, 0x65, 0xa3, 0xff, 0x06, 0x8b, 0xff, 0xa9, 0x31, 0xff, 0xe6, 0x82, 0xff, 0x43, 0xe4, 0xf6, 0xe4, 0xcb, 0x9e, + 0xe3, 0xcb, 0x9e, 0x63, 0xf4, 0xf6, 0x87, 0x62, 0xff, 0xcb, 0x00, 0xff, 0x67, 0x5a, 0xff, 0x45, 0xa3, 0xff, 0xc9, 0x39, 0xff, 0x08, 0xaa, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe8, 0xc1, 0xff, 0x08, 0x82, 0xff, 0x28, 0x5a, 0xff, 0x29, 0x4a, 0xff, 0x28, 0x4a, 0xff, 0x28, 0x4a, 0xff, 0x28, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x28, 0x4a, 0xff, 0x28, 0x4a, 0xff, 0x28, 0x4a, 0xff, 0x28, 0x5a, 0xff, 0x08, 0x8a, 0xff, 0xe8, 0xc1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x08, 0x9a, 0xff, 0x28, 0x4a, 0xff, 0xc9, 0x31, 0xff, 0x45, 0xa3, 0xff, 0x67, 0x5a, 0xff, 0xcb, 0x00, 0xff, 0x87, 0x62, 0xff, 0x63, 0xf4, 0xf6, 0xe4, 0xcb, 0x9e, + 0xe4, 0xcb, 0x9e, 0x43, 0xec, 0xf6, 0xc6, 0x7a, 0xff, 0x6a, 0x11, 0xff, 0xc6, 0x72, 0xff, 0x65, 0xb3, 0xff, 0xe8, 0xa9, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xd1, 0xff, 0x08, 0x8a, 0xff, 0x28, 0x52, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x28, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x42, 0xff, 0x09, 0x3a, 0xff, 0x09, 0x3a, 0xff, 0x09, 0x3a, 0xff, 0x09, 0x3a, 0xff, 0x09, 0x3a, 0xff, 0x09, 0x3a, 0xff, 0x09, 0x3a, 0xff, 0x29, 0x42, 0xff, 0x29, 0x4a, 0xff, 0x28, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x28, 0x52, 0xff, 0x08, 0x9a, 0xff, 0xe7, 0xd9, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe8, 0xa1, 0xff, 0xe9, 0x39, 0xff, 0x65, 0xab, 0xff, 0xc6, 0x72, 0xff, 0x6a, 0x11, 0xff, 0xc6, 0x7a, 0xff, 0x43, 0xec, 0xf6, 0xe3, 0xcb, 0x9e, + 0xe3, 0xcb, 0x9e, 0x43, 0xec, 0xf6, 0xa6, 0x7a, 0xff, 0x4a, 0x09, 0xff, 0xa7, 0x7a, 0xff, 0x66, 0xd2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe8, 0xc9, 0xff, 0x28, 0x62, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x28, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x09, 0x42, 0xff, 0x09, 0x3a, 0xff, 0x29, 0x42, 0xff, 0x48, 0x52, 0xff, 0x67, 0x5a, 0xff, 0x67, 0x62, 0xff, 0x67, 0x62, 0xff, 0x67, 0x62, 0xff, 0x67, 0x5a, 0xff, 0x48, 0x52, 0xff, 0x29, 0x42, 0xff, 0x09, 0x3a, 0xff, 0x09, 0x42, 0xff, 0x29, 0x4a, 0xff, 0x28, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x28, 0x6a, 0xff, 0xe8, 0xc1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe8, 0x91, 0xff, 0x65, 0xab, 0xff, 0xc7, 0x72, 0xff, 0x4a, 0x09, 0xff, 0xa6, 0x7a, 0xff, 0x43, 0xec, 0xf6, 0xe3, 0xcb, 0x9e, + 0xe3, 0xcb, 0x9e, 0x43, 0xec, 0xf6, 0xa6, 0x7a, 0xff, 0x4a, 0x09, 0xff, 0x47, 0xaa, 0xff, 0xc7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xd9, 0xff, 0x28, 0x7a, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x42, 0xff, 0x29, 0x3a, 0xff, 0x48, 0x52, 0xff, 0x86, 0x6a, 0xff, 0xa5, 0x7a, 0xff, 0xa4, 0x82, 0xff, 0xa4, 0x82, 0xff, 0xc4, 0x82, 0xff, 0xa4, 0x82, 0xff, 0xc4, 0x82, 0xff, 0xa4, 0x82, 0xff, 0xa4, 0x82, 0xff, 0xa5, 0x7a, 0xff, 0x86, 0x6a, 0xff, 0x48, 0x52, 0xff, 0x29, 0x3a, 0xff, 0x29, 0x42, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x5a, 0xff, 0xe8, 0xb1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xc6, 0xc2, 0xff, 0xc7, 0x72, 0xff, 0x4a, 0x09, 0xff, 0xa6, 0x7a, 0xff, 0x43, 0xec, 0xf6, 0xe3, 0xcb, 0x9e, + 0xe3, 0xcb, 0x9e, 0x43, 0xec, 0xf6, 0xc6, 0x7a, 0xff, 0x89, 0x49, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x08, 0x82, 0xff, 0x2a, 0x3a, 0xff, 0x29, 0x4a, 0xff, 0x86, 0x6a, 0xff, 0xa4, 0x82, 0xff, 0xa4, 0x82, 0xff, 0xa4, 0x82, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa4, 0x82, 0xff, 0xa4, 0x82, 0xff, 0xa4, 0x82, 0xff, 0x86, 0x6a, 0xff, 0x29, 0x4a, 0xff, 0x2a, 0x3a, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x28, 0x52, 0xff, 0xe8, 0xb1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x07, 0xe2, 0xff, 0x87, 0x8a, 0xff, 0x4a, 0x09, 0xff, 0xc6, 0x7a, 0xff, 0x43, 0xec, 0xf6, 0xe3, 0xcb, 0x9e, + 0xc3, 0xcb, 0x9e, 0x43, 0xec, 0xf6, 0xa6, 0x82, 0xff, 0xc8, 0xc1, 0xff, 0xc7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe8, 0xc1, 0xff, 0xe8, 0xc9, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xd9, 0xff, 0x27, 0x92, 0xff, 0xa4, 0x82, 0xff, 0xa4, 0x82, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa4, 0x82, 0xff, 0xa4, 0x82, 0xff, 0x67, 0x5a, 0xff, 0x2a, 0x3a, 0xff, 0x29, 0x42, 0xff, 0x28, 0x4a, 0xff, 0x28, 0x5a, 0xff, 0xe8, 0xc1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x07, 0xca, 0xff, 0x4a, 0x11, 0xff, 0xc6, 0x7a, 0xff, 0x43, 0xec, 0xf6, 0xc3, 0xcb, 0x9e, + 0xc3, 0xcb, 0x9e, 0x43, 0xe4, 0xf6, 0x47, 0xaa, 0xff, 0xc7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe8, 0xd1, 0xff, 0x08, 0x62, 0xff, 0x28, 0x62, 0xff, 0xe7, 0xd1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x46, 0xa2, 0xff, 0x85, 0x72, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x72, 0xff, 0xa5, 0x72, 0xff, 0xa5, 0x72, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0x85, 0x72, 0xff, 0xa5, 0x7a, 0xff, 0xa4, 0x82, 0xff, 0x67, 0x62, 0xff, 0x0a, 0x3a, 0xff, 0x29, 0x42, 0xff, 0x28, 0x4a, 0xff, 0x28, 0x6a, 0xff, 0xe7, 0xd9, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x89, 0x61, 0xff, 0xc6, 0x7a, 0xff, 0x43, 0xec, 0xf6, 0xc3, 0xcb, 0x9e, + 0xc3, 0xcb, 0x9e, 0xe3, 0xe3, 0xf7, 0x07, 0xd2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe8, 0x81, 0xff, 0x29, 0x42, 0xff, 0x28, 0x4a, 0xff, 0x28, 0x6a, 0xff, 0xe8, 0xc9, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x46, 0xa2, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x72, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x82, 0xff, 0xa4, 0x82, 0xff, 0xa5, 0x82, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x72, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x72, 0xff, 0xa5, 0x7a, 0xff, 0xc4, 0x8a, 0xff, 0x67, 0x62, 0xff, 0x0a, 0x3a, 0xff, 0x29, 0x4a, 0xff, 0x28, 0x4a, 0xff, 0x08, 0x9a, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xc8, 0xb1, 0xff, 0xa6, 0x7a, 0xff, 0x23, 0xe4, 0xf6, 0xc3, 0xcb, 0x9e, + 0xc3, 0xcb, 0x9e, 0x25, 0xe3, 0xfa, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x27, 0xda, 0xff, 0xe9, 0x39, 0xff, 0x29, 0x42, 0xff, 0x28, 0x4a, 0xff, 0x0a, 0x3a, 0xff, 0x48, 0x72, 0xff, 0x07, 0xda, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x46, 0xa2, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa4, 0x82, 0xff, 0xa5, 0x82, 0xff, 0xa6, 0x7a, 0xff, 0xa6, 0x72, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa4, 0x82, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xc5, 0x7a, 0xff, 0xc4, 0x8a, 0xff, 0x48, 0x52, 0xff, 0x0a, 0x3a, 0xff, 0x28, 0x4a, 0xff, 0x08, 0x52, 0xff, 0xe8, 0xd1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x67, 0x9a, 0xff, 0x23, 0xe4, 0xf6, 0xc3, 0xcb, 0x9e, + 0xa4, 0xcb, 0xa3, 0x86, 0xe2, 0xfc, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe6, 0xc2, 0xff, 0xe9, 0x31, 0xff, 0x28, 0x42, 0xff, 0x29, 0x42, 0xff, 0x4a, 0x42, 0xff, 0x84, 0x7a, 0xff, 0x03, 0x8a, 0xff, 0xe7, 0xd1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x65, 0xaa, 0xff, 0xa5, 0x7a, 0xff, 0x88, 0x62, 0xff, 0xe7, 0x41, 0xff, 0x86, 0x29, 0xff, 0x87, 0x29, 0xff, 0xe8, 0x39, 0xff, 0x69, 0x52, 0xff, 0x67, 0x5a, 0xff, 0xa5, 0x7a, 0xff, 0x63, 0x7a, 0xff, 0x02, 0x6a, 0xff, 0x03, 0x6a, 0xff, 0x23, 0x6a, 0xff, 0x02, 0x6a, 0xff, 0x03, 0x6a, 0xff, 0x84, 0x7a, 0xff, 0xc5, 0x82, 0xff, 0x29, 0x42, 0xff, 0x29, 0x42, 0xff, 0x29, 0x42, 0xff, 0xe8, 0x89, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x27, 0xba, 0xff, 0x23, 0xe4, 0xf6, 0xc3, 0xcb, 0x9e, + 0x45, 0xd3, 0xb3, 0x07, 0xe2, 0xfe, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x07, 0xd2, 0xff, 0x65, 0xb3, 0xff, 0xe9, 0x31, 0xff, 0x29, 0x42, 0xff, 0x4a, 0x42, 0xff, 0x05, 0x52, 0xff, 0x80, 0x61, 0xff, 0xe2, 0x61, 0xff, 0x24, 0x8a, 0xff, 0xe7, 0xd1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x29, 0x82, 0xff, 0x0a, 0x3a, 0xff, 0x66, 0x29, 0xff, 0xa7, 0x31, 0xff, 0xa7, 0x31, 0xff, 0x66, 0x29, 0xff, 0x2a, 0x42, 0xff, 0x2a, 0x42, 0xff, 0x29, 0x42, 0xff, 0x05, 0x5a, 0xff, 0x23, 0x72, 0xff, 0x22, 0x6a, 0xff, 0x02, 0x6a, 0xff, 0x23, 0x6a, 0xff, 0xe2, 0x69, 0xff, 0x60, 0x51, 0xff, 0x42, 0x7a, 0xff, 0xa8, 0x62, 0xff, 0x29, 0x42, 0xff, 0x29, 0x42, 0xff, 0xe9, 0x49, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x07, 0xda, 0xff, 0xe4, 0xe3, 0xf7, 0xc3, 0xcb, 0x9e, + 0xc6, 0xda, 0xc6, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xc7, 0xe1, 0xff, 0x47, 0xb2, 0xff, 0x65, 0xab, 0xff, 0xe9, 0x31, 0xff, 0x29, 0x42, 0xff, 0xc7, 0x39, 0xff, 0xe2, 0x61, 0xff, 0x52, 0xc5, 0xff, 0xfa, 0xe6, 0xff, 0x3b, 0xef, 0xff, 0xf7, 0xed, 0xff, 0x8a, 0xe2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x86, 0x71, 0xff, 0x34, 0xad, 0xff, 0x1c, 0xe7, 0xff, 0xfc, 0xe6, 0xff, 0x72, 0x94, 0xff, 0x45, 0x29, 0xff, 0x28, 0x4a, 0xff, 0x87, 0x31, 0xff, 0x31, 0x84, 0xff, 0x1a, 0xef, 0xff, 0xfa, 0xe6, 0xff, 0x1b, 0xef, 0xff, 0x3c, 0xef, 0xff, 0xfa, 0xee, 0xff, 0x73, 0xc5, 0xff, 0xe2, 0x69, 0xff, 0x03, 0x6a, 0xff, 0x49, 0x4a, 0xff, 0x29, 0x42, 0xff, 0xe9, 0x39, 0xff, 0x66, 0xd2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x64, 0xe3, 0xf9, 0xc3, 0xcb, 0x9e, + 0x66, 0xda, 0xd8, 0xc7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xc7, 0xe1, 0xff, 0x87, 0x9a, 0xff, 0x65, 0xab, 0xff, 0xe9, 0x39, 0xff, 0x09, 0x3a, 0xff, 0xa4, 0x49, 0xff, 0x93, 0xc5, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xbb, 0xfe, 0xff, 0xcb, 0xea, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x76, 0xf5, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x5d, 0xef, 0xff, 0xc7, 0x39, 0xff, 0xa6, 0x39, 0xff, 0x86, 0x39, 0xff, 0x75, 0xad, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf5, 0xcd, 0xff, 0xe1, 0x69, 0xff, 0x06, 0x52, 0xff, 0x29, 0x42, 0xff, 0xe9, 0x39, 0xff, 0xe6, 0xc2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe5, 0xe2, 0xfb, 0xc3, 0xcb, 0x9e, + 0x47, 0xe2, 0xe7, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xc8, 0xd1, 0xff, 0x87, 0x8a, 0xff, 0x65, 0xab, 0xff, 0x09, 0x3a, 0xff, 0xa7, 0x31, 0xff, 0xa8, 0x6a, 0xff, 0x9d, 0xff, 0xff, 0xff, 0xff, 0xff, 0x53, 0xbd, 0xff, 0x66, 0x72, 0xff, 0xa7, 0x7a, 0xff, 0x58, 0xd6, 0xff, 0xbb, 0xfe, 0xff, 0x8a, 0xe2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x08, 0xe2, 0xff, 0x55, 0xed, 0xff, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0c, 0x63, 0xff, 0x24, 0x21, 0xff, 0xa7, 0x39, 0xff, 0x14, 0xa5, 0xff, 0xff, 0xff, 0xff, 0x58, 0xd6, 0xff, 0x45, 0x72, 0xff, 0x04, 0x6a, 0xff, 0xb0, 0xac, 0xff, 0xff, 0xff, 0xff, 0xdf, 0xff, 0xff, 0xe5, 0x82, 0xff, 0xc3, 0x51, 0xff, 0x29, 0x42, 0xff, 0xe9, 0x31, 0xff, 0x05, 0xbb, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x86, 0xe2, 0xfc, 0xc3, 0xcb, 0x9e, + 0x07, 0xe2, 0xf0, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xc8, 0xb9, 0xff, 0xa7, 0x7a, 0xff, 0x65, 0xab, 0xff, 0x0a, 0x32, 0xff, 0xa7, 0x31, 0xff, 0x08, 0x7b, 0xff, 0xbd, 0xff, 0xff, 0xff, 0xff, 0xff, 0x08, 0x83, 0xff, 0xc0, 0x48, 0xff, 0xe0, 0x48, 0xff, 0x8f, 0xac, 0xff, 0xff, 0xff, 0xff, 0xf8, 0xe5, 0xff, 0xc7, 0xc9, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x08, 0xe2, 0xff, 0x10, 0xc4, 0xff, 0xff, 0xff, 0xff, 0x92, 0x94, 0xff, 0xe3, 0x20, 0xff, 0x86, 0x31, 0xff, 0x14, 0xa5, 0xff, 0xff, 0xff, 0xff, 0x55, 0xad, 0xff, 0x20, 0x28, 0xff, 0x00, 0x38, 0xff, 0x45, 0x6a, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x27, 0x8b, 0xff, 0xc2, 0x59, 0xff, 0x29, 0x42, 0xff, 0xe9, 0x31, 0xff, 0x45, 0xb3, 0xff, 0x07, 0xd2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x46, 0xe2, 0xfd, 0xc3, 0xc3, 0x9e, + 0xe7, 0xe1, 0xf7, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xa8, 0xa9, 0xff, 0xa7, 0x7a, 0xff, 0x65, 0xab, 0xff, 0xea, 0x31, 0xff, 0xa7, 0x39, 0xff, 0x07, 0x83, 0xff, 0x9d, 0xff, 0xff, 0xff, 0xff, 0xff, 0x8a, 0x93, 0xff, 0xc0, 0x61, 0xff, 0xa4, 0x7a, 0xff, 0xe8, 0x72, 0xff, 0xf0, 0x7b, 0xff, 0x4d, 0x6b, 0xff, 0x86, 0x59, 0xff, 0xc7, 0xc9, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe8, 0xd9, 0xff, 0xb6, 0xf5, 0xff, 0x59, 0xce, 0xff, 0x04, 0x21, 0xff, 0x25, 0x29, 0xff, 0x34, 0xa5, 0xff, 0xff, 0xff, 0xff, 0x7a, 0xce, 0xff, 0x4b, 0x7b, 0xff, 0x49, 0x8b, 0xff, 0x53, 0xbd, 0xff, 0xff, 0xff, 0xff, 0x99, 0xde, 0xff, 0x63, 0x7a, 0xff, 0x23, 0x6a, 0xff, 0x29, 0x42, 0xff, 0xe9, 0x31, 0xff, 0x45, 0xb3, 0xff, 0x07, 0xca, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x27, 0xe2, 0xfe, 0xc3, 0xc3, 0x9e, + 0xe7, 0xe1, 0xfb, 0xe7, 0xe1, 0xff, 0xc7, 0xe1, 0xff, 0xc8, 0x99, 0xff, 0xa7, 0x7a, 0xff, 0x65, 0xab, 0xff, 0xea, 0x31, 0xff, 0xa7, 0x39, 0xff, 0x07, 0x83, 0xff, 0x9d, 0xff, 0xff, 0xff, 0xff, 0xff, 0x8a, 0x93, 0xff, 0xa0, 0x61, 0xff, 0x06, 0x8b, 0xff, 0x06, 0x52, 0xff, 0xe5, 0x18, 0xff, 0x86, 0x31, 0xff, 0x86, 0x31, 0xff, 0x6a, 0x72, 0xff, 0xaa, 0xea, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x28, 0xe2, 0xff, 0x75, 0xf5, 0xff, 0xc7, 0x39, 0xff, 0xc3, 0x18, 0xff, 0x34, 0xad, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x28, 0x83, 0xff, 0x60, 0x59, 0xff, 0xc6, 0x7a, 0xff, 0x29, 0x42, 0xff, 0xe9, 0x31, 0xff, 0x65, 0xb3, 0xff, 0x27, 0xc2, 0xff, 0xc7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x07, 0xe2, 0xfe, 0xc3, 0xc3, 0x9e, + 0xe7, 0xe1, 0xfa, 0xe7, 0xe1, 0xff, 0xc7, 0xe1, 0xff, 0xc8, 0x99, 0xff, 0xa7, 0x7a, 0xff, 0x65, 0xab, 0xff, 0xea, 0x31, 0xff, 0xa7, 0x39, 0xff, 0x07, 0x83, 0xff, 0x9d, 0xff, 0xff, 0xff, 0xff, 0xff, 0xaa, 0x93, 0xff, 0xa0, 0x61, 0xff, 0x06, 0x8b, 0xff, 0xe5, 0x51, 0xff, 0x05, 0x19, 0xff, 0x66, 0x31, 0xff, 0x65, 0x31, 0xff, 0x31, 0x8c, 0xff, 0xdb, 0xfe, 0xff, 0x8a, 0xe2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x08, 0xe2, 0xff, 0xab, 0x9a, 0xff, 0x41, 0x08, 0xff, 0x14, 0xa5, 0xff, 0xff, 0xff, 0xff, 0x3d, 0xe7, 0xff, 0xb5, 0xbd, 0xff, 0x93, 0xcd, 0xff, 0xb9, 0xe6, 0xff, 0xff, 0xff, 0xff, 0x37, 0xd6, 0xff, 0x63, 0x7a, 0xff, 0x23, 0x6a, 0xff, 0x29, 0x42, 0xff, 0xe9, 0x31, 0xff, 0x65, 0xb3, 0xff, 0x27, 0xc2, 0xff, 0xc7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x07, 0xe2, 0xfe, 0xc3, 0xc3, 0x9e, + 0x07, 0xe2, 0xf6, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xc8, 0xa9, 0xff, 0xa7, 0x7a, 0xff, 0x65, 0xab, 0xff, 0xea, 0x31, 0xff, 0xa7, 0x31, 0xff, 0x08, 0x83, 0xff, 0x9d, 0xff, 0xff, 0xff, 0xff, 0xff, 0x49, 0x8b, 0xff, 0xa1, 0x61, 0xff, 0x22, 0x6a, 0xff, 0x6a, 0x8b, 0xff, 0x19, 0xc6, 0xff, 0x92, 0x94, 0xff, 0x04, 0x21, 0xff, 0x14, 0xa5, 0xff, 0xff, 0xff, 0xff, 0xf7, 0xe5, 0xff, 0x49, 0xda, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe8, 0xe1, 0xff, 0xe3, 0x60, 0xff, 0xf3, 0xa4, 0xff, 0xff, 0xff, 0xff, 0x57, 0xa5, 0xff, 0x60, 0x20, 0xff, 0x80, 0x48, 0xff, 0xe4, 0x61, 0xff, 0x9d, 0xf7, 0xff, 0xff, 0xff, 0xff, 0xca, 0x9b, 0xff, 0xc1, 0x61, 0xff, 0x29, 0x42, 0xff, 0xe9, 0x31, 0xff, 0x45, 0xb3, 0xff, 0x07, 0xca, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x27, 0xe2, 0xfe, 0xa3, 0xc3, 0x9e, + 0x07, 0xe2, 0xef, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xc8, 0xb9, 0xff, 0xa7, 0x82, 0xff, 0x65, 0xab, 0xff, 0x0a, 0x32, 0xff, 0xa7, 0x31, 0xff, 0x08, 0x7b, 0xff, 0xbe, 0xff, 0xff, 0xff, 0xff, 0xff, 0x09, 0x83, 0xff, 0x40, 0x38, 0xff, 0x40, 0x38, 0xff, 0xd1, 0xb4, 0xff, 0xff, 0xff, 0xff, 0x1c, 0xe7, 0xff, 0xa6, 0x31, 0xff, 0xf8, 0xc5, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xba, 0xfe, 0xff, 0xcb, 0xea, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xc7, 0xd9, 0xff, 0x8e, 0xb3, 0xff, 0xff, 0xff, 0xff, 0x56, 0xad, 0xff, 0x20, 0x30, 0xff, 0x40, 0x40, 0xff, 0x41, 0x51, 0xff, 0x7d, 0xf7, 0xff, 0xff, 0xff, 0xff, 0xeb, 0x9b, 0xff, 0xc2, 0x59, 0xff, 0x29, 0x42, 0xff, 0xe9, 0x31, 0xff, 0x45, 0xb3, 0xff, 0x07, 0xd2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x46, 0xe2, 0xfd, 0xa3, 0xc3, 0x9e, + 0x27, 0xe2, 0xe6, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xc7, 0xd9, 0xff, 0x87, 0x8a, 0xff, 0x65, 0xab, 0xff, 0xe9, 0x39, 0xff, 0xc8, 0x31, 0xff, 0x67, 0x62, 0xff, 0x3b, 0xf7, 0xff, 0xff, 0xff, 0xff, 0x78, 0xde, 0xff, 0xec, 0x9b, 0xff, 0x4e, 0xa4, 0xff, 0x1b, 0xef, 0xff, 0xff, 0xff, 0xff, 0xd7, 0xbd, 0xff, 0x08, 0x42, 0xff, 0xbe, 0xf7, 0xff, 0xff, 0xff, 0xff, 0xcf, 0x7b, 0xff, 0x8a, 0x52, 0xff, 0x6a, 0x72, 0xff, 0x29, 0xda, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x08, 0xe2, 0xff, 0xb6, 0xf5, 0xff, 0xda, 0xe6, 0xff, 0xac, 0x93, 0xff, 0x8a, 0x8b, 0xff, 0x52, 0xbd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x27, 0x8b, 0xff, 0xa3, 0x51, 0xff, 0x29, 0x42, 0xff, 0xe9, 0x31, 0xff, 0x05, 0xbb, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x86, 0xe2, 0xfc, 0xa3, 0xc3, 0x9e, + 0x66, 0xda, 0xd8, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x67, 0x9a, 0xff, 0x65, 0xab, 0xff, 0xe9, 0x39, 0xff, 0x09, 0x42, 0xff, 0x64, 0x41, 0xff, 0x4d, 0xac, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xdf, 0xff, 0xff, 0x29, 0x4a, 0xff, 0x8f, 0x73, 0xff, 0xff, 0xff, 0xff, 0x5d, 0xef, 0xff, 0xa2, 0x10, 0xff, 0x82, 0x10, 0xff, 0x62, 0x10, 0xff, 0x66, 0x51, 0xff, 0xaa, 0xea, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x29, 0xe2, 0xff, 0xb6, 0xf5, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x93, 0xc5, 0xff, 0xc1, 0x69, 0xff, 0x07, 0x4a, 0xff, 0x29, 0x42, 0xff, 0xe9, 0x39, 0xff, 0xe6, 0xc2, 0xff, 0xc7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xc7, 0xe1, 0xff, 0xe5, 0xe2, 0xfb, 0xa3, 0xc3, 0x9e, + 0xc6, 0xd2, 0xc4, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x47, 0xb2, 0xff, 0x65, 0xab, 0xff, 0xe9, 0x31, 0xff, 0x29, 0x42, 0xff, 0xe8, 0x41, 0xff, 0xa2, 0x59, 0xff, 0x0b, 0xa4, 0xff, 0x73, 0xbd, 0xff, 0x73, 0xc5, 0xff, 0x73, 0xc5, 0xff, 0x52, 0xbd, 0xff, 0x68, 0x93, 0xff, 0x00, 0x41, 0xff, 0x11, 0x7c, 0xff, 0xb8, 0xad, 0xff, 0xf0, 0x7b, 0xff, 0xa6, 0x39, 0xff, 0x69, 0x52, 0xff, 0x49, 0x4a, 0xff, 0xc7, 0x39, 0xff, 0xae, 0x9b, 0xff, 0x6a, 0xda, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x08, 0xe2, 0xff, 0xee, 0xcb, 0xff, 0x73, 0xc5, 0xff, 0x94, 0xc5, 0xff, 0x4e, 0xa4, 0xff, 0xe1, 0x69, 0xff, 0x24, 0x62, 0xff, 0x4a, 0x4a, 0xff, 0x29, 0x42, 0xff, 0xe9, 0x39, 0xff, 0x87, 0xd2, 0xff, 0xc7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x64, 0xe3, 0xf9, 0xa3, 0xc3, 0x9e, + 0x25, 0xcb, 0xb2, 0x07, 0xe2, 0xfe, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xd9, 0xff, 0x45, 0xb3, 0xff, 0xe9, 0x31, 0xff, 0x29, 0x42, 0xff, 0x4a, 0x42, 0xff, 0x27, 0x52, 0xff, 0xe0, 0x71, 0xff, 0xc1, 0x61, 0xff, 0xc1, 0x61, 0xff, 0xc1, 0x61, 0xff, 0xc1, 0x61, 0xff, 0xe2, 0x61, 0xff, 0xc5, 0x82, 0xff, 0x44, 0x6a, 0xff, 0x44, 0x29, 0xff, 0x67, 0x29, 0xff, 0x4a, 0x42, 0xff, 0x29, 0x42, 0xff, 0x4a, 0x42, 0xff, 0x49, 0x42, 0xff, 0x66, 0x29, 0xff, 0x46, 0x49, 0xff, 0xe7, 0xc9, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xc4, 0x99, 0xff, 0xc1, 0x61, 0xff, 0xc1, 0x61, 0xff, 0x63, 0x7a, 0xff, 0x88, 0x5a, 0xff, 0x29, 0x42, 0xff, 0x29, 0x42, 0xff, 0xe9, 0x49, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xd9, 0xff, 0xc3, 0xdb, 0xf7, 0xa3, 0xc3, 0x9e, + 0x84, 0xc3, 0xa3, 0x86, 0xe2, 0xfc, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xc6, 0xc2, 0xff, 0xe9, 0x31, 0xff, 0x29, 0x42, 0xff, 0x29, 0x42, 0xff, 0x29, 0x42, 0xff, 0xa6, 0x72, 0xff, 0xa4, 0x82, 0xff, 0x85, 0x72, 0xff, 0x85, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa6, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa4, 0x7a, 0xff, 0x85, 0x7a, 0xff, 0x86, 0x6a, 0xff, 0x48, 0x52, 0xff, 0x48, 0x4a, 0xff, 0x49, 0x4a, 0xff, 0x48, 0x4a, 0xff, 0x48, 0x52, 0xff, 0x66, 0x6a, 0xff, 0x85, 0x92, 0xff, 0x07, 0xda, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x46, 0xa2, 0xff, 0xc4, 0x8a, 0xff, 0xa6, 0x7a, 0xff, 0x09, 0x42, 0xff, 0x29, 0x42, 0xff, 0x29, 0x42, 0xff, 0xe8, 0x89, 0xff, 0xc7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x27, 0xba, 0xff, 0xe3, 0xdb, 0xf6, 0xa3, 0xc3, 0x9e, + 0xa3, 0xc3, 0x9e, 0x25, 0xe3, 0xfa, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x27, 0xda, 0xff, 0xe9, 0x39, 0xff, 0x29, 0x42, 0xff, 0x28, 0x4a, 0xff, 0x09, 0x3a, 0xff, 0x49, 0x4a, 0xff, 0xc4, 0x8a, 0xff, 0xc5, 0x82, 0xff, 0xa5, 0x72, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xc4, 0x82, 0xff, 0xa4, 0x82, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x82, 0xff, 0xc4, 0x82, 0xff, 0xa5, 0x7a, 0xff, 0x66, 0x92, 0xff, 0xe7, 0xd9, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x65, 0xaa, 0xff, 0x29, 0x4a, 0xff, 0x09, 0x3a, 0xff, 0x28, 0x4a, 0xff, 0x08, 0x52, 0xff, 0xe8, 0xc9, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x67, 0x9a, 0xff, 0x03, 0xdc, 0xf6, 0xa3, 0xc3, 0x9e, + 0xa3, 0xc3, 0x9e, 0xc3, 0xdb, 0xf7, 0x07, 0xd2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe8, 0x81, 0xff, 0x29, 0x42, 0xff, 0x28, 0x4a, 0xff, 0x28, 0x4a, 0xff, 0x0a, 0x3a, 0xff, 0x48, 0x52, 0xff, 0xc4, 0x8a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x72, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0x66, 0x92, 0xff, 0xe7, 0xd1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xd9, 0xff, 0x09, 0x7a, 0xff, 0x28, 0x4a, 0xff, 0x28, 0x4a, 0xff, 0x08, 0x9a, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xc8, 0xb1, 0xff, 0xa6, 0x7a, 0xff, 0x03, 0xdc, 0xf6, 0xa3, 0xc3, 0x9e, + 0xa3, 0xc3, 0x9e, 0x03, 0xdc, 0xf6, 0x47, 0xaa, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xd1, 0xff, 0x08, 0x62, 0xff, 0x28, 0x4a, 0xff, 0x28, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x0a, 0x3a, 0xff, 0x48, 0x52, 0xff, 0xa4, 0x82, 0xff, 0xa4, 0x82, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x72, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x72, 0xff, 0x66, 0x92, 0xff, 0x07, 0xd2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xd9, 0xff, 0x28, 0x7a, 0xff, 0x28, 0x72, 0xff, 0xe7, 0xd9, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x89, 0x59, 0xff, 0xa6, 0x72, 0xff, 0x03, 0xdc, 0xf6, 0xa3, 0xc3, 0x9e, + 0xa3, 0xc3, 0x9e, 0xe3, 0xdb, 0xf6, 0xa6, 0x7a, 0xff, 0xc8, 0xb9, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe8, 0xb9, 0xff, 0x28, 0x5a, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x0a, 0x3a, 0xff, 0x48, 0x52, 0xff, 0xa5, 0x7a, 0xff, 0xc4, 0x8a, 0xff, 0xa5, 0x82, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x72, 0xff, 0xa5, 0x72, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x72, 0xff, 0xa5, 0x72, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x82, 0xff, 0xc4, 0x8a, 0xff, 0x85, 0x92, 0xff, 0xe7, 0xd1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xd9, 0xff, 0xe7, 0xd9, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xc7, 0xe1, 0xff, 0x27, 0xc2, 0xff, 0x6a, 0x11, 0xff, 0xa6, 0x72, 0xff, 0xe3, 0xdb, 0xf6, 0xa3, 0xc3, 0x9e, + 0xa3, 0xbb, 0x9e, 0xe3, 0xdb, 0xf6, 0xa6, 0x72, 0xff, 0x89, 0x41, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe8, 0xb1, 0xff, 0x28, 0x52, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x2a, 0x3a, 0xff, 0x29, 0x42, 0xff, 0x67, 0x62, 0xff, 0xa4, 0x82, 0xff, 0xa4, 0x82, 0xff, 0xa4, 0x82, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa4, 0x82, 0xff, 0xa4, 0x82, 0xff, 0xa4, 0x82, 0xff, 0x67, 0x62, 0xff, 0x29, 0x42, 0xff, 0x09, 0x62, 0xff, 0xe7, 0xc9, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x07, 0xe2, 0xff, 0x87, 0x8a, 0xff, 0x6a, 0x11, 0xff, 0xa6, 0x72, 0xff, 0xe3, 0xdb, 0xf6, 0xa3, 0xbb, 0x9e, + 0xa3, 0xbb, 0x9e, 0xe3, 0xdb, 0xf6, 0xa6, 0x72, 0xff, 0x6a, 0x11, 0xff, 0x47, 0xaa, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe8, 0xb1, 0xff, 0x29, 0x5a, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x42, 0xff, 0x0a, 0x3a, 0xff, 0x29, 0x4a, 0xff, 0x67, 0x62, 0xff, 0x85, 0x72, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa4, 0x82, 0xff, 0xa5, 0x82, 0xff, 0xa4, 0x82, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0x85, 0x72, 0xff, 0x67, 0x62, 0xff, 0x29, 0x4a, 0xff, 0x0a, 0x3a, 0xff, 0x29, 0x42, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x62, 0xff, 0xe8, 0xc9, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xc7, 0xe1, 0xff, 0xc6, 0xc2, 0xff, 0xc7, 0x72, 0xff, 0x6a, 0x11, 0xff, 0xa6, 0x72, 0xff, 0xe3, 0xdb, 0xf6, 0xa3, 0xbb, 0x9e, + 0xa3, 0xbb, 0x9e, 0xe3, 0xdb, 0xf6, 0xa6, 0x72, 0xff, 0x6a, 0x11, 0xff, 0xa7, 0x7a, 0xff, 0x86, 0xca, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe8, 0xb9, 0xff, 0x28, 0x6a, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x49, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x42, 0xff, 0x2a, 0x3a, 0xff, 0x29, 0x42, 0xff, 0x28, 0x4a, 0xff, 0x48, 0x52, 0xff, 0x47, 0x5a, 0xff, 0x67, 0x5a, 0xff, 0x47, 0x5a, 0xff, 0x48, 0x52, 0xff, 0x28, 0x4a, 0xff, 0x29, 0x42, 0xff, 0x2a, 0x3a, 0xff, 0x29, 0x42, 0xff, 0x29, 0x4a, 0xff, 0x49, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x28, 0x6a, 0xff, 0xe8, 0xc9, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe8, 0x91, 0xff, 0x65, 0xab, 0xff, 0xc7, 0x72, 0xff, 0x6a, 0x11, 0xff, 0xa6, 0x72, 0xff, 0xe3, 0xdb, 0xf6, 0xa3, 0xbb, 0x9e, + 0xa3, 0xbb, 0x9e, 0xe3, 0xdb, 0xf6, 0xa6, 0x72, 0xff, 0x6a, 0x11, 0xff, 0xc6, 0x7a, 0xff, 0x65, 0xb3, 0xff, 0xe8, 0xa1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xd9, 0xff, 0x08, 0x92, 0xff, 0x29, 0x52, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x42, 0xff, 0x29, 0x42, 0xff, 0x29, 0x42, 0xff, 0x29, 0x42, 0xff, 0x29, 0x42, 0xff, 0x29, 0x42, 0xff, 0x29, 0x42, 0xff, 0x29, 0x42, 0xff, 0x29, 0x42, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x5a, 0xff, 0x08, 0x9a, 0xff, 0xe7, 0xd9, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe8, 0x99, 0xff, 0xe9, 0x39, 0xff, 0x85, 0xab, 0xff, 0xc6, 0x7a, 0xff, 0x6a, 0x11, 0xff, 0xa6, 0x72, 0xff, 0xe3, 0xdb, 0xf6, 0xa3, 0xbb, 0x9e, + 0xa3, 0xbb, 0x9e, 0x02, 0xdc, 0xf6, 0x67, 0x62, 0xff, 0xcb, 0x00, 0xff, 0x67, 0x5a, 0xff, 0x45, 0xa3, 0xff, 0xc9, 0x31, 0xff, 0x08, 0xa2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe8, 0xc9, 0xff, 0x08, 0x8a, 0xff, 0x28, 0x5a, 0xff, 0x49, 0x4a, 0xff, 0x49, 0x4a, 0xff, 0x49, 0x4a, 0xff, 0x49, 0x4a, 0xff, 0x49, 0x4a, 0xff, 0x49, 0x4a, 0xff, 0x49, 0x4a, 0xff, 0x49, 0x4a, 0xff, 0x49, 0x4a, 0xff, 0x49, 0x4a, 0xff, 0x49, 0x4a, 0xff, 0x49, 0x4a, 0xff, 0x28, 0x62, 0xff, 0x08, 0x92, 0xff, 0xe7, 0xd1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x08, 0x9a, 0xff, 0x28, 0x4a, 0xff, 0xc9, 0x29, 0xff, 0x45, 0xa3, 0xff, 0x67, 0x5a, 0xff, 0xcb, 0x00, 0xff, 0x67, 0x62, 0xff, 0x02, 0xdc, 0xf6, 0xa3, 0xbb, 0x9e, + 0x83, 0xbb, 0x9e, 0xa3, 0xcb, 0xf6, 0x25, 0x9b, 0xff, 0xa7, 0x72, 0xff, 0x85, 0xb3, 0xff, 0x84, 0xb3, 0xff, 0xaa, 0x21, 0xff, 0xc9, 0x31, 0xff, 0xe8, 0x89, 0xff, 0xe7, 0xd9, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xc7, 0xe1, 0xff, 0xe7, 0xd1, 0xff, 0xe8, 0xa1, 0xff, 0xe9, 0x79, 0xff, 0xe9, 0x61, 0xff, 0xe9, 0x51, 0xff, 0x09, 0x42, 0xff, 0x09, 0x42, 0xff, 0x09, 0x42, 0xff, 0x09, 0x42, 0xff, 0xe9, 0x51, 0xff, 0xe9, 0x61, 0xff, 0xe8, 0x79, 0xff, 0xe8, 0xa1, 0xff, 0xe7, 0xd9, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xd1, 0xff, 0xe8, 0x79, 0xff, 0x09, 0x3a, 0xff, 0xc9, 0x31, 0xff, 0xaa, 0x21, 0xff, 0x85, 0xb3, 0xff, 0x85, 0xab, 0xff, 0xa7, 0x72, 0xff, 0x25, 0x9b, 0xff, 0xa3, 0xcb, 0xf6, 0x83, 0xbb, 0x9e, + 0x83, 0xbb, 0x9e, 0x64, 0xb3, 0xf6, 0x23, 0xe4, 0xff, 0xc2, 0xfc, 0xff, 0x63, 0xf4, 0xff, 0x82, 0xfc, 0xff, 0x45, 0xa3, 0xff, 0xc9, 0x29, 0xff, 0x09, 0x42, 0xff, 0x28, 0x72, 0xff, 0xe8, 0xb9, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xd9, 0xff, 0xe7, 0xc9, 0xff, 0xe8, 0xc1, 0xff, 0xe8, 0xb9, 0xff, 0xe8, 0xb9, 0xff, 0xe8, 0xc1, 0xff, 0xe8, 0xc9, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe8, 0xb1, 0xff, 0x08, 0x6a, 0xff, 0x28, 0x4a, 0xff, 0x09, 0x42, 0xff, 0xc9, 0x29, 0xff, 0x45, 0xa3, 0xff, 0x82, 0xfc, 0xff, 0x62, 0xf4, 0xff, 0xc2, 0xfc, 0xff, 0x23, 0xe4, 0xff, 0x64, 0xb3, 0xf6, 0x83, 0xbb, 0x9e, + 0x83, 0xc3, 0x9f, 0xc3, 0xd3, 0xf6, 0xa6, 0x7a, 0xff, 0x08, 0x42, 0xff, 0x08, 0x42, 0xff, 0x45, 0xa3, 0xff, 0x82, 0xfc, 0xff, 0xa4, 0xbb, 0xff, 0x84, 0xb3, 0xff, 0xa4, 0xbb, 0xff, 0x85, 0xbb, 0xff, 0xe6, 0xca, 0xff, 0x47, 0xda, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x47, 0xda, 0xff, 0xe5, 0xca, 0xff, 0x84, 0xbb, 0xff, 0xa4, 0xbb, 0xff, 0xa4, 0xbb, 0xff, 0x85, 0xb3, 0xff, 0xa4, 0xbb, 0xff, 0x82, 0xfc, 0xff, 0x45, 0xa3, 0xff, 0x08, 0x42, 0xff, 0x08, 0x42, 0xff, 0xa6, 0x72, 0xff, 0xe3, 0xd3, 0xf6, 0x83, 0xbb, 0x9f, + 0x83, 0xbb, 0xb1, 0x02, 0xe4, 0xff, 0x67, 0x62, 0xf8, 0x0a, 0x01, 0xf9, 0x2a, 0x09, 0xff, 0x87, 0x6a, 0xff, 0x82, 0xfc, 0xff, 0xc6, 0x7a, 0xff, 0x09, 0x3a, 0xff, 0x68, 0x5a, 0xff, 0x68, 0x5a, 0xff, 0x68, 0x5a, 0xff, 0x48, 0x62, 0xff, 0x28, 0x8a, 0xff, 0x08, 0xb2, 0xff, 0xe7, 0xd9, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xd1, 0xff, 0x08, 0xb2, 0xff, 0x28, 0x8a, 0xff, 0x48, 0x62, 0xff, 0x68, 0x5a, 0xff, 0x68, 0x5a, 0xff, 0x68, 0x5a, 0xff, 0x68, 0x5a, 0xff, 0x09, 0x3a, 0xff, 0xc6, 0x7a, 0xff, 0x82, 0xfc, 0xff, 0x87, 0x6a, 0xff, 0x2a, 0x09, 0xff, 0x0b, 0x01, 0xf8, 0x67, 0x62, 0xf8, 0x02, 0xe4, 0xff, 0x83, 0xbb, 0xb1, + 0x63, 0xb3, 0x85, 0xc3, 0xcb, 0xfb, 0xa3, 0xc3, 0xfb, 0x08, 0x42, 0xf0, 0x0b, 0x01, 0xf9, 0xa7, 0x6a, 0xff, 0xc2, 0xfc, 0xff, 0x09, 0x42, 0xff, 0x0b, 0x01, 0xff, 0x8a, 0x19, 0xff, 0x8a, 0x19, 0xff, 0x8a, 0x19, 0xff, 0x8a, 0x19, 0xff, 0x8a, 0x19, 0xff, 0x8a, 0x21, 0xff, 0xa9, 0x39, 0xff, 0xa9, 0x61, 0xff, 0xc9, 0x89, 0xff, 0xc8, 0xa9, 0xff, 0xc8, 0xb9, 0xff, 0xc8, 0xc9, 0xff, 0xc8, 0xd1, 0xff, 0xc8, 0xd1, 0xff, 0xc8, 0xc9, 0xff, 0xc8, 0xb9, 0xff, 0xc8, 0xa1, 0xff, 0xc9, 0x81, 0xff, 0xa9, 0x59, 0xff, 0xaa, 0x39, 0xff, 0x8a, 0x21, 0xff, 0x8a, 0x19, 0xff, 0x8a, 0x19, 0xff, 0x8a, 0x19, 0xff, 0x8a, 0x19, 0xff, 0x8a, 0x19, 0xff, 0x8a, 0x19, 0xff, 0x0b, 0x01, 0xff, 0x08, 0x42, 0xff, 0xc2, 0xfc, 0xff, 0xa7, 0x6a, 0xff, 0x0b, 0x01, 0xf9, 0x08, 0x42, 0xef, 0xa3, 0xc3, 0xfb, 0xc3, 0xcb, 0xfb, 0x63, 0xb3, 0x85, + 0xc3, 0xb3, 0x0d, 0x83, 0xb3, 0x9e, 0xe3, 0xd3, 0xff, 0xc3, 0xcb, 0xff, 0xa6, 0x7a, 0xff, 0x05, 0x9b, 0xff, 0xe3, 0xd3, 0xff, 0x05, 0x93, 0xff, 0xa6, 0x7a, 0xff, 0xe5, 0x8a, 0xff, 0xe5, 0x8a, 0xff, 0xe5, 0x8a, 0xff, 0xe5, 0x8a, 0xff, 0xe5, 0x8a, 0xff, 0xe5, 0x8a, 0xff, 0xe5, 0x8a, 0xff, 0xe5, 0x8a, 0xff, 0xe5, 0x8a, 0xff, 0xe5, 0x8a, 0xff, 0xe5, 0x8a, 0xff, 0xe5, 0x8a, 0xff, 0xe5, 0x8a, 0xff, 0xe5, 0x8a, 0xff, 0xe5, 0x8a, 0xff, 0xe5, 0x8a, 0xff, 0xe5, 0x8a, 0xff, 0xe5, 0x8a, 0xff, 0xe5, 0x8a, 0xff, 0xe5, 0x8a, 0xff, 0xe5, 0x8a, 0xff, 0xe5, 0x8a, 0xff, 0xe5, 0x8a, 0xff, 0xe5, 0x8a, 0xff, 0xe5, 0x8a, 0xff, 0xe5, 0x8a, 0xff, 0xe5, 0x8a, 0xff, 0xa6, 0x7a, 0xff, 0x05, 0x93, 0xff, 0xe3, 0xd3, 0xff, 0x05, 0x9b, 0xff, 0xa6, 0x7a, 0xff, 0xc3, 0xcb, 0xff, 0xe3, 0xd3, 0xff, 0x83, 0xb3, 0x9e, 0xc3, 0xb3, 0x0d, + 0x00, 0x00, 0x00, 0x43, 0xb3, 0x0a, 0x84, 0xb3, 0x91, 0xc3, 0xcb, 0xe5, 0x02, 0xe4, 0xe3, 0xa3, 0xcb, 0xd9, 0x44, 0xab, 0xda, 0xc3, 0xcb, 0xda, 0xe2, 0xdb, 0xda, 0xc2, 0xd3, 0xda, 0xc2, 0xd3, 0xda, 0xc2, 0xd3, 0xda, 0xc2, 0xd3, 0xda, 0xc2, 0xd3, 0xda, 0xc2, 0xd3, 0xda, 0xc2, 0xd3, 0xda, 0xc2, 0xd3, 0xda, 0xc2, 0xd3, 0xda, 0xc2, 0xd3, 0xda, 0xc2, 0xd3, 0xda, 0xc2, 0xd3, 0xda, 0xc2, 0xd3, 0xda, 0xc2, 0xd3, 0xda, 0xc2, 0xd3, 0xda, 0xc2, 0xd3, 0xda, 0xc2, 0xd3, 0xda, 0xc2, 0xd3, 0xda, 0xc2, 0xd3, 0xda, 0xc2, 0xd3, 0xda, 0xc2, 0xd3, 0xda, 0xc2, 0xd3, 0xda, 0xc2, 0xd3, 0xda, 0xc2, 0xd3, 0xda, 0xc2, 0xd3, 0xda, 0xc2, 0xd3, 0xda, 0xc2, 0xd3, 0xda, 0xe2, 0xdb, 0xda, 0xc3, 0xcb, 0xda, 0x44, 0xab, 0xda, 0xa3, 0xcb, 0xd9, 0x02, 0xe4, 0xe3, 0xc3, 0xcb, 0xe5, 0x84, 0xb3, 0x91, 0x43, 0xb3, 0x0a, 0x00, 0x00, 0x00, +#endif +#if LV_COLOR_DEPTH == 16 && LV_COLOR_16_SWAP != 0 + /*Pixel format: Alpha 8 bit, Red: 5 bit, Green: 6 bit, Blue: 5 bit BUT the 2 color bytes are swapped*/ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xec, 0x64, 0x5e, 0xec, 0x64, 0xd7, 0xec, 0x64, 0xff, 0xec, 0x64, 0xff, 0xec, 0x64, 0xfd, 0xec, 0x64, 0xfe, 0xec, 0x64, 0xfe, 0xec, 0x64, 0xfe, 0xec, 0x64, 0xfe, 0xec, 0x64, 0xfe, 0xec, 0x64, 0xfe, 0xec, 0x64, 0xfe, 0xec, 0x64, 0xfe, 0xec, 0x64, 0xfe, 0xec, 0x64, 0xfe, 0xec, 0x64, 0xfe, 0xec, 0x64, 0xfe, 0xec, 0x64, 0xfe, 0xec, 0x64, 0xfd, 0xec, 0x64, 0xff, 0xec, 0x64, 0xff, 0xec, 0x64, 0xd7, 0xe4, 0x64, 0x5c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xec, 0x64, 0x6e, 0xec, 0x64, 0xff, 0xec, 0x64, 0xe4, 0xec, 0x64, 0xa0, 0xec, 0x64, 0xa6, 0xec, 0x84, 0xab, 0xec, 0x64, 0xaa, 0xec, 0x64, 0xaa, 0xec, 0x64, 0xaa, 0xec, 0x64, 0xaa, 0xec, 0x64, 0xaa, 0xec, 0x64, 0xaa, 0xec, 0x64, 0xaa, 0xec, 0x64, 0xaa, 0xec, 0x64, 0xaa, 0xec, 0x64, 0xaa, 0xec, 0x64, 0xaa, 0xec, 0x64, 0xaa, 0xec, 0x64, 0xaa, 0xec, 0x84, 0xab, 0xec, 0x64, 0xa5, 0xec, 0x64, 0xa0, 0xec, 0x64, 0xe4, 0xec, 0x64, 0xff, 0xec, 0x64, 0x6d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf4, 0x65, 0x26, 0xe4, 0x64, 0xff, 0xec, 0x84, 0xc5, 0xec, 0x64, 0x16, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xec, 0x64, 0x16, 0xec, 0x84, 0xc5, 0xec, 0x64, 0xff, 0xec, 0x65, 0x26, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xec, 0x64, 0x5a, 0xf4, 0x84, 0xff, 0xf4, 0x85, 0x43, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xa5, 0x43, 0xf4, 0x85, 0xff, 0xec, 0x64, 0x5a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc4, 0x00, 0x04, 0xc3, 0xa4, 0x3d, 0xc3, 0xc4, 0x43, 0xc3, 0xc4, 0x3b, 0xcb, 0xc4, 0x3c, 0xc3, 0xc4, 0x3b, 0xc3, 0xa3, 0x32, 0xd4, 0x04, 0x8f, 0xf4, 0x84, 0xff, 0xd4, 0x04, 0x65, 0xbb, 0xa3, 0x31, 0xc3, 0xc4, 0x3c, 0xc3, 0xc4, 0x3c, 0xc3, 0xc4, 0x3c, 0xc3, 0xc4, 0x3c, 0xc3, 0xc4, 0x3c, 0xc3, 0xc4, 0x3c, 0xc3, 0xc4, 0x3c, 0xc3, 0xc4, 0x3c, 0xc3, 0xc4, 0x3c, 0xc3, 0xc4, 0x3c, 0xc3, 0xc4, 0x3c, 0xc3, 0xc4, 0x3c, 0xc3, 0xc4, 0x3c, 0xc3, 0xc4, 0x3c, 0xc3, 0xc4, 0x3c, 0xc3, 0xc4, 0x3c, 0xc3, 0xc4, 0x3c, 0xc3, 0xc4, 0x3c, 0xc3, 0xc4, 0x3c, 0xbb, 0xa3, 0x31, 0xd4, 0x04, 0x65, 0xf4, 0x84, 0xff, 0xd4, 0x04, 0x8f, 0xc3, 0xa3, 0x32, 0xc3, 0xc4, 0x3b, 0xcb, 0xc4, 0x3c, 0xc3, 0xc4, 0x3c, 0xc3, 0xc3, 0x42, 0xc3, 0xa4, 0x3d, 0xc4, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xc3, 0xc4, 0x1e, 0xc3, 0xa4, 0xc0, 0xe4, 0x23, 0xf7, 0xfc, 0x83, 0xfa, 0xe4, 0x23, 0xf6, 0xc3, 0xc4, 0xf7, 0xec, 0x43, 0xf7, 0xf4, 0x63, 0xf0, 0xec, 0x43, 0xf9, 0xec, 0x43, 0xff, 0xec, 0x43, 0xf6, 0xec, 0x43, 0xef, 0xf4, 0x63, 0xf7, 0xec, 0x63, 0xf7, 0xec, 0x63, 0xf7, 0xec, 0x63, 0xf7, 0xec, 0x63, 0xf7, 0xec, 0x63, 0xf7, 0xec, 0x63, 0xf7, 0xec, 0x63, 0xf7, 0xec, 0x63, 0xf7, 0xec, 0x63, 0xf7, 0xec, 0x63, 0xf7, 0xec, 0x63, 0xf7, 0xec, 0x63, 0xf7, 0xec, 0x63, 0xf7, 0xec, 0x63, 0xf7, 0xec, 0x63, 0xf7, 0xec, 0x63, 0xf7, 0xec, 0x63, 0xf7, 0xf4, 0x63, 0xf7, 0xec, 0x43, 0xef, 0xec, 0x43, 0xf6, 0xec, 0x43, 0xff, 0xec, 0x43, 0xf9, 0xf4, 0x63, 0xf0, 0xec, 0x43, 0xf7, 0xc3, 0xc4, 0xf7, 0xe4, 0x23, 0xf7, 0xf4, 0x83, 0xfa, 0xe4, 0x23, 0xf7, 0xc3, 0xa4, 0xc0, 0xc3, 0xc4, 0x1e, 0x00, 0x00, 0x00, + 0xc3, 0xc5, 0x15, 0xc3, 0xc4, 0xb6, 0xec, 0x43, 0xff, 0xd4, 0x04, 0xff, 0x72, 0x87, 0xff, 0x9b, 0x25, 0xff, 0xec, 0x43, 0xff, 0x93, 0x05, 0xff, 0x72, 0xa7, 0xff, 0x82, 0xe6, 0xff, 0x82, 0xc6, 0xff, 0x82, 0xe6, 0xff, 0x82, 0xe6, 0xff, 0x82, 0xe6, 0xff, 0x82, 0xe6, 0xff, 0x82, 0xe6, 0xff, 0x82, 0xe6, 0xff, 0x82, 0xe6, 0xff, 0x82, 0xe6, 0xff, 0x82, 0xe6, 0xff, 0x82, 0xe6, 0xff, 0x82, 0xe6, 0xff, 0x82, 0xe6, 0xff, 0x82, 0xe6, 0xff, 0x82, 0xe6, 0xff, 0x82, 0xe6, 0xff, 0x82, 0xe6, 0xff, 0x82, 0xe6, 0xff, 0x82, 0xe6, 0xff, 0x82, 0xe6, 0xff, 0x82, 0xe6, 0xff, 0x82, 0xe6, 0xff, 0x82, 0xe6, 0xff, 0x82, 0xe6, 0xff, 0x82, 0xc6, 0xff, 0x82, 0xe6, 0xff, 0x72, 0xa7, 0xff, 0x93, 0x05, 0xff, 0xec, 0x43, 0xff, 0x9b, 0x25, 0xff, 0x72, 0x87, 0xff, 0xd4, 0x04, 0xff, 0xec, 0x43, 0xff, 0xc3, 0xc4, 0xb6, 0xc4, 0x03, 0x14, + 0xc3, 0xa4, 0x95, 0xe4, 0x23, 0xfc, 0xcb, 0xe4, 0xfb, 0x29, 0xc8, 0xf1, 0x00, 0xca, 0xfb, 0x6a, 0x87, 0xff, 0xfc, 0xa2, 0xff, 0x39, 0xe8, 0xff, 0x00, 0xeb, 0xff, 0x11, 0x69, 0xff, 0x11, 0x69, 0xff, 0x11, 0x69, 0xff, 0x11, 0x69, 0xff, 0x11, 0x6a, 0xff, 0x21, 0x69, 0xff, 0x41, 0x89, 0xff, 0x61, 0x89, 0xff, 0x89, 0xa8, 0xff, 0xa9, 0xc8, 0xff, 0xc1, 0xc8, 0xff, 0xd1, 0xc8, 0xff, 0xd9, 0xc7, 0xff, 0xd9, 0xc7, 0xff, 0xd1, 0xc8, 0xff, 0xc1, 0xc8, 0xff, 0xa9, 0xc8, 0xff, 0x89, 0xa8, 0xff, 0x61, 0x89, 0xff, 0x39, 0x89, 0xff, 0x19, 0x69, 0xff, 0x11, 0x6a, 0xff, 0x11, 0x69, 0xff, 0x11, 0x69, 0xff, 0x11, 0x69, 0xff, 0x11, 0x69, 0xff, 0x11, 0x69, 0xff, 0x00, 0xeb, 0xff, 0x39, 0xe8, 0xff, 0xfc, 0xa2, 0xff, 0x6a, 0x87, 0xff, 0x00, 0xca, 0xfb, 0x31, 0xc8, 0xf2, 0xcb, 0xe4, 0xfc, 0xe4, 0x43, 0xfd, 0xc3, 0xc4, 0x94, + 0xcb, 0xe4, 0xaa, 0xfc, 0x83, 0xfc, 0x62, 0x87, 0xf9, 0x00, 0xea, 0xfb, 0x09, 0x49, 0xff, 0x72, 0xa7, 0xff, 0xfc, 0x82, 0xff, 0x93, 0x06, 0xff, 0x5a, 0x67, 0xff, 0x72, 0xa7, 0xff, 0x72, 0xa6, 0xff, 0x72, 0xa6, 0xff, 0x82, 0x87, 0xff, 0xa2, 0x67, 0xff, 0xc2, 0x27, 0xff, 0xd9, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xd9, 0xe7, 0xff, 0xba, 0x27, 0xff, 0x9a, 0x67, 0xff, 0x7a, 0xa7, 0xff, 0x72, 0xa6, 0xff, 0x72, 0xa6, 0xff, 0x72, 0xa6, 0xff, 0x72, 0xa7, 0xff, 0x5a, 0x47, 0xff, 0x93, 0x06, 0xff, 0xfc, 0x82, 0xff, 0x72, 0xa7, 0xff, 0x09, 0x49, 0xff, 0x00, 0xea, 0xfc, 0x62, 0x87, 0xfa, 0xfc, 0x83, 0xfc, 0xcb, 0xe4, 0xaa, + 0xcb, 0xe4, 0x9e, 0xe4, 0x23, 0xf6, 0x9b, 0x25, 0xff, 0x72, 0xa6, 0xff, 0x72, 0xa7, 0xff, 0xbb, 0xa4, 0xff, 0xfc, 0x62, 0xff, 0x9b, 0x25, 0xff, 0x93, 0x25, 0xff, 0xa3, 0x45, 0xff, 0xa3, 0x25, 0xff, 0xc2, 0xa6, 0xff, 0xda, 0x27, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xd2, 0x27, 0xff, 0xba, 0xa6, 0xff, 0xa3, 0x25, 0xff, 0x9b, 0x45, 0xff, 0xa3, 0x45, 0xff, 0x93, 0x25, 0xff, 0x9b, 0x25, 0xff, 0xfc, 0x82, 0xff, 0xbb, 0xa4, 0xff, 0x6a, 0xa7, 0xff, 0x72, 0xa6, 0xff, 0x9b, 0x25, 0xff, 0xe4, 0x23, 0xf6, 0xcb, 0xe4, 0x9e, + 0xcb, 0xc4, 0x9e, 0xc3, 0xc4, 0xf6, 0xec, 0x43, 0xff, 0xfc, 0xa2, 0xff, 0xfc, 0x82, 0xff, 0xec, 0x63, 0xff, 0x82, 0xe6, 0xff, 0x21, 0x89, 0xff, 0x39, 0xe9, 0xff, 0x69, 0xe8, 0xff, 0xb9, 0xe8, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xd9, 0xe7, 0xff, 0xc1, 0xe8, 0xff, 0xb9, 0xe8, 0xff, 0xb1, 0xe8, 0xff, 0xb1, 0xe8, 0xff, 0xb9, 0xe8, 0xff, 0xc1, 0xe7, 0xff, 0xd9, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xb1, 0xe8, 0xff, 0x61, 0xe8, 0xff, 0x39, 0xe9, 0xff, 0x39, 0xe9, 0xff, 0x21, 0x89, 0xff, 0x82, 0xe6, 0xff, 0xf4, 0x63, 0xff, 0xfc, 0x82, 0xff, 0xfc, 0xa2, 0xff, 0xec, 0x43, 0xff, 0xc3, 0xc4, 0xf6, 0xcb, 0xc4, 0x9e, + 0xcb, 0xe4, 0x9e, 0xe4, 0x43, 0xf6, 0x82, 0xe6, 0xff, 0x31, 0xa9, 0xff, 0x8b, 0x06, 0xff, 0xa3, 0x65, 0xff, 0x19, 0x8a, 0xff, 0x42, 0x08, 0xff, 0x92, 0x08, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xd1, 0xe7, 0xff, 0xa2, 0x08, 0xff, 0x7a, 0x08, 0xff, 0x62, 0x08, 0xff, 0x52, 0x28, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x5a, 0x28, 0xff, 0x62, 0x08, 0xff, 0x7a, 0x08, 0xff, 0xa2, 0x08, 0xff, 0xd1, 0xe7, 0xff, 0xe1, 0xc7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xd9, 0xe7, 0xff, 0x8a, 0x08, 0xff, 0x4a, 0x28, 0xff, 0x42, 0x08, 0xff, 0x19, 0x8a, 0xff, 0xa3, 0x65, 0xff, 0x8b, 0x06, 0xff, 0x31, 0xa9, 0xff, 0x82, 0xe6, 0xff, 0xe4, 0x43, 0xf6, 0xcb, 0xe4, 0x9e, + 0xcb, 0xe3, 0x9e, 0xf4, 0x63, 0xf6, 0x62, 0x87, 0xff, 0x00, 0xcb, 0xff, 0x5a, 0x67, 0xff, 0xa3, 0x45, 0xff, 0x39, 0xc9, 0xff, 0xaa, 0x08, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xc1, 0xe8, 0xff, 0x82, 0x08, 0xff, 0x5a, 0x28, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x28, 0xff, 0x4a, 0x28, 0xff, 0x4a, 0x28, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x28, 0xff, 0x4a, 0x28, 0xff, 0x4a, 0x28, 0xff, 0x5a, 0x28, 0xff, 0x8a, 0x08, 0xff, 0xc1, 0xe8, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0x9a, 0x08, 0xff, 0x4a, 0x28, 0xff, 0x31, 0xc9, 0xff, 0xa3, 0x45, 0xff, 0x5a, 0x67, 0xff, 0x00, 0xcb, 0xff, 0x62, 0x87, 0xff, 0xf4, 0x63, 0xf6, 0xcb, 0xe4, 0x9e, + 0xcb, 0xe4, 0x9e, 0xec, 0x43, 0xf6, 0x7a, 0xc6, 0xff, 0x11, 0x6a, 0xff, 0x72, 0xc6, 0xff, 0xb3, 0x65, 0xff, 0xa9, 0xe8, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xd1, 0xe7, 0xff, 0x8a, 0x08, 0xff, 0x52, 0x28, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x28, 0xff, 0x4a, 0x29, 0xff, 0x42, 0x29, 0xff, 0x3a, 0x09, 0xff, 0x3a, 0x09, 0xff, 0x3a, 0x09, 0xff, 0x3a, 0x09, 0xff, 0x3a, 0x09, 0xff, 0x3a, 0x09, 0xff, 0x3a, 0x09, 0xff, 0x42, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x28, 0xff, 0x4a, 0x29, 0xff, 0x52, 0x28, 0xff, 0x9a, 0x08, 0xff, 0xd9, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xa1, 0xe8, 0xff, 0x39, 0xe9, 0xff, 0xab, 0x65, 0xff, 0x72, 0xc6, 0xff, 0x11, 0x6a, 0xff, 0x7a, 0xc6, 0xff, 0xec, 0x43, 0xf6, 0xcb, 0xe3, 0x9e, + 0xcb, 0xe3, 0x9e, 0xec, 0x43, 0xf6, 0x7a, 0xa6, 0xff, 0x09, 0x4a, 0xff, 0x7a, 0xa7, 0xff, 0xd2, 0x66, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xc9, 0xe8, 0xff, 0x62, 0x28, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x28, 0xff, 0x4a, 0x29, 0xff, 0x42, 0x09, 0xff, 0x3a, 0x09, 0xff, 0x42, 0x29, 0xff, 0x52, 0x48, 0xff, 0x5a, 0x67, 0xff, 0x62, 0x67, 0xff, 0x62, 0x67, 0xff, 0x62, 0x67, 0xff, 0x5a, 0x67, 0xff, 0x52, 0x48, 0xff, 0x42, 0x29, 0xff, 0x3a, 0x09, 0xff, 0x42, 0x09, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x28, 0xff, 0x4a, 0x29, 0xff, 0x6a, 0x28, 0xff, 0xc1, 0xe8, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0x91, 0xe8, 0xff, 0xab, 0x65, 0xff, 0x72, 0xc7, 0xff, 0x09, 0x4a, 0xff, 0x7a, 0xa6, 0xff, 0xec, 0x43, 0xf6, 0xcb, 0xe3, 0x9e, + 0xcb, 0xe3, 0x9e, 0xec, 0x43, 0xf6, 0x7a, 0xa6, 0xff, 0x09, 0x4a, 0xff, 0xaa, 0x47, 0xff, 0xe1, 0xc7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xd9, 0xe7, 0xff, 0x7a, 0x28, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x42, 0x29, 0xff, 0x3a, 0x29, 0xff, 0x52, 0x48, 0xff, 0x6a, 0x86, 0xff, 0x7a, 0xa5, 0xff, 0x82, 0xa4, 0xff, 0x82, 0xa4, 0xff, 0x82, 0xc4, 0xff, 0x82, 0xa4, 0xff, 0x82, 0xc4, 0xff, 0x82, 0xa4, 0xff, 0x82, 0xa4, 0xff, 0x7a, 0xa5, 0xff, 0x6a, 0x86, 0xff, 0x52, 0x48, 0xff, 0x3a, 0x29, 0xff, 0x42, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x5a, 0x29, 0xff, 0xb1, 0xe8, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xc2, 0xc6, 0xff, 0x72, 0xc7, 0xff, 0x09, 0x4a, 0xff, 0x7a, 0xa6, 0xff, 0xec, 0x43, 0xf6, 0xcb, 0xe3, 0x9e, + 0xcb, 0xe3, 0x9e, 0xec, 0x43, 0xf6, 0x7a, 0xc6, 0xff, 0x49, 0x89, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0x82, 0x08, 0xff, 0x3a, 0x2a, 0xff, 0x4a, 0x29, 0xff, 0x6a, 0x86, 0xff, 0x82, 0xa4, 0xff, 0x82, 0xa4, 0xff, 0x82, 0xa4, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x82, 0xa4, 0xff, 0x82, 0xa4, 0xff, 0x82, 0xa4, 0xff, 0x6a, 0x86, 0xff, 0x4a, 0x29, 0xff, 0x3a, 0x2a, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x52, 0x28, 0xff, 0xb1, 0xe8, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x07, 0xff, 0x8a, 0x87, 0xff, 0x09, 0x4a, 0xff, 0x7a, 0xc6, 0xff, 0xec, 0x43, 0xf6, 0xcb, 0xe3, 0x9e, + 0xcb, 0xc3, 0x9e, 0xec, 0x43, 0xf6, 0x82, 0xa6, 0xff, 0xc1, 0xc8, 0xff, 0xe1, 0xc7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xc1, 0xe8, 0xff, 0xc9, 0xe8, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xd9, 0xe7, 0xff, 0x92, 0x27, 0xff, 0x82, 0xa4, 0xff, 0x82, 0xa4, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x82, 0xa4, 0xff, 0x82, 0xa4, 0xff, 0x5a, 0x67, 0xff, 0x3a, 0x2a, 0xff, 0x42, 0x29, 0xff, 0x4a, 0x28, 0xff, 0x5a, 0x28, 0xff, 0xc1, 0xe8, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xca, 0x07, 0xff, 0x11, 0x4a, 0xff, 0x7a, 0xc6, 0xff, 0xec, 0x43, 0xf6, 0xcb, 0xc3, 0x9e, + 0xcb, 0xc3, 0x9e, 0xe4, 0x43, 0xf6, 0xaa, 0x47, 0xff, 0xe1, 0xc7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xd1, 0xe8, 0xff, 0x62, 0x08, 0xff, 0x62, 0x28, 0xff, 0xd1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xa2, 0x46, 0xff, 0x72, 0x85, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x72, 0xa5, 0xff, 0x72, 0xa5, 0xff, 0x72, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x72, 0x85, 0xff, 0x7a, 0xa5, 0xff, 0x82, 0xa4, 0xff, 0x62, 0x67, 0xff, 0x3a, 0x0a, 0xff, 0x42, 0x29, 0xff, 0x4a, 0x28, 0xff, 0x6a, 0x28, 0xff, 0xd9, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0x61, 0x89, 0xff, 0x7a, 0xc6, 0xff, 0xec, 0x43, 0xf6, 0xcb, 0xc3, 0x9e, + 0xcb, 0xc3, 0x9e, 0xe3, 0xe3, 0xf7, 0xd2, 0x07, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0x81, 0xe8, 0xff, 0x42, 0x29, 0xff, 0x4a, 0x28, 0xff, 0x6a, 0x28, 0xff, 0xc9, 0xe8, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xa2, 0x46, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x72, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x82, 0xa5, 0xff, 0x82, 0xa4, 0xff, 0x82, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x72, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x72, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x8a, 0xc4, 0xff, 0x62, 0x67, 0xff, 0x3a, 0x0a, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x28, 0xff, 0x9a, 0x08, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xb1, 0xc8, 0xff, 0x7a, 0xa6, 0xff, 0xe4, 0x23, 0xf6, 0xcb, 0xc3, 0x9e, + 0xcb, 0xc3, 0x9e, 0xe3, 0x25, 0xfa, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xda, 0x27, 0xff, 0x39, 0xe9, 0xff, 0x42, 0x29, 0xff, 0x4a, 0x28, 0xff, 0x3a, 0x0a, 0xff, 0x72, 0x48, 0xff, 0xda, 0x07, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xa2, 0x46, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x82, 0xa4, 0xff, 0x82, 0xa5, 0xff, 0x7a, 0xa6, 0xff, 0x72, 0xa6, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x82, 0xa4, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xc5, 0xff, 0x8a, 0xc4, 0xff, 0x52, 0x48, 0xff, 0x3a, 0x0a, 0xff, 0x4a, 0x28, 0xff, 0x52, 0x08, 0xff, 0xd1, 0xe8, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0x9a, 0x67, 0xff, 0xe4, 0x23, 0xf6, 0xcb, 0xc3, 0x9e, + 0xcb, 0xa4, 0xa3, 0xe2, 0x86, 0xfc, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xc2, 0xe6, 0xff, 0x31, 0xe9, 0xff, 0x42, 0x28, 0xff, 0x42, 0x29, 0xff, 0x42, 0x4a, 0xff, 0x7a, 0x84, 0xff, 0x8a, 0x03, 0xff, 0xd1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xaa, 0x65, 0xff, 0x7a, 0xa5, 0xff, 0x62, 0x88, 0xff, 0x41, 0xe7, 0xff, 0x29, 0x86, 0xff, 0x29, 0x87, 0xff, 0x39, 0xe8, 0xff, 0x52, 0x69, 0xff, 0x5a, 0x67, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0x63, 0xff, 0x6a, 0x02, 0xff, 0x6a, 0x03, 0xff, 0x6a, 0x23, 0xff, 0x6a, 0x02, 0xff, 0x6a, 0x03, 0xff, 0x7a, 0x84, 0xff, 0x82, 0xc5, 0xff, 0x42, 0x29, 0xff, 0x42, 0x29, 0xff, 0x42, 0x29, 0xff, 0x89, 0xe8, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xba, 0x27, 0xff, 0xe4, 0x23, 0xf6, 0xcb, 0xc3, 0x9e, + 0xd3, 0x45, 0xb3, 0xe2, 0x07, 0xfe, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xd2, 0x07, 0xff, 0xb3, 0x65, 0xff, 0x31, 0xe9, 0xff, 0x42, 0x29, 0xff, 0x42, 0x4a, 0xff, 0x52, 0x05, 0xff, 0x61, 0x80, 0xff, 0x61, 0xe2, 0xff, 0x8a, 0x24, 0xff, 0xd1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0x82, 0x29, 0xff, 0x3a, 0x0a, 0xff, 0x29, 0x66, 0xff, 0x31, 0xa7, 0xff, 0x31, 0xa7, 0xff, 0x29, 0x66, 0xff, 0x42, 0x2a, 0xff, 0x42, 0x2a, 0xff, 0x42, 0x29, 0xff, 0x5a, 0x05, 0xff, 0x72, 0x23, 0xff, 0x6a, 0x22, 0xff, 0x6a, 0x02, 0xff, 0x6a, 0x23, 0xff, 0x69, 0xe2, 0xff, 0x51, 0x60, 0xff, 0x7a, 0x42, 0xff, 0x62, 0xa8, 0xff, 0x42, 0x29, 0xff, 0x42, 0x29, 0xff, 0x49, 0xe9, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xda, 0x07, 0xff, 0xe3, 0xe4, 0xf7, 0xcb, 0xc3, 0x9e, + 0xda, 0xc6, 0xc6, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xc7, 0xff, 0xb2, 0x47, 0xff, 0xab, 0x65, 0xff, 0x31, 0xe9, 0xff, 0x42, 0x29, 0xff, 0x39, 0xc7, 0xff, 0x61, 0xe2, 0xff, 0xc5, 0x52, 0xff, 0xe6, 0xfa, 0xff, 0xef, 0x3b, 0xff, 0xed, 0xf7, 0xff, 0xe2, 0x8a, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0x71, 0x86, 0xff, 0xad, 0x34, 0xff, 0xe7, 0x1c, 0xff, 0xe6, 0xfc, 0xff, 0x94, 0x72, 0xff, 0x29, 0x45, 0xff, 0x4a, 0x28, 0xff, 0x31, 0x87, 0xff, 0x84, 0x31, 0xff, 0xef, 0x1a, 0xff, 0xe6, 0xfa, 0xff, 0xef, 0x1b, 0xff, 0xef, 0x3c, 0xff, 0xee, 0xfa, 0xff, 0xc5, 0x73, 0xff, 0x69, 0xe2, 0xff, 0x6a, 0x03, 0xff, 0x4a, 0x49, 0xff, 0x42, 0x29, 0xff, 0x39, 0xe9, 0xff, 0xd2, 0x66, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe3, 0x64, 0xf9, 0xcb, 0xc3, 0x9e, + 0xda, 0x66, 0xd8, 0xe1, 0xc7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xc7, 0xff, 0x9a, 0x87, 0xff, 0xab, 0x65, 0xff, 0x39, 0xe9, 0xff, 0x3a, 0x09, 0xff, 0x49, 0xa4, 0xff, 0xc5, 0x93, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xbb, 0xff, 0xea, 0xcb, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xf5, 0x76, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xef, 0x5d, 0xff, 0x39, 0xc7, 0xff, 0x39, 0xa6, 0xff, 0x39, 0x86, 0xff, 0xad, 0x75, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xcd, 0xf5, 0xff, 0x69, 0xe1, 0xff, 0x52, 0x06, 0xff, 0x42, 0x29, 0xff, 0x39, 0xe9, 0xff, 0xc2, 0xe6, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0xe5, 0xfb, 0xcb, 0xc3, 0x9e, + 0xe2, 0x47, 0xe7, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xd1, 0xc8, 0xff, 0x8a, 0x87, 0xff, 0xab, 0x65, 0xff, 0x3a, 0x09, 0xff, 0x31, 0xa7, 0xff, 0x6a, 0xa8, 0xff, 0xff, 0x9d, 0xff, 0xff, 0xff, 0xff, 0xbd, 0x53, 0xff, 0x72, 0x66, 0xff, 0x7a, 0xa7, 0xff, 0xd6, 0x58, 0xff, 0xfe, 0xbb, 0xff, 0xe2, 0x8a, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x08, 0xff, 0xed, 0x55, 0xff, 0xff, 0xbf, 0xff, 0xff, 0xff, 0xff, 0x63, 0x0c, 0xff, 0x21, 0x24, 0xff, 0x39, 0xa7, 0xff, 0xa5, 0x14, 0xff, 0xff, 0xff, 0xff, 0xd6, 0x58, 0xff, 0x72, 0x45, 0xff, 0x6a, 0x04, 0xff, 0xac, 0xb0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xdf, 0xff, 0x82, 0xe5, 0xff, 0x51, 0xc3, 0xff, 0x42, 0x29, 0xff, 0x31, 0xe9, 0xff, 0xbb, 0x05, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x86, 0xfc, 0xcb, 0xc3, 0x9e, + 0xe2, 0x07, 0xf0, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xb9, 0xc8, 0xff, 0x7a, 0xa7, 0xff, 0xab, 0x65, 0xff, 0x32, 0x0a, 0xff, 0x31, 0xa7, 0xff, 0x7b, 0x08, 0xff, 0xff, 0xbd, 0xff, 0xff, 0xff, 0xff, 0x83, 0x08, 0xff, 0x48, 0xc0, 0xff, 0x48, 0xe0, 0xff, 0xac, 0x8f, 0xff, 0xff, 0xff, 0xff, 0xe5, 0xf8, 0xff, 0xc9, 0xc7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x08, 0xff, 0xc4, 0x10, 0xff, 0xff, 0xff, 0xff, 0x94, 0x92, 0xff, 0x20, 0xe3, 0xff, 0x31, 0x86, 0xff, 0xa5, 0x14, 0xff, 0xff, 0xff, 0xff, 0xad, 0x55, 0xff, 0x28, 0x20, 0xff, 0x38, 0x00, 0xff, 0x6a, 0x45, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x8b, 0x27, 0xff, 0x59, 0xc2, 0xff, 0x42, 0x29, 0xff, 0x31, 0xe9, 0xff, 0xb3, 0x45, 0xff, 0xd2, 0x07, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x46, 0xfd, 0xc3, 0xc3, 0x9e, + 0xe1, 0xe7, 0xf7, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xa9, 0xa8, 0xff, 0x7a, 0xa7, 0xff, 0xab, 0x65, 0xff, 0x31, 0xea, 0xff, 0x39, 0xa7, 0xff, 0x83, 0x07, 0xff, 0xff, 0x9d, 0xff, 0xff, 0xff, 0xff, 0x93, 0x8a, 0xff, 0x61, 0xc0, 0xff, 0x7a, 0xa4, 0xff, 0x72, 0xe8, 0xff, 0x7b, 0xf0, 0xff, 0x6b, 0x4d, 0xff, 0x59, 0x86, 0xff, 0xc9, 0xc7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xd9, 0xe8, 0xff, 0xf5, 0xb6, 0xff, 0xce, 0x59, 0xff, 0x21, 0x04, 0xff, 0x29, 0x25, 0xff, 0xa5, 0x34, 0xff, 0xff, 0xff, 0xff, 0xce, 0x7a, 0xff, 0x7b, 0x4b, 0xff, 0x8b, 0x49, 0xff, 0xbd, 0x53, 0xff, 0xff, 0xff, 0xff, 0xde, 0x99, 0xff, 0x7a, 0x63, 0xff, 0x6a, 0x23, 0xff, 0x42, 0x29, 0xff, 0x31, 0xe9, 0xff, 0xb3, 0x45, 0xff, 0xca, 0x07, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x27, 0xfe, 0xc3, 0xc3, 0x9e, + 0xe1, 0xe7, 0xfb, 0xe1, 0xe7, 0xff, 0xe1, 0xc7, 0xff, 0x99, 0xc8, 0xff, 0x7a, 0xa7, 0xff, 0xab, 0x65, 0xff, 0x31, 0xea, 0xff, 0x39, 0xa7, 0xff, 0x83, 0x07, 0xff, 0xff, 0x9d, 0xff, 0xff, 0xff, 0xff, 0x93, 0x8a, 0xff, 0x61, 0xa0, 0xff, 0x8b, 0x06, 0xff, 0x52, 0x06, 0xff, 0x18, 0xe5, 0xff, 0x31, 0x86, 0xff, 0x31, 0x86, 0xff, 0x72, 0x6a, 0xff, 0xea, 0xaa, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x28, 0xff, 0xf5, 0x75, 0xff, 0x39, 0xc7, 0xff, 0x18, 0xc3, 0xff, 0xad, 0x34, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x83, 0x28, 0xff, 0x59, 0x60, 0xff, 0x7a, 0xc6, 0xff, 0x42, 0x29, 0xff, 0x31, 0xe9, 0xff, 0xb3, 0x65, 0xff, 0xc2, 0x27, 0xff, 0xe1, 0xc7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x07, 0xfe, 0xc3, 0xc3, 0x9e, + 0xe1, 0xe7, 0xfa, 0xe1, 0xe7, 0xff, 0xe1, 0xc7, 0xff, 0x99, 0xc8, 0xff, 0x7a, 0xa7, 0xff, 0xab, 0x65, 0xff, 0x31, 0xea, 0xff, 0x39, 0xa7, 0xff, 0x83, 0x07, 0xff, 0xff, 0x9d, 0xff, 0xff, 0xff, 0xff, 0x93, 0xaa, 0xff, 0x61, 0xa0, 0xff, 0x8b, 0x06, 0xff, 0x51, 0xe5, 0xff, 0x19, 0x05, 0xff, 0x31, 0x66, 0xff, 0x31, 0x65, 0xff, 0x8c, 0x31, 0xff, 0xfe, 0xdb, 0xff, 0xe2, 0x8a, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x08, 0xff, 0x9a, 0xab, 0xff, 0x08, 0x41, 0xff, 0xa5, 0x14, 0xff, 0xff, 0xff, 0xff, 0xe7, 0x3d, 0xff, 0xbd, 0xb5, 0xff, 0xcd, 0x93, 0xff, 0xe6, 0xb9, 0xff, 0xff, 0xff, 0xff, 0xd6, 0x37, 0xff, 0x7a, 0x63, 0xff, 0x6a, 0x23, 0xff, 0x42, 0x29, 0xff, 0x31, 0xe9, 0xff, 0xb3, 0x65, 0xff, 0xc2, 0x27, 0xff, 0xe1, 0xc7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x07, 0xfe, 0xc3, 0xc3, 0x9e, + 0xe2, 0x07, 0xf6, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xa9, 0xc8, 0xff, 0x7a, 0xa7, 0xff, 0xab, 0x65, 0xff, 0x31, 0xea, 0xff, 0x31, 0xa7, 0xff, 0x83, 0x08, 0xff, 0xff, 0x9d, 0xff, 0xff, 0xff, 0xff, 0x8b, 0x49, 0xff, 0x61, 0xa1, 0xff, 0x6a, 0x22, 0xff, 0x8b, 0x6a, 0xff, 0xc6, 0x19, 0xff, 0x94, 0x92, 0xff, 0x21, 0x04, 0xff, 0xa5, 0x14, 0xff, 0xff, 0xff, 0xff, 0xe5, 0xf7, 0xff, 0xda, 0x49, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe8, 0xff, 0x60, 0xe3, 0xff, 0xa4, 0xf3, 0xff, 0xff, 0xff, 0xff, 0xa5, 0x57, 0xff, 0x20, 0x60, 0xff, 0x48, 0x80, 0xff, 0x61, 0xe4, 0xff, 0xf7, 0x9d, 0xff, 0xff, 0xff, 0xff, 0x9b, 0xca, 0xff, 0x61, 0xc1, 0xff, 0x42, 0x29, 0xff, 0x31, 0xe9, 0xff, 0xb3, 0x45, 0xff, 0xca, 0x07, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x27, 0xfe, 0xc3, 0xa3, 0x9e, + 0xe2, 0x07, 0xef, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xb9, 0xc8, 0xff, 0x82, 0xa7, 0xff, 0xab, 0x65, 0xff, 0x32, 0x0a, 0xff, 0x31, 0xa7, 0xff, 0x7b, 0x08, 0xff, 0xff, 0xbe, 0xff, 0xff, 0xff, 0xff, 0x83, 0x09, 0xff, 0x38, 0x40, 0xff, 0x38, 0x40, 0xff, 0xb4, 0xd1, 0xff, 0xff, 0xff, 0xff, 0xe7, 0x1c, 0xff, 0x31, 0xa6, 0xff, 0xc5, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xba, 0xff, 0xea, 0xcb, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xd9, 0xc7, 0xff, 0xb3, 0x8e, 0xff, 0xff, 0xff, 0xff, 0xad, 0x56, 0xff, 0x30, 0x20, 0xff, 0x40, 0x40, 0xff, 0x51, 0x41, 0xff, 0xf7, 0x7d, 0xff, 0xff, 0xff, 0xff, 0x9b, 0xeb, 0xff, 0x59, 0xc2, 0xff, 0x42, 0x29, 0xff, 0x31, 0xe9, 0xff, 0xb3, 0x45, 0xff, 0xd2, 0x07, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x46, 0xfd, 0xc3, 0xa3, 0x9e, + 0xe2, 0x27, 0xe6, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xd9, 0xc7, 0xff, 0x8a, 0x87, 0xff, 0xab, 0x65, 0xff, 0x39, 0xe9, 0xff, 0x31, 0xc8, 0xff, 0x62, 0x67, 0xff, 0xf7, 0x3b, 0xff, 0xff, 0xff, 0xff, 0xde, 0x78, 0xff, 0x9b, 0xec, 0xff, 0xa4, 0x4e, 0xff, 0xef, 0x1b, 0xff, 0xff, 0xff, 0xff, 0xbd, 0xd7, 0xff, 0x42, 0x08, 0xff, 0xf7, 0xbe, 0xff, 0xff, 0xff, 0xff, 0x7b, 0xcf, 0xff, 0x52, 0x8a, 0xff, 0x72, 0x6a, 0xff, 0xda, 0x29, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x08, 0xff, 0xf5, 0xb6, 0xff, 0xe6, 0xda, 0xff, 0x93, 0xac, 0xff, 0x8b, 0x8a, 0xff, 0xbd, 0x52, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x8b, 0x27, 0xff, 0x51, 0xa3, 0xff, 0x42, 0x29, 0xff, 0x31, 0xe9, 0xff, 0xbb, 0x05, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x86, 0xfc, 0xc3, 0xa3, 0x9e, + 0xda, 0x66, 0xd8, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0x9a, 0x67, 0xff, 0xab, 0x65, 0xff, 0x39, 0xe9, 0xff, 0x42, 0x09, 0xff, 0x41, 0x64, 0xff, 0xac, 0x4d, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xdf, 0xff, 0x4a, 0x29, 0xff, 0x73, 0x8f, 0xff, 0xff, 0xff, 0xff, 0xef, 0x5d, 0xff, 0x10, 0xa2, 0xff, 0x10, 0x82, 0xff, 0x10, 0x62, 0xff, 0x51, 0x66, 0xff, 0xea, 0xaa, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x29, 0xff, 0xf5, 0xb6, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc5, 0x93, 0xff, 0x69, 0xc1, 0xff, 0x4a, 0x07, 0xff, 0x42, 0x29, 0xff, 0x39, 0xe9, 0xff, 0xc2, 0xe6, 0xff, 0xe1, 0xc7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xc7, 0xff, 0xe2, 0xe5, 0xfb, 0xc3, 0xa3, 0x9e, + 0xd2, 0xc6, 0xc4, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xb2, 0x47, 0xff, 0xab, 0x65, 0xff, 0x31, 0xe9, 0xff, 0x42, 0x29, 0xff, 0x41, 0xe8, 0xff, 0x59, 0xa2, 0xff, 0xa4, 0x0b, 0xff, 0xbd, 0x73, 0xff, 0xc5, 0x73, 0xff, 0xc5, 0x73, 0xff, 0xbd, 0x52, 0xff, 0x93, 0x68, 0xff, 0x41, 0x00, 0xff, 0x7c, 0x11, 0xff, 0xad, 0xb8, 0xff, 0x7b, 0xf0, 0xff, 0x39, 0xa6, 0xff, 0x52, 0x69, 0xff, 0x4a, 0x49, 0xff, 0x39, 0xc7, 0xff, 0x9b, 0xae, 0xff, 0xda, 0x6a, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x08, 0xff, 0xcb, 0xee, 0xff, 0xc5, 0x73, 0xff, 0xc5, 0x94, 0xff, 0xa4, 0x4e, 0xff, 0x69, 0xe1, 0xff, 0x62, 0x24, 0xff, 0x4a, 0x4a, 0xff, 0x42, 0x29, 0xff, 0x39, 0xe9, 0xff, 0xd2, 0x87, 0xff, 0xe1, 0xc7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe3, 0x64, 0xf9, 0xc3, 0xa3, 0x9e, + 0xcb, 0x25, 0xb2, 0xe2, 0x07, 0xfe, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xd9, 0xe7, 0xff, 0xb3, 0x45, 0xff, 0x31, 0xe9, 0xff, 0x42, 0x29, 0xff, 0x42, 0x4a, 0xff, 0x52, 0x27, 0xff, 0x71, 0xe0, 0xff, 0x61, 0xc1, 0xff, 0x61, 0xc1, 0xff, 0x61, 0xc1, 0xff, 0x61, 0xc1, 0xff, 0x61, 0xe2, 0xff, 0x82, 0xc5, 0xff, 0x6a, 0x44, 0xff, 0x29, 0x44, 0xff, 0x29, 0x67, 0xff, 0x42, 0x4a, 0xff, 0x42, 0x29, 0xff, 0x42, 0x4a, 0xff, 0x42, 0x49, 0xff, 0x29, 0x66, 0xff, 0x49, 0x46, 0xff, 0xc9, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0x99, 0xc4, 0xff, 0x61, 0xc1, 0xff, 0x61, 0xc1, 0xff, 0x7a, 0x63, 0xff, 0x5a, 0x88, 0xff, 0x42, 0x29, 0xff, 0x42, 0x29, 0xff, 0x49, 0xe9, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xd9, 0xe7, 0xff, 0xdb, 0xc3, 0xf7, 0xc3, 0xa3, 0x9e, + 0xc3, 0x84, 0xa3, 0xe2, 0x86, 0xfc, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xc2, 0xc6, 0xff, 0x31, 0xe9, 0xff, 0x42, 0x29, 0xff, 0x42, 0x29, 0xff, 0x42, 0x29, 0xff, 0x72, 0xa6, 0xff, 0x82, 0xa4, 0xff, 0x72, 0x85, 0xff, 0x7a, 0x85, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa6, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa4, 0xff, 0x7a, 0x85, 0xff, 0x6a, 0x86, 0xff, 0x52, 0x48, 0xff, 0x4a, 0x48, 0xff, 0x4a, 0x49, 0xff, 0x4a, 0x48, 0xff, 0x52, 0x48, 0xff, 0x6a, 0x66, 0xff, 0x92, 0x85, 0xff, 0xda, 0x07, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xa2, 0x46, 0xff, 0x8a, 0xc4, 0xff, 0x7a, 0xa6, 0xff, 0x42, 0x09, 0xff, 0x42, 0x29, 0xff, 0x42, 0x29, 0xff, 0x89, 0xe8, 0xff, 0xe1, 0xc7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xba, 0x27, 0xff, 0xdb, 0xe3, 0xf6, 0xc3, 0xa3, 0x9e, + 0xc3, 0xa3, 0x9e, 0xe3, 0x25, 0xfa, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xda, 0x27, 0xff, 0x39, 0xe9, 0xff, 0x42, 0x29, 0xff, 0x4a, 0x28, 0xff, 0x3a, 0x09, 0xff, 0x4a, 0x49, 0xff, 0x8a, 0xc4, 0xff, 0x82, 0xc5, 0xff, 0x72, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x82, 0xc4, 0xff, 0x82, 0xa4, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x82, 0xa5, 0xff, 0x82, 0xc4, 0xff, 0x7a, 0xa5, 0xff, 0x92, 0x66, 0xff, 0xd9, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xaa, 0x65, 0xff, 0x4a, 0x29, 0xff, 0x3a, 0x09, 0xff, 0x4a, 0x28, 0xff, 0x52, 0x08, 0xff, 0xc9, 0xe8, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0x9a, 0x67, 0xff, 0xdc, 0x03, 0xf6, 0xc3, 0xa3, 0x9e, + 0xc3, 0xa3, 0x9e, 0xdb, 0xc3, 0xf7, 0xd2, 0x07, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0x81, 0xe8, 0xff, 0x42, 0x29, 0xff, 0x4a, 0x28, 0xff, 0x4a, 0x28, 0xff, 0x3a, 0x0a, 0xff, 0x52, 0x48, 0xff, 0x8a, 0xc4, 0xff, 0x7a, 0xa5, 0xff, 0x72, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x92, 0x66, 0xff, 0xd1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xd9, 0xe7, 0xff, 0x7a, 0x09, 0xff, 0x4a, 0x28, 0xff, 0x4a, 0x28, 0xff, 0x9a, 0x08, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xb1, 0xc8, 0xff, 0x7a, 0xa6, 0xff, 0xdc, 0x03, 0xf6, 0xc3, 0xa3, 0x9e, + 0xc3, 0xa3, 0x9e, 0xdc, 0x03, 0xf6, 0xaa, 0x47, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xd1, 0xe7, 0xff, 0x62, 0x08, 0xff, 0x4a, 0x28, 0xff, 0x4a, 0x28, 0xff, 0x4a, 0x29, 0xff, 0x3a, 0x0a, 0xff, 0x52, 0x48, 0xff, 0x82, 0xa4, 0xff, 0x82, 0xa4, 0xff, 0x7a, 0xa5, 0xff, 0x72, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x72, 0xa5, 0xff, 0x92, 0x66, 0xff, 0xd2, 0x07, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xd9, 0xe7, 0xff, 0x7a, 0x28, 0xff, 0x72, 0x28, 0xff, 0xd9, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0x59, 0x89, 0xff, 0x72, 0xa6, 0xff, 0xdc, 0x03, 0xf6, 0xc3, 0xa3, 0x9e, + 0xc3, 0xa3, 0x9e, 0xdb, 0xe3, 0xf6, 0x7a, 0xa6, 0xff, 0xb9, 0xc8, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xb9, 0xe8, 0xff, 0x5a, 0x28, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x3a, 0x0a, 0xff, 0x52, 0x48, 0xff, 0x7a, 0xa5, 0xff, 0x8a, 0xc4, 0xff, 0x82, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x72, 0xa5, 0xff, 0x72, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x72, 0xa5, 0xff, 0x72, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x82, 0xa5, 0xff, 0x8a, 0xc4, 0xff, 0x92, 0x85, 0xff, 0xd1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xd9, 0xe7, 0xff, 0xd9, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xc7, 0xff, 0xc2, 0x27, 0xff, 0x11, 0x6a, 0xff, 0x72, 0xa6, 0xff, 0xdb, 0xe3, 0xf6, 0xc3, 0xa3, 0x9e, + 0xbb, 0xa3, 0x9e, 0xdb, 0xe3, 0xf6, 0x72, 0xa6, 0xff, 0x41, 0x89, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xb1, 0xe8, 0xff, 0x52, 0x28, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x3a, 0x2a, 0xff, 0x42, 0x29, 0xff, 0x62, 0x67, 0xff, 0x82, 0xa4, 0xff, 0x82, 0xa4, 0xff, 0x82, 0xa4, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x82, 0xa4, 0xff, 0x82, 0xa4, 0xff, 0x82, 0xa4, 0xff, 0x62, 0x67, 0xff, 0x42, 0x29, 0xff, 0x62, 0x09, 0xff, 0xc9, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x07, 0xff, 0x8a, 0x87, 0xff, 0x11, 0x6a, 0xff, 0x72, 0xa6, 0xff, 0xdb, 0xe3, 0xf6, 0xbb, 0xa3, 0x9e, + 0xbb, 0xa3, 0x9e, 0xdb, 0xe3, 0xf6, 0x72, 0xa6, 0xff, 0x11, 0x6a, 0xff, 0xaa, 0x47, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xb1, 0xe8, 0xff, 0x5a, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x42, 0x29, 0xff, 0x3a, 0x0a, 0xff, 0x4a, 0x29, 0xff, 0x62, 0x67, 0xff, 0x72, 0x85, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x82, 0xa4, 0xff, 0x82, 0xa5, 0xff, 0x82, 0xa4, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x72, 0x85, 0xff, 0x62, 0x67, 0xff, 0x4a, 0x29, 0xff, 0x3a, 0x0a, 0xff, 0x42, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x62, 0x29, 0xff, 0xc9, 0xe8, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xc7, 0xff, 0xc2, 0xc6, 0xff, 0x72, 0xc7, 0xff, 0x11, 0x6a, 0xff, 0x72, 0xa6, 0xff, 0xdb, 0xe3, 0xf6, 0xbb, 0xa3, 0x9e, + 0xbb, 0xa3, 0x9e, 0xdb, 0xe3, 0xf6, 0x72, 0xa6, 0xff, 0x11, 0x6a, 0xff, 0x7a, 0xa7, 0xff, 0xca, 0x86, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xb9, 0xe8, 0xff, 0x6a, 0x28, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x49, 0xff, 0x4a, 0x29, 0xff, 0x42, 0x29, 0xff, 0x3a, 0x2a, 0xff, 0x42, 0x29, 0xff, 0x4a, 0x28, 0xff, 0x52, 0x48, 0xff, 0x5a, 0x47, 0xff, 0x5a, 0x67, 0xff, 0x5a, 0x47, 0xff, 0x52, 0x48, 0xff, 0x4a, 0x28, 0xff, 0x42, 0x29, 0xff, 0x3a, 0x2a, 0xff, 0x42, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x49, 0xff, 0x4a, 0x29, 0xff, 0x6a, 0x28, 0xff, 0xc9, 0xe8, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0x91, 0xe8, 0xff, 0xab, 0x65, 0xff, 0x72, 0xc7, 0xff, 0x11, 0x6a, 0xff, 0x72, 0xa6, 0xff, 0xdb, 0xe3, 0xf6, 0xbb, 0xa3, 0x9e, + 0xbb, 0xa3, 0x9e, 0xdb, 0xe3, 0xf6, 0x72, 0xa6, 0xff, 0x11, 0x6a, 0xff, 0x7a, 0xc6, 0xff, 0xb3, 0x65, 0xff, 0xa1, 0xe8, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xd9, 0xe7, 0xff, 0x92, 0x08, 0xff, 0x52, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x42, 0x29, 0xff, 0x42, 0x29, 0xff, 0x42, 0x29, 0xff, 0x42, 0x29, 0xff, 0x42, 0x29, 0xff, 0x42, 0x29, 0xff, 0x42, 0x29, 0xff, 0x42, 0x29, 0xff, 0x42, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x5a, 0x29, 0xff, 0x9a, 0x08, 0xff, 0xd9, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0x99, 0xe8, 0xff, 0x39, 0xe9, 0xff, 0xab, 0x85, 0xff, 0x7a, 0xc6, 0xff, 0x11, 0x6a, 0xff, 0x72, 0xa6, 0xff, 0xdb, 0xe3, 0xf6, 0xbb, 0xa3, 0x9e, + 0xbb, 0xa3, 0x9e, 0xdc, 0x02, 0xf6, 0x62, 0x67, 0xff, 0x00, 0xcb, 0xff, 0x5a, 0x67, 0xff, 0xa3, 0x45, 0xff, 0x31, 0xc9, 0xff, 0xa2, 0x08, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xc9, 0xe8, 0xff, 0x8a, 0x08, 0xff, 0x5a, 0x28, 0xff, 0x4a, 0x49, 0xff, 0x4a, 0x49, 0xff, 0x4a, 0x49, 0xff, 0x4a, 0x49, 0xff, 0x4a, 0x49, 0xff, 0x4a, 0x49, 0xff, 0x4a, 0x49, 0xff, 0x4a, 0x49, 0xff, 0x4a, 0x49, 0xff, 0x4a, 0x49, 0xff, 0x4a, 0x49, 0xff, 0x4a, 0x49, 0xff, 0x62, 0x28, 0xff, 0x92, 0x08, 0xff, 0xd1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0x9a, 0x08, 0xff, 0x4a, 0x28, 0xff, 0x29, 0xc9, 0xff, 0xa3, 0x45, 0xff, 0x5a, 0x67, 0xff, 0x00, 0xcb, 0xff, 0x62, 0x67, 0xff, 0xdc, 0x02, 0xf6, 0xbb, 0xa3, 0x9e, + 0xbb, 0x83, 0x9e, 0xcb, 0xa3, 0xf6, 0x9b, 0x25, 0xff, 0x72, 0xa7, 0xff, 0xb3, 0x85, 0xff, 0xb3, 0x84, 0xff, 0x21, 0xaa, 0xff, 0x31, 0xc9, 0xff, 0x89, 0xe8, 0xff, 0xd9, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xc7, 0xff, 0xd1, 0xe7, 0xff, 0xa1, 0xe8, 0xff, 0x79, 0xe9, 0xff, 0x61, 0xe9, 0xff, 0x51, 0xe9, 0xff, 0x42, 0x09, 0xff, 0x42, 0x09, 0xff, 0x42, 0x09, 0xff, 0x42, 0x09, 0xff, 0x51, 0xe9, 0xff, 0x61, 0xe9, 0xff, 0x79, 0xe8, 0xff, 0xa1, 0xe8, 0xff, 0xd9, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xd1, 0xe7, 0xff, 0x79, 0xe8, 0xff, 0x3a, 0x09, 0xff, 0x31, 0xc9, 0xff, 0x21, 0xaa, 0xff, 0xb3, 0x85, 0xff, 0xab, 0x85, 0xff, 0x72, 0xa7, 0xff, 0x9b, 0x25, 0xff, 0xcb, 0xa3, 0xf6, 0xbb, 0x83, 0x9e, + 0xbb, 0x83, 0x9e, 0xb3, 0x64, 0xf6, 0xe4, 0x23, 0xff, 0xfc, 0xc2, 0xff, 0xf4, 0x63, 0xff, 0xfc, 0x82, 0xff, 0xa3, 0x45, 0xff, 0x29, 0xc9, 0xff, 0x42, 0x09, 0xff, 0x72, 0x28, 0xff, 0xb9, 0xe8, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xd9, 0xe7, 0xff, 0xc9, 0xe7, 0xff, 0xc1, 0xe8, 0xff, 0xb9, 0xe8, 0xff, 0xb9, 0xe8, 0xff, 0xc1, 0xe8, 0xff, 0xc9, 0xe8, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xb1, 0xe8, 0xff, 0x6a, 0x08, 0xff, 0x4a, 0x28, 0xff, 0x42, 0x09, 0xff, 0x29, 0xc9, 0xff, 0xa3, 0x45, 0xff, 0xfc, 0x82, 0xff, 0xf4, 0x62, 0xff, 0xfc, 0xc2, 0xff, 0xe4, 0x23, 0xff, 0xb3, 0x64, 0xf6, 0xbb, 0x83, 0x9e, + 0xc3, 0x83, 0x9f, 0xd3, 0xc3, 0xf6, 0x7a, 0xa6, 0xff, 0x42, 0x08, 0xff, 0x42, 0x08, 0xff, 0xa3, 0x45, 0xff, 0xfc, 0x82, 0xff, 0xbb, 0xa4, 0xff, 0xb3, 0x84, 0xff, 0xbb, 0xa4, 0xff, 0xbb, 0x85, 0xff, 0xca, 0xe6, 0xff, 0xda, 0x47, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xda, 0x47, 0xff, 0xca, 0xe5, 0xff, 0xbb, 0x84, 0xff, 0xbb, 0xa4, 0xff, 0xbb, 0xa4, 0xff, 0xb3, 0x85, 0xff, 0xbb, 0xa4, 0xff, 0xfc, 0x82, 0xff, 0xa3, 0x45, 0xff, 0x42, 0x08, 0xff, 0x42, 0x08, 0xff, 0x72, 0xa6, 0xff, 0xd3, 0xe3, 0xf6, 0xbb, 0x83, 0x9f, + 0xbb, 0x83, 0xb1, 0xe4, 0x02, 0xff, 0x62, 0x67, 0xf8, 0x01, 0x0a, 0xf9, 0x09, 0x2a, 0xff, 0x6a, 0x87, 0xff, 0xfc, 0x82, 0xff, 0x7a, 0xc6, 0xff, 0x3a, 0x09, 0xff, 0x5a, 0x68, 0xff, 0x5a, 0x68, 0xff, 0x5a, 0x68, 0xff, 0x62, 0x48, 0xff, 0x8a, 0x28, 0xff, 0xb2, 0x08, 0xff, 0xd9, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xd1, 0xe7, 0xff, 0xb2, 0x08, 0xff, 0x8a, 0x28, 0xff, 0x62, 0x48, 0xff, 0x5a, 0x68, 0xff, 0x5a, 0x68, 0xff, 0x5a, 0x68, 0xff, 0x5a, 0x68, 0xff, 0x3a, 0x09, 0xff, 0x7a, 0xc6, 0xff, 0xfc, 0x82, 0xff, 0x6a, 0x87, 0xff, 0x09, 0x2a, 0xff, 0x01, 0x0b, 0xf8, 0x62, 0x67, 0xf8, 0xe4, 0x02, 0xff, 0xbb, 0x83, 0xb1, + 0xb3, 0x63, 0x85, 0xcb, 0xc3, 0xfb, 0xc3, 0xa3, 0xfb, 0x42, 0x08, 0xf0, 0x01, 0x0b, 0xf9, 0x6a, 0xa7, 0xff, 0xfc, 0xc2, 0xff, 0x42, 0x09, 0xff, 0x01, 0x0b, 0xff, 0x19, 0x8a, 0xff, 0x19, 0x8a, 0xff, 0x19, 0x8a, 0xff, 0x19, 0x8a, 0xff, 0x19, 0x8a, 0xff, 0x21, 0x8a, 0xff, 0x39, 0xa9, 0xff, 0x61, 0xa9, 0xff, 0x89, 0xc9, 0xff, 0xa9, 0xc8, 0xff, 0xb9, 0xc8, 0xff, 0xc9, 0xc8, 0xff, 0xd1, 0xc8, 0xff, 0xd1, 0xc8, 0xff, 0xc9, 0xc8, 0xff, 0xb9, 0xc8, 0xff, 0xa1, 0xc8, 0xff, 0x81, 0xc9, 0xff, 0x59, 0xa9, 0xff, 0x39, 0xaa, 0xff, 0x21, 0x8a, 0xff, 0x19, 0x8a, 0xff, 0x19, 0x8a, 0xff, 0x19, 0x8a, 0xff, 0x19, 0x8a, 0xff, 0x19, 0x8a, 0xff, 0x19, 0x8a, 0xff, 0x01, 0x0b, 0xff, 0x42, 0x08, 0xff, 0xfc, 0xc2, 0xff, 0x6a, 0xa7, 0xff, 0x01, 0x0b, 0xf9, 0x42, 0x08, 0xef, 0xc3, 0xa3, 0xfb, 0xcb, 0xc3, 0xfb, 0xb3, 0x63, 0x85, + 0xb3, 0xc3, 0x0d, 0xb3, 0x83, 0x9e, 0xd3, 0xe3, 0xff, 0xcb, 0xc3, 0xff, 0x7a, 0xa6, 0xff, 0x9b, 0x05, 0xff, 0xd3, 0xe3, 0xff, 0x93, 0x05, 0xff, 0x7a, 0xa6, 0xff, 0x8a, 0xe5, 0xff, 0x8a, 0xe5, 0xff, 0x8a, 0xe5, 0xff, 0x8a, 0xe5, 0xff, 0x8a, 0xe5, 0xff, 0x8a, 0xe5, 0xff, 0x8a, 0xe5, 0xff, 0x8a, 0xe5, 0xff, 0x8a, 0xe5, 0xff, 0x8a, 0xe5, 0xff, 0x8a, 0xe5, 0xff, 0x8a, 0xe5, 0xff, 0x8a, 0xe5, 0xff, 0x8a, 0xe5, 0xff, 0x8a, 0xe5, 0xff, 0x8a, 0xe5, 0xff, 0x8a, 0xe5, 0xff, 0x8a, 0xe5, 0xff, 0x8a, 0xe5, 0xff, 0x8a, 0xe5, 0xff, 0x8a, 0xe5, 0xff, 0x8a, 0xe5, 0xff, 0x8a, 0xe5, 0xff, 0x8a, 0xe5, 0xff, 0x8a, 0xe5, 0xff, 0x8a, 0xe5, 0xff, 0x8a, 0xe5, 0xff, 0x7a, 0xa6, 0xff, 0x93, 0x05, 0xff, 0xd3, 0xe3, 0xff, 0x9b, 0x05, 0xff, 0x7a, 0xa6, 0xff, 0xcb, 0xc3, 0xff, 0xd3, 0xe3, 0xff, 0xb3, 0x83, 0x9e, 0xb3, 0xc3, 0x0d, + 0x00, 0x00, 0x00, 0xb3, 0x43, 0x0a, 0xb3, 0x84, 0x91, 0xcb, 0xc3, 0xe5, 0xe4, 0x02, 0xe3, 0xcb, 0xa3, 0xd9, 0xab, 0x44, 0xda, 0xcb, 0xc3, 0xda, 0xdb, 0xe2, 0xda, 0xd3, 0xc2, 0xda, 0xd3, 0xc2, 0xda, 0xd3, 0xc2, 0xda, 0xd3, 0xc2, 0xda, 0xd3, 0xc2, 0xda, 0xd3, 0xc2, 0xda, 0xd3, 0xc2, 0xda, 0xd3, 0xc2, 0xda, 0xd3, 0xc2, 0xda, 0xd3, 0xc2, 0xda, 0xd3, 0xc2, 0xda, 0xd3, 0xc2, 0xda, 0xd3, 0xc2, 0xda, 0xd3, 0xc2, 0xda, 0xd3, 0xc2, 0xda, 0xd3, 0xc2, 0xda, 0xd3, 0xc2, 0xda, 0xd3, 0xc2, 0xda, 0xd3, 0xc2, 0xda, 0xd3, 0xc2, 0xda, 0xd3, 0xc2, 0xda, 0xd3, 0xc2, 0xda, 0xd3, 0xc2, 0xda, 0xd3, 0xc2, 0xda, 0xd3, 0xc2, 0xda, 0xd3, 0xc2, 0xda, 0xd3, 0xc2, 0xda, 0xdb, 0xe2, 0xda, 0xcb, 0xc3, 0xda, 0xab, 0x44, 0xda, 0xcb, 0xa3, 0xd9, 0xe4, 0x02, 0xe3, 0xcb, 0xc3, 0xe5, 0xb3, 0x84, 0x91, 0xb3, 0x43, 0x0a, 0x00, 0x00, 0x00, +#endif +#if LV_COLOR_DEPTH == 32 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x21, 0x8d, 0xe7, 0x5e, 0x22, 0x8c, 0xe6, 0xd7, 0x22, 0x8c, 0xe6, 0xff, 0x22, 0x8c, 0xe6, 0xff, 0x22, 0x8c, 0xe6, 0xfd, 0x22, 0x8c, 0xe6, 0xfe, 0x22, 0x8c, 0xe6, 0xfe, 0x22, 0x8c, 0xe6, 0xfe, 0x22, 0x8c, 0xe6, 0xfe, 0x22, 0x8c, 0xe6, 0xfe, 0x22, 0x8c, 0xe6, 0xfe, 0x22, 0x8c, 0xe6, 0xfe, 0x22, 0x8c, 0xe6, 0xfe, 0x22, 0x8c, 0xe6, 0xfe, 0x22, 0x8c, 0xe6, 0xfe, 0x22, 0x8c, 0xe6, 0xfe, 0x22, 0x8c, 0xe6, 0xfe, 0x22, 0x8c, 0xe6, 0xfe, 0x22, 0x8c, 0xe6, 0xfd, 0x22, 0x8c, 0xe6, 0xff, 0x22, 0x8c, 0xe6, 0xff, 0x22, 0x8c, 0xe6, 0xd7, 0x21, 0x8d, 0xe3, 0x5c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x23, 0x8d, 0xe6, 0x6e, 0x21, 0x8c, 0xe6, 0xff, 0x22, 0x8c, 0xe8, 0xe4, 0x23, 0x8c, 0xe9, 0xa0, 0x22, 0x8d, 0xe6, 0xa6, 0x22, 0x8e, 0xe7, 0xab, 0x23, 0x8d, 0xe7, 0xaa, 0x23, 0x8d, 0xe7, 0xaa, 0x23, 0x8d, 0xe7, 0xaa, 0x23, 0x8d, 0xe7, 0xaa, 0x23, 0x8d, 0xe7, 0xaa, 0x23, 0x8d, 0xe7, 0xaa, 0x23, 0x8d, 0xe7, 0xaa, 0x23, 0x8d, 0xe7, 0xaa, 0x23, 0x8d, 0xe7, 0xaa, 0x23, 0x8d, 0xe7, 0xaa, 0x23, 0x8d, 0xe7, 0xaa, 0x23, 0x8d, 0xe7, 0xaa, 0x23, 0x8d, 0xe7, 0xaa, 0x22, 0x8e, 0xe7, 0xab, 0x22, 0x8d, 0xe6, 0xa5, 0x21, 0x8c, 0xe9, 0xa0, 0x22, 0x8c, 0xe5, 0xe4, 0x21, 0x8c, 0xe4, 0xff, 0x21, 0x8c, 0xe8, 0x6d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x28, 0x8d, 0xf2, 0x26, 0x22, 0x8b, 0xe3, 0xff, 0x22, 0x8e, 0xe9, 0xc5, 0x23, 0x8b, 0xe8, 0x16, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x23, 0x8b, 0xe8, 0x16, 0x22, 0x8e, 0xea, 0xc5, 0x21, 0x8a, 0xe4, 0xff, 0x28, 0x8d, 0xeb, 0x26, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x22, 0x8b, 0xe6, 0x5a, 0x23, 0x91, 0xec, 0xff, 0x26, 0x91, 0xf0, 0x43, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x26, 0x94, 0xf4, 0x43, 0x24, 0x90, 0xed, 0xff, 0x22, 0x8b, 0xe6, 0x5a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xbf, 0x04, 0x1d, 0x75, 0xc0, 0x3d, 0x1e, 0x76, 0xc2, 0x43, 0x1e, 0x79, 0xc2, 0x3b, 0x1e, 0x77, 0xc8, 0x3c, 0x1e, 0x79, 0xc2, 0x3b, 0x19, 0x75, 0xbd, 0x32, 0x1e, 0x80, 0xd1, 0x8f, 0x23, 0x91, 0xed, 0xff, 0x1e, 0x7e, 0xcf, 0x65, 0x1a, 0x72, 0xbb, 0x31, 0x1e, 0x77, 0xbf, 0x3c, 0x1e, 0x77, 0xbf, 0x3c, 0x1e, 0x77, 0xbf, 0x3c, 0x1e, 0x77, 0xbf, 0x3c, 0x1e, 0x77, 0xbf, 0x3c, 0x1e, 0x77, 0xbf, 0x3c, 0x1e, 0x77, 0xbf, 0x3c, 0x1e, 0x77, 0xbf, 0x3c, 0x1e, 0x77, 0xbf, 0x3c, 0x1e, 0x77, 0xbf, 0x3c, 0x1e, 0x77, 0xbf, 0x3c, 0x1e, 0x77, 0xbf, 0x3c, 0x1e, 0x77, 0xbf, 0x3c, 0x1e, 0x77, 0xbf, 0x3c, 0x1e, 0x77, 0xbf, 0x3c, 0x1e, 0x77, 0xbf, 0x3c, 0x1e, 0x77, 0xbf, 0x3c, 0x1e, 0x77, 0xbf, 0x3c, 0x1e, 0x77, 0xbf, 0x3c, 0x1a, 0x72, 0xbb, 0x31, 0x1e, 0x7e, 0xcf, 0x65, 0x23, 0x91, 0xed, 0xff, 0x1e, 0x80, 0xd2, 0x8f, 0x19, 0x75, 0xbd, 0x32, 0x1e, 0x79, 0xc2, 0x3b, 0x1e, 0x77, 0xc8, 0x3c, 0x1e, 0x77, 0xc3, 0x3c, 0x1b, 0x78, 0xc1, 0x42, 0x1d, 0x75, 0xc0, 0x3d, 0x00, 0x80, 0xbf, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x22, 0x77, 0xc3, 0x1e, 0x1f, 0x74, 0xc1, 0xc0, 0x19, 0x83, 0xde, 0xf7, 0x14, 0x8f, 0xf4, 0xfa, 0x1a, 0x84, 0xde, 0xf6, 0x21, 0x76, 0xbf, 0xf7, 0x19, 0x86, 0xe4, 0xf7, 0x15, 0x8d, 0xf0, 0xf0, 0x16, 0x89, 0xe6, 0xf9, 0x17, 0x87, 0xe6, 0xff, 0x16, 0x86, 0xe4, 0xf6, 0x16, 0x89, 0xe8, 0xef, 0x16, 0x8b, 0xec, 0xf7, 0x16, 0x8a, 0xeb, 0xf7, 0x16, 0x8a, 0xeb, 0xf7, 0x16, 0x8a, 0xeb, 0xf7, 0x16, 0x8a, 0xeb, 0xf7, 0x16, 0x8a, 0xeb, 0xf7, 0x16, 0x8a, 0xeb, 0xf7, 0x16, 0x8a, 0xeb, 0xf7, 0x16, 0x8a, 0xeb, 0xf7, 0x16, 0x8a, 0xeb, 0xf7, 0x16, 0x8a, 0xeb, 0xf7, 0x16, 0x8a, 0xeb, 0xf7, 0x16, 0x8a, 0xeb, 0xf7, 0x16, 0x8a, 0xeb, 0xf7, 0x16, 0x8a, 0xeb, 0xf7, 0x16, 0x8a, 0xeb, 0xf7, 0x16, 0x8a, 0xeb, 0xf7, 0x16, 0x8a, 0xeb, 0xf7, 0x16, 0x8b, 0xec, 0xf7, 0x16, 0x89, 0xe9, 0xef, 0x16, 0x86, 0xe4, 0xf6, 0x17, 0x87, 0xe6, 0xff, 0x16, 0x89, 0xe6, 0xf9, 0x15, 0x8d, 0xf0, 0xf0, 0x19, 0x86, 0xe4, 0xf7, 0x21, 0x76, 0xbf, 0xf7, 0x1a, 0x84, 0xde, 0xf7, 0x14, 0x8f, 0xf3, 0xfa, 0x19, 0x83, 0xdd, 0xf7, 0x1f, 0x75, 0xc1, 0xc0, 0x22, 0x77, 0xc3, 0x1e, 0x00, 0x00, 0x00, 0x00, + 0x24, 0x79, 0xc2, 0x15, 0x1f, 0x77, 0xbf, 0xb6, 0x18, 0x88, 0xe6, 0xff, 0x1f, 0x7e, 0xcf, 0xff, 0x35, 0x50, 0x6f, 0xff, 0x2a, 0x65, 0x96, 0xff, 0x15, 0x88, 0xe6, 0xff, 0x2b, 0x61, 0x90, 0xff, 0x34, 0x55, 0x71, 0xff, 0x2f, 0x5b, 0x7e, 0xff, 0x2f, 0x58, 0x7c, 0xff, 0x2f, 0x5a, 0x7f, 0xff, 0x30, 0x5b, 0x80, 0xff, 0x30, 0x5b, 0x7f, 0xff, 0x30, 0x5b, 0x7f, 0xff, 0x30, 0x5b, 0x7f, 0xff, 0x30, 0x5b, 0x7f, 0xff, 0x30, 0x5b, 0x7f, 0xff, 0x30, 0x5b, 0x7f, 0xff, 0x30, 0x5b, 0x7f, 0xff, 0x30, 0x5b, 0x7f, 0xff, 0x30, 0x5b, 0x7f, 0xff, 0x30, 0x5b, 0x7f, 0xff, 0x30, 0x5b, 0x7f, 0xff, 0x30, 0x5b, 0x7f, 0xff, 0x30, 0x5b, 0x7f, 0xff, 0x30, 0x5b, 0x7f, 0xff, 0x30, 0x5b, 0x7f, 0xff, 0x30, 0x5b, 0x7f, 0xff, 0x30, 0x5b, 0x7f, 0xff, 0x30, 0x5b, 0x7f, 0xff, 0x2f, 0x5b, 0x7f, 0xff, 0x30, 0x5b, 0x80, 0xff, 0x2f, 0x5a, 0x7f, 0xff, 0x2f, 0x58, 0x7c, 0xff, 0x2f, 0x5b, 0x7e, 0xff, 0x34, 0x55, 0x71, 0xff, 0x2b, 0x61, 0x90, 0xff, 0x15, 0x88, 0xe6, 0xff, 0x2a, 0x65, 0x96, 0xff, 0x35, 0x50, 0x6e, 0xff, 0x1f, 0x7e, 0xd0, 0xff, 0x18, 0x87, 0xe7, 0xff, 0x1f, 0x76, 0xc0, 0xb6, 0x1a, 0x80, 0xbf, 0x14, + 0x1f, 0x74, 0xc1, 0x95, 0x19, 0x84, 0xe1, 0xfc, 0x1f, 0x7b, 0xc7, 0xfb, 0x41, 0x36, 0x2b, 0xf1, 0x50, 0x18, 0x00, 0xfb, 0x34, 0x4e, 0x65, 0xff, 0x0c, 0x94, 0xff, 0xff, 0x3f, 0x3c, 0x3a, 0xff, 0x54, 0x1a, 0x00, 0xff, 0x4b, 0x2a, 0x13, 0xff, 0x4b, 0x2b, 0x13, 0xff, 0x4b, 0x2a, 0x11, 0xff, 0x4b, 0x2a, 0x12, 0xff, 0x4c, 0x2b, 0x12, 0xff, 0x4b, 0x2c, 0x1c, 0xff, 0x49, 0x2e, 0x3d, 0xff, 0x45, 0x31, 0x63, 0xff, 0x42, 0x34, 0x8b, 0xff, 0x3f, 0x36, 0xa8, 0xff, 0x3d, 0x37, 0xbd, 0xff, 0x3c, 0x38, 0xcc, 0xff, 0x3b, 0x39, 0xd4, 0xff, 0x3b, 0x39, 0xd4, 0xff, 0x3c, 0x38, 0xcc, 0xff, 0x3d, 0x37, 0xbc, 0xff, 0x40, 0x37, 0xa8, 0xff, 0x42, 0x34, 0x87, 0xff, 0x46, 0x31, 0x5f, 0xff, 0x49, 0x2e, 0x38, 0xff, 0x4b, 0x2c, 0x19, 0xff, 0x4c, 0x2b, 0x12, 0xff, 0x4b, 0x2b, 0x11, 0xff, 0x4b, 0x2a, 0x12, 0xff, 0x4b, 0x2a, 0x11, 0xff, 0x4b, 0x2b, 0x13, 0xff, 0x4b, 0x2a, 0x13, 0xff, 0x54, 0x1a, 0x00, 0xff, 0x3f, 0x3c, 0x3a, 0xff, 0x0c, 0x94, 0xff, 0xff, 0x34, 0x4e, 0x65, 0xff, 0x50, 0x18, 0x00, 0xfb, 0x41, 0x36, 0x2c, 0xf2, 0x20, 0x7b, 0xc7, 0xfc, 0x19, 0x86, 0xe1, 0xfd, 0x1f, 0x77, 0xc1, 0x94, + 0x1d, 0x7b, 0xcb, 0xaa, 0x16, 0x8f, 0xf6, 0xfc, 0x36, 0x4f, 0x63, 0xf9, 0x4e, 0x1c, 0x00, 0xfb, 0x4b, 0x29, 0x0b, 0xff, 0x34, 0x52, 0x6c, 0xff, 0x0f, 0x90, 0xfd, 0xff, 0x2c, 0x60, 0x8c, 0xff, 0x39, 0x4a, 0x5a, 0xff, 0x34, 0x53, 0x70, 0xff, 0x33, 0x54, 0x6f, 0xff, 0x33, 0x54, 0x6f, 0xff, 0x34, 0x51, 0x7c, 0xff, 0x36, 0x4a, 0x9e, 0xff, 0x38, 0x42, 0xbd, 0xff, 0x3a, 0x3d, 0xda, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x39, 0x3d, 0xd6, 0xff, 0x39, 0x44, 0xba, 0xff, 0x37, 0x4b, 0x9a, 0xff, 0x35, 0x52, 0x7a, 0xff, 0x33, 0x54, 0x6f, 0xff, 0x33, 0x54, 0x6f, 0xff, 0x33, 0x54, 0x6f, 0xff, 0x34, 0x53, 0x70, 0xff, 0x39, 0x49, 0x5a, 0xff, 0x2c, 0x60, 0x8c, 0xff, 0x0f, 0x90, 0xfd, 0xff, 0x34, 0x52, 0x6c, 0xff, 0x4b, 0x29, 0x0b, 0xff, 0x4e, 0x1b, 0x00, 0xfc, 0x36, 0x4e, 0x63, 0xfa, 0x16, 0x90, 0xf6, 0xfc, 0x1d, 0x7a, 0xc9, 0xaa, + 0x1f, 0x7c, 0xcb, 0x9e, 0x1b, 0x84, 0xdc, 0xf6, 0x2a, 0x64, 0x96, 0xff, 0x33, 0x53, 0x6f, 0xff, 0x35, 0x52, 0x6c, 0xff, 0x22, 0x74, 0xb9, 0xff, 0x13, 0x8d, 0xf5, 0xff, 0x2a, 0x65, 0x97, 0xff, 0x2a, 0x63, 0x93, 0xff, 0x29, 0x67, 0x9d, 0xff, 0x2a, 0x64, 0xa0, 0xff, 0x31, 0x52, 0xbd, 0xff, 0x37, 0x43, 0xd4, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x36, 0x44, 0xd2, 0xff, 0x30, 0x54, 0xba, 0xff, 0x2a, 0x65, 0x9f, 0xff, 0x29, 0x67, 0x9b, 0xff, 0x29, 0x67, 0x9d, 0xff, 0x2a, 0x63, 0x93, 0xff, 0x2a, 0x64, 0x97, 0xff, 0x12, 0x8e, 0xf5, 0xff, 0x22, 0x73, 0xb9, 0xff, 0x35, 0x52, 0x6b, 0xff, 0x33, 0x53, 0x70, 0xff, 0x2b, 0x64, 0x96, 0xff, 0x1a, 0x84, 0xdc, 0xf6, 0x1d, 0x7c, 0xcb, 0x9e, + 0x1f, 0x79, 0xc7, 0x9e, 0x21, 0x77, 0xc3, 0xf6, 0x18, 0x87, 0xe7, 0xff, 0x11, 0x92, 0xfe, 0xff, 0x13, 0x8e, 0xf5, 0xff, 0x15, 0x8a, 0xeb, 0xff, 0x30, 0x5d, 0x82, 0xff, 0x4a, 0x31, 0x1d, 0xff, 0x45, 0x3b, 0x34, 0xff, 0x41, 0x3c, 0x6a, 0xff, 0x3d, 0x3b, 0xb7, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3b, 0x3a, 0xd7, 0xff, 0x3c, 0x3b, 0xc1, 0xff, 0x3e, 0x3c, 0xb5, 0xff, 0x3e, 0x3c, 0xad, 0xff, 0x3e, 0x3c, 0xad, 0xff, 0x3d, 0x3b, 0xb5, 0xff, 0x3b, 0x3a, 0xc2, 0xff, 0x3b, 0x3a, 0xd8, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe0, 0xff, 0x3d, 0x3b, 0xb1, 0xff, 0x42, 0x3c, 0x62, 0xff, 0x44, 0x3d, 0x38, 0xff, 0x45, 0x3b, 0x34, 0xff, 0x4b, 0x31, 0x1c, 0xff, 0x2f, 0x5d, 0x83, 0xff, 0x14, 0x8a, 0xed, 0xff, 0x13, 0x8e, 0xf5, 0xff, 0x11, 0x92, 0xfe, 0xff, 0x18, 0x87, 0xe7, 0xff, 0x21, 0x77, 0xc3, 0xf6, 0x1f, 0x79, 0xc7, 0x9e, + 0x1d, 0x7b, 0xcb, 0x9e, 0x19, 0x86, 0xe3, 0xf6, 0x2e, 0x5c, 0x83, 0xff, 0x45, 0x34, 0x33, 0xff, 0x2f, 0x5e, 0x86, 0xff, 0x28, 0x6a, 0xa1, 0xff, 0x4c, 0x2e, 0x15, 0xff, 0x43, 0x40, 0x40, 0xff, 0x3d, 0x3f, 0x92, 0xff, 0x3a, 0x3a, 0xdc, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe0, 0xff, 0x3b, 0x3b, 0xd0, 0xff, 0x3e, 0x3e, 0x9d, 0xff, 0x41, 0x40, 0x76, 0xff, 0x42, 0x41, 0x62, 0xff, 0x43, 0x42, 0x53, 0xff, 0x44, 0x43, 0x4a, 0xff, 0x44, 0x43, 0x49, 0xff, 0x44, 0x43, 0x49, 0xff, 0x44, 0x43, 0x4b, 0xff, 0x43, 0x42, 0x55, 0xff, 0x42, 0x41, 0x63, 0xff, 0x41, 0x41, 0x7a, 0xff, 0x3f, 0x3e, 0xa1, 0xff, 0x3b, 0x3b, 0xd2, 0xff, 0x39, 0x39, 0xe0, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3b, 0xd9, 0xff, 0x3f, 0x3f, 0x86, 0xff, 0x41, 0x45, 0x4a, 0xff, 0x43, 0x3f, 0x3d, 0xff, 0x4d, 0x2e, 0x16, 0xff, 0x26, 0x6a, 0xa2, 0xff, 0x2e, 0x5e, 0x87, 0xff, 0x46, 0x34, 0x33, 0xff, 0x2e, 0x5c, 0x83, 0xff, 0x19, 0x86, 0xe3, 0xf6, 0x1d, 0x7b, 0xcb, 0x9e, + 0x1b, 0x7c, 0xcb, 0x9e, 0x15, 0x8a, 0xed, 0xf6, 0x37, 0x4e, 0x61, 0xff, 0x58, 0x16, 0x00, 0xff, 0x39, 0x4b, 0x5b, 0xff, 0x28, 0x69, 0xa1, 0xff, 0x48, 0x38, 0x34, 0xff, 0x3d, 0x3e, 0xa4, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe0, 0xff, 0x3c, 0x3c, 0xc3, 0xff, 0x40, 0x41, 0x83, 0xff, 0x43, 0x44, 0x55, 0xff, 0x44, 0x45, 0x46, 0xff, 0x43, 0x45, 0x47, 0xff, 0x43, 0x45, 0x47, 0xff, 0x43, 0x45, 0x47, 0xff, 0x44, 0x44, 0x46, 0xff, 0x44, 0x44, 0x46, 0xff, 0x44, 0x44, 0x46, 0xff, 0x44, 0x44, 0x46, 0xff, 0x44, 0x44, 0x46, 0xff, 0x43, 0x45, 0x47, 0xff, 0x43, 0x45, 0x47, 0xff, 0x43, 0x45, 0x48, 0xff, 0x43, 0x44, 0x58, 0xff, 0x40, 0x41, 0x88, 0xff, 0x3d, 0x3d, 0xc3, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3b, 0x3b, 0xe1, 0xff, 0x3e, 0x3f, 0x9a, 0xff, 0x42, 0x43, 0x4a, 0xff, 0x49, 0x38, 0x2c, 0xff, 0x27, 0x69, 0xa1, 0xff, 0x39, 0x4b, 0x5b, 0xff, 0x58, 0x16, 0x00, 0xff, 0x38, 0x4e, 0x61, 0xff, 0x16, 0x8a, 0xed, 0xf6, 0x1d, 0x7c, 0xcb, 0x9e, + 0x1d, 0x7b, 0xcb, 0x9e, 0x17, 0x87, 0xe6, 0xf6, 0x33, 0x56, 0x76, 0xff, 0x4d, 0x2a, 0x0c, 0xff, 0x33, 0x56, 0x73, 0xff, 0x26, 0x6a, 0xad, 0xff, 0x3e, 0x3a, 0xa4, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3b, 0x3b, 0xcc, 0xff, 0x40, 0x40, 0x8a, 0xff, 0x43, 0x43, 0x4f, 0xff, 0x44, 0x44, 0x45, 0xff, 0x44, 0x44, 0x45, 0xff, 0x43, 0x44, 0x47, 0xff, 0x44, 0x43, 0x45, 0xff, 0x47, 0x42, 0x3f, 0xff, 0x4a, 0x41, 0x3b, 0xff, 0x4b, 0x41, 0x3a, 0xff, 0x4a, 0x41, 0x3b, 0xff, 0x4a, 0x40, 0x3b, 0xff, 0x4a, 0x41, 0x3b, 0xff, 0x4b, 0x41, 0x3a, 0xff, 0x4a, 0x41, 0x3b, 0xff, 0x47, 0x42, 0x3f, 0xff, 0x44, 0x43, 0x45, 0xff, 0x43, 0x44, 0x47, 0xff, 0x44, 0x44, 0x45, 0xff, 0x43, 0x43, 0x52, 0xff, 0x3e, 0x3e, 0x94, 0xff, 0x3b, 0x3b, 0xd6, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3d, 0x3c, 0x9d, 0xff, 0x48, 0x3b, 0x39, 0xff, 0x25, 0x6d, 0xaa, 0xff, 0x33, 0x56, 0x73, 0xff, 0x4d, 0x2a, 0x0c, 0xff, 0x33, 0x56, 0x76, 0xff, 0x17, 0x87, 0xe6, 0xf6, 0x1b, 0x7b, 0xcb, 0x9e, + 0x1b, 0x7b, 0xcb, 0x9e, 0x17, 0x87, 0xe6, 0xf6, 0x33, 0x55, 0x75, 0xff, 0x4e, 0x29, 0x09, 0xff, 0x34, 0x55, 0x74, 0xff, 0x32, 0x4d, 0xcc, 0xff, 0x3a, 0x3a, 0xe3, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3c, 0x3c, 0xc8, 0xff, 0x42, 0x42, 0x5d, 0xff, 0x44, 0x44, 0x45, 0xff, 0x44, 0x44, 0x45, 0xff, 0x43, 0x45, 0x47, 0xff, 0x45, 0x43, 0x44, 0xff, 0x4a, 0x41, 0x3c, 0xff, 0x4b, 0x40, 0x3a, 0xff, 0x45, 0x43, 0x42, 0xff, 0x3f, 0x47, 0x4d, 0xff, 0x39, 0x4b, 0x59, 0xff, 0x35, 0x4b, 0x5f, 0xff, 0x34, 0x4c, 0x60, 0xff, 0x35, 0x4b, 0x5f, 0xff, 0x39, 0x4b, 0x59, 0xff, 0x3f, 0x47, 0x4d, 0xff, 0x45, 0x43, 0x42, 0xff, 0x4b, 0x40, 0x3a, 0xff, 0x4a, 0x41, 0x3c, 0xff, 0x45, 0x43, 0x44, 0xff, 0x43, 0x45, 0x47, 0xff, 0x44, 0x44, 0x45, 0xff, 0x42, 0x42, 0x69, 0xff, 0x3d, 0x3d, 0xbf, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe3, 0xff, 0x41, 0x3b, 0x93, 0xff, 0x25, 0x6d, 0xa9, 0xff, 0x34, 0x56, 0x71, 0xff, 0x4e, 0x29, 0x09, 0xff, 0x33, 0x55, 0x75, 0xff, 0x17, 0x87, 0xe6, 0xf6, 0x1b, 0x7b, 0xcb, 0x9e, + 0x1b, 0x7b, 0xca, 0x9e, 0x17, 0x87, 0xe5, 0xf6, 0x32, 0x55, 0x75, 0xff, 0x4f, 0x29, 0x0a, 0xff, 0x36, 0x47, 0xa9, 0xff, 0x39, 0x39, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3b, 0x3b, 0xd6, 0xff, 0x42, 0x42, 0x77, 0xff, 0x44, 0x45, 0x47, 0xff, 0x45, 0x45, 0x47, 0xff, 0x4a, 0x42, 0x3e, 0xff, 0x4b, 0x42, 0x3a, 0xff, 0x40, 0x47, 0x4d, 0xff, 0x31, 0x4e, 0x66, 0xff, 0x27, 0x52, 0x76, 0xff, 0x22, 0x55, 0x7f, 0xff, 0x21, 0x55, 0x81, 0xff, 0x22, 0x56, 0x7f, 0xff, 0x21, 0x55, 0x80, 0xff, 0x22, 0x56, 0x7f, 0xff, 0x21, 0x55, 0x81, 0xff, 0x22, 0x55, 0x7f, 0xff, 0x27, 0x52, 0x76, 0xff, 0x31, 0x4e, 0x66, 0xff, 0x40, 0x47, 0x4d, 0xff, 0x4b, 0x42, 0x3a, 0xff, 0x4a, 0x42, 0x3e, 0xff, 0x45, 0x45, 0x47, 0xff, 0x44, 0x45, 0x47, 0xff, 0x44, 0x44, 0x55, 0xff, 0x3d, 0x3d, 0xb2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe3, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe1, 0xff, 0x2e, 0x57, 0xc1, 0xff, 0x34, 0x56, 0x72, 0xff, 0x4f, 0x29, 0x0a, 0xff, 0x32, 0x55, 0x75, 0xff, 0x17, 0x86, 0xe5, 0xf6, 0x1b, 0x7b, 0xca, 0x9e, + 0x1b, 0x7b, 0xca, 0x9e, 0x17, 0x86, 0xe5, 0xf6, 0x32, 0x56, 0x75, 0xff, 0x4a, 0x2f, 0x46, 0xff, 0x3a, 0x3b, 0xdf, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xdc, 0xff, 0x41, 0x41, 0x82, 0xff, 0x4c, 0x43, 0x3b, 0xff, 0x45, 0x45, 0x48, 0xff, 0x2f, 0x4f, 0x69, 0xff, 0x21, 0x54, 0x7f, 0xff, 0x21, 0x55, 0x81, 0xff, 0x23, 0x54, 0x7d, 0xff, 0x26, 0x53, 0x78, 0xff, 0x26, 0x52, 0x77, 0xff, 0x27, 0x52, 0x76, 0xff, 0x27, 0x52, 0x75, 0xff, 0x27, 0x52, 0x76, 0xff, 0x26, 0x52, 0x77, 0xff, 0x26, 0x53, 0x78, 0xff, 0x23, 0x54, 0x7d, 0xff, 0x21, 0x55, 0x81, 0xff, 0x21, 0x54, 0x7f, 0xff, 0x2f, 0x4f, 0x69, 0xff, 0x45, 0x45, 0x48, 0xff, 0x4c, 0x43, 0x3b, 0xff, 0x46, 0x45, 0x46, 0xff, 0x44, 0x45, 0x48, 0xff, 0x43, 0x43, 0x51, 0xff, 0x3c, 0x3c, 0xb3, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x38, 0x3e, 0xdd, 0xff, 0x35, 0x50, 0x8a, 0xff, 0x4f, 0x29, 0x0a, 0xff, 0x32, 0x56, 0x75, 0xff, 0x17, 0x86, 0xe5, 0xf6, 0x1b, 0x7b, 0xca, 0x9e, + 0x1b, 0x79, 0xca, 0x9e, 0x17, 0x86, 0xe4, 0xf6, 0x33, 0x54, 0x7c, 0xff, 0x3e, 0x37, 0xbc, 0xff, 0x39, 0x39, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3d, 0x3c, 0xbd, 0xff, 0x3c, 0x3c, 0xc7, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3b, 0x3a, 0xdb, 0xff, 0x3b, 0x44, 0x8f, 0xff, 0x23, 0x54, 0x7e, 0xff, 0x20, 0x55, 0x82, 0xff, 0x26, 0x53, 0x77, 0xff, 0x29, 0x52, 0x74, 0xff, 0x29, 0x52, 0x74, 0xff, 0x28, 0x52, 0x74, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x74, 0xff, 0x29, 0x52, 0x74, 0xff, 0x29, 0x52, 0x74, 0xff, 0x26, 0x53, 0x77, 0xff, 0x20, 0x55, 0x82, 0xff, 0x23, 0x54, 0x7e, 0xff, 0x3b, 0x4a, 0x58, 0xff, 0x4d, 0x42, 0x39, 0xff, 0x48, 0x43, 0x42, 0xff, 0x43, 0x45, 0x48, 0xff, 0x43, 0x43, 0x57, 0xff, 0x3c, 0x3c, 0xc2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x38, 0x41, 0xc4, 0xff, 0x4e, 0x29, 0x11, 0xff, 0x32, 0x56, 0x74, 0xff, 0x17, 0x86, 0xe4, 0xf6, 0x1b, 0x79, 0xca, 0x9e, + 0x1b, 0x79, 0xc8, 0x9e, 0x17, 0x86, 0xe2, 0xf6, 0x36, 0x49, 0xa8, 0xff, 0x39, 0x39, 0xde, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3d, 0x3b, 0xcd, 0xff, 0x43, 0x41, 0x5c, 0xff, 0x42, 0x43, 0x61, 0xff, 0x3b, 0x3b, 0xcc, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x39, 0x3b, 0xde, 0xff, 0x2d, 0x49, 0xa3, 0xff, 0x29, 0x51, 0x73, 0xff, 0x29, 0x52, 0x74, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x29, 0x52, 0x74, 0xff, 0x29, 0x52, 0x73, 0xff, 0x29, 0x52, 0x73, 0xff, 0x29, 0x52, 0x73, 0xff, 0x29, 0x52, 0x74, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x29, 0x52, 0x74, 0xff, 0x29, 0x51, 0x73, 0xff, 0x25, 0x53, 0x7b, 0xff, 0x1f, 0x55, 0x83, 0xff, 0x36, 0x4b, 0x5f, 0xff, 0x50, 0x41, 0x36, 0xff, 0x46, 0x44, 0x43, 0xff, 0x42, 0x44, 0x47, 0xff, 0x42, 0x43, 0x6b, 0xff, 0x3b, 0x3b, 0xd8, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3b, 0xde, 0xff, 0x47, 0x30, 0x60, 0xff, 0x32, 0x56, 0x74, 0xff, 0x17, 0x86, 0xe4, 0xf6, 0x1b, 0x79, 0xca, 0x9e, + 0x1b, 0x79, 0xc8, 0x9e, 0x1b, 0x7d, 0xe3, 0xf7, 0x39, 0x3e, 0xd1, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3b, 0xe1, 0xff, 0x43, 0x3b, 0x7e, 0xff, 0x45, 0x42, 0x42, 0xff, 0x43, 0x45, 0x48, 0xff, 0x42, 0x42, 0x67, 0xff, 0x3d, 0x3b, 0xc7, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x39, 0x3b, 0xdd, 0xff, 0x2f, 0x48, 0xa1, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x29, 0x52, 0x73, 0xff, 0x29, 0x52, 0x74, 0xff, 0x26, 0x53, 0x79, 0xff, 0x24, 0x54, 0x7d, 0xff, 0x22, 0x54, 0x7d, 0xff, 0x24, 0x54, 0x7d, 0xff, 0x26, 0x53, 0x79, 0xff, 0x29, 0x52, 0x74, 0xff, 0x29, 0x52, 0x73, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x2a, 0x52, 0x73, 0xff, 0x27, 0x53, 0x77, 0xff, 0x1d, 0x57, 0x86, 0xff, 0x37, 0x4c, 0x5e, 0xff, 0x4f, 0x40, 0x36, 0xff, 0x44, 0x44, 0x45, 0xff, 0x43, 0x45, 0x48, 0xff, 0x3f, 0x3e, 0x95, 0xff, 0x3a, 0x3a, 0xe1, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x40, 0x37, 0xb1, 0xff, 0x33, 0x53, 0x7b, 0xff, 0x17, 0x85, 0xe3, 0xf6, 0x1b, 0x79, 0xc8, 0x9e, + 0x1b, 0x77, 0xc7, 0x9e, 0x27, 0x65, 0xe2, 0xfa, 0x3a, 0x3a, 0xe1, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x36, 0x45, 0xd4, 0xff, 0x48, 0x3b, 0x39, 0xff, 0x44, 0x42, 0x42, 0xff, 0x43, 0x44, 0x47, 0xff, 0x4c, 0x41, 0x38, 0xff, 0x40, 0x46, 0x6f, 0xff, 0x36, 0x3f, 0xd5, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x39, 0x3b, 0xde, 0xff, 0x2f, 0x49, 0x9e, 0xff, 0x28, 0x52, 0x75, 0xff, 0x24, 0x54, 0x7b, 0xff, 0x21, 0x55, 0x80, 0xff, 0x27, 0x55, 0x7c, 0xff, 0x2c, 0x54, 0x75, 0xff, 0x2e, 0x54, 0x72, 0xff, 0x2b, 0x53, 0x74, 0xff, 0x25, 0x53, 0x7a, 0xff, 0x21, 0x55, 0x80, 0xff, 0x24, 0x54, 0x7b, 0xff, 0x29, 0x53, 0x76, 0xff, 0x2a, 0x54, 0x76, 0xff, 0x2a, 0x54, 0x76, 0xff, 0x2a, 0x54, 0x76, 0xff, 0x2b, 0x53, 0x74, 0xff, 0x28, 0x56, 0x7b, 0xff, 0x20, 0x59, 0x88, 0xff, 0x40, 0x47, 0x51, 0xff, 0x4d, 0x41, 0x39, 0xff, 0x43, 0x45, 0x48, 0xff, 0x43, 0x41, 0x50, 0xff, 0x3c, 0x3a, 0xcc, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xde, 0xff, 0x35, 0x4c, 0x98, 0xff, 0x17, 0x84, 0xe2, 0xf6, 0x1b, 0x77, 0xc7, 0x9e, + 0x1f, 0x74, 0xc8, 0xa3, 0x30, 0x50, 0xe2, 0xfc, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x39, 0x3a, 0xe0, 0xff, 0x2e, 0x5b, 0xbd, 0xff, 0x48, 0x3b, 0x33, 0xff, 0x43, 0x42, 0x42, 0xff, 0x48, 0x43, 0x41, 0xff, 0x4d, 0x48, 0x43, 0xff, 0x20, 0x4f, 0x76, 0xff, 0x19, 0x41, 0x8a, 0xff, 0x35, 0x3b, 0xd0, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x39, 0x3b, 0xde, 0xff, 0x29, 0x4b, 0xa6, 0xff, 0x28, 0x52, 0x77, 0xff, 0x3d, 0x4e, 0x5e, 0xff, 0x39, 0x3b, 0x3d, 0xff, 0x32, 0x2f, 0x2b, 0xff, 0x36, 0x2f, 0x2a, 0xff, 0x41, 0x3c, 0x3a, 0xff, 0x48, 0x4a, 0x4c, 0xff, 0x38, 0x4a, 0x5a, 0xff, 0x29, 0x54, 0x78, 0xff, 0x19, 0x4d, 0x79, 0xff, 0x12, 0x3f, 0x65, 0xff, 0x14, 0x41, 0x67, 0xff, 0x14, 0x42, 0x68, 0xff, 0x13, 0x41, 0x68, 0xff, 0x16, 0x40, 0x64, 0xff, 0x1e, 0x50, 0x79, 0xff, 0x2b, 0x59, 0x7d, 0xff, 0x47, 0x43, 0x3f, 0xff, 0x46, 0x43, 0x40, 0xff, 0x44, 0x42, 0x42, 0xff, 0x41, 0x3b, 0x84, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x37, 0x44, 0xb7, 0xff, 0x18, 0x82, 0xe1, 0xf6, 0x1b, 0x77, 0xc7, 0x9e, + 0x25, 0x67, 0xcf, 0xb3, 0x38, 0x3f, 0xe3, 0xfe, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x39, 0x3e, 0xd1, 0xff, 0x28, 0x6a, 0xad, 0xff, 0x48, 0x3b, 0x33, 0xff, 0x45, 0x42, 0x42, 0xff, 0x51, 0x48, 0x42, 0xff, 0x28, 0x3e, 0x51, 0xff, 0x00, 0x2e, 0x62, 0xff, 0x12, 0x3d, 0x62, 0xff, 0x1e, 0x42, 0x84, 0xff, 0x35, 0x3b, 0xd2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3b, 0xdd, 0xff, 0x44, 0x42, 0x82, 0xff, 0x4d, 0x41, 0x3a, 0xff, 0x33, 0x2b, 0x26, 0xff, 0x39, 0x35, 0x31, 0xff, 0x37, 0x33, 0x30, 0xff, 0x32, 0x2d, 0x2b, 0xff, 0x4c, 0x43, 0x40, 0xff, 0x4f, 0x43, 0x3c, 0xff, 0x48, 0x45, 0x42, 0xff, 0x25, 0x41, 0x58, 0xff, 0x15, 0x44, 0x6e, 0xff, 0x13, 0x42, 0x69, 0xff, 0x13, 0x41, 0x67, 0xff, 0x16, 0x44, 0x69, 0xff, 0x12, 0x3c, 0x64, 0xff, 0x00, 0x2a, 0x53, 0xff, 0x10, 0x48, 0x75, 0xff, 0x3f, 0x52, 0x60, 0xff, 0x4a, 0x42, 0x3d, 0xff, 0x44, 0x42, 0x42, 0xff, 0x46, 0x3b, 0x48, 0xff, 0x38, 0x3d, 0xde, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3e, 0xd7, 0xff, 0x1c, 0x7a, 0xe1, 0xf7, 0x1b, 0x77, 0xc7, 0x9e, + 0x2d, 0x58, 0xd4, 0xc6, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x39, 0x39, 0xe3, 0xff, 0x39, 0x48, 0xaf, 0xff, 0x26, 0x6d, 0xa9, 0xff, 0x47, 0x3b, 0x33, 0xff, 0x49, 0x44, 0x40, 0xff, 0x34, 0x37, 0x3b, 0xff, 0x12, 0x3d, 0x61, 0xff, 0x8e, 0xa8, 0xbd, 0xff, 0xd2, 0xdb, 0xe1, 0xff, 0xda, 0xe2, 0xe8, 0xff, 0xb8, 0xbd, 0xe6, 0xff, 0x4d, 0x4e, 0xe1, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xdd, 0xff, 0x2e, 0x2f, 0x72, 0xff, 0xa2, 0xa3, 0xa5, 0xff, 0xdf, 0xdf, 0xdf, 0xff, 0xdc, 0xdc, 0xdc, 0xff, 0x8d, 0x8d, 0x8e, 0xff, 0x28, 0x28, 0x2b, 0xff, 0x43, 0x44, 0x46, 0xff, 0x38, 0x31, 0x2c, 0xff, 0x8b, 0x85, 0x82, 0xff, 0xd2, 0xde, 0xe7, 0xff, 0xd0, 0xda, 0xe2, 0xff, 0xd8, 0xdf, 0xe5, 0xff, 0xdc, 0xe2, 0xe8, 0xff, 0xd3, 0xdc, 0xe4, 0xff, 0x9b, 0xad, 0xbd, 0xff, 0x0c, 0x3d, 0x69, 0xff, 0x17, 0x41, 0x65, 0xff, 0x4a, 0x48, 0x49, 0xff, 0x46, 0x42, 0x3f, 0xff, 0x48, 0x3c, 0x34, 0xff, 0x32, 0x4c, 0xcd, 0xff, 0x3a, 0x3a, 0xe3, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x22, 0x6d, 0xe1, 0xf9, 0x1b, 0x77, 0xc7, 0x9e, + 0x32, 0x4c, 0xd9, 0xd8, 0x39, 0x39, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x39, 0x39, 0xe2, 0xff, 0x37, 0x4e, 0x95, 0xff, 0x26, 0x6d, 0xa9, 0xff, 0x48, 0x3c, 0x34, 0xff, 0x46, 0x3e, 0x38, 0xff, 0x22, 0x34, 0x44, 0xff, 0x94, 0xae, 0xc3, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xd5, 0xd5, 0xf9, 0xff, 0x57, 0x57, 0xe5, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xdc, 0xff, 0xad, 0xad, 0xf1, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe9, 0xe8, 0xe9, 0xff, 0x36, 0x36, 0x37, 0xff, 0x33, 0x33, 0x34, 0xff, 0x30, 0x31, 0x34, 0xff, 0xaa, 0xaa, 0xaa, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf6, 0xfc, 0xfe, 0xff, 0xf6, 0xfc, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xa8, 0xba, 0xc9, 0xff, 0x04, 0x3b, 0x67, 0xff, 0x31, 0x40, 0x4d, 0xff, 0x4a, 0x42, 0x3c, 0xff, 0x47, 0x3c, 0x34, 0xff, 0x2e, 0x5a, 0xbf, 0xff, 0x3a, 0x3a, 0xe3, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x2a, 0x5d, 0xe1, 0xfb, 0x1b, 0x77, 0xc5, 0x9e, + 0x36, 0x46, 0xdd, 0xe7, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3c, 0x39, 0xd1, 0xff, 0x35, 0x51, 0x85, 0xff, 0x26, 0x6d, 0xa9, 0xff, 0x4a, 0x3e, 0x34, 0xff, 0x3b, 0x35, 0x31, 0xff, 0x3c, 0x53, 0x67, 0xff, 0xe4, 0xef, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0x96, 0xa6, 0xb8, 0xff, 0x2c, 0x4b, 0x70, 0xff, 0x37, 0x55, 0x76, 0xff, 0xbd, 0xc8, 0xd3, 0xff, 0xd4, 0xd4, 0xf8, 0xff, 0x51, 0x51, 0xe0, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x41, 0x41, 0xe3, 0xff, 0xa9, 0xa9, 0xeb, 0xff, 0xf4, 0xf4, 0xf4, 0xff, 0xff, 0xff, 0xff, 0xff, 0x5e, 0x5e, 0x5e, 0xff, 0x22, 0x22, 0x23, 0xff, 0x34, 0x34, 0x35, 0xff, 0x9f, 0x9f, 0x9f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xbe, 0xc6, 0xcf, 0xff, 0x26, 0x47, 0x6c, 0xff, 0x1d, 0x40, 0x68, 0xff, 0x7e, 0x92, 0xa8, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf6, 0xf8, 0xf9, 0xff, 0x2b, 0x5a, 0x81, 0xff, 0x18, 0x38, 0x51, 0xff, 0x4b, 0x42, 0x3c, 0xff, 0x48, 0x3c, 0x33, 0xff, 0x2b, 0x61, 0xb7, 0xff, 0x3a, 0x3b, 0xde, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x2f, 0x51, 0xe2, 0xfc, 0x1b, 0x77, 0xc5, 0x9e, + 0x37, 0x40, 0xdf, 0xf0, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3e, 0x36, 0xb5, 0xff, 0x34, 0x54, 0x7b, 0xff, 0x25, 0x6d, 0xaa, 0xff, 0x4d, 0x3e, 0x32, 0xff, 0x37, 0x33, 0x31, 0xff, 0x40, 0x5e, 0x78, 0xff, 0xe8, 0xf2, 0xfa, 0xff, 0xff, 0xff, 0xff, 0xff, 0x42, 0x61, 0x81, 0xff, 0x00, 0x19, 0x48, 0xff, 0x00, 0x1a, 0x47, 0xff, 0x7a, 0x91, 0xa8, 0xff, 0xff, 0xff, 0xff, 0xff, 0xbc, 0xbb, 0xe0, 0xff, 0x39, 0x39, 0xc8, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3e, 0x3e, 0xdf, 0xff, 0x7f, 0x7f, 0xc0, 0xff, 0xff, 0xff, 0xff, 0xff, 0x8f, 0x8f, 0x8e, 0xff, 0x1a, 0x1a, 0x1c, 0xff, 0x30, 0x30, 0x32, 0xff, 0xa1, 0xa1, 0xa1, 0xff, 0xff, 0xff, 0xff, 0xff, 0xab, 0xa7, 0xa5, 0xff, 0x00, 0x03, 0x27, 0xff, 0x00, 0x00, 0x36, 0xff, 0x28, 0x46, 0x6b, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xfd, 0xfe, 0xff, 0x36, 0x62, 0x87, 0xff, 0x10, 0x38, 0x59, 0xff, 0x4a, 0x43, 0x3e, 0xff, 0x48, 0x3b, 0x30, 0xff, 0x28, 0x66, 0xb2, 0xff, 0x39, 0x3e, 0xd0, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x32, 0x49, 0xe1, 0xfd, 0x1b, 0x76, 0xc3, 0x9e, + 0x38, 0x3d, 0xe0, 0xf7, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x40, 0x35, 0xa5, 0xff, 0x34, 0x55, 0x76, 0xff, 0x25, 0x6d, 0xaa, 0xff, 0x4d, 0x3d, 0x31, 0xff, 0x36, 0x35, 0x34, 0xff, 0x3a, 0x5e, 0x7c, 0xff, 0xe4, 0xee, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0x4e, 0x70, 0x8d, 0xff, 0x03, 0x37, 0x5f, 0xff, 0x1d, 0x53, 0x7a, 0xff, 0x42, 0x5c, 0x72, 0xff, 0x82, 0x7d, 0x79, 0xff, 0x69, 0x69, 0x69, 0xff, 0x31, 0x31, 0x58, 0xff, 0x38, 0x38, 0xca, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3d, 0x3d, 0xdb, 0xff, 0xb3, 0xb3, 0xf3, 0xff, 0xc6, 0xc6, 0xc6, 0xff, 0x1f, 0x1f, 0x1f, 0xff, 0x25, 0x25, 0x27, 0xff, 0xa3, 0xa3, 0xa3, 0xff, 0xff, 0xff, 0xff, 0xff, 0xd3, 0xca, 0xc5, 0xff, 0x55, 0x66, 0x74, 0xff, 0x46, 0x67, 0x8a, 0xff, 0x98, 0xa9, 0xba, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xc7, 0xd1, 0xd9, 0xff, 0x1a, 0x4a, 0x74, 0xff, 0x18, 0x43, 0x66, 0xff, 0x48, 0x43, 0x3f, 0xff, 0x4a, 0x3a, 0x2f, 0xff, 0x27, 0x69, 0xae, 0xff, 0x39, 0x41, 0xca, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x35, 0x45, 0xe1, 0xfe, 0x1b, 0x76, 0xc3, 0x9e, + 0x39, 0x3c, 0xe1, 0xfb, 0x3a, 0x3a, 0xe2, 0xff, 0x39, 0x39, 0xe2, 0xff, 0x42, 0x36, 0x99, 0xff, 0x34, 0x55, 0x74, 0xff, 0x25, 0x6d, 0xaa, 0xff, 0x4e, 0x3d, 0x31, 0xff, 0x36, 0x35, 0x36, 0xff, 0x38, 0x5e, 0x7e, 0xff, 0xe4, 0xee, 0xf7, 0xff, 0xff, 0xff, 0xff, 0xff, 0x50, 0x71, 0x8e, 0xff, 0x01, 0x32, 0x5c, 0xff, 0x2c, 0x5f, 0x87, 0xff, 0x2d, 0x40, 0x50, 0xff, 0x26, 0x1c, 0x15, 0xff, 0x2f, 0x30, 0x31, 0xff, 0x31, 0x30, 0x32, 0xff, 0x4c, 0x4c, 0x72, 0xff, 0x53, 0x53, 0xe5, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x42, 0x42, 0xe2, 0xff, 0xaa, 0xaa, 0xed, 0xff, 0x37, 0x37, 0x38, 0xff, 0x18, 0x18, 0x19, 0xff, 0xa3, 0xa3, 0xa4, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xfe, 0xfe, 0xff, 0x42, 0x63, 0x81, 0xff, 0x00, 0x2b, 0x5b, 0xff, 0x2d, 0x56, 0x78, 0xff, 0x46, 0x42, 0x3f, 0xff, 0x4a, 0x3b, 0x2e, 0xff, 0x26, 0x6a, 0xad, 0xff, 0x39, 0x42, 0xc3, 0xff, 0x39, 0x39, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x36, 0x41, 0xe2, 0xfe, 0x1b, 0x76, 0xc3, 0x9e, + 0x39, 0x3c, 0xe1, 0xfa, 0x3a, 0x3a, 0xe2, 0xff, 0x39, 0x39, 0xe2, 0xff, 0x42, 0x36, 0x99, 0xff, 0x34, 0x55, 0x74, 0xff, 0x25, 0x6d, 0xaa, 0xff, 0x4e, 0x3d, 0x31, 0xff, 0x36, 0x35, 0x35, 0xff, 0x38, 0x5e, 0x7e, 0xff, 0xe4, 0xee, 0xf6, 0xff, 0xff, 0xff, 0xff, 0xff, 0x4f, 0x72, 0x8f, 0xff, 0x01, 0x33, 0x5c, 0xff, 0x2c, 0x5e, 0x88, 0xff, 0x29, 0x3d, 0x4f, 0xff, 0x28, 0x1e, 0x18, 0xff, 0x2c, 0x2c, 0x2d, 0xff, 0x2b, 0x2b, 0x2d, 0xff, 0x84, 0x84, 0x85, 0xff, 0xd6, 0xd6, 0xf9, 0xff, 0x4f, 0x4f, 0xde, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x40, 0x40, 0xe3, 0xff, 0x55, 0x55, 0x99, 0xff, 0x09, 0x09, 0x0b, 0xff, 0xa1, 0xa1, 0xa1, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe8, 0xe5, 0xe2, 0xff, 0xaa, 0xb2, 0xb7, 0xff, 0x98, 0xb1, 0xc4, 0xff, 0xc7, 0xd3, 0xdd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xb6, 0xc4, 0xce, 0xff, 0x1b, 0x4b, 0x74, 0xff, 0x19, 0x45, 0x6a, 0xff, 0x47, 0x43, 0x40, 0xff, 0x4a, 0x3a, 0x2e, 0xff, 0x26, 0x6a, 0xad, 0xff, 0x39, 0x42, 0xc3, 0xff, 0x39, 0x39, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x36, 0x41, 0xe2, 0xfe, 0x1b, 0x76, 0xc3, 0x9e, + 0x38, 0x3e, 0xe0, 0xf6, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x41, 0x37, 0xa6, 0xff, 0x34, 0x55, 0x76, 0xff, 0x25, 0x6d, 0xaa, 0xff, 0x4d, 0x3d, 0x31, 0xff, 0x36, 0x34, 0x32, 0xff, 0x3c, 0x5e, 0x7d, 0xff, 0xe6, 0xf0, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0x48, 0x69, 0x87, 0xff, 0x05, 0x33, 0x5c, 0xff, 0x13, 0x42, 0x6b, 0xff, 0x53, 0x6d, 0x84, 0xff, 0xc9, 0xc1, 0xbd, 0xff, 0x90, 0x8f, 0x90, 0xff, 0x20, 0x21, 0x22, 0xff, 0xa1, 0xa1, 0xa1, 0xff, 0xff, 0xff, 0xff, 0xff, 0xbb, 0xbb, 0xdf, 0xff, 0x48, 0x48, 0xd8, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3d, 0x3d, 0xdf, 0xff, 0x1b, 0x1b, 0x5f, 0xff, 0x9a, 0x9a, 0x9c, 0xff, 0xff, 0xff, 0xff, 0xff, 0xb4, 0xa9, 0x9f, 0xff, 0x00, 0x0a, 0x21, 0xff, 0x00, 0x11, 0x4a, 0xff, 0x1f, 0x3c, 0x63, 0xff, 0xeb, 0xf0, 0xf2, 0xff, 0xff, 0xff, 0xff, 0xff, 0x53, 0x79, 0x99, 0xff, 0x09, 0x36, 0x5d, 0xff, 0x48, 0x43, 0x3f, 0xff, 0x4a, 0x3b, 0x2f, 0xff, 0x27, 0x69, 0xae, 0xff, 0x39, 0x40, 0xcb, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x35, 0x45, 0xe1, 0xfe, 0x1b, 0x74, 0xc2, 0x9e, + 0x37, 0x40, 0xdf, 0xef, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3e, 0x37, 0xb6, 0xff, 0x35, 0x54, 0x7c, 0xff, 0x25, 0x6d, 0xaa, 0xff, 0x4d, 0x3e, 0x33, 0xff, 0x37, 0x32, 0x2f, 0xff, 0x42, 0x60, 0x78, 0xff, 0xec, 0xf5, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0x46, 0x61, 0x80, 0xff, 0x00, 0x06, 0x38, 0xff, 0x00, 0x08, 0x39, 0xff, 0x84, 0x98, 0xae, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, 0xdf, 0xdf, 0xff, 0x32, 0x32, 0x33, 0xff, 0xbc, 0xbc, 0xbe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xd2, 0xd2, 0xf8, 0xff, 0x56, 0x56, 0xe6, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x39, 0x39, 0xda, 0xff, 0x6f, 0x6f, 0xb1, 0xff, 0xff, 0xff, 0xff, 0xff, 0xac, 0xa9, 0xaa, 0xff, 0x00, 0x05, 0x2c, 0xff, 0x00, 0x07, 0x3e, 0xff, 0x06, 0x29, 0x53, 0xff, 0xe5, 0xea, 0xee, 0xff, 0xff, 0xff, 0xff, 0xff, 0x57, 0x7c, 0x9b, 0xff, 0x0f, 0x37, 0x58, 0xff, 0x49, 0x42, 0x3c, 0xff, 0x49, 0x3b, 0x31, 0xff, 0x28, 0x66, 0xb2, 0xff, 0x39, 0x3e, 0xd1, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x32, 0x49, 0xe1, 0xfd, 0x1b, 0x74, 0xc2, 0x9e, + 0x35, 0x44, 0xdd, 0xe6, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3b, 0x39, 0xd4, 0xff, 0x35, 0x51, 0x86, 0xff, 0x25, 0x6d, 0xa9, 0xff, 0x49, 0x3d, 0x34, 0xff, 0x3e, 0x37, 0x33, 0xff, 0x35, 0x4c, 0x60, 0xff, 0xd5, 0xe4, 0xef, 0xff, 0xff, 0xff, 0xff, 0xff, 0xbf, 0xcb, 0xd6, 0xff, 0x5c, 0x7a, 0x95, 0xff, 0x6c, 0x87, 0x9e, 0xff, 0xda, 0xe1, 0xe6, 0xff, 0xff, 0xff, 0xff, 0xff, 0xba, 0xb7, 0xb6, 0xff, 0x3e, 0x3f, 0x41, 0xff, 0xf2, 0xf3, 0xf3, 0xff, 0xff, 0xff, 0xff, 0xff, 0x76, 0x76, 0x77, 0xff, 0x51, 0x51, 0x53, 0xff, 0x4d, 0x4d, 0x73, 0xff, 0x45, 0x45, 0xd6, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3e, 0x3e, 0xdd, 0xff, 0xb3, 0xb3, 0xf3, 0xff, 0xd0, 0xd6, 0xdd, 0xff, 0x5e, 0x74, 0x91, 0xff, 0x52, 0x6e, 0x8b, 0xff, 0x93, 0xa8, 0xb8, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x39, 0x65, 0x8a, 0xff, 0x17, 0x35, 0x4d, 0xff, 0x4b, 0x42, 0x3c, 0xff, 0x47, 0x3b, 0x33, 0xff, 0x2b, 0x61, 0xb7, 0xff, 0x3a, 0x3b, 0xde, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x30, 0x50, 0xe0, 0xfc, 0x1b, 0x74, 0xc2, 0x9e, + 0x32, 0x4c, 0xd8, 0xd8, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe3, 0xff, 0x36, 0x4d, 0x95, 0xff, 0x26, 0x6d, 0xa9, 0xff, 0x47, 0x3c, 0x34, 0xff, 0x49, 0x41, 0x3c, 0xff, 0x1f, 0x2d, 0x3d, 0xff, 0x69, 0x89, 0xa5, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf6, 0xf9, 0xfc, 0xff, 0x44, 0x44, 0x45, 0xff, 0x77, 0x71, 0x6d, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe8, 0xe8, 0xe8, 0xff, 0x12, 0x12, 0x13, 0xff, 0x0f, 0x0f, 0x11, 0xff, 0x0d, 0x0d, 0x0d, 0xff, 0x2c, 0x2c, 0x51, 0xff, 0x53, 0x53, 0xe4, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x44, 0x44, 0xe3, 0xff, 0xb3, 0xb3, 0xf3, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x99, 0xae, 0xbf, 0xff, 0x05, 0x39, 0x65, 0xff, 0x34, 0x40, 0x4b, 0xff, 0x4a, 0x42, 0x3d, 0xff, 0x47, 0x3c, 0x34, 0xff, 0x2f, 0x5a, 0xc1, 0xff, 0x39, 0x39, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x39, 0x39, 0xe2, 0xff, 0x29, 0x5c, 0xde, 0xfb, 0x1b, 0x74, 0xc0, 0x9e, + 0x2c, 0x57, 0xd1, 0xc4, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe3, 0xff, 0x37, 0x46, 0xb2, 0xff, 0x26, 0x6d, 0xa9, 0xff, 0x48, 0x3b, 0x33, 0xff, 0x48, 0x43, 0x41, 0xff, 0x3d, 0x3c, 0x3e, 0xff, 0x0d, 0x35, 0x59, 0xff, 0x59, 0x7e, 0x9d, 0xff, 0x98, 0xac, 0xbb, 0xff, 0x98, 0xac, 0xbd, 0xff, 0x98, 0xab, 0xbe, 0xff, 0x91, 0xa8, 0xb9, 0xff, 0x42, 0x6c, 0x8e, 0xff, 0x00, 0x20, 0x3f, 0xff, 0x86, 0x7e, 0x7b, 0xff, 0xbc, 0xb2, 0xaa, 0xff, 0x7c, 0x7b, 0x7a, 0xff, 0x33, 0x35, 0x36, 0xff, 0x48, 0x4a, 0x4c, 0xff, 0x47, 0x47, 0x49, 0xff, 0x35, 0x36, 0x38, 0xff, 0x73, 0x74, 0x96, 0xff, 0x4d, 0x4d, 0xdb, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3e, 0x3f, 0xe0, 0xff, 0x71, 0x7d, 0xca, 0xff, 0x99, 0xac, 0xbd, 0xff, 0x9c, 0xb0, 0xc0, 0xff, 0x6e, 0x89, 0x9f, 0xff, 0x08, 0x3d, 0x68, 0xff, 0x1c, 0x43, 0x63, 0xff, 0x4c, 0x49, 0x46, 0xff, 0x46, 0x42, 0x3f, 0xff, 0x48, 0x3b, 0x34, 0xff, 0x34, 0x4e, 0xcd, 0xff, 0x39, 0x39, 0xe3, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x22, 0x6b, 0xdd, 0xf9, 0x1b, 0x74, 0xc0, 0x9e, + 0x25, 0x64, 0xca, 0xb2, 0x37, 0x3f, 0xe2, 0xfe, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x38, 0x3d, 0xd4, 0xff, 0x28, 0x69, 0xad, 0xff, 0x48, 0x3b, 0x33, 0xff, 0x44, 0x42, 0x42, 0xff, 0x4d, 0x46, 0x40, 0xff, 0x34, 0x45, 0x53, 0xff, 0x02, 0x3d, 0x6c, 0xff, 0x07, 0x38, 0x60, 0xff, 0x0a, 0x38, 0x62, 0xff, 0x09, 0x39, 0x61, 0xff, 0x07, 0x37, 0x5e, 0xff, 0x0c, 0x3b, 0x62, 0xff, 0x26, 0x59, 0x83, 0xff, 0x23, 0x46, 0x66, 0xff, 0x22, 0x26, 0x2b, 0xff, 0x35, 0x2c, 0x26, 0xff, 0x4f, 0x47, 0x41, 0xff, 0x4b, 0x45, 0x42, 0xff, 0x4c, 0x46, 0x43, 0xff, 0x4b, 0x46, 0x42, 0xff, 0x33, 0x2b, 0x25, 0xff, 0x30, 0x28, 0x48, 0xff, 0x3a, 0x3b, 0xcb, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x38, 0x3a, 0xdd, 0xff, 0x1c, 0x39, 0x94, 0xff, 0x08, 0x38, 0x60, 0xff, 0x07, 0x38, 0x5e, 0xff, 0x15, 0x4c, 0x79, 0xff, 0x3e, 0x4e, 0x5b, 0xff, 0x4a, 0x43, 0x3e, 0xff, 0x44, 0x42, 0x42, 0xff, 0x46, 0x3b, 0x4b, 0xff, 0x39, 0x3d, 0xdd, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x39, 0x3d, 0xd5, 0xff, 0x1b, 0x76, 0xda, 0xf7, 0x1b, 0x74, 0xc0, 0x9e, + 0x1e, 0x71, 0xc2, 0xa3, 0x2f, 0x4f, 0xdf, 0xfc, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe0, 0xff, 0x2e, 0x58, 0xbf, 0xff, 0x48, 0x3b, 0x33, 0xff, 0x44, 0x42, 0x42, 0xff, 0x46, 0x43, 0x42, 0xff, 0x4b, 0x43, 0x3d, 0xff, 0x2d, 0x54, 0x73, 0xff, 0x20, 0x55, 0x81, 0xff, 0x28, 0x4f, 0x71, 0xff, 0x27, 0x51, 0x74, 0xff, 0x27, 0x52, 0x74, 0xff, 0x2c, 0x55, 0x76, 0xff, 0x29, 0x53, 0x75, 0xff, 0x21, 0x52, 0x7a, 0xff, 0x24, 0x51, 0x7a, 0xff, 0x31, 0x4e, 0x67, 0xff, 0x3d, 0x49, 0x53, 0xff, 0x43, 0x46, 0x49, 0xff, 0x45, 0x46, 0x48, 0xff, 0x43, 0x47, 0x4b, 0xff, 0x3c, 0x48, 0x53, 0xff, 0x30, 0x4d, 0x65, 0xff, 0x29, 0x4e, 0x91, 0xff, 0x37, 0x3e, 0xd4, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x39, 0x3b, 0xdf, 0xff, 0x2f, 0x47, 0x9e, 0xff, 0x22, 0x57, 0x84, 0xff, 0x2c, 0x54, 0x74, 0xff, 0x49, 0x41, 0x3c, 0xff, 0x46, 0x44, 0x42, 0xff, 0x44, 0x42, 0x42, 0xff, 0x42, 0x3b, 0x84, 0xff, 0x39, 0x39, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x38, 0x44, 0xb6, 0xff, 0x17, 0x7d, 0xd8, 0xf6, 0x1b, 0x74, 0xbe, 0x9e, + 0x1b, 0x73, 0xbe, 0x9e, 0x25, 0x62, 0xdd, 0xfa, 0x3a, 0x3a, 0xe0, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x36, 0x43, 0xd7, 0xff, 0x47, 0x3b, 0x3b, 0xff, 0x44, 0x42, 0x42, 0xff, 0x43, 0x45, 0x48, 0xff, 0x4b, 0x40, 0x38, 0xff, 0x45, 0x46, 0x47, 0xff, 0x22, 0x57, 0x85, 0xff, 0x24, 0x56, 0x7f, 0xff, 0x2b, 0x52, 0x72, 0xff, 0x29, 0x53, 0x76, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x74, 0xff, 0x29, 0x52, 0x74, 0xff, 0x28, 0x55, 0x7a, 0xff, 0x23, 0x56, 0x80, 0xff, 0x23, 0x54, 0x7d, 0xff, 0x26, 0x53, 0x79, 0xff, 0x26, 0x53, 0x78, 0xff, 0x25, 0x53, 0x79, 0xff, 0x24, 0x55, 0x7e, 0xff, 0x23, 0x57, 0x81, 0xff, 0x26, 0x54, 0x79, 0xff, 0x2d, 0x4c, 0x8d, 0xff, 0x38, 0x3d, 0xd4, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x39, 0x3b, 0xdd, 0xff, 0x2b, 0x4c, 0xa8, 0xff, 0x45, 0x45, 0x47, 0xff, 0x4b, 0x41, 0x38, 0xff, 0x43, 0x45, 0x48, 0xff, 0x43, 0x41, 0x50, 0xff, 0x3c, 0x3a, 0xc9, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3b, 0x3a, 0xdc, 0xff, 0x35, 0x4c, 0x95, 0xff, 0x15, 0x7e, 0xda, 0xf6, 0x1b, 0x73, 0xbe, 0x9e, + 0x1b, 0x73, 0xbe, 0x9e, 0x18, 0x77, 0xd9, 0xf7, 0x39, 0x3e, 0xcf, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3b, 0xe1, 0xff, 0x42, 0x3b, 0x81, 0xff, 0x45, 0x42, 0x42, 0xff, 0x43, 0x45, 0x48, 0xff, 0x43, 0x45, 0x47, 0xff, 0x4f, 0x41, 0x36, 0xff, 0x3f, 0x48, 0x52, 0xff, 0x1e, 0x56, 0x86, 0xff, 0x24, 0x54, 0x7a, 0xff, 0x2b, 0x52, 0x72, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x74, 0xff, 0x28, 0x52, 0x74, 0xff, 0x27, 0x53, 0x76, 0xff, 0x26, 0x53, 0x79, 0xff, 0x25, 0x53, 0x7a, 0xff, 0x26, 0x53, 0x79, 0xff, 0x27, 0x53, 0x76, 0xff, 0x28, 0x52, 0x74, 0xff, 0x28, 0x52, 0x74, 0xff, 0x28, 0x52, 0x75, 0xff, 0x2c, 0x4d, 0x8d, 0xff, 0x38, 0x3d, 0xd3, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3b, 0xdb, 0xff, 0x47, 0x3e, 0x78, 0xff, 0x43, 0x45, 0x47, 0xff, 0x43, 0x45, 0x48, 0xff, 0x40, 0x3e, 0x99, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3f, 0x36, 0xae, 0xff, 0x33, 0x52, 0x77, 0xff, 0x14, 0x7e, 0xd8, 0xf6, 0x1a, 0x73, 0xbe, 0x9e, + 0x1a, 0x73, 0xbe, 0x9e, 0x14, 0x7e, 0xd6, 0xf6, 0x36, 0x48, 0xa4, 0xff, 0x3a, 0x3a, 0xde, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3b, 0x3a, 0xd2, 0xff, 0x43, 0x41, 0x60, 0xff, 0x43, 0x45, 0x47, 0xff, 0x43, 0x45, 0x47, 0xff, 0x44, 0x44, 0x47, 0xff, 0x4f, 0x40, 0x35, 0xff, 0x3e, 0x49, 0x52, 0xff, 0x20, 0x55, 0x82, 0xff, 0x21, 0x55, 0x80, 0xff, 0x28, 0x52, 0x75, 0xff, 0x29, 0x52, 0x73, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x29, 0x52, 0x74, 0xff, 0x29, 0x52, 0x74, 0xff, 0x29, 0x52, 0x74, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x29, 0x52, 0x73, 0xff, 0x2c, 0x4d, 0x8c, 0xff, 0x36, 0x3e, 0xd3, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3b, 0xdb, 0xff, 0x40, 0x42, 0x7a, 0xff, 0x42, 0x43, 0x6c, 0xff, 0x3b, 0x3b, 0xd7, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x39, 0x3a, 0xdd, 0xff, 0x48, 0x31, 0x5b, 0xff, 0x32, 0x53, 0x70, 0xff, 0x14, 0x7e, 0xd6, 0xf6, 0x1a, 0x73, 0xbe, 0x9e, + 0x1a, 0x73, 0xbe, 0x9e, 0x14, 0x7d, 0xd6, 0xf6, 0x32, 0x52, 0x76, 0xff, 0x3d, 0x36, 0xb6, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3d, 0x3c, 0xbb, 0xff, 0x42, 0x44, 0x54, 0xff, 0x44, 0x44, 0x45, 0xff, 0x44, 0x45, 0x47, 0xff, 0x45, 0x45, 0x45, 0xff, 0x4e, 0x41, 0x37, 0xff, 0x42, 0x47, 0x4c, 0xff, 0x25, 0x53, 0x79, 0xff, 0x1e, 0x57, 0x86, 0xff, 0x24, 0x54, 0x7c, 0xff, 0x29, 0x52, 0x74, 0xff, 0x29, 0x52, 0x73, 0xff, 0x29, 0x52, 0x73, 0xff, 0x28, 0x52, 0x74, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x74, 0xff, 0x29, 0x52, 0x73, 0xff, 0x29, 0x52, 0x73, 0xff, 0x29, 0x52, 0x74, 0xff, 0x24, 0x54, 0x7c, 0xff, 0x1e, 0x57, 0x86, 0xff, 0x29, 0x4e, 0x8f, 0xff, 0x3b, 0x3c, 0xcc, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3b, 0x3b, 0xda, 0xff, 0x3b, 0x3b, 0xd4, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x39, 0x39, 0xe2, 0xff, 0x39, 0x43, 0xc3, 0xff, 0x4f, 0x2b, 0x11, 0xff, 0x32, 0x53, 0x70, 0xff, 0x14, 0x7d, 0xd6, 0xf6, 0x1a, 0x73, 0xbe, 0x9e, + 0x1a, 0x73, 0xbb, 0x9e, 0x14, 0x7d, 0xd6, 0xf6, 0x32, 0x53, 0x71, 0xff, 0x4a, 0x2e, 0x42, 0xff, 0x3a, 0x3b, 0xdd, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3c, 0x3d, 0xae, 0xff, 0x43, 0x43, 0x4e, 0xff, 0x45, 0x45, 0x45, 0xff, 0x44, 0x45, 0x48, 0xff, 0x44, 0x45, 0x47, 0xff, 0x4c, 0x42, 0x3b, 0xff, 0x4a, 0x42, 0x3e, 0xff, 0x34, 0x4c, 0x61, 0xff, 0x22, 0x55, 0x7e, 0xff, 0x20, 0x55, 0x82, 0xff, 0x23, 0x55, 0x7d, 0xff, 0x26, 0x53, 0x78, 0xff, 0x27, 0x52, 0x76, 0xff, 0x27, 0x52, 0x76, 0xff, 0x28, 0x52, 0x76, 0xff, 0x27, 0x52, 0x76, 0xff, 0x27, 0x52, 0x76, 0xff, 0x26, 0x53, 0x78, 0xff, 0x23, 0x55, 0x7d, 0xff, 0x20, 0x55, 0x82, 0xff, 0x22, 0x55, 0x7e, 0xff, 0x34, 0x4c, 0x61, 0xff, 0x4a, 0x42, 0x3e, 0xff, 0x48, 0x40, 0x60, 0xff, 0x3b, 0x3c, 0xcb, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x39, 0x40, 0xdd, 0xff, 0x36, 0x51, 0x88, 0xff, 0x4f, 0x2a, 0x0d, 0xff, 0x32, 0x53, 0x71, 0xff, 0x14, 0x7d, 0xd6, 0xf6, 0x1a, 0x73, 0xbb, 0x9e, + 0x1a, 0x73, 0xbb, 0x9e, 0x14, 0x7d, 0xd5, 0xf6, 0x32, 0x53, 0x70, 0xff, 0x4f, 0x2a, 0x0d, 0xff, 0x36, 0x48, 0xa6, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe3, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3d, 0x3d, 0xaf, 0xff, 0x44, 0x44, 0x54, 0xff, 0x45, 0x45, 0x46, 0xff, 0x45, 0x45, 0x46, 0xff, 0x44, 0x45, 0x49, 0xff, 0x4a, 0x43, 0x41, 0xff, 0x4d, 0x40, 0x37, 0xff, 0x45, 0x44, 0x46, 0xff, 0x35, 0x4b, 0x5f, 0xff, 0x2b, 0x50, 0x6f, 0xff, 0x26, 0x52, 0x78, 0xff, 0x25, 0x54, 0x7b, 0xff, 0x23, 0x54, 0x7c, 0xff, 0x24, 0x54, 0x7c, 0xff, 0x23, 0x54, 0x7c, 0xff, 0x25, 0x54, 0x7b, 0xff, 0x26, 0x52, 0x78, 0xff, 0x2b, 0x50, 0x6f, 0xff, 0x35, 0x4b, 0x5f, 0xff, 0x45, 0x44, 0x46, 0xff, 0x4d, 0x40, 0x37, 0xff, 0x4a, 0x43, 0x41, 0xff, 0x44, 0x45, 0x49, 0xff, 0x44, 0x44, 0x5c, 0xff, 0x3c, 0x3c, 0xc9, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x39, 0x39, 0xe0, 0xff, 0x2d, 0x59, 0xc0, 0xff, 0x34, 0x56, 0x72, 0xff, 0x4f, 0x2a, 0x0d, 0xff, 0x32, 0x53, 0x70, 0xff, 0x14, 0x7d, 0xd6, 0xf6, 0x1a, 0x73, 0xba, 0x9e, + 0x1a, 0x73, 0xba, 0x9e, 0x14, 0x7d, 0xd6, 0xf6, 0x32, 0x53, 0x70, 0xff, 0x4f, 0x2a, 0x0e, 0xff, 0x34, 0x55, 0x75, 0xff, 0x33, 0x4f, 0xcb, 0xff, 0x3a, 0x3a, 0xe3, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3d, 0x3d, 0xbb, 0xff, 0x43, 0x43, 0x69, 0xff, 0x45, 0x45, 0x46, 0xff, 0x45, 0x45, 0x46, 0xff, 0x44, 0x46, 0x49, 0xff, 0x46, 0x44, 0x46, 0xff, 0x4b, 0x43, 0x3d, 0xff, 0x4c, 0x42, 0x3a, 0xff, 0x48, 0x44, 0x41, 0xff, 0x43, 0x45, 0x49, 0xff, 0x3e, 0x48, 0x52, 0xff, 0x3a, 0x49, 0x58, 0xff, 0x3b, 0x4a, 0x59, 0xff, 0x3a, 0x49, 0x58, 0xff, 0x3e, 0x48, 0x52, 0xff, 0x43, 0x45, 0x49, 0xff, 0x48, 0x44, 0x41, 0xff, 0x4c, 0x42, 0x3a, 0xff, 0x4b, 0x43, 0x3d, 0xff, 0x46, 0x44, 0x46, 0xff, 0x44, 0x46, 0x49, 0xff, 0x45, 0x45, 0x46, 0xff, 0x43, 0x43, 0x68, 0xff, 0x3d, 0x3d, 0xc5, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe3, 0xff, 0x41, 0x3b, 0x8d, 0xff, 0x26, 0x6d, 0xaa, 0xff, 0x34, 0x56, 0x73, 0xff, 0x4f, 0x2a, 0x0e, 0xff, 0x32, 0x53, 0x70, 0xff, 0x14, 0x7d, 0xd6, 0xf6, 0x1a, 0x73, 0xba, 0x9e, + 0x1a, 0x73, 0xba, 0x9e, 0x14, 0x7d, 0xd5, 0xf6, 0x31, 0x53, 0x70, 0xff, 0x4f, 0x2b, 0x0d, 0xff, 0x33, 0x56, 0x74, 0xff, 0x26, 0x6c, 0xac, 0xff, 0x3f, 0x3a, 0x9f, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3b, 0x3b, 0xd4, 0xff, 0x3f, 0x3f, 0x91, 0xff, 0x44, 0x44, 0x51, 0xff, 0x45, 0x45, 0x46, 0xff, 0x45, 0x45, 0x47, 0xff, 0x45, 0x45, 0x47, 0xff, 0x46, 0x45, 0x45, 0xff, 0x48, 0x44, 0x42, 0xff, 0x4a, 0x43, 0x3f, 0xff, 0x49, 0x43, 0x3f, 0xff, 0x49, 0x43, 0x3f, 0xff, 0x4a, 0x43, 0x3f, 0xff, 0x49, 0x43, 0x3f, 0xff, 0x49, 0x43, 0x3f, 0xff, 0x4a, 0x43, 0x3f, 0xff, 0x48, 0x44, 0x42, 0xff, 0x46, 0x45, 0x45, 0xff, 0x45, 0x45, 0x47, 0xff, 0x45, 0x45, 0x47, 0xff, 0x44, 0x44, 0x58, 0xff, 0x3f, 0x3f, 0x99, 0xff, 0x3b, 0x3b, 0xd6, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3e, 0x3d, 0x97, 0xff, 0x48, 0x3d, 0x37, 0xff, 0x25, 0x6e, 0xab, 0xff, 0x33, 0x56, 0x74, 0xff, 0x4f, 0x2b, 0x0d, 0xff, 0x31, 0x53, 0x71, 0xff, 0x14, 0x7d, 0xd5, 0xf6, 0x1a, 0x73, 0xbb, 0x9e, + 0x1a, 0x73, 0xbb, 0x9e, 0x13, 0x80, 0xd9, 0xf6, 0x36, 0x4a, 0x5c, 0xff, 0x5a, 0x18, 0x00, 0xff, 0x39, 0x4c, 0x5a, 0xff, 0x28, 0x69, 0x9e, 0xff, 0x4a, 0x37, 0x2d, 0xff, 0x3d, 0x3f, 0x9f, 0xff, 0x3a, 0x3a, 0xe1, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe1, 0xff, 0x3d, 0x3d, 0xc5, 0xff, 0x40, 0x41, 0x88, 0xff, 0x43, 0x45, 0x5b, 0xff, 0x44, 0x46, 0x49, 0xff, 0x44, 0x46, 0x48, 0xff, 0x44, 0x46, 0x48, 0xff, 0x44, 0x46, 0x49, 0xff, 0x44, 0x46, 0x48, 0xff, 0x44, 0x46, 0x48, 0xff, 0x44, 0x46, 0x48, 0xff, 0x44, 0x46, 0x48, 0xff, 0x44, 0x46, 0x48, 0xff, 0x44, 0x46, 0x49, 0xff, 0x44, 0x46, 0x48, 0xff, 0x44, 0x46, 0x4a, 0xff, 0x43, 0x44, 0x5e, 0xff, 0x3f, 0x40, 0x91, 0xff, 0x3b, 0x3c, 0xcd, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3b, 0x3b, 0xdf, 0xff, 0x3e, 0x40, 0x98, 0xff, 0x42, 0x44, 0x4b, 0xff, 0x4b, 0x37, 0x27, 0xff, 0x28, 0x69, 0x9e, 0xff, 0x39, 0x4c, 0x5a, 0xff, 0x5a, 0x18, 0x00, 0xff, 0x36, 0x4a, 0x5c, 0xff, 0x13, 0x80, 0xda, 0xf6, 0x1a, 0x73, 0xbb, 0x9e, + 0x1a, 0x6f, 0xb8, 0x9e, 0x18, 0x75, 0xc5, 0xf6, 0x28, 0x64, 0x98, 0xff, 0x36, 0x53, 0x6f, 0xff, 0x25, 0x6f, 0xac, 0xff, 0x23, 0x71, 0xb3, 0xff, 0x4c, 0x33, 0x20, 0xff, 0x49, 0x39, 0x2d, 0xff, 0x41, 0x3d, 0x85, 0xff, 0x3b, 0x3a, 0xd9, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x39, 0x39, 0xe1, 0xff, 0x3b, 0x3a, 0xd2, 0xff, 0x41, 0x3d, 0x9d, 0xff, 0x44, 0x3d, 0x75, 0xff, 0x45, 0x3d, 0x5d, 0xff, 0x46, 0x3d, 0x4d, 0xff, 0x47, 0x3e, 0x43, 0xff, 0x47, 0x3e, 0x41, 0xff, 0x47, 0x3e, 0x41, 0xff, 0x47, 0x3e, 0x43, 0xff, 0x46, 0x3d, 0x4f, 0xff, 0x45, 0x3d, 0x5f, 0xff, 0x43, 0x3c, 0x78, 0xff, 0x3f, 0x3b, 0xa3, 0xff, 0x3b, 0x3a, 0xd7, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3b, 0x3a, 0xd3, 0xff, 0x42, 0x3c, 0x78, 0xff, 0x46, 0x40, 0x3b, 0xff, 0x4a, 0x39, 0x2c, 0xff, 0x4c, 0x34, 0x21, 0xff, 0x24, 0x71, 0xb2, 0xff, 0x25, 0x6f, 0xab, 0xff, 0x36, 0x53, 0x6f, 0xff, 0x28, 0x64, 0x98, 0xff, 0x18, 0x75, 0xc5, 0xf6, 0x1a, 0x6f, 0xb8, 0x9e, + 0x1b, 0x6f, 0xb6, 0x9e, 0x1e, 0x6b, 0xad, 0xf6, 0x16, 0x84, 0xdf, 0xff, 0x0f, 0x97, 0xf8, 0xff, 0x14, 0x8d, 0xf2, 0xff, 0x11, 0x8e, 0xf7, 0xff, 0x28, 0x69, 0xa0, 0xff, 0x4b, 0x38, 0x28, 0xff, 0x45, 0x40, 0x3d, 0xff, 0x41, 0x42, 0x6e, 0xff, 0x3d, 0x3d, 0xb5, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3b, 0x3a, 0xd9, 0xff, 0x3b, 0x3b, 0xc7, 0xff, 0x3d, 0x3d, 0xbc, 0xff, 0x3e, 0x3d, 0xb5, 0xff, 0x3e, 0x3d, 0xb5, 0xff, 0x3d, 0x3d, 0xbd, 0xff, 0x3c, 0x3b, 0xc8, 0xff, 0x3a, 0x3a, 0xdc, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe0, 0xff, 0x3e, 0x3d, 0xaf, 0xff, 0x42, 0x41, 0x66, 0xff, 0x43, 0x44, 0x44, 0xff, 0x45, 0x40, 0x3d, 0xff, 0x4a, 0x38, 0x28, 0xff, 0x28, 0x69, 0xa0, 0xff, 0x12, 0x8e, 0xf7, 0xff, 0x13, 0x8d, 0xf2, 0xff, 0x10, 0x97, 0xf8, 0xff, 0x16, 0x84, 0xdf, 0xff, 0x1e, 0x6a, 0xad, 0xf6, 0x1b, 0x6f, 0xb5, 0x9e, + 0x1a, 0x70, 0xbc, 0x9f, 0x17, 0x79, 0xcd, 0xf6, 0x30, 0x54, 0x74, 0xff, 0x40, 0x3f, 0x41, 0xff, 0x40, 0x40, 0x41, 0xff, 0x2a, 0x68, 0xa0, 0xff, 0x11, 0x8e, 0xf8, 0xff, 0x21, 0x74, 0xb7, 0xff, 0x23, 0x6f, 0xb0, 0xff, 0x21, 0x74, 0xb7, 0xff, 0x24, 0x6f, 0xb8, 0xff, 0x2c, 0x5a, 0xc9, 0xff, 0x34, 0x47, 0xd8, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3b, 0xe1, 0xff, 0x34, 0x49, 0xd7, 0xff, 0x2b, 0x5d, 0xc8, 0xff, 0x23, 0x70, 0xb7, 0xff, 0x22, 0x73, 0xb6, 0xff, 0x21, 0x74, 0xb7, 0xff, 0x24, 0x6f, 0xb0, 0xff, 0x21, 0x74, 0xb8, 0xff, 0x11, 0x8e, 0xf8, 0xff, 0x2a, 0x68, 0x9f, 0xff, 0x40, 0x40, 0x41, 0xff, 0x40, 0x3e, 0x41, 0xff, 0x30, 0x54, 0x73, 0xff, 0x17, 0x7a, 0xcd, 0xf6, 0x1a, 0x70, 0xba, 0x9f, + 0x1b, 0x6f, 0xb6, 0xb1, 0x12, 0x80, 0xdd, 0xff, 0x34, 0x4c, 0x5e, 0xf8, 0x53, 0x1f, 0x00, 0xf9, 0x50, 0x25, 0x04, 0xff, 0x39, 0x4f, 0x64, 0xff, 0x0f, 0x91, 0xfd, 0xff, 0x33, 0x58, 0x77, 0xff, 0x44, 0x3e, 0x39, 0xff, 0x3d, 0x4a, 0x54, 0xff, 0x3e, 0x4b, 0x54, 0xff, 0x3e, 0x4a, 0x55, 0xff, 0x3e, 0x49, 0x63, 0xff, 0x3d, 0x45, 0x89, 0xff, 0x3c, 0x40, 0xaf, 0xff, 0x3a, 0x3c, 0xd4, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3b, 0x3d, 0xd1, 0xff, 0x3c, 0x40, 0xac, 0xff, 0x3d, 0x45, 0x84, 0xff, 0x3e, 0x49, 0x60, 0xff, 0x3e, 0x4a, 0x56, 0xff, 0x3e, 0x4a, 0x55, 0xff, 0x3d, 0x4a, 0x54, 0xff, 0x3d, 0x4a, 0x54, 0xff, 0x44, 0x3e, 0x3a, 0xff, 0x33, 0x58, 0x76, 0xff, 0x0f, 0x91, 0xfd, 0xff, 0x39, 0x4f, 0x64, 0xff, 0x4f, 0x25, 0x04, 0xff, 0x54, 0x1e, 0x00, 0xf8, 0x34, 0x4c, 0x60, 0xf8, 0x11, 0x80, 0xdd, 0xff, 0x1b, 0x6f, 0xb6, 0xb1, + 0x1b, 0x6b, 0xb2, 0x85, 0x15, 0x77, 0xc7, 0xfb, 0x1b, 0x74, 0xbe, 0xfb, 0x3d, 0x3f, 0x40, 0xf0, 0x55, 0x20, 0x00, 0xf9, 0x36, 0x53, 0x6a, 0xff, 0x0c, 0x97, 0xff, 0xff, 0x44, 0x40, 0x41, 0xff, 0x59, 0x1f, 0x00, 0xff, 0x4f, 0x30, 0x17, 0xff, 0x4f, 0x30, 0x17, 0xff, 0x4f, 0x30, 0x17, 0xff, 0x4f, 0x30, 0x17, 0xff, 0x4f, 0x30, 0x17, 0xff, 0x4e, 0x30, 0x1e, 0xff, 0x4b, 0x32, 0x3a, 0xff, 0x48, 0x34, 0x5e, 0xff, 0x44, 0x36, 0x87, 0xff, 0x41, 0x38, 0xa6, 0xff, 0x3e, 0x38, 0xb9, 0xff, 0x3d, 0x39, 0xc9, 0xff, 0x3c, 0x39, 0xd0, 0xff, 0x3c, 0x39, 0xcf, 0xff, 0x3d, 0x39, 0xc5, 0xff, 0x3e, 0x38, 0xb8, 0xff, 0x41, 0x37, 0xa2, 0xff, 0x44, 0x36, 0x82, 0xff, 0x48, 0x33, 0x5a, 0xff, 0x4c, 0x32, 0x36, 0xff, 0x4e, 0x30, 0x1d, 0xff, 0x4f, 0x30, 0x17, 0xff, 0x4f, 0x30, 0x17, 0xff, 0x4f, 0x30, 0x17, 0xff, 0x4f, 0x30, 0x17, 0xff, 0x4f, 0x30, 0x17, 0xff, 0x4f, 0x30, 0x17, 0xff, 0x59, 0x1f, 0x00, 0xff, 0x43, 0x41, 0x41, 0xff, 0x0c, 0x97, 0xff, 0xff, 0x37, 0x53, 0x6b, 0xff, 0x54, 0x20, 0x00, 0xf9, 0x3e, 0x3f, 0x40, 0xef, 0x1b, 0x73, 0xbf, 0xfb, 0x15, 0x77, 0xc7, 0xfb, 0x1b, 0x6d, 0xb0, 0x85, + 0x14, 0x76, 0xb1, 0x0d, 0x1b, 0x6e, 0xb2, 0x9e, 0x16, 0x7b, 0xcf, 0xff, 0x18, 0x76, 0xc7, 0xff, 0x2e, 0x54, 0x75, 0xff, 0x26, 0x61, 0x95, 0xff, 0x16, 0x7a, 0xd0, 0xff, 0x26, 0x60, 0x92, 0xff, 0x2c, 0x55, 0x7b, 0xff, 0x2a, 0x5b, 0x87, 0xff, 0x2a, 0x5b, 0x86, 0xff, 0x2a, 0x5b, 0x86, 0xff, 0x29, 0x5b, 0x86, 0xff, 0x29, 0x5b, 0x86, 0xff, 0x29, 0x5b, 0x86, 0xff, 0x29, 0x5b, 0x86, 0xff, 0x29, 0x5b, 0x86, 0xff, 0x29, 0x5b, 0x86, 0xff, 0x29, 0x5b, 0x86, 0xff, 0x29, 0x5b, 0x86, 0xff, 0x29, 0x5b, 0x86, 0xff, 0x29, 0x5b, 0x86, 0xff, 0x29, 0x5b, 0x86, 0xff, 0x29, 0x5b, 0x86, 0xff, 0x29, 0x5b, 0x86, 0xff, 0x29, 0x5b, 0x86, 0xff, 0x29, 0x5b, 0x86, 0xff, 0x29, 0x5b, 0x86, 0xff, 0x29, 0x5b, 0x86, 0xff, 0x29, 0x5b, 0x86, 0xff, 0x29, 0x5b, 0x86, 0xff, 0x29, 0x5b, 0x86, 0xff, 0x29, 0x5b, 0x86, 0xff, 0x2a, 0x5b, 0x86, 0xff, 0x2a, 0x5b, 0x86, 0xff, 0x2a, 0x5b, 0x87, 0xff, 0x2c, 0x55, 0x7b, 0xff, 0x26, 0x60, 0x92, 0xff, 0x16, 0x7a, 0xd0, 0xff, 0x26, 0x61, 0x94, 0xff, 0x2e, 0x54, 0x75, 0xff, 0x18, 0x76, 0xc5, 0xff, 0x16, 0x7b, 0xcd, 0xff, 0x1b, 0x6e, 0xb3, 0x9e, 0x14, 0x76, 0xb1, 0x0d, + 0x00, 0x00, 0x00, 0x00, 0x1a, 0x66, 0xb3, 0x0a, 0x1c, 0x6f, 0xb3, 0x91, 0x17, 0x77, 0xc7, 0xe5, 0x10, 0x7f, 0xe0, 0xe3, 0x15, 0x74, 0xc5, 0xd9, 0x1d, 0x66, 0xa5, 0xda, 0x15, 0x76, 0xc9, 0xda, 0x12, 0x7c, 0xd7, 0xda, 0x13, 0x78, 0xd0, 0xda, 0x13, 0x78, 0xd0, 0xda, 0x13, 0x78, 0xd0, 0xda, 0x13, 0x78, 0xd0, 0xda, 0x13, 0x78, 0xd0, 0xda, 0x13, 0x78, 0xd0, 0xda, 0x13, 0x78, 0xd0, 0xda, 0x13, 0x78, 0xd0, 0xda, 0x13, 0x78, 0xd0, 0xda, 0x13, 0x78, 0xd0, 0xda, 0x13, 0x78, 0xd0, 0xda, 0x13, 0x78, 0xd0, 0xda, 0x13, 0x78, 0xd0, 0xda, 0x13, 0x78, 0xd0, 0xda, 0x13, 0x78, 0xd0, 0xda, 0x13, 0x78, 0xd0, 0xda, 0x13, 0x78, 0xd0, 0xda, 0x13, 0x78, 0xd0, 0xda, 0x13, 0x78, 0xd0, 0xda, 0x13, 0x78, 0xd0, 0xda, 0x13, 0x78, 0xd0, 0xda, 0x13, 0x78, 0xd0, 0xda, 0x13, 0x78, 0xd0, 0xda, 0x13, 0x78, 0xd0, 0xda, 0x13, 0x78, 0xd0, 0xda, 0x13, 0x78, 0xd0, 0xda, 0x13, 0x78, 0xd0, 0xda, 0x12, 0x7c, 0xd7, 0xda, 0x15, 0x76, 0xc9, 0xda, 0x1d, 0x66, 0xa5, 0xda, 0x15, 0x74, 0xc5, 0xd9, 0x10, 0x7f, 0xe0, 0xe3, 0x17, 0x77, 0xc7, 0xe5, 0x1c, 0x6f, 0xb3, 0x91, 0x1a, 0x66, 0xb3, 0x0a, 0x00, 0x00, 0x00, 0x00, +#endif +}; + +const lv_img_dsc_t img_cab_disabled = { + .header.cf = LV_IMG_CF_TRUE_COLOR_ALPHA, + .header.always_zero = 0, + .header.reserved = 0, + .header.w = 45, + .header.h = 53, + .data_size = 2385 * LV_IMG_PX_SIZE_ALPHA_BYTE, + .data = img_cab_disabled_map, +}; diff --git a/source/main/ui_generated_800x480land/images.c b/source/main/ui_generated_800x480land/images.c index 15bc1055..a53f6068 100644 --- a/source/main/ui_generated_800x480land/images.c +++ b/source/main/ui_generated_800x480land/images.c @@ -1,6 +1,6 @@ #include "images.h" -const ext_img_desc_t images[113] = { +const ext_img_desc_t images[115] = { { "arrow_left", &img_arrow_left }, { "arrow_right", &img_arrow_right }, { "bt_conn", &img_bt_conn }, @@ -114,4 +114,6 @@ const ext_img_desc_t images[113] = { { "rvb_on", &img_rvb_on }, { "tc_off", &img_tc_off }, { "tc_on", &img_tc_on }, + { "amp_disabled", &img_amp_disabled }, + { "cab_disabled", &img_cab_disabled }, }; diff --git a/source/main/ui_generated_800x480land/images.h b/source/main/ui_generated_800x480land/images.h index b27c0445..4296723e 100644 --- a/source/main/ui_generated_800x480land/images.h +++ b/source/main/ui_generated_800x480land/images.h @@ -120,6 +120,8 @@ extern const lv_img_dsc_t img_rvb_off; extern const lv_img_dsc_t img_rvb_on; extern const lv_img_dsc_t img_tc_off; extern const lv_img_dsc_t img_tc_on; +extern const lv_img_dsc_t img_amp_disabled; +extern const lv_img_dsc_t img_cab_disabled; #ifndef EXT_IMG_DESC_T #define EXT_IMG_DESC_T @@ -129,7 +131,7 @@ typedef struct _ext_img_desc_t { } ext_img_desc_t; #endif -extern const ext_img_desc_t images[113]; +extern const ext_img_desc_t images[115]; #ifdef __cplusplus diff --git a/source/main/ui_generated_800x480land/screens.c b/source/main/ui_generated_800x480land/screens.c index 570365c3..b00f8d4a 100644 --- a/source/main/ui_generated_800x480land/screens.c +++ b/source/main/ui_generated_800x480land/screens.c @@ -273,46 +273,6 @@ void create_screen_screen1() { } } } - { - // ui_LeftArrow - lv_obj_t *obj = lv_img_create(parent_obj); - objects.ui_left_arrow = obj; - lv_obj_set_pos(obj, 88, 165); - lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); - lv_img_set_src(obj, &img_arrow_left); - lv_obj_add_event_cb(obj, action_amp_skin_previous, LV_EVENT_PRESSED, (void *)0); - lv_obj_add_flag(obj, LV_OBJ_FLAG_HIDDEN|LV_OBJ_FLAG_CLICKABLE); - } - { - // ui_RightArrow - lv_obj_t *obj = lv_img_create(parent_obj); - objects.ui_right_arrow = obj; - lv_obj_set_pos(obj, 640, 165); - lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); - lv_img_set_src(obj, &img_arrow_right); - lv_obj_add_event_cb(obj, action_amp_skin_next, LV_EVENT_PRESSED, (void *)0); - lv_obj_add_flag(obj, LV_OBJ_FLAG_HIDDEN|LV_OBJ_FLAG_CLICKABLE); - } - { - // ui_EntryKeyboard - lv_obj_t *obj = lv_keyboard_create(parent_obj); - objects.ui_entry_keyboard = obj; - lv_obj_set_pos(obj, 0, 3); - lv_obj_set_size(obj, 800, 275); - lv_obj_add_event_cb(obj, action_keyboard_ok, LV_EVENT_READY, (void *)0); - lv_obj_add_flag(obj, LV_OBJ_FLAG_HIDDEN); - lv_obj_set_style_align(obj, LV_ALIGN_DEFAULT, LV_PART_MAIN | LV_STATE_DEFAULT); - } - { - // ui_OKTick - lv_obj_t *obj = lv_img_create(parent_obj); - objects.ui_ok_tick = obj; - lv_obj_set_pos(obj, 343, 405); - lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); - lv_img_set_src(obj, &img_tick); - lv_obj_add_event_cb(obj, action_save_skin_edit, LV_EVENT_PRESSED, (void *)0); - lv_obj_add_flag(obj, LV_OBJ_FLAG_HIDDEN|LV_OBJ_FLAG_CLICKABLE); - } { // ui_BottomPanelTonex lv_obj_t *obj = lv_obj_create(parent_obj); @@ -444,7 +404,7 @@ void create_screen_screen1() { lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); lv_img_set_src(obj, &img_pre_off); lv_obj_add_event_cb(obj, action_effect_icon_clicked, LV_EVENT_LONG_PRESSED, (void *)0); - lv_obj_add_event_cb(obj, action_effect_icon_clicked, LV_EVENT_PRESSED, (void *)0); + lv_obj_add_event_cb(obj, action_effect_icon_clicked, LV_EVENT_SHORT_CLICKED, (void *)0); lv_obj_add_flag(obj, LV_OBJ_FLAG_CLICKABLE); } { @@ -455,7 +415,7 @@ void create_screen_screen1() { lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); lv_img_set_src(obj, &img_amp_off); lv_obj_add_event_cb(obj, action_effect_icon_clicked, LV_EVENT_LONG_PRESSED, (void *)0); - lv_obj_add_event_cb(obj, action_effect_icon_clicked, LV_EVENT_PRESSED, (void *)0); + lv_obj_add_event_cb(obj, action_effect_icon_clicked, LV_EVENT_SHORT_CLICKED, (void *)0); lv_obj_add_flag(obj, LV_OBJ_FLAG_CLICKABLE); } { @@ -466,7 +426,7 @@ void create_screen_screen1() { lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); lv_img_set_src(obj, &img_nr_off); lv_obj_add_event_cb(obj, action_effect_icon_clicked, LV_EVENT_LONG_PRESSED, (void *)0); - lv_obj_add_event_cb(obj, action_effect_icon_clicked, LV_EVENT_PRESSED, (void *)0); + lv_obj_add_event_cb(obj, action_effect_icon_clicked, LV_EVENT_SHORT_CLICKED, (void *)0); lv_obj_add_flag(obj, LV_OBJ_FLAG_CLICKABLE); } { @@ -477,7 +437,7 @@ void create_screen_screen1() { lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); lv_img_set_src(obj, &img_rvb_off); lv_obj_add_event_cb(obj, action_effect_icon_clicked, LV_EVENT_LONG_PRESSED, (void *)0); - lv_obj_add_event_cb(obj, action_effect_icon_clicked, LV_EVENT_PRESSED, (void *)0); + lv_obj_add_event_cb(obj, action_effect_icon_clicked, LV_EVENT_SHORT_CLICKED, (void *)0); lv_obj_add_flag(obj, LV_OBJ_FLAG_CLICKABLE); } { @@ -488,7 +448,7 @@ void create_screen_screen1() { lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); lv_img_set_src(obj, &img_cab_off); lv_obj_add_event_cb(obj, action_effect_icon_clicked, LV_EVENT_LONG_PRESSED, (void *)0); - lv_obj_add_event_cb(obj, action_effect_icon_clicked, LV_EVENT_PRESSED, (void *)0); + lv_obj_add_event_cb(obj, action_effect_icon_clicked, LV_EVENT_SHORT_CLICKED, (void *)0); lv_obj_add_flag(obj, LV_OBJ_FLAG_CLICKABLE); } { @@ -499,7 +459,7 @@ void create_screen_screen1() { lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); lv_img_set_src(obj, &img_tc_off); lv_obj_add_event_cb(obj, action_effect_icon_clicked, LV_EVENT_PRESSING, (void *)0); - lv_obj_add_event_cb(obj, action_effect_icon_clicked, LV_EVENT_PRESSED, (void *)0); + lv_obj_add_event_cb(obj, action_effect_icon_clicked, LV_EVENT_SHORT_CLICKED, (void *)0); lv_obj_add_flag(obj, LV_OBJ_FLAG_CLICKABLE); } { @@ -510,7 +470,7 @@ void create_screen_screen1() { lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); lv_img_set_src(obj, &img_eq_off); lv_obj_add_event_cb(obj, action_effect_icon_clicked, LV_EVENT_LONG_PRESSED, (void *)0); - lv_obj_add_event_cb(obj, action_effect_icon_clicked, LV_EVENT_PRESSED, (void *)0); + lv_obj_add_event_cb(obj, action_effect_icon_clicked, LV_EVENT_SHORT_CLICKED, (void *)0); lv_obj_add_flag(obj, LV_OBJ_FLAG_CLICKABLE); } { @@ -521,7 +481,7 @@ void create_screen_screen1() { lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); lv_img_set_src(obj, &img_mod_off); lv_obj_add_event_cb(obj, action_effect_icon_clicked, LV_EVENT_LONG_PRESSED, (void *)0); - lv_obj_add_event_cb(obj, action_effect_icon_clicked, LV_EVENT_PRESSED, (void *)0); + lv_obj_add_event_cb(obj, action_effect_icon_clicked, LV_EVENT_SHORT_CLICKED, (void *)0); lv_obj_add_flag(obj, LV_OBJ_FLAG_CLICKABLE); } { @@ -532,7 +492,7 @@ void create_screen_screen1() { lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); lv_img_set_src(obj, &img_dly_off); lv_obj_add_event_cb(obj, action_effect_icon_clicked, LV_EVENT_LONG_PRESSED, (void *)0); - lv_obj_add_event_cb(obj, action_effect_icon_clicked, LV_EVENT_PRESSED, (void *)0); + lv_obj_add_event_cb(obj, action_effect_icon_clicked, LV_EVENT_SHORT_CLICKED, (void *)0); lv_obj_add_flag(obj, LV_OBJ_FLAG_CLICKABLE); } { @@ -543,7 +503,7 @@ void create_screen_screen1() { lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); lv_img_set_src(obj, &img_dst_off); lv_obj_add_event_cb(obj, action_effect_icon_clicked, LV_EVENT_LONG_PRESSED, (void *)0); - lv_obj_add_event_cb(obj, action_effect_icon_clicked, LV_EVENT_PRESSED, (void *)0); + lv_obj_add_event_cb(obj, action_effect_icon_clicked, LV_EVENT_SHORT_CLICKED, (void *)0); lv_obj_add_flag(obj, LV_OBJ_FLAG_CLICKABLE); } { @@ -558,6 +518,46 @@ void create_screen_screen1() { } } } + { + // ui_LeftArrow + lv_obj_t *obj = lv_img_create(parent_obj); + objects.ui_left_arrow = obj; + lv_obj_set_pos(obj, 88, 165); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_img_set_src(obj, &img_arrow_left); + lv_obj_add_event_cb(obj, action_amp_skin_previous, LV_EVENT_PRESSED, (void *)0); + lv_obj_add_flag(obj, LV_OBJ_FLAG_HIDDEN|LV_OBJ_FLAG_CLICKABLE); + } + { + // ui_RightArrow + lv_obj_t *obj = lv_img_create(parent_obj); + objects.ui_right_arrow = obj; + lv_obj_set_pos(obj, 640, 165); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_img_set_src(obj, &img_arrow_right); + lv_obj_add_event_cb(obj, action_amp_skin_next, LV_EVENT_PRESSED, (void *)0); + lv_obj_add_flag(obj, LV_OBJ_FLAG_HIDDEN|LV_OBJ_FLAG_CLICKABLE); + } + { + // ui_EntryKeyboard + lv_obj_t *obj = lv_keyboard_create(parent_obj); + objects.ui_entry_keyboard = obj; + lv_obj_set_pos(obj, 0, 3); + lv_obj_set_size(obj, 800, 275); + lv_obj_add_event_cb(obj, action_keyboard_ok, LV_EVENT_READY, (void *)0); + lv_obj_add_flag(obj, LV_OBJ_FLAG_HIDDEN); + lv_obj_set_style_align(obj, LV_ALIGN_DEFAULT, LV_PART_MAIN | LV_STATE_DEFAULT); + } + { + // ui_OKTick + lv_obj_t *obj = lv_img_create(parent_obj); + objects.ui_ok_tick = obj; + lv_obj_set_pos(obj, 343, 405); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_img_set_src(obj, &img_tick); + lv_obj_add_event_cb(obj, action_save_skin_edit, LV_EVENT_PRESSED, (void *)0); + lv_obj_add_flag(obj, LV_OBJ_FLAG_HIDDEN|LV_OBJ_FLAG_CLICKABLE); + } } } } @@ -2458,12 +2458,2802 @@ void create_screen_settings() { void tick_screen_settings() { } +void create_screen_val_settings() { + lv_obj_t *obj = lv_obj_create(0); + objects.val_settings = obj; + lv_obj_set_pos(obj, 0, 0); + lv_obj_set_size(obj, 800, 480); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE|LV_OBJ_FLAG_SCROLL_MOMENTUM|LV_OBJ_FLAG_SCROLL_CHAIN_HOR|LV_OBJ_FLAG_SCROLL_CHAIN_VER); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff1f1f1f), LV_PART_MAIN | LV_STATE_DEFAULT); + { + lv_obj_t *parent_obj = obj; + { + // ui_ValSettingsTabView + lv_obj_t *obj = lv_tabview_create(parent_obj, LV_DIR_TOP, 60); + objects.ui_val_settings_tab_view = obj; + lv_obj_set_pos(obj, 5, 5); + lv_obj_set_size(obj, 790, 428); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE|LV_OBJ_FLAG_SCROLL_CHAIN_HOR|LV_OBJ_FLAG_SCROLL_CHAIN_VER|LV_OBJ_FLAG_SCROLL_ELASTIC|LV_OBJ_FLAG_SCROLL_MOMENTUM|LV_OBJ_FLAG_SCROLL_WITH_ARROW); + lv_obj_set_scrollbar_mode(obj, LV_SCROLLBAR_MODE_OFF); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff1f1f1f), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_outline_color(obj, lv_color_hex(0xff3b3c40), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_outline_width(obj, 3, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_opa(obj, 255, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_CHECKED); + lv_obj_set_style_text_color(obj, lv_color_hex(0xfffb9230), LV_PART_MAIN | LV_STATE_CHECKED); + lv_obj_set_style_bg_opa(obj, 255, LV_PART_MAIN | LV_STATE_CHECKED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff1f1f1f), LV_PART_MAIN | LV_STATE_CHECKED); + { + lv_obj_t *parent_obj = obj; + { + lv_obj_t *obj = lv_tabview_get_tab_btns(parent_obj); + objects.obj7 = obj; + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff2a2a2a), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_text_color(obj, lv_color_hex(0xffffffff), LV_PART_ITEMS | LV_STATE_DEFAULT); + lv_obj_set_style_border_color(obj, lv_color_hex(0xff373737), LV_PART_ITEMS | LV_STATE_DEFAULT); + lv_obj_set_style_border_width(obj, 2, LV_PART_ITEMS | LV_STATE_DEFAULT); + lv_obj_set_style_border_side(obj, LV_BORDER_SIDE_LEFT, LV_PART_ITEMS | LV_STATE_DEFAULT); + lv_obj_set_style_border_color(obj, lv_color_hex(0xff96969e), LV_PART_ITEMS | LV_STATE_CHECKED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff2196f3), LV_PART_ITEMS | LV_STATE_CHECKED); + } + { + // ui_ValNRTab + lv_obj_t *obj = lv_tabview_add_tab(parent_obj, "NR"); + objects.ui_val_nr_tab = obj; + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE|LV_OBJ_FLAG_SCROLL_CHAIN_HOR|LV_OBJ_FLAG_SCROLL_CHAIN_VER|LV_OBJ_FLAG_SCROLL_ELASTIC|LV_OBJ_FLAG_SCROLL_MOMENTUM|LV_OBJ_FLAG_SCROLL_WITH_ARROW); + lv_obj_set_scrollbar_mode(obj, LV_SCROLLBAR_MODE_OFF); + lv_obj_set_style_text_color(obj, lv_color_hex(0xfffb9230), LV_PART_MAIN | LV_STATE_CHECKED); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_20, LV_PART_MAIN | LV_STATE_CHECKED); + lv_obj_set_style_border_color(obj, lv_color_hex(0xff373737), LV_PART_MAIN | LV_STATE_CHECKED); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_text_color(obj, lv_color_hex(0xfffafafa), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_top(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_bottom(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_left(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_right(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_row(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_column(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_border_color(obj, lv_color_hex(0xff373737), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_border_width(obj, 2, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_border_side(obj, LV_BORDER_SIDE_LEFT, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff513d2b), LV_PART_MAIN | LV_STATE_PRESSED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff513d2b), LV_PART_MAIN | LV_STATE_CHECKED | LV_STATE_PRESSED); + { + lv_obj_t *parent_obj = obj; + { + // ui_ValNRBlockLabel + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_nr_block_label = obj; + lv_obj_set_pos(obj, 13, -148); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE|LV_OBJ_FLAG_SCROLL_CHAIN_HOR|LV_OBJ_FLAG_SCROLL_CHAIN_VER|LV_OBJ_FLAG_SCROLL_ELASTIC|LV_OBJ_FLAG_SCROLL_MOMENTUM|LV_OBJ_FLAG_SCROLL_WITH_ARROW); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_text_align(obj, LV_TEXT_ALIGN_AUTO, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Enable"); + } + { + // ui_ValNRBlockSwitch + lv_obj_t *obj = lv_switch_create(parent_obj); + objects.ui_val_nr_block_switch = obj; + lv_obj_set_pos(obj, 168, -148); + lv_obj_set_size(obj, 80, 35); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_CHECKED); + } + { + // ui_ValNRModelDropdown + lv_obj_t *obj = lv_dropdown_create(parent_obj); + objects.ui_val_nr_model_dropdown = obj; + lv_obj_set_pos(obj, 482, 8); + lv_obj_set_size(obj, 280, LV_SIZE_CONTENT); + lv_dropdown_set_options(obj, "Noise Gate"); + lv_dropdown_set_selected(obj, 0); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_VALUE_CHANGED, (void *)0); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff1f1f1f), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_SELECTED | LV_STATE_CHECKED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_SELECTED | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_SELECTED | LV_STATE_CHECKED | LV_STATE_PRESSED); + { + lv_obj_t *parent_obj = obj; + { + lv_obj_t *obj = lv_dropdown_get_list(parent_obj); + objects.obj8 = obj; + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff1f1f1f), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_SELECTED | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_SELECTED | LV_STATE_CHECKED); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_SELECTED | LV_STATE_CHECKED); + } + } + } + { + // ui_ValNRParam0Label + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_nr_param0_label = obj; + lv_obj_set_pos(obj, 13, -92); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Param0"); + } + { + // ui_ValNRParam0Slider + lv_obj_t *obj = lv_slider_create(parent_obj); + objects.ui_val_nr_param0_slider = obj; + lv_obj_set_pos(obj, 168, -92); + lv_obj_set_size(obj, 511, 20); + lv_slider_set_range(obj, -100, -20); + lv_slider_set_value(obj, -64, LV_ANIM_OFF); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_SCROLLED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + } + { + // ui_ValNRParam0Value + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_nr_param0_value = obj; + lv_obj_set_pos(obj, 703, -92); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "0"); + } + { + // ui_ValNRParam1Label + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_nr_param1_label = obj; + lv_obj_set_pos(obj, 13, -36); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Param1"); + } + { + // ui_ValNRParam1Slider + lv_obj_t *obj = lv_slider_create(parent_obj); + objects.ui_val_nr_param1_slider = obj; + lv_obj_set_pos(obj, 168, -36); + lv_obj_set_size(obj, 511, 20); + lv_slider_set_range(obj, -100, -20); + lv_slider_set_value(obj, -64, LV_ANIM_OFF); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_SCROLLED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + } + { + // ui_ValNRParam1Value + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_nr_param1_value = obj; + lv_obj_set_pos(obj, 703, -36); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "0"); + } + { + // ui_ValNRParam2Label + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_nr_param2_label = obj; + lv_obj_set_pos(obj, 13, 21); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Param2"); + } + { + // ui_ValNRParam2Slider + lv_obj_t *obj = lv_slider_create(parent_obj); + objects.ui_val_nr_param2_slider = obj; + lv_obj_set_pos(obj, 168, 21); + lv_obj_set_size(obj, 511, 20); + lv_slider_set_range(obj, -100, -20); + lv_slider_set_value(obj, -64, LV_ANIM_OFF); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_SCROLLED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + } + { + // ui_ValNRParam2Value + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_nr_param2_value = obj; + lv_obj_set_pos(obj, 703, 21); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "0"); + } + { + // ui_ValNRParam3Label + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_nr_param3_label = obj; + lv_obj_set_pos(obj, 13, 77); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Param3"); + } + { + // ui_ValNRParam3Slider + lv_obj_t *obj = lv_slider_create(parent_obj); + objects.ui_val_nr_param3_slider = obj; + lv_obj_set_pos(obj, 168, 78); + lv_obj_set_size(obj, 511, 20); + lv_slider_set_range(obj, -100, -20); + lv_slider_set_value(obj, -64, LV_ANIM_OFF); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_SCROLLED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + } + { + // ui_ValNRParam3Value + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_nr_param3_value = obj; + lv_obj_set_pos(obj, 703, 77); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "0"); + } + { + // ui_ValNRParam4Label + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_nr_param4_label = obj; + lv_obj_set_pos(obj, 13, 133); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Param4"); + } + { + // ui_ValNRParam4Slider + lv_obj_t *obj = lv_slider_create(parent_obj); + objects.ui_val_nr_param4_slider = obj; + lv_obj_set_pos(obj, 168, 133); + lv_obj_set_size(obj, 511, 20); + lv_slider_set_range(obj, -100, -20); + lv_slider_set_value(obj, -64, LV_ANIM_OFF); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_SCROLLED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + } + { + // ui_ValNRParam4Value + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_nr_param4_value = obj; + lv_obj_set_pos(obj, 703, 133); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "0"); + } + } + } + { + // ui_ValPreTab + lv_obj_t *obj = lv_tabview_add_tab(parent_obj, "Pre"); + objects.ui_val_pre_tab = obj; + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE|LV_OBJ_FLAG_SCROLL_CHAIN_HOR|LV_OBJ_FLAG_SCROLL_CHAIN_VER|LV_OBJ_FLAG_SCROLL_ELASTIC|LV_OBJ_FLAG_SCROLL_MOMENTUM|LV_OBJ_FLAG_SCROLL_WITH_ARROW); + lv_obj_set_scrollbar_mode(obj, LV_SCROLLBAR_MODE_OFF); + lv_obj_set_style_text_color(obj, lv_color_hex(0xfffb9230), LV_PART_MAIN | LV_STATE_CHECKED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff513d2b), LV_PART_MAIN | LV_STATE_CHECKED); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_20, LV_PART_MAIN | LV_STATE_CHECKED); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_20, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_top(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_bottom(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_left(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_right(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_row(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_column(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_border_width(obj, 2, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_border_color(obj, lv_color_hex(0xff373737), LV_PART_MAIN | LV_STATE_DEFAULT); + { + lv_obj_t *parent_obj = obj; + { + // ui_ValNPreBlockLabel + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_npre_block_label = obj; + lv_obj_set_pos(obj, 13, -148); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE|LV_OBJ_FLAG_SCROLL_CHAIN_HOR|LV_OBJ_FLAG_SCROLL_CHAIN_VER|LV_OBJ_FLAG_SCROLL_ELASTIC|LV_OBJ_FLAG_SCROLL_MOMENTUM|LV_OBJ_FLAG_SCROLL_WITH_ARROW); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_text_align(obj, LV_TEXT_ALIGN_AUTO, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Enable"); + } + { + // ui_ValPreBlockSwitch + lv_obj_t *obj = lv_switch_create(parent_obj); + objects.ui_val_pre_block_switch = obj; + lv_obj_set_pos(obj, 168, -148); + lv_obj_set_size(obj, 80, 35); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_CHECKED); + } + { + // ui_ValPreModelDropdown + lv_obj_t *obj = lv_dropdown_create(parent_obj); + objects.ui_val_pre_model_dropdown = obj; + lv_obj_set_pos(obj, 482, 8); + lv_obj_set_size(obj, 280, LV_SIZE_CONTENT); + lv_dropdown_set_options(obj, "Comp\nComp4\nBoost\nMicro Boost\nB-Boost\nToucher\nCrier\nOcta\nPitch\nDetune"); + lv_dropdown_set_selected(obj, 0); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_VALUE_CHANGED, (void *)0); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff1f1f1f), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_SELECTED | LV_STATE_CHECKED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_SELECTED | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_SELECTED | LV_STATE_CHECKED | LV_STATE_PRESSED); + { + lv_obj_t *parent_obj = obj; + { + lv_obj_t *obj = lv_dropdown_get_list(parent_obj); + objects.obj9 = obj; + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff1f1f1f), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_SELECTED | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_SELECTED | LV_STATE_CHECKED); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_SELECTED | LV_STATE_CHECKED); + } + } + } + { + // ui_ValPreParam0Label + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_pre_param0_label = obj; + lv_obj_set_pos(obj, 13, -92); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Param0"); + } + { + // ui_ValPreParam0Slider + lv_obj_t *obj = lv_slider_create(parent_obj); + objects.ui_val_pre_param0_slider = obj; + lv_obj_set_pos(obj, 168, -92); + lv_obj_set_size(obj, 511, 20); + lv_slider_set_range(obj, -100, -20); + lv_slider_set_value(obj, -64, LV_ANIM_OFF); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_SCROLLED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + } + { + // ui_ValPreParam0Value + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_pre_param0_value = obj; + lv_obj_set_pos(obj, 703, -92); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "0"); + } + { + // ui_ValPreParam1Label + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_pre_param1_label = obj; + lv_obj_set_pos(obj, 13, -36); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Param1"); + } + { + // ui_ValPreParam1Slider + lv_obj_t *obj = lv_slider_create(parent_obj); + objects.ui_val_pre_param1_slider = obj; + lv_obj_set_pos(obj, 168, -36); + lv_obj_set_size(obj, 511, 20); + lv_slider_set_range(obj, -100, -20); + lv_slider_set_value(obj, -64, LV_ANIM_OFF); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_SCROLLED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + } + { + // ui_ValPreParam1Value + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_pre_param1_value = obj; + lv_obj_set_pos(obj, 703, -36); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "0"); + } + { + // ui_ValPreParam2Label + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_pre_param2_label = obj; + lv_obj_set_pos(obj, 13, 21); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Param2"); + } + { + // ui_ValPreParam2Slider + lv_obj_t *obj = lv_slider_create(parent_obj); + objects.ui_val_pre_param2_slider = obj; + lv_obj_set_pos(obj, 168, 21); + lv_obj_set_size(obj, 511, 20); + lv_slider_set_range(obj, -100, -20); + lv_slider_set_value(obj, -64, LV_ANIM_OFF); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_SCROLLED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + } + { + // ui_ValPreParam2Value + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_pre_param2_value = obj; + lv_obj_set_pos(obj, 703, 21); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "0"); + } + { + // ui_ValPreParam3Label + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_pre_param3_label = obj; + lv_obj_set_pos(obj, 13, 77); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Param3"); + } + { + // ui_ValPreParam3Slider + lv_obj_t *obj = lv_slider_create(parent_obj); + objects.ui_val_pre_param3_slider = obj; + lv_obj_set_pos(obj, 168, 78); + lv_obj_set_size(obj, 511, 20); + lv_slider_set_range(obj, -100, -20); + lv_slider_set_value(obj, -64, LV_ANIM_OFF); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_SCROLLED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + } + { + // ui_ValPreParam3Value + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_pre_param3_value = obj; + lv_obj_set_pos(obj, 703, 77); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "0"); + } + { + // ui_ValPreParam4Label + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_pre_param4_label = obj; + lv_obj_set_pos(obj, 13, 133); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Param4"); + } + { + // ui_ValPreParam4Slider + lv_obj_t *obj = lv_slider_create(parent_obj); + objects.ui_val_pre_param4_slider = obj; + lv_obj_set_pos(obj, 168, 133); + lv_obj_set_size(obj, 511, 20); + lv_slider_set_range(obj, -100, -20); + lv_slider_set_value(obj, -64, LV_ANIM_OFF); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_SCROLLED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + } + { + // ui_ValPreParam4Value + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_pre_param4_value = obj; + lv_obj_set_pos(obj, 703, 133); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "0"); + } + } + } + { + // ui_ValDstTab + lv_obj_t *obj = lv_tabview_add_tab(parent_obj, "Dst"); + objects.ui_val_dst_tab = obj; + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE|LV_OBJ_FLAG_SCROLL_CHAIN_HOR|LV_OBJ_FLAG_SCROLL_CHAIN_VER|LV_OBJ_FLAG_SCROLL_ELASTIC|LV_OBJ_FLAG_SCROLL_MOMENTUM|LV_OBJ_FLAG_SCROLL_WITH_ARROW); + lv_obj_set_scrollbar_mode(obj, LV_SCROLLBAR_MODE_OFF); + lv_obj_set_style_text_color(obj, lv_color_hex(0xfffb9230), LV_PART_MAIN | LV_STATE_CHECKED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff513d2b), LV_PART_MAIN | LV_STATE_CHECKED); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_20, LV_PART_MAIN | LV_STATE_CHECKED); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_20, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_top(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_bottom(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_left(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_right(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_row(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_column(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_border_width(obj, 2, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_border_color(obj, lv_color_hex(0xff373737), LV_PART_MAIN | LV_STATE_DEFAULT); + { + lv_obj_t *parent_obj = obj; + { + // ui_ValDstBlockLabel + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_dst_block_label = obj; + lv_obj_set_pos(obj, 13, -148); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE|LV_OBJ_FLAG_SCROLL_CHAIN_HOR|LV_OBJ_FLAG_SCROLL_CHAIN_VER|LV_OBJ_FLAG_SCROLL_ELASTIC|LV_OBJ_FLAG_SCROLL_MOMENTUM|LV_OBJ_FLAG_SCROLL_WITH_ARROW); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_text_align(obj, LV_TEXT_ALIGN_AUTO, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Enable"); + } + { + // ui_ValDstBlockSwitch + lv_obj_t *obj = lv_switch_create(parent_obj); + objects.ui_val_dst_block_switch = obj; + lv_obj_set_pos(obj, 168, -148); + lv_obj_set_size(obj, 80, 35); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_CHECKED); + } + { + // ui_ValDstModelDropdown + lv_obj_t *obj = lv_dropdown_create(parent_obj); + objects.ui_val_dst_model_dropdown = obj; + lv_obj_set_pos(obj, 482, 8); + lv_obj_set_size(obj, 280, LV_SIZE_CONTENT); + lv_dropdown_set_options(obj, "Green OD\nYellow OD\nSuper OD\nSM Dist\nPlustortion\nLa Charger\nDarktale\nSora Fuzz\nRed Haze\nBass OD"); + lv_dropdown_set_selected(obj, 0); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_VALUE_CHANGED, (void *)0); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff1f1f1f), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_SELECTED | LV_STATE_CHECKED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_SELECTED | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_SELECTED | LV_STATE_CHECKED | LV_STATE_PRESSED); + { + lv_obj_t *parent_obj = obj; + { + lv_obj_t *obj = lv_dropdown_get_list(parent_obj); + objects.obj10 = obj; + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff1f1f1f), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_SELECTED | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_SELECTED | LV_STATE_CHECKED); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_SELECTED | LV_STATE_CHECKED); + } + } + } + { + // ui_ValDstParam0Label + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_dst_param0_label = obj; + lv_obj_set_pos(obj, 13, -92); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Param0"); + } + { + // ui_ValDstParam0Slider + lv_obj_t *obj = lv_slider_create(parent_obj); + objects.ui_val_dst_param0_slider = obj; + lv_obj_set_pos(obj, 168, -92); + lv_obj_set_size(obj, 511, 20); + lv_slider_set_range(obj, -100, -20); + lv_slider_set_value(obj, -64, LV_ANIM_OFF); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_SCROLLED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + } + { + // ui_ValDstParam0Value + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_dst_param0_value = obj; + lv_obj_set_pos(obj, 703, -92); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "0"); + } + { + // ui_ValDstParam1Label + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_dst_param1_label = obj; + lv_obj_set_pos(obj, 13, -36); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Param1"); + } + { + // ui_ValDstParam1Slider + lv_obj_t *obj = lv_slider_create(parent_obj); + objects.ui_val_dst_param1_slider = obj; + lv_obj_set_pos(obj, 168, -36); + lv_obj_set_size(obj, 511, 20); + lv_slider_set_range(obj, -100, -20); + lv_slider_set_value(obj, -64, LV_ANIM_OFF); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_SCROLLED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + } + { + // ui_ValDstParam1Value + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_dst_param1_value = obj; + lv_obj_set_pos(obj, 703, -36); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "0"); + } + { + // ui_ValDstParam2Label + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_dst_param2_label = obj; + lv_obj_set_pos(obj, 13, 21); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Param2"); + } + { + // ui_ValDstParam2Slider + lv_obj_t *obj = lv_slider_create(parent_obj); + objects.ui_val_dst_param2_slider = obj; + lv_obj_set_pos(obj, 168, 21); + lv_obj_set_size(obj, 511, 20); + lv_slider_set_range(obj, -100, -20); + lv_slider_set_value(obj, -64, LV_ANIM_OFF); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_SCROLLED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + } + { + // ui_ValDstParam2Value + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_dst_param2_value = obj; + lv_obj_set_pos(obj, 703, 21); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "0"); + } + { + // ui_ValDstParam3Label + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_dst_param3_label = obj; + lv_obj_set_pos(obj, 13, 77); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Param3"); + } + { + // ui_ValDstParam3Slider + lv_obj_t *obj = lv_slider_create(parent_obj); + objects.ui_val_dst_param3_slider = obj; + lv_obj_set_pos(obj, 168, 78); + lv_obj_set_size(obj, 511, 20); + lv_slider_set_range(obj, -100, -20); + lv_slider_set_value(obj, -64, LV_ANIM_OFF); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_SCROLLED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + } + { + // ui_ValDstParam3Value + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_dst_param3_value = obj; + lv_obj_set_pos(obj, 703, 77); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "0"); + } + { + // ui_ValDstParam4Label + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_dst_param4_label = obj; + lv_obj_set_pos(obj, 13, 133); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Param4"); + } + { + // ui_ValDstParam4Slider + lv_obj_t *obj = lv_slider_create(parent_obj); + objects.ui_val_dst_param4_slider = obj; + lv_obj_set_pos(obj, 168, 133); + lv_obj_set_size(obj, 511, 20); + lv_slider_set_range(obj, -100, -20); + lv_slider_set_value(obj, -64, LV_ANIM_OFF); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_SCROLLED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + } + { + // ui_ValDstParam4Value + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_dst_param4_value = obj; + lv_obj_set_pos(obj, 703, 133); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "0"); + } + } + } + { + // ui_ValAmpTab + lv_obj_t *obj = lv_tabview_add_tab(parent_obj, "Amp"); + objects.ui_val_amp_tab = obj; + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE|LV_OBJ_FLAG_SCROLL_CHAIN_HOR|LV_OBJ_FLAG_SCROLL_CHAIN_VER|LV_OBJ_FLAG_SCROLL_ELASTIC|LV_OBJ_FLAG_SCROLL_MOMENTUM|LV_OBJ_FLAG_SCROLL_WITH_ARROW); + lv_obj_set_scrollbar_mode(obj, LV_SCROLLBAR_MODE_OFF); + lv_obj_set_style_text_color(obj, lv_color_hex(0xfffb9230), LV_PART_MAIN | LV_STATE_CHECKED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff513d2b), LV_PART_MAIN | LV_STATE_CHECKED); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_20, LV_PART_MAIN | LV_STATE_CHECKED); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_20, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_top(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_bottom(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_left(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_right(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_row(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_column(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_border_width(obj, 2, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_border_color(obj, lv_color_hex(0xff373737), LV_PART_MAIN | LV_STATE_DEFAULT); + { + lv_obj_t *parent_obj = obj; + { + // ui_ValAmpBlockLabel + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_amp_block_label = obj; + lv_obj_set_pos(obj, 13, -148); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE|LV_OBJ_FLAG_SCROLL_CHAIN_HOR|LV_OBJ_FLAG_SCROLL_CHAIN_VER|LV_OBJ_FLAG_SCROLL_ELASTIC|LV_OBJ_FLAG_SCROLL_MOMENTUM|LV_OBJ_FLAG_SCROLL_WITH_ARROW); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_text_align(obj, LV_TEXT_ALIGN_AUTO, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Enable"); + } + { + // ui_ValAmpBlockSwitch + lv_obj_t *obj = lv_switch_create(parent_obj); + objects.ui_val_amp_block_switch = obj; + lv_obj_set_pos(obj, 168, -148); + lv_obj_set_size(obj, 80, 35); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_CHECKED); + } + { + // ui_ValAmpModelDropdown + lv_obj_t *obj = lv_dropdown_create(parent_obj); + objects.ui_val_amp_model_dropdown = obj; + lv_obj_set_pos(obj, 482, 8); + lv_obj_set_size(obj, 280, LV_SIZE_CONTENT); + lv_dropdown_set_options(obj, "Tweedy\nBellman 59N\nDark Twin\nFoxy 30N\nJ-120 CL\nMatch CL\nL-Star CL\nUK 45\nUK 50JP\nUK 800\nBellman 59B\nFoxy 30TB\nSup Dual OD\nSolo100 OD\nZ38 OD\nBad KT OD\nJuiceW R100\nDizz VH\nDizz VH+\nEagle 120\nEV51\nSolo100 LD\nMess Dual V\nMess Dual M\nPower LD\nFlagman+\nBog Red V\nClassic Bass\nFoxy Bass\nMess Bass\nAC Pre 1\nAC Pre 2\n"); + lv_dropdown_set_selected(obj, 0); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_VALUE_CHANGED, (void *)0); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff1f1f1f), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_SELECTED | LV_STATE_CHECKED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_SELECTED | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_SELECTED | LV_STATE_CHECKED | LV_STATE_PRESSED); + { + lv_obj_t *parent_obj = obj; + { + lv_obj_t *obj = lv_dropdown_get_list(parent_obj); + objects.obj11 = obj; + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff1f1f1f), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_SELECTED | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_SELECTED | LV_STATE_CHECKED); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_SELECTED | LV_STATE_CHECKED); + } + } + } + { + // ui_ValAmpParam0Label + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_amp_param0_label = obj; + lv_obj_set_pos(obj, 13, -92); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Param0"); + } + { + // ui_ValAmpParam0Slider + lv_obj_t *obj = lv_slider_create(parent_obj); + objects.ui_val_amp_param0_slider = obj; + lv_obj_set_pos(obj, 168, -92); + lv_obj_set_size(obj, 511, 20); + lv_slider_set_range(obj, -100, -20); + lv_slider_set_value(obj, -64, LV_ANIM_OFF); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_SCROLLED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + } + { + // ui_ValAmpParam0Value + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_amp_param0_value = obj; + lv_obj_set_pos(obj, 703, -92); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "0"); + } + { + // ui_ValAmpParam1Label + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_amp_param1_label = obj; + lv_obj_set_pos(obj, 13, -36); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Param1"); + } + { + // ui_ValAmpParam1Slider + lv_obj_t *obj = lv_slider_create(parent_obj); + objects.ui_val_amp_param1_slider = obj; + lv_obj_set_pos(obj, 168, -36); + lv_obj_set_size(obj, 511, 20); + lv_slider_set_range(obj, -100, -20); + lv_slider_set_value(obj, -64, LV_ANIM_OFF); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_SCROLLED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + } + { + // ui_ValAmpParam1Value + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_amp_param1_value = obj; + lv_obj_set_pos(obj, 703, -36); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "0"); + } + { + // ui_ValAmpParam2Label + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_amp_param2_label = obj; + lv_obj_set_pos(obj, 13, 21); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Param2"); + } + { + // ui_ValAmpParam2Slider + lv_obj_t *obj = lv_slider_create(parent_obj); + objects.ui_val_amp_param2_slider = obj; + lv_obj_set_pos(obj, 168, 21); + lv_obj_set_size(obj, 511, 20); + lv_slider_set_range(obj, -100, -20); + lv_slider_set_value(obj, -64, LV_ANIM_OFF); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_SCROLLED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + } + { + // ui_ValAmpParam2Value + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_amp_param2_value = obj; + lv_obj_set_pos(obj, 703, 21); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "0"); + } + { + // ui_ValAmpParam3Label + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_amp_param3_label = obj; + lv_obj_set_pos(obj, 13, 77); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Param3"); + } + { + // ui_ValAmpParam3Slider + lv_obj_t *obj = lv_slider_create(parent_obj); + objects.ui_val_amp_param3_slider = obj; + lv_obj_set_pos(obj, 168, 78); + lv_obj_set_size(obj, 511, 20); + lv_slider_set_range(obj, -100, -20); + lv_slider_set_value(obj, -64, LV_ANIM_OFF); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_SCROLLED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + } + { + // ui_ValAmpParam3Value + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_amp_param3_value = obj; + lv_obj_set_pos(obj, 703, 77); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "0"); + } + { + // ui_ValAmpParam4Label + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_amp_param4_label = obj; + lv_obj_set_pos(obj, 13, 133); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Param4"); + } + { + // ui_ValAmpParam4Slider + lv_obj_t *obj = lv_slider_create(parent_obj); + objects.ui_val_amp_param4_slider = obj; + lv_obj_set_pos(obj, 168, 133); + lv_obj_set_size(obj, 511, 20); + lv_slider_set_range(obj, -100, -20); + lv_slider_set_value(obj, -64, LV_ANIM_OFF); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_SCROLLED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + } + { + // ui_ValAmpParam4Value + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_amp_param4_value = obj; + lv_obj_set_pos(obj, 703, 133); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "0"); + } + } + } + { + // ui_ValCabTab + lv_obj_t *obj = lv_tabview_add_tab(parent_obj, "Cab"); + objects.ui_val_cab_tab = obj; + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE|LV_OBJ_FLAG_SCROLL_CHAIN_HOR|LV_OBJ_FLAG_SCROLL_CHAIN_VER|LV_OBJ_FLAG_SCROLL_ELASTIC|LV_OBJ_FLAG_SCROLL_MOMENTUM|LV_OBJ_FLAG_SCROLL_WITH_ARROW); + lv_obj_set_scrollbar_mode(obj, LV_SCROLLBAR_MODE_OFF); + lv_obj_set_style_text_color(obj, lv_color_hex(0xfffb9230), LV_PART_MAIN | LV_STATE_CHECKED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff513d2b), LV_PART_MAIN | LV_STATE_CHECKED); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_20, LV_PART_MAIN | LV_STATE_CHECKED); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_20, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_top(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_bottom(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_left(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_right(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_row(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_column(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_border_width(obj, 2, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_border_color(obj, lv_color_hex(0xff373737), LV_PART_MAIN | LV_STATE_DEFAULT); + { + lv_obj_t *parent_obj = obj; + { + // ui_ValCabBlockLabel + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_cab_block_label = obj; + lv_obj_set_pos(obj, 13, -148); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE|LV_OBJ_FLAG_SCROLL_CHAIN_HOR|LV_OBJ_FLAG_SCROLL_CHAIN_VER|LV_OBJ_FLAG_SCROLL_ELASTIC|LV_OBJ_FLAG_SCROLL_MOMENTUM|LV_OBJ_FLAG_SCROLL_WITH_ARROW); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_text_align(obj, LV_TEXT_ALIGN_AUTO, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Enable"); + } + { + // ui_ValCabBlockSwitch + lv_obj_t *obj = lv_switch_create(parent_obj); + objects.ui_val_cab_block_switch = obj; + lv_obj_set_pos(obj, 168, -148); + lv_obj_set_size(obj, 80, 35); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_CHECKED); + } + { + // ui_ValCabModelDropdown + lv_obj_t *obj = lv_dropdown_create(parent_obj); + objects.ui_val_cab_model_dropdown = obj; + lv_obj_set_pos(obj, 482, 8); + lv_obj_set_size(obj, 280, LV_SIZE_CONTENT); + lv_dropdown_set_options(obj, "Twd CP\nDark VIT\nFoxy 1x12\nL-Star 1x12\nDark CS 2x12\nDark Twin 2x12\nSup Star 2x12\nJ-120 2x12\nFoxy 2x12\nUK Grn 2x12\nUK Grn 4x12\nBog 4x12\nDizz 4x12\nEV 4x12\nSolo 4x12\nMess 4x12\nEagle 4x12\nJuice 4x12\nBellman 2x12\nAmpg 4x10"); + lv_dropdown_set_selected(obj, 0); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_VALUE_CHANGED, (void *)0); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff1f1f1f), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_SELECTED | LV_STATE_CHECKED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_SELECTED | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_SELECTED | LV_STATE_CHECKED | LV_STATE_PRESSED); + { + lv_obj_t *parent_obj = obj; + { + lv_obj_t *obj = lv_dropdown_get_list(parent_obj); + objects.obj12 = obj; + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff1f1f1f), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_SELECTED | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_SELECTED | LV_STATE_CHECKED); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_SELECTED | LV_STATE_CHECKED); + } + } + } + { + // ui_ValCabParam0Label + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_cab_param0_label = obj; + lv_obj_set_pos(obj, 13, -92); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Param0"); + } + { + // ui_ValCabParam0Slider + lv_obj_t *obj = lv_slider_create(parent_obj); + objects.ui_val_cab_param0_slider = obj; + lv_obj_set_pos(obj, 168, -92); + lv_obj_set_size(obj, 511, 20); + lv_slider_set_range(obj, -100, -20); + lv_slider_set_value(obj, -64, LV_ANIM_OFF); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_SCROLLED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + } + { + // ui_ValCabParam0Value + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_cab_param0_value = obj; + lv_obj_set_pos(obj, 703, -92); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "0"); + } + { + // ui_ValCabParam1Label + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_cab_param1_label = obj; + lv_obj_set_pos(obj, 13, -36); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Param1"); + } + { + // ui_ValCabParam1Slider + lv_obj_t *obj = lv_slider_create(parent_obj); + objects.ui_val_cab_param1_slider = obj; + lv_obj_set_pos(obj, 168, -36); + lv_obj_set_size(obj, 511, 20); + lv_slider_set_range(obj, -100, -20); + lv_slider_set_value(obj, -64, LV_ANIM_OFF); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_SCROLLED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + } + { + // ui_ValCabParam1Value + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_cab_param1_value = obj; + lv_obj_set_pos(obj, 703, -36); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "0"); + } + { + // ui_ValCabParam2Label + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_cab_param2_label = obj; + lv_obj_set_pos(obj, 13, 21); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Param2"); + } + { + // ui_ValCabParam2Slider + lv_obj_t *obj = lv_slider_create(parent_obj); + objects.ui_val_cab_param2_slider = obj; + lv_obj_set_pos(obj, 168, 21); + lv_obj_set_size(obj, 511, 20); + lv_slider_set_range(obj, -100, -20); + lv_slider_set_value(obj, -64, LV_ANIM_OFF); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_SCROLLED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + } + { + // ui_ValCabParam2Value + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_cab_param2_value = obj; + lv_obj_set_pos(obj, 703, 21); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "0"); + } + { + // ui_ValCabParam3Label + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_cab_param3_label = obj; + lv_obj_set_pos(obj, 13, 77); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Param3"); + } + { + // ui_ValCabParam3Slider + lv_obj_t *obj = lv_slider_create(parent_obj); + objects.ui_val_cab_param3_slider = obj; + lv_obj_set_pos(obj, 168, 78); + lv_obj_set_size(obj, 511, 20); + lv_slider_set_range(obj, -100, -20); + lv_slider_set_value(obj, -64, LV_ANIM_OFF); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_SCROLLED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + } + { + // ui_ValCabParam3Value + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_cab_param3_value = obj; + lv_obj_set_pos(obj, 703, 77); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "0"); + } + { + // ui_ValCabParam4Label + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_cab_param4_label = obj; + lv_obj_set_pos(obj, 13, 133); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Param4"); + } + { + // ui_ValCabParam4Slider + lv_obj_t *obj = lv_slider_create(parent_obj); + objects.ui_val_cab_param4_slider = obj; + lv_obj_set_pos(obj, 168, 133); + lv_obj_set_size(obj, 511, 20); + lv_slider_set_range(obj, -100, -20); + lv_slider_set_value(obj, -64, LV_ANIM_OFF); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_SCROLLED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + } + { + // ui_ValCabParam4Value + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_cab_param4_value = obj; + lv_obj_set_pos(obj, 703, 133); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "0"); + } + } + } + { + // ui_ValEQTab + lv_obj_t *obj = lv_tabview_add_tab(parent_obj, "EQ"); + objects.ui_val_eq_tab = obj; + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE|LV_OBJ_FLAG_SCROLL_CHAIN_HOR|LV_OBJ_FLAG_SCROLL_CHAIN_VER|LV_OBJ_FLAG_SCROLL_ELASTIC|LV_OBJ_FLAG_SCROLL_MOMENTUM|LV_OBJ_FLAG_SCROLL_WITH_ARROW); + lv_obj_set_scrollbar_mode(obj, LV_SCROLLBAR_MODE_OFF); + lv_obj_set_style_text_color(obj, lv_color_hex(0xfffb9230), LV_PART_MAIN | LV_STATE_CHECKED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff513d2b), LV_PART_MAIN | LV_STATE_CHECKED); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_20, LV_PART_MAIN | LV_STATE_CHECKED); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_20, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_top(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_bottom(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_left(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_right(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_row(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_column(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_border_width(obj, 2, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_border_color(obj, lv_color_hex(0xff373737), LV_PART_MAIN | LV_STATE_DEFAULT); + { + lv_obj_t *parent_obj = obj; + { + // ui_ValEQBlockLabel + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_eq_block_label = obj; + lv_obj_set_pos(obj, 13, -148); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE|LV_OBJ_FLAG_SCROLL_CHAIN_HOR|LV_OBJ_FLAG_SCROLL_CHAIN_VER|LV_OBJ_FLAG_SCROLL_ELASTIC|LV_OBJ_FLAG_SCROLL_MOMENTUM|LV_OBJ_FLAG_SCROLL_WITH_ARROW); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_text_align(obj, LV_TEXT_ALIGN_AUTO, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Enable"); + } + { + // ui_ValEQBlockSwitch + lv_obj_t *obj = lv_switch_create(parent_obj); + objects.ui_val_eq_block_switch = obj; + lv_obj_set_pos(obj, 168, -148); + lv_obj_set_size(obj, 80, 35); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_CHECKED); + } + { + // ui_ValEQModelDropdown + lv_obj_t *obj = lv_dropdown_create(parent_obj); + objects.ui_val_eq_model_dropdown = obj; + lv_obj_set_pos(obj, 482, 8); + lv_obj_set_size(obj, 280, LV_SIZE_CONTENT); + lv_dropdown_set_options(obj, "Guitar 1\nGuitar 2\nBass 1\nBass 2\nMess"); + lv_dropdown_set_selected(obj, 0); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_VALUE_CHANGED, (void *)0); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff1f1f1f), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_SELECTED | LV_STATE_CHECKED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_SELECTED | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_SELECTED | LV_STATE_CHECKED | LV_STATE_PRESSED); + { + lv_obj_t *parent_obj = obj; + { + lv_obj_t *obj = lv_dropdown_get_list(parent_obj); + objects.obj13 = obj; + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff1f1f1f), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_SELECTED | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_SELECTED | LV_STATE_CHECKED); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_SELECTED | LV_STATE_CHECKED); + } + } + } + { + // ui_ValEQParam0Label + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_eq_param0_label = obj; + lv_obj_set_pos(obj, 13, -92); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Param0"); + } + { + // ui_ValEQParam0Slider + lv_obj_t *obj = lv_slider_create(parent_obj); + objects.ui_val_eq_param0_slider = obj; + lv_obj_set_pos(obj, 168, -92); + lv_obj_set_size(obj, 511, 20); + lv_slider_set_range(obj, -100, -20); + lv_slider_set_value(obj, -64, LV_ANIM_OFF); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_SCROLLED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + } + { + // ui_ValEQParam0Value + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_eq_param0_value = obj; + lv_obj_set_pos(obj, 703, -92); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "0"); + } + { + // ui_ValEQParam1Label + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_eq_param1_label = obj; + lv_obj_set_pos(obj, 13, -36); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Param1"); + } + { + // ui_ValEQParam1Slider + lv_obj_t *obj = lv_slider_create(parent_obj); + objects.ui_val_eq_param1_slider = obj; + lv_obj_set_pos(obj, 168, -36); + lv_obj_set_size(obj, 511, 20); + lv_slider_set_range(obj, -100, -20); + lv_slider_set_value(obj, -64, LV_ANIM_OFF); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_SCROLLED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + } + { + // ui_ValEQParam1Value + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_eq_param1_value = obj; + lv_obj_set_pos(obj, 703, -36); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "0"); + } + { + // ui_ValEQParam2Label + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_eq_param2_label = obj; + lv_obj_set_pos(obj, 13, 21); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Param2"); + } + { + // ui_ValEQParam2Slider + lv_obj_t *obj = lv_slider_create(parent_obj); + objects.ui_val_eq_param2_slider = obj; + lv_obj_set_pos(obj, 168, 21); + lv_obj_set_size(obj, 511, 20); + lv_slider_set_range(obj, -100, -20); + lv_slider_set_value(obj, -64, LV_ANIM_OFF); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_SCROLLED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + } + { + // ui_ValEQParam2Value + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_eq_param2_value = obj; + lv_obj_set_pos(obj, 703, 21); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "0"); + } + { + // ui_ValEQParam3Label + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_eq_param3_label = obj; + lv_obj_set_pos(obj, 13, 77); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Param3"); + } + { + // ui_ValEQParam3Slider + lv_obj_t *obj = lv_slider_create(parent_obj); + objects.ui_val_eq_param3_slider = obj; + lv_obj_set_pos(obj, 168, 78); + lv_obj_set_size(obj, 511, 20); + lv_slider_set_range(obj, -100, -20); + lv_slider_set_value(obj, -64, LV_ANIM_OFF); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_SCROLLED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + } + { + // ui_ValEQParam3Value + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_eq_param3_value = obj; + lv_obj_set_pos(obj, 703, 77); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "0"); + } + { + // ui_ValEQParam4Label + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_eq_param4_label = obj; + lv_obj_set_pos(obj, 13, 133); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Param4"); + } + { + // ui_ValEQParam4Slider + lv_obj_t *obj = lv_slider_create(parent_obj); + objects.ui_val_eq_param4_slider = obj; + lv_obj_set_pos(obj, 168, 133); + lv_obj_set_size(obj, 511, 20); + lv_slider_set_range(obj, -100, -20); + lv_slider_set_value(obj, -64, LV_ANIM_OFF); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_SCROLLED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + } + { + // ui_ValEQParam4Value + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_eq_param4_value = obj; + lv_obj_set_pos(obj, 703, 133); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "0"); + } + } + } + { + // ui_ValModTab + lv_obj_t *obj = lv_tabview_add_tab(parent_obj, "Mod"); + objects.ui_val_mod_tab = obj; + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE|LV_OBJ_FLAG_SCROLL_CHAIN_HOR|LV_OBJ_FLAG_SCROLL_CHAIN_VER|LV_OBJ_FLAG_SCROLL_ELASTIC|LV_OBJ_FLAG_SCROLL_MOMENTUM|LV_OBJ_FLAG_SCROLL_WITH_ARROW); + lv_obj_set_scrollbar_mode(obj, LV_SCROLLBAR_MODE_OFF); + lv_obj_set_style_text_color(obj, lv_color_hex(0xfffb9230), LV_PART_MAIN | LV_STATE_CHECKED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff513d2b), LV_PART_MAIN | LV_STATE_CHECKED); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_20, LV_PART_MAIN | LV_STATE_CHECKED); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_20, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_top(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_bottom(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_left(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_right(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_row(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_column(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_border_width(obj, 2, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_border_color(obj, lv_color_hex(0xff373737), LV_PART_MAIN | LV_STATE_DEFAULT); + { + lv_obj_t *parent_obj = obj; + { + // ui_ValModBlockLabel + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_mod_block_label = obj; + lv_obj_set_pos(obj, 13, -148); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE|LV_OBJ_FLAG_SCROLL_CHAIN_HOR|LV_OBJ_FLAG_SCROLL_CHAIN_VER|LV_OBJ_FLAG_SCROLL_ELASTIC|LV_OBJ_FLAG_SCROLL_MOMENTUM|LV_OBJ_FLAG_SCROLL_WITH_ARROW); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_text_align(obj, LV_TEXT_ALIGN_AUTO, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Enable"); + } + { + // ui_ValModBlockSwitch + lv_obj_t *obj = lv_switch_create(parent_obj); + objects.ui_val_mod_block_switch = obj; + lv_obj_set_pos(obj, 168, -148); + lv_obj_set_size(obj, 80, 35); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_CHECKED); + } + { + // ui_ValModModelDropdown + lv_obj_t *obj = lv_dropdown_create(parent_obj); + objects.ui_val_mod_model_dropdown = obj; + lv_obj_set_pos(obj, 482, 8); + lv_obj_set_size(obj, 280, LV_SIZE_CONTENT); + lv_dropdown_set_options(obj, "A-Chorus\nB-Chorus\nJet\nN-Jet\nO-Phase\nM-Vibe\nV-Roto\nVibrato\nO-Trem\nSine Trem\nBias Trem"); + lv_dropdown_set_selected(obj, 0); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_VALUE_CHANGED, (void *)0); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff1f1f1f), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_SELECTED | LV_STATE_CHECKED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_SELECTED | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_SELECTED | LV_STATE_CHECKED | LV_STATE_PRESSED); + { + lv_obj_t *parent_obj = obj; + { + lv_obj_t *obj = lv_dropdown_get_list(parent_obj); + objects.obj14 = obj; + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff1f1f1f), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_SELECTED | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_SELECTED | LV_STATE_CHECKED); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_SELECTED | LV_STATE_CHECKED); + } + } + } + { + // ui_ValModParam0Label + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_mod_param0_label = obj; + lv_obj_set_pos(obj, 13, -92); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Param0"); + } + { + // ui_ValModParam0Slider + lv_obj_t *obj = lv_slider_create(parent_obj); + objects.ui_val_mod_param0_slider = obj; + lv_obj_set_pos(obj, 168, -92); + lv_obj_set_size(obj, 511, 20); + lv_slider_set_range(obj, -100, -20); + lv_slider_set_value(obj, -64, LV_ANIM_OFF); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_SCROLLED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + } + { + // ui_ValModParam0Value + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_mod_param0_value = obj; + lv_obj_set_pos(obj, 703, -92); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "0"); + } + { + // ui_ValModParam1Label + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_mod_param1_label = obj; + lv_obj_set_pos(obj, 13, -36); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Param1"); + } + { + // ui_ValModParam1Slider + lv_obj_t *obj = lv_slider_create(parent_obj); + objects.ui_val_mod_param1_slider = obj; + lv_obj_set_pos(obj, 168, -36); + lv_obj_set_size(obj, 511, 20); + lv_slider_set_range(obj, -100, -20); + lv_slider_set_value(obj, -64, LV_ANIM_OFF); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_SCROLLED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + } + { + // ui_ValModParam1Value + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_mod_param1_value = obj; + lv_obj_set_pos(obj, 703, -36); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "0"); + } + { + // ui_ValModParam2Label + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_mod_param2_label = obj; + lv_obj_set_pos(obj, 13, 21); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Param2"); + } + { + // ui_ValModParam2Slider + lv_obj_t *obj = lv_slider_create(parent_obj); + objects.ui_val_mod_param2_slider = obj; + lv_obj_set_pos(obj, 168, 21); + lv_obj_set_size(obj, 511, 20); + lv_slider_set_range(obj, -100, -20); + lv_slider_set_value(obj, -64, LV_ANIM_OFF); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_SCROLLED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + } + { + // ui_ValModParam2Value + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_mod_param2_value = obj; + lv_obj_set_pos(obj, 703, 21); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "0"); + } + { + // ui_ValModParam3Label + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_mod_param3_label = obj; + lv_obj_set_pos(obj, 13, 77); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Param3"); + } + { + // ui_ValModParam3Slider + lv_obj_t *obj = lv_slider_create(parent_obj); + objects.ui_val_mod_param3_slider = obj; + lv_obj_set_pos(obj, 168, 78); + lv_obj_set_size(obj, 511, 20); + lv_slider_set_range(obj, -100, -20); + lv_slider_set_value(obj, -64, LV_ANIM_OFF); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_SCROLLED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + } + { + // ui_ValModParam3Value + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_mod_param3_value = obj; + lv_obj_set_pos(obj, 703, 77); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "0"); + } + { + // ui_ValModParam4Label + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_mod_param4_label = obj; + lv_obj_set_pos(obj, 13, 133); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Param4"); + } + { + // ui_ValModParam4Slider + lv_obj_t *obj = lv_slider_create(parent_obj); + objects.ui_val_mod_param4_slider = obj; + lv_obj_set_pos(obj, 168, 133); + lv_obj_set_size(obj, 511, 20); + lv_slider_set_range(obj, -100, -20); + lv_slider_set_value(obj, -64, LV_ANIM_OFF); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_SCROLLED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + } + { + // ui_ValModParam4Value + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_mod_param4_value = obj; + lv_obj_set_pos(obj, 703, 133); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "0"); + } + } + } + { + // ui_ValDlyTab + lv_obj_t *obj = lv_tabview_add_tab(parent_obj, "Dly"); + objects.ui_val_dly_tab = obj; + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE|LV_OBJ_FLAG_SCROLL_CHAIN_HOR|LV_OBJ_FLAG_SCROLL_CHAIN_VER|LV_OBJ_FLAG_SCROLL_ELASTIC|LV_OBJ_FLAG_SCROLL_MOMENTUM|LV_OBJ_FLAG_SCROLL_WITH_ARROW); + lv_obj_set_scrollbar_mode(obj, LV_SCROLLBAR_MODE_OFF); + lv_obj_set_style_text_color(obj, lv_color_hex(0xfffb9230), LV_PART_MAIN | LV_STATE_CHECKED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff513d2b), LV_PART_MAIN | LV_STATE_CHECKED); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_20, LV_PART_MAIN | LV_STATE_CHECKED); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_20, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_top(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_bottom(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_left(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_right(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_row(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_column(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_border_width(obj, 2, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_border_color(obj, lv_color_hex(0xff373737), LV_PART_MAIN | LV_STATE_DEFAULT); + { + lv_obj_t *parent_obj = obj; + { + // ui_ValDlyBlockLabel + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_dly_block_label = obj; + lv_obj_set_pos(obj, 13, -148); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE|LV_OBJ_FLAG_SCROLL_CHAIN_HOR|LV_OBJ_FLAG_SCROLL_CHAIN_VER|LV_OBJ_FLAG_SCROLL_ELASTIC|LV_OBJ_FLAG_SCROLL_MOMENTUM|LV_OBJ_FLAG_SCROLL_WITH_ARROW); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_text_align(obj, LV_TEXT_ALIGN_AUTO, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Enable"); + } + { + // ui_ValDlyBlockSwitch + lv_obj_t *obj = lv_switch_create(parent_obj); + objects.ui_val_dly_block_switch = obj; + lv_obj_set_pos(obj, 168, -148); + lv_obj_set_size(obj, 80, 35); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_CHECKED); + } + { + // ui_ValDlyModelDropdown + lv_obj_t *obj = lv_dropdown_create(parent_obj); + objects.ui_val_dly_model_dropdown = obj; + lv_obj_set_pos(obj, 482, 8); + lv_obj_set_size(obj, 280, LV_SIZE_CONTENT); + lv_dropdown_set_options(obj, "Pure\nAnalog\nSlapback\nSweet Echo\nTape\nTube\nRev Echo\nRing Echo\nSweep Echo\nPing Pong"); + lv_dropdown_set_selected(obj, 0); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_VALUE_CHANGED, (void *)0); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff1f1f1f), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_SELECTED | LV_STATE_CHECKED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_SELECTED | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_SELECTED | LV_STATE_CHECKED | LV_STATE_PRESSED); + { + lv_obj_t *parent_obj = obj; + { + lv_obj_t *obj = lv_dropdown_get_list(parent_obj); + objects.obj15 = obj; + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff1f1f1f), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_SELECTED | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_SELECTED | LV_STATE_CHECKED); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_SELECTED | LV_STATE_CHECKED); + } + } + } + { + // ui_ValDlyParam0Label + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_dly_param0_label = obj; + lv_obj_set_pos(obj, 13, -92); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Param0"); + } + { + // ui_ValDlyParam0Slider + lv_obj_t *obj = lv_slider_create(parent_obj); + objects.ui_val_dly_param0_slider = obj; + lv_obj_set_pos(obj, 168, -92); + lv_obj_set_size(obj, 511, 20); + lv_slider_set_range(obj, -100, -20); + lv_slider_set_value(obj, -64, LV_ANIM_OFF); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_SCROLLED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + } + { + // ui_ValDlyParam0Value + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_dly_param0_value = obj; + lv_obj_set_pos(obj, 703, -92); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "0"); + } + { + // ui_ValDlyParam1Label + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_dly_param1_label = obj; + lv_obj_set_pos(obj, 13, -36); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Param1"); + } + { + // ui_ValDlyParam1Slider + lv_obj_t *obj = lv_slider_create(parent_obj); + objects.ui_val_dly_param1_slider = obj; + lv_obj_set_pos(obj, 168, -36); + lv_obj_set_size(obj, 511, 20); + lv_slider_set_range(obj, -100, -20); + lv_slider_set_value(obj, -64, LV_ANIM_OFF); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_SCROLLED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + } + { + // ui_ValDlyParam1Value + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_dly_param1_value = obj; + lv_obj_set_pos(obj, 703, -36); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "0"); + } + { + // ui_ValDlyParam2Label + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_dly_param2_label = obj; + lv_obj_set_pos(obj, 13, 21); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Param2"); + } + { + // ui_ValDlyParam2Slider + lv_obj_t *obj = lv_slider_create(parent_obj); + objects.ui_val_dly_param2_slider = obj; + lv_obj_set_pos(obj, 168, 21); + lv_obj_set_size(obj, 511, 20); + lv_slider_set_range(obj, -100, -20); + lv_slider_set_value(obj, -64, LV_ANIM_OFF); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_SCROLLED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + } + { + // ui_ValDlyParam2Value + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_dly_param2_value = obj; + lv_obj_set_pos(obj, 703, 21); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "0"); + } + { + // ui_ValDlyParam3Label + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_dly_param3_label = obj; + lv_obj_set_pos(obj, 13, 77); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Param3"); + } + { + // ui_ValDlyParam3Slider + lv_obj_t *obj = lv_slider_create(parent_obj); + objects.ui_val_dly_param3_slider = obj; + lv_obj_set_pos(obj, 168, 78); + lv_obj_set_size(obj, 511, 20); + lv_slider_set_range(obj, -100, -20); + lv_slider_set_value(obj, -64, LV_ANIM_OFF); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_SCROLLED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + } + { + // ui_ValDlyParam3Value + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_dly_param3_value = obj; + lv_obj_set_pos(obj, 703, 77); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "0"); + } + { + // ui_ValDlyParam4Label + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_dly_param4_label = obj; + lv_obj_set_pos(obj, 13, 133); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Param4"); + } + { + // ui_ValDlyParam4Slider + lv_obj_t *obj = lv_slider_create(parent_obj); + objects.ui_val_dly_param4_slider = obj; + lv_obj_set_pos(obj, 168, 133); + lv_obj_set_size(obj, 511, 20); + lv_slider_set_range(obj, -100, -20); + lv_slider_set_value(obj, -64, LV_ANIM_OFF); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_SCROLLED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + } + { + // ui_ValDlyParam4Value + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_dly_param4_value = obj; + lv_obj_set_pos(obj, 703, 133); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "0"); + } + } + } + { + // ui_ValRvbTab + lv_obj_t *obj = lv_tabview_add_tab(parent_obj, "Rvb"); + objects.ui_val_rvb_tab = obj; + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE|LV_OBJ_FLAG_SCROLL_CHAIN_HOR|LV_OBJ_FLAG_SCROLL_CHAIN_VER|LV_OBJ_FLAG_SCROLL_ELASTIC|LV_OBJ_FLAG_SCROLL_MOMENTUM|LV_OBJ_FLAG_SCROLL_WITH_ARROW); + lv_obj_set_scrollbar_mode(obj, LV_SCROLLBAR_MODE_OFF); + lv_obj_set_style_text_color(obj, lv_color_hex(0xfffb9230), LV_PART_MAIN | LV_STATE_CHECKED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff513d2b), LV_PART_MAIN | LV_STATE_CHECKED); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_20, LV_PART_MAIN | LV_STATE_CHECKED); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_20, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_top(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_bottom(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_left(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_right(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_row(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_column(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_border_width(obj, 2, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_border_color(obj, lv_color_hex(0xff373737), LV_PART_MAIN | LV_STATE_DEFAULT); + { + lv_obj_t *parent_obj = obj; + { + // ui_ValRvbBlockLabel + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_rvb_block_label = obj; + lv_obj_set_pos(obj, 13, -148); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE|LV_OBJ_FLAG_SCROLL_CHAIN_HOR|LV_OBJ_FLAG_SCROLL_CHAIN_VER|LV_OBJ_FLAG_SCROLL_ELASTIC|LV_OBJ_FLAG_SCROLL_MOMENTUM|LV_OBJ_FLAG_SCROLL_WITH_ARROW); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_text_align(obj, LV_TEXT_ALIGN_AUTO, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Enable"); + } + { + // ui_ValRvbBlockSwitch + lv_obj_t *obj = lv_switch_create(parent_obj); + objects.ui_val_rvb_block_switch = obj; + lv_obj_set_pos(obj, 168, -148); + lv_obj_set_size(obj, 80, 35); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_CHECKED); + } + { + // ui_ValRvbModelDropdown + lv_obj_t *obj = lv_dropdown_create(parent_obj); + objects.ui_val_rvb_model_dropdown = obj; + lv_obj_set_pos(obj, 482, 8); + lv_obj_set_size(obj, 280, LV_SIZE_CONTENT); + lv_dropdown_set_options(obj, "Air\nRoom\nHall\nChurch\nPlate L\nPlate\nSpring\nN-Star\nDeepsea\nSweet Space"); + lv_dropdown_set_selected(obj, 0); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_VALUE_CHANGED, (void *)0); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff1f1f1f), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_SELECTED | LV_STATE_CHECKED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_SELECTED | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_SELECTED | LV_STATE_CHECKED | LV_STATE_PRESSED); + { + lv_obj_t *parent_obj = obj; + { + lv_obj_t *obj = lv_dropdown_get_list(parent_obj); + objects.obj16 = obj; + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff1f1f1f), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_SELECTED | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_SELECTED | LV_STATE_CHECKED); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_SELECTED | LV_STATE_CHECKED); + } + } + } + { + // ui_ValRvbParam0Label + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_rvb_param0_label = obj; + lv_obj_set_pos(obj, 13, -92); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Param0"); + } + { + // ui_ValRvbParam0Slider + lv_obj_t *obj = lv_slider_create(parent_obj); + objects.ui_val_rvb_param0_slider = obj; + lv_obj_set_pos(obj, 168, -92); + lv_obj_set_size(obj, 511, 20); + lv_slider_set_range(obj, -100, -20); + lv_slider_set_value(obj, -64, LV_ANIM_OFF); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_SCROLLED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + } + { + // ui_ValRvbParam0Value + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_rvb_param0_value = obj; + lv_obj_set_pos(obj, 703, -92); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "0"); + } + { + // ui_ValRvbParam1Label + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_rvb_param1_label = obj; + lv_obj_set_pos(obj, 13, -36); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Param1"); + } + { + // ui_ValRvbParam1Slider + lv_obj_t *obj = lv_slider_create(parent_obj); + objects.ui_val_rvb_param1_slider = obj; + lv_obj_set_pos(obj, 168, -36); + lv_obj_set_size(obj, 511, 20); + lv_slider_set_range(obj, -100, -20); + lv_slider_set_value(obj, -64, LV_ANIM_OFF); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_SCROLLED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + } + { + // ui_ValRvbParam1Value + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_rvb_param1_value = obj; + lv_obj_set_pos(obj, 703, -36); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "0"); + } + { + // ui_ValRvbParam2Label + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_rvb_param2_label = obj; + lv_obj_set_pos(obj, 13, 21); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Param2"); + } + { + // ui_ValRvbParam2Slider + lv_obj_t *obj = lv_slider_create(parent_obj); + objects.ui_val_rvb_param2_slider = obj; + lv_obj_set_pos(obj, 168, 21); + lv_obj_set_size(obj, 511, 20); + lv_slider_set_range(obj, -100, -20); + lv_slider_set_value(obj, -64, LV_ANIM_OFF); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_SCROLLED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + } + { + // ui_ValRvbParam2Value + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_rvb_param2_value = obj; + lv_obj_set_pos(obj, 703, 21); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "0"); + } + { + // ui_ValRvbParam3Label + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_rvb_param3_label = obj; + lv_obj_set_pos(obj, 13, 77); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Param3"); + } + { + // ui_ValRvbParam3Slider + lv_obj_t *obj = lv_slider_create(parent_obj); + objects.ui_val_rvb_param3_slider = obj; + lv_obj_set_pos(obj, 168, 78); + lv_obj_set_size(obj, 511, 20); + lv_slider_set_range(obj, -100, -20); + lv_slider_set_value(obj, -64, LV_ANIM_OFF); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_SCROLLED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + } + { + // ui_ValRvbParam3Value + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_rvb_param3_value = obj; + lv_obj_set_pos(obj, 703, 77); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "0"); + } + { + // ui_ValRvbParam4Label + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_rvb_param4_label = obj; + lv_obj_set_pos(obj, 13, 133); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Param4"); + } + { + // ui_ValRvbParam4Slider + lv_obj_t *obj = lv_slider_create(parent_obj); + objects.ui_val_rvb_param4_slider = obj; + lv_obj_set_pos(obj, 168, 133); + lv_obj_set_size(obj, 511, 20); + lv_slider_set_range(obj, -100, -20); + lv_slider_set_value(obj, -64, LV_ANIM_OFF); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_SCROLLED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + } + { + // ui_ValRvbParam4Value + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_rvb_param4_value = obj; + lv_obj_set_pos(obj, 703, 133); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "0"); + } + } + } + { + // ui_ValNSTab + lv_obj_t *obj = lv_tabview_add_tab(parent_obj, "NS"); + objects.ui_val_ns_tab = obj; + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE|LV_OBJ_FLAG_SCROLL_CHAIN_HOR|LV_OBJ_FLAG_SCROLL_CHAIN_VER|LV_OBJ_FLAG_SCROLL_ELASTIC|LV_OBJ_FLAG_SCROLL_MOMENTUM|LV_OBJ_FLAG_SCROLL_WITH_ARROW); + lv_obj_set_scrollbar_mode(obj, LV_SCROLLBAR_MODE_OFF); + lv_obj_set_style_text_color(obj, lv_color_hex(0xfffb9230), LV_PART_MAIN | LV_STATE_CHECKED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff513d2b), LV_PART_MAIN | LV_STATE_CHECKED); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_20, LV_PART_MAIN | LV_STATE_CHECKED); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_20, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_top(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_bottom(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_left(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_right(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_row(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_column(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_border_width(obj, 2, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_border_color(obj, lv_color_hex(0xff373737), LV_PART_MAIN | LV_STATE_DEFAULT); + { + lv_obj_t *parent_obj = obj; + { + // ui_ValNSBlockLabel + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_ns_block_label = obj; + lv_obj_set_pos(obj, 13, -148); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE|LV_OBJ_FLAG_SCROLL_CHAIN_HOR|LV_OBJ_FLAG_SCROLL_CHAIN_VER|LV_OBJ_FLAG_SCROLL_ELASTIC|LV_OBJ_FLAG_SCROLL_MOMENTUM|LV_OBJ_FLAG_SCROLL_WITH_ARROW); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_text_align(obj, LV_TEXT_ALIGN_AUTO, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Enable"); + } + { + // ui_ValNSBlockSwitch + lv_obj_t *obj = lv_switch_create(parent_obj); + objects.ui_val_ns_block_switch = obj; + lv_obj_set_pos(obj, 168, -148); + lv_obj_set_size(obj, 80, 35); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_CHECKED); + } + { + // ui_ValNSModelDropdown + lv_obj_t *obj = lv_dropdown_create(parent_obj); + objects.ui_val_ns_model_dropdown = obj; + lv_obj_set_pos(obj, 482, 8); + lv_obj_set_size(obj, 280, LV_SIZE_CONTENT); + lv_dropdown_set_options(obj, "1\n2\n3\n4\n5\n6\n7\n8\n9\n10\n11\n12\n13\n14\n15\n16\n17\n18\n19\n20\n21\n22\n23\n24\n25\n26\n27\n28\n29\n30\n31\n32\n33\n34\n35\n36\n37\n38\n39\n40\n41\n42\n43\n44\n45\n46\n47\n48\n49\n50\n51\n52\n52\n53\n54\n55\n56\n57\n58\n59\n60\n61\n62\n63\n64\n65\n66\n67\n68\n69\n70\n71\n72\n73\n74\n75\n76\n77\n78\n79"); + lv_dropdown_set_selected(obj, 0); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_VALUE_CHANGED, (void *)0); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff1f1f1f), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_SELECTED | LV_STATE_CHECKED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_SELECTED | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_SELECTED | LV_STATE_CHECKED | LV_STATE_PRESSED); + { + lv_obj_t *parent_obj = obj; + { + lv_obj_t *obj = lv_dropdown_get_list(parent_obj); + objects.obj17 = obj; + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff1f1f1f), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_SELECTED | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_SELECTED | LV_STATE_CHECKED); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_SELECTED | LV_STATE_CHECKED); + } + } + } + { + // ui_ValNSParam0Label + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_ns_param0_label = obj; + lv_obj_set_pos(obj, 13, -92); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Param0"); + } + { + // ui_ValNSParam0Slider + lv_obj_t *obj = lv_slider_create(parent_obj); + objects.ui_val_ns_param0_slider = obj; + lv_obj_set_pos(obj, 168, -92); + lv_obj_set_size(obj, 511, 20); + lv_slider_set_range(obj, -100, -20); + lv_slider_set_value(obj, -64, LV_ANIM_OFF); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_SCROLLED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + } + { + // ui_ValNSParam0Value + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_ns_param0_value = obj; + lv_obj_set_pos(obj, 703, -92); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "0"); + } + { + // ui_ValNSParam1Label + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_ns_param1_label = obj; + lv_obj_set_pos(obj, 13, -36); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Param1"); + } + { + // ui_ValNSParam1Slider + lv_obj_t *obj = lv_slider_create(parent_obj); + objects.ui_val_ns_param1_slider = obj; + lv_obj_set_pos(obj, 168, -36); + lv_obj_set_size(obj, 511, 20); + lv_slider_set_range(obj, -100, -20); + lv_slider_set_value(obj, -64, LV_ANIM_OFF); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_SCROLLED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + } + { + // ui_ValNSParam1Value + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_ns_param1_value = obj; + lv_obj_set_pos(obj, 703, -36); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "0"); + } + { + // ui_ValNSParam2Label + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_ns_param2_label = obj; + lv_obj_set_pos(obj, 13, 21); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Param2"); + } + { + // ui_ValNSParam2Slider + lv_obj_t *obj = lv_slider_create(parent_obj); + objects.ui_val_ns_param2_slider = obj; + lv_obj_set_pos(obj, 168, 21); + lv_obj_set_size(obj, 511, 20); + lv_slider_set_range(obj, -100, -20); + lv_slider_set_value(obj, -64, LV_ANIM_OFF); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_SCROLLED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + } + { + // ui_ValNSParam2Value + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_ns_param2_value = obj; + lv_obj_set_pos(obj, 703, 21); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "0"); + } + { + // ui_ValNSParam3Label + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_ns_param3_label = obj; + lv_obj_set_pos(obj, 13, 77); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Param3"); + } + { + // ui_ValNSParam3Slider + lv_obj_t *obj = lv_slider_create(parent_obj); + objects.ui_val_ns_param3_slider = obj; + lv_obj_set_pos(obj, 168, 78); + lv_obj_set_size(obj, 511, 20); + lv_slider_set_range(obj, -100, -20); + lv_slider_set_value(obj, -64, LV_ANIM_OFF); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_SCROLLED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + } + { + // ui_ValNSParam3Value + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_ns_param3_value = obj; + lv_obj_set_pos(obj, 703, 77); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "0"); + } + { + // ui_ValNSParam4Label + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_ns_param4_label = obj; + lv_obj_set_pos(obj, 13, 133); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Param4"); + } + { + // ui_ValNSParam4Slider + lv_obj_t *obj = lv_slider_create(parent_obj); + objects.ui_val_ns_param4_slider = obj; + lv_obj_set_pos(obj, 168, 133); + lv_obj_set_size(obj, 511, 20); + lv_slider_set_range(obj, -100, -20); + lv_slider_set_value(obj, -64, LV_ANIM_OFF); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_SCROLLED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + } + { + // ui_ValNSParam4Value + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_ns_param4_value = obj; + lv_obj_set_pos(obj, 703, 133); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "0"); + } + } + } + { + // ui_ValGlobTab + lv_obj_t *obj = lv_tabview_add_tab(parent_obj, "Glob"); + objects.ui_val_glob_tab = obj; + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE|LV_OBJ_FLAG_SCROLL_CHAIN_HOR|LV_OBJ_FLAG_SCROLL_CHAIN_VER|LV_OBJ_FLAG_SCROLL_ELASTIC|LV_OBJ_FLAG_SCROLL_MOMENTUM|LV_OBJ_FLAG_SCROLL_WITH_ARROW); + lv_obj_set_scrollbar_mode(obj, LV_SCROLLBAR_MODE_OFF); + lv_obj_set_style_text_color(obj, lv_color_hex(0xfffb9230), LV_PART_MAIN | LV_STATE_CHECKED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff513d2b), LV_PART_MAIN | LV_STATE_CHECKED); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_20, LV_PART_MAIN | LV_STATE_CHECKED); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_20, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_top(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_bottom(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_left(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_right(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_row(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_column(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_border_width(obj, 2, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_border_color(obj, lv_color_hex(0xff373737), LV_PART_MAIN | LV_STATE_DEFAULT); + { + lv_obj_t *parent_obj = obj; + { + // ui_ValGlobNoCabLabel + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_glob_no_cab_label = obj; + lv_obj_set_pos(obj, 13, -148); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE|LV_OBJ_FLAG_SCROLL_CHAIN_HOR|LV_OBJ_FLAG_SCROLL_CHAIN_VER|LV_OBJ_FLAG_SCROLL_ELASTIC|LV_OBJ_FLAG_SCROLL_MOMENTUM|LV_OBJ_FLAG_SCROLL_WITH_ARROW); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_text_align(obj, LV_TEXT_ALIGN_AUTO, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "No Cab"); + } + { + // ui_ValGlobNoCabSwitch + lv_obj_t *obj = lv_switch_create(parent_obj); + objects.ui_val_glob_no_cab_switch = obj; + lv_obj_set_pos(obj, 168, -148); + lv_obj_set_size(obj, 80, 35); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_CHECKED); + } + { + // ui_ValGlobInputLevelLabel + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_glob_input_level_label = obj; + lv_obj_set_pos(obj, 13, -92); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Input Level"); + } + { + // ui_ValGlobInputLevelSlider + lv_obj_t *obj = lv_slider_create(parent_obj); + objects.ui_val_glob_input_level_slider = obj; + lv_obj_set_pos(obj, 168, -92); + lv_obj_set_size(obj, 511, 20); + lv_slider_set_range(obj, -20, 20); + lv_slider_set_value(obj, -64, LV_ANIM_OFF); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_SCROLLED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + } + { + // ui_ValGlobInputLevelValue + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_glob_input_level_value = obj; + lv_obj_set_pos(obj, 703, -92); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "0"); + } + { + // ui_ValGlobMasterVolLabel + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_glob_master_vol_label = obj; + lv_obj_set_pos(obj, 13, -36); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Master Vol"); + } + { + // ui_ValGlobMasterVolSlider + lv_obj_t *obj = lv_slider_create(parent_obj); + objects.ui_val_glob_master_vol_slider = obj; + lv_obj_set_pos(obj, 168, -36); + lv_obj_set_size(obj, 511, 20); + lv_slider_set_value(obj, -64, LV_ANIM_OFF); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_SCROLLED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + } + { + // ui_ValGlobMasterVolValue + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_glob_master_vol_value = obj; + lv_obj_set_pos(obj, 703, -36); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "0"); + } + { + // ui_ValPatchVolLabel + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_patch_vol_label = obj; + lv_obj_set_pos(obj, 13, 21); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Patch Vol"); + } + { + // ui_ValPatchVolSlider + lv_obj_t *obj = lv_slider_create(parent_obj); + objects.ui_val_patch_vol_slider = obj; + lv_obj_set_pos(obj, 168, 22); + lv_obj_set_size(obj, 511, 20); + lv_slider_set_value(obj, -64, LV_ANIM_OFF); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_SCROLLED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + } + { + // ui_ValPatchVolValue + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_patch_vol_value = obj; + lv_obj_set_pos(obj, 703, 21); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "0"); + } + } + } + } + } + { + // ui_ValCloseimage + lv_obj_t *obj = lv_img_create(parent_obj); + objects.ui_val_closeimage = obj; + lv_obj_set_pos(obj, 354, 406); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_img_set_src(obj, &img_tick); + lv_obj_add_event_cb(obj, action_close_settings_page, LV_EVENT_PRESSED, (void *)0); + lv_obj_add_flag(obj, LV_OBJ_FLAG_CLICKABLE); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + } + } + + tick_screen_val_settings(); +} + +void tick_screen_val_settings() { +} + typedef void (*tick_screen_func_t)(); tick_screen_func_t tick_screen_funcs[] = { tick_screen_screen1, tick_screen_settings, + tick_screen_val_settings, }; void tick_screen(int screen_index) { tick_screen_funcs[screen_index](); @@ -2479,4 +5269,5 @@ void create_screens() { create_screen_screen1(); create_screen_settings(); + create_screen_val_settings(); } diff --git a/source/main/ui_generated_800x480land/screens.h b/source/main/ui_generated_800x480land/screens.h index a0bee51a..523e85fd 100644 --- a/source/main/ui_generated_800x480land/screens.h +++ b/source/main/ui_generated_800x480land/screens.h @@ -10,6 +10,7 @@ extern "C" { typedef struct _objects_t { lv_obj_t *screen1; lv_obj_t *settings; + lv_obj_t *val_settings; lv_obj_t *ui_touch_gesture_container; lv_obj_t *ui_top_panel; lv_obj_t *ui_usb_status_fail; @@ -31,10 +32,6 @@ typedef struct _objects_t { lv_obj_t *ui_bpm_title_label; lv_obj_t *ui_bpm_value_label; lv_obj_t *ui_bpm_indicator; - lv_obj_t *ui_left_arrow; - lv_obj_t *ui_right_arrow; - lv_obj_t *ui_entry_keyboard; - lv_obj_t *ui_ok_tick; lv_obj_t *ui_bottom_panel_tonex; lv_obj_t *ui_settings_image; lv_obj_t *ui_icon_reverb; @@ -57,6 +54,10 @@ typedef struct _objects_t { lv_obj_t *ui_icon_val_dly; lv_obj_t *ui_icon_val_dst; lv_obj_t *ui_val_settings; + lv_obj_t *ui_left_arrow; + lv_obj_t *ui_right_arrow; + lv_obj_t *ui_entry_keyboard; + lv_obj_t *ui_ok_tick; lv_obj_t *ui_settings_tab_view; lv_obj_t *obj0; lv_obj_t *ui_gate_tab; @@ -205,6 +206,221 @@ typedef struct _objects_t { lv_obj_t *ui_volume_slider; lv_obj_t *ui_volume_value; lv_obj_t *ui_closeimage; + lv_obj_t *ui_val_settings_tab_view; + lv_obj_t *obj7; + lv_obj_t *ui_val_nr_tab; + lv_obj_t *ui_val_nr_block_label; + lv_obj_t *ui_val_nr_block_switch; + lv_obj_t *ui_val_nr_model_dropdown; + lv_obj_t *obj8; + lv_obj_t *ui_val_nr_param0_label; + lv_obj_t *ui_val_nr_param0_slider; + lv_obj_t *ui_val_nr_param0_value; + lv_obj_t *ui_val_nr_param1_label; + lv_obj_t *ui_val_nr_param1_slider; + lv_obj_t *ui_val_nr_param1_value; + lv_obj_t *ui_val_nr_param2_label; + lv_obj_t *ui_val_nr_param2_slider; + lv_obj_t *ui_val_nr_param2_value; + lv_obj_t *ui_val_nr_param3_label; + lv_obj_t *ui_val_nr_param3_slider; + lv_obj_t *ui_val_nr_param3_value; + lv_obj_t *ui_val_nr_param4_label; + lv_obj_t *ui_val_nr_param4_slider; + lv_obj_t *ui_val_nr_param4_value; + lv_obj_t *ui_val_pre_tab; + lv_obj_t *ui_val_npre_block_label; + lv_obj_t *ui_val_pre_block_switch; + lv_obj_t *ui_val_pre_model_dropdown; + lv_obj_t *obj9; + lv_obj_t *ui_val_pre_param0_label; + lv_obj_t *ui_val_pre_param0_slider; + lv_obj_t *ui_val_pre_param0_value; + lv_obj_t *ui_val_pre_param1_label; + lv_obj_t *ui_val_pre_param1_slider; + lv_obj_t *ui_val_pre_param1_value; + lv_obj_t *ui_val_pre_param2_label; + lv_obj_t *ui_val_pre_param2_slider; + lv_obj_t *ui_val_pre_param2_value; + lv_obj_t *ui_val_pre_param3_label; + lv_obj_t *ui_val_pre_param3_slider; + lv_obj_t *ui_val_pre_param3_value; + lv_obj_t *ui_val_pre_param4_label; + lv_obj_t *ui_val_pre_param4_slider; + lv_obj_t *ui_val_pre_param4_value; + lv_obj_t *ui_val_dst_tab; + lv_obj_t *ui_val_dst_block_label; + lv_obj_t *ui_val_dst_block_switch; + lv_obj_t *ui_val_dst_model_dropdown; + lv_obj_t *obj10; + lv_obj_t *ui_val_dst_param0_label; + lv_obj_t *ui_val_dst_param0_slider; + lv_obj_t *ui_val_dst_param0_value; + lv_obj_t *ui_val_dst_param1_label; + lv_obj_t *ui_val_dst_param1_slider; + lv_obj_t *ui_val_dst_param1_value; + lv_obj_t *ui_val_dst_param2_label; + lv_obj_t *ui_val_dst_param2_slider; + lv_obj_t *ui_val_dst_param2_value; + lv_obj_t *ui_val_dst_param3_label; + lv_obj_t *ui_val_dst_param3_slider; + lv_obj_t *ui_val_dst_param3_value; + lv_obj_t *ui_val_dst_param4_label; + lv_obj_t *ui_val_dst_param4_slider; + lv_obj_t *ui_val_dst_param4_value; + lv_obj_t *ui_val_amp_tab; + lv_obj_t *ui_val_amp_block_label; + lv_obj_t *ui_val_amp_block_switch; + lv_obj_t *ui_val_amp_model_dropdown; + lv_obj_t *obj11; + lv_obj_t *ui_val_amp_param0_label; + lv_obj_t *ui_val_amp_param0_slider; + lv_obj_t *ui_val_amp_param0_value; + lv_obj_t *ui_val_amp_param1_label; + lv_obj_t *ui_val_amp_param1_slider; + lv_obj_t *ui_val_amp_param1_value; + lv_obj_t *ui_val_amp_param2_label; + lv_obj_t *ui_val_amp_param2_slider; + lv_obj_t *ui_val_amp_param2_value; + lv_obj_t *ui_val_amp_param3_label; + lv_obj_t *ui_val_amp_param3_slider; + lv_obj_t *ui_val_amp_param3_value; + lv_obj_t *ui_val_amp_param4_label; + lv_obj_t *ui_val_amp_param4_slider; + lv_obj_t *ui_val_amp_param4_value; + lv_obj_t *ui_val_cab_tab; + lv_obj_t *ui_val_cab_block_label; + lv_obj_t *ui_val_cab_block_switch; + lv_obj_t *ui_val_cab_model_dropdown; + lv_obj_t *obj12; + lv_obj_t *ui_val_cab_param0_label; + lv_obj_t *ui_val_cab_param0_slider; + lv_obj_t *ui_val_cab_param0_value; + lv_obj_t *ui_val_cab_param1_label; + lv_obj_t *ui_val_cab_param1_slider; + lv_obj_t *ui_val_cab_param1_value; + lv_obj_t *ui_val_cab_param2_label; + lv_obj_t *ui_val_cab_param2_slider; + lv_obj_t *ui_val_cab_param2_value; + lv_obj_t *ui_val_cab_param3_label; + lv_obj_t *ui_val_cab_param3_slider; + lv_obj_t *ui_val_cab_param3_value; + lv_obj_t *ui_val_cab_param4_label; + lv_obj_t *ui_val_cab_param4_slider; + lv_obj_t *ui_val_cab_param4_value; + lv_obj_t *ui_val_eq_tab; + lv_obj_t *ui_val_eq_block_label; + lv_obj_t *ui_val_eq_block_switch; + lv_obj_t *ui_val_eq_model_dropdown; + lv_obj_t *obj13; + lv_obj_t *ui_val_eq_param0_label; + lv_obj_t *ui_val_eq_param0_slider; + lv_obj_t *ui_val_eq_param0_value; + lv_obj_t *ui_val_eq_param1_label; + lv_obj_t *ui_val_eq_param1_slider; + lv_obj_t *ui_val_eq_param1_value; + lv_obj_t *ui_val_eq_param2_label; + lv_obj_t *ui_val_eq_param2_slider; + lv_obj_t *ui_val_eq_param2_value; + lv_obj_t *ui_val_eq_param3_label; + lv_obj_t *ui_val_eq_param3_slider; + lv_obj_t *ui_val_eq_param3_value; + lv_obj_t *ui_val_eq_param4_label; + lv_obj_t *ui_val_eq_param4_slider; + lv_obj_t *ui_val_eq_param4_value; + lv_obj_t *ui_val_mod_tab; + lv_obj_t *ui_val_mod_block_label; + lv_obj_t *ui_val_mod_block_switch; + lv_obj_t *ui_val_mod_model_dropdown; + lv_obj_t *obj14; + lv_obj_t *ui_val_mod_param0_label; + lv_obj_t *ui_val_mod_param0_slider; + lv_obj_t *ui_val_mod_param0_value; + lv_obj_t *ui_val_mod_param1_label; + lv_obj_t *ui_val_mod_param1_slider; + lv_obj_t *ui_val_mod_param1_value; + lv_obj_t *ui_val_mod_param2_label; + lv_obj_t *ui_val_mod_param2_slider; + lv_obj_t *ui_val_mod_param2_value; + lv_obj_t *ui_val_mod_param3_label; + lv_obj_t *ui_val_mod_param3_slider; + lv_obj_t *ui_val_mod_param3_value; + lv_obj_t *ui_val_mod_param4_label; + lv_obj_t *ui_val_mod_param4_slider; + lv_obj_t *ui_val_mod_param4_value; + lv_obj_t *ui_val_dly_tab; + lv_obj_t *ui_val_dly_block_label; + lv_obj_t *ui_val_dly_block_switch; + lv_obj_t *ui_val_dly_model_dropdown; + lv_obj_t *obj15; + lv_obj_t *ui_val_dly_param0_label; + lv_obj_t *ui_val_dly_param0_slider; + lv_obj_t *ui_val_dly_param0_value; + lv_obj_t *ui_val_dly_param1_label; + lv_obj_t *ui_val_dly_param1_slider; + lv_obj_t *ui_val_dly_param1_value; + lv_obj_t *ui_val_dly_param2_label; + lv_obj_t *ui_val_dly_param2_slider; + lv_obj_t *ui_val_dly_param2_value; + lv_obj_t *ui_val_dly_param3_label; + lv_obj_t *ui_val_dly_param3_slider; + lv_obj_t *ui_val_dly_param3_value; + lv_obj_t *ui_val_dly_param4_label; + lv_obj_t *ui_val_dly_param4_slider; + lv_obj_t *ui_val_dly_param4_value; + lv_obj_t *ui_val_rvb_tab; + lv_obj_t *ui_val_rvb_block_label; + lv_obj_t *ui_val_rvb_block_switch; + lv_obj_t *ui_val_rvb_model_dropdown; + lv_obj_t *obj16; + lv_obj_t *ui_val_rvb_param0_label; + lv_obj_t *ui_val_rvb_param0_slider; + lv_obj_t *ui_val_rvb_param0_value; + lv_obj_t *ui_val_rvb_param1_label; + lv_obj_t *ui_val_rvb_param1_slider; + lv_obj_t *ui_val_rvb_param1_value; + lv_obj_t *ui_val_rvb_param2_label; + lv_obj_t *ui_val_rvb_param2_slider; + lv_obj_t *ui_val_rvb_param2_value; + lv_obj_t *ui_val_rvb_param3_label; + lv_obj_t *ui_val_rvb_param3_slider; + lv_obj_t *ui_val_rvb_param3_value; + lv_obj_t *ui_val_rvb_param4_label; + lv_obj_t *ui_val_rvb_param4_slider; + lv_obj_t *ui_val_rvb_param4_value; + lv_obj_t *ui_val_ns_tab; + lv_obj_t *ui_val_ns_block_label; + lv_obj_t *ui_val_ns_block_switch; + lv_obj_t *ui_val_ns_model_dropdown; + lv_obj_t *obj17; + lv_obj_t *ui_val_ns_param0_label; + lv_obj_t *ui_val_ns_param0_slider; + lv_obj_t *ui_val_ns_param0_value; + lv_obj_t *ui_val_ns_param1_label; + lv_obj_t *ui_val_ns_param1_slider; + lv_obj_t *ui_val_ns_param1_value; + lv_obj_t *ui_val_ns_param2_label; + lv_obj_t *ui_val_ns_param2_slider; + lv_obj_t *ui_val_ns_param2_value; + lv_obj_t *ui_val_ns_param3_label; + lv_obj_t *ui_val_ns_param3_slider; + lv_obj_t *ui_val_ns_param3_value; + lv_obj_t *ui_val_ns_param4_label; + lv_obj_t *ui_val_ns_param4_slider; + lv_obj_t *ui_val_ns_param4_value; + lv_obj_t *ui_val_glob_tab; + lv_obj_t *ui_val_glob_no_cab_label; + lv_obj_t *ui_val_glob_no_cab_switch; + lv_obj_t *ui_val_glob_input_level_label; + lv_obj_t *ui_val_glob_input_level_slider; + lv_obj_t *ui_val_glob_input_level_value; + lv_obj_t *ui_val_glob_master_vol_label; + lv_obj_t *ui_val_glob_master_vol_slider; + lv_obj_t *ui_val_glob_master_vol_value; + lv_obj_t *ui_val_patch_vol_label; + lv_obj_t *ui_val_patch_vol_slider; + lv_obj_t *ui_val_patch_vol_value; + lv_obj_t *ui_val_closeimage; } objects_t; extern objects_t objects; @@ -212,6 +428,7 @@ extern objects_t objects; enum ScreensEnum { SCREEN_ID_SCREEN1 = 1, SCREEN_ID_SETTINGS = 2, + SCREEN_ID_VAL_SETTINGS = 3, }; void create_screen_screen1(); @@ -220,6 +437,9 @@ void tick_screen_screen1(); void create_screen_settings(); void tick_screen_settings(); +void create_screen_val_settings(); +void tick_screen_val_settings(); + void tick_screen_by_id(enum ScreensEnum screenId); void tick_screen(int screen_index); diff --git a/source/main/ui_generated_800x480land/ui_image_amp_disabled.c b/source/main/ui_generated_800x480land/ui_image_amp_disabled.c new file mode 100644 index 00000000..412ce656 --- /dev/null +++ b/source/main/ui_generated_800x480land/ui_image_amp_disabled.c @@ -0,0 +1,333 @@ +#ifdef __has_include + #if __has_include("lvgl.h") + #ifndef LV_LVGL_H_INCLUDE_SIMPLE + #define LV_LVGL_H_INCLUDE_SIMPLE + #endif + #endif +#endif +#ifdef __has_include + #if __has_include("lvgl.h") + #ifndef LV_LVGL_H_INCLUDE_SIMPLE + #define LV_LVGL_H_INCLUDE_SIMPLE + #endif + #endif +#endif + +#if defined(LV_LVGL_H_INCLUDE_SIMPLE) + #include "lvgl.h" +#else + #include "lvgl/lvgl.h" +#endif + + +#ifndef LV_ATTRIBUTE_MEM_ALIGN +#define LV_ATTRIBUTE_MEM_ALIGN +#endif + +#ifndef LV_ATTRIBUTE_IMG_IMG_AMP_DISABLED +#define LV_ATTRIBUTE_IMG_IMG_AMP_DISABLED +#endif + +const LV_ATTRIBUTE_MEM_ALIGN LV_ATTRIBUTE_LARGE_CONST LV_ATTRIBUTE_IMG_IMG_AMP_DISABLED uint8_t img_amp_disabled_map[] = { +#if LV_COLOR_DEPTH == 1 || LV_COLOR_DEPTH == 8 + /*Pixel format: Alpha 8 bit, Red: 3 bit, Green: 3 bit, Blue: 2 bit*/ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf5, 0x46, 0xf5, 0xb5, 0xf5, 0xed, 0xf5, 0xf5, 0xf5, 0xf0, 0xf5, 0xef, 0xf5, 0xef, 0xf5, 0xef, 0xf5, 0xef, 0xf5, 0xef, 0xf5, 0xef, 0xf5, 0xef, 0xf5, 0xef, 0xf5, 0xef, 0xf5, 0xef, 0xf5, 0xef, 0xf5, 0xef, 0xf5, 0xef, 0xf5, 0xef, 0xf5, 0xef, 0xf5, 0xef, 0xf5, 0xef, 0xf5, 0xef, 0xf5, 0xef, 0xf5, 0xef, 0xf5, 0xf1, 0xf5, 0xf4, 0xf5, 0xeb, 0xf5, 0xb4, 0xf5, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf5, 0x75, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xf9, 0xf5, 0xf1, 0xf5, 0xf3, 0xf5, 0xf4, 0xf5, 0xf4, 0xf5, 0xf4, 0xf5, 0xf4, 0xf5, 0xf4, 0xf5, 0xf4, 0xf5, 0xf4, 0xf5, 0xf4, 0xf5, 0xf4, 0xf5, 0xf4, 0xf5, 0xf4, 0xf5, 0xf4, 0xf5, 0xf4, 0xf5, 0xf4, 0xf5, 0xf4, 0xf5, 0xf4, 0xf5, 0xf4, 0xf5, 0xf4, 0xf5, 0xf4, 0xf5, 0xf4, 0xf5, 0xf3, 0xf5, 0xf1, 0xf5, 0xf9, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0x76, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf5, 0x58, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0x9f, 0xf5, 0x3e, 0xf5, 0x33, 0xf5, 0x3a, 0xf5, 0x3b, 0xf5, 0x3b, 0xf5, 0x3b, 0xf5, 0x3b, 0xf5, 0x3b, 0xf5, 0x3b, 0xf5, 0x3b, 0xf5, 0x3b, 0xf5, 0x3b, 0xf5, 0x3b, 0xf5, 0x3b, 0xf5, 0x3b, 0xf5, 0x3b, 0xf5, 0x3b, 0xf5, 0x3b, 0xf5, 0x3b, 0xf5, 0x3b, 0xf5, 0x3b, 0xf5, 0x3b, 0xf5, 0x3b, 0xf5, 0x39, 0xf5, 0x33, 0xf5, 0x3e, 0xf5, 0x9f, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0x57, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf5, 0x13, 0xf5, 0xbe, 0xf5, 0xff, 0xf5, 0x92, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf5, 0x92, 0xf5, 0xff, 0xf5, 0xbf, 0xf5, 0x13, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf5, 0x2f, 0xf5, 0xff, 0xf5, 0xef, 0xf9, 0x31, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf9, 0x31, 0xf5, 0xef, 0xf5, 0xff, 0xf5, 0x2f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x01, 0xb5, 0x03, 0x90, 0x02, 0x90, 0x02, 0x90, 0x02, 0x90, 0x02, 0x00, 0x00, 0xd5, 0x38, 0xf9, 0xff, 0xf9, 0xd9, 0xd5, 0x1d, 0x00, 0x00, 0x90, 0x02, 0x90, 0x02, 0x90, 0x02, 0x90, 0x02, 0x90, 0x02, 0x90, 0x02, 0x90, 0x02, 0x90, 0x02, 0x90, 0x02, 0x90, 0x02, 0x90, 0x02, 0x90, 0x02, 0x90, 0x02, 0x90, 0x02, 0x90, 0x02, 0x90, 0x02, 0x90, 0x02, 0x90, 0x02, 0x90, 0x02, 0x90, 0x02, 0x90, 0x02, 0x90, 0x02, 0x90, 0x02, 0x90, 0x02, 0x90, 0x02, 0x90, 0x02, 0x00, 0x00, 0xf5, 0x1d, 0xf9, 0xd9, 0xf9, 0xff, 0xd5, 0x39, 0x00, 0x00, 0x90, 0x02, 0x90, 0x02, 0x90, 0x02, 0x90, 0x02, 0xb5, 0x03, 0xfc, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd5, 0x0d, 0xd1, 0x5a, 0xd1, 0x94, 0xd1, 0x9f, 0xd1, 0x9c, 0xd1, 0x9a, 0xd1, 0x9a, 0xd1, 0x9a, 0xd1, 0x8f, 0xd1, 0xaf, 0xd5, 0xff, 0xd5, 0xf2, 0xd1, 0x9c, 0xd1, 0x8e, 0xd1, 0x9b, 0xd1, 0x9a, 0xd1, 0x9a, 0xd1, 0x9a, 0xd1, 0x9a, 0xd1, 0x9a, 0xd1, 0x9a, 0xd1, 0x9a, 0xd1, 0x9a, 0xd1, 0x9a, 0xd1, 0x9a, 0xd1, 0x9a, 0xd1, 0x9a, 0xd1, 0x9a, 0xd1, 0x9a, 0xd1, 0x9a, 0xd1, 0x9a, 0xd1, 0x9a, 0xd1, 0x9a, 0xd1, 0x9a, 0xd1, 0x9a, 0xd1, 0x9a, 0xd1, 0x9a, 0xd1, 0x9a, 0xd1, 0x9a, 0xd1, 0x9b, 0xd1, 0x8e, 0xd1, 0x9c, 0xd5, 0xf2, 0xd5, 0xff, 0xd1, 0xaf, 0xd1, 0x8f, 0xd1, 0x9a, 0xd1, 0x9a, 0xd1, 0x9a, 0xd1, 0x9c, 0xd1, 0x9f, 0xd1, 0x94, 0xd1, 0x5a, 0xd5, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xd5, 0x1a, 0xd1, 0xbb, 0xd1, 0xff, 0xd1, 0xff, 0xd1, 0xff, 0xd1, 0xff, 0xd1, 0xff, 0xd1, 0xff, 0xd1, 0xff, 0xd1, 0xff, 0xd1, 0xff, 0xd1, 0xff, 0xd1, 0xff, 0xd1, 0xff, 0xd1, 0xff, 0xd1, 0xff, 0xd1, 0xff, 0xd1, 0xff, 0xd1, 0xff, 0xd1, 0xff, 0xd1, 0xff, 0xd1, 0xff, 0xd1, 0xff, 0xd1, 0xff, 0xd1, 0xff, 0xd1, 0xff, 0xd1, 0xff, 0xd1, 0xff, 0xd1, 0xff, 0xd1, 0xff, 0xd1, 0xff, 0xd1, 0xff, 0xd1, 0xff, 0xd1, 0xff, 0xd1, 0xff, 0xd1, 0xff, 0xd1, 0xff, 0xd1, 0xff, 0xd1, 0xff, 0xd1, 0xff, 0xd1, 0xff, 0xd1, 0xff, 0xd1, 0xff, 0xd1, 0xff, 0xd1, 0xff, 0xd1, 0xff, 0xd1, 0xff, 0xd1, 0xff, 0xd1, 0xff, 0xd1, 0xff, 0xd1, 0xff, 0xd1, 0xff, 0xd1, 0xff, 0xd1, 0xff, 0xd1, 0xbb, 0xd9, 0x1a, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xd5, 0x0f, 0xd5, 0xc0, 0xd1, 0xff, 0xd1, 0xff, 0xd5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf1, 0xff, 0xed, 0xff, 0xed, 0xff, 0xed, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xed, 0xff, 0xed, 0xff, 0xed, 0xff, 0xf1, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xd5, 0xff, 0xd1, 0xff, 0xd1, 0xff, 0xd5, 0xc0, 0xd5, 0x0f, 0x00, 0x00, + 0x00, 0x00, 0xd1, 0x76, 0xd1, 0xff, 0xd1, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xd1, 0xff, 0xb1, 0xff, 0xb1, 0xff, 0xb1, 0xff, 0xb1, 0xff, 0xb1, 0xff, 0xb1, 0xff, 0xb1, 0xff, 0xb1, 0xff, 0xb1, 0xff, 0xb1, 0xff, 0xb1, 0xff, 0xb1, 0xff, 0xb1, 0xff, 0xcd, 0xff, 0xcd, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xcd, 0xff, 0xcd, 0xff, 0xb1, 0xff, 0xb1, 0xff, 0xb1, 0xff, 0xb1, 0xff, 0xb1, 0xff, 0xb1, 0xff, 0xb1, 0xff, 0xb1, 0xff, 0xb1, 0xff, 0xb1, 0xff, 0xb1, 0xff, 0xb1, 0xff, 0xb1, 0xff, 0xad, 0xff, 0xd1, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xd1, 0xff, 0xd1, 0xff, 0xd1, 0x7a, 0xd1, 0x1f, + 0xd1, 0x2d, 0xd1, 0xbc, 0xd1, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0x8d, 0xff, 0x48, 0xff, 0x48, 0xff, 0x48, 0xff, 0x48, 0xff, 0x48, 0xff, 0x48, 0xff, 0x48, 0xff, 0x48, 0xff, 0x48, 0xff, 0x48, 0xff, 0x48, 0xff, 0x69, 0xff, 0xa9, 0xff, 0xc9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xc9, 0xff, 0xa9, 0xff, 0x68, 0xff, 0x48, 0xff, 0x48, 0xff, 0x48, 0xff, 0x48, 0xff, 0x48, 0xff, 0x48, 0xff, 0x48, 0xff, 0x48, 0xff, 0x48, 0xff, 0x48, 0xff, 0x48, 0xff, 0x48, 0xff, 0x8d, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xd1, 0xff, 0xd1, 0xc4, 0xd1, 0x84, + 0xb2, 0x55, 0xd1, 0xd4, 0xd5, 0xff, 0xf5, 0xff, 0xb1, 0xff, 0x44, 0xff, 0x48, 0xff, 0x68, 0xff, 0x68, 0xff, 0x68, 0xff, 0x68, 0xff, 0x68, 0xff, 0x68, 0xff, 0x68, 0xff, 0x68, 0xff, 0x69, 0xff, 0xa9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xa9, 0xff, 0x69, 0xff, 0x68, 0xff, 0x68, 0xff, 0x68, 0xff, 0x68, 0xff, 0x68, 0xff, 0x68, 0xff, 0x68, 0xff, 0x68, 0xff, 0x68, 0xff, 0x48, 0xff, 0x44, 0xff, 0xb1, 0xff, 0xf5, 0xff, 0xd5, 0xff, 0xd1, 0xda, 0xd1, 0xa4, + 0xd1, 0x52, 0xd1, 0xd1, 0xf5, 0xff, 0xf5, 0xff, 0x8d, 0xff, 0x44, 0xff, 0x68, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0xa9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xc9, 0xff, 0x89, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x68, 0xff, 0x44, 0xff, 0x8d, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xd1, 0xd7, 0xd1, 0xa1, + 0xd1, 0x51, 0xd1, 0xd1, 0xf5, 0xff, 0xf5, 0xff, 0x8d, 0xff, 0x48, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x89, 0xff, 0xc9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xc9, 0xff, 0xa9, 0xff, 0xa9, 0xff, 0x89, 0xff, 0x89, 0xff, 0x89, 0xff, 0x89, 0xff, 0x89, 0xff, 0xa9, 0xff, 0xa9, 0xff, 0xc9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xc9, 0xff, 0x89, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x48, 0xff, 0x8d, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xd1, 0xd6, 0xd1, 0xa0, + 0xd1, 0x51, 0xd1, 0xd1, 0xf5, 0xff, 0xf5, 0xff, 0x8d, 0xff, 0x48, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x89, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xa9, 0xff, 0x89, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x89, 0xff, 0xc9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xc9, 0xff, 0x89, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x48, 0xff, 0x8d, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xd1, 0xd6, 0xd1, 0xa0, + 0xd1, 0x51, 0xd1, 0xd1, 0xf5, 0xff, 0xf5, 0xff, 0x8d, 0xff, 0x48, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0xa9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xc9, 0xff, 0xa9, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x89, 0xff, 0xa9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0x89, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x48, 0xff, 0x8d, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xd1, 0xd6, 0xd1, 0xa0, + 0xd1, 0x51, 0xd1, 0xd1, 0xf5, 0xff, 0xf5, 0xff, 0x8d, 0xff, 0x48, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0xa9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xa9, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x89, 0xff, 0xa9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0x89, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x48, 0xff, 0x8d, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xd1, 0xd6, 0xd1, 0xa0, + 0xd1, 0x51, 0xd1, 0xd1, 0xf5, 0xff, 0xf5, 0xff, 0x8d, 0xff, 0x48, 0xff, 0x69, 0xff, 0x69, 0xff, 0xa9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xc9, 0xff, 0x89, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x68, 0xff, 0x68, 0xff, 0x68, 0xff, 0x68, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x68, 0xff, 0x68, 0xff, 0x68, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x68, 0xff, 0x68, 0xff, 0x68, 0xff, 0x68, 0xff, 0x69, 0xff, 0x89, 0xff, 0xc9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0x89, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x48, 0xff, 0x8d, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xd1, 0xd6, 0xd1, 0xa0, + 0xd1, 0x51, 0xd1, 0xd1, 0xf5, 0xff, 0xf5, 0xff, 0x8d, 0xff, 0x48, 0xff, 0x69, 0xff, 0x89, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0x88, 0xff, 0x6d, 0xff, 0x69, 0xff, 0x69, 0xff, 0x68, 0xff, 0x44, 0xff, 0x69, 0xff, 0x69, 0xff, 0x44, 0xff, 0x68, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x68, 0xff, 0x68, 0xff, 0x8d, 0xff, 0x68, 0xff, 0x48, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x68, 0xff, 0x44, 0xff, 0x69, 0xff, 0x8d, 0xff, 0x44, 0xff, 0x68, 0xff, 0x69, 0xff, 0x89, 0xff, 0xc9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0x89, 0xff, 0x69, 0xff, 0x69, 0xff, 0x48, 0xff, 0x8d, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xd1, 0xd6, 0xd1, 0xa0, + 0xd1, 0x51, 0xd1, 0xd1, 0xf5, 0xff, 0xf5, 0xff, 0x8d, 0xff, 0x48, 0xff, 0x89, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xc9, 0xff, 0x88, 0xff, 0x6d, 0xff, 0x68, 0xff, 0x68, 0xff, 0xd6, 0xff, 0x6d, 0xff, 0x6d, 0xff, 0xb6, 0xff, 0x68, 0xff, 0x69, 0xff, 0x69, 0xff, 0x48, 0xff, 0x8d, 0xff, 0xb6, 0xff, 0x49, 0xff, 0xb6, 0xff, 0x91, 0xff, 0x44, 0xff, 0x69, 0xff, 0x69, 0xff, 0x68, 0xff, 0xb6, 0xff, 0x6d, 0xff, 0x49, 0xff, 0xd6, 0xff, 0x68, 0xff, 0x68, 0xff, 0x6d, 0xff, 0x68, 0xff, 0xc9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xc9, 0xff, 0x69, 0xff, 0x69, 0xff, 0x48, 0xff, 0x8d, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xd1, 0xd6, 0xd1, 0xa0, + 0xd1, 0x51, 0xd1, 0xd1, 0xf5, 0xff, 0xf5, 0xff, 0x8d, 0xff, 0x48, 0xff, 0xc9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xc9, 0xff, 0x89, 0xff, 0x44, 0xff, 0xb1, 0xff, 0xff, 0xff, 0x6d, 0xff, 0x6d, 0xff, 0xff, 0xff, 0xb1, 0xff, 0x68, 0xff, 0x68, 0xff, 0x68, 0xff, 0xff, 0xff, 0xff, 0xff, 0x24, 0xff, 0xdb, 0xff, 0xff, 0xff, 0x68, 0xff, 0x68, 0xff, 0x68, 0xff, 0xb1, 0xff, 0xff, 0xff, 0x6d, 0xff, 0x49, 0xff, 0xff, 0xff, 0xb2, 0xff, 0x68, 0xff, 0x68, 0xff, 0x44, 0xff, 0xd6, 0xff, 0xf2, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xc9, 0xff, 0x69, 0xff, 0x48, 0xff, 0x8d, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xd1, 0xd6, 0xd1, 0xa0, + 0xd1, 0x51, 0xd1, 0xd1, 0xf5, 0xff, 0xf5, 0xff, 0x8d, 0xff, 0x89, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xed, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xc9, 0xff, 0x88, 0xff, 0xda, 0xff, 0xff, 0xff, 0xfa, 0xff, 0xfa, 0xff, 0xff, 0xff, 0xd6, 0xff, 0x68, 0xff, 0x44, 0xff, 0x8d, 0xff, 0xff, 0xff, 0xff, 0xff, 0xda, 0xff, 0xff, 0xff, 0xff, 0xff, 0x8d, 0xff, 0x44, 0xff, 0x68, 0xff, 0xd6, 0xff, 0xff, 0xff, 0xfa, 0xff, 0xda, 0xff, 0xff, 0xff, 0xfb, 0xff, 0x68, 0xff, 0x44, 0xff, 0x69, 0xff, 0xff, 0xff, 0xff, 0xff, 0xed, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0x89, 0xff, 0x48, 0xff, 0x8d, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xd1, 0xd6, 0xd1, 0xa0, + 0xd1, 0x51, 0xd1, 0xd1, 0xf5, 0xff, 0xf5, 0xff, 0x8d, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xc9, 0xff, 0xfa, 0xff, 0xf2, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xd2, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xb2, 0xff, 0x68, 0xff, 0x68, 0xff, 0x6d, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x8d, 0xff, 0x48, 0xff, 0x68, 0xff, 0xb2, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xd6, 0xff, 0x68, 0xff, 0x48, 0xff, 0x68, 0xff, 0xfa, 0xff, 0xff, 0xff, 0xff, 0xff, 0xed, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xc9, 0xff, 0x48, 0xff, 0x8d, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xd1, 0xd6, 0xd1, 0xa0, + 0xd1, 0x51, 0xd1, 0xd1, 0xf5, 0xff, 0xf5, 0xff, 0xc9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0x88, 0xff, 0xb2, 0xff, 0xfb, 0xff, 0xee, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xf6, 0xff, 0xff, 0xff, 0xff, 0xff, 0xd6, 0xff, 0x69, 0xff, 0x68, 0xff, 0x69, 0xff, 0x48, 0xff, 0x91, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xb2, 0xff, 0x68, 0xff, 0x68, 0xff, 0x68, 0xff, 0x69, 0xff, 0xd6, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfa, 0xff, 0x6d, 0xff, 0x68, 0xff, 0x69, 0xff, 0x48, 0xff, 0x8d, 0xff, 0xfb, 0xff, 0xff, 0xff, 0xf6, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0x89, 0xff, 0x8d, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xd1, 0xd6, 0xd1, 0xa0, + 0xd1, 0x51, 0xd1, 0xd1, 0xf5, 0xff, 0xf5, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xa9, 0xff, 0x68, 0xff, 0x68, 0xff, 0x8d, 0xff, 0xb1, 0xff, 0xc9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xad, 0xff, 0x91, 0xff, 0x69, 0xff, 0x68, 0xff, 0x69, 0xff, 0x69, 0xff, 0x68, 0xff, 0x68, 0xff, 0x8d, 0xff, 0xb1, 0xff, 0x8d, 0xff, 0x68, 0xff, 0x68, 0xff, 0x69, 0xff, 0x69, 0xff, 0x68, 0xff, 0x69, 0xff, 0x91, 0xff, 0x91, 0xff, 0x69, 0xff, 0x68, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x68, 0xff, 0x6d, 0xff, 0x91, 0xff, 0x8d, 0xff, 0xc9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xc9, 0xff, 0x8d, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xd1, 0xd6, 0xd1, 0xa0, + 0xd1, 0x51, 0xd1, 0xd1, 0xf5, 0xff, 0xed, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xc9, 0xff, 0x69, 0xff, 0x69, 0xff, 0x68, 0xff, 0x48, 0xff, 0x44, 0xff, 0x68, 0xff, 0xc9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0x88, 0xff, 0x68, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x48, 0xff, 0x44, 0xff, 0x48, 0xff, 0x68, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x68, 0xff, 0x48, 0xff, 0x44, 0xff, 0x68, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x68, 0xff, 0x44, 0xff, 0x48, 0xff, 0x69, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xa9, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xd1, 0xd6, 0xd1, 0xa0, + 0xd1, 0x51, 0xd1, 0xd1, 0xf5, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xa9, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0xc9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0x89, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0xa9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xc9, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xd1, 0xd6, 0xd1, 0xa0, + 0xd1, 0x51, 0xd1, 0xd2, 0xf1, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0xc9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0x89, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x89, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xf1, 0xff, 0xf5, 0xff, 0xd1, 0xd6, 0xd1, 0xa0, + 0xd1, 0x51, 0xd1, 0xd2, 0xed, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xa9, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0xc9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0x89, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0xc9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xf1, 0xff, 0xf5, 0xff, 0xd1, 0xd6, 0xd1, 0xa0, + 0xd1, 0x51, 0xd1, 0xd7, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0x89, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0xc9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0x89, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x89, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xed, 0xff, 0xf1, 0xff, 0xd1, 0xd6, 0xd1, 0xa0, + 0xd1, 0x51, 0xcd, 0xe1, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0xc9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0x89, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x89, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xed, 0xff, 0xf1, 0xff, 0xd1, 0xd6, 0xd1, 0xa0, + 0xd1, 0x51, 0xed, 0xea, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xc9, 0xff, 0x48, 0xff, 0x48, 0xff, 0x48, 0xff, 0x48, 0xff, 0x48, 0xff, 0x48, 0xff, 0x48, 0xff, 0x48, 0xff, 0x48, 0xff, 0x48, 0xff, 0x48, 0xff, 0x48, 0xff, 0x48, 0xff, 0x68, 0xff, 0xc9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0x89, 0xff, 0x48, 0xff, 0x48, 0xff, 0x48, 0xff, 0x48, 0xff, 0x48, 0xff, 0x48, 0xff, 0x48, 0xff, 0x48, 0xff, 0x48, 0xff, 0x48, 0xff, 0x48, 0xff, 0x48, 0xff, 0x48, 0xff, 0x48, 0xff, 0x48, 0xff, 0x48, 0xff, 0x48, 0xff, 0x48, 0xff, 0x48, 0xff, 0x48, 0xff, 0x48, 0xff, 0x48, 0xff, 0x68, 0xff, 0xc9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xed, 0xff, 0xd1, 0xd6, 0xd1, 0xa0, + 0xd1, 0x51, 0xed, 0xf1, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xa9, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0xc9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0x89, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0xc9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xed, 0xff, 0xd1, 0xd6, 0xd1, 0xa0, + 0xd1, 0x51, 0xe9, 0xf5, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xf1, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xed, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xf1, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf1, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xd1, 0xd6, 0xd1, 0xa0, + 0xd1, 0x51, 0xe9, 0xf9, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xf1, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xed, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xf1, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf1, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xd1, 0xd6, 0xd1, 0xa0, + 0xd1, 0x51, 0xe9, 0xfb, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xf1, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xed, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xf1, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf1, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xd1, 0xd6, 0xd1, 0xa0, + 0xd1, 0x51, 0xe9, 0xfc, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xf1, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xed, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xf1, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf1, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xd1, 0xd6, 0xd1, 0xa0, + 0xd1, 0x51, 0xe9, 0xfa, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xf1, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xed, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xf1, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf1, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xd1, 0xd6, 0xd1, 0xa0, + 0xd1, 0x51, 0xe9, 0xf8, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xf1, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xed, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xf1, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf1, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xd1, 0xd6, 0xd1, 0xa0, + 0xd1, 0x51, 0xe9, 0xf4, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xf1, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xed, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xf1, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xed, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xd1, 0xd6, 0xd1, 0xa0, + 0xd1, 0x51, 0xed, 0xef, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xed, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xed, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xf1, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xed, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xed, 0xff, 0xd1, 0xd6, 0xd1, 0xa0, + 0xd1, 0x51, 0xed, 0xe9, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xed, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xed, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xf1, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf1, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xed, 0xff, 0xd1, 0xd6, 0xd1, 0xa0, + 0xd1, 0x51, 0xcd, 0xe0, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xfa, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfa, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf1, 0xff, 0xed, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xf6, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfa, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xd1, 0xff, 0xd1, 0xd6, 0xd1, 0xa0, + 0xd1, 0x51, 0xd1, 0xd6, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xf1, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf1, 0xff, 0xfa, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfa, 0xff, 0xf0, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xff, 0xff, 0xf2, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xfb, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfa, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf1, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xed, 0xff, 0xd1, 0xff, 0xd1, 0xd6, 0xd1, 0xa0, + 0xd1, 0x51, 0xd1, 0xd2, 0xed, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xed, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xfa, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xfa, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf1, 0xff, 0xfa, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf2, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xed, 0xff, 0xfb, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xed, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xed, 0xff, 0xd1, 0xff, 0xd1, 0xd6, 0xd1, 0xa0, + 0xd1, 0x51, 0xd1, 0xd1, 0xd1, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfa, 0xff, 0xf1, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xfa, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf5, 0xff, 0xf0, 0xff, 0xf1, 0xff, 0xfa, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf2, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xf1, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfa, 0xff, 0xf1, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xf1, 0xff, 0xd1, 0xff, 0xd1, 0xd6, 0xd1, 0xa0, + 0xd1, 0x51, 0xd1, 0xd1, 0xd1, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xed, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfa, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xfa, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfa, 0xff, 0xf0, 0xff, 0xf5, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xee, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xf1, 0xff, 0xf5, 0xff, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfa, 0xff, 0xed, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xed, 0xff, 0xd5, 0xff, 0xd1, 0xff, 0xd1, 0xd6, 0xd1, 0xa0, + 0xd1, 0x51, 0xd1, 0xd1, 0xd1, 0xff, 0xed, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xfa, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf5, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xfa, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0xff, 0xf5, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfa, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xed, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xf1, 0xff, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf6, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xf1, 0xff, 0xd5, 0xff, 0xd1, 0xff, 0xd1, 0xd6, 0xd1, 0xa0, + 0xd1, 0x51, 0xd1, 0xd1, 0xd1, 0xff, 0xd1, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xed, 0xff, 0xf5, 0xff, 0xfa, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfa, 0xff, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfa, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xfa, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfa, 0xff, 0xfa, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf5, 0xff, 0xfa, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf5, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf1, 0xff, 0xed, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xf1, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xed, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xed, 0xff, 0xf5, 0xff, 0xd5, 0xff, 0xd1, 0xff, 0xd1, 0xd6, 0xd1, 0xa0, + 0xd1, 0x51, 0xd1, 0xd1, 0xd1, 0xff, 0xd5, 0xff, 0xed, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xf1, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfa, 0xff, 0xd0, 0xff, 0xfa, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfa, 0xff, 0xf0, 0xff, 0xf1, 0xff, 0xfa, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfa, 0xff, 0xf5, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf5, 0xff, 0xfa, 0xff, 0xff, 0xff, 0xfa, 0xff, 0xf5, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf1, 0xff, 0xf5, 0xff, 0xf2, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xfb, 0xff, 0xff, 0xff, 0xfb, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xf1, 0xff, 0xf5, 0xff, 0xd5, 0xff, 0xd1, 0xff, 0xd1, 0xd6, 0xd1, 0xa0, + 0xd1, 0x51, 0xd1, 0xd1, 0xd1, 0xff, 0xd5, 0xff, 0xf5, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf1, 0xff, 0xd0, 0xff, 0xf5, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf5, 0xff, 0xf0, 0xff, 0xfa, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf1, 0xff, 0xf5, 0xff, 0xff, 0xff, 0xf2, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xed, 0xff, 0xf7, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xed, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xd5, 0xff, 0xd1, 0xff, 0xd1, 0xd6, 0xd1, 0xa0, + 0xd1, 0x51, 0xd1, 0xd1, 0xd1, 0xff, 0xd5, 0xff, 0xf5, 0xff, 0xf1, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xf2, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xfa, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf5, 0xff, 0xf0, 0xff, 0xfa, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0xff, 0xfa, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf1, 0xff, 0xf5, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf2, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xf1, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xd5, 0xff, 0xd1, 0xff, 0xd1, 0xd6, 0xd1, 0xa0, + 0xd1, 0x51, 0xd1, 0xd1, 0xd1, 0xff, 0xd5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xed, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xf2, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfa, 0xff, 0xd0, 0xff, 0xfa, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0xff, 0xf5, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0xff, 0xf5, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf1, 0xff, 0xf5, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xed, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xed, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xd5, 0xff, 0xd1, 0xff, 0xd1, 0xd6, 0xd1, 0xa0, + 0xd1, 0x51, 0xd1, 0xd1, 0xd1, 0xff, 0xd5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xf2, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfa, 0xff, 0xd0, 0xff, 0xfa, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0xff, 0xf1, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfa, 0xff, 0xd0, 0xff, 0xf5, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf1, 0xff, 0xf5, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf5, 0xff, 0xed, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xed, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xd5, 0xff, 0xd1, 0xff, 0xd1, 0xd6, 0xd1, 0xa0, + 0xd1, 0x51, 0xd1, 0xd1, 0xd1, 0xff, 0xd5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf1, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xed, 0xff, 0xf6, 0xff, 0xf5, 0xff, 0xfa, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0xff, 0xf5, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf1, 0xff, 0xf5, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf1, 0xff, 0xf5, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf6, 0xff, 0xf1, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xd5, 0xff, 0xd1, 0xff, 0xd1, 0xd6, 0xd1, 0xa0, + 0xd1, 0x51, 0xd1, 0xd1, 0xd1, 0xff, 0xd5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf1, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xec, 0xff, 0xf5, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf1, 0xff, 0xf1, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf1, 0xff, 0xf5, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf1, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xf1, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xd5, 0xff, 0xd1, 0xff, 0xd1, 0xd6, 0xd1, 0xa0, + 0xd1, 0x51, 0xd1, 0xd1, 0xd1, 0xff, 0xd5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf0, 0xff, 0xf6, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xed, 0xff, 0xfb, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfa, 0xff, 0xf5, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf1, 0xff, 0xf5, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf1, 0xff, 0xf5, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf2, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xf1, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xd5, 0xff, 0xd1, 0xff, 0xd1, 0xd6, 0xd1, 0xa0, + 0xd1, 0x51, 0xd1, 0xd1, 0xd1, 0xff, 0xd5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xfa, 0xff, 0xf6, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xf1, 0xff, 0xf6, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xfa, 0xff, 0xfa, 0xff, 0xf6, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xfa, 0xff, 0xfa, 0xff, 0xfa, 0xff, 0xf5, 0xff, 0xf1, 0xff, 0xed, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xf1, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xd5, 0xff, 0xd1, 0xff, 0xd1, 0xd6, 0xd1, 0xa0, + 0xd1, 0x51, 0xd1, 0xd1, 0xd1, 0xff, 0xd5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf1, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xed, 0xff, 0xf1, 0xff, 0xf1, 0xff, 0xf1, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf1, 0xff, 0xf1, 0xff, 0xed, 0xff, 0xed, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xed, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xd5, 0xff, 0xd1, 0xff, 0xd1, 0xd6, 0xd1, 0xa0, + 0xd1, 0x53, 0xd1, 0xd1, 0xd1, 0xff, 0xd5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xed, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xed, 0xff, 0xed, 0xff, 0xf1, 0xff, 0xf1, 0xff, 0xf1, 0xff, 0xf1, 0xff, 0xf1, 0xff, 0xed, 0xff, 0xed, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xed, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xd5, 0xff, 0xd1, 0xff, 0xd1, 0xd7, 0xd1, 0xa1, + 0xb2, 0x5a, 0xd1, 0xd7, 0xd1, 0xff, 0xd5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf1, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xed, 0xff, 0xf1, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xd5, 0xff, 0xd1, 0xff, 0xd1, 0xde, 0xd1, 0xa9, + 0xb1, 0x35, 0xd1, 0xc1, 0xd1, 0xff, 0xd5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf1, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xed, 0xff, 0xf1, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xd5, 0xff, 0xd1, 0xff, 0xd1, 0xc8, 0xd1, 0x8b, + 0x00, 0x00, 0xad, 0x7f, 0xd1, 0xff, 0xd5, 0xff, 0xd5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf1, 0xff, 0xed, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xed, 0xff, 0xf1, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xd5, 0xff, 0xd5, 0xff, 0xd1, 0xff, 0xad, 0x84, 0xb1, 0x2b, + 0x00, 0x00, 0xd5, 0x19, 0xd1, 0xcd, 0xd1, 0xff, 0xd5, 0xff, 0xd5, 0xff, 0xd5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf1, 0xff, 0xed, 0xff, 0xed, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xed, 0xff, 0xed, 0xff, 0xf1, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xd5, 0xff, 0xd5, 0xff, 0xd5, 0xff, 0xd1, 0xff, 0xd1, 0xcd, 0xd5, 0x1a, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xf9, 0x2d, 0xd1, 0xd4, 0xd1, 0xff, 0xd1, 0xff, 0xd1, 0xff, 0xd5, 0xff, 0xd1, 0xff, 0xd1, 0xff, 0xd1, 0xff, 0xd1, 0xff, 0xd1, 0xff, 0xd1, 0xff, 0xd1, 0xff, 0xd1, 0xff, 0xd1, 0xff, 0xd1, 0xff, 0xd5, 0xff, 0xd5, 0xff, 0xd5, 0xff, 0xd1, 0xff, 0xd1, 0xff, 0xf1, 0xff, 0xed, 0xff, 0xed, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xed, 0xff, 0xed, 0xff, 0xf1, 0xff, 0xd1, 0xff, 0xd1, 0xff, 0xd5, 0xff, 0xd5, 0xff, 0xd5, 0xff, 0xd1, 0xff, 0xd1, 0xff, 0xd1, 0xff, 0xd1, 0xff, 0xd1, 0xff, 0xd1, 0xff, 0xd1, 0xff, 0xd1, 0xff, 0xd1, 0xff, 0xd1, 0xff, 0xd1, 0xff, 0xd1, 0xff, 0xd5, 0xff, 0xd1, 0xff, 0xd1, 0xff, 0xd1, 0xd4, 0xf9, 0x2d, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd1, 0x19, 0xd1, 0x73, 0xd1, 0xb4, 0xd1, 0xc3, 0xd1, 0xc2, 0xd1, 0xac, 0xd1, 0x87, 0xd1, 0x8a, 0xd1, 0x8f, 0xd1, 0x8e, 0xd1, 0x8e, 0xd1, 0x8e, 0xd1, 0x8f, 0xd1, 0x89, 0xd1, 0x8d, 0xd1, 0xb1, 0xd1, 0xbf, 0xd1, 0xbb, 0xd1, 0xbb, 0xd1, 0xbb, 0xd1, 0xbb, 0xd1, 0xbb, 0xd1, 0xbb, 0xd1, 0xbb, 0xd1, 0xbb, 0xd1, 0xbb, 0xd1, 0xbb, 0xd1, 0xbb, 0xd1, 0xbb, 0xd1, 0xbb, 0xd1, 0xbb, 0xd1, 0xbb, 0xd1, 0xbb, 0xd1, 0xbb, 0xd1, 0xbb, 0xd1, 0xbb, 0xd1, 0xbb, 0xd1, 0xbe, 0xd1, 0xb2, 0xd1, 0x8f, 0xd1, 0x89, 0xd1, 0x8f, 0xd1, 0x8e, 0xd1, 0x8e, 0xd1, 0x8e, 0xd1, 0x8f, 0xd1, 0x8b, 0xd1, 0x86, 0xd1, 0xaa, 0xd1, 0xc2, 0xd1, 0xc3, 0xd1, 0xb4, 0xd1, 0x73, 0xd1, 0x19, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd1, 0x04, 0xd1, 0x0b, 0xac, 0x03, 0xb7, 0x09, 0xbb, 0x27, 0xb7, 0x23, 0xbb, 0x1e, 0xb7, 0x1f, 0xb7, 0x1f, 0xb7, 0x1f, 0xbb, 0x1e, 0xbb, 0x24, 0xb7, 0x1f, 0xd6, 0x0a, 0xd0, 0x09, 0xd5, 0x07, 0xd5, 0x07, 0xd5, 0x07, 0xd5, 0x07, 0xd5, 0x07, 0xd5, 0x07, 0xd5, 0x07, 0xd5, 0x07, 0xd5, 0x07, 0xd5, 0x07, 0xd5, 0x07, 0xd5, 0x07, 0xd5, 0x07, 0xd5, 0x07, 0xd5, 0x07, 0xd5, 0x07, 0xd5, 0x07, 0xd5, 0x07, 0xd5, 0x07, 0xd5, 0x07, 0xd0, 0x09, 0xb2, 0x09, 0xbb, 0x1e, 0xbb, 0x24, 0xbb, 0x1e, 0xb7, 0x1f, 0xb7, 0x1f, 0xb7, 0x1f, 0xbb, 0x1e, 0xb7, 0x23, 0xb7, 0x27, 0xbb, 0x0a, 0xb4, 0x03, 0xd1, 0x0b, 0xd1, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xbb, 0x59, 0xbb, 0xff, 0xbb, 0xf4, 0xbb, 0xea, 0xbb, 0xeb, 0xbb, 0xeb, 0xbb, 0xeb, 0xbb, 0xe9, 0xbb, 0xf4, 0xb7, 0xec, 0xb7, 0x46, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xbb, 0x43, 0xbb, 0xea, 0xbb, 0xf4, 0xbb, 0xe9, 0xbb, 0xeb, 0xbb, 0xeb, 0xbb, 0xeb, 0xbb, 0xea, 0xbb, 0xf4, 0xb7, 0xff, 0xb7, 0x5c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb7, 0x5c, 0xb7, 0xff, 0xb7, 0xff, 0xb7, 0xff, 0xb7, 0xff, 0xb7, 0xff, 0xb7, 0xff, 0xdb, 0xff, 0xb7, 0xff, 0xb6, 0xf6, 0x96, 0x41, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb7, 0x41, 0xb7, 0xf5, 0xb7, 0xff, 0xb7, 0xff, 0xb7, 0xff, 0xb7, 0xff, 0xb7, 0xff, 0xbb, 0xff, 0xdb, 0xff, 0xb6, 0xff, 0xb6, 0x5c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xdb, 0x04, 0xb7, 0x88, 0xb7, 0xee, 0xb7, 0xe7, 0xb7, 0xdf, 0xb7, 0xdf, 0xb7, 0xde, 0xb7, 0xe9, 0xb7, 0xe3, 0xb6, 0x63, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb7, 0x63, 0xb7, 0xe4, 0xb7, 0xea, 0xb7, 0xde, 0xb7, 0xdf, 0xb7, 0xdf, 0xb7, 0xe7, 0xb7, 0xed, 0xb6, 0x86, 0x92, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +#endif +#if LV_COLOR_DEPTH == 16 && LV_COLOR_16_SWAP == 0 + /*Pixel format: Alpha 8 bit, Red: 5 bit, Green: 6 bit, Blue: 5 bit*/ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6a, 0xed, 0x46, 0x4a, 0xed, 0xb5, 0x4a, 0xed, 0xed, 0x4a, 0xed, 0xf5, 0x4a, 0xed, 0xf0, 0x4a, 0xed, 0xef, 0x4a, 0xed, 0xef, 0x4a, 0xed, 0xef, 0x4a, 0xed, 0xef, 0x4a, 0xed, 0xef, 0x4a, 0xed, 0xef, 0x4a, 0xed, 0xef, 0x4a, 0xed, 0xef, 0x4a, 0xed, 0xef, 0x4a, 0xed, 0xef, 0x4a, 0xed, 0xef, 0x4a, 0xed, 0xef, 0x4a, 0xed, 0xef, 0x4a, 0xed, 0xef, 0x4a, 0xed, 0xef, 0x4a, 0xed, 0xef, 0x4a, 0xed, 0xef, 0x4a, 0xed, 0xef, 0x4a, 0xed, 0xef, 0x4a, 0xed, 0xef, 0x4a, 0xed, 0xf1, 0x4a, 0xed, 0xf4, 0x4a, 0xed, 0xeb, 0x4a, 0xed, 0xb4, 0x4a, 0xed, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6a, 0xed, 0x75, 0x4a, 0xed, 0xff, 0x4a, 0xed, 0xff, 0x4a, 0xed, 0xf9, 0x4a, 0xed, 0xf1, 0x4a, 0xed, 0xf3, 0x4a, 0xed, 0xf4, 0x4a, 0xed, 0xf4, 0x4a, 0xed, 0xf4, 0x4a, 0xed, 0xf4, 0x4a, 0xed, 0xf4, 0x4a, 0xed, 0xf4, 0x4a, 0xed, 0xf4, 0x4a, 0xed, 0xf4, 0x4a, 0xed, 0xf4, 0x4a, 0xed, 0xf4, 0x4a, 0xed, 0xf4, 0x4a, 0xed, 0xf4, 0x4a, 0xed, 0xf4, 0x4a, 0xed, 0xf4, 0x4a, 0xed, 0xf4, 0x4a, 0xed, 0xf4, 0x4a, 0xed, 0xf4, 0x4a, 0xed, 0xf4, 0x4a, 0xed, 0xf4, 0x4a, 0xed, 0xf4, 0x4a, 0xed, 0xf3, 0x4a, 0xed, 0xf1, 0x4a, 0xed, 0xf9, 0x4a, 0xed, 0xff, 0x4a, 0xed, 0xff, 0x4a, 0xed, 0x76, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4a, 0xed, 0x58, 0x4a, 0xed, 0xff, 0x4a, 0xed, 0xff, 0x4a, 0xed, 0x9f, 0x4a, 0xed, 0x3e, 0x6a, 0xed, 0x33, 0x4a, 0xed, 0x3a, 0x4a, 0xed, 0x3b, 0x4a, 0xed, 0x3b, 0x4a, 0xed, 0x3b, 0x4a, 0xed, 0x3b, 0x4a, 0xed, 0x3b, 0x4a, 0xed, 0x3b, 0x4a, 0xed, 0x3b, 0x4a, 0xed, 0x3b, 0x4a, 0xed, 0x3b, 0x4a, 0xed, 0x3b, 0x4a, 0xed, 0x3b, 0x4a, 0xed, 0x3b, 0x4a, 0xed, 0x3b, 0x4a, 0xed, 0x3b, 0x4a, 0xed, 0x3b, 0x4a, 0xed, 0x3b, 0x4a, 0xed, 0x3b, 0x4a, 0xed, 0x3b, 0x4a, 0xed, 0x3b, 0x4a, 0xed, 0x3b, 0x6a, 0xed, 0x39, 0x6a, 0xed, 0x33, 0x4a, 0xed, 0x3e, 0x4a, 0xed, 0x9f, 0x4a, 0xed, 0xff, 0x4a, 0xed, 0xff, 0x6a, 0xed, 0x57, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8a, 0xf5, 0x13, 0x4a, 0xed, 0xbe, 0x4a, 0xe5, 0xff, 0x4a, 0xed, 0x92, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4a, 0xed, 0x92, 0x4a, 0xed, 0xff, 0x4a, 0xed, 0xbf, 0x8a, 0xed, 0x13, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2a, 0xe5, 0x2f, 0x6a, 0xed, 0xff, 0x6a, 0xed, 0xef, 0xcb, 0xfd, 0x31, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xcb, 0xfd, 0x31, 0x6a, 0xed, 0xef, 0x4a, 0xed, 0xff, 0x2a, 0xe5, 0x2f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xff, 0x01, 0x6b, 0xad, 0x03, 0x00, 0x84, 0x02, 0x00, 0x84, 0x02, 0x00, 0x84, 0x02, 0x00, 0x84, 0x02, 0x00, 0x00, 0x00, 0xc8, 0xd4, 0x38, 0x8b, 0xf5, 0xff, 0xcb, 0xfd, 0xd9, 0xa9, 0xcc, 0x1d, 0x00, 0x00, 0x00, 0x00, 0x84, 0x02, 0x00, 0x84, 0x02, 0x00, 0x84, 0x02, 0x00, 0x84, 0x02, 0x00, 0x84, 0x02, 0x00, 0x84, 0x02, 0x00, 0x84, 0x02, 0x00, 0x84, 0x02, 0x00, 0x84, 0x02, 0x00, 0x84, 0x02, 0x00, 0x84, 0x02, 0x00, 0x84, 0x02, 0x00, 0x84, 0x02, 0x00, 0x84, 0x02, 0x00, 0x84, 0x02, 0x00, 0x84, 0x02, 0x00, 0x84, 0x02, 0x00, 0x84, 0x02, 0x00, 0x84, 0x02, 0x00, 0x84, 0x02, 0x00, 0x84, 0x02, 0x00, 0x84, 0x02, 0x00, 0x84, 0x02, 0x00, 0x84, 0x02, 0x00, 0x84, 0x02, 0x00, 0x84, 0x02, 0x00, 0x00, 0x00, 0xa9, 0xd4, 0x1d, 0xcb, 0xfd, 0xd9, 0xab, 0xf5, 0xff, 0xc8, 0xd4, 0x39, 0x00, 0x00, 0x00, 0x00, 0x84, 0x02, 0x00, 0x84, 0x02, 0x00, 0x84, 0x02, 0x00, 0x84, 0x02, 0x6b, 0xad, 0x03, 0xe0, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe7, 0xcc, 0x0d, 0x67, 0xc4, 0x5a, 0x27, 0xc4, 0x94, 0x67, 0xc4, 0x9f, 0x47, 0xc4, 0x9c, 0x47, 0xc4, 0x9a, 0x47, 0xc4, 0x9a, 0x47, 0xc4, 0x9a, 0x47, 0xbc, 0x8f, 0x67, 0xc4, 0xaf, 0xc9, 0xd4, 0xff, 0xa8, 0xd4, 0xf2, 0x06, 0xbc, 0x9c, 0x27, 0xbc, 0x8e, 0x47, 0xc4, 0x9b, 0x47, 0xc4, 0x9a, 0x47, 0xc4, 0x9a, 0x47, 0xc4, 0x9a, 0x47, 0xc4, 0x9a, 0x47, 0xc4, 0x9a, 0x47, 0xc4, 0x9a, 0x47, 0xc4, 0x9a, 0x47, 0xc4, 0x9a, 0x47, 0xc4, 0x9a, 0x47, 0xc4, 0x9a, 0x47, 0xc4, 0x9a, 0x47, 0xc4, 0x9a, 0x47, 0xc4, 0x9a, 0x47, 0xc4, 0x9a, 0x47, 0xc4, 0x9a, 0x47, 0xc4, 0x9a, 0x47, 0xc4, 0x9a, 0x47, 0xc4, 0x9a, 0x47, 0xc4, 0x9a, 0x47, 0xc4, 0x9a, 0x47, 0xc4, 0x9a, 0x47, 0xc4, 0x9a, 0x47, 0xc4, 0x9a, 0x47, 0xc4, 0x9a, 0x47, 0xc4, 0x9b, 0x27, 0xbc, 0x8e, 0x06, 0xbc, 0x9c, 0xa8, 0xd4, 0xf2, 0xc9, 0xd4, 0xff, 0x47, 0xc4, 0xaf, 0x47, 0xbc, 0x8f, 0x47, 0xc4, 0x9a, 0x47, 0xc4, 0x9a, 0x47, 0xc4, 0x9a, 0x47, 0xc4, 0x9c, 0x47, 0xc4, 0x9f, 0x27, 0xc4, 0x94, 0x67, 0xc4, 0x5a, 0xe7, 0xcc, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0xd5, 0x1a, 0x28, 0xc4, 0xbb, 0x67, 0xc4, 0xff, 0x47, 0xc4, 0xff, 0x67, 0xc4, 0xff, 0x67, 0xc4, 0xff, 0x67, 0xc4, 0xff, 0x67, 0xc4, 0xff, 0x67, 0xc4, 0xff, 0x67, 0xcc, 0xff, 0x67, 0xc4, 0xff, 0x27, 0xbc, 0xff, 0x27, 0xbc, 0xff, 0x67, 0xc4, 0xff, 0x88, 0xcc, 0xff, 0x67, 0xc4, 0xff, 0x67, 0xc4, 0xff, 0x67, 0xc4, 0xff, 0x67, 0xc4, 0xff, 0x67, 0xc4, 0xff, 0x67, 0xc4, 0xff, 0x67, 0xc4, 0xff, 0x67, 0xc4, 0xff, 0x67, 0xc4, 0xff, 0x67, 0xc4, 0xff, 0x67, 0xc4, 0xff, 0x67, 0xc4, 0xff, 0x67, 0xc4, 0xff, 0x67, 0xc4, 0xff, 0x67, 0xc4, 0xff, 0x67, 0xc4, 0xff, 0x67, 0xc4, 0xff, 0x67, 0xc4, 0xff, 0x67, 0xc4, 0xff, 0x67, 0xc4, 0xff, 0x67, 0xc4, 0xff, 0x67, 0xc4, 0xff, 0x67, 0xc4, 0xff, 0x67, 0xc4, 0xff, 0x67, 0xc4, 0xff, 0x67, 0xc4, 0xff, 0x88, 0xcc, 0xff, 0x67, 0xc4, 0xff, 0x47, 0xbc, 0xff, 0x47, 0xbc, 0xff, 0x67, 0xc4, 0xff, 0x67, 0xcc, 0xff, 0x67, 0xc4, 0xff, 0x67, 0xc4, 0xff, 0x67, 0xc4, 0xff, 0x67, 0xc4, 0xff, 0x47, 0xc4, 0xff, 0x27, 0xc4, 0xff, 0x67, 0xc4, 0xff, 0x28, 0xbc, 0xbb, 0x85, 0xd5, 0x1a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x66, 0xd5, 0x0f, 0xa7, 0xc4, 0xc0, 0xe8, 0xbb, 0xff, 0x67, 0xc4, 0xff, 0xa8, 0xd4, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x28, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x29, 0xe5, 0xff, 0x28, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x28, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x88, 0xe4, 0xff, 0xe8, 0xe3, 0xff, 0x48, 0xe3, 0xff, 0xe8, 0xe2, 0xff, 0x88, 0xe2, 0xff, 0x47, 0xe2, 0xff, 0x27, 0xe2, 0xff, 0x27, 0xe2, 0xff, 0x27, 0xe2, 0xff, 0x47, 0xe2, 0xff, 0xa8, 0xe2, 0xff, 0x08, 0xe3, 0xff, 0x68, 0xe3, 0xff, 0x28, 0xe4, 0xff, 0xa8, 0xe4, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x28, 0xe5, 0xff, 0x28, 0xe5, 0xff, 0x29, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x28, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0xa8, 0xcc, 0xff, 0x67, 0xc4, 0xff, 0xc8, 0xbb, 0xff, 0xc6, 0xcc, 0xc0, 0xc9, 0xbc, 0x0f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x47, 0xc4, 0x76, 0x28, 0xc4, 0xff, 0x67, 0xc4, 0xff, 0xc8, 0xd4, 0xff, 0x08, 0xdd, 0xff, 0x27, 0xbc, 0xff, 0x86, 0xa3, 0xff, 0xa6, 0xa3, 0xff, 0xa6, 0xa3, 0xff, 0xa6, 0xa3, 0xff, 0xa6, 0xa3, 0xff, 0xa6, 0xa3, 0xff, 0xa6, 0xa3, 0xff, 0xa6, 0xa3, 0xff, 0xa6, 0xa3, 0xff, 0xa6, 0xa3, 0xff, 0xa6, 0xa3, 0xff, 0xa6, 0xa3, 0xff, 0x86, 0xa3, 0xff, 0x27, 0xbb, 0xff, 0xa7, 0xca, 0xff, 0x27, 0xda, 0xff, 0x07, 0xda, 0xff, 0x07, 0xe2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x07, 0xe2, 0xff, 0x27, 0xda, 0xff, 0x47, 0xda, 0xff, 0xa7, 0xca, 0xff, 0x27, 0xb3, 0xff, 0xa6, 0xa3, 0xff, 0xa6, 0xa3, 0xff, 0xa6, 0xa3, 0xff, 0xa6, 0xa3, 0xff, 0xa6, 0xa3, 0xff, 0xa6, 0xa3, 0xff, 0xa6, 0xa3, 0xff, 0xa6, 0xa3, 0xff, 0xa6, 0xa3, 0xff, 0xa6, 0xa3, 0xff, 0xa6, 0xa3, 0xff, 0xa6, 0xa3, 0xff, 0xa6, 0xa3, 0xff, 0x86, 0xa3, 0xff, 0x27, 0xbc, 0xff, 0x08, 0xe5, 0xff, 0xc8, 0xd4, 0xff, 0x67, 0xc4, 0xff, 0x27, 0xc4, 0xff, 0x28, 0xbc, 0x7a, 0x28, 0xbc, 0x1f, + 0x29, 0xbc, 0x2d, 0x28, 0xc4, 0xbc, 0x67, 0xc4, 0xff, 0xe8, 0xd4, 0xff, 0xe8, 0xdc, 0xff, 0xe5, 0x82, 0xff, 0xa3, 0x49, 0xff, 0xc3, 0x49, 0xff, 0xc3, 0x51, 0xff, 0xc4, 0x51, 0xff, 0xc4, 0x51, 0xff, 0xc4, 0x51, 0xff, 0xc4, 0x51, 0xff, 0xc4, 0x51, 0xff, 0xc4, 0x51, 0xff, 0xc4, 0x51, 0xff, 0xc4, 0x51, 0xff, 0xc4, 0x61, 0xff, 0xe5, 0x99, 0xff, 0xe7, 0xc9, 0xff, 0xe7, 0xd9, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xd9, 0xff, 0xe7, 0xc9, 0xff, 0xe5, 0x91, 0xff, 0xe4, 0x59, 0xff, 0xc4, 0x51, 0xff, 0xc4, 0x51, 0xff, 0xc4, 0x51, 0xff, 0xc4, 0x51, 0xff, 0xc4, 0x51, 0xff, 0xc4, 0x51, 0xff, 0xc4, 0x51, 0xff, 0xc4, 0x51, 0xff, 0xc4, 0x51, 0xff, 0xc3, 0x51, 0xff, 0xc3, 0x49, 0xff, 0xa3, 0x49, 0xff, 0xe5, 0x82, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0x67, 0xc4, 0xff, 0x47, 0xc4, 0xc4, 0x67, 0xc4, 0x84, + 0x2c, 0xa4, 0x55, 0x48, 0xbc, 0xd4, 0x87, 0xd4, 0xff, 0x29, 0xed, 0xff, 0xa6, 0xa3, 0xff, 0x63, 0x41, 0xff, 0xc3, 0x49, 0xff, 0x04, 0x5a, 0xff, 0x04, 0x5a, 0xff, 0x04, 0x5a, 0xff, 0x04, 0x5a, 0xff, 0x04, 0x5a, 0xff, 0x04, 0x5a, 0xff, 0x04, 0x5a, 0xff, 0x04, 0x5a, 0xff, 0x04, 0x6a, 0xff, 0xe6, 0xa9, 0xff, 0xe7, 0xd9, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xd1, 0xff, 0x06, 0xa2, 0xff, 0x04, 0x62, 0xff, 0x04, 0x5a, 0xff, 0x04, 0x5a, 0xff, 0x04, 0x5a, 0xff, 0x04, 0x5a, 0xff, 0x04, 0x5a, 0xff, 0x04, 0x5a, 0xff, 0x04, 0x5a, 0xff, 0x04, 0x5a, 0xff, 0x04, 0x5a, 0xff, 0xc3, 0x49, 0xff, 0x63, 0x41, 0xff, 0xa6, 0xa3, 0xff, 0x29, 0xed, 0xff, 0x88, 0xcc, 0xff, 0x67, 0xc4, 0xda, 0x67, 0xc4, 0xa4, + 0x48, 0xbc, 0x52, 0x47, 0xc4, 0xd1, 0xc8, 0xd4, 0xff, 0x49, 0xed, 0xff, 0xe5, 0x82, 0xff, 0x83, 0x41, 0xff, 0x24, 0x62, 0xff, 0x24, 0x62, 0xff, 0x24, 0x62, 0xff, 0x24, 0x62, 0xff, 0x24, 0x62, 0xff, 0x24, 0x62, 0xff, 0x24, 0x62, 0xff, 0x44, 0x62, 0xff, 0x26, 0x9a, 0xff, 0xe7, 0xd9, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xd1, 0xff, 0x25, 0x92, 0xff, 0x44, 0x62, 0xff, 0x44, 0x62, 0xff, 0x24, 0x62, 0xff, 0x24, 0x62, 0xff, 0x24, 0x62, 0xff, 0x24, 0x62, 0xff, 0x24, 0x62, 0xff, 0x24, 0x62, 0xff, 0x24, 0x62, 0xff, 0x83, 0x41, 0xff, 0xe5, 0x82, 0xff, 0x49, 0xed, 0xff, 0xc8, 0xd4, 0xff, 0x47, 0xc4, 0xd7, 0x67, 0xc4, 0xa1, + 0x67, 0xcc, 0x51, 0x67, 0xc4, 0xd1, 0xc8, 0xd4, 0xff, 0x49, 0xed, 0xff, 0xe5, 0x82, 0xff, 0x83, 0x41, 0xff, 0x24, 0x62, 0xff, 0x24, 0x62, 0xff, 0x24, 0x62, 0xff, 0x24, 0x62, 0xff, 0x44, 0x62, 0xff, 0x44, 0x62, 0xff, 0x25, 0x7a, 0xff, 0xe6, 0xc1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xd9, 0xff, 0x06, 0xba, 0xff, 0x06, 0xaa, 0xff, 0x25, 0x92, 0xff, 0x25, 0x8a, 0xff, 0x25, 0x82, 0xff, 0x25, 0x7a, 0xff, 0x25, 0x82, 0xff, 0x25, 0x8a, 0xff, 0x25, 0x9a, 0xff, 0x06, 0xaa, 0xff, 0x06, 0xc2, 0xff, 0xe7, 0xd9, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x06, 0xb2, 0xff, 0x25, 0x72, 0xff, 0x44, 0x62, 0xff, 0x44, 0x62, 0xff, 0x44, 0x62, 0xff, 0x44, 0x62, 0xff, 0x24, 0x62, 0xff, 0x24, 0x62, 0xff, 0x24, 0x62, 0xff, 0x83, 0x41, 0xff, 0xe5, 0x82, 0xff, 0x49, 0xed, 0xff, 0xc8, 0xd4, 0xff, 0x47, 0xc4, 0xd6, 0x67, 0xc4, 0xa0, + 0x68, 0xc4, 0x51, 0x67, 0xc4, 0xd1, 0xc8, 0xd4, 0xff, 0x49, 0xed, 0xff, 0xe5, 0x82, 0xff, 0x83, 0x41, 0xff, 0x24, 0x62, 0xff, 0x24, 0x62, 0xff, 0x24, 0x62, 0xff, 0x44, 0x62, 0xff, 0x44, 0x62, 0xff, 0x25, 0x8a, 0xff, 0xe7, 0xd1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xd9, 0xff, 0x06, 0xb2, 0xff, 0x25, 0x8a, 0xff, 0x44, 0x6a, 0xff, 0x44, 0x62, 0xff, 0x44, 0x62, 0xff, 0x44, 0x62, 0xff, 0x44, 0x62, 0xff, 0x44, 0x62, 0xff, 0x44, 0x62, 0xff, 0x44, 0x62, 0xff, 0x44, 0x62, 0xff, 0x44, 0x62, 0xff, 0x44, 0x62, 0xff, 0x44, 0x62, 0xff, 0x44, 0x6a, 0xff, 0x25, 0x92, 0xff, 0x06, 0xb2, 0xff, 0xe7, 0xd9, 0xff, 0xc7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xc7, 0xe1, 0xff, 0xe7, 0xc9, 0xff, 0x25, 0x7a, 0xff, 0x44, 0x62, 0xff, 0x44, 0x62, 0xff, 0x44, 0x62, 0xff, 0x24, 0x62, 0xff, 0x24, 0x62, 0xff, 0x24, 0x62, 0xff, 0x83, 0x41, 0xff, 0xe5, 0x82, 0xff, 0x49, 0xed, 0xff, 0xc8, 0xd4, 0xff, 0x67, 0xc4, 0xd6, 0x67, 0xc4, 0xa0, + 0x67, 0xc4, 0x51, 0x47, 0xc4, 0xd1, 0xc8, 0xd4, 0xff, 0x49, 0xed, 0xff, 0xe5, 0x82, 0xff, 0xa3, 0x41, 0xff, 0x44, 0x62, 0xff, 0x44, 0x62, 0xff, 0x44, 0x62, 0xff, 0x44, 0x62, 0xff, 0x05, 0x9a, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xd1, 0xff, 0x06, 0xa2, 0xff, 0x45, 0x72, 0xff, 0x44, 0x62, 0xff, 0x44, 0x62, 0xff, 0x44, 0x62, 0xff, 0x44, 0x62, 0xff, 0x44, 0x62, 0xff, 0x44, 0x62, 0xff, 0x44, 0x62, 0xff, 0x44, 0x62, 0xff, 0x44, 0x62, 0xff, 0x44, 0x62, 0xff, 0x44, 0x62, 0xff, 0x44, 0x62, 0xff, 0x44, 0x62, 0xff, 0x44, 0x62, 0xff, 0x44, 0x62, 0xff, 0x44, 0x62, 0xff, 0x44, 0x62, 0xff, 0x45, 0x7a, 0xff, 0x26, 0xaa, 0xff, 0xe7, 0xd1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xd9, 0xff, 0x25, 0x8a, 0xff, 0x44, 0x62, 0xff, 0x44, 0x62, 0xff, 0x44, 0x62, 0xff, 0x44, 0x62, 0xff, 0x44, 0x62, 0xff, 0xa3, 0x41, 0xff, 0xe5, 0x82, 0xff, 0x49, 0xed, 0xff, 0xc8, 0xd4, 0xff, 0x47, 0xc4, 0xd6, 0x67, 0xc4, 0xa0, + 0x67, 0xc4, 0x51, 0x47, 0xc4, 0xd1, 0xc8, 0xd4, 0xff, 0x49, 0xed, 0xff, 0x05, 0x83, 0xff, 0x83, 0x41, 0xff, 0x24, 0x62, 0xff, 0x44, 0x62, 0xff, 0x44, 0x62, 0xff, 0x05, 0x9a, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xd1, 0xff, 0x06, 0xa2, 0xff, 0x45, 0x72, 0xff, 0x44, 0x62, 0xff, 0x65, 0x6a, 0xff, 0x44, 0x6a, 0xff, 0x44, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x44, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x44, 0x62, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x44, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x44, 0x6a, 0xff, 0x65, 0x6a, 0xff, 0x44, 0x6a, 0xff, 0x44, 0x62, 0xff, 0x45, 0x72, 0xff, 0x06, 0xb2, 0xff, 0xe7, 0xd9, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x25, 0x8a, 0xff, 0x44, 0x62, 0xff, 0x44, 0x62, 0xff, 0x44, 0x62, 0xff, 0x24, 0x62, 0xff, 0x83, 0x41, 0xff, 0x05, 0x83, 0xff, 0x49, 0xed, 0xff, 0xc8, 0xd4, 0xff, 0x47, 0xc4, 0xd6, 0x67, 0xc4, 0xa0, + 0x67, 0xc4, 0x51, 0x47, 0xc4, 0xd1, 0xc8, 0xd4, 0xff, 0x49, 0xed, 0xff, 0x05, 0x83, 0xff, 0xa3, 0x49, 0xff, 0x44, 0x62, 0xff, 0x44, 0x62, 0xff, 0x26, 0x9a, 0xff, 0xc7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x06, 0xba, 0xff, 0x45, 0x82, 0xff, 0x44, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x65, 0x6a, 0xff, 0x24, 0x62, 0xff, 0x44, 0x62, 0xff, 0x44, 0x62, 0xff, 0x24, 0x62, 0xff, 0x65, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x65, 0x6a, 0xff, 0x44, 0x62, 0xff, 0x23, 0x62, 0xff, 0x44, 0x6a, 0xff, 0x23, 0x62, 0xff, 0x44, 0x62, 0xff, 0x65, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x65, 0x6a, 0xff, 0x24, 0x62, 0xff, 0x44, 0x62, 0xff, 0x44, 0x6a, 0xff, 0x23, 0x5a, 0xff, 0x65, 0x6a, 0xff, 0x45, 0x92, 0xff, 0xe7, 0xc9, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xc7, 0xe1, 0xff, 0x25, 0x8a, 0xff, 0x44, 0x62, 0xff, 0x44, 0x62, 0xff, 0x44, 0x62, 0xff, 0xa3, 0x49, 0xff, 0x05, 0x83, 0xff, 0x49, 0xed, 0xff, 0xc8, 0xd4, 0xff, 0x47, 0xc4, 0xd6, 0x67, 0xc4, 0xa0, + 0x67, 0xc4, 0x51, 0x47, 0xc4, 0xd1, 0xc8, 0xd4, 0xff, 0x49, 0xed, 0xff, 0x05, 0x83, 0xff, 0xa3, 0x49, 0xff, 0x44, 0x62, 0xff, 0x25, 0x8a, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xc3, 0x79, 0xff, 0x85, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x85, 0x6a, 0xff, 0x23, 0x62, 0xff, 0x40, 0x49, 0xff, 0x64, 0x6a, 0xff, 0x65, 0x6a, 0xff, 0x61, 0x49, 0xff, 0x24, 0x62, 0xff, 0x65, 0x6a, 0xff, 0x65, 0x6a, 0xff, 0x85, 0x6a, 0xff, 0xa1, 0x51, 0xff, 0xc2, 0x59, 0xff, 0xc6, 0x7a, 0xff, 0xc2, 0x59, 0xff, 0x81, 0x49, 0xff, 0x65, 0x6a, 0xff, 0x65, 0x6a, 0xff, 0x65, 0x6a, 0xff, 0x24, 0x62, 0xff, 0x81, 0x49, 0xff, 0x64, 0x6a, 0xff, 0xa5, 0x72, 0xff, 0x60, 0x49, 0xff, 0x03, 0x5a, 0xff, 0x85, 0x6a, 0xff, 0x45, 0x7a, 0xff, 0x07, 0xba, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xd9, 0xff, 0x45, 0x82, 0xff, 0x44, 0x62, 0xff, 0x44, 0x62, 0xff, 0xa3, 0x49, 0xff, 0xe5, 0x82, 0xff, 0x49, 0xed, 0xff, 0xc8, 0xd4, 0xff, 0x47, 0xc4, 0xd6, 0x67, 0xc4, 0xa0, + 0x67, 0xc4, 0x51, 0x47, 0xc4, 0xd1, 0xc8, 0xd4, 0xff, 0x49, 0xed, 0xff, 0xe5, 0x82, 0xff, 0xa3, 0x49, 0xff, 0x25, 0x7a, 0xff, 0xe7, 0xd9, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x07, 0xd2, 0xff, 0xa3, 0x79, 0xff, 0x85, 0x72, 0xff, 0x03, 0x5a, 0xff, 0xc2, 0x59, 0xff, 0x2f, 0xc5, 0xff, 0xe9, 0x6a, 0xff, 0xe9, 0x6a, 0xff, 0x8d, 0xac, 0xff, 0x03, 0x62, 0xff, 0x44, 0x62, 0xff, 0x85, 0x6a, 0xff, 0x81, 0x49, 0xff, 0x27, 0x83, 0xff, 0xcf, 0xac, 0xff, 0xa6, 0x39, 0xff, 0xcf, 0xac, 0xff, 0x88, 0x93, 0xff, 0x61, 0x49, 0xff, 0x85, 0x6a, 0xff, 0x44, 0x62, 0xff, 0xe2, 0x59, 0xff, 0xad, 0xb4, 0xff, 0xea, 0x6a, 0xff, 0x27, 0x4a, 0xff, 0x50, 0xc5, 0xff, 0x03, 0x62, 0xff, 0x03, 0x5a, 0xff, 0xa5, 0x72, 0xff, 0xc3, 0x61, 0xff, 0x06, 0xb2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xc9, 0xff, 0x45, 0x6a, 0xff, 0x44, 0x62, 0xff, 0xa3, 0x49, 0xff, 0xe5, 0x82, 0xff, 0x49, 0xed, 0xff, 0xc8, 0xd4, 0xff, 0x47, 0xc4, 0xd6, 0x67, 0xc4, 0xa0, + 0x67, 0xc4, 0x51, 0x47, 0xc4, 0xd1, 0xc8, 0xd4, 0xff, 0x49, 0xed, 0xff, 0xe5, 0x82, 0xff, 0xa3, 0x49, 0xff, 0x07, 0xc2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xc6, 0xd1, 0xff, 0xe4, 0x81, 0xff, 0x60, 0x49, 0xff, 0x2c, 0x9c, 0xff, 0xff, 0xff, 0xff, 0x0a, 0x6b, 0xff, 0x2a, 0x73, 0xff, 0xfd, 0xff, 0xff, 0xeb, 0x9b, 0xff, 0xe2, 0x59, 0xff, 0x03, 0x5a, 0xff, 0xc1, 0x59, 0xff, 0xd8, 0xee, 0xff, 0x1b, 0xdf, 0xff, 0xc3, 0x18, 0xff, 0x78, 0xce, 0xff, 0x1a, 0xef, 0xff, 0x03, 0x62, 0xff, 0xc2, 0x59, 0xff, 0xe2, 0x59, 0xff, 0xca, 0x93, 0xff, 0xfe, 0xff, 0xff, 0x0b, 0x63, 0xff, 0xc6, 0x39, 0xff, 0xff, 0xff, 0xff, 0x8e, 0xac, 0xff, 0xa1, 0x51, 0xff, 0x03, 0x5a, 0xff, 0x61, 0x51, 0xff, 0x71, 0xcd, 0xff, 0x50, 0xf4, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x06, 0xb2, 0xff, 0x44, 0x62, 0xff, 0xa3, 0x49, 0xff, 0xe5, 0x82, 0xff, 0x49, 0xed, 0xff, 0xc8, 0xd4, 0xff, 0x47, 0xc4, 0xd6, 0x67, 0xc4, 0xa0, + 0x67, 0xc4, 0x51, 0x47, 0xc4, 0xd1, 0xc8, 0xd4, 0xff, 0x49, 0xed, 0xff, 0xe5, 0x82, 0xff, 0xc5, 0x89, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xaa, 0xea, 0xff, 0xe8, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xc6, 0xd1, 0xff, 0xc3, 0x81, 0xff, 0xd3, 0xcd, 0xff, 0xfc, 0xff, 0xff, 0x14, 0xd6, 0xff, 0x34, 0xd6, 0xff, 0xba, 0xff, 0xff, 0x51, 0xc5, 0xff, 0xe3, 0x59, 0xff, 0x81, 0x49, 0xff, 0x28, 0x83, 0xff, 0xba, 0xff, 0xff, 0x38, 0xf7, 0xff, 0x92, 0xc5, 0xff, 0x18, 0xf7, 0xff, 0xdc, 0xff, 0xff, 0x69, 0x8b, 0xff, 0x40, 0x49, 0xff, 0xc2, 0x59, 0xff, 0x51, 0xbd, 0xff, 0xfb, 0xff, 0xff, 0x13, 0xd6, 0xff, 0xd3, 0xcd, 0xff, 0xbb, 0xff, 0xff, 0x35, 0xde, 0xff, 0x03, 0x62, 0xff, 0x40, 0x49, 0xff, 0x45, 0x6a, 0xff, 0xf8, 0xee, 0xff, 0x59, 0xff, 0xff, 0x0b, 0xdb, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x25, 0x8a, 0xff, 0xa3, 0x49, 0xff, 0xe5, 0x82, 0xff, 0x49, 0xed, 0xff, 0xc8, 0xd4, 0xff, 0x47, 0xc4, 0xd6, 0x67, 0xc4, 0xa0, + 0x67, 0xc4, 0x51, 0x47, 0xc4, 0xd1, 0xc8, 0xd4, 0xff, 0x49, 0xed, 0xff, 0xe5, 0x8a, 0xff, 0xc7, 0xd9, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x27, 0xca, 0xff, 0xd4, 0xed, 0xff, 0x0e, 0xf4, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xd1, 0xff, 0x0d, 0xc4, 0xff, 0x79, 0xff, 0xff, 0x99, 0xff, 0xff, 0x79, 0xff, 0xff, 0x38, 0xff, 0xff, 0x8e, 0xac, 0xff, 0xe3, 0x59, 0xff, 0xc2, 0x51, 0xff, 0xa6, 0x72, 0xff, 0x96, 0xee, 0xff, 0x99, 0xff, 0xff, 0xb9, 0xff, 0xff, 0x99, 0xff, 0xff, 0xf7, 0xf6, 0xff, 0xc7, 0x72, 0xff, 0x81, 0x51, 0xff, 0xc2, 0x59, 0xff, 0x6d, 0xa4, 0xff, 0x18, 0xff, 0xff, 0x78, 0xff, 0xff, 0xb9, 0xff, 0xff, 0x79, 0xff, 0xff, 0x30, 0xbd, 0xff, 0xe3, 0x59, 0xff, 0xa1, 0x51, 0xff, 0x03, 0x5a, 0xff, 0x14, 0xde, 0xff, 0x9a, 0xff, 0xff, 0xf7, 0xfe, 0xff, 0xaa, 0xea, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xc9, 0xff, 0xa3, 0x49, 0xff, 0xe5, 0x82, 0xff, 0x49, 0xed, 0xff, 0xc8, 0xd4, 0xff, 0x47, 0xc4, 0xd6, 0x67, 0xc4, 0xa0, + 0x67, 0xc4, 0x51, 0x47, 0xc4, 0xd1, 0xc8, 0xd4, 0xff, 0x49, 0xed, 0xff, 0x46, 0xba, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xd9, 0xff, 0xe4, 0x71, 0xff, 0x4d, 0xa4, 0xff, 0x56, 0xee, 0xff, 0x8d, 0xeb, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xd9, 0xff, 0xb0, 0xd4, 0xff, 0x39, 0xff, 0xff, 0xf8, 0xf6, 0xff, 0x72, 0xc5, 0xff, 0x85, 0x6a, 0xff, 0x23, 0x62, 0xff, 0x64, 0x6a, 0xff, 0xa2, 0x51, 0xff, 0xcb, 0x93, 0xff, 0xd7, 0xee, 0xff, 0x39, 0xff, 0xff, 0xf8, 0xf6, 0xff, 0x0c, 0x9c, 0xff, 0xa2, 0x51, 0xff, 0x24, 0x62, 0xff, 0x23, 0x62, 0xff, 0x44, 0x62, 0xff, 0x51, 0xc5, 0xff, 0x18, 0xf7, 0xff, 0x39, 0xff, 0xff, 0xf4, 0xd5, 0xff, 0xa6, 0x6a, 0xff, 0xe2, 0x59, 0xff, 0x64, 0x6a, 0xff, 0xa2, 0x51, 0xff, 0x48, 0x83, 0xff, 0x76, 0xe6, 0xff, 0x39, 0xff, 0xff, 0x73, 0xed, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xc5, 0x91, 0xff, 0xe5, 0x82, 0xff, 0x49, 0xed, 0xff, 0xc8, 0xd4, 0xff, 0x47, 0xc4, 0xd6, 0x67, 0xc4, 0xa0, + 0x67, 0xc4, 0x51, 0x47, 0xc4, 0xd1, 0xc8, 0xd4, 0xff, 0xe9, 0xec, 0xff, 0xe7, 0xd9, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x26, 0xaa, 0xff, 0x03, 0x5a, 0xff, 0xe3, 0x59, 0xff, 0x28, 0x7b, 0xff, 0xab, 0x9b, 0xff, 0x27, 0xc2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xd9, 0xff, 0x2a, 0xa3, 0xff, 0xaa, 0x8b, 0xff, 0x45, 0x62, 0xff, 0xe3, 0x59, 0xff, 0x65, 0x6a, 0xff, 0x65, 0x6a, 0xff, 0x24, 0x62, 0xff, 0xc2, 0x51, 0xff, 0xe7, 0x72, 0xff, 0xec, 0x93, 0xff, 0x08, 0x7b, 0xff, 0xc2, 0x51, 0xff, 0x23, 0x62, 0xff, 0x65, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0xe3, 0x59, 0xff, 0x24, 0x62, 0xff, 0x8a, 0x8b, 0xff, 0xcb, 0x93, 0xff, 0x65, 0x62, 0xff, 0xc2, 0x51, 0xff, 0x44, 0x6a, 0xff, 0x65, 0x6a, 0xff, 0x44, 0x62, 0xff, 0xc2, 0x51, 0xff, 0xa6, 0x6a, 0xff, 0xcb, 0x93, 0xff, 0x28, 0x7b, 0xff, 0xe6, 0xb1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xc7, 0xc9, 0xff, 0xe5, 0x8a, 0xff, 0x49, 0xed, 0xff, 0xc8, 0xd4, 0xff, 0x47, 0xc4, 0xd6, 0x67, 0xc4, 0xa0, + 0x67, 0xc4, 0x51, 0x47, 0xc4, 0xd1, 0xc8, 0xd4, 0xff, 0x88, 0xeb, 0xff, 0xc7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xd1, 0xff, 0x44, 0x6a, 0xff, 0x44, 0x62, 0xff, 0x24, 0x62, 0xff, 0xa2, 0x49, 0xff, 0x61, 0x49, 0xff, 0xc3, 0x59, 0xff, 0x06, 0xba, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xc7, 0xd1, 0xff, 0xa3, 0x71, 0xff, 0xe3, 0x59, 0xff, 0x45, 0x62, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x65, 0x6a, 0xff, 0x44, 0x62, 0xff, 0xa2, 0x51, 0xff, 0x61, 0x49, 0xff, 0xa2, 0x51, 0xff, 0x24, 0x62, 0xff, 0x65, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x45, 0x6a, 0xff, 0x03, 0x5a, 0xff, 0x81, 0x49, 0xff, 0x61, 0x49, 0xff, 0xe3, 0x59, 0xff, 0x45, 0x62, 0xff, 0x65, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x44, 0x62, 0xff, 0xc2, 0x51, 0xff, 0x61, 0x49, 0xff, 0xa2, 0x49, 0xff, 0x04, 0x6a, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xd9, 0xff, 0x86, 0xaa, 0xff, 0x29, 0xed, 0xff, 0xc8, 0xd4, 0xff, 0x47, 0xc4, 0xd6, 0x67, 0xc4, 0xa0, + 0x67, 0xc4, 0x51, 0x47, 0xc4, 0xd1, 0xa8, 0xd4, 0xff, 0x48, 0xe2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x26, 0x9a, 0xff, 0x44, 0x62, 0xff, 0x44, 0x62, 0xff, 0x44, 0x62, 0xff, 0x65, 0x6a, 0xff, 0x65, 0x62, 0xff, 0x65, 0x62, 0xff, 0x44, 0x6a, 0xff, 0x06, 0xc2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xd9, 0xff, 0x25, 0x8a, 0xff, 0x44, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x44, 0x6a, 0xff, 0x44, 0x6a, 0xff, 0x65, 0x6a, 0xff, 0x65, 0x6a, 0xff, 0x65, 0x62, 0xff, 0x44, 0x62, 0xff, 0x44, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x44, 0x6a, 0xff, 0x44, 0x6a, 0xff, 0x45, 0x6a, 0xff, 0x65, 0x62, 0xff, 0x65, 0x62, 0xff, 0x65, 0x6a, 0xff, 0x44, 0x6a, 0xff, 0x44, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x44, 0x6a, 0xff, 0x44, 0x62, 0xff, 0x64, 0x62, 0xff, 0x45, 0x62, 0xff, 0x65, 0x62, 0xff, 0x44, 0x62, 0xff, 0x06, 0xb2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x27, 0xca, 0xff, 0x29, 0xed, 0xff, 0xc8, 0xd4, 0xff, 0x47, 0xc4, 0xd6, 0x67, 0xc4, 0xa0, + 0x67, 0xc4, 0x51, 0x47, 0xc4, 0xd2, 0xc8, 0xdb, 0xff, 0x07, 0xe2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xd1, 0xff, 0x44, 0x6a, 0xff, 0x44, 0x62, 0xff, 0x44, 0x62, 0xff, 0x44, 0x62, 0xff, 0x44, 0x62, 0xff, 0x44, 0x62, 0xff, 0x44, 0x6a, 0xff, 0x64, 0x62, 0xff, 0x64, 0x6a, 0xff, 0x06, 0xc2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xd9, 0xff, 0x25, 0x8a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x62, 0xff, 0x64, 0x6a, 0xff, 0x44, 0x62, 0xff, 0x44, 0x62, 0xff, 0x44, 0x62, 0xff, 0x44, 0x62, 0xff, 0x45, 0x72, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x07, 0xda, 0xff, 0x68, 0xec, 0xff, 0xa8, 0xd4, 0xff, 0x47, 0xc4, 0xd6, 0x47, 0xc4, 0xa0, + 0x47, 0xc4, 0x51, 0x47, 0xc4, 0xd2, 0x08, 0xdb, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x06, 0xb2, 0xff, 0x44, 0x62, 0xff, 0x44, 0x62, 0xff, 0x44, 0x62, 0xff, 0x44, 0x62, 0xff, 0x44, 0x62, 0xff, 0x44, 0x62, 0xff, 0x44, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x06, 0xc2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xd9, 0xff, 0x25, 0x8a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x44, 0x6a, 0xff, 0x44, 0x62, 0xff, 0x44, 0x62, 0xff, 0x44, 0x62, 0xff, 0x44, 0x62, 0xff, 0x44, 0x62, 0xff, 0xe6, 0xc1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xa8, 0xeb, 0xff, 0xa8, 0xd4, 0xff, 0x47, 0xc4, 0xd6, 0x47, 0xc4, 0xa0, + 0x47, 0xc4, 0x51, 0xe7, 0xc3, 0xd7, 0x67, 0xe2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x25, 0x82, 0xff, 0x44, 0x62, 0xff, 0x44, 0x62, 0xff, 0x44, 0x62, 0xff, 0x44, 0x62, 0xff, 0x44, 0x62, 0xff, 0x44, 0x62, 0xff, 0x44, 0x6a, 0xff, 0x44, 0x6a, 0xff, 0x44, 0x6a, 0xff, 0x44, 0x6a, 0xff, 0x44, 0x6a, 0xff, 0x06, 0xc2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xd9, 0xff, 0x25, 0x8a, 0xff, 0x44, 0x6a, 0xff, 0x44, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x44, 0x6a, 0xff, 0x44, 0x6a, 0xff, 0x44, 0x6a, 0xff, 0x44, 0x6a, 0xff, 0x44, 0x6a, 0xff, 0x44, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x44, 0x6a, 0xff, 0x44, 0x6a, 0xff, 0x44, 0x6a, 0xff, 0x44, 0x6a, 0xff, 0x44, 0x6a, 0xff, 0x44, 0x62, 0xff, 0x44, 0x62, 0xff, 0x44, 0x62, 0xff, 0x44, 0x62, 0xff, 0x44, 0x62, 0xff, 0x25, 0x92, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe8, 0xe2, 0xff, 0x68, 0xd4, 0xff, 0x47, 0xc4, 0xd6, 0x47, 0xc4, 0xa0, + 0x47, 0xc4, 0x51, 0x67, 0xcb, 0xe1, 0x27, 0xe2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xd9, 0xff, 0x44, 0x6a, 0xff, 0x44, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x65, 0x6a, 0xff, 0x06, 0xc2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xd9, 0xff, 0x45, 0x8a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x45, 0x72, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x88, 0xe2, 0xff, 0xa8, 0xdb, 0xff, 0x47, 0xc4, 0xd6, 0x47, 0xc4, 0xa0, + 0x67, 0xc4, 0x51, 0xe7, 0xd2, 0xea, 0x07, 0xe2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xc6, 0xb9, 0xff, 0xc4, 0x49, 0xff, 0xc4, 0x49, 0xff, 0xc4, 0x51, 0xff, 0xc4, 0x51, 0xff, 0xc3, 0x51, 0xff, 0xe3, 0x51, 0xff, 0xe3, 0x51, 0xff, 0xc4, 0x51, 0xff, 0xc4, 0x51, 0xff, 0xc4, 0x51, 0xff, 0xc4, 0x51, 0xff, 0xc4, 0x51, 0xff, 0xc4, 0x51, 0xff, 0xe4, 0x51, 0xff, 0xe6, 0xb9, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xd1, 0xff, 0xc5, 0x79, 0xff, 0xe4, 0x51, 0xff, 0xe4, 0x51, 0xff, 0xe4, 0x51, 0xff, 0xc4, 0x51, 0xff, 0xc4, 0x51, 0xff, 0xc4, 0x51, 0xff, 0xc4, 0x51, 0xff, 0xc4, 0x51, 0xff, 0xc4, 0x51, 0xff, 0xe4, 0x51, 0xff, 0xe4, 0x51, 0xff, 0xe4, 0x51, 0xff, 0xc4, 0x51, 0xff, 0xc4, 0x51, 0xff, 0xc4, 0x51, 0xff, 0xc4, 0x51, 0xff, 0xc4, 0x51, 0xff, 0xe3, 0x51, 0xff, 0xe3, 0x51, 0xff, 0xc3, 0x51, 0xff, 0xc4, 0x51, 0xff, 0xc4, 0x51, 0xff, 0xc4, 0x51, 0xff, 0xc7, 0xc9, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x47, 0xe2, 0xff, 0x28, 0xdb, 0xff, 0x47, 0xc4, 0xd6, 0x47, 0xc4, 0xa0, + 0x67, 0xc4, 0x51, 0x87, 0xda, 0xf1, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x26, 0xaa, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x65, 0x6a, 0xff, 0x65, 0x6a, 0xff, 0x65, 0x6a, 0xff, 0x85, 0x6a, 0xff, 0x85, 0x6a, 0xff, 0x85, 0x6a, 0xff, 0x85, 0x6a, 0xff, 0x85, 0x6a, 0xff, 0x85, 0x6a, 0xff, 0x85, 0x6a, 0xff, 0x85, 0x6a, 0xff, 0x85, 0x6a, 0xff, 0x85, 0x72, 0xff, 0x06, 0xc2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xd1, 0xff, 0x45, 0x92, 0xff, 0x85, 0x6a, 0xff, 0x85, 0x6a, 0xff, 0x85, 0x6a, 0xff, 0x85, 0x6a, 0xff, 0x85, 0x6a, 0xff, 0x85, 0x6a, 0xff, 0x85, 0x6a, 0xff, 0x85, 0x6a, 0xff, 0x85, 0x6a, 0xff, 0x85, 0x6a, 0xff, 0x85, 0x6a, 0xff, 0x85, 0x6a, 0xff, 0x85, 0x6a, 0xff, 0x85, 0x6a, 0xff, 0x85, 0x6a, 0xff, 0x85, 0x6a, 0xff, 0x85, 0x6a, 0xff, 0x85, 0x6a, 0xff, 0x65, 0x6a, 0xff, 0x65, 0x6a, 0xff, 0x65, 0x6a, 0xff, 0x65, 0x72, 0xff, 0x06, 0xba, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x07, 0xe2, 0xff, 0xc7, 0xe2, 0xff, 0x47, 0xc4, 0xd6, 0x47, 0xc4, 0xa0, + 0x47, 0xc4, 0x51, 0x47, 0xda, 0xf5, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe8, 0xe3, 0xff, 0x29, 0xed, 0xff, 0x29, 0xed, 0xff, 0x29, 0xed, 0xff, 0x29, 0xed, 0xff, 0x29, 0xed, 0xff, 0x29, 0xed, 0xff, 0x29, 0xed, 0xff, 0x29, 0xed, 0xff, 0x29, 0xed, 0xff, 0x29, 0xed, 0xff, 0x29, 0xed, 0xff, 0x29, 0xed, 0xff, 0x29, 0xed, 0xff, 0x29, 0xed, 0xff, 0x29, 0xed, 0xff, 0x09, 0xed, 0xff, 0xe8, 0xe2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x47, 0xe2, 0xff, 0x28, 0xec, 0xff, 0x29, 0xed, 0xff, 0x29, 0xed, 0xff, 0x29, 0xed, 0xff, 0x29, 0xed, 0xff, 0x29, 0xed, 0xff, 0x29, 0xed, 0xff, 0x29, 0xed, 0xff, 0x29, 0xed, 0xff, 0x29, 0xed, 0xff, 0x29, 0xed, 0xff, 0x29, 0xed, 0xff, 0x29, 0xed, 0xff, 0x29, 0xed, 0xff, 0x29, 0xed, 0xff, 0x29, 0xed, 0xff, 0x29, 0xed, 0xff, 0x29, 0xed, 0xff, 0x29, 0xed, 0xff, 0x29, 0xed, 0xff, 0x29, 0xed, 0xff, 0x29, 0xed, 0xff, 0x88, 0xe3, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x67, 0xe2, 0xff, 0x47, 0xc4, 0xd6, 0x47, 0xc4, 0xa0, + 0x47, 0xc4, 0x51, 0x27, 0xe2, 0xf9, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x69, 0xf4, 0xff, 0x69, 0xf5, 0xff, 0x69, 0xf5, 0xff, 0x69, 0xf5, 0xff, 0x69, 0xf5, 0xff, 0x69, 0xf5, 0xff, 0x69, 0xf5, 0xff, 0x69, 0xf5, 0xff, 0x69, 0xf5, 0xff, 0x69, 0xf5, 0xff, 0x69, 0xf5, 0xff, 0x69, 0xf5, 0xff, 0x69, 0xf5, 0xff, 0x69, 0xf5, 0xff, 0x69, 0xf5, 0xff, 0x69, 0xf5, 0xff, 0x69, 0xf5, 0xff, 0x49, 0xf5, 0xff, 0xe8, 0xea, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x48, 0xe2, 0xff, 0x68, 0xf4, 0xff, 0x69, 0xf5, 0xff, 0x69, 0xf5, 0xff, 0x69, 0xf5, 0xff, 0x69, 0xf5, 0xff, 0x69, 0xf5, 0xff, 0x69, 0xf5, 0xff, 0x69, 0xf5, 0xff, 0x69, 0xf5, 0xff, 0x69, 0xf5, 0xff, 0x69, 0xf5, 0xff, 0x69, 0xf5, 0xff, 0x69, 0xf5, 0xff, 0x69, 0xf5, 0xff, 0x69, 0xf5, 0xff, 0x69, 0xf5, 0xff, 0x69, 0xf5, 0xff, 0x69, 0xf5, 0xff, 0x69, 0xf5, 0xff, 0x69, 0xf5, 0xff, 0x69, 0xf5, 0xff, 0x08, 0xec, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x47, 0xe2, 0xff, 0x47, 0xc4, 0xd6, 0x47, 0xc4, 0xa0, + 0x47, 0xc4, 0x51, 0x07, 0xe2, 0xfb, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x68, 0xe4, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0xc8, 0xe4, 0xff, 0xe8, 0xe2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x47, 0xe2, 0xff, 0x28, 0xe4, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe4, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x27, 0xe2, 0xff, 0x47, 0xc4, 0xd6, 0x47, 0xc4, 0xa0, + 0x47, 0xc4, 0x51, 0x07, 0xe2, 0xfc, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x68, 0xe4, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0xc8, 0xe4, 0xff, 0xe8, 0xe2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x47, 0xe2, 0xff, 0x28, 0xe4, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x28, 0xe4, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x07, 0xe2, 0xff, 0x47, 0xc4, 0xd6, 0x47, 0xc4, 0xa0, + 0x47, 0xc4, 0x51, 0x07, 0xe2, 0xfa, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x48, 0xe4, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0xc8, 0xe4, 0xff, 0xe8, 0xe2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x47, 0xe2, 0xff, 0x28, 0xe4, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe4, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x27, 0xe2, 0xff, 0x47, 0xc4, 0xd6, 0x47, 0xc4, 0xa0, + 0x47, 0xc4, 0x51, 0x27, 0xe2, 0xf8, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x08, 0xe4, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0xc8, 0xe4, 0xff, 0xe8, 0xe2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x27, 0xe2, 0xff, 0x28, 0xe4, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0xc8, 0xe3, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x47, 0xe2, 0xff, 0x47, 0xc4, 0xd6, 0x47, 0xc4, 0xa0, + 0x47, 0xc4, 0x51, 0x47, 0xda, 0xf4, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xc8, 0xe3, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x09, 0xe5, 0xff, 0x09, 0xe5, 0xff, 0x09, 0xe5, 0xff, 0x09, 0xe5, 0xff, 0x09, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x09, 0xe5, 0xff, 0x09, 0xe5, 0xff, 0x09, 0xe5, 0xff, 0x09, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0xc8, 0xe4, 0xff, 0xe8, 0xe2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x27, 0xe2, 0xff, 0x28, 0xe4, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x09, 0xe5, 0xff, 0x09, 0xe5, 0xff, 0x09, 0xe5, 0xff, 0x09, 0xe5, 0xff, 0x09, 0xe5, 0xff, 0x09, 0xe5, 0xff, 0x09, 0xe5, 0xff, 0x09, 0xe5, 0xff, 0x09, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x68, 0xe3, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x67, 0xda, 0xff, 0x47, 0xc4, 0xd6, 0x47, 0xc4, 0xa0, + 0x47, 0xc4, 0x51, 0xa7, 0xda, 0xef, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x48, 0xe3, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x09, 0xe5, 0xff, 0x09, 0xe5, 0xff, 0xe7, 0xe4, 0xff, 0xc6, 0xdc, 0xff, 0xc6, 0xdc, 0xff, 0xc6, 0xdc, 0xff, 0x08, 0xe5, 0xff, 0x09, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x09, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0xc7, 0xdc, 0xff, 0xc7, 0xdc, 0xff, 0xc6, 0xdc, 0xff, 0xc7, 0xdc, 0xff, 0x08, 0xe5, 0xff, 0x09, 0xe5, 0xff, 0xc8, 0xe4, 0xff, 0xe8, 0xe2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x27, 0xe2, 0xff, 0x28, 0xe4, 0xff, 0x09, 0xe5, 0xff, 0xe7, 0xe4, 0xff, 0xc6, 0xdc, 0xff, 0xc6, 0xdc, 0xff, 0xc7, 0xdc, 0xff, 0xc7, 0xdc, 0xff, 0xc7, 0xdc, 0xff, 0xc7, 0xdc, 0xff, 0xe7, 0xe4, 0xff, 0x08, 0xe5, 0xff, 0x09, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0xe8, 0xe4, 0xff, 0x08, 0xe3, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x07, 0xe2, 0xff, 0xc7, 0xda, 0xff, 0x47, 0xc4, 0xd6, 0x47, 0xc4, 0xa0, + 0x47, 0xbc, 0x51, 0xe7, 0xd2, 0xe9, 0x07, 0xe2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xa8, 0xe2, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x09, 0xe5, 0xff, 0xe8, 0xe4, 0xff, 0xa6, 0xdc, 0xff, 0xc7, 0xdc, 0xff, 0xe7, 0xe4, 0xff, 0xc6, 0xdc, 0xff, 0xa6, 0xdc, 0xff, 0x08, 0xe5, 0xff, 0x29, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x09, 0xe5, 0xff, 0xe8, 0xe4, 0xff, 0xc6, 0xdc, 0xff, 0xc7, 0xdc, 0xff, 0xc7, 0xdc, 0xff, 0xc6, 0xdc, 0xff, 0xe7, 0xe4, 0xff, 0x29, 0xe5, 0xff, 0x09, 0xe5, 0xff, 0xe9, 0xe4, 0xff, 0xc8, 0xe2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x27, 0xe2, 0xff, 0x28, 0xe4, 0xff, 0xc6, 0xdc, 0xff, 0xc6, 0xdc, 0xff, 0xc7, 0xdc, 0xff, 0xc6, 0xdc, 0xff, 0xc6, 0xdc, 0xff, 0xc7, 0xdc, 0xff, 0xc6, 0xdc, 0xff, 0x85, 0xdc, 0xff, 0x84, 0xdc, 0xff, 0xe8, 0xe4, 0xff, 0x29, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0xe8, 0xe4, 0xff, 0x67, 0xe2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x27, 0xe2, 0xff, 0x28, 0xd3, 0xff, 0x47, 0xc4, 0xd6, 0x47, 0xbc, 0xa0, + 0x47, 0xbc, 0x51, 0x67, 0xcb, 0xe0, 0x27, 0xe2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x27, 0xe2, 0xff, 0xe8, 0xe4, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0xe8, 0xe4, 0xff, 0xe7, 0xe4, 0xff, 0x94, 0xf6, 0xff, 0x5b, 0xff, 0xff, 0x39, 0xff, 0xff, 0x5a, 0xff, 0xff, 0xef, 0xed, 0xff, 0xa6, 0xdc, 0xff, 0x08, 0xe5, 0xff, 0x29, 0xe5, 0xff, 0xc6, 0xdc, 0xff, 0x6b, 0xe5, 0xff, 0x19, 0xff, 0xff, 0x5a, 0xff, 0xff, 0x5a, 0xff, 0xff, 0x39, 0xff, 0xff, 0x4a, 0xe5, 0xff, 0xa5, 0xdc, 0xff, 0x29, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x65, 0xdc, 0xff, 0x2a, 0xeb, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x27, 0xe2, 0xff, 0x51, 0xed, 0xff, 0x7b, 0xff, 0xff, 0x39, 0xff, 0xff, 0x39, 0xff, 0xff, 0x39, 0xff, 0xff, 0x39, 0xff, 0xff, 0x19, 0xff, 0xff, 0xf7, 0xf6, 0xff, 0xad, 0xed, 0xff, 0x85, 0xdc, 0xff, 0xe8, 0xe4, 0xff, 0x09, 0xe5, 0xff, 0x88, 0xe4, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x87, 0xe2, 0xff, 0xa7, 0xd3, 0xff, 0x47, 0xc4, 0xd6, 0x47, 0xbc, 0xa0, + 0x47, 0xbc, 0x51, 0x07, 0xc4, 0xd6, 0x67, 0xe2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x07, 0xe2, 0xff, 0x08, 0xe4, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0xc6, 0xdc, 0xff, 0x6c, 0xe5, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x5a, 0xff, 0xff, 0xc6, 0xdc, 0xff, 0xc6, 0xdc, 0xff, 0x2a, 0xe5, 0xff, 0x85, 0xdc, 0xff, 0xce, 0xed, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x53, 0xf6, 0xff, 0x43, 0xdc, 0xff, 0x08, 0xe5, 0xff, 0xa6, 0xdc, 0xff, 0xe7, 0xe4, 0xff, 0x7c, 0xff, 0xff, 0xaf, 0xeb, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x6a, 0xea, 0xff, 0x59, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x31, 0xee, 0xff, 0xa6, 0xdc, 0xff, 0x09, 0xe5, 0xff, 0xc8, 0xe3, 0xff, 0xc7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe8, 0xda, 0xff, 0x27, 0xcc, 0xff, 0x47, 0xc4, 0xd6, 0x47, 0xbc, 0xa0, + 0x47, 0xbc, 0x51, 0x47, 0xc4, 0xd2, 0x07, 0xdb, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe8, 0xe2, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0xa5, 0xdc, 0xff, 0x31, 0xee, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xde, 0xff, 0xff, 0x6b, 0xe5, 0xff, 0x85, 0xdc, 0xff, 0x2a, 0xe5, 0xff, 0x85, 0xdc, 0xff, 0xae, 0xed, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x39, 0xff, 0xff, 0xa5, 0xdc, 0xff, 0xc6, 0xdc, 0xff, 0x64, 0xdc, 0xff, 0x8d, 0xed, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xaf, 0xeb, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x8a, 0xea, 0xff, 0x59, 0xfe, 0xff, 0x7c, 0xff, 0xff, 0x5a, 0xff, 0xff, 0x3a, 0xff, 0xff, 0x9c, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xdd, 0xff, 0xff, 0x2a, 0xe5, 0xff, 0xa6, 0xdc, 0xff, 0xa8, 0xe2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x68, 0xdb, 0xff, 0x67, 0xcc, 0xff, 0x47, 0xc4, 0xd6, 0x47, 0xbc, 0xa0, + 0x47, 0xbc, 0x51, 0x47, 0xc4, 0xd1, 0xc7, 0xd3, 0xff, 0x07, 0xe2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x27, 0xe2, 0xff, 0xc8, 0xe4, 0xff, 0x08, 0xe5, 0xff, 0xe8, 0xe4, 0xff, 0xa6, 0xdc, 0xff, 0xd6, 0xf6, 0xff, 0xff, 0xff, 0xff, 0xbd, 0xff, 0xff, 0x39, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x31, 0xee, 0xff, 0x84, 0xdc, 0xff, 0x09, 0xe5, 0xff, 0xa5, 0xdc, 0xff, 0xae, 0xed, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xdf, 0xff, 0xff, 0x4b, 0xe5, 0xff, 0x64, 0xdc, 0xff, 0x84, 0xdc, 0xff, 0x74, 0xf6, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xdf, 0xff, 0xff, 0xae, 0xeb, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x8a, 0xea, 0xff, 0x6a, 0xe4, 0xff, 0x85, 0xdc, 0xff, 0xc6, 0xdc, 0xff, 0xe8, 0xe4, 0xff, 0x7b, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xce, 0xed, 0xff, 0x05, 0xdc, 0xff, 0xc7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x47, 0xe2, 0xff, 0x28, 0xd4, 0xff, 0x67, 0xcc, 0xff, 0x47, 0xc4, 0xd6, 0x47, 0xbc, 0xa0, + 0x47, 0xbc, 0x51, 0x47, 0xc4, 0xd1, 0x67, 0xcc, 0xff, 0x47, 0xe2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x28, 0xe3, 0xff, 0x08, 0xe5, 0xff, 0xe7, 0xe4, 0xff, 0x09, 0xe5, 0xff, 0x7b, 0xff, 0xff, 0xff, 0xff, 0xff, 0x18, 0xff, 0xff, 0xad, 0xed, 0xff, 0x9c, 0xff, 0xff, 0xff, 0xff, 0xff, 0xd6, 0xf6, 0xff, 0x85, 0xdc, 0xff, 0xe8, 0xe4, 0xff, 0xa5, 0xdc, 0xff, 0xad, 0xed, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x39, 0xff, 0xff, 0x9c, 0xff, 0xff, 0xff, 0xff, 0xff, 0x11, 0xee, 0xff, 0x21, 0xdc, 0xff, 0xc6, 0xdc, 0xff, 0x5a, 0xff, 0xff, 0xff, 0xff, 0xff, 0x18, 0xff, 0xff, 0x9c, 0xff, 0xff, 0xff, 0xff, 0xff, 0x8d, 0xeb, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x48, 0xe2, 0xff, 0xa4, 0xdb, 0xff, 0xa5, 0xdc, 0xff, 0x63, 0xdc, 0xff, 0x18, 0xf7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xcf, 0xed, 0xff, 0xe6, 0xe2, 0xff, 0xc7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xc8, 0xe2, 0xff, 0xa8, 0xd4, 0xff, 0x67, 0xcc, 0xff, 0x47, 0xc4, 0xd6, 0x47, 0xbc, 0xa0, + 0x47, 0xbc, 0x51, 0x47, 0xc4, 0xd1, 0x67, 0xcc, 0xff, 0x68, 0xdb, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x27, 0xe2, 0xff, 0xa9, 0xe4, 0xff, 0xa6, 0xdc, 0xff, 0x8c, 0xe5, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x95, 0xf6, 0xff, 0x85, 0xdc, 0xff, 0x5b, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7b, 0xff, 0xff, 0xe7, 0xdc, 0xff, 0xc7, 0xdc, 0xff, 0xa6, 0xdc, 0xff, 0xad, 0xed, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xb5, 0xf6, 0xff, 0xb6, 0xf6, 0xff, 0xff, 0xff, 0xff, 0x18, 0xf7, 0xff, 0x22, 0xd4, 0xff, 0x29, 0xe5, 0xff, 0xff, 0xff, 0xff, 0xbd, 0xff, 0xff, 0x10, 0xee, 0xff, 0x5a, 0xff, 0xff, 0xff, 0xff, 0xff, 0x39, 0xff, 0xff, 0xa6, 0xe2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x27, 0xe2, 0xff, 0x07, 0xe4, 0xff, 0x64, 0xdc, 0xff, 0xf7, 0xf6, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x2d, 0xed, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x07, 0xe2, 0xff, 0xc8, 0xdb, 0xff, 0xa8, 0xd4, 0xff, 0x67, 0xcc, 0xff, 0x47, 0xc4, 0xd6, 0x47, 0xbc, 0xa0, + 0x47, 0xbc, 0x51, 0x47, 0xc4, 0xd1, 0x67, 0xc4, 0xff, 0x68, 0xd4, 0xff, 0x27, 0xe2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x28, 0xe3, 0xff, 0xa5, 0xdc, 0xff, 0x31, 0xee, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x32, 0xee, 0xff, 0x00, 0xd4, 0xff, 0x18, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x8c, 0xe5, 0xff, 0x85, 0xdc, 0xff, 0xa5, 0xdc, 0xff, 0xae, 0xed, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x74, 0xf6, 0xff, 0xad, 0xed, 0xff, 0xff, 0xff, 0xff, 0xde, 0xff, 0xff, 0x84, 0xdc, 0xff, 0xce, 0xed, 0xff, 0xff, 0xff, 0xff, 0x18, 0xff, 0xff, 0x6b, 0xe5, 0xff, 0x7b, 0xff, 0xff, 0xff, 0xff, 0xff, 0x5a, 0xff, 0xff, 0x64, 0xdc, 0xff, 0xc7, 0xe2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x27, 0xe2, 0xff, 0xa4, 0xdb, 0xff, 0x39, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe9, 0xe2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x88, 0xe2, 0xff, 0xc8, 0xdc, 0xff, 0xa8, 0xd4, 0xff, 0x67, 0xc4, 0xff, 0x47, 0xc4, 0xd6, 0x47, 0xbc, 0xa0, + 0x47, 0xbc, 0x51, 0x47, 0xc4, 0xd1, 0x67, 0xc4, 0xff, 0xa8, 0xd4, 0xff, 0x48, 0xe3, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x07, 0xe2, 0xff, 0x07, 0xe4, 0xff, 0xf8, 0xf6, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xad, 0xe5, 0xff, 0xe0, 0xd3, 0xff, 0x73, 0xf6, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x32, 0xee, 0xff, 0x64, 0xdc, 0xff, 0x84, 0xdc, 0xff, 0xae, 0xed, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x94, 0xf6, 0xff, 0xc7, 0xdc, 0xff, 0xbd, 0xff, 0xff, 0xff, 0xff, 0xff, 0x8c, 0xe5, 0xff, 0x94, 0xf6, 0xff, 0xff, 0xff, 0xff, 0x73, 0xf6, 0xff, 0xc7, 0xdc, 0xff, 0xbd, 0xff, 0xff, 0xff, 0xff, 0xff, 0x5a, 0xff, 0xff, 0x84, 0xdc, 0xff, 0xa7, 0xdc, 0xff, 0xae, 0xeb, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x69, 0xe2, 0xff, 0x59, 0xfe, 0xff, 0xff, 0xff, 0xff, 0x96, 0xf5, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xc8, 0xe3, 0xff, 0xc8, 0xdc, 0xff, 0xa8, 0xd4, 0xff, 0x67, 0xc4, 0xff, 0x47, 0xc4, 0xd6, 0x47, 0xbc, 0xa0, + 0x27, 0xbc, 0x51, 0x47, 0xbc, 0xd1, 0x67, 0xc4, 0xff, 0xa8, 0xd4, 0xff, 0xa8, 0xdc, 0xff, 0x27, 0xe2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x88, 0xe2, 0xff, 0xda, 0xfe, 0xff, 0xff, 0xff, 0xff, 0x7b, 0xff, 0xff, 0x64, 0xdc, 0xff, 0x80, 0xd3, 0xff, 0x4a, 0xe5, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x18, 0xf7, 0xff, 0x85, 0xdc, 0xff, 0x43, 0xdc, 0xff, 0xce, 0xed, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xd6, 0xf6, 0xff, 0x22, 0xd4, 0xff, 0xf8, 0xf6, 0xff, 0xff, 0xff, 0xff, 0x5a, 0xff, 0xff, 0xbd, 0xff, 0xff, 0xff, 0xff, 0xff, 0x6b, 0xe5, 0xff, 0xa6, 0xdc, 0xff, 0xde, 0xff, 0xff, 0xff, 0xff, 0xff, 0x5a, 0xff, 0xff, 0x64, 0xdc, 0xff, 0xc7, 0xdc, 0xff, 0x3a, 0xff, 0xff, 0xcf, 0xeb, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xeb, 0xea, 0xff, 0x96, 0xf5, 0xff, 0x69, 0xea, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x87, 0xe2, 0xff, 0xe8, 0xdc, 0xff, 0xc8, 0xdc, 0xff, 0xa8, 0xd4, 0xff, 0x67, 0xc4, 0xff, 0x47, 0xbc, 0xd6, 0x27, 0xbc, 0xa0, + 0x27, 0xbc, 0x51, 0x47, 0xbc, 0xd1, 0x67, 0xc4, 0xff, 0xa8, 0xd4, 0xff, 0xc8, 0xdc, 0xff, 0xe8, 0xe3, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xef, 0xeb, 0xff, 0xbe, 0xff, 0xff, 0x39, 0xff, 0xff, 0x4b, 0xe5, 0xff, 0x29, 0xe5, 0xff, 0x8d, 0xe5, 0xff, 0xbd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xbd, 0xff, 0xff, 0x29, 0xe5, 0xff, 0x21, 0xd4, 0xff, 0xce, 0xed, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf7, 0xf6, 0xff, 0xe0, 0xd3, 0xff, 0x10, 0xee, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xde, 0xff, 0xff, 0xa6, 0xdc, 0xff, 0xc7, 0xdc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x5a, 0xff, 0xff, 0x84, 0xdc, 0xff, 0xc7, 0xdc, 0xff, 0x7c, 0xff, 0xff, 0x9e, 0xff, 0xff, 0xcf, 0xeb, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x48, 0xe4, 0xff, 0xe8, 0xdc, 0xff, 0xc8, 0xdc, 0xff, 0xa8, 0xd4, 0xff, 0x67, 0xc4, 0xff, 0x47, 0xbc, 0xd6, 0x27, 0xbc, 0xa0, + 0x27, 0xbc, 0x51, 0x47, 0xbc, 0xd1, 0x67, 0xc4, 0xff, 0xa8, 0xd4, 0xff, 0xc8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0x08, 0xe3, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe8, 0xe1, 0xff, 0x51, 0xf4, 0xff, 0xbe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xce, 0xed, 0xff, 0xe0, 0xd3, 0xff, 0xae, 0xe5, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x18, 0xf7, 0xff, 0x01, 0xd4, 0xff, 0x2a, 0xe5, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x39, 0xff, 0xff, 0x01, 0xd4, 0xff, 0x29, 0xe5, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x5a, 0xff, 0xff, 0x84, 0xdc, 0xff, 0xc7, 0xdc, 0xff, 0x7c, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7d, 0xff, 0xff, 0x2a, 0xe3, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x68, 0xe3, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xc8, 0xdc, 0xff, 0xa8, 0xd4, 0xff, 0x67, 0xc4, 0xff, 0x47, 0xbc, 0xd6, 0x27, 0xbc, 0xa0, + 0x47, 0xbc, 0x51, 0x47, 0xbc, 0xd1, 0x67, 0xc4, 0xff, 0xa8, 0xd4, 0xff, 0xc8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xa8, 0xdc, 0xff, 0x67, 0xe2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe8, 0xe1, 0xff, 0x51, 0xf4, 0xff, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x94, 0xf6, 0xff, 0xe0, 0xd3, 0xff, 0x8d, 0xe5, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x18, 0xff, 0xff, 0x64, 0xdc, 0xff, 0x84, 0xdc, 0xff, 0xf8, 0xf6, 0xff, 0xff, 0xff, 0xff, 0xde, 0xff, 0xff, 0xf0, 0xed, 0xff, 0xe0, 0xd3, 0xff, 0x4b, 0xe5, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x5a, 0xff, 0xff, 0x84, 0xdc, 0xff, 0xc7, 0xdc, 0xff, 0x7c, 0xff, 0xff, 0xff, 0xff, 0xff, 0xdf, 0xff, 0xff, 0xc9, 0xdc, 0xff, 0xc5, 0xda, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xa7, 0xe2, 0xff, 0xc8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xc8, 0xdc, 0xff, 0xa8, 0xd4, 0xff, 0x67, 0xc4, 0xff, 0x27, 0xbc, 0xd6, 0x47, 0xbc, 0xa0, + 0x47, 0xbc, 0x51, 0x47, 0xbc, 0xd1, 0x67, 0xc4, 0xff, 0xa8, 0xd4, 0xff, 0xc8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0x69, 0xe4, 0xff, 0x07, 0xe2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe9, 0xe2, 0xff, 0x6e, 0xed, 0xff, 0x6b, 0xe5, 0xff, 0x53, 0xee, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x5a, 0xff, 0xff, 0x22, 0xd4, 0xff, 0x6b, 0xe5, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x18, 0xf7, 0xff, 0xa6, 0xdc, 0xff, 0xa6, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0x4b, 0xe5, 0xff, 0x2a, 0xe5, 0xff, 0xe8, 0xdc, 0xff, 0x85, 0xdc, 0xff, 0x6b, 0xe5, 0xff, 0xde, 0xff, 0xff, 0xff, 0xff, 0xff, 0x5a, 0xff, 0xff, 0x84, 0xdc, 0xff, 0xc7, 0xdc, 0xff, 0x7c, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x6c, 0xe5, 0xff, 0x06, 0xdc, 0xff, 0x28, 0xe2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x48, 0xe2, 0xff, 0x88, 0xe4, 0xff, 0x08, 0xdd, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xc8, 0xdc, 0xff, 0xa8, 0xcc, 0xff, 0x67, 0xc4, 0xff, 0x27, 0xbc, 0xd6, 0x47, 0xbc, 0xa0, + 0x47, 0xbc, 0x51, 0x47, 0xbc, 0xd1, 0x67, 0xc4, 0xff, 0xa8, 0xd4, 0xff, 0xc8, 0xd4, 0xff, 0xe8, 0xdc, 0xff, 0x08, 0xdd, 0xff, 0x09, 0xdd, 0xff, 0xa5, 0xdb, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x47, 0xe2, 0xff, 0x43, 0xdb, 0xff, 0xc6, 0xdc, 0xff, 0xbd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xde, 0xff, 0xff, 0xc7, 0xdc, 0xff, 0x2a, 0xe5, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x18, 0xf7, 0xff, 0xa6, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xc7, 0xdc, 0xff, 0x64, 0xdc, 0xff, 0x85, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0x85, 0xdc, 0xff, 0x4b, 0xe5, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0x5a, 0xff, 0xff, 0x64, 0xdc, 0xff, 0xc7, 0xdc, 0xff, 0x9c, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0a, 0xe4, 0xff, 0x47, 0xe2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x07, 0xe2, 0xff, 0x48, 0xe4, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xc8, 0xd4, 0xff, 0xa8, 0xd4, 0xff, 0x67, 0xc4, 0xff, 0x27, 0xbc, 0xd6, 0x47, 0xbc, 0xa0, + 0x47, 0xbc, 0x51, 0x47, 0xbc, 0xd1, 0x67, 0xc4, 0xff, 0xa8, 0xd4, 0xff, 0xc8, 0xd4, 0xff, 0xe8, 0xdc, 0xff, 0x09, 0xdd, 0xff, 0xc7, 0xdc, 0xff, 0x64, 0xdc, 0xff, 0x52, 0xed, 0xff, 0x08, 0xe2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x07, 0xe2, 0xff, 0xc7, 0xe2, 0xff, 0x56, 0xf6, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x8d, 0xe5, 0xff, 0x09, 0xe5, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x18, 0xff, 0xff, 0x85, 0xdc, 0xff, 0xc7, 0xdc, 0xff, 0x09, 0xe5, 0xff, 0x09, 0xdd, 0xff, 0x09, 0xe5, 0xff, 0x09, 0xe5, 0xff, 0x65, 0xdc, 0xff, 0x4a, 0xe5, 0xff, 0xde, 0xff, 0xff, 0xff, 0xff, 0xff, 0x5a, 0xff, 0xff, 0x64, 0xdc, 0xff, 0xa7, 0xdc, 0xff, 0x7b, 0xff, 0xff, 0xdb, 0xfe, 0xff, 0xcf, 0xeb, 0xff, 0x07, 0xe2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x27, 0xe2, 0xff, 0x48, 0xe4, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xc8, 0xd4, 0xff, 0xa8, 0xd4, 0xff, 0x67, 0xc4, 0xff, 0x27, 0xbc, 0xd6, 0x47, 0xbc, 0xa0, + 0x27, 0xbc, 0x51, 0x47, 0xbc, 0xd1, 0x67, 0xc4, 0xff, 0xa8, 0xcc, 0xff, 0xc8, 0xd4, 0xff, 0xe8, 0xdc, 0xff, 0xe9, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xc7, 0xdc, 0xff, 0xad, 0xe5, 0xff, 0xce, 0xec, 0xff, 0x48, 0xe2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x28, 0xe2, 0xff, 0xcc, 0xeb, 0xff, 0x4f, 0xed, 0xff, 0x4b, 0xe5, 0xff, 0xe8, 0xdc, 0xff, 0xcf, 0xed, 0xff, 0x11, 0xee, 0xff, 0x6c, 0xe5, 0xff, 0xc7, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0x09, 0xdd, 0xff, 0xe7, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xce, 0xe5, 0xff, 0x11, 0xee, 0xff, 0x8d, 0xe5, 0xff, 0xc7, 0xdc, 0xff, 0x27, 0xdc, 0xff, 0x29, 0xe3, 0xff, 0x08, 0xe2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x48, 0xe2, 0xff, 0x48, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xc8, 0xd4, 0xff, 0xa8, 0xcc, 0xff, 0x67, 0xc4, 0xff, 0x27, 0xbc, 0xd6, 0x47, 0xbc, 0xa0, + 0x26, 0xc4, 0x51, 0x47, 0xbc, 0xd1, 0x67, 0xc4, 0xff, 0xa8, 0xcc, 0xff, 0xc8, 0xd4, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xe9, 0xdc, 0xff, 0x09, 0xdd, 0xff, 0xc7, 0xdc, 0xff, 0x85, 0xdc, 0xff, 0x06, 0xdc, 0xff, 0x67, 0xe2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xc8, 0xe2, 0xff, 0xc8, 0xe3, 0xff, 0x46, 0xdc, 0xff, 0x65, 0xdc, 0xff, 0xa7, 0xdc, 0xff, 0xe9, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xe9, 0xdc, 0xff, 0xc8, 0xdc, 0xff, 0x86, 0xdc, 0xff, 0x26, 0xdc, 0xff, 0x67, 0xe3, 0xff, 0xa8, 0xe2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xa7, 0xe2, 0xff, 0x88, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xc8, 0xd4, 0xff, 0xa8, 0xcc, 0xff, 0x67, 0xc4, 0xff, 0x27, 0xbc, 0xd6, 0x27, 0xbc, 0xa0, + 0x27, 0xbc, 0x53, 0x27, 0xbc, 0xd1, 0x67, 0xc4, 0xff, 0x88, 0xcc, 0xff, 0xc8, 0xd4, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xa8, 0xdc, 0xff, 0x08, 0xe3, 0xff, 0x07, 0xe2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x87, 0xe2, 0xff, 0x08, 0xe3, 0xff, 0x68, 0xe3, 0xff, 0xc8, 0xe3, 0xff, 0xe8, 0xe3, 0xff, 0x08, 0xe4, 0xff, 0xe8, 0xe3, 0xff, 0xc8, 0xe3, 0xff, 0x68, 0xe3, 0xff, 0xe8, 0xe2, 0xff, 0x67, 0xe2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x07, 0xe2, 0xff, 0x48, 0xe3, 0xff, 0xc8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xc8, 0xd4, 0xff, 0xa8, 0xcc, 0xff, 0x67, 0xc4, 0xff, 0x27, 0xbc, 0xd7, 0x27, 0xbc, 0xa1, + 0x0d, 0x94, 0x5a, 0x48, 0xbc, 0xd7, 0x66, 0xcc, 0xff, 0xa8, 0xcc, 0xff, 0xc8, 0xd4, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0x08, 0xe4, 0xff, 0x67, 0xe2, 0xff, 0x07, 0xe2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x07, 0xe2, 0xff, 0xa8, 0xe2, 0xff, 0x48, 0xe4, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xc8, 0xd4, 0xff, 0xa8, 0xcc, 0xff, 0x67, 0xc4, 0xff, 0x47, 0xbc, 0xde, 0x47, 0xbc, 0xa9, + 0x49, 0xb4, 0x35, 0x47, 0xbc, 0xc1, 0x47, 0xc4, 0xff, 0x88, 0xcc, 0xff, 0xc8, 0xd4, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xc8, 0xdc, 0xff, 0x88, 0xe3, 0xff, 0x67, 0xe2, 0xff, 0x07, 0xe2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x07, 0xe2, 0xff, 0x87, 0xe2, 0xff, 0xa8, 0xe3, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xc8, 0xdc, 0xff, 0xc8, 0xd4, 0xff, 0x88, 0xcc, 0xff, 0x47, 0xc4, 0xff, 0x47, 0xbc, 0xc8, 0x47, 0xbc, 0x8b, + 0x00, 0x00, 0x00, 0x88, 0xab, 0x7f, 0x27, 0xbc, 0xff, 0xa7, 0xcc, 0xff, 0xa8, 0xd4, 0xff, 0xc8, 0xd4, 0xff, 0xc8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xa8, 0xdc, 0xff, 0xa8, 0xdb, 0xff, 0xa8, 0xe2, 0xff, 0x47, 0xe2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x47, 0xe2, 0xff, 0xc8, 0xe2, 0xff, 0xc8, 0xdb, 0xff, 0xc8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xc8, 0xdc, 0xff, 0xc8, 0xd4, 0xff, 0xa8, 0xd4, 0xff, 0xa7, 0xcc, 0xff, 0x27, 0xbc, 0xff, 0x89, 0xab, 0x84, 0x89, 0xab, 0x2b, + 0x00, 0x00, 0x00, 0x26, 0xc5, 0x19, 0x47, 0xc4, 0xcd, 0xe8, 0xbb, 0xff, 0x87, 0xcc, 0xff, 0xa8, 0xd4, 0xff, 0xa8, 0xd4, 0xff, 0xc8, 0xd4, 0xff, 0xc8, 0xd4, 0xff, 0xc8, 0xd4, 0xff, 0xc8, 0xd4, 0xff, 0xc8, 0xd4, 0xff, 0xc8, 0xd4, 0xff, 0xc8, 0xd4, 0xff, 0xc8, 0xd4, 0xff, 0xc8, 0xd4, 0xff, 0xc8, 0xd4, 0xff, 0xc8, 0xd4, 0xff, 0xc8, 0xd4, 0xff, 0xc8, 0xd4, 0xff, 0x08, 0xdc, 0xff, 0x68, 0xdb, 0xff, 0xc7, 0xe2, 0xff, 0x87, 0xe2, 0xff, 0x27, 0xe2, 0xff, 0x07, 0xe2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x07, 0xe2, 0xff, 0x47, 0xe2, 0xff, 0x87, 0xe2, 0xff, 0xc7, 0xe2, 0xff, 0x88, 0xdb, 0xff, 0x48, 0xdc, 0xff, 0xc8, 0xd4, 0xff, 0xc8, 0xd4, 0xff, 0xc8, 0xd4, 0xff, 0xc8, 0xd4, 0xff, 0xc8, 0xd4, 0xff, 0xc8, 0xd4, 0xff, 0xc8, 0xd4, 0xff, 0xc8, 0xd4, 0xff, 0xc8, 0xd4, 0xff, 0xc8, 0xd4, 0xff, 0xc8, 0xd4, 0xff, 0xc8, 0xd4, 0xff, 0xc8, 0xd4, 0xff, 0xa8, 0xd4, 0xff, 0xa8, 0xd4, 0xff, 0x88, 0xd4, 0xff, 0x87, 0xcc, 0xff, 0xe8, 0xbb, 0xff, 0x47, 0xc4, 0xcd, 0x46, 0xcd, 0x1a, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x85, 0xdd, 0x2d, 0xe8, 0xbb, 0xd4, 0x67, 0xc4, 0xff, 0x67, 0xc4, 0xff, 0x87, 0xcc, 0xff, 0x88, 0xcc, 0xff, 0x66, 0xcc, 0xff, 0x65, 0xcc, 0xff, 0x66, 0xcc, 0xff, 0x66, 0xcc, 0xff, 0x66, 0xcc, 0xff, 0x66, 0xcc, 0xff, 0x66, 0xcc, 0xff, 0x66, 0xcc, 0xff, 0x66, 0xcc, 0xff, 0x65, 0xd4, 0xff, 0x87, 0xcc, 0xff, 0x88, 0xcc, 0xff, 0x88, 0xcc, 0xff, 0x88, 0xcc, 0xff, 0x28, 0xd4, 0xff, 0xa8, 0xd3, 0xff, 0x07, 0xdb, 0xff, 0xc7, 0xda, 0xff, 0x67, 0xe2, 0xff, 0x47, 0xe2, 0xff, 0x27, 0xe2, 0xff, 0x07, 0xe2, 0xff, 0x27, 0xe2, 0xff, 0x47, 0xe2, 0xff, 0x87, 0xe2, 0xff, 0xe7, 0xda, 0xff, 0x27, 0xdb, 0xff, 0xc8, 0xd3, 0xff, 0x48, 0xcc, 0xff, 0x88, 0xcc, 0xff, 0x88, 0xcc, 0xff, 0x88, 0xcc, 0xff, 0xa8, 0xcc, 0xff, 0x87, 0xcc, 0xff, 0x65, 0xcc, 0xff, 0x66, 0xcc, 0xff, 0x66, 0xcc, 0xff, 0x66, 0xcc, 0xff, 0x66, 0xcc, 0xff, 0x66, 0xcc, 0xff, 0x66, 0xcc, 0xff, 0x66, 0xcc, 0xff, 0x65, 0xd4, 0xff, 0x66, 0xcc, 0xff, 0x88, 0xcc, 0xff, 0x87, 0xcc, 0xff, 0x67, 0xc4, 0xff, 0x67, 0xc4, 0xff, 0xe8, 0xbb, 0xd4, 0x85, 0xdd, 0x2d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x86, 0xc4, 0x19, 0xe8, 0xbb, 0x73, 0x28, 0xbc, 0xb4, 0x48, 0xbc, 0xc3, 0x25, 0xc4, 0xc2, 0x25, 0xc4, 0xac, 0x67, 0xc4, 0x87, 0x47, 0xc4, 0x8a, 0x47, 0xc4, 0x8f, 0x47, 0xc4, 0x8e, 0x47, 0xc4, 0x8e, 0x47, 0xc4, 0x8e, 0x47, 0xc4, 0x8f, 0x67, 0xc4, 0x89, 0x47, 0xc4, 0x8d, 0x24, 0xcc, 0xb1, 0x46, 0xc4, 0xbf, 0x68, 0xc4, 0xbb, 0x67, 0xc4, 0xbb, 0x67, 0xc4, 0xbb, 0x67, 0xc4, 0xbb, 0x67, 0xc4, 0xbb, 0x67, 0xc4, 0xbb, 0x67, 0xc4, 0xbb, 0x67, 0xc4, 0xbb, 0x67, 0xc4, 0xbb, 0x67, 0xc4, 0xbb, 0x67, 0xc4, 0xbb, 0x67, 0xc4, 0xbb, 0x67, 0xc4, 0xbb, 0x67, 0xc4, 0xbb, 0x67, 0xc4, 0xbb, 0x67, 0xc4, 0xbb, 0x67, 0xc4, 0xbb, 0x67, 0xc4, 0xbb, 0x67, 0xc4, 0xbb, 0x68, 0xc4, 0xbb, 0x47, 0xc4, 0xbe, 0x24, 0xc4, 0xb2, 0x47, 0xc4, 0x8f, 0x67, 0xc4, 0x89, 0x47, 0xc4, 0x8f, 0x47, 0xc4, 0x8e, 0x47, 0xc4, 0x8e, 0x47, 0xc4, 0x8e, 0x47, 0xc4, 0x8f, 0x67, 0xc4, 0x8b, 0x67, 0xc4, 0x86, 0x25, 0xc4, 0xaa, 0x25, 0xc4, 0xc2, 0x68, 0xbc, 0xc3, 0x48, 0xbc, 0xb4, 0xe8, 0xbb, 0x73, 0x86, 0xc4, 0x19, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0xc4, 0x04, 0x66, 0xbc, 0x0b, 0xa0, 0xaa, 0x03, 0x79, 0xad, 0x09, 0xd9, 0xad, 0x27, 0x97, 0xad, 0x23, 0xb7, 0xad, 0x1e, 0x77, 0xb5, 0x1f, 0x77, 0xb5, 0x1f, 0x77, 0xb5, 0x1f, 0xb7, 0xad, 0x1e, 0x97, 0xad, 0x24, 0x79, 0xa5, 0x1f, 0xcd, 0xb4, 0x0a, 0x80, 0xcb, 0x09, 0xa9, 0xbc, 0x07, 0xa9, 0xbc, 0x07, 0xa9, 0xbc, 0x07, 0xa9, 0xbc, 0x07, 0xa9, 0xbc, 0x07, 0xa9, 0xbc, 0x07, 0xa9, 0xbc, 0x07, 0xa9, 0xbc, 0x07, 0xa9, 0xbc, 0x07, 0xa9, 0xbc, 0x07, 0xa9, 0xbc, 0x07, 0xa9, 0xbc, 0x07, 0xa9, 0xbc, 0x07, 0xa9, 0xbc, 0x07, 0xa9, 0xbc, 0x07, 0xa9, 0xbc, 0x07, 0xa9, 0xbc, 0x07, 0xa9, 0xbc, 0x07, 0xa9, 0xbc, 0x07, 0xa9, 0xbc, 0x07, 0x80, 0xcb, 0x09, 0x8e, 0xac, 0x09, 0xba, 0xad, 0x1e, 0x97, 0xad, 0x24, 0xb7, 0xad, 0x1e, 0x77, 0xb5, 0x1f, 0x77, 0xb5, 0x1f, 0x77, 0xb5, 0x1f, 0xb7, 0xad, 0x1e, 0x97, 0xb5, 0x23, 0x78, 0xa5, 0x27, 0xb6, 0x9d, 0x0a, 0x60, 0xad, 0x03, 0x66, 0xbc, 0x0b, 0x08, 0xc4, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfb, 0xad, 0x59, 0xb9, 0xad, 0xff, 0xb9, 0xad, 0xf4, 0xb9, 0xad, 0xea, 0xb9, 0xad, 0xeb, 0xb9, 0xad, 0xeb, 0xb9, 0xad, 0xeb, 0xd9, 0xad, 0xe9, 0xd9, 0xb5, 0xf4, 0x79, 0xa5, 0xec, 0x37, 0x95, 0x46, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfb, 0xad, 0x43, 0xda, 0xad, 0xea, 0xb9, 0xad, 0xf4, 0xb9, 0xad, 0xe9, 0xb9, 0xad, 0xeb, 0xb9, 0xad, 0xeb, 0xb9, 0xad, 0xeb, 0xd9, 0xad, 0xea, 0xda, 0xb5, 0xf4, 0x78, 0xa5, 0xff, 0x7a, 0x9d, 0x5c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0xad, 0x5c, 0x75, 0xb5, 0xff, 0x96, 0xb5, 0xff, 0x96, 0xb5, 0xff, 0x96, 0xb5, 0xff, 0x96, 0xb5, 0xff, 0x96, 0xb5, 0xff, 0x96, 0xb5, 0xff, 0x96, 0xb5, 0xff, 0xf3, 0x9c, 0xf6, 0x94, 0x8c, 0x41, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0xad, 0x41, 0x75, 0xb5, 0xf5, 0x96, 0xb5, 0xff, 0x96, 0xb5, 0xff, 0x96, 0xb5, 0xff, 0x96, 0xb5, 0xff, 0x96, 0xb5, 0xff, 0x96, 0xb5, 0xff, 0x96, 0xb5, 0xff, 0xf4, 0xa4, 0xff, 0xd3, 0x9c, 0x5c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0xc6, 0x04, 0x14, 0xa5, 0x88, 0x15, 0xa5, 0xee, 0x35, 0xa5, 0xe7, 0x35, 0xa5, 0xdf, 0x35, 0xa5, 0xdf, 0x35, 0xa5, 0xde, 0x35, 0xa5, 0xe9, 0xf4, 0x9c, 0xe3, 0xb3, 0x94, 0x63, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x35, 0xa5, 0x63, 0x15, 0xa5, 0xe4, 0x35, 0xa5, 0xea, 0x35, 0xa5, 0xde, 0x35, 0xa5, 0xdf, 0x35, 0xa5, 0xdf, 0x35, 0xa5, 0xe7, 0x14, 0xa5, 0xed, 0xb3, 0x94, 0x86, 0x10, 0x84, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +#endif +#if LV_COLOR_DEPTH == 16 && LV_COLOR_16_SWAP != 0 + /*Pixel format: Alpha 8 bit, Red: 5 bit, Green: 6 bit, Blue: 5 bit BUT the 2 color bytes are swapped*/ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xed, 0x6a, 0x46, 0xed, 0x4a, 0xb5, 0xed, 0x4a, 0xed, 0xed, 0x4a, 0xf5, 0xed, 0x4a, 0xf0, 0xed, 0x4a, 0xef, 0xed, 0x4a, 0xef, 0xed, 0x4a, 0xef, 0xed, 0x4a, 0xef, 0xed, 0x4a, 0xef, 0xed, 0x4a, 0xef, 0xed, 0x4a, 0xef, 0xed, 0x4a, 0xef, 0xed, 0x4a, 0xef, 0xed, 0x4a, 0xef, 0xed, 0x4a, 0xef, 0xed, 0x4a, 0xef, 0xed, 0x4a, 0xef, 0xed, 0x4a, 0xef, 0xed, 0x4a, 0xef, 0xed, 0x4a, 0xef, 0xed, 0x4a, 0xef, 0xed, 0x4a, 0xef, 0xed, 0x4a, 0xef, 0xed, 0x4a, 0xef, 0xed, 0x4a, 0xf1, 0xed, 0x4a, 0xf4, 0xed, 0x4a, 0xeb, 0xed, 0x4a, 0xb4, 0xed, 0x4a, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xed, 0x6a, 0x75, 0xed, 0x4a, 0xff, 0xed, 0x4a, 0xff, 0xed, 0x4a, 0xf9, 0xed, 0x4a, 0xf1, 0xed, 0x4a, 0xf3, 0xed, 0x4a, 0xf4, 0xed, 0x4a, 0xf4, 0xed, 0x4a, 0xf4, 0xed, 0x4a, 0xf4, 0xed, 0x4a, 0xf4, 0xed, 0x4a, 0xf4, 0xed, 0x4a, 0xf4, 0xed, 0x4a, 0xf4, 0xed, 0x4a, 0xf4, 0xed, 0x4a, 0xf4, 0xed, 0x4a, 0xf4, 0xed, 0x4a, 0xf4, 0xed, 0x4a, 0xf4, 0xed, 0x4a, 0xf4, 0xed, 0x4a, 0xf4, 0xed, 0x4a, 0xf4, 0xed, 0x4a, 0xf4, 0xed, 0x4a, 0xf4, 0xed, 0x4a, 0xf4, 0xed, 0x4a, 0xf4, 0xed, 0x4a, 0xf3, 0xed, 0x4a, 0xf1, 0xed, 0x4a, 0xf9, 0xed, 0x4a, 0xff, 0xed, 0x4a, 0xff, 0xed, 0x4a, 0x76, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xed, 0x4a, 0x58, 0xed, 0x4a, 0xff, 0xed, 0x4a, 0xff, 0xed, 0x4a, 0x9f, 0xed, 0x4a, 0x3e, 0xed, 0x6a, 0x33, 0xed, 0x4a, 0x3a, 0xed, 0x4a, 0x3b, 0xed, 0x4a, 0x3b, 0xed, 0x4a, 0x3b, 0xed, 0x4a, 0x3b, 0xed, 0x4a, 0x3b, 0xed, 0x4a, 0x3b, 0xed, 0x4a, 0x3b, 0xed, 0x4a, 0x3b, 0xed, 0x4a, 0x3b, 0xed, 0x4a, 0x3b, 0xed, 0x4a, 0x3b, 0xed, 0x4a, 0x3b, 0xed, 0x4a, 0x3b, 0xed, 0x4a, 0x3b, 0xed, 0x4a, 0x3b, 0xed, 0x4a, 0x3b, 0xed, 0x4a, 0x3b, 0xed, 0x4a, 0x3b, 0xed, 0x4a, 0x3b, 0xed, 0x4a, 0x3b, 0xed, 0x6a, 0x39, 0xed, 0x6a, 0x33, 0xed, 0x4a, 0x3e, 0xed, 0x4a, 0x9f, 0xed, 0x4a, 0xff, 0xed, 0x4a, 0xff, 0xed, 0x6a, 0x57, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf5, 0x8a, 0x13, 0xed, 0x4a, 0xbe, 0xe5, 0x4a, 0xff, 0xed, 0x4a, 0x92, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xed, 0x4a, 0x92, 0xed, 0x4a, 0xff, 0xed, 0x4a, 0xbf, 0xed, 0x8a, 0x13, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe5, 0x2a, 0x2f, 0xed, 0x6a, 0xff, 0xed, 0x6a, 0xef, 0xfd, 0xcb, 0x31, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfd, 0xcb, 0x31, 0xed, 0x6a, 0xef, 0xed, 0x4a, 0xff, 0xe5, 0x2a, 0x2f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xe0, 0x01, 0xad, 0x6b, 0x03, 0x84, 0x00, 0x02, 0x84, 0x00, 0x02, 0x84, 0x00, 0x02, 0x84, 0x00, 0x02, 0x00, 0x00, 0x00, 0xd4, 0xc8, 0x38, 0xf5, 0x8b, 0xff, 0xfd, 0xcb, 0xd9, 0xcc, 0xa9, 0x1d, 0x00, 0x00, 0x00, 0x84, 0x00, 0x02, 0x84, 0x00, 0x02, 0x84, 0x00, 0x02, 0x84, 0x00, 0x02, 0x84, 0x00, 0x02, 0x84, 0x00, 0x02, 0x84, 0x00, 0x02, 0x84, 0x00, 0x02, 0x84, 0x00, 0x02, 0x84, 0x00, 0x02, 0x84, 0x00, 0x02, 0x84, 0x00, 0x02, 0x84, 0x00, 0x02, 0x84, 0x00, 0x02, 0x84, 0x00, 0x02, 0x84, 0x00, 0x02, 0x84, 0x00, 0x02, 0x84, 0x00, 0x02, 0x84, 0x00, 0x02, 0x84, 0x00, 0x02, 0x84, 0x00, 0x02, 0x84, 0x00, 0x02, 0x84, 0x00, 0x02, 0x84, 0x00, 0x02, 0x84, 0x00, 0x02, 0x84, 0x00, 0x02, 0x00, 0x00, 0x00, 0xd4, 0xa9, 0x1d, 0xfd, 0xcb, 0xd9, 0xf5, 0xab, 0xff, 0xd4, 0xc8, 0x39, 0x00, 0x00, 0x00, 0x84, 0x00, 0x02, 0x84, 0x00, 0x02, 0x84, 0x00, 0x02, 0x84, 0x00, 0x02, 0xad, 0x6b, 0x03, 0xff, 0xe0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xcc, 0xe7, 0x0d, 0xc4, 0x67, 0x5a, 0xc4, 0x27, 0x94, 0xc4, 0x67, 0x9f, 0xc4, 0x47, 0x9c, 0xc4, 0x47, 0x9a, 0xc4, 0x47, 0x9a, 0xc4, 0x47, 0x9a, 0xbc, 0x47, 0x8f, 0xc4, 0x67, 0xaf, 0xd4, 0xc9, 0xff, 0xd4, 0xa8, 0xf2, 0xbc, 0x06, 0x9c, 0xbc, 0x27, 0x8e, 0xc4, 0x47, 0x9b, 0xc4, 0x47, 0x9a, 0xc4, 0x47, 0x9a, 0xc4, 0x47, 0x9a, 0xc4, 0x47, 0x9a, 0xc4, 0x47, 0x9a, 0xc4, 0x47, 0x9a, 0xc4, 0x47, 0x9a, 0xc4, 0x47, 0x9a, 0xc4, 0x47, 0x9a, 0xc4, 0x47, 0x9a, 0xc4, 0x47, 0x9a, 0xc4, 0x47, 0x9a, 0xc4, 0x47, 0x9a, 0xc4, 0x47, 0x9a, 0xc4, 0x47, 0x9a, 0xc4, 0x47, 0x9a, 0xc4, 0x47, 0x9a, 0xc4, 0x47, 0x9a, 0xc4, 0x47, 0x9a, 0xc4, 0x47, 0x9a, 0xc4, 0x47, 0x9a, 0xc4, 0x47, 0x9a, 0xc4, 0x47, 0x9a, 0xc4, 0x47, 0x9a, 0xc4, 0x47, 0x9b, 0xbc, 0x27, 0x8e, 0xbc, 0x06, 0x9c, 0xd4, 0xa8, 0xf2, 0xd4, 0xc9, 0xff, 0xc4, 0x47, 0xaf, 0xbc, 0x47, 0x8f, 0xc4, 0x47, 0x9a, 0xc4, 0x47, 0x9a, 0xc4, 0x47, 0x9a, 0xc4, 0x47, 0x9c, 0xc4, 0x47, 0x9f, 0xc4, 0x27, 0x94, 0xc4, 0x67, 0x5a, 0xcc, 0xe7, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd5, 0x46, 0x1a, 0xc4, 0x28, 0xbb, 0xc4, 0x67, 0xff, 0xc4, 0x47, 0xff, 0xc4, 0x67, 0xff, 0xc4, 0x67, 0xff, 0xc4, 0x67, 0xff, 0xc4, 0x67, 0xff, 0xc4, 0x67, 0xff, 0xcc, 0x67, 0xff, 0xc4, 0x67, 0xff, 0xbc, 0x27, 0xff, 0xbc, 0x27, 0xff, 0xc4, 0x67, 0xff, 0xcc, 0x88, 0xff, 0xc4, 0x67, 0xff, 0xc4, 0x67, 0xff, 0xc4, 0x67, 0xff, 0xc4, 0x67, 0xff, 0xc4, 0x67, 0xff, 0xc4, 0x67, 0xff, 0xc4, 0x67, 0xff, 0xc4, 0x67, 0xff, 0xc4, 0x67, 0xff, 0xc4, 0x67, 0xff, 0xc4, 0x67, 0xff, 0xc4, 0x67, 0xff, 0xc4, 0x67, 0xff, 0xc4, 0x67, 0xff, 0xc4, 0x67, 0xff, 0xc4, 0x67, 0xff, 0xc4, 0x67, 0xff, 0xc4, 0x67, 0xff, 0xc4, 0x67, 0xff, 0xc4, 0x67, 0xff, 0xc4, 0x67, 0xff, 0xc4, 0x67, 0xff, 0xc4, 0x67, 0xff, 0xc4, 0x67, 0xff, 0xc4, 0x67, 0xff, 0xc4, 0x67, 0xff, 0xcc, 0x88, 0xff, 0xc4, 0x67, 0xff, 0xbc, 0x47, 0xff, 0xbc, 0x47, 0xff, 0xc4, 0x67, 0xff, 0xcc, 0x67, 0xff, 0xc4, 0x67, 0xff, 0xc4, 0x67, 0xff, 0xc4, 0x67, 0xff, 0xc4, 0x67, 0xff, 0xc4, 0x47, 0xff, 0xc4, 0x27, 0xff, 0xc4, 0x67, 0xff, 0xbc, 0x28, 0xbb, 0xd5, 0x85, 0x1a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xd5, 0x66, 0x0f, 0xc4, 0xa7, 0xc0, 0xbb, 0xe8, 0xff, 0xc4, 0x67, 0xff, 0xd4, 0xa8, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x28, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x29, 0xff, 0xe5, 0x28, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x28, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe4, 0x88, 0xff, 0xe3, 0xe8, 0xff, 0xe3, 0x48, 0xff, 0xe2, 0xe8, 0xff, 0xe2, 0x88, 0xff, 0xe2, 0x47, 0xff, 0xe2, 0x27, 0xff, 0xe2, 0x27, 0xff, 0xe2, 0x27, 0xff, 0xe2, 0x47, 0xff, 0xe2, 0xa8, 0xff, 0xe3, 0x08, 0xff, 0xe3, 0x68, 0xff, 0xe4, 0x28, 0xff, 0xe4, 0xa8, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x28, 0xff, 0xe5, 0x28, 0xff, 0xe5, 0x29, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x28, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xcc, 0xa8, 0xff, 0xc4, 0x67, 0xff, 0xbb, 0xc8, 0xff, 0xcc, 0xc6, 0xc0, 0xbc, 0xc9, 0x0f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xc4, 0x47, 0x76, 0xc4, 0x28, 0xff, 0xc4, 0x67, 0xff, 0xd4, 0xc8, 0xff, 0xdd, 0x08, 0xff, 0xbc, 0x27, 0xff, 0xa3, 0x86, 0xff, 0xa3, 0xa6, 0xff, 0xa3, 0xa6, 0xff, 0xa3, 0xa6, 0xff, 0xa3, 0xa6, 0xff, 0xa3, 0xa6, 0xff, 0xa3, 0xa6, 0xff, 0xa3, 0xa6, 0xff, 0xa3, 0xa6, 0xff, 0xa3, 0xa6, 0xff, 0xa3, 0xa6, 0xff, 0xa3, 0xa6, 0xff, 0xa3, 0x86, 0xff, 0xbb, 0x27, 0xff, 0xca, 0xa7, 0xff, 0xda, 0x27, 0xff, 0xda, 0x07, 0xff, 0xe2, 0x07, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x07, 0xff, 0xda, 0x27, 0xff, 0xda, 0x47, 0xff, 0xca, 0xa7, 0xff, 0xb3, 0x27, 0xff, 0xa3, 0xa6, 0xff, 0xa3, 0xa6, 0xff, 0xa3, 0xa6, 0xff, 0xa3, 0xa6, 0xff, 0xa3, 0xa6, 0xff, 0xa3, 0xa6, 0xff, 0xa3, 0xa6, 0xff, 0xa3, 0xa6, 0xff, 0xa3, 0xa6, 0xff, 0xa3, 0xa6, 0xff, 0xa3, 0xa6, 0xff, 0xa3, 0xa6, 0xff, 0xa3, 0xa6, 0xff, 0xa3, 0x86, 0xff, 0xbc, 0x27, 0xff, 0xe5, 0x08, 0xff, 0xd4, 0xc8, 0xff, 0xc4, 0x67, 0xff, 0xc4, 0x27, 0xff, 0xbc, 0x28, 0x7a, 0xbc, 0x28, 0x1f, + 0xbc, 0x29, 0x2d, 0xc4, 0x28, 0xbc, 0xc4, 0x67, 0xff, 0xd4, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0x82, 0xe5, 0xff, 0x49, 0xa3, 0xff, 0x49, 0xc3, 0xff, 0x51, 0xc3, 0xff, 0x51, 0xc4, 0xff, 0x51, 0xc4, 0xff, 0x51, 0xc4, 0xff, 0x51, 0xc4, 0xff, 0x51, 0xc4, 0xff, 0x51, 0xc4, 0xff, 0x51, 0xc4, 0xff, 0x51, 0xc4, 0xff, 0x61, 0xc4, 0xff, 0x99, 0xe5, 0xff, 0xc9, 0xe7, 0xff, 0xd9, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xd9, 0xe7, 0xff, 0xc9, 0xe7, 0xff, 0x91, 0xe5, 0xff, 0x59, 0xe4, 0xff, 0x51, 0xc4, 0xff, 0x51, 0xc4, 0xff, 0x51, 0xc4, 0xff, 0x51, 0xc4, 0xff, 0x51, 0xc4, 0xff, 0x51, 0xc4, 0xff, 0x51, 0xc4, 0xff, 0x51, 0xc4, 0xff, 0x51, 0xc4, 0xff, 0x51, 0xc3, 0xff, 0x49, 0xc3, 0xff, 0x49, 0xa3, 0xff, 0x82, 0xe5, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xc4, 0x67, 0xff, 0xc4, 0x47, 0xc4, 0xc4, 0x67, 0x84, + 0xa4, 0x2c, 0x55, 0xbc, 0x48, 0xd4, 0xd4, 0x87, 0xff, 0xed, 0x29, 0xff, 0xa3, 0xa6, 0xff, 0x41, 0x63, 0xff, 0x49, 0xc3, 0xff, 0x5a, 0x04, 0xff, 0x5a, 0x04, 0xff, 0x5a, 0x04, 0xff, 0x5a, 0x04, 0xff, 0x5a, 0x04, 0xff, 0x5a, 0x04, 0xff, 0x5a, 0x04, 0xff, 0x5a, 0x04, 0xff, 0x6a, 0x04, 0xff, 0xa9, 0xe6, 0xff, 0xd9, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xd1, 0xe7, 0xff, 0xa2, 0x06, 0xff, 0x62, 0x04, 0xff, 0x5a, 0x04, 0xff, 0x5a, 0x04, 0xff, 0x5a, 0x04, 0xff, 0x5a, 0x04, 0xff, 0x5a, 0x04, 0xff, 0x5a, 0x04, 0xff, 0x5a, 0x04, 0xff, 0x5a, 0x04, 0xff, 0x5a, 0x04, 0xff, 0x49, 0xc3, 0xff, 0x41, 0x63, 0xff, 0xa3, 0xa6, 0xff, 0xed, 0x29, 0xff, 0xcc, 0x88, 0xff, 0xc4, 0x67, 0xda, 0xc4, 0x67, 0xa4, + 0xbc, 0x48, 0x52, 0xc4, 0x47, 0xd1, 0xd4, 0xc8, 0xff, 0xed, 0x49, 0xff, 0x82, 0xe5, 0xff, 0x41, 0x83, 0xff, 0x62, 0x24, 0xff, 0x62, 0x24, 0xff, 0x62, 0x24, 0xff, 0x62, 0x24, 0xff, 0x62, 0x24, 0xff, 0x62, 0x24, 0xff, 0x62, 0x24, 0xff, 0x62, 0x44, 0xff, 0x9a, 0x26, 0xff, 0xd9, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xd1, 0xe7, 0xff, 0x92, 0x25, 0xff, 0x62, 0x44, 0xff, 0x62, 0x44, 0xff, 0x62, 0x24, 0xff, 0x62, 0x24, 0xff, 0x62, 0x24, 0xff, 0x62, 0x24, 0xff, 0x62, 0x24, 0xff, 0x62, 0x24, 0xff, 0x62, 0x24, 0xff, 0x41, 0x83, 0xff, 0x82, 0xe5, 0xff, 0xed, 0x49, 0xff, 0xd4, 0xc8, 0xff, 0xc4, 0x47, 0xd7, 0xc4, 0x67, 0xa1, + 0xcc, 0x67, 0x51, 0xc4, 0x67, 0xd1, 0xd4, 0xc8, 0xff, 0xed, 0x49, 0xff, 0x82, 0xe5, 0xff, 0x41, 0x83, 0xff, 0x62, 0x24, 0xff, 0x62, 0x24, 0xff, 0x62, 0x24, 0xff, 0x62, 0x24, 0xff, 0x62, 0x44, 0xff, 0x62, 0x44, 0xff, 0x7a, 0x25, 0xff, 0xc1, 0xe6, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xd9, 0xe7, 0xff, 0xba, 0x06, 0xff, 0xaa, 0x06, 0xff, 0x92, 0x25, 0xff, 0x8a, 0x25, 0xff, 0x82, 0x25, 0xff, 0x7a, 0x25, 0xff, 0x82, 0x25, 0xff, 0x8a, 0x25, 0xff, 0x9a, 0x25, 0xff, 0xaa, 0x06, 0xff, 0xc2, 0x06, 0xff, 0xd9, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xb2, 0x06, 0xff, 0x72, 0x25, 0xff, 0x62, 0x44, 0xff, 0x62, 0x44, 0xff, 0x62, 0x44, 0xff, 0x62, 0x44, 0xff, 0x62, 0x24, 0xff, 0x62, 0x24, 0xff, 0x62, 0x24, 0xff, 0x41, 0x83, 0xff, 0x82, 0xe5, 0xff, 0xed, 0x49, 0xff, 0xd4, 0xc8, 0xff, 0xc4, 0x47, 0xd6, 0xc4, 0x67, 0xa0, + 0xc4, 0x68, 0x51, 0xc4, 0x67, 0xd1, 0xd4, 0xc8, 0xff, 0xed, 0x49, 0xff, 0x82, 0xe5, 0xff, 0x41, 0x83, 0xff, 0x62, 0x24, 0xff, 0x62, 0x24, 0xff, 0x62, 0x24, 0xff, 0x62, 0x44, 0xff, 0x62, 0x44, 0xff, 0x8a, 0x25, 0xff, 0xd1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xd9, 0xe7, 0xff, 0xb2, 0x06, 0xff, 0x8a, 0x25, 0xff, 0x6a, 0x44, 0xff, 0x62, 0x44, 0xff, 0x62, 0x44, 0xff, 0x62, 0x44, 0xff, 0x62, 0x44, 0xff, 0x62, 0x44, 0xff, 0x62, 0x44, 0xff, 0x62, 0x44, 0xff, 0x62, 0x44, 0xff, 0x62, 0x44, 0xff, 0x62, 0x44, 0xff, 0x62, 0x44, 0xff, 0x6a, 0x44, 0xff, 0x92, 0x25, 0xff, 0xb2, 0x06, 0xff, 0xd9, 0xe7, 0xff, 0xe1, 0xc7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xc7, 0xff, 0xc9, 0xe7, 0xff, 0x7a, 0x25, 0xff, 0x62, 0x44, 0xff, 0x62, 0x44, 0xff, 0x62, 0x44, 0xff, 0x62, 0x24, 0xff, 0x62, 0x24, 0xff, 0x62, 0x24, 0xff, 0x41, 0x83, 0xff, 0x82, 0xe5, 0xff, 0xed, 0x49, 0xff, 0xd4, 0xc8, 0xff, 0xc4, 0x67, 0xd6, 0xc4, 0x67, 0xa0, + 0xc4, 0x67, 0x51, 0xc4, 0x47, 0xd1, 0xd4, 0xc8, 0xff, 0xed, 0x49, 0xff, 0x82, 0xe5, 0xff, 0x41, 0xa3, 0xff, 0x62, 0x44, 0xff, 0x62, 0x44, 0xff, 0x62, 0x44, 0xff, 0x62, 0x44, 0xff, 0x9a, 0x05, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xd1, 0xe7, 0xff, 0xa2, 0x06, 0xff, 0x72, 0x45, 0xff, 0x62, 0x44, 0xff, 0x62, 0x44, 0xff, 0x62, 0x44, 0xff, 0x62, 0x44, 0xff, 0x62, 0x44, 0xff, 0x62, 0x44, 0xff, 0x62, 0x44, 0xff, 0x62, 0x44, 0xff, 0x62, 0x44, 0xff, 0x62, 0x44, 0xff, 0x62, 0x44, 0xff, 0x62, 0x44, 0xff, 0x62, 0x44, 0xff, 0x62, 0x44, 0xff, 0x62, 0x44, 0xff, 0x62, 0x44, 0xff, 0x62, 0x44, 0xff, 0x7a, 0x45, 0xff, 0xaa, 0x26, 0xff, 0xd1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xd9, 0xe7, 0xff, 0x8a, 0x25, 0xff, 0x62, 0x44, 0xff, 0x62, 0x44, 0xff, 0x62, 0x44, 0xff, 0x62, 0x44, 0xff, 0x62, 0x44, 0xff, 0x41, 0xa3, 0xff, 0x82, 0xe5, 0xff, 0xed, 0x49, 0xff, 0xd4, 0xc8, 0xff, 0xc4, 0x47, 0xd6, 0xc4, 0x67, 0xa0, + 0xc4, 0x67, 0x51, 0xc4, 0x47, 0xd1, 0xd4, 0xc8, 0xff, 0xed, 0x49, 0xff, 0x83, 0x05, 0xff, 0x41, 0x83, 0xff, 0x62, 0x24, 0xff, 0x62, 0x44, 0xff, 0x62, 0x44, 0xff, 0x9a, 0x05, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xd1, 0xe7, 0xff, 0xa2, 0x06, 0xff, 0x72, 0x45, 0xff, 0x62, 0x44, 0xff, 0x6a, 0x65, 0xff, 0x6a, 0x44, 0xff, 0x6a, 0x44, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x44, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x62, 0x44, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x44, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x44, 0xff, 0x6a, 0x65, 0xff, 0x6a, 0x44, 0xff, 0x62, 0x44, 0xff, 0x72, 0x45, 0xff, 0xb2, 0x06, 0xff, 0xd9, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0x8a, 0x25, 0xff, 0x62, 0x44, 0xff, 0x62, 0x44, 0xff, 0x62, 0x44, 0xff, 0x62, 0x24, 0xff, 0x41, 0x83, 0xff, 0x83, 0x05, 0xff, 0xed, 0x49, 0xff, 0xd4, 0xc8, 0xff, 0xc4, 0x47, 0xd6, 0xc4, 0x67, 0xa0, + 0xc4, 0x67, 0x51, 0xc4, 0x47, 0xd1, 0xd4, 0xc8, 0xff, 0xed, 0x49, 0xff, 0x83, 0x05, 0xff, 0x49, 0xa3, 0xff, 0x62, 0x44, 0xff, 0x62, 0x44, 0xff, 0x9a, 0x26, 0xff, 0xe1, 0xc7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xba, 0x06, 0xff, 0x82, 0x45, 0xff, 0x6a, 0x44, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x65, 0xff, 0x62, 0x24, 0xff, 0x62, 0x44, 0xff, 0x62, 0x44, 0xff, 0x62, 0x24, 0xff, 0x6a, 0x65, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x65, 0xff, 0x62, 0x44, 0xff, 0x62, 0x23, 0xff, 0x6a, 0x44, 0xff, 0x62, 0x23, 0xff, 0x62, 0x44, 0xff, 0x6a, 0x65, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x65, 0xff, 0x62, 0x24, 0xff, 0x62, 0x44, 0xff, 0x6a, 0x44, 0xff, 0x5a, 0x23, 0xff, 0x6a, 0x65, 0xff, 0x92, 0x45, 0xff, 0xc9, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xc7, 0xff, 0x8a, 0x25, 0xff, 0x62, 0x44, 0xff, 0x62, 0x44, 0xff, 0x62, 0x44, 0xff, 0x49, 0xa3, 0xff, 0x83, 0x05, 0xff, 0xed, 0x49, 0xff, 0xd4, 0xc8, 0xff, 0xc4, 0x47, 0xd6, 0xc4, 0x67, 0xa0, + 0xc4, 0x67, 0x51, 0xc4, 0x47, 0xd1, 0xd4, 0xc8, 0xff, 0xed, 0x49, 0xff, 0x83, 0x05, 0xff, 0x49, 0xa3, 0xff, 0x62, 0x44, 0xff, 0x8a, 0x25, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0x79, 0xc3, 0xff, 0x6a, 0x85, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x85, 0xff, 0x62, 0x23, 0xff, 0x49, 0x40, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x65, 0xff, 0x49, 0x61, 0xff, 0x62, 0x24, 0xff, 0x6a, 0x65, 0xff, 0x6a, 0x65, 0xff, 0x6a, 0x85, 0xff, 0x51, 0xa1, 0xff, 0x59, 0xc2, 0xff, 0x7a, 0xc6, 0xff, 0x59, 0xc2, 0xff, 0x49, 0x81, 0xff, 0x6a, 0x65, 0xff, 0x6a, 0x65, 0xff, 0x6a, 0x65, 0xff, 0x62, 0x24, 0xff, 0x49, 0x81, 0xff, 0x6a, 0x64, 0xff, 0x72, 0xa5, 0xff, 0x49, 0x60, 0xff, 0x5a, 0x03, 0xff, 0x6a, 0x85, 0xff, 0x7a, 0x45, 0xff, 0xba, 0x07, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xd9, 0xe7, 0xff, 0x82, 0x45, 0xff, 0x62, 0x44, 0xff, 0x62, 0x44, 0xff, 0x49, 0xa3, 0xff, 0x82, 0xe5, 0xff, 0xed, 0x49, 0xff, 0xd4, 0xc8, 0xff, 0xc4, 0x47, 0xd6, 0xc4, 0x67, 0xa0, + 0xc4, 0x67, 0x51, 0xc4, 0x47, 0xd1, 0xd4, 0xc8, 0xff, 0xed, 0x49, 0xff, 0x82, 0xe5, 0xff, 0x49, 0xa3, 0xff, 0x7a, 0x25, 0xff, 0xd9, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xd2, 0x07, 0xff, 0x79, 0xa3, 0xff, 0x72, 0x85, 0xff, 0x5a, 0x03, 0xff, 0x59, 0xc2, 0xff, 0xc5, 0x2f, 0xff, 0x6a, 0xe9, 0xff, 0x6a, 0xe9, 0xff, 0xac, 0x8d, 0xff, 0x62, 0x03, 0xff, 0x62, 0x44, 0xff, 0x6a, 0x85, 0xff, 0x49, 0x81, 0xff, 0x83, 0x27, 0xff, 0xac, 0xcf, 0xff, 0x39, 0xa6, 0xff, 0xac, 0xcf, 0xff, 0x93, 0x88, 0xff, 0x49, 0x61, 0xff, 0x6a, 0x85, 0xff, 0x62, 0x44, 0xff, 0x59, 0xe2, 0xff, 0xb4, 0xad, 0xff, 0x6a, 0xea, 0xff, 0x4a, 0x27, 0xff, 0xc5, 0x50, 0xff, 0x62, 0x03, 0xff, 0x5a, 0x03, 0xff, 0x72, 0xa5, 0xff, 0x61, 0xc3, 0xff, 0xb2, 0x06, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xc9, 0xe7, 0xff, 0x6a, 0x45, 0xff, 0x62, 0x44, 0xff, 0x49, 0xa3, 0xff, 0x82, 0xe5, 0xff, 0xed, 0x49, 0xff, 0xd4, 0xc8, 0xff, 0xc4, 0x47, 0xd6, 0xc4, 0x67, 0xa0, + 0xc4, 0x67, 0x51, 0xc4, 0x47, 0xd1, 0xd4, 0xc8, 0xff, 0xed, 0x49, 0xff, 0x82, 0xe5, 0xff, 0x49, 0xa3, 0xff, 0xc2, 0x07, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xd1, 0xc6, 0xff, 0x81, 0xe4, 0xff, 0x49, 0x60, 0xff, 0x9c, 0x2c, 0xff, 0xff, 0xff, 0xff, 0x6b, 0x0a, 0xff, 0x73, 0x2a, 0xff, 0xff, 0xfd, 0xff, 0x9b, 0xeb, 0xff, 0x59, 0xe2, 0xff, 0x5a, 0x03, 0xff, 0x59, 0xc1, 0xff, 0xee, 0xd8, 0xff, 0xdf, 0x1b, 0xff, 0x18, 0xc3, 0xff, 0xce, 0x78, 0xff, 0xef, 0x1a, 0xff, 0x62, 0x03, 0xff, 0x59, 0xc2, 0xff, 0x59, 0xe2, 0xff, 0x93, 0xca, 0xff, 0xff, 0xfe, 0xff, 0x63, 0x0b, 0xff, 0x39, 0xc6, 0xff, 0xff, 0xff, 0xff, 0xac, 0x8e, 0xff, 0x51, 0xa1, 0xff, 0x5a, 0x03, 0xff, 0x51, 0x61, 0xff, 0xcd, 0x71, 0xff, 0xf4, 0x50, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xb2, 0x06, 0xff, 0x62, 0x44, 0xff, 0x49, 0xa3, 0xff, 0x82, 0xe5, 0xff, 0xed, 0x49, 0xff, 0xd4, 0xc8, 0xff, 0xc4, 0x47, 0xd6, 0xc4, 0x67, 0xa0, + 0xc4, 0x67, 0x51, 0xc4, 0x47, 0xd1, 0xd4, 0xc8, 0xff, 0xed, 0x49, 0xff, 0x82, 0xe5, 0xff, 0x89, 0xc5, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xea, 0xaa, 0xff, 0xe1, 0xe8, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xd1, 0xc6, 0xff, 0x81, 0xc3, 0xff, 0xcd, 0xd3, 0xff, 0xff, 0xfc, 0xff, 0xd6, 0x14, 0xff, 0xd6, 0x34, 0xff, 0xff, 0xba, 0xff, 0xc5, 0x51, 0xff, 0x59, 0xe3, 0xff, 0x49, 0x81, 0xff, 0x83, 0x28, 0xff, 0xff, 0xba, 0xff, 0xf7, 0x38, 0xff, 0xc5, 0x92, 0xff, 0xf7, 0x18, 0xff, 0xff, 0xdc, 0xff, 0x8b, 0x69, 0xff, 0x49, 0x40, 0xff, 0x59, 0xc2, 0xff, 0xbd, 0x51, 0xff, 0xff, 0xfb, 0xff, 0xd6, 0x13, 0xff, 0xcd, 0xd3, 0xff, 0xff, 0xbb, 0xff, 0xde, 0x35, 0xff, 0x62, 0x03, 0xff, 0x49, 0x40, 0xff, 0x6a, 0x45, 0xff, 0xee, 0xf8, 0xff, 0xff, 0x59, 0xff, 0xdb, 0x0b, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0x8a, 0x25, 0xff, 0x49, 0xa3, 0xff, 0x82, 0xe5, 0xff, 0xed, 0x49, 0xff, 0xd4, 0xc8, 0xff, 0xc4, 0x47, 0xd6, 0xc4, 0x67, 0xa0, + 0xc4, 0x67, 0x51, 0xc4, 0x47, 0xd1, 0xd4, 0xc8, 0xff, 0xed, 0x49, 0xff, 0x8a, 0xe5, 0xff, 0xd9, 0xc7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xca, 0x27, 0xff, 0xed, 0xd4, 0xff, 0xf4, 0x0e, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xd1, 0xe7, 0xff, 0xc4, 0x0d, 0xff, 0xff, 0x79, 0xff, 0xff, 0x99, 0xff, 0xff, 0x79, 0xff, 0xff, 0x38, 0xff, 0xac, 0x8e, 0xff, 0x59, 0xe3, 0xff, 0x51, 0xc2, 0xff, 0x72, 0xa6, 0xff, 0xee, 0x96, 0xff, 0xff, 0x99, 0xff, 0xff, 0xb9, 0xff, 0xff, 0x99, 0xff, 0xf6, 0xf7, 0xff, 0x72, 0xc7, 0xff, 0x51, 0x81, 0xff, 0x59, 0xc2, 0xff, 0xa4, 0x6d, 0xff, 0xff, 0x18, 0xff, 0xff, 0x78, 0xff, 0xff, 0xb9, 0xff, 0xff, 0x79, 0xff, 0xbd, 0x30, 0xff, 0x59, 0xe3, 0xff, 0x51, 0xa1, 0xff, 0x5a, 0x03, 0xff, 0xde, 0x14, 0xff, 0xff, 0x9a, 0xff, 0xfe, 0xf7, 0xff, 0xea, 0xaa, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xc9, 0xe7, 0xff, 0x49, 0xa3, 0xff, 0x82, 0xe5, 0xff, 0xed, 0x49, 0xff, 0xd4, 0xc8, 0xff, 0xc4, 0x47, 0xd6, 0xc4, 0x67, 0xa0, + 0xc4, 0x67, 0x51, 0xc4, 0x47, 0xd1, 0xd4, 0xc8, 0xff, 0xed, 0x49, 0xff, 0xba, 0x46, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xd9, 0xe7, 0xff, 0x71, 0xe4, 0xff, 0xa4, 0x4d, 0xff, 0xee, 0x56, 0xff, 0xeb, 0x8d, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xd9, 0xe7, 0xff, 0xd4, 0xb0, 0xff, 0xff, 0x39, 0xff, 0xf6, 0xf8, 0xff, 0xc5, 0x72, 0xff, 0x6a, 0x85, 0xff, 0x62, 0x23, 0xff, 0x6a, 0x64, 0xff, 0x51, 0xa2, 0xff, 0x93, 0xcb, 0xff, 0xee, 0xd7, 0xff, 0xff, 0x39, 0xff, 0xf6, 0xf8, 0xff, 0x9c, 0x0c, 0xff, 0x51, 0xa2, 0xff, 0x62, 0x24, 0xff, 0x62, 0x23, 0xff, 0x62, 0x44, 0xff, 0xc5, 0x51, 0xff, 0xf7, 0x18, 0xff, 0xff, 0x39, 0xff, 0xd5, 0xf4, 0xff, 0x6a, 0xa6, 0xff, 0x59, 0xe2, 0xff, 0x6a, 0x64, 0xff, 0x51, 0xa2, 0xff, 0x83, 0x48, 0xff, 0xe6, 0x76, 0xff, 0xff, 0x39, 0xff, 0xed, 0x73, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0x91, 0xc5, 0xff, 0x82, 0xe5, 0xff, 0xed, 0x49, 0xff, 0xd4, 0xc8, 0xff, 0xc4, 0x47, 0xd6, 0xc4, 0x67, 0xa0, + 0xc4, 0x67, 0x51, 0xc4, 0x47, 0xd1, 0xd4, 0xc8, 0xff, 0xec, 0xe9, 0xff, 0xd9, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xaa, 0x26, 0xff, 0x5a, 0x03, 0xff, 0x59, 0xe3, 0xff, 0x7b, 0x28, 0xff, 0x9b, 0xab, 0xff, 0xc2, 0x27, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xd9, 0xe7, 0xff, 0xa3, 0x2a, 0xff, 0x8b, 0xaa, 0xff, 0x62, 0x45, 0xff, 0x59, 0xe3, 0xff, 0x6a, 0x65, 0xff, 0x6a, 0x65, 0xff, 0x62, 0x24, 0xff, 0x51, 0xc2, 0xff, 0x72, 0xe7, 0xff, 0x93, 0xec, 0xff, 0x7b, 0x08, 0xff, 0x51, 0xc2, 0xff, 0x62, 0x23, 0xff, 0x6a, 0x65, 0xff, 0x6a, 0x64, 0xff, 0x59, 0xe3, 0xff, 0x62, 0x24, 0xff, 0x8b, 0x8a, 0xff, 0x93, 0xcb, 0xff, 0x62, 0x65, 0xff, 0x51, 0xc2, 0xff, 0x6a, 0x44, 0xff, 0x6a, 0x65, 0xff, 0x62, 0x44, 0xff, 0x51, 0xc2, 0xff, 0x6a, 0xa6, 0xff, 0x93, 0xcb, 0xff, 0x7b, 0x28, 0xff, 0xb1, 0xe6, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xc9, 0xc7, 0xff, 0x8a, 0xe5, 0xff, 0xed, 0x49, 0xff, 0xd4, 0xc8, 0xff, 0xc4, 0x47, 0xd6, 0xc4, 0x67, 0xa0, + 0xc4, 0x67, 0x51, 0xc4, 0x47, 0xd1, 0xd4, 0xc8, 0xff, 0xeb, 0x88, 0xff, 0xe1, 0xc7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xd1, 0xe7, 0xff, 0x6a, 0x44, 0xff, 0x62, 0x44, 0xff, 0x62, 0x24, 0xff, 0x49, 0xa2, 0xff, 0x49, 0x61, 0xff, 0x59, 0xc3, 0xff, 0xba, 0x06, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xd1, 0xc7, 0xff, 0x71, 0xa3, 0xff, 0x59, 0xe3, 0xff, 0x62, 0x45, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x65, 0xff, 0x62, 0x44, 0xff, 0x51, 0xa2, 0xff, 0x49, 0x61, 0xff, 0x51, 0xa2, 0xff, 0x62, 0x24, 0xff, 0x6a, 0x65, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x45, 0xff, 0x5a, 0x03, 0xff, 0x49, 0x81, 0xff, 0x49, 0x61, 0xff, 0x59, 0xe3, 0xff, 0x62, 0x45, 0xff, 0x6a, 0x65, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x62, 0x44, 0xff, 0x51, 0xc2, 0xff, 0x49, 0x61, 0xff, 0x49, 0xa2, 0xff, 0x6a, 0x04, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xd9, 0xe7, 0xff, 0xaa, 0x86, 0xff, 0xed, 0x29, 0xff, 0xd4, 0xc8, 0xff, 0xc4, 0x47, 0xd6, 0xc4, 0x67, 0xa0, + 0xc4, 0x67, 0x51, 0xc4, 0x47, 0xd1, 0xd4, 0xa8, 0xff, 0xe2, 0x48, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0x9a, 0x26, 0xff, 0x62, 0x44, 0xff, 0x62, 0x44, 0xff, 0x62, 0x44, 0xff, 0x6a, 0x65, 0xff, 0x62, 0x65, 0xff, 0x62, 0x65, 0xff, 0x6a, 0x44, 0xff, 0xc2, 0x06, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xd9, 0xe7, 0xff, 0x8a, 0x25, 0xff, 0x6a, 0x44, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x44, 0xff, 0x6a, 0x44, 0xff, 0x6a, 0x65, 0xff, 0x6a, 0x65, 0xff, 0x62, 0x65, 0xff, 0x62, 0x44, 0xff, 0x6a, 0x44, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x44, 0xff, 0x6a, 0x44, 0xff, 0x6a, 0x45, 0xff, 0x62, 0x65, 0xff, 0x62, 0x65, 0xff, 0x6a, 0x65, 0xff, 0x6a, 0x44, 0xff, 0x6a, 0x44, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x44, 0xff, 0x62, 0x44, 0xff, 0x62, 0x64, 0xff, 0x62, 0x45, 0xff, 0x62, 0x65, 0xff, 0x62, 0x44, 0xff, 0xb2, 0x06, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xca, 0x27, 0xff, 0xed, 0x29, 0xff, 0xd4, 0xc8, 0xff, 0xc4, 0x47, 0xd6, 0xc4, 0x67, 0xa0, + 0xc4, 0x67, 0x51, 0xc4, 0x47, 0xd2, 0xdb, 0xc8, 0xff, 0xe2, 0x07, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xd1, 0xe7, 0xff, 0x6a, 0x44, 0xff, 0x62, 0x44, 0xff, 0x62, 0x44, 0xff, 0x62, 0x44, 0xff, 0x62, 0x44, 0xff, 0x62, 0x44, 0xff, 0x6a, 0x44, 0xff, 0x62, 0x64, 0xff, 0x6a, 0x64, 0xff, 0xc2, 0x06, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xd9, 0xe7, 0xff, 0x8a, 0x25, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x62, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x62, 0x44, 0xff, 0x62, 0x44, 0xff, 0x62, 0x44, 0xff, 0x62, 0x44, 0xff, 0x72, 0x45, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xda, 0x07, 0xff, 0xec, 0x68, 0xff, 0xd4, 0xa8, 0xff, 0xc4, 0x47, 0xd6, 0xc4, 0x47, 0xa0, + 0xc4, 0x47, 0x51, 0xc4, 0x47, 0xd2, 0xdb, 0x08, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xb2, 0x06, 0xff, 0x62, 0x44, 0xff, 0x62, 0x44, 0xff, 0x62, 0x44, 0xff, 0x62, 0x44, 0xff, 0x62, 0x44, 0xff, 0x62, 0x44, 0xff, 0x6a, 0x44, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0xc2, 0x06, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xd9, 0xe7, 0xff, 0x8a, 0x25, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x44, 0xff, 0x62, 0x44, 0xff, 0x62, 0x44, 0xff, 0x62, 0x44, 0xff, 0x62, 0x44, 0xff, 0x62, 0x44, 0xff, 0xc1, 0xe6, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xeb, 0xa8, 0xff, 0xd4, 0xa8, 0xff, 0xc4, 0x47, 0xd6, 0xc4, 0x47, 0xa0, + 0xc4, 0x47, 0x51, 0xc3, 0xe7, 0xd7, 0xe2, 0x67, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0x82, 0x25, 0xff, 0x62, 0x44, 0xff, 0x62, 0x44, 0xff, 0x62, 0x44, 0xff, 0x62, 0x44, 0xff, 0x62, 0x44, 0xff, 0x62, 0x44, 0xff, 0x6a, 0x44, 0xff, 0x6a, 0x44, 0xff, 0x6a, 0x44, 0xff, 0x6a, 0x44, 0xff, 0x6a, 0x44, 0xff, 0xc2, 0x06, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xd9, 0xe7, 0xff, 0x8a, 0x25, 0xff, 0x6a, 0x44, 0xff, 0x6a, 0x44, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x44, 0xff, 0x6a, 0x44, 0xff, 0x6a, 0x44, 0xff, 0x6a, 0x44, 0xff, 0x6a, 0x44, 0xff, 0x6a, 0x44, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x44, 0xff, 0x6a, 0x44, 0xff, 0x6a, 0x44, 0xff, 0x6a, 0x44, 0xff, 0x6a, 0x44, 0xff, 0x62, 0x44, 0xff, 0x62, 0x44, 0xff, 0x62, 0x44, 0xff, 0x62, 0x44, 0xff, 0x62, 0x44, 0xff, 0x92, 0x25, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0xe8, 0xff, 0xd4, 0x68, 0xff, 0xc4, 0x47, 0xd6, 0xc4, 0x47, 0xa0, + 0xc4, 0x47, 0x51, 0xcb, 0x67, 0xe1, 0xe2, 0x27, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xd9, 0xe7, 0xff, 0x6a, 0x44, 0xff, 0x6a, 0x44, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x65, 0xff, 0xc2, 0x06, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xd9, 0xe7, 0xff, 0x8a, 0x45, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x72, 0x45, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x88, 0xff, 0xdb, 0xa8, 0xff, 0xc4, 0x47, 0xd6, 0xc4, 0x47, 0xa0, + 0xc4, 0x67, 0x51, 0xd2, 0xe7, 0xea, 0xe2, 0x07, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xb9, 0xc6, 0xff, 0x49, 0xc4, 0xff, 0x49, 0xc4, 0xff, 0x51, 0xc4, 0xff, 0x51, 0xc4, 0xff, 0x51, 0xc3, 0xff, 0x51, 0xe3, 0xff, 0x51, 0xe3, 0xff, 0x51, 0xc4, 0xff, 0x51, 0xc4, 0xff, 0x51, 0xc4, 0xff, 0x51, 0xc4, 0xff, 0x51, 0xc4, 0xff, 0x51, 0xc4, 0xff, 0x51, 0xe4, 0xff, 0xb9, 0xe6, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xd1, 0xe7, 0xff, 0x79, 0xc5, 0xff, 0x51, 0xe4, 0xff, 0x51, 0xe4, 0xff, 0x51, 0xe4, 0xff, 0x51, 0xc4, 0xff, 0x51, 0xc4, 0xff, 0x51, 0xc4, 0xff, 0x51, 0xc4, 0xff, 0x51, 0xc4, 0xff, 0x51, 0xc4, 0xff, 0x51, 0xe4, 0xff, 0x51, 0xe4, 0xff, 0x51, 0xe4, 0xff, 0x51, 0xc4, 0xff, 0x51, 0xc4, 0xff, 0x51, 0xc4, 0xff, 0x51, 0xc4, 0xff, 0x51, 0xc4, 0xff, 0x51, 0xe3, 0xff, 0x51, 0xe3, 0xff, 0x51, 0xc3, 0xff, 0x51, 0xc4, 0xff, 0x51, 0xc4, 0xff, 0x51, 0xc4, 0xff, 0xc9, 0xc7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x47, 0xff, 0xdb, 0x28, 0xff, 0xc4, 0x47, 0xd6, 0xc4, 0x47, 0xa0, + 0xc4, 0x67, 0x51, 0xda, 0x87, 0xf1, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xaa, 0x26, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x65, 0xff, 0x6a, 0x65, 0xff, 0x6a, 0x65, 0xff, 0x6a, 0x85, 0xff, 0x6a, 0x85, 0xff, 0x6a, 0x85, 0xff, 0x6a, 0x85, 0xff, 0x6a, 0x85, 0xff, 0x6a, 0x85, 0xff, 0x6a, 0x85, 0xff, 0x6a, 0x85, 0xff, 0x6a, 0x85, 0xff, 0x72, 0x85, 0xff, 0xc2, 0x06, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xd1, 0xe7, 0xff, 0x92, 0x45, 0xff, 0x6a, 0x85, 0xff, 0x6a, 0x85, 0xff, 0x6a, 0x85, 0xff, 0x6a, 0x85, 0xff, 0x6a, 0x85, 0xff, 0x6a, 0x85, 0xff, 0x6a, 0x85, 0xff, 0x6a, 0x85, 0xff, 0x6a, 0x85, 0xff, 0x6a, 0x85, 0xff, 0x6a, 0x85, 0xff, 0x6a, 0x85, 0xff, 0x6a, 0x85, 0xff, 0x6a, 0x85, 0xff, 0x6a, 0x85, 0xff, 0x6a, 0x85, 0xff, 0x6a, 0x85, 0xff, 0x6a, 0x85, 0xff, 0x6a, 0x65, 0xff, 0x6a, 0x65, 0xff, 0x6a, 0x65, 0xff, 0x72, 0x65, 0xff, 0xba, 0x06, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x07, 0xff, 0xe2, 0xc7, 0xff, 0xc4, 0x47, 0xd6, 0xc4, 0x47, 0xa0, + 0xc4, 0x47, 0x51, 0xda, 0x47, 0xf5, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe3, 0xe8, 0xff, 0xed, 0x29, 0xff, 0xed, 0x29, 0xff, 0xed, 0x29, 0xff, 0xed, 0x29, 0xff, 0xed, 0x29, 0xff, 0xed, 0x29, 0xff, 0xed, 0x29, 0xff, 0xed, 0x29, 0xff, 0xed, 0x29, 0xff, 0xed, 0x29, 0xff, 0xed, 0x29, 0xff, 0xed, 0x29, 0xff, 0xed, 0x29, 0xff, 0xed, 0x29, 0xff, 0xed, 0x29, 0xff, 0xed, 0x09, 0xff, 0xe2, 0xe8, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x47, 0xff, 0xec, 0x28, 0xff, 0xed, 0x29, 0xff, 0xed, 0x29, 0xff, 0xed, 0x29, 0xff, 0xed, 0x29, 0xff, 0xed, 0x29, 0xff, 0xed, 0x29, 0xff, 0xed, 0x29, 0xff, 0xed, 0x29, 0xff, 0xed, 0x29, 0xff, 0xed, 0x29, 0xff, 0xed, 0x29, 0xff, 0xed, 0x29, 0xff, 0xed, 0x29, 0xff, 0xed, 0x29, 0xff, 0xed, 0x29, 0xff, 0xed, 0x29, 0xff, 0xed, 0x29, 0xff, 0xed, 0x29, 0xff, 0xed, 0x29, 0xff, 0xed, 0x29, 0xff, 0xed, 0x29, 0xff, 0xe3, 0x88, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x67, 0xff, 0xc4, 0x47, 0xd6, 0xc4, 0x47, 0xa0, + 0xc4, 0x47, 0x51, 0xe2, 0x27, 0xf9, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xf4, 0x69, 0xff, 0xf5, 0x69, 0xff, 0xf5, 0x69, 0xff, 0xf5, 0x69, 0xff, 0xf5, 0x69, 0xff, 0xf5, 0x69, 0xff, 0xf5, 0x69, 0xff, 0xf5, 0x69, 0xff, 0xf5, 0x69, 0xff, 0xf5, 0x69, 0xff, 0xf5, 0x69, 0xff, 0xf5, 0x69, 0xff, 0xf5, 0x69, 0xff, 0xf5, 0x69, 0xff, 0xf5, 0x69, 0xff, 0xf5, 0x69, 0xff, 0xf5, 0x69, 0xff, 0xf5, 0x49, 0xff, 0xea, 0xe8, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x48, 0xff, 0xf4, 0x68, 0xff, 0xf5, 0x69, 0xff, 0xf5, 0x69, 0xff, 0xf5, 0x69, 0xff, 0xf5, 0x69, 0xff, 0xf5, 0x69, 0xff, 0xf5, 0x69, 0xff, 0xf5, 0x69, 0xff, 0xf5, 0x69, 0xff, 0xf5, 0x69, 0xff, 0xf5, 0x69, 0xff, 0xf5, 0x69, 0xff, 0xf5, 0x69, 0xff, 0xf5, 0x69, 0xff, 0xf5, 0x69, 0xff, 0xf5, 0x69, 0xff, 0xf5, 0x69, 0xff, 0xf5, 0x69, 0xff, 0xf5, 0x69, 0xff, 0xf5, 0x69, 0xff, 0xf5, 0x69, 0xff, 0xec, 0x08, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x47, 0xff, 0xc4, 0x47, 0xd6, 0xc4, 0x47, 0xa0, + 0xc4, 0x47, 0x51, 0xe2, 0x07, 0xfb, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe4, 0x68, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe4, 0xc8, 0xff, 0xe2, 0xe8, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x47, 0xff, 0xe4, 0x28, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe4, 0x08, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x27, 0xff, 0xc4, 0x47, 0xd6, 0xc4, 0x47, 0xa0, + 0xc4, 0x47, 0x51, 0xe2, 0x07, 0xfc, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe4, 0x68, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe4, 0xc8, 0xff, 0xe2, 0xe8, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x47, 0xff, 0xe4, 0x28, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe4, 0x28, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x07, 0xff, 0xc4, 0x47, 0xd6, 0xc4, 0x47, 0xa0, + 0xc4, 0x47, 0x51, 0xe2, 0x07, 0xfa, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe4, 0x48, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe4, 0xc8, 0xff, 0xe2, 0xe8, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x47, 0xff, 0xe4, 0x28, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe4, 0x08, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x27, 0xff, 0xc4, 0x47, 0xd6, 0xc4, 0x47, 0xa0, + 0xc4, 0x47, 0x51, 0xe2, 0x27, 0xf8, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe4, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe4, 0xc8, 0xff, 0xe2, 0xe8, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x27, 0xff, 0xe4, 0x28, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe3, 0xc8, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x47, 0xff, 0xc4, 0x47, 0xd6, 0xc4, 0x47, 0xa0, + 0xc4, 0x47, 0x51, 0xda, 0x47, 0xf4, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe3, 0xc8, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x09, 0xff, 0xe5, 0x09, 0xff, 0xe5, 0x09, 0xff, 0xe5, 0x09, 0xff, 0xe5, 0x09, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x09, 0xff, 0xe5, 0x09, 0xff, 0xe5, 0x09, 0xff, 0xe5, 0x09, 0xff, 0xe5, 0x08, 0xff, 0xe4, 0xc8, 0xff, 0xe2, 0xe8, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x27, 0xff, 0xe4, 0x28, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x09, 0xff, 0xe5, 0x09, 0xff, 0xe5, 0x09, 0xff, 0xe5, 0x09, 0xff, 0xe5, 0x09, 0xff, 0xe5, 0x09, 0xff, 0xe5, 0x09, 0xff, 0xe5, 0x09, 0xff, 0xe5, 0x09, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe3, 0x68, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xda, 0x67, 0xff, 0xc4, 0x47, 0xd6, 0xc4, 0x47, 0xa0, + 0xc4, 0x47, 0x51, 0xda, 0xa7, 0xef, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe3, 0x48, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x09, 0xff, 0xe5, 0x09, 0xff, 0xe4, 0xe7, 0xff, 0xdc, 0xc6, 0xff, 0xdc, 0xc6, 0xff, 0xdc, 0xc6, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x09, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x09, 0xff, 0xe5, 0x08, 0xff, 0xdc, 0xc7, 0xff, 0xdc, 0xc7, 0xff, 0xdc, 0xc6, 0xff, 0xdc, 0xc7, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x09, 0xff, 0xe4, 0xc8, 0xff, 0xe2, 0xe8, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x27, 0xff, 0xe4, 0x28, 0xff, 0xe5, 0x09, 0xff, 0xe4, 0xe7, 0xff, 0xdc, 0xc6, 0xff, 0xdc, 0xc6, 0xff, 0xdc, 0xc7, 0xff, 0xdc, 0xc7, 0xff, 0xdc, 0xc7, 0xff, 0xdc, 0xc7, 0xff, 0xe4, 0xe7, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x09, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe4, 0xe8, 0xff, 0xe3, 0x08, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x07, 0xff, 0xda, 0xc7, 0xff, 0xc4, 0x47, 0xd6, 0xc4, 0x47, 0xa0, + 0xbc, 0x47, 0x51, 0xd2, 0xe7, 0xe9, 0xe2, 0x07, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0xa8, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x09, 0xff, 0xe4, 0xe8, 0xff, 0xdc, 0xa6, 0xff, 0xdc, 0xc7, 0xff, 0xe4, 0xe7, 0xff, 0xdc, 0xc6, 0xff, 0xdc, 0xa6, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x29, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x09, 0xff, 0xe4, 0xe8, 0xff, 0xdc, 0xc6, 0xff, 0xdc, 0xc7, 0xff, 0xdc, 0xc7, 0xff, 0xdc, 0xc6, 0xff, 0xe4, 0xe7, 0xff, 0xe5, 0x29, 0xff, 0xe5, 0x09, 0xff, 0xe4, 0xe9, 0xff, 0xe2, 0xc8, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x27, 0xff, 0xe4, 0x28, 0xff, 0xdc, 0xc6, 0xff, 0xdc, 0xc6, 0xff, 0xdc, 0xc7, 0xff, 0xdc, 0xc6, 0xff, 0xdc, 0xc6, 0xff, 0xdc, 0xc7, 0xff, 0xdc, 0xc6, 0xff, 0xdc, 0x85, 0xff, 0xdc, 0x84, 0xff, 0xe4, 0xe8, 0xff, 0xe5, 0x29, 0xff, 0xe5, 0x08, 0xff, 0xe4, 0xe8, 0xff, 0xe2, 0x67, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x27, 0xff, 0xd3, 0x28, 0xff, 0xc4, 0x47, 0xd6, 0xbc, 0x47, 0xa0, + 0xbc, 0x47, 0x51, 0xcb, 0x67, 0xe0, 0xe2, 0x27, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x27, 0xff, 0xe4, 0xe8, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe4, 0xe8, 0xff, 0xe4, 0xe7, 0xff, 0xf6, 0x94, 0xff, 0xff, 0x5b, 0xff, 0xff, 0x39, 0xff, 0xff, 0x5a, 0xff, 0xed, 0xef, 0xff, 0xdc, 0xa6, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x29, 0xff, 0xdc, 0xc6, 0xff, 0xe5, 0x6b, 0xff, 0xff, 0x19, 0xff, 0xff, 0x5a, 0xff, 0xff, 0x5a, 0xff, 0xff, 0x39, 0xff, 0xe5, 0x4a, 0xff, 0xdc, 0xa5, 0xff, 0xe5, 0x29, 0xff, 0xe5, 0x08, 0xff, 0xdc, 0x65, 0xff, 0xeb, 0x2a, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x27, 0xff, 0xed, 0x51, 0xff, 0xff, 0x7b, 0xff, 0xff, 0x39, 0xff, 0xff, 0x39, 0xff, 0xff, 0x39, 0xff, 0xff, 0x39, 0xff, 0xff, 0x19, 0xff, 0xf6, 0xf7, 0xff, 0xed, 0xad, 0xff, 0xdc, 0x85, 0xff, 0xe4, 0xe8, 0xff, 0xe5, 0x09, 0xff, 0xe4, 0x88, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x87, 0xff, 0xd3, 0xa7, 0xff, 0xc4, 0x47, 0xd6, 0xbc, 0x47, 0xa0, + 0xbc, 0x47, 0x51, 0xc4, 0x07, 0xd6, 0xe2, 0x67, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x07, 0xff, 0xe4, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xdc, 0xc6, 0xff, 0xe5, 0x6c, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x5a, 0xff, 0xdc, 0xc6, 0xff, 0xdc, 0xc6, 0xff, 0xe5, 0x2a, 0xff, 0xdc, 0x85, 0xff, 0xed, 0xce, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf6, 0x53, 0xff, 0xdc, 0x43, 0xff, 0xe5, 0x08, 0xff, 0xdc, 0xa6, 0xff, 0xe4, 0xe7, 0xff, 0xff, 0x7c, 0xff, 0xeb, 0xaf, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xea, 0x6a, 0xff, 0xfe, 0x59, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xee, 0x31, 0xff, 0xdc, 0xa6, 0xff, 0xe5, 0x09, 0xff, 0xe3, 0xc8, 0xff, 0xe1, 0xc7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xda, 0xe8, 0xff, 0xcc, 0x27, 0xff, 0xc4, 0x47, 0xd6, 0xbc, 0x47, 0xa0, + 0xbc, 0x47, 0x51, 0xc4, 0x47, 0xd2, 0xdb, 0x07, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0xe8, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xdc, 0xa5, 0xff, 0xee, 0x31, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xde, 0xff, 0xe5, 0x6b, 0xff, 0xdc, 0x85, 0xff, 0xe5, 0x2a, 0xff, 0xdc, 0x85, 0xff, 0xed, 0xae, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x39, 0xff, 0xdc, 0xa5, 0xff, 0xdc, 0xc6, 0xff, 0xdc, 0x64, 0xff, 0xed, 0x8d, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xeb, 0xaf, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xea, 0x8a, 0xff, 0xfe, 0x59, 0xff, 0xff, 0x7c, 0xff, 0xff, 0x5a, 0xff, 0xff, 0x3a, 0xff, 0xff, 0x9c, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xdd, 0xff, 0xe5, 0x2a, 0xff, 0xdc, 0xa6, 0xff, 0xe2, 0xa8, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xdb, 0x68, 0xff, 0xcc, 0x67, 0xff, 0xc4, 0x47, 0xd6, 0xbc, 0x47, 0xa0, + 0xbc, 0x47, 0x51, 0xc4, 0x47, 0xd1, 0xd3, 0xc7, 0xff, 0xe2, 0x07, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x27, 0xff, 0xe4, 0xc8, 0xff, 0xe5, 0x08, 0xff, 0xe4, 0xe8, 0xff, 0xdc, 0xa6, 0xff, 0xf6, 0xd6, 0xff, 0xff, 0xff, 0xff, 0xff, 0xbd, 0xff, 0xff, 0x39, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xee, 0x31, 0xff, 0xdc, 0x84, 0xff, 0xe5, 0x09, 0xff, 0xdc, 0xa5, 0xff, 0xed, 0xae, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xdf, 0xff, 0xe5, 0x4b, 0xff, 0xdc, 0x64, 0xff, 0xdc, 0x84, 0xff, 0xf6, 0x74, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xdf, 0xff, 0xeb, 0xae, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xea, 0x8a, 0xff, 0xe4, 0x6a, 0xff, 0xdc, 0x85, 0xff, 0xdc, 0xc6, 0xff, 0xe4, 0xe8, 0xff, 0xff, 0x7b, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xed, 0xce, 0xff, 0xdc, 0x05, 0xff, 0xe1, 0xc7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x47, 0xff, 0xd4, 0x28, 0xff, 0xcc, 0x67, 0xff, 0xc4, 0x47, 0xd6, 0xbc, 0x47, 0xa0, + 0xbc, 0x47, 0x51, 0xc4, 0x47, 0xd1, 0xcc, 0x67, 0xff, 0xe2, 0x47, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe3, 0x28, 0xff, 0xe5, 0x08, 0xff, 0xe4, 0xe7, 0xff, 0xe5, 0x09, 0xff, 0xff, 0x7b, 0xff, 0xff, 0xff, 0xff, 0xff, 0x18, 0xff, 0xed, 0xad, 0xff, 0xff, 0x9c, 0xff, 0xff, 0xff, 0xff, 0xf6, 0xd6, 0xff, 0xdc, 0x85, 0xff, 0xe4, 0xe8, 0xff, 0xdc, 0xa5, 0xff, 0xed, 0xad, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x39, 0xff, 0xff, 0x9c, 0xff, 0xff, 0xff, 0xff, 0xee, 0x11, 0xff, 0xdc, 0x21, 0xff, 0xdc, 0xc6, 0xff, 0xff, 0x5a, 0xff, 0xff, 0xff, 0xff, 0xff, 0x18, 0xff, 0xff, 0x9c, 0xff, 0xff, 0xff, 0xff, 0xeb, 0x8d, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x48, 0xff, 0xdb, 0xa4, 0xff, 0xdc, 0xa5, 0xff, 0xdc, 0x63, 0xff, 0xf7, 0x18, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xed, 0xcf, 0xff, 0xe2, 0xe6, 0xff, 0xe1, 0xc7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0xc8, 0xff, 0xd4, 0xa8, 0xff, 0xcc, 0x67, 0xff, 0xc4, 0x47, 0xd6, 0xbc, 0x47, 0xa0, + 0xbc, 0x47, 0x51, 0xc4, 0x47, 0xd1, 0xcc, 0x67, 0xff, 0xdb, 0x68, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x27, 0xff, 0xe4, 0xa9, 0xff, 0xdc, 0xa6, 0xff, 0xe5, 0x8c, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf6, 0x95, 0xff, 0xdc, 0x85, 0xff, 0xff, 0x5b, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7b, 0xff, 0xdc, 0xe7, 0xff, 0xdc, 0xc7, 0xff, 0xdc, 0xa6, 0xff, 0xed, 0xad, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf6, 0xb5, 0xff, 0xf6, 0xb6, 0xff, 0xff, 0xff, 0xff, 0xf7, 0x18, 0xff, 0xd4, 0x22, 0xff, 0xe5, 0x29, 0xff, 0xff, 0xff, 0xff, 0xff, 0xbd, 0xff, 0xee, 0x10, 0xff, 0xff, 0x5a, 0xff, 0xff, 0xff, 0xff, 0xff, 0x39, 0xff, 0xe2, 0xa6, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x27, 0xff, 0xe4, 0x07, 0xff, 0xdc, 0x64, 0xff, 0xf6, 0xf7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xed, 0x2d, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x07, 0xff, 0xdb, 0xc8, 0xff, 0xd4, 0xa8, 0xff, 0xcc, 0x67, 0xff, 0xc4, 0x47, 0xd6, 0xbc, 0x47, 0xa0, + 0xbc, 0x47, 0x51, 0xc4, 0x47, 0xd1, 0xc4, 0x67, 0xff, 0xd4, 0x68, 0xff, 0xe2, 0x27, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe3, 0x28, 0xff, 0xdc, 0xa5, 0xff, 0xee, 0x31, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xee, 0x32, 0xff, 0xd4, 0x00, 0xff, 0xff, 0x18, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe5, 0x8c, 0xff, 0xdc, 0x85, 0xff, 0xdc, 0xa5, 0xff, 0xed, 0xae, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf6, 0x74, 0xff, 0xed, 0xad, 0xff, 0xff, 0xff, 0xff, 0xff, 0xde, 0xff, 0xdc, 0x84, 0xff, 0xed, 0xce, 0xff, 0xff, 0xff, 0xff, 0xff, 0x18, 0xff, 0xe5, 0x6b, 0xff, 0xff, 0x7b, 0xff, 0xff, 0xff, 0xff, 0xff, 0x5a, 0xff, 0xdc, 0x64, 0xff, 0xe2, 0xc7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x27, 0xff, 0xdb, 0xa4, 0xff, 0xff, 0x39, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe2, 0xe9, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x88, 0xff, 0xdc, 0xc8, 0xff, 0xd4, 0xa8, 0xff, 0xc4, 0x67, 0xff, 0xc4, 0x47, 0xd6, 0xbc, 0x47, 0xa0, + 0xbc, 0x47, 0x51, 0xc4, 0x47, 0xd1, 0xc4, 0x67, 0xff, 0xd4, 0xa8, 0xff, 0xe3, 0x48, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x07, 0xff, 0xe4, 0x07, 0xff, 0xf6, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe5, 0xad, 0xff, 0xd3, 0xe0, 0xff, 0xf6, 0x73, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xee, 0x32, 0xff, 0xdc, 0x64, 0xff, 0xdc, 0x84, 0xff, 0xed, 0xae, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf6, 0x94, 0xff, 0xdc, 0xc7, 0xff, 0xff, 0xbd, 0xff, 0xff, 0xff, 0xff, 0xe5, 0x8c, 0xff, 0xf6, 0x94, 0xff, 0xff, 0xff, 0xff, 0xf6, 0x73, 0xff, 0xdc, 0xc7, 0xff, 0xff, 0xbd, 0xff, 0xff, 0xff, 0xff, 0xff, 0x5a, 0xff, 0xdc, 0x84, 0xff, 0xdc, 0xa7, 0xff, 0xeb, 0xae, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x69, 0xff, 0xfe, 0x59, 0xff, 0xff, 0xff, 0xff, 0xf5, 0x96, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe3, 0xc8, 0xff, 0xdc, 0xc8, 0xff, 0xd4, 0xa8, 0xff, 0xc4, 0x67, 0xff, 0xc4, 0x47, 0xd6, 0xbc, 0x47, 0xa0, + 0xbc, 0x27, 0x51, 0xbc, 0x47, 0xd1, 0xc4, 0x67, 0xff, 0xd4, 0xa8, 0xff, 0xdc, 0xa8, 0xff, 0xe2, 0x27, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x88, 0xff, 0xfe, 0xda, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7b, 0xff, 0xdc, 0x64, 0xff, 0xd3, 0x80, 0xff, 0xe5, 0x4a, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf7, 0x18, 0xff, 0xdc, 0x85, 0xff, 0xdc, 0x43, 0xff, 0xed, 0xce, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf6, 0xd6, 0xff, 0xd4, 0x22, 0xff, 0xf6, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0x5a, 0xff, 0xff, 0xbd, 0xff, 0xff, 0xff, 0xff, 0xe5, 0x6b, 0xff, 0xdc, 0xa6, 0xff, 0xff, 0xde, 0xff, 0xff, 0xff, 0xff, 0xff, 0x5a, 0xff, 0xdc, 0x64, 0xff, 0xdc, 0xc7, 0xff, 0xff, 0x3a, 0xff, 0xeb, 0xcf, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xea, 0xeb, 0xff, 0xf5, 0x96, 0xff, 0xea, 0x69, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x87, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xc8, 0xff, 0xd4, 0xa8, 0xff, 0xc4, 0x67, 0xff, 0xbc, 0x47, 0xd6, 0xbc, 0x27, 0xa0, + 0xbc, 0x27, 0x51, 0xbc, 0x47, 0xd1, 0xc4, 0x67, 0xff, 0xd4, 0xa8, 0xff, 0xdc, 0xc8, 0xff, 0xe3, 0xe8, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xeb, 0xef, 0xff, 0xff, 0xbe, 0xff, 0xff, 0x39, 0xff, 0xe5, 0x4b, 0xff, 0xe5, 0x29, 0xff, 0xe5, 0x8d, 0xff, 0xff, 0xbd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xbd, 0xff, 0xe5, 0x29, 0xff, 0xd4, 0x21, 0xff, 0xed, 0xce, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf6, 0xf7, 0xff, 0xd3, 0xe0, 0xff, 0xee, 0x10, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xde, 0xff, 0xdc, 0xa6, 0xff, 0xdc, 0xc7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x5a, 0xff, 0xdc, 0x84, 0xff, 0xdc, 0xc7, 0xff, 0xff, 0x7c, 0xff, 0xff, 0x9e, 0xff, 0xeb, 0xcf, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe4, 0x48, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xc8, 0xff, 0xd4, 0xa8, 0xff, 0xc4, 0x67, 0xff, 0xbc, 0x47, 0xd6, 0xbc, 0x27, 0xa0, + 0xbc, 0x27, 0x51, 0xbc, 0x47, 0xd1, 0xc4, 0x67, 0xff, 0xd4, 0xa8, 0xff, 0xdc, 0xc8, 0xff, 0xdc, 0xe8, 0xff, 0xe3, 0x08, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe8, 0xff, 0xf4, 0x51, 0xff, 0xff, 0xbe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xed, 0xce, 0xff, 0xd3, 0xe0, 0xff, 0xe5, 0xae, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf7, 0x18, 0xff, 0xd4, 0x01, 0xff, 0xe5, 0x2a, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x39, 0xff, 0xd4, 0x01, 0xff, 0xe5, 0x29, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x5a, 0xff, 0xdc, 0x84, 0xff, 0xdc, 0xc7, 0xff, 0xff, 0x7c, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7d, 0xff, 0xe3, 0x2a, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe3, 0x68, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xc8, 0xff, 0xd4, 0xa8, 0xff, 0xc4, 0x67, 0xff, 0xbc, 0x47, 0xd6, 0xbc, 0x27, 0xa0, + 0xbc, 0x47, 0x51, 0xbc, 0x47, 0xd1, 0xc4, 0x67, 0xff, 0xd4, 0xa8, 0xff, 0xdc, 0xc8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xa8, 0xff, 0xe2, 0x67, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe8, 0xff, 0xf4, 0x51, 0xff, 0xff, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf6, 0x94, 0xff, 0xd3, 0xe0, 0xff, 0xe5, 0x8d, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x18, 0xff, 0xdc, 0x64, 0xff, 0xdc, 0x84, 0xff, 0xf6, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0xde, 0xff, 0xed, 0xf0, 0xff, 0xd3, 0xe0, 0xff, 0xe5, 0x4b, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x5a, 0xff, 0xdc, 0x84, 0xff, 0xdc, 0xc7, 0xff, 0xff, 0x7c, 0xff, 0xff, 0xff, 0xff, 0xff, 0xdf, 0xff, 0xdc, 0xc9, 0xff, 0xda, 0xc5, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0xa7, 0xff, 0xdc, 0xc8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xc8, 0xff, 0xd4, 0xa8, 0xff, 0xc4, 0x67, 0xff, 0xbc, 0x27, 0xd6, 0xbc, 0x47, 0xa0, + 0xbc, 0x47, 0x51, 0xbc, 0x47, 0xd1, 0xc4, 0x67, 0xff, 0xd4, 0xa8, 0xff, 0xdc, 0xc8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xe4, 0x69, 0xff, 0xe2, 0x07, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0xe9, 0xff, 0xed, 0x6e, 0xff, 0xe5, 0x6b, 0xff, 0xee, 0x53, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x5a, 0xff, 0xd4, 0x22, 0xff, 0xe5, 0x6b, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf7, 0x18, 0xff, 0xdc, 0xa6, 0xff, 0xdc, 0xa6, 0xff, 0xdc, 0xe8, 0xff, 0xe5, 0x4b, 0xff, 0xe5, 0x2a, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0x85, 0xff, 0xe5, 0x6b, 0xff, 0xff, 0xde, 0xff, 0xff, 0xff, 0xff, 0xff, 0x5a, 0xff, 0xdc, 0x84, 0xff, 0xdc, 0xc7, 0xff, 0xff, 0x7c, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe5, 0x6c, 0xff, 0xdc, 0x06, 0xff, 0xe2, 0x28, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x48, 0xff, 0xe4, 0x88, 0xff, 0xdd, 0x08, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xc8, 0xff, 0xcc, 0xa8, 0xff, 0xc4, 0x67, 0xff, 0xbc, 0x27, 0xd6, 0xbc, 0x47, 0xa0, + 0xbc, 0x47, 0x51, 0xbc, 0x47, 0xd1, 0xc4, 0x67, 0xff, 0xd4, 0xa8, 0xff, 0xd4, 0xc8, 0xff, 0xdc, 0xe8, 0xff, 0xdd, 0x08, 0xff, 0xdd, 0x09, 0xff, 0xdb, 0xa5, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x47, 0xff, 0xdb, 0x43, 0xff, 0xdc, 0xc6, 0xff, 0xff, 0xbd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xde, 0xff, 0xdc, 0xc7, 0xff, 0xe5, 0x2a, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf7, 0x18, 0xff, 0xdc, 0xa6, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xc7, 0xff, 0xdc, 0x64, 0xff, 0xdc, 0x85, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0x85, 0xff, 0xe5, 0x4b, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0x5a, 0xff, 0xdc, 0x64, 0xff, 0xdc, 0xc7, 0xff, 0xff, 0x9c, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe4, 0x0a, 0xff, 0xe2, 0x47, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x07, 0xff, 0xe4, 0x48, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xd4, 0xc8, 0xff, 0xd4, 0xa8, 0xff, 0xc4, 0x67, 0xff, 0xbc, 0x27, 0xd6, 0xbc, 0x47, 0xa0, + 0xbc, 0x47, 0x51, 0xbc, 0x47, 0xd1, 0xc4, 0x67, 0xff, 0xd4, 0xa8, 0xff, 0xd4, 0xc8, 0xff, 0xdc, 0xe8, 0xff, 0xdd, 0x09, 0xff, 0xdc, 0xc7, 0xff, 0xdc, 0x64, 0xff, 0xed, 0x52, 0xff, 0xe2, 0x08, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x07, 0xff, 0xe2, 0xc7, 0xff, 0xf6, 0x56, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe5, 0x8d, 0xff, 0xe5, 0x09, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x18, 0xff, 0xdc, 0x85, 0xff, 0xdc, 0xc7, 0xff, 0xe5, 0x09, 0xff, 0xdd, 0x09, 0xff, 0xe5, 0x09, 0xff, 0xe5, 0x09, 0xff, 0xdc, 0x65, 0xff, 0xe5, 0x4a, 0xff, 0xff, 0xde, 0xff, 0xff, 0xff, 0xff, 0xff, 0x5a, 0xff, 0xdc, 0x64, 0xff, 0xdc, 0xa7, 0xff, 0xff, 0x7b, 0xff, 0xfe, 0xdb, 0xff, 0xeb, 0xcf, 0xff, 0xe2, 0x07, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x27, 0xff, 0xe4, 0x48, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xd4, 0xc8, 0xff, 0xd4, 0xa8, 0xff, 0xc4, 0x67, 0xff, 0xbc, 0x27, 0xd6, 0xbc, 0x47, 0xa0, + 0xbc, 0x27, 0x51, 0xbc, 0x47, 0xd1, 0xc4, 0x67, 0xff, 0xcc, 0xa8, 0xff, 0xd4, 0xc8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe9, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xc7, 0xff, 0xe5, 0xad, 0xff, 0xec, 0xce, 0xff, 0xe2, 0x48, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x28, 0xff, 0xeb, 0xcc, 0xff, 0xed, 0x4f, 0xff, 0xe5, 0x4b, 0xff, 0xdc, 0xe8, 0xff, 0xed, 0xcf, 0xff, 0xee, 0x11, 0xff, 0xe5, 0x6c, 0xff, 0xdc, 0xc7, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdd, 0x09, 0xff, 0xdc, 0xe7, 0xff, 0xdc, 0xe8, 0xff, 0xe5, 0xce, 0xff, 0xee, 0x11, 0xff, 0xe5, 0x8d, 0xff, 0xdc, 0xc7, 0xff, 0xdc, 0x27, 0xff, 0xe3, 0x29, 0xff, 0xe2, 0x08, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x48, 0xff, 0xdc, 0x48, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xd4, 0xc8, 0xff, 0xcc, 0xa8, 0xff, 0xc4, 0x67, 0xff, 0xbc, 0x27, 0xd6, 0xbc, 0x47, 0xa0, + 0xc4, 0x26, 0x51, 0xbc, 0x47, 0xd1, 0xc4, 0x67, 0xff, 0xcc, 0xa8, 0xff, 0xd4, 0xc8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe9, 0xff, 0xdd, 0x09, 0xff, 0xdc, 0xc7, 0xff, 0xdc, 0x85, 0xff, 0xdc, 0x06, 0xff, 0xe2, 0x67, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0xc8, 0xff, 0xe3, 0xc8, 0xff, 0xdc, 0x46, 0xff, 0xdc, 0x65, 0xff, 0xdc, 0xa7, 0xff, 0xdc, 0xe9, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe9, 0xff, 0xdc, 0xc8, 0xff, 0xdc, 0x86, 0xff, 0xdc, 0x26, 0xff, 0xe3, 0x67, 0xff, 0xe2, 0xa8, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0xa7, 0xff, 0xdc, 0x88, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xd4, 0xc8, 0xff, 0xcc, 0xa8, 0xff, 0xc4, 0x67, 0xff, 0xbc, 0x27, 0xd6, 0xbc, 0x27, 0xa0, + 0xbc, 0x27, 0x53, 0xbc, 0x27, 0xd1, 0xc4, 0x67, 0xff, 0xcc, 0x88, 0xff, 0xd4, 0xc8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xa8, 0xff, 0xe3, 0x08, 0xff, 0xe2, 0x07, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x87, 0xff, 0xe3, 0x08, 0xff, 0xe3, 0x68, 0xff, 0xe3, 0xc8, 0xff, 0xe3, 0xe8, 0xff, 0xe4, 0x08, 0xff, 0xe3, 0xe8, 0xff, 0xe3, 0xc8, 0xff, 0xe3, 0x68, 0xff, 0xe2, 0xe8, 0xff, 0xe2, 0x67, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x07, 0xff, 0xe3, 0x48, 0xff, 0xdc, 0xc8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xd4, 0xc8, 0xff, 0xcc, 0xa8, 0xff, 0xc4, 0x67, 0xff, 0xbc, 0x27, 0xd7, 0xbc, 0x27, 0xa1, + 0x94, 0x0d, 0x5a, 0xbc, 0x48, 0xd7, 0xcc, 0x66, 0xff, 0xcc, 0xa8, 0xff, 0xd4, 0xc8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xe4, 0x08, 0xff, 0xe2, 0x67, 0xff, 0xe2, 0x07, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x07, 0xff, 0xe2, 0xa8, 0xff, 0xe4, 0x48, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xd4, 0xc8, 0xff, 0xcc, 0xa8, 0xff, 0xc4, 0x67, 0xff, 0xbc, 0x47, 0xde, 0xbc, 0x47, 0xa9, + 0xb4, 0x49, 0x35, 0xbc, 0x47, 0xc1, 0xc4, 0x47, 0xff, 0xcc, 0x88, 0xff, 0xd4, 0xc8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xc8, 0xff, 0xe3, 0x88, 0xff, 0xe2, 0x67, 0xff, 0xe2, 0x07, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x07, 0xff, 0xe2, 0x87, 0xff, 0xe3, 0xa8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xc8, 0xff, 0xd4, 0xc8, 0xff, 0xcc, 0x88, 0xff, 0xc4, 0x47, 0xff, 0xbc, 0x47, 0xc8, 0xbc, 0x47, 0x8b, + 0x00, 0x00, 0x00, 0xab, 0x88, 0x7f, 0xbc, 0x27, 0xff, 0xcc, 0xa7, 0xff, 0xd4, 0xa8, 0xff, 0xd4, 0xc8, 0xff, 0xdc, 0xc8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xa8, 0xff, 0xdb, 0xa8, 0xff, 0xe2, 0xa8, 0xff, 0xe2, 0x47, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x47, 0xff, 0xe2, 0xc8, 0xff, 0xdb, 0xc8, 0xff, 0xdc, 0xc8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xc8, 0xff, 0xd4, 0xc8, 0xff, 0xd4, 0xa8, 0xff, 0xcc, 0xa7, 0xff, 0xbc, 0x27, 0xff, 0xab, 0x89, 0x84, 0xab, 0x89, 0x2b, + 0x00, 0x00, 0x00, 0xc5, 0x26, 0x19, 0xc4, 0x47, 0xcd, 0xbb, 0xe8, 0xff, 0xcc, 0x87, 0xff, 0xd4, 0xa8, 0xff, 0xd4, 0xa8, 0xff, 0xd4, 0xc8, 0xff, 0xd4, 0xc8, 0xff, 0xd4, 0xc8, 0xff, 0xd4, 0xc8, 0xff, 0xd4, 0xc8, 0xff, 0xd4, 0xc8, 0xff, 0xd4, 0xc8, 0xff, 0xd4, 0xc8, 0xff, 0xd4, 0xc8, 0xff, 0xd4, 0xc8, 0xff, 0xd4, 0xc8, 0xff, 0xd4, 0xc8, 0xff, 0xd4, 0xc8, 0xff, 0xdc, 0x08, 0xff, 0xdb, 0x68, 0xff, 0xe2, 0xc7, 0xff, 0xe2, 0x87, 0xff, 0xe2, 0x27, 0xff, 0xe2, 0x07, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x07, 0xff, 0xe2, 0x47, 0xff, 0xe2, 0x87, 0xff, 0xe2, 0xc7, 0xff, 0xdb, 0x88, 0xff, 0xdc, 0x48, 0xff, 0xd4, 0xc8, 0xff, 0xd4, 0xc8, 0xff, 0xd4, 0xc8, 0xff, 0xd4, 0xc8, 0xff, 0xd4, 0xc8, 0xff, 0xd4, 0xc8, 0xff, 0xd4, 0xc8, 0xff, 0xd4, 0xc8, 0xff, 0xd4, 0xc8, 0xff, 0xd4, 0xc8, 0xff, 0xd4, 0xc8, 0xff, 0xd4, 0xc8, 0xff, 0xd4, 0xc8, 0xff, 0xd4, 0xa8, 0xff, 0xd4, 0xa8, 0xff, 0xd4, 0x88, 0xff, 0xcc, 0x87, 0xff, 0xbb, 0xe8, 0xff, 0xc4, 0x47, 0xcd, 0xcd, 0x46, 0x1a, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xdd, 0x85, 0x2d, 0xbb, 0xe8, 0xd4, 0xc4, 0x67, 0xff, 0xc4, 0x67, 0xff, 0xcc, 0x87, 0xff, 0xcc, 0x88, 0xff, 0xcc, 0x66, 0xff, 0xcc, 0x65, 0xff, 0xcc, 0x66, 0xff, 0xcc, 0x66, 0xff, 0xcc, 0x66, 0xff, 0xcc, 0x66, 0xff, 0xcc, 0x66, 0xff, 0xcc, 0x66, 0xff, 0xcc, 0x66, 0xff, 0xd4, 0x65, 0xff, 0xcc, 0x87, 0xff, 0xcc, 0x88, 0xff, 0xcc, 0x88, 0xff, 0xcc, 0x88, 0xff, 0xd4, 0x28, 0xff, 0xd3, 0xa8, 0xff, 0xdb, 0x07, 0xff, 0xda, 0xc7, 0xff, 0xe2, 0x67, 0xff, 0xe2, 0x47, 0xff, 0xe2, 0x27, 0xff, 0xe2, 0x07, 0xff, 0xe2, 0x27, 0xff, 0xe2, 0x47, 0xff, 0xe2, 0x87, 0xff, 0xda, 0xe7, 0xff, 0xdb, 0x27, 0xff, 0xd3, 0xc8, 0xff, 0xcc, 0x48, 0xff, 0xcc, 0x88, 0xff, 0xcc, 0x88, 0xff, 0xcc, 0x88, 0xff, 0xcc, 0xa8, 0xff, 0xcc, 0x87, 0xff, 0xcc, 0x65, 0xff, 0xcc, 0x66, 0xff, 0xcc, 0x66, 0xff, 0xcc, 0x66, 0xff, 0xcc, 0x66, 0xff, 0xcc, 0x66, 0xff, 0xcc, 0x66, 0xff, 0xcc, 0x66, 0xff, 0xd4, 0x65, 0xff, 0xcc, 0x66, 0xff, 0xcc, 0x88, 0xff, 0xcc, 0x87, 0xff, 0xc4, 0x67, 0xff, 0xc4, 0x67, 0xff, 0xbb, 0xe8, 0xd4, 0xdd, 0x85, 0x2d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc4, 0x86, 0x19, 0xbb, 0xe8, 0x73, 0xbc, 0x28, 0xb4, 0xbc, 0x48, 0xc3, 0xc4, 0x25, 0xc2, 0xc4, 0x25, 0xac, 0xc4, 0x67, 0x87, 0xc4, 0x47, 0x8a, 0xc4, 0x47, 0x8f, 0xc4, 0x47, 0x8e, 0xc4, 0x47, 0x8e, 0xc4, 0x47, 0x8e, 0xc4, 0x47, 0x8f, 0xc4, 0x67, 0x89, 0xc4, 0x47, 0x8d, 0xcc, 0x24, 0xb1, 0xc4, 0x46, 0xbf, 0xc4, 0x68, 0xbb, 0xc4, 0x67, 0xbb, 0xc4, 0x67, 0xbb, 0xc4, 0x67, 0xbb, 0xc4, 0x67, 0xbb, 0xc4, 0x67, 0xbb, 0xc4, 0x67, 0xbb, 0xc4, 0x67, 0xbb, 0xc4, 0x67, 0xbb, 0xc4, 0x67, 0xbb, 0xc4, 0x67, 0xbb, 0xc4, 0x67, 0xbb, 0xc4, 0x67, 0xbb, 0xc4, 0x67, 0xbb, 0xc4, 0x67, 0xbb, 0xc4, 0x67, 0xbb, 0xc4, 0x67, 0xbb, 0xc4, 0x67, 0xbb, 0xc4, 0x67, 0xbb, 0xc4, 0x68, 0xbb, 0xc4, 0x47, 0xbe, 0xc4, 0x24, 0xb2, 0xc4, 0x47, 0x8f, 0xc4, 0x67, 0x89, 0xc4, 0x47, 0x8f, 0xc4, 0x47, 0x8e, 0xc4, 0x47, 0x8e, 0xc4, 0x47, 0x8e, 0xc4, 0x47, 0x8f, 0xc4, 0x67, 0x8b, 0xc4, 0x67, 0x86, 0xc4, 0x25, 0xaa, 0xc4, 0x25, 0xc2, 0xbc, 0x68, 0xc3, 0xbc, 0x48, 0xb4, 0xbb, 0xe8, 0x73, 0xc4, 0x86, 0x19, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc4, 0x08, 0x04, 0xbc, 0x66, 0x0b, 0xaa, 0xa0, 0x03, 0xad, 0x79, 0x09, 0xad, 0xd9, 0x27, 0xad, 0x97, 0x23, 0xad, 0xb7, 0x1e, 0xb5, 0x77, 0x1f, 0xb5, 0x77, 0x1f, 0xb5, 0x77, 0x1f, 0xad, 0xb7, 0x1e, 0xad, 0x97, 0x24, 0xa5, 0x79, 0x1f, 0xb4, 0xcd, 0x0a, 0xcb, 0x80, 0x09, 0xbc, 0xa9, 0x07, 0xbc, 0xa9, 0x07, 0xbc, 0xa9, 0x07, 0xbc, 0xa9, 0x07, 0xbc, 0xa9, 0x07, 0xbc, 0xa9, 0x07, 0xbc, 0xa9, 0x07, 0xbc, 0xa9, 0x07, 0xbc, 0xa9, 0x07, 0xbc, 0xa9, 0x07, 0xbc, 0xa9, 0x07, 0xbc, 0xa9, 0x07, 0xbc, 0xa9, 0x07, 0xbc, 0xa9, 0x07, 0xbc, 0xa9, 0x07, 0xbc, 0xa9, 0x07, 0xbc, 0xa9, 0x07, 0xbc, 0xa9, 0x07, 0xbc, 0xa9, 0x07, 0xbc, 0xa9, 0x07, 0xcb, 0x80, 0x09, 0xac, 0x8e, 0x09, 0xad, 0xba, 0x1e, 0xad, 0x97, 0x24, 0xad, 0xb7, 0x1e, 0xb5, 0x77, 0x1f, 0xb5, 0x77, 0x1f, 0xb5, 0x77, 0x1f, 0xad, 0xb7, 0x1e, 0xb5, 0x97, 0x23, 0xa5, 0x78, 0x27, 0x9d, 0xb6, 0x0a, 0xad, 0x60, 0x03, 0xbc, 0x66, 0x0b, 0xc4, 0x08, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xad, 0xfb, 0x59, 0xad, 0xb9, 0xff, 0xad, 0xb9, 0xf4, 0xad, 0xb9, 0xea, 0xad, 0xb9, 0xeb, 0xad, 0xb9, 0xeb, 0xad, 0xb9, 0xeb, 0xad, 0xd9, 0xe9, 0xb5, 0xd9, 0xf4, 0xa5, 0x79, 0xec, 0x95, 0x37, 0x46, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xad, 0xfb, 0x43, 0xad, 0xda, 0xea, 0xad, 0xb9, 0xf4, 0xad, 0xb9, 0xe9, 0xad, 0xb9, 0xeb, 0xad, 0xb9, 0xeb, 0xad, 0xb9, 0xeb, 0xad, 0xd9, 0xea, 0xb5, 0xda, 0xf4, 0xa5, 0x78, 0xff, 0x9d, 0x7a, 0x5c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xad, 0x77, 0x5c, 0xb5, 0x75, 0xff, 0xb5, 0x96, 0xff, 0xb5, 0x96, 0xff, 0xb5, 0x96, 0xff, 0xb5, 0x96, 0xff, 0xb5, 0x96, 0xff, 0xb5, 0x96, 0xff, 0xb5, 0x96, 0xff, 0x9c, 0xf3, 0xf6, 0x8c, 0x94, 0x41, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xad, 0x77, 0x41, 0xb5, 0x75, 0xf5, 0xb5, 0x96, 0xff, 0xb5, 0x96, 0xff, 0xb5, 0x96, 0xff, 0xb5, 0x96, 0xff, 0xb5, 0x96, 0xff, 0xb5, 0x96, 0xff, 0xb5, 0x96, 0xff, 0xa4, 0xf4, 0xff, 0x9c, 0xd3, 0x5c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc6, 0x18, 0x04, 0xa5, 0x14, 0x88, 0xa5, 0x15, 0xee, 0xa5, 0x35, 0xe7, 0xa5, 0x35, 0xdf, 0xa5, 0x35, 0xdf, 0xa5, 0x35, 0xde, 0xa5, 0x35, 0xe9, 0x9c, 0xf4, 0xe3, 0x94, 0xb3, 0x63, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa5, 0x35, 0x63, 0xa5, 0x15, 0xe4, 0xa5, 0x35, 0xea, 0xa5, 0x35, 0xde, 0xa5, 0x35, 0xdf, 0xa5, 0x35, 0xdf, 0xa5, 0x35, 0xe7, 0xa5, 0x14, 0xed, 0x94, 0xb3, 0x86, 0x84, 0x10, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +#endif +#if LV_COLOR_DEPTH == 32 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0xab, 0xe9, 0x46, 0x4f, 0xa9, 0xe6, 0xb5, 0x4f, 0xa9, 0xe6, 0xed, 0x4f, 0xa9, 0xe6, 0xf5, 0x4f, 0xa9, 0xe6, 0xf0, 0x4f, 0xa9, 0xe6, 0xef, 0x4f, 0xa9, 0xe6, 0xef, 0x4f, 0xa9, 0xe6, 0xef, 0x4f, 0xa9, 0xe6, 0xef, 0x4f, 0xa9, 0xe6, 0xef, 0x4f, 0xa9, 0xe6, 0xef, 0x4f, 0xa9, 0xe6, 0xef, 0x4f, 0xa9, 0xe6, 0xef, 0x4f, 0xa9, 0xe6, 0xef, 0x4f, 0xa9, 0xe6, 0xef, 0x4f, 0xa9, 0xe6, 0xef, 0x4f, 0xa9, 0xe6, 0xef, 0x4f, 0xa9, 0xe6, 0xef, 0x4f, 0xa9, 0xe6, 0xef, 0x4f, 0xa9, 0xe6, 0xef, 0x4f, 0xa9, 0xe6, 0xef, 0x4f, 0xa9, 0xe6, 0xef, 0x4f, 0xa9, 0xe6, 0xef, 0x4f, 0xa9, 0xe6, 0xef, 0x4f, 0xa9, 0xe6, 0xef, 0x4f, 0xa9, 0xe6, 0xf1, 0x4f, 0xa9, 0xe6, 0xf4, 0x4f, 0xa9, 0xe6, 0xeb, 0x4f, 0xa9, 0xe6, 0xb4, 0x4f, 0xa9, 0xe5, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x51, 0xaa, 0xe5, 0x75, 0x4f, 0xa9, 0xe6, 0xff, 0x4f, 0xa9, 0xe6, 0xff, 0x4f, 0xa9, 0xe6, 0xf9, 0x4f, 0xa9, 0xe6, 0xf1, 0x4f, 0xa9, 0xe6, 0xf3, 0x4f, 0xa9, 0xe6, 0xf4, 0x4f, 0xa9, 0xe6, 0xf4, 0x4f, 0xa9, 0xe6, 0xf4, 0x4f, 0xa9, 0xe6, 0xf4, 0x4f, 0xa9, 0xe6, 0xf4, 0x4f, 0xa9, 0xe6, 0xf4, 0x4f, 0xa9, 0xe6, 0xf4, 0x4f, 0xa9, 0xe6, 0xf4, 0x4f, 0xa9, 0xe6, 0xf4, 0x4f, 0xa9, 0xe6, 0xf4, 0x4f, 0xa9, 0xe6, 0xf4, 0x4f, 0xa9, 0xe6, 0xf4, 0x4f, 0xa9, 0xe6, 0xf4, 0x4f, 0xa9, 0xe6, 0xf4, 0x4f, 0xa9, 0xe6, 0xf4, 0x4f, 0xa9, 0xe6, 0xf4, 0x4f, 0xa9, 0xe6, 0xf4, 0x4f, 0xa9, 0xe6, 0xf4, 0x4f, 0xa9, 0xe6, 0xf4, 0x4f, 0xa9, 0xe6, 0xf4, 0x4f, 0xa9, 0xe6, 0xf3, 0x4f, 0xa9, 0xe6, 0xf1, 0x4f, 0xa9, 0xe6, 0xf9, 0x4f, 0xa9, 0xe6, 0xff, 0x4f, 0xa9, 0xe5, 0xff, 0x50, 0xa9, 0xe5, 0x76, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x51, 0xa8, 0xe5, 0x58, 0x50, 0xa9, 0xe7, 0xff, 0x4e, 0xa8, 0xe6, 0xff, 0x4f, 0xa8, 0xe5, 0x9f, 0x4e, 0xa9, 0xe6, 0x3e, 0x50, 0xaa, 0xe6, 0x33, 0x4f, 0xa7, 0xe5, 0x3a, 0x4e, 0xa9, 0xe5, 0x3b, 0x4e, 0xa9, 0xe5, 0x3b, 0x4e, 0xa9, 0xe5, 0x3b, 0x4e, 0xa9, 0xe5, 0x3b, 0x4e, 0xa9, 0xe5, 0x3b, 0x4e, 0xa9, 0xe5, 0x3b, 0x4e, 0xa9, 0xe5, 0x3b, 0x4e, 0xa9, 0xe5, 0x3b, 0x4e, 0xa9, 0xe5, 0x3b, 0x4e, 0xa9, 0xe5, 0x3b, 0x4e, 0xa9, 0xe5, 0x3b, 0x4e, 0xa9, 0xe5, 0x3b, 0x4e, 0xa9, 0xe5, 0x3b, 0x4e, 0xa9, 0xe5, 0x3b, 0x4e, 0xa9, 0xe5, 0x3b, 0x4e, 0xa9, 0xe5, 0x3b, 0x4e, 0xa9, 0xe5, 0x3b, 0x4e, 0xa9, 0xe5, 0x3b, 0x4e, 0xa9, 0xe5, 0x3b, 0x4e, 0xa9, 0xe5, 0x3b, 0x51, 0xaa, 0xe4, 0x39, 0x50, 0xaa, 0xe6, 0x33, 0x4e, 0xa9, 0xe6, 0x3e, 0x4f, 0xa8, 0xe4, 0x9f, 0x4e, 0xa8, 0xe5, 0xff, 0x50, 0xa9, 0xe6, 0xff, 0x4f, 0xaa, 0xe8, 0x57, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x51, 0xae, 0xf2, 0x13, 0x4f, 0xa9, 0xe6, 0xbe, 0x4e, 0xa7, 0xe3, 0xff, 0x50, 0xa9, 0xe7, 0x92, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0xa9, 0xe8, 0x92, 0x4e, 0xa7, 0xe4, 0xff, 0x4f, 0xa8, 0xe6, 0xbf, 0x51, 0xae, 0xe4, 0x13, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4c, 0xa3, 0xde, 0x2f, 0x50, 0xaa, 0xe7, 0xff, 0x51, 0xab, 0xe9, 0xef, 0x58, 0xb6, 0xf5, 0x31, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x58, 0xb6, 0xf5, 0x31, 0x51, 0xab, 0xe8, 0xef, 0x50, 0xa9, 0xe7, 0xff, 0x4c, 0xa3, 0xde, 0x2f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x01, 0x55, 0xaa, 0xaa, 0x03, 0x00, 0x80, 0x80, 0x02, 0x00, 0x80, 0x80, 0x02, 0x00, 0x80, 0x80, 0x02, 0x00, 0x80, 0x80, 0x02, 0x00, 0x00, 0x00, 0x00, 0x40, 0x96, 0xcd, 0x38, 0x55, 0xb1, 0xf1, 0xff, 0x57, 0xb6, 0xf6, 0xd9, 0x46, 0x95, 0xca, 0x1d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x02, 0x00, 0x80, 0x80, 0x02, 0x00, 0x80, 0x80, 0x02, 0x00, 0x80, 0x80, 0x02, 0x00, 0x80, 0x80, 0x02, 0x00, 0x80, 0x80, 0x02, 0x00, 0x80, 0x80, 0x02, 0x00, 0x80, 0x80, 0x02, 0x00, 0x80, 0x80, 0x02, 0x00, 0x80, 0x80, 0x02, 0x00, 0x80, 0x80, 0x02, 0x00, 0x80, 0x80, 0x02, 0x00, 0x80, 0x80, 0x02, 0x00, 0x80, 0x80, 0x02, 0x00, 0x80, 0x80, 0x02, 0x00, 0x80, 0x80, 0x02, 0x00, 0x80, 0x80, 0x02, 0x00, 0x80, 0x80, 0x02, 0x00, 0x80, 0x80, 0x02, 0x00, 0x80, 0x80, 0x02, 0x00, 0x80, 0x80, 0x02, 0x00, 0x80, 0x80, 0x02, 0x00, 0x80, 0x80, 0x02, 0x00, 0x80, 0x80, 0x02, 0x00, 0x80, 0x80, 0x02, 0x00, 0x80, 0x80, 0x02, 0x00, 0x00, 0x00, 0x00, 0x46, 0x95, 0xd3, 0x1d, 0x57, 0xb6, 0xf6, 0xd9, 0x55, 0xb2, 0xf0, 0xff, 0x43, 0x98, 0xce, 0x39, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x02, 0x00, 0x80, 0x80, 0x02, 0x00, 0x80, 0x80, 0x02, 0x00, 0x80, 0x80, 0x02, 0x55, 0xaa, 0xaa, 0x03, 0x00, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3b, 0x9d, 0xc4, 0x0d, 0x39, 0x8b, 0xbe, 0x5a, 0x3b, 0x85, 0xbc, 0x94, 0x38, 0x8a, 0xbd, 0x9f, 0x39, 0x88, 0xbc, 0x9c, 0x38, 0x88, 0xbd, 0x9a, 0x38, 0x88, 0xbd, 0x9a, 0x38, 0x88, 0xbd, 0x9a, 0x35, 0x86, 0xb9, 0x8f, 0x3a, 0x8a, 0xbf, 0xaf, 0x44, 0x98, 0xcf, 0xff, 0x41, 0x94, 0xcd, 0xf2, 0x33, 0x80, 0xb4, 0x9c, 0x34, 0x83, 0xb5, 0x8e, 0x3a, 0x89, 0xbd, 0x9b, 0x38, 0x88, 0xbd, 0x9a, 0x38, 0x88, 0xbd, 0x9a, 0x38, 0x88, 0xbd, 0x9a, 0x38, 0x88, 0xbd, 0x9a, 0x38, 0x88, 0xbd, 0x9a, 0x38, 0x88, 0xbd, 0x9a, 0x38, 0x88, 0xbd, 0x9a, 0x38, 0x88, 0xbd, 0x9a, 0x38, 0x88, 0xbd, 0x9a, 0x38, 0x88, 0xbd, 0x9a, 0x38, 0x88, 0xbd, 0x9a, 0x38, 0x88, 0xbd, 0x9a, 0x38, 0x88, 0xbd, 0x9a, 0x38, 0x88, 0xbd, 0x9a, 0x38, 0x88, 0xbd, 0x9a, 0x38, 0x88, 0xbd, 0x9a, 0x38, 0x88, 0xbd, 0x9a, 0x38, 0x88, 0xbd, 0x9a, 0x38, 0x88, 0xbd, 0x9a, 0x38, 0x88, 0xbd, 0x9a, 0x38, 0x88, 0xbd, 0x9a, 0x38, 0x88, 0xbd, 0x9a, 0x38, 0x88, 0xbd, 0x9a, 0x38, 0x88, 0xbd, 0x9a, 0x3a, 0x89, 0xbd, 0x9b, 0x34, 0x83, 0xb5, 0x8e, 0x33, 0x80, 0xb4, 0x9c, 0x41, 0x94, 0xcd, 0xf2, 0x44, 0x97, 0xcf, 0xff, 0x3a, 0x89, 0xbf, 0xaf, 0x35, 0x86, 0xb9, 0x8f, 0x38, 0x88, 0xbd, 0x9a, 0x38, 0x88, 0xbd, 0x9a, 0x38, 0x88, 0xbd, 0x9a, 0x39, 0x88, 0xbc, 0x9c, 0x38, 0x88, 0xbd, 0x9f, 0x3b, 0x85, 0xbc, 0x94, 0x39, 0x8b, 0xbe, 0x5a, 0x3b, 0x9d, 0xc4, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x31, 0xa7, 0xce, 0x1a, 0x3c, 0x84, 0xbc, 0xbb, 0x38, 0x8a, 0xbf, 0xff, 0x39, 0x86, 0xbc, 0xff, 0x39, 0x8a, 0xbf, 0xff, 0x3b, 0x8c, 0xc2, 0xff, 0x3b, 0x8c, 0xc3, 0xff, 0x3b, 0x8c, 0xc3, 0xff, 0x3b, 0x8c, 0xc2, 0xff, 0x3b, 0x8d, 0xc4, 0xff, 0x39, 0x8a, 0xc0, 0xff, 0x36, 0x85, 0xba, 0xff, 0x36, 0x85, 0xbb, 0xff, 0x3b, 0x8b, 0xc1, 0xff, 0x3c, 0x8e, 0xc5, 0xff, 0x3b, 0x8c, 0xc2, 0xff, 0x3b, 0x8c, 0xc2, 0xff, 0x3b, 0x8c, 0xc2, 0xff, 0x3b, 0x8c, 0xc3, 0xff, 0x3b, 0x8c, 0xc3, 0xff, 0x3b, 0x8c, 0xc3, 0xff, 0x3b, 0x8c, 0xc2, 0xff, 0x3b, 0x8c, 0xc2, 0xff, 0x3b, 0x8c, 0xc2, 0xff, 0x3b, 0x8c, 0xc2, 0xff, 0x3b, 0x8c, 0xc3, 0xff, 0x3b, 0x8c, 0xc3, 0xff, 0x3b, 0x8c, 0xc3, 0xff, 0x3b, 0x8c, 0xc2, 0xff, 0x3b, 0x8c, 0xc2, 0xff, 0x3b, 0x8c, 0xc2, 0xff, 0x3b, 0x8c, 0xc3, 0xff, 0x3b, 0x8c, 0xc3, 0xff, 0x3b, 0x8c, 0xc3, 0xff, 0x3b, 0x8c, 0xc3, 0xff, 0x3b, 0x8c, 0xc2, 0xff, 0x3b, 0x8c, 0xc2, 0xff, 0x3b, 0x8c, 0xc2, 0xff, 0x3b, 0x8c, 0xc3, 0xff, 0x3b, 0x8c, 0xc3, 0xff, 0x3b, 0x8c, 0xc3, 0xff, 0x3c, 0x8e, 0xc5, 0xff, 0x3b, 0x8b, 0xc1, 0xff, 0x36, 0x86, 0xbb, 0xff, 0x36, 0x86, 0xba, 0xff, 0x39, 0x8a, 0xbf, 0xff, 0x3b, 0x8d, 0xc4, 0xff, 0x3b, 0x8c, 0xc3, 0xff, 0x3b, 0x8c, 0xc2, 0xff, 0x3b, 0x8c, 0xc3, 0xff, 0x3b, 0x8c, 0xc2, 0xff, 0x39, 0x89, 0xbf, 0xff, 0x3a, 0x85, 0xbc, 0xff, 0x38, 0x8a, 0xbe, 0xff, 0x3d, 0x84, 0xbb, 0xbb, 0x27, 0xb1, 0xce, 0x1a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x33, 0xaa, 0xcc, 0x0f, 0x36, 0x92, 0xc3, 0xc0, 0x41, 0x7a, 0xb7, 0xff, 0x38, 0x8d, 0xc2, 0xff, 0x3c, 0x94, 0xcc, 0xff, 0x42, 0x9f, 0xdc, 0xff, 0x43, 0xa1, 0xe1, 0xff, 0x43, 0xa0, 0xe0, 0xff, 0x43, 0xa2, 0xe0, 0xff, 0x43, 0xa1, 0xe0, 0xff, 0x43, 0xa1, 0xe0, 0xff, 0x44, 0xa2, 0xe1, 0xff, 0x42, 0xa2, 0xe1, 0xff, 0x42, 0xa1, 0xe0, 0xff, 0x43, 0xa1, 0xe1, 0xff, 0x42, 0xa1, 0xe0, 0xff, 0x42, 0xa2, 0xe0, 0xff, 0x42, 0xa1, 0xe0, 0xff, 0x42, 0xa1, 0xe0, 0xff, 0x42, 0xa0, 0xe0, 0xff, 0x42, 0x9e, 0xe0, 0xff, 0x41, 0x91, 0xe0, 0xff, 0x40, 0x7d, 0xe1, 0xff, 0x3e, 0x69, 0xe1, 0xff, 0x3d, 0x5d, 0xe1, 0xff, 0x3c, 0x50, 0xe2, 0xff, 0x3b, 0x49, 0xe2, 0xff, 0x3b, 0x45, 0xe2, 0xff, 0x3b, 0x42, 0xe2, 0xff, 0x3b, 0x45, 0xe2, 0xff, 0x3b, 0x49, 0xe2, 0xff, 0x3c, 0x52, 0xe2, 0xff, 0x3d, 0x5e, 0xe1, 0xff, 0x3e, 0x6b, 0xe1, 0xff, 0x40, 0x82, 0xe1, 0xff, 0x41, 0x94, 0xe0, 0xff, 0x42, 0x9f, 0xe0, 0xff, 0x42, 0xa0, 0xe0, 0xff, 0x42, 0xa1, 0xe0, 0xff, 0x42, 0xa1, 0xe0, 0xff, 0x42, 0xa1, 0xe0, 0xff, 0x42, 0xa1, 0xe0, 0xff, 0x42, 0xa1, 0xe0, 0xff, 0x43, 0xa1, 0xe1, 0xff, 0x42, 0xa2, 0xe0, 0xff, 0x42, 0xa2, 0xe1, 0xff, 0x44, 0xa2, 0xe1, 0xff, 0x43, 0xa1, 0xe0, 0xff, 0x43, 0xa1, 0xe0, 0xff, 0x43, 0xa2, 0xe0, 0xff, 0x43, 0xa0, 0xe0, 0xff, 0x43, 0xa0, 0xe1, 0xff, 0x42, 0x9f, 0xdc, 0xff, 0x3c, 0x94, 0xcb, 0xff, 0x38, 0x8d, 0xc1, 0xff, 0x41, 0x79, 0xb7, 0xff, 0x32, 0x96, 0xc6, 0xc0, 0x44, 0x99, 0xbb, 0x0f, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x3a, 0x86, 0xbe, 0x76, 0x3d, 0x84, 0xbc, 0xff, 0x39, 0x8d, 0xc2, 0xff, 0x3f, 0x97, 0xd1, 0xff, 0x41, 0x9e, 0xdb, 0xff, 0x37, 0x82, 0xb5, 0xff, 0x31, 0x70, 0x9c, 0xff, 0x32, 0x72, 0x9f, 0xff, 0x31, 0x73, 0x9e, 0xff, 0x31, 0x73, 0x9f, 0xff, 0x31, 0x73, 0xa0, 0xff, 0x31, 0x73, 0xa0, 0xff, 0x32, 0x73, 0xa0, 0xff, 0x32, 0x73, 0xa0, 0xff, 0x32, 0x73, 0xa0, 0xff, 0x32, 0x73, 0xa0, 0xff, 0x32, 0x73, 0xa0, 0xff, 0x32, 0x74, 0xa0, 0xff, 0x32, 0x71, 0xa3, 0xff, 0x35, 0x62, 0xb6, 0xff, 0x37, 0x52, 0xc7, 0xff, 0x39, 0x45, 0xd6, 0xff, 0x39, 0x41, 0xda, 0xff, 0x39, 0x3e, 0xde, 0xff, 0x3a, 0x3c, 0xe0, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3c, 0xe0, 0xff, 0x39, 0x3e, 0xdd, 0xff, 0x39, 0x42, 0xd9, 0xff, 0x38, 0x46, 0xd4, 0xff, 0x36, 0x54, 0xc4, 0xff, 0x34, 0x64, 0xb2, 0xff, 0x32, 0x73, 0xa1, 0xff, 0x32, 0x74, 0xa0, 0xff, 0x32, 0x74, 0xa0, 0xff, 0x32, 0x73, 0xa0, 0xff, 0x32, 0x73, 0xa0, 0xff, 0x32, 0x73, 0xa0, 0xff, 0x32, 0x73, 0xa0, 0xff, 0x32, 0x73, 0xa0, 0xff, 0x31, 0x73, 0xa0, 0xff, 0x31, 0x73, 0xa0, 0xff, 0x31, 0x73, 0x9f, 0xff, 0x31, 0x73, 0x9e, 0xff, 0x32, 0x72, 0x9f, 0xff, 0x31, 0x6f, 0x9c, 0xff, 0x37, 0x83, 0xb4, 0xff, 0x41, 0x9e, 0xdc, 0xff, 0x3f, 0x97, 0xd2, 0xff, 0x3a, 0x8d, 0xc2, 0xff, 0x3a, 0x85, 0xbd, 0xff, 0x41, 0x82, 0xb8, 0x7a, 0x42, 0x84, 0xb5, 0x1f, + 0x4a, 0x82, 0xb5, 0x2d, 0x3d, 0x85, 0xbd, 0xbc, 0x39, 0x8b, 0xc1, 0xff, 0x40, 0x9a, 0xd3, 0xff, 0x41, 0x9c, 0xd9, 0xff, 0x29, 0x5d, 0x81, 0xff, 0x1a, 0x34, 0x46, 0xff, 0x1a, 0x37, 0x4a, 0xff, 0x1b, 0x38, 0x4d, 0xff, 0x1c, 0x39, 0x4d, 0xff, 0x1c, 0x39, 0x4e, 0xff, 0x1c, 0x39, 0x4e, 0xff, 0x1c, 0x39, 0x4e, 0xff, 0x1c, 0x39, 0x4e, 0xff, 0x1c, 0x39, 0x4e, 0xff, 0x1c, 0x39, 0x4e, 0xff, 0x1c, 0x39, 0x4e, 0xff, 0x20, 0x39, 0x62, 0xff, 0x2b, 0x3a, 0x98, 0xff, 0x35, 0x3a, 0xcb, 0xff, 0x38, 0x3a, 0xd9, 0xff, 0x3a, 0x3a, 0xe0, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe0, 0xff, 0x38, 0x3a, 0xd8, 0xff, 0x34, 0x3a, 0xc7, 0xff, 0x2a, 0x3a, 0x91, 0xff, 0x1e, 0x3a, 0x59, 0xff, 0x1c, 0x39, 0x4e, 0xff, 0x1c, 0x39, 0x4e, 0xff, 0x1c, 0x39, 0x4e, 0xff, 0x1c, 0x39, 0x4e, 0xff, 0x1c, 0x39, 0x4e, 0xff, 0x1c, 0x39, 0x4e, 0xff, 0x1c, 0x39, 0x4e, 0xff, 0x1c, 0x39, 0x4e, 0xff, 0x1c, 0x39, 0x4d, 0xff, 0x1b, 0x38, 0x4d, 0xff, 0x1a, 0x37, 0x4a, 0xff, 0x1a, 0x34, 0x46, 0xff, 0x29, 0x5d, 0x80, 0xff, 0x41, 0x9c, 0xd9, 0xff, 0x3f, 0x9a, 0xd4, 0xff, 0x3a, 0x8a, 0xc0, 0xff, 0x39, 0x89, 0xbe, 0xc4, 0x38, 0x8b, 0xbf, 0x84, + 0x60, 0x84, 0x9c, 0x55, 0x3f, 0x89, 0xb8, 0xd4, 0x34, 0x91, 0xcf, 0xff, 0x46, 0xa5, 0xe4, 0xff, 0x32, 0x75, 0xa1, 0xff, 0x17, 0x2d, 0x3d, 0xff, 0x1a, 0x37, 0x49, 0xff, 0x1e, 0x41, 0x57, 0xff, 0x1e, 0x40, 0x56, 0xff, 0x1f, 0x41, 0x58, 0xff, 0x1f, 0x41, 0x57, 0xff, 0x1f, 0x41, 0x58, 0xff, 0x1f, 0x41, 0x58, 0xff, 0x1f, 0x41, 0x58, 0xff, 0x1f, 0x41, 0x58, 0xff, 0x23, 0x40, 0x6b, 0xff, 0x2e, 0x3d, 0xa6, 0xff, 0x37, 0x3b, 0xd4, 0xff, 0x39, 0x3a, 0xdf, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x39, 0x3a, 0xde, 0xff, 0x37, 0x3b, 0xd1, 0xff, 0x2d, 0x3e, 0x9c, 0xff, 0x21, 0x40, 0x63, 0xff, 0x1f, 0x41, 0x58, 0xff, 0x1f, 0x41, 0x58, 0xff, 0x1f, 0x41, 0x58, 0xff, 0x1f, 0x41, 0x58, 0xff, 0x1f, 0x41, 0x58, 0xff, 0x1f, 0x41, 0x57, 0xff, 0x1f, 0x40, 0x57, 0xff, 0x1e, 0x40, 0x56, 0xff, 0x1e, 0x41, 0x57, 0xff, 0x1b, 0x37, 0x49, 0xff, 0x17, 0x2d, 0x3d, 0xff, 0x32, 0x75, 0xa1, 0xff, 0x44, 0xa5, 0xe6, 0xff, 0x3c, 0x90, 0xc9, 0xff, 0x39, 0x8a, 0xbf, 0xda, 0x3a, 0x8a, 0xbf, 0xa4, + 0x41, 0x89, 0xb7, 0x52, 0x3b, 0x89, 0xbc, 0xd1, 0x3d, 0x97, 0xd2, 0xff, 0x46, 0xa6, 0xe8, 0xff, 0x2a, 0x5b, 0x7d, 0xff, 0x17, 0x2f, 0x3f, 0xff, 0x1f, 0x44, 0x5d, 0xff, 0x20, 0x45, 0x5e, 0xff, 0x20, 0x45, 0x5e, 0xff, 0x20, 0x45, 0x5e, 0xff, 0x20, 0x45, 0x5f, 0xff, 0x20, 0x45, 0x5f, 0xff, 0x20, 0x45, 0x5f, 0xff, 0x21, 0x46, 0x62, 0xff, 0x2c, 0x42, 0x94, 0xff, 0x38, 0x3b, 0xd5, 0xff, 0x3a, 0x3a, 0xe1, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe1, 0xff, 0x3a, 0x3a, 0xe0, 0xff, 0x3a, 0x3a, 0xdf, 0xff, 0x39, 0x3a, 0xdf, 0xff, 0x39, 0x3a, 0xde, 0xff, 0x39, 0x3a, 0xde, 0xff, 0x39, 0x3a, 0xde, 0xff, 0x39, 0x3a, 0xdf, 0xff, 0x3a, 0x3a, 0xe0, 0xff, 0x3a, 0x3a, 0xe0, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe0, 0xff, 0x37, 0x3c, 0xcf, 0xff, 0x2a, 0x43, 0x8c, 0xff, 0x22, 0x47, 0x63, 0xff, 0x20, 0x46, 0x5f, 0xff, 0x20, 0x45, 0x5f, 0xff, 0x20, 0x45, 0x5f, 0xff, 0x20, 0x45, 0x5f, 0xff, 0x20, 0x45, 0x5f, 0xff, 0x20, 0x45, 0x5e, 0xff, 0x20, 0x45, 0x5f, 0xff, 0x1f, 0x44, 0x5d, 0xff, 0x17, 0x2f, 0x3f, 0xff, 0x2a, 0x5b, 0x7d, 0xff, 0x45, 0xa7, 0xe6, 0xff, 0x3e, 0x96, 0xd0, 0xff, 0x39, 0x88, 0xbe, 0xd7, 0x3b, 0x8a, 0xc0, 0xa1, + 0x36, 0x8b, 0xc6, 0x51, 0x3b, 0x8a, 0xc0, 0xd1, 0x40, 0x97, 0xd1, 0xff, 0x45, 0xa7, 0xe8, 0xff, 0x28, 0x5b, 0x7d, 0xff, 0x18, 0x30, 0x41, 0xff, 0x20, 0x45, 0x5d, 0xff, 0x20, 0x45, 0x5e, 0xff, 0x20, 0x45, 0x5e, 0xff, 0x21, 0x45, 0x5f, 0xff, 0x21, 0x46, 0x5f, 0xff, 0x21, 0x46, 0x60, 0xff, 0x25, 0x44, 0x76, 0xff, 0x33, 0x3d, 0xbd, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe0, 0xff, 0x39, 0x3b, 0xdc, 0xff, 0x37, 0x3b, 0xd5, 0xff, 0x32, 0x3e, 0xb9, 0xff, 0x2e, 0x40, 0xa6, 0xff, 0x2b, 0x42, 0x92, 0xff, 0x29, 0x44, 0x86, 0xff, 0x27, 0x45, 0x7e, 0xff, 0x26, 0x45, 0x7b, 0xff, 0x28, 0x45, 0x7f, 0xff, 0x29, 0x43, 0x88, 0xff, 0x2b, 0x42, 0x95, 0xff, 0x2f, 0x40, 0xa7, 0xff, 0x33, 0x3e, 0xbe, 0xff, 0x38, 0x3b, 0xd8, 0xff, 0x39, 0x3b, 0xdc, 0xff, 0x3a, 0x3a, 0xe1, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x32, 0x3f, 0xb3, 0xff, 0x24, 0x44, 0x70, 0xff, 0x21, 0x46, 0x60, 0xff, 0x21, 0x46, 0x5f, 0xff, 0x21, 0x46, 0x5f, 0xff, 0x21, 0x46, 0x5f, 0xff, 0x20, 0x45, 0x5e, 0xff, 0x20, 0x45, 0x5e, 0xff, 0x20, 0x45, 0x5d, 0xff, 0x18, 0x30, 0x40, 0xff, 0x28, 0x5b, 0x7e, 0xff, 0x45, 0xa7, 0xe7, 0xff, 0x3f, 0x97, 0xd1, 0xff, 0x3a, 0x89, 0xbf, 0xd6, 0x39, 0x8b, 0xc2, 0xa0, + 0x3c, 0x8b, 0xc0, 0x51, 0x3b, 0x8b, 0xc0, 0xd1, 0x3f, 0x98, 0xd2, 0xff, 0x45, 0xa7, 0xe9, 0xff, 0x29, 0x5c, 0x7e, 0xff, 0x19, 0x31, 0x41, 0xff, 0x20, 0x45, 0x5e, 0xff, 0x20, 0x45, 0x5e, 0xff, 0x20, 0x45, 0x5f, 0xff, 0x21, 0x47, 0x60, 0xff, 0x21, 0x47, 0x62, 0xff, 0x28, 0x43, 0x86, 0xff, 0x36, 0x3b, 0xd3, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x39, 0x3a, 0xde, 0xff, 0x37, 0x3b, 0xd4, 0xff, 0x30, 0x3f, 0xad, 0xff, 0x28, 0x43, 0x86, 0xff, 0x22, 0x46, 0x67, 0xff, 0x21, 0x47, 0x61, 0xff, 0x21, 0x47, 0x61, 0xff, 0x21, 0x47, 0x61, 0xff, 0x21, 0x47, 0x61, 0xff, 0x21, 0x47, 0x61, 0xff, 0x21, 0x47, 0x61, 0xff, 0x21, 0x47, 0x61, 0xff, 0x21, 0x47, 0x61, 0xff, 0x21, 0x47, 0x61, 0xff, 0x21, 0x47, 0x61, 0xff, 0x21, 0x47, 0x61, 0xff, 0x23, 0x46, 0x6a, 0xff, 0x2a, 0x43, 0x8c, 0xff, 0x31, 0x3f, 0xb2, 0xff, 0x38, 0x3b, 0xd6, 0xff, 0x38, 0x39, 0xdf, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x39, 0x39, 0xe2, 0xff, 0x35, 0x3b, 0xcb, 0xff, 0x27, 0x44, 0x7b, 0xff, 0x21, 0x47, 0x60, 0xff, 0x21, 0x47, 0x60, 0xff, 0x21, 0x46, 0x60, 0xff, 0x20, 0x45, 0x5f, 0xff, 0x20, 0x45, 0x5e, 0xff, 0x20, 0x45, 0x5e, 0xff, 0x19, 0x31, 0x41, 0xff, 0x29, 0x5d, 0x7e, 0xff, 0x45, 0xa7, 0xe9, 0xff, 0x3f, 0x98, 0xd2, 0xff, 0x3a, 0x8a, 0xbf, 0xd6, 0x39, 0x8c, 0xc2, 0xa0, + 0x39, 0x8b, 0xc0, 0x51, 0x3b, 0x89, 0xc0, 0xd1, 0x40, 0x97, 0xd2, 0xff, 0x46, 0xa6, 0xe8, 0xff, 0x29, 0x5c, 0x7f, 0xff, 0x19, 0x32, 0x43, 0xff, 0x20, 0x46, 0x5e, 0xff, 0x21, 0x46, 0x60, 0xff, 0x21, 0x46, 0x60, 0xff, 0x21, 0x47, 0x62, 0xff, 0x2b, 0x41, 0x95, 0xff, 0x3b, 0x3b, 0xe0, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x39, 0x3a, 0xde, 0xff, 0x36, 0x3c, 0xcf, 0xff, 0x2d, 0x41, 0x9e, 0xff, 0x24, 0x47, 0x6e, 0xff, 0x22, 0x48, 0x63, 0xff, 0x22, 0x48, 0x63, 0xff, 0x22, 0x48, 0x63, 0xff, 0x22, 0x48, 0x63, 0xff, 0x22, 0x48, 0x63, 0xff, 0x22, 0x48, 0x63, 0xff, 0x22, 0x48, 0x63, 0xff, 0x22, 0x48, 0x63, 0xff, 0x22, 0x48, 0x63, 0xff, 0x22, 0x48, 0x63, 0xff, 0x22, 0x48, 0x63, 0xff, 0x22, 0x48, 0x63, 0xff, 0x22, 0x48, 0x63, 0xff, 0x22, 0x48, 0x63, 0xff, 0x22, 0x48, 0x63, 0xff, 0x22, 0x48, 0x63, 0xff, 0x22, 0x48, 0x63, 0xff, 0x25, 0x46, 0x74, 0xff, 0x2f, 0x42, 0xa4, 0xff, 0x38, 0x3d, 0xd0, 0xff, 0x3a, 0x3a, 0xe1, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x39, 0x3c, 0xd9, 0xff, 0x28, 0x43, 0x89, 0xff, 0x21, 0x47, 0x61, 0xff, 0x21, 0x47, 0x61, 0xff, 0x21, 0x46, 0x60, 0xff, 0x21, 0x46, 0x60, 0xff, 0x20, 0x46, 0x5e, 0xff, 0x19, 0x32, 0x43, 0xff, 0x29, 0x5c, 0x7f, 0xff, 0x46, 0xa7, 0xe8, 0xff, 0x3f, 0x97, 0xd2, 0xff, 0x39, 0x89, 0xbf, 0xd6, 0x39, 0x8b, 0xbf, 0xa0, + 0x39, 0x8b, 0xc0, 0x51, 0x3b, 0x89, 0xc0, 0xd1, 0x40, 0x97, 0xd2, 0xff, 0x46, 0xa7, 0xe9, 0xff, 0x29, 0x5e, 0x80, 0xff, 0x19, 0x31, 0x42, 0xff, 0x20, 0x45, 0x5f, 0xff, 0x21, 0x47, 0x60, 0xff, 0x21, 0x47, 0x61, 0xff, 0x2a, 0x41, 0x97, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x37, 0x3c, 0xd3, 0xff, 0x2e, 0x41, 0xa3, 0xff, 0x24, 0x49, 0x6d, 0xff, 0x22, 0x49, 0x63, 0xff, 0x24, 0x4b, 0x66, 0xff, 0x23, 0x49, 0x64, 0xff, 0x22, 0x49, 0x64, 0xff, 0x23, 0x4b, 0x65, 0xff, 0x22, 0x4a, 0x64, 0xff, 0x22, 0x4a, 0x64, 0xff, 0x22, 0x4a, 0x64, 0xff, 0x22, 0x49, 0x64, 0xff, 0x23, 0x4a, 0x66, 0xff, 0x23, 0x4a, 0x66, 0xff, 0x21, 0x49, 0x63, 0xff, 0x23, 0x4a, 0x65, 0xff, 0x23, 0x4a, 0x65, 0xff, 0x22, 0x49, 0x64, 0xff, 0x22, 0x4a, 0x64, 0xff, 0x22, 0x4a, 0x64, 0xff, 0x22, 0x49, 0x64, 0xff, 0x24, 0x4a, 0x65, 0xff, 0x23, 0x49, 0x64, 0xff, 0x22, 0x49, 0x63, 0xff, 0x26, 0x49, 0x71, 0xff, 0x30, 0x3f, 0xaf, 0xff, 0x38, 0x3b, 0xd8, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x39, 0x3a, 0xdf, 0xff, 0x29, 0x43, 0x8a, 0xff, 0x21, 0x47, 0x62, 0xff, 0x21, 0x47, 0x60, 0xff, 0x21, 0x47, 0x60, 0xff, 0x20, 0x45, 0x5f, 0xff, 0x19, 0x31, 0x42, 0xff, 0x29, 0x5e, 0x80, 0xff, 0x46, 0xa7, 0xe9, 0xff, 0x3f, 0x97, 0xd2, 0xff, 0x39, 0x89, 0xbd, 0xd6, 0x39, 0x8b, 0xc1, 0xa0, + 0x39, 0x8b, 0xc0, 0x51, 0x39, 0x89, 0xc0, 0xd1, 0x3e, 0x97, 0xd2, 0xff, 0x45, 0xa7, 0xe8, 0xff, 0x29, 0x5e, 0x7f, 0xff, 0x19, 0x32, 0x44, 0xff, 0x21, 0x47, 0x60, 0xff, 0x21, 0x47, 0x61, 0xff, 0x2c, 0x42, 0x97, 0xff, 0x39, 0x39, 0xe3, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe1, 0xff, 0x33, 0x3f, 0xbb, 0xff, 0x29, 0x47, 0x83, 0xff, 0x22, 0x49, 0x64, 0xff, 0x23, 0x4b, 0x65, 0xff, 0x25, 0x4d, 0x67, 0xff, 0x1c, 0x44, 0x5c, 0xff, 0x1c, 0x47, 0x62, 0xff, 0x1c, 0x47, 0x63, 0xff, 0x1d, 0x45, 0x5e, 0xff, 0x24, 0x4c, 0x65, 0xff, 0x22, 0x4a, 0x64, 0xff, 0x22, 0x4a, 0x64, 0xff, 0x24, 0x4c, 0x66, 0xff, 0x22, 0x49, 0x63, 0xff, 0x1a, 0x42, 0x5d, 0xff, 0x1e, 0x49, 0x67, 0xff, 0x19, 0x42, 0x5c, 0xff, 0x20, 0x49, 0x62, 0xff, 0x25, 0x4d, 0x67, 0xff, 0x22, 0x4a, 0x64, 0xff, 0x22, 0x4a, 0x64, 0xff, 0x24, 0x4c, 0x66, 0xff, 0x1d, 0x45, 0x5e, 0xff, 0x1c, 0x47, 0x62, 0xff, 0x1d, 0x49, 0x65, 0xff, 0x1a, 0x42, 0x5b, 0xff, 0x24, 0x4c, 0x66, 0xff, 0x2b, 0x46, 0x8d, 0xff, 0x35, 0x3d, 0xc8, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x38, 0x39, 0xdf, 0xff, 0x2b, 0x45, 0x8a, 0xff, 0x21, 0x47, 0x61, 0xff, 0x21, 0x47, 0x61, 0xff, 0x21, 0x47, 0x60, 0xff, 0x19, 0x32, 0x44, 0xff, 0x29, 0x5e, 0x7f, 0xff, 0x45, 0xa7, 0xe8, 0xff, 0x3e, 0x97, 0xd2, 0xff, 0x39, 0x89, 0xbf, 0xd6, 0x39, 0x8b, 0xbf, 0xa0, + 0x39, 0x8b, 0xc0, 0x51, 0x39, 0x89, 0xc0, 0xd1, 0x3e, 0x97, 0xd2, 0xff, 0x45, 0xa7, 0xe8, 0xff, 0x29, 0x5e, 0x7f, 0xff, 0x19, 0x32, 0x44, 0xff, 0x21, 0x47, 0x60, 0xff, 0x27, 0x43, 0x87, 0xff, 0x3b, 0x3b, 0xe0, 0xff, 0x3a, 0x3a, 0xe3, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3b, 0xe0, 0xff, 0x1a, 0x38, 0x7a, 0xff, 0x28, 0x50, 0x69, 0xff, 0x23, 0x4c, 0x66, 0xff, 0x28, 0x4f, 0x6a, 0xff, 0x1a, 0x42, 0x5d, 0xff, 0x00, 0x28, 0x47, 0xff, 0x23, 0x4c, 0x68, 0xff, 0x24, 0x4d, 0x69, 0xff, 0x05, 0x2d, 0x4b, 0xff, 0x1c, 0x43, 0x5d, 0xff, 0x25, 0x4d, 0x67, 0xff, 0x24, 0x4c, 0x66, 0xff, 0x27, 0x4e, 0x68, 0xff, 0x0b, 0x35, 0x51, 0xff, 0x0c, 0x37, 0x56, 0xff, 0x2f, 0x58, 0x76, 0xff, 0x0f, 0x38, 0x58, 0xff, 0x08, 0x30, 0x4b, 0xff, 0x26, 0x4d, 0x67, 0xff, 0x26, 0x4d, 0x68, 0xff, 0x25, 0x4c, 0x67, 0xff, 0x1c, 0x43, 0x5e, 0xff, 0x04, 0x2e, 0x4a, 0xff, 0x22, 0x4d, 0x6b, 0xff, 0x29, 0x53, 0x70, 0xff, 0x01, 0x2c, 0x4b, 0xff, 0x17, 0x3f, 0x59, 0xff, 0x27, 0x4e, 0x68, 0xff, 0x26, 0x48, 0x75, 0xff, 0x34, 0x41, 0xba, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe3, 0xff, 0x39, 0x3c, 0xda, 0xff, 0x28, 0x47, 0x7e, 0xff, 0x21, 0x47, 0x60, 0xff, 0x21, 0x47, 0x60, 0xff, 0x19, 0x33, 0x44, 0xff, 0x29, 0x5c, 0x7f, 0xff, 0x45, 0xa6, 0xe8, 0xff, 0x3e, 0x97, 0xd2, 0xff, 0x39, 0x89, 0xbf, 0xd6, 0x39, 0x8b, 0xbf, 0xa0, + 0x39, 0x8b, 0xc0, 0x51, 0x39, 0x89, 0xbe, 0xd1, 0x3e, 0x97, 0xd1, 0xff, 0x45, 0xa6, 0xe7, 0xff, 0x29, 0x5c, 0x7f, 0xff, 0x19, 0x33, 0x44, 0xff, 0x25, 0x45, 0x74, 0xff, 0x35, 0x3a, 0xd4, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x38, 0x3f, 0xcc, 0xff, 0x17, 0x34, 0x77, 0xff, 0x2a, 0x51, 0x6c, 0xff, 0x19, 0x40, 0x5a, 0xff, 0x0f, 0x38, 0x54, 0xff, 0x7a, 0xa3, 0xc0, 0xff, 0x4b, 0x5b, 0x66, 0xff, 0x49, 0x5c, 0x66, 0xff, 0x65, 0x90, 0xaa, 0xff, 0x17, 0x40, 0x5d, 0xff, 0x20, 0x48, 0x63, 0xff, 0x28, 0x4f, 0x6a, 0xff, 0x09, 0x30, 0x4b, 0xff, 0x3a, 0x64, 0x82, 0xff, 0x7b, 0x97, 0xaa, 0xff, 0x2d, 0x33, 0x36, 0xff, 0x78, 0x99, 0xa7, 0xff, 0x41, 0x70, 0x8c, 0xff, 0x07, 0x2d, 0x4a, 0xff, 0x27, 0x4e, 0x68, 0xff, 0x20, 0x47, 0x62, 0xff, 0x12, 0x3c, 0x59, 0xff, 0x68, 0x92, 0xad, 0xff, 0x4c, 0x5c, 0x64, 0xff, 0x38, 0x43, 0x49, 0xff, 0x81, 0xa7, 0xc1, 0xff, 0x17, 0x41, 0x5e, 0xff, 0x17, 0x3e, 0x58, 0xff, 0x2b, 0x52, 0x6c, 0xff, 0x15, 0x39, 0x5d, 0xff, 0x30, 0x40, 0xb1, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x35, 0x3d, 0xca, 0xff, 0x25, 0x48, 0x6b, 0xff, 0x21, 0x47, 0x5f, 0xff, 0x19, 0x33, 0x44, 0xff, 0x29, 0x5c, 0x7f, 0xff, 0x45, 0xa6, 0xe7, 0xff, 0x3e, 0x97, 0xd1, 0xff, 0x39, 0x89, 0xbd, 0xd6, 0x39, 0x8b, 0xbf, 0xa0, + 0x39, 0x8b, 0xc0, 0x51, 0x39, 0x89, 0xbe, 0xd1, 0x3e, 0x97, 0xd1, 0xff, 0x45, 0xa7, 0xe7, 0xff, 0x29, 0x5c, 0x7f, 0xff, 0x19, 0x33, 0x45, 0xff, 0x35, 0x3f, 0xc0, 0xff, 0x3a, 0x3a, 0xe3, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x33, 0x39, 0xcf, 0xff, 0x21, 0x3d, 0x80, 0xff, 0x03, 0x2b, 0x4a, 0xff, 0x5e, 0x82, 0x99, 0xff, 0xff, 0xff, 0xff, 0xff, 0x53, 0x5f, 0x66, 0xff, 0x52, 0x62, 0x6c, 0xff, 0xe4, 0xfe, 0xff, 0xff, 0x57, 0x7c, 0x94, 0xff, 0x13, 0x3b, 0x57, 0xff, 0x19, 0x3f, 0x5a, 0xff, 0x0b, 0x36, 0x56, 0xff, 0xbd, 0xd9, 0xe5, 0xff, 0xd4, 0xdf, 0xda, 0xff, 0x15, 0x19, 0x18, 0xff, 0xc3, 0xcb, 0xc6, 0xff, 0xd0, 0xdf, 0xea, 0xff, 0x14, 0x40, 0x5f, 0xff, 0x10, 0x39, 0x54, 0xff, 0x12, 0x3a, 0x57, 0xff, 0x4f, 0x79, 0x91, 0xff, 0xed, 0xff, 0xff, 0xff, 0x57, 0x60, 0x5e, 0xff, 0x32, 0x36, 0x36, 0xff, 0xff, 0xff, 0xff, 0xff, 0x6d, 0x8f, 0xa9, 0xff, 0x09, 0x34, 0x51, 0xff, 0x19, 0x41, 0x5b, 0xff, 0x05, 0x2d, 0x4c, 0xff, 0x89, 0xaa, 0xc5, 0xff, 0x7f, 0x87, 0xed, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x32, 0x41, 0xb2, 0xff, 0x21, 0x47, 0x60, 0xff, 0x19, 0x33, 0x44, 0xff, 0x29, 0x5c, 0x7f, 0xff, 0x45, 0xa6, 0xe7, 0xff, 0x3e, 0x97, 0xd1, 0xff, 0x39, 0x89, 0xbd, 0xd6, 0x39, 0x8b, 0xbf, 0xa0, + 0x39, 0x8b, 0xc0, 0x51, 0x39, 0x87, 0xbe, 0xd1, 0x3f, 0x96, 0xd1, 0xff, 0x45, 0xa6, 0xe7, 0xff, 0x2a, 0x5d, 0x80, 0xff, 0x28, 0x36, 0x87, 0xff, 0x3a, 0x3a, 0xe3, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3b, 0x3c, 0xdf, 0xff, 0x4f, 0x54, 0xe6, 0xff, 0x3c, 0x3d, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x33, 0x38, 0xce, 0xff, 0x1b, 0x38, 0x7e, 0xff, 0x96, 0xb8, 0xc9, 0xff, 0xdf, 0xff, 0xff, 0xff, 0x9d, 0xc0, 0xd0, 0xff, 0x9e, 0xc2, 0xd1, 0xff, 0xd2, 0xf3, 0xff, 0xff, 0x87, 0xa9, 0xc0, 0xff, 0x14, 0x3c, 0x57, 0xff, 0x06, 0x2e, 0x49, 0xff, 0x3e, 0x64, 0x81, 0xff, 0xd3, 0xf2, 0xfa, 0xff, 0xc1, 0xe5, 0xef, 0xff, 0x8c, 0xb1, 0xc1, 0xff, 0xbf, 0xde, 0xee, 0xff, 0xe0, 0xf9, 0xff, 0xff, 0x44, 0x6a, 0x85, 0xff, 0x00, 0x29, 0x47, 0xff, 0x0f, 0x37, 0x54, 0xff, 0x84, 0xa7, 0xb8, 0xff, 0xd8, 0xfd, 0xff, 0xff, 0x9b, 0xc0, 0xd2, 0xff, 0x96, 0xb9, 0xc7, 0xff, 0xd7, 0xf4, 0xff, 0xff, 0xa4, 0xc4, 0xd9, 0xff, 0x19, 0x40, 0x5c, 0xff, 0x00, 0x28, 0x45, 0xff, 0x24, 0x49, 0x66, 0xff, 0xbd, 0xdd, 0xeb, 0xff, 0xc6, 0xe8, 0xfd, 0xff, 0x54, 0x5f, 0xda, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe1, 0xff, 0x29, 0x44, 0x88, 0xff, 0x1a, 0x33, 0x45, 0xff, 0x2a, 0x5d, 0x80, 0xff, 0x45, 0xa6, 0xe7, 0xff, 0x3f, 0x96, 0xd1, 0xff, 0x39, 0x88, 0xbd, 0xd6, 0x39, 0x8b, 0xbf, 0xa0, + 0x39, 0x8b, 0xc0, 0x51, 0x39, 0x87, 0xbe, 0xd1, 0x3f, 0x96, 0xd1, 0xff, 0x45, 0xa6, 0xe7, 0xff, 0x2b, 0x5a, 0x87, 0xff, 0x36, 0x38, 0xd4, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x44, 0xc6, 0xff, 0x9d, 0xb7, 0xea, 0xff, 0x72, 0x80, 0xec, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x35, 0x3a, 0xd1, 0xff, 0x66, 0x7e, 0xbd, 0xff, 0xcb, 0xec, 0xff, 0xff, 0xc8, 0xf1, 0xff, 0xff, 0xc5, 0xed, 0xfd, 0xff, 0xc2, 0xe3, 0xfc, 0xff, 0x6c, 0x8f, 0xa6, 0xff, 0x14, 0x3c, 0x57, 0xff, 0x0d, 0x36, 0x51, 0xff, 0x2f, 0x54, 0x6d, 0xff, 0xaf, 0xd1, 0xe7, 0xff, 0xcb, 0xf1, 0xff, 0xff, 0xc9, 0xf4, 0xfe, 0xff, 0xcb, 0xf1, 0xff, 0xff, 0xbb, 0xdc, 0xf0, 0xff, 0x35, 0x59, 0x73, 0xff, 0x08, 0x31, 0x4d, 0xff, 0x12, 0x39, 0x55, 0xff, 0x67, 0x8a, 0xa1, 0xff, 0xc2, 0xe1, 0xfb, 0xff, 0xc3, 0xec, 0xfb, 0xff, 0xc9, 0xf2, 0xff, 0xff, 0xc7, 0xeb, 0xff, 0xff, 0x82, 0xa4, 0xbb, 0xff, 0x15, 0x3c, 0x58, 0xff, 0x0a, 0x33, 0x4f, 0xff, 0x1a, 0x40, 0x5a, 0xff, 0x9e, 0xbe, 0xd5, 0xff, 0xcd, 0xef, 0xff, 0xff, 0xb6, 0xdb, 0xfa, 0xff, 0x4e, 0x53, 0xe5, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x35, 0x3c, 0xc9, 0xff, 0x1b, 0x33, 0x4b, 0xff, 0x2a, 0x5d, 0x80, 0xff, 0x45, 0xa6, 0xe7, 0xff, 0x3f, 0x96, 0xd1, 0xff, 0x39, 0x88, 0xbd, 0xd6, 0x39, 0x8b, 0xbf, 0xa0, + 0x39, 0x8b, 0xc0, 0x51, 0x39, 0x87, 0xbe, 0xd1, 0x3f, 0x96, 0xd1, 0xff, 0x45, 0xa6, 0xe7, 0xff, 0x33, 0x49, 0xb8, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x38, 0x3c, 0xd4, 0xff, 0x1f, 0x3d, 0x73, 0xff, 0x65, 0x86, 0x9d, 0xff, 0xac, 0xc7, 0xe8, 0xff, 0x65, 0x6e, 0xe9, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x38, 0x3c, 0xd4, 0xff, 0x7d, 0x94, 0xd1, 0xff, 0xc7, 0xe5, 0xfa, 0xff, 0xbf, 0xdd, 0xf2, 0xff, 0x8d, 0xad, 0xc1, 0xff, 0x2a, 0x4f, 0x67, 0xff, 0x1b, 0x43, 0x5d, 0xff, 0x22, 0x4a, 0x64, 0xff, 0x0d, 0x35, 0x4f, 0xff, 0x56, 0x78, 0x8f, 0xff, 0xba, 0xd7, 0xeb, 0xff, 0xc8, 0xe5, 0xfa, 0xff, 0xbf, 0xdd, 0xf0, 0xff, 0x60, 0x81, 0x98, 0xff, 0x0e, 0x35, 0x50, 0xff, 0x1d, 0x45, 0x60, 0xff, 0x1b, 0x43, 0x5d, 0xff, 0x23, 0x49, 0x63, 0xff, 0x88, 0xa7, 0xbd, 0xff, 0xc1, 0xde, 0xf3, 0xff, 0xc5, 0xe3, 0xf8, 0xff, 0x9e, 0xbd, 0xd1, 0xff, 0x2d, 0x52, 0x6b, 0xff, 0x12, 0x3a, 0x56, 0xff, 0x23, 0x4a, 0x66, 0xff, 0x0c, 0x32, 0x4e, 0xff, 0x43, 0x67, 0x7d, 0xff, 0xac, 0xcb, 0xde, 0xff, 0xc6, 0xe3, 0xf9, 0xff, 0x97, 0xad, 0xeb, 0xff, 0x3b, 0x3c, 0xe1, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe1, 0xff, 0x29, 0x36, 0x8f, 0xff, 0x2a, 0x5d, 0x80, 0xff, 0x45, 0xa6, 0xe6, 0xff, 0x3f, 0x96, 0xd1, 0xff, 0x39, 0x88, 0xbd, 0xd6, 0x39, 0x8b, 0xbf, 0xa0, + 0x39, 0x8b, 0xbd, 0x51, 0x39, 0x87, 0xbd, 0xd1, 0x3f, 0x96, 0xd1, 0xff, 0x44, 0x9b, 0xe7, 0xff, 0x39, 0x3d, 0xda, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x39, 0x3a, 0xdf, 0xff, 0x30, 0x42, 0xa8, 0xff, 0x1b, 0x41, 0x5b, 0xff, 0x16, 0x3c, 0x54, 0xff, 0x40, 0x63, 0x78, 0xff, 0x55, 0x73, 0x94, 0xff, 0x38, 0x43, 0xbc, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x38, 0x3b, 0xd5, 0xff, 0x4c, 0x64, 0xa2, 0xff, 0x51, 0x72, 0x89, 0xff, 0x24, 0x46, 0x5f, 0xff, 0x16, 0x3c, 0x56, 0xff, 0x24, 0x4b, 0x65, 0xff, 0x25, 0x4d, 0x68, 0xff, 0x1d, 0x45, 0x5f, 0xff, 0x12, 0x37, 0x50, 0xff, 0x3a, 0x5c, 0x73, 0xff, 0x5c, 0x7d, 0x91, 0xff, 0x3f, 0x60, 0x78, 0xff, 0x12, 0x36, 0x50, 0xff, 0x1b, 0x42, 0x5c, 0xff, 0x26, 0x4d, 0x68, 0xff, 0x23, 0x4b, 0x65, 0xff, 0x15, 0x3c, 0x56, 0xff, 0x20, 0x43, 0x5c, 0xff, 0x50, 0x71, 0x87, 0xff, 0x57, 0x77, 0x8d, 0xff, 0x27, 0x4a, 0x61, 0xff, 0x12, 0x36, 0x51, 0xff, 0x21, 0x48, 0x64, 0xff, 0x26, 0x4c, 0x68, 0xff, 0x21, 0x47, 0x62, 0xff, 0x11, 0x36, 0x50, 0xff, 0x32, 0x53, 0x6b, 0xff, 0x56, 0x77, 0x8c, 0xff, 0x42, 0x65, 0x7a, 0xff, 0x2e, 0x3a, 0xb1, 0xff, 0x3a, 0x3a, 0xe1, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x34, 0x39, 0xc5, 0xff, 0x2b, 0x5b, 0x86, 0xff, 0x45, 0xa6, 0xe7, 0xff, 0x3f, 0x96, 0xd1, 0xff, 0x39, 0x88, 0xbd, 0xd6, 0x39, 0x8b, 0xbe, 0xa0, + 0x39, 0x8b, 0xbd, 0x51, 0x39, 0x87, 0xbd, 0xd1, 0x3f, 0x96, 0xd1, 0xff, 0x40, 0x6e, 0xe4, 0xff, 0x39, 0x39, 0xe1, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x36, 0x3d, 0xcc, 0xff, 0x22, 0x47, 0x69, 0xff, 0x22, 0x49, 0x63, 0xff, 0x1d, 0x43, 0x5c, 0xff, 0x0d, 0x33, 0x4a, 0xff, 0x09, 0x2d, 0x45, 0xff, 0x14, 0x36, 0x5a, 0xff, 0x33, 0x3e, 0xbb, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x35, 0x39, 0xd1, 0xff, 0x17, 0x32, 0x71, 0xff, 0x19, 0x3d, 0x56, 0xff, 0x24, 0x49, 0x63, 0xff, 0x22, 0x4a, 0x64, 0xff, 0x23, 0x4a, 0x65, 0xff, 0x24, 0x4b, 0x65, 0xff, 0x20, 0x46, 0x60, 0xff, 0x0f, 0x35, 0x4e, 0xff, 0x07, 0x2c, 0x45, 0xff, 0x0e, 0x32, 0x4c, 0xff, 0x1f, 0x44, 0x5e, 0xff, 0x25, 0x4b, 0x65, 0xff, 0x23, 0x4a, 0x65, 0xff, 0x23, 0x4a, 0x65, 0xff, 0x24, 0x49, 0x64, 0xff, 0x1a, 0x3f, 0x57, 0xff, 0x0b, 0x30, 0x48, 0xff, 0x09, 0x2d, 0x48, 0xff, 0x16, 0x3b, 0x55, 0xff, 0x24, 0x49, 0x63, 0xff, 0x24, 0x4a, 0x65, 0xff, 0x22, 0x4a, 0x65, 0xff, 0x23, 0x4a, 0x66, 0xff, 0x23, 0x48, 0x61, 0xff, 0x12, 0x37, 0x50, 0xff, 0x06, 0x2d, 0x45, 0xff, 0x0c, 0x32, 0x4a, 0xff, 0x20, 0x41, 0x6a, 0xff, 0x39, 0x3b, 0xdd, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x39, 0x3a, 0xdb, 0xff, 0x31, 0x4f, 0xa8, 0xff, 0x45, 0xa5, 0xe7, 0xff, 0x3f, 0x96, 0xd1, 0xff, 0x39, 0x88, 0xbd, 0xd6, 0x39, 0x8b, 0xbe, 0xa0, + 0x39, 0x8b, 0xbd, 0x51, 0x39, 0x87, 0xbd, 0xd1, 0x3e, 0x94, 0xd0, 0xff, 0x3c, 0x49, 0xe3, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x39, 0x3b, 0xdd, 0xff, 0x2e, 0x43, 0x9b, 0xff, 0x22, 0x49, 0x63, 0xff, 0x21, 0x48, 0x62, 0xff, 0x22, 0x48, 0x63, 0xff, 0x25, 0x4a, 0x64, 0xff, 0x25, 0x4a, 0x63, 0xff, 0x24, 0x4a, 0x63, 0xff, 0x23, 0x48, 0x69, 0xff, 0x33, 0x3f, 0xbd, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x38, 0x3c, 0xd5, 0xff, 0x29, 0x45, 0x87, 0xff, 0x22, 0x48, 0x64, 0xff, 0x23, 0x4a, 0x64, 0xff, 0x23, 0x4a, 0x65, 0xff, 0x22, 0x49, 0x64, 0xff, 0x22, 0x48, 0x64, 0xff, 0x25, 0x4a, 0x64, 0xff, 0x25, 0x4a, 0x64, 0xff, 0x26, 0x4b, 0x63, 0xff, 0x23, 0x49, 0x63, 0xff, 0x22, 0x48, 0x64, 0xff, 0x23, 0x4a, 0x65, 0xff, 0x23, 0x49, 0x65, 0xff, 0x22, 0x48, 0x64, 0xff, 0x24, 0x49, 0x64, 0xff, 0x25, 0x4a, 0x63, 0xff, 0x25, 0x4a, 0x63, 0xff, 0x24, 0x4a, 0x65, 0xff, 0x21, 0x49, 0x64, 0xff, 0x23, 0x49, 0x65, 0xff, 0x23, 0x4a, 0x65, 0xff, 0x23, 0x49, 0x64, 0xff, 0x22, 0x48, 0x62, 0xff, 0x23, 0x4a, 0x63, 0xff, 0x24, 0x49, 0x63, 0xff, 0x24, 0x4a, 0x63, 0xff, 0x21, 0x48, 0x60, 0xff, 0x2f, 0x3f, 0xad, 0xff, 0x3a, 0x3a, 0xe1, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x36, 0x43, 0xc8, 0xff, 0x45, 0xa5, 0xe6, 0xff, 0x3f, 0x96, 0xd0, 0xff, 0x39, 0x88, 0xbd, 0xd6, 0x39, 0x8b, 0xbe, 0xa0, + 0x39, 0x8b, 0xbd, 0x51, 0x39, 0x87, 0xbd, 0xd2, 0x3d, 0x78, 0xd6, 0xff, 0x3b, 0x40, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x36, 0x3b, 0xd3, 0xff, 0x22, 0x47, 0x68, 0xff, 0x22, 0x49, 0x63, 0xff, 0x22, 0x49, 0x63, 0xff, 0x22, 0x48, 0x63, 0xff, 0x21, 0x48, 0x63, 0xff, 0x21, 0x49, 0x63, 0xff, 0x21, 0x49, 0x64, 0xff, 0x22, 0x4a, 0x63, 0xff, 0x23, 0x4a, 0x67, 0xff, 0x33, 0x3f, 0xbc, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x37, 0x3c, 0xd5, 0xff, 0x29, 0x45, 0x87, 0xff, 0x23, 0x4a, 0x65, 0xff, 0x23, 0x4a, 0x65, 0xff, 0x23, 0x4a, 0x65, 0xff, 0x23, 0x4a, 0x64, 0xff, 0x22, 0x4a, 0x64, 0xff, 0x22, 0x4a, 0x64, 0xff, 0x22, 0x4a, 0x64, 0xff, 0x22, 0x4a, 0x64, 0xff, 0x23, 0x4a, 0x65, 0xff, 0x23, 0x4a, 0x65, 0xff, 0x23, 0x4a, 0x65, 0xff, 0x23, 0x4a, 0x64, 0xff, 0x22, 0x4a, 0x64, 0xff, 0x22, 0x4a, 0x64, 0xff, 0x22, 0x4a, 0x64, 0xff, 0x22, 0x4a, 0x64, 0xff, 0x22, 0x4a, 0x64, 0xff, 0x22, 0x4a, 0x64, 0xff, 0x22, 0x4a, 0x64, 0xff, 0x22, 0x4a, 0x63, 0xff, 0x22, 0x4a, 0x64, 0xff, 0x21, 0x49, 0x63, 0xff, 0x21, 0x49, 0x63, 0xff, 0x21, 0x48, 0x63, 0xff, 0x22, 0x48, 0x63, 0xff, 0x25, 0x46, 0x73, 0xff, 0x39, 0x3a, 0xdf, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x38, 0x3e, 0xd6, 0xff, 0x43, 0x8c, 0xe5, 0xff, 0x3f, 0x95, 0xd0, 0xff, 0x39, 0x88, 0xbd, 0xd6, 0x39, 0x89, 0xbe, 0xa0, + 0x39, 0x87, 0xbd, 0x51, 0x39, 0x86, 0xbd, 0xd2, 0x3c, 0x5e, 0xdb, 0xff, 0x3a, 0x3b, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe0, 0xff, 0x31, 0x40, 0xae, 0xff, 0x21, 0x47, 0x61, 0xff, 0x22, 0x48, 0x62, 0xff, 0x22, 0x49, 0x63, 0xff, 0x22, 0x49, 0x63, 0xff, 0x22, 0x49, 0x63, 0xff, 0x22, 0x49, 0x63, 0xff, 0x22, 0x49, 0x64, 0xff, 0x22, 0x4a, 0x64, 0xff, 0x22, 0x4a, 0x64, 0xff, 0x23, 0x4a, 0x67, 0xff, 0x33, 0x3f, 0xbc, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x37, 0x3c, 0xd5, 0xff, 0x29, 0x45, 0x88, 0xff, 0x22, 0x4a, 0x64, 0xff, 0x22, 0x4a, 0x64, 0xff, 0x22, 0x4a, 0x64, 0xff, 0x22, 0x4a, 0x64, 0xff, 0x22, 0x4a, 0x64, 0xff, 0x22, 0x4a, 0x64, 0xff, 0x22, 0x4a, 0x64, 0xff, 0x22, 0x4a, 0x64, 0xff, 0x22, 0x4a, 0x64, 0xff, 0x22, 0x4a, 0x64, 0xff, 0x22, 0x4a, 0x64, 0xff, 0x22, 0x4a, 0x64, 0xff, 0x22, 0x4a, 0x64, 0xff, 0x22, 0x4a, 0x64, 0xff, 0x22, 0x4a, 0x64, 0xff, 0x22, 0x4a, 0x64, 0xff, 0x22, 0x4a, 0x64, 0xff, 0x22, 0x4a, 0x64, 0xff, 0x22, 0x4a, 0x64, 0xff, 0x22, 0x49, 0x64, 0xff, 0x22, 0x49, 0x63, 0xff, 0x22, 0x49, 0x63, 0xff, 0x22, 0x49, 0x63, 0xff, 0x22, 0x48, 0x63, 0xff, 0x22, 0x48, 0x63, 0xff, 0x32, 0x3d, 0xbc, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3b, 0xe0, 0xff, 0x40, 0x72, 0xe5, 0xff, 0x3f, 0x93, 0xd1, 0xff, 0x39, 0x88, 0xbd, 0xd6, 0x39, 0x89, 0xbe, 0xa0, + 0x39, 0x87, 0xbd, 0x51, 0x39, 0x7d, 0xc3, 0xd7, 0x3b, 0x4b, 0xdf, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x38, 0x3a, 0xdd, 0xff, 0x28, 0x44, 0x83, 0xff, 0x21, 0x47, 0x60, 0xff, 0x21, 0x47, 0x61, 0xff, 0x21, 0x48, 0x62, 0xff, 0x22, 0x48, 0x63, 0xff, 0x22, 0x48, 0x62, 0xff, 0x22, 0x48, 0x62, 0xff, 0x22, 0x49, 0x64, 0xff, 0x22, 0x49, 0x64, 0xff, 0x22, 0x49, 0x64, 0xff, 0x22, 0x49, 0x64, 0xff, 0x23, 0x49, 0x67, 0xff, 0x33, 0x3e, 0xbe, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x37, 0x3c, 0xd4, 0xff, 0x29, 0x45, 0x87, 0xff, 0x22, 0x49, 0x64, 0xff, 0x22, 0x49, 0x64, 0xff, 0x22, 0x4a, 0x64, 0xff, 0x22, 0x4a, 0x64, 0xff, 0x22, 0x4a, 0x64, 0xff, 0x22, 0x49, 0x64, 0xff, 0x22, 0x49, 0x64, 0xff, 0x22, 0x49, 0x64, 0xff, 0x22, 0x49, 0x64, 0xff, 0x22, 0x49, 0x64, 0xff, 0x22, 0x49, 0x64, 0xff, 0x22, 0x4a, 0x64, 0xff, 0x22, 0x4a, 0x64, 0xff, 0x22, 0x4a, 0x64, 0xff, 0x22, 0x49, 0x64, 0xff, 0x22, 0x49, 0x64, 0xff, 0x22, 0x49, 0x64, 0xff, 0x22, 0x49, 0x64, 0xff, 0x22, 0x49, 0x64, 0xff, 0x22, 0x48, 0x62, 0xff, 0x22, 0x48, 0x62, 0xff, 0x22, 0x49, 0x63, 0xff, 0x21, 0x48, 0x62, 0xff, 0x21, 0x47, 0x62, 0xff, 0x2a, 0x42, 0x8f, 0xff, 0x3a, 0x3a, 0xe3, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3e, 0x5d, 0xe3, 0xff, 0x3f, 0x8a, 0xd2, 0xff, 0x39, 0x88, 0xbd, 0xd6, 0x39, 0x89, 0xbf, 0xa0, + 0x39, 0x87, 0xbd, 0x51, 0x3a, 0x6b, 0xcb, 0xe1, 0x3a, 0x45, 0xe0, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x38, 0x3b, 0xd6, 0xff, 0x23, 0x49, 0x68, 0xff, 0x22, 0x49, 0x64, 0xff, 0x22, 0x4a, 0x65, 0xff, 0x22, 0x4a, 0x65, 0xff, 0x22, 0x4a, 0x64, 0xff, 0x22, 0x4b, 0x66, 0xff, 0x22, 0x4b, 0x66, 0xff, 0x23, 0x4b, 0x66, 0xff, 0x23, 0x4b, 0x66, 0xff, 0x23, 0x4b, 0x66, 0xff, 0x23, 0x4b, 0x65, 0xff, 0x23, 0x4b, 0x65, 0xff, 0x24, 0x4b, 0x68, 0xff, 0x33, 0x3f, 0xbd, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x37, 0x3c, 0xd4, 0xff, 0x2a, 0x46, 0x88, 0xff, 0x23, 0x4b, 0x65, 0xff, 0x23, 0x4b, 0x65, 0xff, 0x23, 0x4b, 0x65, 0xff, 0x23, 0x4b, 0x65, 0xff, 0x23, 0x4b, 0x65, 0xff, 0x23, 0x4b, 0x65, 0xff, 0x23, 0x4b, 0x65, 0xff, 0x23, 0x4b, 0x65, 0xff, 0x23, 0x4b, 0x65, 0xff, 0x23, 0x4b, 0x65, 0xff, 0x23, 0x4b, 0x65, 0xff, 0x23, 0x4b, 0x65, 0xff, 0x23, 0x4b, 0x65, 0xff, 0x23, 0x4b, 0x65, 0xff, 0x23, 0x4b, 0x65, 0xff, 0x23, 0x4b, 0x66, 0xff, 0x23, 0x4b, 0x66, 0xff, 0x23, 0x4b, 0x66, 0xff, 0x22, 0x4b, 0x66, 0xff, 0x22, 0x4b, 0x66, 0xff, 0x22, 0x4a, 0x64, 0xff, 0x22, 0x4a, 0x65, 0xff, 0x22, 0x4a, 0x64, 0xff, 0x25, 0x47, 0x73, 0xff, 0x3a, 0x3a, 0xe0, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3d, 0x50, 0xe3, 0xff, 0x3d, 0x75, 0xd5, 0xff, 0x39, 0x88, 0xbc, 0xd6, 0x39, 0x89, 0xbf, 0xa0, + 0x39, 0x8b, 0xbd, 0x51, 0x3b, 0x5a, 0xd2, 0xea, 0x3a, 0x40, 0xe1, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x31, 0x39, 0xb6, 0xff, 0x1c, 0x37, 0x4b, 0xff, 0x1c, 0x37, 0x4b, 0xff, 0x1c, 0x39, 0x4d, 0xff, 0x1c, 0x39, 0x4c, 0xff, 0x1b, 0x39, 0x4c, 0xff, 0x1b, 0x3a, 0x4e, 0xff, 0x1b, 0x3a, 0x4e, 0xff, 0x1c, 0x39, 0x4d, 0xff, 0x1c, 0x39, 0x4e, 0xff, 0x1c, 0x39, 0x4e, 0xff, 0x1c, 0x39, 0x4d, 0xff, 0x1c, 0x39, 0x4d, 0xff, 0x1c, 0x39, 0x4d, 0xff, 0x1d, 0x3a, 0x50, 0xff, 0x31, 0x3a, 0xb5, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x37, 0x3a, 0xd2, 0xff, 0x25, 0x39, 0x79, 0xff, 0x1c, 0x3a, 0x4d, 0xff, 0x1c, 0x3a, 0x4d, 0xff, 0x1c, 0x3a, 0x4d, 0xff, 0x1c, 0x39, 0x4d, 0xff, 0x1c, 0x39, 0x4d, 0xff, 0x1c, 0x39, 0x4d, 0xff, 0x1c, 0x39, 0x4d, 0xff, 0x1c, 0x39, 0x4d, 0xff, 0x1c, 0x39, 0x4d, 0xff, 0x1c, 0x3a, 0x4d, 0xff, 0x1c, 0x3a, 0x4d, 0xff, 0x1c, 0x3a, 0x4d, 0xff, 0x1c, 0x39, 0x4d, 0xff, 0x1c, 0x39, 0x4d, 0xff, 0x1c, 0x39, 0x4e, 0xff, 0x1c, 0x39, 0x4e, 0xff, 0x1c, 0x39, 0x4d, 0xff, 0x1b, 0x3a, 0x4e, 0xff, 0x1b, 0x3a, 0x4e, 0xff, 0x1b, 0x39, 0x4c, 0xff, 0x1c, 0x39, 0x4c, 0xff, 0x1c, 0x39, 0x4c, 0xff, 0x1d, 0x37, 0x51, 0xff, 0x34, 0x39, 0xc5, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3b, 0x47, 0xe3, 0xff, 0x3c, 0x64, 0xda, 0xff, 0x39, 0x87, 0xbc, 0xd6, 0x39, 0x89, 0xbf, 0xa0, + 0x39, 0x8b, 0xbd, 0x51, 0x3a, 0x50, 0xd8, 0xf1, 0x3a, 0x3c, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe0, 0xff, 0x2e, 0x43, 0xa6, 0xff, 0x22, 0x4d, 0x69, 0xff, 0x23, 0x4d, 0x69, 0xff, 0x24, 0x4d, 0x69, 0xff, 0x24, 0x4d, 0x69, 0xff, 0x24, 0x4d, 0x69, 0xff, 0x24, 0x4e, 0x6a, 0xff, 0x24, 0x4e, 0x6a, 0xff, 0x24, 0x4f, 0x6a, 0xff, 0x24, 0x4f, 0x6a, 0xff, 0x24, 0x4f, 0x6a, 0xff, 0x24, 0x4f, 0x6a, 0xff, 0x24, 0x4f, 0x6a, 0xff, 0x24, 0x4f, 0x6a, 0xff, 0x24, 0x4f, 0x6a, 0xff, 0x25, 0x4e, 0x6f, 0xff, 0x33, 0x40, 0xbe, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x37, 0x3d, 0xd3, 0xff, 0x2a, 0x49, 0x8d, 0xff, 0x24, 0x4f, 0x6a, 0xff, 0x24, 0x4f, 0x6a, 0xff, 0x24, 0x4f, 0x6a, 0xff, 0x24, 0x4f, 0x6a, 0xff, 0x24, 0x4f, 0x6a, 0xff, 0x24, 0x4f, 0x6a, 0xff, 0x24, 0x4f, 0x6a, 0xff, 0x24, 0x4f, 0x6a, 0xff, 0x24, 0x4f, 0x6a, 0xff, 0x24, 0x4f, 0x6a, 0xff, 0x24, 0x4f, 0x6a, 0xff, 0x24, 0x4f, 0x6a, 0xff, 0x24, 0x4f, 0x6a, 0xff, 0x24, 0x4f, 0x6a, 0xff, 0x24, 0x4f, 0x6a, 0xff, 0x24, 0x4f, 0x6a, 0xff, 0x24, 0x4e, 0x6a, 0xff, 0x24, 0x4e, 0x6a, 0xff, 0x24, 0x4d, 0x69, 0xff, 0x24, 0x4d, 0x69, 0xff, 0x24, 0x4d, 0x69, 0xff, 0x24, 0x4c, 0x6c, 0xff, 0x31, 0x41, 0xb5, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x40, 0xe2, 0xff, 0x3b, 0x57, 0xdc, 0xff, 0x39, 0x87, 0xbc, 0xd6, 0x39, 0x89, 0xbe, 0xa0, + 0x39, 0x87, 0xbd, 0x51, 0x3a, 0x49, 0xdb, 0xf5, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3c, 0xe2, 0xff, 0x3f, 0x7b, 0xe3, 0xff, 0x44, 0xa4, 0xe4, 0xff, 0x44, 0xa4, 0xe4, 0xff, 0x44, 0xa4, 0xe4, 0xff, 0x44, 0xa4, 0xe4, 0xff, 0x44, 0xa4, 0xe4, 0xff, 0x44, 0xa4, 0xe5, 0xff, 0x44, 0xa4, 0xe5, 0xff, 0x44, 0xa4, 0xe5, 0xff, 0x44, 0xa4, 0xe5, 0xff, 0x44, 0xa4, 0xe5, 0xff, 0x44, 0xa4, 0xe5, 0xff, 0x44, 0xa4, 0xe5, 0xff, 0x44, 0xa4, 0xe5, 0xff, 0x44, 0xa4, 0xe5, 0xff, 0x44, 0xa4, 0xe5, 0xff, 0x44, 0x9f, 0xe5, 0xff, 0x3d, 0x5b, 0xe3, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3b, 0x46, 0xe1, 0xff, 0x41, 0x84, 0xe4, 0xff, 0x44, 0xa4, 0xe5, 0xff, 0x44, 0xa4, 0xe5, 0xff, 0x44, 0xa4, 0xe5, 0xff, 0x44, 0xa4, 0xe5, 0xff, 0x44, 0xa4, 0xe5, 0xff, 0x44, 0xa4, 0xe5, 0xff, 0x44, 0xa4, 0xe5, 0xff, 0x44, 0xa4, 0xe5, 0xff, 0x44, 0xa4, 0xe5, 0xff, 0x44, 0xa4, 0xe5, 0xff, 0x44, 0xa4, 0xe5, 0xff, 0x44, 0xa4, 0xe5, 0xff, 0x44, 0xa4, 0xe5, 0xff, 0x44, 0xa4, 0xe5, 0xff, 0x44, 0xa4, 0xe5, 0xff, 0x44, 0xa4, 0xe5, 0xff, 0x44, 0xa4, 0xe5, 0xff, 0x44, 0xa4, 0xe4, 0xff, 0x44, 0xa4, 0xe4, 0xff, 0x44, 0xa4, 0xe4, 0xff, 0x44, 0xa2, 0xe4, 0xff, 0x3f, 0x70, 0xe3, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3b, 0xe2, 0xff, 0x3a, 0x4d, 0xdc, 0xff, 0x39, 0x89, 0xbf, 0xd6, 0x39, 0x87, 0xbe, 0xa0, + 0x39, 0x87, 0xbd, 0x51, 0x3a, 0x44, 0xde, 0xf9, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3c, 0xe2, 0xff, 0x44, 0x8b, 0xec, 0xff, 0x47, 0xac, 0xf0, 0xff, 0x47, 0xac, 0xf0, 0xff, 0x47, 0xac, 0xf0, 0xff, 0x47, 0xac, 0xf0, 0xff, 0x47, 0xac, 0xf0, 0xff, 0x47, 0xac, 0xf0, 0xff, 0x47, 0xac, 0xf0, 0xff, 0x47, 0xac, 0xf0, 0xff, 0x47, 0xac, 0xf0, 0xff, 0x47, 0xac, 0xf0, 0xff, 0x47, 0xac, 0xf0, 0xff, 0x47, 0xac, 0xf0, 0xff, 0x47, 0xac, 0xf0, 0xff, 0x47, 0xac, 0xf0, 0xff, 0x47, 0xac, 0xf0, 0xff, 0x47, 0xac, 0xf0, 0xff, 0x46, 0xa6, 0xef, 0xff, 0x3e, 0x5d, 0xe6, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3c, 0x48, 0xe3, 0xff, 0x43, 0x8a, 0xec, 0xff, 0x47, 0xac, 0xf0, 0xff, 0x47, 0xac, 0xf0, 0xff, 0x47, 0xac, 0xf0, 0xff, 0x47, 0xac, 0xf0, 0xff, 0x47, 0xac, 0xf0, 0xff, 0x47, 0xac, 0xf0, 0xff, 0x47, 0xac, 0xf0, 0xff, 0x47, 0xac, 0xf0, 0xff, 0x47, 0xac, 0xf0, 0xff, 0x47, 0xac, 0xf0, 0xff, 0x47, 0xac, 0xf0, 0xff, 0x47, 0xac, 0xf0, 0xff, 0x47, 0xac, 0xf0, 0xff, 0x47, 0xac, 0xf0, 0xff, 0x47, 0xac, 0xf0, 0xff, 0x47, 0xac, 0xf0, 0xff, 0x47, 0xac, 0xf0, 0xff, 0x47, 0xac, 0xf0, 0xff, 0x47, 0xac, 0xf0, 0xff, 0x47, 0xab, 0xf0, 0xff, 0x43, 0x80, 0xeb, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x47, 0xde, 0xff, 0x39, 0x89, 0xbf, 0xd6, 0x39, 0x87, 0xbe, 0xa0, + 0x39, 0x87, 0xbd, 0x51, 0x3a, 0x40, 0xe0, 0xfb, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3d, 0xe2, 0xff, 0x42, 0x8a, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x42, 0x99, 0xdf, 0xff, 0x3d, 0x5a, 0xe0, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3b, 0x47, 0xe2, 0xff, 0x40, 0x82, 0xe0, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x41, 0x80, 0xe0, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x42, 0xdf, 0xff, 0x39, 0x89, 0xbd, 0xd6, 0x39, 0x87, 0xbe, 0xa0, + 0x39, 0x87, 0xbd, 0x51, 0x3a, 0x3f, 0xe0, 0xfc, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3d, 0xe2, 0xff, 0x42, 0x8c, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x42, 0x98, 0xdf, 0xff, 0x3d, 0x5b, 0xe0, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3b, 0x47, 0xe2, 0xff, 0x40, 0x83, 0xe0, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x41, 0x83, 0xe0, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x40, 0xe0, 0xff, 0x39, 0x89, 0xbd, 0xd6, 0x39, 0x87, 0xbe, 0xa0, + 0x39, 0x87, 0xbd, 0x51, 0x3a, 0x41, 0xdf, 0xfa, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3c, 0xe2, 0xff, 0x42, 0x89, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x42, 0x98, 0xdf, 0xff, 0x3d, 0x5b, 0xe0, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3b, 0x47, 0xe2, 0xff, 0x40, 0x84, 0xe0, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa0, 0xdf, 0xff, 0x41, 0x7f, 0xe0, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x42, 0xdf, 0xff, 0x39, 0x89, 0xbd, 0xd6, 0x39, 0x87, 0xbc, 0xa0, + 0x39, 0x87, 0xbd, 0x51, 0x3a, 0x45, 0xdd, 0xf8, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3c, 0xe2, 0xff, 0x41, 0x81, 0xe0, 0xff, 0x43, 0xa0, 0xdf, 0xff, 0x43, 0xa0, 0xdf, 0xff, 0x43, 0xa0, 0xdf, 0xff, 0x43, 0xa0, 0xdf, 0xff, 0x43, 0xa0, 0xdf, 0xff, 0x43, 0xa0, 0xdf, 0xff, 0x43, 0xa0, 0xdf, 0xff, 0x43, 0xa0, 0xdf, 0xff, 0x43, 0xa0, 0xdf, 0xff, 0x43, 0xa0, 0xdf, 0xff, 0x43, 0xa0, 0xdf, 0xff, 0x43, 0xa0, 0xdf, 0xff, 0x43, 0xa0, 0xdf, 0xff, 0x43, 0xa0, 0xdf, 0xff, 0x43, 0xa0, 0xdf, 0xff, 0x43, 0xa0, 0xdf, 0xff, 0x43, 0xa0, 0xdf, 0xff, 0x43, 0xa0, 0xdf, 0xff, 0x43, 0xa0, 0xdf, 0xff, 0x43, 0xa0, 0xdf, 0xff, 0x42, 0x97, 0xdf, 0xff, 0x3d, 0x5a, 0xe1, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3b, 0x45, 0xe2, 0xff, 0x41, 0x84, 0xe0, 0xff, 0x43, 0xa0, 0xdf, 0xff, 0x43, 0xa0, 0xdf, 0xff, 0x43, 0xa0, 0xdf, 0xff, 0x43, 0xa0, 0xdf, 0xff, 0x43, 0xa0, 0xdf, 0xff, 0x43, 0xa0, 0xdf, 0xff, 0x43, 0xa0, 0xdf, 0xff, 0x43, 0xa0, 0xdf, 0xff, 0x43, 0xa0, 0xdf, 0xff, 0x43, 0xa0, 0xdf, 0xff, 0x43, 0xa0, 0xdf, 0xff, 0x43, 0xa0, 0xdf, 0xff, 0x43, 0xa0, 0xdf, 0xff, 0x43, 0xa0, 0xdf, 0xff, 0x43, 0xa0, 0xdf, 0xff, 0x43, 0x9f, 0xdf, 0xff, 0x3f, 0x77, 0xe1, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x47, 0xde, 0xff, 0x39, 0x88, 0xbd, 0xd6, 0x39, 0x87, 0xbc, 0xa0, + 0x39, 0x87, 0xbd, 0x51, 0x39, 0x49, 0xdb, 0xf4, 0x3a, 0x3b, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3c, 0xe2, 0xff, 0x3f, 0x77, 0xdf, 0xff, 0x43, 0xa0, 0xdf, 0xff, 0x43, 0xa0, 0xdf, 0xff, 0x43, 0xa0, 0xde, 0xff, 0x43, 0xa0, 0xde, 0xff, 0x43, 0xa0, 0xde, 0xff, 0x43, 0xa0, 0xde, 0xff, 0x44, 0xa0, 0xde, 0xff, 0x45, 0xa1, 0xdf, 0xff, 0x45, 0xa1, 0xdf, 0xff, 0x45, 0xa1, 0xdf, 0xff, 0x44, 0xa0, 0xde, 0xff, 0x43, 0xa0, 0xde, 0xff, 0x43, 0xa0, 0xde, 0xff, 0x43, 0xa0, 0xdf, 0xff, 0x43, 0xa0, 0xdf, 0xff, 0x43, 0xa0, 0xdf, 0xff, 0x45, 0xa1, 0xde, 0xff, 0x45, 0xa1, 0xde, 0xff, 0x45, 0xa1, 0xde, 0xff, 0x45, 0xa1, 0xde, 0xff, 0x43, 0xa0, 0xdf, 0xff, 0x42, 0x97, 0xdf, 0xff, 0x3d, 0x5a, 0xe1, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3b, 0x45, 0xe2, 0xff, 0x42, 0x84, 0xe0, 0xff, 0x43, 0xa0, 0xde, 0xff, 0x43, 0xa0, 0xde, 0xff, 0x44, 0xa0, 0xde, 0xff, 0x45, 0xa1, 0xdf, 0xff, 0x45, 0xa1, 0xdf, 0xff, 0x45, 0xa1, 0xdf, 0xff, 0x45, 0xa1, 0xde, 0xff, 0x45, 0xa1, 0xde, 0xff, 0x45, 0xa0, 0xde, 0xff, 0x44, 0xa0, 0xdf, 0xff, 0x44, 0xa0, 0xdf, 0xff, 0x43, 0xa0, 0xdf, 0xff, 0x43, 0xa0, 0xdf, 0xff, 0x43, 0xa0, 0xde, 0xff, 0x43, 0x9e, 0xdf, 0xff, 0x3e, 0x6d, 0xe0, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3b, 0xe2, 0xff, 0x3a, 0x4d, 0xdb, 0xff, 0x39, 0x88, 0xbd, 0xd6, 0x39, 0x87, 0xbc, 0xa0, + 0x39, 0x87, 0xbd, 0x51, 0x3a, 0x52, 0xd8, 0xef, 0x3a, 0x3d, 0xe1, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3b, 0xe2, 0xff, 0x3e, 0x67, 0xe0, 0xff, 0x43, 0xa0, 0xde, 0xff, 0x43, 0xa0, 0xde, 0xff, 0x43, 0xa0, 0xde, 0xff, 0x43, 0xa0, 0xde, 0xff, 0x44, 0xa0, 0xde, 0xff, 0x45, 0xa0, 0xde, 0xff, 0x39, 0x9c, 0xdc, 0xff, 0x31, 0x99, 0xdb, 0xff, 0x32, 0x98, 0xdb, 0xff, 0x33, 0x98, 0xdb, 0xff, 0x40, 0x9e, 0xdd, 0xff, 0x46, 0xa1, 0xde, 0xff, 0x43, 0xa0, 0xde, 0xff, 0x43, 0xa0, 0xde, 0xff, 0x45, 0xa1, 0xde, 0xff, 0x41, 0x9f, 0xdd, 0xff, 0x35, 0x99, 0xdb, 0xff, 0x34, 0x98, 0xdb, 0xff, 0x32, 0x97, 0xdb, 0xff, 0x34, 0x99, 0xdb, 0xff, 0x43, 0x9f, 0xdd, 0xff, 0x45, 0xa1, 0xde, 0xff, 0x42, 0x99, 0xde, 0xff, 0x3d, 0x5b, 0xe1, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x44, 0xe1, 0xff, 0x43, 0x84, 0xdf, 0xff, 0x46, 0xa1, 0xde, 0xff, 0x38, 0x9b, 0xdc, 0xff, 0x31, 0x98, 0xdb, 0xff, 0x33, 0x99, 0xdb, 0xff, 0x34, 0x99, 0xdb, 0xff, 0x34, 0x99, 0xdb, 0xff, 0x34, 0x99, 0xdb, 0xff, 0x35, 0x99, 0xdb, 0xff, 0x3b, 0x9c, 0xdd, 0xff, 0x43, 0xa0, 0xde, 0xff, 0x45, 0xa1, 0xdf, 0xff, 0x43, 0xa0, 0xde, 0xff, 0x43, 0xa0, 0xde, 0xff, 0x43, 0x9d, 0xde, 0xff, 0x3d, 0x5e, 0xe1, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3f, 0xe1, 0xff, 0x3b, 0x56, 0xd8, 0xff, 0x39, 0x88, 0xbd, 0xd6, 0x39, 0x87, 0xbc, 0xa0, + 0x39, 0x87, 0xba, 0x51, 0x3a, 0x5c, 0xd2, 0xe9, 0x3a, 0x40, 0xe0, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3c, 0x55, 0xe1, 0xff, 0x43, 0xa0, 0xde, 0xff, 0x43, 0xa0, 0xde, 0xff, 0x43, 0xa0, 0xde, 0xff, 0x43, 0xa0, 0xde, 0xff, 0x46, 0xa0, 0xde, 0xff, 0x3e, 0x9c, 0xdd, 0xff, 0x2d, 0x95, 0xd9, 0xff, 0x34, 0x98, 0xdb, 0xff, 0x35, 0x9a, 0xdc, 0xff, 0x31, 0x97, 0xdb, 0xff, 0x2d, 0x95, 0xda, 0xff, 0x43, 0xa0, 0xde, 0xff, 0x47, 0xa2, 0xde, 0xff, 0x42, 0xa0, 0xde, 0xff, 0x46, 0xa1, 0xdf, 0xff, 0x3c, 0x9c, 0xde, 0xff, 0x32, 0x97, 0xdb, 0xff, 0x34, 0x98, 0xdb, 0xff, 0x35, 0x99, 0xdb, 0xff, 0x2f, 0x96, 0xdb, 0xff, 0x36, 0x9a, 0xdc, 0xff, 0x48, 0xa2, 0xde, 0xff, 0x45, 0xa1, 0xde, 0xff, 0x45, 0x9c, 0xde, 0xff, 0x3c, 0x58, 0xe1, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3b, 0x45, 0xe2, 0xff, 0x41, 0x83, 0xdf, 0xff, 0x30, 0x96, 0xda, 0xff, 0x33, 0x98, 0xda, 0xff, 0x34, 0x98, 0xdb, 0xff, 0x33, 0x98, 0xdb, 0xff, 0x33, 0x98, 0xdb, 0xff, 0x35, 0x98, 0xdb, 0xff, 0x33, 0x98, 0xdb, 0xff, 0x24, 0x91, 0xd8, 0xff, 0x21, 0x8f, 0xd8, 0xff, 0x3c, 0x9c, 0xdd, 0xff, 0x46, 0xa2, 0xdf, 0xff, 0x43, 0xa0, 0xde, 0xff, 0x43, 0x9c, 0xde, 0xff, 0x3b, 0x4a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3b, 0x45, 0xe0, 0xff, 0x3c, 0x64, 0xd3, 0xff, 0x39, 0x88, 0xbd, 0xd6, 0x39, 0x87, 0xba, 0xa0, + 0x39, 0x87, 0xba, 0x51, 0x3a, 0x6c, 0xc9, 0xe0, 0x3a, 0x45, 0xde, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3b, 0x43, 0xe2, 0xff, 0x42, 0x9a, 0xde, 0xff, 0x43, 0xa0, 0xde, 0xff, 0x43, 0xa0, 0xde, 0xff, 0x43, 0xa0, 0xde, 0xff, 0x3c, 0x9c, 0xdd, 0xff, 0x38, 0x9b, 0xdc, 0xff, 0x9d, 0xce, 0xee, 0xff, 0xd5, 0xe9, 0xf9, 0xff, 0xcb, 0xe4, 0xf6, 0xff, 0xd1, 0xe9, 0xf6, 0xff, 0x7b, 0xbd, 0xe8, 0xff, 0x2c, 0x95, 0xdb, 0xff, 0x40, 0x9e, 0xde, 0xff, 0x48, 0xa3, 0xde, 0xff, 0x31, 0x97, 0xdb, 0xff, 0x58, 0xaa, 0xe3, 0xff, 0xc4, 0xe1, 0xf5, 0xff, 0xce, 0xe7, 0xf6, 0xff, 0xd3, 0xe9, 0xf7, 0xff, 0xc9, 0xe4, 0xf6, 0xff, 0x51, 0xa7, 0xe1, 0xff, 0x2a, 0x93, 0xd9, 0xff, 0x46, 0xa2, 0xde, 0xff, 0x3f, 0x9e, 0xde, 0xff, 0x25, 0x8d, 0xd9, 0xff, 0x51, 0x63, 0xe4, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x39, 0x44, 0xe1, 0xff, 0x88, 0xa7, 0xeb, 0xff, 0xdb, 0xed, 0xf8, 0xff, 0xc7, 0xe3, 0xf5, 0xff, 0xc5, 0xe2, 0xf5, 0xff, 0xc7, 0xe2, 0xf5, 0xff, 0xc9, 0xe3, 0xf5, 0xff, 0xc5, 0xe1, 0xf5, 0xff, 0xb4, 0xda, 0xf2, 0xff, 0x6b, 0xb4, 0xe5, 0xff, 0x25, 0x90, 0xd9, 0xff, 0x3e, 0x9d, 0xdd, 0xff, 0x46, 0xa1, 0xde, 0xff, 0x42, 0x91, 0xdf, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3b, 0x4e, 0xde, 0xff, 0x3b, 0x74, 0xce, 0xff, 0x39, 0x88, 0xbd, 0xd6, 0x39, 0x87, 0xba, 0xa0, + 0x39, 0x87, 0xba, 0x51, 0x39, 0x80, 0xc1, 0xd6, 0x3a, 0x4c, 0xdc, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3e, 0xe3, 0xff, 0x40, 0x7f, 0xdf, 0xff, 0x43, 0xa0, 0xde, 0xff, 0x42, 0xa0, 0xde, 0xff, 0x43, 0xa0, 0xde, 0xff, 0x30, 0x97, 0xdb, 0xff, 0x5e, 0xad, 0xe3, 0xff, 0xfb, 0xfc, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xd3, 0xe9, 0xf7, 0xff, 0x33, 0x98, 0xdb, 0xff, 0x30, 0x96, 0xda, 0xff, 0x4e, 0xa5, 0xdf, 0xff, 0x24, 0x8f, 0xd8, 0xff, 0x72, 0xb8, 0xe6, 0xff, 0xfb, 0xfd, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x95, 0xc8, 0xed, 0xff, 0x16, 0x89, 0xd6, 0xff, 0x40, 0x9f, 0xdd, 0xff, 0x2e, 0x94, 0xda, 0xff, 0x38, 0x9a, 0xdd, 0xff, 0xdc, 0xeb, 0xfa, 0xff, 0x75, 0x75, 0xeb, 0xff, 0x3b, 0x3b, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x4c, 0x4d, 0xe5, 0xff, 0xc7, 0xc7, 0xf7, 0xff, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfd, 0xff, 0xff, 0xff, 0x89, 0xc3, 0xea, 0xff, 0x2d, 0x94, 0xd9, 0xff, 0x44, 0xa0, 0xde, 0xff, 0x41, 0x77, 0xdf, 0xff, 0x39, 0x39, 0xe3, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3c, 0x5a, 0xdb, 0xff, 0x3b, 0x85, 0xc8, 0xff, 0x38, 0x88, 0xbd, 0xd6, 0x38, 0x86, 0xba, 0xa0, + 0x39, 0x87, 0xba, 0x51, 0x39, 0x86, 0xbd, 0xd2, 0x3a, 0x5e, 0xd6, 0xff, 0x3a, 0x3b, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3b, 0xe2, 0xff, 0x3c, 0x5c, 0xe0, 0xff, 0x43, 0x9f, 0xdd, 0xff, 0x43, 0x9f, 0xdd, 0xff, 0x42, 0x9e, 0xdd, 0xff, 0x2b, 0x93, 0xd9, 0xff, 0x88, 0xc2, 0xe9, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf3, 0xf9, 0xfd, 0xff, 0x59, 0xaa, 0xe1, 0xff, 0x28, 0x91, 0xd8, 0xff, 0x4d, 0xa4, 0xde, 0xff, 0x28, 0x90, 0xd8, 0xff, 0x6d, 0xb4, 0xe4, 0xff, 0xf6, 0xfa, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc9, 0xe4, 0xf6, 0xff, 0x2b, 0x94, 0xd9, 0xff, 0x33, 0x97, 0xda, 0xff, 0x20, 0x8d, 0xd6, 0xff, 0x65, 0xb0, 0xe4, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfa, 0xfa, 0xfe, 0xff, 0x74, 0x74, 0xeb, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x50, 0x50, 0xe5, 0xff, 0xc7, 0xc7, 0xf6, 0xff, 0xdd, 0xed, 0xf9, 0xff, 0xce, 0xe6, 0xf6, 0xff, 0xcd, 0xe5, 0xf6, 0xff, 0xe3, 0xf0, 0xfa, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xeb, 0xf6, 0xfb, 0xff, 0x4c, 0xa4, 0xde, 0xff, 0x31, 0x94, 0xda, 0xff, 0x3e, 0x53, 0xe0, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3c, 0xe2, 0xff, 0x3d, 0x6d, 0xd7, 0xff, 0x3b, 0x8c, 0xc5, 0xff, 0x39, 0x88, 0xbc, 0xd6, 0x39, 0x86, 0xba, 0xa0, + 0x39, 0x87, 0xba, 0x51, 0x38, 0x87, 0xbc, 0xd1, 0x3b, 0x78, 0xcc, 0xff, 0x3a, 0x3f, 0xe1, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3b, 0x43, 0xe2, 0xff, 0x41, 0x96, 0xdd, 0xff, 0x42, 0x9f, 0xdd, 0xff, 0x3f, 0x9d, 0xdd, 0xff, 0x31, 0x95, 0xda, 0xff, 0xb1, 0xd7, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe9, 0xf5, 0xfb, 0xff, 0xcb, 0xe5, 0xf6, 0xff, 0xf7, 0xfb, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0x87, 0xc2, 0xe9, 0xff, 0x23, 0x8f, 0xd6, 0xff, 0x47, 0xa1, 0xde, 0xff, 0x29, 0x92, 0xd9, 0xff, 0x6c, 0xb4, 0xe4, 0xff, 0xf7, 0xfa, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf7, 0xfb, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf5, 0xf9, 0xfd, 0xff, 0x56, 0xa9, 0xe1, 0xff, 0x1e, 0x8c, 0xd7, 0xff, 0x22, 0x8e, 0xd8, 0xff, 0x9d, 0xcd, 0xed, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf9, 0xfc, 0xfe, 0xff, 0xf5, 0xf7, 0xfd, 0xff, 0x72, 0x72, 0xea, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x4f, 0x4f, 0xe5, 0xff, 0x52, 0x8b, 0xe2, 0xff, 0x25, 0x91, 0xd9, 0xff, 0x2e, 0x96, 0xda, 0xff, 0x40, 0x9d, 0xdc, 0xff, 0xda, 0xeb, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xfd, 0xfe, 0xff, 0x6f, 0xb6, 0xe6, 0xff, 0x29, 0x80, 0xda, 0xff, 0x39, 0x39, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3b, 0x47, 0xe0, 0xff, 0x3d, 0x83, 0xd1, 0xff, 0x3b, 0x8d, 0xc4, 0xff, 0x38, 0x88, 0xbc, 0xd6, 0x38, 0x86, 0xba, 0xa0, + 0x39, 0x87, 0xba, 0x51, 0x38, 0x87, 0xbc, 0xd1, 0x3b, 0x8d, 0xc4, 0xff, 0x3b, 0x49, 0xdf, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3c, 0xe2, 0xff, 0x3d, 0x65, 0xdf, 0xff, 0x43, 0x9f, 0xdd, 0xff, 0x38, 0x9a, 0xdc, 0xff, 0x46, 0xa1, 0xde, 0xff, 0xdb, 0xec, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0xdf, 0xf4, 0xff, 0x6a, 0xb2, 0xe4, 0xff, 0xe3, 0xf0, 0xfa, 0xff, 0xff, 0xff, 0xff, 0xff, 0xb1, 0xd8, 0xf1, 0xff, 0x25, 0x90, 0xd8, 0xff, 0x3d, 0x9c, 0xdc, 0xff, 0x2b, 0x93, 0xd9, 0xff, 0x6b, 0xb3, 0xe4, 0xff, 0xfa, 0xfc, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc8, 0xe3, 0xf4, 0xff, 0xdd, 0xee, 0xf9, 0xff, 0xff, 0xff, 0xff, 0xff, 0x85, 0xc1, 0xe9, 0xff, 0x0a, 0x83, 0xd4, 0xff, 0x33, 0x98, 0xda, 0xff, 0xd3, 0xe9, 0xf7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc3, 0xe1, 0xf4, 0xff, 0xdf, 0xef, 0xf9, 0xff, 0xfb, 0xfb, 0xfe, 0xff, 0x66, 0x6e, 0xe8, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3c, 0x46, 0xe2, 0xff, 0x21, 0x72, 0xd9, 0xff, 0x2a, 0x94, 0xd9, 0xff, 0x18, 0x8a, 0xd6, 0xff, 0xbc, 0xde, 0xf3, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0x74, 0xb9, 0xe6, 0xff, 0x33, 0x5b, 0xdd, 0xff, 0x39, 0x39, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3d, 0x57, 0xde, 0xff, 0x3e, 0x94, 0xce, 0xff, 0x3b, 0x8d, 0xc4, 0xff, 0x38, 0x87, 0xbc, 0xd6, 0x38, 0x87, 0xba, 0xa0, + 0x39, 0x87, 0xba, 0x51, 0x38, 0x87, 0xbc, 0xd1, 0x3b, 0x8d, 0xc4, 0xff, 0x3c, 0x6b, 0xd7, 0xff, 0x3a, 0x3b, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3b, 0x44, 0xe1, 0xff, 0x45, 0x95, 0xdd, 0xff, 0x2c, 0x94, 0xd9, 0xff, 0x63, 0xb0, 0xe2, 0xff, 0xf9, 0xfc, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xa6, 0xd1, 0xef, 0xff, 0x28, 0x91, 0xd8, 0xff, 0xd4, 0xe9, 0xf7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xdb, 0xed, 0xf8, 0xff, 0x3a, 0x9b, 0xdb, 0xff, 0x34, 0x98, 0xdb, 0xff, 0x2c, 0x94, 0xd9, 0xff, 0x6b, 0xb3, 0xe4, 0xff, 0xf9, 0xfc, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xa6, 0xd2, 0xee, 0xff, 0xad, 0xd5, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0xde, 0xf3, 0xff, 0x0c, 0x83, 0xd2, 0xff, 0x4b, 0xa4, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe5, 0xf2, 0xfa, 0xff, 0x81, 0xc0, 0xe7, 0xff, 0xd0, 0xe7, 0xf7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xcb, 0xe2, 0xf5, 0xff, 0x33, 0x54, 0xdf, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x38, 0x44, 0xe1, 0xff, 0x3a, 0x7e, 0xdd, 0xff, 0x1e, 0x8d, 0xd7, 0xff, 0xba, 0xdc, 0xf3, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfd, 0xfe, 0xff, 0xff, 0x6b, 0xa2, 0xe5, 0xff, 0x39, 0x3d, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3f, 0xe2, 0xff, 0x3f, 0x79, 0xda, 0xff, 0x3e, 0x93, 0xce, 0xff, 0x3b, 0x8d, 0xc4, 0xff, 0x38, 0x87, 0xbc, 0xd6, 0x38, 0x87, 0xba, 0xa0, + 0x39, 0x87, 0xba, 0x51, 0x38, 0x87, 0xbc, 0xd1, 0x3b, 0x8d, 0xc3, 0xff, 0x3e, 0x8c, 0xcf, 0xff, 0x3b, 0x43, 0xe1, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3c, 0xe2, 0xff, 0x3f, 0x63, 0xe1, 0xff, 0x2a, 0x92, 0xd7, 0xff, 0x89, 0xc3, 0xe9, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x8d, 0xc5, 0xe9, 0xff, 0x02, 0x7f, 0xd0, 0xff, 0xbf, 0xdf, 0xf4, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf7, 0xfb, 0xfe, 0xff, 0x62, 0xb0, 0xe2, 0xff, 0x28, 0x91, 0xd7, 0xff, 0x29, 0x92, 0xd7, 0xff, 0x6d, 0xb4, 0xe4, 0xff, 0xf9, 0xfb, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0x9c, 0xcc, 0xed, 0xff, 0x6b, 0xb4, 0xe4, 0xff, 0xff, 0xff, 0xff, 0xff, 0xec, 0xf6, 0xfc, 0xff, 0x23, 0x90, 0xd6, 0xff, 0x70, 0xb6, 0xe4, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc3, 0xe1, 0xf4, 0xff, 0x56, 0xaa, 0xe1, 0xff, 0xd6, 0xeb, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0xcf, 0xe7, 0xf6, 0xff, 0x23, 0x8b, 0xd7, 0xff, 0x39, 0x56, 0xe0, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x36, 0x44, 0xe0, 0xff, 0x23, 0x72, 0xd9, 0xff, 0xc9, 0xe4, 0xf5, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfd, 0xfd, 0xff, 0xff, 0x4a, 0x5c, 0xe3, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3c, 0x50, 0xe0, 0xff, 0x41, 0x97, 0xd5, 0xff, 0x3e, 0x93, 0xcd, 0xff, 0x3b, 0x8d, 0xc3, 0xff, 0x38, 0x87, 0xbc, 0xd6, 0x38, 0x87, 0xba, 0xa0, + 0x39, 0x87, 0xba, 0x51, 0x38, 0x87, 0xbc, 0xd1, 0x3b, 0x8d, 0xc3, 0xff, 0x3e, 0x93, 0xcd, 0xff, 0x3d, 0x69, 0xdc, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x40, 0xe2, 0xff, 0x34, 0x7e, 0xdc, 0xff, 0xbc, 0xdd, 0xf3, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x68, 0xb2, 0xe2, 0xff, 0x00, 0x7c, 0xcf, 0xff, 0x9a, 0xcb, 0xed, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x8f, 0xc5, 0xeb, 0xff, 0x1f, 0x8c, 0xd6, 0xff, 0x23, 0x8e, 0xd6, 0xff, 0x6f, 0xb5, 0xe4, 0xff, 0xf8, 0xfb, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0x9e, 0xce, 0xee, 0xff, 0x35, 0x99, 0xd9, 0xff, 0xe5, 0xf2, 0xfa, 0xff, 0xff, 0xff, 0xff, 0xff, 0x5f, 0xae, 0xe1, 0xff, 0x9f, 0xce, 0xed, 0xff, 0xff, 0xff, 0xff, 0xff, 0x9a, 0xcb, 0xed, 0xff, 0x37, 0x98, 0xdb, 0xff, 0xe6, 0xf2, 0xfb, 0xff, 0xff, 0xff, 0xff, 0xff, 0xcf, 0xe6, 0xf6, 0xff, 0x22, 0x8e, 0xd6, 0xff, 0x36, 0x94, 0xda, 0xff, 0x6d, 0x72, 0xe9, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x49, 0x4d, 0xe3, 0xff, 0xc6, 0xc8, 0xf6, 0xff, 0xff, 0xff, 0xff, 0xff, 0xad, 0xb0, 0xf2, 0xff, 0x3a, 0x3b, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3c, 0xe2, 0xff, 0x3e, 0x78, 0xdc, 0xff, 0x41, 0x99, 0xd5, 0xff, 0x3e, 0x93, 0xcd, 0xff, 0x3b, 0x8d, 0xc3, 0xff, 0x38, 0x87, 0xbc, 0xd6, 0x38, 0x87, 0xba, 0xa0, + 0x39, 0x84, 0xba, 0x51, 0x38, 0x87, 0xbb, 0xd1, 0x3b, 0x8d, 0xc3, 0xff, 0x3e, 0x94, 0xcd, 0xff, 0x41, 0x93, 0xd5, 0xff, 0x3a, 0x45, 0xe0, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3d, 0x4e, 0xe0, 0xff, 0xcc, 0xd7, 0xf6, 0xff, 0xff, 0xff, 0xff, 0xff, 0xd6, 0xea, 0xf8, 0xff, 0x23, 0x8c, 0xd6, 0xff, 0x00, 0x70, 0xcc, 0xff, 0x53, 0xa7, 0xdf, 0xff, 0xf6, 0xfa, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc1, 0xdf, 0xf3, 0xff, 0x2a, 0x91, 0xd8, 0xff, 0x19, 0x89, 0xd4, 0xff, 0x70, 0xb6, 0xe4, 0xff, 0xf8, 0xfb, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xaf, 0xd7, 0xf1, 0xff, 0x12, 0x85, 0xd3, 0xff, 0xbd, 0xdd, 0xf3, 0xff, 0xff, 0xff, 0xff, 0xff, 0xd0, 0xe8, 0xf6, 0xff, 0xe9, 0xf4, 0xfb, 0xff, 0xff, 0xff, 0xff, 0xff, 0x5a, 0xab, 0xe1, 0xff, 0x2d, 0x93, 0xd8, 0xff, 0xf0, 0xf7, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xcf, 0xe6, 0xf6, 0xff, 0x22, 0x8d, 0xd6, 0xff, 0x36, 0x98, 0xda, 0xff, 0xd2, 0xe2, 0xf7, 0xff, 0x77, 0x77, 0xeb, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x5a, 0x5a, 0xe7, 0xff, 0xaf, 0xaf, 0xf3, 0xff, 0x47, 0x4b, 0xe4, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3b, 0x50, 0xe0, 0xff, 0x41, 0x9c, 0xd9, 0xff, 0x41, 0x99, 0xd4, 0xff, 0x3e, 0x94, 0xcd, 0xff, 0x3b, 0x8d, 0xc3, 0xff, 0x38, 0x87, 0xbb, 0xd6, 0x38, 0x84, 0xb9, 0xa0, + 0x39, 0x84, 0xba, 0x51, 0x38, 0x87, 0xbb, 0xd1, 0x3b, 0x8d, 0xc3, 0xff, 0x3e, 0x94, 0xcd, 0xff, 0x3f, 0x99, 0xd4, 0xff, 0x3e, 0x7c, 0xdc, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x79, 0x7a, 0xea, 0xff, 0xf3, 0xf3, 0xfd, 0xff, 0xca, 0xe4, 0xf5, 0xff, 0x54, 0xa7, 0xdf, 0xff, 0x4a, 0xa2, 0xde, 0xff, 0x67, 0xb1, 0xe3, 0xff, 0xe8, 0xf2, 0xfa, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe7, 0xf3, 0xfb, 0xff, 0x4b, 0xa2, 0xde, 0xff, 0x0b, 0x82, 0xd1, 0xff, 0x6f, 0xb6, 0xe4, 0xff, 0xf8, 0xfb, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xbb, 0xdd, 0xf2, 0xff, 0x01, 0x7d, 0xd0, 0xff, 0x82, 0xbe, 0xe8, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xee, 0xf6, 0xfc, 0xff, 0x2c, 0x93, 0xd8, 0xff, 0x38, 0x99, 0xda, 0xff, 0xf5, 0xfa, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xcf, 0xe6, 0xf6, 0xff, 0x22, 0x8e, 0xd6, 0xff, 0x36, 0x97, 0xda, 0xff, 0xdc, 0xed, 0xf9, 0xff, 0xee, 0xee, 0xfc, 0xff, 0x77, 0x77, 0xea, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3b, 0xe3, 0xff, 0x41, 0x87, 0xdc, 0xff, 0x41, 0x9c, 0xd9, 0xff, 0x41, 0x99, 0xd4, 0xff, 0x3e, 0x94, 0xcd, 0xff, 0x3a, 0x8d, 0xc3, 0xff, 0x38, 0x87, 0xbb, 0xd6, 0x38, 0x84, 0xb9, 0xa0, + 0x39, 0x84, 0xba, 0x51, 0x38, 0x87, 0xbb, 0xd1, 0x3b, 0x8d, 0xc3, 0xff, 0x3e, 0x94, 0xcd, 0xff, 0x41, 0x99, 0xd4, 0xff, 0x41, 0x9c, 0xd9, 0xff, 0x3d, 0x5e, 0xdf, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3d, 0x3d, 0xe2, 0xff, 0x87, 0x87, 0xed, 0xff, 0xf2, 0xf3, 0xfd, 0xff, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xfe, 0xfe, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xfd, 0xfe, 0xff, 0x6f, 0xb6, 0xe5, 0xff, 0x00, 0x7b, 0xcf, 0xff, 0x6c, 0xb3, 0xe3, 0xff, 0xfa, 0xfc, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0xdf, 0xf3, 0xff, 0x08, 0x81, 0xd1, 0xff, 0x4d, 0xa4, 0xdd, 0xff, 0xf4, 0xfa, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc8, 0xe3, 0xf4, 0xff, 0x06, 0x7f, 0xd0, 0xff, 0x49, 0xa2, 0xdd, 0xff, 0xf7, 0xfb, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xcf, 0xe6, 0xf6, 0xff, 0x22, 0x8e, 0xd6, 0xff, 0x36, 0x97, 0xda, 0xff, 0xdc, 0xed, 0xf9, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe8, 0xeb, 0xfb, 0xff, 0x4d, 0x64, 0xe3, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe3, 0xff, 0x3f, 0x6a, 0xdf, 0xff, 0x42, 0x9d, 0xdb, 0xff, 0x41, 0x9c, 0xd9, 0xff, 0x41, 0x99, 0xd4, 0xff, 0x3e, 0x94, 0xcd, 0xff, 0x3b, 0x8d, 0xc3, 0xff, 0x38, 0x87, 0xbb, 0xd6, 0x38, 0x84, 0xb9, 0xa0, + 0x39, 0x87, 0xba, 0x51, 0x38, 0x86, 0xbb, 0xd1, 0x3a, 0x8c, 0xc2, 0xff, 0x3d, 0x92, 0xcc, 0xff, 0x40, 0x98, 0xd4, 0xff, 0x41, 0x9d, 0xd8, 0xff, 0x41, 0x92, 0xdb, 0xff, 0x3b, 0x4b, 0xe1, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3c, 0x3c, 0xe2, 0xff, 0x86, 0x86, 0xed, 0xff, 0xf4, 0xf4, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x9f, 0xce, 0xed, 0xff, 0x00, 0x7c, 0xce, 0xff, 0x66, 0xb1, 0xe1, 0xff, 0xfa, 0xfc, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc2, 0xe0, 0xf4, 0xff, 0x1f, 0x8b, 0xd4, 0xff, 0x23, 0x8e, 0xd5, 0xff, 0xbc, 0xdc, 0xf3, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0xf8, 0xfc, 0xff, 0x7f, 0xbd, 0xe6, 0xff, 0x02, 0x7d, 0xce, 0xff, 0x55, 0xa8, 0xdf, 0xff, 0xf5, 0xfa, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xcf, 0xe6, 0xf6, 0xff, 0x22, 0x8e, 0xd4, 0xff, 0x36, 0x97, 0xd9, 0xff, 0xdc, 0xed, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf4, 0xf9, 0xfc, 0xff, 0x45, 0x97, 0xdb, 0xff, 0x25, 0x59, 0xda, 0xff, 0x3a, 0x3c, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3b, 0x52, 0xe0, 0xff, 0x42, 0x99, 0xdb, 0xff, 0x42, 0x9d, 0xda, 0xff, 0x40, 0x9d, 0xd8, 0xff, 0x3f, 0x98, 0xd4, 0xff, 0x3e, 0x92, 0xcc, 0xff, 0x3b, 0x8c, 0xc2, 0xff, 0x38, 0x85, 0xbb, 0xd6, 0x38, 0x86, 0xb9, 0xa0, + 0x39, 0x87, 0xba, 0x51, 0x38, 0x86, 0xb9, 0xd1, 0x3a, 0x8c, 0xc2, 0xff, 0x3e, 0x92, 0xcc, 0xff, 0x3f, 0x98, 0xd4, 0xff, 0x40, 0x9d, 0xd8, 0xff, 0x41, 0x9d, 0xda, 0xff, 0x46, 0x8b, 0xde, 0xff, 0x3a, 0x3f, 0xe1, 0xff, 0x3a, 0x3a, 0xe3, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3b, 0x3c, 0xe2, 0xff, 0x46, 0x5d, 0xe2, 0xff, 0x6f, 0xab, 0xe4, 0xff, 0x5a, 0xab, 0xdf, 0xff, 0x94, 0xc8, 0xeb, 0xff, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xd1, 0xe8, 0xf6, 0xff, 0x12, 0x85, 0xd1, 0xff, 0x59, 0xaa, 0xe0, 0xff, 0xfa, 0xfd, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xbf, 0xde, 0xf3, 0xff, 0x2e, 0x94, 0xd7, 0xff, 0x2f, 0x95, 0xd8, 0xff, 0x3d, 0x9c, 0xda, 0xff, 0x55, 0xa9, 0xe0, 0xff, 0x4c, 0xa4, 0xde, 0xff, 0x3c, 0x9a, 0xda, 0xff, 0x24, 0x8f, 0xd5, 0xff, 0x57, 0xaa, 0xdf, 0xff, 0xf1, 0xf9, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xcf, 0xe6, 0xf6, 0xff, 0x22, 0x8e, 0xd4, 0xff, 0x35, 0x97, 0xd9, 0xff, 0xdc, 0xed, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf6, 0xfa, 0xfd, 0xff, 0x60, 0xad, 0xe0, 0xff, 0x30, 0x7e, 0xd9, 0xff, 0x3c, 0x43, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe3, 0xff, 0x3c, 0x47, 0xe1, 0xff, 0x41, 0x91, 0xdc, 0xff, 0x42, 0x9e, 0xdb, 0xff, 0x42, 0x9d, 0xda, 0xff, 0x40, 0x9d, 0xd9, 0xff, 0x3f, 0x98, 0xd4, 0xff, 0x3e, 0x92, 0xcb, 0xff, 0x3a, 0x8c, 0xc3, 0xff, 0x38, 0x85, 0xbb, 0xd6, 0x38, 0x86, 0xb9, 0xa0, + 0x39, 0x87, 0xba, 0x51, 0x38, 0x86, 0xb9, 0xd1, 0x3a, 0x8c, 0xc2, 0xff, 0x3e, 0x92, 0xcc, 0xff, 0x3f, 0x98, 0xd3, 0xff, 0x40, 0x9d, 0xd8, 0xff, 0x43, 0x9e, 0xda, 0xff, 0x44, 0x9f, 0xdb, 0xff, 0x28, 0x73, 0xd8, 0xff, 0x39, 0x3b, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x36, 0x47, 0xe0, 0xff, 0x16, 0x67, 0xd4, 0xff, 0x33, 0x96, 0xd8, 0xff, 0xe8, 0xf3, 0xfb, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf2, 0xf8, 0xfd, 0xff, 0x35, 0x97, 0xd8, 0xff, 0x4e, 0xa5, 0xdd, 0xff, 0xf9, 0xfc, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc1, 0xdf, 0xf3, 0xff, 0x2d, 0x93, 0xd7, 0xff, 0x3d, 0x9c, 0xd9, 0xff, 0x36, 0x97, 0xd9, 0xff, 0x20, 0x8c, 0xd4, 0xff, 0x24, 0x8e, 0xd5, 0xff, 0x41, 0x9d, 0xdb, 0xff, 0x2a, 0x90, 0xd7, 0xff, 0x57, 0xa9, 0xdf, 0xff, 0xf3, 0xfa, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xd1, 0xe8, 0xf6, 0xff, 0x21, 0x8d, 0xd4, 0xff, 0x38, 0x98, 0xd9, 0xff, 0xdf, 0xee, 0xf9, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf7, 0xfb, 0xfd, 0xff, 0x4f, 0x7e, 0xe1, 0xff, 0x37, 0x46, 0xdf, 0xff, 0x3a, 0x3c, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x39, 0x40, 0xe1, 0xff, 0x41, 0x89, 0xdc, 0xff, 0x42, 0x9d, 0xdb, 0xff, 0x42, 0x9d, 0xdb, 0xff, 0x42, 0x9c, 0xda, 0xff, 0x40, 0x9c, 0xd8, 0xff, 0x3f, 0x98, 0xd3, 0xff, 0x3e, 0x93, 0xcc, 0xff, 0x3a, 0x8c, 0xc2, 0xff, 0x38, 0x85, 0xba, 0xd6, 0x38, 0x86, 0xb9, 0xa0, + 0x39, 0x87, 0xba, 0x51, 0x38, 0x86, 0xb9, 0xd1, 0x3a, 0x8c, 0xc2, 0xff, 0x3e, 0x93, 0xcc, 0xff, 0x3f, 0x98, 0xd3, 0xff, 0x40, 0x9b, 0xd8, 0xff, 0x46, 0x9e, 0xdb, 0xff, 0x39, 0x97, 0xd9, 0xff, 0x1c, 0x8a, 0xd4, 0xff, 0x8e, 0xa7, 0xeb, 0xff, 0x41, 0x41, 0xe3, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3f, 0xe2, 0xff, 0x34, 0x59, 0xde, 0xff, 0xae, 0xc8, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x67, 0xb0, 0xe2, 0xff, 0x48, 0xa1, 0xdc, 0xff, 0xf5, 0xfa, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc3, 0xe0, 0xf4, 0xff, 0x2a, 0x91, 0xd5, 0xff, 0x39, 0x98, 0xd9, 0xff, 0x48, 0x9f, 0xdd, 0xff, 0x45, 0x9e, 0xdb, 0xff, 0x46, 0x9e, 0xdc, 0xff, 0x4a, 0xa1, 0xdd, 0xff, 0x25, 0x8d, 0xd6, 0xff, 0x53, 0xa6, 0xde, 0xff, 0xf2, 0xf8, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xd0, 0xe6, 0xf6, 0xff, 0x21, 0x8b, 0xd4, 0xff, 0x35, 0x95, 0xd9, 0xff, 0xdb, 0xec, 0xf8, 0xff, 0xd6, 0xd6, 0xf9, 0xff, 0x75, 0x76, 0xea, 0xff, 0x3b, 0x3e, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3b, 0x43, 0xe1, 0xff, 0x40, 0x88, 0xdc, 0xff, 0x42, 0x9d, 0xdb, 0xff, 0x42, 0x9d, 0xdb, 0xff, 0x42, 0x9d, 0xdb, 0xff, 0x42, 0x9c, 0xda, 0xff, 0x40, 0x9b, 0xd8, 0xff, 0x3f, 0x98, 0xd3, 0xff, 0x3e, 0x93, 0xcc, 0xff, 0x3a, 0x8c, 0xc2, 0xff, 0x38, 0x85, 0xba, 0xd6, 0x38, 0x86, 0xb9, 0xa0, + 0x39, 0x84, 0xba, 0x51, 0x38, 0x86, 0xb9, 0xd1, 0x3a, 0x8c, 0xc1, 0xff, 0x3e, 0x93, 0xcb, 0xff, 0x3f, 0x98, 0xd3, 0xff, 0x40, 0x9b, 0xd7, 0xff, 0x44, 0x9d, 0xd9, 0xff, 0x3e, 0x9a, 0xd9, 0xff, 0x37, 0x97, 0xd8, 0xff, 0x6a, 0xb2, 0xe2, 0xff, 0x6f, 0x98, 0xe6, 0xff, 0x41, 0x46, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3b, 0xe2, 0xff, 0x3e, 0x44, 0xe2, 0xff, 0x5c, 0x76, 0xe4, 0xff, 0x79, 0xa9, 0xe6, 0xff, 0x55, 0xa6, 0xde, 0xff, 0x3f, 0x9c, 0xda, 0xff, 0x77, 0xb8, 0xe4, 0xff, 0x84, 0xbf, 0xe7, 0xff, 0x61, 0xad, 0xe0, 0xff, 0x3b, 0x99, 0xd9, 0xff, 0x40, 0x9c, 0xda, 0xff, 0x42, 0x9d, 0xda, 0xff, 0x43, 0x9d, 0xda, 0xff, 0x43, 0x9d, 0xda, 0xff, 0x44, 0x9e, 0xdb, 0xff, 0x3b, 0x9a, 0xd9, 0xff, 0x41, 0x9d, 0xda, 0xff, 0x73, 0xb7, 0xe3, 0xff, 0x86, 0xc0, 0xe8, 0xff, 0x66, 0xb0, 0xe1, 0xff, 0x39, 0x98, 0xd8, 0xff, 0x39, 0x84, 0xdb, 0xff, 0x49, 0x62, 0xe1, 0xff, 0x3e, 0x40, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3c, 0x48, 0xe0, 0xff, 0x40, 0x88, 0xdb, 0xff, 0x42, 0x9d, 0xda, 0xff, 0x42, 0x9d, 0xda, 0xff, 0x42, 0x9d, 0xda, 0xff, 0x42, 0x9d, 0xda, 0xff, 0x42, 0x9c, 0xd9, 0xff, 0x40, 0x9b, 0xd7, 0xff, 0x3f, 0x98, 0xd3, 0xff, 0x3e, 0x93, 0xcb, 0xff, 0x3a, 0x8c, 0xc1, 0xff, 0x38, 0x85, 0xba, 0xd6, 0x38, 0x86, 0xb9, 0xa0, + 0x32, 0x84, 0xbd, 0x51, 0x37, 0x86, 0xbb, 0xd1, 0x3a, 0x8b, 0xc0, 0xff, 0x3d, 0x92, 0xcb, 0xff, 0x40, 0x98, 0xd3, 0xff, 0x40, 0x9b, 0xd7, 0xff, 0x42, 0x9c, 0xd9, 0xff, 0x44, 0x9d, 0xda, 0xff, 0x46, 0x9f, 0xda, 0xff, 0x36, 0x97, 0xd7, 0xff, 0x2a, 0x90, 0xd6, 0xff, 0x2f, 0x80, 0xd8, 0xff, 0x39, 0x4c, 0xe0, 0xff, 0x3a, 0x3b, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x39, 0x3a, 0xe2, 0xff, 0x3a, 0x3c, 0xe2, 0xff, 0x3c, 0x59, 0xde, 0xff, 0x3f, 0x78, 0xdd, 0xff, 0x2f, 0x87, 0xd8, 0xff, 0x2b, 0x8d, 0xd6, 0xff, 0x34, 0x93, 0xd7, 0xff, 0x45, 0x9c, 0xda, 0xff, 0x43, 0x9c, 0xda, 0xff, 0x42, 0x9d, 0xda, 0xff, 0x42, 0x9d, 0xda, 0xff, 0x42, 0x9d, 0xda, 0xff, 0x42, 0x9c, 0xda, 0xff, 0x45, 0x9d, 0xda, 0xff, 0x41, 0x99, 0xd9, 0xff, 0x2f, 0x8f, 0xd6, 0xff, 0x2d, 0x82, 0xd8, 0xff, 0x36, 0x6d, 0xdc, 0xff, 0x3d, 0x54, 0xe0, 0xff, 0x3a, 0x3c, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3c, 0xe2, 0xff, 0x3b, 0x53, 0xe0, 0xff, 0x41, 0x91, 0xdb, 0xff, 0x42, 0x9d, 0xda, 0xff, 0x42, 0x9d, 0xda, 0xff, 0x42, 0x9d, 0xda, 0xff, 0x42, 0x9d, 0xda, 0xff, 0x42, 0x9d, 0xda, 0xff, 0x42, 0x9c, 0xd9, 0xff, 0x40, 0x9b, 0xd7, 0xff, 0x40, 0x98, 0xd3, 0xff, 0x3d, 0x92, 0xcb, 0xff, 0x39, 0x8b, 0xc1, 0xff, 0x38, 0x85, 0xba, 0xd6, 0x38, 0x84, 0xb9, 0xa0, + 0x3a, 0x84, 0xb5, 0x53, 0x39, 0x85, 0xb9, 0xd1, 0x39, 0x8a, 0xc2, 0xff, 0x3d, 0x91, 0xca, 0xff, 0x3f, 0x97, 0xd3, 0xff, 0x40, 0x9c, 0xd8, 0xff, 0x42, 0x9c, 0xd9, 0xff, 0x42, 0x9d, 0xda, 0xff, 0x42, 0x9d, 0xda, 0xff, 0x41, 0x9c, 0xda, 0xff, 0x40, 0x9c, 0xda, 0xff, 0x40, 0x9c, 0xda, 0xff, 0x41, 0x94, 0xdb, 0xff, 0x3e, 0x60, 0xde, 0xff, 0x3a, 0x3f, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3b, 0xe2, 0xff, 0x3b, 0x4e, 0xe0, 0xff, 0x3d, 0x5f, 0xdf, 0xff, 0x3e, 0x6c, 0xde, 0xff, 0x3f, 0x76, 0xde, 0xff, 0x40, 0x7d, 0xdd, 0xff, 0x3f, 0x7e, 0xdc, 0xff, 0x40, 0x7c, 0xdd, 0xff, 0x40, 0x76, 0xde, 0xff, 0x3e, 0x6a, 0xde, 0xff, 0x3d, 0x5b, 0xdf, 0xff, 0x3b, 0x4c, 0xe1, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3b, 0x41, 0xe1, 0xff, 0x3d, 0x68, 0xde, 0xff, 0x42, 0x98, 0xda, 0xff, 0x42, 0x9d, 0xda, 0xff, 0x42, 0x9d, 0xda, 0xff, 0x42, 0x9d, 0xda, 0xff, 0x42, 0x9d, 0xda, 0xff, 0x42, 0x9d, 0xda, 0xff, 0x42, 0x9d, 0xda, 0xff, 0x42, 0x9c, 0xd9, 0xff, 0x40, 0x9b, 0xd8, 0xff, 0x3f, 0x97, 0xd3, 0xff, 0x3e, 0x92, 0xca, 0xff, 0x3a, 0x8a, 0xc1, 0xff, 0x37, 0x85, 0xb9, 0xd7, 0x37, 0x85, 0xb8, 0xa1, + 0x66, 0x80, 0x93, 0x5a, 0x3e, 0x86, 0xb4, 0xd7, 0x30, 0x8b, 0xc8, 0xff, 0x3f, 0x92, 0xc8, 0xff, 0x3e, 0x98, 0xd1, 0xff, 0x3f, 0x9b, 0xd7, 0xff, 0x41, 0x9c, 0xd9, 0xff, 0x41, 0x9d, 0xda, 0xff, 0x41, 0x9d, 0xda, 0xff, 0x41, 0x9d, 0xda, 0xff, 0x41, 0x9d, 0xda, 0xff, 0x41, 0x9d, 0xda, 0xff, 0x41, 0x9d, 0xda, 0xff, 0x41, 0x9d, 0xda, 0xff, 0x3f, 0x7e, 0xdc, 0xff, 0x3b, 0x4d, 0xe0, 0xff, 0x3a, 0x3e, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3f, 0xe2, 0xff, 0x3c, 0x52, 0xdf, 0xff, 0x40, 0x86, 0xdc, 0xff, 0x41, 0x9d, 0xda, 0xff, 0x41, 0x9d, 0xda, 0xff, 0x41, 0x9d, 0xda, 0xff, 0x41, 0x9d, 0xda, 0xff, 0x41, 0x9d, 0xda, 0xff, 0x41, 0x9d, 0xda, 0xff, 0x41, 0x9d, 0xda, 0xff, 0x42, 0x9d, 0xda, 0xff, 0x41, 0x9c, 0xd9, 0xff, 0x3f, 0x9b, 0xd7, 0xff, 0x3e, 0x97, 0xd1, 0xff, 0x3d, 0x92, 0xc9, 0xff, 0x3a, 0x8a, 0xc0, 0xff, 0x37, 0x88, 0xb9, 0xde, 0x36, 0x86, 0xb8, 0xa9, + 0x48, 0x87, 0xad, 0x35, 0x37, 0x87, 0xb8, 0xc1, 0x37, 0x89, 0xc1, 0xff, 0x3d, 0x90, 0xc8, 0xff, 0x3f, 0x97, 0xd0, 0xff, 0x40, 0x9a, 0xd5, 0xff, 0x40, 0x9b, 0xd8, 0xff, 0x40, 0x9c, 0xd9, 0xff, 0x40, 0x9d, 0xd9, 0xff, 0x40, 0x9d, 0xd9, 0xff, 0x40, 0x9c, 0xd9, 0xff, 0x40, 0x9c, 0xd9, 0xff, 0x40, 0x9c, 0xd9, 0xff, 0x40, 0x9c, 0xd9, 0xff, 0x40, 0x9d, 0xd9, 0xff, 0x40, 0x99, 0xd9, 0xff, 0x3d, 0x70, 0xdd, 0xff, 0x3b, 0x4d, 0xe0, 0xff, 0x3a, 0x3f, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x41, 0xe1, 0xff, 0x3b, 0x51, 0xe0, 0xff, 0x3e, 0x75, 0xdd, 0xff, 0x40, 0x9a, 0xd9, 0xff, 0x40, 0x9c, 0xd9, 0xff, 0x40, 0x9c, 0xd9, 0xff, 0x40, 0x9d, 0xd9, 0xff, 0x40, 0x9d, 0xd9, 0xff, 0x40, 0x9d, 0xd9, 0xff, 0x40, 0x9d, 0xd9, 0xff, 0x40, 0x9c, 0xd9, 0xff, 0x40, 0x9c, 0xd9, 0xff, 0x40, 0x9c, 0xd9, 0xff, 0x40, 0x9b, 0xd8, 0xff, 0x40, 0x99, 0xd5, 0xff, 0x3f, 0x96, 0xd0, 0xff, 0x3c, 0x90, 0xc8, 0xff, 0x39, 0x89, 0xbf, 0xff, 0x37, 0x87, 0xba, 0xc8, 0x37, 0x88, 0xb9, 0x8b, + 0x00, 0x00, 0x00, 0x00, 0x42, 0x6e, 0xa9, 0x7f, 0x3a, 0x83, 0xb9, 0xff, 0x39, 0x92, 0xc7, 0xff, 0x3f, 0x92, 0xcc, 0xff, 0x3f, 0x96, 0xd1, 0xff, 0x3f, 0x98, 0xd4, 0xff, 0x40, 0x9a, 0xd6, 0xff, 0x40, 0x9a, 0xd6, 0xff, 0x40, 0x9a, 0xd6, 0xff, 0x40, 0x9a, 0xd6, 0xff, 0x40, 0x9a, 0xd6, 0xff, 0x40, 0x9a, 0xd6, 0xff, 0x40, 0x9a, 0xd6, 0xff, 0x40, 0x9a, 0xd6, 0xff, 0x40, 0x9a, 0xd6, 0xff, 0x40, 0x9a, 0xd6, 0xff, 0x40, 0x95, 0xd7, 0xff, 0x3e, 0x74, 0xdb, 0xff, 0x3c, 0x55, 0xdf, 0xff, 0x3b, 0x46, 0xe0, 0xff, 0x3a, 0x3c, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3d, 0xe2, 0xff, 0x3b, 0x48, 0xe0, 0xff, 0x3c, 0x58, 0xde, 0xff, 0x3e, 0x79, 0xda, 0xff, 0x40, 0x98, 0xd6, 0xff, 0x40, 0x9a, 0xd6, 0xff, 0x40, 0x9a, 0xd6, 0xff, 0x40, 0x9a, 0xd6, 0xff, 0x40, 0x9a, 0xd6, 0xff, 0x40, 0x9a, 0xd6, 0xff, 0x40, 0x9a, 0xd6, 0xff, 0x40, 0x9a, 0xd6, 0xff, 0x40, 0x9a, 0xd6, 0xff, 0x40, 0x9a, 0xd6, 0xff, 0x40, 0x9a, 0xd6, 0xff, 0x40, 0x9a, 0xd6, 0xff, 0x3f, 0x98, 0xd4, 0xff, 0x3f, 0x96, 0xd1, 0xff, 0x3e, 0x92, 0xcc, 0xff, 0x39, 0x92, 0xc7, 0xff, 0x39, 0x85, 0xbb, 0xff, 0x44, 0x6e, 0xa8, 0x84, 0x47, 0x71, 0xa6, 0x2b, + 0x00, 0x00, 0x00, 0x00, 0x33, 0xa3, 0xc2, 0x19, 0x35, 0x88, 0xbc, 0xcd, 0x3f, 0x7d, 0xb7, 0xff, 0x39, 0x91, 0xc8, 0xff, 0x3c, 0x92, 0xcc, 0xff, 0x3d, 0x94, 0xce, 0xff, 0x3f, 0x96, 0xd0, 0xff, 0x41, 0x97, 0xd0, 0xff, 0x40, 0x97, 0xd1, 0xff, 0x40, 0x98, 0xd1, 0xff, 0x40, 0x98, 0xd1, 0xff, 0x40, 0x98, 0xd1, 0xff, 0x40, 0x98, 0xd1, 0xff, 0x40, 0x97, 0xd1, 0xff, 0x40, 0x97, 0xd1, 0xff, 0x40, 0x97, 0xd1, 0xff, 0x40, 0x98, 0xd1, 0xff, 0x40, 0x98, 0xd1, 0xff, 0x3f, 0x97, 0xd1, 0xff, 0x3d, 0x80, 0xd6, 0xff, 0x3c, 0x6b, 0xd9, 0xff, 0x3b, 0x57, 0xdd, 0xff, 0x3b, 0x4e, 0xdf, 0xff, 0x3a, 0x44, 0xe0, 0xff, 0x3a, 0x3f, 0xe1, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3b, 0xe2, 0xff, 0x3a, 0x41, 0xe1, 0xff, 0x3b, 0x46, 0xe0, 0xff, 0x3b, 0x4f, 0xde, 0xff, 0x3b, 0x59, 0xdd, 0xff, 0x3c, 0x6f, 0xd9, 0xff, 0x3d, 0x86, 0xd5, 0xff, 0x3e, 0x98, 0xd2, 0xff, 0x3f, 0x97, 0xd1, 0xff, 0x40, 0x97, 0xd1, 0xff, 0x40, 0x97, 0xd1, 0xff, 0x40, 0x98, 0xd1, 0xff, 0x40, 0x98, 0xd1, 0xff, 0x40, 0x98, 0xd1, 0xff, 0x40, 0x97, 0xd1, 0xff, 0x40, 0x97, 0xd1, 0xff, 0x40, 0x97, 0xd1, 0xff, 0x40, 0x97, 0xd1, 0xff, 0x40, 0x98, 0xd1, 0xff, 0x40, 0x96, 0xd0, 0xff, 0x3f, 0x95, 0xd0, 0xff, 0x3d, 0x94, 0xce, 0xff, 0x3d, 0x91, 0xcc, 0xff, 0x3a, 0x91, 0xc8, 0xff, 0x3e, 0x7d, 0xb8, 0xff, 0x35, 0x88, 0xbc, 0xcd, 0x31, 0xa7, 0xc4, 0x1a, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x28, 0xb0, 0xd7, 0x2d, 0x3c, 0x7d, 0xb4, 0xd4, 0x39, 0x8a, 0xbd, 0xff, 0x39, 0x8c, 0xc3, 0xff, 0x3a, 0x8f, 0xca, 0xff, 0x3f, 0x90, 0xc7, 0xff, 0x2d, 0x8c, 0xc9, 0xff, 0x2a, 0x8b, 0xcb, 0xff, 0x2d, 0x8c, 0xcb, 0xff, 0x2d, 0x8c, 0xcb, 0xff, 0x2d, 0x8c, 0xcb, 0xff, 0x2d, 0x8c, 0xcb, 0xff, 0x2d, 0x8c, 0xcb, 0xff, 0x2d, 0x8b, 0xcb, 0xff, 0x2c, 0x8b, 0xcb, 0xff, 0x2a, 0x8c, 0xcc, 0xff, 0x39, 0x90, 0xc9, 0xff, 0x40, 0x91, 0xc7, 0xff, 0x3c, 0x90, 0xc8, 0xff, 0x3c, 0x8e, 0xc9, 0xff, 0x3c, 0x84, 0xcc, 0xff, 0x3c, 0x74, 0xd1, 0xff, 0x3b, 0x61, 0xd6, 0xff, 0x3b, 0x57, 0xd9, 0xff, 0x3a, 0x4d, 0xdc, 0xff, 0x3a, 0x46, 0xde, 0xff, 0x3a, 0x42, 0xe0, 0xff, 0x3a, 0x41, 0xe0, 0xff, 0x3a, 0x43, 0xdf, 0xff, 0x3a, 0x48, 0xde, 0xff, 0x3a, 0x4e, 0xdc, 0xff, 0x3b, 0x5a, 0xd9, 0xff, 0x3b, 0x64, 0xd6, 0xff, 0x3c, 0x76, 0xd0, 0xff, 0x3c, 0x86, 0xcb, 0xff, 0x3c, 0x8f, 0xc9, 0xff, 0x3c, 0x90, 0xc8, 0xff, 0x3c, 0x90, 0xc8, 0xff, 0x40, 0x92, 0xc7, 0xff, 0x38, 0x8f, 0xc9, 0xff, 0x2a, 0x8b, 0xcb, 0xff, 0x2c, 0x8c, 0xcb, 0xff, 0x2d, 0x8c, 0xcb, 0xff, 0x2d, 0x8c, 0xcb, 0xff, 0x2d, 0x8c, 0xcb, 0xff, 0x2d, 0x8c, 0xcb, 0xff, 0x2d, 0x8c, 0xcb, 0xff, 0x2c, 0x8b, 0xcb, 0xff, 0x2b, 0x8c, 0xcc, 0xff, 0x30, 0x8c, 0xcb, 0xff, 0x3f, 0x8f, 0xc7, 0xff, 0x3a, 0x90, 0xc9, 0xff, 0x39, 0x8c, 0xc3, 0xff, 0x39, 0x8a, 0xbc, 0xff, 0x3c, 0x7d, 0xb4, 0xd4, 0x28, 0xb0, 0xd7, 0x2d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x33, 0x8f, 0xc2, 0x19, 0x3c, 0x7c, 0xb8, 0x73, 0x3c, 0x85, 0xbb, 0xb4, 0x3f, 0x89, 0xba, 0xc3, 0x2b, 0x85, 0xc1, 0xc2, 0x2a, 0x84, 0xc2, 0xac, 0x3b, 0x8a, 0xc1, 0x87, 0x36, 0x89, 0xc0, 0x8a, 0x35, 0x89, 0xc1, 0x8f, 0x36, 0x88, 0xc0, 0x8e, 0x36, 0x88, 0xc0, 0x8e, 0x36, 0x88, 0xc0, 0x8e, 0x35, 0x89, 0xc1, 0x8f, 0x38, 0x8a, 0xc0, 0x89, 0x36, 0x89, 0xc2, 0x8d, 0x21, 0x83, 0xc5, 0xb1, 0x33, 0x87, 0xc0, 0xbf, 0x3d, 0x8a, 0xbf, 0xbb, 0x3b, 0x8a, 0xbf, 0xbb, 0x3b, 0x8a, 0xbf, 0xbb, 0x3b, 0x8a, 0xbf, 0xbb, 0x3b, 0x8a, 0xbf, 0xbb, 0x3b, 0x8a, 0xbf, 0xbb, 0x3b, 0x8a, 0xbf, 0xbb, 0x3b, 0x8a, 0xbf, 0xbb, 0x3b, 0x8a, 0xbf, 0xbb, 0x3b, 0x8a, 0xbf, 0xbb, 0x3b, 0x8a, 0xbf, 0xbb, 0x3b, 0x8a, 0xbf, 0xbb, 0x3b, 0x8a, 0xbf, 0xbb, 0x3b, 0x8a, 0xbf, 0xbb, 0x3b, 0x8a, 0xbf, 0xbb, 0x3b, 0x8a, 0xbf, 0xbb, 0x3b, 0x8a, 0xbf, 0xbb, 0x3b, 0x8a, 0xbf, 0xbb, 0x3b, 0x8a, 0xbf, 0xbb, 0x3d, 0x8a, 0xbf, 0xbb, 0x34, 0x89, 0xc0, 0xbe, 0x20, 0x82, 0xc3, 0xb2, 0x35, 0x89, 0xc1, 0x8f, 0x38, 0x8a, 0xc2, 0x89, 0x35, 0x89, 0xc1, 0x8f, 0x36, 0x88, 0xc0, 0x8e, 0x36, 0x88, 0xc0, 0x8e, 0x36, 0x88, 0xc0, 0x8e, 0x35, 0x89, 0xc1, 0x8f, 0x37, 0x8a, 0xc1, 0x8b, 0x3b, 0x8b, 0xbe, 0x86, 0x29, 0x84, 0xc3, 0xaa, 0x27, 0x83, 0xc3, 0xc2, 0x3f, 0x8b, 0xba, 0xc3, 0x3d, 0x87, 0xba, 0xb4, 0x3c, 0x7c, 0xb6, 0x73, 0x33, 0x8f, 0xc2, 0x19, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x80, 0xbf, 0x04, 0x2e, 0x8b, 0xb9, 0x0b, 0x00, 0x55, 0xaa, 0x03, 0xc6, 0xaa, 0xaa, 0x09, 0xcb, 0xb7, 0xaa, 0x27, 0xb6, 0xaf, 0xa8, 0x23, 0xbb, 0xb2, 0xaa, 0x1e, 0xb5, 0xad, 0xad, 0x1f, 0xb5, 0xad, 0xad, 0x1f, 0xb5, 0xad, 0xad, 0x1f, 0xbb, 0xb2, 0xaa, 0x1e, 0xb8, 0xb1, 0xaa, 0x24, 0xc5, 0xad, 0x9c, 0x1f, 0x66, 0x99, 0xb3, 0x0a, 0x00, 0x71, 0xc6, 0x09, 0x49, 0x92, 0xb6, 0x07, 0x49, 0x92, 0xb6, 0x07, 0x49, 0x92, 0xb6, 0x07, 0x49, 0x92, 0xb6, 0x07, 0x49, 0x92, 0xb6, 0x07, 0x49, 0x92, 0xb6, 0x07, 0x49, 0x92, 0xb6, 0x07, 0x49, 0x92, 0xb6, 0x07, 0x49, 0x92, 0xb6, 0x07, 0x49, 0x92, 0xb6, 0x07, 0x49, 0x92, 0xb6, 0x07, 0x49, 0x92, 0xb6, 0x07, 0x49, 0x92, 0xb6, 0x07, 0x49, 0x92, 0xb6, 0x07, 0x49, 0x92, 0xb6, 0x07, 0x49, 0x92, 0xb6, 0x07, 0x49, 0x92, 0xb6, 0x07, 0x49, 0x92, 0xb6, 0x07, 0x49, 0x92, 0xb6, 0x07, 0x49, 0x92, 0xb6, 0x07, 0x00, 0x71, 0xc6, 0x09, 0x71, 0x8e, 0xaa, 0x09, 0xcc, 0xb2, 0xaa, 0x1e, 0xb8, 0xb1, 0xaa, 0x24, 0xbb, 0xb2, 0xaa, 0x1e, 0xb5, 0xad, 0xad, 0x1f, 0xb5, 0xad, 0xad, 0x1f, 0xb5, 0xad, 0xad, 0x1f, 0xbb, 0xb2, 0xaa, 0x1e, 0xb6, 0xaf, 0xaf, 0x23, 0xbe, 0xaa, 0x9d, 0x27, 0xb3, 0xb3, 0x99, 0x0a, 0x00, 0xaa, 0xaa, 0x03, 0x2e, 0x8b, 0xb9, 0x0b, 0x40, 0x80, 0xbf, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xda, 0xba, 0xa6, 0x59, 0xca, 0xb5, 0xa9, 0xff, 0xc8, 0xb4, 0xa8, 0xf4, 0xc9, 0xb5, 0xa8, 0xea, 0xc9, 0xb5, 0xa8, 0xeb, 0xc9, 0xb5, 0xa8, 0xeb, 0xc9, 0xb5, 0xa8, 0xeb, 0xca, 0xb6, 0xa9, 0xe9, 0xcb, 0xb9, 0xac, 0xf4, 0xc6, 0xad, 0x9c, 0xec, 0xba, 0xa4, 0x92, 0x46, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd5, 0xba, 0xa7, 0x43, 0xd3, 0xb8, 0xa7, 0xea, 0xc8, 0xb5, 0xa8, 0xf4, 0xc9, 0xb5, 0xa9, 0xe9, 0xc9, 0xb5, 0xa8, 0xeb, 0xc9, 0xb5, 0xa8, 0xeb, 0xc9, 0xb5, 0xa8, 0xeb, 0xca, 0xb6, 0xa9, 0xea, 0xcc, 0xb9, 0xad, 0xf4, 0xc0, 0xad, 0xa0, 0xff, 0xcd, 0xac, 0x96, 0x5c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb4, 0xac, 0xa9, 0x5c, 0xa9, 0xaa, 0xac, 0xff, 0xb1, 0xaf, 0xaf, 0xff, 0xb0, 0xaf, 0xae, 0xff, 0xb0, 0xaf, 0xae, 0xff, 0xb0, 0xaf, 0xae, 0xff, 0xb0, 0xaf, 0xae, 0xff, 0xb2, 0xb1, 0xb0, 0xff, 0xb0, 0xaf, 0xae, 0xff, 0x99, 0x9a, 0x9b, 0xf6, 0x9d, 0x91, 0x89, 0x41, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb8, 0xad, 0xa9, 0x41, 0xaa, 0xaa, 0xac, 0xf5, 0xb1, 0xaf, 0xae, 0xff, 0xb0, 0xaf, 0xae, 0xff, 0xb0, 0xaf, 0xae, 0xff, 0xb0, 0xaf, 0xae, 0xff, 0xb0, 0xaf, 0xae, 0xff, 0xb1, 0xb0, 0xaf, 0xff, 0xb3, 0xb0, 0xb0, 0xff, 0x9c, 0x9c, 0x9e, 0xff, 0x98, 0x96, 0x96, 0x5c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xbf, 0xbf, 0xbf, 0x04, 0xa1, 0x9f, 0x9e, 0x88, 0xa5, 0xa1, 0xa0, 0xee, 0xa4, 0xa2, 0xa1, 0xe7, 0xa5, 0xa2, 0xa1, 0xdf, 0xa5, 0xa2, 0xa1, 0xdf, 0xa7, 0xa2, 0xa2, 0xde, 0xa6, 0xa2, 0xa2, 0xe9, 0xa0, 0x9b, 0x9a, 0xe3, 0x95, 0x93, 0x90, 0x63, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa5, 0xa2, 0xa0, 0x63, 0xa6, 0xa0, 0x9f, 0xe4, 0xa5, 0xa2, 0xa1, 0xea, 0xa5, 0xa2, 0xa1, 0xde, 0xa5, 0xa2, 0xa1, 0xdf, 0xa5, 0xa2, 0xa1, 0xdf, 0xa6, 0xa3, 0xa1, 0xe7, 0xa1, 0x9e, 0x9c, 0xed, 0x96, 0x94, 0x93, 0x86, 0x80, 0x80, 0x80, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +#endif +}; + +const lv_img_dsc_t img_amp_disabled = { + .header.cf = LV_IMG_CF_TRUE_COLOR_ALPHA, + .header.always_zero = 0, + .header.reserved = 0, + .header.w = 60, + .header.h = 70, + .data_size = 4200 * LV_IMG_PX_SIZE_ALPHA_BYTE, + .data = img_amp_disabled_map, +}; diff --git a/source/main/ui_generated_800x480land/ui_image_cab_disabled.c b/source/main/ui_generated_800x480land/ui_image_cab_disabled.c new file mode 100644 index 00000000..ed343648 --- /dev/null +++ b/source/main/ui_generated_800x480land/ui_image_cab_disabled.c @@ -0,0 +1,333 @@ +#ifdef __has_include + #if __has_include("lvgl.h") + #ifndef LV_LVGL_H_INCLUDE_SIMPLE + #define LV_LVGL_H_INCLUDE_SIMPLE + #endif + #endif +#endif +#ifdef __has_include + #if __has_include("lvgl.h") + #ifndef LV_LVGL_H_INCLUDE_SIMPLE + #define LV_LVGL_H_INCLUDE_SIMPLE + #endif + #endif +#endif + +#if defined(LV_LVGL_H_INCLUDE_SIMPLE) + #include "lvgl.h" +#else + #include "lvgl/lvgl.h" +#endif + + +#ifndef LV_ATTRIBUTE_MEM_ALIGN +#define LV_ATTRIBUTE_MEM_ALIGN +#endif + +#ifndef LV_ATTRIBUTE_IMG_IMG_CAB_DISABLED +#define LV_ATTRIBUTE_IMG_IMG_CAB_DISABLED +#endif + +const LV_ATTRIBUTE_MEM_ALIGN LV_ATTRIBUTE_LARGE_CONST LV_ATTRIBUTE_IMG_IMG_CAB_DISABLED uint8_t img_cab_disabled_map[] = { +#if LV_COLOR_DEPTH == 1 || LV_COLOR_DEPTH == 8 + /*Pixel format: Alpha 8 bit, Red: 3 bit, Green: 3 bit, Blue: 2 bit*/ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf1, 0x46, 0xf1, 0xb5, 0xf1, 0xed, 0xf1, 0xf5, 0xf1, 0xf0, 0xf1, 0xef, 0xf1, 0xef, 0xf1, 0xef, 0xf1, 0xef, 0xf1, 0xef, 0xf1, 0xef, 0xf1, 0xef, 0xf1, 0xef, 0xf1, 0xef, 0xf1, 0xef, 0xf1, 0xef, 0xf1, 0xef, 0xf1, 0xef, 0xf1, 0xef, 0xf1, 0xef, 0xf1, 0xef, 0xf1, 0xef, 0xf1, 0xef, 0xf1, 0xef, 0xf1, 0xef, 0xf1, 0xf1, 0xf1, 0xf4, 0xf1, 0xeb, 0xf1, 0xb4, 0xf1, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf1, 0x75, 0xf1, 0xff, 0xf1, 0xff, 0xf1, 0xf9, 0xf1, 0xf1, 0xf1, 0xf3, 0xf1, 0xf4, 0xf1, 0xf4, 0xf1, 0xf4, 0xf1, 0xf4, 0xf1, 0xf4, 0xf1, 0xf4, 0xf1, 0xf4, 0xf1, 0xf4, 0xf1, 0xf4, 0xf1, 0xf4, 0xf1, 0xf4, 0xf1, 0xf4, 0xf1, 0xf4, 0xf1, 0xf4, 0xf1, 0xf4, 0xf1, 0xf4, 0xf1, 0xf4, 0xf1, 0xf4, 0xf1, 0xf4, 0xf1, 0xf4, 0xf1, 0xf3, 0xf1, 0xf1, 0xf1, 0xf9, 0xf1, 0xff, 0xf1, 0xff, 0xf1, 0x76, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf1, 0x58, 0xf1, 0xff, 0xf1, 0xff, 0xf1, 0x9f, 0xf1, 0x3e, 0xf1, 0x33, 0xf1, 0x3a, 0xf1, 0x3b, 0xf1, 0x3b, 0xf1, 0x3b, 0xf1, 0x3b, 0xf1, 0x3b, 0xf1, 0x3b, 0xf1, 0x3b, 0xf1, 0x3b, 0xf1, 0x3b, 0xf1, 0x3b, 0xf1, 0x3b, 0xf1, 0x3b, 0xf1, 0x3b, 0xf1, 0x3b, 0xf1, 0x3b, 0xf1, 0x3b, 0xf1, 0x3b, 0xf1, 0x3b, 0xf1, 0x3b, 0xf1, 0x3b, 0xf1, 0x39, 0xf1, 0x33, 0xf1, 0x3e, 0xf1, 0x9f, 0xf1, 0xff, 0xf1, 0xff, 0xf1, 0x57, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf5, 0x13, 0xf1, 0xbe, 0xf1, 0xff, 0xf1, 0x92, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf1, 0x92, 0xf1, 0xff, 0xf1, 0xbf, 0xf5, 0x13, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf1, 0x2f, 0xf1, 0xff, 0xf1, 0xef, 0xf5, 0x31, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf5, 0x31, 0xf1, 0xef, 0xf1, 0xff, 0xf1, 0x2f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x01, 0xac, 0x03, 0x90, 0x02, 0xf0, 0x02, 0xf0, 0x02, 0xf0, 0x02, 0x90, 0x02, 0x00, 0x00, 0xf1, 0x38, 0xf5, 0xff, 0xf5, 0xd9, 0xf1, 0x1d, 0x00, 0x00, 0x90, 0x02, 0x90, 0x02, 0x90, 0x02, 0x90, 0x02, 0x90, 0x02, 0x90, 0x02, 0x90, 0x02, 0x90, 0x02, 0x90, 0x02, 0x90, 0x02, 0x90, 0x02, 0x90, 0x02, 0x90, 0x02, 0x90, 0x02, 0x90, 0x02, 0x90, 0x02, 0x90, 0x02, 0x90, 0x02, 0x90, 0x02, 0x90, 0x02, 0x90, 0x02, 0x90, 0x02, 0x90, 0x02, 0x90, 0x02, 0x90, 0x02, 0x90, 0x02, 0x00, 0x00, 0xf1, 0x1d, 0xf5, 0xd9, 0xf5, 0xff, 0xd0, 0x39, 0x00, 0x00, 0x90, 0x02, 0xf0, 0x02, 0xf0, 0x02, 0xf0, 0x02, 0x90, 0x02, 0xac, 0x03, 0xe0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd0, 0x46, 0xd0, 0x93, 0xd0, 0xa3, 0xd0, 0x9c, 0xd0, 0x9a, 0xd0, 0x9a, 0xd0, 0x9a, 0xd0, 0x9a, 0xd0, 0x8f, 0xd0, 0xaf, 0xf0, 0xff, 0xf0, 0xf2, 0xd0, 0x9c, 0xd0, 0x8e, 0xd0, 0x9b, 0xd0, 0x9a, 0xd0, 0x9a, 0xd0, 0x9a, 0xd0, 0x9a, 0xd0, 0x9a, 0xd0, 0x9a, 0xd0, 0x9a, 0xd0, 0x9a, 0xd0, 0x9a, 0xd0, 0x9a, 0xd0, 0x9a, 0xd0, 0x9a, 0xd0, 0x9a, 0xd0, 0x9a, 0xd0, 0x9a, 0xd0, 0x9a, 0xd0, 0x9a, 0xd0, 0x9a, 0xd0, 0x9a, 0xd0, 0x9a, 0xd0, 0x9a, 0xd0, 0x9a, 0xd0, 0x9a, 0xd0, 0x9a, 0xd0, 0x9b, 0xd0, 0x8e, 0xd0, 0x9c, 0xf0, 0xf2, 0xf0, 0xff, 0xd0, 0xaf, 0xd0, 0x8f, 0xd0, 0x9a, 0xd0, 0x9a, 0xd0, 0x9a, 0xd0, 0x9a, 0xd0, 0x9c, 0xd0, 0xa1, 0xd0, 0x93, 0xd0, 0x46, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xd0, 0x76, 0xd0, 0xff, 0xf0, 0xff, 0xf0, 0xff, 0xf0, 0xff, 0xf0, 0xff, 0xd1, 0xff, 0xf0, 0xff, 0xf0, 0xff, 0xf0, 0xff, 0xf0, 0xff, 0xf0, 0xff, 0xf0, 0xff, 0xf0, 0xff, 0xf0, 0xff, 0xf0, 0xff, 0xf0, 0xff, 0xf0, 0xff, 0xf0, 0xff, 0xf0, 0xff, 0xf0, 0xff, 0xf0, 0xff, 0xf0, 0xff, 0xf0, 0xff, 0xf0, 0xff, 0xf0, 0xff, 0xf0, 0xff, 0xf0, 0xff, 0xf0, 0xff, 0xf0, 0xff, 0xf0, 0xff, 0xf0, 0xff, 0xf0, 0xff, 0xf0, 0xff, 0xf0, 0xff, 0xf0, 0xff, 0xf0, 0xff, 0xf0, 0xff, 0xf0, 0xff, 0xf0, 0xff, 0xf0, 0xff, 0xf0, 0xff, 0xf0, 0xff, 0xf0, 0xff, 0xf0, 0xff, 0xf0, 0xff, 0xf0, 0xff, 0xf0, 0xff, 0xf0, 0xff, 0xd1, 0xff, 0xf0, 0xff, 0xf0, 0xff, 0xf0, 0xff, 0xf0, 0xff, 0xd0, 0xff, 0xd0, 0x76, 0x00, 0x00, 0x00, 0x00, + 0xd0, 0x0a, 0xd0, 0x5c, 0xd0, 0xff, 0xf0, 0xff, 0xf0, 0xf9, 0xad, 0xef, 0x6d, 0xfa, 0xad, 0xff, 0xf0, 0xff, 0xd1, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0xd1, 0xff, 0xf0, 0xff, 0xad, 0xff, 0x6d, 0xfa, 0xad, 0xef, 0xf0, 0xf9, 0xf0, 0xff, 0xd0, 0xff, 0xd0, 0x5b, 0xd0, 0x09, + 0xd0, 0x79, 0xd0, 0xbc, 0xf0, 0xff, 0xf0, 0xfa, 0x69, 0xf1, 0x25, 0xf4, 0x05, 0xfd, 0x8d, 0xff, 0xf4, 0xff, 0xad, 0xff, 0x05, 0xff, 0x25, 0xff, 0x29, 0xff, 0x29, 0xff, 0x29, 0xff, 0x29, 0xff, 0x29, 0xff, 0x29, 0xff, 0x29, 0xff, 0x29, 0xff, 0x29, 0xff, 0x29, 0xff, 0x49, 0xff, 0x69, 0xff, 0x89, 0xff, 0xa9, 0xff, 0xc9, 0xff, 0xc9, 0xff, 0xc9, 0xff, 0xe9, 0xff, 0xc9, 0xff, 0xc9, 0xff, 0xc9, 0xff, 0xa9, 0xff, 0x89, 0xff, 0x69, 0xff, 0x49, 0xff, 0x29, 0xff, 0x29, 0xff, 0x29, 0xff, 0x29, 0xff, 0x29, 0xff, 0x29, 0xff, 0x29, 0xff, 0x29, 0xff, 0x29, 0xff, 0x29, 0xff, 0x29, 0xff, 0x25, 0xff, 0x05, 0xff, 0xad, 0xff, 0xf4, 0xff, 0x8d, 0xff, 0x05, 0xfd, 0x25, 0xf4, 0x69, 0xf1, 0xf0, 0xf9, 0xf0, 0xff, 0xd0, 0xbc, 0xd0, 0x78, + 0xd0, 0xa8, 0xf0, 0xde, 0xf0, 0xff, 0x8d, 0xed, 0x05, 0xf8, 0x29, 0xff, 0x29, 0xff, 0x8d, 0xff, 0xf4, 0xff, 0xad, 0xff, 0x25, 0xff, 0x29, 0xff, 0x29, 0xff, 0x29, 0xff, 0x29, 0xff, 0x29, 0xff, 0x29, 0xff, 0x29, 0xff, 0x29, 0xff, 0x49, 0xff, 0x69, 0xff, 0xa9, 0xff, 0xc9, 0xff, 0xc9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xc9, 0xff, 0xc9, 0xff, 0xa9, 0xff, 0x69, 0xff, 0x29, 0xff, 0x29, 0xff, 0x29, 0xff, 0x29, 0xff, 0x29, 0xff, 0x29, 0xff, 0x29, 0xff, 0x29, 0xff, 0x29, 0xff, 0x29, 0xff, 0x25, 0xff, 0xad, 0xff, 0xf4, 0xff, 0x8d, 0xff, 0x29, 0xff, 0x29, 0xff, 0x05, 0xf9, 0x8d, 0xee, 0xf0, 0xff, 0xd0, 0xde, 0xd0, 0xa8, + 0xd0, 0xa3, 0xf0, 0xda, 0xf0, 0xff, 0x49, 0xf5, 0x05, 0xfd, 0x29, 0xff, 0x25, 0xff, 0x8d, 0xff, 0xf0, 0xff, 0xd1, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0xc9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xa9, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0xd1, 0xff, 0xf0, 0xff, 0x8d, 0xff, 0x25, 0xff, 0x29, 0xff, 0x05, 0xfd, 0x49, 0xf5, 0xf0, 0xff, 0xf0, 0xda, 0xd0, 0xa3, + 0xd0, 0xa0, 0xf0, 0xd6, 0xf0, 0xff, 0x8d, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0xd1, 0xff, 0xf0, 0xff, 0xd1, 0xff, 0xad, 0xff, 0xad, 0xff, 0xad, 0xff, 0xad, 0xff, 0xad, 0xff, 0xcd, 0xff, 0xcd, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xcd, 0xff, 0xad, 0xff, 0xad, 0xff, 0xad, 0xff, 0xad, 0xff, 0xad, 0xff, 0xad, 0xff, 0xad, 0xff, 0xd1, 0xff, 0xf0, 0xff, 0xd1, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x8d, 0xff, 0xf0, 0xff, 0xf0, 0xd6, 0xd0, 0xa0, + 0xd0, 0xa0, 0xd0, 0xd6, 0xd0, 0xff, 0xf0, 0xff, 0xf0, 0xff, 0xf0, 0xff, 0xf0, 0xff, 0xf0, 0xff, 0xd0, 0xff, 0x49, 0xff, 0x29, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x89, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xc9, 0xff, 0x89, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x29, 0xff, 0x49, 0xff, 0xd0, 0xff, 0xf0, 0xff, 0xf0, 0xff, 0xf0, 0xff, 0xf0, 0xff, 0xf0, 0xff, 0xd0, 0xff, 0xd0, 0xd6, 0xd0, 0xa0, + 0xd0, 0xa0, 0xd0, 0xd6, 0xd0, 0xff, 0xd1, 0xff, 0xd1, 0xff, 0xd1, 0xff, 0xf0, 0xff, 0xd1, 0xff, 0x49, 0xff, 0x29, 0xff, 0x49, 0xff, 0x49, 0xff, 0x69, 0xff, 0xc9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xa9, 0xff, 0xa9, 0xff, 0x89, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x89, 0xff, 0x89, 0xff, 0xa9, 0xff, 0xc9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xa9, 0xff, 0x69, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x29, 0xff, 0x49, 0xff, 0xd1, 0xff, 0xf0, 0xff, 0xd1, 0xff, 0xd1, 0xff, 0xd1, 0xff, 0xd0, 0xff, 0xd0, 0xd6, 0xd0, 0xa0, + 0xd0, 0xa0, 0xf0, 0xd6, 0xf0, 0xff, 0x49, 0xff, 0x05, 0xff, 0x25, 0xff, 0xad, 0xff, 0x8d, 0xff, 0x05, 0xff, 0x49, 0xff, 0x49, 0xff, 0x89, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xa9, 0xff, 0x89, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x69, 0xff, 0x89, 0xff, 0xa9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xc9, 0xff, 0x69, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x05, 0xff, 0x8d, 0xff, 0xad, 0xff, 0x25, 0xff, 0x05, 0xff, 0x49, 0xff, 0xf0, 0xff, 0xf0, 0xd6, 0xd0, 0xa0, + 0xd0, 0xa0, 0xf0, 0xd6, 0xf0, 0xff, 0x69, 0xff, 0x25, 0xff, 0x29, 0xff, 0xad, 0xff, 0xad, 0xff, 0x29, 0xff, 0x49, 0xff, 0x89, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xc9, 0xff, 0x89, 0xff, 0x69, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x69, 0xff, 0xa9, 0xff, 0xc9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0x89, 0xff, 0x49, 0xff, 0x49, 0xff, 0x29, 0xff, 0xad, 0xff, 0xad, 0xff, 0x29, 0xff, 0x25, 0xff, 0x69, 0xff, 0xf0, 0xff, 0xf0, 0xd6, 0xd0, 0xa0, + 0xd0, 0xa0, 0xf0, 0xd6, 0xf0, 0xff, 0x69, 0xff, 0x29, 0xff, 0x49, 0xff, 0xad, 0xff, 0xad, 0xff, 0x29, 0xff, 0x89, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xa9, 0xff, 0x69, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x69, 0xff, 0xa9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0x89, 0xff, 0x49, 0xff, 0x29, 0xff, 0xad, 0xff, 0xad, 0xff, 0x49, 0xff, 0x29, 0xff, 0x69, 0xff, 0xf0, 0xff, 0xf0, 0xd6, 0xd0, 0xa0, + 0xd0, 0xa0, 0xf0, 0xd6, 0xf0, 0xff, 0x69, 0xff, 0x29, 0xff, 0x49, 0xff, 0xad, 0xff, 0xad, 0xff, 0x89, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xc9, 0xff, 0x69, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x89, 0xff, 0xc9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0x89, 0xff, 0x29, 0xff, 0xad, 0xff, 0xad, 0xff, 0x49, 0xff, 0x29, 0xff, 0x69, 0xff, 0xf0, 0xff, 0xf0, 0xd6, 0xd0, 0xa0, + 0xd0, 0xa0, 0xf0, 0xd6, 0xf0, 0xff, 0x69, 0xff, 0x29, 0xff, 0x49, 0xff, 0xad, 0xff, 0xcd, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0x89, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x69, 0xff, 0xa9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0x49, 0xff, 0xad, 0xff, 0xad, 0xff, 0x49, 0xff, 0x29, 0xff, 0x69, 0xff, 0xf0, 0xff, 0xf0, 0xd6, 0xd0, 0xa0, + 0xd0, 0xa0, 0xf0, 0xd6, 0xf0, 0xff, 0x69, 0xff, 0x29, 0xff, 0x49, 0xff, 0xcd, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xc9, 0xff, 0x89, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x69, 0xff, 0x6d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x6d, 0xff, 0x69, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x69, 0xff, 0xa9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xc9, 0xff, 0xad, 0xff, 0xad, 0xff, 0x49, 0xff, 0x29, 0xff, 0x69, 0xff, 0xf0, 0xff, 0xf0, 0xd6, 0xd0, 0xa0, + 0xd0, 0xa0, 0xf0, 0xd6, 0xf0, 0xff, 0x69, 0xff, 0x29, 0xff, 0x49, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xc9, 0xff, 0x89, 0xff, 0x49, 0xff, 0x49, 0xff, 0x69, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x69, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x69, 0xff, 0xa9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xc9, 0xff, 0xad, 0xff, 0x49, 0xff, 0x29, 0xff, 0x69, 0xff, 0xf0, 0xff, 0xf0, 0xd6, 0xd0, 0xa0, + 0xd0, 0xa0, 0xf0, 0xd6, 0xf0, 0xff, 0x69, 0xff, 0x29, 0xff, 0x89, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xc9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xc9, 0xff, 0x89, 0xff, 0x6d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x6d, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x69, 0xff, 0xc9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xcd, 0xff, 0x49, 0xff, 0x29, 0xff, 0x69, 0xff, 0xf0, 0xff, 0xf0, 0xd6, 0xd0, 0xa0, + 0xd0, 0xa0, 0xf0, 0xd6, 0xf0, 0xff, 0x69, 0xff, 0x49, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xc9, 0xff, 0x69, 0xff, 0xa9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xa9, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x69, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x69, 0xff, 0xc9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0x49, 0xff, 0x29, 0xff, 0x69, 0xff, 0xf0, 0xff, 0xf0, 0xd6, 0xd0, 0xa0, + 0xd0, 0xa0, 0xf0, 0xd6, 0xf0, 0xff, 0x69, 0xff, 0xa9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0x69, 0xff, 0x49, 0xff, 0x69, 0xff, 0xc9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xa9, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x69, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x89, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0x89, 0xff, 0x29, 0xff, 0x69, 0xff, 0xf0, 0xff, 0xf0, 0xd6, 0xd0, 0xa0, + 0xd0, 0xa0, 0xf0, 0xd6, 0xf0, 0xff, 0x69, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xa9, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x69, 0xff, 0xa9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xa9, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8c, 0xff, 0x69, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0xa9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xc9, 0xff, 0x49, 0xff, 0x69, 0xff, 0xf0, 0xff, 0xf0, 0xd6, 0xd0, 0xa0, + 0xd0, 0xa0, 0xf0, 0xd6, 0xf0, 0xff, 0xa9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xc9, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x69, 0xff, 0xc9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xa9, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x69, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x69, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0x89, 0xff, 0x69, 0xff, 0xf0, 0xff, 0xf0, 0xd6, 0xd0, 0xa0, + 0xd0, 0xa0, 0xf0, 0xd6, 0xf0, 0xff, 0xc9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0x89, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0xc9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xa9, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x6d, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x6d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0xa9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xa9, 0xff, 0x69, 0xff, 0xf0, 0xff, 0xf0, 0xd6, 0xd0, 0xa0, + 0xd0, 0xa0, 0xf0, 0xd6, 0xed, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x6d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x89, 0xff, 0xc9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xa9, 0xff, 0x69, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x69, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x89, 0xff, 0x89, 0xff, 0x89, 0xff, 0x89, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x69, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x69, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xc9, 0xff, 0x89, 0xff, 0xf0, 0xff, 0xf0, 0xd6, 0xd0, 0xa0, + 0xd0, 0xa0, 0xf0, 0xd7, 0xed, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xc9, 0xff, 0x29, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x69, 0xff, 0x88, 0xff, 0x68, 0xff, 0x68, 0xff, 0x68, 0xff, 0x68, 0xff, 0xc9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0x69, 0xff, 0x49, 0xff, 0x25, 0xff, 0x25, 0xff, 0x25, 0xff, 0x25, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x69, 0xff, 0x68, 0xff, 0x68, 0xff, 0x68, 0xff, 0x68, 0xff, 0x68, 0xff, 0x68, 0xff, 0x64, 0xff, 0x68, 0xff, 0x88, 0xff, 0x8d, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0xa9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xa9, 0xff, 0xf0, 0xff, 0xf0, 0xd6, 0xd0, 0xa0, + 0xd0, 0xa0, 0xf0, 0xdb, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xcd, 0xff, 0x29, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x68, 0xff, 0x68, 0xff, 0x91, 0xff, 0xb6, 0xff, 0xb6, 0xff, 0xb6, 0xff, 0xb6, 0xff, 0xcd, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0x69, 0xff, 0x92, 0xff, 0xb6, 0xff, 0xb6, 0xff, 0xb6, 0xff, 0x6d, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x6d, 0xff, 0xb6, 0xff, 0xd6, 0xff, 0xb6, 0xff, 0xb6, 0xff, 0xb6, 0xff, 0xb6, 0xff, 0xb2, 0xff, 0x8d, 0xff, 0x68, 0xff, 0x88, 0xff, 0x6d, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x69, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xc9, 0xff, 0xf0, 0xff, 0xf0, 0xd6, 0xd0, 0xa0, + 0xd0, 0xa0, 0xed, 0xe4, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xad, 0xff, 0x29, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x89, 0xff, 0xfb, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf2, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xfb, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xdb, 0xff, 0x25, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x92, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xd6, 0xff, 0x68, 0xff, 0x68, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xc9, 0xff, 0xed, 0xff, 0xf0, 0xd6, 0xd0, 0xa0, + 0xd0, 0xa0, 0xed, 0xed, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xad, 0xff, 0x29, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0xd6, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xee, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xed, 0xff, 0xfb, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x49, 0xff, 0x25, 0xff, 0x49, 0xff, 0x49, 0xff, 0x92, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xb2, 0xff, 0x68, 0xff, 0x69, 0xff, 0x49, 0xff, 0x49, 0xff, 0x29, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xed, 0xff, 0xf0, 0xd6, 0xd0, 0xa0, + 0xd0, 0xa0, 0xe9, 0xf2, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xcd, 0xff, 0xad, 0xff, 0x29, 0xff, 0x49, 0xff, 0x49, 0xff, 0x6d, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xd6, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0xb2, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xed, 0xff, 0xfb, 0xff, 0xff, 0xff, 0xff, 0xff, 0x6e, 0xff, 0x25, 0xff, 0x49, 0xff, 0x49, 0xff, 0x92, 0xff, 0xff, 0xff, 0xff, 0xff, 0xdb, 0xff, 0x89, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0xdb, 0xff, 0xff, 0xff, 0xff, 0xff, 0xdb, 0xff, 0x68, 0xff, 0x69, 0xff, 0x49, 0xff, 0x49, 0xff, 0x29, 0xff, 0xc9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xf0, 0xd6, 0xd0, 0xa0, + 0xd0, 0xa0, 0xe9, 0xf6, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xcd, 0xff, 0xad, 0xff, 0x29, 0xff, 0x49, 0xff, 0x49, 0xff, 0x8d, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x69, 0xff, 0x44, 0xff, 0x68, 0xff, 0x64, 0xff, 0xdb, 0xff, 0xff, 0xff, 0xff, 0xff, 0xb6, 0xff, 0xa9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xfb, 0xff, 0xff, 0xff, 0xb6, 0xff, 0x24, 0xff, 0x49, 0xff, 0x49, 0xff, 0x92, 0xff, 0xff, 0xff, 0xff, 0xff, 0xb7, 0xff, 0x44, 0xff, 0x68, 0xff, 0x44, 0xff, 0x8d, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfb, 0xff, 0x88, 0xff, 0x68, 0xff, 0x49, 0xff, 0x49, 0xff, 0x29, 0xff, 0xcd, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xf0, 0xd6, 0xd0, 0xa0, + 0xd0, 0xa0, 0xe9, 0xf9, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xcd, 0xff, 0xad, 0xff, 0x29, 0xff, 0x49, 0xff, 0x49, 0xff, 0x8d, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x89, 0xff, 0x68, 0xff, 0x89, 0xff, 0x68, 0xff, 0xd6, 0xff, 0xff, 0xff, 0xff, 0xff, 0x92, 0xff, 0x49, 0xff, 0xa9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xed, 0xff, 0xfb, 0xff, 0xdb, 0xff, 0x25, 0xff, 0x49, 0xff, 0x49, 0xff, 0x92, 0xff, 0xff, 0xff, 0xff, 0xff, 0xb7, 0xff, 0x24, 0xff, 0x68, 0xff, 0x44, 0xff, 0x91, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfb, 0xff, 0x68, 0xff, 0x68, 0xff, 0x49, 0xff, 0x49, 0xff, 0x29, 0xff, 0xcd, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xd0, 0xd6, 0xd0, 0xa0, + 0xd0, 0xa0, 0xe9, 0xfb, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xcd, 0xff, 0xad, 0xff, 0x29, 0xff, 0x49, 0xff, 0x49, 0xff, 0x8d, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x8d, 0xff, 0x68, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x69, 0xff, 0x4d, 0xff, 0x6d, 0xff, 0x49, 0xff, 0x49, 0xff, 0x45, 0xff, 0xcd, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xed, 0xff, 0xfb, 0xff, 0x49, 0xff, 0x25, 0xff, 0x49, 0xff, 0x92, 0xff, 0xff, 0xff, 0xff, 0xff, 0xdb, 0xff, 0x92, 0xff, 0xb1, 0xff, 0xb2, 0xff, 0xfb, 0xff, 0xff, 0xff, 0xff, 0xff, 0xb6, 0xff, 0x68, 0xff, 0x89, 0xff, 0x69, 0xff, 0x49, 0xff, 0x29, 0xff, 0xcd, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xd0, 0xd6, 0xd0, 0xa0, + 0xd0, 0xa0, 0xe9, 0xfc, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xcd, 0xff, 0xad, 0xff, 0x29, 0xff, 0x49, 0xff, 0x49, 0xff, 0x8d, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x8d, 0xff, 0x68, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x49, 0xff, 0x29, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0xdb, 0xff, 0xf2, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xed, 0xff, 0x8d, 0xff, 0x25, 0xff, 0x49, 0xff, 0x92, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xd6, 0xff, 0x64, 0xff, 0x68, 0xff, 0x8d, 0xff, 0x69, 0xff, 0x49, 0xff, 0x29, 0xff, 0xcd, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xd0, 0xd6, 0xd0, 0xa0, + 0xd0, 0xa0, 0xe9, 0xfb, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xcd, 0xff, 0xad, 0xff, 0x29, 0xff, 0x49, 0xff, 0x49, 0xff, 0x8d, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x8d, 0xff, 0x68, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x49, 0xff, 0x29, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x6d, 0xff, 0xff, 0xff, 0xff, 0xff, 0xee, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0x65, 0xff, 0x25, 0xff, 0x92, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x8d, 0xff, 0x68, 0xff, 0x8d, 0xff, 0x69, 0xff, 0x49, 0xff, 0x29, 0xff, 0xcd, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xd0, 0xd6, 0xd0, 0xa0, + 0xd0, 0xa0, 0xe9, 0xf9, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xcd, 0xff, 0xad, 0xff, 0x29, 0xff, 0x49, 0xff, 0x49, 0xff, 0x8d, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x8d, 0xff, 0x68, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x92, 0xff, 0xff, 0xff, 0xff, 0xff, 0xd7, 0xff, 0xa9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xc9, 0xff, 0x65, 0xff, 0x92, 0xff, 0xff, 0xff, 0xff, 0xff, 0xdb, 0xff, 0x49, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0xb6, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfb, 0xff, 0x88, 0xff, 0x68, 0xff, 0x69, 0xff, 0x49, 0xff, 0x29, 0xff, 0xcd, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xd0, 0xd6, 0xd0, 0xa0, + 0xd0, 0xa0, 0xe9, 0xf6, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xcd, 0xff, 0xad, 0xff, 0x29, 0xff, 0x49, 0xff, 0x49, 0xff, 0x8d, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x8d, 0xff, 0x68, 0xff, 0x8d, 0xff, 0x68, 0xff, 0xb6, 0xff, 0xff, 0xff, 0xff, 0xff, 0x92, 0xff, 0x24, 0xff, 0xb6, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xdb, 0xff, 0xee, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xc9, 0xff, 0xb2, 0xff, 0xff, 0xff, 0xff, 0xff, 0xb7, 0xff, 0x20, 0xff, 0x68, 0xff, 0x44, 0xff, 0x69, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x8d, 0xff, 0x68, 0xff, 0x69, 0xff, 0x49, 0xff, 0x29, 0xff, 0xcd, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xd0, 0xd6, 0xd0, 0xa0, + 0xd0, 0xa0, 0xe9, 0xf1, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xcd, 0xff, 0xad, 0xff, 0x29, 0xff, 0x49, 0xff, 0x49, 0xff, 0x8d, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x69, 0xff, 0x44, 0xff, 0x68, 0xff, 0x44, 0xff, 0xdb, 0xff, 0xff, 0xff, 0xff, 0xff, 0xb6, 0xff, 0x25, 0xff, 0xdb, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf2, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xfb, 0xff, 0xff, 0xff, 0xb7, 0xff, 0x44, 0xff, 0x68, 0xff, 0x64, 0xff, 0x68, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x8d, 0xff, 0x68, 0xff, 0x49, 0xff, 0x49, 0xff, 0x29, 0xff, 0xc9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xed, 0xff, 0xd0, 0xd6, 0xd0, 0xa0, + 0xd0, 0xa0, 0xed, 0xeb, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xad, 0xff, 0x29, 0xff, 0x49, 0xff, 0x49, 0xff, 0x8d, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xb2, 0xff, 0x68, 0xff, 0x68, 0xff, 0x8d, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x92, 0xff, 0x49, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xb7, 0xff, 0xb6, 0xff, 0xb7, 0xff, 0xb6, 0xff, 0xee, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xed, 0xff, 0xfb, 0xff, 0xdb, 0xff, 0x44, 0xff, 0x68, 0xff, 0x64, 0xff, 0xb1, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x8d, 0xff, 0x68, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xed, 0xff, 0xd0, 0xd6, 0xd0, 0xa0, + 0xd0, 0xa0, 0xed, 0xe3, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xad, 0xff, 0x29, 0xff, 0x49, 0xff, 0x49, 0xff, 0x69, 0xff, 0xfb, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x49, 0xff, 0x6d, 0xff, 0xff, 0xff, 0xff, 0xff, 0xdb, 0xff, 0x00, 0xff, 0x24, 0xff, 0x25, 0xff, 0x00, 0xff, 0x6d, 0xff, 0xf2, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xed, 0xff, 0xfb, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xdb, 0xff, 0x68, 0xff, 0x69, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xc9, 0xff, 0xed, 0xff, 0xd0, 0xd6, 0xd0, 0xa0, + 0xd0, 0xa0, 0xd0, 0xda, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xcd, 0xff, 0x29, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x8d, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xb2, 0xff, 0x24, 0xff, 0xbb, 0xff, 0xff, 0xff, 0xff, 0xff, 0xb6, 0xff, 0x24, 0xff, 0x49, 0xff, 0x49, 0xff, 0x25, 0xff, 0x49, 0xff, 0xff, 0xff, 0xf2, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xfb, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x8d, 0xff, 0x68, 0xff, 0x69, 0xff, 0x49, 0xff, 0x49, 0xff, 0x89, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xc9, 0xff, 0xd0, 0xff, 0xd0, 0xd6, 0xd0, 0xa0, + 0xd0, 0xa0, 0xd0, 0xd7, 0xed, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xc9, 0xff, 0x29, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x68, 0xff, 0x8d, 0xff, 0xd6, 0xff, 0xdb, 0xff, 0xdb, 0xff, 0xdb, 0xff, 0xdb, 0xff, 0xda, 0xff, 0xb1, 0xff, 0x68, 0xff, 0x49, 0xff, 0xb7, 0xff, 0xdb, 0xff, 0xd7, 0xff, 0x6d, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x92, 0xff, 0xdb, 0xff, 0xed, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xd6, 0xff, 0xdb, 0xff, 0xdb, 0xff, 0xd6, 0xff, 0x89, 0xff, 0x68, 0xff, 0x69, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0xc9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xa9, 0xff, 0xd0, 0xff, 0xd0, 0xd6, 0xd0, 0xa0, + 0xd0, 0xa0, 0xd0, 0xd6, 0xed, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x69, 0xff, 0x68, 0xff, 0x68, 0xff, 0x68, 0xff, 0x68, 0xff, 0x68, 0xff, 0x68, 0xff, 0x68, 0xff, 0x68, 0xff, 0x88, 0xff, 0x8d, 0xff, 0x49, 0xff, 0x25, 0xff, 0x25, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x25, 0xff, 0x49, 0xff, 0xc9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0x88, 0xff, 0x68, 0xff, 0x68, 0xff, 0x68, 0xff, 0x8d, 0xff, 0x69, 0xff, 0x49, 0xff, 0x49, 0xff, 0x69, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xc9, 0xff, 0x89, 0xff, 0xd0, 0xff, 0xd0, 0xd6, 0xd0, 0xa0, + 0xd0, 0xa0, 0xd0, 0xd6, 0xd0, 0xff, 0xc9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xa9, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x6d, 0xff, 0x8c, 0xff, 0x69, 0xff, 0x89, 0xff, 0x89, 0xff, 0x68, 0xff, 0x89, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x88, 0xff, 0x69, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x69, 0xff, 0xc9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xa9, 0xff, 0x89, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0xa9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xa9, 0xff, 0x69, 0xff, 0xd0, 0xff, 0xd0, 0xd6, 0xd0, 0xa0, + 0xd0, 0xa0, 0xd0, 0xd6, 0xd0, 0xff, 0xa9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xc9, 0xff, 0x69, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x69, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x6d, 0xff, 0x69, 0xff, 0x69, 0xff, 0x49, 0xff, 0x49, 0xff, 0x69, 0xff, 0x69, 0xff, 0x6d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0xc9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xa9, 0xff, 0x8d, 0xff, 0x69, 0xff, 0x49, 0xff, 0x49, 0xff, 0x69, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0x69, 0xff, 0x69, 0xff, 0xd0, 0xff, 0xd0, 0xd6, 0xd0, 0xa0, + 0xd0, 0xa0, 0xd0, 0xd6, 0xd0, 0xff, 0x69, 0xff, 0xc9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xa9, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x69, 0xff, 0x8c, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0xc9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0x89, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0xc9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xc9, 0xff, 0x29, 0xff, 0x69, 0xff, 0xd0, 0xff, 0xd0, 0xd6, 0xd0, 0xa0, + 0xd0, 0xa0, 0xd0, 0xd6, 0xd0, 0xff, 0x69, 0xff, 0x89, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0x89, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x6d, 0xff, 0x8c, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0xc9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xc9, 0xff, 0x69, 0xff, 0x49, 0xff, 0x89, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0x89, 0xff, 0x29, 0xff, 0x69, 0xff, 0xd0, 0xff, 0xd0, 0xd6, 0xd0, 0xa0, + 0xd0, 0xa0, 0xd0, 0xd6, 0xd0, 0xff, 0x69, 0xff, 0x49, 0xff, 0xc9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xc9, 0xff, 0x69, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x6d, 0xff, 0x8c, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0xc9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xc9, 0xff, 0x89, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0x49, 0xff, 0x29, 0xff, 0x69, 0xff, 0xd0, 0xff, 0xd0, 0xd6, 0xd0, 0xa0, + 0xd0, 0xa0, 0xd0, 0xd6, 0xd0, 0xff, 0x69, 0xff, 0x29, 0xff, 0x69, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xa9, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x69, 0xff, 0x8c, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0xc9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xcd, 0xff, 0x49, 0xff, 0x29, 0xff, 0x69, 0xff, 0xd0, 0xff, 0xd0, 0xd6, 0xd0, 0xa0, + 0xd0, 0xa0, 0xd0, 0xd6, 0xd0, 0xff, 0x69, 0xff, 0x29, 0xff, 0x49, 0xff, 0xc9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xa9, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x69, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x69, 0xff, 0xa9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xcd, 0xff, 0xad, 0xff, 0x49, 0xff, 0x29, 0xff, 0x69, 0xff, 0xd0, 0xff, 0xd0, 0xd6, 0xd0, 0xa0, + 0xd0, 0xa0, 0xd0, 0xd6, 0xd0, 0xff, 0x69, 0xff, 0x29, 0xff, 0x49, 0xff, 0xad, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xa9, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x69, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x69, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0xa9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xc9, 0xff, 0xad, 0xff, 0xad, 0xff, 0x49, 0xff, 0x29, 0xff, 0x69, 0xff, 0xd0, 0xff, 0xd0, 0xd6, 0xd0, 0xa0, + 0xd0, 0xa0, 0xd0, 0xd6, 0xd0, 0xff, 0x69, 0xff, 0x29, 0xff, 0x49, 0xff, 0xad, 0xff, 0xad, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xc9, 0xff, 0x69, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x69, 0xff, 0x6d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x6d, 0xff, 0x69, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x69, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xc9, 0xff, 0x49, 0xff, 0xad, 0xff, 0xad, 0xff, 0x49, 0xff, 0x29, 0xff, 0x69, 0xff, 0xd0, 0xff, 0xd0, 0xd6, 0xd0, 0xa0, + 0xd0, 0xa0, 0xd0, 0xd6, 0xd0, 0xff, 0x69, 0xff, 0x29, 0xff, 0x49, 0xff, 0xad, 0xff, 0xad, 0xff, 0x69, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xc9, 0xff, 0x89, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x69, 0xff, 0x69, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x69, 0xff, 0x69, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x89, 0xff, 0xc9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0x69, 0xff, 0x29, 0xff, 0xad, 0xff, 0xad, 0xff, 0x49, 0xff, 0x29, 0xff, 0x69, 0xff, 0xd0, 0xff, 0xd0, 0xd6, 0xd0, 0xa0, + 0xd0, 0xa0, 0xd0, 0xd6, 0xd0, 0xff, 0x69, 0xff, 0x29, 0xff, 0x49, 0xff, 0xad, 0xff, 0xad, 0xff, 0x29, 0xff, 0x89, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xa9, 0xff, 0x69, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x69, 0xff, 0xc9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0x69, 0xff, 0x49, 0xff, 0x29, 0xff, 0xad, 0xff, 0xad, 0xff, 0x49, 0xff, 0x29, 0xff, 0x69, 0xff, 0xd0, 0xff, 0xd0, 0xd6, 0xd0, 0xa0, + 0xd0, 0xa0, 0xd0, 0xd6, 0xd0, 0xff, 0x69, 0xff, 0x29, 0xff, 0x49, 0xff, 0xad, 0xff, 0xad, 0xff, 0x29, 0xff, 0x49, 0xff, 0x89, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xa9, 0xff, 0x69, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x69, 0xff, 0xa9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xc9, 0xff, 0x69, 0xff, 0x49, 0xff, 0x49, 0xff, 0x29, 0xff, 0xad, 0xff, 0xad, 0xff, 0x49, 0xff, 0x29, 0xff, 0x69, 0xff, 0xd0, 0xff, 0xd0, 0xd6, 0xd0, 0xa0, + 0xd0, 0xa0, 0xd0, 0xd6, 0xd0, 0xff, 0x69, 0xff, 0x29, 0xff, 0x29, 0xff, 0xad, 0xff, 0xad, 0xff, 0x29, 0xff, 0x49, 0xff, 0x49, 0xff, 0x69, 0xff, 0xc9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xc9, 0xff, 0x89, 0xff, 0x69, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x69, 0xff, 0x89, 0xff, 0xc9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xc9, 0xff, 0x69, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x29, 0xff, 0xad, 0xff, 0xad, 0xff, 0x29, 0xff, 0x29, 0xff, 0x69, 0xff, 0xd0, 0xff, 0xd0, 0xd6, 0xd0, 0xa0, + 0xd0, 0xa0, 0xd0, 0xd6, 0xd0, 0xff, 0x49, 0xff, 0x05, 0xff, 0x25, 0xff, 0xad, 0xff, 0xad, 0xff, 0x29, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x69, 0xff, 0xa9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xc9, 0xff, 0xa9, 0xff, 0xa9, 0xff, 0x89, 0xff, 0x89, 0xff, 0x89, 0xff, 0x89, 0xff, 0x89, 0xff, 0xa9, 0xff, 0xa9, 0xff, 0xc9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xa9, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x29, 0xff, 0xad, 0xff, 0xad, 0xff, 0x25, 0xff, 0x05, 0xff, 0x49, 0xff, 0xd0, 0xff, 0xd0, 0xd6, 0xd0, 0xa0, + 0xd0, 0xa0, 0xd0, 0xd6, 0xd0, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0xd0, 0xff, 0xad, 0xff, 0x29, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x89, 0xff, 0xc9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xc9, 0xff, 0x69, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x29, 0xff, 0xad, 0xff, 0xd0, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0xd0, 0xff, 0xd0, 0xd6, 0xd0, 0xa0, + 0xd0, 0xa0, 0xcc, 0xd6, 0xcc, 0xff, 0xf0, 0xff, 0xf4, 0xff, 0xf4, 0xff, 0xf0, 0xff, 0xf0, 0xff, 0xad, 0xff, 0x29, 0xff, 0x29, 0xff, 0x29, 0xff, 0x29, 0xff, 0x29, 0xff, 0x29, 0xff, 0x49, 0xff, 0x89, 0xff, 0xc9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xc9, 0xff, 0x89, 0xff, 0x49, 0xff, 0x29, 0xff, 0x29, 0xff, 0x29, 0xff, 0x29, 0xff, 0x29, 0xff, 0x29, 0xff, 0x29, 0xff, 0xad, 0xff, 0xf0, 0xff, 0xf0, 0xff, 0xf4, 0xff, 0xf4, 0xff, 0xf0, 0xff, 0xcc, 0xff, 0xcc, 0xd6, 0xd0, 0xa0, + 0xd0, 0xa0, 0xd0, 0xd6, 0xd0, 0xff, 0xad, 0xff, 0xad, 0xff, 0xad, 0xff, 0xad, 0xff, 0xf0, 0xff, 0xf0, 0xff, 0xad, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0xad, 0xff, 0xad, 0xff, 0xc9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xc9, 0xff, 0xad, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0xad, 0xff, 0xf0, 0xff, 0xf0, 0xff, 0xad, 0xff, 0xad, 0xff, 0xad, 0xff, 0xad, 0xff, 0xd0, 0xff, 0xd0, 0xd6, 0xd0, 0xa0, + 0xcc, 0xa1, 0xd0, 0xd8, 0xd0, 0xff, 0x49, 0xfa, 0x25, 0xfe, 0x29, 0xff, 0x25, 0xff, 0x8d, 0xff, 0xf0, 0xff, 0xf0, 0xff, 0xcd, 0xff, 0xd1, 0xff, 0xd1, 0xff, 0xd1, 0xff, 0xd1, 0xff, 0xd1, 0xff, 0xd1, 0xff, 0xd1, 0xff, 0xd1, 0xff, 0xd1, 0xff, 0xcd, 0xff, 0xcd, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xcd, 0xff, 0xcd, 0xff, 0xd1, 0xff, 0xd1, 0xff, 0xd1, 0xff, 0xd1, 0xff, 0xd1, 0xff, 0xd1, 0xff, 0xd1, 0xff, 0xd1, 0xff, 0xd1, 0xff, 0xd1, 0xff, 0xcd, 0xff, 0xf0, 0xff, 0xf0, 0xff, 0x8d, 0xff, 0x25, 0xff, 0x29, 0xff, 0x25, 0xfe, 0x49, 0xfa, 0xd0, 0xff, 0xd0, 0xd8, 0xcc, 0xa1, + 0xcc, 0xa8, 0xd0, 0xde, 0xf0, 0xff, 0x69, 0xed, 0x05, 0xfa, 0x49, 0xff, 0x29, 0xff, 0x8d, 0xff, 0xf4, 0xff, 0xad, 0xff, 0x29, 0xff, 0x29, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x69, 0xff, 0x89, 0xff, 0xa9, 0xff, 0xa9, 0xff, 0xc9, 0xff, 0xc9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xc9, 0xff, 0xc9, 0xff, 0xa9, 0xff, 0xa9, 0xff, 0x69, 0xff, 0x69, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x29, 0xff, 0x29, 0xff, 0xad, 0xff, 0xf4, 0xff, 0x8d, 0xff, 0x29, 0xff, 0x49, 0xff, 0x05, 0xfa, 0x69, 0xed, 0xf0, 0xff, 0xd0, 0xde, 0xcc, 0xa8, + 0xcc, 0x9a, 0xcc, 0xd3, 0xf0, 0xff, 0xac, 0xf3, 0x29, 0xf2, 0x25, 0xfc, 0x25, 0xff, 0x8d, 0xff, 0xf4, 0xff, 0xad, 0xff, 0x25, 0xff, 0x29, 0xff, 0x29, 0xff, 0x29, 0xff, 0x29, 0xff, 0x29, 0xff, 0x29, 0xff, 0x29, 0xff, 0x29, 0xff, 0x29, 0xff, 0x29, 0xff, 0x29, 0xff, 0x29, 0xff, 0x29, 0xff, 0x29, 0xff, 0x29, 0xff, 0x29, 0xff, 0x29, 0xff, 0x29, 0xff, 0x29, 0xff, 0x29, 0xff, 0x29, 0xff, 0x29, 0xff, 0x29, 0xff, 0x29, 0xff, 0x29, 0xff, 0x29, 0xff, 0x29, 0xff, 0x29, 0xff, 0x29, 0xff, 0x29, 0xff, 0x29, 0xff, 0x29, 0xff, 0x29, 0xff, 0x29, 0xff, 0x29, 0xff, 0x29, 0xff, 0x29, 0xff, 0x29, 0xff, 0x25, 0xff, 0xad, 0xff, 0xf4, 0xff, 0x8d, 0xff, 0x25, 0xff, 0x25, 0xfb, 0x29, 0xf2, 0xac, 0xf3, 0xf0, 0xff, 0xcc, 0xd3, 0xcc, 0x9a, + 0xd0, 0x30, 0xcc, 0x87, 0xd0, 0xff, 0xf0, 0xff, 0xac, 0xf3, 0x69, 0xed, 0x29, 0xfa, 0x8d, 0xff, 0xf0, 0xff, 0xad, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0xad, 0xff, 0xf0, 0xff, 0x8d, 0xff, 0x29, 0xfa, 0x69, 0xec, 0xad, 0xf4, 0xf0, 0xff, 0xd0, 0xff, 0xcc, 0x87, 0xd0, 0x30, + 0x00, 0x00, 0xcc, 0x11, 0xcc, 0xc3, 0xd0, 0xff, 0xf0, 0xff, 0xd0, 0xff, 0xcc, 0xff, 0xcc, 0xff, 0xcc, 0xff, 0xcc, 0xff, 0xcc, 0xff, 0xcc, 0xff, 0xcc, 0xff, 0xcc, 0xff, 0xcc, 0xff, 0xcc, 0xff, 0xcc, 0xff, 0xcc, 0xff, 0xcc, 0xff, 0xcc, 0xff, 0xcc, 0xff, 0xcc, 0xff, 0xcc, 0xff, 0xcc, 0xff, 0xcc, 0xff, 0xcc, 0xff, 0xcc, 0xff, 0xcc, 0xff, 0xcc, 0xff, 0xcc, 0xff, 0xcc, 0xff, 0xcc, 0xff, 0xcc, 0xff, 0xcc, 0xff, 0xcc, 0xff, 0xcc, 0xff, 0xcc, 0xff, 0xcc, 0xff, 0xcc, 0xff, 0xcc, 0xff, 0xcc, 0xff, 0xcc, 0xff, 0xcc, 0xff, 0xcc, 0xff, 0xcc, 0xff, 0xcc, 0xff, 0xcc, 0xff, 0xcc, 0xff, 0xcc, 0xff, 0xcc, 0xff, 0xcc, 0xff, 0xcc, 0xff, 0xcc, 0xff, 0xcc, 0xff, 0xd0, 0xff, 0xf0, 0xff, 0xd0, 0xff, 0xcc, 0xc3, 0xcc, 0x11, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xd0, 0x14, 0xcc, 0x8e, 0xd0, 0xde, 0xd0, 0xe9, 0xd0, 0xe1, 0xd0, 0xdf, 0xac, 0xdf, 0xd0, 0xdf, 0xd0, 0xdf, 0xd0, 0xdf, 0xd0, 0xdf, 0xd0, 0xdf, 0xd0, 0xdf, 0xd0, 0xdf, 0xd0, 0xdf, 0xd0, 0xdf, 0xd0, 0xdf, 0xd0, 0xdf, 0xd0, 0xdf, 0xd0, 0xdf, 0xd0, 0xdf, 0xd0, 0xdf, 0xd0, 0xdf, 0xd0, 0xdf, 0xd0, 0xdf, 0xd0, 0xdf, 0xd0, 0xdf, 0xd0, 0xdf, 0xd0, 0xdf, 0xd0, 0xdf, 0xd0, 0xdf, 0xd0, 0xdf, 0xd0, 0xdf, 0xd0, 0xdf, 0xd0, 0xdf, 0xd0, 0xdf, 0xd0, 0xdf, 0xd0, 0xdf, 0xd0, 0xdf, 0xd0, 0xdf, 0xd0, 0xdf, 0xd0, 0xdf, 0xd0, 0xdf, 0xd0, 0xdf, 0xd0, 0xdf, 0xd0, 0xdf, 0xd0, 0xdf, 0xd0, 0xdf, 0xd0, 0xdf, 0xac, 0xdf, 0xd0, 0xdf, 0xd0, 0xe1, 0xd0, 0xe9, 0xd0, 0xde, 0xcc, 0x8e, 0xd0, 0x14, 0x00, 0x00, 0x00, 0x00, +#endif +#if LV_COLOR_DEPTH == 16 && LV_COLOR_16_SWAP == 0 + /*Pixel format: Alpha 8 bit, Red: 5 bit, Green: 6 bit, Blue: 5 bit*/ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x84, 0xec, 0x46, 0x64, 0xec, 0xb5, 0x64, 0xec, 0xed, 0x64, 0xec, 0xf5, 0x64, 0xec, 0xf0, 0x64, 0xec, 0xef, 0x64, 0xec, 0xef, 0x64, 0xec, 0xef, 0x64, 0xec, 0xef, 0x64, 0xec, 0xef, 0x64, 0xec, 0xef, 0x64, 0xec, 0xef, 0x64, 0xec, 0xef, 0x64, 0xec, 0xef, 0x64, 0xec, 0xef, 0x64, 0xec, 0xef, 0x64, 0xec, 0xef, 0x64, 0xec, 0xef, 0x64, 0xec, 0xef, 0x64, 0xec, 0xef, 0x64, 0xec, 0xef, 0x64, 0xec, 0xef, 0x64, 0xec, 0xef, 0x64, 0xec, 0xef, 0x64, 0xec, 0xef, 0x64, 0xec, 0xf1, 0x64, 0xec, 0xf4, 0x64, 0xec, 0xeb, 0x64, 0xec, 0xb4, 0x64, 0xec, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x64, 0xec, 0x75, 0x64, 0xec, 0xff, 0x64, 0xec, 0xff, 0x64, 0xec, 0xf9, 0x64, 0xec, 0xf1, 0x64, 0xec, 0xf3, 0x64, 0xec, 0xf4, 0x64, 0xec, 0xf4, 0x64, 0xec, 0xf4, 0x64, 0xec, 0xf4, 0x64, 0xec, 0xf4, 0x64, 0xec, 0xf4, 0x64, 0xec, 0xf4, 0x64, 0xec, 0xf4, 0x64, 0xec, 0xf4, 0x64, 0xec, 0xf4, 0x64, 0xec, 0xf4, 0x64, 0xec, 0xf4, 0x64, 0xec, 0xf4, 0x64, 0xec, 0xf4, 0x64, 0xec, 0xf4, 0x64, 0xec, 0xf4, 0x64, 0xec, 0xf4, 0x64, 0xec, 0xf4, 0x64, 0xec, 0xf4, 0x64, 0xec, 0xf4, 0x64, 0xec, 0xf3, 0x64, 0xec, 0xf1, 0x64, 0xec, 0xf9, 0x64, 0xec, 0xff, 0x64, 0xec, 0xff, 0x64, 0xec, 0x76, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x64, 0xec, 0x58, 0x64, 0xec, 0xff, 0x64, 0xec, 0xff, 0x64, 0xec, 0x9f, 0x65, 0xec, 0x3e, 0x64, 0xec, 0x33, 0x64, 0xec, 0x3a, 0x64, 0xec, 0x3b, 0x64, 0xec, 0x3b, 0x64, 0xec, 0x3b, 0x64, 0xec, 0x3b, 0x64, 0xec, 0x3b, 0x64, 0xec, 0x3b, 0x64, 0xec, 0x3b, 0x64, 0xec, 0x3b, 0x64, 0xec, 0x3b, 0x64, 0xec, 0x3b, 0x64, 0xec, 0x3b, 0x64, 0xec, 0x3b, 0x64, 0xec, 0x3b, 0x64, 0xec, 0x3b, 0x64, 0xec, 0x3b, 0x64, 0xec, 0x3b, 0x64, 0xec, 0x3b, 0x64, 0xec, 0x3b, 0x64, 0xec, 0x3b, 0x64, 0xec, 0x3b, 0x65, 0xec, 0x39, 0x64, 0xec, 0x33, 0x64, 0xec, 0x3e, 0x64, 0xec, 0x9f, 0x64, 0xec, 0xff, 0x64, 0xec, 0xff, 0x64, 0xec, 0x57, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa5, 0xec, 0x13, 0x64, 0xec, 0xbe, 0x64, 0xe4, 0xff, 0x64, 0xec, 0x92, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x64, 0xec, 0x92, 0x64, 0xec, 0xff, 0x64, 0xec, 0xbf, 0xa5, 0xec, 0x13, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x44, 0xec, 0x2f, 0x64, 0xec, 0xff, 0x64, 0xec, 0xef, 0xa5, 0xfc, 0x31, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa5, 0xfc, 0x31, 0x64, 0xec, 0xef, 0x64, 0xec, 0xff, 0x44, 0xec, 0x2f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x01, 0xa0, 0xaa, 0x03, 0x00, 0x84, 0x02, 0x00, 0xfc, 0x02, 0x00, 0xfc, 0x02, 0x00, 0xfc, 0x02, 0x00, 0x84, 0x02, 0x00, 0x00, 0x00, 0x04, 0xd4, 0x38, 0x84, 0xf4, 0xff, 0xa5, 0xf4, 0xd9, 0xe4, 0xd3, 0x1d, 0x00, 0x00, 0x00, 0x00, 0x84, 0x02, 0x00, 0x84, 0x02, 0x00, 0x84, 0x02, 0x00, 0x84, 0x02, 0x00, 0x84, 0x02, 0x00, 0x84, 0x02, 0x00, 0x84, 0x02, 0x00, 0x84, 0x02, 0x00, 0x84, 0x02, 0x00, 0x84, 0x02, 0x00, 0x84, 0x02, 0x00, 0x84, 0x02, 0x00, 0x84, 0x02, 0x00, 0x84, 0x02, 0x00, 0x84, 0x02, 0x00, 0x84, 0x02, 0x00, 0x84, 0x02, 0x00, 0x84, 0x02, 0x00, 0x84, 0x02, 0x00, 0x84, 0x02, 0x00, 0x84, 0x02, 0x00, 0x84, 0x02, 0x00, 0x84, 0x02, 0x00, 0x84, 0x02, 0x00, 0x84, 0x02, 0x00, 0x84, 0x02, 0x00, 0x00, 0x00, 0xe4, 0xd3, 0x1d, 0xa5, 0xf4, 0xd9, 0x84, 0xf4, 0xff, 0x24, 0xd4, 0x39, 0x00, 0x00, 0x00, 0x00, 0x84, 0x02, 0x00, 0xfc, 0x02, 0x00, 0xfc, 0x02, 0x00, 0xfc, 0x02, 0x00, 0x84, 0x02, 0xa0, 0xaa, 0x03, 0x00, 0xf8, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa4, 0xcb, 0x46, 0xc4, 0xc3, 0x93, 0xc4, 0xcb, 0xa3, 0xe4, 0xcb, 0x9c, 0xe4, 0xcb, 0x9a, 0xc4, 0xc3, 0x9a, 0xc4, 0xcb, 0x9a, 0xe4, 0xd3, 0x9a, 0xc4, 0xcb, 0x8f, 0xe4, 0xd3, 0xaf, 0x24, 0xdc, 0xff, 0x24, 0xdc, 0xf2, 0xc4, 0xc3, 0x9c, 0xc3, 0xcb, 0x8e, 0xe4, 0xd3, 0x9b, 0xe4, 0xd3, 0x9a, 0xe4, 0xd3, 0x9a, 0xe4, 0xd3, 0x9a, 0xe4, 0xd3, 0x9a, 0xe4, 0xd3, 0x9a, 0xe4, 0xd3, 0x9a, 0xe4, 0xd3, 0x9a, 0xe4, 0xd3, 0x9a, 0xe4, 0xd3, 0x9a, 0xe4, 0xd3, 0x9a, 0xe4, 0xd3, 0x9a, 0xe4, 0xd3, 0x9a, 0xe4, 0xd3, 0x9a, 0xe4, 0xd3, 0x9a, 0xe4, 0xd3, 0x9a, 0xe4, 0xd3, 0x9a, 0xe4, 0xd3, 0x9a, 0xe4, 0xd3, 0x9a, 0xe4, 0xd3, 0x9a, 0xe4, 0xd3, 0x9a, 0xe4, 0xd3, 0x9a, 0xe4, 0xd3, 0x9a, 0xe4, 0xd3, 0x9a, 0xe4, 0xd3, 0x9a, 0xe4, 0xd3, 0x9b, 0xc3, 0xcb, 0x8e, 0xc4, 0xc3, 0x9c, 0x24, 0xdc, 0xf2, 0x24, 0xdc, 0xff, 0xe4, 0xd3, 0xaf, 0xc4, 0xcb, 0x8f, 0xe4, 0xd3, 0x9a, 0xc4, 0xcb, 0x9a, 0xc4, 0xc3, 0x9a, 0xe4, 0xcb, 0x9a, 0xe4, 0xcb, 0x9c, 0xc4, 0xcb, 0xa1, 0xc4, 0xc3, 0x93, 0xa4, 0xcb, 0x46, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc4, 0xc3, 0x76, 0xa4, 0xc3, 0xff, 0x03, 0xdc, 0xff, 0x63, 0xec, 0xff, 0x83, 0xfc, 0xff, 0x23, 0xe4, 0xff, 0xc4, 0xc3, 0xff, 0x04, 0xdc, 0xff, 0x63, 0xf4, 0xff, 0x63, 0xf4, 0xff, 0x63, 0xec, 0xff, 0x43, 0xec, 0xff, 0x43, 0xec, 0xff, 0x43, 0xec, 0xff, 0x63, 0xf4, 0xff, 0x63, 0xf4, 0xff, 0x63, 0xf4, 0xff, 0x63, 0xf4, 0xff, 0x63, 0xf4, 0xff, 0x63, 0xf4, 0xff, 0x63, 0xf4, 0xff, 0x63, 0xf4, 0xff, 0x63, 0xf4, 0xff, 0x63, 0xf4, 0xff, 0x63, 0xf4, 0xff, 0x63, 0xf4, 0xff, 0x63, 0xf4, 0xff, 0x63, 0xf4, 0xff, 0x63, 0xf4, 0xff, 0x63, 0xf4, 0xff, 0x63, 0xf4, 0xff, 0x63, 0xf4, 0xff, 0x63, 0xf4, 0xff, 0x63, 0xf4, 0xff, 0x63, 0xf4, 0xff, 0x63, 0xf4, 0xff, 0x63, 0xf4, 0xff, 0x63, 0xf4, 0xff, 0x63, 0xf4, 0xff, 0x63, 0xf4, 0xff, 0x63, 0xf4, 0xff, 0x63, 0xf4, 0xff, 0x43, 0xec, 0xff, 0x43, 0xec, 0xff, 0x43, 0xec, 0xff, 0x63, 0xec, 0xff, 0x63, 0xf4, 0xff, 0x63, 0xf4, 0xff, 0x04, 0xdc, 0xff, 0xc4, 0xc3, 0xff, 0x23, 0xe4, 0xff, 0x83, 0xfc, 0xff, 0x63, 0xec, 0xff, 0x03, 0xdc, 0xff, 0xa4, 0xc3, 0xff, 0xc4, 0xc3, 0x76, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x03, 0xd4, 0x0a, 0xe4, 0xc3, 0x5c, 0xc4, 0xc3, 0xff, 0x23, 0xe4, 0xff, 0x43, 0xec, 0xf9, 0x45, 0xa3, 0xef, 0xa7, 0x72, 0xfa, 0x65, 0xab, 0xff, 0x43, 0xec, 0xff, 0xa4, 0xbb, 0xff, 0xc6, 0x7a, 0xff, 0xe6, 0x82, 0xff, 0x06, 0x8b, 0xff, 0xe6, 0x8a, 0xff, 0xe6, 0x8a, 0xff, 0xe6, 0x8a, 0xff, 0xe6, 0x8a, 0xff, 0xe6, 0x8a, 0xff, 0x06, 0x8b, 0xff, 0x06, 0x8b, 0xff, 0x06, 0x8b, 0xff, 0x06, 0x8b, 0xff, 0x06, 0x8b, 0xff, 0x06, 0x8b, 0xff, 0x06, 0x8b, 0xff, 0x06, 0x8b, 0xff, 0x06, 0x8b, 0xff, 0x06, 0x8b, 0xff, 0x06, 0x8b, 0xff, 0x06, 0x8b, 0xff, 0x06, 0x8b, 0xff, 0x06, 0x8b, 0xff, 0x06, 0x8b, 0xff, 0x06, 0x8b, 0xff, 0x06, 0x8b, 0xff, 0x06, 0x8b, 0xff, 0x06, 0x8b, 0xff, 0x06, 0x8b, 0xff, 0x06, 0x8b, 0xff, 0x06, 0x8b, 0xff, 0x06, 0x8b, 0xff, 0x06, 0x8b, 0xff, 0xe6, 0x8a, 0xff, 0xe6, 0x8a, 0xff, 0xe6, 0x8a, 0xff, 0xe6, 0x8a, 0xff, 0xe6, 0x8a, 0xff, 0x06, 0x8b, 0xff, 0xe6, 0x82, 0xff, 0xc6, 0x7a, 0xff, 0xa4, 0xbb, 0xff, 0x43, 0xec, 0xff, 0x65, 0xab, 0xff, 0xa7, 0x72, 0xfa, 0x45, 0xa3, 0xef, 0x43, 0xec, 0xf9, 0x23, 0xe4, 0xff, 0xa4, 0xc3, 0xff, 0xe4, 0xcb, 0x5b, 0x84, 0xcb, 0x09, + 0xc4, 0xcb, 0x79, 0xc4, 0xcb, 0xbc, 0x23, 0xe4, 0xff, 0x24, 0xe4, 0xfa, 0x67, 0x5a, 0xf1, 0x69, 0x11, 0xf4, 0x0a, 0x01, 0xfd, 0xa6, 0x72, 0xff, 0xa2, 0xfc, 0xff, 0x25, 0x9b, 0xff, 0x49, 0x11, 0xff, 0x69, 0x19, 0xff, 0xa9, 0x29, 0xff, 0xa9, 0x29, 0xff, 0xa9, 0x29, 0xff, 0xa9, 0x29, 0xff, 0xa9, 0x29, 0xff, 0xa9, 0x29, 0xff, 0xa9, 0x29, 0xff, 0xa9, 0x29, 0xff, 0xa9, 0x29, 0xff, 0xa9, 0x29, 0xff, 0xa9, 0x41, 0xff, 0xc8, 0x69, 0xff, 0xc8, 0x91, 0xff, 0xc8, 0xa1, 0xff, 0xc8, 0xb9, 0xff, 0xc8, 0xc9, 0xff, 0xc7, 0xd1, 0xff, 0xe7, 0xd1, 0xff, 0xc7, 0xd1, 0xff, 0xc8, 0xc9, 0xff, 0xc8, 0xb9, 0xff, 0xc8, 0xa1, 0xff, 0xc8, 0x89, 0xff, 0xc8, 0x61, 0xff, 0xa9, 0x41, 0xff, 0xa9, 0x29, 0xff, 0xa9, 0x29, 0xff, 0xa9, 0x29, 0xff, 0xa9, 0x29, 0xff, 0xa9, 0x29, 0xff, 0xa9, 0x29, 0xff, 0xa9, 0x29, 0xff, 0xa9, 0x29, 0xff, 0xa9, 0x29, 0xff, 0xa9, 0x29, 0xff, 0xa9, 0x29, 0xff, 0x69, 0x19, 0xff, 0x49, 0x11, 0xff, 0x25, 0x9b, 0xff, 0xa2, 0xfc, 0xff, 0xa6, 0x72, 0xff, 0x0a, 0x01, 0xfd, 0x69, 0x11, 0xf4, 0x67, 0x62, 0xf1, 0x24, 0xe4, 0xf9, 0x23, 0xe4, 0xff, 0xc4, 0xcb, 0xbc, 0xc4, 0xcb, 0x78, + 0xc4, 0xcb, 0xa8, 0xe4, 0xd3, 0xde, 0x63, 0xf4, 0xff, 0xe6, 0x82, 0xed, 0x29, 0x09, 0xf8, 0xa8, 0x29, 0xff, 0x89, 0x21, 0xff, 0xc6, 0x82, 0xff, 0xa2, 0xfc, 0xff, 0x25, 0x9b, 0xff, 0x69, 0x19, 0xff, 0x89, 0x21, 0xff, 0xc9, 0x31, 0xff, 0xc9, 0x31, 0xff, 0xc9, 0x31, 0xff, 0xc9, 0x31, 0xff, 0xc9, 0x31, 0xff, 0xc9, 0x31, 0xff, 0xc9, 0x31, 0xff, 0xc9, 0x39, 0xff, 0xc8, 0x69, 0xff, 0xc8, 0x99, 0xff, 0xc8, 0xc1, 0xff, 0xe7, 0xd1, 0xff, 0xe7, 0xd9, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xd9, 0xff, 0xe8, 0xc9, 0xff, 0xc8, 0xc1, 0xff, 0xc8, 0x91, 0xff, 0xc8, 0x61, 0xff, 0xc9, 0x31, 0xff, 0xc9, 0x31, 0xff, 0xc9, 0x31, 0xff, 0xc9, 0x31, 0xff, 0xc9, 0x31, 0xff, 0xc9, 0x31, 0xff, 0xc9, 0x31, 0xff, 0xc9, 0x31, 0xff, 0xc9, 0x31, 0xff, 0x89, 0x21, 0xff, 0x69, 0x19, 0xff, 0x25, 0x9b, 0xff, 0xa2, 0xfc, 0xff, 0xc6, 0x82, 0xff, 0x89, 0x21, 0xff, 0xa8, 0x29, 0xff, 0x29, 0x09, 0xf9, 0xe6, 0x82, 0xee, 0x63, 0xf4, 0xff, 0x04, 0xd4, 0xde, 0xc4, 0xcb, 0xa8, + 0xe4, 0xcb, 0xa3, 0x23, 0xdc, 0xda, 0x24, 0xe4, 0xff, 0x28, 0x4a, 0xf5, 0x49, 0x09, 0xfd, 0xc8, 0x31, 0xff, 0x69, 0x19, 0xff, 0xe6, 0x82, 0xff, 0x62, 0xfc, 0xff, 0xa4, 0xc3, 0xff, 0xc6, 0x7a, 0xff, 0xc6, 0x7a, 0xff, 0xe6, 0x82, 0xff, 0xe6, 0x82, 0xff, 0xe6, 0x82, 0xff, 0xe6, 0x82, 0xff, 0xe6, 0x82, 0xff, 0xc6, 0x92, 0xff, 0x67, 0xb2, 0xff, 0x07, 0xd2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xd9, 0xff, 0x07, 0xd2, 0xff, 0x67, 0xb2, 0xff, 0xc6, 0x8a, 0xff, 0xe6, 0x82, 0xff, 0xe6, 0x82, 0xff, 0xe6, 0x82, 0xff, 0xe6, 0x82, 0xff, 0xe6, 0x82, 0xff, 0xe6, 0x82, 0xff, 0xc6, 0x7a, 0xff, 0xa6, 0x7a, 0xff, 0xa4, 0xc3, 0xff, 0x62, 0xfc, 0xff, 0xc6, 0x82, 0xff, 0x69, 0x19, 0xff, 0xc8, 0x31, 0xff, 0x49, 0x09, 0xfd, 0x08, 0x4a, 0xf5, 0x44, 0xe4, 0xff, 0x23, 0xdc, 0xda, 0xe4, 0xcb, 0xa3, + 0xe4, 0xcb, 0xa0, 0x03, 0xdc, 0xd6, 0x04, 0xdc, 0xff, 0xc6, 0x7a, 0xff, 0x47, 0x5a, 0xff, 0x67, 0x62, 0xff, 0x87, 0x62, 0xff, 0xa4, 0xbb, 0xff, 0x63, 0xf4, 0xff, 0xa4, 0xbb, 0xff, 0x45, 0xa3, 0xff, 0x65, 0xab, 0xff, 0x65, 0xab, 0xff, 0x65, 0xab, 0xff, 0x65, 0xab, 0xff, 0x45, 0xb3, 0xff, 0x86, 0xca, 0xff, 0x07, 0xe2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x07, 0xda, 0xff, 0xa6, 0xca, 0xff, 0x45, 0xb3, 0xff, 0x65, 0xab, 0xff, 0x65, 0xab, 0xff, 0x65, 0xab, 0xff, 0x65, 0xab, 0xff, 0x65, 0xab, 0xff, 0x45, 0xa3, 0xff, 0xa4, 0xbb, 0xff, 0x63, 0xf4, 0xff, 0xa4, 0xbb, 0xff, 0x87, 0x62, 0xff, 0x67, 0x62, 0xff, 0x47, 0x5a, 0xff, 0xc6, 0x7a, 0xff, 0x04, 0xdc, 0xff, 0x03, 0xdc, 0xd6, 0xe4, 0xcb, 0xa0, + 0xe4, 0xcb, 0xa0, 0xe4, 0xcb, 0xd6, 0xe4, 0xcb, 0xff, 0x43, 0xec, 0xff, 0x83, 0xfc, 0xff, 0x63, 0xf4, 0xff, 0x23, 0xe4, 0xff, 0x63, 0xf4, 0xff, 0xe4, 0xd3, 0xff, 0x08, 0x42, 0xff, 0xa9, 0x21, 0xff, 0xe9, 0x39, 0xff, 0xe9, 0x39, 0xff, 0xe9, 0x39, 0xff, 0xe8, 0x81, 0xff, 0xe7, 0xd1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe8, 0xc9, 0xff, 0xe8, 0x71, 0xff, 0xe9, 0x39, 0xff, 0xe9, 0x39, 0xff, 0xe9, 0x39, 0xff, 0xe9, 0x39, 0xff, 0xa9, 0x21, 0xff, 0x08, 0x42, 0xff, 0xe3, 0xd3, 0xff, 0x63, 0xf4, 0xff, 0x23, 0xe4, 0xff, 0x63, 0xf4, 0xff, 0x83, 0xfc, 0xff, 0x43, 0xec, 0xff, 0xe4, 0xcb, 0xff, 0xe4, 0xcb, 0xd6, 0xe4, 0xcb, 0xa0, + 0xe4, 0xcb, 0xa0, 0xe4, 0xcb, 0xd6, 0xe4, 0xd3, 0xff, 0xa4, 0xc3, 0xff, 0x84, 0xb3, 0xff, 0xa4, 0xbb, 0xff, 0x03, 0xdc, 0xff, 0xa4, 0xbb, 0xff, 0x08, 0x42, 0xff, 0xa9, 0x29, 0xff, 0x08, 0x42, 0xff, 0x08, 0x42, 0xff, 0x08, 0x5a, 0xff, 0xe8, 0xb9, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xd9, 0xff, 0xe7, 0xd1, 0xff, 0xe8, 0xb1, 0xff, 0xe8, 0x99, 0xff, 0x08, 0x82, 0xff, 0x08, 0x72, 0xff, 0x08, 0x6a, 0xff, 0x08, 0x62, 0xff, 0x08, 0x6a, 0xff, 0x08, 0x72, 0xff, 0x08, 0x82, 0xff, 0xe8, 0x99, 0xff, 0xe8, 0xb9, 0xff, 0xe7, 0xd9, 0xff, 0xe7, 0xd9, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe8, 0xa9, 0xff, 0x08, 0x52, 0xff, 0x08, 0x42, 0xff, 0x08, 0x42, 0xff, 0x08, 0x42, 0xff, 0xa9, 0x29, 0xff, 0x08, 0x42, 0xff, 0xa4, 0xbb, 0xff, 0x03, 0xdc, 0xff, 0xa4, 0xbb, 0xff, 0x84, 0xb3, 0xff, 0xa4, 0xc3, 0xff, 0xe4, 0xd3, 0xff, 0xe4, 0xcb, 0xd6, 0xe4, 0xcb, 0xa0, + 0xe4, 0xcb, 0xa0, 0x03, 0xdc, 0xd6, 0x23, 0xdc, 0xff, 0x27, 0x4a, 0xff, 0x4a, 0x09, 0xff, 0x89, 0x19, 0xff, 0x65, 0xab, 0xff, 0x06, 0x93, 0xff, 0x6a, 0x11, 0xff, 0x28, 0x42, 0xff, 0x48, 0x52, 0xff, 0x08, 0x72, 0xff, 0xe7, 0xd1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xd1, 0xff, 0x08, 0xa2, 0xff, 0x08, 0x72, 0xff, 0x28, 0x52, 0xff, 0x28, 0x4a, 0xff, 0x28, 0x4a, 0xff, 0x28, 0x4a, 0xff, 0x28, 0x4a, 0xff, 0x28, 0x4a, 0xff, 0x28, 0x4a, 0xff, 0x28, 0x4a, 0xff, 0x28, 0x4a, 0xff, 0x28, 0x4a, 0xff, 0x28, 0x4a, 0xff, 0x28, 0x4a, 0xff, 0x28, 0x52, 0xff, 0x08, 0x7a, 0xff, 0x08, 0xaa, 0xff, 0xe7, 0xd1, 0xff, 0xc7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xc7, 0xe1, 0xff, 0xe7, 0xc9, 0xff, 0x28, 0x6a, 0xff, 0x28, 0x4a, 0xff, 0x28, 0x4a, 0xff, 0x08, 0x42, 0xff, 0x6a, 0x11, 0xff, 0x05, 0x93, 0xff, 0x65, 0xab, 0xff, 0x89, 0x19, 0xff, 0x4a, 0x09, 0xff, 0x27, 0x4a, 0xff, 0x23, 0xdc, 0xff, 0x03, 0xdc, 0xd6, 0xe4, 0xcb, 0xa0, + 0xe4, 0xcb, 0xa0, 0x03, 0xdc, 0xd6, 0x23, 0xdc, 0xff, 0x48, 0x52, 0xff, 0x69, 0x11, 0xff, 0xa9, 0x21, 0xff, 0x65, 0xab, 0xff, 0x45, 0xa3, 0xff, 0xc9, 0x29, 0xff, 0x09, 0x42, 0xff, 0x08, 0x8a, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xc9, 0xff, 0x08, 0x92, 0xff, 0x28, 0x52, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x28, 0x5a, 0xff, 0x08, 0x9a, 0xff, 0xe8, 0xd1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe8, 0xd9, 0xff, 0x08, 0x7a, 0xff, 0x28, 0x4a, 0xff, 0x08, 0x42, 0xff, 0xc9, 0x29, 0xff, 0x45, 0x9b, 0xff, 0x65, 0xab, 0xff, 0xa9, 0x21, 0xff, 0x69, 0x11, 0xff, 0x48, 0x52, 0xff, 0x24, 0xdc, 0xff, 0x03, 0xdc, 0xd6, 0xe4, 0xcb, 0xa0, + 0xc4, 0xcb, 0xa0, 0x03, 0xdc, 0xd6, 0x04, 0xdc, 0xff, 0x67, 0x62, 0xff, 0xa9, 0x29, 0xff, 0xe9, 0x39, 0xff, 0x65, 0xab, 0xff, 0x45, 0xa3, 0xff, 0xc9, 0x29, 0xff, 0xe8, 0x81, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xd1, 0xff, 0x08, 0x9a, 0xff, 0x28, 0x52, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x28, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x42, 0xff, 0x29, 0x42, 0xff, 0x29, 0x42, 0xff, 0x29, 0x42, 0xff, 0x29, 0x42, 0xff, 0x29, 0x42, 0xff, 0x29, 0x42, 0xff, 0x29, 0x42, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x28, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x28, 0x5a, 0xff, 0xe8, 0xa1, 0xff, 0xe7, 0xd9, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x08, 0x7a, 0xff, 0x09, 0x42, 0xff, 0xc9, 0x29, 0xff, 0x45, 0xa3, 0xff, 0x65, 0xab, 0xff, 0xe9, 0x39, 0xff, 0xa9, 0x29, 0xff, 0x67, 0x62, 0xff, 0x04, 0xdc, 0xff, 0x03, 0xdc, 0xd6, 0xc4, 0xcb, 0xa0, + 0xc4, 0xcb, 0xa0, 0x03, 0xdc, 0xd6, 0x04, 0xdc, 0xff, 0x67, 0x5a, 0xff, 0xa9, 0x21, 0xff, 0xe9, 0x31, 0xff, 0x65, 0xab, 0xff, 0x45, 0xa3, 0xff, 0xc9, 0x79, 0xff, 0xc7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe8, 0xb1, 0xff, 0x28, 0x6a, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x28, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x42, 0xff, 0x29, 0x42, 0xff, 0x09, 0x3a, 0xff, 0x29, 0x3a, 0xff, 0x29, 0x42, 0xff, 0x29, 0x42, 0xff, 0x29, 0x42, 0xff, 0x29, 0x42, 0xff, 0x29, 0x42, 0xff, 0x29, 0x42, 0xff, 0x29, 0x3a, 0xff, 0x09, 0x3a, 0xff, 0x29, 0x42, 0xff, 0x29, 0x42, 0xff, 0x29, 0x4a, 0xff, 0x28, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x28, 0x7a, 0xff, 0xe8, 0xc1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xc7, 0xe1, 0xff, 0x08, 0x72, 0xff, 0xc9, 0x29, 0xff, 0x45, 0xa3, 0xff, 0x65, 0xab, 0xff, 0xe9, 0x31, 0xff, 0xa9, 0x21, 0xff, 0x67, 0x5a, 0xff, 0x03, 0xdc, 0xff, 0x03, 0xdc, 0xd6, 0xc4, 0xcb, 0xa0, + 0xc4, 0xcb, 0xa0, 0x03, 0xdc, 0xd6, 0x03, 0xdc, 0xff, 0x67, 0x5a, 0xff, 0xa9, 0x21, 0xff, 0xe9, 0x31, 0xff, 0x65, 0xab, 0xff, 0xc6, 0xb2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x08, 0x72, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x28, 0x4a, 0xff, 0x28, 0x4a, 0xff, 0x29, 0x42, 0xff, 0x09, 0x3a, 0xff, 0x29, 0x42, 0xff, 0x48, 0x4a, 0xff, 0x67, 0x5a, 0xff, 0x66, 0x62, 0xff, 0x86, 0x6a, 0xff, 0x86, 0x72, 0xff, 0x85, 0x72, 0xff, 0x85, 0x72, 0xff, 0x86, 0x72, 0xff, 0x86, 0x6a, 0xff, 0x66, 0x62, 0xff, 0x67, 0x5a, 0xff, 0x48, 0x4a, 0xff, 0x29, 0x42, 0xff, 0x09, 0x3a, 0xff, 0x29, 0x42, 0xff, 0x28, 0x4a, 0xff, 0x28, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x28, 0x5a, 0xff, 0xe8, 0xb1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe8, 0xd9, 0xff, 0xc9, 0x51, 0xff, 0x45, 0xa3, 0xff, 0x65, 0xab, 0xff, 0xe9, 0x31, 0xff, 0xa9, 0x21, 0xff, 0x67, 0x5a, 0xff, 0x03, 0xdc, 0xff, 0x03, 0xdc, 0xd6, 0xc4, 0xcb, 0xa0, + 0xc4, 0xcb, 0xa0, 0x03, 0xdc, 0xd6, 0x03, 0xdc, 0xff, 0x67, 0x5a, 0xff, 0xa9, 0x21, 0xff, 0xe9, 0x31, 0xff, 0x45, 0xb3, 0xff, 0x07, 0xda, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe8, 0xc9, 0xff, 0x28, 0x72, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x42, 0xff, 0x2a, 0x3a, 0xff, 0x29, 0x42, 0xff, 0x67, 0x5a, 0xff, 0x86, 0x72, 0xff, 0xa5, 0x7a, 0xff, 0xa4, 0x82, 0xff, 0xa4, 0x82, 0xff, 0xa4, 0x82, 0xff, 0xa5, 0x82, 0xff, 0xa4, 0x82, 0xff, 0xa4, 0x82, 0xff, 0xa5, 0x82, 0xff, 0xa4, 0x82, 0xff, 0xa4, 0x82, 0xff, 0xa4, 0x82, 0xff, 0xa5, 0x7a, 0xff, 0x86, 0x72, 0xff, 0x67, 0x5a, 0xff, 0x29, 0x42, 0xff, 0x2a, 0x3a, 0xff, 0x29, 0x42, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x52, 0xff, 0x08, 0xaa, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xc8, 0xc1, 0xff, 0x25, 0xa3, 0xff, 0x65, 0xab, 0xff, 0xe9, 0x31, 0xff, 0xa9, 0x21, 0xff, 0x67, 0x5a, 0xff, 0x03, 0xdc, 0xff, 0x03, 0xdc, 0xd6, 0xc4, 0xcb, 0xa0, + 0xc4, 0xcb, 0xa0, 0x03, 0xdc, 0xd6, 0x03, 0xdc, 0xff, 0x67, 0x5a, 0xff, 0xa9, 0x21, 0xff, 0xe9, 0x31, 0xff, 0x47, 0xd2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xd1, 0xff, 0x28, 0x7a, 0xff, 0x29, 0x42, 0xff, 0x29, 0x42, 0xff, 0x47, 0x5a, 0xff, 0xa5, 0x72, 0xff, 0xa4, 0x82, 0xff, 0xa4, 0x82, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa4, 0x82, 0xff, 0xa4, 0x82, 0xff, 0xa5, 0x72, 0xff, 0x47, 0x5a, 0xff, 0x29, 0x42, 0xff, 0x29, 0x42, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x28, 0x52, 0xff, 0xe8, 0xa1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x66, 0xca, 0xff, 0x65, 0xab, 0xff, 0xe9, 0x31, 0xff, 0xa9, 0x21, 0xff, 0x67, 0x5a, 0xff, 0x03, 0xdc, 0xff, 0x03, 0xdc, 0xd6, 0xc4, 0xcb, 0xa0, + 0xc4, 0xcb, 0xa0, 0x03, 0xdc, 0xd6, 0x03, 0xdc, 0xff, 0x67, 0x5a, 0xff, 0xa9, 0x29, 0xff, 0xe8, 0x79, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xd1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe8, 0xd1, 0xff, 0x28, 0x7a, 0xff, 0x86, 0x72, 0xff, 0xa4, 0x82, 0xff, 0xa4, 0x82, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa4, 0x82, 0xff, 0xa4, 0x82, 0xff, 0x86, 0x72, 0xff, 0x48, 0x52, 0xff, 0x2a, 0x42, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x28, 0x52, 0xff, 0xe8, 0xb9, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x05, 0xbb, 0xff, 0xe9, 0x31, 0xff, 0xa9, 0x29, 0xff, 0x67, 0x5a, 0xff, 0x03, 0xdc, 0xff, 0x03, 0xdc, 0xd6, 0xc4, 0xcb, 0xa0, + 0xc4, 0xcb, 0xa0, 0x03, 0xdc, 0xd6, 0x03, 0xdc, 0xff, 0x67, 0x5a, 0xff, 0xa9, 0x31, 0xff, 0xc7, 0xd1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe8, 0xb9, 0xff, 0x28, 0x62, 0xff, 0x08, 0xa2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xd9, 0xff, 0x65, 0x9a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa4, 0x82, 0xff, 0xa5, 0x7a, 0xff, 0x67, 0x5a, 0xff, 0x29, 0x42, 0xff, 0x29, 0x42, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x28, 0x5a, 0xff, 0xe8, 0xd1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x27, 0xda, 0xff, 0xe9, 0x39, 0xff, 0xa9, 0x29, 0xff, 0x67, 0x5a, 0xff, 0x03, 0xdc, 0xff, 0x03, 0xdc, 0xd6, 0xc4, 0xcb, 0xa0, + 0xc4, 0xcb, 0xa0, 0x03, 0xd4, 0xd6, 0x03, 0xd4, 0xff, 0x67, 0x5a, 0xff, 0xc8, 0x91, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe8, 0xd1, 0xff, 0x28, 0x6a, 0xff, 0x29, 0x4a, 0xff, 0x28, 0x52, 0xff, 0xe8, 0xb1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xd9, 0xff, 0x66, 0x92, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa4, 0x82, 0xff, 0x67, 0x62, 0xff, 0x2a, 0x3a, 0xff, 0x29, 0x42, 0xff, 0x28, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x08, 0x72, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe8, 0x89, 0xff, 0xa9, 0x29, 0xff, 0x67, 0x5a, 0xff, 0x03, 0xdc, 0xff, 0x03, 0xdc, 0xd6, 0xc4, 0xcb, 0xa0, + 0xc4, 0xcb, 0xa0, 0x03, 0xd4, 0xd6, 0x03, 0xd4, 0xff, 0x47, 0x6a, 0xff, 0xc7, 0xd1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe8, 0x99, 0xff, 0x28, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x28, 0x4a, 0xff, 0x29, 0x52, 0xff, 0xe8, 0xa9, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xd9, 0xff, 0x66, 0x92, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x72, 0xff, 0xa5, 0x7a, 0xff, 0xc4, 0x82, 0xff, 0x67, 0x5a, 0xff, 0x0a, 0x3a, 0xff, 0x29, 0x42, 0xff, 0x28, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x08, 0xb2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe8, 0xc1, 0xff, 0xa9, 0x31, 0xff, 0x67, 0x5a, 0xff, 0x03, 0xd4, 0xff, 0x03, 0xd4, 0xd6, 0xc4, 0xcb, 0xa0, + 0xc4, 0xcb, 0xa0, 0x03, 0xd4, 0xd6, 0x03, 0xd4, 0xff, 0x27, 0xa2, 0xff, 0xc7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xc8, 0xc1, 0xff, 0x09, 0x4a, 0xff, 0x28, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x2a, 0x3a, 0xff, 0x48, 0x5a, 0xff, 0x26, 0xca, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xd9, 0xff, 0x66, 0x92, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x72, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x82, 0xff, 0xa4, 0x82, 0xff, 0xa4, 0x82, 0xff, 0xa4, 0x82, 0xff, 0xa4, 0x82, 0xff, 0xa5, 0x82, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x72, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x72, 0xff, 0xa5, 0x82, 0xff, 0xc4, 0x82, 0xff, 0x48, 0x52, 0xff, 0x2a, 0x3a, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x28, 0x5a, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xd9, 0xff, 0xc8, 0x71, 0xff, 0x67, 0x5a, 0xff, 0x03, 0xd4, 0xff, 0x03, 0xd4, 0xd6, 0xc4, 0xcb, 0xa0, + 0xc4, 0xc3, 0xa0, 0xe3, 0xd3, 0xd6, 0xe4, 0xd3, 0xff, 0xe7, 0xd1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe9, 0x81, 0xff, 0x09, 0x42, 0xff, 0x28, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x42, 0xff, 0x29, 0x4a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x8a, 0xff, 0x07, 0xc2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xd9, 0xff, 0x66, 0x92, 0xff, 0xa5, 0x7a, 0xff, 0xa4, 0x82, 0xff, 0xa5, 0x7a, 0xff, 0x86, 0x72, 0xff, 0x86, 0x6a, 0xff, 0x67, 0x62, 0xff, 0x67, 0x62, 0xff, 0x66, 0x6a, 0xff, 0x86, 0x72, 0xff, 0xa5, 0x7a, 0xff, 0xa4, 0x82, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x72, 0xff, 0xc4, 0x82, 0xff, 0xa5, 0x7a, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x42, 0xff, 0x29, 0x4a, 0xff, 0x28, 0x4a, 0xff, 0xe8, 0xa1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xc8, 0xb1, 0xff, 0x67, 0x5a, 0xff, 0x03, 0xd4, 0xff, 0xe3, 0xd3, 0xd6, 0xc4, 0xc3, 0xa0, + 0xc4, 0xc3, 0xa0, 0xe3, 0xd3, 0xd6, 0x45, 0xdb, 0xff, 0xe7, 0xd9, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x07, 0xda, 0xff, 0xc9, 0x31, 0xff, 0x09, 0x42, 0xff, 0x28, 0x4a, 0xff, 0x29, 0x42, 0xff, 0x29, 0x42, 0xff, 0x87, 0x6a, 0xff, 0xc4, 0x82, 0xff, 0x85, 0x72, 0xff, 0x85, 0x7a, 0xff, 0x07, 0xc2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xd9, 0xff, 0x66, 0x9a, 0xff, 0x67, 0x62, 0xff, 0x49, 0x52, 0xff, 0x29, 0x42, 0xff, 0x09, 0x3a, 0xff, 0x09, 0x3a, 0xff, 0x09, 0x3a, 0xff, 0x29, 0x42, 0xff, 0x29, 0x42, 0xff, 0x48, 0x4a, 0xff, 0x67, 0x62, 0xff, 0xa5, 0x7a, 0xff, 0xa4, 0x82, 0xff, 0x85, 0x7a, 0xff, 0x85, 0x72, 0xff, 0x85, 0x72, 0xff, 0x85, 0x72, 0xff, 0x85, 0x72, 0xff, 0x85, 0x72, 0xff, 0x85, 0x72, 0xff, 0xa6, 0x7a, 0xff, 0xc4, 0x82, 0xff, 0x86, 0x6a, 0xff, 0x29, 0x42, 0xff, 0x29, 0x42, 0xff, 0x28, 0x4a, 0xff, 0x09, 0x5a, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xc8, 0xd1, 0xff, 0x47, 0x7a, 0xff, 0xe3, 0xd3, 0xff, 0xe3, 0xd3, 0xd6, 0xc4, 0xc3, 0xa0, + 0xc4, 0xc3, 0xa0, 0xe3, 0xd3, 0xd7, 0xa6, 0xe2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x67, 0xca, 0xff, 0xc9, 0x29, 0xff, 0x09, 0x42, 0xff, 0x28, 0x4a, 0xff, 0x29, 0x42, 0xff, 0x69, 0x52, 0xff, 0x42, 0x72, 0xff, 0x80, 0x61, 0xff, 0x80, 0x59, 0xff, 0xa1, 0x61, 0xff, 0xa1, 0x61, 0xff, 0xc5, 0xb9, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xd1, 0xff, 0x29, 0x72, 0xff, 0x09, 0x42, 0xff, 0x25, 0x21, 0xff, 0x04, 0x21, 0xff, 0x25, 0x29, 0xff, 0x04, 0x21, 0xff, 0xa7, 0x31, 0xff, 0x4a, 0x4a, 0xff, 0x2a, 0x42, 0xff, 0x09, 0x3a, 0xff, 0x49, 0x52, 0xff, 0x24, 0x62, 0xff, 0xa0, 0x61, 0xff, 0xa0, 0x61, 0xff, 0xa0, 0x61, 0xff, 0xa0, 0x61, 0xff, 0xa0, 0x61, 0xff, 0xa1, 0x61, 0xff, 0x80, 0x59, 0xff, 0xa0, 0x59, 0xff, 0x64, 0x72, 0xff, 0xc5, 0x82, 0xff, 0x48, 0x52, 0xff, 0x29, 0x42, 0xff, 0x28, 0x4a, 0xff, 0x09, 0x42, 0xff, 0xc8, 0xb1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x27, 0xa2, 0xff, 0xe4, 0xd3, 0xff, 0xe3, 0xd3, 0xd6, 0xc4, 0xc3, 0xa0, + 0xc4, 0xc3, 0xa0, 0xa4, 0xdb, 0xdb, 0x47, 0xe2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe6, 0xb2, 0xff, 0xc9, 0x29, 0xff, 0x09, 0x42, 0xff, 0x49, 0x4a, 0xff, 0x29, 0x42, 0xff, 0xc3, 0x51, 0xff, 0xe1, 0x69, 0xff, 0xab, 0x93, 0xff, 0xaf, 0xac, 0xff, 0xd0, 0xb4, 0xff, 0xd0, 0xb4, 0xff, 0xb0, 0xb4, 0xff, 0x89, 0xd2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xd1, 0xff, 0xc7, 0x69, 0xff, 0xcf, 0x7b, 0xff, 0xf3, 0x9c, 0xff, 0xb2, 0x94, 0xff, 0x92, 0x94, 0xff, 0x8a, 0x52, 0xff, 0xc7, 0x39, 0xff, 0x49, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0xe9, 0x39, 0xff, 0xab, 0x52, 0xff, 0xb0, 0xac, 0xff, 0xf0, 0xb4, 0xff, 0xaf, 0xac, 0xff, 0xaf, 0xac, 0xff, 0xd0, 0xac, 0xff, 0xd0, 0xb4, 0xff, 0x8f, 0xac, 0xff, 0x48, 0x8b, 0xff, 0x80, 0x59, 0xff, 0x42, 0x72, 0xff, 0x87, 0x6a, 0xff, 0x29, 0x42, 0xff, 0x28, 0x4a, 0xff, 0x09, 0x42, 0xff, 0xc9, 0x71, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x07, 0xba, 0xff, 0xa4, 0xdb, 0xff, 0xe3, 0xd3, 0xd6, 0xc4, 0xc3, 0xa0, + 0xc4, 0xc3, 0xa0, 0x25, 0xdb, 0xe4, 0x27, 0xe2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x07, 0xe2, 0xff, 0x45, 0xa3, 0xff, 0xc9, 0x29, 0xff, 0x09, 0x42, 0xff, 0x29, 0x4a, 0xff, 0xc6, 0x41, 0xff, 0x64, 0x72, 0xff, 0x36, 0xd6, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x8e, 0xeb, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe8, 0xd1, 0xff, 0xf8, 0xf5, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x96, 0xb5, 0xff, 0x25, 0x29, 0xff, 0xe8, 0x41, 0xff, 0x49, 0x4a, 0xff, 0x86, 0x31, 0xff, 0x52, 0x8c, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x11, 0xb5, 0xff, 0xc1, 0x69, 0xff, 0x44, 0x72, 0xff, 0x48, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x42, 0xff, 0xc9, 0x41, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x07, 0xca, 0xff, 0x45, 0xdb, 0xff, 0xe3, 0xd3, 0xd6, 0xc4, 0xc3, 0xa0, + 0xa4, 0xc3, 0xa0, 0xc6, 0xda, 0xed, 0x07, 0xe2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x47, 0xd2, 0xff, 0x45, 0xa3, 0xff, 0xc9, 0x29, 0xff, 0x29, 0x42, 0xff, 0x09, 0x42, 0xff, 0xc5, 0x51, 0xff, 0x93, 0xcd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x6e, 0xe3, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x8a, 0xea, 0xff, 0x39, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3c, 0xe7, 0xff, 0x28, 0x42, 0xff, 0x86, 0x31, 0xff, 0x49, 0x4a, 0xff, 0x86, 0x31, 0xff, 0x72, 0x94, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x9d, 0xf7, 0xff, 0x7d, 0xf7, 0xff, 0xbe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x6e, 0xa4, 0xff, 0xe1, 0x69, 0xff, 0x47, 0x5a, 0xff, 0x29, 0x42, 0xff, 0x29, 0x42, 0xff, 0xc9, 0x31, 0xff, 0x27, 0xda, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xd1, 0xff, 0xc6, 0xda, 0xff, 0xe3, 0xd3, 0xd6, 0xa4, 0xc3, 0xa0, + 0xc4, 0xc3, 0xa0, 0x66, 0xe2, 0xf2, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xa6, 0xca, 0xff, 0x45, 0xa3, 0xff, 0xc9, 0x29, 0xff, 0x29, 0x42, 0xff, 0xe7, 0x41, 0xff, 0xa7, 0x6a, 0xff, 0x3b, 0xf7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x32, 0xbd, 0xff, 0x07, 0x83, 0xff, 0x28, 0x8b, 0xff, 0x0c, 0x9c, 0xff, 0x5c, 0xf7, 0xff, 0xff, 0xff, 0xff, 0xdf, 0xff, 0xff, 0x8a, 0xca, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x8a, 0xe2, 0xff, 0xd7, 0xed, 0xff, 0xff, 0xff, 0xff, 0xdf, 0xff, 0xff, 0x6d, 0x6b, 0xff, 0x24, 0x21, 0xff, 0x29, 0x4a, 0xff, 0xa6, 0x31, 0xff, 0x51, 0x8c, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x37, 0xd6, 0xff, 0x65, 0x72, 0xff, 0xc6, 0x7a, 0xff, 0xc6, 0x7a, 0xff, 0xb5, 0xc5, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf5, 0xcd, 0xff, 0x22, 0x72, 0xff, 0x25, 0x62, 0xff, 0x29, 0x4a, 0xff, 0x09, 0x42, 0xff, 0xc9, 0x31, 0xff, 0x67, 0xca, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xd9, 0xff, 0x86, 0xe2, 0xff, 0xe3, 0xd3, 0xd6, 0xc4, 0xc3, 0xa0, + 0xc4, 0xc3, 0xa0, 0x47, 0xe2, 0xf6, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xc6, 0xc2, 0xff, 0x45, 0xa3, 0xff, 0xc9, 0x29, 0xff, 0x29, 0x42, 0xff, 0xc6, 0x41, 0xff, 0x08, 0x83, 0xff, 0x7c, 0xf7, 0xff, 0xff, 0xff, 0xff, 0x7d, 0xf7, 0xff, 0x45, 0x72, 0xff, 0x20, 0x51, 0xff, 0xa0, 0x61, 0xff, 0x41, 0x51, 0xff, 0xf5, 0xcd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xb2, 0x9c, 0xff, 0xc7, 0xa9, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x29, 0xda, 0xff, 0x18, 0xf6, 0xff, 0xff, 0xff, 0xff, 0xd3, 0x9c, 0xff, 0x04, 0x21, 0xff, 0x08, 0x42, 0xff, 0xa6, 0x39, 0xff, 0x51, 0x8c, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x54, 0xad, 0xff, 0xa0, 0x38, 0xff, 0x80, 0x61, 0xff, 0xc0, 0x48, 0xff, 0x49, 0x8b, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x57, 0xd6, 0xff, 0x43, 0x72, 0xff, 0x44, 0x6a, 0xff, 0x48, 0x4a, 0xff, 0x09, 0x3a, 0xff, 0xc9, 0x31, 0xff, 0xa6, 0xc2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x46, 0xe2, 0xff, 0xe3, 0xd3, 0xd6, 0xc4, 0xc3, 0xa0, + 0xa4, 0xc3, 0xa0, 0x27, 0xe2, 0xf9, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x05, 0xbb, 0xff, 0x45, 0xa3, 0xff, 0xc9, 0x29, 0xff, 0x09, 0x3a, 0xff, 0xe6, 0x49, 0xff, 0x28, 0x83, 0xff, 0x5c, 0xf7, 0xff, 0xff, 0xff, 0xff, 0x5c, 0xf7, 0xff, 0x65, 0x72, 0xff, 0xe2, 0x61, 0xff, 0x84, 0x72, 0xff, 0xc1, 0x61, 0xff, 0x32, 0xbd, 0xff, 0xff, 0xff, 0xff, 0xbf, 0xff, 0xff, 0x30, 0x84, 0xff, 0x86, 0x39, 0xff, 0xa7, 0xa9, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x8a, 0xe2, 0xff, 0x39, 0xfe, 0xff, 0x59, 0xce, 0xff, 0x86, 0x31, 0xff, 0xa7, 0x39, 0xff, 0xa6, 0x39, 0xff, 0x71, 0x8c, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x35, 0xa5, 0xff, 0xa1, 0x28, 0xff, 0xa0, 0x61, 0xff, 0xe0, 0x48, 0xff, 0x8a, 0x93, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x37, 0xd6, 0xff, 0x43, 0x72, 0xff, 0x44, 0x6a, 0xff, 0x48, 0x52, 0xff, 0x09, 0x3a, 0xff, 0xc9, 0x29, 0xff, 0xc6, 0xba, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x27, 0xe2, 0xff, 0xe3, 0xd3, 0xd6, 0xa4, 0xc3, 0xa0, + 0xa4, 0xc3, 0xa0, 0x07, 0xe2, 0xfb, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x25, 0xbb, 0xff, 0x45, 0xa3, 0xff, 0xc9, 0x29, 0xff, 0x09, 0x3a, 0xff, 0xe6, 0x49, 0xff, 0x27, 0x8b, 0xff, 0x5c, 0xf7, 0xff, 0xff, 0xff, 0xff, 0x7d, 0xf7, 0xff, 0xa5, 0x7a, 0xff, 0xe2, 0x61, 0xff, 0xc5, 0x7a, 0xff, 0xa4, 0x7a, 0xff, 0x87, 0x62, 0xff, 0xab, 0x52, 0xff, 0xaa, 0x52, 0xff, 0x49, 0x4a, 0xff, 0xe8, 0x41, 0xff, 0x66, 0x39, 0xff, 0xcb, 0xca, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xaa, 0xea, 0xff, 0xb6, 0xed, 0xff, 0x49, 0x4a, 0xff, 0x45, 0x29, 0xff, 0xa6, 0x31, 0xff, 0x71, 0x8c, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7a, 0xce, 0xff, 0xad, 0x83, 0xff, 0x2c, 0xa4, 0xff, 0x2d, 0xa4, 0xff, 0x78, 0xde, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xd0, 0xb4, 0xff, 0x02, 0x6a, 0xff, 0x84, 0x72, 0xff, 0x48, 0x52, 0xff, 0x09, 0x3a, 0xff, 0xc9, 0x29, 0xff, 0xe6, 0xba, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x07, 0xe2, 0xff, 0xe3, 0xd3, 0xd6, 0xa4, 0xc3, 0xa0, + 0xa4, 0xc3, 0xa0, 0x07, 0xe2, 0xfc, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x25, 0xbb, 0xff, 0x45, 0xa3, 0xff, 0xc9, 0x29, 0xff, 0x0a, 0x3a, 0xff, 0xe6, 0x49, 0xff, 0x27, 0x8b, 0xff, 0x5c, 0xf7, 0xff, 0xff, 0xff, 0xff, 0x7d, 0xf7, 0xff, 0xa5, 0x7a, 0xff, 0xe2, 0x61, 0xff, 0xc5, 0x7a, 0xff, 0xc5, 0x82, 0xff, 0x27, 0x52, 0xff, 0x87, 0x29, 0xff, 0xa6, 0x39, 0xff, 0x28, 0x4a, 0xff, 0xe8, 0x41, 0xff, 0xa7, 0x39, 0xff, 0x96, 0xc5, 0xff, 0xcf, 0xeb, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xaa, 0xea, 0xff, 0x0c, 0x93, 0xff, 0x24, 0x21, 0xff, 0x86, 0x31, 0xff, 0x71, 0x8c, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x73, 0xbd, 0xff, 0x60, 0x59, 0xff, 0x43, 0x72, 0xff, 0xc5, 0x82, 0xff, 0x47, 0x5a, 0xff, 0x09, 0x3a, 0xff, 0xc9, 0x29, 0xff, 0xe6, 0xb2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x07, 0xe2, 0xff, 0xe3, 0xd3, 0xd6, 0xa4, 0xc3, 0xa0, + 0xa4, 0xc3, 0xa0, 0x07, 0xe2, 0xfb, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x25, 0xbb, 0xff, 0x45, 0xa3, 0xff, 0xc9, 0x29, 0xff, 0x0a, 0x3a, 0xff, 0xe6, 0x49, 0xff, 0x27, 0x8b, 0xff, 0x5c, 0xf7, 0xff, 0xff, 0xff, 0xff, 0x7d, 0xf7, 0xff, 0xa5, 0x7a, 0xff, 0xe2, 0x61, 0xff, 0xc5, 0x7a, 0xff, 0xa5, 0x82, 0xff, 0x27, 0x52, 0xff, 0xa8, 0x31, 0xff, 0xc7, 0x39, 0xff, 0x28, 0x4a, 0xff, 0xc7, 0x39, 0xff, 0xaa, 0x5a, 0xff, 0x5d, 0xef, 0xff, 0x9e, 0xff, 0xff, 0x6e, 0xe3, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x49, 0xda, 0xff, 0x66, 0x61, 0xff, 0x45, 0x29, 0xff, 0x71, 0x8c, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xdf, 0xff, 0xff, 0xdf, 0xff, 0xff, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xb9, 0xde, 0xff, 0x08, 0x83, 0xff, 0x22, 0x6a, 0xff, 0xa5, 0x7a, 0xff, 0x48, 0x5a, 0xff, 0x09, 0x3a, 0xff, 0xc9, 0x29, 0xff, 0xe6, 0xba, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x07, 0xe2, 0xff, 0xe3, 0xd3, 0xd6, 0xa4, 0xc3, 0xa0, + 0xa4, 0xc3, 0xa0, 0x27, 0xe2, 0xf9, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x06, 0xbb, 0xff, 0x45, 0xa3, 0xff, 0xc9, 0x29, 0xff, 0x09, 0x3a, 0xff, 0xe6, 0x49, 0xff, 0x27, 0x8b, 0xff, 0x5c, 0xf7, 0xff, 0xff, 0xff, 0xff, 0x7d, 0xf7, 0xff, 0xa5, 0x7a, 0xff, 0xe2, 0x61, 0xff, 0xc6, 0x7a, 0xff, 0xa5, 0x82, 0xff, 0x06, 0x52, 0xff, 0xe8, 0x39, 0xff, 0xc7, 0x39, 0xff, 0xe7, 0x41, 0xff, 0x86, 0x31, 0xff, 0xef, 0x7b, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x35, 0xbd, 0xff, 0x86, 0xa9, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xc7, 0xd1, 0xff, 0x25, 0x59, 0xff, 0x71, 0x8c, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0xbd, 0xff, 0x27, 0x52, 0xff, 0xe6, 0x82, 0xff, 0xa5, 0x7a, 0xff, 0xb0, 0xac, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x98, 0xde, 0xff, 0x64, 0x72, 0xff, 0x43, 0x72, 0xff, 0x68, 0x5a, 0xff, 0x09, 0x3a, 0xff, 0xc9, 0x31, 0xff, 0xa6, 0xba, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x27, 0xe2, 0xff, 0xe3, 0xd3, 0xd6, 0xa4, 0xc3, 0xa0, + 0xa4, 0xc3, 0xa0, 0x46, 0xe2, 0xf6, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xc6, 0xc2, 0xff, 0x45, 0xa3, 0xff, 0xc9, 0x29, 0xff, 0x09, 0x3a, 0xff, 0xe6, 0x49, 0xff, 0x28, 0x8b, 0xff, 0x5c, 0xf7, 0xff, 0xff, 0xff, 0xff, 0x5c, 0xf7, 0xff, 0x85, 0x72, 0xff, 0x02, 0x6a, 0xff, 0xa5, 0x7a, 0xff, 0x02, 0x6a, 0xff, 0xd0, 0xac, 0xff, 0x3e, 0xe7, 0xff, 0xfc, 0xe6, 0xff, 0xaf, 0x7b, 0xff, 0xe4, 0x20, 0xff, 0xf3, 0x9c, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3d, 0xef, 0xff, 0xf8, 0xcd, 0xff, 0x4d, 0xdb, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xc7, 0xd1, 0xff, 0xae, 0xa3, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x35, 0x9d, 0xff, 0x41, 0x20, 0xff, 0x80, 0x61, 0xff, 0xe0, 0x50, 0xff, 0x05, 0x6a, 0xff, 0x7c, 0xf7, 0xff, 0xff, 0xff, 0xff, 0x3c, 0xef, 0xff, 0xe6, 0x82, 0xff, 0x23, 0x6a, 0xff, 0x48, 0x52, 0xff, 0x09, 0x3a, 0xff, 0xc9, 0x31, 0xff, 0x86, 0xc2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x46, 0xe2, 0xff, 0xe3, 0xd3, 0xd6, 0xa4, 0xc3, 0xa0, + 0xa4, 0xc3, 0xa0, 0x86, 0xe2, 0xf1, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x86, 0xca, 0xff, 0x45, 0xa3, 0xff, 0xc9, 0x29, 0xff, 0x29, 0x3a, 0xff, 0xc6, 0x41, 0xff, 0x28, 0x83, 0xff, 0x7d, 0xff, 0xff, 0xff, 0xff, 0xff, 0x5c, 0xf7, 0xff, 0xe4, 0x61, 0xff, 0x20, 0x51, 0xff, 0xc1, 0x61, 0xff, 0xe1, 0x48, 0xff, 0xd4, 0xcd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xb3, 0x9c, 0xff, 0x24, 0x29, 0xff, 0x18, 0xc6, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x9e, 0xff, 0xff, 0xcf, 0xeb, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x28, 0xda, 0xff, 0x59, 0xfe, 0xff, 0xff, 0xff, 0xff, 0x55, 0xad, 0xff, 0xe1, 0x38, 0xff, 0xe1, 0x69, 0xff, 0x40, 0x59, 0xff, 0xe4, 0x69, 0xff, 0x3b, 0xef, 0xff, 0xff, 0xff, 0xff, 0x3c, 0xef, 0xff, 0xe6, 0x82, 0xff, 0x23, 0x6a, 0xff, 0x48, 0x52, 0xff, 0x09, 0x3a, 0xff, 0xc9, 0x31, 0xff, 0x67, 0xca, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xd9, 0xff, 0x86, 0xda, 0xff, 0xe3, 0xd3, 0xd6, 0xa4, 0xc3, 0xa0, + 0xa4, 0xc3, 0xa0, 0xc5, 0xda, 0xeb, 0x07, 0xe2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x47, 0xd2, 0xff, 0x45, 0xa3, 0xff, 0xc9, 0x29, 0xff, 0x29, 0x42, 0xff, 0xe7, 0x41, 0xff, 0xc7, 0x72, 0xff, 0x5c, 0xf7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x4d, 0xa4, 0xff, 0xc1, 0x61, 0xff, 0x03, 0x6a, 0xff, 0xc7, 0x7a, 0xff, 0xfa, 0xe6, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xef, 0x7b, 0xff, 0x08, 0x42, 0xff, 0x7d, 0xef, 0xff, 0xff, 0xff, 0xff, 0xbf, 0xff, 0xff, 0x55, 0xad, 0xff, 0xf4, 0xa4, 0xff, 0x55, 0xad, 0xff, 0xb2, 0xa4, 0xff, 0x2d, 0xdb, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x8a, 0xea, 0xff, 0x79, 0xfe, 0xff, 0xb5, 0xc5, 0xff, 0x43, 0x51, 0xff, 0xc2, 0x61, 0xff, 0x81, 0x59, 0xff, 0xcb, 0x93, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfa, 0xe6, 0xff, 0xa5, 0x7a, 0xff, 0x24, 0x62, 0xff, 0x49, 0x4a, 0xff, 0x09, 0x42, 0xff, 0xc9, 0x31, 0xff, 0x07, 0xda, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xd1, 0xff, 0xe6, 0xda, 0xff, 0xe3, 0xd3, 0xd6, 0xa4, 0xc3, 0xa0, + 0xa4, 0xc3, 0xa0, 0x25, 0xdb, 0xe3, 0x27, 0xe2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x07, 0xe2, 0xff, 0x25, 0xa3, 0xff, 0xc9, 0x29, 0xff, 0x29, 0x42, 0xff, 0x08, 0x42, 0xff, 0xe5, 0x51, 0xff, 0xf5, 0xd5, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3c, 0xef, 0xff, 0x1b, 0xef, 0xff, 0xbe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xdf, 0xff, 0xff, 0x28, 0x42, 0xff, 0x0c, 0x63, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x18, 0xc6, 0xff, 0x61, 0x08, 0xff, 0xa2, 0x10, 0xff, 0x65, 0x29, 0xff, 0x00, 0x00, 0xff, 0xcb, 0x62, 0xff, 0xaf, 0xeb, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x8a, 0xea, 0xff, 0x17, 0xf6, 0xff, 0xd9, 0xe6, 0xff, 0xb9, 0xe6, 0xff, 0xda, 0xe6, 0xff, 0xbe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xb5, 0xcd, 0xff, 0x22, 0x72, 0xff, 0x25, 0x5a, 0xff, 0x29, 0x42, 0xff, 0x09, 0x42, 0xff, 0xc9, 0x49, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x07, 0xca, 0xff, 0x45, 0xdb, 0xff, 0xe3, 0xd3, 0xd6, 0xa4, 0xc3, 0xa0, + 0xa4, 0xc3, 0xa0, 0x84, 0xd3, 0xda, 0x46, 0xe2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xc6, 0xba, 0xff, 0xc9, 0x29, 0xff, 0x29, 0x42, 0xff, 0x29, 0x42, 0xff, 0xa5, 0x41, 0xff, 0x07, 0x83, 0xff, 0x3b, 0xef, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x70, 0x94, 0xff, 0xa3, 0x10, 0xff, 0x96, 0xb5, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xd3, 0x9c, 0xff, 0xa2, 0x18, 0xff, 0xc7, 0x39, 0xff, 0x28, 0x42, 0xff, 0x24, 0x21, 0xff, 0xc7, 0x39, 0xff, 0x1c, 0xe7, 0xff, 0xaf, 0xeb, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x8a, 0xea, 0xff, 0x59, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1b, 0xef, 0xff, 0xe6, 0x82, 0xff, 0x02, 0x6a, 0xff, 0x48, 0x52, 0xff, 0x29, 0x42, 0xff, 0x29, 0x42, 0xff, 0xc9, 0x79, 0xff, 0xc7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x07, 0xb2, 0xff, 0xa4, 0xd3, 0xff, 0xe3, 0xcb, 0xd6, 0xa4, 0xc3, 0xa0, + 0xa4, 0xc3, 0xa0, 0xc3, 0xd3, 0xd7, 0xa6, 0xda, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x46, 0xca, 0xff, 0xc9, 0x29, 0xff, 0x09, 0x42, 0xff, 0x49, 0x4a, 0xff, 0x29, 0x42, 0xff, 0xc2, 0x59, 0xff, 0xe6, 0x82, 0xff, 0x11, 0xb5, 0xff, 0xd5, 0xcd, 0xff, 0xb5, 0xcd, 0xff, 0xb4, 0xcd, 0xff, 0xd5, 0xcd, 0xff, 0xb4, 0xc5, 0xff, 0xcb, 0x9b, 0xff, 0x80, 0x59, 0xff, 0xc6, 0x49, 0xff, 0xd4, 0x94, 0xff, 0xf8, 0xbd, 0xff, 0x96, 0xb5, 0xff, 0xcb, 0x5a, 0xff, 0xa7, 0x39, 0xff, 0x69, 0x52, 0xff, 0x69, 0x4a, 0xff, 0x28, 0x42, 0xff, 0xa7, 0x39, 0xff, 0x51, 0x8c, 0xff, 0xd7, 0xc5, 0xff, 0x0c, 0xdb, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x49, 0xe2, 0xff, 0x91, 0xcc, 0xff, 0xd5, 0xcd, 0xff, 0xd5, 0xcd, 0xff, 0xf1, 0xb4, 0xff, 0x85, 0x72, 0xff, 0xc1, 0x69, 0xff, 0x86, 0x6a, 0xff, 0x29, 0x42, 0xff, 0x29, 0x4a, 0xff, 0x09, 0x42, 0xff, 0xe8, 0xb9, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x27, 0x9a, 0xff, 0xc3, 0xd3, 0xff, 0xe3, 0xcb, 0xd6, 0xa4, 0xc3, 0xa0, + 0xa4, 0xc3, 0xa0, 0xe3, 0xcb, 0xd6, 0x44, 0xd3, 0xff, 0xe7, 0xd9, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x07, 0xe2, 0xff, 0xc9, 0x39, 0xff, 0x09, 0x42, 0xff, 0x28, 0x4a, 0xff, 0x29, 0x42, 0xff, 0x47, 0x5a, 0xff, 0x22, 0x72, 0xff, 0xe2, 0x69, 0xff, 0x02, 0x6a, 0xff, 0x02, 0x6a, 0xff, 0x02, 0x6a, 0xff, 0x02, 0x6a, 0xff, 0x02, 0x6a, 0xff, 0xe2, 0x61, 0xff, 0x64, 0x7a, 0xff, 0xc6, 0x82, 0xff, 0x06, 0x52, 0xff, 0x86, 0x29, 0xff, 0x66, 0x29, 0xff, 0xe8, 0x39, 0xff, 0x49, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x49, 0x4a, 0xff, 0x49, 0x4a, 0xff, 0xa7, 0x31, 0xff, 0x86, 0x31, 0xff, 0x87, 0x31, 0xff, 0xe8, 0xb1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xd9, 0xff, 0x04, 0x8a, 0xff, 0x02, 0x6a, 0xff, 0xe2, 0x61, 0xff, 0x02, 0x6a, 0xff, 0xa4, 0x82, 0xff, 0x68, 0x5a, 0xff, 0x29, 0x42, 0xff, 0x28, 0x4a, 0xff, 0x09, 0x62, 0xff, 0xc7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xc8, 0xc9, 0xff, 0x47, 0x7a, 0xff, 0xc3, 0xcb, 0xff, 0xe3, 0xcb, 0xd6, 0xa4, 0xc3, 0xa0, + 0xa4, 0xc3, 0xa0, 0xe3, 0xcb, 0xd6, 0xc3, 0xcb, 0xff, 0xe7, 0xc9, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xc8, 0x91, 0xff, 0x09, 0x42, 0xff, 0x28, 0x4a, 0xff, 0x29, 0x42, 0xff, 0x29, 0x42, 0xff, 0xa5, 0x72, 0xff, 0x84, 0x7a, 0xff, 0x64, 0x72, 0xff, 0x64, 0x72, 0xff, 0x64, 0x72, 0xff, 0x64, 0x72, 0xff, 0x64, 0x72, 0xff, 0x85, 0x72, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0x84, 0x7a, 0xff, 0x25, 0x62, 0xff, 0x07, 0x4a, 0xff, 0x29, 0x42, 0xff, 0x29, 0x42, 0xff, 0x29, 0x42, 0xff, 0x29, 0x42, 0xff, 0x29, 0x42, 0xff, 0x29, 0x42, 0xff, 0x09, 0x3a, 0xff, 0xe8, 0x39, 0xff, 0x07, 0x4a, 0xff, 0x66, 0x6a, 0xff, 0x06, 0xc2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xd9, 0xff, 0x45, 0x92, 0xff, 0x65, 0x72, 0xff, 0xc4, 0x82, 0xff, 0x86, 0x72, 0xff, 0x29, 0x42, 0xff, 0x29, 0x42, 0xff, 0x28, 0x4a, 0xff, 0x08, 0xaa, 0xff, 0xc7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xc8, 0xa9, 0xff, 0x47, 0x5a, 0xff, 0xc3, 0xcb, 0xff, 0xe3, 0xcb, 0xd6, 0xa4, 0xc3, 0xa0, + 0xa4, 0xbb, 0xa0, 0xe3, 0xcb, 0xd6, 0xc3, 0xcb, 0xff, 0x27, 0x9a, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe8, 0xd1, 0xff, 0x09, 0x52, 0xff, 0x28, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x42, 0xff, 0x48, 0x52, 0xff, 0xc5, 0x82, 0xff, 0xa5, 0x7a, 0xff, 0x85, 0x72, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x82, 0xff, 0xa5, 0x7a, 0xff, 0x86, 0x72, 0xff, 0x67, 0x62, 0xff, 0x48, 0x52, 0xff, 0x48, 0x52, 0xff, 0x48, 0x52, 0xff, 0x48, 0x52, 0xff, 0x67, 0x62, 0xff, 0x86, 0x72, 0xff, 0xa5, 0x7a, 0xff, 0xa4, 0x82, 0xff, 0x85, 0x7a, 0xff, 0x07, 0xc2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xd9, 0xff, 0x66, 0x9a, 0xff, 0xc4, 0x82, 0xff, 0x48, 0x52, 0xff, 0x29, 0x42, 0xff, 0x29, 0x4a, 0xff, 0x28, 0x62, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xd9, 0xff, 0xc9, 0x69, 0xff, 0x47, 0x5a, 0xff, 0xc3, 0xcb, 0xff, 0xe3, 0xcb, 0xd6, 0xa4, 0xbb, 0xa0, + 0xa3, 0xbb, 0xa0, 0xc3, 0xcb, 0xd6, 0xc3, 0xcb, 0xff, 0x47, 0x6a, 0xff, 0xe7, 0xd1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe8, 0xa1, 0xff, 0x28, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x42, 0xff, 0x0a, 0x3a, 0xff, 0x67, 0x62, 0xff, 0xc4, 0x8a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x72, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa4, 0x82, 0xff, 0xa4, 0x82, 0xff, 0xa5, 0x82, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x82, 0xff, 0xa4, 0x82, 0xff, 0xa4, 0x82, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0x85, 0x7a, 0xff, 0x07, 0xc2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x07, 0xda, 0xff, 0x47, 0x8a, 0xff, 0x0a, 0x3a, 0xff, 0x29, 0x42, 0xff, 0x29, 0x4a, 0xff, 0xe8, 0xb9, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe8, 0xc1, 0xff, 0xa9, 0x29, 0xff, 0x47, 0x5a, 0xff, 0xc3, 0xcb, 0xff, 0xc3, 0xcb, 0xd6, 0xa4, 0xbb, 0xa0, + 0xa4, 0xbb, 0xa0, 0xc3, 0xcb, 0xd6, 0xc3, 0xcb, 0xff, 0x47, 0x5a, 0xff, 0xc8, 0x89, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xd9, 0xff, 0x28, 0x72, 0xff, 0x29, 0x4a, 0xff, 0x28, 0x4a, 0xff, 0x29, 0x42, 0xff, 0x2a, 0x3a, 0xff, 0x86, 0x72, 0xff, 0xc4, 0x8a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x72, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x72, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x72, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0x85, 0x7a, 0xff, 0x27, 0xc2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe8, 0xd1, 0xff, 0x09, 0x6a, 0xff, 0x28, 0x4a, 0xff, 0x08, 0x82, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe8, 0x79, 0xff, 0xa9, 0x29, 0xff, 0x47, 0x5a, 0xff, 0xc3, 0xcb, 0xff, 0xc3, 0xcb, 0xd6, 0xa3, 0xbb, 0xa0, + 0xa3, 0xbb, 0xa0, 0xc3, 0xcb, 0xd6, 0xc3, 0xcb, 0xff, 0x47, 0x5a, 0xff, 0xa9, 0x31, 0xff, 0xc7, 0xc9, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe8, 0xc9, 0xff, 0x28, 0x5a, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x42, 0xff, 0x29, 0x42, 0xff, 0x86, 0x72, 0xff, 0xc4, 0x8a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0x85, 0x82, 0xff, 0x07, 0xc2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe8, 0xc9, 0xff, 0x08, 0x8a, 0xff, 0xe7, 0xd1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x27, 0xda, 0xff, 0xe9, 0x31, 0xff, 0xa9, 0x29, 0xff, 0x47, 0x5a, 0xff, 0xc3, 0xcb, 0xff, 0xc3, 0xcb, 0xd6, 0xa3, 0xbb, 0xa0, + 0xa3, 0xbb, 0xa0, 0xc3, 0xcb, 0xd6, 0xc3, 0xcb, 0xff, 0x47, 0x5a, 0xff, 0xa9, 0x29, 0xff, 0xe8, 0x69, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe8, 0xb1, 0xff, 0x28, 0x52, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x42, 0xff, 0x29, 0x42, 0xff, 0x86, 0x6a, 0xff, 0xa4, 0x82, 0xff, 0xa4, 0x82, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x8a, 0xff, 0x26, 0xca, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x25, 0xbb, 0xff, 0xe9, 0x31, 0xff, 0xa9, 0x29, 0xff, 0x47, 0x5a, 0xff, 0xc3, 0xcb, 0xff, 0xc3, 0xcb, 0xd6, 0xa3, 0xbb, 0xa0, + 0x83, 0xbb, 0xa0, 0xc3, 0xcb, 0xd6, 0xc3, 0xcb, 0xff, 0x67, 0x5a, 0xff, 0xa9, 0x29, 0xff, 0xe9, 0x31, 0xff, 0x66, 0xd2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe8, 0xa1, 0xff, 0x29, 0x52, 0xff, 0x29, 0x4a, 0xff, 0x28, 0x4a, 0xff, 0x29, 0x42, 0xff, 0x29, 0x42, 0xff, 0x67, 0x62, 0xff, 0xc4, 0x82, 0xff, 0xc4, 0x82, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xc4, 0x82, 0xff, 0xc4, 0x82, 0xff, 0x67, 0x6a, 0xff, 0xe8, 0xa9, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x86, 0xc2, 0xff, 0x65, 0xab, 0xff, 0xe9, 0x31, 0xff, 0xa9, 0x29, 0xff, 0x67, 0x5a, 0xff, 0xc3, 0xcb, 0xff, 0xc3, 0xcb, 0xd6, 0x83, 0xbb, 0xa0, + 0x83, 0xbb, 0xa0, 0xc3, 0xcb, 0xd6, 0xc3, 0xcb, 0xff, 0x47, 0x5a, 0xff, 0xa9, 0x29, 0xff, 0xe9, 0x31, 0xff, 0x45, 0xb3, 0xff, 0x07, 0xda, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x08, 0xaa, 0xff, 0x29, 0x52, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x42, 0xff, 0x2a, 0x3a, 0xff, 0x28, 0x4a, 0xff, 0x86, 0x72, 0xff, 0xc4, 0x82, 0xff, 0xa4, 0x82, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x72, 0xff, 0xa5, 0x72, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x72, 0xff, 0xa5, 0x72, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa4, 0x82, 0xff, 0xc4, 0x82, 0xff, 0x86, 0x72, 0xff, 0x28, 0x4a, 0xff, 0x2a, 0x3a, 0xff, 0x29, 0x52, 0xff, 0x08, 0xa2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xc8, 0xb1, 0xff, 0x45, 0xa3, 0xff, 0x65, 0xab, 0xff, 0xe9, 0x31, 0xff, 0xa9, 0x29, 0xff, 0x47, 0x5a, 0xff, 0xc3, 0xcb, 0xff, 0xc3, 0xcb, 0xd6, 0x83, 0xbb, 0xa0, + 0x83, 0xbb, 0xa0, 0xc3, 0xcb, 0xd6, 0xc3, 0xcb, 0xff, 0x47, 0x5a, 0xff, 0xa9, 0x29, 0xff, 0xe9, 0x31, 0xff, 0x65, 0xab, 0xff, 0x06, 0xb3, 0xff, 0xe8, 0xd9, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe8, 0xb9, 0xff, 0x29, 0x5a, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x0a, 0x3a, 0xff, 0x29, 0x42, 0xff, 0x67, 0x5a, 0xff, 0x86, 0x72, 0xff, 0xa4, 0x82, 0xff, 0xa4, 0x82, 0xff, 0xa4, 0x82, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa4, 0x82, 0xff, 0xa4, 0x82, 0xff, 0xa4, 0x82, 0xff, 0x86, 0x72, 0xff, 0x67, 0x5a, 0xff, 0x29, 0x42, 0xff, 0x0a, 0x3a, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x28, 0x6a, 0xff, 0xe8, 0xd9, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe8, 0xd1, 0xff, 0xc9, 0x41, 0xff, 0x45, 0xa3, 0xff, 0x65, 0xab, 0xff, 0xe9, 0x31, 0xff, 0xa9, 0x29, 0xff, 0x47, 0x5a, 0xff, 0xc3, 0xcb, 0xff, 0xc3, 0xcb, 0xd6, 0x83, 0xbb, 0xa0, + 0x83, 0xbb, 0xa0, 0xc3, 0xcb, 0xd6, 0xc3, 0xcb, 0xff, 0x47, 0x5a, 0xff, 0xa9, 0x29, 0xff, 0xe9, 0x31, 0xff, 0x65, 0xab, 0xff, 0x45, 0xa3, 0xff, 0xc9, 0x61, 0xff, 0xc7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xc9, 0xff, 0x28, 0x7a, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x49, 0x4a, 0xff, 0x29, 0x42, 0xff, 0x0a, 0x3a, 0xff, 0x29, 0x42, 0xff, 0x48, 0x52, 0xff, 0x67, 0x62, 0xff, 0x86, 0x6a, 0xff, 0x85, 0x72, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0x85, 0x72, 0xff, 0x86, 0x6a, 0xff, 0x67, 0x62, 0xff, 0x48, 0x52, 0xff, 0x29, 0x42, 0xff, 0x0a, 0x3a, 0xff, 0x29, 0x42, 0xff, 0x49, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x08, 0x8a, 0xff, 0xe8, 0xc9, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xc7, 0xd9, 0xff, 0x08, 0x62, 0xff, 0xc9, 0x29, 0xff, 0x45, 0xa3, 0xff, 0x65, 0xab, 0xff, 0xe9, 0x31, 0xff, 0xa9, 0x29, 0xff, 0x47, 0x5a, 0xff, 0xc3, 0xcb, 0xff, 0xc3, 0xcb, 0xd6, 0x83, 0xbb, 0xa0, + 0x83, 0xbb, 0xa0, 0xc3, 0xcb, 0xd6, 0xc3, 0xcb, 0xff, 0x47, 0x5a, 0xff, 0xa9, 0x29, 0xff, 0xe9, 0x31, 0xff, 0x65, 0xab, 0xff, 0x45, 0xa3, 0xff, 0xc9, 0x29, 0xff, 0x08, 0x72, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xd9, 0xff, 0xe8, 0xa9, 0xff, 0x29, 0x5a, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x42, 0xff, 0x29, 0x42, 0xff, 0x29, 0x42, 0xff, 0x29, 0x42, 0xff, 0x29, 0x4a, 0xff, 0x48, 0x52, 0xff, 0x48, 0x52, 0xff, 0x48, 0x5a, 0xff, 0x48, 0x5a, 0xff, 0x48, 0x52, 0xff, 0x48, 0x52, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x42, 0xff, 0x29, 0x42, 0xff, 0x29, 0x42, 0xff, 0x29, 0x42, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x28, 0x6a, 0xff, 0xe8, 0xb1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xd9, 0xff, 0x28, 0x6a, 0xff, 0x09, 0x42, 0xff, 0xc9, 0x29, 0xff, 0x45, 0xa3, 0xff, 0x65, 0xab, 0xff, 0xe9, 0x31, 0xff, 0xa9, 0x29, 0xff, 0x47, 0x5a, 0xff, 0xc3, 0xcb, 0xff, 0xc3, 0xcb, 0xd6, 0x83, 0xbb, 0xa0, + 0x83, 0xbb, 0xa0, 0xc3, 0xcb, 0xd6, 0xc3, 0xcb, 0xff, 0x47, 0x5a, 0xff, 0xa9, 0x29, 0xff, 0xe9, 0x31, 0xff, 0x65, 0xab, 0xff, 0x45, 0xa3, 0xff, 0xc9, 0x29, 0xff, 0x09, 0x42, 0xff, 0x08, 0x7a, 0xff, 0xe8, 0xd9, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe8, 0xd9, 0xff, 0x08, 0xa2, 0xff, 0x28, 0x62, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x42, 0xff, 0x29, 0x42, 0xff, 0x29, 0x42, 0xff, 0x29, 0x42, 0xff, 0x29, 0x42, 0xff, 0x29, 0x42, 0xff, 0x29, 0x42, 0xff, 0x29, 0x42, 0xff, 0x29, 0x42, 0xff, 0x29, 0x42, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x28, 0x6a, 0xff, 0xe8, 0xb1, 0xff, 0xe7, 0xd9, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe8, 0xd1, 0xff, 0x28, 0x6a, 0xff, 0x28, 0x4a, 0xff, 0x09, 0x42, 0xff, 0xc9, 0x29, 0xff, 0x45, 0xa3, 0xff, 0x65, 0xab, 0xff, 0xe9, 0x31, 0xff, 0xa9, 0x29, 0xff, 0x47, 0x5a, 0xff, 0xc3, 0xcb, 0xff, 0xc3, 0xcb, 0xd6, 0x83, 0xbb, 0xa0, + 0x83, 0xbb, 0xa0, 0xc3, 0xcb, 0xd6, 0xc3, 0xcb, 0xff, 0x47, 0x5a, 0xff, 0xa9, 0x21, 0xff, 0xc9, 0x31, 0xff, 0x65, 0xab, 0xff, 0x45, 0xa3, 0xff, 0xc9, 0x29, 0xff, 0x29, 0x42, 0xff, 0x28, 0x4a, 0xff, 0x28, 0x6a, 0xff, 0xe7, 0xc1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xc7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x08, 0xb2, 0xff, 0x28, 0x82, 0xff, 0x29, 0x5a, 0xff, 0x29, 0x52, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x52, 0xff, 0x28, 0x62, 0xff, 0x08, 0x8a, 0xff, 0xe8, 0xb9, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe8, 0xb9, 0xff, 0x28, 0x5a, 0xff, 0x29, 0x4a, 0xff, 0x28, 0x4a, 0xff, 0x09, 0x42, 0xff, 0xc9, 0x29, 0xff, 0x45, 0xa3, 0xff, 0x65, 0xab, 0xff, 0xc9, 0x31, 0xff, 0xa9, 0x21, 0xff, 0x47, 0x5a, 0xff, 0xc3, 0xcb, 0xff, 0xc3, 0xcb, 0xd6, 0x83, 0xbb, 0xa0, + 0x83, 0xbb, 0xa0, 0xc3, 0xcb, 0xd6, 0xc3, 0xcb, 0xff, 0x08, 0x42, 0xff, 0x4a, 0x01, 0xff, 0x6a, 0x11, 0xff, 0x45, 0xa3, 0xff, 0x25, 0x93, 0xff, 0x8a, 0x19, 0xff, 0x28, 0x42, 0xff, 0x28, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x28, 0x5a, 0xff, 0x08, 0xaa, 0xff, 0xe7, 0xd9, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe8, 0xc1, 0xff, 0x08, 0xaa, 0xff, 0x08, 0x9a, 0xff, 0x08, 0x8a, 0xff, 0x28, 0x7a, 0xff, 0x28, 0x7a, 0xff, 0x28, 0x82, 0xff, 0x08, 0x8a, 0xff, 0x08, 0x9a, 0xff, 0x08, 0xb2, 0xff, 0xe8, 0xc9, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xd9, 0xff, 0x08, 0x9a, 0xff, 0x28, 0x52, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x28, 0x4a, 0xff, 0x28, 0x42, 0xff, 0x8a, 0x19, 0xff, 0x25, 0x93, 0xff, 0x45, 0xa3, 0xff, 0x6a, 0x11, 0xff, 0x4a, 0x01, 0xff, 0x08, 0x42, 0xff, 0xc3, 0xcb, 0xff, 0xc3, 0xcb, 0xd6, 0x83, 0xbb, 0xa0, + 0x83, 0xbb, 0xa0, 0xa3, 0xc3, 0xd6, 0xa3, 0xc3, 0xff, 0x06, 0x93, 0xff, 0xc6, 0x7a, 0xff, 0xe6, 0x7a, 0xff, 0xc4, 0xcb, 0xff, 0x65, 0xa3, 0xff, 0xaa, 0x21, 0xff, 0xe9, 0x31, 0xff, 0x48, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x08, 0x7a, 0xff, 0xe8, 0xc1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xd9, 0xff, 0xe8, 0xb9, 0xff, 0x28, 0x6a, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x48, 0x4a, 0xff, 0xe9, 0x31, 0xff, 0xaa, 0x21, 0xff, 0x65, 0xa3, 0xff, 0xc4, 0xcb, 0xff, 0xe6, 0x7a, 0xff, 0xc6, 0x7a, 0xff, 0x06, 0x93, 0xff, 0xa3, 0xc3, 0xff, 0xa3, 0xc3, 0xd6, 0x83, 0xbb, 0xa0, + 0x83, 0xbb, 0xa0, 0x63, 0xb3, 0xd6, 0x84, 0xbb, 0xff, 0x62, 0xf4, 0xff, 0xc2, 0xfc, 0xff, 0xa2, 0xfc, 0xff, 0x63, 0xf4, 0xff, 0x43, 0xec, 0xff, 0x65, 0xab, 0xff, 0xca, 0x29, 0xff, 0xaa, 0x19, 0xff, 0xc9, 0x31, 0xff, 0xc9, 0x29, 0xff, 0xe9, 0x31, 0xff, 0xe9, 0x31, 0xff, 0xe9, 0x39, 0xff, 0xe9, 0x81, 0xff, 0xe8, 0xc1, 0xff, 0xe7, 0xd9, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xd9, 0xff, 0xe8, 0xb9, 0xff, 0xe9, 0x79, 0xff, 0xea, 0x31, 0xff, 0xea, 0x31, 0xff, 0xe9, 0x31, 0xff, 0xe9, 0x31, 0xff, 0xc9, 0x29, 0xff, 0xc9, 0x31, 0xff, 0xaa, 0x19, 0xff, 0xc9, 0x29, 0xff, 0x65, 0xab, 0xff, 0x43, 0xec, 0xff, 0x63, 0xf4, 0xff, 0xa2, 0xfc, 0xff, 0xc2, 0xfc, 0xff, 0x62, 0xf4, 0xff, 0x84, 0xbb, 0xff, 0x63, 0xb3, 0xd6, 0x83, 0xbb, 0xa0, + 0x83, 0xbb, 0xa0, 0xa3, 0xbb, 0xd6, 0xa4, 0xbb, 0xff, 0x45, 0xa3, 0xff, 0x25, 0x9b, 0xff, 0x25, 0x9b, 0xff, 0x45, 0x9b, 0xff, 0x03, 0xdc, 0xff, 0x62, 0xf4, 0xff, 0x45, 0x9b, 0xff, 0xe6, 0x7a, 0xff, 0x06, 0x93, 0xff, 0x06, 0x8b, 0xff, 0x06, 0x8b, 0xff, 0x06, 0x8b, 0xff, 0x06, 0x8b, 0xff, 0x06, 0x8b, 0xff, 0x06, 0x93, 0xff, 0xa7, 0xb2, 0xff, 0x27, 0xca, 0xff, 0x07, 0xda, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x07, 0xda, 0xff, 0x47, 0xca, 0xff, 0xa6, 0xaa, 0xff, 0x06, 0x93, 0xff, 0x06, 0x8b, 0xff, 0x06, 0x8b, 0xff, 0x06, 0x8b, 0xff, 0x06, 0x8b, 0xff, 0x06, 0x8b, 0xff, 0x06, 0x8b, 0xff, 0x06, 0x93, 0xff, 0xe6, 0x82, 0xff, 0x45, 0x9b, 0xff, 0x62, 0xf4, 0xff, 0x03, 0xdc, 0xff, 0x45, 0x9b, 0xff, 0x25, 0x9b, 0xff, 0x25, 0x9b, 0xff, 0x45, 0xa3, 0xff, 0xa4, 0xc3, 0xff, 0xa3, 0xbb, 0xd6, 0x83, 0xbb, 0xa0, + 0x83, 0xbb, 0xa1, 0xc3, 0xcb, 0xd8, 0xa3, 0xcb, 0xff, 0x08, 0x42, 0xfa, 0x69, 0x11, 0xfe, 0xa9, 0x29, 0xff, 0x89, 0x19, 0xff, 0x06, 0x8b, 0xff, 0x63, 0xf4, 0xff, 0x03, 0xd4, 0xff, 0x84, 0xb3, 0xff, 0x84, 0xb3, 0xff, 0xa4, 0xbb, 0xff, 0x84, 0xbb, 0xff, 0xa4, 0xbb, 0xff, 0x84, 0xbb, 0xff, 0xa4, 0xbb, 0xff, 0xa4, 0xbb, 0xff, 0xa4, 0xbb, 0xff, 0xa4, 0xbb, 0xff, 0x25, 0xc3, 0xff, 0xc6, 0xca, 0xff, 0x66, 0xda, 0xff, 0x47, 0xda, 0xff, 0x07, 0xe2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x07, 0xe2, 0xff, 0x07, 0xe2, 0xff, 0x47, 0xda, 0xff, 0x66, 0xd2, 0xff, 0xe6, 0xca, 0xff, 0x45, 0xc3, 0xff, 0xa4, 0xbb, 0xff, 0xa4, 0xbb, 0xff, 0xa4, 0xbb, 0xff, 0xa4, 0xbb, 0xff, 0xa4, 0xbb, 0xff, 0x84, 0xbb, 0xff, 0xa4, 0xbb, 0xff, 0x84, 0xbb, 0xff, 0xa4, 0xbb, 0xff, 0x84, 0xb3, 0xff, 0x84, 0xb3, 0xff, 0x03, 0xd4, 0xff, 0x63, 0xf4, 0xff, 0x06, 0x8b, 0xff, 0x89, 0x19, 0xff, 0xa9, 0x29, 0xff, 0x69, 0x11, 0xfe, 0x08, 0x42, 0xfa, 0xc3, 0xcb, 0xff, 0xc3, 0xcb, 0xd8, 0x83, 0xbb, 0xa1, + 0x63, 0xbb, 0xa8, 0xa3, 0xc3, 0xde, 0xe3, 0xd3, 0xff, 0x47, 0x5a, 0xed, 0x6a, 0x11, 0xfa, 0xe8, 0x39, 0xff, 0x89, 0x21, 0xff, 0xc6, 0x7a, 0xff, 0xa2, 0xfc, 0xff, 0x45, 0xa3, 0xff, 0xa9, 0x29, 0xff, 0xc9, 0x31, 0xff, 0x09, 0x3a, 0xff, 0x09, 0x3a, 0xff, 0x09, 0x3a, 0xff, 0x09, 0x3a, 0xff, 0x09, 0x3a, 0xff, 0x09, 0x3a, 0xff, 0x09, 0x3a, 0xff, 0x09, 0x3a, 0xff, 0x09, 0x42, 0xff, 0x09, 0x42, 0xff, 0x09, 0x5a, 0xff, 0xe8, 0x71, 0xff, 0xe8, 0x99, 0xff, 0xe8, 0xa9, 0xff, 0xe8, 0xc1, 0xff, 0xe8, 0xc9, 0xff, 0xe7, 0xd1, 0xff, 0xe7, 0xd9, 0xff, 0xe7, 0xd1, 0xff, 0xe8, 0xc9, 0xff, 0xe8, 0xb9, 0xff, 0xe8, 0xa9, 0xff, 0xe8, 0x91, 0xff, 0xe8, 0x71, 0xff, 0x09, 0x52, 0xff, 0x09, 0x42, 0xff, 0x09, 0x3a, 0xff, 0x09, 0x3a, 0xff, 0x09, 0x3a, 0xff, 0x09, 0x3a, 0xff, 0x09, 0x3a, 0xff, 0x09, 0x3a, 0xff, 0x09, 0x3a, 0xff, 0x09, 0x3a, 0xff, 0x09, 0x3a, 0xff, 0x09, 0x3a, 0xff, 0xc9, 0x31, 0xff, 0xa9, 0x29, 0xff, 0x45, 0xa3, 0xff, 0x82, 0xfc, 0xff, 0xc6, 0x7a, 0xff, 0x89, 0x21, 0xff, 0xe8, 0x39, 0xff, 0x6a, 0x11, 0xfa, 0x47, 0x5a, 0xed, 0xe3, 0xd3, 0xff, 0xa3, 0xc3, 0xde, 0x63, 0xbb, 0xa8, + 0x83, 0xbb, 0x9a, 0x83, 0xbb, 0xd3, 0xe3, 0xd3, 0xff, 0x64, 0xab, 0xf3, 0xa9, 0x29, 0xf2, 0x89, 0x19, 0xfc, 0x6a, 0x11, 0xff, 0xe6, 0x7a, 0xff, 0xc2, 0xfc, 0xff, 0x45, 0x9b, 0xff, 0x6a, 0x11, 0xff, 0x8a, 0x21, 0xff, 0xc9, 0x29, 0xff, 0xc9, 0x29, 0xff, 0xc9, 0x29, 0xff, 0xc9, 0x29, 0xff, 0xc9, 0x29, 0xff, 0xc9, 0x29, 0xff, 0xc9, 0x29, 0xff, 0xc9, 0x29, 0xff, 0xc9, 0x29, 0xff, 0xc9, 0x29, 0xff, 0xc9, 0x29, 0xff, 0xc9, 0x29, 0xff, 0xc9, 0x29, 0xff, 0xc9, 0x29, 0xff, 0xc9, 0x29, 0xff, 0xc9, 0x29, 0xff, 0xc9, 0x29, 0xff, 0xc9, 0x29, 0xff, 0xc9, 0x29, 0xff, 0xc9, 0x29, 0xff, 0xc9, 0x29, 0xff, 0xc9, 0x29, 0xff, 0xc9, 0x29, 0xff, 0xc9, 0x29, 0xff, 0xc9, 0x29, 0xff, 0xc9, 0x29, 0xff, 0xc9, 0x29, 0xff, 0xc9, 0x29, 0xff, 0xc9, 0x29, 0xff, 0xc9, 0x29, 0xff, 0xc9, 0x29, 0xff, 0xc9, 0x29, 0xff, 0xc9, 0x29, 0xff, 0xc9, 0x29, 0xff, 0xc9, 0x29, 0xff, 0xc9, 0x29, 0xff, 0x8a, 0x21, 0xff, 0x6a, 0x11, 0xff, 0x45, 0x9b, 0xff, 0xc2, 0xfc, 0xff, 0xe6, 0x7a, 0xff, 0x6a, 0x11, 0xff, 0x89, 0x19, 0xfb, 0xa9, 0x29, 0xf2, 0x64, 0xab, 0xf3, 0xe3, 0xd3, 0xff, 0x83, 0xbb, 0xd3, 0x83, 0xbb, 0x9a, + 0x83, 0xbb, 0x30, 0x83, 0xbb, 0x87, 0xa3, 0xbb, 0xff, 0xe3, 0xdb, 0xff, 0x44, 0xab, 0xf3, 0x47, 0x52, 0xed, 0xa9, 0x29, 0xfa, 0xe6, 0x82, 0xff, 0x62, 0xfc, 0xff, 0x45, 0xa3, 0xff, 0xe8, 0x41, 0xff, 0x08, 0x4a, 0xff, 0x48, 0x52, 0xff, 0x48, 0x52, 0xff, 0x48, 0x52, 0xff, 0x48, 0x52, 0xff, 0x48, 0x52, 0xff, 0x48, 0x52, 0xff, 0x48, 0x52, 0xff, 0x48, 0x52, 0xff, 0x48, 0x52, 0xff, 0x48, 0x52, 0xff, 0x48, 0x52, 0xff, 0x48, 0x52, 0xff, 0x48, 0x52, 0xff, 0x48, 0x52, 0xff, 0x48, 0x52, 0xff, 0x48, 0x52, 0xff, 0x48, 0x52, 0xff, 0x48, 0x52, 0xff, 0x48, 0x52, 0xff, 0x48, 0x52, 0xff, 0x48, 0x52, 0xff, 0x48, 0x52, 0xff, 0x48, 0x52, 0xff, 0x48, 0x52, 0xff, 0x48, 0x52, 0xff, 0x48, 0x52, 0xff, 0x48, 0x52, 0xff, 0x48, 0x52, 0xff, 0x48, 0x52, 0xff, 0x48, 0x52, 0xff, 0x48, 0x52, 0xff, 0x48, 0x52, 0xff, 0x48, 0x52, 0xff, 0x48, 0x52, 0xff, 0x48, 0x52, 0xff, 0x48, 0x52, 0xff, 0x08, 0x4a, 0xff, 0xe8, 0x41, 0xff, 0x45, 0xa3, 0xff, 0x62, 0xfc, 0xff, 0xe6, 0x82, 0xff, 0xa9, 0x29, 0xfa, 0x47, 0x52, 0xec, 0x44, 0xab, 0xf4, 0xe3, 0xd3, 0xff, 0x83, 0xbb, 0xff, 0x83, 0xbb, 0x87, 0x83, 0xbb, 0x30, + 0x00, 0x00, 0x00, 0x44, 0xbb, 0x11, 0x83, 0xb3, 0xc3, 0xa3, 0xc3, 0xff, 0xe3, 0xd3, 0xff, 0xa3, 0xcb, 0xff, 0x83, 0xbb, 0xff, 0x63, 0xbb, 0xff, 0x63, 0xb3, 0xff, 0x63, 0xb3, 0xff, 0x83, 0xbb, 0xff, 0x83, 0xbb, 0xff, 0x83, 0xbb, 0xff, 0x83, 0xbb, 0xff, 0x83, 0xbb, 0xff, 0x83, 0xbb, 0xff, 0x83, 0xbb, 0xff, 0x83, 0xbb, 0xff, 0x83, 0xbb, 0xff, 0x83, 0xbb, 0xff, 0x83, 0xbb, 0xff, 0x83, 0xbb, 0xff, 0x83, 0xbb, 0xff, 0x83, 0xbb, 0xff, 0x83, 0xbb, 0xff, 0x83, 0xbb, 0xff, 0x83, 0xbb, 0xff, 0x83, 0xbb, 0xff, 0x83, 0xbb, 0xff, 0x83, 0xbb, 0xff, 0x83, 0xbb, 0xff, 0x83, 0xbb, 0xff, 0x83, 0xbb, 0xff, 0x83, 0xbb, 0xff, 0x83, 0xbb, 0xff, 0x83, 0xbb, 0xff, 0x83, 0xbb, 0xff, 0x83, 0xbb, 0xff, 0x83, 0xbb, 0xff, 0x83, 0xbb, 0xff, 0x83, 0xbb, 0xff, 0x83, 0xbb, 0xff, 0x83, 0xbb, 0xff, 0x83, 0xbb, 0xff, 0x83, 0xbb, 0xff, 0x83, 0xbb, 0xff, 0x83, 0xbb, 0xff, 0x83, 0xbb, 0xff, 0x83, 0xbb, 0xff, 0x83, 0xbb, 0xff, 0x63, 0xb3, 0xff, 0x63, 0xb3, 0xff, 0x63, 0xbb, 0xff, 0x83, 0xbb, 0xff, 0xa3, 0xcb, 0xff, 0xe3, 0xd3, 0xff, 0xa3, 0xc3, 0xff, 0x83, 0xbb, 0xc3, 0x44, 0xbb, 0x11, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa3, 0xb3, 0x14, 0x84, 0xbb, 0x8e, 0xa4, 0xbb, 0xde, 0xa3, 0xcb, 0xe9, 0xc3, 0xcb, 0xe1, 0xa3, 0xc3, 0xdf, 0x63, 0xb3, 0xdf, 0x83, 0xbb, 0xdf, 0xa3, 0xcb, 0xdf, 0xa3, 0xcb, 0xdf, 0xa3, 0xcb, 0xdf, 0xa3, 0xcb, 0xdf, 0xa3, 0xcb, 0xdf, 0xa3, 0xcb, 0xdf, 0xa3, 0xcb, 0xdf, 0xa3, 0xcb, 0xdf, 0xa3, 0xcb, 0xdf, 0xa3, 0xcb, 0xdf, 0xa3, 0xcb, 0xdf, 0xa3, 0xcb, 0xdf, 0xa3, 0xcb, 0xdf, 0xa3, 0xcb, 0xdf, 0xa3, 0xcb, 0xdf, 0xa3, 0xcb, 0xdf, 0xa3, 0xcb, 0xdf, 0xa3, 0xcb, 0xdf, 0xa3, 0xcb, 0xdf, 0xa3, 0xcb, 0xdf, 0xa3, 0xcb, 0xdf, 0xa3, 0xcb, 0xdf, 0xa3, 0xcb, 0xdf, 0xa3, 0xcb, 0xdf, 0xa3, 0xcb, 0xdf, 0xa3, 0xcb, 0xdf, 0xa3, 0xcb, 0xdf, 0xa3, 0xcb, 0xdf, 0xa3, 0xcb, 0xdf, 0xa3, 0xcb, 0xdf, 0xa3, 0xcb, 0xdf, 0xa3, 0xcb, 0xdf, 0xa3, 0xcb, 0xdf, 0xa3, 0xcb, 0xdf, 0xa3, 0xcb, 0xdf, 0xa3, 0xcb, 0xdf, 0xa3, 0xcb, 0xdf, 0xa3, 0xcb, 0xdf, 0xa3, 0xcb, 0xdf, 0xa3, 0xcb, 0xdf, 0x83, 0xbb, 0xdf, 0x63, 0xb3, 0xdf, 0xa3, 0xc3, 0xdf, 0xc3, 0xcb, 0xe1, 0xa3, 0xcb, 0xe9, 0x84, 0xbb, 0xde, 0x84, 0xbb, 0x8e, 0xa3, 0xb3, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +#endif +#if LV_COLOR_DEPTH == 16 && LV_COLOR_16_SWAP != 0 + /*Pixel format: Alpha 8 bit, Red: 5 bit, Green: 6 bit, Blue: 5 bit BUT the 2 color bytes are swapped*/ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xec, 0x84, 0x46, 0xec, 0x64, 0xb5, 0xec, 0x64, 0xed, 0xec, 0x64, 0xf5, 0xec, 0x64, 0xf0, 0xec, 0x64, 0xef, 0xec, 0x64, 0xef, 0xec, 0x64, 0xef, 0xec, 0x64, 0xef, 0xec, 0x64, 0xef, 0xec, 0x64, 0xef, 0xec, 0x64, 0xef, 0xec, 0x64, 0xef, 0xec, 0x64, 0xef, 0xec, 0x64, 0xef, 0xec, 0x64, 0xef, 0xec, 0x64, 0xef, 0xec, 0x64, 0xef, 0xec, 0x64, 0xef, 0xec, 0x64, 0xef, 0xec, 0x64, 0xef, 0xec, 0x64, 0xef, 0xec, 0x64, 0xef, 0xec, 0x64, 0xef, 0xec, 0x64, 0xef, 0xec, 0x64, 0xf1, 0xec, 0x64, 0xf4, 0xec, 0x64, 0xeb, 0xec, 0x64, 0xb4, 0xec, 0x64, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xec, 0x64, 0x75, 0xec, 0x64, 0xff, 0xec, 0x64, 0xff, 0xec, 0x64, 0xf9, 0xec, 0x64, 0xf1, 0xec, 0x64, 0xf3, 0xec, 0x64, 0xf4, 0xec, 0x64, 0xf4, 0xec, 0x64, 0xf4, 0xec, 0x64, 0xf4, 0xec, 0x64, 0xf4, 0xec, 0x64, 0xf4, 0xec, 0x64, 0xf4, 0xec, 0x64, 0xf4, 0xec, 0x64, 0xf4, 0xec, 0x64, 0xf4, 0xec, 0x64, 0xf4, 0xec, 0x64, 0xf4, 0xec, 0x64, 0xf4, 0xec, 0x64, 0xf4, 0xec, 0x64, 0xf4, 0xec, 0x64, 0xf4, 0xec, 0x64, 0xf4, 0xec, 0x64, 0xf4, 0xec, 0x64, 0xf4, 0xec, 0x64, 0xf4, 0xec, 0x64, 0xf3, 0xec, 0x64, 0xf1, 0xec, 0x64, 0xf9, 0xec, 0x64, 0xff, 0xec, 0x64, 0xff, 0xec, 0x64, 0x76, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xec, 0x64, 0x58, 0xec, 0x64, 0xff, 0xec, 0x64, 0xff, 0xec, 0x64, 0x9f, 0xec, 0x65, 0x3e, 0xec, 0x64, 0x33, 0xec, 0x64, 0x3a, 0xec, 0x64, 0x3b, 0xec, 0x64, 0x3b, 0xec, 0x64, 0x3b, 0xec, 0x64, 0x3b, 0xec, 0x64, 0x3b, 0xec, 0x64, 0x3b, 0xec, 0x64, 0x3b, 0xec, 0x64, 0x3b, 0xec, 0x64, 0x3b, 0xec, 0x64, 0x3b, 0xec, 0x64, 0x3b, 0xec, 0x64, 0x3b, 0xec, 0x64, 0x3b, 0xec, 0x64, 0x3b, 0xec, 0x64, 0x3b, 0xec, 0x64, 0x3b, 0xec, 0x64, 0x3b, 0xec, 0x64, 0x3b, 0xec, 0x64, 0x3b, 0xec, 0x64, 0x3b, 0xec, 0x65, 0x39, 0xec, 0x64, 0x33, 0xec, 0x64, 0x3e, 0xec, 0x64, 0x9f, 0xec, 0x64, 0xff, 0xec, 0x64, 0xff, 0xec, 0x64, 0x57, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xec, 0xa5, 0x13, 0xec, 0x64, 0xbe, 0xe4, 0x64, 0xff, 0xec, 0x64, 0x92, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xec, 0x64, 0x92, 0xec, 0x64, 0xff, 0xec, 0x64, 0xbf, 0xec, 0xa5, 0x13, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xec, 0x44, 0x2f, 0xec, 0x64, 0xff, 0xec, 0x64, 0xef, 0xfc, 0xa5, 0x31, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xa5, 0x31, 0xec, 0x64, 0xef, 0xec, 0x64, 0xff, 0xec, 0x44, 0x2f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x01, 0xaa, 0xa0, 0x03, 0x84, 0x00, 0x02, 0xfc, 0x00, 0x02, 0xfc, 0x00, 0x02, 0xfc, 0x00, 0x02, 0x84, 0x00, 0x02, 0x00, 0x00, 0x00, 0xd4, 0x04, 0x38, 0xf4, 0x84, 0xff, 0xf4, 0xa5, 0xd9, 0xd3, 0xe4, 0x1d, 0x00, 0x00, 0x00, 0x84, 0x00, 0x02, 0x84, 0x00, 0x02, 0x84, 0x00, 0x02, 0x84, 0x00, 0x02, 0x84, 0x00, 0x02, 0x84, 0x00, 0x02, 0x84, 0x00, 0x02, 0x84, 0x00, 0x02, 0x84, 0x00, 0x02, 0x84, 0x00, 0x02, 0x84, 0x00, 0x02, 0x84, 0x00, 0x02, 0x84, 0x00, 0x02, 0x84, 0x00, 0x02, 0x84, 0x00, 0x02, 0x84, 0x00, 0x02, 0x84, 0x00, 0x02, 0x84, 0x00, 0x02, 0x84, 0x00, 0x02, 0x84, 0x00, 0x02, 0x84, 0x00, 0x02, 0x84, 0x00, 0x02, 0x84, 0x00, 0x02, 0x84, 0x00, 0x02, 0x84, 0x00, 0x02, 0x84, 0x00, 0x02, 0x00, 0x00, 0x00, 0xd3, 0xe4, 0x1d, 0xf4, 0xa5, 0xd9, 0xf4, 0x84, 0xff, 0xd4, 0x24, 0x39, 0x00, 0x00, 0x00, 0x84, 0x00, 0x02, 0xfc, 0x00, 0x02, 0xfc, 0x00, 0x02, 0xfc, 0x00, 0x02, 0x84, 0x00, 0x02, 0xaa, 0xa0, 0x03, 0xf8, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xcb, 0xa4, 0x46, 0xc3, 0xc4, 0x93, 0xcb, 0xc4, 0xa3, 0xcb, 0xe4, 0x9c, 0xcb, 0xe4, 0x9a, 0xc3, 0xc4, 0x9a, 0xcb, 0xc4, 0x9a, 0xd3, 0xe4, 0x9a, 0xcb, 0xc4, 0x8f, 0xd3, 0xe4, 0xaf, 0xdc, 0x24, 0xff, 0xdc, 0x24, 0xf2, 0xc3, 0xc4, 0x9c, 0xcb, 0xc3, 0x8e, 0xd3, 0xe4, 0x9b, 0xd3, 0xe4, 0x9a, 0xd3, 0xe4, 0x9a, 0xd3, 0xe4, 0x9a, 0xd3, 0xe4, 0x9a, 0xd3, 0xe4, 0x9a, 0xd3, 0xe4, 0x9a, 0xd3, 0xe4, 0x9a, 0xd3, 0xe4, 0x9a, 0xd3, 0xe4, 0x9a, 0xd3, 0xe4, 0x9a, 0xd3, 0xe4, 0x9a, 0xd3, 0xe4, 0x9a, 0xd3, 0xe4, 0x9a, 0xd3, 0xe4, 0x9a, 0xd3, 0xe4, 0x9a, 0xd3, 0xe4, 0x9a, 0xd3, 0xe4, 0x9a, 0xd3, 0xe4, 0x9a, 0xd3, 0xe4, 0x9a, 0xd3, 0xe4, 0x9a, 0xd3, 0xe4, 0x9a, 0xd3, 0xe4, 0x9a, 0xd3, 0xe4, 0x9a, 0xd3, 0xe4, 0x9a, 0xd3, 0xe4, 0x9b, 0xcb, 0xc3, 0x8e, 0xc3, 0xc4, 0x9c, 0xdc, 0x24, 0xf2, 0xdc, 0x24, 0xff, 0xd3, 0xe4, 0xaf, 0xcb, 0xc4, 0x8f, 0xd3, 0xe4, 0x9a, 0xcb, 0xc4, 0x9a, 0xc3, 0xc4, 0x9a, 0xcb, 0xe4, 0x9a, 0xcb, 0xe4, 0x9c, 0xcb, 0xc4, 0xa1, 0xc3, 0xc4, 0x93, 0xcb, 0xa4, 0x46, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc3, 0xc4, 0x76, 0xc3, 0xa4, 0xff, 0xdc, 0x03, 0xff, 0xec, 0x63, 0xff, 0xfc, 0x83, 0xff, 0xe4, 0x23, 0xff, 0xc3, 0xc4, 0xff, 0xdc, 0x04, 0xff, 0xf4, 0x63, 0xff, 0xf4, 0x63, 0xff, 0xec, 0x63, 0xff, 0xec, 0x43, 0xff, 0xec, 0x43, 0xff, 0xec, 0x43, 0xff, 0xf4, 0x63, 0xff, 0xf4, 0x63, 0xff, 0xf4, 0x63, 0xff, 0xf4, 0x63, 0xff, 0xf4, 0x63, 0xff, 0xf4, 0x63, 0xff, 0xf4, 0x63, 0xff, 0xf4, 0x63, 0xff, 0xf4, 0x63, 0xff, 0xf4, 0x63, 0xff, 0xf4, 0x63, 0xff, 0xf4, 0x63, 0xff, 0xf4, 0x63, 0xff, 0xf4, 0x63, 0xff, 0xf4, 0x63, 0xff, 0xf4, 0x63, 0xff, 0xf4, 0x63, 0xff, 0xf4, 0x63, 0xff, 0xf4, 0x63, 0xff, 0xf4, 0x63, 0xff, 0xf4, 0x63, 0xff, 0xf4, 0x63, 0xff, 0xf4, 0x63, 0xff, 0xf4, 0x63, 0xff, 0xf4, 0x63, 0xff, 0xf4, 0x63, 0xff, 0xf4, 0x63, 0xff, 0xf4, 0x63, 0xff, 0xec, 0x43, 0xff, 0xec, 0x43, 0xff, 0xec, 0x43, 0xff, 0xec, 0x63, 0xff, 0xf4, 0x63, 0xff, 0xf4, 0x63, 0xff, 0xdc, 0x04, 0xff, 0xc3, 0xc4, 0xff, 0xe4, 0x23, 0xff, 0xfc, 0x83, 0xff, 0xec, 0x63, 0xff, 0xdc, 0x03, 0xff, 0xc3, 0xa4, 0xff, 0xc3, 0xc4, 0x76, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xd4, 0x03, 0x0a, 0xc3, 0xe4, 0x5c, 0xc3, 0xc4, 0xff, 0xe4, 0x23, 0xff, 0xec, 0x43, 0xf9, 0xa3, 0x45, 0xef, 0x72, 0xa7, 0xfa, 0xab, 0x65, 0xff, 0xec, 0x43, 0xff, 0xbb, 0xa4, 0xff, 0x7a, 0xc6, 0xff, 0x82, 0xe6, 0xff, 0x8b, 0x06, 0xff, 0x8a, 0xe6, 0xff, 0x8a, 0xe6, 0xff, 0x8a, 0xe6, 0xff, 0x8a, 0xe6, 0xff, 0x8a, 0xe6, 0xff, 0x8b, 0x06, 0xff, 0x8b, 0x06, 0xff, 0x8b, 0x06, 0xff, 0x8b, 0x06, 0xff, 0x8b, 0x06, 0xff, 0x8b, 0x06, 0xff, 0x8b, 0x06, 0xff, 0x8b, 0x06, 0xff, 0x8b, 0x06, 0xff, 0x8b, 0x06, 0xff, 0x8b, 0x06, 0xff, 0x8b, 0x06, 0xff, 0x8b, 0x06, 0xff, 0x8b, 0x06, 0xff, 0x8b, 0x06, 0xff, 0x8b, 0x06, 0xff, 0x8b, 0x06, 0xff, 0x8b, 0x06, 0xff, 0x8b, 0x06, 0xff, 0x8b, 0x06, 0xff, 0x8b, 0x06, 0xff, 0x8b, 0x06, 0xff, 0x8b, 0x06, 0xff, 0x8b, 0x06, 0xff, 0x8a, 0xe6, 0xff, 0x8a, 0xe6, 0xff, 0x8a, 0xe6, 0xff, 0x8a, 0xe6, 0xff, 0x8a, 0xe6, 0xff, 0x8b, 0x06, 0xff, 0x82, 0xe6, 0xff, 0x7a, 0xc6, 0xff, 0xbb, 0xa4, 0xff, 0xec, 0x43, 0xff, 0xab, 0x65, 0xff, 0x72, 0xa7, 0xfa, 0xa3, 0x45, 0xef, 0xec, 0x43, 0xf9, 0xe4, 0x23, 0xff, 0xc3, 0xa4, 0xff, 0xcb, 0xe4, 0x5b, 0xcb, 0x84, 0x09, + 0xcb, 0xc4, 0x79, 0xcb, 0xc4, 0xbc, 0xe4, 0x23, 0xff, 0xe4, 0x24, 0xfa, 0x5a, 0x67, 0xf1, 0x11, 0x69, 0xf4, 0x01, 0x0a, 0xfd, 0x72, 0xa6, 0xff, 0xfc, 0xa2, 0xff, 0x9b, 0x25, 0xff, 0x11, 0x49, 0xff, 0x19, 0x69, 0xff, 0x29, 0xa9, 0xff, 0x29, 0xa9, 0xff, 0x29, 0xa9, 0xff, 0x29, 0xa9, 0xff, 0x29, 0xa9, 0xff, 0x29, 0xa9, 0xff, 0x29, 0xa9, 0xff, 0x29, 0xa9, 0xff, 0x29, 0xa9, 0xff, 0x29, 0xa9, 0xff, 0x41, 0xa9, 0xff, 0x69, 0xc8, 0xff, 0x91, 0xc8, 0xff, 0xa1, 0xc8, 0xff, 0xb9, 0xc8, 0xff, 0xc9, 0xc8, 0xff, 0xd1, 0xc7, 0xff, 0xd1, 0xe7, 0xff, 0xd1, 0xc7, 0xff, 0xc9, 0xc8, 0xff, 0xb9, 0xc8, 0xff, 0xa1, 0xc8, 0xff, 0x89, 0xc8, 0xff, 0x61, 0xc8, 0xff, 0x41, 0xa9, 0xff, 0x29, 0xa9, 0xff, 0x29, 0xa9, 0xff, 0x29, 0xa9, 0xff, 0x29, 0xa9, 0xff, 0x29, 0xa9, 0xff, 0x29, 0xa9, 0xff, 0x29, 0xa9, 0xff, 0x29, 0xa9, 0xff, 0x29, 0xa9, 0xff, 0x29, 0xa9, 0xff, 0x29, 0xa9, 0xff, 0x19, 0x69, 0xff, 0x11, 0x49, 0xff, 0x9b, 0x25, 0xff, 0xfc, 0xa2, 0xff, 0x72, 0xa6, 0xff, 0x01, 0x0a, 0xfd, 0x11, 0x69, 0xf4, 0x62, 0x67, 0xf1, 0xe4, 0x24, 0xf9, 0xe4, 0x23, 0xff, 0xcb, 0xc4, 0xbc, 0xcb, 0xc4, 0x78, + 0xcb, 0xc4, 0xa8, 0xd3, 0xe4, 0xde, 0xf4, 0x63, 0xff, 0x82, 0xe6, 0xed, 0x09, 0x29, 0xf8, 0x29, 0xa8, 0xff, 0x21, 0x89, 0xff, 0x82, 0xc6, 0xff, 0xfc, 0xa2, 0xff, 0x9b, 0x25, 0xff, 0x19, 0x69, 0xff, 0x21, 0x89, 0xff, 0x31, 0xc9, 0xff, 0x31, 0xc9, 0xff, 0x31, 0xc9, 0xff, 0x31, 0xc9, 0xff, 0x31, 0xc9, 0xff, 0x31, 0xc9, 0xff, 0x31, 0xc9, 0xff, 0x39, 0xc9, 0xff, 0x69, 0xc8, 0xff, 0x99, 0xc8, 0xff, 0xc1, 0xc8, 0xff, 0xd1, 0xe7, 0xff, 0xd9, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xd9, 0xe7, 0xff, 0xc9, 0xe8, 0xff, 0xc1, 0xc8, 0xff, 0x91, 0xc8, 0xff, 0x61, 0xc8, 0xff, 0x31, 0xc9, 0xff, 0x31, 0xc9, 0xff, 0x31, 0xc9, 0xff, 0x31, 0xc9, 0xff, 0x31, 0xc9, 0xff, 0x31, 0xc9, 0xff, 0x31, 0xc9, 0xff, 0x31, 0xc9, 0xff, 0x31, 0xc9, 0xff, 0x21, 0x89, 0xff, 0x19, 0x69, 0xff, 0x9b, 0x25, 0xff, 0xfc, 0xa2, 0xff, 0x82, 0xc6, 0xff, 0x21, 0x89, 0xff, 0x29, 0xa8, 0xff, 0x09, 0x29, 0xf9, 0x82, 0xe6, 0xee, 0xf4, 0x63, 0xff, 0xd4, 0x04, 0xde, 0xcb, 0xc4, 0xa8, + 0xcb, 0xe4, 0xa3, 0xdc, 0x23, 0xda, 0xe4, 0x24, 0xff, 0x4a, 0x28, 0xf5, 0x09, 0x49, 0xfd, 0x31, 0xc8, 0xff, 0x19, 0x69, 0xff, 0x82, 0xe6, 0xff, 0xfc, 0x62, 0xff, 0xc3, 0xa4, 0xff, 0x7a, 0xc6, 0xff, 0x7a, 0xc6, 0xff, 0x82, 0xe6, 0xff, 0x82, 0xe6, 0xff, 0x82, 0xe6, 0xff, 0x82, 0xe6, 0xff, 0x82, 0xe6, 0xff, 0x92, 0xc6, 0xff, 0xb2, 0x67, 0xff, 0xd2, 0x07, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xd9, 0xe7, 0xff, 0xd2, 0x07, 0xff, 0xb2, 0x67, 0xff, 0x8a, 0xc6, 0xff, 0x82, 0xe6, 0xff, 0x82, 0xe6, 0xff, 0x82, 0xe6, 0xff, 0x82, 0xe6, 0xff, 0x82, 0xe6, 0xff, 0x82, 0xe6, 0xff, 0x7a, 0xc6, 0xff, 0x7a, 0xa6, 0xff, 0xc3, 0xa4, 0xff, 0xfc, 0x62, 0xff, 0x82, 0xc6, 0xff, 0x19, 0x69, 0xff, 0x31, 0xc8, 0xff, 0x09, 0x49, 0xfd, 0x4a, 0x08, 0xf5, 0xe4, 0x44, 0xff, 0xdc, 0x23, 0xda, 0xcb, 0xe4, 0xa3, + 0xcb, 0xe4, 0xa0, 0xdc, 0x03, 0xd6, 0xdc, 0x04, 0xff, 0x7a, 0xc6, 0xff, 0x5a, 0x47, 0xff, 0x62, 0x67, 0xff, 0x62, 0x87, 0xff, 0xbb, 0xa4, 0xff, 0xf4, 0x63, 0xff, 0xbb, 0xa4, 0xff, 0xa3, 0x45, 0xff, 0xab, 0x65, 0xff, 0xab, 0x65, 0xff, 0xab, 0x65, 0xff, 0xab, 0x65, 0xff, 0xb3, 0x45, 0xff, 0xca, 0x86, 0xff, 0xe2, 0x07, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xda, 0x07, 0xff, 0xca, 0xa6, 0xff, 0xb3, 0x45, 0xff, 0xab, 0x65, 0xff, 0xab, 0x65, 0xff, 0xab, 0x65, 0xff, 0xab, 0x65, 0xff, 0xab, 0x65, 0xff, 0xa3, 0x45, 0xff, 0xbb, 0xa4, 0xff, 0xf4, 0x63, 0xff, 0xbb, 0xa4, 0xff, 0x62, 0x87, 0xff, 0x62, 0x67, 0xff, 0x5a, 0x47, 0xff, 0x7a, 0xc6, 0xff, 0xdc, 0x04, 0xff, 0xdc, 0x03, 0xd6, 0xcb, 0xe4, 0xa0, + 0xcb, 0xe4, 0xa0, 0xcb, 0xe4, 0xd6, 0xcb, 0xe4, 0xff, 0xec, 0x43, 0xff, 0xfc, 0x83, 0xff, 0xf4, 0x63, 0xff, 0xe4, 0x23, 0xff, 0xf4, 0x63, 0xff, 0xd3, 0xe4, 0xff, 0x42, 0x08, 0xff, 0x21, 0xa9, 0xff, 0x39, 0xe9, 0xff, 0x39, 0xe9, 0xff, 0x39, 0xe9, 0xff, 0x81, 0xe8, 0xff, 0xd1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xc9, 0xe8, 0xff, 0x71, 0xe8, 0xff, 0x39, 0xe9, 0xff, 0x39, 0xe9, 0xff, 0x39, 0xe9, 0xff, 0x39, 0xe9, 0xff, 0x21, 0xa9, 0xff, 0x42, 0x08, 0xff, 0xd3, 0xe3, 0xff, 0xf4, 0x63, 0xff, 0xe4, 0x23, 0xff, 0xf4, 0x63, 0xff, 0xfc, 0x83, 0xff, 0xec, 0x43, 0xff, 0xcb, 0xe4, 0xff, 0xcb, 0xe4, 0xd6, 0xcb, 0xe4, 0xa0, + 0xcb, 0xe4, 0xa0, 0xcb, 0xe4, 0xd6, 0xd3, 0xe4, 0xff, 0xc3, 0xa4, 0xff, 0xb3, 0x84, 0xff, 0xbb, 0xa4, 0xff, 0xdc, 0x03, 0xff, 0xbb, 0xa4, 0xff, 0x42, 0x08, 0xff, 0x29, 0xa9, 0xff, 0x42, 0x08, 0xff, 0x42, 0x08, 0xff, 0x5a, 0x08, 0xff, 0xb9, 0xe8, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xd9, 0xe7, 0xff, 0xd1, 0xe7, 0xff, 0xb1, 0xe8, 0xff, 0x99, 0xe8, 0xff, 0x82, 0x08, 0xff, 0x72, 0x08, 0xff, 0x6a, 0x08, 0xff, 0x62, 0x08, 0xff, 0x6a, 0x08, 0xff, 0x72, 0x08, 0xff, 0x82, 0x08, 0xff, 0x99, 0xe8, 0xff, 0xb9, 0xe8, 0xff, 0xd9, 0xe7, 0xff, 0xd9, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xa9, 0xe8, 0xff, 0x52, 0x08, 0xff, 0x42, 0x08, 0xff, 0x42, 0x08, 0xff, 0x42, 0x08, 0xff, 0x29, 0xa9, 0xff, 0x42, 0x08, 0xff, 0xbb, 0xa4, 0xff, 0xdc, 0x03, 0xff, 0xbb, 0xa4, 0xff, 0xb3, 0x84, 0xff, 0xc3, 0xa4, 0xff, 0xd3, 0xe4, 0xff, 0xcb, 0xe4, 0xd6, 0xcb, 0xe4, 0xa0, + 0xcb, 0xe4, 0xa0, 0xdc, 0x03, 0xd6, 0xdc, 0x23, 0xff, 0x4a, 0x27, 0xff, 0x09, 0x4a, 0xff, 0x19, 0x89, 0xff, 0xab, 0x65, 0xff, 0x93, 0x06, 0xff, 0x11, 0x6a, 0xff, 0x42, 0x28, 0xff, 0x52, 0x48, 0xff, 0x72, 0x08, 0xff, 0xd1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xd1, 0xe7, 0xff, 0xa2, 0x08, 0xff, 0x72, 0x08, 0xff, 0x52, 0x28, 0xff, 0x4a, 0x28, 0xff, 0x4a, 0x28, 0xff, 0x4a, 0x28, 0xff, 0x4a, 0x28, 0xff, 0x4a, 0x28, 0xff, 0x4a, 0x28, 0xff, 0x4a, 0x28, 0xff, 0x4a, 0x28, 0xff, 0x4a, 0x28, 0xff, 0x4a, 0x28, 0xff, 0x4a, 0x28, 0xff, 0x52, 0x28, 0xff, 0x7a, 0x08, 0xff, 0xaa, 0x08, 0xff, 0xd1, 0xe7, 0xff, 0xe1, 0xc7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xc7, 0xff, 0xc9, 0xe7, 0xff, 0x6a, 0x28, 0xff, 0x4a, 0x28, 0xff, 0x4a, 0x28, 0xff, 0x42, 0x08, 0xff, 0x11, 0x6a, 0xff, 0x93, 0x05, 0xff, 0xab, 0x65, 0xff, 0x19, 0x89, 0xff, 0x09, 0x4a, 0xff, 0x4a, 0x27, 0xff, 0xdc, 0x23, 0xff, 0xdc, 0x03, 0xd6, 0xcb, 0xe4, 0xa0, + 0xcb, 0xe4, 0xa0, 0xdc, 0x03, 0xd6, 0xdc, 0x23, 0xff, 0x52, 0x48, 0xff, 0x11, 0x69, 0xff, 0x21, 0xa9, 0xff, 0xab, 0x65, 0xff, 0xa3, 0x45, 0xff, 0x29, 0xc9, 0xff, 0x42, 0x09, 0xff, 0x8a, 0x08, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xc9, 0xe7, 0xff, 0x92, 0x08, 0xff, 0x52, 0x28, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x5a, 0x28, 0xff, 0x9a, 0x08, 0xff, 0xd1, 0xe8, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xd9, 0xe8, 0xff, 0x7a, 0x08, 0xff, 0x4a, 0x28, 0xff, 0x42, 0x08, 0xff, 0x29, 0xc9, 0xff, 0x9b, 0x45, 0xff, 0xab, 0x65, 0xff, 0x21, 0xa9, 0xff, 0x11, 0x69, 0xff, 0x52, 0x48, 0xff, 0xdc, 0x24, 0xff, 0xdc, 0x03, 0xd6, 0xcb, 0xe4, 0xa0, + 0xcb, 0xc4, 0xa0, 0xdc, 0x03, 0xd6, 0xdc, 0x04, 0xff, 0x62, 0x67, 0xff, 0x29, 0xa9, 0xff, 0x39, 0xe9, 0xff, 0xab, 0x65, 0xff, 0xa3, 0x45, 0xff, 0x29, 0xc9, 0xff, 0x81, 0xe8, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xd1, 0xe7, 0xff, 0x9a, 0x08, 0xff, 0x52, 0x28, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x28, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x42, 0x29, 0xff, 0x42, 0x29, 0xff, 0x42, 0x29, 0xff, 0x42, 0x29, 0xff, 0x42, 0x29, 0xff, 0x42, 0x29, 0xff, 0x42, 0x29, 0xff, 0x42, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x28, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x5a, 0x28, 0xff, 0xa1, 0xe8, 0xff, 0xd9, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0x7a, 0x08, 0xff, 0x42, 0x09, 0xff, 0x29, 0xc9, 0xff, 0xa3, 0x45, 0xff, 0xab, 0x65, 0xff, 0x39, 0xe9, 0xff, 0x29, 0xa9, 0xff, 0x62, 0x67, 0xff, 0xdc, 0x04, 0xff, 0xdc, 0x03, 0xd6, 0xcb, 0xc4, 0xa0, + 0xcb, 0xc4, 0xa0, 0xdc, 0x03, 0xd6, 0xdc, 0x04, 0xff, 0x5a, 0x67, 0xff, 0x21, 0xa9, 0xff, 0x31, 0xe9, 0xff, 0xab, 0x65, 0xff, 0xa3, 0x45, 0xff, 0x79, 0xc9, 0xff, 0xe1, 0xc7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xb1, 0xe8, 0xff, 0x6a, 0x28, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x28, 0xff, 0x4a, 0x29, 0xff, 0x42, 0x29, 0xff, 0x42, 0x29, 0xff, 0x3a, 0x09, 0xff, 0x3a, 0x29, 0xff, 0x42, 0x29, 0xff, 0x42, 0x29, 0xff, 0x42, 0x29, 0xff, 0x42, 0x29, 0xff, 0x42, 0x29, 0xff, 0x42, 0x29, 0xff, 0x3a, 0x29, 0xff, 0x3a, 0x09, 0xff, 0x42, 0x29, 0xff, 0x42, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x28, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x7a, 0x28, 0xff, 0xc1, 0xe8, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xc7, 0xff, 0x72, 0x08, 0xff, 0x29, 0xc9, 0xff, 0xa3, 0x45, 0xff, 0xab, 0x65, 0xff, 0x31, 0xe9, 0xff, 0x21, 0xa9, 0xff, 0x5a, 0x67, 0xff, 0xdc, 0x03, 0xff, 0xdc, 0x03, 0xd6, 0xcb, 0xc4, 0xa0, + 0xcb, 0xc4, 0xa0, 0xdc, 0x03, 0xd6, 0xdc, 0x03, 0xff, 0x5a, 0x67, 0xff, 0x21, 0xa9, 0xff, 0x31, 0xe9, 0xff, 0xab, 0x65, 0xff, 0xb2, 0xc6, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0x72, 0x08, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x28, 0xff, 0x4a, 0x28, 0xff, 0x42, 0x29, 0xff, 0x3a, 0x09, 0xff, 0x42, 0x29, 0xff, 0x4a, 0x48, 0xff, 0x5a, 0x67, 0xff, 0x62, 0x66, 0xff, 0x6a, 0x86, 0xff, 0x72, 0x86, 0xff, 0x72, 0x85, 0xff, 0x72, 0x85, 0xff, 0x72, 0x86, 0xff, 0x6a, 0x86, 0xff, 0x62, 0x66, 0xff, 0x5a, 0x67, 0xff, 0x4a, 0x48, 0xff, 0x42, 0x29, 0xff, 0x3a, 0x09, 0xff, 0x42, 0x29, 0xff, 0x4a, 0x28, 0xff, 0x4a, 0x28, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x5a, 0x28, 0xff, 0xb1, 0xe8, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xd9, 0xe8, 0xff, 0x51, 0xc9, 0xff, 0xa3, 0x45, 0xff, 0xab, 0x65, 0xff, 0x31, 0xe9, 0xff, 0x21, 0xa9, 0xff, 0x5a, 0x67, 0xff, 0xdc, 0x03, 0xff, 0xdc, 0x03, 0xd6, 0xcb, 0xc4, 0xa0, + 0xcb, 0xc4, 0xa0, 0xdc, 0x03, 0xd6, 0xdc, 0x03, 0xff, 0x5a, 0x67, 0xff, 0x21, 0xa9, 0xff, 0x31, 0xe9, 0xff, 0xb3, 0x45, 0xff, 0xda, 0x07, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xc9, 0xe8, 0xff, 0x72, 0x28, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x42, 0x29, 0xff, 0x3a, 0x2a, 0xff, 0x42, 0x29, 0xff, 0x5a, 0x67, 0xff, 0x72, 0x86, 0xff, 0x7a, 0xa5, 0xff, 0x82, 0xa4, 0xff, 0x82, 0xa4, 0xff, 0x82, 0xa4, 0xff, 0x82, 0xa5, 0xff, 0x82, 0xa4, 0xff, 0x82, 0xa4, 0xff, 0x82, 0xa5, 0xff, 0x82, 0xa4, 0xff, 0x82, 0xa4, 0xff, 0x82, 0xa4, 0xff, 0x7a, 0xa5, 0xff, 0x72, 0x86, 0xff, 0x5a, 0x67, 0xff, 0x42, 0x29, 0xff, 0x3a, 0x2a, 0xff, 0x42, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x52, 0x29, 0xff, 0xaa, 0x08, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xc1, 0xc8, 0xff, 0xa3, 0x25, 0xff, 0xab, 0x65, 0xff, 0x31, 0xe9, 0xff, 0x21, 0xa9, 0xff, 0x5a, 0x67, 0xff, 0xdc, 0x03, 0xff, 0xdc, 0x03, 0xd6, 0xcb, 0xc4, 0xa0, + 0xcb, 0xc4, 0xa0, 0xdc, 0x03, 0xd6, 0xdc, 0x03, 0xff, 0x5a, 0x67, 0xff, 0x21, 0xa9, 0xff, 0x31, 0xe9, 0xff, 0xd2, 0x47, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xd1, 0xe7, 0xff, 0x7a, 0x28, 0xff, 0x42, 0x29, 0xff, 0x42, 0x29, 0xff, 0x5a, 0x47, 0xff, 0x72, 0xa5, 0xff, 0x82, 0xa4, 0xff, 0x82, 0xa4, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x82, 0xa4, 0xff, 0x82, 0xa4, 0xff, 0x72, 0xa5, 0xff, 0x5a, 0x47, 0xff, 0x42, 0x29, 0xff, 0x42, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x52, 0x28, 0xff, 0xa1, 0xe8, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xca, 0x66, 0xff, 0xab, 0x65, 0xff, 0x31, 0xe9, 0xff, 0x21, 0xa9, 0xff, 0x5a, 0x67, 0xff, 0xdc, 0x03, 0xff, 0xdc, 0x03, 0xd6, 0xcb, 0xc4, 0xa0, + 0xcb, 0xc4, 0xa0, 0xdc, 0x03, 0xd6, 0xdc, 0x03, 0xff, 0x5a, 0x67, 0xff, 0x29, 0xa9, 0xff, 0x79, 0xe8, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xd1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xd1, 0xe8, 0xff, 0x7a, 0x28, 0xff, 0x72, 0x86, 0xff, 0x82, 0xa4, 0xff, 0x82, 0xa4, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x82, 0xa4, 0xff, 0x82, 0xa4, 0xff, 0x72, 0x86, 0xff, 0x52, 0x48, 0xff, 0x42, 0x2a, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x52, 0x28, 0xff, 0xb9, 0xe8, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xbb, 0x05, 0xff, 0x31, 0xe9, 0xff, 0x29, 0xa9, 0xff, 0x5a, 0x67, 0xff, 0xdc, 0x03, 0xff, 0xdc, 0x03, 0xd6, 0xcb, 0xc4, 0xa0, + 0xcb, 0xc4, 0xa0, 0xdc, 0x03, 0xd6, 0xdc, 0x03, 0xff, 0x5a, 0x67, 0xff, 0x31, 0xa9, 0xff, 0xd1, 0xc7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xb9, 0xe8, 0xff, 0x62, 0x28, 0xff, 0xa2, 0x08, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xd9, 0xe7, 0xff, 0x9a, 0x65, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x82, 0xa4, 0xff, 0x7a, 0xa5, 0xff, 0x5a, 0x67, 0xff, 0x42, 0x29, 0xff, 0x42, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x5a, 0x28, 0xff, 0xd1, 0xe8, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xda, 0x27, 0xff, 0x39, 0xe9, 0xff, 0x29, 0xa9, 0xff, 0x5a, 0x67, 0xff, 0xdc, 0x03, 0xff, 0xdc, 0x03, 0xd6, 0xcb, 0xc4, 0xa0, + 0xcb, 0xc4, 0xa0, 0xd4, 0x03, 0xd6, 0xd4, 0x03, 0xff, 0x5a, 0x67, 0xff, 0x91, 0xc8, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xd1, 0xe8, 0xff, 0x6a, 0x28, 0xff, 0x4a, 0x29, 0xff, 0x52, 0x28, 0xff, 0xb1, 0xe8, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xd9, 0xe7, 0xff, 0x92, 0x66, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x82, 0xa4, 0xff, 0x62, 0x67, 0xff, 0x3a, 0x2a, 0xff, 0x42, 0x29, 0xff, 0x4a, 0x28, 0xff, 0x4a, 0x29, 0xff, 0x72, 0x08, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0x89, 0xe8, 0xff, 0x29, 0xa9, 0xff, 0x5a, 0x67, 0xff, 0xdc, 0x03, 0xff, 0xdc, 0x03, 0xd6, 0xcb, 0xc4, 0xa0, + 0xcb, 0xc4, 0xa0, 0xd4, 0x03, 0xd6, 0xd4, 0x03, 0xff, 0x6a, 0x47, 0xff, 0xd1, 0xc7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0x99, 0xe8, 0xff, 0x4a, 0x28, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x28, 0xff, 0x52, 0x29, 0xff, 0xa9, 0xe8, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xd9, 0xe7, 0xff, 0x92, 0x66, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x72, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x82, 0xc4, 0xff, 0x5a, 0x67, 0xff, 0x3a, 0x0a, 0xff, 0x42, 0x29, 0xff, 0x4a, 0x28, 0xff, 0x4a, 0x29, 0xff, 0xb2, 0x08, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xc1, 0xe8, 0xff, 0x31, 0xa9, 0xff, 0x5a, 0x67, 0xff, 0xd4, 0x03, 0xff, 0xd4, 0x03, 0xd6, 0xcb, 0xc4, 0xa0, + 0xcb, 0xc4, 0xa0, 0xd4, 0x03, 0xd6, 0xd4, 0x03, 0xff, 0xa2, 0x27, 0xff, 0xe1, 0xc7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xc1, 0xc8, 0xff, 0x4a, 0x09, 0xff, 0x4a, 0x28, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x3a, 0x2a, 0xff, 0x5a, 0x48, 0xff, 0xca, 0x26, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xd9, 0xe7, 0xff, 0x92, 0x66, 0xff, 0x7a, 0xa5, 0xff, 0x72, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x82, 0xa5, 0xff, 0x82, 0xa4, 0xff, 0x82, 0xa4, 0xff, 0x82, 0xa4, 0xff, 0x82, 0xa4, 0xff, 0x82, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x72, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x72, 0xa5, 0xff, 0x82, 0xa5, 0xff, 0x82, 0xc4, 0xff, 0x52, 0x48, 0xff, 0x3a, 0x2a, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x5a, 0x28, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xd9, 0xe7, 0xff, 0x71, 0xc8, 0xff, 0x5a, 0x67, 0xff, 0xd4, 0x03, 0xff, 0xd4, 0x03, 0xd6, 0xcb, 0xc4, 0xa0, + 0xc3, 0xc4, 0xa0, 0xd3, 0xe3, 0xd6, 0xd3, 0xe4, 0xff, 0xd1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0x81, 0xe9, 0xff, 0x42, 0x09, 0xff, 0x4a, 0x28, 0xff, 0x4a, 0x29, 0xff, 0x42, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x7a, 0xa5, 0xff, 0x8a, 0xa5, 0xff, 0xc2, 0x07, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xd9, 0xe7, 0xff, 0x92, 0x66, 0xff, 0x7a, 0xa5, 0xff, 0x82, 0xa4, 0xff, 0x7a, 0xa5, 0xff, 0x72, 0x86, 0xff, 0x6a, 0x86, 0xff, 0x62, 0x67, 0xff, 0x62, 0x67, 0xff, 0x6a, 0x66, 0xff, 0x72, 0x86, 0xff, 0x7a, 0xa5, 0xff, 0x82, 0xa4, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x72, 0xa5, 0xff, 0x82, 0xc4, 0xff, 0x7a, 0xa5, 0xff, 0x4a, 0x29, 0xff, 0x42, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x28, 0xff, 0xa1, 0xe8, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xb1, 0xc8, 0xff, 0x5a, 0x67, 0xff, 0xd4, 0x03, 0xff, 0xd3, 0xe3, 0xd6, 0xc3, 0xc4, 0xa0, + 0xc3, 0xc4, 0xa0, 0xd3, 0xe3, 0xd6, 0xdb, 0x45, 0xff, 0xd9, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xda, 0x07, 0xff, 0x31, 0xc9, 0xff, 0x42, 0x09, 0xff, 0x4a, 0x28, 0xff, 0x42, 0x29, 0xff, 0x42, 0x29, 0xff, 0x6a, 0x87, 0xff, 0x82, 0xc4, 0xff, 0x72, 0x85, 0xff, 0x7a, 0x85, 0xff, 0xc2, 0x07, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xd9, 0xe7, 0xff, 0x9a, 0x66, 0xff, 0x62, 0x67, 0xff, 0x52, 0x49, 0xff, 0x42, 0x29, 0xff, 0x3a, 0x09, 0xff, 0x3a, 0x09, 0xff, 0x3a, 0x09, 0xff, 0x42, 0x29, 0xff, 0x42, 0x29, 0xff, 0x4a, 0x48, 0xff, 0x62, 0x67, 0xff, 0x7a, 0xa5, 0xff, 0x82, 0xa4, 0xff, 0x7a, 0x85, 0xff, 0x72, 0x85, 0xff, 0x72, 0x85, 0xff, 0x72, 0x85, 0xff, 0x72, 0x85, 0xff, 0x72, 0x85, 0xff, 0x72, 0x85, 0xff, 0x7a, 0xa6, 0xff, 0x82, 0xc4, 0xff, 0x6a, 0x86, 0xff, 0x42, 0x29, 0xff, 0x42, 0x29, 0xff, 0x4a, 0x28, 0xff, 0x5a, 0x09, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xd1, 0xc8, 0xff, 0x7a, 0x47, 0xff, 0xd3, 0xe3, 0xff, 0xd3, 0xe3, 0xd6, 0xc3, 0xc4, 0xa0, + 0xc3, 0xc4, 0xa0, 0xd3, 0xe3, 0xd7, 0xe2, 0xa6, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xca, 0x67, 0xff, 0x29, 0xc9, 0xff, 0x42, 0x09, 0xff, 0x4a, 0x28, 0xff, 0x42, 0x29, 0xff, 0x52, 0x69, 0xff, 0x72, 0x42, 0xff, 0x61, 0x80, 0xff, 0x59, 0x80, 0xff, 0x61, 0xa1, 0xff, 0x61, 0xa1, 0xff, 0xb9, 0xc5, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xd1, 0xe7, 0xff, 0x72, 0x29, 0xff, 0x42, 0x09, 0xff, 0x21, 0x25, 0xff, 0x21, 0x04, 0xff, 0x29, 0x25, 0xff, 0x21, 0x04, 0xff, 0x31, 0xa7, 0xff, 0x4a, 0x4a, 0xff, 0x42, 0x2a, 0xff, 0x3a, 0x09, 0xff, 0x52, 0x49, 0xff, 0x62, 0x24, 0xff, 0x61, 0xa0, 0xff, 0x61, 0xa0, 0xff, 0x61, 0xa0, 0xff, 0x61, 0xa0, 0xff, 0x61, 0xa0, 0xff, 0x61, 0xa1, 0xff, 0x59, 0x80, 0xff, 0x59, 0xa0, 0xff, 0x72, 0x64, 0xff, 0x82, 0xc5, 0xff, 0x52, 0x48, 0xff, 0x42, 0x29, 0xff, 0x4a, 0x28, 0xff, 0x42, 0x09, 0xff, 0xb1, 0xc8, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xa2, 0x27, 0xff, 0xd3, 0xe4, 0xff, 0xd3, 0xe3, 0xd6, 0xc3, 0xc4, 0xa0, + 0xc3, 0xc4, 0xa0, 0xdb, 0xa4, 0xdb, 0xe2, 0x47, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xb2, 0xe6, 0xff, 0x29, 0xc9, 0xff, 0x42, 0x09, 0xff, 0x4a, 0x49, 0xff, 0x42, 0x29, 0xff, 0x51, 0xc3, 0xff, 0x69, 0xe1, 0xff, 0x93, 0xab, 0xff, 0xac, 0xaf, 0xff, 0xb4, 0xd0, 0xff, 0xb4, 0xd0, 0xff, 0xb4, 0xb0, 0xff, 0xd2, 0x89, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xd1, 0xe7, 0xff, 0x69, 0xc7, 0xff, 0x7b, 0xcf, 0xff, 0x9c, 0xf3, 0xff, 0x94, 0xb2, 0xff, 0x94, 0x92, 0xff, 0x52, 0x8a, 0xff, 0x39, 0xc7, 0xff, 0x4a, 0x49, 0xff, 0x4a, 0x29, 0xff, 0x39, 0xe9, 0xff, 0x52, 0xab, 0xff, 0xac, 0xb0, 0xff, 0xb4, 0xf0, 0xff, 0xac, 0xaf, 0xff, 0xac, 0xaf, 0xff, 0xac, 0xd0, 0xff, 0xb4, 0xd0, 0xff, 0xac, 0x8f, 0xff, 0x8b, 0x48, 0xff, 0x59, 0x80, 0xff, 0x72, 0x42, 0xff, 0x6a, 0x87, 0xff, 0x42, 0x29, 0xff, 0x4a, 0x28, 0xff, 0x42, 0x09, 0xff, 0x71, 0xc9, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xba, 0x07, 0xff, 0xdb, 0xa4, 0xff, 0xd3, 0xe3, 0xd6, 0xc3, 0xc4, 0xa0, + 0xc3, 0xc4, 0xa0, 0xdb, 0x25, 0xe4, 0xe2, 0x27, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x07, 0xff, 0xa3, 0x45, 0xff, 0x29, 0xc9, 0xff, 0x42, 0x09, 0xff, 0x4a, 0x29, 0xff, 0x41, 0xc6, 0xff, 0x72, 0x64, 0xff, 0xd6, 0x36, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xeb, 0x8e, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xd1, 0xe8, 0xff, 0xf5, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xb5, 0x96, 0xff, 0x29, 0x25, 0xff, 0x41, 0xe8, 0xff, 0x4a, 0x49, 0xff, 0x31, 0x86, 0xff, 0x8c, 0x52, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xb5, 0x11, 0xff, 0x69, 0xc1, 0xff, 0x72, 0x44, 0xff, 0x4a, 0x48, 0xff, 0x4a, 0x29, 0xff, 0x42, 0x29, 0xff, 0x41, 0xc9, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xca, 0x07, 0xff, 0xdb, 0x45, 0xff, 0xd3, 0xe3, 0xd6, 0xc3, 0xc4, 0xa0, + 0xc3, 0xa4, 0xa0, 0xda, 0xc6, 0xed, 0xe2, 0x07, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xd2, 0x47, 0xff, 0xa3, 0x45, 0xff, 0x29, 0xc9, 0xff, 0x42, 0x29, 0xff, 0x42, 0x09, 0xff, 0x51, 0xc5, 0xff, 0xcd, 0x93, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe3, 0x6e, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xea, 0x8a, 0xff, 0xfe, 0x39, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe7, 0x3c, 0xff, 0x42, 0x28, 0xff, 0x31, 0x86, 0xff, 0x4a, 0x49, 0xff, 0x31, 0x86, 0xff, 0x94, 0x72, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf7, 0x9d, 0xff, 0xf7, 0x7d, 0xff, 0xff, 0xbe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xa4, 0x6e, 0xff, 0x69, 0xe1, 0xff, 0x5a, 0x47, 0xff, 0x42, 0x29, 0xff, 0x42, 0x29, 0xff, 0x31, 0xc9, 0xff, 0xda, 0x27, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xd1, 0xe7, 0xff, 0xda, 0xc6, 0xff, 0xd3, 0xe3, 0xd6, 0xc3, 0xa4, 0xa0, + 0xc3, 0xc4, 0xa0, 0xe2, 0x66, 0xf2, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xca, 0xa6, 0xff, 0xa3, 0x45, 0xff, 0x29, 0xc9, 0xff, 0x42, 0x29, 0xff, 0x41, 0xe7, 0xff, 0x6a, 0xa7, 0xff, 0xf7, 0x3b, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xbd, 0x32, 0xff, 0x83, 0x07, 0xff, 0x8b, 0x28, 0xff, 0x9c, 0x0c, 0xff, 0xf7, 0x5c, 0xff, 0xff, 0xff, 0xff, 0xff, 0xdf, 0xff, 0xca, 0x8a, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x8a, 0xff, 0xed, 0xd7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xdf, 0xff, 0x6b, 0x6d, 0xff, 0x21, 0x24, 0xff, 0x4a, 0x29, 0xff, 0x31, 0xa6, 0xff, 0x8c, 0x51, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xd6, 0x37, 0xff, 0x72, 0x65, 0xff, 0x7a, 0xc6, 0xff, 0x7a, 0xc6, 0xff, 0xc5, 0xb5, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xcd, 0xf5, 0xff, 0x72, 0x22, 0xff, 0x62, 0x25, 0xff, 0x4a, 0x29, 0xff, 0x42, 0x09, 0xff, 0x31, 0xc9, 0xff, 0xca, 0x67, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xd9, 0xe7, 0xff, 0xe2, 0x86, 0xff, 0xd3, 0xe3, 0xd6, 0xc3, 0xc4, 0xa0, + 0xc3, 0xc4, 0xa0, 0xe2, 0x47, 0xf6, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xc2, 0xc6, 0xff, 0xa3, 0x45, 0xff, 0x29, 0xc9, 0xff, 0x42, 0x29, 0xff, 0x41, 0xc6, 0xff, 0x83, 0x08, 0xff, 0xf7, 0x7c, 0xff, 0xff, 0xff, 0xff, 0xf7, 0x7d, 0xff, 0x72, 0x45, 0xff, 0x51, 0x20, 0xff, 0x61, 0xa0, 0xff, 0x51, 0x41, 0xff, 0xcd, 0xf5, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x9c, 0xb2, 0xff, 0xa9, 0xc7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xda, 0x29, 0xff, 0xf6, 0x18, 0xff, 0xff, 0xff, 0xff, 0x9c, 0xd3, 0xff, 0x21, 0x04, 0xff, 0x42, 0x08, 0xff, 0x39, 0xa6, 0xff, 0x8c, 0x51, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xad, 0x54, 0xff, 0x38, 0xa0, 0xff, 0x61, 0x80, 0xff, 0x48, 0xc0, 0xff, 0x8b, 0x49, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xd6, 0x57, 0xff, 0x72, 0x43, 0xff, 0x6a, 0x44, 0xff, 0x4a, 0x48, 0xff, 0x3a, 0x09, 0xff, 0x31, 0xc9, 0xff, 0xc2, 0xa6, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x46, 0xff, 0xd3, 0xe3, 0xd6, 0xc3, 0xc4, 0xa0, + 0xc3, 0xa4, 0xa0, 0xe2, 0x27, 0xf9, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xbb, 0x05, 0xff, 0xa3, 0x45, 0xff, 0x29, 0xc9, 0xff, 0x3a, 0x09, 0xff, 0x49, 0xe6, 0xff, 0x83, 0x28, 0xff, 0xf7, 0x5c, 0xff, 0xff, 0xff, 0xff, 0xf7, 0x5c, 0xff, 0x72, 0x65, 0xff, 0x61, 0xe2, 0xff, 0x72, 0x84, 0xff, 0x61, 0xc1, 0xff, 0xbd, 0x32, 0xff, 0xff, 0xff, 0xff, 0xff, 0xbf, 0xff, 0x84, 0x30, 0xff, 0x39, 0x86, 0xff, 0xa9, 0xa7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x8a, 0xff, 0xfe, 0x39, 0xff, 0xce, 0x59, 0xff, 0x31, 0x86, 0xff, 0x39, 0xa7, 0xff, 0x39, 0xa6, 0xff, 0x8c, 0x71, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xa5, 0x35, 0xff, 0x28, 0xa1, 0xff, 0x61, 0xa0, 0xff, 0x48, 0xe0, 0xff, 0x93, 0x8a, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xd6, 0x37, 0xff, 0x72, 0x43, 0xff, 0x6a, 0x44, 0xff, 0x52, 0x48, 0xff, 0x3a, 0x09, 0xff, 0x29, 0xc9, 0xff, 0xba, 0xc6, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x27, 0xff, 0xd3, 0xe3, 0xd6, 0xc3, 0xa4, 0xa0, + 0xc3, 0xa4, 0xa0, 0xe2, 0x07, 0xfb, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xbb, 0x25, 0xff, 0xa3, 0x45, 0xff, 0x29, 0xc9, 0xff, 0x3a, 0x09, 0xff, 0x49, 0xe6, 0xff, 0x8b, 0x27, 0xff, 0xf7, 0x5c, 0xff, 0xff, 0xff, 0xff, 0xf7, 0x7d, 0xff, 0x7a, 0xa5, 0xff, 0x61, 0xe2, 0xff, 0x7a, 0xc5, 0xff, 0x7a, 0xa4, 0xff, 0x62, 0x87, 0xff, 0x52, 0xab, 0xff, 0x52, 0xaa, 0xff, 0x4a, 0x49, 0xff, 0x41, 0xe8, 0xff, 0x39, 0x66, 0xff, 0xca, 0xcb, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xea, 0xaa, 0xff, 0xed, 0xb6, 0xff, 0x4a, 0x49, 0xff, 0x29, 0x45, 0xff, 0x31, 0xa6, 0xff, 0x8c, 0x71, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xce, 0x7a, 0xff, 0x83, 0xad, 0xff, 0xa4, 0x2c, 0xff, 0xa4, 0x2d, 0xff, 0xde, 0x78, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xb4, 0xd0, 0xff, 0x6a, 0x02, 0xff, 0x72, 0x84, 0xff, 0x52, 0x48, 0xff, 0x3a, 0x09, 0xff, 0x29, 0xc9, 0xff, 0xba, 0xe6, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x07, 0xff, 0xd3, 0xe3, 0xd6, 0xc3, 0xa4, 0xa0, + 0xc3, 0xa4, 0xa0, 0xe2, 0x07, 0xfc, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xbb, 0x25, 0xff, 0xa3, 0x45, 0xff, 0x29, 0xc9, 0xff, 0x3a, 0x0a, 0xff, 0x49, 0xe6, 0xff, 0x8b, 0x27, 0xff, 0xf7, 0x5c, 0xff, 0xff, 0xff, 0xff, 0xf7, 0x7d, 0xff, 0x7a, 0xa5, 0xff, 0x61, 0xe2, 0xff, 0x7a, 0xc5, 0xff, 0x82, 0xc5, 0xff, 0x52, 0x27, 0xff, 0x29, 0x87, 0xff, 0x39, 0xa6, 0xff, 0x4a, 0x28, 0xff, 0x41, 0xe8, 0xff, 0x39, 0xa7, 0xff, 0xc5, 0x96, 0xff, 0xeb, 0xcf, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xea, 0xaa, 0xff, 0x93, 0x0c, 0xff, 0x21, 0x24, 0xff, 0x31, 0x86, 0xff, 0x8c, 0x71, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xbd, 0x73, 0xff, 0x59, 0x60, 0xff, 0x72, 0x43, 0xff, 0x82, 0xc5, 0xff, 0x5a, 0x47, 0xff, 0x3a, 0x09, 0xff, 0x29, 0xc9, 0xff, 0xb2, 0xe6, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x07, 0xff, 0xd3, 0xe3, 0xd6, 0xc3, 0xa4, 0xa0, + 0xc3, 0xa4, 0xa0, 0xe2, 0x07, 0xfb, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xbb, 0x25, 0xff, 0xa3, 0x45, 0xff, 0x29, 0xc9, 0xff, 0x3a, 0x0a, 0xff, 0x49, 0xe6, 0xff, 0x8b, 0x27, 0xff, 0xf7, 0x5c, 0xff, 0xff, 0xff, 0xff, 0xf7, 0x7d, 0xff, 0x7a, 0xa5, 0xff, 0x61, 0xe2, 0xff, 0x7a, 0xc5, 0xff, 0x82, 0xa5, 0xff, 0x52, 0x27, 0xff, 0x31, 0xa8, 0xff, 0x39, 0xc7, 0xff, 0x4a, 0x28, 0xff, 0x39, 0xc7, 0xff, 0x5a, 0xaa, 0xff, 0xef, 0x5d, 0xff, 0xff, 0x9e, 0xff, 0xe3, 0x6e, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xda, 0x49, 0xff, 0x61, 0x66, 0xff, 0x29, 0x45, 0xff, 0x8c, 0x71, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xdf, 0xff, 0xff, 0xdf, 0xff, 0xff, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xde, 0xb9, 0xff, 0x83, 0x08, 0xff, 0x6a, 0x22, 0xff, 0x7a, 0xa5, 0xff, 0x5a, 0x48, 0xff, 0x3a, 0x09, 0xff, 0x29, 0xc9, 0xff, 0xba, 0xe6, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x07, 0xff, 0xd3, 0xe3, 0xd6, 0xc3, 0xa4, 0xa0, + 0xc3, 0xa4, 0xa0, 0xe2, 0x27, 0xf9, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xbb, 0x06, 0xff, 0xa3, 0x45, 0xff, 0x29, 0xc9, 0xff, 0x3a, 0x09, 0xff, 0x49, 0xe6, 0xff, 0x8b, 0x27, 0xff, 0xf7, 0x5c, 0xff, 0xff, 0xff, 0xff, 0xf7, 0x7d, 0xff, 0x7a, 0xa5, 0xff, 0x61, 0xe2, 0xff, 0x7a, 0xc6, 0xff, 0x82, 0xa5, 0xff, 0x52, 0x06, 0xff, 0x39, 0xe8, 0xff, 0x39, 0xc7, 0xff, 0x41, 0xe7, 0xff, 0x31, 0x86, 0xff, 0x7b, 0xef, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xbd, 0x35, 0xff, 0xa9, 0x86, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xd1, 0xc7, 0xff, 0x59, 0x25, 0xff, 0x8c, 0x71, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xbd, 0xf8, 0xff, 0x52, 0x27, 0xff, 0x82, 0xe6, 0xff, 0x7a, 0xa5, 0xff, 0xac, 0xb0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xde, 0x98, 0xff, 0x72, 0x64, 0xff, 0x72, 0x43, 0xff, 0x5a, 0x68, 0xff, 0x3a, 0x09, 0xff, 0x31, 0xc9, 0xff, 0xba, 0xa6, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x27, 0xff, 0xd3, 0xe3, 0xd6, 0xc3, 0xa4, 0xa0, + 0xc3, 0xa4, 0xa0, 0xe2, 0x46, 0xf6, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xc2, 0xc6, 0xff, 0xa3, 0x45, 0xff, 0x29, 0xc9, 0xff, 0x3a, 0x09, 0xff, 0x49, 0xe6, 0xff, 0x8b, 0x28, 0xff, 0xf7, 0x5c, 0xff, 0xff, 0xff, 0xff, 0xf7, 0x5c, 0xff, 0x72, 0x85, 0xff, 0x6a, 0x02, 0xff, 0x7a, 0xa5, 0xff, 0x6a, 0x02, 0xff, 0xac, 0xd0, 0xff, 0xe7, 0x3e, 0xff, 0xe6, 0xfc, 0xff, 0x7b, 0xaf, 0xff, 0x20, 0xe4, 0xff, 0x9c, 0xf3, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xef, 0x3d, 0xff, 0xcd, 0xf8, 0xff, 0xdb, 0x4d, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xd1, 0xc7, 0xff, 0xa3, 0xae, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x9d, 0x35, 0xff, 0x20, 0x41, 0xff, 0x61, 0x80, 0xff, 0x50, 0xe0, 0xff, 0x6a, 0x05, 0xff, 0xf7, 0x7c, 0xff, 0xff, 0xff, 0xff, 0xef, 0x3c, 0xff, 0x82, 0xe6, 0xff, 0x6a, 0x23, 0xff, 0x52, 0x48, 0xff, 0x3a, 0x09, 0xff, 0x31, 0xc9, 0xff, 0xc2, 0x86, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x46, 0xff, 0xd3, 0xe3, 0xd6, 0xc3, 0xa4, 0xa0, + 0xc3, 0xa4, 0xa0, 0xe2, 0x86, 0xf1, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xca, 0x86, 0xff, 0xa3, 0x45, 0xff, 0x29, 0xc9, 0xff, 0x3a, 0x29, 0xff, 0x41, 0xc6, 0xff, 0x83, 0x28, 0xff, 0xff, 0x7d, 0xff, 0xff, 0xff, 0xff, 0xf7, 0x5c, 0xff, 0x61, 0xe4, 0xff, 0x51, 0x20, 0xff, 0x61, 0xc1, 0xff, 0x48, 0xe1, 0xff, 0xcd, 0xd4, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x9c, 0xb3, 0xff, 0x29, 0x24, 0xff, 0xc6, 0x18, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x9e, 0xff, 0xeb, 0xcf, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xda, 0x28, 0xff, 0xfe, 0x59, 0xff, 0xff, 0xff, 0xff, 0xad, 0x55, 0xff, 0x38, 0xe1, 0xff, 0x69, 0xe1, 0xff, 0x59, 0x40, 0xff, 0x69, 0xe4, 0xff, 0xef, 0x3b, 0xff, 0xff, 0xff, 0xff, 0xef, 0x3c, 0xff, 0x82, 0xe6, 0xff, 0x6a, 0x23, 0xff, 0x52, 0x48, 0xff, 0x3a, 0x09, 0xff, 0x31, 0xc9, 0xff, 0xca, 0x67, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xd9, 0xe7, 0xff, 0xda, 0x86, 0xff, 0xd3, 0xe3, 0xd6, 0xc3, 0xa4, 0xa0, + 0xc3, 0xa4, 0xa0, 0xda, 0xc5, 0xeb, 0xe2, 0x07, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xd2, 0x47, 0xff, 0xa3, 0x45, 0xff, 0x29, 0xc9, 0xff, 0x42, 0x29, 0xff, 0x41, 0xe7, 0xff, 0x72, 0xc7, 0xff, 0xf7, 0x5c, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xa4, 0x4d, 0xff, 0x61, 0xc1, 0xff, 0x6a, 0x03, 0xff, 0x7a, 0xc7, 0xff, 0xe6, 0xfa, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7b, 0xef, 0xff, 0x42, 0x08, 0xff, 0xef, 0x7d, 0xff, 0xff, 0xff, 0xff, 0xff, 0xbf, 0xff, 0xad, 0x55, 0xff, 0xa4, 0xf4, 0xff, 0xad, 0x55, 0xff, 0xa4, 0xb2, 0xff, 0xdb, 0x2d, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xea, 0x8a, 0xff, 0xfe, 0x79, 0xff, 0xc5, 0xb5, 0xff, 0x51, 0x43, 0xff, 0x61, 0xc2, 0xff, 0x59, 0x81, 0xff, 0x93, 0xcb, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe6, 0xfa, 0xff, 0x7a, 0xa5, 0xff, 0x62, 0x24, 0xff, 0x4a, 0x49, 0xff, 0x42, 0x09, 0xff, 0x31, 0xc9, 0xff, 0xda, 0x07, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xd1, 0xe7, 0xff, 0xda, 0xe6, 0xff, 0xd3, 0xe3, 0xd6, 0xc3, 0xa4, 0xa0, + 0xc3, 0xa4, 0xa0, 0xdb, 0x25, 0xe3, 0xe2, 0x27, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x07, 0xff, 0xa3, 0x25, 0xff, 0x29, 0xc9, 0xff, 0x42, 0x29, 0xff, 0x42, 0x08, 0xff, 0x51, 0xe5, 0xff, 0xd5, 0xf5, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xef, 0x3c, 0xff, 0xef, 0x1b, 0xff, 0xff, 0xbe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xdf, 0xff, 0x42, 0x28, 0xff, 0x63, 0x0c, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc6, 0x18, 0xff, 0x08, 0x61, 0xff, 0x10, 0xa2, 0xff, 0x29, 0x65, 0xff, 0x00, 0x00, 0xff, 0x62, 0xcb, 0xff, 0xeb, 0xaf, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xea, 0x8a, 0xff, 0xf6, 0x17, 0xff, 0xe6, 0xd9, 0xff, 0xe6, 0xb9, 0xff, 0xe6, 0xda, 0xff, 0xff, 0xbe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xcd, 0xb5, 0xff, 0x72, 0x22, 0xff, 0x5a, 0x25, 0xff, 0x42, 0x29, 0xff, 0x42, 0x09, 0xff, 0x49, 0xc9, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xca, 0x07, 0xff, 0xdb, 0x45, 0xff, 0xd3, 0xe3, 0xd6, 0xc3, 0xa4, 0xa0, + 0xc3, 0xa4, 0xa0, 0xd3, 0x84, 0xda, 0xe2, 0x46, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xba, 0xc6, 0xff, 0x29, 0xc9, 0xff, 0x42, 0x29, 0xff, 0x42, 0x29, 0xff, 0x41, 0xa5, 0xff, 0x83, 0x07, 0xff, 0xef, 0x3b, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x94, 0x70, 0xff, 0x10, 0xa3, 0xff, 0xb5, 0x96, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x9c, 0xd3, 0xff, 0x18, 0xa2, 0xff, 0x39, 0xc7, 0xff, 0x42, 0x28, 0xff, 0x21, 0x24, 0xff, 0x39, 0xc7, 0xff, 0xe7, 0x1c, 0xff, 0xeb, 0xaf, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xea, 0x8a, 0xff, 0xfe, 0x59, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xef, 0x1b, 0xff, 0x82, 0xe6, 0xff, 0x6a, 0x02, 0xff, 0x52, 0x48, 0xff, 0x42, 0x29, 0xff, 0x42, 0x29, 0xff, 0x79, 0xc9, 0xff, 0xe1, 0xc7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xb2, 0x07, 0xff, 0xd3, 0xa4, 0xff, 0xcb, 0xe3, 0xd6, 0xc3, 0xa4, 0xa0, + 0xc3, 0xa4, 0xa0, 0xd3, 0xc3, 0xd7, 0xda, 0xa6, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xca, 0x46, 0xff, 0x29, 0xc9, 0xff, 0x42, 0x09, 0xff, 0x4a, 0x49, 0xff, 0x42, 0x29, 0xff, 0x59, 0xc2, 0xff, 0x82, 0xe6, 0xff, 0xb5, 0x11, 0xff, 0xcd, 0xd5, 0xff, 0xcd, 0xb5, 0xff, 0xcd, 0xb4, 0xff, 0xcd, 0xd5, 0xff, 0xc5, 0xb4, 0xff, 0x9b, 0xcb, 0xff, 0x59, 0x80, 0xff, 0x49, 0xc6, 0xff, 0x94, 0xd4, 0xff, 0xbd, 0xf8, 0xff, 0xb5, 0x96, 0xff, 0x5a, 0xcb, 0xff, 0x39, 0xa7, 0xff, 0x52, 0x69, 0xff, 0x4a, 0x69, 0xff, 0x42, 0x28, 0xff, 0x39, 0xa7, 0xff, 0x8c, 0x51, 0xff, 0xc5, 0xd7, 0xff, 0xdb, 0x0c, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x49, 0xff, 0xcc, 0x91, 0xff, 0xcd, 0xd5, 0xff, 0xcd, 0xd5, 0xff, 0xb4, 0xf1, 0xff, 0x72, 0x85, 0xff, 0x69, 0xc1, 0xff, 0x6a, 0x86, 0xff, 0x42, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x42, 0x09, 0xff, 0xb9, 0xe8, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0x9a, 0x27, 0xff, 0xd3, 0xc3, 0xff, 0xcb, 0xe3, 0xd6, 0xc3, 0xa4, 0xa0, + 0xc3, 0xa4, 0xa0, 0xcb, 0xe3, 0xd6, 0xd3, 0x44, 0xff, 0xd9, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x07, 0xff, 0x39, 0xc9, 0xff, 0x42, 0x09, 0xff, 0x4a, 0x28, 0xff, 0x42, 0x29, 0xff, 0x5a, 0x47, 0xff, 0x72, 0x22, 0xff, 0x69, 0xe2, 0xff, 0x6a, 0x02, 0xff, 0x6a, 0x02, 0xff, 0x6a, 0x02, 0xff, 0x6a, 0x02, 0xff, 0x6a, 0x02, 0xff, 0x61, 0xe2, 0xff, 0x7a, 0x64, 0xff, 0x82, 0xc6, 0xff, 0x52, 0x06, 0xff, 0x29, 0x86, 0xff, 0x29, 0x66, 0xff, 0x39, 0xe8, 0xff, 0x4a, 0x49, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x49, 0xff, 0x4a, 0x49, 0xff, 0x31, 0xa7, 0xff, 0x31, 0x86, 0xff, 0x31, 0x87, 0xff, 0xb1, 0xe8, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xd9, 0xe7, 0xff, 0x8a, 0x04, 0xff, 0x6a, 0x02, 0xff, 0x61, 0xe2, 0xff, 0x6a, 0x02, 0xff, 0x82, 0xa4, 0xff, 0x5a, 0x68, 0xff, 0x42, 0x29, 0xff, 0x4a, 0x28, 0xff, 0x62, 0x09, 0xff, 0xe1, 0xc7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xc9, 0xc8, 0xff, 0x7a, 0x47, 0xff, 0xcb, 0xc3, 0xff, 0xcb, 0xe3, 0xd6, 0xc3, 0xa4, 0xa0, + 0xc3, 0xa4, 0xa0, 0xcb, 0xe3, 0xd6, 0xcb, 0xc3, 0xff, 0xc9, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0x91, 0xc8, 0xff, 0x42, 0x09, 0xff, 0x4a, 0x28, 0xff, 0x42, 0x29, 0xff, 0x42, 0x29, 0xff, 0x72, 0xa5, 0xff, 0x7a, 0x84, 0xff, 0x72, 0x64, 0xff, 0x72, 0x64, 0xff, 0x72, 0x64, 0xff, 0x72, 0x64, 0xff, 0x72, 0x64, 0xff, 0x72, 0x85, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0x84, 0xff, 0x62, 0x25, 0xff, 0x4a, 0x07, 0xff, 0x42, 0x29, 0xff, 0x42, 0x29, 0xff, 0x42, 0x29, 0xff, 0x42, 0x29, 0xff, 0x42, 0x29, 0xff, 0x42, 0x29, 0xff, 0x3a, 0x09, 0xff, 0x39, 0xe8, 0xff, 0x4a, 0x07, 0xff, 0x6a, 0x66, 0xff, 0xc2, 0x06, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xd9, 0xe7, 0xff, 0x92, 0x45, 0xff, 0x72, 0x65, 0xff, 0x82, 0xc4, 0xff, 0x72, 0x86, 0xff, 0x42, 0x29, 0xff, 0x42, 0x29, 0xff, 0x4a, 0x28, 0xff, 0xaa, 0x08, 0xff, 0xe1, 0xc7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xa9, 0xc8, 0xff, 0x5a, 0x47, 0xff, 0xcb, 0xc3, 0xff, 0xcb, 0xe3, 0xd6, 0xc3, 0xa4, 0xa0, + 0xbb, 0xa4, 0xa0, 0xcb, 0xe3, 0xd6, 0xcb, 0xc3, 0xff, 0x9a, 0x27, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xd1, 0xe8, 0xff, 0x52, 0x09, 0xff, 0x4a, 0x28, 0xff, 0x4a, 0x29, 0xff, 0x42, 0x29, 0xff, 0x52, 0x48, 0xff, 0x82, 0xc5, 0xff, 0x7a, 0xa5, 0xff, 0x72, 0x85, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x82, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x72, 0x86, 0xff, 0x62, 0x67, 0xff, 0x52, 0x48, 0xff, 0x52, 0x48, 0xff, 0x52, 0x48, 0xff, 0x52, 0x48, 0xff, 0x62, 0x67, 0xff, 0x72, 0x86, 0xff, 0x7a, 0xa5, 0xff, 0x82, 0xa4, 0xff, 0x7a, 0x85, 0xff, 0xc2, 0x07, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xd9, 0xe7, 0xff, 0x9a, 0x66, 0xff, 0x82, 0xc4, 0xff, 0x52, 0x48, 0xff, 0x42, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x62, 0x28, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xd9, 0xe7, 0xff, 0x69, 0xc9, 0xff, 0x5a, 0x47, 0xff, 0xcb, 0xc3, 0xff, 0xcb, 0xe3, 0xd6, 0xbb, 0xa4, 0xa0, + 0xbb, 0xa3, 0xa0, 0xcb, 0xc3, 0xd6, 0xcb, 0xc3, 0xff, 0x6a, 0x47, 0xff, 0xd1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xa1, 0xe8, 0xff, 0x4a, 0x28, 0xff, 0x4a, 0x29, 0xff, 0x42, 0x29, 0xff, 0x3a, 0x0a, 0xff, 0x62, 0x67, 0xff, 0x8a, 0xc4, 0xff, 0x7a, 0xa5, 0xff, 0x72, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x82, 0xa4, 0xff, 0x82, 0xa4, 0xff, 0x82, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x82, 0xa5, 0xff, 0x82, 0xa4, 0xff, 0x82, 0xa4, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0x85, 0xff, 0xc2, 0x07, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xda, 0x07, 0xff, 0x8a, 0x47, 0xff, 0x3a, 0x0a, 0xff, 0x42, 0x29, 0xff, 0x4a, 0x29, 0xff, 0xb9, 0xe8, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xc1, 0xe8, 0xff, 0x29, 0xa9, 0xff, 0x5a, 0x47, 0xff, 0xcb, 0xc3, 0xff, 0xcb, 0xc3, 0xd6, 0xbb, 0xa4, 0xa0, + 0xbb, 0xa4, 0xa0, 0xcb, 0xc3, 0xd6, 0xcb, 0xc3, 0xff, 0x5a, 0x47, 0xff, 0x89, 0xc8, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xd9, 0xe7, 0xff, 0x72, 0x28, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x28, 0xff, 0x42, 0x29, 0xff, 0x3a, 0x2a, 0xff, 0x72, 0x86, 0xff, 0x8a, 0xc4, 0xff, 0x7a, 0xa5, 0xff, 0x72, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x72, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x72, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0x85, 0xff, 0xc2, 0x27, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xd1, 0xe8, 0xff, 0x6a, 0x09, 0xff, 0x4a, 0x28, 0xff, 0x82, 0x08, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0x79, 0xe8, 0xff, 0x29, 0xa9, 0xff, 0x5a, 0x47, 0xff, 0xcb, 0xc3, 0xff, 0xcb, 0xc3, 0xd6, 0xbb, 0xa3, 0xa0, + 0xbb, 0xa3, 0xa0, 0xcb, 0xc3, 0xd6, 0xcb, 0xc3, 0xff, 0x5a, 0x47, 0xff, 0x31, 0xa9, 0xff, 0xc9, 0xc7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xc9, 0xe8, 0xff, 0x5a, 0x28, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x42, 0x29, 0xff, 0x42, 0x29, 0xff, 0x72, 0x86, 0xff, 0x8a, 0xc4, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x82, 0x85, 0xff, 0xc2, 0x07, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xc9, 0xe8, 0xff, 0x8a, 0x08, 0xff, 0xd1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xda, 0x27, 0xff, 0x31, 0xe9, 0xff, 0x29, 0xa9, 0xff, 0x5a, 0x47, 0xff, 0xcb, 0xc3, 0xff, 0xcb, 0xc3, 0xd6, 0xbb, 0xa3, 0xa0, + 0xbb, 0xa3, 0xa0, 0xcb, 0xc3, 0xd6, 0xcb, 0xc3, 0xff, 0x5a, 0x47, 0xff, 0x29, 0xa9, 0xff, 0x69, 0xe8, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xb1, 0xe8, 0xff, 0x52, 0x28, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x42, 0x29, 0xff, 0x42, 0x29, 0xff, 0x6a, 0x86, 0xff, 0x82, 0xa4, 0xff, 0x82, 0xa4, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x8a, 0xa5, 0xff, 0xca, 0x26, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xbb, 0x25, 0xff, 0x31, 0xe9, 0xff, 0x29, 0xa9, 0xff, 0x5a, 0x47, 0xff, 0xcb, 0xc3, 0xff, 0xcb, 0xc3, 0xd6, 0xbb, 0xa3, 0xa0, + 0xbb, 0x83, 0xa0, 0xcb, 0xc3, 0xd6, 0xcb, 0xc3, 0xff, 0x5a, 0x67, 0xff, 0x29, 0xa9, 0xff, 0x31, 0xe9, 0xff, 0xd2, 0x66, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xa1, 0xe8, 0xff, 0x52, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x28, 0xff, 0x42, 0x29, 0xff, 0x42, 0x29, 0xff, 0x62, 0x67, 0xff, 0x82, 0xc4, 0xff, 0x82, 0xc4, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x82, 0xc4, 0xff, 0x82, 0xc4, 0xff, 0x6a, 0x67, 0xff, 0xa9, 0xe8, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xc2, 0x86, 0xff, 0xab, 0x65, 0xff, 0x31, 0xe9, 0xff, 0x29, 0xa9, 0xff, 0x5a, 0x67, 0xff, 0xcb, 0xc3, 0xff, 0xcb, 0xc3, 0xd6, 0xbb, 0x83, 0xa0, + 0xbb, 0x83, 0xa0, 0xcb, 0xc3, 0xd6, 0xcb, 0xc3, 0xff, 0x5a, 0x47, 0xff, 0x29, 0xa9, 0xff, 0x31, 0xe9, 0xff, 0xb3, 0x45, 0xff, 0xda, 0x07, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xaa, 0x08, 0xff, 0x52, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x42, 0x29, 0xff, 0x3a, 0x2a, 0xff, 0x4a, 0x28, 0xff, 0x72, 0x86, 0xff, 0x82, 0xc4, 0xff, 0x82, 0xa4, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x72, 0xa5, 0xff, 0x72, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x72, 0xa5, 0xff, 0x72, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x82, 0xa4, 0xff, 0x82, 0xc4, 0xff, 0x72, 0x86, 0xff, 0x4a, 0x28, 0xff, 0x3a, 0x2a, 0xff, 0x52, 0x29, 0xff, 0xa2, 0x08, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xb1, 0xc8, 0xff, 0xa3, 0x45, 0xff, 0xab, 0x65, 0xff, 0x31, 0xe9, 0xff, 0x29, 0xa9, 0xff, 0x5a, 0x47, 0xff, 0xcb, 0xc3, 0xff, 0xcb, 0xc3, 0xd6, 0xbb, 0x83, 0xa0, + 0xbb, 0x83, 0xa0, 0xcb, 0xc3, 0xd6, 0xcb, 0xc3, 0xff, 0x5a, 0x47, 0xff, 0x29, 0xa9, 0xff, 0x31, 0xe9, 0xff, 0xab, 0x65, 0xff, 0xb3, 0x06, 0xff, 0xd9, 0xe8, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xb9, 0xe8, 0xff, 0x5a, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x3a, 0x0a, 0xff, 0x42, 0x29, 0xff, 0x5a, 0x67, 0xff, 0x72, 0x86, 0xff, 0x82, 0xa4, 0xff, 0x82, 0xa4, 0xff, 0x82, 0xa4, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x82, 0xa4, 0xff, 0x82, 0xa4, 0xff, 0x82, 0xa4, 0xff, 0x72, 0x86, 0xff, 0x5a, 0x67, 0xff, 0x42, 0x29, 0xff, 0x3a, 0x0a, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x6a, 0x28, 0xff, 0xd9, 0xe8, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xd1, 0xe8, 0xff, 0x41, 0xc9, 0xff, 0xa3, 0x45, 0xff, 0xab, 0x65, 0xff, 0x31, 0xe9, 0xff, 0x29, 0xa9, 0xff, 0x5a, 0x47, 0xff, 0xcb, 0xc3, 0xff, 0xcb, 0xc3, 0xd6, 0xbb, 0x83, 0xa0, + 0xbb, 0x83, 0xa0, 0xcb, 0xc3, 0xd6, 0xcb, 0xc3, 0xff, 0x5a, 0x47, 0xff, 0x29, 0xa9, 0xff, 0x31, 0xe9, 0xff, 0xab, 0x65, 0xff, 0xa3, 0x45, 0xff, 0x61, 0xc9, 0xff, 0xe1, 0xc7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xc9, 0xe7, 0xff, 0x7a, 0x28, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x49, 0xff, 0x42, 0x29, 0xff, 0x3a, 0x0a, 0xff, 0x42, 0x29, 0xff, 0x52, 0x48, 0xff, 0x62, 0x67, 0xff, 0x6a, 0x86, 0xff, 0x72, 0x85, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x72, 0x85, 0xff, 0x6a, 0x86, 0xff, 0x62, 0x67, 0xff, 0x52, 0x48, 0xff, 0x42, 0x29, 0xff, 0x3a, 0x0a, 0xff, 0x42, 0x29, 0xff, 0x4a, 0x49, 0xff, 0x4a, 0x29, 0xff, 0x8a, 0x08, 0xff, 0xc9, 0xe8, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xd9, 0xc7, 0xff, 0x62, 0x08, 0xff, 0x29, 0xc9, 0xff, 0xa3, 0x45, 0xff, 0xab, 0x65, 0xff, 0x31, 0xe9, 0xff, 0x29, 0xa9, 0xff, 0x5a, 0x47, 0xff, 0xcb, 0xc3, 0xff, 0xcb, 0xc3, 0xd6, 0xbb, 0x83, 0xa0, + 0xbb, 0x83, 0xa0, 0xcb, 0xc3, 0xd6, 0xcb, 0xc3, 0xff, 0x5a, 0x47, 0xff, 0x29, 0xa9, 0xff, 0x31, 0xe9, 0xff, 0xab, 0x65, 0xff, 0xa3, 0x45, 0xff, 0x29, 0xc9, 0xff, 0x72, 0x08, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xd9, 0xe7, 0xff, 0xa9, 0xe8, 0xff, 0x5a, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x42, 0x29, 0xff, 0x42, 0x29, 0xff, 0x42, 0x29, 0xff, 0x42, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x52, 0x48, 0xff, 0x52, 0x48, 0xff, 0x5a, 0x48, 0xff, 0x5a, 0x48, 0xff, 0x52, 0x48, 0xff, 0x52, 0x48, 0xff, 0x4a, 0x29, 0xff, 0x42, 0x29, 0xff, 0x42, 0x29, 0xff, 0x42, 0x29, 0xff, 0x42, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x6a, 0x28, 0xff, 0xb1, 0xe8, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xd9, 0xe7, 0xff, 0x6a, 0x28, 0xff, 0x42, 0x09, 0xff, 0x29, 0xc9, 0xff, 0xa3, 0x45, 0xff, 0xab, 0x65, 0xff, 0x31, 0xe9, 0xff, 0x29, 0xa9, 0xff, 0x5a, 0x47, 0xff, 0xcb, 0xc3, 0xff, 0xcb, 0xc3, 0xd6, 0xbb, 0x83, 0xa0, + 0xbb, 0x83, 0xa0, 0xcb, 0xc3, 0xd6, 0xcb, 0xc3, 0xff, 0x5a, 0x47, 0xff, 0x29, 0xa9, 0xff, 0x31, 0xe9, 0xff, 0xab, 0x65, 0xff, 0xa3, 0x45, 0xff, 0x29, 0xc9, 0xff, 0x42, 0x09, 0xff, 0x7a, 0x08, 0xff, 0xd9, 0xe8, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xd9, 0xe8, 0xff, 0xa2, 0x08, 0xff, 0x62, 0x28, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x42, 0x29, 0xff, 0x42, 0x29, 0xff, 0x42, 0x29, 0xff, 0x42, 0x29, 0xff, 0x42, 0x29, 0xff, 0x42, 0x29, 0xff, 0x42, 0x29, 0xff, 0x42, 0x29, 0xff, 0x42, 0x29, 0xff, 0x42, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x6a, 0x28, 0xff, 0xb1, 0xe8, 0xff, 0xd9, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xd1, 0xe8, 0xff, 0x6a, 0x28, 0xff, 0x4a, 0x28, 0xff, 0x42, 0x09, 0xff, 0x29, 0xc9, 0xff, 0xa3, 0x45, 0xff, 0xab, 0x65, 0xff, 0x31, 0xe9, 0xff, 0x29, 0xa9, 0xff, 0x5a, 0x47, 0xff, 0xcb, 0xc3, 0xff, 0xcb, 0xc3, 0xd6, 0xbb, 0x83, 0xa0, + 0xbb, 0x83, 0xa0, 0xcb, 0xc3, 0xd6, 0xcb, 0xc3, 0xff, 0x5a, 0x47, 0xff, 0x21, 0xa9, 0xff, 0x31, 0xc9, 0xff, 0xab, 0x65, 0xff, 0xa3, 0x45, 0xff, 0x29, 0xc9, 0xff, 0x42, 0x29, 0xff, 0x4a, 0x28, 0xff, 0x6a, 0x28, 0xff, 0xc1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xc7, 0xff, 0xe1, 0xe7, 0xff, 0xb2, 0x08, 0xff, 0x82, 0x28, 0xff, 0x5a, 0x29, 0xff, 0x52, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x52, 0x29, 0xff, 0x62, 0x28, 0xff, 0x8a, 0x08, 0xff, 0xb9, 0xe8, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xb9, 0xe8, 0xff, 0x5a, 0x28, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x28, 0xff, 0x42, 0x09, 0xff, 0x29, 0xc9, 0xff, 0xa3, 0x45, 0xff, 0xab, 0x65, 0xff, 0x31, 0xc9, 0xff, 0x21, 0xa9, 0xff, 0x5a, 0x47, 0xff, 0xcb, 0xc3, 0xff, 0xcb, 0xc3, 0xd6, 0xbb, 0x83, 0xa0, + 0xbb, 0x83, 0xa0, 0xcb, 0xc3, 0xd6, 0xcb, 0xc3, 0xff, 0x42, 0x08, 0xff, 0x01, 0x4a, 0xff, 0x11, 0x6a, 0xff, 0xa3, 0x45, 0xff, 0x93, 0x25, 0xff, 0x19, 0x8a, 0xff, 0x42, 0x28, 0xff, 0x4a, 0x28, 0xff, 0x4a, 0x29, 0xff, 0x5a, 0x28, 0xff, 0xaa, 0x08, 0xff, 0xd9, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xc1, 0xe8, 0xff, 0xaa, 0x08, 0xff, 0x9a, 0x08, 0xff, 0x8a, 0x08, 0xff, 0x7a, 0x28, 0xff, 0x7a, 0x28, 0xff, 0x82, 0x28, 0xff, 0x8a, 0x08, 0xff, 0x9a, 0x08, 0xff, 0xb2, 0x08, 0xff, 0xc9, 0xe8, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xd9, 0xe7, 0xff, 0x9a, 0x08, 0xff, 0x52, 0x28, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x28, 0xff, 0x42, 0x28, 0xff, 0x19, 0x8a, 0xff, 0x93, 0x25, 0xff, 0xa3, 0x45, 0xff, 0x11, 0x6a, 0xff, 0x01, 0x4a, 0xff, 0x42, 0x08, 0xff, 0xcb, 0xc3, 0xff, 0xcb, 0xc3, 0xd6, 0xbb, 0x83, 0xa0, + 0xbb, 0x83, 0xa0, 0xc3, 0xa3, 0xd6, 0xc3, 0xa3, 0xff, 0x93, 0x06, 0xff, 0x7a, 0xc6, 0xff, 0x7a, 0xe6, 0xff, 0xcb, 0xc4, 0xff, 0xa3, 0x65, 0xff, 0x21, 0xaa, 0xff, 0x31, 0xe9, 0xff, 0x4a, 0x48, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x7a, 0x08, 0xff, 0xc1, 0xe8, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xd9, 0xe7, 0xff, 0xb9, 0xe8, 0xff, 0x6a, 0x28, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x48, 0xff, 0x31, 0xe9, 0xff, 0x21, 0xaa, 0xff, 0xa3, 0x65, 0xff, 0xcb, 0xc4, 0xff, 0x7a, 0xe6, 0xff, 0x7a, 0xc6, 0xff, 0x93, 0x06, 0xff, 0xc3, 0xa3, 0xff, 0xc3, 0xa3, 0xd6, 0xbb, 0x83, 0xa0, + 0xbb, 0x83, 0xa0, 0xb3, 0x63, 0xd6, 0xbb, 0x84, 0xff, 0xf4, 0x62, 0xff, 0xfc, 0xc2, 0xff, 0xfc, 0xa2, 0xff, 0xf4, 0x63, 0xff, 0xec, 0x43, 0xff, 0xab, 0x65, 0xff, 0x29, 0xca, 0xff, 0x19, 0xaa, 0xff, 0x31, 0xc9, 0xff, 0x29, 0xc9, 0xff, 0x31, 0xe9, 0xff, 0x31, 0xe9, 0xff, 0x39, 0xe9, 0xff, 0x81, 0xe9, 0xff, 0xc1, 0xe8, 0xff, 0xd9, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xd9, 0xe7, 0xff, 0xb9, 0xe8, 0xff, 0x79, 0xe9, 0xff, 0x31, 0xea, 0xff, 0x31, 0xea, 0xff, 0x31, 0xe9, 0xff, 0x31, 0xe9, 0xff, 0x29, 0xc9, 0xff, 0x31, 0xc9, 0xff, 0x19, 0xaa, 0xff, 0x29, 0xc9, 0xff, 0xab, 0x65, 0xff, 0xec, 0x43, 0xff, 0xf4, 0x63, 0xff, 0xfc, 0xa2, 0xff, 0xfc, 0xc2, 0xff, 0xf4, 0x62, 0xff, 0xbb, 0x84, 0xff, 0xb3, 0x63, 0xd6, 0xbb, 0x83, 0xa0, + 0xbb, 0x83, 0xa0, 0xbb, 0xa3, 0xd6, 0xbb, 0xa4, 0xff, 0xa3, 0x45, 0xff, 0x9b, 0x25, 0xff, 0x9b, 0x25, 0xff, 0x9b, 0x45, 0xff, 0xdc, 0x03, 0xff, 0xf4, 0x62, 0xff, 0x9b, 0x45, 0xff, 0x7a, 0xe6, 0xff, 0x93, 0x06, 0xff, 0x8b, 0x06, 0xff, 0x8b, 0x06, 0xff, 0x8b, 0x06, 0xff, 0x8b, 0x06, 0xff, 0x8b, 0x06, 0xff, 0x93, 0x06, 0xff, 0xb2, 0xa7, 0xff, 0xca, 0x27, 0xff, 0xda, 0x07, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xda, 0x07, 0xff, 0xca, 0x47, 0xff, 0xaa, 0xa6, 0xff, 0x93, 0x06, 0xff, 0x8b, 0x06, 0xff, 0x8b, 0x06, 0xff, 0x8b, 0x06, 0xff, 0x8b, 0x06, 0xff, 0x8b, 0x06, 0xff, 0x8b, 0x06, 0xff, 0x93, 0x06, 0xff, 0x82, 0xe6, 0xff, 0x9b, 0x45, 0xff, 0xf4, 0x62, 0xff, 0xdc, 0x03, 0xff, 0x9b, 0x45, 0xff, 0x9b, 0x25, 0xff, 0x9b, 0x25, 0xff, 0xa3, 0x45, 0xff, 0xc3, 0xa4, 0xff, 0xbb, 0xa3, 0xd6, 0xbb, 0x83, 0xa0, + 0xbb, 0x83, 0xa1, 0xcb, 0xc3, 0xd8, 0xcb, 0xa3, 0xff, 0x42, 0x08, 0xfa, 0x11, 0x69, 0xfe, 0x29, 0xa9, 0xff, 0x19, 0x89, 0xff, 0x8b, 0x06, 0xff, 0xf4, 0x63, 0xff, 0xd4, 0x03, 0xff, 0xb3, 0x84, 0xff, 0xb3, 0x84, 0xff, 0xbb, 0xa4, 0xff, 0xbb, 0x84, 0xff, 0xbb, 0xa4, 0xff, 0xbb, 0x84, 0xff, 0xbb, 0xa4, 0xff, 0xbb, 0xa4, 0xff, 0xbb, 0xa4, 0xff, 0xbb, 0xa4, 0xff, 0xc3, 0x25, 0xff, 0xca, 0xc6, 0xff, 0xda, 0x66, 0xff, 0xda, 0x47, 0xff, 0xe2, 0x07, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x07, 0xff, 0xe2, 0x07, 0xff, 0xda, 0x47, 0xff, 0xd2, 0x66, 0xff, 0xca, 0xe6, 0xff, 0xc3, 0x45, 0xff, 0xbb, 0xa4, 0xff, 0xbb, 0xa4, 0xff, 0xbb, 0xa4, 0xff, 0xbb, 0xa4, 0xff, 0xbb, 0xa4, 0xff, 0xbb, 0x84, 0xff, 0xbb, 0xa4, 0xff, 0xbb, 0x84, 0xff, 0xbb, 0xa4, 0xff, 0xb3, 0x84, 0xff, 0xb3, 0x84, 0xff, 0xd4, 0x03, 0xff, 0xf4, 0x63, 0xff, 0x8b, 0x06, 0xff, 0x19, 0x89, 0xff, 0x29, 0xa9, 0xff, 0x11, 0x69, 0xfe, 0x42, 0x08, 0xfa, 0xcb, 0xc3, 0xff, 0xcb, 0xc3, 0xd8, 0xbb, 0x83, 0xa1, + 0xbb, 0x63, 0xa8, 0xc3, 0xa3, 0xde, 0xd3, 0xe3, 0xff, 0x5a, 0x47, 0xed, 0x11, 0x6a, 0xfa, 0x39, 0xe8, 0xff, 0x21, 0x89, 0xff, 0x7a, 0xc6, 0xff, 0xfc, 0xa2, 0xff, 0xa3, 0x45, 0xff, 0x29, 0xa9, 0xff, 0x31, 0xc9, 0xff, 0x3a, 0x09, 0xff, 0x3a, 0x09, 0xff, 0x3a, 0x09, 0xff, 0x3a, 0x09, 0xff, 0x3a, 0x09, 0xff, 0x3a, 0x09, 0xff, 0x3a, 0x09, 0xff, 0x3a, 0x09, 0xff, 0x42, 0x09, 0xff, 0x42, 0x09, 0xff, 0x5a, 0x09, 0xff, 0x71, 0xe8, 0xff, 0x99, 0xe8, 0xff, 0xa9, 0xe8, 0xff, 0xc1, 0xe8, 0xff, 0xc9, 0xe8, 0xff, 0xd1, 0xe7, 0xff, 0xd9, 0xe7, 0xff, 0xd1, 0xe7, 0xff, 0xc9, 0xe8, 0xff, 0xb9, 0xe8, 0xff, 0xa9, 0xe8, 0xff, 0x91, 0xe8, 0xff, 0x71, 0xe8, 0xff, 0x52, 0x09, 0xff, 0x42, 0x09, 0xff, 0x3a, 0x09, 0xff, 0x3a, 0x09, 0xff, 0x3a, 0x09, 0xff, 0x3a, 0x09, 0xff, 0x3a, 0x09, 0xff, 0x3a, 0x09, 0xff, 0x3a, 0x09, 0xff, 0x3a, 0x09, 0xff, 0x3a, 0x09, 0xff, 0x3a, 0x09, 0xff, 0x31, 0xc9, 0xff, 0x29, 0xa9, 0xff, 0xa3, 0x45, 0xff, 0xfc, 0x82, 0xff, 0x7a, 0xc6, 0xff, 0x21, 0x89, 0xff, 0x39, 0xe8, 0xff, 0x11, 0x6a, 0xfa, 0x5a, 0x47, 0xed, 0xd3, 0xe3, 0xff, 0xc3, 0xa3, 0xde, 0xbb, 0x63, 0xa8, + 0xbb, 0x83, 0x9a, 0xbb, 0x83, 0xd3, 0xd3, 0xe3, 0xff, 0xab, 0x64, 0xf3, 0x29, 0xa9, 0xf2, 0x19, 0x89, 0xfc, 0x11, 0x6a, 0xff, 0x7a, 0xe6, 0xff, 0xfc, 0xc2, 0xff, 0x9b, 0x45, 0xff, 0x11, 0x6a, 0xff, 0x21, 0x8a, 0xff, 0x29, 0xc9, 0xff, 0x29, 0xc9, 0xff, 0x29, 0xc9, 0xff, 0x29, 0xc9, 0xff, 0x29, 0xc9, 0xff, 0x29, 0xc9, 0xff, 0x29, 0xc9, 0xff, 0x29, 0xc9, 0xff, 0x29, 0xc9, 0xff, 0x29, 0xc9, 0xff, 0x29, 0xc9, 0xff, 0x29, 0xc9, 0xff, 0x29, 0xc9, 0xff, 0x29, 0xc9, 0xff, 0x29, 0xc9, 0xff, 0x29, 0xc9, 0xff, 0x29, 0xc9, 0xff, 0x29, 0xc9, 0xff, 0x29, 0xc9, 0xff, 0x29, 0xc9, 0xff, 0x29, 0xc9, 0xff, 0x29, 0xc9, 0xff, 0x29, 0xc9, 0xff, 0x29, 0xc9, 0xff, 0x29, 0xc9, 0xff, 0x29, 0xc9, 0xff, 0x29, 0xc9, 0xff, 0x29, 0xc9, 0xff, 0x29, 0xc9, 0xff, 0x29, 0xc9, 0xff, 0x29, 0xc9, 0xff, 0x29, 0xc9, 0xff, 0x29, 0xc9, 0xff, 0x29, 0xc9, 0xff, 0x29, 0xc9, 0xff, 0x29, 0xc9, 0xff, 0x21, 0x8a, 0xff, 0x11, 0x6a, 0xff, 0x9b, 0x45, 0xff, 0xfc, 0xc2, 0xff, 0x7a, 0xe6, 0xff, 0x11, 0x6a, 0xff, 0x19, 0x89, 0xfb, 0x29, 0xa9, 0xf2, 0xab, 0x64, 0xf3, 0xd3, 0xe3, 0xff, 0xbb, 0x83, 0xd3, 0xbb, 0x83, 0x9a, + 0xbb, 0x83, 0x30, 0xbb, 0x83, 0x87, 0xbb, 0xa3, 0xff, 0xdb, 0xe3, 0xff, 0xab, 0x44, 0xf3, 0x52, 0x47, 0xed, 0x29, 0xa9, 0xfa, 0x82, 0xe6, 0xff, 0xfc, 0x62, 0xff, 0xa3, 0x45, 0xff, 0x41, 0xe8, 0xff, 0x4a, 0x08, 0xff, 0x52, 0x48, 0xff, 0x52, 0x48, 0xff, 0x52, 0x48, 0xff, 0x52, 0x48, 0xff, 0x52, 0x48, 0xff, 0x52, 0x48, 0xff, 0x52, 0x48, 0xff, 0x52, 0x48, 0xff, 0x52, 0x48, 0xff, 0x52, 0x48, 0xff, 0x52, 0x48, 0xff, 0x52, 0x48, 0xff, 0x52, 0x48, 0xff, 0x52, 0x48, 0xff, 0x52, 0x48, 0xff, 0x52, 0x48, 0xff, 0x52, 0x48, 0xff, 0x52, 0x48, 0xff, 0x52, 0x48, 0xff, 0x52, 0x48, 0xff, 0x52, 0x48, 0xff, 0x52, 0x48, 0xff, 0x52, 0x48, 0xff, 0x52, 0x48, 0xff, 0x52, 0x48, 0xff, 0x52, 0x48, 0xff, 0x52, 0x48, 0xff, 0x52, 0x48, 0xff, 0x52, 0x48, 0xff, 0x52, 0x48, 0xff, 0x52, 0x48, 0xff, 0x52, 0x48, 0xff, 0x52, 0x48, 0xff, 0x52, 0x48, 0xff, 0x52, 0x48, 0xff, 0x52, 0x48, 0xff, 0x4a, 0x08, 0xff, 0x41, 0xe8, 0xff, 0xa3, 0x45, 0xff, 0xfc, 0x62, 0xff, 0x82, 0xe6, 0xff, 0x29, 0xa9, 0xfa, 0x52, 0x47, 0xec, 0xab, 0x44, 0xf4, 0xd3, 0xe3, 0xff, 0xbb, 0x83, 0xff, 0xbb, 0x83, 0x87, 0xbb, 0x83, 0x30, + 0x00, 0x00, 0x00, 0xbb, 0x44, 0x11, 0xb3, 0x83, 0xc3, 0xc3, 0xa3, 0xff, 0xd3, 0xe3, 0xff, 0xcb, 0xa3, 0xff, 0xbb, 0x83, 0xff, 0xbb, 0x63, 0xff, 0xb3, 0x63, 0xff, 0xb3, 0x63, 0xff, 0xbb, 0x83, 0xff, 0xbb, 0x83, 0xff, 0xbb, 0x83, 0xff, 0xbb, 0x83, 0xff, 0xbb, 0x83, 0xff, 0xbb, 0x83, 0xff, 0xbb, 0x83, 0xff, 0xbb, 0x83, 0xff, 0xbb, 0x83, 0xff, 0xbb, 0x83, 0xff, 0xbb, 0x83, 0xff, 0xbb, 0x83, 0xff, 0xbb, 0x83, 0xff, 0xbb, 0x83, 0xff, 0xbb, 0x83, 0xff, 0xbb, 0x83, 0xff, 0xbb, 0x83, 0xff, 0xbb, 0x83, 0xff, 0xbb, 0x83, 0xff, 0xbb, 0x83, 0xff, 0xbb, 0x83, 0xff, 0xbb, 0x83, 0xff, 0xbb, 0x83, 0xff, 0xbb, 0x83, 0xff, 0xbb, 0x83, 0xff, 0xbb, 0x83, 0xff, 0xbb, 0x83, 0xff, 0xbb, 0x83, 0xff, 0xbb, 0x83, 0xff, 0xbb, 0x83, 0xff, 0xbb, 0x83, 0xff, 0xbb, 0x83, 0xff, 0xbb, 0x83, 0xff, 0xbb, 0x83, 0xff, 0xbb, 0x83, 0xff, 0xbb, 0x83, 0xff, 0xbb, 0x83, 0xff, 0xbb, 0x83, 0xff, 0xbb, 0x83, 0xff, 0xbb, 0x83, 0xff, 0xb3, 0x63, 0xff, 0xb3, 0x63, 0xff, 0xbb, 0x63, 0xff, 0xbb, 0x83, 0xff, 0xcb, 0xa3, 0xff, 0xd3, 0xe3, 0xff, 0xc3, 0xa3, 0xff, 0xbb, 0x83, 0xc3, 0xbb, 0x44, 0x11, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb3, 0xa3, 0x14, 0xbb, 0x84, 0x8e, 0xbb, 0xa4, 0xde, 0xcb, 0xa3, 0xe9, 0xcb, 0xc3, 0xe1, 0xc3, 0xa3, 0xdf, 0xb3, 0x63, 0xdf, 0xbb, 0x83, 0xdf, 0xcb, 0xa3, 0xdf, 0xcb, 0xa3, 0xdf, 0xcb, 0xa3, 0xdf, 0xcb, 0xa3, 0xdf, 0xcb, 0xa3, 0xdf, 0xcb, 0xa3, 0xdf, 0xcb, 0xa3, 0xdf, 0xcb, 0xa3, 0xdf, 0xcb, 0xa3, 0xdf, 0xcb, 0xa3, 0xdf, 0xcb, 0xa3, 0xdf, 0xcb, 0xa3, 0xdf, 0xcb, 0xa3, 0xdf, 0xcb, 0xa3, 0xdf, 0xcb, 0xa3, 0xdf, 0xcb, 0xa3, 0xdf, 0xcb, 0xa3, 0xdf, 0xcb, 0xa3, 0xdf, 0xcb, 0xa3, 0xdf, 0xcb, 0xa3, 0xdf, 0xcb, 0xa3, 0xdf, 0xcb, 0xa3, 0xdf, 0xcb, 0xa3, 0xdf, 0xcb, 0xa3, 0xdf, 0xcb, 0xa3, 0xdf, 0xcb, 0xa3, 0xdf, 0xcb, 0xa3, 0xdf, 0xcb, 0xa3, 0xdf, 0xcb, 0xa3, 0xdf, 0xcb, 0xa3, 0xdf, 0xcb, 0xa3, 0xdf, 0xcb, 0xa3, 0xdf, 0xcb, 0xa3, 0xdf, 0xcb, 0xa3, 0xdf, 0xcb, 0xa3, 0xdf, 0xcb, 0xa3, 0xdf, 0xcb, 0xa3, 0xdf, 0xcb, 0xa3, 0xdf, 0xcb, 0xa3, 0xdf, 0xcb, 0xa3, 0xdf, 0xbb, 0x83, 0xdf, 0xb3, 0x63, 0xdf, 0xc3, 0xa3, 0xdf, 0xcb, 0xc3, 0xe1, 0xcb, 0xa3, 0xe9, 0xbb, 0x84, 0xde, 0xbb, 0x84, 0x8e, 0xb3, 0xa3, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +#endif +#if LV_COLOR_DEPTH == 32 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x21, 0x8e, 0xe9, 0x46, 0x22, 0x8b, 0xe6, 0xb5, 0x22, 0x8c, 0xe6, 0xed, 0x22, 0x8d, 0xe6, 0xf5, 0x22, 0x8c, 0xe6, 0xf0, 0x22, 0x8c, 0xe6, 0xef, 0x22, 0x8c, 0xe6, 0xef, 0x22, 0x8c, 0xe6, 0xef, 0x22, 0x8c, 0xe6, 0xef, 0x22, 0x8c, 0xe6, 0xef, 0x22, 0x8c, 0xe6, 0xef, 0x22, 0x8c, 0xe6, 0xef, 0x22, 0x8c, 0xe6, 0xef, 0x22, 0x8c, 0xe6, 0xef, 0x22, 0x8c, 0xe6, 0xef, 0x22, 0x8c, 0xe6, 0xef, 0x22, 0x8c, 0xe6, 0xef, 0x22, 0x8c, 0xe6, 0xef, 0x22, 0x8c, 0xe6, 0xef, 0x22, 0x8c, 0xe6, 0xef, 0x22, 0x8c, 0xe6, 0xef, 0x22, 0x8c, 0xe6, 0xef, 0x22, 0x8c, 0xe6, 0xef, 0x22, 0x8c, 0xe6, 0xef, 0x22, 0x8c, 0xe6, 0xef, 0x22, 0x8c, 0xe6, 0xf1, 0x22, 0x8c, 0xe6, 0xf4, 0x22, 0x8c, 0xe6, 0xeb, 0x22, 0x8c, 0xe6, 0xb4, 0x22, 0x8b, 0xe5, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x23, 0x8b, 0xe5, 0x75, 0x22, 0x8c, 0xe6, 0xff, 0x22, 0x8c, 0xe6, 0xff, 0x22, 0x8c, 0xe6, 0xf9, 0x22, 0x8c, 0xe6, 0xf1, 0x22, 0x8c, 0xe6, 0xf3, 0x22, 0x8c, 0xe6, 0xf4, 0x22, 0x8c, 0xe6, 0xf4, 0x22, 0x8c, 0xe6, 0xf4, 0x22, 0x8c, 0xe6, 0xf4, 0x22, 0x8c, 0xe6, 0xf4, 0x22, 0x8c, 0xe6, 0xf4, 0x22, 0x8c, 0xe6, 0xf4, 0x22, 0x8c, 0xe6, 0xf4, 0x22, 0x8c, 0xe6, 0xf4, 0x22, 0x8c, 0xe6, 0xf4, 0x22, 0x8c, 0xe6, 0xf4, 0x22, 0x8c, 0xe6, 0xf4, 0x22, 0x8c, 0xe6, 0xf4, 0x22, 0x8c, 0xe6, 0xf4, 0x22, 0x8c, 0xe6, 0xf4, 0x22, 0x8c, 0xe6, 0xf4, 0x22, 0x8c, 0xe6, 0xf4, 0x22, 0x8c, 0xe6, 0xf4, 0x22, 0x8c, 0xe6, 0xf4, 0x22, 0x8c, 0xe6, 0xf4, 0x22, 0x8c, 0xe6, 0xf3, 0x22, 0x8c, 0xe6, 0xf1, 0x22, 0x8c, 0xe6, 0xf9, 0x22, 0x8c, 0xe6, 0xff, 0x22, 0x8c, 0xe5, 0xff, 0x23, 0x8c, 0xe5, 0x76, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x23, 0x8b, 0xe5, 0x58, 0x22, 0x8d, 0xe7, 0xff, 0x21, 0x8c, 0xe6, 0xff, 0x22, 0x8c, 0xe7, 0x9f, 0x25, 0x8c, 0xe6, 0x3e, 0x23, 0x8c, 0xe6, 0x33, 0x23, 0x8d, 0xe5, 0x3a, 0x23, 0x8a, 0xe5, 0x3b, 0x23, 0x8a, 0xe5, 0x3b, 0x23, 0x8a, 0xe5, 0x3b, 0x23, 0x8a, 0xe5, 0x3b, 0x23, 0x8a, 0xe5, 0x3b, 0x23, 0x8a, 0xe5, 0x3b, 0x23, 0x8a, 0xe5, 0x3b, 0x23, 0x8a, 0xe5, 0x3b, 0x23, 0x8a, 0xe5, 0x3b, 0x23, 0x8a, 0xe5, 0x3b, 0x23, 0x8a, 0xe5, 0x3b, 0x23, 0x8a, 0xe5, 0x3b, 0x23, 0x8a, 0xe5, 0x3b, 0x23, 0x8a, 0xe5, 0x3b, 0x23, 0x8a, 0xe5, 0x3b, 0x23, 0x8a, 0xe5, 0x3b, 0x23, 0x8a, 0xe5, 0x3b, 0x23, 0x8a, 0xe5, 0x3b, 0x23, 0x8a, 0xe5, 0x3b, 0x23, 0x8a, 0xe5, 0x3b, 0x24, 0x8b, 0xe4, 0x39, 0x23, 0x8c, 0xe6, 0x33, 0x21, 0x8c, 0xe6, 0x3e, 0x22, 0x8c, 0xe5, 0x9f, 0x21, 0x8c, 0xe5, 0xff, 0x22, 0x8c, 0xe6, 0xff, 0x20, 0x8d, 0xe8, 0x57, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x28, 0x94, 0xe4, 0x13, 0x23, 0x8c, 0xe6, 0xbe, 0x22, 0x8b, 0xe3, 0xff, 0x21, 0x8c, 0xe7, 0x92, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x21, 0x8d, 0xe8, 0x92, 0x21, 0x8a, 0xe4, 0xff, 0x23, 0x8b, 0xe6, 0xbf, 0x28, 0x94, 0xe4, 0x13, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x21, 0x88, 0xe4, 0x2f, 0x22, 0x8d, 0xe6, 0xff, 0x23, 0x8d, 0xe8, 0xef, 0x24, 0x92, 0xf5, 0x31, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0x92, 0xf5, 0x31, 0x22, 0x8d, 0xe8, 0xef, 0x22, 0x8c, 0xe6, 0xff, 0x21, 0x88, 0xe4, 0x2f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x01, 0x00, 0x55, 0xaa, 0x03, 0x00, 0x80, 0x80, 0x02, 0x00, 0x80, 0xff, 0x02, 0x00, 0x80, 0xff, 0x02, 0x00, 0x80, 0xff, 0x02, 0x00, 0x80, 0x80, 0x02, 0x00, 0x00, 0x00, 0x00, 0x20, 0x80, 0xd1, 0x38, 0x23, 0x90, 0xec, 0xff, 0x24, 0x93, 0xf1, 0xd9, 0x23, 0x7b, 0xd3, 0x1d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x02, 0x00, 0x80, 0x80, 0x02, 0x00, 0x80, 0x80, 0x02, 0x00, 0x80, 0x80, 0x02, 0x00, 0x80, 0x80, 0x02, 0x00, 0x80, 0x80, 0x02, 0x00, 0x80, 0x80, 0x02, 0x00, 0x80, 0x80, 0x02, 0x00, 0x80, 0x80, 0x02, 0x00, 0x80, 0x80, 0x02, 0x00, 0x80, 0x80, 0x02, 0x00, 0x80, 0x80, 0x02, 0x00, 0x80, 0x80, 0x02, 0x00, 0x80, 0x80, 0x02, 0x00, 0x80, 0x80, 0x02, 0x00, 0x80, 0x80, 0x02, 0x00, 0x80, 0x80, 0x02, 0x00, 0x80, 0x80, 0x02, 0x00, 0x80, 0x80, 0x02, 0x00, 0x80, 0x80, 0x02, 0x00, 0x80, 0x80, 0x02, 0x00, 0x80, 0x80, 0x02, 0x00, 0x80, 0x80, 0x02, 0x00, 0x80, 0x80, 0x02, 0x00, 0x80, 0x80, 0x02, 0x00, 0x80, 0x80, 0x02, 0x00, 0x00, 0x00, 0x00, 0x23, 0x7b, 0xd3, 0x1d, 0x24, 0x93, 0xf2, 0xd9, 0x23, 0x90, 0xec, 0xff, 0x1f, 0x82, 0xce, 0x39, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x02, 0x00, 0x80, 0xff, 0x02, 0x00, 0x80, 0xff, 0x02, 0x00, 0x80, 0xff, 0x02, 0x00, 0x80, 0x80, 0x02, 0x00, 0x55, 0xaa, 0x03, 0x00, 0x00, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1d, 0x75, 0xc5, 0x46, 0x1d, 0x76, 0xc1, 0x93, 0x1c, 0x78, 0xc5, 0xa3, 0x1c, 0x7b, 0xcb, 0x9c, 0x1e, 0x7b, 0xc8, 0x9a, 0x1e, 0x77, 0xc3, 0x9a, 0x1e, 0x79, 0xc8, 0x9a, 0x1c, 0x7b, 0xcc, 0x9a, 0x1d, 0x79, 0xc8, 0x8f, 0x1c, 0x7c, 0xcc, 0xaf, 0x1f, 0x85, 0xdb, 0xff, 0x1f, 0x84, 0xd8, 0xf2, 0x1c, 0x76, 0xc3, 0x9c, 0x1b, 0x77, 0xc6, 0x8e, 0x1c, 0x7b, 0xcc, 0x9b, 0x1c, 0x7b, 0xcc, 0x9a, 0x1c, 0x7b, 0xcc, 0x9a, 0x1c, 0x7b, 0xcc, 0x9a, 0x1c, 0x7b, 0xcc, 0x9a, 0x1c, 0x7b, 0xcc, 0x9a, 0x1c, 0x7b, 0xcc, 0x9a, 0x1c, 0x7b, 0xcc, 0x9a, 0x1c, 0x7b, 0xcc, 0x9a, 0x1c, 0x7b, 0xcc, 0x9a, 0x1c, 0x7b, 0xcc, 0x9a, 0x1c, 0x7b, 0xcc, 0x9a, 0x1c, 0x7b, 0xcc, 0x9a, 0x1c, 0x7b, 0xcc, 0x9a, 0x1c, 0x7b, 0xcc, 0x9a, 0x1c, 0x7b, 0xcc, 0x9a, 0x1c, 0x7b, 0xcc, 0x9a, 0x1c, 0x7b, 0xcc, 0x9a, 0x1c, 0x7b, 0xcc, 0x9a, 0x1c, 0x7b, 0xcc, 0x9a, 0x1c, 0x7b, 0xcc, 0x9a, 0x1c, 0x7b, 0xcc, 0x9a, 0x1c, 0x7b, 0xcc, 0x9a, 0x1c, 0x7b, 0xcc, 0x9a, 0x1c, 0x7b, 0xcc, 0x9a, 0x1c, 0x7b, 0xcc, 0x9b, 0x1b, 0x77, 0xc6, 0x8e, 0x1c, 0x76, 0xc3, 0x9c, 0x1f, 0x84, 0xd8, 0xf2, 0x1f, 0x84, 0xdb, 0xff, 0x1c, 0x7c, 0xcc, 0xaf, 0x1d, 0x79, 0xc8, 0x8f, 0x1c, 0x7b, 0xcc, 0x9a, 0x1e, 0x79, 0xc8, 0x9a, 0x1e, 0x77, 0xc3, 0x9a, 0x1e, 0x7b, 0xc8, 0x9a, 0x1c, 0x7b, 0xcb, 0x9c, 0x1d, 0x78, 0xc6, 0xa1, 0x1d, 0x76, 0xc1, 0x93, 0x1d, 0x75, 0xc5, 0x46, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x77, 0xc2, 0x76, 0x1e, 0x75, 0xc0, 0xff, 0x1a, 0x80, 0xd4, 0xff, 0x17, 0x8b, 0xeb, 0xff, 0x15, 0x8f, 0xf5, 0xff, 0x1a, 0x84, 0xdd, 0xff, 0x22, 0x77, 0xbf, 0xff, 0x1c, 0x81, 0xd5, 0xff, 0x16, 0x8c, 0xf1, 0xff, 0x16, 0x8d, 0xef, 0xff, 0x16, 0x8a, 0xe9, 0xff, 0x16, 0x87, 0xe6, 0xff, 0x16, 0x87, 0xe6, 0xff, 0x16, 0x89, 0xeb, 0xff, 0x16, 0x8c, 0xed, 0xff, 0x16, 0x8b, 0xec, 0xff, 0x16, 0x8a, 0xec, 0xff, 0x16, 0x8a, 0xec, 0xff, 0x16, 0x8a, 0xec, 0xff, 0x16, 0x8a, 0xec, 0xff, 0x16, 0x8a, 0xec, 0xff, 0x16, 0x8a, 0xec, 0xff, 0x16, 0x8a, 0xec, 0xff, 0x16, 0x8a, 0xec, 0xff, 0x16, 0x8a, 0xec, 0xff, 0x16, 0x8a, 0xec, 0xff, 0x16, 0x8a, 0xec, 0xff, 0x16, 0x8a, 0xec, 0xff, 0x16, 0x8a, 0xec, 0xff, 0x16, 0x8a, 0xec, 0xff, 0x16, 0x8a, 0xec, 0xff, 0x16, 0x8a, 0xec, 0xff, 0x16, 0x8a, 0xec, 0xff, 0x16, 0x8a, 0xec, 0xff, 0x16, 0x8a, 0xec, 0xff, 0x16, 0x8a, 0xec, 0xff, 0x16, 0x8a, 0xec, 0xff, 0x16, 0x8a, 0xec, 0xff, 0x16, 0x8a, 0xec, 0xff, 0x16, 0x8a, 0xec, 0xff, 0x16, 0x8b, 0xec, 0xff, 0x16, 0x8c, 0xee, 0xff, 0x16, 0x89, 0xeb, 0xff, 0x16, 0x87, 0xe6, 0xff, 0x16, 0x87, 0xe6, 0xff, 0x16, 0x8a, 0xe9, 0xff, 0x16, 0x8d, 0xef, 0xff, 0x16, 0x8c, 0xf1, 0xff, 0x1c, 0x81, 0xd5, 0xff, 0x22, 0x77, 0xbf, 0xff, 0x1a, 0x84, 0xdd, 0xff, 0x15, 0x8f, 0xf5, 0xff, 0x17, 0x8b, 0xeb, 0xff, 0x1a, 0x80, 0xd4, 0xff, 0x1e, 0x75, 0xc0, 0xff, 0x1c, 0x77, 0xc2, 0x76, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x1a, 0x80, 0xcc, 0x0a, 0x1e, 0x7a, 0xc2, 0x5c, 0x1f, 0x76, 0xbf, 0xff, 0x1b, 0x84, 0xde, 0xff, 0x1a, 0x88, 0xe6, 0xf9, 0x29, 0x67, 0x9e, 0xef, 0x34, 0x53, 0x6e, 0xfa, 0x27, 0x6b, 0xa4, 0xff, 0x16, 0x88, 0xe8, 0xff, 0x22, 0x72, 0xb4, 0xff, 0x31, 0x58, 0x7b, 0xff, 0x30, 0x5b, 0x80, 0xff, 0x2e, 0x5e, 0x85, 0xff, 0x2e, 0x5d, 0x85, 0xff, 0x2e, 0x5d, 0x84, 0xff, 0x2e, 0x5d, 0x85, 0xff, 0x2e, 0x5d, 0x84, 0xff, 0x2e, 0x5d, 0x85, 0xff, 0x2e, 0x5e, 0x85, 0xff, 0x2e, 0x5e, 0x85, 0xff, 0x2e, 0x5e, 0x85, 0xff, 0x2e, 0x5e, 0x85, 0xff, 0x2e, 0x5e, 0x85, 0xff, 0x2e, 0x5e, 0x85, 0xff, 0x2e, 0x5e, 0x85, 0xff, 0x2e, 0x5e, 0x85, 0xff, 0x2e, 0x5e, 0x85, 0xff, 0x2e, 0x5e, 0x85, 0xff, 0x2e, 0x5e, 0x85, 0xff, 0x2e, 0x5e, 0x85, 0xff, 0x2e, 0x5e, 0x85, 0xff, 0x2e, 0x5e, 0x85, 0xff, 0x2e, 0x5e, 0x85, 0xff, 0x2e, 0x5e, 0x85, 0xff, 0x2e, 0x5e, 0x85, 0xff, 0x2e, 0x5e, 0x85, 0xff, 0x2e, 0x5e, 0x85, 0xff, 0x2e, 0x5e, 0x85, 0xff, 0x2e, 0x5e, 0x85, 0xff, 0x2e, 0x5e, 0x85, 0xff, 0x2e, 0x5e, 0x85, 0xff, 0x2e, 0x5e, 0x85, 0xff, 0x2e, 0x5d, 0x85, 0xff, 0x2e, 0x5d, 0x84, 0xff, 0x2e, 0x5d, 0x85, 0xff, 0x2e, 0x5d, 0x84, 0xff, 0x2e, 0x5d, 0x85, 0xff, 0x2e, 0x5e, 0x85, 0xff, 0x30, 0x5b, 0x80, 0xff, 0x31, 0x58, 0x7b, 0xff, 0x22, 0x72, 0xb4, 0xff, 0x16, 0x88, 0xe8, 0xff, 0x27, 0x6b, 0xa4, 0xff, 0x34, 0x53, 0x6d, 0xfa, 0x29, 0x67, 0x9d, 0xef, 0x1a, 0x88, 0xe6, 0xf9, 0x1b, 0x83, 0xde, 0xff, 0x1f, 0x75, 0xc1, 0xff, 0x1f, 0x7b, 0xc4, 0x5b, 0x1c, 0x71, 0xc6, 0x09, + 0x1e, 0x76, 0xc4, 0x79, 0x1f, 0x76, 0xc5, 0xbc, 0x1a, 0x83, 0xdd, 0xff, 0x1c, 0x84, 0xdc, 0xfa, 0x38, 0x4b, 0x5b, 0xf1, 0x46, 0x2a, 0x13, 0xf4, 0x4d, 0x1f, 0x00, 0xfd, 0x30, 0x53, 0x71, 0xff, 0x0c, 0x95, 0xff, 0xff, 0x28, 0x63, 0x95, 0xff, 0x4a, 0x29, 0x0d, 0xff, 0x48, 0x2d, 0x19, 0xff, 0x45, 0x32, 0x26, 0xff, 0x45, 0x33, 0x26, 0xff, 0x45, 0x33, 0x26, 0xff, 0x45, 0x32, 0x25, 0xff, 0x45, 0x32, 0x26, 0xff, 0x45, 0x32, 0x25, 0xff, 0x46, 0x34, 0x25, 0xff, 0x46, 0x34, 0x25, 0xff, 0x46, 0x34, 0x27, 0xff, 0x46, 0x34, 0x2b, 0xff, 0x44, 0x35, 0x43, 0xff, 0x42, 0x36, 0x67, 0xff, 0x3f, 0x37, 0x8c, 0xff, 0x3e, 0x38, 0xa2, 0xff, 0x3d, 0x39, 0xb9, 0xff, 0x3c, 0x39, 0xc6, 0xff, 0x3b, 0x39, 0xcf, 0xff, 0x3b, 0x3a, 0xd3, 0xff, 0x3b, 0x39, 0xcf, 0xff, 0x3c, 0x39, 0xc6, 0xff, 0x3d, 0x39, 0xb6, 0xff, 0x3f, 0x39, 0xa1, 0xff, 0x40, 0x38, 0x88, 0xff, 0x43, 0x36, 0x5f, 0xff, 0x45, 0x35, 0x3d, 0xff, 0x46, 0x34, 0x29, 0xff, 0x46, 0x34, 0x26, 0xff, 0x46, 0x34, 0x25, 0xff, 0x46, 0x34, 0x25, 0xff, 0x46, 0x34, 0x25, 0xff, 0x45, 0x32, 0x25, 0xff, 0x45, 0x32, 0x26, 0xff, 0x45, 0x32, 0x25, 0xff, 0x45, 0x33, 0x26, 0xff, 0x45, 0x33, 0x26, 0xff, 0x45, 0x32, 0x26, 0xff, 0x48, 0x2d, 0x19, 0xff, 0x4a, 0x29, 0x0d, 0xff, 0x28, 0x63, 0x95, 0xff, 0x0c, 0x95, 0xff, 0xff, 0x30, 0x53, 0x71, 0xff, 0x4d, 0x1f, 0x00, 0xfd, 0x46, 0x2a, 0x13, 0xf4, 0x38, 0x4b, 0x5d, 0xf1, 0x1c, 0x84, 0xdc, 0xf9, 0x1a, 0x84, 0xdd, 0xff, 0x1f, 0x77, 0xc5, 0xbc, 0x1e, 0x79, 0xc6, 0x78, + 0x1d, 0x78, 0xc5, 0xa8, 0x1c, 0x7c, 0xd0, 0xde, 0x18, 0x8c, 0xee, 0xff, 0x30, 0x5b, 0x7f, 0xed, 0x48, 0x25, 0x07, 0xf8, 0x42, 0x34, 0x29, 0xff, 0x46, 0x30, 0x1f, 0xff, 0x30, 0x58, 0x7c, 0xff, 0x0e, 0x92, 0xff, 0xff, 0x28, 0x65, 0x98, 0xff, 0x4a, 0x2d, 0x16, 0xff, 0x48, 0x31, 0x21, 0xff, 0x45, 0x36, 0x2d, 0xff, 0x45, 0x37, 0x2c, 0xff, 0x45, 0x37, 0x2c, 0xff, 0x45, 0x37, 0x2c, 0xff, 0x45, 0x37, 0x2c, 0xff, 0x46, 0x37, 0x2c, 0xff, 0x46, 0x37, 0x2d, 0xff, 0x45, 0x37, 0x35, 0xff, 0x42, 0x38, 0x68, 0xff, 0x3f, 0x39, 0x97, 0xff, 0x3c, 0x39, 0xc1, 0xff, 0x3b, 0x3a, 0xcd, 0xff, 0x3b, 0x3a, 0xd7, 0xff, 0x3a, 0x3a, 0xdc, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe1, 0xff, 0x3a, 0x3a, 0xdc, 0xff, 0x3b, 0x3a, 0xd5, 0xff, 0x3c, 0x3a, 0xcb, 0xff, 0x3d, 0x39, 0xbc, 0xff, 0x3f, 0x39, 0x90, 0xff, 0x43, 0x38, 0x5f, 0xff, 0x46, 0x37, 0x2f, 0xff, 0x46, 0x37, 0x2d, 0xff, 0x46, 0x37, 0x2d, 0xff, 0x46, 0x37, 0x2c, 0xff, 0x45, 0x37, 0x2c, 0xff, 0x45, 0x37, 0x2c, 0xff, 0x45, 0x37, 0x2c, 0xff, 0x45, 0x37, 0x2c, 0xff, 0x45, 0x36, 0x2d, 0xff, 0x48, 0x31, 0x21, 0xff, 0x4a, 0x2d, 0x16, 0xff, 0x28, 0x65, 0x98, 0xff, 0x0e, 0x92, 0xff, 0xff, 0x30, 0x58, 0x7c, 0xff, 0x46, 0x30, 0x1f, 0xff, 0x42, 0x34, 0x2a, 0xff, 0x48, 0x25, 0x06, 0xf9, 0x30, 0x5a, 0x80, 0xee, 0x18, 0x8c, 0xee, 0xff, 0x1d, 0x7e, 0xcf, 0xde, 0x1d, 0x79, 0xc5, 0xa8, + 0x1e, 0x7a, 0xc7, 0xa3, 0x1b, 0x82, 0xda, 0xda, 0x1c, 0x85, 0xe0, 0xff, 0x3c, 0x42, 0x47, 0xf5, 0x49, 0x27, 0x0b, 0xfd, 0x42, 0x37, 0x2e, 0xff, 0x49, 0x2d, 0x16, 0xff, 0x30, 0x5a, 0x7d, 0xff, 0x11, 0x8d, 0xf6, 0xff, 0x20, 0x73, 0xbc, 0xff, 0x33, 0x56, 0x74, 0xff, 0x31, 0x57, 0x79, 0xff, 0x30, 0x5a, 0x80, 0xff, 0x30, 0x5b, 0x7f, 0xff, 0x2f, 0x5b, 0x7f, 0xff, 0x2f, 0x5b, 0x7f, 0xff, 0x2f, 0x5b, 0x7f, 0xff, 0x32, 0x57, 0x8d, 0xff, 0x35, 0x4b, 0xb1, 0xff, 0x38, 0x3f, 0xd3, 0xff, 0x39, 0x3c, 0xdc, 0xff, 0x3a, 0x3a, 0xe1, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3b, 0xe0, 0xff, 0x39, 0x3c, 0xdb, 0xff, 0x38, 0x40, 0xd0, 0xff, 0x35, 0x4d, 0xac, 0xff, 0x31, 0x59, 0x87, 0xff, 0x30, 0x5b, 0x80, 0xff, 0x2f, 0x5b, 0x7f, 0xff, 0x2f, 0x5b, 0x7f, 0xff, 0x2f, 0x5b, 0x7f, 0xff, 0x30, 0x5b, 0x7f, 0xff, 0x30, 0x5a, 0x80, 0xff, 0x31, 0x57, 0x79, 0xff, 0x32, 0x55, 0x74, 0xff, 0x20, 0x74, 0xbc, 0xff, 0x11, 0x8d, 0xf6, 0xff, 0x30, 0x59, 0x7d, 0xff, 0x49, 0x2d, 0x16, 0xff, 0x42, 0x37, 0x2e, 0xff, 0x49, 0x27, 0x0b, 0xfd, 0x3c, 0x41, 0x47, 0xf5, 0x1c, 0x86, 0xe0, 0xff, 0x1a, 0x82, 0xda, 0xda, 0x1e, 0x7a, 0xc7, 0xa3, + 0x1e, 0x7b, 0xc9, 0xa0, 0x1b, 0x81, 0xd5, 0xd6, 0x1c, 0x81, 0xd6, 0xff, 0x31, 0x57, 0x77, 0xff, 0x39, 0x48, 0x55, 0xff, 0x37, 0x4c, 0x5f, 0xff, 0x37, 0x4f, 0x63, 0xff, 0x22, 0x74, 0xba, 0xff, 0x14, 0x8a, 0xef, 0xff, 0x21, 0x73, 0xba, 0xff, 0x27, 0x68, 0xa1, 0xff, 0x24, 0x6d, 0xaa, 0xff, 0x25, 0x6d, 0xab, 0xff, 0x25, 0x6d, 0xaa, 0xff, 0x25, 0x6d, 0xab, 0xff, 0x28, 0x66, 0xb3, 0xff, 0x31, 0x50, 0xca, 0xff, 0x38, 0x3f, 0xdd, 0xff, 0x3a, 0x3b, 0xe1, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x39, 0x3b, 0xe0, 0xff, 0x37, 0x40, 0xdb, 0xff, 0x30, 0x54, 0xc6, 0xff, 0x27, 0x69, 0xaf, 0xff, 0x25, 0x6d, 0xab, 0xff, 0x25, 0x6d, 0xab, 0xff, 0x25, 0x6d, 0xaa, 0xff, 0x25, 0x6d, 0xab, 0xff, 0x24, 0x6d, 0xaa, 0xff, 0x27, 0x68, 0xa1, 0xff, 0x21, 0x73, 0xb9, 0xff, 0x14, 0x8b, 0xef, 0xff, 0x22, 0x74, 0xba, 0xff, 0x37, 0x4e, 0x63, 0xff, 0x37, 0x4c, 0x5f, 0xff, 0x39, 0x48, 0x56, 0xff, 0x31, 0x57, 0x77, 0xff, 0x1c, 0x81, 0xd6, 0xff, 0x1b, 0x81, 0xd5, 0xd6, 0x1e, 0x7b, 0xc9, 0xa0, + 0x1e, 0x7b, 0xc7, 0xa0, 0x1f, 0x7a, 0xc6, 0xd6, 0x1f, 0x7b, 0xca, 0xff, 0x17, 0x89, 0xe8, 0xff, 0x14, 0x8e, 0xf7, 0xff, 0x14, 0x8c, 0xf1, 0xff, 0x18, 0x84, 0xdf, 0xff, 0x15, 0x8b, 0xed, 0xff, 0x1d, 0x7d, 0xcf, 0xff, 0x41, 0x41, 0x42, 0xff, 0x49, 0x34, 0x22, 0xff, 0x44, 0x3c, 0x37, 0xff, 0x44, 0x3c, 0x37, 0xff, 0x44, 0x3c, 0x3b, 0xff, 0x40, 0x3c, 0x7c, 0xff, 0x3b, 0x3a, 0xd1, 0xff, 0x3a, 0x3a, 0xe1, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe1, 0xff, 0x3a, 0x3a, 0xe0, 0xff, 0x3a, 0x3a, 0xdf, 0xff, 0x3a, 0x3a, 0xde, 0xff, 0x3a, 0x3a, 0xdd, 0xff, 0x3a, 0x3a, 0xdd, 0xff, 0x3a, 0x3a, 0xdd, 0xff, 0x3a, 0x3a, 0xde, 0xff, 0x3a, 0x3a, 0xdf, 0xff, 0x3a, 0x3a, 0xe0, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe0, 0xff, 0x3c, 0x3a, 0xca, 0xff, 0x42, 0x3d, 0x71, 0xff, 0x44, 0x3d, 0x3b, 0xff, 0x44, 0x3c, 0x37, 0xff, 0x44, 0x3c, 0x37, 0xff, 0x44, 0x3c, 0x38, 0xff, 0x49, 0x33, 0x22, 0xff, 0x41, 0x41, 0x41, 0xff, 0x1b, 0x7d, 0xcf, 0xff, 0x14, 0x8a, 0xee, 0xff, 0x18, 0x84, 0xdf, 0xff, 0x14, 0x8c, 0xf1, 0xff, 0x14, 0x8e, 0xf7, 0xff, 0x17, 0x89, 0xe8, 0xff, 0x1f, 0x7b, 0xca, 0xff, 0x1f, 0x7a, 0xc6, 0xd6, 0x1e, 0x7b, 0xc7, 0xa0, + 0x1e, 0x7b, 0xc7, 0xa0, 0x1e, 0x7b, 0xcb, 0xd6, 0x1f, 0x7d, 0xce, 0xff, 0x21, 0x74, 0xbc, 0xff, 0x23, 0x71, 0xb3, 0xff, 0x23, 0x72, 0xb5, 0xff, 0x1a, 0x80, 0xd5, 0xff, 0x22, 0x74, 0xb7, 0xff, 0x42, 0x3f, 0x3d, 0xff, 0x48, 0x34, 0x24, 0xff, 0x43, 0x40, 0x3f, 0xff, 0x43, 0x40, 0x40, 0xff, 0x41, 0x3f, 0x5a, 0xff, 0x3d, 0x3c, 0xb4, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe0, 0xff, 0x3b, 0x3a, 0xda, 0xff, 0x3b, 0x3b, 0xd1, 0xff, 0x3d, 0x3c, 0xaf, 0xff, 0x3f, 0x3d, 0x97, 0xff, 0x41, 0x3e, 0x7e, 0xff, 0x43, 0x3f, 0x6e, 0xff, 0x43, 0x3f, 0x65, 0xff, 0x43, 0x3f, 0x60, 0xff, 0x43, 0x3f, 0x66, 0xff, 0x42, 0x3e, 0x71, 0xff, 0x41, 0x3e, 0x81, 0xff, 0x3f, 0x3d, 0x98, 0xff, 0x3d, 0x3c, 0xb5, 0xff, 0x3b, 0x3a, 0xd5, 0xff, 0x3a, 0x3a, 0xdb, 0xff, 0x3a, 0x3a, 0xe1, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3e, 0x3d, 0xa7, 0xff, 0x42, 0x3f, 0x53, 0xff, 0x43, 0x40, 0x3e, 0xff, 0x43, 0x40, 0x3f, 0xff, 0x43, 0x40, 0x3f, 0xff, 0x49, 0x34, 0x25, 0xff, 0x41, 0x3f, 0x3e, 0xff, 0x21, 0x74, 0xba, 0xff, 0x1a, 0x80, 0xd6, 0xff, 0x23, 0x72, 0xb5, 0xff, 0x23, 0x71, 0xb3, 0xff, 0x21, 0x74, 0xbc, 0xff, 0x1f, 0x7d, 0xce, 0xff, 0x1e, 0x7b, 0xcb, 0xd6, 0x1e, 0x7b, 0xc7, 0xa0, + 0x1e, 0x7b, 0xc7, 0xa0, 0x1a, 0x81, 0xd9, 0xd6, 0x1b, 0x82, 0xd9, 0xff, 0x3b, 0x44, 0x4b, 0xff, 0x4c, 0x28, 0x0b, 0xff, 0x4a, 0x2f, 0x1b, 0xff, 0x26, 0x6b, 0xa5, 0xff, 0x2c, 0x61, 0x8f, 0xff, 0x4f, 0x2b, 0x0e, 0xff, 0x43, 0x42, 0x40, 0xff, 0x40, 0x46, 0x4d, 0xff, 0x40, 0x41, 0x72, 0xff, 0x3a, 0x3a, 0xd0, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xdd, 0xff, 0x3b, 0x3b, 0xd1, 0xff, 0x3e, 0x3e, 0xa2, 0xff, 0x40, 0x41, 0x73, 0xff, 0x43, 0x44, 0x4d, 0xff, 0x43, 0x44, 0x46, 0xff, 0x43, 0x44, 0x46, 0xff, 0x43, 0x44, 0x46, 0xff, 0x43, 0x44, 0x46, 0xff, 0x43, 0x44, 0x46, 0xff, 0x43, 0x44, 0x46, 0xff, 0x43, 0x44, 0x46, 0xff, 0x43, 0x44, 0x46, 0xff, 0x43, 0x44, 0x46, 0xff, 0x43, 0x44, 0x46, 0xff, 0x43, 0x44, 0x46, 0xff, 0x43, 0x44, 0x51, 0xff, 0x41, 0x41, 0x7a, 0xff, 0x3e, 0x3e, 0xa8, 0xff, 0x3b, 0x3b, 0xd3, 0xff, 0x39, 0x39, 0xde, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x39, 0x39, 0xe2, 0xff, 0x3b, 0x3b, 0xc6, 0xff, 0x41, 0x42, 0x66, 0xff, 0x42, 0x44, 0x44, 0xff, 0x40, 0x45, 0x4b, 0xff, 0x43, 0x41, 0x40, 0xff, 0x4f, 0x2b, 0x0e, 0xff, 0x2b, 0x61, 0x8f, 0xff, 0x25, 0x6b, 0xa5, 0xff, 0x4a, 0x2f, 0x1a, 0xff, 0x4c, 0x28, 0x0b, 0xff, 0x3b, 0x44, 0x4b, 0xff, 0x1b, 0x82, 0xd9, 0xff, 0x1a, 0x81, 0xd9, 0xd6, 0x1e, 0x7b, 0xc7, 0xa0, + 0x1d, 0x7b, 0xc7, 0xa0, 0x1a, 0x81, 0xd8, 0xd6, 0x1b, 0x82, 0xd7, 0xff, 0x3c, 0x46, 0x50, 0xff, 0x4b, 0x2c, 0x12, 0xff, 0x48, 0x33, 0x22, 0xff, 0x26, 0x6a, 0xa4, 0xff, 0x29, 0x67, 0x9c, 0xff, 0x4a, 0x36, 0x26, 0xff, 0x44, 0x40, 0x41, 0xff, 0x3e, 0x3f, 0x86, 0xff, 0x3b, 0x3b, 0xe0, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xde, 0xff, 0x3b, 0x3b, 0xcb, 0xff, 0x3f, 0x3f, 0x8f, 0xff, 0x43, 0x43, 0x53, 0xff, 0x44, 0x44, 0x45, 0xff, 0x44, 0x44, 0x45, 0xff, 0x44, 0x44, 0x45, 0xff, 0x44, 0x44, 0x45, 0xff, 0x44, 0x44, 0x45, 0xff, 0x44, 0x44, 0x45, 0xff, 0x44, 0x44, 0x45, 0xff, 0x44, 0x44, 0x46, 0xff, 0x44, 0x44, 0x46, 0xff, 0x44, 0x44, 0x46, 0xff, 0x44, 0x44, 0x46, 0xff, 0x44, 0x44, 0x45, 0xff, 0x44, 0x44, 0x45, 0xff, 0x44, 0x44, 0x45, 0xff, 0x44, 0x44, 0x45, 0xff, 0x44, 0x44, 0x45, 0xff, 0x44, 0x44, 0x45, 0xff, 0x43, 0x43, 0x5a, 0xff, 0x40, 0x40, 0x95, 0xff, 0x3c, 0x3c, 0xcc, 0xff, 0x3a, 0x3a, 0xe1, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3c, 0x3c, 0xd7, 0xff, 0x40, 0x40, 0x74, 0xff, 0x42, 0x44, 0x46, 0xff, 0x43, 0x40, 0x3f, 0xff, 0x4a, 0x36, 0x27, 0xff, 0x29, 0x67, 0x9b, 0xff, 0x26, 0x6a, 0xa4, 0xff, 0x48, 0x33, 0x21, 0xff, 0x4b, 0x2c, 0x13, 0xff, 0x3c, 0x46, 0x50, 0xff, 0x1c, 0x82, 0xd7, 0xff, 0x1a, 0x81, 0xd8, 0xd6, 0x1e, 0x7b, 0xc7, 0xa0, + 0x1e, 0x79, 0xc7, 0xa0, 0x1a, 0x80, 0xd6, 0xd6, 0x1c, 0x80, 0xd6, 0xff, 0x39, 0x4b, 0x5d, 0xff, 0x46, 0x34, 0x25, 0xff, 0x44, 0x3b, 0x34, 0xff, 0x25, 0x6d, 0xaa, 0xff, 0x28, 0x69, 0x9e, 0xff, 0x4a, 0x37, 0x29, 0xff, 0x3f, 0x3d, 0x82, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3b, 0x3b, 0xd0, 0xff, 0x3f, 0x3f, 0x94, 0xff, 0x43, 0x43, 0x51, 0xff, 0x44, 0x44, 0x45, 0xff, 0x44, 0x44, 0x45, 0xff, 0x44, 0x44, 0x45, 0xff, 0x44, 0x44, 0x46, 0xff, 0x43, 0x44, 0x46, 0xff, 0x44, 0x44, 0x45, 0xff, 0x44, 0x44, 0x45, 0xff, 0x45, 0x43, 0x43, 0xff, 0x47, 0x42, 0x41, 0xff, 0x47, 0x42, 0x40, 0xff, 0x47, 0x42, 0x40, 0xff, 0x47, 0x42, 0x40, 0xff, 0x47, 0x42, 0x40, 0xff, 0x47, 0x42, 0x41, 0xff, 0x45, 0x43, 0x43, 0xff, 0x44, 0x44, 0x45, 0xff, 0x44, 0x44, 0x45, 0xff, 0x43, 0x44, 0x46, 0xff, 0x44, 0x44, 0x46, 0xff, 0x44, 0x44, 0x45, 0xff, 0x44, 0x44, 0x45, 0xff, 0x43, 0x43, 0x55, 0xff, 0x3d, 0x3d, 0xa3, 0xff, 0x3b, 0x3b, 0xd6, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xde, 0xff, 0x3f, 0x40, 0x76, 0xff, 0x45, 0x41, 0x3e, 0xff, 0x4a, 0x37, 0x28, 0xff, 0x28, 0x69, 0x9e, 0xff, 0x25, 0x6d, 0xaa, 0xff, 0x44, 0x3b, 0x34, 0xff, 0x46, 0x34, 0x25, 0xff, 0x39, 0x4b, 0x5d, 0xff, 0x1c, 0x80, 0xd6, 0xff, 0x1a, 0x80, 0xd6, 0xd6, 0x1d, 0x79, 0xc7, 0xa0, + 0x1e, 0x79, 0xc7, 0xa0, 0x1a, 0x80, 0xd6, 0xd6, 0x1c, 0x80, 0xd6, 0xff, 0x39, 0x4a, 0x5b, 0xff, 0x47, 0x33, 0x22, 0xff, 0x45, 0x3a, 0x30, 0xff, 0x25, 0x6d, 0xa9, 0xff, 0x28, 0x68, 0x9e, 0xff, 0x44, 0x39, 0x75, 0xff, 0x39, 0x39, 0xe3, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe1, 0xff, 0x3d, 0x3d, 0xb1, 0xff, 0x42, 0x42, 0x6a, 0xff, 0x44, 0x44, 0x45, 0xff, 0x44, 0x44, 0x45, 0xff, 0x44, 0x44, 0x45, 0xff, 0x44, 0x44, 0x45, 0xff, 0x43, 0x44, 0x46, 0xff, 0x44, 0x43, 0x45, 0xff, 0x46, 0x42, 0x41, 0xff, 0x49, 0x42, 0x3d, 0xff, 0x4a, 0x41, 0x3a, 0xff, 0x4a, 0x42, 0x3b, 0xff, 0x47, 0x43, 0x40, 0xff, 0x45, 0x43, 0x42, 0xff, 0x45, 0x43, 0x43, 0xff, 0x45, 0x43, 0x43, 0xff, 0x45, 0x43, 0x42, 0xff, 0x47, 0x43, 0x40, 0xff, 0x4a, 0x42, 0x3b, 0xff, 0x4a, 0x41, 0x3a, 0xff, 0x49, 0x42, 0x3d, 0xff, 0x46, 0x42, 0x41, 0xff, 0x44, 0x43, 0x45, 0xff, 0x43, 0x44, 0x46, 0xff, 0x44, 0x44, 0x45, 0xff, 0x44, 0x44, 0x45, 0xff, 0x44, 0x44, 0x45, 0xff, 0x42, 0x42, 0x77, 0xff, 0x3c, 0x3c, 0xc1, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x39, 0x39, 0xdf, 0xff, 0x42, 0x3f, 0x70, 0xff, 0x4a, 0x37, 0x28, 0xff, 0x28, 0x68, 0x9e, 0xff, 0x25, 0x6d, 0xa9, 0xff, 0x45, 0x3a, 0x30, 0xff, 0x47, 0x33, 0x22, 0xff, 0x39, 0x4a, 0x5b, 0xff, 0x1b, 0x80, 0xd6, 0xff, 0x1a, 0x80, 0xd6, 0xd6, 0x1d, 0x79, 0xc7, 0xa0, + 0x1d, 0x79, 0xc7, 0xa0, 0x1a, 0x80, 0xd6, 0xd6, 0x1b, 0x80, 0xd6, 0xff, 0x39, 0x4a, 0x5b, 0xff, 0x47, 0x33, 0x22, 0xff, 0x45, 0x3a, 0x31, 0xff, 0x25, 0x6d, 0xa9, 0xff, 0x2c, 0x59, 0xb2, 0xff, 0x3b, 0x3b, 0xdf, 0xff, 0x3a, 0x3a, 0xe3, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3b, 0x3b, 0xe0, 0xff, 0x41, 0x41, 0x71, 0xff, 0x44, 0x44, 0x45, 0xff, 0x44, 0x44, 0x45, 0xff, 0x45, 0x44, 0x45, 0xff, 0x43, 0x45, 0x47, 0xff, 0x43, 0x44, 0x46, 0xff, 0x47, 0x42, 0x40, 0xff, 0x4b, 0x41, 0x3b, 0xff, 0x49, 0x42, 0x3d, 0xff, 0x41, 0x46, 0x49, 0xff, 0x39, 0x4a, 0x57, 0xff, 0x33, 0x4d, 0x62, 0xff, 0x2f, 0x4f, 0x6a, 0xff, 0x2d, 0x4f, 0x6e, 0xff, 0x2b, 0x51, 0x70, 0xff, 0x2b, 0x51, 0x70, 0xff, 0x2d, 0x4f, 0x6e, 0xff, 0x2f, 0x4f, 0x6a, 0xff, 0x33, 0x4d, 0x62, 0xff, 0x39, 0x4a, 0x57, 0xff, 0x41, 0x46, 0x49, 0xff, 0x49, 0x42, 0x3d, 0xff, 0x4b, 0x41, 0x3b, 0xff, 0x47, 0x42, 0x40, 0xff, 0x43, 0x44, 0x46, 0xff, 0x43, 0x45, 0x47, 0xff, 0x45, 0x44, 0x45, 0xff, 0x44, 0x44, 0x45, 0xff, 0x43, 0x43, 0x59, 0xff, 0x3d, 0x3d, 0xae, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe3, 0xff, 0x3c, 0x3b, 0xd7, 0xff, 0x47, 0x38, 0x4c, 0xff, 0x28, 0x68, 0x9e, 0xff, 0x25, 0x6d, 0xa9, 0xff, 0x45, 0x3a, 0x31, 0xff, 0x47, 0x33, 0x22, 0xff, 0x39, 0x4a, 0x5b, 0xff, 0x1b, 0x80, 0xd6, 0xff, 0x1a, 0x80, 0xd6, 0xd6, 0x1d, 0x79, 0xc7, 0xa0, + 0x1d, 0x79, 0xc6, 0xa0, 0x1a, 0x80, 0xd5, 0xd6, 0x1b, 0x80, 0xd5, 0xff, 0x38, 0x4a, 0x5b, 0xff, 0x48, 0x33, 0x23, 0xff, 0x46, 0x3a, 0x31, 0xff, 0x29, 0x66, 0xb2, 0xff, 0x36, 0x3e, 0xdb, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3c, 0x3c, 0xc4, 0xff, 0x42, 0x42, 0x72, 0xff, 0x45, 0x45, 0x46, 0xff, 0x44, 0x45, 0x49, 0xff, 0x47, 0x44, 0x43, 0xff, 0x4c, 0x42, 0x3a, 0xff, 0x47, 0x44, 0x42, 0xff, 0x3a, 0x4a, 0x57, 0xff, 0x2d, 0x50, 0x6c, 0xff, 0x26, 0x52, 0x78, 0xff, 0x22, 0x54, 0x7e, 0xff, 0x22, 0x55, 0x81, 0xff, 0x22, 0x54, 0x7f, 0xff, 0x24, 0x55, 0x7c, 0xff, 0x23, 0x54, 0x7d, 0xff, 0x23, 0x54, 0x7d, 0xff, 0x24, 0x55, 0x7c, 0xff, 0x22, 0x54, 0x7f, 0xff, 0x22, 0x55, 0x81, 0xff, 0x22, 0x54, 0x7e, 0xff, 0x26, 0x52, 0x78, 0xff, 0x2d, 0x50, 0x6c, 0xff, 0x3a, 0x4a, 0x57, 0xff, 0x47, 0x44, 0x42, 0xff, 0x4c, 0x42, 0x3a, 0xff, 0x47, 0x44, 0x43, 0xff, 0x44, 0x45, 0x49, 0xff, 0x45, 0x45, 0x46, 0xff, 0x45, 0x45, 0x46, 0xff, 0x44, 0x44, 0x50, 0xff, 0x3e, 0x3e, 0xa4, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3c, 0x39, 0xbe, 0xff, 0x2a, 0x65, 0xa3, 0xff, 0x25, 0x6d, 0xa9, 0xff, 0x46, 0x3a, 0x31, 0xff, 0x48, 0x33, 0x23, 0xff, 0x38, 0x4a, 0x5b, 0xff, 0x1b, 0x7f, 0xd5, 0xff, 0x1a, 0x80, 0xd5, 0xd6, 0x1d, 0x79, 0xc6, 0xa0, + 0x1d, 0x78, 0xc6, 0xa0, 0x1a, 0x80, 0xd5, 0xd6, 0x1b, 0x7f, 0xd5, 0xff, 0x38, 0x4b, 0x5b, 0xff, 0x48, 0x33, 0x23, 0xff, 0x46, 0x3a, 0x32, 0xff, 0x36, 0x49, 0xd3, 0xff, 0x3a, 0x3a, 0xe3, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3b, 0x3b, 0xce, 0xff, 0x42, 0x42, 0x74, 0xff, 0x4a, 0x43, 0x3f, 0xff, 0x49, 0x43, 0x40, 0xff, 0x3a, 0x49, 0x57, 0xff, 0x28, 0x52, 0x73, 0xff, 0x22, 0x54, 0x7f, 0xff, 0x22, 0x55, 0x7f, 0xff, 0x24, 0x54, 0x7b, 0xff, 0x26, 0x53, 0x77, 0xff, 0x27, 0x52, 0x75, 0xff, 0x27, 0x52, 0x76, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x74, 0xff, 0x28, 0x52, 0x74, 0xff, 0x28, 0x52, 0x75, 0xff, 0x27, 0x52, 0x76, 0xff, 0x27, 0x52, 0x75, 0xff, 0x26, 0x53, 0x77, 0xff, 0x24, 0x54, 0x7b, 0xff, 0x22, 0x55, 0x7f, 0xff, 0x22, 0x54, 0x7f, 0xff, 0x28, 0x52, 0x73, 0xff, 0x3a, 0x49, 0x57, 0xff, 0x49, 0x43, 0x40, 0xff, 0x4a, 0x43, 0x3f, 0xff, 0x45, 0x45, 0x46, 0xff, 0x45, 0x45, 0x47, 0xff, 0x45, 0x45, 0x46, 0xff, 0x43, 0x43, 0x50, 0xff, 0x3d, 0x3d, 0xa3, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x33, 0x4c, 0xc8, 0xff, 0x25, 0x6d, 0xa9, 0xff, 0x46, 0x3a, 0x31, 0xff, 0x48, 0x33, 0x23, 0xff, 0x38, 0x4b, 0x5b, 0xff, 0x1b, 0x7f, 0xd5, 0xff, 0x1a, 0x80, 0xd5, 0xd6, 0x1d, 0x78, 0xc6, 0xa0, + 0x1d, 0x78, 0xc6, 0xa0, 0x1a, 0x80, 0xd4, 0xd6, 0x1b, 0x7f, 0xd4, 0xff, 0x38, 0x4b, 0x5b, 0xff, 0x48, 0x33, 0x24, 0xff, 0x41, 0x3a, 0x7b, 0xff, 0x3a, 0x3a, 0xe3, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xdc, 0xff, 0x3b, 0x3b, 0xcc, 0xff, 0x3a, 0x3a, 0xe0, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3c, 0x3b, 0xcd, 0xff, 0x40, 0x43, 0x77, 0xff, 0x2e, 0x51, 0x6e, 0xff, 0x22, 0x55, 0x7f, 0xff, 0x22, 0x54, 0x7d, 0xff, 0x26, 0x52, 0x78, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x74, 0xff, 0x28, 0x52, 0x74, 0xff, 0x28, 0x52, 0x74, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x74, 0xff, 0x28, 0x52, 0x74, 0xff, 0x28, 0x52, 0x74, 0xff, 0x28, 0x52, 0x75, 0xff, 0x26, 0x52, 0x78, 0xff, 0x22, 0x54, 0x7d, 0xff, 0x22, 0x55, 0x7f, 0xff, 0x2e, 0x51, 0x6e, 0xff, 0x42, 0x47, 0x4c, 0xff, 0x4c, 0x43, 0x3d, 0xff, 0x47, 0x45, 0x44, 0xff, 0x44, 0x45, 0x47, 0xff, 0x45, 0x45, 0x46, 0xff, 0x43, 0x43, 0x50, 0xff, 0x3c, 0x3c, 0xb4, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe1, 0xff, 0x2b, 0x5e, 0xba, 0xff, 0x46, 0x3a, 0x31, 0xff, 0x48, 0x33, 0x24, 0xff, 0x38, 0x4b, 0x5b, 0xff, 0x1b, 0x80, 0xd4, 0xff, 0x1a, 0x7e, 0xd4, 0xd6, 0x1d, 0x78, 0xc6, 0xa0, + 0x1d, 0x78, 0xc6, 0xa0, 0x1a, 0x7e, 0xd4, 0xd6, 0x1b, 0x80, 0xd4, 0xff, 0x38, 0x4b, 0x5b, 0xff, 0x47, 0x34, 0x32, 0xff, 0x3a, 0x39, 0xd3, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3c, 0x3c, 0xb8, 0xff, 0x42, 0x42, 0x63, 0xff, 0x3e, 0x3e, 0xa3, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x38, 0x3d, 0xd6, 0xff, 0x28, 0x4d, 0x99, 0xff, 0x26, 0x52, 0x78, 0xff, 0x29, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x29, 0x52, 0x75, 0xff, 0x26, 0x52, 0x78, 0xff, 0x21, 0x54, 0x7e, 0xff, 0x25, 0x53, 0x79, 0xff, 0x3b, 0x4a, 0x57, 0xff, 0x4b, 0x42, 0x3c, 0xff, 0x48, 0x44, 0x42, 0xff, 0x44, 0x45, 0x48, 0xff, 0x44, 0x44, 0x46, 0xff, 0x43, 0x43, 0x59, 0xff, 0x3c, 0x3c, 0xcc, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x36, 0x44, 0xd7, 0xff, 0x46, 0x3a, 0x37, 0xff, 0x48, 0x33, 0x24, 0xff, 0x38, 0x4b, 0x5b, 0xff, 0x1b, 0x80, 0xd4, 0xff, 0x1a, 0x7e, 0xd4, 0xd6, 0x1d, 0x78, 0xc6, 0xa0, + 0x1d, 0x78, 0xc4, 0xa0, 0x1a, 0x7e, 0xd3, 0xd6, 0x1b, 0x80, 0xd3, 0xff, 0x38, 0x4b, 0x5b, 0xff, 0x40, 0x37, 0x92, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3c, 0x3c, 0xd1, 0xff, 0x42, 0x44, 0x67, 0xff, 0x44, 0x44, 0x45, 0xff, 0x43, 0x43, 0x52, 0xff, 0x3c, 0x3d, 0xb2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x38, 0x3d, 0xd6, 0xff, 0x2d, 0x4b, 0x93, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x74, 0xff, 0x28, 0x52, 0x74, 0xff, 0x28, 0x52, 0x74, 0xff, 0x28, 0x52, 0x74, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x29, 0x52, 0x75, 0xff, 0x25, 0x53, 0x7a, 0xff, 0x21, 0x54, 0x7f, 0xff, 0x38, 0x4a, 0x5c, 0xff, 0x4e, 0x42, 0x39, 0xff, 0x48, 0x44, 0x42, 0xff, 0x43, 0x45, 0x48, 0xff, 0x44, 0x44, 0x45, 0xff, 0x41, 0x41, 0x72, 0xff, 0x3a, 0x3a, 0xdf, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x40, 0x3a, 0x84, 0xff, 0x48, 0x33, 0x24, 0xff, 0x38, 0x4b, 0x5b, 0xff, 0x1b, 0x80, 0xd4, 0xff, 0x1a, 0x7e, 0xd4, 0xd6, 0x1d, 0x78, 0xc6, 0xa0, + 0x1d, 0x78, 0xc4, 0xa0, 0x1a, 0x7e, 0xd3, 0xd6, 0x1b, 0x7e, 0xd3, 0xff, 0x38, 0x48, 0x69, 0xff, 0x3b, 0x39, 0xd2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xde, 0xff, 0x3f, 0x3d, 0x97, 0xff, 0x43, 0x45, 0x48, 0xff, 0x44, 0x44, 0x45, 0xff, 0x43, 0x44, 0x46, 0xff, 0x45, 0x43, 0x50, 0xff, 0x41, 0x3c, 0xab, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x38, 0x3c, 0xd7, 0xff, 0x2d, 0x4b, 0x93, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x29, 0x52, 0x74, 0xff, 0x29, 0x52, 0x74, 0xff, 0x28, 0x52, 0x76, 0xff, 0x27, 0x52, 0x76, 0xff, 0x27, 0x52, 0x76, 0xff, 0x28, 0x52, 0x76, 0xff, 0x29, 0x52, 0x74, 0xff, 0x29, 0x52, 0x74, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x29, 0x52, 0x73, 0xff, 0x25, 0x54, 0x79, 0xff, 0x1f, 0x56, 0x83, 0xff, 0x38, 0x4b, 0x5b, 0xff, 0x4e, 0x41, 0x38, 0xff, 0x46, 0x44, 0x43, 0xff, 0x43, 0x44, 0x46, 0xff, 0x44, 0x44, 0x45, 0xff, 0x3d, 0x3e, 0xad, 0xff, 0x3a, 0x3a, 0xe1, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3c, 0x3a, 0xc1, 0xff, 0x47, 0x34, 0x30, 0xff, 0x38, 0x4a, 0x5a, 0xff, 0x1b, 0x7e, 0xd3, 0xff, 0x1a, 0x7e, 0xd3, 0xd6, 0x1d, 0x78, 0xc4, 0xa0, + 0x1d, 0x78, 0xc4, 0xa0, 0x1a, 0x7e, 0xd3, 0xd6, 0x1b, 0x7e, 0xd3, 0xff, 0x3b, 0x43, 0xa2, 0xff, 0x39, 0x39, 0xe0, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3d, 0x39, 0xc2, 0xff, 0x44, 0x41, 0x48, 0xff, 0x43, 0x45, 0x48, 0xff, 0x44, 0x44, 0x45, 0xff, 0x45, 0x44, 0x45, 0xff, 0x4d, 0x42, 0x3a, 0xff, 0x3f, 0x47, 0x5b, 0xff, 0x32, 0x43, 0xc5, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x38, 0x3d, 0xd6, 0xff, 0x2d, 0x4c, 0x92, 0xff, 0x28, 0x52, 0x75, 0xff, 0x29, 0x52, 0x73, 0xff, 0x28, 0x52, 0x75, 0xff, 0x26, 0x54, 0x79, 0xff, 0x24, 0x54, 0x7d, 0xff, 0x22, 0x55, 0x7f, 0xff, 0x22, 0x55, 0x7f, 0xff, 0x22, 0x55, 0x7f, 0xff, 0x22, 0x55, 0x7f, 0xff, 0x24, 0x54, 0x7d, 0xff, 0x26, 0x54, 0x79, 0xff, 0x28, 0x52, 0x75, 0xff, 0x29, 0x52, 0x73, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x2a, 0x52, 0x72, 0xff, 0x24, 0x54, 0x7c, 0xff, 0x20, 0x56, 0x83, 0xff, 0x3f, 0x48, 0x51, 0xff, 0x4d, 0x42, 0x3a, 0xff, 0x45, 0x44, 0x45, 0xff, 0x44, 0x44, 0x45, 0xff, 0x42, 0x44, 0x5a, 0xff, 0x3a, 0x3a, 0xdc, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xda, 0xff, 0x42, 0x36, 0x72, 0xff, 0x39, 0x4a, 0x5a, 0xff, 0x1b, 0x7e, 0xd3, 0xff, 0x1a, 0x7e, 0xd3, 0xd6, 0x1d, 0x78, 0xc4, 0xa0, + 0x1d, 0x78, 0xc2, 0xa0, 0x1a, 0x7d, 0xd2, 0xd6, 0x1c, 0x7c, 0xd2, 0xff, 0x3a, 0x3c, 0xcf, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x39, 0x3c, 0xdf, 0xff, 0x45, 0x3a, 0x7c, 0xff, 0x45, 0x41, 0x3f, 0xff, 0x43, 0x45, 0x48, 0xff, 0x44, 0x44, 0x45, 0xff, 0x49, 0x42, 0x3e, 0xff, 0x45, 0x45, 0x45, 0xff, 0x26, 0x53, 0x79, 0xff, 0x24, 0x55, 0x86, 0xff, 0x35, 0x41, 0xc2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x38, 0x3d, 0xd6, 0xff, 0x2d, 0x4b, 0x93, 0xff, 0x25, 0x54, 0x7b, 0xff, 0x22, 0x54, 0x7f, 0xff, 0x25, 0x53, 0x7a, 0xff, 0x2d, 0x51, 0x6e, 0xff, 0x33, 0x4e, 0x65, 0xff, 0x36, 0x4d, 0x60, 0xff, 0x36, 0x4d, 0x60, 0xff, 0x32, 0x4d, 0x65, 0xff, 0x2c, 0x50, 0x6e, 0xff, 0x25, 0x54, 0x7a, 0xff, 0x22, 0x54, 0x7f, 0xff, 0x25, 0x54, 0x7b, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x74, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x2a, 0x52, 0x73, 0xff, 0x23, 0x56, 0x80, 0xff, 0x26, 0x53, 0x79, 0xff, 0x46, 0x45, 0x46, 0xff, 0x4a, 0x42, 0x3e, 0xff, 0x44, 0x44, 0x45, 0xff, 0x43, 0x45, 0x48, 0xff, 0x3e, 0x3c, 0xa0, 0xff, 0x3a, 0x3a, 0xe1, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3e, 0x38, 0xaf, 0xff, 0x39, 0x4a, 0x5a, 0xff, 0x1b, 0x7e, 0xd2, 0xff, 0x1a, 0x7d, 0xd2, 0xd6, 0x1d, 0x78, 0xc2, 0xa0, + 0x1d, 0x78, 0xc2, 0xa0, 0x1b, 0x7c, 0xd2, 0xd6, 0x25, 0x68, 0xd8, 0xff, 0x3a, 0x3b, 0xda, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x37, 0x3f, 0xda, 0xff, 0x4a, 0x37, 0x32, 0xff, 0x45, 0x41, 0x3f, 0xff, 0x43, 0x45, 0x48, 0xff, 0x45, 0x43, 0x42, 0xff, 0x49, 0x43, 0x3e, 0xff, 0x34, 0x50, 0x68, 0xff, 0x21, 0x56, 0x83, 0xff, 0x26, 0x50, 0x72, 0xff, 0x26, 0x4e, 0x75, 0xff, 0x34, 0x40, 0xc0, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x37, 0x3d, 0xd7, 0xff, 0x2c, 0x4c, 0x96, 0xff, 0x35, 0x4c, 0x61, 0xff, 0x44, 0x47, 0x4c, 0xff, 0x46, 0x42, 0x41, 0xff, 0x45, 0x3f, 0x3a, 0xff, 0x49, 0x40, 0x3a, 0xff, 0x4a, 0x40, 0x3a, 0xff, 0x4a, 0x43, 0x3f, 0xff, 0x48, 0x45, 0x43, 0xff, 0x42, 0x46, 0x4b, 0xff, 0x35, 0x4c, 0x60, 0xff, 0x26, 0x53, 0x78, 0xff, 0x22, 0x54, 0x7e, 0xff, 0x24, 0x50, 0x74, 0xff, 0x25, 0x4f, 0x72, 0xff, 0x25, 0x4f, 0x73, 0xff, 0x25, 0x4f, 0x73, 0xff, 0x25, 0x4f, 0x73, 0xff, 0x25, 0x50, 0x73, 0xff, 0x27, 0x50, 0x73, 0xff, 0x2c, 0x53, 0x74, 0xff, 0x23, 0x58, 0x82, 0xff, 0x31, 0x4e, 0x65, 0xff, 0x48, 0x42, 0x3d, 0xff, 0x45, 0x43, 0x42, 0xff, 0x43, 0x45, 0x48, 0xff, 0x44, 0x40, 0x55, 0xff, 0x3a, 0x3a, 0xde, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3c, 0x39, 0xcc, 0xff, 0x39, 0x46, 0x7b, 0xff, 0x1b, 0x7d, 0xd2, 0xff, 0x1a, 0x7d, 0xd2, 0xd6, 0x1d, 0x78, 0xc2, 0xa0, + 0x1d, 0x76, 0xc2, 0xa0, 0x1b, 0x7b, 0xd3, 0xd7, 0x2e, 0x55, 0xdc, 0xff, 0x3a, 0x3a, 0xe1, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3b, 0xe1, 0xff, 0x34, 0x4d, 0xc6, 0xff, 0x4b, 0x37, 0x29, 0xff, 0x45, 0x41, 0x3f, 0xff, 0x43, 0x45, 0x48, 0xff, 0x4a, 0x43, 0x3f, 0xff, 0x44, 0x4a, 0x50, 0xff, 0x13, 0x46, 0x70, 0xff, 0x00, 0x30, 0x5d, 0xff, 0x01, 0x31, 0x58, 0xff, 0x04, 0x35, 0x5d, 0xff, 0x05, 0x34, 0x60, 0xff, 0x29, 0x38, 0xba, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3b, 0x3b, 0xd2, 0xff, 0x4a, 0x43, 0x6f, 0xff, 0x49, 0x40, 0x3c, 0xff, 0x27, 0x23, 0x20, 0xff, 0x22, 0x20, 0x1f, 0xff, 0x25, 0x24, 0x24, 0xff, 0x20, 0x1f, 0x1f, 0xff, 0x34, 0x32, 0x31, 0xff, 0x4e, 0x49, 0x48, 0xff, 0x4c, 0x44, 0x3f, 0xff, 0x4a, 0x41, 0x3b, 0xff, 0x46, 0x49, 0x4c, 0xff, 0x21, 0x42, 0x5e, 0xff, 0x00, 0x32, 0x5c, 0xff, 0x02, 0x34, 0x5e, 0xff, 0x03, 0x35, 0x5d, 0xff, 0x03, 0x35, 0x5d, 0xff, 0x03, 0x35, 0x5d, 0xff, 0x04, 0x34, 0x5d, 0xff, 0x00, 0x2f, 0x59, 0xff, 0x03, 0x32, 0x5a, 0xff, 0x1e, 0x4c, 0x73, 0xff, 0x2a, 0x59, 0x7e, 0xff, 0x3f, 0x48, 0x4e, 0xff, 0x48, 0x42, 0x3d, 0xff, 0x43, 0x45, 0x48, 0xff, 0x45, 0x41, 0x40, 0xff, 0x3e, 0x38, 0xac, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xdf, 0xff, 0x3a, 0x43, 0x9c, 0xff, 0x1c, 0x7c, 0xd3, 0xff, 0x1a, 0x7d, 0xd2, 0xd6, 0x1d, 0x76, 0xc2, 0xa0, + 0x1d, 0x76, 0xc2, 0xa0, 0x1f, 0x73, 0xd4, 0xdb, 0x34, 0x47, 0xdf, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x38, 0x3b, 0xe0, 0xff, 0x2e, 0x5d, 0xb0, 0xff, 0x4b, 0x37, 0x29, 0xff, 0x45, 0x41, 0x3f, 0xff, 0x45, 0x46, 0x48, 0xff, 0x4b, 0x45, 0x42, 0xff, 0x17, 0x38, 0x53, 0xff, 0x09, 0x3d, 0x6a, 0xff, 0x55, 0x74, 0x8f, 0xff, 0x79, 0x95, 0xa9, 0xff, 0x7d, 0x98, 0xac, 0xff, 0x7e, 0x97, 0xac, 0xff, 0x7c, 0x95, 0xae, 0xff, 0x48, 0x50, 0xcf, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3b, 0x3b, 0xd0, 0xff, 0x37, 0x38, 0x68, 0xff, 0x75, 0x76, 0x77, 0xff, 0x9b, 0x9b, 0x9b, 0xff, 0x93, 0x92, 0x92, 0xff, 0x90, 0x90, 0x90, 0xff, 0x4f, 0x50, 0x51, 0xff, 0x36, 0x36, 0x37, 0xff, 0x45, 0x46, 0x49, 0xff, 0x47, 0x45, 0x45, 0xff, 0x44, 0x3b, 0x34, 0xff, 0x58, 0x54, 0x51, 0xff, 0x7f, 0x95, 0xa8, 0xff, 0x7d, 0x9a, 0xb1, 0xff, 0x7b, 0x93, 0xa8, 0xff, 0x7b, 0x94, 0xaa, 0xff, 0x7c, 0x96, 0xab, 0xff, 0x7f, 0x97, 0xad, 0xff, 0x75, 0x8f, 0xa7, 0xff, 0x40, 0x66, 0x86, 0xff, 0x02, 0x31, 0x59, 0xff, 0x13, 0x47, 0x72, 0xff, 0x37, 0x51, 0x68, 0xff, 0x48, 0x42, 0x3f, 0xff, 0x43, 0x45, 0x48, 0xff, 0x45, 0x41, 0x40, 0xff, 0x45, 0x38, 0x6c, 0xff, 0x3a, 0x3a, 0xe3, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x40, 0xb7, 0xff, 0x1f, 0x75, 0xd4, 0xff, 0x1a, 0x7d, 0xd1, 0xd6, 0x1d, 0x76, 0xc2, 0xa0, + 0x1d, 0x76, 0xc2, 0xa0, 0x26, 0x64, 0xd8, 0xe4, 0x36, 0x42, 0xe0, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x38, 0x3f, 0xdd, 0xff, 0x2a, 0x67, 0xa1, 0xff, 0x4b, 0x37, 0x29, 0xff, 0x44, 0x41, 0x3f, 0xff, 0x48, 0x45, 0x44, 0xff, 0x30, 0x38, 0x3f, 0xff, 0x21, 0x4c, 0x70, 0xff, 0xb3, 0xc5, 0xd3, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfa, 0xfa, 0xfe, 0xff, 0x6e, 0x71, 0xea, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3d, 0x3d, 0xd3, 0xff, 0xbd, 0xbd, 0xec, 0xff, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xb2, 0xb1, 0xb2, 0xff, 0x24, 0x24, 0x25, 0xff, 0x3d, 0x3d, 0x3e, 0xff, 0x47, 0x47, 0x49, 0xff, 0x30, 0x30, 0x32, 0xff, 0x8c, 0x89, 0x89, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x87, 0x9e, 0xb2, 0xff, 0x06, 0x39, 0x64, 0xff, 0x1d, 0x48, 0x6d, 0xff, 0x43, 0x47, 0x4b, 0xff, 0x45, 0x44, 0x44, 0xff, 0x45, 0x42, 0x3f, 0xff, 0x49, 0x37, 0x3f, 0xff, 0x3a, 0x3b, 0xe1, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3b, 0x3e, 0xc6, 0xff, 0x26, 0x66, 0xd8, 0xff, 0x19, 0x7c, 0xd1, 0xd6, 0x1d, 0x76, 0xc2, 0xa0, + 0x1d, 0x74, 0xc1, 0xa0, 0x2e, 0x56, 0xda, 0xed, 0x38, 0x3e, 0xe1, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x34, 0x49, 0xd2, 0xff, 0x29, 0x68, 0x9e, 0xff, 0x4b, 0x37, 0x29, 0xff, 0x45, 0x42, 0x40, 0xff, 0x45, 0x41, 0x3e, 0xff, 0x24, 0x39, 0x4c, 0xff, 0x95, 0xae, 0xc4, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfb, 0xfc, 0xfd, 0xff, 0xfa, 0xfb, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfb, 0xfb, 0xfe, 0xff, 0x6c, 0x6b, 0xe0, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x50, 0x50, 0xe5, 0xff, 0xc5, 0xc5, 0xf6, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe3, 0xe3, 0xe3, 0xff, 0x42, 0x42, 0x43, 0xff, 0x2e, 0x2e, 0x2f, 0xff, 0x47, 0x47, 0x48, 0xff, 0x31, 0x31, 0x32, 0xff, 0x8c, 0x8d, 0x8d, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf9, 0xfc, 0xfe, 0xff, 0xe7, 0xef, 0xf3, 0xff, 0xe6, 0xeb, 0xee, 0xff, 0xf2, 0xf4, 0xf7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x6d, 0x8a, 0xa1, 0xff, 0x07, 0x3d, 0x69, 0xff, 0x35, 0x47, 0x57, 0xff, 0x48, 0x44, 0x41, 0xff, 0x44, 0x42, 0x40, 0xff, 0x4a, 0x37, 0x2f, 0xff, 0x37, 0x43, 0xd5, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3c, 0xd2, 0xff, 0x2c, 0x59, 0xda, 0xff, 0x1a, 0x7c, 0xd1, 0xd6, 0x1d, 0x74, 0xc1, 0xa0, + 0x1d, 0x76, 0xc1, 0xa0, 0x32, 0x4d, 0xdd, 0xf2, 0x39, 0x3c, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe0, 0xff, 0x30, 0x53, 0xc6, 0xff, 0x29, 0x68, 0x9e, 0xff, 0x4b, 0x38, 0x29, 0xff, 0x46, 0x42, 0x3e, 0xff, 0x3b, 0x3b, 0x3d, 0xff, 0x37, 0x53, 0x6a, 0xff, 0xd6, 0xe2, 0xed, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x8f, 0xa5, 0xb6, 0xff, 0x3b, 0x61, 0x82, 0xff, 0x3f, 0x64, 0x84, 0xff, 0x60, 0x7f, 0x98, 0xff, 0xe2, 0xe8, 0xec, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf7, 0xf7, 0xfe, 0xff, 0x4f, 0x4f, 0xc6, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x51, 0x51, 0xe3, 0xff, 0xb6, 0xb6, 0xe7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf9, 0xf9, 0xf9, 0xff, 0x6a, 0x6a, 0x6a, 0xff, 0x22, 0x22, 0x23, 0xff, 0x44, 0x44, 0x45, 0xff, 0x32, 0x32, 0x33, 0xff, 0x89, 0x89, 0x89, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xb7, 0xc3, 0xcd, 0xff, 0x2b, 0x4c, 0x70, 0xff, 0x2d, 0x56, 0x79, 0xff, 0x33, 0x59, 0x7b, 0xff, 0xa5, 0xb4, 0xc3, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xaa, 0xba, 0xc8, 0xff, 0x12, 0x45, 0x6f, 0xff, 0x25, 0x45, 0x5f, 0xff, 0x47, 0x45, 0x44, 0xff, 0x45, 0x41, 0x3e, 0xff, 0x4b, 0x38, 0x2e, 0xff, 0x34, 0x4b, 0xc8, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3b, 0xdb, 0xff, 0x30, 0x4f, 0xdd, 0xff, 0x19, 0x7c, 0xd1, 0xd6, 0x1d, 0x76, 0xc1, 0xa0, + 0x1d, 0x76, 0xc1, 0xa0, 0x34, 0x46, 0xdf, 0xf6, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xdf, 0xff, 0x2d, 0x59, 0xbe, 0xff, 0x29, 0x68, 0x9e, 0xff, 0x4a, 0x38, 0x2a, 0xff, 0x4a, 0x42, 0x3c, 0xff, 0x33, 0x39, 0x3f, 0xff, 0x40, 0x61, 0x7c, 0xff, 0xe2, 0xeb, 0xf2, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe6, 0xed, 0xf1, 0xff, 0x2a, 0x48, 0x6d, 0xff, 0x00, 0x22, 0x4f, 0xff, 0x03, 0x33, 0x5c, 0xff, 0x08, 0x27, 0x51, 0xff, 0xa9, 0xbc, 0xc9, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x93, 0x93, 0x9a, 0xff, 0x37, 0x37, 0xab, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x45, 0x45, 0xd8, 0xff, 0xc1, 0xc1, 0xf3, 0xff, 0xff, 0xff, 0xff, 0xff, 0x96, 0x96, 0x95, 0xff, 0x1f, 0x1f, 0x21, 0xff, 0x3e, 0x3e, 0x40, 0xff, 0x33, 0x33, 0x34, 0xff, 0x89, 0x89, 0x89, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xa3, 0xa8, 0xab, 0xff, 0x01, 0x12, 0x39, 0xff, 0x03, 0x30, 0x5e, 0xff, 0x00, 0x17, 0x47, 0xff, 0x44, 0x67, 0x85, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xb9, 0xc7, 0xd2, 0xff, 0x18, 0x48, 0x70, 0xff, 0x1d, 0x46, 0x66, 0xff, 0x43, 0x47, 0x4a, 0xff, 0x47, 0x40, 0x3b, 0xff, 0x4a, 0x38, 0x2d, 0xff, 0x31, 0x52, 0xbf, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe1, 0xff, 0x33, 0x48, 0xde, 0xff, 0x19, 0x7c, 0xd1, 0xd6, 0x1d, 0x76, 0xc1, 0xa0, + 0x1d, 0x74, 0xbf, 0xa0, 0x36, 0x42, 0xe0, 0xf9, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xdf, 0xff, 0x2b, 0x5e, 0xba, 0xff, 0x29, 0x68, 0x9e, 0xff, 0x4a, 0x38, 0x2a, 0xff, 0x4b, 0x41, 0x3a, 0xff, 0x30, 0x3a, 0x44, 0xff, 0x3e, 0x63, 0x82, 0xff, 0xe1, 0xe9, 0xf1, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe3, 0xe8, 0xec, 0xff, 0x24, 0x4d, 0x71, 0xff, 0x0c, 0x3b, 0x63, 0xff, 0x23, 0x4f, 0x72, 0xff, 0x09, 0x39, 0x62, 0xff, 0x8f, 0xa3, 0xb4, 0xff, 0xff, 0xfa, 0xf6, 0xff, 0xf6, 0xf4, 0xf4, 0xff, 0x81, 0x82, 0x82, 0xff, 0x31, 0x31, 0x3a, 0xff, 0x35, 0x35, 0xa9, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x50, 0x50, 0xe2, 0xff, 0xc5, 0xc5, 0xf6, 0xff, 0xc6, 0xc6, 0xc6, 0xff, 0x2e, 0x2e, 0x2e, 0xff, 0x35, 0x35, 0x36, 0xff, 0x33, 0x33, 0x34, 0xff, 0x8a, 0x8a, 0x8a, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xab, 0xa5, 0x9e, 0xff, 0x05, 0x12, 0x29, 0xff, 0x01, 0x32, 0x62, 0xff, 0x00, 0x1b, 0x4b, 0xff, 0x50, 0x71, 0x8d, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xb6, 0xc4, 0xd0, 0xff, 0x16, 0x46, 0x6f, 0xff, 0x1c, 0x46, 0x6b, 0xff, 0x41, 0x48, 0x4f, 0xff, 0x49, 0x3f, 0x39, 0xff, 0x4a, 0x38, 0x2b, 0xff, 0x31, 0x57, 0xb9, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x35, 0x44, 0xdf, 0xff, 0x19, 0x7b, 0xcf, 0xd6, 0x1d, 0x74, 0xbf, 0xa0, + 0x1d, 0x74, 0xbf, 0xa0, 0x37, 0x3f, 0xe1, 0xfb, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xdd, 0xff, 0x2b, 0x62, 0xb6, 0xff, 0x29, 0x68, 0x9e, 0xff, 0x4a, 0x38, 0x2a, 0xff, 0x4b, 0x41, 0x39, 0xff, 0x2e, 0x3c, 0x48, 0xff, 0x3b, 0x63, 0x84, 0xff, 0xe1, 0xe9, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe5, 0xea, 0xef, 0xff, 0x2a, 0x53, 0x76, 0xff, 0x0d, 0x3b, 0x63, 0xff, 0x2b, 0x56, 0x79, 0xff, 0x21, 0x52, 0x7a, 0xff, 0x3b, 0x4e, 0x5f, 0xff, 0x59, 0x52, 0x4c, 0xff, 0x52, 0x52, 0x51, 0xff, 0x44, 0x46, 0x47, 0xff, 0x3e, 0x3d, 0x3e, 0xff, 0x2d, 0x2d, 0x3a, 0xff, 0x57, 0x57, 0xc9, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x53, 0x53, 0xe6, 0xff, 0xb2, 0xb2, 0xe4, 0xff, 0x49, 0x49, 0x49, 0xff, 0x28, 0x28, 0x29, 0xff, 0x32, 0x32, 0x33, 0xff, 0x8a, 0x8a, 0x8a, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xd2, 0xcb, 0xc8, 0xff, 0x66, 0x73, 0x7d, 0xff, 0x5f, 0x82, 0x9d, 0xff, 0x64, 0x84, 0x9d, 0xff, 0xbf, 0xcc, 0xd5, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x98, 0xac, 0xff, 0x0e, 0x3f, 0x68, 0xff, 0x21, 0x4e, 0x72, 0xff, 0x3d, 0x49, 0x52, 0xff, 0x49, 0x3f, 0x38, 0xff, 0x4a, 0x38, 0x2b, 0xff, 0x30, 0x5a, 0xb5, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x37, 0x41, 0xe0, 0xff, 0x19, 0x7b, 0xcf, 0xd6, 0x1d, 0x74, 0xbf, 0xa0, + 0x1d, 0x74, 0xbf, 0xa0, 0x38, 0x3e, 0xe1, 0xfc, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xdd, 0xff, 0x2a, 0x63, 0xb4, 0xff, 0x29, 0x68, 0x9e, 0xff, 0x4a, 0x38, 0x2a, 0xff, 0x4c, 0x41, 0x39, 0xff, 0x2d, 0x3c, 0x4b, 0xff, 0x3a, 0x63, 0x86, 0xff, 0xe1, 0xe9, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe5, 0xea, 0xef, 0xff, 0x2a, 0x53, 0x76, 0xff, 0x0c, 0x3b, 0x62, 0xff, 0x2b, 0x57, 0x7b, 0xff, 0x27, 0x57, 0x7d, 0xff, 0x36, 0x42, 0x4e, 0xff, 0x38, 0x30, 0x2a, 0xff, 0x33, 0x33, 0x34, 0xff, 0x42, 0x42, 0x44, 0xff, 0x3c, 0x3c, 0x3d, 0xff, 0x35, 0x35, 0x36, 0xff, 0xb1, 0xb1, 0xc0, 0xff, 0x79, 0x79, 0xeb, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x52, 0x52, 0xe6, 0xff, 0x5e, 0x5e, 0x8f, 0xff, 0x22, 0x22, 0x23, 0xff, 0x30, 0x30, 0x31, 0xff, 0x8a, 0x8a, 0x8a, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x97, 0xab, 0xbb, 0xff, 0x00, 0x2a, 0x55, 0xff, 0x17, 0x46, 0x6f, 0xff, 0x29, 0x56, 0x7c, 0xff, 0x3b, 0x48, 0x54, 0xff, 0x49, 0x3f, 0x37, 0xff, 0x4a, 0x38, 0x2b, 0xff, 0x2f, 0x5b, 0xb2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x38, 0x3f, 0xe1, 0xff, 0x19, 0x7b, 0xcf, 0xd6, 0x1d, 0x74, 0xbf, 0xa0, + 0x1d, 0x74, 0xbf, 0xa0, 0x37, 0x40, 0xe0, 0xfb, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xde, 0xff, 0x2b, 0x62, 0xb6, 0xff, 0x29, 0x68, 0x9e, 0xff, 0x4a, 0x38, 0x2a, 0xff, 0x4c, 0x40, 0x39, 0xff, 0x2d, 0x3c, 0x4b, 0xff, 0x3a, 0x63, 0x86, 0xff, 0xe1, 0xe9, 0xef, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe5, 0xea, 0xef, 0xff, 0x2a, 0x53, 0x76, 0xff, 0x0c, 0x3b, 0x62, 0xff, 0x2b, 0x57, 0x7b, 0xff, 0x27, 0x55, 0x7d, 0xff, 0x38, 0x42, 0x4d, 0xff, 0x3c, 0x34, 0x2f, 0xff, 0x39, 0x38, 0x39, 0xff, 0x42, 0x42, 0x44, 0xff, 0x38, 0x38, 0x39, 0xff, 0x52, 0x52, 0x54, 0xff, 0xe7, 0xe7, 0xe7, 0xff, 0xee, 0xee, 0xfc, 0xff, 0x6d, 0x6d, 0xdf, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x47, 0x47, 0xdb, 0xff, 0x2c, 0x2c, 0x5d, 0xff, 0x29, 0x29, 0x2a, 0xff, 0x8b, 0x8b, 0x8b, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfd, 0xfd, 0xfc, 0xff, 0xf8, 0xf8, 0xf7, 0xff, 0xf6, 0xf8, 0xfa, 0xff, 0xf6, 0xf8, 0xfa, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc8, 0xd3, 0xdb, 0xff, 0x3d, 0x61, 0x7f, 0xff, 0x12, 0x42, 0x6b, 0xff, 0x24, 0x52, 0x78, 0xff, 0x3c, 0x49, 0x54, 0xff, 0x49, 0x3e, 0x37, 0xff, 0x4a, 0x38, 0x2b, 0xff, 0x30, 0x5a, 0xb5, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x37, 0x40, 0xe0, 0xff, 0x19, 0x7b, 0xce, 0xd6, 0x1d, 0x74, 0xbf, 0xa0, + 0x1d, 0x74, 0xbf, 0xa0, 0x35, 0x43, 0xdf, 0xf9, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xdf, 0xff, 0x2c, 0x5e, 0xbb, 0xff, 0x29, 0x68, 0x9e, 0xff, 0x4a, 0x38, 0x2a, 0xff, 0x4b, 0x41, 0x39, 0xff, 0x2d, 0x3c, 0x49, 0xff, 0x3a, 0x63, 0x85, 0xff, 0xe1, 0xe9, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe5, 0xea, 0xef, 0xff, 0x2a, 0x53, 0x76, 0xff, 0x0c, 0x3b, 0x62, 0xff, 0x2c, 0x57, 0x7b, 0xff, 0x24, 0x54, 0x7d, 0xff, 0x2f, 0x3f, 0x4f, 0xff, 0x42, 0x3a, 0x35, 0xff, 0x3b, 0x39, 0x3a, 0xff, 0x3b, 0x3b, 0x3d, 0xff, 0x31, 0x31, 0x32, 0xff, 0x7b, 0x7b, 0x7b, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xa5, 0xa5, 0xb5, 0xff, 0x31, 0x31, 0xa6, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x39, 0x39, 0xcf, 0xff, 0x25, 0x25, 0x54, 0xff, 0x8a, 0x8a, 0x8b, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc1, 0xba, 0xb4, 0xff, 0x37, 0x43, 0x4f, 0xff, 0x32, 0x5d, 0x81, 0xff, 0x28, 0x53, 0x79, 0xff, 0x7d, 0x95, 0xaa, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc1, 0xce, 0xd7, 0xff, 0x1c, 0x4a, 0x71, 0xff, 0x19, 0x47, 0x6f, 0xff, 0x3e, 0x4a, 0x54, 0xff, 0x49, 0x3f, 0x37, 0xff, 0x4a, 0x38, 0x2c, 0xff, 0x30, 0x55, 0xba, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x35, 0x44, 0xdf, 0xff, 0x19, 0x7a, 0xce, 0xd6, 0x1d, 0x74, 0xbf, 0xa0, + 0x1d, 0x74, 0xbf, 0xa0, 0x33, 0x46, 0xde, 0xf6, 0x3a, 0x3b, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xdf, 0xff, 0x2d, 0x59, 0xbf, 0xff, 0x29, 0x68, 0x9e, 0xff, 0x4a, 0x38, 0x2a, 0xff, 0x4b, 0x41, 0x39, 0xff, 0x30, 0x3b, 0x45, 0xff, 0x3d, 0x63, 0x84, 0xff, 0xe1, 0xe9, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe3, 0xe8, 0xed, 0xff, 0x27, 0x50, 0x73, 0xff, 0x11, 0x3f, 0x65, 0xff, 0x28, 0x53, 0x76, 0xff, 0x10, 0x3f, 0x67, 0xff, 0x83, 0x96, 0xa7, 0xff, 0xec, 0xe5, 0xe1, 0xff, 0xdf, 0xdd, 0xde, 0xff, 0x74, 0x75, 0x76, 0xff, 0x1d, 0x1d, 0x1e, 0xff, 0x9a, 0x9a, 0x9a, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe5, 0xe5, 0xe5, 0xff, 0xbd, 0xbd, 0xcb, 0xff, 0x68, 0x68, 0xdb, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x36, 0x36, 0xcc, 0xff, 0x73, 0x73, 0xa2, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xaa, 0xa2, 0x98, 0xff, 0x05, 0x08, 0x1c, 0xff, 0x00, 0x31, 0x60, 0xff, 0x00, 0x1c, 0x4c, 0xff, 0x24, 0x3f, 0x65, 0xff, 0xe2, 0xea, 0xee, 0xff, 0xff, 0xff, 0xff, 0xff, 0xde, 0xe5, 0xe9, 0xff, 0x32, 0x5c, 0x7f, 0xff, 0x15, 0x43, 0x6b, 0xff, 0x3f, 0x48, 0x50, 0xff, 0x49, 0x3f, 0x38, 0xff, 0x4a, 0x38, 0x2d, 0xff, 0x32, 0x51, 0xc0, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe0, 0xff, 0x33, 0x49, 0xdd, 0xff, 0x19, 0x7a, 0xcd, 0xd6, 0x1d, 0x74, 0xbe, 0xa0, + 0x1d, 0x74, 0xbe, 0xa0, 0x30, 0x4e, 0xdc, 0xf1, 0x39, 0x3c, 0xe1, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe1, 0xff, 0x31, 0x51, 0xc9, 0xff, 0x29, 0x68, 0x9e, 0xff, 0x4a, 0x38, 0x2a, 0xff, 0x4b, 0x42, 0x3b, 0xff, 0x31, 0x39, 0x40, 0xff, 0x42, 0x64, 0x81, 0xff, 0xe5, 0xed, 0xf4, 0xff, 0xff, 0xff, 0xff, 0xff, 0xdf, 0xe9, 0xed, 0xff, 0x22, 0x3b, 0x62, 0xff, 0x00, 0x23, 0x4f, 0xff, 0x07, 0x36, 0x5f, 0xff, 0x05, 0x1d, 0x4b, 0xff, 0xa0, 0xb6, 0xc6, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x95, 0x95, 0x95, 0xff, 0x23, 0x23, 0x25, 0xff, 0xbf, 0xbf, 0xc1, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf1, 0xf1, 0xfd, 0xff, 0x79, 0x79, 0xeb, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x42, 0x42, 0xd8, 0xff, 0xc7, 0xc7, 0xf7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xab, 0xa9, 0xa7, 0xff, 0x05, 0x1a, 0x3a, 0xff, 0x0a, 0x3c, 0x69, 0xff, 0x00, 0x29, 0x55, 0xff, 0x1e, 0x3d, 0x65, 0xff, 0xda, 0xe4, 0xe9, 0xff, 0xff, 0xff, 0xff, 0xff, 0xdc, 0xe3, 0xe8, 0xff, 0x33, 0x5d, 0x80, 0xff, 0x18, 0x43, 0x66, 0xff, 0x42, 0x47, 0x4c, 0xff, 0x48, 0x40, 0x3a, 0xff, 0x4a, 0x38, 0x2f, 0xff, 0x34, 0x4a, 0xca, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3b, 0xda, 0xff, 0x30, 0x50, 0xdb, 0xff, 0x19, 0x7a, 0xcd, 0xd6, 0x1d, 0x74, 0xbe, 0xa0, + 0x1d, 0x74, 0xbe, 0xa0, 0x2b, 0x56, 0xd8, 0xeb, 0x38, 0x3f, 0xe0, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x34, 0x48, 0xd3, 0xff, 0x29, 0x68, 0x9e, 0xff, 0x4a, 0x38, 0x29, 0xff, 0x48, 0x42, 0x3d, 0xff, 0x38, 0x3b, 0x3e, 0xff, 0x3b, 0x59, 0x71, 0xff, 0xdd, 0xe8, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x6a, 0x86, 0x9e, 0xff, 0x0b, 0x39, 0x62, 0xff, 0x15, 0x41, 0x67, 0xff, 0x39, 0x59, 0x79, 0xff, 0xcf, 0xda, 0xe0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7a, 0x7a, 0x7b, 0xff, 0x3f, 0x3f, 0x41, 0xff, 0xea, 0xea, 0xeb, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf4, 0xf4, 0xf4, 0xff, 0xa6, 0xa6, 0xa6, 0xff, 0x9c, 0x9c, 0x9d, 0xff, 0xa9, 0xa9, 0xaa, 0xff, 0x93, 0x93, 0x9c, 0xff, 0x65, 0x65, 0xdb, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x50, 0x50, 0xe5, 0xff, 0xca, 0xca, 0xf7, 0xff, 0xa9, 0xb4, 0xbd, 0xff, 0x14, 0x26, 0x4f, 0xff, 0x0d, 0x39, 0x63, 0xff, 0x07, 0x2f, 0x59, 0xff, 0x59, 0x77, 0x91, 0xff, 0xf8, 0xfc, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xd2, 0xdb, 0xe2, 0xff, 0x24, 0x53, 0x79, 0xff, 0x1e, 0x42, 0x60, 0xff, 0x46, 0x46, 0x47, 0xff, 0x46, 0x40, 0x3d, 0xff, 0x4a, 0x38, 0x30, 0xff, 0x37, 0x41, 0xd8, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3c, 0xd1, 0xff, 0x2c, 0x5a, 0xd7, 0xff, 0x19, 0x7a, 0xcc, 0xd6, 0x1d, 0x74, 0xbe, 0xa0, + 0x1d, 0x74, 0xbe, 0xa0, 0x26, 0x64, 0xd4, 0xe3, 0x36, 0x42, 0xdf, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x38, 0x3e, 0xdd, 0xff, 0x2a, 0x65, 0xa2, 0xff, 0x4b, 0x37, 0x29, 0xff, 0x45, 0x42, 0x40, 0xff, 0x43, 0x40, 0x3f, 0xff, 0x25, 0x3d, 0x53, 0xff, 0xa6, 0xbd, 0xd0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfa, 0xfa, 0xfc, 0xff, 0xdd, 0xe4, 0xea, 0xff, 0xd7, 0xe0, 0xe5, 0xff, 0xee, 0xf3, 0xf5, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfa, 0xf7, 0xf5, 0xff, 0x42, 0x42, 0x42, 0xff, 0x5e, 0x5e, 0x60, 0xff, 0xfd, 0xfd, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0xc0, 0xc0, 0xff, 0x0a, 0x0a, 0x0b, 0xff, 0x12, 0x12, 0x13, 0xff, 0x2a, 0x2a, 0x2b, 0xff, 0x00, 0x00, 0x00, 0xff, 0x58, 0x58, 0x5e, 0xff, 0x75, 0x75, 0xeb, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x50, 0x50, 0xe5, 0xff, 0xba, 0xbf, 0xf0, 0xff, 0xc7, 0xd6, 0xe0, 0xff, 0xcb, 0xd5, 0xde, 0xff, 0xcd, 0xd9, 0xe1, 0xff, 0xf1, 0xf4, 0xf6, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xa4, 0xb5, 0xc5, 0xff, 0x0e, 0x42, 0x6e, 0xff, 0x2b, 0x43, 0x57, 0xff, 0x48, 0x45, 0x43, 0xff, 0x44, 0x41, 0x40, 0xff, 0x49, 0x38, 0x45, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3e, 0xc4, 0xff, 0x24, 0x66, 0xd4, 0xff, 0x19, 0x7a, 0xcc, 0xd6, 0x1d, 0x74, 0xbe, 0xa0, + 0x1d, 0x73, 0xbe, 0xa0, 0x1d, 0x71, 0xce, 0xda, 0x33, 0x47, 0xdd, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x39, 0x3c, 0xe1, 0xff, 0x2e, 0x59, 0xb4, 0xff, 0x4b, 0x37, 0x29, 0xff, 0x44, 0x42, 0x40, 0xff, 0x48, 0x44, 0x42, 0xff, 0x28, 0x34, 0x41, 0xff, 0x38, 0x61, 0x83, 0xff, 0xda, 0xe2, 0xe9, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x81, 0x8a, 0x93, 0xff, 0x16, 0x12, 0x10, 0xff, 0xb2, 0xb0, 0xaf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x96, 0x96, 0x95, 0xff, 0x12, 0x12, 0x14, 0xff, 0x39, 0x39, 0x3b, 0xff, 0x42, 0x42, 0x42, 0xff, 0x22, 0x22, 0x23, 0xff, 0x39, 0x39, 0x3a, 0xff, 0xe0, 0xe0, 0xe3, 0xff, 0x75, 0x75, 0xeb, 0xff, 0x3b, 0x3b, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x4f, 0x4f, 0xe5, 0xff, 0xc7, 0xc7, 0xf7, 0xff, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xda, 0xe1, 0xe6, 0xff, 0x31, 0x5a, 0x7c, 0xff, 0x0e, 0x3f, 0x68, 0xff, 0x3f, 0x47, 0x50, 0xff, 0x47, 0x44, 0x42, 0xff, 0x44, 0x42, 0x41, 0xff, 0x45, 0x39, 0x75, 0xff, 0x39, 0x39, 0xe3, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x40, 0xb3, 0xff, 0x1e, 0x73, 0xcd, 0xff, 0x19, 0x7a, 0xcb, 0xd6, 0x1d, 0x73, 0xbc, 0xa0, + 0x1d, 0x73, 0xbc, 0xa0, 0x1a, 0x77, 0xcc, 0xd7, 0x2c, 0x55, 0xd9, 0xff, 0x3a, 0x3a, 0xe0, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x33, 0x49, 0xcb, 0xff, 0x4b, 0x37, 0x29, 0xff, 0x45, 0x41, 0x3f, 0xff, 0x45, 0x46, 0x47, 0xff, 0x45, 0x42, 0x42, 0xff, 0x11, 0x37, 0x57, 0xff, 0x2d, 0x5a, 0x80, 0xff, 0x8b, 0xa1, 0xb3, 0xff, 0xa6, 0xb8, 0xc6, 0xff, 0xa4, 0xb5, 0xc5, 0xff, 0xa2, 0xb3, 0xc4, 0xff, 0xa6, 0xb8, 0xc7, 0xff, 0x9e, 0xb2, 0xc0, 0xff, 0x55, 0x79, 0x97, 0xff, 0x01, 0x31, 0x5a, 0xff, 0x2c, 0x39, 0x46, 0xff, 0xa1, 0x97, 0x92, 0xff, 0xc0, 0xbc, 0xba, 0xff, 0xb0, 0xaf, 0xb0, 0xff, 0x58, 0x59, 0x5a, 0xff, 0x35, 0x35, 0x36, 0xff, 0x4a, 0x4b, 0x4c, 0xff, 0x4a, 0x4a, 0x4b, 0xff, 0x42, 0x42, 0x43, 0xff, 0x34, 0x34, 0x35, 0xff, 0x88, 0x88, 0x89, 0xff, 0xb9, 0xb9, 0xbe, 0xff, 0x5f, 0x5f, 0xd6, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x45, 0x47, 0xdf, 0xff, 0x84, 0x91, 0xcb, 0xff, 0xa5, 0xb6, 0xc5, 0xff, 0xa7, 0xb9, 0xc7, 0xff, 0x85, 0x9d, 0xb1, 0xff, 0x26, 0x4f, 0x72, 0xff, 0x04, 0x39, 0x66, 0xff, 0x2e, 0x4f, 0x6a, 0xff, 0x48, 0x45, 0x43, 0xff, 0x44, 0x45, 0x46, 0xff, 0x45, 0x41, 0x41, 0xff, 0x3f, 0x3a, 0xb5, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xde, 0xff, 0x3a, 0x43, 0x96, 0xff, 0x1b, 0x78, 0xcc, 0xff, 0x19, 0x7a, 0xcb, 0xd6, 0x1d, 0x73, 0xbc, 0xa0, + 0x1d, 0x73, 0xbc, 0xa0, 0x19, 0x7a, 0xcb, 0xd6, 0x23, 0x68, 0xd1, 0xff, 0x3a, 0x3b, 0xda, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x39, 0x3e, 0xdc, 0xff, 0x49, 0x37, 0x3a, 0xff, 0x45, 0x41, 0x3f, 0xff, 0x43, 0x45, 0x48, 0xff, 0x4a, 0x44, 0x3f, 0xff, 0x38, 0x48, 0x56, 0xff, 0x0e, 0x42, 0x6e, 0xff, 0x0c, 0x3d, 0x65, 0xff, 0x12, 0x41, 0x67, 0xff, 0x12, 0x40, 0x68, 0xff, 0x12, 0x3f, 0x67, 0xff, 0x11, 0x40, 0x67, 0xff, 0x0f, 0x3e, 0x65, 0xff, 0x0d, 0x3c, 0x62, 0xff, 0x1c, 0x4d, 0x74, 0xff, 0x2c, 0x59, 0x7f, 0xff, 0x2f, 0x3f, 0x4f, 0xff, 0x33, 0x2e, 0x2b, 0xff, 0x33, 0x2d, 0x2a, 0xff, 0x3f, 0x3b, 0x3a, 0xff, 0x4a, 0x49, 0x48, 0xff, 0x45, 0x45, 0x46, 0xff, 0x45, 0x44, 0x45, 0xff, 0x48, 0x47, 0x48, 0xff, 0x45, 0x46, 0x45, 0xff, 0x35, 0x34, 0x33, 0xff, 0x31, 0x2e, 0x2c, 0xff, 0x38, 0x31, 0x31, 0xff, 0x3e, 0x3c, 0xb3, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x36, 0x3b, 0xd4, 0xff, 0x1d, 0x3e, 0x8a, 0xff, 0x12, 0x41, 0x67, 0xff, 0x0d, 0x3d, 0x62, 0xff, 0x12, 0x41, 0x67, 0xff, 0x23, 0x54, 0x7c, 0xff, 0x3c, 0x4b, 0x59, 0xff, 0x48, 0x42, 0x3d, 0xff, 0x43, 0x45, 0x48, 0xff, 0x44, 0x40, 0x5c, 0xff, 0x39, 0x39, 0xe1, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3c, 0x39, 0xc9, 0xff, 0x39, 0x46, 0x74, 0xff, 0x1a, 0x79, 0xcb, 0xff, 0x19, 0x7a, 0xcb, 0xd6, 0x1d, 0x73, 0xbc, 0xa0, + 0x1d, 0x73, 0xbe, 0xa0, 0x19, 0x7a, 0xcb, 0xd6, 0x1a, 0x79, 0xca, 0xff, 0x3a, 0x3d, 0xca, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3b, 0xe1, 0xff, 0x41, 0x38, 0x90, 0xff, 0x45, 0x41, 0x3f, 0xff, 0x43, 0x45, 0x48, 0xff, 0x46, 0x43, 0x41, 0xff, 0x46, 0x45, 0x43, 0xff, 0x2b, 0x52, 0x6f, 0xff, 0x1d, 0x51, 0x7a, 0xff, 0x20, 0x4a, 0x6d, 0xff, 0x20, 0x4b, 0x70, 0xff, 0x20, 0x4b, 0x70, 0xff, 0x1f, 0x4b, 0x6f, 0xff, 0x20, 0x4c, 0x70, 0xff, 0x27, 0x51, 0x73, 0xff, 0x2b, 0x54, 0x76, 0xff, 0x25, 0x53, 0x7a, 0xff, 0x1e, 0x4e, 0x75, 0xff, 0x26, 0x45, 0x60, 0xff, 0x37, 0x3f, 0x48, 0xff, 0x46, 0x43, 0x40, 0xff, 0x4b, 0x44, 0x41, 0xff, 0x49, 0x43, 0x3e, 0xff, 0x4a, 0x43, 0x3e, 0xff, 0x4b, 0x44, 0x3f, 0xff, 0x4b, 0x45, 0x40, 0xff, 0x44, 0x3e, 0x3a, 0xff, 0x3e, 0x3a, 0x39, 0xff, 0x37, 0x40, 0x48, 0xff, 0x2e, 0x4d, 0x69, 0xff, 0x33, 0x41, 0xc2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x37, 0x3c, 0xd5, 0xff, 0x27, 0x46, 0x91, 0xff, 0x24, 0x4d, 0x70, 0xff, 0x23, 0x56, 0x7f, 0xff, 0x2c, 0x51, 0x70, 0xff, 0x45, 0x44, 0x43, 0xff, 0x46, 0x43, 0x41, 0xff, 0x43, 0x45, 0x48, 0xff, 0x3f, 0x3e, 0xa5, 0xff, 0x39, 0x39, 0xe1, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3f, 0x39, 0xab, 0xff, 0x39, 0x49, 0x59, 0xff, 0x1a, 0x79, 0xca, 0xff, 0x19, 0x7a, 0xcb, 0xd6, 0x1d, 0x73, 0xbe, 0xa0, + 0x1d, 0x73, 0xba, 0xa0, 0x19, 0x7a, 0xcb, 0xd6, 0x1a, 0x79, 0xca, 0xff, 0x39, 0x42, 0x97, 0xff, 0x3a, 0x3a, 0xdf, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3c, 0x3a, 0xcf, 0xff, 0x44, 0x40, 0x50, 0xff, 0x43, 0x45, 0x48, 0xff, 0x44, 0x44, 0x44, 0xff, 0x49, 0x42, 0x3c, 0xff, 0x3f, 0x48, 0x50, 0xff, 0x24, 0x56, 0x80, 0xff, 0x26, 0x54, 0x7b, 0xff, 0x2a, 0x51, 0x73, 0xff, 0x28, 0x52, 0x75, 0xff, 0x29, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x74, 0xff, 0x28, 0x52, 0x76, 0xff, 0x25, 0x54, 0x7e, 0xff, 0x27, 0x54, 0x7b, 0xff, 0x2d, 0x50, 0x6d, 0xff, 0x36, 0x4c, 0x5c, 0xff, 0x3d, 0x48, 0x53, 0xff, 0x40, 0x47, 0x4f, 0xff, 0x40, 0x47, 0x4f, 0xff, 0x3d, 0x48, 0x53, 0xff, 0x37, 0x4c, 0x5d, 0xff, 0x2e, 0x50, 0x6e, 0xff, 0x27, 0x55, 0x7a, 0xff, 0x23, 0x54, 0x7d, 0xff, 0x28, 0x51, 0x79, 0xff, 0x35, 0x41, 0xc0, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x38, 0x3d, 0xd5, 0xff, 0x2c, 0x4c, 0x9a, 0xff, 0x22, 0x56, 0x7f, 0xff, 0x3f, 0x48, 0x50, 0xff, 0x49, 0x42, 0x3c, 0xff, 0x44, 0x44, 0x44, 0xff, 0x42, 0x43, 0x62, 0xff, 0x3a, 0x3a, 0xdc, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3b, 0x3a, 0xd9, 0xff, 0x44, 0x37, 0x67, 0xff, 0x39, 0x49, 0x59, 0xff, 0x1a, 0x79, 0xca, 0xff, 0x19, 0x7a, 0xcb, 0xd6, 0x1d, 0x73, 0xba, 0xa0, + 0x1b, 0x73, 0xba, 0xa0, 0x1a, 0x78, 0xcb, 0xd6, 0x19, 0x78, 0xca, 0xff, 0x38, 0x48, 0x64, 0xff, 0x3b, 0x3a, 0xcf, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xdf, 0xff, 0x3e, 0x3d, 0xa2, 0xff, 0x43, 0x45, 0x48, 0xff, 0x44, 0x44, 0x45, 0xff, 0x46, 0x43, 0x41, 0xff, 0x4c, 0x41, 0x3a, 0xff, 0x35, 0x4d, 0x61, 0xff, 0x1e, 0x57, 0x86, 0xff, 0x27, 0x53, 0x77, 0xff, 0x29, 0x52, 0x73, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x29, 0x52, 0x74, 0xff, 0x26, 0x53, 0x78, 0xff, 0x23, 0x54, 0x7e, 0xff, 0x23, 0x54, 0x7d, 0xff, 0x24, 0x54, 0x7c, 0xff, 0x24, 0x54, 0x7b, 0xff, 0x24, 0x54, 0x7b, 0xff, 0x24, 0x54, 0x7c, 0xff, 0x23, 0x54, 0x7d, 0xff, 0x23, 0x54, 0x7e, 0xff, 0x26, 0x53, 0x78, 0xff, 0x29, 0x52, 0x74, 0xff, 0x28, 0x52, 0x75, 0xff, 0x29, 0x51, 0x7b, 0xff, 0x35, 0x41, 0xc2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x37, 0x3e, 0xd6, 0xff, 0x37, 0x47, 0x87, 0xff, 0x4d, 0x41, 0x3a, 0xff, 0x46, 0x43, 0x41, 0xff, 0x44, 0x44, 0x46, 0xff, 0x3c, 0x3d, 0xb9, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3c, 0x3a, 0xbc, 0xff, 0x49, 0x35, 0x29, 0xff, 0x38, 0x49, 0x59, 0xff, 0x19, 0x78, 0xca, 0xff, 0x19, 0x78, 0xcb, 0xd6, 0x1d, 0x73, 0xba, 0xa0, + 0x1d, 0x73, 0xba, 0xa0, 0x18, 0x78, 0xcb, 0xd6, 0x19, 0x78, 0xca, 0xff, 0x39, 0x49, 0x59, 0xff, 0x41, 0x38, 0x85, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3b, 0x3a, 0xd9, 0xff, 0x41, 0x43, 0x71, 0xff, 0x44, 0x44, 0x45, 0xff, 0x43, 0x44, 0x46, 0xff, 0x49, 0x43, 0x3f, 0xff, 0x4d, 0x42, 0x3a, 0xff, 0x2f, 0x50, 0x6c, 0xff, 0x1d, 0x56, 0x86, 0xff, 0x27, 0x52, 0x75, 0xff, 0x29, 0x52, 0x73, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x74, 0xff, 0x2a, 0x52, 0x73, 0xff, 0x27, 0x53, 0x76, 0xff, 0x26, 0x53, 0x78, 0xff, 0x26, 0x53, 0x79, 0xff, 0x26, 0x53, 0x79, 0xff, 0x26, 0x53, 0x78, 0xff, 0x27, 0x53, 0x76, 0xff, 0x2a, 0x52, 0x73, 0xff, 0x28, 0x52, 0x74, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x29, 0x51, 0x7b, 0xff, 0x34, 0x42, 0xc0, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3c, 0x3b, 0xcd, 0xff, 0x45, 0x41, 0x6b, 0xff, 0x43, 0x44, 0x46, 0xff, 0x41, 0x41, 0x81, 0xff, 0x3a, 0x3a, 0xe1, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3b, 0xe1, 0xff, 0x41, 0x3b, 0x74, 0xff, 0x48, 0x35, 0x25, 0xff, 0x39, 0x49, 0x59, 0xff, 0x19, 0x78, 0xca, 0xff, 0x18, 0x78, 0xcb, 0xd6, 0x1b, 0x73, 0xba, 0xa0, + 0x1b, 0x73, 0xba, 0xa0, 0x18, 0x78, 0xc8, 0xd6, 0x19, 0x78, 0xc8, 0xff, 0x38, 0x49, 0x59, 0xff, 0x48, 0x35, 0x30, 0xff, 0x3b, 0x39, 0xcb, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3c, 0x3d, 0xc5, 0xff, 0x43, 0x43, 0x5b, 0xff, 0x44, 0x44, 0x46, 0xff, 0x44, 0x45, 0x48, 0xff, 0x4b, 0x42, 0x3c, 0xff, 0x4b, 0x43, 0x3d, 0xff, 0x2d, 0x50, 0x6e, 0xff, 0x1f, 0x56, 0x84, 0xff, 0x27, 0x53, 0x77, 0xff, 0x29, 0x52, 0x74, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x74, 0xff, 0x29, 0x52, 0x74, 0xff, 0x29, 0x52, 0x74, 0xff, 0x29, 0x52, 0x74, 0xff, 0x29, 0x52, 0x74, 0xff, 0x28, 0x52, 0x74, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x29, 0x50, 0x7c, 0xff, 0x35, 0x41, 0xc0, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3c, 0x3c, 0xc9, 0xff, 0x41, 0x41, 0x85, 0xff, 0x3b, 0x3b, 0xd1, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x34, 0x45, 0xd5, 0xff, 0x45, 0x3b, 0x32, 0xff, 0x49, 0x35, 0x25, 0xff, 0x38, 0x49, 0x59, 0xff, 0x19, 0x78, 0xc8, 0xff, 0x18, 0x78, 0xc8, 0xd6, 0x1b, 0x73, 0xba, 0xa0, + 0x1b, 0x73, 0xba, 0xa0, 0x18, 0x78, 0xc8, 0xd6, 0x19, 0x78, 0xc8, 0xff, 0x38, 0x49, 0x59, 0xff, 0x49, 0x35, 0x25, 0xff, 0x41, 0x3b, 0x6b, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3d, 0x3d, 0xad, 0xff, 0x43, 0x43, 0x4e, 0xff, 0x44, 0x45, 0x47, 0xff, 0x44, 0x45, 0x48, 0xff, 0x4b, 0x43, 0x3d, 0xff, 0x4a, 0x44, 0x3e, 0xff, 0x2f, 0x4f, 0x69, 0xff, 0x1f, 0x55, 0x83, 0xff, 0x23, 0x54, 0x7c, 0xff, 0x28, 0x52, 0x74, 0xff, 0x29, 0x52, 0x74, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x29, 0x52, 0x74, 0xff, 0x28, 0x52, 0x74, 0xff, 0x25, 0x52, 0x85, 0xff, 0x32, 0x42, 0xc4, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3b, 0xe2, 0xff, 0x2a, 0x62, 0xb6, 0xff, 0x45, 0x3b, 0x31, 0xff, 0x49, 0x35, 0x25, 0xff, 0x38, 0x49, 0x59, 0xff, 0x19, 0x78, 0xc8, 0xff, 0x18, 0x78, 0xc8, 0xd6, 0x1b, 0x73, 0xba, 0xa0, + 0x1b, 0x71, 0xba, 0xa0, 0x18, 0x77, 0xc8, 0xd6, 0x19, 0x77, 0xc8, 0xff, 0x38, 0x4a, 0x59, 0xff, 0x49, 0x35, 0x25, 0xff, 0x45, 0x3a, 0x31, 0xff, 0x32, 0x4d, 0xcc, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe0, 0xff, 0x3d, 0x3d, 0xa3, 0xff, 0x44, 0x44, 0x4f, 0xff, 0x45, 0x45, 0x46, 0xff, 0x43, 0x45, 0x48, 0xff, 0x49, 0x43, 0x3f, 0xff, 0x4b, 0x43, 0x3d, 0xff, 0x37, 0x4c, 0x5e, 0xff, 0x21, 0x56, 0x7f, 0xff, 0x20, 0x56, 0x81, 0xff, 0x26, 0x53, 0x77, 0xff, 0x29, 0x52, 0x74, 0xff, 0x29, 0x52, 0x74, 0xff, 0x28, 0x52, 0x74, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x74, 0xff, 0x29, 0x52, 0x74, 0xff, 0x29, 0x52, 0x74, 0xff, 0x26, 0x53, 0x77, 0xff, 0x20, 0x56, 0x81, 0xff, 0x21, 0x56, 0x7f, 0xff, 0x37, 0x4a, 0x69, 0xff, 0x40, 0x3d, 0xab, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe3, 0xff, 0x33, 0x51, 0xc2, 0xff, 0x25, 0x6d, 0xa9, 0xff, 0x45, 0x3a, 0x31, 0xff, 0x49, 0x35, 0x25, 0xff, 0x38, 0x4a, 0x59, 0xff, 0x19, 0x77, 0xc8, 0xff, 0x18, 0x77, 0xc8, 0xd6, 0x1b, 0x71, 0xba, 0xa0, + 0x1b, 0x71, 0xb9, 0xa0, 0x18, 0x77, 0xc7, 0xd6, 0x19, 0x77, 0xc9, 0xff, 0x38, 0x49, 0x59, 0xff, 0x49, 0x34, 0x25, 0xff, 0x45, 0x3a, 0x31, 0xff, 0x27, 0x67, 0xaf, 0xff, 0x36, 0x41, 0xd6, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe0, 0xff, 0x3e, 0x3e, 0xa4, 0xff, 0x44, 0x44, 0x4e, 0xff, 0x44, 0x45, 0x46, 0xff, 0x44, 0x45, 0x48, 0xff, 0x48, 0x44, 0x42, 0xff, 0x4d, 0x42, 0x39, 0xff, 0x41, 0x45, 0x4b, 0xff, 0x2c, 0x4f, 0x6e, 0xff, 0x20, 0x57, 0x81, 0xff, 0x21, 0x55, 0x7f, 0xff, 0x26, 0x53, 0x79, 0xff, 0x27, 0x53, 0x76, 0xff, 0x29, 0x52, 0x74, 0xff, 0x29, 0x52, 0x73, 0xff, 0x28, 0x52, 0x73, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x73, 0xff, 0x29, 0x52, 0x73, 0xff, 0x29, 0x52, 0x74, 0xff, 0x27, 0x53, 0x76, 0xff, 0x26, 0x53, 0x79, 0xff, 0x21, 0x55, 0x7f, 0xff, 0x20, 0x57, 0x81, 0xff, 0x2c, 0x4f, 0x6e, 0xff, 0x41, 0x45, 0x4b, 0xff, 0x4d, 0x42, 0x39, 0xff, 0x47, 0x43, 0x4f, 0xff, 0x3f, 0x3f, 0xa0, 0xff, 0x3a, 0x3a, 0xdf, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3d, 0x38, 0xb2, 0xff, 0x2a, 0x66, 0xa2, 0xff, 0x25, 0x6d, 0xa9, 0xff, 0x45, 0x3a, 0x31, 0xff, 0x49, 0x34, 0x25, 0xff, 0x38, 0x49, 0x59, 0xff, 0x19, 0x77, 0xc9, 0xff, 0x18, 0x77, 0xc7, 0xd6, 0x1b, 0x71, 0xb9, 0xa0, + 0x1b, 0x71, 0xb7, 0xa0, 0x18, 0x77, 0xc6, 0xd6, 0x19, 0x77, 0xc8, 0xff, 0x38, 0x49, 0x58, 0xff, 0x49, 0x34, 0x25, 0xff, 0x45, 0x3a, 0x31, 0xff, 0x25, 0x6d, 0xa9, 0xff, 0x2c, 0x5e, 0xad, 0xff, 0x3c, 0x3b, 0xd9, 0xff, 0x3a, 0x3a, 0xe3, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe0, 0xff, 0x3d, 0x3d, 0xb4, 0xff, 0x44, 0x44, 0x58, 0xff, 0x45, 0x45, 0x46, 0xff, 0x44, 0x45, 0x48, 0xff, 0x46, 0x45, 0x45, 0xff, 0x4d, 0x41, 0x3a, 0xff, 0x4a, 0x42, 0x3e, 0xff, 0x3b, 0x4a, 0x54, 0xff, 0x2c, 0x50, 0x6e, 0xff, 0x23, 0x53, 0x7c, 0xff, 0x22, 0x54, 0x7e, 0xff, 0x23, 0x54, 0x7c, 0xff, 0x24, 0x54, 0x7b, 0xff, 0x26, 0x53, 0x79, 0xff, 0x26, 0x53, 0x77, 0xff, 0x27, 0x53, 0x77, 0xff, 0x27, 0x53, 0x77, 0xff, 0x26, 0x53, 0x77, 0xff, 0x26, 0x53, 0x79, 0xff, 0x24, 0x54, 0x7b, 0xff, 0x23, 0x54, 0x7c, 0xff, 0x22, 0x54, 0x7e, 0xff, 0x23, 0x53, 0x7c, 0xff, 0x2c, 0x50, 0x6e, 0xff, 0x3b, 0x4a, 0x54, 0xff, 0x4a, 0x42, 0x3e, 0xff, 0x4d, 0x41, 0x3a, 0xff, 0x46, 0x45, 0x45, 0xff, 0x44, 0x45, 0x48, 0xff, 0x43, 0x43, 0x6b, 0xff, 0x3c, 0x3c, 0xd6, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe3, 0xff, 0x3c, 0x3c, 0xce, 0xff, 0x48, 0x37, 0x3f, 0xff, 0x29, 0x68, 0x9f, 0xff, 0x25, 0x6d, 0xa9, 0xff, 0x45, 0x3a, 0x31, 0xff, 0x49, 0x34, 0x25, 0xff, 0x38, 0x49, 0x58, 0xff, 0x19, 0x77, 0xc8, 0xff, 0x18, 0x77, 0xc6, 0xd6, 0x1b, 0x71, 0xb7, 0xa0, + 0x1b, 0x71, 0xb7, 0xa0, 0x18, 0x77, 0xc6, 0xd6, 0x19, 0x77, 0xc8, 0xff, 0x38, 0x49, 0x58, 0xff, 0x49, 0x34, 0x25, 0xff, 0x45, 0x3a, 0x31, 0xff, 0x25, 0x6d, 0xa9, 0xff, 0x29, 0x68, 0x9f, 0xff, 0x46, 0x38, 0x62, 0xff, 0x38, 0x38, 0xde, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3b, 0x3b, 0xc9, 0xff, 0x42, 0x42, 0x7b, 0xff, 0x45, 0x45, 0x46, 0xff, 0x45, 0x45, 0x48, 0xff, 0x45, 0x46, 0x48, 0xff, 0x48, 0x43, 0x41, 0xff, 0x4c, 0x41, 0x3b, 0xff, 0x48, 0x43, 0x41, 0xff, 0x40, 0x47, 0x4e, 0xff, 0x36, 0x4b, 0x5e, 0xff, 0x2e, 0x4e, 0x6a, 0xff, 0x29, 0x51, 0x73, 0xff, 0x27, 0x53, 0x77, 0xff, 0x25, 0x53, 0x79, 0xff, 0x25, 0x53, 0x7a, 0xff, 0x25, 0x53, 0x7a, 0xff, 0x25, 0x53, 0x79, 0xff, 0x27, 0x53, 0x77, 0xff, 0x29, 0x51, 0x73, 0xff, 0x2e, 0x4e, 0x6a, 0xff, 0x36, 0x4b, 0x5e, 0xff, 0x40, 0x47, 0x4e, 0xff, 0x48, 0x43, 0x41, 0xff, 0x4c, 0x41, 0x3b, 0xff, 0x48, 0x43, 0x41, 0xff, 0x45, 0x46, 0x48, 0xff, 0x45, 0x45, 0x48, 0xff, 0x40, 0x40, 0x86, 0xff, 0x3c, 0x3c, 0xcb, 0xff, 0x3a, 0x3a, 0xe0, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x39, 0x39, 0xd6, 0xff, 0x43, 0x40, 0x60, 0xff, 0x4b, 0x37, 0x29, 0xff, 0x29, 0x68, 0x9f, 0xff, 0x25, 0x6d, 0xa9, 0xff, 0x45, 0x3a, 0x31, 0xff, 0x49, 0x34, 0x25, 0xff, 0x38, 0x49, 0x58, 0xff, 0x19, 0x77, 0xc8, 0xff, 0x18, 0x77, 0xc6, 0xd6, 0x1b, 0x71, 0xb7, 0xa0, + 0x1b, 0x71, 0xb7, 0xa0, 0x18, 0x77, 0xc6, 0xd6, 0x19, 0x77, 0xc8, 0xff, 0x38, 0x49, 0x58, 0xff, 0x49, 0x34, 0x25, 0xff, 0x45, 0x3a, 0x31, 0xff, 0x25, 0x6d, 0xa9, 0xff, 0x29, 0x68, 0x9f, 0xff, 0x4b, 0x37, 0x2a, 0xff, 0x41, 0x3e, 0x70, 0xff, 0x3a, 0x3a, 0xdd, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3b, 0x3b, 0xdb, 0xff, 0x3d, 0x3d, 0xa9, 0xff, 0x44, 0x44, 0x5b, 0xff, 0x45, 0x45, 0x46, 0xff, 0x45, 0x45, 0x48, 0xff, 0x45, 0x45, 0x46, 0xff, 0x48, 0x44, 0x41, 0xff, 0x4a, 0x43, 0x3e, 0xff, 0x49, 0x44, 0x3f, 0xff, 0x47, 0x44, 0x42, 0xff, 0x44, 0x45, 0x47, 0xff, 0x41, 0x47, 0x4e, 0xff, 0x3d, 0x48, 0x53, 0xff, 0x3d, 0x49, 0x54, 0xff, 0x3d, 0x49, 0x54, 0xff, 0x3d, 0x48, 0x53, 0xff, 0x41, 0x47, 0x4e, 0xff, 0x44, 0x45, 0x47, 0xff, 0x47, 0x44, 0x42, 0xff, 0x49, 0x44, 0x3f, 0xff, 0x4a, 0x43, 0x3e, 0xff, 0x48, 0x44, 0x41, 0xff, 0x45, 0x45, 0x46, 0xff, 0x45, 0x45, 0x48, 0xff, 0x43, 0x43, 0x66, 0xff, 0x3d, 0x3d, 0xb1, 0xff, 0x3a, 0x3a, 0xdc, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3b, 0x3b, 0xd4, 0xff, 0x41, 0x42, 0x67, 0xff, 0x45, 0x41, 0x3f, 0xff, 0x4b, 0x37, 0x29, 0xff, 0x29, 0x68, 0x9f, 0xff, 0x25, 0x6d, 0xa9, 0xff, 0x45, 0x3a, 0x31, 0xff, 0x49, 0x34, 0x25, 0xff, 0x38, 0x49, 0x58, 0xff, 0x19, 0x77, 0xc8, 0xff, 0x18, 0x77, 0xc6, 0xd6, 0x1b, 0x71, 0xb7, 0xa0, + 0x1b, 0x71, 0xb7, 0xa0, 0x18, 0x77, 0xc5, 0xd6, 0x19, 0x77, 0xc6, 0xff, 0x38, 0x49, 0x58, 0xff, 0x49, 0x34, 0x26, 0xff, 0x45, 0x3b, 0x33, 0xff, 0x25, 0x6d, 0xa9, 0xff, 0x29, 0x68, 0x9e, 0xff, 0x4b, 0x37, 0x29, 0xff, 0x45, 0x41, 0x40, 0xff, 0x40, 0x41, 0x75, 0xff, 0x3c, 0x3c, 0xd4, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe1, 0xff, 0x3c, 0x3c, 0xd6, 0xff, 0x40, 0x40, 0x9c, 0xff, 0x43, 0x43, 0x62, 0xff, 0x45, 0x45, 0x47, 0xff, 0x45, 0x45, 0x46, 0xff, 0x45, 0x45, 0x46, 0xff, 0x46, 0x45, 0x45, 0xff, 0x47, 0x44, 0x43, 0xff, 0x48, 0x44, 0x41, 0xff, 0x48, 0x43, 0x41, 0xff, 0x48, 0x43, 0x41, 0xff, 0x49, 0x44, 0x40, 0xff, 0x49, 0x44, 0x40, 0xff, 0x48, 0x43, 0x41, 0xff, 0x48, 0x43, 0x41, 0xff, 0x48, 0x44, 0x41, 0xff, 0x47, 0x44, 0x43, 0xff, 0x46, 0x45, 0x45, 0xff, 0x45, 0x45, 0x47, 0xff, 0x45, 0x45, 0x48, 0xff, 0x43, 0x43, 0x69, 0xff, 0x3d, 0x3d, 0xac, 0xff, 0x3b, 0x3b, 0xdb, 0xff, 0x3a, 0x3a, 0xe1, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3c, 0x3c, 0xcc, 0xff, 0x42, 0x42, 0x66, 0xff, 0x43, 0x45, 0x48, 0xff, 0x44, 0x41, 0x3e, 0xff, 0x4b, 0x38, 0x29, 0xff, 0x29, 0x68, 0x9e, 0xff, 0x25, 0x6d, 0xa9, 0xff, 0x45, 0x3b, 0x33, 0xff, 0x49, 0x34, 0x26, 0xff, 0x38, 0x49, 0x59, 0xff, 0x19, 0x77, 0xc6, 0xff, 0x18, 0x77, 0xc6, 0xd6, 0x1b, 0x71, 0xb7, 0xa0, + 0x1b, 0x70, 0xb7, 0xa0, 0x18, 0x76, 0xc5, 0xd6, 0x18, 0x78, 0xc6, 0xff, 0x39, 0x48, 0x55, 0xff, 0x4a, 0x32, 0x20, 0xff, 0x46, 0x38, 0x2c, 0xff, 0x25, 0x6c, 0xa7, 0xff, 0x28, 0x68, 0x9e, 0xff, 0x4b, 0x38, 0x29, 0xff, 0x45, 0x42, 0x40, 0xff, 0x43, 0x45, 0x48, 0xff, 0x42, 0x42, 0x64, 0xff, 0x3b, 0x3b, 0xc3, 0xff, 0x3a, 0x3a, 0xe1, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x39, 0x39, 0xe1, 0xff, 0x3a, 0x3a, 0xde, 0xff, 0x3e, 0x3e, 0xb0, 0xff, 0x42, 0x42, 0x82, 0xff, 0x44, 0x44, 0x5a, 0xff, 0x45, 0x45, 0x4c, 0xff, 0x45, 0x45, 0x4a, 0xff, 0x45, 0x45, 0x48, 0xff, 0x45, 0x45, 0x47, 0xff, 0x45, 0x45, 0x47, 0xff, 0x45, 0x45, 0x47, 0xff, 0x45, 0x45, 0x47, 0xff, 0x45, 0x45, 0x47, 0xff, 0x45, 0x45, 0x48, 0xff, 0x45, 0x45, 0x4a, 0xff, 0x45, 0x45, 0x4c, 0xff, 0x43, 0x43, 0x60, 0xff, 0x40, 0x40, 0x8a, 0xff, 0x3d, 0x3d, 0xba, 0xff, 0x3a, 0x3a, 0xe0, 0xff, 0x3a, 0x3a, 0xe1, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe0, 0xff, 0x3c, 0x3c, 0xb9, 0xff, 0x43, 0x43, 0x59, 0xff, 0x44, 0x44, 0x45, 0xff, 0x43, 0x45, 0x47, 0xff, 0x44, 0x41, 0x3f, 0xff, 0x4b, 0x38, 0x2a, 0xff, 0x28, 0x68, 0x9f, 0xff, 0x25, 0x6c, 0xa7, 0xff, 0x46, 0x38, 0x2c, 0xff, 0x4a, 0x32, 0x20, 0xff, 0x39, 0x48, 0x55, 0xff, 0x18, 0x78, 0xc6, 0xff, 0x18, 0x76, 0xc6, 0xd6, 0x1b, 0x70, 0xb7, 0xa0, + 0x1b, 0x70, 0xb7, 0xa0, 0x18, 0x77, 0xc7, 0xd6, 0x19, 0x77, 0xc7, 0xff, 0x3e, 0x3f, 0x41, 0xff, 0x50, 0x26, 0x03, 0xff, 0x4d, 0x2c, 0x10, 0xff, 0x27, 0x69, 0xa0, 0xff, 0x2b, 0x63, 0x92, 0xff, 0x50, 0x31, 0x17, 0xff, 0x43, 0x43, 0x43, 0xff, 0x41, 0x45, 0x4a, 0xff, 0x44, 0x45, 0x46, 0xff, 0x43, 0x43, 0x54, 0xff, 0x3e, 0x3e, 0xa7, 0xff, 0x3b, 0x3b, 0xd9, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe1, 0xff, 0x3c, 0x3c, 0xc2, 0xff, 0x3e, 0x3e, 0xa8, 0xff, 0x3f, 0x3f, 0x94, 0xff, 0x40, 0x41, 0x85, 0xff, 0x41, 0x42, 0x7b, 0xff, 0x41, 0x42, 0x77, 0xff, 0x42, 0x42, 0x7c, 0xff, 0x41, 0x41, 0x86, 0xff, 0x3f, 0x3f, 0x96, 0xff, 0x3d, 0x3e, 0xae, 0xff, 0x3c, 0x3c, 0xc6, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3b, 0x3b, 0xd8, 0xff, 0x3e, 0x3e, 0x99, 0xff, 0x43, 0x43, 0x4d, 0xff, 0x44, 0x44, 0x46, 0xff, 0x44, 0x45, 0x46, 0xff, 0x41, 0x45, 0x4a, 0xff, 0x43, 0x43, 0x43, 0xff, 0x50, 0x31, 0x18, 0xff, 0x2b, 0x63, 0x92, 0xff, 0x27, 0x69, 0x9f, 0xff, 0x4d, 0x2c, 0x10, 0xff, 0x50, 0x26, 0x03, 0xff, 0x3e, 0x3f, 0x41, 0xff, 0x19, 0x77, 0xc7, 0xff, 0x18, 0x77, 0xc8, 0xd6, 0x1b, 0x70, 0xb7, 0xa0, + 0x1b, 0x70, 0xb6, 0xa0, 0x19, 0x72, 0xbd, 0xd6, 0x1a, 0x73, 0xbf, 0xff, 0x2c, 0x5f, 0x8c, 0xff, 0x33, 0x56, 0x76, 0xff, 0x32, 0x5a, 0x7b, 0xff, 0x1f, 0x79, 0xc4, 0xff, 0x27, 0x6a, 0xa3, 0xff, 0x4d, 0x32, 0x1d, 0xff, 0x48, 0x3b, 0x31, 0xff, 0x40, 0x46, 0x4a, 0xff, 0x44, 0x45, 0x45, 0xff, 0x44, 0x44, 0x45, 0xff, 0x44, 0x44, 0x45, 0xff, 0x41, 0x41, 0x77, 0xff, 0x3c, 0x3c, 0xc3, 0xff, 0x3a, 0x3a, 0xdc, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3b, 0x3b, 0xda, 0xff, 0x3c, 0x3c, 0xbb, 0xff, 0x42, 0x42, 0x6b, 0xff, 0x44, 0x44, 0x46, 0xff, 0x44, 0x44, 0x45, 0xff, 0x44, 0x44, 0x45, 0xff, 0x44, 0x45, 0x45, 0xff, 0x41, 0x46, 0x4a, 0xff, 0x49, 0x3b, 0x31, 0xff, 0x4d, 0x32, 0x1e, 0xff, 0x28, 0x6a, 0xa2, 0xff, 0x1f, 0x79, 0xc4, 0xff, 0x32, 0x5a, 0x7b, 0xff, 0x33, 0x56, 0x76, 0xff, 0x2c, 0x5f, 0x8c, 0xff, 0x1a, 0x73, 0xbe, 0xff, 0x19, 0x72, 0xbd, 0xd6, 0x1b, 0x70, 0xb6, 0xa0, + 0x1b, 0x70, 0xb7, 0xa0, 0x1b, 0x6c, 0xb2, 0xd6, 0x1d, 0x6e, 0xb5, 0xff, 0x13, 0x8c, 0xee, 0xff, 0x0f, 0x99, 0xff, 0xff, 0x0f, 0x94, 0xff, 0xff, 0x14, 0x8b, 0xef, 0xff, 0x15, 0x88, 0xe9, 0xff, 0x26, 0x6b, 0xa5, 0xff, 0x4c, 0x36, 0x26, 0xff, 0x4f, 0x33, 0x1b, 0xff, 0x4a, 0x39, 0x2c, 0xff, 0x4b, 0x39, 0x2b, 0xff, 0x4b, 0x3a, 0x2c, 0xff, 0x4b, 0x3a, 0x2d, 0xff, 0x4b, 0x3a, 0x35, 0xff, 0x44, 0x3a, 0x7f, 0xff, 0x3e, 0x3a, 0xbf, 0xff, 0x3b, 0x3a, 0xd8, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3b, 0x3a, 0xd5, 0xff, 0x3e, 0x3a, 0xb8, 0xff, 0x45, 0x3a, 0x75, 0xff, 0x4c, 0x3a, 0x31, 0xff, 0x4c, 0x3a, 0x2d, 0xff, 0x4b, 0x3a, 0x2d, 0xff, 0x4b, 0x3a, 0x2c, 0xff, 0x4b, 0x39, 0x2b, 0xff, 0x4a, 0x39, 0x2c, 0xff, 0x4f, 0x33, 0x1b, 0xff, 0x4a, 0x36, 0x26, 0xff, 0x27, 0x6b, 0xa5, 0xff, 0x16, 0x89, 0xe9, 0xff, 0x14, 0x8b, 0xf0, 0xff, 0x0f, 0x94, 0xff, 0xff, 0x0f, 0x99, 0xff, 0xff, 0x13, 0x8c, 0xee, 0xff, 0x1d, 0x6e, 0xb5, 0xff, 0x1b, 0x6c, 0xb2, 0xd6, 0x1b, 0x70, 0xb7, 0xa0, + 0x1b, 0x70, 0xb7, 0xa0, 0x1a, 0x72, 0xbb, 0xd6, 0x1c, 0x72, 0xbb, 0xff, 0x26, 0x67, 0xa0, 0xff, 0x2b, 0x65, 0x97, 0xff, 0x2b, 0x64, 0x94, 0xff, 0x2a, 0x66, 0x99, 0xff, 0x1a, 0x80, 0xd9, 0xff, 0x13, 0x8b, 0xf0, 0xff, 0x2b, 0x66, 0x97, 0xff, 0x33, 0x5b, 0x7b, 0xff, 0x2e, 0x60, 0x8c, 0xff, 0x2f, 0x61, 0x8b, 0xff, 0x2f, 0x61, 0x8b, 0xff, 0x2f, 0x60, 0x8b, 0xff, 0x2f, 0x60, 0x8b, 0xff, 0x2f, 0x61, 0x8b, 0xff, 0x30, 0x5f, 0x90, 0xff, 0x34, 0x52, 0xae, 0xff, 0x38, 0x45, 0xca, 0xff, 0x39, 0x3f, 0xd7, 0xff, 0x3a, 0x3b, 0xe0, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3b, 0xdf, 0xff, 0x38, 0x40, 0xd5, 0xff, 0x37, 0x46, 0xc7, 0xff, 0x33, 0x54, 0xa9, 0xff, 0x2f, 0x60, 0x8d, 0xff, 0x2f, 0x61, 0x8b, 0xff, 0x2f, 0x61, 0x8b, 0xff, 0x2f, 0x60, 0x8b, 0xff, 0x2f, 0x60, 0x8b, 0xff, 0x2f, 0x61, 0x8b, 0xff, 0x2f, 0x61, 0x8b, 0xff, 0x2e, 0x60, 0x8c, 0xff, 0x33, 0x5b, 0x7c, 0xff, 0x2a, 0x66, 0x99, 0xff, 0x13, 0x8a, 0xf0, 0xff, 0x1b, 0x81, 0xd9, 0xff, 0x2a, 0x66, 0x99, 0xff, 0x2b, 0x64, 0x94, 0xff, 0x2b, 0x65, 0x97, 0xff, 0x26, 0x67, 0xa0, 0xff, 0x1c, 0x72, 0xbc, 0xff, 0x1a, 0x72, 0xbb, 0xd6, 0x1b, 0x70, 0xb7, 0xa0, + 0x1b, 0x6f, 0xb6, 0xa1, 0x18, 0x76, 0xc6, 0xd8, 0x1a, 0x75, 0xc4, 0xff, 0x3e, 0x3e, 0x3e, 0xfa, 0x4a, 0x2c, 0x13, 0xfe, 0x46, 0x35, 0x28, 0xff, 0x4b, 0x2f, 0x19, 0xff, 0x2f, 0x5f, 0x8a, 0xff, 0x14, 0x8a, 0xee, 0xff, 0x19, 0x7e, 0xd0, 0xff, 0x23, 0x6f, 0xb0, 0xff, 0x23, 0x70, 0xb1, 0xff, 0x22, 0x72, 0xb4, 0xff, 0x22, 0x71, 0xb4, 0xff, 0x23, 0x72, 0xb4, 0xff, 0x23, 0x71, 0xb4, 0xff, 0x22, 0x72, 0xb5, 0xff, 0x22, 0x72, 0xb5, 0xff, 0x22, 0x72, 0xb5, 0xff, 0x22, 0x72, 0xb5, 0xff, 0x28, 0x65, 0xc0, 0xff, 0x2d, 0x58, 0xca, 0xff, 0x33, 0x4b, 0xd4, 0xff, 0x35, 0x46, 0xd8, 0xff, 0x37, 0x40, 0xdd, 0xff, 0x39, 0x3d, 0xe0, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x38, 0x3e, 0xdf, 0xff, 0x37, 0x41, 0xdc, 0xff, 0x35, 0x47, 0xd8, 0xff, 0x32, 0x4d, 0xd3, 0xff, 0x2c, 0x5a, 0xc8, 0xff, 0x27, 0x67, 0xbe, 0xff, 0x22, 0x72, 0xb5, 0xff, 0x22, 0x72, 0xb5, 0xff, 0x22, 0x72, 0xb5, 0xff, 0x22, 0x72, 0xb5, 0xff, 0x22, 0x72, 0xb5, 0xff, 0x23, 0x71, 0xb4, 0xff, 0x23, 0x72, 0xb4, 0xff, 0x22, 0x71, 0xb4, 0xff, 0x22, 0x72, 0xb4, 0xff, 0x23, 0x70, 0xb1, 0xff, 0x23, 0x6f, 0xb0, 0xff, 0x1b, 0x7e, 0xd1, 0xff, 0x14, 0x8a, 0xee, 0xff, 0x2f, 0x5f, 0x8a, 0xff, 0x4b, 0x2f, 0x19, 0xff, 0x46, 0x35, 0x28, 0xff, 0x4a, 0x2b, 0x13, 0xfe, 0x3d, 0x3e, 0x3e, 0xfa, 0x1a, 0x77, 0xc4, 0xff, 0x18, 0x76, 0xc6, 0xd8, 0x1b, 0x6f, 0xb6, 0xa1, + 0x1b, 0x6d, 0xb5, 0xa8, 0x19, 0x74, 0xc0, 0xde, 0x15, 0x7b, 0xd0, 0xff, 0x37, 0x49, 0x55, 0xed, 0x4d, 0x2b, 0x0d, 0xfa, 0x41, 0x3c, 0x39, 0xff, 0x49, 0x31, 0x20, 0xff, 0x33, 0x57, 0x79, 0xff, 0x0e, 0x92, 0xff, 0xff, 0x28, 0x68, 0x9e, 0xff, 0x49, 0x35, 0x24, 0xff, 0x48, 0x39, 0x2e, 0xff, 0x45, 0x3e, 0x39, 0xff, 0x45, 0x3e, 0x38, 0xff, 0x45, 0x3f, 0x38, 0xff, 0x45, 0x3e, 0x39, 0xff, 0x46, 0x3e, 0x3a, 0xff, 0x46, 0x3e, 0x3a, 0xff, 0x46, 0x3e, 0x3a, 0xff, 0x46, 0x3e, 0x3a, 0xff, 0x46, 0x3e, 0x3c, 0xff, 0x46, 0x3e, 0x3f, 0xff, 0x44, 0x3e, 0x54, 0xff, 0x42, 0x3d, 0x73, 0xff, 0x40, 0x3c, 0x96, 0xff, 0x3f, 0x3c, 0xab, 0xff, 0x3d, 0x3b, 0xbe, 0xff, 0x3c, 0x3b, 0xca, 0xff, 0x3b, 0x3a, 0xd2, 0xff, 0x3b, 0x3a, 0xd5, 0xff, 0x3b, 0x3a, 0xd0, 0xff, 0x3c, 0x3b, 0xc8, 0xff, 0x3d, 0x3b, 0xbb, 0xff, 0x3e, 0x3b, 0xa5, 0xff, 0x40, 0x3c, 0x92, 0xff, 0x43, 0x3d, 0x6f, 0xff, 0x45, 0x3e, 0x50, 0xff, 0x46, 0x3e, 0x3e, 0xff, 0x46, 0x3e, 0x3b, 0xff, 0x46, 0x3e, 0x3a, 0xff, 0x46, 0x3e, 0x3a, 0xff, 0x46, 0x3e, 0x3a, 0xff, 0x46, 0x3e, 0x3a, 0xff, 0x46, 0x3e, 0x3a, 0xff, 0x45, 0x3e, 0x39, 0xff, 0x45, 0x3f, 0x38, 0xff, 0x45, 0x3e, 0x38, 0xff, 0x45, 0x3e, 0x39, 0xff, 0x47, 0x39, 0x2e, 0xff, 0x49, 0x35, 0x24, 0xff, 0x28, 0x68, 0x9d, 0xff, 0x0e, 0x91, 0xff, 0xff, 0x33, 0x57, 0x79, 0xff, 0x49, 0x31, 0x20, 0xff, 0x41, 0x3c, 0x39, 0xff, 0x4d, 0x2b, 0x0e, 0xfa, 0x38, 0x48, 0x56, 0xed, 0x15, 0x7a, 0xd0, 0xff, 0x18, 0x74, 0xc0, 0xde, 0x1b, 0x6d, 0xb5, 0xa8, + 0x1a, 0x6f, 0xb4, 0x9a, 0x1b, 0x6f, 0xb5, 0xd3, 0x14, 0x7c, 0xd2, 0xff, 0x1f, 0x6b, 0xa8, 0xf3, 0x44, 0x35, 0x27, 0xf2, 0x4a, 0x2f, 0x18, 0xfc, 0x4d, 0x2c, 0x11, 0xff, 0x31, 0x5a, 0x7b, 0xff, 0x0c, 0x96, 0xff, 0xff, 0x2b, 0x66, 0x9a, 0xff, 0x50, 0x2d, 0x11, 0xff, 0x4d, 0x31, 0x1c, 0xff, 0x4a, 0x37, 0x28, 0xff, 0x4a, 0x37, 0x27, 0xff, 0x4a, 0x36, 0x28, 0xff, 0x4a, 0x37, 0x29, 0xff, 0x4b, 0x37, 0x28, 0xff, 0x4b, 0x37, 0x28, 0xff, 0x4b, 0x37, 0x28, 0xff, 0x4b, 0x37, 0x28, 0xff, 0x4b, 0x37, 0x28, 0xff, 0x4b, 0x37, 0x28, 0xff, 0x4b, 0x37, 0x28, 0xff, 0x4b, 0x37, 0x28, 0xff, 0x4b, 0x37, 0x28, 0xff, 0x4b, 0x37, 0x28, 0xff, 0x4b, 0x37, 0x28, 0xff, 0x4b, 0x37, 0x28, 0xff, 0x4b, 0x37, 0x28, 0xff, 0x4b, 0x37, 0x28, 0xff, 0x4b, 0x37, 0x28, 0xff, 0x4b, 0x37, 0x28, 0xff, 0x4b, 0x37, 0x28, 0xff, 0x4b, 0x37, 0x28, 0xff, 0x4b, 0x37, 0x28, 0xff, 0x4b, 0x37, 0x28, 0xff, 0x4b, 0x37, 0x28, 0xff, 0x4b, 0x37, 0x28, 0xff, 0x4b, 0x37, 0x28, 0xff, 0x4b, 0x37, 0x28, 0xff, 0x4b, 0x37, 0x28, 0xff, 0x4b, 0x37, 0x28, 0xff, 0x4b, 0x37, 0x28, 0xff, 0x4b, 0x37, 0x28, 0xff, 0x4a, 0x37, 0x29, 0xff, 0x4a, 0x36, 0x28, 0xff, 0x4a, 0x37, 0x27, 0xff, 0x4a, 0x37, 0x28, 0xff, 0x4d, 0x31, 0x1c, 0xff, 0x50, 0x2d, 0x11, 0xff, 0x2a, 0x67, 0x9a, 0xff, 0x0c, 0x97, 0xff, 0xff, 0x33, 0x5a, 0x7b, 0xff, 0x4d, 0x2c, 0x11, 0xff, 0x4a, 0x2f, 0x17, 0xfb, 0x44, 0x35, 0x28, 0xf2, 0x1f, 0x6a, 0xaa, 0xf3, 0x14, 0x7b, 0xd3, 0xff, 0x1b, 0x6f, 0xb5, 0xd3, 0x1a, 0x6f, 0xb4, 0x9a, + 0x1b, 0x70, 0xba, 0x30, 0x1a, 0x6e, 0xb5, 0x87, 0x1b, 0x72, 0xb8, 0xff, 0x14, 0x7c, 0xd5, 0xff, 0x1f, 0x69, 0xa9, 0xf3, 0x3a, 0x46, 0x50, 0xed, 0x46, 0x34, 0x27, 0xfa, 0x2d, 0x5b, 0x83, 0xff, 0x10, 0x8d, 0xf6, 0xff, 0x26, 0x68, 0xa1, 0xff, 0x41, 0x3d, 0x3d, 0xff, 0x3f, 0x41, 0x46, 0xff, 0x3d, 0x46, 0x4f, 0xff, 0x3d, 0x46, 0x4e, 0xff, 0x3d, 0x46, 0x4e, 0xff, 0x3d, 0x46, 0x4e, 0xff, 0x3c, 0x46, 0x4e, 0xff, 0x3c, 0x46, 0x4e, 0xff, 0x3c, 0x46, 0x4e, 0xff, 0x3c, 0x46, 0x4e, 0xff, 0x3c, 0x46, 0x4e, 0xff, 0x3c, 0x46, 0x4e, 0xff, 0x3c, 0x46, 0x4e, 0xff, 0x3c, 0x46, 0x4e, 0xff, 0x3c, 0x46, 0x4e, 0xff, 0x3c, 0x46, 0x4e, 0xff, 0x3c, 0x46, 0x4e, 0xff, 0x3c, 0x46, 0x4e, 0xff, 0x3c, 0x46, 0x4e, 0xff, 0x3c, 0x46, 0x4e, 0xff, 0x3c, 0x46, 0x4e, 0xff, 0x3c, 0x46, 0x4e, 0xff, 0x3c, 0x46, 0x4e, 0xff, 0x3c, 0x46, 0x4e, 0xff, 0x3c, 0x46, 0x4e, 0xff, 0x3c, 0x46, 0x4e, 0xff, 0x3c, 0x46, 0x4e, 0xff, 0x3c, 0x46, 0x4e, 0xff, 0x3c, 0x46, 0x4e, 0xff, 0x3c, 0x46, 0x4e, 0xff, 0x3c, 0x46, 0x4e, 0xff, 0x3c, 0x46, 0x4e, 0xff, 0x3c, 0x46, 0x4e, 0xff, 0x3c, 0x46, 0x4e, 0xff, 0x3d, 0x46, 0x4e, 0xff, 0x3d, 0x46, 0x4e, 0xff, 0x3d, 0x46, 0x4e, 0xff, 0x3d, 0x46, 0x4f, 0xff, 0x3f, 0x41, 0x46, 0xff, 0x41, 0x3d, 0x3d, 0xff, 0x26, 0x68, 0xa1, 0xff, 0x10, 0x8d, 0xf6, 0xff, 0x2d, 0x5b, 0x83, 0xff, 0x46, 0x34, 0x27, 0xfa, 0x3a, 0x46, 0x50, 0xec, 0x20, 0x69, 0xa7, 0xf4, 0x14, 0x7c, 0xd3, 0xff, 0x1b, 0x71, 0xb9, 0xff, 0x1a, 0x6e, 0xb5, 0x87, 0x1b, 0x70, 0xba, 0x30, + 0x00, 0x00, 0x00, 0x00, 0x1e, 0x69, 0xb4, 0x11, 0x1b, 0x6e, 0xb3, 0xc3, 0x1b, 0x73, 0xbc, 0xff, 0x15, 0x7b, 0xd1, 0xff, 0x17, 0x75, 0xc6, 0xff, 0x1a, 0x6f, 0xb8, 0xff, 0x1a, 0x6d, 0xb5, 0xff, 0x1b, 0x6b, 0xb1, 0xff, 0x1a, 0x6d, 0xb3, 0xff, 0x1a, 0x6e, 0xb7, 0xff, 0x19, 0x6e, 0xb7, 0xff, 0x1a, 0x6e, 0xb7, 0xff, 0x1a, 0x6e, 0xb7, 0xff, 0x1a, 0x6e, 0xb7, 0xff, 0x1a, 0x6e, 0xb7, 0xff, 0x1a, 0x6e, 0xb7, 0xff, 0x1a, 0x6e, 0xb7, 0xff, 0x1a, 0x6e, 0xb7, 0xff, 0x1a, 0x6e, 0xb7, 0xff, 0x1a, 0x6e, 0xb7, 0xff, 0x1a, 0x6e, 0xb7, 0xff, 0x1a, 0x6e, 0xb7, 0xff, 0x1a, 0x6e, 0xb7, 0xff, 0x1a, 0x6e, 0xb7, 0xff, 0x1a, 0x6e, 0xb7, 0xff, 0x1a, 0x6e, 0xb7, 0xff, 0x1a, 0x6e, 0xb7, 0xff, 0x1a, 0x6e, 0xb7, 0xff, 0x1a, 0x6e, 0xb7, 0xff, 0x1a, 0x6e, 0xb7, 0xff, 0x1a, 0x6e, 0xb7, 0xff, 0x1a, 0x6e, 0xb7, 0xff, 0x1a, 0x6e, 0xb7, 0xff, 0x1a, 0x6e, 0xb7, 0xff, 0x1a, 0x6e, 0xb7, 0xff, 0x1a, 0x6e, 0xb7, 0xff, 0x1a, 0x6e, 0xb7, 0xff, 0x1a, 0x6e, 0xb7, 0xff, 0x1a, 0x6e, 0xb7, 0xff, 0x1a, 0x6e, 0xb7, 0xff, 0x1a, 0x6e, 0xb7, 0xff, 0x1a, 0x6e, 0xb7, 0xff, 0x1a, 0x6e, 0xb7, 0xff, 0x1a, 0x6e, 0xb7, 0xff, 0x1a, 0x6e, 0xb7, 0xff, 0x1a, 0x6e, 0xb7, 0xff, 0x1a, 0x6e, 0xb7, 0xff, 0x19, 0x6e, 0xb7, 0xff, 0x1a, 0x6e, 0xb7, 0xff, 0x1a, 0x6d, 0xb3, 0xff, 0x1b, 0x6b, 0xb1, 0xff, 0x1a, 0x6d, 0xb5, 0xff, 0x1a, 0x6f, 0xb8, 0xff, 0x17, 0x75, 0xc6, 0xff, 0x15, 0x7b, 0xd0, 0xff, 0x1b, 0x74, 0xbc, 0xff, 0x1b, 0x6f, 0xb4, 0xc3, 0x1e, 0x69, 0xb4, 0x11, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1a, 0x73, 0xb3, 0x14, 0x1d, 0x6f, 0xb7, 0x8e, 0x1c, 0x72, 0xba, 0xde, 0x18, 0x74, 0xc4, 0xe9, 0x16, 0x77, 0xcb, 0xe1, 0x17, 0x72, 0xbd, 0xdf, 0x1b, 0x6a, 0xae, 0xdf, 0x19, 0x70, 0xb9, 0xdf, 0x17, 0x75, 0xc7, 0xdf, 0x17, 0x75, 0xc6, 0xdf, 0x17, 0x73, 0xc4, 0xdf, 0x17, 0x73, 0xc4, 0xdf, 0x17, 0x73, 0xc4, 0xdf, 0x17, 0x73, 0xc4, 0xdf, 0x17, 0x73, 0xc4, 0xdf, 0x17, 0x73, 0xc4, 0xdf, 0x17, 0x73, 0xc4, 0xdf, 0x17, 0x73, 0xc4, 0xdf, 0x17, 0x73, 0xc4, 0xdf, 0x17, 0x73, 0xc4, 0xdf, 0x17, 0x73, 0xc4, 0xdf, 0x17, 0x73, 0xc4, 0xdf, 0x17, 0x73, 0xc4, 0xdf, 0x17, 0x73, 0xc4, 0xdf, 0x17, 0x73, 0xc4, 0xdf, 0x17, 0x73, 0xc4, 0xdf, 0x17, 0x73, 0xc4, 0xdf, 0x17, 0x73, 0xc4, 0xdf, 0x17, 0x73, 0xc4, 0xdf, 0x17, 0x73, 0xc4, 0xdf, 0x17, 0x73, 0xc4, 0xdf, 0x17, 0x73, 0xc4, 0xdf, 0x17, 0x73, 0xc4, 0xdf, 0x17, 0x73, 0xc4, 0xdf, 0x17, 0x73, 0xc4, 0xdf, 0x17, 0x73, 0xc4, 0xdf, 0x17, 0x73, 0xc4, 0xdf, 0x17, 0x73, 0xc4, 0xdf, 0x17, 0x73, 0xc4, 0xdf, 0x17, 0x73, 0xc4, 0xdf, 0x17, 0x73, 0xc4, 0xdf, 0x17, 0x73, 0xc4, 0xdf, 0x17, 0x73, 0xc4, 0xdf, 0x17, 0x73, 0xc4, 0xdf, 0x17, 0x73, 0xc4, 0xdf, 0x17, 0x73, 0xc4, 0xdf, 0x17, 0x75, 0xc6, 0xdf, 0x17, 0x75, 0xc7, 0xdf, 0x19, 0x70, 0xb9, 0xdf, 0x1b, 0x6a, 0xae, 0xdf, 0x17, 0x72, 0xbd, 0xdf, 0x16, 0x77, 0xcb, 0xe1, 0x18, 0x74, 0xc4, 0xe9, 0x1c, 0x71, 0xb9, 0xde, 0x1d, 0x6f, 0xb7, 0x8e, 0x1a, 0x73, 0xb3, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +#endif +}; + +const lv_img_dsc_t img_cab_disabled = { + .header.cf = LV_IMG_CF_TRUE_COLOR_ALPHA, + .header.always_zero = 0, + .header.reserved = 0, + .header.w = 60, + .header.h = 70, + .data_size = 4200 * LV_IMG_PX_SIZE_ALPHA_BYTE, + .data = img_cab_disabled_map, +}; diff --git a/source/main/usb_tonex.c b/source/main/usb_tonex.c index 3db4d7d0..eb4f33ac 100644 --- a/source/main/usb_tonex.c +++ b/source/main/usb_tonex.c @@ -80,7 +80,7 @@ static const uint8_t TonexPresetIndexByteMarker[] = {0xB9, 0x04, 0x00, 0x00}; #define TONEX_RESP_OFFSET_PRESET_NAME_LEN 32 #define TONEX_CDC_INTERFACE_INDEX 0 -#define MAX_INPUT_BUFFERS 2 +#define MAX_INPUT_BUFFERS 3 #define MAX_GLOBAL_CONFIG 3584 @@ -467,7 +467,7 @@ static bool usb_tonex_handle_rx(const uint8_t* data, size_t data_len, void* arg) if (data_len > TONEX_RX_TEMP_BUFFER_SIZE) { - ESP_LOGE(TAG, "usb_tonex_one_handle_rx data too long! %d", (int)data_len); + ESP_LOGE(TAG, "usb_tonex_handle_rx data too long! %d", (int)data_len); return false; } else @@ -493,7 +493,7 @@ static bool usb_tonex_handle_rx(const uint8_t* data, size_t data_len, void* arg) } } - ESP_LOGE(TAG, "usb_tonex_one_handle_rx no available buffers!"); + ESP_LOGE(TAG, "usb_tonex_handle_rx no available buffers!"); return false; } @@ -847,7 +847,7 @@ static TonexStatus usb_tonex_parse_global_config(uint8_t* unframed, uint16_t len } } - usb_tonex_dump_globals(); + //usb_tonex_dump_globals(); return STATUS_OK; } diff --git a/source/main/usb_tonex_one.c b/source/main/usb_tonex_one.c index 66ef3f14..696240bb 100644 --- a/source/main/usb_tonex_one.c +++ b/source/main/usb_tonex_one.c @@ -71,7 +71,7 @@ static const uint8_t ToneOnePresetByteMarker[] = {0xB9, 0x04, 0xB9, 0x02, 0xBC, #define TONEX_ONE_RESP_OFFSET_PRESET_NAME_LEN 32 #define TONEX_ONE_CDC_INTERFACE_INDEX 0 -#define MAX_INPUT_BUFFERS 2 +#define MAX_INPUT_BUFFERS 3 #define MAX_STATE_DATA 512 @@ -657,6 +657,12 @@ static esp_err_t usb_tonex_one_modify_global(uint16_t global_val, float value) usb_tonex_one_send_master_volume(scaled_value); + // wait a little + vTaskDelay(20); + + // read value back to update the UI + usb_tonex_one_request_master_volume(); + // bit of a hack here. Return fail code, so caller can avoid sending the state data unneccessarily res = ESP_FAIL; } break; diff --git a/source/main/usb_valeton_gp5.c b/source/main/usb_valeton_gp5.c index 7e230964..b842be63 100644 --- a/source/main/usb_valeton_gp5.c +++ b/source/main/usb_valeton_gp5.c @@ -107,16 +107,22 @@ static const char *TAG = "app_Valeton_GP5"; #define VALETON_GP5_MIDI_INTERFACE_INDEX 3 -#define MAX_INPUT_BUFFERS 2 +#define MAX_INPUT_BUFFERS 3 #define MAX_STATE_DATA 512 #define VALETON_GP5_RX_TEMP_BUFFER_SIZE 8192 #define VALETON_GP5_TX_TEMP_BUFFER_SIZE 1024 #define VALETON_GP5_USB_TX_BUFFER_SIZE 128 +#define VALETON_GP5_INTER_MESSAGE_DELAY 20 // msec enum CommsState { COMMS_STATE_IDLE, - COMMS_STATE_SYNC, + COMMS_STATE_GET_PRESET_DATA, + COMMS_STATE_GET_CURRENT_PRESET, + COMMS_STATE_GET_CURRENT_PRESET_PARAMS, + COMMS_STATE_GET_GLOBALS, + COMMS_STATE_GET_SNAPTONES, + COMMS_STATE_GET_IR, COMMS_STATE_READY }; @@ -133,6 +139,22 @@ typedef struct uint8_t ReadyToWrite : 1; } tInputBufferEntry; +typedef struct __attribute__ ((packed)) +{ + uint8_t effect_index; + uint32_t byte_sequence; +} EffectMapEntry_t; + +typedef struct +{ + uint8_t GotPresetData : 1; + uint8_t GotCurrentPreset : 1; + uint8_t GotCurrentPresetParams : 1; + uint8_t GotGlobals : 1; + uint8_t GotSnaptones : 1; + uint8_t GotIRs : 1; +} tBootFlags; + /* ** Static vars */ @@ -143,17 +165,264 @@ static QueueHandle_t input_queue; static volatile tInputBufferEntry* InputBuffers; static uint8_t* ProcessingBuffer; static uint8_t* TransmitBuffer; +static tBootFlags BootFlags; +static uint32_t last_transmit_time = 0; + +static const EffectMapEntry_t effect_map_nr[] = { + {VALETON_EFFECT_NR_GATE, 0x1B000000}, + }; + +static const EffectMapEntry_t effect_map_pre[] = { + {VALETON_EFFECT_PRE_COMP, 0x00000000}, + {VALETON_EFFECT_PRE_COMP4, 0x01000000}, + {VALETON_EFFECT_PRE_BOOST, 0x1A000000}, + {VALETON_EFFECT_PRE_MICRO_BOOST, 0x14000000}, + {VALETON_EFFECT_PRE_B_BOOST, 0x0B000000}, + {VALETON_EFFECT_PRE_TOUCHER, 0x0F000001}, + {VALETON_EFFECT_PRE_CRIER, 0x15000001}, + {VALETON_EFFECT_PRE_OCTA, 0x21000001}, + {VALETON_EFFECT_PRE_PITCH, 0x23000001}, + {VALETON_EFFECT_PRE_DETUNE, 0x29000001}, + { 0xFF, 0xFFFFFFFF}, // end of table + }; + +static const EffectMapEntry_t effect_map_dst[] = { + { VALETON_EFFECT_DIST_GREEN_OD, 0x00000003}, + { VALETON_EFFECT_DIST_YELLOW_OD, 0x02000003}, + { VALETON_EFFECT_DIST_SUPER_OD, 0x06000003}, + { VALETON_EFFECT_DIST_SM_DIST, 0x2A000003}, + { VALETON_EFFECT_DIST_PLUSTORTION, 0x29000003}, + { VALETON_EFFECT_DIST_LA_CHARGER, 0x30000003}, + { VALETON_EFFECT_DIST_DARKTALE, 0x2B000003}, + { VALETON_EFFECT_DIST_SORA_FUZZ, 0x22000003}, + { VALETON_EFFECT_DIST_RED_HAZE, 0x24000003}, + { VALETON_EFFECT_DIST_BASS_OD, 0x40000003}, + { 0xFF, 0xFFFFFFFF}, // end of table + }; + + +static const EffectMapEntry_t effect_map_amp[] = { + { VALETON_EFFECT_AMP_TWEEDY, 0x01000007}, + { VALETON_EFFECT_AMP_BELLMAN_59N, 0x03000007}, + { VALETON_EFFECT_AMP_DARK_TWIN, 0x04000007}, + { VALETON_EFFECT_AMP_FOXY_30N, 0x11000007}, + { VALETON_EFFECT_AMP_J_120_CL, 0x14000007}, + { VALETON_EFFECT_AMP_MATCH_CL, 0x15000007}, + { VALETON_EFFECT_AMP_L_STAR_CL, 0x19000007}, + { VALETON_EFFECT_AMP_UK_45, 0x2A000007}, + { VALETON_EFFECT_AMP_UK_50JP, 0x2F000007}, + { VALETON_EFFECT_AMP_UK_800, 0x35000007}, + { VALETON_EFFECT_AMP_BELLMAN_59B, 0x24000007}, + { VALETON_EFFECT_AMP_FOXY_30TB, 0x27000007}, + { VALETON_EFFECT_AMP_SUPDUAL_OD, 0x28000007}, + { VALETON_EFFECT_AMP_SOLO100_OD, 0x47000007}, + { VALETON_EFFECT_AMP_Z38_OD, 0x49000007}, + { VALETON_EFFECT_AMP_BAD_KT_OD, 0x4B000007}, + { VALETON_EFFECT_AMP_JUICE_R100, 0x53000007}, + { VALETON_EFFECT_AMP_DIZZ_VH, 0x65000007}, + { VALETON_EFFECT_AMP_DIZZ_VH_PLUS, 0x6A000007}, + { VALETON_EFFECT_AMP_EAGLE_120, 0x5F000007}, + { VALETON_EFFECT_AMP_EV_51, 0x5A000007}, + { VALETON_EFFECT_AMP_SOLO100_LD, 0x59000007}, + { VALETON_EFFECT_AMP_MESS_DUALV, 0x68000007}, + { VALETON_EFFECT_AMP_MESS_DUALM, 0x69000007}, + { VALETON_EFFECT_AMP_POWER_LD, 0x63000007}, + { VALETON_EFFECT_AMP_FLAGMAN_PLUS, 0x5D000007}, + { VALETON_EFFECT_AMP_BOG_REDV, 0x6D000007}, + { VALETON_EFFECT_AMP_CLASSIC_BASS, 0x73000007}, + { VALETON_EFFECT_AMP_FOXY_BASS, 0x75000007}, + { VALETON_EFFECT_AMP_MESS_BASS, 0x77000007}, + { VALETON_EFFECT_AMP_AC_PRE1, 0x7A000008}, + { VALETON_EFFECT_AMP_AC_PRE2, 0x7B000008}, + { 0xFF, 0xFFFFFFFF}, // end of table + }; + +static const EffectMapEntry_t effect_map_cab[] = { + { VALETON_EFFECT_CAB_TWD_CP, 0x0100000A}, + { VALETON_EFFECT_CAB_DARK_VIT, 0x0400000A}, + { VALETON_EFFECT_CAB_FOXY_1X12, 0x0800000A}, + { VALETON_EFFECT_CAB_L_STAR_1X12, 0x0900000A}, + { VALETON_EFFECT_CAB_DARK_CS_2X12, 0x1B00000A}, + { VALETON_EFFECT_CAB_DARK_TWIN_2X12, 0x1200000A}, + { VALETON_EFFECT_CAB_SUP_STAR_2X12, 0x1900000A}, + { VALETON_EFFECT_CAB_J_120_2X12, 0x1100000A}, + { VALETON_EFFECT_CAB_FOXY_2X12, 0x0F00000A}, + { VALETON_EFFECT_CAB_UK_GRN_2X12, 0x1300000A}, + { VALETON_EFFECT_CAB_UK_GRN_4X12, 0x2200000A}, + { VALETON_EFFECT_CAB_BOG_4X12, 0x2500000A}, + { VALETON_EFFECT_CAB_DIZZ_4X12, 0x2E00000A}, + { VALETON_EFFECT_CAB_EV_4X12, 0x2000000A}, + { VALETON_EFFECT_CAB_SOLO_4X12, 0x2800000A}, + { VALETON_EFFECT_CAB_MESS_4X12, 0x2400000A}, + { VALETON_EFFECT_CAB_EAGLE_4X12, 0x2600000A}, + { VALETON_EFFECT_CAB_JUICE_4X12, 0x2900000A}, + { VALETON_EFFECT_CAB_BELLMAN_2X12, 0x1600000A}, + { VALETON_EFFECT_CAB_AMPG_4X10, 0x3800000A}, + { 0xFF, 0xFFFFFFFF}, // end of table + }; + +static const EffectMapEntry_t effect_map_eq[] = { + { VALETON_EFFECT_EQ_GUITAR_EQ1, 0x35000001}, + { VALETON_EFFECT_EQ_GUITAR_EQ2, 0x36000001}, + { VALETON_EFFECT_EQ_BASS_EQ1, 0x39000001}, + { VALETON_EFFECT_EQ_BASS_EQ2, 0x3A000001}, + { VALETON_EFFECT_EQ_MESS_EQ, 0x3C000001}, + { 0xFF, 0xFFFFFFFF}, // end of table + }; + +static const EffectMapEntry_t effect_map_mod[] = { + { VALETON_EFFECT_MOD_A_CHORUS, 0x00000004}, + { VALETON_EFFECT_MOD_B_CHORUS, 0x08000004}, + { VALETON_EFFECT_MOD_JET, 0x11000004}, + { VALETON_EFFECT_MOD_N_JET, 0x13000004}, + { VALETON_EFFECT_MOD_O_PHASE, 0x19000004}, + { VALETON_EFFECT_MOD_M_VIBE, 0x1F000004}, + { VALETON_EFFECT_MOD_V_ROTO, 0x15000004}, + { VALETON_EFFECT_MOD_VIBRATO, 0x17000004}, + { VALETON_EFFECT_MOD_O_TREM, 0x21000004}, + { VALETON_EFFECT_MOD_SINE_TREM, 0x26000004}, + { VALETON_EFFECT_MOD_BIAS_TREM, 0x28000004}, + { 0xFF, 0xFFFFFFFF}, // end of table + }; + +static const EffectMapEntry_t effect_map_dly[] = { + { VALETON_EFFECT_DLY_PURE, 0x0000000B}, + { VALETON_EFFECT_DLY_ANALOG, 0x0100000B}, + { VALETON_EFFECT_DLY_SLAPBACK, 0x0500000B}, + { VALETON_EFFECT_DLY_SWEET_ECHO, 0x0D00000B}, + { VALETON_EFFECT_DLY_TAPE, 0x0200000B}, + { VALETON_EFFECT_DLY_TUBE, 0x0B00000B}, + { VALETON_EFFECT_DLY_REV_ECHO, 0x1300000B}, + { VALETON_EFFECT_DLY_RING_ECHO, 0x0900000B}, + { VALETON_EFFECT_DLY_SWEEP_ECHO, 0x0600000B}, + { VALETON_EFFECT_DLY_PING_PONG, 0x0400000B}, + { 0xFF, 0xFFFFFFFF}, // end of table + }; + +static const EffectMapEntry_t effect_map_rvb[] = { + { VALETON_EFFECT_RVB_AIR, 0xB00000C}, + { VALETON_EFFECT_RVB_ROOM, 0x00000C}, + { VALETON_EFFECT_RVB_HALL, 0x100000C}, + { VALETON_EFFECT_RVB_CHURCH, 0x200000C}, + { VALETON_EFFECT_RVB_PLATE_L, 0x1000000C}, + { VALETON_EFFECT_RVB_PLATE, 0x0F00000C}, + { VALETON_EFFECT_RVB_SPRING, 0x400000C}, + { VALETON_EFFECT_RVB_N_STAR, 0x600000C}, + { VALETON_EFFECT_RVB_DEEPSEA, 0x700000C}, + { VALETON_EFFECT_RVB_SWEET_SPACE, 0x1500000C}, + { 0xFF, 0xFFFFFFFF}, // end of table + }; + +static const EffectMapEntry_t effect_map_ns[] = { + { 0, 0x0000000F}, + { 1, 0x0100000F}, + { 2, 0x0200000F}, + { 3, 0x0300000F}, + { 4, 0x0400000F}, + { 5, 0x0500000F}, + { 6, 0x0600000F}, + { 7, 0x0700000F}, + { 8, 0x0800000F}, + { 9, 0x0900000F}, + { 10, 0x0A00000F}, + { 11, 0x0B00000F}, + { 12, 0x0C00000F}, + { 13, 0x0D00000F}, + { 14, 0x0E00000F}, + { 15, 0x0F00000F}, + { 16, 0x1000000F}, + { 17, 0x1100000F}, + { 18, 0x1200000F}, + { 19, 0x1300000F}, + { 20, 0x1400000F}, + { 21, 0x1500000F}, + { 22, 0x1600000F}, + { 23, 0x1700000F}, + { 24, 0x1800000F}, + { 25, 0x1900000F}, + { 26, 0x1A00000F}, + { 27, 0x1B00000F}, + { 28, 0x1C00000F}, + { 29, 0x1D00000F}, + { 30, 0x1E00000F}, + { 31, 0x1F00000F}, + { 32, 0x2000000F}, + { 33, 0x2100000F}, + { 34, 0x2200000F}, + { 35, 0x2300000F}, + { 36, 0x2400000F}, + { 37, 0x2500000F}, + { 38, 0x2600000F}, + { 39, 0x2700000F}, + { 40, 0x2800000F}, + { 41, 0x2900000F}, + { 42, 0x2A00000F}, + { 43, 0x2B00000F}, + { 44, 0x2C00000F}, + { 45, 0x2D00000F}, + { 46, 0x2E00000F}, + { 47, 0x2F00000F}, + { 48, 0x3000000F}, + { 49, 0x3100000F}, + { 50, 0x3200000F}, + { 51, 0x3300000F}, + { 52, 0x3400000F}, + { 53, 0x3500000F}, + { 54, 0x3600000F}, + { 55, 0x3700000F}, + { 56, 0x3800000F}, + { 57, 0x3900000F}, + { 58, 0x3A00000F}, + { 59, 0x3B00000F}, + { 60, 0x3C00000F}, + { 61, 0x3D00000F}, + { 62, 0x3E00000F}, + { 63, 0x3F00000F}, + { 64, 0x4000000F}, + { 65, 0x4100000F}, + { 66, 0x4200000F}, + { 67, 0x4300000F}, + { 68, 0x4400000F}, + { 69, 0x4500000F}, + { 70, 0x4600000F}, + { 71, 0x4700000F}, + { 72, 0x4800000F}, + { 73, 0x4900000F}, + { 74, 0x4A00000F}, + { 75, 0x4B00000F}, + { 76, 0x4C00000F}, + { 77, 0x4D00000F}, + { 78, 0x4E00000F}, + { 79, 0x4F00000F}, + { 0xFF, 0xFFFFFFFF}, // end of table + }; + +static const EffectMapEntry_t* effect_maps[] = { + effect_map_nr, + effect_map_pre, + effect_map_dst, + effect_map_amp, + effect_map_cab, + effect_map_eq, + effect_map_mod, + effect_map_dly, + effect_map_rvb, + effect_map_ns + }; /* ** Static function prototypes */ static void usb_valeton_gp5_request_preset_sync(void); static void usb_valeton_gp5_request_current_preset(void); -static void usb_valeton_gp5_request_something_2(void); static void usb_valeton_gp5_get_preset(uint8_t index); static void usb_valeton_gp5_set_preset(uint8_t index); static void usb_valeton_gp5_request_preset_params(void); static void usb_valeton_gp5_set_effect_block_state(uint8_t block_index, uint8_t state); +static uint8_t usb_valeton_gp5_process_single_sysex(const uint8_t* buffer, uint32_t len) ; +static void usb_valeton_gp5_request_ir(void); +static void usb_valeton_gp5_request_nams(void); +static void usb_valeton_gp5_request_globals(void); /**************************************************************************** * NAME: @@ -239,11 +508,21 @@ static esp_err_t usb_valeton_gp5_send_sysex(const uint8_t* buffer, uint8_t len, uint8_t triplets; uint8_t triplet_count; uint8_t usb_transfer[64]; + uint32_t current_time = xTaskGetTickCount(); + uint32_t elapsed_time = current_time - last_transmit_time; + + // don't send messages too close together + if (elapsed_time < VALETON_GP5_INTER_MESSAGE_DELAY) + { + vTaskDelay(VALETON_GP5_INTER_MESSAGE_DELAY - elapsed_time); + } + last_transmit_time = current_time; // packet structure - max 64 bytes to suit USB transfer size // 0xF0 start marker // CRC (2 bytes) - // Vendor ID 00 01 00 00 + // Total chunks e.g. 00 01 + // Chunk index e.g. 00 00 // Data size (2 byte) // 0101 for messages to GP5, 0102 for received? or could be commands and requests? // Payload @@ -253,8 +532,8 @@ static esp_err_t usb_valeton_gp5_send_sysex(const uint8_t* buffer, uint8_t len, memset((void*)TransmitBuffer, 0, VALETON_GP5_TX_TEMP_BUFFER_SIZE); // debug - ESP_LOGI(TAG, "usb_valeton_gp5_send_sysex input:"); - ESP_LOG_BUFFER_HEXDUMP(TAG, buffer, len, ESP_LOG_INFO); + //ESP_LOGI(TAG, "usb_valeton_gp5_send_sysex input:"); + //ESP_LOG_BUFFER_HEXDUMP(TAG, buffer, len, ESP_LOG_INFO); // set start marker TransmitBuffer[write_index++] = 0xF0; @@ -262,15 +541,18 @@ static esp_err_t usb_valeton_gp5_send_sysex(const uint8_t* buffer, uint8_t len, // next 2 bytes are Crc, skip for now write_index += 2; - // next 4 bytes are vendor ID?? + // Total chunks TransmitBuffer[write_index++] = 0x00; TransmitBuffer[write_index++] = 0x01; + + // Chunk index TransmitBuffer[write_index++] = 0x00; TransmitBuffer[write_index++] = 0x00; - // length bytes. Value sent as e.g. 0x14 as 01 04 - TransmitBuffer[write_index++] = len >> 4; - TransmitBuffer[write_index++] = len & 0x0F; + // length bytes. Value sent as e.g. 0x14 as 01 04. Sent as number of byte pairs hence divide by 2 + // +2 here for the 0102/0101 bytes that come next + TransmitBuffer[write_index++] = ((len + 2) / 2) >> 4; + TransmitBuffer[write_index++] = ((len + 2) / 2) & 0x0F; // 0101 for messages sent to GP5, 0102 for receive?? // or could be 0101 for requests, and 0102 for commands? @@ -358,8 +640,8 @@ static esp_err_t usb_valeton_gp5_send_sysex(const uint8_t* buffer, uint8_t len, } // debug - ESP_LOGI(TAG, "usb_valeton_gp5_send_sysex usb tx:"); - ESP_LOG_BUFFER_HEXDUMP(TAG, usb_transfer, write_index, ESP_LOG_INFO); + //ESP_LOGI(TAG, "usb_valeton_gp5_send_sysex usb tx:"); + //ESP_LOG_BUFFER_HEXDUMP(TAG, usb_transfer, write_index, ESP_LOG_INFO); // send packet if (midi_host_data_tx_blocking(midi_dev, (const uint8_t*)usb_transfer, write_index, 50) != ESP_OK) @@ -371,115 +653,6 @@ static esp_err_t usb_valeton_gp5_send_sysex(const uint8_t* buffer, uint8_t len, return ESP_OK; } -/**************************************************************************** -* NAME: -* DESCRIPTION: -* PARAMETERS: -* RETURN: -* NOTES: -*****************************************************************************/ -// Decode percentage parameters (delay_mix, delay_feedback, reverb_mix, reverb_decay) -float usb_valeton_gp5_decode_percentage(uint8_t byte30, uint8_t byte31, uint8_t byte33) -{ - float value; - - if (byte33 == 0x00) - { - // 0–7% range - value = (byte30 * 2.0f) + (byte31 / 8.0f); - } - else if (byte33 == 0x01) - { - // 8–31% range - value = 8.0f + (byte30 * 2.0f) + (byte31 / 8.0f); - } - else if (byte33 == 0x02) - { - // 32–100% range - value = 32.0f + (byte30 * 4.0f) + (byte31 / 4.0f); - } - else if (byte33 == 0x03) - { - // Extended range (e.g., delay_time 128–255ms) - value = 128.0f + (byte30 * 4.0f) + (byte31 / 4.0f); - } - else - { - return -1.0f; - } - - // Apply +2% offset for 32–100% range to match device display - //if (byte33 == 0x02) - //{ - // value += 2.0f; - //} - return value; -} - -/**************************************************************************** -* NAME: -* DESCRIPTION: -* PARAMETERS: -* RETURN: -* NOTES: -*****************************************************************************/ -// Decode delay_time (ms) -float usb_valeton_gp5_decode_time(uint8_t byte30, uint8_t byte31, uint8_t byte33) -{ - if (byte33 == 0x01) - { - // 20–31ms range - return 20.0f + (byte30 * 2.0f) + (byte31 / 8.0f); - } - else if (byte33 == 0x02) - { - // 32–127ms range - return 32.0f + (byte30 * 4.0f) + (byte31 / 4.0f); - } - else if (byte33 == 0x03) - { - // 128–255ms range - return 128.0f + (byte30 * 4.0f) + (byte31 / 4.0f); - } - - return -1.0f; -} - -/**************************************************************************** -* NAME: -* DESCRIPTION: -* PARAMETERS: -* RETURN: -* NOTES: -*****************************************************************************/ -// Decode EQ Level (-50 to 50) -float usb_valeton_gp5_decode_level(uint8_t byte30, uint8_t byte31, uint8_t byte32, uint8_t byte33) -{ - if (byte32 == 0x0c && byte33 == 0x02) - { - // Negative range (-50 to -1) - return -50.0f + (byte30 * 2.0f) + (byte31 / 8.0f); - } - else if (byte32 == 0x04 && byte33 == 0x00) - { - // Positive range (0 to 50) - return (byte30 * 2.0f) + (byte31 / 8.0f); - } - else if (byte32 == 0x04 && byte33 == 0x01) - { - // 8–31 range, possibly mislabeled as Level - return 8.0f + (byte30 * 2.0f) + (byte31 / 8.0f); - } - - return -51.0f; // Invalid -} - - -// The values are IEEE-754 (32 bits, little endian), I was having the same problem at first. -// But when I find the float numbers of some sliders I realized. The bytes for 50 are not 04 08 04 02(48 42) -// You have to add the 4 values before too so the final bytes would be 00 00 00 00 04 08 04 02. (00 00 48 42) -// And that is a very easy function to calculate. - /**************************************************************************** * NAME: * DESCRIPTION: @@ -490,16 +663,15 @@ float usb_valeton_gp5_decode_level(uint8_t byte30, uint8_t byte31, uint8_t byte3 static uint8_t usb_valeton_gp5_parse_sysex(const uint8_t* buffer, uint32_t len) { uint32_t write_index = 0; - uint32_t read_index = 0; uint32_t bytes_read = 0; - uint16_t preset_index = 0; - uint8_t string_index; - uint16_t ascii_char; - uint16_t function; + uint16_t __attribute__((unused)) rx_length; uint8_t* tmp_ptr = (uint8_t*)buffer; - uint16_t rx_length = 0; - uint8_t found_message = 0; - char name_string[20] = {0}; + uint16_t chunk_count = 0; + uint16_t this_chunk = 0; + uint8_t found_chunks = 0; + + // debug + //ESP_LOG_BUFFER_HEXDUMP(TAG, buffer, len, ESP_LOG_INFO); // step 1: strip the SysEx markers from the data, to get the message bytes while (bytes_read < len) @@ -526,20 +698,33 @@ static uint8_t usb_valeton_gp5_parse_sysex(const uint8_t* buffer, uint32_t len) tmp_ptr++; bytes_read++; - // next 3 bytes are Vendor ID, skip all - tmp_ptr += 3; - bytes_read += 3; - - // skip the 0x04 and last Vendor ID byte + // next 2 bytes are total chunks in this message + chunk_count = (*tmp_ptr << 4) | *(tmp_ptr + 1); tmp_ptr += 2; bytes_read += 2; + // next byte is first byte of current chunk index + this_chunk = (*tmp_ptr << 4); + tmp_ptr++; + bytes_read++; + + // skip the 0x04 + tmp_ptr++; + bytes_read++; + + // get last chunk byte + this_chunk |= *tmp_ptr; + tmp_ptr++; + bytes_read++; + + found_chunks = 1; + + // debug + //ESP_LOGI(TAG, "Total chunks: %d. This chunk: %d", (int)chunk_count, (int)this_chunk); + // grab next 2 bytes (length) - if (!found_message) - { - rx_length = (*tmp_ptr << 8) | *(tmp_ptr + 1); - found_message = 1; - } + // length is number of byte pairs/nibbles (half of byte length) to the next 0xF7 + rx_length = (*tmp_ptr << 4) | *(tmp_ptr + 1); tmp_ptr += 2; bytes_read += 2; @@ -645,13 +830,123 @@ static uint8_t usb_valeton_gp5_parse_sysex(const uint8_t* buffer, uint32_t len) ESP_LOGE(TAG, "Processing error 07"); break; } + } + + if (found_chunks) + { + // see if we have all the chunks. +1 here as the total eg 10 is chunks 0 to 9 + if ((this_chunk + 1) == chunk_count) + { + // process this messsage + usb_valeton_gp5_process_single_sysex(ProcessingBuffer, write_index); + + // reset vars for possible next chunk + write_index = 0; + found_chunks = 0; + this_chunk = 0; + chunk_count = 0; + } + } + } + + return 1; +} + +/**************************************************************************** +* NAME: +* DESCRIPTION: +* PARAMETERS: +* RETURN: +* NOTES: +*****************************************************************************/ +static uint8_t usb_valeton_gp5_get_effect_block_index(uint32_t in, uint8_t block) +{ + if (block < VALETON_EFFECT_BLOCK_LAST) + { + const EffectMapEntry_t* map = effect_maps[block]; + + //ESP_LOGI(TAG, "Effect map:%d %X ", (int)map->effect_index, (int)map->byte_sequence); + + // search for the in marker + while (map->effect_index != 0xFF) + { + // debug + //ESP_LOGI(TAG, "Effect map %X ", (int)map->byte_sequence); + + if (map->byte_sequence == in) + { + // found match + return map->effect_index; + } + + map++; } - } + // unknown + ESP_LOGW(TAG, "Effect map in %X not found", (int)in); + return 0; +} + +/**************************************************************************** +* NAME: +* DESCRIPTION: +* PARAMETERS: +* RETURN: +* NOTES: +*****************************************************************************/ +static int16_t usb_valeton_gp5_convert_hex_byte_pair_s16(uint8_t byte1, uint8_t byte2) +{ + int16_t value= (byte1 * 16) + byte2; + + if (value & 0x80) + { + value = value - 0x100; + } + + return value; +} + +/**************************************************************************** +* NAME: +* DESCRIPTION: +* PARAMETERS: +* RETURN: +* NOTES: +*****************************************************************************/ +static void usb_valeton_gp5_request_ui_update(void) +{ + // if we have messages waiting in the queue, it will trigger another + // change that will overwrite this one. Skip the UI refresh to save time + if (uxQueueMessagesWaiting(input_queue) == 0) + { + // signal to refresh param UI + UI_RefreshParameterValues(); + + // update web UI + wifi_request_sync(WIFI_SYNC_TYPE_PARAMS, NULL, NULL); + } +} + +/**************************************************************************** +* NAME: +* DESCRIPTION: +* PARAMETERS: +* RETURN: +* NOTES: +*****************************************************************************/ +static uint8_t usb_valeton_gp5_process_single_sysex(const uint8_t* buffer, uint32_t len) +{ + uint32_t read_index = 0; + uint16_t preset_index = 0; + uint8_t string_index; + uint16_t ascii_char; + uint16_t function; + char name_string[20] = {0}; + + ESP_LOGI(TAG, "usb_valeton_gp5_process_single_sysex len: %d", (int)len); // debug - //ESP_LOG_BUFFER_HEXDUMP(TAG, ProcessingBuffer, write_index, ESP_LOG_INFO); - //vTaskDelay(100); + //ESP_LOG_BUFFER_HEXDUMP(TAG, buffer, len, ESP_LOG_INFO); // check the message type read_index = 0; @@ -660,53 +955,67 @@ static uint8_t usb_valeton_gp5_parse_sysex(const uint8_t* buffer, uint32_t len) read_index += 2; // next 2 bytes are function code - function = (ProcessingBuffer[read_index] << 4) | ProcessingBuffer[read_index + 1]; + function = (buffer[read_index] << 4) | buffer[read_index + 1]; read_index += 2; switch (function) { case 0x08: { - // single preset name/index. Don't need as already done full sync - // get the preset index - preset_index = (ProcessingBuffer[read_index] * 16) + ProcessingBuffer[read_index + 1]; - read_index += 2; - - // skip 6 bytes of zeros - read_index += 6; - string_index = 0; - - // next is 32 bytes/16 characters of preset name, 2 bytes per char - for (uint32_t character = 0; character < 16; character++) - { - // get 4 bit nibbles into byte e.g. 04 07 into 47 - ascii_char = (ProcessingBuffer[read_index] << 4) | ProcessingBuffer[read_index + 1]; - read_index += 2; - - name_string[string_index++] = (char)ascii_char; - } - - ESP_LOGI(TAG, "Got single Preset details"); + // this seems to be a confirmation message on param change + ESP_LOGI(TAG, "Got 0x08"); } break; case 0x10: { - // unknown - ESP_LOG_BUFFER_HEXDUMP(TAG, (uint8_t*)&ProcessingBuffer[read_index], write_index - read_index, ESP_LOG_INFO); + tModellerParameter* param_ptr; + + ESP_LOGI(TAG, "Got Globals"); + + // skip to master volume + read_index += 40; + + if (valeton_params_get_locked_access(¶m_ptr) == ESP_OK) + { + // master volume + param_ptr[VALETON_GLOBAL_MASTER_VOLUME].Value = (float)usb_valeton_gp5_convert_hex_byte_pair_s16(buffer[read_index], buffer[read_index + 1]); + read_index += 36; + + // get input trim + param_ptr[VALETON_GLOBAL_INPUT_TRIM].Value = (float)usb_valeton_gp5_convert_hex_byte_pair_s16(buffer[read_index], buffer[read_index + 1]); + read_index += 10; + + // rec level + param_ptr[VALETON_GLOBAL_RECORD_LEVEL].Value = (float)usb_valeton_gp5_convert_hex_byte_pair_s16(buffer[read_index], buffer[read_index + 1]); + read_index += 10; + + // mon level + param_ptr[VALETON_GLOBAL_MONITOR_LEVEL].Value = (float)usb_valeton_gp5_convert_hex_byte_pair_s16(buffer[read_index], buffer[read_index + 1]); + read_index += 10; + + // show BT level + param_ptr[VALETON_GLOBAL_BT_LEVEL].Value = (float)usb_valeton_gp5_convert_hex_byte_pair_s16(buffer[read_index], buffer[read_index + 1]); + read_index += 10; + + read_index += 21; + param_ptr[VALETON_GLOBAL_CABSIM_BYPASS].Value = (float)buffer[read_index]; + read_index += 10; + + // footswitch mode is next byte + valeton_params_release_locked_access(); + } - ESP_LOGI(TAG, "Got unknown 0x10"); + // debug + //valeton_dump_parameters(); - // example response - // f0 07 0f 00 01 00 00 04 0d 01 02 - // 01 00 00 01 00 01 00 04 00 00 00 06 00 00 00 01 00 - // 01 00 02 00 01 00 04 00 00 00 01 00 00 00 00 00 00 - // 00 02 00 02 00 04 00 00 02 0a 00 00 00 00 00 00 00 - // 01 00 02 00 01 00 00 00 00 00 03 00 02 00 01 00 00 - // 06 04 00 01 00 03 00 01 00 00 0f 0e 00 01 00 04 00 - // 01 00 00 00 00 00 02 00 04 00 01 00 00 00 00 00 03 - // 00 04 00 01 00 00 00 01 00 04 00 04 00 01 00 00 00 - // 01 00 05 00 04 00 01 00 00 00 00 00 03 00 03 00 01 - // 00 00 00 00 00 07 00 04 00 02 00 00 00 00 00 00 f7 + if (BootFlags.GotGlobals == 0) + { + BootFlags.GotGlobals = 1; + } + else + { + usb_valeton_gp5_request_ui_update(); + } } break; case 0x1B: @@ -720,284 +1029,18 @@ static uint8_t usb_valeton_gp5_parse_sysex(const uint8_t* buffer, uint32_t len) case 0x20: { - // unknown, possibly parameters - ESP_LOG_BUFFER_HEXDUMP(TAG, (uint8_t*)&ProcessingBuffer[read_index], write_index - read_index, ESP_LOG_INFO); - - ESP_LOGI(TAG, "Got unknown 0x20"); - - // contains the text "User" numerous times - - // example response - // 0000 f0 04 - // 0010 05 00 04 00 00 06 04 01 02 02 00 00 01 00 01 00 - // 0020 01 00 01 00 01 00 01 00 01 00 01 00 01 00 01 00 - // 0030 01 00 01 00 01 00 01 00 01 00 01 00 01 00 01 00 - // 0040 01 00 01 05 05 07 03 06 05 07 02 02 00 04 09 05 - // 0050 02 02 00 03 01 00 00 00 00 00 00 00 00 00 00 00 - // 0060 00 00 00 05 05 07 03 06 05 07 02 02 00 04 09 05 - // 0070 02 02 00 03 02 00 00 00 00 00 00 00 00 00 00 00 - // 0080 00 00 00 05 05 07 03 06 05 07 02 02 00 04 09 05 - // 0090 02 02 00 03 03 00 00 00 00 00 00 00 00 00 00 00 - // 00a0 00 00 00 05 05 07 03 06 05 07 02 02 00 04 09 05 - // 00b0 02 02 00 03 04 00 00 00 00 00 00 00 00 00 00 00 - // 00c0 00 00 00 05 05 07 03 06 05 07 02 02 00 04 09 05 - // 00d0 02 02 00 03 05 00 00 00 00 00 00 00 00 00 00 f7 - - // 0000 f0 07 - // 0010 03 00 04 00 01 06 04 00 00 00 00 05 05 07 03 06 - // 0020 05 07 02 02 00 04 09 05 02 02 00 03 06 00 00 00 - // 0030 00 00 00 00 00 00 00 00 00 00 00 05 05 07 03 06 - // 0040 05 07 02 02 00 04 09 05 02 02 00 03 07 00 00 00 - // 0050 00 00 00 00 00 00 00 00 00 00 00 05 05 07 03 06 - // 0060 05 07 02 02 00 04 09 05 02 02 00 03 08 00 00 00 - // 0070 00 00 00 00 00 00 00 00 00 00 00 05 05 07 03 06 - // 0080 05 07 02 02 00 04 09 05 02 02 00 03 09 00 00 00 - // 0090 00 00 00 00 00 00 00 00 00 00 00 05 05 07 03 06 - // 00a0 05 07 02 02 00 04 09 05 02 02 00 03 01 03 00 00 - // 00b0 00 00 00 00 00 00 00 00 00 00 00 05 05 07 03 06 - // 00c0 05 07 02 02 00 04 09 05 02 02 00 03 01 03 01 00 - // 00d0 00 00 00 00 00 00 00 00 00 00 00 05 05 07 03 f7 - - // 0000 f0 0d - // 0010 01 00 04 00 02 06 04 06 05 07 02 02 00 04 09 05 - // 0020 02 02 00 03 01 03 02 00 00 00 00 00 00 00 00 00 - // 0030 00 00 00 05 05 07 03 06 05 07 02 02 00 04 09 05 - // 0040 02 02 00 03 01 03 03 00 00 00 00 00 00 00 00 00 - // 0050 00 00 00 05 05 07 03 06 05 07 02 02 00 04 09 05 - // 0060 02 02 00 03 01 03 04 00 00 00 00 00 00 00 00 00 - // 0070 00 00 00 05 05 07 03 06 05 07 02 02 00 04 09 05 - // 0080 02 02 00 03 01 03 05 00 00 00 00 00 00 00 00 00 - // 0090 00 00 00 05 05 07 03 06 05 07 02 02 00 04 09 05 - // 00a0 02 02 00 03 01 03 06 00 00 00 00 00 00 00 00 00 - // 00b0 00 00 00 05 05 07 03 06 05 07 02 02 00 04 09 05 - // 00c0 02 02 00 03 01 03 07 00 00 00 00 00 00 00 00 00 - // 00d0 00 00 00 05 05 07 03 06 05 07 02 02 00 04 09 f7 - - // 0000 f0 07 - // 0010 01 00 04 00 03 02 0a 05 02 02 00 03 01 03 08 00 - // 0020 00 00 00 00 00 00 00 00 00 00 00 05 05 07 03 06 - // 0030 05 07 02 02 00 04 09 05 02 02 00 03 01 03 09 00 - // 0040 00 00 00 00 00 00 00 00 00 00 00 05 05 07 03 06 - // 0050 05 07 02 02 00 04 09 05 02 02 00 03 02 03 00 00 - // 0060 00 00 00 00 00 00 00 00 00 00 00 f7 + // IRs + //ESP_LOG_BUFFER_HEXDUMP(TAG, (uint8_t*)&buffer[read_index], len - read_index, ESP_LOG_INFO); + ESP_LOGI(TAG, "Got IRs"); + BootFlags.GotIRs = 1; } break; case 0x24: { - // unknown, some sort of user slots? - ESP_LOG_BUFFER_HEXDUMP(TAG, (uint8_t*)&ProcessingBuffer[read_index], write_index - read_index, ESP_LOG_INFO); - - ESP_LOGI(TAG, "Got unknown 0x24"); - - // contains text "OCD", "Reverb", "Sweet Drive", "Empty" etc - - // example response - // 0000 f0 0d - // 0010 06 00 0e 00 00 06 04 01 02 02 04 00 01 00 01 00 - // 0020 01 00 01 00 01 00 01 00 01 00 01 00 01 00 01 00 - // 0030 01 00 01 00 01 00 01 00 01 00 01 00 01 00 01 00 - // 0040 01 00 01 00 01 00 01 00 01 00 01 00 01 00 01 00 - // 0050 01 00 01 00 01 00 01 00 01 00 01 00 01 00 01 00 - // 0060 01 00 01 00 01 00 01 00 01 00 01 00 01 00 01 00 - // 0070 01 00 01 00 01 00 01 00 01 00 01 00 01 00 01 00 - // 0080 01 00 01 00 01 00 01 00 01 00 01 00 01 00 01 00 - // 0090 01 00 01 00 01 00 01 00 01 00 01 00 01 00 01 00 - // 00a0 01 00 01 00 01 00 01 00 01 00 01 00 01 00 01 00 - // 00b0 01 00 01 00 01 00 01 00 01 00 01 03 01 03 04 02 - // 00c0 00 04 04 05 03 05 04 00 00 00 00 00 00 00 00 00 - // 00d0 00 00 00 00 00 00 00 00 00 00 00 04 06 06 0f f7 - - // 0000 f0 0a - // 0010 0a 00 0e 00 01 06 04 07 02 06 03 06 05 02 00 04 - // 0020 0f 04 03 04 04 00 00 00 00 00 00 00 00 00 00 00 - // 0030 00 00 00 05 02 06 05 07 06 06 0f 06 0c 07 04 02 - // 0040 00 04 04 05 03 05 04 00 00 00 00 00 00 00 00 00 - // 0050 00 00 00 05 03 07 07 06 05 06 05 07 04 04 04 07 - // 0060 02 06 09 07 06 06 05 00 00 00 00 00 00 00 00 00 - // 0070 00 00 00 04 06 06 0c 06 01 06 07 06 0d 06 01 06 - // 0080 0e 04 04 05 03 05 04 00 00 00 00 00 00 00 00 00 - // 0090 00 00 00 04 06 06 0f 07 08 07 09 02 00 03 03 03 - // 00a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 - // 00b0 00 00 00 05 04 07 07 06 09 06 0e 02 00 05 02 05 - // 00c0 06 04 02 00 00 00 00 00 00 00 00 00 00 00 00 00 - // 00d0 00 00 00 04 0d 06 01 07 04 06 03 06 08 02 00 f7 - - // 0000 f0 05 - // 0010 08 00 0e 00 02 06 04 03 03 03 00 00 00 00 00 00 - // 0020 00 00 00 00 00 00 00 00 00 00 00 04 0d 06 05 07 - // 0030 03 07 03 05 03 07 04 06 01 07 02 02 00 05 03 00 - // 0040 00 00 00 00 00 00 00 00 00 00 00 04 0d 06 05 07 - // 0050 03 07 03 04 0a 05 00 02 00 04 03 04 08 03 01 00 - // 0060 00 00 00 00 00 00 00 00 00 00 00 05 02 06 0f 06 - // 0070 03 06 0b 03 02 02 00 04 03 04 0c 00 00 00 00 00 - // 0080 00 00 00 00 00 00 00 00 00 00 00 04 0c 06 01 06 - // 0090 0e 07 09 02 00 04 0c 04 08 03 02 03 00 00 00 00 - // 00a0 00 00 00 00 00 00 00 00 00 00 00 05 03 05 05 05 - // 00b0 00 04 04 07 05 06 01 06 0c 00 00 00 00 00 00 00 - // 00c0 00 00 00 00 00 00 00 00 00 00 00 04 02 04 0a 03 - // 00d0 03 02 00 04 03 04 0c 02 00 00 00 00 00 00 00 f7 - - // 0000 f0 02 - // 0010 0d 00 0e 00 03 06 04 00 00 00 00 00 00 00 00 00 - // 0020 00 00 00 05 05 04 0b 02 00 04 02 04 02 02 00 04 - // 0030 03 04 0c 00 00 00 00 00 00 00 00 00 00 00 00 00 - // 0040 00 00 00 04 02 04 0a 03 03 02 00 04 0f 04 04 00 - // 0050 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 - // 0060 00 00 00 05 05 04 0b 02 00 04 02 04 02 02 00 04 - // 0070 0f 04 04 00 00 00 00 00 00 00 00 00 00 00 00 00 - // 0080 00 00 00 05 05 04 0b 02 00 03 04 03 01 03 00 02 - // 0090 00 04 0f 04 04 00 00 00 00 00 00 00 00 00 00 00 - // 00a0 00 00 00 05 02 06 0f 06 03 06 0b 03 02 02 00 04 - // 00b0 0f 04 04 00 00 00 00 00 00 00 00 00 00 00 00 00 - // 00c0 00 00 00 04 08 05 07 03 01 03 00 03 00 00 00 00 - // 00d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 f7 - - // 0000 f0 0d - // 0010 06 00 0e 00 04 06 04 00 00 00 00 04 0a 07 05 06 - // 0020 09 06 03 06 05 02 00 04 03 05 02 02 00 04 0e 00 - // 0030 00 00 00 00 00 00 00 00 00 00 00 04 06 06 0f 07 - // 0040 08 07 09 02 00 03 03 03 00 04 0a 04 0d 04 09 00 - // 0050 00 00 00 00 00 00 00 00 00 00 00 04 02 06 0f 06 - // 0060 07 02 00 04 04 05 03 05 04 00 00 00 00 00 00 00 - // 0070 00 00 00 00 00 00 00 00 00 00 00 04 03 05 06 02 - // 0080 00 05 08 05 06 00 00 00 00 00 00 00 00 00 00 00 - // 0090 00 00 00 00 00 00 00 00 00 00 00 04 0d 06 05 07 - // 00a0 03 07 03 04 0a 05 00 02 00 04 03 04 08 03 02 00 - // 00b0 00 00 00 00 00 00 00 00 00 00 00 04 0d 06 05 07 - // 00c0 03 07 03 04 0a 05 00 02 00 04 03 04 08 03 03 00 - // 00d0 00 00 00 00 00 00 00 00 00 00 00 05 05 04 0b f7 - - // 0000 f0 0f - // 0010 01 00 0e 00 05 06 04 02 00 03 08 03 00 03 00 00 - // 0020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 - // 0030 00 00 00 05 05 04 0b 02 00 05 03 04 0c 05 00 00 - // 0040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 - // 0050 00 00 00 05 05 04 0b 03 04 03 01 03 00 02 00 04 - // 0060 04 05 03 05 04 03 01 00 00 00 00 00 00 00 00 00 - // 0070 00 00 00 05 05 04 0b 03 04 03 01 03 00 02 00 04 - // 0080 04 05 03 05 04 03 02 00 00 00 00 00 00 00 00 00 - // 0090 00 00 00 05 05 04 0b 02 00 03 09 03 00 03 00 00 - // 00a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 - // 00b0 00 00 00 05 05 04 0b 02 00 03 02 03 00 03 00 03 - // 00c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 - // 00d0 00 00 00 05 05 04 0b 02 00 04 04 05 03 04 0c f7 - - // 0000 f0 0d - // 0010 02 00 0e 00 06 06 04 00 00 00 00 00 00 00 00 00 - // 0020 00 00 00 00 00 00 00 00 00 00 00 04 04 06 09 07 - // 0030 0a 07 0a 02 00 05 06 04 08 00 00 00 00 00 00 00 - // 0040 00 00 00 00 00 00 00 00 00 00 00 04 0d 06 05 07 - // 0050 03 07 03 02 00 05 04 07 02 06 09 05 06 00 00 00 - // 0060 00 00 00 00 00 00 00 00 00 00 00 04 0d 06 05 07 - // 0070 03 07 03 02 00 05 04 07 02 06 09 04 0d 00 00 00 - // 0080 00 00 00 00 00 00 00 00 00 00 00 04 0d 06 05 07 - // 0090 03 07 03 02 00 03 02 04 03 02 0b 00 00 00 00 00 - // 00a0 00 00 00 00 00 00 00 00 00 00 00 04 05 06 01 06 - // 00b0 07 06 0c 06 05 02 00 04 09 07 02 06 0f 06 0e 00 - // 00c0 00 00 00 00 00 00 00 00 00 00 00 04 08 02 06 04 - // 00d0 0b 02 00 04 02 04 0c 04 0b 03 02 03 00 03 00 f7 - - // 0000 f0 00 - // 0010 0b 00 0e 00 07 06 04 00 00 00 00 00 00 00 00 00 - // 0020 00 00 00 04 0a 07 05 06 09 06 03 06 05 04 03 05 - // 0030 02 04 0d 04 01 05 08 00 00 00 00 00 00 00 00 00 - // 0040 00 00 00 04 01 04 07 04 0c 02 00 04 04 04 02 02 - // 0050 00 04 02 05 03 00 00 00 00 00 00 00 00 00 00 00 - // 0060 00 00 00 04 01 04 0d 05 00 04 07 02 00 03 06 02 - // 0070 00 04 02 05 03 00 00 00 00 00 00 00 00 00 00 00 - // 0080 00 00 00 04 05 04 02 02 00 04 06 06 01 06 06 02 - // 0090 00 04 02 05 03 00 00 00 00 00 00 00 00 00 00 00 - // 00a0 00 00 00 04 08 04 01 04 03 04 0b 02 00 04 02 05 - // 00b0 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 - // 00c0 00 00 00 05 00 05 06 02 00 04 02 05 03 00 00 00 - // 00d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 f7 - - // 0000 f0 06 - // 0010 00 00 0e 00 08 06 04 00 00 00 00 04 0d 04 01 05 - // 0020 04 05 04 02 00 04 02 05 03 00 00 00 00 00 00 00 - // 0030 00 00 00 00 00 00 00 00 00 00 00 04 08 02 06 04 - // 0040 0b 02 00 04 02 05 03 00 00 00 00 00 00 00 00 00 - // 0050 00 00 00 00 00 00 00 00 00 00 00 04 0a 07 05 06 - // 0060 09 06 03 06 05 02 00 04 0f 04 04 04 02 05 03 00 - // 0070 00 00 00 00 00 00 00 00 00 00 00 04 01 04 03 02 - // 0080 00 05 03 04 09 04 0d 00 00 00 00 00 00 00 00 00 - // 0090 00 00 00 00 00 00 00 00 00 00 00 05 00 06 09 06 - // 00a0 05 07 0a 06 0f 02 00 05 03 04 09 04 0d 00 00 00 - // 00b0 00 00 00 00 00 00 00 00 00 00 00 04 05 06 0d 07 - // 00c0 00 07 04 07 09 00 00 00 00 00 00 00 00 00 00 00 - // 00d0 00 00 00 00 00 00 00 00 00 00 00 04 05 06 0d f7 - - // 0000 f0 0f - // 0010 03 00 0e 00 09 06 04 07 00 07 04 07 09 00 00 00 - // 0020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 - // 0030 00 00 00 04 05 06 0d 07 00 07 04 07 09 00 00 00 - // 0040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 - // 0050 00 00 00 04 05 06 0d 07 00 07 04 07 09 00 00 00 - // 0060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 - // 0070 00 00 00 04 05 06 0d 07 00 07 04 07 09 00 00 00 - // 0080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 - // 0090 00 00 00 04 05 06 0d 07 00 07 04 07 09 00 00 00 - // 00a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 - // 00b0 00 00 00 04 05 06 0d 07 00 07 04 07 09 00 00 00 - // 00c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 - // 00d0 00 00 00 04 05 06 0d 07 00 07 04 07 09 00 00 f7 - - // 0000 f0 07 - // 0010 0e 00 0e 00 0a 06 04 00 00 00 00 00 00 00 00 00 - // 0020 00 00 00 00 00 00 00 00 00 00 00 04 05 06 0d 07 - // 0030 00 07 04 07 09 00 00 00 00 00 00 00 00 00 00 00 - // 0040 00 00 00 00 00 00 00 00 00 00 00 04 05 06 0d 07 - // 0050 00 07 04 07 09 00 00 00 00 00 00 00 00 00 00 00 - // 0060 00 00 00 00 00 00 00 00 00 00 00 04 05 06 0d 07 - // 0070 00 07 04 07 09 00 00 00 00 00 00 00 00 00 00 00 - // 0080 00 00 00 00 00 00 00 00 00 00 00 04 05 06 0d 07 - // 0090 00 07 04 07 09 00 00 00 00 00 00 00 00 00 00 00 - // 00a0 00 00 00 00 00 00 00 00 00 00 00 04 05 06 0d 07 - // 00b0 00 07 04 07 09 00 00 00 00 00 00 00 00 00 00 00 - // 00c0 00 00 00 00 00 00 00 00 00 00 00 04 05 06 0d 07 - // 00d0 00 07 04 07 09 00 00 00 00 00 00 00 00 00 00 f7 - - // 0000 f0 0d - // 0010 09 00 0e 00 0b 06 04 00 00 00 00 00 00 00 00 00 - // 0020 00 00 00 04 05 06 0d 07 00 07 04 07 09 00 00 00 - // 0030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 - // 0040 00 00 00 04 05 06 0d 07 00 07 04 07 09 00 00 00 - // 0050 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 - // 0060 00 00 00 04 05 06 0d 07 00 07 04 07 09 00 00 00 - // 0070 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 - // 0080 00 00 00 04 05 06 0d 07 00 07 04 07 09 00 00 00 - // 0090 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 - // 00a0 00 00 00 04 05 06 0d 07 00 07 04 07 09 00 00 00 - // 00b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 - // 00c0 00 00 00 04 05 06 0d 07 00 07 04 07 09 00 00 00 - // 00d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 f7 - - // 0000 f0 05 - // 0010 09 00 0e 00 0c 06 04 00 00 00 00 04 05 06 0d 07 - // 0020 00 07 04 07 09 00 00 00 00 00 00 00 00 00 00 00 - // 0030 00 00 00 00 00 00 00 00 00 00 00 04 05 06 0d 07 - // 0040 00 07 04 07 09 00 00 00 00 00 00 00 00 00 00 00 - // 0050 00 00 00 00 00 00 00 00 00 00 00 04 05 06 0d 07 - // 0060 00 07 04 07 09 00 00 00 00 00 00 00 00 00 00 00 - // 0070 00 00 00 00 00 00 00 00 00 00 00 04 05 06 0d 07 - // 0080 00 07 04 07 09 00 00 00 00 00 00 00 00 00 00 00 - // 0090 00 00 00 00 00 00 00 00 00 00 00 04 05 06 0d 07 - // 00a0 00 07 04 07 09 00 00 00 00 00 00 00 00 00 00 00 - // 00b0 00 00 00 00 00 00 00 00 00 00 00 04 05 06 0d 07 - // 00c0 00 07 04 07 09 00 00 00 00 00 00 00 00 00 00 00 - // 00d0 00 00 00 00 00 00 00 00 00 00 00 04 05 06 0d f7 - - // 0000 f0 0a - // 0010 02 00 0e 00 0d 03 0e 07 00 07 04 07 09 00 00 00 - // 0020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 - // 0030 00 00 00 04 05 06 0d 07 00 07 04 07 09 00 00 00 - // 0040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 - // 0050 00 00 00 04 05 06 0d 07 00 07 04 07 09 00 00 00 - // 0060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 - // 0070 00 00 00 04 05 06 0d 07 00 07 04 07 09 00 00 00 - // 0080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 - // 0090 00 00 00 f7 - + // NAM models/Snaptones + //ESP_LOG_BUFFER_HEXDUMP(TAG, (uint8_t*)&buffer[read_index], len - read_index, ESP_LOG_INFO); + ESP_LOGI(TAG, "Got Snaptones"); + BootFlags.GotSnaptones = 1; } break; case 0x40: @@ -1008,11 +1051,11 @@ static uint8_t usb_valeton_gp5_parse_sysex(const uint8_t* buffer, uint32_t len) for (uint32_t presets = 0; presets < MAX_PRESETS_VALETON_GP5; presets++) { // get the preset index - preset_index = (ProcessingBuffer[read_index] * 16) + ProcessingBuffer[read_index + 1]; + preset_index = (buffer[read_index] * 16) + buffer[read_index + 1]; read_index += 2; // debug - //ESP_LOGI(TAG, "Preset Index: %d %d", (int)ProcessingBuffer[read_index - 2], (int)ProcessingBuffer[read_index - 1]); + //ESP_LOGI(TAG, "Preset Index: %d %d", (int)buffer[read_index - 2], (int)buffer[read_index - 1]); // skip 6 bytes of zeros read_index += 6; @@ -1022,7 +1065,7 @@ static uint8_t usb_valeton_gp5_parse_sysex(const uint8_t* buffer, uint32_t len) for (uint32_t character = 0; character < 16; character++) { // get 4 bit nibbles into byte e.g. 04 07 into 47 - ascii_char = (ProcessingBuffer[read_index] << 4) | ProcessingBuffer[read_index + 1]; + ascii_char = (buffer[read_index] << 4) | buffer[read_index + 1]; read_index += 2; name_string[string_index++] = (char)ascii_char; @@ -1033,180 +1076,191 @@ static uint8_t usb_valeton_gp5_parse_sysex(const uint8_t* buffer, uint32_t len) // don't smash the control input queue too hard vTaskDelay(10); - } - - control_set_sync_complete(); - - // request the preset - usb_valeton_gp5_request_current_preset(); + } - ValetonGP5Data->State = COMMS_STATE_READY; + BootFlags.GotPresetData = 1; } break; case 0x41: { - // current preset parameters? - ESP_LOGI(TAG, "Current Preset params?"); + // current preset parameters + ESP_LOGI(TAG, "Current Preset params"); // debug - //ESP_LOG_BUFFER_HEXDUMP(TAG, (uint8_t*)&ProcessingBuffer[read_index], write_index - read_index, ESP_LOG_INFO); + //ESP_LOG_BUFFER_HEXDUMP(TAG, (uint8_t*)&buffer[read_index], len - read_index, ESP_LOG_INFO); + uint8_t temp_buf[4]; + uint32_t param_index = 0; + float temp_val; + tModellerParameter* param_ptr; + uint8_t effect_states_1; + uint8_t effect_states_2; + uint8_t loop; + + // skip to patch vol + read_index += 96; + + if (valeton_params_get_locked_access(¶m_ptr) == ESP_OK) + { + // get patch volume + param_ptr[VALETON_PARAM_PATCH_VOLUME].Value = (float)usb_valeton_gp5_convert_hex_byte_pair_s16(buffer[read_index], buffer[read_index + 1]); + valeton_params_release_locked_access(); + } + + // skip to effect block bit flags + read_index += 40; - // skip the 0x0F 0x0F bytes + effect_states_1 = (buffer[read_index] << 4) | (buffer[read_index + 1] & 0x0F); + read_index += 2; + effect_states_2 = (buffer[read_index] << 4) | (buffer[read_index + 1] & 0x0F); read_index += 2; -#if 0 - // following is incorrect + if (valeton_params_get_locked_access(¶m_ptr) == ESP_OK) + { + // set effect block states + param_ptr[VALETON_PARAM_NR_ENABLE].Value = (float)((effect_states_1 & 1) != 0); + param_ptr[VALETON_PARAM_PRE_ENABLE].Value = (float)((effect_states_1 & 2) != 0); + param_ptr[VALETON_PARAM_DIST_ENABLE].Value = (float)((effect_states_1 & 4) != 0); + param_ptr[VALETON_PARAM_AMP_ENABLE].Value = (float)((effect_states_1 & 8) != 0); + param_ptr[VALETON_PARAM_CAB_ENABLE].Value = (float)((effect_states_1 & 16) != 0); + param_ptr[VALETON_PARAM_EQ_ENABLE].Value = (float)((effect_states_1 & 32) != 0); + param_ptr[VALETON_PARAM_MOD_ENABLE].Value = (float)((effect_states_1 & 64) != 0); + param_ptr[VALETON_PARAM_DLY_ENABLE].Value = (float)((effect_states_1 & 128) != 0); + param_ptr[VALETON_PARAM_RVB_ENABLE].Value = (float)((effect_states_2 & 1) != 0); + param_ptr[VALETON_PARAM_NS_ENABLE].Value = (float)((effect_states_2 & 2) != 0); + + valeton_params_release_locked_access(); + } + + // skip to effect order. these are 2 byte values, with block index in order from slot 0 to 9 + read_index += 12; + + if (valeton_params_get_locked_access(¶m_ptr) == ESP_OK) + { + // set effect block order + param_ptr[VALETON_PARAM_EFFECT_SLOT_0].Value = (float)((buffer[read_index + 0] << 4) | (buffer[read_index + 1] & 0x0F)); + param_ptr[VALETON_PARAM_EFFECT_SLOT_1].Value = (float)((buffer[read_index + 2] << 4) | (buffer[read_index + 3] & 0x0F)); + param_ptr[VALETON_PARAM_EFFECT_SLOT_2].Value = (float)((buffer[read_index + 4] << 4) | (buffer[read_index + 5] & 0x0F)); + param_ptr[VALETON_PARAM_EFFECT_SLOT_3].Value = (float)((buffer[read_index + 6] << 4) | (buffer[read_index + 7] & 0x0F)); + param_ptr[VALETON_PARAM_EFFECT_SLOT_4].Value = (float)((buffer[read_index + 8] << 4) | (buffer[read_index + 9] & 0x0F)); + param_ptr[VALETON_PARAM_EFFECT_SLOT_5].Value = (float)((buffer[read_index + 10] << 4) | (buffer[read_index + 11] & 0x0F)); + param_ptr[VALETON_PARAM_EFFECT_SLOT_6].Value = (float)((buffer[read_index + 12] << 4) | (buffer[read_index + 13] & 0x0F)); + param_ptr[VALETON_PARAM_EFFECT_SLOT_7].Value = (float)((buffer[read_index + 14] << 4) | (buffer[read_index + 15] & 0x0F)); + param_ptr[VALETON_PARAM_EFFECT_SLOT_8].Value = (float)((buffer[read_index + 16] << 4) | (buffer[read_index + 17] & 0x0F)); + param_ptr[VALETON_PARAM_EFFECT_SLOT_9].Value = (float)((buffer[read_index + 18] << 4) | (buffer[read_index + 19] & 0x0F)); + + valeton_params_release_locked_access(); + } + + // debug + //ESP_LOG_BUFFER_HEXDUMP(TAG, (uint8_t*)&buffer[read_index], 32, ESP_LOG_INFO); + + // skip to effect block models + read_index += 28; - // suspected 16 byte chunks per parameter. 99 x 16 byte chunks are found. 99 is number of presets, maybe this is not params? - #define MESSAGE_LENGTH 34 + // debug + //ESP_LOG_BUFFER_HEXDUMP(TAG, (uint8_t*)&buffer[read_index], 80, ESP_LOG_INFO); - for (size_t i = read_index; i <= write_index - read_index - MESSAGE_LENGTH; i += MESSAGE_LENGTH) + if (valeton_params_get_locked_access(¶m_ptr) == ESP_OK) { - uint8_t byte12 = ProcessingBuffer[i + 12]; // Effect block - uint8_t byte23 = ProcessingBuffer[i + 23]; // Parameter index or type indicator - uint8_t byte24 = ProcessingBuffer[i + 24]; // For reverb_type/reverb_ok - uint8_t byte30 = ProcessingBuffer[i + 30]; // Coarse value - uint8_t byte31 = ProcessingBuffer[i + 31]; // Fine value - uint8_t byte32 = ProcessingBuffer[i + 32]; // Parameter type/range - uint8_t byte33 = ProcessingBuffer[i + 33]; // Range indicator - - //if (byte12 == 0x04) - { - // Check for valid message pattern - if (byte23 == 0x00 && (byte32 == 0x00 || byte32 == 0x04)) - { - // delay_mix, delay_feedback, reverb_mix, reverb_decay - float value = usb_valeton_gp5_decode_percentage(byte30, byte31, byte33); - if (value >= 0.0f) - { - ESP_LOGI(TAG, "Percentage Parameter (Mix/Feedback/Decay) at index %zu: %.2f%%", i, value); - } - else - { - ESP_LOGI(TAG, "Invalid Percentage Parameter at index %zu: %02x %02x %02x %02x", i, byte30, byte31, byte32, byte33); - } - } - else if (byte23 == 0x01 && byte32 == 0x00) - { - // delay_time - float value = usb_valeton_gp5_decode_time(byte30, byte31, byte33); - if (value >= 0.0f) - { - ESP_LOGI(TAG, "Delay Time at index %zu: %.0fms", i, value); - } - else - { - ESP_LOGI(TAG, "Invalid Delay Time at index %zu: %02x %02x %02x %02x", i, byte30, byte31, byte32, byte33); - } - } - else if (byte23 == 0x01 && (byte32 == 0x0c || byte32 == 0x0b)) - { - // reverb_type, reverb_ok - const char *value = usb_valeton_gp5_decode_type_or_onoff(byte24, byte32); - ESP_LOGI(TAG, "Reverb Type/OnOff at index %zu: %s", i, value); - } - else if (byte23 == 0x02 && (byte32 == 0x04 || byte32 == 0x0c || byte32 == 0x04)) - { - // EQ Level - float value = usb_valeton_gp5_decode_level(byte30, byte31, byte32, byte33); - if (value >= -50.0f && value <= 50.0f) - { - ESP_LOGI(TAG, "EQ Level at index %zu: %.2f", i, value); - } - else - { - ESP_LOGI(TAG, "Invalid EQ Level at index %zu: %02x %02x %02x %02x", i, byte30, byte31, byte32, byte33); - } - } - else + for (loop = VALETON_EFFECT_BLOCK_NR; loop < VALETON_EFFECT_BLOCK_NS; loop++) + { + // get 4 byte effect code from 8 nibbles + uint32_t effect_code = (((buffer[read_index] << 4) | (buffer[read_index + 1] & 0x0F)) << 24); + effect_code |= (((buffer[read_index + 2] << 4) | (buffer[read_index + 3] & 0x0F)) << 16); + effect_code |= (((buffer[read_index + 4] << 4) | (buffer[read_index + 5] & 0x0F)) << 8); + effect_code |= (((buffer[read_index + 6] << 4) | (buffer[read_index + 7] & 0x0F))); + + //ESP_LOG_BUFFER_HEXDUMP(TAG, (uint8_t*)&buffer[read_index], 8, ESP_LOG_INFO); + + param_ptr[VALETON_PARAM_NR_TYPE + loop].Value = (float)usb_valeton_gp5_get_effect_block_index(effect_code, loop); + read_index += 8; + + //ESP_LOGI(TAG, "Effect code %X for effect %d, model:%d", (int)effect_code, (int)loop, (int)param_ptr[VALETON_PARAM_NR_TYPE + loop].Value); + } + + valeton_params_release_locked_access(); + } + + // skip to start of params, back to back 32 bit big-endian floats + read_index += 16; + + //ESP_LOG_BUFFER_HEXDUMP(TAG, (uint8_t*)&buffer[read_index], 64, ESP_LOG_INFO); + //ESP_LOGI(TAG, "Param values read_index: %d", (int)read_index); + + // params following match the order defined in Valeton params from VALETON_PARAM_NR_PARAM_0 down + if (valeton_params_get_locked_access(¶m_ptr) == ESP_OK) + { + while (read_index < len) + { + // join 8 nibbles to form a 4 byte value + for (loop = 0; loop < 4; loop++) + { + temp_buf[loop] = buffer[read_index++] << 4; + temp_buf[loop] |= buffer[read_index++] & 0x0F; + } + + // get value as 32 bit big-endian float + memcpy((void*)&temp_val, (void*)temp_buf, sizeof(float)); + + if ((VALETON_PARAM_NR_PARAM_0 + param_index) < VALETON_PARAM_LAST) { - ESP_LOGI(TAG, "Unknown Parameter at index %zu: byte12=%02x, byte23=%02x, value=%02x %02x %02x %02x", i, byte12, byte23, byte30, byte31, byte32, byte33); + // update local copy + param_ptr[VALETON_PARAM_NR_PARAM_0 + param_index].Value = temp_val; } + else + { + ESP_LOGW(TAG, "Invalid Param count %d %f!", (int)(VALETON_PARAM_NR_PARAM_0 + param_index), temp_val); + } + + //ESP_LOGI(TAG, "Param val %d: %3.2f", (int)param_index, temp_val); + param_index++; } + + valeton_params_release_locked_access(); + } + else + { + ESP_LOGW(TAG, "Param mutex failed!"); } -#endif + + valeton_params_set_min_max(); - // example response - // I (9019) app_Valeton_GP5: 0x3c3d4730 0f 0f 00 00 01 00 00 00 00 01 00 00 00 04 00 00 |................| - // I (9026) app_Valeton_GP5: 0x3c3d4740 00 01 00 00 00 00 00 00 00 02 00 00 00 04 00 00 |................| - // I (9035) app_Valeton_GP5: 0x3c3d4750 00 0a 04 05 04 0d 05 01 00 00 00 00 01 00 00 00 |................| - // I (9045) app_Valeton_GP5: 0x3c3d4760 00 01 01 00 00 04 00 00 00 0a 00 00 00 00 00 00 |................| - // I (9054) app_Valeton_GP5: 0x3c3d4770 00 02 01 00 00 04 00 00 00 08 00 00 00 00 00 00 |................| - // I (9064) app_Valeton_GP5: 0x3c3d4780 00 01 00 00 01 00 00 00 00 01 02 00 00 04 00 00 |................| - // I (9073) app_Valeton_GP5: 0x3c3d4790 03 02 00 00 00 00 00 00 00 02 02 00 00 04 00 00 |................| - // I (9083) app_Valeton_GP5: 0x3c3d47a0 07 08 00 00 00 00 00 00 00 02 00 00 08 06 00 01 |................| - // I (9092) app_Valeton_GP5: 0x3c3d47b0 00 01 03 00 00 04 00 00 01 0d 00 01 00 00 00 00 |................| - // I (9102) app_Valeton_GP5: 0x3c3d47c0 00 02 03 00 00 0a 00 00 00 00 00 01 00 02 00 09 |................| - // I (9111) app_Valeton_GP5: 0x3c3d47d0 00 03 00 04 00 05 00 06 00 07 00 08 00 03 03 00 |................| - // I (9121) app_Valeton_GP5: 0x3c3d47e0 02 08 00 00 01 0b 00 00 00 00 00 00 02 01 00 00 |................| - // I (9130) app_Valeton_GP5: 0x3c3d47f0 00 00 00 01 00 00 00 00 00 00 00 03 02 07 00 00 |................| - // I (9139) app_Valeton_GP5: 0x3c3d4800 00 00 00 07 00 08 00 00 00 00 00 0a 03 05 00 00 |................| - // I (9149) app_Valeton_GP5: 0x3c3d4810 00 00 00 01 01 09 00 00 00 00 00 04 00 00 00 00 |................| - // I (9158) app_Valeton_GP5: 0x3c3d4820 00 00 00 0b 00 04 00 00 00 00 00 0c 00 00 00 00 |................| - // I (9168) app_Valeton_GP5: 0x3c3d4830 00 00 00 0f 00 04 03 00 04 00 00 01 00 00 00 00 |................| - // I (9177) app_Valeton_GP5: 0x3c3d4840 0d 00 04 01 00 00 00 00 00 00 00 00 00 00 00 00 |................| - // I (9187) app_Valeton_GP5: 0x3c3d4850 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| - // I (9196) app_Valeton_GP5: 0x3c3d4860 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| - // I (9206) app_Valeton_GP5: 0x3c3d4870 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| - // I (9215) app_Valeton_GP5: 0x3c3d4880 0a 00 04 01 00 00 00 00 00 00 00 00 00 00 00 00 |................| - // I (9225) app_Valeton_GP5: 0x3c3d4890 07 00 04 02 00 00 00 00 00 00 00 00 00 00 00 00 |................| - // I (9234) app_Valeton_GP5: 0x3c3d48a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| - // I (9244) app_Valeton_GP5: 0x3c3d48b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| - // I (9253) app_Valeton_GP5: 0x3c3d48c0 0a 00 04 01 00 00 00 00 0a 00 04 02 00 00 00 00 |................| - // I (9263) app_Valeton_GP5: 0x3c3d48d0 05 0c 04 02 00 00 00 00 00 00 00 00 00 00 00 00 |................| - // I (9272) app_Valeton_GP5: 0x3c3d48e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| - // I (9281) app_Valeton_GP5: 0x3c3d48f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| - // I (9291) app_Valeton_GP5: 0x3c3d4900 0a 00 04 01 00 00 00 00 02 00 04 01 00 00 00 00 |................| - // I (9300) app_Valeton_GP5: 0x3c3d4910 04 08 04 02 00 00 00 00 02 00 04 02 00 00 00 00 |................| - // I (9310) app_Valeton_GP5: 0x3c3d4920 0b 04 04 02 00 00 00 00 00 00 00 00 00 00 00 00 |................| - // I (9319) app_Valeton_GP5: 0x3c3d4930 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| - // I (9329) app_Valeton_GP5: 0x3c3d4940 04 08 04 02 00 00 00 00 00 00 00 00 00 00 00 00 |................| - // I (9338) app_Valeton_GP5: 0x3c3d4950 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| - // I (9348) app_Valeton_GP5: 0x3c3d4960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| - // I (9357) app_Valeton_GP5: 0x3c3d4970 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| - // I (9367) app_Valeton_GP5: 0x3c3d4980 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| - // I (9376) app_Valeton_GP5: 0x3c3d4990 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| - // I (9385) app_Valeton_GP5: 0x3c3d49a0 00 00 00 00 00 00 00 00 04 08 04 02 00 00 00 00 |................| - // I (9395) app_Valeton_GP5: 0x3c3d49b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| - // I (9405) app_Valeton_GP5: 0x3c3d49c0 00 00 03 0f 00 00 00 00 00 00 03 0f 00 00 00 00 |................| - // I (9414) app_Valeton_GP5: 0x3c3d49d0 04 08 04 02 00 00 00 00 00 00 00 00 00 00 00 00 |................| - // I (9423) app_Valeton_GP5: 0x3c3d49e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| - // I (9433) app_Valeton_GP5: 0x3c3d49f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| - // I (9442) app_Valeton_GP5: 0x3c3d4a00 0a 00 04 01 00 00 00 00 0f 0a 04 03 00 00 00 00 |................| - // I (9452) app_Valeton_GP5: 0x3c3d4a10 0f 00 04 01 00 00 00 00 00 00 00 00 00 00 00 00 |................| - // I (9461) app_Valeton_GP5: 0x3c3d4a20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| - // I (9471) app_Valeton_GP5: 0x3c3d4a30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| - // I (9480) app_Valeton_GP5: 0x3c3d4a40 00 0c 04 02 00 00 00 00 0b 08 04 01 00 00 00 00 |................| - // I (9490) app_Valeton_GP5: 0x3c3d4a50 04 08 04 02 00 00 00 00 00 00 00 00 00 00 00 00 |................| - // I (9499) app_Valeton_GP5: 0x3c3d4a60 04 08 04 02 00 00 00 00 00 00 00 00 00 00 00 00 |................| - // I (9508) app_Valeton_GP5: 0x3c3d4a70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| - // I (9518) app_Valeton_GP5: 0x3c3d4a80 04 08 04 02 00 00 00 00 04 08 04 02 00 00 00 00 |................| - // I (9527) app_Valeton_GP5: 0x3c3d4a90 04 08 04 02 00 00 00 00 04 08 04 02 00 00 00 00 |................| - // I (9537) app_Valeton_GP5: 0x3c3d4aa0 04 08 04 02 00 00 00 00 00 00 00 00 00 00 00 00 |................| - // I (9546) app_Valeton_GP5: 0x3c3d4ab0 00 00 00 00 00 00 00 00 00 00 00 00 00 03 00 00 |................| - // I (9556) app_Valeton_GP5: 0x3c3d4ac0 00 08 00 00 00 04 00 00 00 00 00 00 00 07 00 00 |................| - // I (9565) app_Valeton_GP5: 0x3c3d4ad0 00 00 00 00 |....| + if (BootFlags.GotCurrentPresetParams == 0) + { + BootFlags.GotCurrentPresetParams = 1; + } + else + { + usb_valeton_gp5_request_ui_update(); + } } break; case 0x43: { // current preset index - //ESP_LOG_BUFFER_HEXDUMP(TAG, (uint8_t*)&ProcessingBuffer[read_index], write_index - read_index, ESP_LOG_INFO); - uint8_t current_preset = (ProcessingBuffer[read_index] << 4) | ProcessingBuffer[read_index + 1]; + //ESP_LOG_BUFFER_HEXDUMP(TAG, (uint8_t*)&buffer[read_index], len - read_index, ESP_LOG_INFO); + uint8_t current_preset = (buffer[read_index] << 4) | buffer[read_index + 1]; ESP_LOGI(TAG, "Got current preset index: %d", current_preset); // update UI control_sync_preset_details(current_preset, ""); - // request params - usb_valeton_gp5_request_preset_params(); + if (BootFlags.GotCurrentPreset == 0) + { + BootFlags.GotCurrentPreset = 1; + } + else + { + // request params + usb_valeton_gp5_request_preset_params(); + } } break; case 0x45: { // unknown. Seems to be some kind of confirmation response or short data - ESP_LOG_BUFFER_HEXDUMP(TAG, (uint8_t*)&ProcessingBuffer[read_index], write_index - read_index, ESP_LOG_INFO); + ESP_LOG_BUFFER_HEXDUMP(TAG, (uint8_t*)&buffer[read_index], len - read_index, ESP_LOG_INFO); ESP_LOGI(TAG, "Got unknown 0x45"); @@ -1218,7 +1272,7 @@ static uint8_t usb_valeton_gp5_parse_sysex(const uint8_t* buffer, uint32_t len) case 0x47: { // effect selection confirmation. - ESP_LOG_BUFFER_HEXDUMP(TAG, (uint8_t*)&ProcessingBuffer[read_index], write_index - read_index, ESP_LOG_INFO); + ESP_LOG_BUFFER_HEXDUMP(TAG, (uint8_t*)&buffer[read_index], len - read_index, ESP_LOG_INFO); ESP_LOGI(TAG, "Got 0x47"); @@ -1229,24 +1283,69 @@ static uint8_t usb_valeton_gp5_parse_sysex(const uint8_t* buffer, uint32_t len) case 0x48: { // parameter change confirmation - ESP_LOG_BUFFER_HEXDUMP(TAG, (uint8_t*)&ProcessingBuffer[read_index], write_index - read_index, ESP_LOG_INFO); + ESP_LOG_BUFFER_HEXDUMP(TAG, (uint8_t*)&buffer[read_index], len - read_index, ESP_LOG_INFO); - ESP_LOGI(TAG, "Got 0x48"); + uint8_t effect_block = (buffer[read_index] << 4) | buffer[read_index + 1]; + read_index += 8; - // example response - // f0 0c 0e 00 01 00 00 00 0e 01 01 04 08 00 01 00 00 00 00 00 00 00 02 00 00 00 00 00 00 00 00 00 00 02 00 04 02 f7 + uint8_t param_index = (buffer[read_index] << 4) | buffer[read_index + 1]; + read_index += 6; + + uint8_t value[4]; + value[0] = (buffer[read_index] << 4) | buffer[read_index + 1]; + read_index += 2; + + value[1] = (buffer[read_index] << 4) | buffer[read_index + 1]; + read_index += 2; + + value[2] = (buffer[read_index] << 4) | buffer[read_index + 1]; + read_index += 2; + + value[3] = (buffer[read_index] << 4) | buffer[read_index + 1]; + read_index += 2; + + float value_f; + memcpy((void*)&value_f, (void*)value, sizeof(value_f)); + ESP_LOGI(TAG, "Got 0x48 param changed. Block:%d. Param Index:%d. Value:%f", (int)effect_block, (int)param_index, value_f); + + // locate the parameter and update local copy + tModellerParameter* param_ptr = NULL; + uint8_t block; + uint8_t __attribute__((unused)) pedal; + uint8_t param; + + if (valeton_params_get_locked_access(¶m_ptr) == ESP_OK) + { + for (uint32_t param_index = 0; param_index < VALETON_PARAM_LAST; param_index++) + { + block = param_ptr[param_index].Data1; + pedal = param_ptr[param_index].Data2; + param = param_ptr[param_index].Data3; + + if ((effect_block == block) && (param_index == param)) + { + // found it, update local copy + param_ptr[param_index].Value = value_f; + break; + } + } + + valeton_params_release_locked_access(); + } + + usb_valeton_gp5_request_ui_update(); } break; case 0x49: { // effect block state - //ESP_LOG_BUFFER_HEXDUMP(TAG, (uint8_t*)&ProcessingBuffer[read_index], write_index - read_index, ESP_LOG_INFO); - uint8_t effect_block = (ProcessingBuffer[read_index] << 4) | ProcessingBuffer[read_index + 1]; + //ESP_LOG_BUFFER_HEXDUMP(TAG, (uint8_t*)&buffer[read_index], len - read_index, ESP_LOG_INFO); + uint8_t effect_block = (buffer[read_index] << 4) | buffer[read_index + 1]; read_index += 2; // skip to status byte read_index += 7; - uint8_t state = ProcessingBuffer[read_index]; + uint8_t state = buffer[read_index]; ESP_LOGI(TAG, "Got effect block state %d %d", effect_block, state); } break; @@ -1254,7 +1353,7 @@ static uint8_t usb_valeton_gp5_parse_sysex(const uint8_t* buffer, uint32_t len) case 0x50: { // unknown - ESP_LOG_BUFFER_HEXDUMP(TAG, (uint8_t*)&ProcessingBuffer[read_index], write_index - read_index, ESP_LOG_INFO); + ESP_LOG_BUFFER_HEXDUMP(TAG, (uint8_t*)&buffer[read_index], len - read_index, ESP_LOG_INFO); ESP_LOGI(TAG, "Got unknown 0x50"); @@ -1270,10 +1369,17 @@ static uint8_t usb_valeton_gp5_parse_sysex(const uint8_t* buffer, uint32_t len) // 0080 00 00 00 00 00 00 00 f7 } break; + case 0x73: + { + // unknown, happens on first preset change + ESP_LOGI(TAG, "Got unknown 0x73"); + usb_valeton_gp5_request_current_preset(); + } break; + default: { ESP_LOGI(TAG, "Unknown function type %X", function); - ESP_LOG_BUFFER_HEXDUMP(TAG, (uint8_t*)ProcessingBuffer, 16, ESP_LOG_WARN); + ESP_LOG_BUFFER_HEXDUMP(TAG, (uint8_t*)buffer, 16, ESP_LOG_WARN); } break; } @@ -1335,11 +1441,11 @@ static void usb_valeton_gp5_request_preset_params(void) * RETURN: * NOTES: *****************************************************************************/ -static void usb_valeton_gp5_request_unknown(void) +static void __attribute__((unused)) usb_valeton_gp5_request_globals(void) { uint8_t midi_tx[] = {0x01, 0x00}; - ESP_LOGI(TAG, "Request unknown"); + ESP_LOGI(TAG, "Request globals"); usb_valeton_gp5_send_sysex((const uint8_t*)midi_tx, sizeof(midi_tx), 0x02); } @@ -1351,7 +1457,7 @@ static void usb_valeton_gp5_request_unknown(void) * RETURN: * NOTES: *****************************************************************************/ -static void usb_valeton_gp5_request_unknown_2(void) +static void __attribute__((unused)) usb_valeton_gp5_request_unknown_2(void) { uint8_t midi_tx[] = {0x05, 0x00}; @@ -1367,7 +1473,7 @@ static void usb_valeton_gp5_request_unknown_2(void) * RETURN: * NOTES: *****************************************************************************/ -static void usb_valeton_gp5_request_unknown_3(void) +static void __attribute__((unused)) usb_valeton_gp5_request_unknown_3(void) { uint8_t midi_tx[] = {0x04, 0x05}; @@ -1383,11 +1489,11 @@ static void usb_valeton_gp5_request_unknown_3(void) * RETURN: * NOTES: *****************************************************************************/ -static void usb_valeton_gp5_request_unknown_4(void) +static void __attribute__((unused)) usb_valeton_gp5_request_ir(void) { uint8_t midi_tx[] = {0x02, 0x00}; - ESP_LOGI(TAG, "Request unknown_4"); + ESP_LOGI(TAG, "Request IR"); usb_valeton_gp5_send_sysex((const uint8_t*)midi_tx, sizeof(midi_tx), 0x02); } @@ -1399,11 +1505,11 @@ static void usb_valeton_gp5_request_unknown_4(void) * RETURN: * NOTES: *****************************************************************************/ -static void usb_valeton_gp5_request_unknown_5(void) +static void __attribute__((unused)) usb_valeton_gp5_request_nams(void) { uint8_t midi_tx[] = {0x02, 0x04}; - ESP_LOGI(TAG, "Request unknown_5"); + ESP_LOGI(TAG, "Request NAMs"); usb_valeton_gp5_send_sysex((const uint8_t*)midi_tx, sizeof(midi_tx), 0x02); } @@ -1415,13 +1521,13 @@ static void usb_valeton_gp5_request_unknown_5(void) * RETURN: * NOTES: *****************************************************************************/ -static void usb_valeton_gp5_get_preset(uint8_t index) +static void __attribute__((unused)) usb_valeton_gp5_get_preset(uint8_t index) { uint8_t midi_tx[] = {0x04, 0x03, 0x00, 0x00, 0x00, 0x00}; // set the index - midi_tx[2] = index >> 4; - midi_tx[3] = index & 0x0F; + midi_tx[2] = (uint8_t)(index / 16); + midi_tx[3] = (uint8_t)(index % 16); ESP_LOGI(TAG, "Get preset %d", index); @@ -1439,6 +1545,17 @@ static void usb_valeton_gp5_set_preset(uint8_t index) { ESP_LOGI(TAG, "Set preset %d", index); +#if 0 + // issue here with random pedal lockup! + uint8_t midi_tx[] = {0x04, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; + + // set the preset index + midi_tx[2] = (uint8_t)(index / 16); + midi_tx[3] = (uint8_t)(index % 16); + + usb_valeton_gp5_send_sysex((const uint8_t*)midi_tx, sizeof(midi_tx), 0x01); +#endif + // send control change uint8_t midi_tx[4]; @@ -1459,7 +1576,7 @@ static void usb_valeton_gp5_set_preset(uint8_t index) *****************************************************************************/ static void usb_valeton_gp5_set_effect_block_state(uint8_t block_index, uint8_t state) { - uint8_t midi_tx[] = {0x04, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; + uint8_t midi_tx[] = {0x04, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; // set the block index midi_tx[2] = block_index >> 4; @@ -1470,6 +1587,9 @@ static void usb_valeton_gp5_set_effect_block_state(uint8_t block_index, uint8_t ESP_LOGI(TAG, "Set Effect Block state %d %d", block_index, state); + // debug + //ESP_LOG_BUFFER_HEXDUMP(TAG, midi_tx, sizeof(midi_tx), ESP_LOG_INFO); + usb_valeton_gp5_send_sysex((const uint8_t*)midi_tx, sizeof(midi_tx), 0x01); } @@ -1482,19 +1602,63 @@ static void usb_valeton_gp5_set_effect_block_state(uint8_t block_index, uint8_t *****************************************************************************/ static void usb_valeton_gp5_set_effect_block_model(uint8_t block_index, uint8_t model) { - uint8_t midi_tx[] = {0x04, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; + // | block | | block | | effect code | + uint8_t midi_tx[] = {0x04, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; + uint32_t effect_code = 0xFF; - // set the block index + // set the block index (twice) midi_tx[2] = block_index >> 4; midi_tx[3] = block_index & 0x0F; - // set model index - midi_tx[10] = model >> 4; - midi_tx[11] = model & 0x0F; + midi_tx[10] = block_index >> 4; + midi_tx[11] = block_index & 0x0F; + + if (block_index < VALETON_EFFECT_BLOCK_LAST) + { + const EffectMapEntry_t* map = effect_maps[block_index]; - ESP_LOGI(TAG, "Set Effect Block model %d %d", block_index, model); + // search for the matching effect code for the model + while (map->effect_index != 0xFF) + { + // debug + //ESP_LOGI(TAG, "Effect map %X ", (int)map->byte_sequence); - usb_valeton_gp5_send_sysex((const uint8_t*)midi_tx, sizeof(midi_tx), 0x01); + if (map->effect_index == model) + { + // found match + effect_code = map->byte_sequence; + break; + } + + map++; + } + } + + if (effect_code != 0xFF) + { + ESP_LOGI(TAG, "Set Effect Block model %d %d %X", (int)block_index, (int)model, (int)effect_code); + + // set the effect code + uint8_t* ptr = (uint8_t*)&effect_code; + // 18 to 25 + midi_tx[18] = ptr[3] >> 4; + midi_tx[19] = ptr[3] & 0x0F; + midi_tx[20] = ptr[2] >> 4; + midi_tx[11] = ptr[2] & 0x0F; + midi_tx[22] = ptr[1] >> 4; + midi_tx[23] = ptr[1] & 0x0F; + midi_tx[24] = ptr[0] >> 4; + midi_tx[25] = ptr[0] & 0x0F; + + // debug + //ESP_LOG_BUFFER_HEXDUMP(TAG, midi_tx, sizeof(midi_tx), ESP_LOG_INFO); + + usb_valeton_gp5_send_sysex((const uint8_t*)midi_tx, sizeof(midi_tx), 0x01); + } + else + { + ESP_LOGI(TAG, "Set Effect Block model code not found for %d %d", block_index, model); + } } /**************************************************************************** @@ -1517,16 +1681,146 @@ static void usb_valeton_gp5_set_effect_block_model_parameter(uint8_t block_index midi_tx[10] = parameter_index >> 4; midi_tx[11] = parameter_index & 0x0F; - // set parameter value - //todo - //midi_tx[xx] = - //midi_tx[xx] = + // set parameter value, big endian IEEE float value in nibbles + uint8_t float_bytes[4]; + memcpy((void*)float_bytes, (void*)&value, sizeof(value)); + + // break into 4 bit nibbles. + uint8_t index = 18; + for (uint8_t loop = 0; loop < 4; loop++) + { + midi_tx[index++] = float_bytes[loop] >> 4; + midi_tx[index++] = float_bytes[loop] & 0x0F; + } ESP_LOGI(TAG, "Set Effect Block model parameter %d %d %3.2f", block_index, parameter_index, value); usb_valeton_gp5_send_sysex((const uint8_t*)midi_tx, sizeof(midi_tx), 0x01); } +/**************************************************************************** +* NAME: +* DESCRIPTION: +* PARAMETERS: +* RETURN: +* NOTES: +*****************************************************************************/ +static void usb_valeton_gp5_set_global(uint16_t param_index, float value) +{ + uint16_t temp_val; + uint8_t midi_tx[] = {0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; + + switch (param_index) + { + case VALETON_GLOBAL_INPUT_TRIM: + { + midi_tx[3] = 1; + midi_tx[5] = 3; + } break; + + case VALETON_GLOBAL_MASTER_VOLUME: + { + midi_tx[3] = 2; + midi_tx[5] = 2; + } break; + + case VALETON_GLOBAL_CABSIM_BYPASS: + { + midi_tx[3] = 3; + midi_tx[5] = 3; + } break; + + case VALETON_GLOBAL_RECORD_LEVEL: + { + midi_tx[3] = 1; + midi_tx[5] = 4; + } break; + + case VALETON_GLOBAL_MONITOR_LEVEL: + { + midi_tx[3] = 2; + midi_tx[5] = 4; + } break; + + case VALETON_GLOBAL_BT_LEVEL: + { + midi_tx[3] = 5; + midi_tx[5] = 4; + } break; + + case VALETON_GLOBAL_BPM: // fallthrough + default: + { + ESP_LOGW(TAG, "Invalid set global %d", param_index); + return; + } break; + } + + // set the value + if (value < 0) + { + temp_val = (uint16_t)(0x100 + value); + } + else + { + temp_val = (uint16_t)value; + } + + midi_tx[10] = (uint8_t)(temp_val / 16); + midi_tx[11] = (uint8_t)(temp_val % 16); + + ESP_LOGI(TAG, "Set Global %d: %f", param_index, value); + + // debug + //ESP_LOG_BUFFER_HEXDUMP(TAG, midi_tx, sizeof(midi_tx), ESP_LOG_INFO); + + usb_valeton_gp5_send_sysex((const uint8_t*)midi_tx, sizeof(midi_tx), 0x01); + + // read back to update UI + usb_valeton_gp5_request_globals(); +} + +/**************************************************************************** +* NAME: +* DESCRIPTION: +* PARAMETERS: +* RETURN: +* NOTES: +*****************************************************************************/ +static void usb_valeton_gp5_set_patch_volume(float value) +{ + uint16_t temp_val; + uint8_t midi_tx[] = {0x04, 0x02, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; + + // set the value + if (value < 0) + { + temp_val = (uint16_t)(0x100 + value); + } + else + { + temp_val = (uint16_t)value; + } + + midi_tx[10] = (uint8_t)(temp_val / 16); + midi_tx[11] = (uint8_t)(temp_val % 16); + + ESP_LOGI(TAG, "Set Patch volume %f", value); + + // debug + //ESP_LOG_BUFFER_HEXDUMP(TAG, midi_tx, sizeof(midi_tx), ESP_LOG_INFO); + + usb_valeton_gp5_send_sysex((const uint8_t*)midi_tx, sizeof(midi_tx), 0x01); + + // if we have messages waiting in the queue, it will trigger another + // change that will overwrite this one. Skip the UI refresh to save time + if (uxQueueMessagesWaiting(input_queue) == 0) + { + // read back params to get the changed value + usb_valeton_gp5_request_preset_params(); + } +} + /**************************************************************************** * NAME: * DESCRIPTION: @@ -1572,6 +1866,87 @@ static bool usb_valeton_gp5_handle_rx(const uint8_t* data, size_t data_len, void return false; } +/**************************************************************************** +* NAME: +* DESCRIPTION: +* PARAMETERS: +* RETURN: +* NOTES: +*****************************************************************************/ +static esp_err_t usb_valeton_gp5_send_single_parameter(uint16_t index, float value) +{ + esp_err_t res = ESP_FAIL; + tModellerParameter* param_ptr = NULL; + + if (valeton_params_get_locked_access(¶m_ptr) == ESP_OK) + { + uint8_t block = param_ptr[index].Data1; + uint8_t pedal = param_ptr[index].Data2; + uint8_t param = param_ptr[index].Data3; + + valeton_params_release_locked_access(); + + if (pedal == VALETON_BLOCK_SELECTION) + { + // pedal selection within block + usb_valeton_gp5_set_effect_block_model(block, (uint8_t)value); + } + else if (pedal == VALETON_BLOCK_ENABLE) + { + // block enable + usb_valeton_gp5_set_effect_block_state(block, (uint8_t)value); + } + else + { + // regular param, send it + usb_valeton_gp5_set_effect_block_model_parameter(block, param, value); + } + + // if we have messages waiting in the queue, it will trigger another + // change that will overwrite this one. Skip the UI refresh to save time + if (uxQueueMessagesWaiting(input_queue) == 0) + { + usb_valeton_gp5_request_preset_params(); + } + + res = ESP_OK; + } + + return res; +} + +/**************************************************************************** +* NAME: +* DESCRIPTION: +* PARAMETERS: +* RETURN: +* NOTES: +*****************************************************************************/ +esp_err_t usb_valeton_gp5_modify_parameter(uint16_t index, float value) +{ + tModellerParameter* param_ptr = NULL; + esp_err_t res = ESP_FAIL; + + if (index >= VALETON_PARAM_LAST) + { + ESP_LOGE(TAG, "usb_valeton_gp5_modify_parameter invalid index %d", (int)index); + return ESP_FAIL; + } + + if (valeton_params_get_locked_access(¶m_ptr) == ESP_OK) + { + ESP_LOGI(TAG, "usb_valeton_gp5_modify_parameter index: %d name: %s value: %02f", (int)index, param_ptr[index].Name, value); + + // update the local copy + memcpy((void*)¶m_ptr[index].Value, (void*)&value, sizeof(float)); + + valeton_params_release_locked_access(); + res = ESP_OK; + } + + return res; +} + /**************************************************************************** * NAME: * DESCRIPTION: @@ -1588,21 +1963,82 @@ void usb_valeton_gp5_handle(class_driver_t* driver_obj) switch (ValetonGP5Data->State) { case COMMS_STATE_IDLE: - default: { - usb_valeton_gp5_request_preset_sync(); + usb_valeton_gp5_request_preset_sync(); #if CONFIG_TONEX_CONTROLLER_HAS_DISPLAY // show sync message UI_SetPresetLabel(0, "Syncing...."); #endif - ValetonGP5Data->State = COMMS_STATE_SYNC; + ValetonGP5Data->State = COMMS_STATE_GET_PRESET_DATA; } break; - case COMMS_STATE_SYNC: + case COMMS_STATE_GET_PRESET_DATA: { - // waiting for Sync to complete + if (BootFlags.GotPresetData) + { + ESP_LOGI(TAG, "Boot: Got preset data"); + usb_valeton_gp5_request_current_preset(); + ValetonGP5Data->State = COMMS_STATE_GET_CURRENT_PRESET; + } + } break; + + case COMMS_STATE_GET_CURRENT_PRESET: + { + if (BootFlags.GotCurrentPreset) + { + ESP_LOGI(TAG, "Boot: Got current preset"); + + // request params + usb_valeton_gp5_request_preset_params(); + ValetonGP5Data->State = COMMS_STATE_GET_CURRENT_PRESET_PARAMS; + } + } break; + + case COMMS_STATE_GET_CURRENT_PRESET_PARAMS: + { + if (BootFlags.GotCurrentPresetParams) + { + ESP_LOGI(TAG, "Boot: Got preset params"); + usb_valeton_gp5_request_globals(); + ValetonGP5Data->State = COMMS_STATE_GET_GLOBALS; + } + } break; + + case COMMS_STATE_GET_GLOBALS: + { + if (BootFlags.GotGlobals) + { + ESP_LOGI(TAG, "Boot: Got globals"); + usb_valeton_gp5_request_nams(); + ValetonGP5Data->State = COMMS_STATE_GET_SNAPTONES; + } + } break; + + case COMMS_STATE_GET_SNAPTONES: + { + if (BootFlags.GotSnaptones) + { + ESP_LOGI(TAG, "Boot: Got Snaptones"); + //bug to fix usb_valeton_gp5_request_ir(); + ValetonGP5Data->State = COMMS_STATE_GET_IR; + } + } break; + + case COMMS_STATE_GET_IR: + { + if (1) // issue here to be fixed BootFlags.GotIRs) + { + ESP_LOGI(TAG, "Boot: Got IRs"); + + // update UI + usb_valeton_gp5_request_ui_update(); + + control_set_sync_complete(); + ValetonGP5Data->State = COMMS_STATE_READY; + ESP_LOGI(TAG, "Boot: Ready"); + } } break; case COMMS_STATE_READY: @@ -1664,11 +2100,48 @@ void usb_valeton_gp5_handle(class_driver_t* driver_obj) { if (message.Payload < VALETON_PARAM_LAST) { - // modify param + if (message.Payload == VALETON_PARAM_PATCH_VOLUME) + { + // special case for patch vol + usb_valeton_gp5_set_patch_volume(message.PayloadFloat); + } + else + { + // modify param + usb_valeton_gp5_modify_parameter(message.Payload, message.PayloadFloat); + + // send it + usb_valeton_gp5_send_single_parameter(message.Payload, message.PayloadFloat); + } } else if (message.Payload < VALETON_GLOBAL_LAST) { - // modify the global + if (message.Payload == VALETON_GLOBAL_BPM) + { + // BPM is a virtual parameter. Convert bpm to msec + float delay_time = 60000.0f / message.PayloadFloat; + if (delay_time > 1000.0f) + { + delay_time= 1000.0f; + } + + // adjust delay time + usb_valeton_gp5_modify_parameter(VALETON_PARAM_DLY_PARAM_1, delay_time); + usb_valeton_gp5_send_single_parameter(VALETON_PARAM_DLY_PARAM_1, delay_time); + + // save the value + tModellerParameter* param_ptr = NULL; + if (valeton_params_get_locked_access(¶m_ptr) == ESP_OK) + { + param_ptr[VALETON_GLOBAL_BPM].Value = message.PayloadFloat; + valeton_params_release_locked_access(); + } + } + else + { + // modify the global + usb_valeton_gp5_set_global(message.Payload, message.PayloadFloat); + } } else { @@ -1765,6 +2238,7 @@ void usb_valeton_gp5_init(class_driver_t* driver_obj, QueueHandle_t comms_queue) } memset((void*)ValetonGP5Data, 0, sizeof(tValetonGP5Data)); + memset((void*)&BootFlags, 0, sizeof(BootFlags)); ValetonGP5Data->State = COMMS_STATE_IDLE; // install Midi host driver @@ -1785,7 +2259,7 @@ void usb_valeton_gp5_init(class_driver_t* driver_obj, QueueHandle_t comms_queue) tonex_common_release_memory(); // let the pedal boot up - vTaskDelay(pdMS_TO_TICKS(1000)); + vTaskDelay(pdMS_TO_TICKS(200)); // open it ESP_ERROR_CHECK(midi_host_open(VALETON_USB_VENDOR, VALETON_GP5_PRODUCT_ID, VALETON_GP5_MIDI_INTERFACE_INDEX, &dev_config, &midi_dev)); diff --git a/source/main/valeton_params.c b/source/main/valeton_params.c index 20e0fcf7..a64e99fd 100644 --- a/source/main/valeton_params.c +++ b/source/main/valeton_params.c @@ -41,245 +41,156 @@ static SemaphoreHandle_t ParamMutex; //MODELLER_PARAM_TYPE_SWITCH // MODELLER_PARAM_TYPE_RANGE // "value" below is just a default, is overridden by the preset on load +// Data1 = block +// Data2 +// Data3 static tModellerParameter ValetonParameters[VALETON_GLOBAL_LAST] = { - //value, Min, Max, Name Type - {0, 0, 1, "NG EN", MODELLER_PARAM_TYPE_SWITCH}, //VALETON_PARAM_NR_ENABLE - {0, 0, 100, "NG THRESH", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_NR_THRESHOLD + //value, Min, Max, Name Type Data1 Data2 Data 3 + // Block Enables + {0, 0, 1, "NG EN", MODELLER_PARAM_TYPE_SWITCH, VALETON_EFFECT_BLOCK_NR, VALETON_BLOCK_ENABLE, 0}, //VALETON_PARAM_NR_ENABLE + {0, 0, 1, "PRE EN", MODELLER_PARAM_TYPE_SWITCH, VALETON_EFFECT_BLOCK_PRE, VALETON_BLOCK_ENABLE, 0}, //VALETON_PARAM_PRE_ENABLE, + {0, 0, 1, "DST EN", MODELLER_PARAM_TYPE_SWITCH, VALETON_EFFECT_BLOCK_DST, VALETON_BLOCK_ENABLE, 0}, //VALETON_PARAM_DIST_ENABLE, + {0, 0, 1, "AMP EN", MODELLER_PARAM_TYPE_SWITCH, VALETON_EFFECT_BLOCK_AMP, VALETON_BLOCK_ENABLE, 0}, //VALETON_PARAM_AMP_ENABLE + {0, 0, 1, "CAB EN", MODELLER_PARAM_TYPE_SWITCH, VALETON_EFFECT_BLOCK_CAB, VALETON_BLOCK_ENABLE, 0}, //VALETON_PARAM_CAB_ENABLE + {0, 0, 1, "EQ EN", MODELLER_PARAM_TYPE_SWITCH, VALETON_EFFECT_BLOCK_EQ, VALETON_BLOCK_ENABLE, 0}, //VALETON_PARAM_EQ_ENABLE, + {0, 0, 1, "MOD EN", MODELLER_PARAM_TYPE_SWITCH, VALETON_EFFECT_BLOCK_MOD, VALETON_BLOCK_ENABLE, 0}, // VALETON_PARAM_MOD_ENABLE, + {0, 0, 1, "DLY EN", MODELLER_PARAM_TYPE_SWITCH, VALETON_EFFECT_BLOCK_DLY, VALETON_BLOCK_ENABLE, 0}, // VALETON_PARAM_DLY_ENABLE, + {0, 0, 1, "RVB EN", MODELLER_PARAM_TYPE_SWITCH, VALETON_EFFECT_BLOCK_RVB, VALETON_BLOCK_ENABLE, 0}, // VALETON_PARAM_RVB_ENABLE, + {0, 0, 1, "NS EN", MODELLER_PARAM_TYPE_SWITCH, VALETON_EFFECT_BLOCK_NS, VALETON_BLOCK_ENABLE, 0}, //VALETON_PARAM_NS_ENABLE - {0, 0, 1, "PRE EN", MODELLER_PARAM_TYPE_SWITCH}, //VALETON_PARAM_PRE_ENABLE, - {0, VALETON_EFFECT_PRE_COMP, VALETON_EFFECT_PRE_DETUNE, "PRE TP", MODELLER_PARAM_TYPE_SELECT}, //VALETON_PARAM_PRE_TYPE, - {0, 0, 100, "PRE COS", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_PRE_COMP_SUSTAIN, - {0, 0, 100, "PRE COV", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_PRE_COMP_VOL, - {0, 0, 100, "PRE C4S", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_PRE_COMP4_SUSTAIN, - {0, 0, 100, "PRE C4A", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_PRE_COMP4_ATTACK, - {0, 0, 100, "PRE C4V", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_PRE_COMP4_VOL, - {0, 0, 100, "PRE C4C", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_PRE_COMP4_CLIP, - {0, 0, 100, "PRE BG", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_PRE_BOOST_GAIN, - {0, 0, 1, "PRE B3S", MODELLER_PARAM_TYPE_SWITCH}, //VALETON_PARAM_PRE_BOOST_3DB, - {0, 0, 1, "PRE BBR", MODELLER_PARAM_TYPE_SWITCH}, //VALETON_PARAM_PRE_BOOST_BRIGHT, - {0, 0, 100, "PRE MBG", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_PRE_MICRO_BOOST_GAIN, - {0, 0, 100, "PRE BBG", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_PRE_B_BOOST_GAIN, - {0, 0, 100, "PRE BBV", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_PRE_B_BOOST_VOL, - {0, 0, 100, "PRE BBB", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_PRE_B_BOOST_BASS, - {0, 0, 100, "PRE BBT", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_PRE_B_BOOST_TREBLE, - {0, 0, 100, "PRE TOS", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_PRE_TOUCHER_SENSE, - {0, 0, 100, "PRE TOR", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_PRE_TOUCHER_RANGE, - {0, 0, 100, "PRE TOQ", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_PRE_TOUCHER_Q, - {0, 0, 100, "PRE TOM", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_PRE_TOUCHER_MIX, - {0, 0, 1, "PRE TOO", MODELLER_PARAM_TYPE_SWITCH}, //VALETON_PARAM_PRE_TOUCHER_MODE - {0, 0, 100, "PRE CRD", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_PRE_CRIER_DEPTH, - {0, 0, 100, "PRE CRR", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_PRE_CRIER_RATE, - {0, 0, 100, "PRE CRV", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_PRE_CRIER_VOL, - {0, 0, 100, "PRE CRL", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_PRE_CRIER_LOW, - {0, 0, 100, "PRE CRQ", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_PRE_CRIER_Q, - {0, 0, 100, "PRE OCL", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_PRE_OCTA_LOW, - {0, 0, 100, "PRE OCH", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_PRE_OCTA_HIGH, - {0, 0, 100, "PRE OCD", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_PRE_OCTA_DRY, - {0, 0, 100, "PRE PIH", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_PRE_PITCH_HIGH, - {0, 0, 100, "PRE PIL", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_PRE_PITCH_LOW, - {0, 0, 100, "PRE PID", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_PRE_PITCH_DRY, - {0, 0, 100, "PRE PIHV", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_PRE_PITCH_H_VOL, - {0, 0, 100, "PRE PILV", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_PRE_PITCH_L_VOL, - {0, -50, 50, "PRE DED", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_PRE_DETUNE_DETUNE, - {0, 0, 100, "PRE DEW", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_PRE_DETUNE_WET, - {0, 0, 100, "PRE DER", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_PRE_DETUNE_DRY, + // effect block selections + {0, 0, 1, "NR TP", MODELLER_PARAM_TYPE_SELECT, VALETON_EFFECT_BLOCK_NR, VALETON_BLOCK_SELECTION, 0}, //VALETON_PARAM_NR_TYPE, + {0, VALETON_EFFECT_PRE_COMP, VALETON_EFFECT_PRE_DETUNE, "PRE TP", MODELLER_PARAM_TYPE_SELECT, VALETON_EFFECT_BLOCK_PRE, VALETON_BLOCK_SELECTION, 0}, //VALETON_PARAM_PRE_TYPE, + {0, VALETON_EFFECT_DIST_GREEN_OD,VALETON_EFFECT_DIST_BASS_OD,"DST TP", MODELLER_PARAM_TYPE_SELECT, VALETON_EFFECT_BLOCK_DST, VALETON_BLOCK_SELECTION, 0}, //VALETON_PARAM_DIST_TYPE + {0, VALETON_EFFECT_AMP_TWEEDY, VALETON_EFFECT_AMP_AC_PRE2, "AMP TP", MODELLER_PARAM_TYPE_SELECT, VALETON_EFFECT_BLOCK_AMP, VALETON_BLOCK_SELECTION, 0}, //VALETON_PARAM_AMP_TYPE + {0, VALETON_EFFECT_CAB_TWD_CP, VALETON_EFFECT_CAB_AMPG_4X10,"CAB TP", MODELLER_PARAM_TYPE_SELECT, VALETON_EFFECT_BLOCK_CAB, VALETON_BLOCK_SELECTION, 0}, //VALETON_PARAM_CAB_TYPE + {0, VALETON_EFFECT_EQ_GUITAR_EQ1, VALETON_EFFECT_EQ_MESS_EQ,"EQ TP", MODELLER_PARAM_TYPE_SELECT, VALETON_EFFECT_BLOCK_EQ, VALETON_BLOCK_SELECTION, 0}, //VALETON_PARAM_EQ_TYPE + {0, VALETON_EFFECT_MOD_A_CHORUS, VALETON_EFFECT_MOD_BIAS_TREM,"MOD TP", MODELLER_PARAM_TYPE_SELECT,VALETON_EFFECT_BLOCK_MOD, VALETON_BLOCK_SELECTION, 0}, //VALETON_PARAM_MOD_TYPE, + {0, VALETON_EFFECT_DLY_PURE, VALETON_EFFECT_DLY_PING_PONG,"DL TP", MODELLER_PARAM_TYPE_SELECT, VALETON_EFFECT_BLOCK_DLY, VALETON_BLOCK_SELECTION, 0}, //VALETON_PARAM_DLY_TYPE, + {0, VALETON_EFFECT_RVB_AIR, VALETON_EFFECT_RVB_SWEET_SPACE, "RVB TP", MODELLER_PARAM_TYPE_SELECT, VALETON_EFFECT_BLOCK_RVB, VALETON_BLOCK_SELECTION, 0}, //VALETON_PARAM_RVB_TYPE, + {0, 0, 1, "NS TP", MODELLER_PARAM_TYPE_SELECT, VALETON_EFFECT_BLOCK_NS, VALETON_BLOCK_SELECTION, 0}, //VALETON_PARAM_NS_TYPE + + // general + {0, 0, 100, "PVOL", MODELLER_PARAM_TYPE_RANGE, 0, 0, 0}, //VALETON_PARAM_PATCH_VOLUME + {0, 0, 10, "ESL0", MODELLER_PARAM_TYPE_RANGE, 0, 0, 0}, //VALETON_PARAM_EFFECT_SLOT_0 + {0, 0, 10, "ESL1", MODELLER_PARAM_TYPE_RANGE, 0, 0, 0}, //VALETON_PARAM_EFFECT_SLOT_1 + {0, 0, 10, "ESL2", MODELLER_PARAM_TYPE_RANGE, 0, 0, 0}, //VALETON_PARAM_EFFECT_SLOT_2 + {0, 0, 10, "ESL3", MODELLER_PARAM_TYPE_RANGE, 0, 0, 0}, //VALETON_PARAM_EFFECT_SLOT_3 + {0, 0, 10, "ESL4", MODELLER_PARAM_TYPE_RANGE, 0, 0, 0}, //VALETON_PARAM_EFFECT_SLOT_4 + {0, 0, 10, "ESL5", MODELLER_PARAM_TYPE_RANGE, 0, 0, 0}, //VALETON_PARAM_EFFECT_SLOT_5 + {0, 0, 10, "ESL6", MODELLER_PARAM_TYPE_RANGE, 0, 0, 0}, //VALETON_PARAM_EFFECT_SLOT_6 + {0, 0, 10, "ESL7", MODELLER_PARAM_TYPE_RANGE, 0, 0, 0}, //VALETON_PARAM_EFFECT_SLOT_7 + {0, 0, 10, "ESL8", MODELLER_PARAM_TYPE_RANGE, 0, 0, 0}, //VALETON_PARAM_EFFECT_SLOT_8 + {0, 0, 10, "ESL9", MODELLER_PARAM_TYPE_RANGE, 0, 0, 0}, //VALETON_PARAM_EFFECT_SLOT_9 + + // effect params + {0, 0, 100, "NR 0", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_NR, 0, 0}, //VALETON_PARAM_NR_PARAM_0 + {0, 0, 100, "NR 1", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_NR, 0, 1}, //VALETON_PARAM_NR_PARAM_1 + {0, 0, 100, "NR 2", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_NR, 0, 2}, //VALETON_PARAM_NR_PARAM_2 + {0, 0, 100, "NR 3", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_NR, 0, 3}, //VALETON_PARAM_NR_PARAM_3 + {0, 0, 100, "NR 4", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_NR, 0, 4}, //VALETON_PARAM_NR_PARAM_4 + {0, 0, 100, "NR 5", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_NR, 0, 5}, //VALETON_PARAM_NR_PARAM_5 + {0, 0, 100, "NR 6", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_NR, 0, 6}, //VALETON_PARAM_NR_PARAM_6 + {0, 0, 100, "NR 7", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_NR, 0, 7}, //VALETON_PARAM_NR_PARAM_7 - {0, 0, 1, "DST EN", MODELLER_PARAM_TYPE_SWITCH}, //VALETON_PARAM_DIST_ENABLE, - {0, VALETON_EFFECT_DIST_GREEN_OD,VALETON_EFFECT_DIST_BASS_OD,"DST TP", MODELLER_PARAM_TYPE_SELECT}, //VALETON_PARAM_DIST_TYPE - {0, 0, 100, "DST GRG", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_DIST_GREEN_OD_GAIN, - {0, 0, 100, "DST GRT", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_DIST_GREEN_OD_TONE, - {0, 0, 100, "DST GRV", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_DIST_GREEN_OD_VOL, - {0, 0, 100, "DST YEG", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_DIST_YELLOW_OD_GAIN, - {0, 0, 100, "DST YEV", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_DIST_YELLOW_OD_VOL, - {0, 0, 100, "DST SUG", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_DIST_SUPER_OD_GAIN, - {0, 0, 100, "DST SUT", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_DIST_SUPER_OD_TONE, - {0, 0, 100, "DST SUV", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_DIST_SUPER_OD_VOL, - {0, 0, 100, "DST SMG", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_DIST_SM_DIST_GAIN, - {0, 0, 100, "DST SMT", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_DIST_SM_DIST_TONE, - {0, 0, 100, "DST SMV", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_DIST_SM_DIST_VOL, - {0, 0, 100, "DST PLG", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_DIST_PLUSTORTION_GAIN, - {0, 0, 100, "DST PLV", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_DIST_PLUSTORTION_VOL, - {0, 0, 100, "DST LAG", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_DIST_LA_CHARGER_GAIN, - {0, 0, 100, "DST LAT", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_DIST_LA_CHARGER_TONE, - {0, 0, 100, "DST LAV", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_DIST_LA_CHARGER_VOL, - {0, 0, 100, "DST DKG", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_DIST_DARKTALE_GAIN, - {0, 0, 100, "DST DKF", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_DIST_DARKTALE_FILTER, - {0, 0, 100, "DST DKV", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_DIST_DARKTALE_VOL, - {0, 0, 100, "DST SOF", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_DIST_SORA_FUZZ_FUZZ, - {0, 0, 100, "DST SOV", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_DIST_SORA_FUZZ_VOL, - {0, 0, 100, "DST RHF", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_DIST_RED_HAZE_FUZZ, - {0, 0, 100, "DST RHV", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_DIST_RED_HAZE_VOL, - {0, 0, 100, "DST BOG", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_DIST_BASS_OD_GAIN, - {0, 0, 100, "DST BOB", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_DIST_BASS_OD_BLEND, - {0, 0, 100, "DST BOV", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_DIST_BASS_OD_VOL, - {0, 0, 100, "DST BOA", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_DIST_BASS_OD_BASS, - {0, 0, 100, "DST BOT", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_DIST_BASS_OD_TREBLE, - - {0, 0, 1, "EQ EN", MODELLER_PARAM_TYPE_SWITCH}, //VALETON_PARAM_EQ_ENABLE, - {0, VALETON_EFFECT_EQ_GUITAR_EQ1, VALETON_EFFECT_EQ_MESS_EQ,"EQ TP", MODELLER_PARAM_TYPE_SELECT}, //VALETON_PARAM_EQ_TYPE - {0, 0, 100, "EQ G11", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_EQ_GUITAR_EQ1_125HZ, - {0, 0, 100, "EQ G14", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_EQ_GUITAR_EQ1_400HZ, - {0, 0, 100, "EQ G18", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_EQ_GUITAR_EQ1_800HZ, - {0, 0, 100, "EQ G16", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_EQ_GUITAR_EQ1_1600HZ, - {0, 0, 100, "EQ G10", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_EQ_GUITAR_EQ1_4000HZ, - {0, 0, 100, "EQ G1V", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_EQ_GUITAR_EQ1_VOL, - {0, 0, 100, "EQ G21", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_EQ_GUITAR_EQ2_100HZ, - {0, 0, 100, "EQ G25", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_EQ_GUITAR_EQ2_500HZ, - {0, 0, 100, "EQ G20", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_EQ_GUITAR_EQ2_1000HZ, - {0, 0, 100, "EQ G23", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_EQ_GUITAR_EQ2_3000HZ, - {0, 0, 100, "EQ G26", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_EQ_GUITAR_EQ2_6000HZ, - {0, 0, 100, "EQ G2V", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_EQ_GUITAR_EQ2_VOL, - {0, 0, 100, "EQ B13", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_EQ_BASS_EQ1_33HZ, - {0, 0, 100, "EQ B11", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_EQ_BASS_EQ1_150HZ, - {0, 0, 100, "EQ B16", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_EQ_BASS_EQ1_600HZ, - {0, 0, 100, "EQ B12", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_EQ_BASS_EQ1_2000HZ, - {0, 0, 100, "EQ B18", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_EQ_BASS_EQ1_8000HZ, - {0, 0, 100, "EQ B1V", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_EQ_BASS_EQ1_VOL, - {0, 0, 100, "EQ B25", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_EQ_BASS_EQ2_50HZ, - {0, 0, 100, "EQ B21", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_EQ_BASS_EQ2_120HZ, - {0, 0, 100, "EQ B24", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_EQ_BASS_EQ2_400HZ, - {0, 0, 100, "EQ B28", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_EQ_BASS_EQ2_800HZ, - {0, 0, 100, "EQ B25", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_EQ_BASS_EQ2_4500HZ, - {0, 0, 100, "EQ B2V", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_EQ_BASS_EQ2_VOL, - {0, 0, 100, "EQ ME8", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_EQ_MESS_EQ_80HZ, - {0, 0, 100, "EQ ME2", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_EQ_MESS_EQ_240HZ, - {0, 0, 100, "EQ ME7", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_EQ_MESS_EQ_750HZ, - {0, 0, 100, "EQ ME0", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_EQ_MESS_EQ_2200HZ, - {0, 0, 100, "EQ ME6", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_EQ_MESS_EQ_6600HZ, - - {0, 0, 1, "MOD EN", MODELLER_PARAM_TYPE_SWITCH}, // VALETON_PARAM_MOD_ENABLE, - {0, VALETON_EFFECT_MOD_A_CHORUS, VALETON_EFFECT_MOD_BIAS_TREM,"MOD TP", MODELLER_PARAM_TYPE_SELECT}, //VALETON_PARAM_MOD_TYPE, - {0, 0, 100, "MOD ACD", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_MOD_A_CHORUS_DEPTH, - {0, 0, 10, "MOD ACR", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_MOD_A_CHORUS_RATE, - {0, 0, 100, "MOD ACT", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_MOD_A_CHORUS_TONE, - {0, 0, 100, "MOD BCD", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_MOD_B_CHORUS_DEPTH, - {0, 0, 10, "MOD BCR", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_MOD_B_CHORUS_RATE, - {0, 0, 100, "MOD BCV", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_MOD_B_CHORUS_VOL, - {0, 0, 100, "MOD JED", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_MOD_JET_DEPTH, - {0, 0, 10, "MOD JER", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_MOD_JET_RATE, - {0, 0, 100, "MOD JEP", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_MOD_JET_PDELAY, - {0, 0, 100, "MOD JEF", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_MOD_JET_FBACK, - {0, 0, 100, "MOD NJD", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_MOD_N_JET_DEPTH, - {0, 0, 10, "MOD NJR", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_MOD_N_JET_RATE, - {0, 0, 100, "MOD NJP", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_MOD_N_JET_PDELAY, - {0, 0, 100, "MOD NJF", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_MOD_N_JET_FBACK, - {0, 0, 10, "MOD OPR", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_MOD_O_PHASE_RATE, - {0, 0, 100, "MOD MVD", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_MOD_M_VIBE_DEPTH, - {0, 0, 10, "MOD MVR", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_MOD_M_VIBE_RATE, - {0, 0, 100, "MOD VRD", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_MOD_V_ROTO_DEPTH, - {0, 0, 10, "MOD VRR", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_MOD_V_ROTO_RATE, - {0, 0, 100, "MOD VID", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_MOD_VIBRATO_DEPTH, - {0, 0, 10, "MOD VIR", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_MOD_VIBRATO_RATE, - {0, 0, 100, "MOD VIV", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_MOD_VIBRATO_VOL, - {0, 0, 100, "MOD OTD", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_OD_O_TREM_DEPTH, - {0, 0, 10, "MOD OTR", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_OD_O_TREM_RATE, - {0, 0, 100, "MOD SID", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_MOD_SINE_TREM_DEPTH, - {0, 0, 10, "MOD SIR", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_MOD_SINE_TREM_RATE, - {0, 0, 100, "MOD SIV", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_MOD_SINE_TREM_VOL, - {0, 0, 100, "MOD ODD", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_OD_BIAS_TREM_DEPTH, - {0, 0, 10, "MOD ODR", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_OD_BIAS_TREM_RATE, - {0, 0, 100, "MOD ODV", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_OD_BIAS_TREM_VOL, - {0, 0, 100, "MOD ODB", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_OD_BIAS_TREM_BIAS, - - {0, 0, 1, "DLY EN", MODELLER_PARAM_TYPE_SWITCH}, // VALETON_PARAM_DLY_ENABLE, - {0, VALETON_EFFECT_DLY_PURE, VALETON_EFFECT_DLY_PING_PONG,"DL TP", MODELLER_PARAM_TYPE_SELECT}, //VALETON_PARAM_DLY_TYPE, - {0, 0, 100, "DLY PUM", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_DLY_PURE_MIX, - {0, 0, 1000, "DLY PUT", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_DLY_PURE_TIME, - {0, 0, 100, "DLY PUF", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_DLY_PURE_FEEDBACK, - {0, 0, 1, "DLY PUT", MODELLER_PARAM_TYPE_SWITCH}, // VALETON_PARAM_DLY_PURE_TRAIL, - {0, 0, 100, "DLY ANM", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_DLY_ANALOG_MIX, - {0, 0, 1000, "DLY ANT", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_DLY_ANALOG_TIME, - {0, 0, 100, "DLY ANF", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_DLY_ANALOG_FEEDBACK, - {0, 0, 1, "DLY ANT", MODELLER_PARAM_TYPE_SWITCH}, // VALETON_PARAM_DLY_ANALOG_TRAIL, - {0, 0, 100, "DLY SLM", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_DLY_SLAPBACK_MIX, - {0, 0, 1000, "DLY SLT", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_DLY_SLAPBACK_TIME, - {0, 0, 100, "DLY SLF", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_DLY_SLAPBACK_FEEDBACK, - {0, 0, 1, "DLY STT", MODELLER_PARAM_TYPE_SWITCH}, // VALETON_PARAM_DLY_SLAPBACK_TRAIL, - {0, 0, 100, "DLY SEM", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_DLY_SWEET_ECHO_MIX, - {0, 0, 1000, "DLY SET", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_DLY_SWEET_ECHO_TIME, - {0, 0, 100, "DLY SEF", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_DLY_SWEET_ECHO_FEEDBACK, - {0, 0, 1, "DLY SET", MODELLER_PARAM_TYPE_SWITCH}, // VALETON_PARAM_DLY_SWEET_ECHO_TRAIL, - {0, 0, 100, "DLY TPM", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_DLY_TAPE_MIX, - {0, 0, 1000, "DLY TPT", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_DLY_TAPE_TIME, - {0, 0, 100, "DLY TPF", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_DLY_TAPE_FEEDBACK, - {0, 0, 1, "DLY TPT", MODELLER_PARAM_TYPE_SWITCH}, // VALETON_PARAM_DLY_TAPE_TRAIL, - {0, 0, 100, "DLY TUM", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_DLY_TUBE_MIX, - {0, 0, 1000, "DLY TUT", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_DLY_TUBE_TIME, - {0, 0, 100, "DLY TUF", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_DLY_TUBE_FEEDBACK, - {0, 0, 1, "DLY TUT", MODELLER_PARAM_TYPE_SWITCH}, // VALETON_PARAM_DLY_TUBE_TRAIL, - {0, 0, 100, "DLY ECM", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_DLY_REV_ECHO_MIX, - {0, 0, 1000, "DLY ECT", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_DLY_REV_ECHO_TIME, - {0, 0, 100, "DLY ECF", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_DLY_REV_ECHO_FEEDBACK, - {0, 0, 1, "DLY ECT", MODELLER_PARAM_TYPE_SWITCH}, // VALETON_PARAM_DLY_REV_ECHO_TRAIL, - {0, 0, 100, "DLY REM", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_DLY_RING_ECHO_MIX, - {0, 0, 1000, "DLY REI", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_DLY_RING_ECHO_TIME, - {0, 0, 100, "DLY REF", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_DLY_RING_ECHO_FEEDBACK, - {0, 0, 100, "DLY REM", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_DLY_RING_ECHO_R_MIX, - {0, 0, 100, "DLY REF", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_DLY_RING_ECHO_FREQ, - {0, 0, 100, "DLY REN", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_DLY_RING_ECHO_TONE, - {0, 0, 1, "DLY RET", MODELLER_PARAM_TYPE_SWITCH}, // VALETON_PARAM_DLY_RING_ECHO_TRAIL, - {0, 0, 100, "DLY SEM", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_DLY_SWEEP_ECHO_MIX, - {0, 0, 1000, "DLY SET", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_DLY_SWEEP_ECHO_TIME, - {0, 0, 100, "DLY SEF", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_DLY_SWEEP_ECHO_FBACK, - {0, 0, 100, "DLY SES", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_DLY_SWEEP_ECHO_S_DEPTH, - {0, 0, 100, "DLY SER", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_DLY_SWEEP_ECHO_S_RATE, - {0, 0, 1, "DLY SET", MODELLER_PARAM_TYPE_SWITCH}, // VALETON_PARAM_DLY_SWEEP_ECHO_TRAIL, - {0, 0, 100, "DLY PPM", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_DLY_PING_PONG_MIX, - {0, 0, 1000, "DLY PPI", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_DLY_PING_PONG_TIME, - {0, 0, 100, "DLY PPF", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_DLY_PING_PONG_FEEDBACK, - {0, 0, 1, "DLY PPT", MODELLER_PARAM_TYPE_SWITCH}, // VALETON_PARAM_DLY_PING_PONG_TRAIL, - - {0, 0, 1, "RVB EN", MODELLER_PARAM_TYPE_SWITCH}, // VALETON_PARAM_RVB_ENABLE, - {0, VALETON_EFFECT_RVB_AIR, VALETON_EFFECT_RVB_SWEET_SPACE, "RVB TP", MODELLER_PARAM_TYPE_SELECT}, //VALETON_PARAM_RVB_TYPE, - {0, 0, 100, "RVB AIM", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_RVB_AIR_MIX, - {0, 0, 100, "RVB AID", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_RVB_AIR_DECAY, - {0, 0, 100, "RVB AID", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_RVB_AIR_DAMP, - {0, 0, 1, "RVB AIT", MODELLER_PARAM_TYPE_SWITCH}, //VALETON_PARAM_RVB_AIR_TRAIL, - {0, 0, 100, "RVB RMT", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_RVB_ROOM_MIX, - {0, 0, 100, "RVB RMD", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_RVB_ROOM_DECAY, - {0, 0, 1, "RVB RMT", MODELLER_PARAM_TYPE_SWITCH}, //VALETON_PARAM_RVB_ROOM_TRAIL, - {0, 0, 100, "RVB HAM", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_RVB_HALL_MIX, - {0, 0, 100, "RVB HAD", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_RVB_HALL_DECAY, - {0, 0, 1, "RVB HAT", MODELLER_PARAM_TYPE_SWITCH}, //VALETON_PARAM_RVB_HALL_TRAIL, - {0, 0, 100, "RVB CHM", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_RVB_CHURCH_MIX, - {0, 0, 100, "RVB CHD", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_RVB_CHURCH_DECAY, - {0, 0, 1, "RVB CHT", MODELLER_PARAM_TYPE_SWITCH}, //VALETON_PARAM_RVB_CHURCH_TRAIL, - {0, 0, 100, "RVB P1M", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_RVB_PLATE_L_MIX, - {0, 0, 100, "RVB P1D", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_RVB_PLATE_L_DECAY, - {0, 0, 1, "RVB P1T", MODELLER_PARAM_TYPE_SWITCH}, //VALETON_PARAM_RVB_PLATE_L_TRAIL, - {0, 0, 100, "RVB PLM", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_RVB_PLATE_MIX, - {0, 0, 100, "RVB PLD", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_RVB_PLATE_DECAY, - {0, 0, 100, "RVB PLR", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_RVB_PLATE_DAMP, - {0, 0, 1, "RVB PLT", MODELLER_PARAM_TYPE_SWITCH}, //VALETON_PARAM_RVB_PLATE_TRAIL, - {0, 0, 100, "RVB SPM", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_RVB_SPRING_MIX, - {0, 0, 100, "RVB SPD", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_RVB_SPRING_DECAY, - {0, 0, 1, "RVB ST", MODELLER_PARAM_TYPE_SWITCH}, //VALETON_PARAM_RVB_SPRING_TRAIL, - {0, 0, 100, "RVB NSM", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_RVB_N_STAR_MIX, - {0, 0, 100, "RVB NSD", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_RVB_N_STAR_DECAY, - {0, 0, 1, "RVB NST", MODELLER_PARAM_TYPE_SWITCH}, //VALETON_PARAM_RVB_N_STAR_TRAIL, - {0, 0, 100, "RVB DSM", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_RVB_DEEPSEA_MIX, - {0, 0, 100, "RVB DSD", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_RVB_DEEPSEA_DECAY, - {0, 0, 1, "RVB DST", MODELLER_PARAM_TYPE_SWITCH}, //VALETON_PARAM_RVB_DEEPSEA_TRAIL, - {0, 0, 100, "RVB SPM", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_RVB_SWEET_SPACE_MIX, - {0, 0, 100, "RVB SPD", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_RVB_SWEET_SPACE_DECAY, - {0, 0, 100, "RVB SPA", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_RVB_SWEET_SPACE_DAMP, - {0, 0, 100, "RVB SPO", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_RVB_SWEET_SPACE_MOD, - {0, 0, 1, "RVB SPT", MODELLER_PARAM_TYPE_SWITCH}, //VALETON_PARAM_RVB_SWEET_SPACE_TRAIL, + {0, 0, 100, "PRE 0", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_PRE, 0, 0}, //VALETON_PARAM_PRE_PARAM_0, + {0, 0, 100, "PRE 1", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_PRE, 0, 1}, //VALETON_PARAM_PRE_PARAM_1, + {0, 0, 100, "PRE 2", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_PRE, 0, 2}, //VALETON_PARAM_PRE_PARAM_2, + {0, 0, 100, "PRE 3", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_PRE, 0, 3}, //VALETON_PARAM_PRE_PARAM_3, + {0, 0, 100, "PRE 4", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_PRE, 0, 4}, //VALETON_PARAM_PRE_PARAM_4, + {0, 0, 100, "PRE 5", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_PRE, 0, 5}, //VALETON_PARAM_PRE_PARAM_5, + {0, 0, 100, "PRE 6", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_PRE, 0, 6}, //VALETON_PARAM_PRE_PARAM_6, + {0, 0, 100, "PRE 7", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_PRE, 0, 7}, //VALETON_PARAM_PRE_PARAM_7, + + {0, 0, 100, "DST 0", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_DST, 0, 0}, //VALETON_PARAM_DIST_PARAM_0, + {0, 0, 100, "DST 1", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_DST, 0, 1}, //VALETON_PARAM_DIST_PARAM_1, + {0, 0, 100, "DST 2", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_DST, 0, 2}, //VALETON_PARAM_DIST_PARAM_2, + {0, 0, 100, "DST 3", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_DST, 0, 3}, //VALETON_PARAM_DIST_PARAM_3, + {0, 0, 100, "DST 4", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_DST, 0, 4}, //VALETON_PARAM_DIST_PARAM_4, + {0, 0, 100, "DST 5", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_DST, 0, 5}, //VALETON_PARAM_DIST_PARAM_5, + {0, 0, 100, "DST 6", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_DST, 0, 6}, //VALETON_PARAM_DIST_PARAM_6, + {0, 0, 100, "DST 7", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_DST, 0, 7}, //VALETON_PARAM_DIST_PARAM_7, + + {0, 0, 100, "AMP 0", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_AMP, 0, 0}, //VALETON_PARAM_AMP_PARAM_0, + {0, 0, 100, "AMP 1", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_AMP, 0, 1}, //VALETON_PARAM_AMP_PARAM_1, + {0, 0, 100, "AMP 2", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_AMP, 0, 2}, //VALETON_PARAM_AMP_PARAM_2, + {0, 0, 100, "AMP 3", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_AMP, 0, 3}, //VALETON_PARAM_AMP_PARAM_3, + {0, 0, 100, "AMP 4", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_AMP, 0, 4}, //VALETON_PARAM_AMP_PARAM_4, + {0, 0, 100, "AMP 5", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_AMP, 0, 5}, //VALETON_PARAM_AMP_PARAM_5, + {0, 0, 100, "AMP 6", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_AMP, 0, 6}, //VALETON_PARAM_AMP_PARAM_6, + {0, 0, 100, "AMP 7", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_AMP, 0, 7}, //VALETON_PARAM_AMP_PARAM_7, + + {0, 0, 100, "CAB 0", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_CAB, 0, 0}, //VALETON_PARAM_CAB_PARAM_0, + {0, 0, 100, "CAB 1", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_CAB, 0, 1}, //VALETON_PARAM_CAB_PARAM_1, + {0, 0, 100, "CAB 2", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_CAB, 0, 2}, //VALETON_PARAM_CAB_PARAM_2, + {0, 0, 100, "CAB 3", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_CAB, 0, 3}, //VALETON_PARAM_CAB_PARAM_3, + {0, 0, 100, "CAB 4", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_CAB, 0, 4}, //VALETON_PARAM_CAB_PARAM_4, + {0, 0, 100, "CAB 5", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_CAB, 0, 5}, //VALETON_PARAM_CAB_PARAM_5, + {0, 0, 100, "CAB 6", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_CAB, 0, 6}, //VALETON_PARAM_CAB_PARAM_6, + {0, 0, 100, "CAB 7", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_CAB, 0, 7}, //VALETON_PARAM_CAB_PARAM_7, + + {0, 0, 100, "EQ 0", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_EQ, 0, 0}, //VALETON_PARAM_EQ_PARAM_0, + {0, 0, 100, "EQ 1", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_EQ, 0, 1}, //VALETON_PARAM_EQ_PARAM_1, + {0, 0, 100, "EQ 2", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_EQ, 0, 2}, //VALETON_PARAM_EQ_PARAM_2, + {0, 0, 100, "EQ 3", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_EQ, 0, 3}, //VALETON_PARAM_EQ_PARAM_3, + {0, 0, 100, "EQ 4", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_EQ, 0, 4}, //VALETON_PARAM_EQ_PARAM_4, + {0, 0, 100, "EQ 5", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_EQ, 0, 5}, //VALETON_PARAM_EQ_PARAM_5, + {0, 0, 100, "EQ 6", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_EQ, 0, 6}, //VALETON_PARAM_EQ_PARAM_6, + {0, 0, 100, "EQ 7", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_EQ, 0, 7}, //VALETON_PARAM_EQ_PARAM_7, + + {0, 0, 100, "MOD 0", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_MOD, 0, 0}, //VALETON_PARAM_MOD_PARAM_0, + {0, 0, 100, "MOD 1", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_MOD, 0, 1}, //VALETON_PARAM_MOD_PARAM_1, + {0, 0, 100, "MOD 2", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_MOD, 0, 2}, //VALETON_PARAM_MOD_PARAM_2, + {0, 0, 100, "MOD 3", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_MOD, 0, 3}, //VALETON_PARAM_MOD_PARAM_3, + {0, 0, 100, "MOD 4", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_MOD, 0, 4}, //VALETON_PARAM_MOD_PARAM_4, + {0, 0, 100, "MOD 5", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_MOD, 0, 5}, //VALETON_PARAM_MOD_PARAM_5, + {0, 0, 100, "MOD 6", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_MOD, 0, 6}, //VALETON_PARAM_MOD_PARAM_6, + {0, 0, 100, "MOD 7", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_MOD, 0, 7}, //VALETON_PARAM_MOD_PARAM_7, + + {0, 0, 100, "DLY 0", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_DLY, 0, 0}, //VALETON_PARAM_DLY_PARAM_0, + {0, 0, 100, "DLY 1", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_DLY, 0, 1}, //VALETON_PARAM_DLY_PARAM_1, + {0, 0, 100, "DLY 2", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_DLY, 0, 2}, //VALETON_PARAM_DLY_PARAM_2, + {0, 0, 100, "DLY 3", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_DLY, 0, 3}, //VALETON_PARAM_DLY_PARAM_3, + {0, 0, 100, "DLY 4", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_DLY, 0, 4}, //VALETON_PARAM_DLY_PARAM_4, + {0, 0, 100, "DLY 5", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_DLY, 0, 5}, //VALETON_PARAM_DLY_PARAM_5, + {0, 0, 100, "DLY 6", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_DLY, 0, 6}, //VALETON_PARAM_DLY_PARAM_6, + {0, 0, 100, "DLY 7", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_DLY, 0, 7}, //VALETON_PARAM_DLY_PARAM_7, + + {0, 0, 100, "RVB 0", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_RVB, 0, 0}, //VALETON_PARAM_RVB_PARAM_0, + {0, 0, 100, "RVB 1", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_RVB, 0, 1}, //VALETON_PARAM_RVB_PARAM_1, + {0, 0, 100, "RVB 2", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_RVB, 0, 2}, //VALETON_PARAM_RVB_PARAM_2, + {0, 0, 100, "RVB 3", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_RVB, 0, 3}, //VALETON_PARAM_RVB_PARAM_3, + {0, 0, 100, "RVB 4", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_RVB, 0, 4}, //VALETON_PARAM_RVB_PARAM_4, + {0, 0, 100, "RVB 5", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_RVB, 0, 5}, //VALETON_PARAM_RVB_PARAM_5, + {0, 0, 100, "RVB 6", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_RVB, 0, 6}, //VALETON_PARAM_RVB_PARAM_6, + {0, 0, 100, "RVB 7", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_RVB, 0, 7}, //VALETON_PARAM_RVB_PARAM_7, + + {0, 0, 100, "NS 0", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_NS, 0, 0}, //VALETON_PARAM_NS_PARAM_0, + {0, 0, 100, "NS 1", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_NS, 0, 1}, //VALETON_PARAM_NS_PARAM_1, + {0, 0, 100, "NS 2", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_NS, 0, 2}, //VALETON_PARAM_NS_PARAM_2, + {0, 0, 100, "NS 3", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_NS, 0, 3}, //VALETON_PARAM_NS_PARAM_3, + {0, 0, 100, "NS 4", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_NS, 0, 4}, //VALETON_PARAM_NS_PARAM_4, + {0, 0, 100, "NS 5", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_NS, 0, 5}, //VALETON_PARAM_NS_PARAM_5, + {0, 0, 100, "NS 6", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_NS, 0, 6}, //VALETON_PARAM_NS_PARAM_6, + {0, 0, 100, "NS 7", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_NS, 0, 7}, //VALETON_PARAM_NS_PARAM_7, + {0, 0, 100, "NS 8", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_NS, 0, 8}, //VALETON_PARAM_NS_PARAM_8, + {0, 0, 100, "NS 9", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_NS, 0, 9}, //VALETON_PARAM_NS_PARAM_9, + {0, 0, 100, "NS 10", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_NS, 0, 10}, //VALETON_PARAM_NS_PARAM_10, // dummy end of params marker - {0, 0, 0, "LAST", MODELLER_PARAM_TYPE_RANGE}, // TONEX_PARAM_LAST, + {0, 0, 0, "LAST", MODELLER_PARAM_TYPE_RANGE, 0, 0, 0}, // VALETON_PARAM_LAST, //************* Global params ***************** - {80, 40, 240, "BPM", MODELLER_PARAM_TYPE_RANGE}, // VALETON_GLOBAL_BPM - {0, -15, 15, "TRIM", MODELLER_PARAM_TYPE_RANGE}, // VALETON_GLOBAL_INPUT_TRIM - {0, 0, 1, "CABSIM", MODELLER_PARAM_TYPE_SWITCH}, // VALETON_GLOBAL_CABSIM_BYPASS - {440, 415, 465, "TUNEREF", MODELLER_PARAM_TYPE_RANGE}, // VALETON_GLOBAL_TUNING_REFERENCE - {0, 0, 1, "BYPASS", MODELLER_PARAM_TYPE_SWITCH}, // VALETON_GLOBAL_BYPASS - {0, -40, 3, "MVOL", MODELLER_PARAM_TYPE_RANGE}, // VALETON_GLOBAL_MASTER_VOLUME + {80, 40, 240, "BPM", MODELLER_PARAM_TYPE_RANGE, 0, 0, 0}, // VALETON_GLOBAL_BPM + {0, -20, 20, "TRIM", MODELLER_PARAM_TYPE_RANGE, 0, 0, 0}, // VALETON_GLOBAL_INPUT_TRIM + {0, 0, 1, "CABSIM", MODELLER_PARAM_TYPE_SWITCH, 0, 0, 0}, // VALETON_GLOBAL_CABSIM_BYPASS + {0, 0, 100, "MVOL", MODELLER_PARAM_TYPE_RANGE, 0, 0, 0}, // VALETON_GLOBAL_MASTER_VOLUME + {0, -20, 20, "RLEV", MODELLER_PARAM_TYPE_RANGE, 0, 0, 0}, // VALETON_GLOBAL_RECORD_LEVEL + {0, -20, 20, "MONL", MODELLER_PARAM_TYPE_RANGE, 0, 0, 0}, // VALETON_GLOBAL_MONITOR_LEVEL + {0, -20, 20, "BTLV", MODELLER_PARAM_TYPE_RANGE, 0, 0, 0}, // VALETON_GLOBAL_BT_LEVEL }; - /**************************************************************************** * NAME: * DESCRIPTION: @@ -392,6 +303,1035 @@ float valeton_params_clamp_value(uint16_t param_index, float value) return 0; } +/**************************************************************************** +* NAME: +* DESCRIPTION: +* PARAMETERS: +* RETURN: +* NOTES: +*****************************************************************************/ +void valeton_params_set_min_max(void) +{ + tModellerParameter* param_ptr; + + if (valeton_params_get_locked_access(¶m_ptr) == ESP_OK) + { + // NR + switch ((int)param_ptr[VALETON_PARAM_NR_TYPE].Value) + { + case VALETON_EFFECT_NR_GATE: + { + // threshold + param_ptr[VALETON_PARAM_NR_PARAM_0].Min = 0; + param_ptr[VALETON_PARAM_NR_PARAM_0].Max = 100; + } break; + } + + // Pre + switch ((int)param_ptr[VALETON_PARAM_PRE_TYPE].Value) + { + case VALETON_EFFECT_PRE_COMP: + { + // sustain + param_ptr[VALETON_PARAM_PRE_PARAM_0].Min = 0; + param_ptr[VALETON_PARAM_PRE_PARAM_0].Max = 100; + + // volume + param_ptr[VALETON_PARAM_PRE_PARAM_1].Min = 0; + param_ptr[VALETON_PARAM_PRE_PARAM_1].Max = 100; + } break; + + case VALETON_EFFECT_PRE_COMP4: + { + // sustain + param_ptr[VALETON_PARAM_PRE_PARAM_0].Min = 0; + param_ptr[VALETON_PARAM_PRE_PARAM_0].Max = 100; + + // attack + param_ptr[VALETON_PARAM_PRE_PARAM_1].Min = 0; + param_ptr[VALETON_PARAM_PRE_PARAM_1].Max = 100; + + // vol + param_ptr[VALETON_PARAM_PRE_PARAM_2].Min = 0; + param_ptr[VALETON_PARAM_PRE_PARAM_2].Max = 100; + + // clip + param_ptr[VALETON_PARAM_PRE_PARAM_3].Min = 0; + param_ptr[VALETON_PARAM_PRE_PARAM_3].Max = 100; + } break; + + case VALETON_EFFECT_PRE_BOOST: + { + // gain + param_ptr[VALETON_PARAM_PRE_PARAM_0].Min = 0; + param_ptr[VALETON_PARAM_PRE_PARAM_0].Max = 100; + + // +3db + param_ptr[VALETON_PARAM_PRE_PARAM_1].Min = 0; + param_ptr[VALETON_PARAM_PRE_PARAM_1].Max = 1; + + // bright + param_ptr[VALETON_PARAM_PRE_PARAM_2].Min = 0; + param_ptr[VALETON_PARAM_PRE_PARAM_2].Max = 1; + } break; + + case VALETON_EFFECT_PRE_MICRO_BOOST: + { + // gain + param_ptr[VALETON_PARAM_PRE_PARAM_0].Min = 0; + param_ptr[VALETON_PARAM_PRE_PARAM_0].Max = 100; + } break; + + case VALETON_EFFECT_PRE_B_BOOST: + { + // gain + param_ptr[VALETON_PARAM_PRE_PARAM_0].Min = 0; + param_ptr[VALETON_PARAM_PRE_PARAM_0].Max = 100; + + // vol + param_ptr[VALETON_PARAM_PRE_PARAM_1].Min = 0; + param_ptr[VALETON_PARAM_PRE_PARAM_1].Max = 100; + + // bass + param_ptr[VALETON_PARAM_PRE_PARAM_2].Min = 0; + param_ptr[VALETON_PARAM_PRE_PARAM_2].Max = 100; + + // treble + param_ptr[VALETON_PARAM_PRE_PARAM_3].Min = 0; + param_ptr[VALETON_PARAM_PRE_PARAM_3].Max = 100; + } break; + + case VALETON_EFFECT_PRE_TOUCHER: + { + // sense + param_ptr[VALETON_PARAM_PRE_PARAM_0].Min = 0; + param_ptr[VALETON_PARAM_PRE_PARAM_0].Max = 100; + + // range + param_ptr[VALETON_PARAM_PRE_PARAM_1].Min = 0; + param_ptr[VALETON_PARAM_PRE_PARAM_1].Max = 100; + + // Q + param_ptr[VALETON_PARAM_PRE_PARAM_2].Min = 0; + param_ptr[VALETON_PARAM_PRE_PARAM_2].Max = 100; + + // mix + param_ptr[VALETON_PARAM_PRE_PARAM_3].Min = 0; + param_ptr[VALETON_PARAM_PRE_PARAM_3].Max = 100; + + // mode + param_ptr[VALETON_PARAM_PRE_PARAM_4].Min = 0; + param_ptr[VALETON_PARAM_PRE_PARAM_4].Max = 1; + } break; + + case VALETON_EFFECT_PRE_CRIER: + { + // depth + param_ptr[VALETON_PARAM_PRE_PARAM_0].Min = 0; + param_ptr[VALETON_PARAM_PRE_PARAM_0].Max = 100; + + // rate + param_ptr[VALETON_PARAM_PRE_PARAM_1].Min = 0; + param_ptr[VALETON_PARAM_PRE_PARAM_1].Max = 10; + + // vol + param_ptr[VALETON_PARAM_PRE_PARAM_2].Min = 0; + param_ptr[VALETON_PARAM_PRE_PARAM_2].Max = 100; + + // low + param_ptr[VALETON_PARAM_PRE_PARAM_3].Min = 0; + param_ptr[VALETON_PARAM_PRE_PARAM_3].Max = 100; + + // Q + param_ptr[VALETON_PARAM_PRE_PARAM_4].Min = 0; + param_ptr[VALETON_PARAM_PRE_PARAM_4].Max = 100; + + // High + param_ptr[VALETON_PARAM_PRE_PARAM_5].Min = 0; + param_ptr[VALETON_PARAM_PRE_PARAM_5].Max = 100; + } break; + + case VALETON_EFFECT_PRE_OCTA: + { + // Low + param_ptr[VALETON_PARAM_PRE_PARAM_0].Min = 0; + param_ptr[VALETON_PARAM_PRE_PARAM_0].Max = 100; + + // high + param_ptr[VALETON_PARAM_PRE_PARAM_1].Min = 0; + param_ptr[VALETON_PARAM_PRE_PARAM_1].Max = 100; + + // Dry + param_ptr[VALETON_PARAM_PRE_PARAM_2].Min = 0; + param_ptr[VALETON_PARAM_PRE_PARAM_2].Max = 100; + } break; + + case VALETON_EFFECT_PRE_PITCH: + { + // High + param_ptr[VALETON_PARAM_PRE_PARAM_0].Min = 0; + param_ptr[VALETON_PARAM_PRE_PARAM_0].Max = 24; + + // Low + param_ptr[VALETON_PARAM_PRE_PARAM_1].Min = -24; + param_ptr[VALETON_PARAM_PRE_PARAM_1].Max = 0; + + // Dry + param_ptr[VALETON_PARAM_PRE_PARAM_2].Min = 0; + param_ptr[VALETON_PARAM_PRE_PARAM_2].Max = 100; + + // H-Vol + param_ptr[VALETON_PARAM_PRE_PARAM_3].Min = 0; + param_ptr[VALETON_PARAM_PRE_PARAM_3].Max = 100; + + // L-Vol + param_ptr[VALETON_PARAM_PRE_PARAM_4].Min = 0; + param_ptr[VALETON_PARAM_PRE_PARAM_4].Max = 100; + } break; + + case VALETON_EFFECT_PRE_DETUNE: + { + // Detune + param_ptr[VALETON_PARAM_PRE_PARAM_0].Min = -50; + param_ptr[VALETON_PARAM_PRE_PARAM_0].Max = 50; + + // Wet + param_ptr[VALETON_PARAM_PRE_PARAM_1].Min = 0; + param_ptr[VALETON_PARAM_PRE_PARAM_1].Max = 100; + + // Dry + param_ptr[VALETON_PARAM_PRE_PARAM_2].Min = 0; + param_ptr[VALETON_PARAM_PRE_PARAM_2].Max = 100; + } break; + } + + // Dist + switch ((int)param_ptr[VALETON_PARAM_DIST_TYPE].Value) + { + case VALETON_EFFECT_DIST_GREEN_OD: // fallthrough + case VALETON_EFFECT_DIST_SUPER_OD: // fallthrough + case VALETON_EFFECT_DIST_SM_DIST: // fallthrough + case VALETON_EFFECT_DIST_LA_CHARGER: + { + // Gain + param_ptr[VALETON_PARAM_DIST_PARAM_0].Min = 0; + param_ptr[VALETON_PARAM_DIST_PARAM_0].Max = 100; + + // Tone + param_ptr[VALETON_PARAM_DIST_PARAM_1].Min = 0; + param_ptr[VALETON_PARAM_DIST_PARAM_1].Max = 100; + + // Vol + param_ptr[VALETON_PARAM_DIST_PARAM_2].Min = 0; + param_ptr[VALETON_PARAM_DIST_PARAM_2].Max = 100; + } break; + + case VALETON_EFFECT_DIST_YELLOW_OD: // fallthrough + case VALETON_EFFECT_DIST_PLUSTORTION: + { + // Gain + param_ptr[VALETON_PARAM_DIST_PARAM_0].Min = 0; + param_ptr[VALETON_PARAM_DIST_PARAM_0].Max = 100; + + // Vol + param_ptr[VALETON_PARAM_DIST_PARAM_1].Min = 0; + param_ptr[VALETON_PARAM_DIST_PARAM_1].Max = 100; + } break; + + case VALETON_EFFECT_DIST_DARKTALE: + { + // Gain + param_ptr[VALETON_PARAM_DIST_PARAM_0].Min = 0; + param_ptr[VALETON_PARAM_DIST_PARAM_0].Max = 100; + + // Filter + param_ptr[VALETON_PARAM_DIST_PARAM_1].Min = 0; + param_ptr[VALETON_PARAM_DIST_PARAM_1].Max = 100; + + // Vol + param_ptr[VALETON_PARAM_DIST_PARAM_2].Min = 0; + param_ptr[VALETON_PARAM_DIST_PARAM_2].Max = 100; + } break; + + case VALETON_EFFECT_DIST_SORA_FUZZ: // fallthrough + case VALETON_EFFECT_DIST_RED_HAZE: + { + // Fuzz + param_ptr[VALETON_PARAM_DIST_PARAM_0].Min = 0; + param_ptr[VALETON_PARAM_DIST_PARAM_0].Max = 100; + + // Vol + param_ptr[VALETON_PARAM_DIST_PARAM_1].Min = 0; + param_ptr[VALETON_PARAM_DIST_PARAM_1].Max = 100; + } break; + + case VALETON_EFFECT_DIST_BASS_OD: + { + // Gain + param_ptr[VALETON_PARAM_DIST_PARAM_0].Min = 0; + param_ptr[VALETON_PARAM_DIST_PARAM_0].Max = 100; + + // Blend + param_ptr[VALETON_PARAM_DIST_PARAM_1].Min = 0; + param_ptr[VALETON_PARAM_DIST_PARAM_1].Max = 100; + + // Vol + param_ptr[VALETON_PARAM_DIST_PARAM_2].Min = 0; + param_ptr[VALETON_PARAM_DIST_PARAM_2].Max = 100; + + // Bass + param_ptr[VALETON_PARAM_DIST_PARAM_3].Min = 0; + param_ptr[VALETON_PARAM_DIST_PARAM_3].Max = 100; + + // Treble + param_ptr[VALETON_PARAM_DIST_PARAM_4].Min = 0; + param_ptr[VALETON_PARAM_DIST_PARAM_4].Max = 100; + } break; + } + + // Amp + switch ((int)param_ptr[VALETON_PARAM_AMP_TYPE].Value) + { + case VALETON_EFFECT_AMP_TWEEDY: + { + // Gain + param_ptr[VALETON_PARAM_AMP_PARAM_0].Min = 0; + param_ptr[VALETON_PARAM_AMP_PARAM_0].Max = 100; + + // Tone + param_ptr[VALETON_PARAM_AMP_PARAM_1].Min = 0; + param_ptr[VALETON_PARAM_AMP_PARAM_1].Max = 100; + + // Vol + param_ptr[VALETON_PARAM_AMP_PARAM_2].Min = 0; + param_ptr[VALETON_PARAM_AMP_PARAM_2].Max = 100; + } break; + + case VALETON_EFFECT_AMP_BELLMAN_59N: // fallthrough + case VALETON_EFFECT_AMP_MATCH_CL: // fallthrough + case VALETON_EFFECT_AMP_L_STAR_CL: // fallthrough + case VALETON_EFFECT_AMP_UK_45: // fallthough + case VALETON_EFFECT_AMP_UK_800: // fallthrough + case VALETON_EFFECT_AMP_BELLMAN_59B: // fallthough + case VALETON_EFFECT_AMP_SOLO100_OD: // fallthrough + case VALETON_EFFECT_AMP_BAD_KT_OD: // fallthough + case VALETON_EFFECT_AMP_DIZZ_VH: // fallthrough + case VALETON_EFFECT_AMP_DIZZ_VH_PLUS: // fallthrough + case VALETON_EFFECT_AMP_EAGLE_120: // fallthrough + case VALETON_EFFECT_AMP_SOLO100_LD: // fallthrough + case VALETON_EFFECT_AMP_MESS_DUALV: // fallthrough + case VALETON_EFFECT_AMP_MESS_DUALM: // fallthrough + case VALETON_EFFECT_AMP_POWER_LD: // fallthrough + case VALETON_EFFECT_AMP_FLAGMAN_PLUS: // fallthrough + case VALETON_EFFECT_AMP_BOG_REDV: + { + // Gain + param_ptr[VALETON_PARAM_AMP_PARAM_0].Min = 0; + param_ptr[VALETON_PARAM_AMP_PARAM_0].Max = 100; + + // Pres + param_ptr[VALETON_PARAM_AMP_PARAM_1].Min = 0; + param_ptr[VALETON_PARAM_AMP_PARAM_1].Max = 100; + + // Vol + param_ptr[VALETON_PARAM_AMP_PARAM_2].Min = 0; + param_ptr[VALETON_PARAM_AMP_PARAM_2].Max = 100; + + // Bass + param_ptr[VALETON_PARAM_AMP_PARAM_3].Min = 0; + param_ptr[VALETON_PARAM_AMP_PARAM_3].Max = 100; + + // Middle + param_ptr[VALETON_PARAM_AMP_PARAM_4].Min = 0; + param_ptr[VALETON_PARAM_AMP_PARAM_4].Max = 100; + + // Treble + param_ptr[VALETON_PARAM_AMP_PARAM_5].Min = 0; + param_ptr[VALETON_PARAM_AMP_PARAM_5].Max = 100; + } break; + + case VALETON_EFFECT_AMP_DARK_TWIN: + case VALETON_EFFECT_AMP_JUICE_R100: + { + // Gain + param_ptr[VALETON_PARAM_AMP_PARAM_0].Min = 0; + param_ptr[VALETON_PARAM_AMP_PARAM_0].Max = 100; + + // Vol + param_ptr[VALETON_PARAM_AMP_PARAM_1].Min = 0; + param_ptr[VALETON_PARAM_AMP_PARAM_1].Max = 100; + + // Bass + param_ptr[VALETON_PARAM_AMP_PARAM_2].Min = 0; + param_ptr[VALETON_PARAM_AMP_PARAM_2].Max = 100; + + // Middle + param_ptr[VALETON_PARAM_AMP_PARAM_3].Min = 0; + param_ptr[VALETON_PARAM_AMP_PARAM_3].Max = 100; + + // Treble + param_ptr[VALETON_PARAM_AMP_PARAM_4].Min = 0; + param_ptr[VALETON_PARAM_AMP_PARAM_4].Max = 100; + + // Bright + param_ptr[VALETON_PARAM_AMP_PARAM_5].Min = 0; + param_ptr[VALETON_PARAM_AMP_PARAM_5].Max = 1; + } break; + + case VALETON_EFFECT_AMP_FOXY_30N: + { + // Gain + param_ptr[VALETON_PARAM_AMP_PARAM_0].Min = 0; + param_ptr[VALETON_PARAM_AMP_PARAM_0].Max = 100; + + // Tone Cut + param_ptr[VALETON_PARAM_AMP_PARAM_1].Min = 0; + param_ptr[VALETON_PARAM_AMP_PARAM_1].Max = 100; + + // Vol + param_ptr[VALETON_PARAM_AMP_PARAM_2].Min = 0; + param_ptr[VALETON_PARAM_AMP_PARAM_2].Max = 100; + + // Bright + param_ptr[VALETON_PARAM_AMP_PARAM_2].Min = 0; + param_ptr[VALETON_PARAM_AMP_PARAM_2].Max = 1; + } break; + + case VALETON_EFFECT_AMP_J_120_CL: + { + // Vol + param_ptr[VALETON_PARAM_AMP_PARAM_0].Min = 0; + param_ptr[VALETON_PARAM_AMP_PARAM_0].Max = 100; + + // Bass + param_ptr[VALETON_PARAM_AMP_PARAM_1].Min = 0; + param_ptr[VALETON_PARAM_AMP_PARAM_1].Max = 100; + + // Middle + param_ptr[VALETON_PARAM_AMP_PARAM_2].Min = 0; + param_ptr[VALETON_PARAM_AMP_PARAM_2].Max = 100; + + // Treble + param_ptr[VALETON_PARAM_AMP_PARAM_3].Min = 0; + param_ptr[VALETON_PARAM_AMP_PARAM_3].Max = 100; + + // Bright + param_ptr[VALETON_PARAM_AMP_PARAM_3].Min = 0; + param_ptr[VALETON_PARAM_AMP_PARAM_3].Max = 1; + } break; + + case VALETON_EFFECT_AMP_UK_50JP: + { + // Gain 1 + param_ptr[VALETON_PARAM_AMP_PARAM_0].Min = 0; + param_ptr[VALETON_PARAM_AMP_PARAM_0].Max = 100; + + // Pres + param_ptr[VALETON_PARAM_AMP_PARAM_1].Min = 0; + param_ptr[VALETON_PARAM_AMP_PARAM_1].Max = 100; + + // Vol + param_ptr[VALETON_PARAM_AMP_PARAM_2].Min = 0; + param_ptr[VALETON_PARAM_AMP_PARAM_2].Max = 100; + + // Bass + param_ptr[VALETON_PARAM_AMP_PARAM_3].Min = 0; + param_ptr[VALETON_PARAM_AMP_PARAM_3].Max = 100; + + // Middle + param_ptr[VALETON_PARAM_AMP_PARAM_4].Min = 0; + param_ptr[VALETON_PARAM_AMP_PARAM_4].Max = 100; + + // Treble + param_ptr[VALETON_PARAM_AMP_PARAM_5].Min = 0; + param_ptr[VALETON_PARAM_AMP_PARAM_5].Max = 100; + + // Gain 2 + param_ptr[VALETON_PARAM_AMP_PARAM_6].Min = 0; + param_ptr[VALETON_PARAM_AMP_PARAM_6].Max = 100; + } break; + + case VALETON_EFFECT_AMP_FOXY_30TB: + { + // Gain + param_ptr[VALETON_PARAM_AMP_PARAM_0].Min = 0; + param_ptr[VALETON_PARAM_AMP_PARAM_0].Max = 100; + + // Tone Cut + param_ptr[VALETON_PARAM_AMP_PARAM_1].Min = 0; + param_ptr[VALETON_PARAM_AMP_PARAM_1].Max = 100; + + // Vol + param_ptr[VALETON_PARAM_AMP_PARAM_2].Min = 0; + param_ptr[VALETON_PARAM_AMP_PARAM_2].Max = 100; + + // Bass + param_ptr[VALETON_PARAM_AMP_PARAM_3].Min = 0; + param_ptr[VALETON_PARAM_AMP_PARAM_3].Max = 100; + + // Treble + param_ptr[VALETON_PARAM_AMP_PARAM_4].Min = 0; + param_ptr[VALETON_PARAM_AMP_PARAM_4].Max = 100; + + // Character + param_ptr[VALETON_PARAM_AMP_PARAM_5].Min = 0; + param_ptr[VALETON_PARAM_AMP_PARAM_5].Max = 1; + } break; + + case VALETON_EFFECT_AMP_SUPDUAL_OD: + { + // Gain 1 + param_ptr[VALETON_PARAM_AMP_PARAM_0].Min = 0; + param_ptr[VALETON_PARAM_AMP_PARAM_0].Max = 100; + + // Tone 1 + param_ptr[VALETON_PARAM_AMP_PARAM_1].Min = 0; + param_ptr[VALETON_PARAM_AMP_PARAM_1].Max = 100; + + // Gain 2 + param_ptr[VALETON_PARAM_AMP_PARAM_2].Min = 0; + param_ptr[VALETON_PARAM_AMP_PARAM_2].Max = 100; + + // Tone 2 + param_ptr[VALETON_PARAM_AMP_PARAM_3].Min = 0; + param_ptr[VALETON_PARAM_AMP_PARAM_3].Max = 100; + + // Vol + param_ptr[VALETON_PARAM_AMP_PARAM_4].Min = 0; + param_ptr[VALETON_PARAM_AMP_PARAM_4].Max = 100; + } break; + + case VALETON_EFFECT_AMP_Z38_OD: + { + // Gain + param_ptr[VALETON_PARAM_AMP_PARAM_0].Min = 0; + param_ptr[VALETON_PARAM_AMP_PARAM_0].Max = 100; + + // Tone Cut + param_ptr[VALETON_PARAM_AMP_PARAM_1].Min = 0; + param_ptr[VALETON_PARAM_AMP_PARAM_1].Max = 100; + + // Vol + param_ptr[VALETON_PARAM_AMP_PARAM_2].Min = 0; + param_ptr[VALETON_PARAM_AMP_PARAM_2].Max = 100; + + // Bass + param_ptr[VALETON_PARAM_AMP_PARAM_3].Min = 0; + param_ptr[VALETON_PARAM_AMP_PARAM_3].Max = 100; + + // Middle + param_ptr[VALETON_PARAM_AMP_PARAM_4].Min = 0; + param_ptr[VALETON_PARAM_AMP_PARAM_4].Max = 100; + + // Treble + param_ptr[VALETON_PARAM_AMP_PARAM_5].Min = 0; + param_ptr[VALETON_PARAM_AMP_PARAM_5].Max = 100; + } break; + + case VALETON_EFFECT_AMP_EV_51: + { + // Gain + param_ptr[VALETON_PARAM_AMP_PARAM_0].Min = 0; + param_ptr[VALETON_PARAM_AMP_PARAM_0].Max = 100; + + // Vol + param_ptr[VALETON_PARAM_AMP_PARAM_1].Min = 0; + param_ptr[VALETON_PARAM_AMP_PARAM_1].Max = 100; + + // Bass + param_ptr[VALETON_PARAM_AMP_PARAM_2].Min = 0; + param_ptr[VALETON_PARAM_AMP_PARAM_2].Max = 100; + + // Middle + param_ptr[VALETON_PARAM_AMP_PARAM_3].Min = 0; + param_ptr[VALETON_PARAM_AMP_PARAM_3].Max = 100; + + // Treble + param_ptr[VALETON_PARAM_AMP_PARAM_4].Min = 0; + param_ptr[VALETON_PARAM_AMP_PARAM_4].Max = 100; + + // Pres + param_ptr[VALETON_PARAM_AMP_PARAM_5].Min = 0; + param_ptr[VALETON_PARAM_AMP_PARAM_5].Max = 100; + } break; + + case VALETON_EFFECT_AMP_CLASSIC_BASS: + { + // Gain + param_ptr[VALETON_PARAM_AMP_PARAM_0].Min = 0; + param_ptr[VALETON_PARAM_AMP_PARAM_0].Max = 100; + + // Bass + param_ptr[VALETON_PARAM_AMP_PARAM_1].Min = 0; + param_ptr[VALETON_PARAM_AMP_PARAM_1].Max = 100; + + // Middle + param_ptr[VALETON_PARAM_AMP_PARAM_2].Min = 0; + param_ptr[VALETON_PARAM_AMP_PARAM_2].Max = 100; + + // Mid freq + param_ptr[VALETON_PARAM_AMP_PARAM_3].Min = 0; + param_ptr[VALETON_PARAM_AMP_PARAM_3].Max = 4; + + // Treble + param_ptr[VALETON_PARAM_AMP_PARAM_4].Min = 0; + param_ptr[VALETON_PARAM_AMP_PARAM_4].Max = 100; + + // Vol + param_ptr[VALETON_PARAM_AMP_PARAM_5].Min = 0; + param_ptr[VALETON_PARAM_AMP_PARAM_5].Max = 100; + } break; + + case VALETON_EFFECT_AMP_FOXY_BASS: + { + // Vol + param_ptr[VALETON_PARAM_AMP_PARAM_0].Min = 0; + param_ptr[VALETON_PARAM_AMP_PARAM_0].Max = 100; + + // Bass + param_ptr[VALETON_PARAM_AMP_PARAM_1].Min = 0; + param_ptr[VALETON_PARAM_AMP_PARAM_1].Max = 100; + + // Treble + param_ptr[VALETON_PARAM_AMP_PARAM_2].Min = 0; + param_ptr[VALETON_PARAM_AMP_PARAM_2].Max = 100; + } break; + + case VALETON_EFFECT_AMP_MESS_BASS: + { + // Gain + param_ptr[VALETON_PARAM_AMP_PARAM_0].Min = 0; + param_ptr[VALETON_PARAM_AMP_PARAM_0].Max = 100; + + // Vol + param_ptr[VALETON_PARAM_AMP_PARAM_1].Min = 0; + param_ptr[VALETON_PARAM_AMP_PARAM_1].Max = 100; + + // Bass + param_ptr[VALETON_PARAM_AMP_PARAM_2].Min = 0; + param_ptr[VALETON_PARAM_AMP_PARAM_2].Max = 100; + + // Middle + param_ptr[VALETON_PARAM_AMP_PARAM_3].Min = 0; + param_ptr[VALETON_PARAM_AMP_PARAM_3].Max = 100; + + // Treble + param_ptr[VALETON_PARAM_AMP_PARAM_4].Min = 0; + param_ptr[VALETON_PARAM_AMP_PARAM_4].Max = 100; + } break; + + case VALETON_EFFECT_AMP_AC_PRE1: // fallthrough + case VALETON_EFFECT_AMP_AC_PRE2: + { + // Vol + param_ptr[VALETON_PARAM_AMP_PARAM_0].Min = 0; + param_ptr[VALETON_PARAM_AMP_PARAM_0].Max = 100; + + // Tone + param_ptr[VALETON_PARAM_AMP_PARAM_1].Min = 0; + param_ptr[VALETON_PARAM_AMP_PARAM_1].Max = 100; + + // Balance + param_ptr[VALETON_PARAM_AMP_PARAM_2].Min = 0; + param_ptr[VALETON_PARAM_AMP_PARAM_2].Max = 100; + + // EQ Freq + param_ptr[VALETON_PARAM_AMP_PARAM_3].Min = 0; + param_ptr[VALETON_PARAM_AMP_PARAM_3].Max = 100; + + // EQ Q + param_ptr[VALETON_PARAM_AMP_PARAM_4].Min = 0; + param_ptr[VALETON_PARAM_AMP_PARAM_4].Max = 100; + + // EQ Gain + param_ptr[VALETON_PARAM_AMP_PARAM_5].Min = 0; + param_ptr[VALETON_PARAM_AMP_PARAM_5].Max = 100; + } break; + } + + // Cab + // all cabs have volume only + // Vol + param_ptr[VALETON_PARAM_CAB_PARAM_0].Min = 0; + param_ptr[VALETON_PARAM_CAB_PARAM_0].Max = 100; + + // EQ + // all have same range + // band 1 + param_ptr[VALETON_PARAM_EQ_PARAM_0].Min = -50; + param_ptr[VALETON_PARAM_EQ_PARAM_0].Max = 50; + + // band 2 + param_ptr[VALETON_PARAM_EQ_PARAM_1].Min = -50; + param_ptr[VALETON_PARAM_EQ_PARAM_1].Max = 50; + + // band 3 + param_ptr[VALETON_PARAM_EQ_PARAM_2].Min = -50; + param_ptr[VALETON_PARAM_EQ_PARAM_2].Max = 50; + + // band 4 + param_ptr[VALETON_PARAM_EQ_PARAM_3].Min = -50; + param_ptr[VALETON_PARAM_EQ_PARAM_3].Max = 50; + + // band 5 + param_ptr[VALETON_PARAM_EQ_PARAM_4].Min = -50; + param_ptr[VALETON_PARAM_EQ_PARAM_4].Max = 50; + + // Vol + param_ptr[VALETON_PARAM_EQ_PARAM_5].Min = 0; + param_ptr[VALETON_PARAM_EQ_PARAM_5].Max = 100; + + // Mod + switch ((int)param_ptr[VALETON_PARAM_MOD_TYPE].Value) + { + case VALETON_EFFECT_MOD_A_CHORUS: // fallthrough + case VALETON_EFFECT_MOD_B_CHORUS: + { + // Depth + param_ptr[VALETON_PARAM_MOD_PARAM_0].Min = 0; + param_ptr[VALETON_PARAM_MOD_PARAM_0].Max = 100; + + // Rate + param_ptr[VALETON_PARAM_MOD_PARAM_1].Min = 0; + param_ptr[VALETON_PARAM_MOD_PARAM_1].Max = 10; + + // Tone + param_ptr[VALETON_PARAM_MOD_PARAM_2].Min = 0; + param_ptr[VALETON_PARAM_MOD_PARAM_2].Max = 100; + + } break; + + case VALETON_EFFECT_MOD_JET: // Fallthrough + case VALETON_EFFECT_MOD_N_JET: + { + // Depth + param_ptr[VALETON_PARAM_MOD_PARAM_0].Min = 0; + param_ptr[VALETON_PARAM_MOD_PARAM_0].Max = 100; + + // Rate + param_ptr[VALETON_PARAM_MOD_PARAM_1].Min = 0; + param_ptr[VALETON_PARAM_MOD_PARAM_1].Max = 10; + + // P.Delay + param_ptr[VALETON_PARAM_MOD_PARAM_2].Min = 0; + param_ptr[VALETON_PARAM_MOD_PARAM_2].Max = 100; + + // F.Back + param_ptr[VALETON_PARAM_MOD_PARAM_3].Min = 0; + param_ptr[VALETON_PARAM_MOD_PARAM_3].Max = 100; + } break; + + case VALETON_EFFECT_MOD_O_PHASE: + { + // Rate + param_ptr[VALETON_PARAM_MOD_PARAM_0].Min = 0; + param_ptr[VALETON_PARAM_MOD_PARAM_0].Max = 10; + } break; + + case VALETON_EFFECT_MOD_M_VIBE: // fallthrough + case VALETON_EFFECT_MOD_V_ROTO: // fallthrough + case VALETON_EFFECT_MOD_O_TREM: + { + // Depth + param_ptr[VALETON_PARAM_MOD_PARAM_0].Min = 0; + param_ptr[VALETON_PARAM_MOD_PARAM_0].Max = 100; + + // Rate + param_ptr[VALETON_PARAM_MOD_PARAM_1].Min = 0; + param_ptr[VALETON_PARAM_MOD_PARAM_1].Max = 10; + + } break; + + case VALETON_EFFECT_MOD_VIBRATO: // fallthrough + case VALETON_EFFECT_MOD_SINE_TREM: + { + // Depth + param_ptr[VALETON_PARAM_MOD_PARAM_0].Min = 0; + param_ptr[VALETON_PARAM_MOD_PARAM_0].Max = 100; + + // Rate + param_ptr[VALETON_PARAM_MOD_PARAM_1].Min = 0; + param_ptr[VALETON_PARAM_MOD_PARAM_1].Max = 10; + + // Vol + param_ptr[VALETON_PARAM_MOD_PARAM_2].Min = 0; + param_ptr[VALETON_PARAM_MOD_PARAM_2].Max = 100; + } break; + + case VALETON_EFFECT_MOD_BIAS_TREM: + { + // Depth + param_ptr[VALETON_PARAM_MOD_PARAM_0].Min = 0; + param_ptr[VALETON_PARAM_MOD_PARAM_0].Max = 100; + + // Rate + param_ptr[VALETON_PARAM_MOD_PARAM_1].Min = 0; + param_ptr[VALETON_PARAM_MOD_PARAM_1].Max = 10; + + // Vol + param_ptr[VALETON_PARAM_MOD_PARAM_2].Min = 0; + param_ptr[VALETON_PARAM_MOD_PARAM_2].Max = 100; + + // Bias + param_ptr[VALETON_PARAM_MOD_PARAM_3].Min = 0; + param_ptr[VALETON_PARAM_MOD_PARAM_3].Max = 100; + } break; + } + + // Delay + switch ((int)param_ptr[VALETON_PARAM_DLY_TYPE].Value) + { + case VALETON_EFFECT_DLY_PURE: // fallthrough + case VALETON_EFFECT_DLY_SWEET_ECHO: // fallthrough + case VALETON_EFFECT_DLY_TAPE: // fallthrough + case VALETON_EFFECT_DLY_TUBE: + { + // Mix + param_ptr[VALETON_PARAM_DLY_PARAM_0].Min = 0; + param_ptr[VALETON_PARAM_DLY_PARAM_0].Max = 100; + + // Time + param_ptr[VALETON_PARAM_DLY_PARAM_1].Min = 0; + param_ptr[VALETON_PARAM_DLY_PARAM_1].Max = 1000; + + // F.Back + param_ptr[VALETON_PARAM_DLY_PARAM_2].Min = 0; + param_ptr[VALETON_PARAM_DLY_PARAM_2].Max = 100; + + // Trail + param_ptr[VALETON_PARAM_DLY_PARAM_3].Min = 0; + param_ptr[VALETON_PARAM_DLY_PARAM_3].Max = 1; + } break; + + case VALETON_EFFECT_DLY_ANALOG: + { + // Mix + param_ptr[VALETON_PARAM_DLY_PARAM_0].Min = 0; + param_ptr[VALETON_PARAM_DLY_PARAM_0].Max = 100; + + // Time + param_ptr[VALETON_PARAM_DLY_PARAM_1].Min = 0; + param_ptr[VALETON_PARAM_DLY_PARAM_1].Max = 4000; + + // Feedback + param_ptr[VALETON_PARAM_DLY_PARAM_2].Min = 0; + param_ptr[VALETON_PARAM_DLY_PARAM_2].Max = 100; + + // Trail + param_ptr[VALETON_PARAM_DLY_PARAM_3].Min = 0; + param_ptr[VALETON_PARAM_DLY_PARAM_3].Max = 1; + } break; + + case VALETON_EFFECT_DLY_SLAPBACK: + { + // Mix + param_ptr[VALETON_PARAM_DLY_PARAM_0].Min = 0; + param_ptr[VALETON_PARAM_DLY_PARAM_0].Max = 100; + + // Time + param_ptr[VALETON_PARAM_DLY_PARAM_1].Min = 0; + param_ptr[VALETON_PARAM_DLY_PARAM_1].Max = 300; + + // F.Back + param_ptr[VALETON_PARAM_DLY_PARAM_2].Min = 0; + param_ptr[VALETON_PARAM_DLY_PARAM_2].Max = 100; + + // Trail + param_ptr[VALETON_PARAM_DLY_PARAM_3].Min = 0; + param_ptr[VALETON_PARAM_DLY_PARAM_3].Max = 1; + } break; + + case VALETON_EFFECT_DLY_REV_ECHO: + { + // Mix + param_ptr[VALETON_PARAM_DLY_PARAM_0].Min = 0; + param_ptr[VALETON_PARAM_DLY_PARAM_0].Max = 100; + + // Time + param_ptr[VALETON_PARAM_DLY_PARAM_1].Min = 0; + param_ptr[VALETON_PARAM_DLY_PARAM_1].Max = 780; + + // F.Back + param_ptr[VALETON_PARAM_DLY_PARAM_2].Min = 0; + param_ptr[VALETON_PARAM_DLY_PARAM_2].Max = 100; + + // Trail + param_ptr[VALETON_PARAM_DLY_PARAM_3].Min = 0; + param_ptr[VALETON_PARAM_DLY_PARAM_3].Max = 1; + } break; + + case VALETON_EFFECT_DLY_PING_PONG: + { + // Mix + param_ptr[VALETON_PARAM_DLY_PARAM_0].Min = 0; + param_ptr[VALETON_PARAM_DLY_PARAM_0].Max = 100; + + // Time + param_ptr[VALETON_PARAM_DLY_PARAM_1].Min = 0; + param_ptr[VALETON_PARAM_DLY_PARAM_1].Max = 500; + + // F.Back + param_ptr[VALETON_PARAM_DLY_PARAM_2].Min = 0; + param_ptr[VALETON_PARAM_DLY_PARAM_2].Max = 100; + + // Trail + param_ptr[VALETON_PARAM_DLY_PARAM_3].Min = 0; + param_ptr[VALETON_PARAM_DLY_PARAM_3].Max = 1; + } break; + + case VALETON_EFFECT_DLY_RING_ECHO: + { + // Mix + param_ptr[VALETON_PARAM_DLY_PARAM_0].Min = 0; + param_ptr[VALETON_PARAM_DLY_PARAM_0].Max = 100; + + // Time + param_ptr[VALETON_PARAM_DLY_PARAM_1].Min = 0; + param_ptr[VALETON_PARAM_DLY_PARAM_1].Max = 1000; + + // F.Back + param_ptr[VALETON_PARAM_DLY_PARAM_2].Min = 0; + param_ptr[VALETON_PARAM_DLY_PARAM_2].Max = 100; + + // R-Mix + param_ptr[VALETON_PARAM_DLY_PARAM_3].Min = 0; + param_ptr[VALETON_PARAM_DLY_PARAM_3].Max = 100; + + // Freq + param_ptr[VALETON_PARAM_DLY_PARAM_4].Min = 0; + param_ptr[VALETON_PARAM_DLY_PARAM_4].Max = 100; + + // Tone + param_ptr[VALETON_PARAM_DLY_PARAM_5].Min = 0; + param_ptr[VALETON_PARAM_DLY_PARAM_5].Max = 100; + + // Trail + param_ptr[VALETON_PARAM_DLY_PARAM_6].Min = 0; + param_ptr[VALETON_PARAM_DLY_PARAM_6].Max = 1; + } break; + + case VALETON_EFFECT_DLY_SWEEP_ECHO: + { + // Mix + param_ptr[VALETON_PARAM_DLY_PARAM_0].Min = 0; + param_ptr[VALETON_PARAM_DLY_PARAM_0].Max = 100; + + // Time + param_ptr[VALETON_PARAM_DLY_PARAM_1].Min = 0; + param_ptr[VALETON_PARAM_DLY_PARAM_1].Max = 1000; + + // F.Back + param_ptr[VALETON_PARAM_DLY_PARAM_2].Min = 0; + param_ptr[VALETON_PARAM_DLY_PARAM_2].Max = 100; + + // S-Depth + param_ptr[VALETON_PARAM_DLY_PARAM_3].Min = 0; + param_ptr[VALETON_PARAM_DLY_PARAM_3].Max = 100; + + // S-Rate + param_ptr[VALETON_PARAM_DLY_PARAM_4].Min = 0; + param_ptr[VALETON_PARAM_DLY_PARAM_4].Max = 100; + + // Trail + param_ptr[VALETON_PARAM_DLY_PARAM_5].Min = 0; + param_ptr[VALETON_PARAM_DLY_PARAM_5].Max = 1; + } break; + } + + // Reverb + switch ((int)param_ptr[VALETON_PARAM_RVB_TYPE].Value) + { + case VALETON_EFFECT_RVB_AIR: // fallthrough + case VALETON_EFFECT_RVB_PLATE: + { + // Mix + param_ptr[VALETON_PARAM_RVB_PARAM_0].Min = 0; + param_ptr[VALETON_PARAM_RVB_PARAM_0].Max = 100; + + // Decay + param_ptr[VALETON_PARAM_RVB_PARAM_1].Min = 0; + param_ptr[VALETON_PARAM_RVB_PARAM_1].Max = 100; + + // Damp + param_ptr[VALETON_PARAM_RVB_PARAM_2].Min = 0; + param_ptr[VALETON_PARAM_RVB_PARAM_2].Max = 100; + + // Trail + param_ptr[VALETON_PARAM_RVB_PARAM_3].Min = 0; + param_ptr[VALETON_PARAM_RVB_PARAM_3].Max = 1; + } break; + + case VALETON_EFFECT_RVB_ROOM: // fallthrough + case VALETON_EFFECT_RVB_HALL: // fallthrough + case VALETON_EFFECT_RVB_CHURCH: // fallthrough + case VALETON_EFFECT_RVB_PLATE_L: // fallthrough + case VALETON_EFFECT_RVB_SPRING: // fallthrough + case VALETON_EFFECT_RVB_N_STAR: // fallthrough + case VALETON_EFFECT_RVB_DEEPSEA: + { + // Mix + param_ptr[VALETON_PARAM_RVB_PARAM_0].Min = 0; + param_ptr[VALETON_PARAM_RVB_PARAM_0].Max = 100; + + // Decay + param_ptr[VALETON_PARAM_RVB_PARAM_1].Min = 0; + param_ptr[VALETON_PARAM_RVB_PARAM_1].Max = 100; + + // Trail + param_ptr[VALETON_PARAM_RVB_PARAM_2].Min = 0; + param_ptr[VALETON_PARAM_RVB_PARAM_2].Max = 1; + } break; + + case VALETON_EFFECT_RVB_SWEET_SPACE: + { + // Mix + param_ptr[VALETON_PARAM_RVB_PARAM_0].Min = 0; + param_ptr[VALETON_PARAM_RVB_PARAM_0].Max = 100; + + // Decay + param_ptr[VALETON_PARAM_RVB_PARAM_1].Min = 0; + param_ptr[VALETON_PARAM_RVB_PARAM_1].Max = 100; + + // Damp + param_ptr[VALETON_PARAM_RVB_PARAM_2].Min = 0; + param_ptr[VALETON_PARAM_RVB_PARAM_2].Max = 100; + + // Mod + param_ptr[VALETON_PARAM_RVB_PARAM_3].Min = 0; + param_ptr[VALETON_PARAM_RVB_PARAM_3].Max = 100; + + // Trail + param_ptr[VALETON_PARAM_RVB_PARAM_4].Min = 0; + param_ptr[VALETON_PARAM_RVB_PARAM_4].Max = 1; + } break; + } + + // NS + // all models have same params + // Gain + param_ptr[VALETON_PARAM_NS_PARAM_0].Min = 0; + param_ptr[VALETON_PARAM_NS_PARAM_0].Max = 100; + + // Vol + param_ptr[VALETON_PARAM_NS_PARAM_1].Min = 0; + param_ptr[VALETON_PARAM_NS_PARAM_1].Max = 100; + + // Bass + param_ptr[VALETON_PARAM_NS_PARAM_2].Min = 0; + param_ptr[VALETON_PARAM_NS_PARAM_2].Max = 100; + + // Mid + param_ptr[VALETON_PARAM_NS_PARAM_3].Min = 0; + param_ptr[VALETON_PARAM_NS_PARAM_3].Max = 100; + + // Treble + param_ptr[VALETON_PARAM_NS_PARAM_4].Min = 0; + param_ptr[VALETON_PARAM_NS_PARAM_4].Max = 100; + + valeton_params_release_locked_access(); + } +} + /**************************************************************************** * NAME: * DESCRIPTION: diff --git a/source/main/valeton_params.h b/source/main/valeton_params.h index 94896d76..46f10710 100644 --- a/source/main/valeton_params.h +++ b/source/main/valeton_params.h @@ -28,10 +28,14 @@ enum ValetonEffectBlocks VALETON_EFFECT_BLOCK_NR, VALETON_EFFECT_BLOCK_PRE, VALETON_EFFECT_BLOCK_DST, + VALETON_EFFECT_BLOCK_AMP, + VALETON_EFFECT_BLOCK_CAB, VALETON_EFFECT_BLOCK_EQ, VALETON_EFFECT_BLOCK_MOD, VALETON_EFFECT_BLOCK_DLY, - VALETON_EFFECT_BLOCK_RVB + VALETON_EFFECT_BLOCK_RVB, + VALETON_EFFECT_BLOCK_NS, + VALETON_EFFECT_BLOCK_LAST }; enum ValetonValetonEffectNR @@ -85,7 +89,7 @@ enum ValetonEffectMod VALETON_EFFECT_MOD_O_PHASE, VALETON_EFFECT_MOD_M_VIBE, VALETON_EFFECT_MOD_V_ROTO, - VALETON_EFFECT_MOD_VIBRATOR, + VALETON_EFFECT_MOD_VIBRATO, VALETON_EFFECT_MOD_O_TREM, VALETON_EFFECT_MOD_SINE_TREM, VALETON_EFFECT_MOD_BIAS_TREM @@ -119,293 +123,212 @@ enum ValetonEffectRvb VALETON_EFFECT_RVB_SWEET_SPACE }; +enum ValetonEffectCab +{ + VALETON_EFFECT_CAB_TWD_CP, + VALETON_EFFECT_CAB_DARK_VIT, + VALETON_EFFECT_CAB_FOXY_1X12, + VALETON_EFFECT_CAB_L_STAR_1X12, + VALETON_EFFECT_CAB_DARK_CS_2X12, + VALETON_EFFECT_CAB_DARK_TWIN_2X12, + VALETON_EFFECT_CAB_SUP_STAR_2X12, + VALETON_EFFECT_CAB_J_120_2X12, + VALETON_EFFECT_CAB_FOXY_2X12, + VALETON_EFFECT_CAB_UK_GRN_2X12, + VALETON_EFFECT_CAB_UK_GRN_4X12, + VALETON_EFFECT_CAB_BOG_4X12, + VALETON_EFFECT_CAB_DIZZ_4X12, + VALETON_EFFECT_CAB_EV_4X12, + VALETON_EFFECT_CAB_SOLO_4X12, + VALETON_EFFECT_CAB_MESS_4X12, + VALETON_EFFECT_CAB_EAGLE_4X12, + VALETON_EFFECT_CAB_JUICE_4X12, + VALETON_EFFECT_CAB_BELLMAN_2X12, + VALETON_EFFECT_CAB_AMPG_4X10 +}; + +enum ValetonEffectAmp +{ + VALETON_EFFECT_AMP_TWEEDY, + VALETON_EFFECT_AMP_BELLMAN_59N, + VALETON_EFFECT_AMP_DARK_TWIN, + VALETON_EFFECT_AMP_FOXY_30N, + VALETON_EFFECT_AMP_J_120_CL, + VALETON_EFFECT_AMP_MATCH_CL, + VALETON_EFFECT_AMP_L_STAR_CL, + VALETON_EFFECT_AMP_UK_45, + VALETON_EFFECT_AMP_UK_50JP, + VALETON_EFFECT_AMP_UK_800, + VALETON_EFFECT_AMP_BELLMAN_59B, + VALETON_EFFECT_AMP_FOXY_30TB, + VALETON_EFFECT_AMP_SUPDUAL_OD, + VALETON_EFFECT_AMP_SOLO100_OD, + VALETON_EFFECT_AMP_Z38_OD, + VALETON_EFFECT_AMP_BAD_KT_OD, + VALETON_EFFECT_AMP_JUICE_R100, + VALETON_EFFECT_AMP_DIZZ_VH, + VALETON_EFFECT_AMP_DIZZ_VH_PLUS, + VALETON_EFFECT_AMP_EAGLE_120, + VALETON_EFFECT_AMP_EV_51, + VALETON_EFFECT_AMP_SOLO100_LD, + VALETON_EFFECT_AMP_MESS_DUALV, + VALETON_EFFECT_AMP_MESS_DUALM, + VALETON_EFFECT_AMP_POWER_LD, + VALETON_EFFECT_AMP_FLAGMAN_PLUS, + VALETON_EFFECT_AMP_BOG_REDV, + VALETON_EFFECT_AMP_CLASSIC_BASS, + VALETON_EFFECT_AMP_FOXY_BASS, + VALETON_EFFECT_AMP_MESS_BASS, + VALETON_EFFECT_AMP_AC_PRE1, + VALETON_EFFECT_AMP_AC_PRE2 +}; + +// markers for special params +#define VALETON_BLOCK_SELECTION 0xFF // select which Pedal in block +#define VALETON_BLOCK_ENABLE 0xFE // enable block + enum ValetonParameters { - //**** NR **** - VALETON_PARAM_NR_ENABLE, - VALETON_PARAM_NR_THRESHOLD, + // block enables + VALETON_PARAM_NR_ENABLE, + VALETON_PARAM_PRE_ENABLE, + VALETON_PARAM_DIST_ENABLE, + VALETON_PARAM_AMP_ENABLE, + VALETON_PARAM_CAB_ENABLE, + VALETON_PARAM_EQ_ENABLE, + VALETON_PARAM_MOD_ENABLE, + VALETON_PARAM_DLY_ENABLE, + VALETON_PARAM_RVB_ENABLE, + VALETON_PARAM_NS_ENABLE, + + // models + VALETON_PARAM_NR_TYPE, + VALETON_PARAM_PRE_TYPE, + VALETON_PARAM_DIST_TYPE, + VALETON_PARAM_AMP_TYPE, + VALETON_PARAM_CAB_TYPE, + VALETON_PARAM_EQ_TYPE, + VALETON_PARAM_MOD_TYPE, + VALETON_PARAM_DLY_TYPE, + VALETON_PARAM_RVB_TYPE, + VALETON_PARAM_NS_TYPE, + + // general stuff + VALETON_PARAM_PATCH_VOLUME, + VALETON_PARAM_EFFECT_SLOT_0, + VALETON_PARAM_EFFECT_SLOT_1, + VALETON_PARAM_EFFECT_SLOT_2, + VALETON_PARAM_EFFECT_SLOT_3, + VALETON_PARAM_EFFECT_SLOT_4, + VALETON_PARAM_EFFECT_SLOT_5, + VALETON_PARAM_EFFECT_SLOT_6, + VALETON_PARAM_EFFECT_SLOT_7, + VALETON_PARAM_EFFECT_SLOT_8, + VALETON_PARAM_EFFECT_SLOT_9, + + // params + //**** NR **** + VALETON_PARAM_NR_PARAM_0, + VALETON_PARAM_NR_PARAM_1, + VALETON_PARAM_NR_PARAM_2, + VALETON_PARAM_NR_PARAM_3, + VALETON_PARAM_NR_PARAM_4, + VALETON_PARAM_NR_PARAM_5, + VALETON_PARAM_NR_PARAM_6, + VALETON_PARAM_NR_PARAM_7, //**** Pre **** - VALETON_PARAM_PRE_ENABLE, - VALETON_PARAM_PRE_TYPE, - // Comp - VALETON_PARAM_PRE_COMP_SUSTAIN, - VALETON_PARAM_PRE_COMP_VOL, - // Comp4 - VALETON_PARAM_PRE_COMP4_SUSTAIN, - VALETON_PARAM_PRE_COMP4_ATTACK, - VALETON_PARAM_PRE_COMP4_VOL, - VALETON_PARAM_PRE_COMP4_CLIP, - // Boost - VALETON_PARAM_PRE_BOOST_GAIN, - VALETON_PARAM_PRE_BOOST_3DB, - VALETON_PARAM_PRE_BOOST_BRIGHT, - // Micro Boost - VALETON_PARAM_PRE_MICRO_BOOST_GAIN, - // B-Boost - VALETON_PARAM_PRE_B_BOOST_GAIN, - VALETON_PARAM_PRE_B_BOOST_VOL, - VALETON_PARAM_PRE_B_BOOST_BASS, - VALETON_PARAM_PRE_B_BOOST_TREBLE, - // Toucher - VALETON_PARAM_PRE_TOUCHER_SENSE, - VALETON_PARAM_PRE_TOUCHER_RANGE, - VALETON_PARAM_PRE_TOUCHER_Q, - VALETON_PARAM_PRE_TOUCHER_MIX, - VALETON_PARAM_PRE_TOUCHER_MODE, - // Crier - VALETON_PARAM_PRE_CRIER_DEPTH, - VALETON_PARAM_PRE_CRIER_RATE, - VALETON_PARAM_PRE_CRIER_VOL, - VALETON_PARAM_PRE_CRIER_LOW, - VALETON_PARAM_PRE_CRIER_Q, - // Octa - VALETON_PARAM_PRE_OCTA_LOW, - VALETON_PARAM_PRE_OCTA_HIGH, - VALETON_PARAM_PRE_OCTA_DRY, - // Pitch - VALETON_PARAM_PRE_PITCH_HIGH, - VALETON_PARAM_PRE_PITCH_LOW, - VALETON_PARAM_PRE_PITCH_DRY, - VALETON_PARAM_PRE_PITCH_H_VOL, - VALETON_PARAM_PRE_PITCH_L_VOL, - // Detune - VALETON_PARAM_PRE_DETUNE_DETUNE, - VALETON_PARAM_PRE_DETUNE_WET, - VALETON_PARAM_PRE_DETUNE_DRY, + VALETON_PARAM_PRE_PARAM_0, + VALETON_PARAM_PRE_PARAM_1, + VALETON_PARAM_PRE_PARAM_2, + VALETON_PARAM_PRE_PARAM_3, + VALETON_PARAM_PRE_PARAM_4, + VALETON_PARAM_PRE_PARAM_5, + VALETON_PARAM_PRE_PARAM_6, + VALETON_PARAM_PRE_PARAM_7, //**** Dist **** - VALETON_PARAM_DIST_ENABLE, - VALETON_PARAM_DIST_TYPE, - // Green OD - VALETON_PARAM_DIST_GREEN_OD_GAIN, - VALETON_PARAM_DIST_GREEN_OD_TONE, - VALETON_PARAM_DIST_GREEN_OD_VOL, - // Yellow OD - VALETON_PARAM_DIST_YELLOW_OD_GAIN, - VALETON_PARAM_DIST_YELLOW_OD_VOL, - // Super OD - VALETON_PARAM_DIST_SUPER_OD_GAIN, - VALETON_PARAM_DIST_SUPER_OD_TONE, - VALETON_PARAM_DIST_SUPER_OD_VOL, - // SM Dist - VALETON_PARAM_DIST_SM_DIST_GAIN, - VALETON_PARAM_DIST_SM_DIST_TONE, - VALETON_PARAM_DIST_SM_DIST_VOL, - // Plustortion - VALETON_PARAM_DIST_PLUSTORTION_GAIN, - VALETON_PARAM_DIST_PLUSTORTION_VOL, - // La Charger - VALETON_PARAM_DIST_LA_CHARGER_GAIN, - VALETON_PARAM_DIST_LA_CHARGER_TONE, - VALETON_PARAM_DIST_LA_CHARGER_VOL, - // Darktale - VALETON_PARAM_DIST_DARKTALE_GAIN, - VALETON_PARAM_DIST_DARKTALE_FILTER, - VALETON_PARAM_DIST_DARKTALE_VOL, - // Sora Fuzz - VALETON_PARAM_DIST_SORA_FUZZ_FUZZ, - VALETON_PARAM_DIST_SORA_FUZZ_VOL, - // Red Haze - VALETON_PARAM_DIST_RED_HAZE_FUZZ, - VALETON_PARAM_DIST_RED_HAZE_VOL, - // Bass OD - VALETON_PARAM_DIST_BASS_OD_GAIN, - VALETON_PARAM_DIST_BASS_OD_BLEND, - VALETON_PARAM_DIST_BASS_OD_VOL, - VALETON_PARAM_DIST_BASS_OD_BASS, - VALETON_PARAM_DIST_BASS_OD_TREBLE, - - //**** EQ **** - VALETON_PARAM_EQ_ENABLE, - VALETON_PARAM_EQ_TYPE, - // Guitar EQ 1 - VALETON_PARAM_EQ_GUITAR_EQ1_125HZ, - VALETON_PARAM_EQ_GUITAR_EQ1_400HZ, - VALETON_PARAM_EQ_GUITAR_EQ1_800HZ, - VALETON_PARAM_EQ_GUITAR_EQ1_1600HZ, - VALETON_PARAM_EQ_GUITAR_EQ1_4000HZ, - VALETON_PARAM_EQ_GUITAR_EQ1_VOL, - // Guitar EQ 2 - VALETON_PARAM_EQ_GUITAR_EQ2_100HZ, - VALETON_PARAM_EQ_GUITAR_EQ2_500HZ, - VALETON_PARAM_EQ_GUITAR_EQ2_1000HZ, - VALETON_PARAM_EQ_GUITAR_EQ2_3000HZ, - VALETON_PARAM_EQ_GUITAR_EQ2_6000HZ, - VALETON_PARAM_EQ_GUITAR_EQ2_VOL, - // Base EQ 1 - VALETON_PARAM_EQ_BASS_EQ1_33HZ, - VALETON_PARAM_EQ_BASS_EQ1_150HZ, - VALETON_PARAM_EQ_BASS_EQ1_600HZ, - VALETON_PARAM_EQ_BASS_EQ1_2000HZ, - VALETON_PARAM_EQ_BASS_EQ1_8000HZ, - VALETON_PARAM_EQ_BASS_EQ1_VOL, - // Base EQ 2 - VALETON_PARAM_EQ_BASS_EQ2_50HZ, - VALETON_PARAM_EQ_BASS_EQ2_120HZ, - VALETON_PARAM_EQ_BASS_EQ2_400HZ, - VALETON_PARAM_EQ_BASS_EQ2_800HZ, - VALETON_PARAM_EQ_BASS_EQ2_4500HZ, - VALETON_PARAM_EQ_BASS_EQ2_VOL, - // Mess EQ - VALETON_PARAM_EQ_MESS_EQ_80HZ, - VALETON_PARAM_EQ_MESS_EQ_240HZ, - VALETON_PARAM_EQ_MESS_EQ_750HZ, - VALETON_PARAM_EQ_MESS_EQ_2200HZ, - VALETON_PARAM_EQ_MESS_EQ_6600HZ, + VALETON_PARAM_DIST_PARAM_0, + VALETON_PARAM_DIST_PARAM_1, + VALETON_PARAM_DIST_PARAM_2, + VALETON_PARAM_DIST_PARAM_3, + VALETON_PARAM_DIST_PARAM_4, + VALETON_PARAM_DIST_PARAM_5, + VALETON_PARAM_DIST_PARAM_6, + VALETON_PARAM_DIST_PARAM_7, + + //**** Amp **** + VALETON_PARAM_AMP_PARAM_0, + VALETON_PARAM_AMP_PARAM_1, + VALETON_PARAM_AMP_PARAM_2, + VALETON_PARAM_AMP_PARAM_3, + VALETON_PARAM_AMP_PARAM_4, + VALETON_PARAM_AMP_PARAM_5, + VALETON_PARAM_AMP_PARAM_6, + VALETON_PARAM_AMP_PARAM_7, + + //**** Cab **** + VALETON_PARAM_CAB_PARAM_0, + VALETON_PARAM_CAB_PARAM_1, + VALETON_PARAM_CAB_PARAM_2, + VALETON_PARAM_CAB_PARAM_3, + VALETON_PARAM_CAB_PARAM_4, + VALETON_PARAM_CAB_PARAM_5, + VALETON_PARAM_CAB_PARAM_6, + VALETON_PARAM_CAB_PARAM_7, + + //**** EQ **** + VALETON_PARAM_EQ_PARAM_0, + VALETON_PARAM_EQ_PARAM_1, + VALETON_PARAM_EQ_PARAM_2, + VALETON_PARAM_EQ_PARAM_3, + VALETON_PARAM_EQ_PARAM_4, + VALETON_PARAM_EQ_PARAM_5, + VALETON_PARAM_EQ_PARAM_6, + VALETON_PARAM_EQ_PARAM_7, //**** Mod **** - VALETON_PARAM_MOD_ENABLE, - VALETON_PARAM_MOD_TYPE, - // A Chorus - VALETON_PARAM_MOD_A_CHORUS_DEPTH, - VALETON_PARAM_MOD_A_CHORUS_RATE, - VALETON_PARAM_MOD_A_CHORUS_TONE, - // B Chorus - VALETON_PARAM_MOD_B_CHORUS_DEPTH, - VALETON_PARAM_MOD_B_CHORUS_RATE, - VALETON_PARAM_MOD_B_CHORUS_VOL, - // Jet - VALETON_PARAM_MOD_JET_DEPTH, - VALETON_PARAM_MOD_JET_RATE, - VALETON_PARAM_MOD_JET_PDELAY, - VALETON_PARAM_MOD_JET_FBACK, - // N-Jet - VALETON_PARAM_MOD_N_JET_DEPTH, - VALETON_PARAM_MOD_N_JET_RATE, - VALETON_PARAM_MOD_N_JET_PDELAY, - VALETON_PARAM_MOD_N_JET_FBACK, - // O-Phase - VALETON_PARAM_MOD_O_PHASE_RATE, - // M-Vibe - VALETON_PARAM_MOD_M_VIBE_DEPTH, - VALETON_PARAM_MOD_M_VIBE_RATE, - // V-Roto - VALETON_PARAM_MOD_V_ROTO_DEPTH, - VALETON_PARAM_MOD_V_ROTO_RATE, - // Vibrato - VALETON_PARAM_MOD_VIBRATO_DEPTH, - VALETON_PARAM_MOD_VIBRATO_RATE, - VALETON_PARAM_MOD_VIBRATO_VOL, - // O-Trem - VALETON_PARAM_OD_O_TREM_DEPTH, - VALETON_PARAM_OD_O_TREM_RATE, - // Sine Trem - VALETON_PARAM_MOD_SINE_TREM_DEPTH, - VALETON_PARAM_MOD_SINE_TREM_RATE, - VALETON_PARAM_MOD_SINE_TREM_VOL, - // Bias Trem - VALETON_PARAM_OD_BIAS_TREM_DEPTH, - VALETON_PARAM_OD_BIAS_TREM_RATE, - VALETON_PARAM_OD_BIAS_TREM_VOL, - VALETON_PARAM_OD_BIAS_TREM_BIAS, + VALETON_PARAM_MOD_PARAM_0, + VALETON_PARAM_MOD_PARAM_1, + VALETON_PARAM_MOD_PARAM_2, + VALETON_PARAM_MOD_PARAM_3, + VALETON_PARAM_MOD_PARAM_4, + VALETON_PARAM_MOD_PARAM_5, + VALETON_PARAM_MOD_PARAM_6, + VALETON_PARAM_MOD_PARAM_7, //**** Delay **** - VALETON_PARAM_DLY_ENABLE, - VALETON_PARAM_DLY_TYPE, - // Pure - VALETON_PARAM_DLY_PURE_MIX, - VALETON_PARAM_DLY_PURE_TIME, - VALETON_PARAM_DLY_PURE_FEEDBACK, - VALETON_PARAM_DLY_PURE_TRAIL, - // Analog - VALETON_PARAM_DLY_ANALOG_MIX, - VALETON_PARAM_DLY_ANALOG_TIME, - VALETON_PARAM_DLY_ANALOG_FEEDBACK, - VALETON_PARAM_DLY_ANALOG_TRAIL, - // Slapback - VALETON_PARAM_DLY_SLAPBACK_MIX, - VALETON_PARAM_DLY_SLAPBACK_TIME, - VALETON_PARAM_DLY_SLAPBACK_FEEDBACK, - VALETON_PARAM_DLY_SLAPBACK_TRAIL, - // Sweet Echo - VALETON_PARAM_DLY_SWEET_ECHO_MIX, - VALETON_PARAM_DLY_SWEET_ECHO_TIME, - VALETON_PARAM_DLY_SWEET_ECHO_FEEDBACK, - VALETON_PARAM_DLY_SWEET_ECHO_TRAIL, - // Tape - VALETON_PARAM_DLY_TAPE_MIX, - VALETON_PARAM_DLY_TAPE_TIME, - VALETON_PARAM_DLY_TAPE_FEEDBACK, - VALETON_PARAM_DLY_TAPE_TRAIL, - // Tube - VALETON_PARAM_DLY_TUBE_MIX, - VALETON_PARAM_DLY_TUBE_TIME, - VALETON_PARAM_DLY_TUBE_FEEDBACK, - VALETON_PARAM_DLY_TUBE_TRAIL, - // Rev Echo - VALETON_PARAM_DLY_REV_ECHO_MIX, - VALETON_PARAM_DLY_REV_ECHO_TIME, - VALETON_PARAM_DLY_REV_ECHO_FEEDBACK, - VALETON_PARAM_DLY_REV_ECHO_TRAIL, - // Ring Echo - VALETON_PARAM_DLY_RING_ECHO_MIX, - VALETON_PARAM_DLY_RING_ECHO_TIME, - VALETON_PARAM_DLY_RING_ECHO_FEEDBACK, - VALETON_PARAM_DLY_RING_ECHO_R_MIX, - VALETON_PARAM_DLY_RING_ECHO_FREQ, - VALETON_PARAM_DLY_RING_ECHO_TONE, - VALETON_PARAM_DLY_RING_ECHO_TRAIL, - // Sweep Echo - VALETON_PARAM_DLY_SWEEP_ECHO_MIX, - VALETON_PARAM_DLY_SWEEP_ECHO_TIME, - VALETON_PARAM_DLY_SWEEP_ECHO_FBACK, - VALETON_PARAM_DLY_SWEEP_ECHO_S_DEPTH, - VALETON_PARAM_DLY_SWEEP_ECHO_S_RATE, - VALETON_PARAM_DLY_SWEEP_ECHO_TRAIL, - // Ping Pong - VALETON_PARAM_DLY_PING_PONG_MIX, - VALETON_PARAM_DLY_PING_PONG_TIME, - VALETON_PARAM_DLY_PING_PONG_FEEDBACK, - VALETON_PARAM_DLY_PING_PONG_TRAIL, + VALETON_PARAM_DLY_PARAM_0, + VALETON_PARAM_DLY_PARAM_1, + VALETON_PARAM_DLY_PARAM_2, + VALETON_PARAM_DLY_PARAM_3, + VALETON_PARAM_DLY_PARAM_4, + VALETON_PARAM_DLY_PARAM_5, + VALETON_PARAM_DLY_PARAM_6, + VALETON_PARAM_DLY_PARAM_7, //**** Reverb **** - VALETON_PARAM_RVB_ENABLE, - VALETON_PARAM_RVB_TYPE, - // Air - VALETON_PARAM_RVB_AIR_MIX, - VALETON_PARAM_RVB_AIR_DECAY, - VALETON_PARAM_RVB_AIR_DAMP, - VALETON_PARAM_RVB_AIR_TRAIL, - // Room - VALETON_PARAM_RVB_ROOM_MIX, - VALETON_PARAM_RVB_ROOM_DECAY, - VALETON_PARAM_RVB_ROOM_TRAIL, - // Hall - VALETON_PARAM_RVB_HALL_MIX, - VALETON_PARAM_RVB_HALL_DECAY, - VALETON_PARAM_RVB_HALL_TRAIL, - // Church - VALETON_PARAM_RVB_CHURCH_MIX, - VALETON_PARAM_RVB_CHURCH_DECAY, - VALETON_PARAM_RVB_CHURCH_TRAIL, - // Plate L - VALETON_PARAM_RVB_PLATE_L_MIX, - VALETON_PARAM_RVB_PLATE_L_DECAY, - VALETON_PARAM_RVB_PLATE_L_TRAIL, - // Plate - VALETON_PARAM_RVB_PLATE_MIX, - VALETON_PARAM_RVB_PLATE_DECAY, - VALETON_PARAM_RVB_PLATE_DAMP, - VALETON_PARAM_RVB_PLATE_TRAIL, - // Spring - VALETON_PARAM_RVB_SPRING_MIX, - VALETON_PARAM_RVB_SPRING_DECAY, - VALETON_PARAM_RVB_SPRING_TRAIL, - // N-Star - VALETON_PARAM_RVB_N_STAR_MIX, - VALETON_PARAM_RVB_N_STAR_DECAY, - VALETON_PARAM_RVB_N_STAR_TRAIL, - // Deepsea - VALETON_PARAM_RVB_DEEPSEA_MIX, - VALETON_PARAM_RVB_DEEPSEA_DECAY, - VALETON_PARAM_RVB_DEEPSEA_TRAIL, - // Sweet Space - VALETON_PARAM_RVB_SWEET_SPACE_MIX, - VALETON_PARAM_RVB_SWEET_SPACE_DECAY, - VALETON_PARAM_RVB_SWEET_SPACE_DAMP, - VALETON_PARAM_RVB_SWEET_SPACE_MOD, - VALETON_PARAM_RVB_SWEET_SPACE_TRAIL, + VALETON_PARAM_RVB_PARAM_0, + VALETON_PARAM_RVB_PARAM_1, + VALETON_PARAM_RVB_PARAM_2, + VALETON_PARAM_RVB_PARAM_3, + VALETON_PARAM_RVB_PARAM_4, + VALETON_PARAM_RVB_PARAM_5, + VALETON_PARAM_RVB_PARAM_6, + VALETON_PARAM_RVB_PARAM_7, + + //**** NS **** + VALETON_PARAM_NS_PARAM_0, + VALETON_PARAM_NS_PARAM_1, + VALETON_PARAM_NS_PARAM_2, + VALETON_PARAM_NS_PARAM_3, + VALETON_PARAM_NS_PARAM_4, + VALETON_PARAM_NS_PARAM_5, + VALETON_PARAM_NS_PARAM_6, + VALETON_PARAM_NS_PARAM_7, + VALETON_PARAM_NS_PARAM_8, + VALETON_PARAM_NS_PARAM_9, + VALETON_PARAM_NS_PARAM_10, // must be last actual parameter VALETON_PARAM_LAST, @@ -414,9 +337,10 @@ enum ValetonParameters VALETON_GLOBAL_BPM, VALETON_GLOBAL_INPUT_TRIM, VALETON_GLOBAL_CABSIM_BYPASS, - VALETON_GLOBAL_TUNING_REFERENCE, - VALETON_GLOBAL_BYPASS, VALETON_GLOBAL_MASTER_VOLUME, + VALETON_GLOBAL_RECORD_LEVEL, + VALETON_GLOBAL_MONITOR_LEVEL, + VALETON_GLOBAL_BT_LEVEL, // must be last actual global VALETON_GLOBAL_LAST @@ -432,6 +356,7 @@ esp_err_t valeton_params_release_locked_access(void); esp_err_t valeton_params_get_min_max(uint16_t param_index, float* min, float* max); esp_err_t valeton_dump_parameters(void); float valeton_params_clamp_value(uint16_t param_index, float value); +void valeton_params_set_min_max(void); #ifdef __cplusplus } /*extern "C"*/ diff --git a/source/main/web/amp_disabled.png b/source/main/web/amp_disabled.png new file mode 100644 index 00000000..c9bf9687 Binary files /dev/null and b/source/main/web/amp_disabled.png differ diff --git a/source/main/web/amp_off.png b/source/main/web/amp_off.png new file mode 100644 index 00000000..7bf6c975 Binary files /dev/null and b/source/main/web/amp_off.png differ diff --git a/source/main/web/amp_on.png b/source/main/web/amp_on.png new file mode 100644 index 00000000..b014802f Binary files /dev/null and b/source/main/web/amp_on.png differ diff --git a/source/main/web/bootstrap.css b/source/main/web/bootstrap.css new file mode 100644 index 00000000..1d8bac41 --- /dev/null +++ b/source/main/web/bootstrap.css @@ -0,0 +1,6 @@ +@charset "UTF-8";/*! + * Bootstrap v5.3.8 (https://getbootstrap.com/) + * Copyright 2011-2025 The Bootstrap Authors + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + */:root,[data-bs-theme=light]{--bs-blue:#0d6efd;--bs-indigo:#6610f2;--bs-purple:#6f42c1;--bs-pink:#d63384;--bs-red:#dc3545;--bs-orange:#fd7e14;--bs-yellow:#ffc107;--bs-green:#198754;--bs-teal:#20c997;--bs-cyan:#0dcaf0;--bs-black:#000;--bs-white:#fff;--bs-gray:#6c757d;--bs-gray-dark:#343a40;--bs-gray-100:#f8f9fa;--bs-gray-200:#e9ecef;--bs-gray-300:#dee2e6;--bs-gray-400:#ced4da;--bs-gray-500:#adb5bd;--bs-gray-600:#6c757d;--bs-gray-700:#495057;--bs-gray-800:#343a40;--bs-gray-900:#212529;--bs-primary:#0d6efd;--bs-secondary:#6c757d;--bs-success:#198754;--bs-info:#0dcaf0;--bs-warning:#ffc107;--bs-danger:#dc3545;--bs-light:#f8f9fa;--bs-dark:#212529;--bs-primary-rgb:13,110,253;--bs-secondary-rgb:108,117,125;--bs-success-rgb:25,135,84;--bs-info-rgb:13,202,240;--bs-warning-rgb:255,193,7;--bs-danger-rgb:220,53,69;--bs-light-rgb:248,249,250;--bs-dark-rgb:33,37,41;--bs-primary-text-emphasis:#052c65;--bs-secondary-text-emphasis:#2b2f32;--bs-success-text-emphasis:#0a3622;--bs-info-text-emphasis:#055160;--bs-warning-text-emphasis:#664d03;--bs-danger-text-emphasis:#58151c;--bs-light-text-emphasis:#495057;--bs-dark-text-emphasis:#495057;--bs-primary-bg-subtle:#cfe2ff;--bs-secondary-bg-subtle:#e2e3e5;--bs-success-bg-subtle:#d1e7dd;--bs-info-bg-subtle:#cff4fc;--bs-warning-bg-subtle:#fff3cd;--bs-danger-bg-subtle:#f8d7da;--bs-light-bg-subtle:#fcfcfd;--bs-dark-bg-subtle:#ced4da;--bs-primary-border-subtle:#9ec5fe;--bs-secondary-border-subtle:#c4c8cb;--bs-success-border-subtle:#a3cfbb;--bs-info-border-subtle:#9eeaf9;--bs-warning-border-subtle:#ffe69c;--bs-danger-border-subtle:#f1aeb5;--bs-light-border-subtle:#e9ecef;--bs-dark-border-subtle:#adb5bd;--bs-white-rgb:255,255,255;--bs-black-rgb:0,0,0;--bs-font-sans-serif:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue","Noto Sans","Liberation Sans",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--bs-font-monospace:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--bs-gradient:linear-gradient(180deg, rgba(255, 255, 255, 0.15), rgba(255, 255, 255, 0));--bs-body-font-family:var(--bs-font-sans-serif);--bs-body-font-size:1rem;--bs-body-font-weight:400;--bs-body-line-height:1.5;--bs-body-color:#212529;--bs-body-color-rgb:33,37,41;--bs-body-bg:#fff;--bs-body-bg-rgb:255,255,255;--bs-emphasis-color:#000;--bs-emphasis-color-rgb:0,0,0;--bs-secondary-color:rgba(33, 37, 41, 0.75);--bs-secondary-color-rgb:33,37,41;--bs-secondary-bg:#e9ecef;--bs-secondary-bg-rgb:233,236,239;--bs-tertiary-color:rgba(33, 37, 41, 0.5);--bs-tertiary-color-rgb:33,37,41;--bs-tertiary-bg:#f8f9fa;--bs-tertiary-bg-rgb:248,249,250;--bs-heading-color:inherit;--bs-link-color:#0d6efd;--bs-link-color-rgb:13,110,253;--bs-link-decoration:underline;--bs-link-hover-color:#0a58ca;--bs-link-hover-color-rgb:10,88,202;--bs-code-color:#d63384;--bs-highlight-color:#212529;--bs-highlight-bg:#fff3cd;--bs-border-width:1px;--bs-border-style:solid;--bs-border-color:#dee2e6;--bs-border-color-translucent:rgba(0, 0, 0, 0.175);--bs-border-radius:0.375rem;--bs-border-radius-sm:0.25rem;--bs-border-radius-lg:0.5rem;--bs-border-radius-xl:1rem;--bs-border-radius-xxl:2rem;--bs-border-radius-2xl:var(--bs-border-radius-xxl);--bs-border-radius-pill:50rem;--bs-box-shadow:0 0.5rem 1rem rgba(0, 0, 0, 0.15);--bs-box-shadow-sm:0 0.125rem 0.25rem rgba(0, 0, 0, 0.075);--bs-box-shadow-lg:0 1rem 3rem rgba(0, 0, 0, 0.175);--bs-box-shadow-inset:inset 0 1px 2px rgba(0, 0, 0, 0.075);--bs-focus-ring-width:0.25rem;--bs-focus-ring-opacity:0.25;--bs-focus-ring-color:rgba(13, 110, 253, 0.25);--bs-form-valid-color:#198754;--bs-form-valid-border-color:#198754;--bs-form-invalid-color:#dc3545;--bs-form-invalid-border-color:#dc3545}[data-bs-theme=dark]{color-scheme:dark;--bs-body-color:#dee2e6;--bs-body-color-rgb:222,226,230;--bs-body-bg:#212529;--bs-body-bg-rgb:33,37,41;--bs-emphasis-color:#fff;--bs-emphasis-color-rgb:255,255,255;--bs-secondary-color:rgba(222, 226, 230, 0.75);--bs-secondary-color-rgb:222,226,230;--bs-secondary-bg:#343a40;--bs-secondary-bg-rgb:52,58,64;--bs-tertiary-color:rgba(222, 226, 230, 0.5);--bs-tertiary-color-rgb:222,226,230;--bs-tertiary-bg:#2b3035;--bs-tertiary-bg-rgb:43,48,53;--bs-primary-text-emphasis:#6ea8fe;--bs-secondary-text-emphasis:#a7acb1;--bs-success-text-emphasis:#75b798;--bs-info-text-emphasis:#6edff6;--bs-warning-text-emphasis:#ffda6a;--bs-danger-text-emphasis:#ea868f;--bs-light-text-emphasis:#f8f9fa;--bs-dark-text-emphasis:#dee2e6;--bs-primary-bg-subtle:#031633;--bs-secondary-bg-subtle:#161719;--bs-success-bg-subtle:#051b11;--bs-info-bg-subtle:#032830;--bs-warning-bg-subtle:#332701;--bs-danger-bg-subtle:#2c0b0e;--bs-light-bg-subtle:#343a40;--bs-dark-bg-subtle:#1a1d20;--bs-primary-border-subtle:#084298;--bs-secondary-border-subtle:#41464b;--bs-success-border-subtle:#0f5132;--bs-info-border-subtle:#087990;--bs-warning-border-subtle:#997404;--bs-danger-border-subtle:#842029;--bs-light-border-subtle:#495057;--bs-dark-border-subtle:#343a40;--bs-heading-color:inherit;--bs-link-color:#6ea8fe;--bs-link-hover-color:#8bb9fe;--bs-link-color-rgb:110,168,254;--bs-link-hover-color-rgb:139,185,254;--bs-code-color:#e685b5;--bs-highlight-color:#dee2e6;--bs-highlight-bg:#664d03;--bs-border-color:#495057;--bs-border-color-translucent:rgba(255, 255, 255, 0.15);--bs-form-valid-color:#75b798;--bs-form-valid-border-color:#75b798;--bs-form-invalid-color:#ea868f;--bs-form-invalid-border-color:#ea868f}*,::after,::before{box-sizing:border-box}@media (prefers-reduced-motion:no-preference){:root{scroll-behavior:smooth}}body{margin:0;font-family:var(--bs-body-font-family);font-size:var(--bs-body-font-size);font-weight:var(--bs-body-font-weight);line-height:var(--bs-body-line-height);color:var(--bs-body-color);text-align:var(--bs-body-text-align);background-color:var(--bs-body-bg);-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}hr{margin:1rem 0;color:inherit;border:0;border-top:var(--bs-border-width) solid;opacity:.25}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem;font-weight:500;line-height:1.2;color:var(--bs-heading-color)}.h1,h1{font-size:calc(1.375rem + 1.5vw)}@media (min-width:1200px){.h1,h1{font-size:2.5rem}}.h2,h2{font-size:calc(1.325rem + .9vw)}@media (min-width:1200px){.h2,h2{font-size:2rem}}.h3,h3{font-size:calc(1.3rem + .6vw)}@media (min-width:1200px){.h3,h3{font-size:1.75rem}}.h4,h4{font-size:calc(1.275rem + .3vw)}@media (min-width:1200px){.h4,h4{font-size:1.5rem}}.h5,h5{font-size:1.25rem}.h6,h6{font-size:1rem}p{margin-top:0;margin-bottom:1rem}abbr[title]{-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none}address{margin-bottom:1rem;font-style:normal;line-height:inherit}ol,ul{padding-left:2rem}dl,ol,ul{margin-top:0;margin-bottom:1rem}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}b,strong{font-weight:bolder}.small,small{font-size:.875em}.mark,mark{padding:.1875em;color:var(--bs-highlight-color);background-color:var(--bs-highlight-bg)}sub,sup{position:relative;font-size:.75em;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:rgba(var(--bs-link-color-rgb),var(--bs-link-opacity,1));text-decoration:underline}a:hover{--bs-link-color-rgb:var(--bs-link-hover-color-rgb)}a:not([href]):not([class]),a:not([href]):not([class]):hover{color:inherit;text-decoration:none}code,kbd,pre,samp{font-family:var(--bs-font-monospace);font-size:1em}pre{display:block;margin-top:0;margin-bottom:1rem;overflow:auto;font-size:.875em}pre code{font-size:inherit;color:inherit;word-break:normal}code{font-size:.875em;color:var(--bs-code-color);word-wrap:break-word}a>code{color:inherit}kbd{padding:.1875rem .375rem;font-size:.875em;color:var(--bs-body-bg);background-color:var(--bs-body-color);border-radius:.25rem}kbd kbd{padding:0;font-size:1em}figure{margin:0 0 1rem}img,svg{vertical-align:middle}table{caption-side:bottom;border-collapse:collapse}caption{padding-top:.5rem;padding-bottom:.5rem;color:var(--bs-secondary-color);text-align:left}th{text-align:inherit;text-align:-webkit-match-parent}tbody,td,tfoot,th,thead,tr{border-color:inherit;border-style:solid;border-width:0}label{display:inline-block}button{border-radius:0}button:focus:not(:focus-visible){outline:0}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,select{text-transform:none}[role=button]{cursor:pointer}select{word-wrap:normal}select:disabled{opacity:1}[list]:not([type=date]):not([type=datetime-local]):not([type=month]):not([type=week]):not([type=time])::-webkit-calendar-picker-indicator{display:none!important}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}::-moz-focus-inner{padding:0;border-style:none}textarea{resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{float:left;width:100%;padding:0;margin-bottom:.5rem;line-height:inherit;font-size:calc(1.275rem + .3vw)}@media (min-width:1200px){legend{font-size:1.5rem}}legend+*{clear:left}::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-fields-wrapper,::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute,::-webkit-datetime-edit-month-field,::-webkit-datetime-edit-text,::-webkit-datetime-edit-year-field{padding:0}::-webkit-inner-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-cancel-button{cursor:pointer;filter:grayscale(1)}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-color-swatch-wrapper{padding:0}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}::file-selector-button{font:inherit;-webkit-appearance:button}output{display:inline-block}iframe{border:0}summary{display:list-item;cursor:pointer}progress{vertical-align:baseline}[hidden]{display:none!important}.lead{font-size:1.25rem;font-weight:300}.display-1{font-weight:300;line-height:1.2;font-size:calc(1.625rem + 4.5vw)}@media (min-width:1200px){.display-1{font-size:5rem}}.display-2{font-weight:300;line-height:1.2;font-size:calc(1.575rem + 3.9vw)}@media (min-width:1200px){.display-2{font-size:4.5rem}}.display-3{font-weight:300;line-height:1.2;font-size:calc(1.525rem + 3.3vw)}@media (min-width:1200px){.display-3{font-size:4rem}}.display-4{font-weight:300;line-height:1.2;font-size:calc(1.475rem + 2.7vw)}@media (min-width:1200px){.display-4{font-size:3.5rem}}.display-5{font-weight:300;line-height:1.2;font-size:calc(1.425rem + 2.1vw)}@media (min-width:1200px){.display-5{font-size:3rem}}.display-6{font-weight:300;line-height:1.2;font-size:calc(1.375rem + 1.5vw)}@media (min-width:1200px){.display-6{font-size:2.5rem}}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;list-style:none}.list-inline-item{display:inline-block}.list-inline-item:not(:last-child){margin-right:.5rem}.initialism{font-size:.875em;text-transform:uppercase}.blockquote{margin-bottom:1rem;font-size:1.25rem}.blockquote>:last-child{margin-bottom:0}.blockquote-footer{margin-top:-1rem;margin-bottom:1rem;font-size:.875em;color:#6c757d}.blockquote-footer::before{content:"— "}.img-fluid{max-width:100%;height:auto}.img-thumbnail{padding:.25rem;background-color:var(--bs-body-bg);border:var(--bs-border-width) solid var(--bs-border-color);border-radius:var(--bs-border-radius);max-width:100%;height:auto}.figure{display:inline-block}.figure-img{margin-bottom:.5rem;line-height:1}.figure-caption{font-size:.875em;color:var(--bs-secondary-color)}.container,.container-fluid,.container-lg,.container-md,.container-sm,.container-xl,.container-xxl{--bs-gutter-x:1.5rem;--bs-gutter-y:0;width:100%;padding-right:calc(var(--bs-gutter-x) * .5);padding-left:calc(var(--bs-gutter-x) * .5);margin-right:auto;margin-left:auto}@media (min-width:576px){.container,.container-sm{max-width:540px}}@media (min-width:768px){.container,.container-md,.container-sm{max-width:720px}}@media (min-width:992px){.container,.container-lg,.container-md,.container-sm{max-width:960px}}@media (min-width:1200px){.container,.container-lg,.container-md,.container-sm,.container-xl{max-width:1140px}}@media (min-width:1400px){.container,.container-lg,.container-md,.container-sm,.container-xl,.container-xxl{max-width:1320px}}:root{--bs-breakpoint-xs:0;--bs-breakpoint-sm:576px;--bs-breakpoint-md:768px;--bs-breakpoint-lg:992px;--bs-breakpoint-xl:1200px;--bs-breakpoint-xxl:1400px}.row{--bs-gutter-x:1.5rem;--bs-gutter-y:0;display:flex;flex-wrap:wrap;margin-top:calc(-1 * var(--bs-gutter-y));margin-right:calc(-.5 * var(--bs-gutter-x));margin-left:calc(-.5 * var(--bs-gutter-x))}.row>*{flex-shrink:0;width:100%;max-width:100%;padding-right:calc(var(--bs-gutter-x) * .5);padding-left:calc(var(--bs-gutter-x) * .5);margin-top:var(--bs-gutter-y)}.col{flex:1 0 0}.row-cols-auto>*{flex:0 0 auto;width:auto}.row-cols-1>*{flex:0 0 auto;width:100%}.row-cols-2>*{flex:0 0 auto;width:50%}.row-cols-3>*{flex:0 0 auto;width:33.33333333%}.row-cols-4>*{flex:0 0 auto;width:25%}.row-cols-5>*{flex:0 0 auto;width:20%}.row-cols-6>*{flex:0 0 auto;width:16.66666667%}.col-auto{flex:0 0 auto;width:auto}.col-1{flex:0 0 auto;width:8.33333333%}.col-2{flex:0 0 auto;width:16.66666667%}.col-3{flex:0 0 auto;width:25%}.col-4{flex:0 0 auto;width:33.33333333%}.col-5{flex:0 0 auto;width:41.66666667%}.col-6{flex:0 0 auto;width:50%}.col-7{flex:0 0 auto;width:58.33333333%}.col-8{flex:0 0 auto;width:66.66666667%}.col-9{flex:0 0 auto;width:75%}.col-10{flex:0 0 auto;width:83.33333333%}.col-11{flex:0 0 auto;width:91.66666667%}.col-12{flex:0 0 auto;width:100%}.offset-1{margin-left:8.33333333%}.offset-2{margin-left:16.66666667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.33333333%}.offset-5{margin-left:41.66666667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.33333333%}.offset-8{margin-left:66.66666667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.33333333%}.offset-11{margin-left:91.66666667%}.g-0,.gx-0{--bs-gutter-x:0}.g-0,.gy-0{--bs-gutter-y:0}.g-1,.gx-1{--bs-gutter-x:0.25rem}.g-1,.gy-1{--bs-gutter-y:0.25rem}.g-2,.gx-2{--bs-gutter-x:0.5rem}.g-2,.gy-2{--bs-gutter-y:0.5rem}.g-3,.gx-3{--bs-gutter-x:1rem}.g-3,.gy-3{--bs-gutter-y:1rem}.g-4,.gx-4{--bs-gutter-x:1.5rem}.g-4,.gy-4{--bs-gutter-y:1.5rem}.g-5,.gx-5{--bs-gutter-x:3rem}.g-5,.gy-5{--bs-gutter-y:3rem}@media (min-width:576px){.col-sm{flex:1 0 0}.row-cols-sm-auto>*{flex:0 0 auto;width:auto}.row-cols-sm-1>*{flex:0 0 auto;width:100%}.row-cols-sm-2>*{flex:0 0 auto;width:50%}.row-cols-sm-3>*{flex:0 0 auto;width:33.33333333%}.row-cols-sm-4>*{flex:0 0 auto;width:25%}.row-cols-sm-5>*{flex:0 0 auto;width:20%}.row-cols-sm-6>*{flex:0 0 auto;width:16.66666667%}.col-sm-auto{flex:0 0 auto;width:auto}.col-sm-1{flex:0 0 auto;width:8.33333333%}.col-sm-2{flex:0 0 auto;width:16.66666667%}.col-sm-3{flex:0 0 auto;width:25%}.col-sm-4{flex:0 0 auto;width:33.33333333%}.col-sm-5{flex:0 0 auto;width:41.66666667%}.col-sm-6{flex:0 0 auto;width:50%}.col-sm-7{flex:0 0 auto;width:58.33333333%}.col-sm-8{flex:0 0 auto;width:66.66666667%}.col-sm-9{flex:0 0 auto;width:75%}.col-sm-10{flex:0 0 auto;width:83.33333333%}.col-sm-11{flex:0 0 auto;width:91.66666667%}.col-sm-12{flex:0 0 auto;width:100%}.offset-sm-0{margin-left:0}.offset-sm-1{margin-left:8.33333333%}.offset-sm-2{margin-left:16.66666667%}.offset-sm-3{margin-left:25%}.offset-sm-4{margin-left:33.33333333%}.offset-sm-5{margin-left:41.66666667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.33333333%}.offset-sm-8{margin-left:66.66666667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.33333333%}.offset-sm-11{margin-left:91.66666667%}.g-sm-0,.gx-sm-0{--bs-gutter-x:0}.g-sm-0,.gy-sm-0{--bs-gutter-y:0}.g-sm-1,.gx-sm-1{--bs-gutter-x:0.25rem}.g-sm-1,.gy-sm-1{--bs-gutter-y:0.25rem}.g-sm-2,.gx-sm-2{--bs-gutter-x:0.5rem}.g-sm-2,.gy-sm-2{--bs-gutter-y:0.5rem}.g-sm-3,.gx-sm-3{--bs-gutter-x:1rem}.g-sm-3,.gy-sm-3{--bs-gutter-y:1rem}.g-sm-4,.gx-sm-4{--bs-gutter-x:1.5rem}.g-sm-4,.gy-sm-4{--bs-gutter-y:1.5rem}.g-sm-5,.gx-sm-5{--bs-gutter-x:3rem}.g-sm-5,.gy-sm-5{--bs-gutter-y:3rem}}@media (min-width:768px){.col-md{flex:1 0 0}.row-cols-md-auto>*{flex:0 0 auto;width:auto}.row-cols-md-1>*{flex:0 0 auto;width:100%}.row-cols-md-2>*{flex:0 0 auto;width:50%}.row-cols-md-3>*{flex:0 0 auto;width:33.33333333%}.row-cols-md-4>*{flex:0 0 auto;width:25%}.row-cols-md-5>*{flex:0 0 auto;width:20%}.row-cols-md-6>*{flex:0 0 auto;width:16.66666667%}.col-md-auto{flex:0 0 auto;width:auto}.col-md-1{flex:0 0 auto;width:8.33333333%}.col-md-2{flex:0 0 auto;width:16.66666667%}.col-md-3{flex:0 0 auto;width:25%}.col-md-4{flex:0 0 auto;width:33.33333333%}.col-md-5{flex:0 0 auto;width:41.66666667%}.col-md-6{flex:0 0 auto;width:50%}.col-md-7{flex:0 0 auto;width:58.33333333%}.col-md-8{flex:0 0 auto;width:66.66666667%}.col-md-9{flex:0 0 auto;width:75%}.col-md-10{flex:0 0 auto;width:83.33333333%}.col-md-11{flex:0 0 auto;width:91.66666667%}.col-md-12{flex:0 0 auto;width:100%}.offset-md-0{margin-left:0}.offset-md-1{margin-left:8.33333333%}.offset-md-2{margin-left:16.66666667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.33333333%}.offset-md-5{margin-left:41.66666667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.33333333%}.offset-md-8{margin-left:66.66666667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.33333333%}.offset-md-11{margin-left:91.66666667%}.g-md-0,.gx-md-0{--bs-gutter-x:0}.g-md-0,.gy-md-0{--bs-gutter-y:0}.g-md-1,.gx-md-1{--bs-gutter-x:0.25rem}.g-md-1,.gy-md-1{--bs-gutter-y:0.25rem}.g-md-2,.gx-md-2{--bs-gutter-x:0.5rem}.g-md-2,.gy-md-2{--bs-gutter-y:0.5rem}.g-md-3,.gx-md-3{--bs-gutter-x:1rem}.g-md-3,.gy-md-3{--bs-gutter-y:1rem}.g-md-4,.gx-md-4{--bs-gutter-x:1.5rem}.g-md-4,.gy-md-4{--bs-gutter-y:1.5rem}.g-md-5,.gx-md-5{--bs-gutter-x:3rem}.g-md-5,.gy-md-5{--bs-gutter-y:3rem}}@media (min-width:992px){.col-lg{flex:1 0 0}.row-cols-lg-auto>*{flex:0 0 auto;width:auto}.row-cols-lg-1>*{flex:0 0 auto;width:100%}.row-cols-lg-2>*{flex:0 0 auto;width:50%}.row-cols-lg-3>*{flex:0 0 auto;width:33.33333333%}.row-cols-lg-4>*{flex:0 0 auto;width:25%}.row-cols-lg-5>*{flex:0 0 auto;width:20%}.row-cols-lg-6>*{flex:0 0 auto;width:16.66666667%}.col-lg-auto{flex:0 0 auto;width:auto}.col-lg-1{flex:0 0 auto;width:8.33333333%}.col-lg-2{flex:0 0 auto;width:16.66666667%}.col-lg-3{flex:0 0 auto;width:25%}.col-lg-4{flex:0 0 auto;width:33.33333333%}.col-lg-5{flex:0 0 auto;width:41.66666667%}.col-lg-6{flex:0 0 auto;width:50%}.col-lg-7{flex:0 0 auto;width:58.33333333%}.col-lg-8{flex:0 0 auto;width:66.66666667%}.col-lg-9{flex:0 0 auto;width:75%}.col-lg-10{flex:0 0 auto;width:83.33333333%}.col-lg-11{flex:0 0 auto;width:91.66666667%}.col-lg-12{flex:0 0 auto;width:100%}.offset-lg-0{margin-left:0}.offset-lg-1{margin-left:8.33333333%}.offset-lg-2{margin-left:16.66666667%}.offset-lg-3{margin-left:25%}.offset-lg-4{margin-left:33.33333333%}.offset-lg-5{margin-left:41.66666667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.33333333%}.offset-lg-8{margin-left:66.66666667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.33333333%}.offset-lg-11{margin-left:91.66666667%}.g-lg-0,.gx-lg-0{--bs-gutter-x:0}.g-lg-0,.gy-lg-0{--bs-gutter-y:0}.g-lg-1,.gx-lg-1{--bs-gutter-x:0.25rem}.g-lg-1,.gy-lg-1{--bs-gutter-y:0.25rem}.g-lg-2,.gx-lg-2{--bs-gutter-x:0.5rem}.g-lg-2,.gy-lg-2{--bs-gutter-y:0.5rem}.g-lg-3,.gx-lg-3{--bs-gutter-x:1rem}.g-lg-3,.gy-lg-3{--bs-gutter-y:1rem}.g-lg-4,.gx-lg-4{--bs-gutter-x:1.5rem}.g-lg-4,.gy-lg-4{--bs-gutter-y:1.5rem}.g-lg-5,.gx-lg-5{--bs-gutter-x:3rem}.g-lg-5,.gy-lg-5{--bs-gutter-y:3rem}}@media (min-width:1200px){.col-xl{flex:1 0 0}.row-cols-xl-auto>*{flex:0 0 auto;width:auto}.row-cols-xl-1>*{flex:0 0 auto;width:100%}.row-cols-xl-2>*{flex:0 0 auto;width:50%}.row-cols-xl-3>*{flex:0 0 auto;width:33.33333333%}.row-cols-xl-4>*{flex:0 0 auto;width:25%}.row-cols-xl-5>*{flex:0 0 auto;width:20%}.row-cols-xl-6>*{flex:0 0 auto;width:16.66666667%}.col-xl-auto{flex:0 0 auto;width:auto}.col-xl-1{flex:0 0 auto;width:8.33333333%}.col-xl-2{flex:0 0 auto;width:16.66666667%}.col-xl-3{flex:0 0 auto;width:25%}.col-xl-4{flex:0 0 auto;width:33.33333333%}.col-xl-5{flex:0 0 auto;width:41.66666667%}.col-xl-6{flex:0 0 auto;width:50%}.col-xl-7{flex:0 0 auto;width:58.33333333%}.col-xl-8{flex:0 0 auto;width:66.66666667%}.col-xl-9{flex:0 0 auto;width:75%}.col-xl-10{flex:0 0 auto;width:83.33333333%}.col-xl-11{flex:0 0 auto;width:91.66666667%}.col-xl-12{flex:0 0 auto;width:100%}.offset-xl-0{margin-left:0}.offset-xl-1{margin-left:8.33333333%}.offset-xl-2{margin-left:16.66666667%}.offset-xl-3{margin-left:25%}.offset-xl-4{margin-left:33.33333333%}.offset-xl-5{margin-left:41.66666667%}.offset-xl-6{margin-left:50%}.offset-xl-7{margin-left:58.33333333%}.offset-xl-8{margin-left:66.66666667%}.offset-xl-9{margin-left:75%}.offset-xl-10{margin-left:83.33333333%}.offset-xl-11{margin-left:91.66666667%}.g-xl-0,.gx-xl-0{--bs-gutter-x:0}.g-xl-0,.gy-xl-0{--bs-gutter-y:0}.g-xl-1,.gx-xl-1{--bs-gutter-x:0.25rem}.g-xl-1,.gy-xl-1{--bs-gutter-y:0.25rem}.g-xl-2,.gx-xl-2{--bs-gutter-x:0.5rem}.g-xl-2,.gy-xl-2{--bs-gutter-y:0.5rem}.g-xl-3,.gx-xl-3{--bs-gutter-x:1rem}.g-xl-3,.gy-xl-3{--bs-gutter-y:1rem}.g-xl-4,.gx-xl-4{--bs-gutter-x:1.5rem}.g-xl-4,.gy-xl-4{--bs-gutter-y:1.5rem}.g-xl-5,.gx-xl-5{--bs-gutter-x:3rem}.g-xl-5,.gy-xl-5{--bs-gutter-y:3rem}}@media (min-width:1400px){.col-xxl{flex:1 0 0}.row-cols-xxl-auto>*{flex:0 0 auto;width:auto}.row-cols-xxl-1>*{flex:0 0 auto;width:100%}.row-cols-xxl-2>*{flex:0 0 auto;width:50%}.row-cols-xxl-3>*{flex:0 0 auto;width:33.33333333%}.row-cols-xxl-4>*{flex:0 0 auto;width:25%}.row-cols-xxl-5>*{flex:0 0 auto;width:20%}.row-cols-xxl-6>*{flex:0 0 auto;width:16.66666667%}.col-xxl-auto{flex:0 0 auto;width:auto}.col-xxl-1{flex:0 0 auto;width:8.33333333%}.col-xxl-2{flex:0 0 auto;width:16.66666667%}.col-xxl-3{flex:0 0 auto;width:25%}.col-xxl-4{flex:0 0 auto;width:33.33333333%}.col-xxl-5{flex:0 0 auto;width:41.66666667%}.col-xxl-6{flex:0 0 auto;width:50%}.col-xxl-7{flex:0 0 auto;width:58.33333333%}.col-xxl-8{flex:0 0 auto;width:66.66666667%}.col-xxl-9{flex:0 0 auto;width:75%}.col-xxl-10{flex:0 0 auto;width:83.33333333%}.col-xxl-11{flex:0 0 auto;width:91.66666667%}.col-xxl-12{flex:0 0 auto;width:100%}.offset-xxl-0{margin-left:0}.offset-xxl-1{margin-left:8.33333333%}.offset-xxl-2{margin-left:16.66666667%}.offset-xxl-3{margin-left:25%}.offset-xxl-4{margin-left:33.33333333%}.offset-xxl-5{margin-left:41.66666667%}.offset-xxl-6{margin-left:50%}.offset-xxl-7{margin-left:58.33333333%}.offset-xxl-8{margin-left:66.66666667%}.offset-xxl-9{margin-left:75%}.offset-xxl-10{margin-left:83.33333333%}.offset-xxl-11{margin-left:91.66666667%}.g-xxl-0,.gx-xxl-0{--bs-gutter-x:0}.g-xxl-0,.gy-xxl-0{--bs-gutter-y:0}.g-xxl-1,.gx-xxl-1{--bs-gutter-x:0.25rem}.g-xxl-1,.gy-xxl-1{--bs-gutter-y:0.25rem}.g-xxl-2,.gx-xxl-2{--bs-gutter-x:0.5rem}.g-xxl-2,.gy-xxl-2{--bs-gutter-y:0.5rem}.g-xxl-3,.gx-xxl-3{--bs-gutter-x:1rem}.g-xxl-3,.gy-xxl-3{--bs-gutter-y:1rem}.g-xxl-4,.gx-xxl-4{--bs-gutter-x:1.5rem}.g-xxl-4,.gy-xxl-4{--bs-gutter-y:1.5rem}.g-xxl-5,.gx-xxl-5{--bs-gutter-x:3rem}.g-xxl-5,.gy-xxl-5{--bs-gutter-y:3rem}}.table{--bs-table-color-type:initial;--bs-table-bg-type:initial;--bs-table-color-state:initial;--bs-table-bg-state:initial;--bs-table-color:var(--bs-emphasis-color);--bs-table-bg:var(--bs-body-bg);--bs-table-border-color:var(--bs-border-color);--bs-table-accent-bg:transparent;--bs-table-striped-color:var(--bs-emphasis-color);--bs-table-striped-bg:rgba(var(--bs-emphasis-color-rgb), 0.05);--bs-table-active-color:var(--bs-emphasis-color);--bs-table-active-bg:rgba(var(--bs-emphasis-color-rgb), 0.1);--bs-table-hover-color:var(--bs-emphasis-color);--bs-table-hover-bg:rgba(var(--bs-emphasis-color-rgb), 0.075);width:100%;margin-bottom:1rem;vertical-align:top;border-color:var(--bs-table-border-color)}.table>:not(caption)>*>*{padding:.5rem .5rem;color:var(--bs-table-color-state,var(--bs-table-color-type,var(--bs-table-color)));background-color:var(--bs-table-bg);border-bottom-width:var(--bs-border-width);box-shadow:inset 0 0 0 9999px var(--bs-table-bg-state,var(--bs-table-bg-type,var(--bs-table-accent-bg)))}.table>tbody{vertical-align:inherit}.table>thead{vertical-align:bottom}.table-group-divider{border-top:calc(var(--bs-border-width) * 2) solid currentcolor}.caption-top{caption-side:top}.table-sm>:not(caption)>*>*{padding:.25rem .25rem}.table-bordered>:not(caption)>*{border-width:var(--bs-border-width) 0}.table-bordered>:not(caption)>*>*{border-width:0 var(--bs-border-width)}.table-borderless>:not(caption)>*>*{border-bottom-width:0}.table-borderless>:not(:first-child){border-top-width:0}.table-striped>tbody>tr:nth-of-type(odd)>*{--bs-table-color-type:var(--bs-table-striped-color);--bs-table-bg-type:var(--bs-table-striped-bg)}.table-striped-columns>:not(caption)>tr>:nth-child(2n){--bs-table-color-type:var(--bs-table-striped-color);--bs-table-bg-type:var(--bs-table-striped-bg)}.table-active{--bs-table-color-state:var(--bs-table-active-color);--bs-table-bg-state:var(--bs-table-active-bg)}.table-hover>tbody>tr:hover>*{--bs-table-color-state:var(--bs-table-hover-color);--bs-table-bg-state:var(--bs-table-hover-bg)}.table-primary{--bs-table-color:#000;--bs-table-bg:#cfe2ff;--bs-table-border-color:#a6b5cc;--bs-table-striped-bg:#c5d7f2;--bs-table-striped-color:#000;--bs-table-active-bg:#bacbe6;--bs-table-active-color:#000;--bs-table-hover-bg:#bfd1ec;--bs-table-hover-color:#000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-secondary{--bs-table-color:#000;--bs-table-bg:#e2e3e5;--bs-table-border-color:#b5b6b7;--bs-table-striped-bg:#d7d8da;--bs-table-striped-color:#000;--bs-table-active-bg:#cbccce;--bs-table-active-color:#000;--bs-table-hover-bg:#d1d2d4;--bs-table-hover-color:#000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-success{--bs-table-color:#000;--bs-table-bg:#d1e7dd;--bs-table-border-color:#a7b9b1;--bs-table-striped-bg:#c7dbd2;--bs-table-striped-color:#000;--bs-table-active-bg:#bcd0c7;--bs-table-active-color:#000;--bs-table-hover-bg:#c1d6cc;--bs-table-hover-color:#000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-info{--bs-table-color:#000;--bs-table-bg:#cff4fc;--bs-table-border-color:#a6c3ca;--bs-table-striped-bg:#c5e8ef;--bs-table-striped-color:#000;--bs-table-active-bg:#badce3;--bs-table-active-color:#000;--bs-table-hover-bg:#bfe2e9;--bs-table-hover-color:#000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-warning{--bs-table-color:#000;--bs-table-bg:#fff3cd;--bs-table-border-color:#ccc2a4;--bs-table-striped-bg:#f2e7c3;--bs-table-striped-color:#000;--bs-table-active-bg:#e6dbb9;--bs-table-active-color:#000;--bs-table-hover-bg:#ece1be;--bs-table-hover-color:#000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-danger{--bs-table-color:#000;--bs-table-bg:#f8d7da;--bs-table-border-color:#c6acae;--bs-table-striped-bg:#eccccf;--bs-table-striped-color:#000;--bs-table-active-bg:#dfc2c4;--bs-table-active-color:#000;--bs-table-hover-bg:#e5c7ca;--bs-table-hover-color:#000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-light{--bs-table-color:#000;--bs-table-bg:#f8f9fa;--bs-table-border-color:#c6c7c8;--bs-table-striped-bg:#ecedee;--bs-table-striped-color:#000;--bs-table-active-bg:#dfe0e1;--bs-table-active-color:#000;--bs-table-hover-bg:#e5e6e7;--bs-table-hover-color:#000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-dark{--bs-table-color:#fff;--bs-table-bg:#212529;--bs-table-border-color:#4d5154;--bs-table-striped-bg:#2c3034;--bs-table-striped-color:#fff;--bs-table-active-bg:#373b3e;--bs-table-active-color:#fff;--bs-table-hover-bg:#323539;--bs-table-hover-color:#fff;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-responsive{overflow-x:auto;-webkit-overflow-scrolling:touch}@media (max-width:575.98px){.table-responsive-sm{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width:767.98px){.table-responsive-md{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width:991.98px){.table-responsive-lg{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width:1199.98px){.table-responsive-xl{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width:1399.98px){.table-responsive-xxl{overflow-x:auto;-webkit-overflow-scrolling:touch}}.form-label{margin-bottom:.5rem}.col-form-label{padding-top:calc(.375rem + var(--bs-border-width));padding-bottom:calc(.375rem + var(--bs-border-width));margin-bottom:0;font-size:inherit;line-height:1.5}.col-form-label-lg{padding-top:calc(.5rem + var(--bs-border-width));padding-bottom:calc(.5rem + var(--bs-border-width));font-size:1.25rem}.col-form-label-sm{padding-top:calc(.25rem + var(--bs-border-width));padding-bottom:calc(.25rem + var(--bs-border-width));font-size:.875rem}.form-text{margin-top:.25rem;font-size:.875em;color:var(--bs-secondary-color)}.form-control{display:block;width:100%;padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:var(--bs-body-color);-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:var(--bs-body-bg);background-clip:padding-box;border:var(--bs-border-width) solid var(--bs-border-color);border-radius:var(--bs-border-radius);transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-control{transition:none}}.form-control[type=file]{overflow:hidden}.form-control[type=file]:not(:disabled):not([readonly]){cursor:pointer}.form-control:focus{color:var(--bs-body-color);background-color:var(--bs-body-bg);border-color:#86b7fe;outline:0;box-shadow:0 0 0 .25rem rgba(13,110,253,.25)}.form-control::-webkit-date-and-time-value{min-width:85px;height:1.5em;margin:0}.form-control::-webkit-datetime-edit{display:block;padding:0}.form-control::placeholder{color:var(--bs-secondary-color);opacity:1}.form-control:disabled{background-color:var(--bs-secondary-bg);opacity:1}.form-control::-webkit-file-upload-button{padding:.375rem .75rem;margin:-.375rem -.75rem;-webkit-margin-end:.75rem;margin-inline-end:.75rem;color:var(--bs-body-color);background-color:var(--bs-tertiary-bg);pointer-events:none;border-color:inherit;border-style:solid;border-width:0;border-inline-end-width:var(--bs-border-width);border-radius:0;-webkit-transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}.form-control::file-selector-button{padding:.375rem .75rem;margin:-.375rem -.75rem;-webkit-margin-end:.75rem;margin-inline-end:.75rem;color:var(--bs-body-color);background-color:var(--bs-tertiary-bg);pointer-events:none;border-color:inherit;border-style:solid;border-width:0;border-inline-end-width:var(--bs-border-width);border-radius:0;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-control::-webkit-file-upload-button{-webkit-transition:none;transition:none}.form-control::file-selector-button{transition:none}}.form-control:hover:not(:disabled):not([readonly])::-webkit-file-upload-button{background-color:var(--bs-secondary-bg)}.form-control:hover:not(:disabled):not([readonly])::file-selector-button{background-color:var(--bs-secondary-bg)}.form-control-plaintext{display:block;width:100%;padding:.375rem 0;margin-bottom:0;line-height:1.5;color:var(--bs-body-color);background-color:transparent;border:solid transparent;border-width:var(--bs-border-width) 0}.form-control-plaintext:focus{outline:0}.form-control-plaintext.form-control-lg,.form-control-plaintext.form-control-sm{padding-right:0;padding-left:0}.form-control-sm{min-height:calc(1.5em + .5rem + calc(var(--bs-border-width) * 2));padding:.25rem .5rem;font-size:.875rem;border-radius:var(--bs-border-radius-sm)}.form-control-sm::-webkit-file-upload-button{padding:.25rem .5rem;margin:-.25rem -.5rem;-webkit-margin-end:.5rem;margin-inline-end:.5rem}.form-control-sm::file-selector-button{padding:.25rem .5rem;margin:-.25rem -.5rem;-webkit-margin-end:.5rem;margin-inline-end:.5rem}.form-control-lg{min-height:calc(1.5em + 1rem + calc(var(--bs-border-width) * 2));padding:.5rem 1rem;font-size:1.25rem;border-radius:var(--bs-border-radius-lg)}.form-control-lg::-webkit-file-upload-button{padding:.5rem 1rem;margin:-.5rem -1rem;-webkit-margin-end:1rem;margin-inline-end:1rem}.form-control-lg::file-selector-button{padding:.5rem 1rem;margin:-.5rem -1rem;-webkit-margin-end:1rem;margin-inline-end:1rem}textarea.form-control{min-height:calc(1.5em + .75rem + calc(var(--bs-border-width) * 2))}textarea.form-control-sm{min-height:calc(1.5em + .5rem + calc(var(--bs-border-width) * 2))}textarea.form-control-lg{min-height:calc(1.5em + 1rem + calc(var(--bs-border-width) * 2))}.form-control-color{width:3rem;height:calc(1.5em + .75rem + calc(var(--bs-border-width) * 2));padding:.375rem}.form-control-color:not(:disabled):not([readonly]){cursor:pointer}.form-control-color::-moz-color-swatch{border:0!important;border-radius:var(--bs-border-radius)}.form-control-color::-webkit-color-swatch{border:0!important;border-radius:var(--bs-border-radius)}.form-control-color.form-control-sm{height:calc(1.5em + .5rem + calc(var(--bs-border-width) * 2))}.form-control-color.form-control-lg{height:calc(1.5em + 1rem + calc(var(--bs-border-width) * 2))}.form-select{--bs-form-select-bg-img:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e");display:block;width:100%;padding:.375rem 2.25rem .375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:var(--bs-body-color);-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:var(--bs-body-bg);background-image:var(--bs-form-select-bg-img),var(--bs-form-select-bg-icon,none);background-repeat:no-repeat;background-position:right .75rem center;background-size:16px 12px;border:var(--bs-border-width) solid var(--bs-border-color);border-radius:var(--bs-border-radius);transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-select{transition:none}}.form-select:focus{border-color:#86b7fe;outline:0;box-shadow:0 0 0 .25rem rgba(13,110,253,.25)}.form-select[multiple],.form-select[size]:not([size="1"]){padding-right:.75rem;background-image:none}.form-select:disabled{background-color:var(--bs-secondary-bg)}.form-select:-moz-focusring{color:transparent;text-shadow:0 0 0 var(--bs-body-color)}.form-select-sm{padding-top:.25rem;padding-bottom:.25rem;padding-left:.5rem;font-size:.875rem;border-radius:var(--bs-border-radius-sm)}.form-select-lg{padding-top:.5rem;padding-bottom:.5rem;padding-left:1rem;font-size:1.25rem;border-radius:var(--bs-border-radius-lg)}[data-bs-theme=dark] .form-select{--bs-form-select-bg-img:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23dee2e6' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e")}.form-check{display:block;min-height:1.5rem;padding-left:1.5em;margin-bottom:.125rem}.form-check .form-check-input{float:left;margin-left:-1.5em}.form-check-reverse{padding-right:1.5em;padding-left:0;text-align:right}.form-check-reverse .form-check-input{float:right;margin-right:-1.5em;margin-left:0}.form-check-input{--bs-form-check-bg:var(--bs-body-bg);flex-shrink:0;width:1em;height:1em;margin-top:.25em;vertical-align:top;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:var(--bs-form-check-bg);background-image:var(--bs-form-check-bg-image);background-repeat:no-repeat;background-position:center;background-size:contain;border:var(--bs-border-width) solid var(--bs-border-color);-webkit-print-color-adjust:exact;color-adjust:exact;print-color-adjust:exact}.form-check-input[type=checkbox]{border-radius:.25em}.form-check-input[type=radio]{border-radius:50%}.form-check-input:active{filter:brightness(90%)}.form-check-input:focus{border-color:#86b7fe;outline:0;box-shadow:0 0 0 .25rem rgba(13,110,253,.25)}.form-check-input:checked{background-color:#0d6efd;border-color:#0d6efd}.form-check-input:checked[type=checkbox]{--bs-form-check-bg-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='m6 10 3 3 6-6'/%3e%3c/svg%3e")}.form-check-input:checked[type=radio]{--bs-form-check-bg-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='2' fill='%23fff'/%3e%3c/svg%3e")}.form-check-input[type=checkbox]:indeterminate{background-color:#0d6efd;border-color:#0d6efd;--bs-form-check-bg-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M6 10h8'/%3e%3c/svg%3e")}.form-check-input:disabled{pointer-events:none;filter:none;opacity:.5}.form-check-input:disabled~.form-check-label,.form-check-input[disabled]~.form-check-label{cursor:default;opacity:.5}.form-switch{padding-left:2.5em}.form-switch .form-check-input{--bs-form-switch-bg:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='rgba%280, 0, 0, 0.25%29'/%3e%3c/svg%3e");width:2em;margin-left:-2.5em;background-image:var(--bs-form-switch-bg);background-position:left center;border-radius:2em;transition:background-position .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-switch .form-check-input{transition:none}}.form-switch .form-check-input:focus{--bs-form-switch-bg:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%2386b7fe'/%3e%3c/svg%3e")}.form-switch .form-check-input:checked{background-position:right center;--bs-form-switch-bg:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e")}.form-switch.form-check-reverse{padding-right:2.5em;padding-left:0}.form-switch.form-check-reverse .form-check-input{margin-right:-2.5em;margin-left:0}.form-check-inline{display:inline-block;margin-right:1rem}.btn-check{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.btn-check:disabled+.btn,.btn-check[disabled]+.btn{pointer-events:none;filter:none;opacity:.65}[data-bs-theme=dark] .form-switch .form-check-input:not(:checked):not(:focus){--bs-form-switch-bg:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='rgba%28255, 255, 255, 0.25%29'/%3e%3c/svg%3e")}.form-range{width:100%;height:1.5rem;padding:0;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:transparent}.form-range:focus{outline:0}.form-range:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .25rem rgba(13,110,253,.25)}.form-range:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .25rem rgba(13,110,253,.25)}.form-range::-moz-focus-outer{border:0}.form-range::-webkit-slider-thumb{width:1rem;height:1rem;margin-top:-.25rem;-webkit-appearance:none;appearance:none;background-color:#0d6efd;border:0;border-radius:1rem;-webkit-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-range::-webkit-slider-thumb{-webkit-transition:none;transition:none}}.form-range::-webkit-slider-thumb:active{background-color:#b6d4fe}.form-range::-webkit-slider-runnable-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:var(--bs-secondary-bg);border-color:transparent;border-radius:1rem}.form-range::-moz-range-thumb{width:1rem;height:1rem;-moz-appearance:none;appearance:none;background-color:#0d6efd;border:0;border-radius:1rem;-moz-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-range::-moz-range-thumb{-moz-transition:none;transition:none}}.form-range::-moz-range-thumb:active{background-color:#b6d4fe}.form-range::-moz-range-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:var(--bs-secondary-bg);border-color:transparent;border-radius:1rem}.form-range:disabled{pointer-events:none}.form-range:disabled::-webkit-slider-thumb{background-color:var(--bs-secondary-color)}.form-range:disabled::-moz-range-thumb{background-color:var(--bs-secondary-color)}.form-floating{position:relative}.form-floating>.form-control,.form-floating>.form-control-plaintext,.form-floating>.form-select{height:calc(3.5rem + calc(var(--bs-border-width) * 2));min-height:calc(3.5rem + calc(var(--bs-border-width) * 2));line-height:1.25}.form-floating>label{position:absolute;top:0;left:0;z-index:2;max-width:100%;height:100%;padding:1rem .75rem;overflow:hidden;color:rgba(var(--bs-body-color-rgb),.65);text-align:start;text-overflow:ellipsis;white-space:nowrap;pointer-events:none;border:var(--bs-border-width) solid transparent;transform-origin:0 0;transition:opacity .1s ease-in-out,transform .1s ease-in-out}@media (prefers-reduced-motion:reduce){.form-floating>label{transition:none}}.form-floating>.form-control,.form-floating>.form-control-plaintext{padding:1rem .75rem}.form-floating>.form-control-plaintext::placeholder,.form-floating>.form-control::placeholder{color:transparent}.form-floating>.form-control-plaintext:focus,.form-floating>.form-control-plaintext:not(:placeholder-shown),.form-floating>.form-control:focus,.form-floating>.form-control:not(:placeholder-shown){padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-control-plaintext:-webkit-autofill,.form-floating>.form-control:-webkit-autofill{padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-select{padding-top:1.625rem;padding-bottom:.625rem;padding-left:.75rem}.form-floating>.form-control-plaintext~label,.form-floating>.form-control:focus~label,.form-floating>.form-control:not(:placeholder-shown)~label,.form-floating>.form-select~label{transform:scale(.85) translateY(-.5rem) translateX(.15rem)}.form-floating>.form-control:-webkit-autofill~label{transform:scale(.85) translateY(-.5rem) translateX(.15rem)}.form-floating>textarea:focus~label::after,.form-floating>textarea:not(:placeholder-shown)~label::after{position:absolute;inset:1rem 0.375rem;z-index:-1;height:1.5em;content:"";background-color:var(--bs-body-bg);border-radius:var(--bs-border-radius)}.form-floating>textarea:disabled~label::after{background-color:var(--bs-secondary-bg)}.form-floating>.form-control-plaintext~label{border-width:var(--bs-border-width) 0}.form-floating>.form-control:disabled~label,.form-floating>:disabled~label{color:#6c757d}.input-group{position:relative;display:flex;flex-wrap:wrap;align-items:stretch;width:100%}.input-group>.form-control,.input-group>.form-floating,.input-group>.form-select{position:relative;flex:1 1 auto;width:1%;min-width:0}.input-group>.form-control:focus,.input-group>.form-floating:focus-within,.input-group>.form-select:focus{z-index:5}.input-group .btn{position:relative;z-index:2}.input-group .btn:focus{z-index:5}.input-group-text{display:flex;align-items:center;padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:var(--bs-body-color);text-align:center;white-space:nowrap;background-color:var(--bs-tertiary-bg);border:var(--bs-border-width) solid var(--bs-border-color);border-radius:var(--bs-border-radius)}.input-group-lg>.btn,.input-group-lg>.form-control,.input-group-lg>.form-select,.input-group-lg>.input-group-text{padding:.5rem 1rem;font-size:1.25rem;border-radius:var(--bs-border-radius-lg)}.input-group-sm>.btn,.input-group-sm>.form-control,.input-group-sm>.form-select,.input-group-sm>.input-group-text{padding:.25rem .5rem;font-size:.875rem;border-radius:var(--bs-border-radius-sm)}.input-group-lg>.form-select,.input-group-sm>.form-select{padding-right:3rem}.input-group:not(.has-validation)>.dropdown-toggle:nth-last-child(n+3),.input-group:not(.has-validation)>.form-floating:not(:last-child)>.form-control,.input-group:not(.has-validation)>.form-floating:not(:last-child)>.form-select,.input-group:not(.has-validation)>:not(:last-child):not(.dropdown-toggle):not(.dropdown-menu):not(.form-floating){border-top-right-radius:0;border-bottom-right-radius:0}.input-group.has-validation>.dropdown-toggle:nth-last-child(n+4),.input-group.has-validation>.form-floating:nth-last-child(n+3)>.form-control,.input-group.has-validation>.form-floating:nth-last-child(n+3)>.form-select,.input-group.has-validation>:nth-last-child(n+3):not(.dropdown-toggle):not(.dropdown-menu):not(.form-floating){border-top-right-radius:0;border-bottom-right-radius:0}.input-group>:not(:first-child):not(.dropdown-menu):not(.valid-tooltip):not(.valid-feedback):not(.invalid-tooltip):not(.invalid-feedback){margin-left:calc(-1 * var(--bs-border-width));border-top-left-radius:0;border-bottom-left-radius:0}.input-group>.form-floating:not(:first-child)>.form-control,.input-group>.form-floating:not(:first-child)>.form-select{border-top-left-radius:0;border-bottom-left-radius:0}.valid-feedback{display:none;width:100%;margin-top:.25rem;font-size:.875em;color:var(--bs-form-valid-color)}.valid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;color:#fff;background-color:var(--bs-success);border-radius:var(--bs-border-radius)}.is-valid~.valid-feedback,.is-valid~.valid-tooltip,.was-validated :valid~.valid-feedback,.was-validated :valid~.valid-tooltip{display:block}.form-control.is-valid,.was-validated .form-control:valid{border-color:var(--bs-form-valid-border-color);padding-right:calc(1.5em + .75rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23198754' d='M2.3 6.73.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-valid:focus,.was-validated .form-control:valid:focus{border-color:var(--bs-form-valid-border-color);box-shadow:0 0 0 .25rem rgba(var(--bs-success-rgb),.25)}.was-validated textarea.form-control:valid,textarea.form-control.is-valid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.form-select.is-valid,.was-validated .form-select:valid{border-color:var(--bs-form-valid-border-color)}.form-select.is-valid:not([multiple]):not([size]),.form-select.is-valid:not([multiple])[size="1"],.was-validated .form-select:valid:not([multiple]):not([size]),.was-validated .form-select:valid:not([multiple])[size="1"]{--bs-form-select-bg-icon:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23198754' d='M2.3 6.73.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1'/%3e%3c/svg%3e");padding-right:4.125rem;background-position:right .75rem center,center right 2.25rem;background-size:16px 12px,calc(.75em + .375rem) calc(.75em + .375rem)}.form-select.is-valid:focus,.was-validated .form-select:valid:focus{border-color:var(--bs-form-valid-border-color);box-shadow:0 0 0 .25rem rgba(var(--bs-success-rgb),.25)}.form-control-color.is-valid,.was-validated .form-control-color:valid{width:calc(3rem + calc(1.5em + .75rem))}.form-check-input.is-valid,.was-validated .form-check-input:valid{border-color:var(--bs-form-valid-border-color)}.form-check-input.is-valid:checked,.was-validated .form-check-input:valid:checked{background-color:var(--bs-form-valid-color)}.form-check-input.is-valid:focus,.was-validated .form-check-input:valid:focus{box-shadow:0 0 0 .25rem rgba(var(--bs-success-rgb),.25)}.form-check-input.is-valid~.form-check-label,.was-validated .form-check-input:valid~.form-check-label{color:var(--bs-form-valid-color)}.form-check-inline .form-check-input~.valid-feedback{margin-left:.5em}.input-group>.form-control:not(:focus).is-valid,.input-group>.form-floating:not(:focus-within).is-valid,.input-group>.form-select:not(:focus).is-valid,.was-validated .input-group>.form-control:not(:focus):valid,.was-validated .input-group>.form-floating:not(:focus-within):valid,.was-validated .input-group>.form-select:not(:focus):valid{z-index:3}.invalid-feedback{display:none;width:100%;margin-top:.25rem;font-size:.875em;color:var(--bs-form-invalid-color)}.invalid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;color:#fff;background-color:var(--bs-danger);border-radius:var(--bs-border-radius)}.is-invalid~.invalid-feedback,.is-invalid~.invalid-tooltip,.was-validated :invalid~.invalid-feedback,.was-validated :invalid~.invalid-tooltip{display:block}.form-control.is-invalid,.was-validated .form-control:invalid{border-color:var(--bs-form-invalid-border-color);padding-right:calc(1.5em + .75rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23dc3545'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-invalid:focus,.was-validated .form-control:invalid:focus{border-color:var(--bs-form-invalid-border-color);box-shadow:0 0 0 .25rem rgba(var(--bs-danger-rgb),.25)}.was-validated textarea.form-control:invalid,textarea.form-control.is-invalid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.form-select.is-invalid,.was-validated .form-select:invalid{border-color:var(--bs-form-invalid-border-color)}.form-select.is-invalid:not([multiple]):not([size]),.form-select.is-invalid:not([multiple])[size="1"],.was-validated .form-select:invalid:not([multiple]):not([size]),.was-validated .form-select:invalid:not([multiple])[size="1"]{--bs-form-select-bg-icon:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23dc3545'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e");padding-right:4.125rem;background-position:right .75rem center,center right 2.25rem;background-size:16px 12px,calc(.75em + .375rem) calc(.75em + .375rem)}.form-select.is-invalid:focus,.was-validated .form-select:invalid:focus{border-color:var(--bs-form-invalid-border-color);box-shadow:0 0 0 .25rem rgba(var(--bs-danger-rgb),.25)}.form-control-color.is-invalid,.was-validated .form-control-color:invalid{width:calc(3rem + calc(1.5em + .75rem))}.form-check-input.is-invalid,.was-validated .form-check-input:invalid{border-color:var(--bs-form-invalid-border-color)}.form-check-input.is-invalid:checked,.was-validated .form-check-input:invalid:checked{background-color:var(--bs-form-invalid-color)}.form-check-input.is-invalid:focus,.was-validated .form-check-input:invalid:focus{box-shadow:0 0 0 .25rem rgba(var(--bs-danger-rgb),.25)}.form-check-input.is-invalid~.form-check-label,.was-validated .form-check-input:invalid~.form-check-label{color:var(--bs-form-invalid-color)}.form-check-inline .form-check-input~.invalid-feedback{margin-left:.5em}.input-group>.form-control:not(:focus).is-invalid,.input-group>.form-floating:not(:focus-within).is-invalid,.input-group>.form-select:not(:focus).is-invalid,.was-validated .input-group>.form-control:not(:focus):invalid,.was-validated .input-group>.form-floating:not(:focus-within):invalid,.was-validated .input-group>.form-select:not(:focus):invalid{z-index:4}.btn{--bs-btn-padding-x:0.75rem;--bs-btn-padding-y:0.375rem;--bs-btn-font-family: ;--bs-btn-font-size:1rem;--bs-btn-font-weight:400;--bs-btn-line-height:1.5;--bs-btn-color:var(--bs-body-color);--bs-btn-bg:transparent;--bs-btn-border-width:var(--bs-border-width);--bs-btn-border-color:transparent;--bs-btn-border-radius:var(--bs-border-radius);--bs-btn-hover-border-color:transparent;--bs-btn-box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.15),0 1px 1px rgba(0, 0, 0, 0.075);--bs-btn-disabled-opacity:0.65;--bs-btn-focus-box-shadow:0 0 0 0.25rem rgba(var(--bs-btn-focus-shadow-rgb), .5);display:inline-block;padding:var(--bs-btn-padding-y) var(--bs-btn-padding-x);font-family:var(--bs-btn-font-family);font-size:var(--bs-btn-font-size);font-weight:var(--bs-btn-font-weight);line-height:var(--bs-btn-line-height);color:var(--bs-btn-color);text-align:center;text-decoration:none;vertical-align:middle;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;border:var(--bs-btn-border-width) solid var(--bs-btn-border-color);border-radius:var(--bs-btn-border-radius);background-color:var(--bs-btn-bg);transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.btn{transition:none}}.btn:hover{color:var(--bs-btn-hover-color);background-color:var(--bs-btn-hover-bg);border-color:var(--bs-btn-hover-border-color)}.btn-check+.btn:hover{color:var(--bs-btn-color);background-color:var(--bs-btn-bg);border-color:var(--bs-btn-border-color)}.btn:focus-visible{color:var(--bs-btn-hover-color);background-color:var(--bs-btn-hover-bg);border-color:var(--bs-btn-hover-border-color);outline:0;box-shadow:var(--bs-btn-focus-box-shadow)}.btn-check:focus-visible+.btn{border-color:var(--bs-btn-hover-border-color);outline:0;box-shadow:var(--bs-btn-focus-box-shadow)}.btn-check:checked+.btn,.btn.active,.btn.show,.btn:first-child:active,:not(.btn-check)+.btn:active{color:var(--bs-btn-active-color);background-color:var(--bs-btn-active-bg);border-color:var(--bs-btn-active-border-color)}.btn-check:checked+.btn:focus-visible,.btn.active:focus-visible,.btn.show:focus-visible,.btn:first-child:active:focus-visible,:not(.btn-check)+.btn:active:focus-visible{box-shadow:var(--bs-btn-focus-box-shadow)}.btn-check:checked:focus-visible+.btn{box-shadow:var(--bs-btn-focus-box-shadow)}.btn.disabled,.btn:disabled,fieldset:disabled .btn{color:var(--bs-btn-disabled-color);pointer-events:none;background-color:var(--bs-btn-disabled-bg);border-color:var(--bs-btn-disabled-border-color);opacity:var(--bs-btn-disabled-opacity)}.btn-primary{--bs-btn-color:#fff;--bs-btn-bg:#0d6efd;--bs-btn-border-color:#0d6efd;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#0b5ed7;--bs-btn-hover-border-color:#0a58ca;--bs-btn-focus-shadow-rgb:49,132,253;--bs-btn-active-color:#fff;--bs-btn-active-bg:#0a58ca;--bs-btn-active-border-color:#0a53be;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#fff;--bs-btn-disabled-bg:#0d6efd;--bs-btn-disabled-border-color:#0d6efd}.btn-secondary{--bs-btn-color:#fff;--bs-btn-bg:#6c757d;--bs-btn-border-color:#6c757d;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#5c636a;--bs-btn-hover-border-color:#565e64;--bs-btn-focus-shadow-rgb:130,138,145;--bs-btn-active-color:#fff;--bs-btn-active-bg:#565e64;--bs-btn-active-border-color:#51585e;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#fff;--bs-btn-disabled-bg:#6c757d;--bs-btn-disabled-border-color:#6c757d}.btn-success{--bs-btn-color:#fff;--bs-btn-bg:#198754;--bs-btn-border-color:#198754;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#157347;--bs-btn-hover-border-color:#146c43;--bs-btn-focus-shadow-rgb:60,153,110;--bs-btn-active-color:#fff;--bs-btn-active-bg:#146c43;--bs-btn-active-border-color:#13653f;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#fff;--bs-btn-disabled-bg:#198754;--bs-btn-disabled-border-color:#198754}.btn-info{--bs-btn-color:#000;--bs-btn-bg:#0dcaf0;--bs-btn-border-color:#0dcaf0;--bs-btn-hover-color:#000;--bs-btn-hover-bg:#31d2f2;--bs-btn-hover-border-color:#25cff2;--bs-btn-focus-shadow-rgb:11,172,204;--bs-btn-active-color:#000;--bs-btn-active-bg:#3dd5f3;--bs-btn-active-border-color:#25cff2;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#000;--bs-btn-disabled-bg:#0dcaf0;--bs-btn-disabled-border-color:#0dcaf0}.btn-warning{--bs-btn-color:#000;--bs-btn-bg:#ffc107;--bs-btn-border-color:#ffc107;--bs-btn-hover-color:#000;--bs-btn-hover-bg:#ffca2c;--bs-btn-hover-border-color:#ffc720;--bs-btn-focus-shadow-rgb:217,164,6;--bs-btn-active-color:#000;--bs-btn-active-bg:#ffcd39;--bs-btn-active-border-color:#ffc720;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#000;--bs-btn-disabled-bg:#ffc107;--bs-btn-disabled-border-color:#ffc107}.btn-danger{--bs-btn-color:#fff;--bs-btn-bg:#dc3545;--bs-btn-border-color:#dc3545;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#bb2d3b;--bs-btn-hover-border-color:#b02a37;--bs-btn-focus-shadow-rgb:225,83,97;--bs-btn-active-color:#fff;--bs-btn-active-bg:#b02a37;--bs-btn-active-border-color:#a52834;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#fff;--bs-btn-disabled-bg:#dc3545;--bs-btn-disabled-border-color:#dc3545}.btn-light{--bs-btn-color:#000;--bs-btn-bg:#f8f9fa;--bs-btn-border-color:#f8f9fa;--bs-btn-hover-color:#000;--bs-btn-hover-bg:#d3d4d5;--bs-btn-hover-border-color:#c6c7c8;--bs-btn-focus-shadow-rgb:211,212,213;--bs-btn-active-color:#000;--bs-btn-active-bg:#c6c7c8;--bs-btn-active-border-color:#babbbc;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#000;--bs-btn-disabled-bg:#f8f9fa;--bs-btn-disabled-border-color:#f8f9fa}.btn-dark{--bs-btn-color:#fff;--bs-btn-bg:#212529;--bs-btn-border-color:#212529;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#424649;--bs-btn-hover-border-color:#373b3e;--bs-btn-focus-shadow-rgb:66,70,73;--bs-btn-active-color:#fff;--bs-btn-active-bg:#4d5154;--bs-btn-active-border-color:#373b3e;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#fff;--bs-btn-disabled-bg:#212529;--bs-btn-disabled-border-color:#212529}.btn-outline-primary{--bs-btn-color:#0d6efd;--bs-btn-border-color:#0d6efd;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#0d6efd;--bs-btn-hover-border-color:#0d6efd;--bs-btn-focus-shadow-rgb:13,110,253;--bs-btn-active-color:#fff;--bs-btn-active-bg:#0d6efd;--bs-btn-active-border-color:#0d6efd;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#0d6efd;--bs-btn-disabled-bg:transparent;--bs-btn-disabled-border-color:#0d6efd;--bs-gradient:none}.btn-outline-secondary{--bs-btn-color:#6c757d;--bs-btn-border-color:#6c757d;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#6c757d;--bs-btn-hover-border-color:#6c757d;--bs-btn-focus-shadow-rgb:108,117,125;--bs-btn-active-color:#fff;--bs-btn-active-bg:#6c757d;--bs-btn-active-border-color:#6c757d;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#6c757d;--bs-btn-disabled-bg:transparent;--bs-btn-disabled-border-color:#6c757d;--bs-gradient:none}.btn-outline-success{--bs-btn-color:#198754;--bs-btn-border-color:#198754;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#198754;--bs-btn-hover-border-color:#198754;--bs-btn-focus-shadow-rgb:25,135,84;--bs-btn-active-color:#fff;--bs-btn-active-bg:#198754;--bs-btn-active-border-color:#198754;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#198754;--bs-btn-disabled-bg:transparent;--bs-btn-disabled-border-color:#198754;--bs-gradient:none}.btn-outline-info{--bs-btn-color:#0dcaf0;--bs-btn-border-color:#0dcaf0;--bs-btn-hover-color:#000;--bs-btn-hover-bg:#0dcaf0;--bs-btn-hover-border-color:#0dcaf0;--bs-btn-focus-shadow-rgb:13,202,240;--bs-btn-active-color:#000;--bs-btn-active-bg:#0dcaf0;--bs-btn-active-border-color:#0dcaf0;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#0dcaf0;--bs-btn-disabled-bg:transparent;--bs-btn-disabled-border-color:#0dcaf0;--bs-gradient:none}.btn-outline-warning{--bs-btn-color:#ffc107;--bs-btn-border-color:#ffc107;--bs-btn-hover-color:#000;--bs-btn-hover-bg:#ffc107;--bs-btn-hover-border-color:#ffc107;--bs-btn-focus-shadow-rgb:255,193,7;--bs-btn-active-color:#000;--bs-btn-active-bg:#ffc107;--bs-btn-active-border-color:#ffc107;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#ffc107;--bs-btn-disabled-bg:transparent;--bs-btn-disabled-border-color:#ffc107;--bs-gradient:none}.btn-outline-danger{--bs-btn-color:#dc3545;--bs-btn-border-color:#dc3545;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#dc3545;--bs-btn-hover-border-color:#dc3545;--bs-btn-focus-shadow-rgb:220,53,69;--bs-btn-active-color:#fff;--bs-btn-active-bg:#dc3545;--bs-btn-active-border-color:#dc3545;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#dc3545;--bs-btn-disabled-bg:transparent;--bs-btn-disabled-border-color:#dc3545;--bs-gradient:none}.btn-outline-light{--bs-btn-color:#f8f9fa;--bs-btn-border-color:#f8f9fa;--bs-btn-hover-color:#000;--bs-btn-hover-bg:#f8f9fa;--bs-btn-hover-border-color:#f8f9fa;--bs-btn-focus-shadow-rgb:248,249,250;--bs-btn-active-color:#000;--bs-btn-active-bg:#f8f9fa;--bs-btn-active-border-color:#f8f9fa;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#f8f9fa;--bs-btn-disabled-bg:transparent;--bs-btn-disabled-border-color:#f8f9fa;--bs-gradient:none}.btn-outline-dark{--bs-btn-color:#212529;--bs-btn-border-color:#212529;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#212529;--bs-btn-hover-border-color:#212529;--bs-btn-focus-shadow-rgb:33,37,41;--bs-btn-active-color:#fff;--bs-btn-active-bg:#212529;--bs-btn-active-border-color:#212529;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#212529;--bs-btn-disabled-bg:transparent;--bs-btn-disabled-border-color:#212529;--bs-gradient:none}.btn-link{--bs-btn-font-weight:400;--bs-btn-color:var(--bs-link-color);--bs-btn-bg:transparent;--bs-btn-border-color:transparent;--bs-btn-hover-color:var(--bs-link-hover-color);--bs-btn-hover-border-color:transparent;--bs-btn-active-color:var(--bs-link-hover-color);--bs-btn-active-border-color:transparent;--bs-btn-disabled-color:#6c757d;--bs-btn-disabled-border-color:transparent;--bs-btn-box-shadow:0 0 0 #000;--bs-btn-focus-shadow-rgb:49,132,253;text-decoration:underline}.btn-link:focus-visible{color:var(--bs-btn-color)}.btn-link:hover{color:var(--bs-btn-hover-color)}.btn-group-lg>.btn,.btn-lg{--bs-btn-padding-y:0.5rem;--bs-btn-padding-x:1rem;--bs-btn-font-size:1.25rem;--bs-btn-border-radius:var(--bs-border-radius-lg)}.btn-group-sm>.btn,.btn-sm{--bs-btn-padding-y:0.25rem;--bs-btn-padding-x:0.5rem;--bs-btn-font-size:0.875rem;--bs-btn-border-radius:var(--bs-border-radius-sm)}.fade{transition:opacity .15s linear}@media (prefers-reduced-motion:reduce){.fade{transition:none}}.fade:not(.show){opacity:0}.collapse:not(.show){display:none}.collapsing{height:0;overflow:hidden;transition:height .35s ease}@media (prefers-reduced-motion:reduce){.collapsing{transition:none}}.collapsing.collapse-horizontal{width:0;height:auto;transition:width .35s ease}@media (prefers-reduced-motion:reduce){.collapsing.collapse-horizontal{transition:none}}.dropdown,.dropdown-center,.dropend,.dropstart,.dropup,.dropup-center{position:relative}.dropdown-toggle{white-space:nowrap}.dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid;border-right:.3em solid transparent;border-bottom:0;border-left:.3em solid transparent}.dropdown-toggle:empty::after{margin-left:0}.dropdown-menu{--bs-dropdown-zindex:1000;--bs-dropdown-min-width:10rem;--bs-dropdown-padding-x:0;--bs-dropdown-padding-y:0.5rem;--bs-dropdown-spacer:0.125rem;--bs-dropdown-font-size:1rem;--bs-dropdown-color:var(--bs-body-color);--bs-dropdown-bg:var(--bs-body-bg);--bs-dropdown-border-color:var(--bs-border-color-translucent);--bs-dropdown-border-radius:var(--bs-border-radius);--bs-dropdown-border-width:var(--bs-border-width);--bs-dropdown-inner-border-radius:calc(var(--bs-border-radius) - var(--bs-border-width));--bs-dropdown-divider-bg:var(--bs-border-color-translucent);--bs-dropdown-divider-margin-y:0.5rem;--bs-dropdown-box-shadow:var(--bs-box-shadow);--bs-dropdown-link-color:var(--bs-body-color);--bs-dropdown-link-hover-color:var(--bs-body-color);--bs-dropdown-link-hover-bg:var(--bs-tertiary-bg);--bs-dropdown-link-active-color:#fff;--bs-dropdown-link-active-bg:#0d6efd;--bs-dropdown-link-disabled-color:var(--bs-tertiary-color);--bs-dropdown-item-padding-x:1rem;--bs-dropdown-item-padding-y:0.25rem;--bs-dropdown-header-color:#6c757d;--bs-dropdown-header-padding-x:1rem;--bs-dropdown-header-padding-y:0.5rem;position:absolute;z-index:var(--bs-dropdown-zindex);display:none;min-width:var(--bs-dropdown-min-width);padding:var(--bs-dropdown-padding-y) var(--bs-dropdown-padding-x);margin:0;font-size:var(--bs-dropdown-font-size);color:var(--bs-dropdown-color);text-align:left;list-style:none;background-color:var(--bs-dropdown-bg);background-clip:padding-box;border:var(--bs-dropdown-border-width) solid var(--bs-dropdown-border-color);border-radius:var(--bs-dropdown-border-radius)}.dropdown-menu[data-bs-popper]{top:100%;left:0;margin-top:var(--bs-dropdown-spacer)}.dropdown-menu-start{--bs-position:start}.dropdown-menu-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-end{--bs-position:end}.dropdown-menu-end[data-bs-popper]{right:0;left:auto}@media (min-width:576px){.dropdown-menu-sm-start{--bs-position:start}.dropdown-menu-sm-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-sm-end{--bs-position:end}.dropdown-menu-sm-end[data-bs-popper]{right:0;left:auto}}@media (min-width:768px){.dropdown-menu-md-start{--bs-position:start}.dropdown-menu-md-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-md-end{--bs-position:end}.dropdown-menu-md-end[data-bs-popper]{right:0;left:auto}}@media (min-width:992px){.dropdown-menu-lg-start{--bs-position:start}.dropdown-menu-lg-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-lg-end{--bs-position:end}.dropdown-menu-lg-end[data-bs-popper]{right:0;left:auto}}@media (min-width:1200px){.dropdown-menu-xl-start{--bs-position:start}.dropdown-menu-xl-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-xl-end{--bs-position:end}.dropdown-menu-xl-end[data-bs-popper]{right:0;left:auto}}@media (min-width:1400px){.dropdown-menu-xxl-start{--bs-position:start}.dropdown-menu-xxl-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-xxl-end{--bs-position:end}.dropdown-menu-xxl-end[data-bs-popper]{right:0;left:auto}}.dropup .dropdown-menu[data-bs-popper]{top:auto;bottom:100%;margin-top:0;margin-bottom:var(--bs-dropdown-spacer)}.dropup .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:0;border-right:.3em solid transparent;border-bottom:.3em solid;border-left:.3em solid transparent}.dropup .dropdown-toggle:empty::after{margin-left:0}.dropend .dropdown-menu[data-bs-popper]{top:0;right:auto;left:100%;margin-top:0;margin-left:var(--bs-dropdown-spacer)}.dropend .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:0;border-bottom:.3em solid transparent;border-left:.3em solid}.dropend .dropdown-toggle:empty::after{margin-left:0}.dropend .dropdown-toggle::after{vertical-align:0}.dropstart .dropdown-menu[data-bs-popper]{top:0;right:100%;left:auto;margin-top:0;margin-right:var(--bs-dropdown-spacer)}.dropstart .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:""}.dropstart .dropdown-toggle::after{display:none}.dropstart .dropdown-toggle::before{display:inline-block;margin-right:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:.3em solid;border-bottom:.3em solid transparent}.dropstart .dropdown-toggle:empty::after{margin-left:0}.dropstart .dropdown-toggle::before{vertical-align:0}.dropdown-divider{height:0;margin:var(--bs-dropdown-divider-margin-y) 0;overflow:hidden;border-top:1px solid var(--bs-dropdown-divider-bg);opacity:1}.dropdown-item{display:block;width:100%;padding:var(--bs-dropdown-item-padding-y) var(--bs-dropdown-item-padding-x);clear:both;font-weight:400;color:var(--bs-dropdown-link-color);text-align:inherit;text-decoration:none;white-space:nowrap;background-color:transparent;border:0;border-radius:var(--bs-dropdown-item-border-radius,0)}.dropdown-item:focus,.dropdown-item:hover{color:var(--bs-dropdown-link-hover-color);background-color:var(--bs-dropdown-link-hover-bg)}.dropdown-item.active,.dropdown-item:active{color:var(--bs-dropdown-link-active-color);text-decoration:none;background-color:var(--bs-dropdown-link-active-bg)}.dropdown-item.disabled,.dropdown-item:disabled{color:var(--bs-dropdown-link-disabled-color);pointer-events:none;background-color:transparent}.dropdown-menu.show{display:block}.dropdown-header{display:block;padding:var(--bs-dropdown-header-padding-y) var(--bs-dropdown-header-padding-x);margin-bottom:0;font-size:.875rem;color:var(--bs-dropdown-header-color);white-space:nowrap}.dropdown-item-text{display:block;padding:var(--bs-dropdown-item-padding-y) var(--bs-dropdown-item-padding-x);color:var(--bs-dropdown-link-color)}.dropdown-menu-dark{--bs-dropdown-color:#dee2e6;--bs-dropdown-bg:#343a40;--bs-dropdown-border-color:var(--bs-border-color-translucent);--bs-dropdown-box-shadow: ;--bs-dropdown-link-color:#dee2e6;--bs-dropdown-link-hover-color:#fff;--bs-dropdown-divider-bg:var(--bs-border-color-translucent);--bs-dropdown-link-hover-bg:rgba(255, 255, 255, 0.15);--bs-dropdown-link-active-color:#fff;--bs-dropdown-link-active-bg:#0d6efd;--bs-dropdown-link-disabled-color:#adb5bd;--bs-dropdown-header-color:#adb5bd}.btn-group,.btn-group-vertical{position:relative;display:inline-flex;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;flex:1 1 auto}.btn-group-vertical>.btn-check:checked+.btn,.btn-group-vertical>.btn-check:focus+.btn,.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:hover,.btn-group>.btn-check:checked+.btn,.btn-group>.btn-check:focus+.btn,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus,.btn-group>.btn:hover{z-index:1}.btn-toolbar{display:flex;flex-wrap:wrap;justify-content:flex-start}.btn-toolbar .input-group{width:auto}.btn-group{border-radius:var(--bs-border-radius)}.btn-group>.btn-group:not(:first-child),.btn-group>:not(.btn-check:first-child)+.btn{margin-left:calc(-1 * var(--bs-border-width))}.btn-group>.btn-group:not(:last-child)>.btn,.btn-group>.btn.dropdown-toggle-split:first-child,.btn-group>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:not(:first-child)>.btn,.btn-group>.btn:nth-child(n+3),.btn-group>:not(.btn-check)+.btn{border-top-left-radius:0;border-bottom-left-radius:0}.dropdown-toggle-split{padding-right:.5625rem;padding-left:.5625rem}.dropdown-toggle-split::after,.dropend .dropdown-toggle-split::after,.dropup .dropdown-toggle-split::after{margin-left:0}.dropstart .dropdown-toggle-split::before{margin-right:0}.btn-group-sm>.btn+.dropdown-toggle-split,.btn-sm+.dropdown-toggle-split{padding-right:.375rem;padding-left:.375rem}.btn-group-lg>.btn+.dropdown-toggle-split,.btn-lg+.dropdown-toggle-split{padding-right:.75rem;padding-left:.75rem}.btn-group-vertical{flex-direction:column;align-items:flex-start;justify-content:center}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group{width:100%}.btn-group-vertical>.btn-group:not(:first-child),.btn-group-vertical>.btn:not(:first-child){margin-top:calc(-1 * var(--bs-border-width))}.btn-group-vertical>.btn-group:not(:last-child)>.btn,.btn-group-vertical>.btn:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child)>.btn,.btn-group-vertical>.btn:nth-child(n+3),.btn-group-vertical>:not(.btn-check)+.btn{border-top-left-radius:0;border-top-right-radius:0}.nav{--bs-nav-link-padding-x:1rem;--bs-nav-link-padding-y:0.5rem;--bs-nav-link-font-weight: ;--bs-nav-link-color:var(--bs-link-color);--bs-nav-link-hover-color:var(--bs-link-hover-color);--bs-nav-link-disabled-color:var(--bs-secondary-color);display:flex;flex-wrap:wrap;padding-left:0;margin-bottom:0;list-style:none}.nav-link{display:block;padding:var(--bs-nav-link-padding-y) var(--bs-nav-link-padding-x);font-size:var(--bs-nav-link-font-size);font-weight:var(--bs-nav-link-font-weight);color:var(--bs-nav-link-color);text-decoration:none;background:0 0;border:0;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out}@media (prefers-reduced-motion:reduce){.nav-link{transition:none}}.nav-link:focus,.nav-link:hover{color:var(--bs-nav-link-hover-color)}.nav-link:focus-visible{outline:0;box-shadow:0 0 0 .25rem rgba(13,110,253,.25)}.nav-link.disabled,.nav-link:disabled{color:var(--bs-nav-link-disabled-color);pointer-events:none;cursor:default}.nav-tabs{--bs-nav-tabs-border-width:var(--bs-border-width);--bs-nav-tabs-border-color:var(--bs-border-color);--bs-nav-tabs-border-radius:var(--bs-border-radius);--bs-nav-tabs-link-hover-border-color:var(--bs-secondary-bg) var(--bs-secondary-bg) var(--bs-border-color);--bs-nav-tabs-link-active-color:var(--bs-emphasis-color);--bs-nav-tabs-link-active-bg:var(--bs-body-bg);--bs-nav-tabs-link-active-border-color:var(--bs-border-color) var(--bs-border-color) var(--bs-body-bg);border-bottom:var(--bs-nav-tabs-border-width) solid var(--bs-nav-tabs-border-color)}.nav-tabs .nav-link{margin-bottom:calc(-1 * var(--bs-nav-tabs-border-width));border:var(--bs-nav-tabs-border-width) solid transparent;border-top-left-radius:var(--bs-nav-tabs-border-radius);border-top-right-radius:var(--bs-nav-tabs-border-radius)}.nav-tabs .nav-link:focus,.nav-tabs .nav-link:hover{isolation:isolate;border-color:var(--bs-nav-tabs-link-hover-border-color)}.nav-tabs .nav-item.show .nav-link,.nav-tabs .nav-link.active{color:var(--bs-nav-tabs-link-active-color);background-color:var(--bs-nav-tabs-link-active-bg);border-color:var(--bs-nav-tabs-link-active-border-color)}.nav-tabs .dropdown-menu{margin-top:calc(-1 * var(--bs-nav-tabs-border-width));border-top-left-radius:0;border-top-right-radius:0}.nav-pills{--bs-nav-pills-border-radius:var(--bs-border-radius);--bs-nav-pills-link-active-color:#fff;--bs-nav-pills-link-active-bg:#0d6efd}.nav-pills .nav-link{border-radius:var(--bs-nav-pills-border-radius)}.nav-pills .nav-link.active,.nav-pills .show>.nav-link{color:var(--bs-nav-pills-link-active-color);background-color:var(--bs-nav-pills-link-active-bg)}.nav-underline{--bs-nav-underline-gap:1rem;--bs-nav-underline-border-width:0.125rem;--bs-nav-underline-link-active-color:var(--bs-emphasis-color);gap:var(--bs-nav-underline-gap)}.nav-underline .nav-link{padding-right:0;padding-left:0;border-bottom:var(--bs-nav-underline-border-width) solid transparent}.nav-underline .nav-link:focus,.nav-underline .nav-link:hover{border-bottom-color:currentcolor}.nav-underline .nav-link.active,.nav-underline .show>.nav-link{font-weight:700;color:var(--bs-nav-underline-link-active-color);border-bottom-color:currentcolor}.nav-fill .nav-item,.nav-fill>.nav-link{flex:1 1 auto;text-align:center}.nav-justified .nav-item,.nav-justified>.nav-link{flex-grow:1;flex-basis:0;text-align:center}.nav-fill .nav-item .nav-link,.nav-justified .nav-item .nav-link{width:100%}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.navbar{--bs-navbar-padding-x:0;--bs-navbar-padding-y:0.5rem;--bs-navbar-color:rgba(var(--bs-emphasis-color-rgb), 0.65);--bs-navbar-hover-color:rgba(var(--bs-emphasis-color-rgb), 0.8);--bs-navbar-disabled-color:rgba(var(--bs-emphasis-color-rgb), 0.3);--bs-navbar-active-color:rgba(var(--bs-emphasis-color-rgb), 1);--bs-navbar-brand-padding-y:0.3125rem;--bs-navbar-brand-margin-end:1rem;--bs-navbar-brand-font-size:1.25rem;--bs-navbar-brand-color:rgba(var(--bs-emphasis-color-rgb), 1);--bs-navbar-brand-hover-color:rgba(var(--bs-emphasis-color-rgb), 1);--bs-navbar-nav-link-padding-x:0.5rem;--bs-navbar-toggler-padding-y:0.25rem;--bs-navbar-toggler-padding-x:0.75rem;--bs-navbar-toggler-font-size:1.25rem;--bs-navbar-toggler-icon-bg:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%2833, 37, 41, 0.75%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e");--bs-navbar-toggler-border-color:rgba(var(--bs-emphasis-color-rgb), 0.15);--bs-navbar-toggler-border-radius:var(--bs-border-radius);--bs-navbar-toggler-focus-width:0.25rem;--bs-navbar-toggler-transition:box-shadow 0.15s ease-in-out;position:relative;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;padding:var(--bs-navbar-padding-y) var(--bs-navbar-padding-x)}.navbar>.container,.navbar>.container-fluid,.navbar>.container-lg,.navbar>.container-md,.navbar>.container-sm,.navbar>.container-xl,.navbar>.container-xxl{display:flex;flex-wrap:inherit;align-items:center;justify-content:space-between}.navbar-brand{padding-top:var(--bs-navbar-brand-padding-y);padding-bottom:var(--bs-navbar-brand-padding-y);margin-right:var(--bs-navbar-brand-margin-end);font-size:var(--bs-navbar-brand-font-size);color:var(--bs-navbar-brand-color);text-decoration:none;white-space:nowrap}.navbar-brand:focus,.navbar-brand:hover{color:var(--bs-navbar-brand-hover-color)}.navbar-nav{--bs-nav-link-padding-x:0;--bs-nav-link-padding-y:0.5rem;--bs-nav-link-font-weight: ;--bs-nav-link-color:var(--bs-navbar-color);--bs-nav-link-hover-color:var(--bs-navbar-hover-color);--bs-nav-link-disabled-color:var(--bs-navbar-disabled-color);display:flex;flex-direction:column;padding-left:0;margin-bottom:0;list-style:none}.navbar-nav .nav-link.active,.navbar-nav .nav-link.show{color:var(--bs-navbar-active-color)}.navbar-nav .dropdown-menu{position:static}.navbar-text{padding-top:.5rem;padding-bottom:.5rem;color:var(--bs-navbar-color)}.navbar-text a,.navbar-text a:focus,.navbar-text a:hover{color:var(--bs-navbar-active-color)}.navbar-collapse{flex-grow:1;flex-basis:100%;align-items:center}.navbar-toggler{padding:var(--bs-navbar-toggler-padding-y) var(--bs-navbar-toggler-padding-x);font-size:var(--bs-navbar-toggler-font-size);line-height:1;color:var(--bs-navbar-color);background-color:transparent;border:var(--bs-border-width) solid var(--bs-navbar-toggler-border-color);border-radius:var(--bs-navbar-toggler-border-radius);transition:var(--bs-navbar-toggler-transition)}@media (prefers-reduced-motion:reduce){.navbar-toggler{transition:none}}.navbar-toggler:hover{text-decoration:none}.navbar-toggler:focus{text-decoration:none;outline:0;box-shadow:0 0 0 var(--bs-navbar-toggler-focus-width)}.navbar-toggler-icon{display:inline-block;width:1.5em;height:1.5em;vertical-align:middle;background-image:var(--bs-navbar-toggler-icon-bg);background-repeat:no-repeat;background-position:center;background-size:100%}.navbar-nav-scroll{max-height:var(--bs-scroll-height,75vh);overflow-y:auto}@media (min-width:576px){.navbar-expand-sm{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-sm .navbar-nav{flex-direction:row}.navbar-expand-sm .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-sm .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-sm .navbar-nav-scroll{overflow:visible}.navbar-expand-sm .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-sm .navbar-toggler{display:none}.navbar-expand-sm .offcanvas{position:static;z-index:auto;flex-grow:1;width:auto!important;height:auto!important;visibility:visible!important;background-color:transparent!important;border:0!important;transform:none!important;transition:none}.navbar-expand-sm .offcanvas .offcanvas-header{display:none}.navbar-expand-sm .offcanvas .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}@media (min-width:768px){.navbar-expand-md{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-md .navbar-nav{flex-direction:row}.navbar-expand-md .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-md .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-md .navbar-nav-scroll{overflow:visible}.navbar-expand-md .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-md .navbar-toggler{display:none}.navbar-expand-md .offcanvas{position:static;z-index:auto;flex-grow:1;width:auto!important;height:auto!important;visibility:visible!important;background-color:transparent!important;border:0!important;transform:none!important;transition:none}.navbar-expand-md .offcanvas .offcanvas-header{display:none}.navbar-expand-md .offcanvas .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}@media (min-width:992px){.navbar-expand-lg{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-lg .navbar-nav{flex-direction:row}.navbar-expand-lg .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-lg .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-lg .navbar-nav-scroll{overflow:visible}.navbar-expand-lg .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-lg .navbar-toggler{display:none}.navbar-expand-lg .offcanvas{position:static;z-index:auto;flex-grow:1;width:auto!important;height:auto!important;visibility:visible!important;background-color:transparent!important;border:0!important;transform:none!important;transition:none}.navbar-expand-lg .offcanvas .offcanvas-header{display:none}.navbar-expand-lg .offcanvas .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}@media (min-width:1200px){.navbar-expand-xl{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-xl .navbar-nav{flex-direction:row}.navbar-expand-xl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xl .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-xl .navbar-nav-scroll{overflow:visible}.navbar-expand-xl .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-xl .navbar-toggler{display:none}.navbar-expand-xl .offcanvas{position:static;z-index:auto;flex-grow:1;width:auto!important;height:auto!important;visibility:visible!important;background-color:transparent!important;border:0!important;transform:none!important;transition:none}.navbar-expand-xl .offcanvas .offcanvas-header{display:none}.navbar-expand-xl .offcanvas .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}@media (min-width:1400px){.navbar-expand-xxl{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-xxl .navbar-nav{flex-direction:row}.navbar-expand-xxl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xxl .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-xxl .navbar-nav-scroll{overflow:visible}.navbar-expand-xxl .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-xxl .navbar-toggler{display:none}.navbar-expand-xxl .offcanvas{position:static;z-index:auto;flex-grow:1;width:auto!important;height:auto!important;visibility:visible!important;background-color:transparent!important;border:0!important;transform:none!important;transition:none}.navbar-expand-xxl .offcanvas .offcanvas-header{display:none}.navbar-expand-xxl .offcanvas .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}.navbar-expand{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand .navbar-nav{flex-direction:row}.navbar-expand .navbar-nav .dropdown-menu{position:absolute}.navbar-expand .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand .navbar-nav-scroll{overflow:visible}.navbar-expand .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand .navbar-toggler{display:none}.navbar-expand .offcanvas{position:static;z-index:auto;flex-grow:1;width:auto!important;height:auto!important;visibility:visible!important;background-color:transparent!important;border:0!important;transform:none!important;transition:none}.navbar-expand .offcanvas .offcanvas-header{display:none}.navbar-expand .offcanvas .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}.navbar-dark,.navbar[data-bs-theme=dark]{--bs-navbar-color:rgba(255, 255, 255, 0.55);--bs-navbar-hover-color:rgba(255, 255, 255, 0.75);--bs-navbar-disabled-color:rgba(255, 255, 255, 0.25);--bs-navbar-active-color:#fff;--bs-navbar-brand-color:#fff;--bs-navbar-brand-hover-color:#fff;--bs-navbar-toggler-border-color:rgba(255, 255, 255, 0.1);--bs-navbar-toggler-icon-bg:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.55%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}[data-bs-theme=dark] .navbar-toggler-icon{--bs-navbar-toggler-icon-bg:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.55%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}.card{--bs-card-spacer-y:1rem;--bs-card-spacer-x:1rem;--bs-card-title-spacer-y:0.5rem;--bs-card-title-color: ;--bs-card-subtitle-color: ;--bs-card-border-width:var(--bs-border-width);--bs-card-border-color:var(--bs-border-color-translucent);--bs-card-border-radius:var(--bs-border-radius);--bs-card-box-shadow: ;--bs-card-inner-border-radius:calc(var(--bs-border-radius) - (var(--bs-border-width)));--bs-card-cap-padding-y:0.5rem;--bs-card-cap-padding-x:1rem;--bs-card-cap-bg:rgba(var(--bs-body-color-rgb), 0.03);--bs-card-cap-color: ;--bs-card-height: ;--bs-card-color: ;--bs-card-bg:var(--bs-body-bg);--bs-card-img-overlay-padding:1rem;--bs-card-group-margin:0.75rem;position:relative;display:flex;flex-direction:column;min-width:0;height:var(--bs-card-height);color:var(--bs-body-color);word-wrap:break-word;background-color:var(--bs-card-bg);background-clip:border-box;border:var(--bs-card-border-width) solid var(--bs-card-border-color);border-radius:var(--bs-card-border-radius)}.card>hr{margin-right:0;margin-left:0}.card>.list-group{border-top:inherit;border-bottom:inherit}.card>.list-group:first-child{border-top-width:0;border-top-left-radius:var(--bs-card-inner-border-radius);border-top-right-radius:var(--bs-card-inner-border-radius)}.card>.list-group:last-child{border-bottom-width:0;border-bottom-right-radius:var(--bs-card-inner-border-radius);border-bottom-left-radius:var(--bs-card-inner-border-radius)}.card>.card-header+.list-group,.card>.list-group+.card-footer{border-top:0}.card-body{flex:1 1 auto;padding:var(--bs-card-spacer-y) var(--bs-card-spacer-x);color:var(--bs-card-color)}.card-title{margin-bottom:var(--bs-card-title-spacer-y);color:var(--bs-card-title-color)}.card-subtitle{margin-top:calc(-.5 * var(--bs-card-title-spacer-y));margin-bottom:0;color:var(--bs-card-subtitle-color)}.card-text:last-child{margin-bottom:0}.card-link+.card-link{margin-left:var(--bs-card-spacer-x)}.card-header{padding:var(--bs-card-cap-padding-y) var(--bs-card-cap-padding-x);margin-bottom:0;color:var(--bs-card-cap-color);background-color:var(--bs-card-cap-bg);border-bottom:var(--bs-card-border-width) solid var(--bs-card-border-color)}.card-header:first-child{border-radius:var(--bs-card-inner-border-radius) var(--bs-card-inner-border-radius) 0 0}.card-footer{padding:var(--bs-card-cap-padding-y) var(--bs-card-cap-padding-x);color:var(--bs-card-cap-color);background-color:var(--bs-card-cap-bg);border-top:var(--bs-card-border-width) solid var(--bs-card-border-color)}.card-footer:last-child{border-radius:0 0 var(--bs-card-inner-border-radius) var(--bs-card-inner-border-radius)}.card-header-tabs{margin-right:calc(-.5 * var(--bs-card-cap-padding-x));margin-bottom:calc(-1 * var(--bs-card-cap-padding-y));margin-left:calc(-.5 * var(--bs-card-cap-padding-x));border-bottom:0}.card-header-tabs .nav-link.active{background-color:var(--bs-card-bg);border-bottom-color:var(--bs-card-bg)}.card-header-pills{margin-right:calc(-.5 * var(--bs-card-cap-padding-x));margin-left:calc(-.5 * var(--bs-card-cap-padding-x))}.card-img-overlay{position:absolute;top:0;right:0;bottom:0;left:0;padding:var(--bs-card-img-overlay-padding);border-radius:var(--bs-card-inner-border-radius)}.card-img,.card-img-bottom,.card-img-top{width:100%}.card-img,.card-img-top{border-top-left-radius:var(--bs-card-inner-border-radius);border-top-right-radius:var(--bs-card-inner-border-radius)}.card-img,.card-img-bottom{border-bottom-right-radius:var(--bs-card-inner-border-radius);border-bottom-left-radius:var(--bs-card-inner-border-radius)}.card-group>.card{margin-bottom:var(--bs-card-group-margin)}@media (min-width:576px){.card-group{display:flex;flex-flow:row wrap}.card-group>.card{flex:1 0 0;margin-bottom:0}.card-group>.card+.card{margin-left:0;border-left:0}.card-group>.card:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.card-group>.card:not(:last-child)>.card-header,.card-group>.card:not(:last-child)>.card-img-top{border-top-right-radius:0}.card-group>.card:not(:last-child)>.card-footer,.card-group>.card:not(:last-child)>.card-img-bottom{border-bottom-right-radius:0}.card-group>.card:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.card-group>.card:not(:first-child)>.card-header,.card-group>.card:not(:first-child)>.card-img-top{border-top-left-radius:0}.card-group>.card:not(:first-child)>.card-footer,.card-group>.card:not(:first-child)>.card-img-bottom{border-bottom-left-radius:0}}.accordion{--bs-accordion-color:var(--bs-body-color);--bs-accordion-bg:var(--bs-body-bg);--bs-accordion-transition:color 0.15s ease-in-out,background-color 0.15s ease-in-out,border-color 0.15s ease-in-out,box-shadow 0.15s ease-in-out,border-radius 0.15s ease;--bs-accordion-border-color:var(--bs-border-color);--bs-accordion-border-width:var(--bs-border-width);--bs-accordion-border-radius:var(--bs-border-radius);--bs-accordion-inner-border-radius:calc(var(--bs-border-radius) - (var(--bs-border-width)));--bs-accordion-btn-padding-x:1.25rem;--bs-accordion-btn-padding-y:1rem;--bs-accordion-btn-color:var(--bs-body-color);--bs-accordion-btn-bg:var(--bs-accordion-bg);--bs-accordion-btn-icon:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%23212529' stroke-linecap='round' stroke-linejoin='round'%3e%3cpath d='m2 5 6 6 6-6'/%3e%3c/svg%3e");--bs-accordion-btn-icon-width:1.25rem;--bs-accordion-btn-icon-transform:rotate(-180deg);--bs-accordion-btn-icon-transition:transform 0.2s ease-in-out;--bs-accordion-btn-active-icon:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%23052c65' stroke-linecap='round' stroke-linejoin='round'%3e%3cpath d='m2 5 6 6 6-6'/%3e%3c/svg%3e");--bs-accordion-btn-focus-box-shadow:0 0 0 0.25rem rgba(13, 110, 253, 0.25);--bs-accordion-body-padding-x:1.25rem;--bs-accordion-body-padding-y:1rem;--bs-accordion-active-color:var(--bs-primary-text-emphasis);--bs-accordion-active-bg:var(--bs-primary-bg-subtle)}.accordion-button{position:relative;display:flex;align-items:center;width:100%;padding:var(--bs-accordion-btn-padding-y) var(--bs-accordion-btn-padding-x);font-size:1rem;color:var(--bs-accordion-btn-color);text-align:left;background-color:var(--bs-accordion-btn-bg);border:0;border-radius:0;overflow-anchor:none;transition:var(--bs-accordion-transition)}@media (prefers-reduced-motion:reduce){.accordion-button{transition:none}}.accordion-button:not(.collapsed){color:var(--bs-accordion-active-color);background-color:var(--bs-accordion-active-bg);box-shadow:inset 0 calc(-1 * var(--bs-accordion-border-width)) 0 var(--bs-accordion-border-color)}.accordion-button:not(.collapsed)::after{background-image:var(--bs-accordion-btn-active-icon);transform:var(--bs-accordion-btn-icon-transform)}.accordion-button::after{flex-shrink:0;width:var(--bs-accordion-btn-icon-width);height:var(--bs-accordion-btn-icon-width);margin-left:auto;content:"";background-image:var(--bs-accordion-btn-icon);background-repeat:no-repeat;background-size:var(--bs-accordion-btn-icon-width);transition:var(--bs-accordion-btn-icon-transition)}@media (prefers-reduced-motion:reduce){.accordion-button::after{transition:none}}.accordion-button:hover{z-index:2}.accordion-button:focus{z-index:3;outline:0;box-shadow:var(--bs-accordion-btn-focus-box-shadow)}.accordion-header{margin-bottom:0}.accordion-item{color:var(--bs-accordion-color);background-color:var(--bs-accordion-bg);border:var(--bs-accordion-border-width) solid var(--bs-accordion-border-color)}.accordion-item:first-of-type{border-top-left-radius:var(--bs-accordion-border-radius);border-top-right-radius:var(--bs-accordion-border-radius)}.accordion-item:first-of-type>.accordion-header .accordion-button{border-top-left-radius:var(--bs-accordion-inner-border-radius);border-top-right-radius:var(--bs-accordion-inner-border-radius)}.accordion-item:not(:first-of-type){border-top:0}.accordion-item:last-of-type{border-bottom-right-radius:var(--bs-accordion-border-radius);border-bottom-left-radius:var(--bs-accordion-border-radius)}.accordion-item:last-of-type>.accordion-header .accordion-button.collapsed{border-bottom-right-radius:var(--bs-accordion-inner-border-radius);border-bottom-left-radius:var(--bs-accordion-inner-border-radius)}.accordion-item:last-of-type>.accordion-collapse{border-bottom-right-radius:var(--bs-accordion-border-radius);border-bottom-left-radius:var(--bs-accordion-border-radius)}.accordion-body{padding:var(--bs-accordion-body-padding-y) var(--bs-accordion-body-padding-x)}.accordion-flush>.accordion-item{border-right:0;border-left:0;border-radius:0}.accordion-flush>.accordion-item:first-child{border-top:0}.accordion-flush>.accordion-item:last-child{border-bottom:0}.accordion-flush>.accordion-item>.accordion-collapse,.accordion-flush>.accordion-item>.accordion-header .accordion-button,.accordion-flush>.accordion-item>.accordion-header .accordion-button.collapsed{border-radius:0}[data-bs-theme=dark] .accordion-button::after{--bs-accordion-btn-icon:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%236ea8fe'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708'/%3e%3c/svg%3e");--bs-accordion-btn-active-icon:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%236ea8fe'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708'/%3e%3c/svg%3e")}.breadcrumb{--bs-breadcrumb-padding-x:0;--bs-breadcrumb-padding-y:0;--bs-breadcrumb-margin-bottom:1rem;--bs-breadcrumb-bg: ;--bs-breadcrumb-border-radius: ;--bs-breadcrumb-divider-color:var(--bs-secondary-color);--bs-breadcrumb-item-padding-x:0.5rem;--bs-breadcrumb-item-active-color:var(--bs-secondary-color);display:flex;flex-wrap:wrap;padding:var(--bs-breadcrumb-padding-y) var(--bs-breadcrumb-padding-x);margin-bottom:var(--bs-breadcrumb-margin-bottom);font-size:var(--bs-breadcrumb-font-size);list-style:none;background-color:var(--bs-breadcrumb-bg);border-radius:var(--bs-breadcrumb-border-radius)}.breadcrumb-item+.breadcrumb-item{padding-left:var(--bs-breadcrumb-item-padding-x)}.breadcrumb-item+.breadcrumb-item::before{float:left;padding-right:var(--bs-breadcrumb-item-padding-x);color:var(--bs-breadcrumb-divider-color);content:var(--bs-breadcrumb-divider, "/")}.breadcrumb-item.active{color:var(--bs-breadcrumb-item-active-color)}.pagination{--bs-pagination-padding-x:0.75rem;--bs-pagination-padding-y:0.375rem;--bs-pagination-font-size:1rem;--bs-pagination-color:var(--bs-link-color);--bs-pagination-bg:var(--bs-body-bg);--bs-pagination-border-width:var(--bs-border-width);--bs-pagination-border-color:var(--bs-border-color);--bs-pagination-border-radius:var(--bs-border-radius);--bs-pagination-hover-color:var(--bs-link-hover-color);--bs-pagination-hover-bg:var(--bs-tertiary-bg);--bs-pagination-hover-border-color:var(--bs-border-color);--bs-pagination-focus-color:var(--bs-link-hover-color);--bs-pagination-focus-bg:var(--bs-secondary-bg);--bs-pagination-focus-box-shadow:0 0 0 0.25rem rgba(13, 110, 253, 0.25);--bs-pagination-active-color:#fff;--bs-pagination-active-bg:#0d6efd;--bs-pagination-active-border-color:#0d6efd;--bs-pagination-disabled-color:var(--bs-secondary-color);--bs-pagination-disabled-bg:var(--bs-secondary-bg);--bs-pagination-disabled-border-color:var(--bs-border-color);display:flex;padding-left:0;list-style:none}.page-link{position:relative;display:block;padding:var(--bs-pagination-padding-y) var(--bs-pagination-padding-x);font-size:var(--bs-pagination-font-size);color:var(--bs-pagination-color);text-decoration:none;background-color:var(--bs-pagination-bg);border:var(--bs-pagination-border-width) solid var(--bs-pagination-border-color);transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.page-link{transition:none}}.page-link:hover{z-index:2;color:var(--bs-pagination-hover-color);background-color:var(--bs-pagination-hover-bg);border-color:var(--bs-pagination-hover-border-color)}.page-link:focus{z-index:3;color:var(--bs-pagination-focus-color);background-color:var(--bs-pagination-focus-bg);outline:0;box-shadow:var(--bs-pagination-focus-box-shadow)}.active>.page-link,.page-link.active{z-index:3;color:var(--bs-pagination-active-color);background-color:var(--bs-pagination-active-bg);border-color:var(--bs-pagination-active-border-color)}.disabled>.page-link,.page-link.disabled{color:var(--bs-pagination-disabled-color);pointer-events:none;background-color:var(--bs-pagination-disabled-bg);border-color:var(--bs-pagination-disabled-border-color)}.page-item:not(:first-child) .page-link{margin-left:calc(-1 * var(--bs-border-width))}.page-item:first-child .page-link{border-top-left-radius:var(--bs-pagination-border-radius);border-bottom-left-radius:var(--bs-pagination-border-radius)}.page-item:last-child .page-link{border-top-right-radius:var(--bs-pagination-border-radius);border-bottom-right-radius:var(--bs-pagination-border-radius)}.pagination-lg{--bs-pagination-padding-x:1.5rem;--bs-pagination-padding-y:0.75rem;--bs-pagination-font-size:1.25rem;--bs-pagination-border-radius:var(--bs-border-radius-lg)}.pagination-sm{--bs-pagination-padding-x:0.5rem;--bs-pagination-padding-y:0.25rem;--bs-pagination-font-size:0.875rem;--bs-pagination-border-radius:var(--bs-border-radius-sm)}.badge{--bs-badge-padding-x:0.65em;--bs-badge-padding-y:0.35em;--bs-badge-font-size:0.75em;--bs-badge-font-weight:700;--bs-badge-color:#fff;--bs-badge-border-radius:var(--bs-border-radius);display:inline-block;padding:var(--bs-badge-padding-y) var(--bs-badge-padding-x);font-size:var(--bs-badge-font-size);font-weight:var(--bs-badge-font-weight);line-height:1;color:var(--bs-badge-color);text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:var(--bs-badge-border-radius)}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.alert{--bs-alert-bg:transparent;--bs-alert-padding-x:1rem;--bs-alert-padding-y:1rem;--bs-alert-margin-bottom:1rem;--bs-alert-color:inherit;--bs-alert-border-color:transparent;--bs-alert-border:var(--bs-border-width) solid var(--bs-alert-border-color);--bs-alert-border-radius:var(--bs-border-radius);--bs-alert-link-color:inherit;position:relative;padding:var(--bs-alert-padding-y) var(--bs-alert-padding-x);margin-bottom:var(--bs-alert-margin-bottom);color:var(--bs-alert-color);background-color:var(--bs-alert-bg);border:var(--bs-alert-border);border-radius:var(--bs-alert-border-radius)}.alert-heading{color:inherit}.alert-link{font-weight:700;color:var(--bs-alert-link-color)}.alert-dismissible{padding-right:3rem}.alert-dismissible .btn-close{position:absolute;top:0;right:0;z-index:2;padding:1.25rem 1rem}.alert-primary{--bs-alert-color:var(--bs-primary-text-emphasis);--bs-alert-bg:var(--bs-primary-bg-subtle);--bs-alert-border-color:var(--bs-primary-border-subtle);--bs-alert-link-color:var(--bs-primary-text-emphasis)}.alert-secondary{--bs-alert-color:var(--bs-secondary-text-emphasis);--bs-alert-bg:var(--bs-secondary-bg-subtle);--bs-alert-border-color:var(--bs-secondary-border-subtle);--bs-alert-link-color:var(--bs-secondary-text-emphasis)}.alert-success{--bs-alert-color:var(--bs-success-text-emphasis);--bs-alert-bg:var(--bs-success-bg-subtle);--bs-alert-border-color:var(--bs-success-border-subtle);--bs-alert-link-color:var(--bs-success-text-emphasis)}.alert-info{--bs-alert-color:var(--bs-info-text-emphasis);--bs-alert-bg:var(--bs-info-bg-subtle);--bs-alert-border-color:var(--bs-info-border-subtle);--bs-alert-link-color:var(--bs-info-text-emphasis)}.alert-warning{--bs-alert-color:var(--bs-warning-text-emphasis);--bs-alert-bg:var(--bs-warning-bg-subtle);--bs-alert-border-color:var(--bs-warning-border-subtle);--bs-alert-link-color:var(--bs-warning-text-emphasis)}.alert-danger{--bs-alert-color:var(--bs-danger-text-emphasis);--bs-alert-bg:var(--bs-danger-bg-subtle);--bs-alert-border-color:var(--bs-danger-border-subtle);--bs-alert-link-color:var(--bs-danger-text-emphasis)}.alert-light{--bs-alert-color:var(--bs-light-text-emphasis);--bs-alert-bg:var(--bs-light-bg-subtle);--bs-alert-border-color:var(--bs-light-border-subtle);--bs-alert-link-color:var(--bs-light-text-emphasis)}.alert-dark{--bs-alert-color:var(--bs-dark-text-emphasis);--bs-alert-bg:var(--bs-dark-bg-subtle);--bs-alert-border-color:var(--bs-dark-border-subtle);--bs-alert-link-color:var(--bs-dark-text-emphasis)}@keyframes progress-bar-stripes{0%{background-position-x:var(--bs-progress-height)}}.progress,.progress-stacked{--bs-progress-height:1rem;--bs-progress-font-size:0.75rem;--bs-progress-bg:var(--bs-secondary-bg);--bs-progress-border-radius:var(--bs-border-radius);--bs-progress-box-shadow:var(--bs-box-shadow-inset);--bs-progress-bar-color:#fff;--bs-progress-bar-bg:#0d6efd;--bs-progress-bar-transition:width 0.6s ease;display:flex;height:var(--bs-progress-height);overflow:hidden;font-size:var(--bs-progress-font-size);background-color:var(--bs-progress-bg);border-radius:var(--bs-progress-border-radius)}.progress-bar{display:flex;flex-direction:column;justify-content:center;overflow:hidden;color:var(--bs-progress-bar-color);text-align:center;white-space:nowrap;background-color:var(--bs-progress-bar-bg);transition:var(--bs-progress-bar-transition)}@media (prefers-reduced-motion:reduce){.progress-bar{transition:none}}.progress-bar-striped{background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-size:var(--bs-progress-height) var(--bs-progress-height)}.progress-stacked>.progress{overflow:visible}.progress-stacked>.progress>.progress-bar{width:100%}.progress-bar-animated{animation:1s linear infinite progress-bar-stripes}@media (prefers-reduced-motion:reduce){.progress-bar-animated{animation:none}}.list-group{--bs-list-group-color:var(--bs-body-color);--bs-list-group-bg:var(--bs-body-bg);--bs-list-group-border-color:var(--bs-border-color);--bs-list-group-border-width:var(--bs-border-width);--bs-list-group-border-radius:var(--bs-border-radius);--bs-list-group-item-padding-x:1rem;--bs-list-group-item-padding-y:0.5rem;--bs-list-group-action-color:var(--bs-secondary-color);--bs-list-group-action-hover-color:var(--bs-emphasis-color);--bs-list-group-action-hover-bg:var(--bs-tertiary-bg);--bs-list-group-action-active-color:var(--bs-body-color);--bs-list-group-action-active-bg:var(--bs-secondary-bg);--bs-list-group-disabled-color:var(--bs-secondary-color);--bs-list-group-disabled-bg:var(--bs-body-bg);--bs-list-group-active-color:#fff;--bs-list-group-active-bg:#0d6efd;--bs-list-group-active-border-color:#0d6efd;display:flex;flex-direction:column;padding-left:0;margin-bottom:0;border-radius:var(--bs-list-group-border-radius)}.list-group-numbered{list-style-type:none;counter-reset:section}.list-group-numbered>.list-group-item::before{content:counters(section, ".") ". ";counter-increment:section}.list-group-item{position:relative;display:block;padding:var(--bs-list-group-item-padding-y) var(--bs-list-group-item-padding-x);color:var(--bs-list-group-color);text-decoration:none;background-color:var(--bs-list-group-bg);border:var(--bs-list-group-border-width) solid var(--bs-list-group-border-color)}.list-group-item:first-child{border-top-left-radius:inherit;border-top-right-radius:inherit}.list-group-item:last-child{border-bottom-right-radius:inherit;border-bottom-left-radius:inherit}.list-group-item.disabled,.list-group-item:disabled{color:var(--bs-list-group-disabled-color);pointer-events:none;background-color:var(--bs-list-group-disabled-bg)}.list-group-item.active{z-index:2;color:var(--bs-list-group-active-color);background-color:var(--bs-list-group-active-bg);border-color:var(--bs-list-group-active-border-color)}.list-group-item+.list-group-item{border-top-width:0}.list-group-item+.list-group-item.active{margin-top:calc(-1 * var(--bs-list-group-border-width));border-top-width:var(--bs-list-group-border-width)}.list-group-item-action{width:100%;color:var(--bs-list-group-action-color);text-align:inherit}.list-group-item-action:not(.active):focus,.list-group-item-action:not(.active):hover{z-index:1;color:var(--bs-list-group-action-hover-color);text-decoration:none;background-color:var(--bs-list-group-action-hover-bg)}.list-group-item-action:not(.active):active{color:var(--bs-list-group-action-active-color);background-color:var(--bs-list-group-action-active-bg)}.list-group-horizontal{flex-direction:row}.list-group-horizontal>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal>.list-group-item.active{margin-top:0}.list-group-horizontal>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal>.list-group-item+.list-group-item.active{margin-left:calc(-1 * var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}@media (min-width:576px){.list-group-horizontal-sm{flex-direction:row}.list-group-horizontal-sm>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-sm>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-sm>.list-group-item.active{margin-top:0}.list-group-horizontal-sm>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal-sm>.list-group-item+.list-group-item.active{margin-left:calc(-1 * var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}}@media (min-width:768px){.list-group-horizontal-md{flex-direction:row}.list-group-horizontal-md>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-md>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-md>.list-group-item.active{margin-top:0}.list-group-horizontal-md>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal-md>.list-group-item+.list-group-item.active{margin-left:calc(-1 * var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}}@media (min-width:992px){.list-group-horizontal-lg{flex-direction:row}.list-group-horizontal-lg>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-lg>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-lg>.list-group-item.active{margin-top:0}.list-group-horizontal-lg>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal-lg>.list-group-item+.list-group-item.active{margin-left:calc(-1 * var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}}@media (min-width:1200px){.list-group-horizontal-xl{flex-direction:row}.list-group-horizontal-xl>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-xl>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-xl>.list-group-item.active{margin-top:0}.list-group-horizontal-xl>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal-xl>.list-group-item+.list-group-item.active{margin-left:calc(-1 * var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}}@media (min-width:1400px){.list-group-horizontal-xxl{flex-direction:row}.list-group-horizontal-xxl>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-xxl>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-xxl>.list-group-item.active{margin-top:0}.list-group-horizontal-xxl>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal-xxl>.list-group-item+.list-group-item.active{margin-left:calc(-1 * var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}}.list-group-flush{border-radius:0}.list-group-flush>.list-group-item{border-width:0 0 var(--bs-list-group-border-width)}.list-group-flush>.list-group-item:last-child{border-bottom-width:0}.list-group-item-primary{--bs-list-group-color:var(--bs-primary-text-emphasis);--bs-list-group-bg:var(--bs-primary-bg-subtle);--bs-list-group-border-color:var(--bs-primary-border-subtle);--bs-list-group-action-hover-color:var(--bs-emphasis-color);--bs-list-group-action-hover-bg:var(--bs-primary-border-subtle);--bs-list-group-action-active-color:var(--bs-emphasis-color);--bs-list-group-action-active-bg:var(--bs-primary-border-subtle);--bs-list-group-active-color:var(--bs-primary-bg-subtle);--bs-list-group-active-bg:var(--bs-primary-text-emphasis);--bs-list-group-active-border-color:var(--bs-primary-text-emphasis)}.list-group-item-secondary{--bs-list-group-color:var(--bs-secondary-text-emphasis);--bs-list-group-bg:var(--bs-secondary-bg-subtle);--bs-list-group-border-color:var(--bs-secondary-border-subtle);--bs-list-group-action-hover-color:var(--bs-emphasis-color);--bs-list-group-action-hover-bg:var(--bs-secondary-border-subtle);--bs-list-group-action-active-color:var(--bs-emphasis-color);--bs-list-group-action-active-bg:var(--bs-secondary-border-subtle);--bs-list-group-active-color:var(--bs-secondary-bg-subtle);--bs-list-group-active-bg:var(--bs-secondary-text-emphasis);--bs-list-group-active-border-color:var(--bs-secondary-text-emphasis)}.list-group-item-success{--bs-list-group-color:var(--bs-success-text-emphasis);--bs-list-group-bg:var(--bs-success-bg-subtle);--bs-list-group-border-color:var(--bs-success-border-subtle);--bs-list-group-action-hover-color:var(--bs-emphasis-color);--bs-list-group-action-hover-bg:var(--bs-success-border-subtle);--bs-list-group-action-active-color:var(--bs-emphasis-color);--bs-list-group-action-active-bg:var(--bs-success-border-subtle);--bs-list-group-active-color:var(--bs-success-bg-subtle);--bs-list-group-active-bg:var(--bs-success-text-emphasis);--bs-list-group-active-border-color:var(--bs-success-text-emphasis)}.list-group-item-info{--bs-list-group-color:var(--bs-info-text-emphasis);--bs-list-group-bg:var(--bs-info-bg-subtle);--bs-list-group-border-color:var(--bs-info-border-subtle);--bs-list-group-action-hover-color:var(--bs-emphasis-color);--bs-list-group-action-hover-bg:var(--bs-info-border-subtle);--bs-list-group-action-active-color:var(--bs-emphasis-color);--bs-list-group-action-active-bg:var(--bs-info-border-subtle);--bs-list-group-active-color:var(--bs-info-bg-subtle);--bs-list-group-active-bg:var(--bs-info-text-emphasis);--bs-list-group-active-border-color:var(--bs-info-text-emphasis)}.list-group-item-warning{--bs-list-group-color:var(--bs-warning-text-emphasis);--bs-list-group-bg:var(--bs-warning-bg-subtle);--bs-list-group-border-color:var(--bs-warning-border-subtle);--bs-list-group-action-hover-color:var(--bs-emphasis-color);--bs-list-group-action-hover-bg:var(--bs-warning-border-subtle);--bs-list-group-action-active-color:var(--bs-emphasis-color);--bs-list-group-action-active-bg:var(--bs-warning-border-subtle);--bs-list-group-active-color:var(--bs-warning-bg-subtle);--bs-list-group-active-bg:var(--bs-warning-text-emphasis);--bs-list-group-active-border-color:var(--bs-warning-text-emphasis)}.list-group-item-danger{--bs-list-group-color:var(--bs-danger-text-emphasis);--bs-list-group-bg:var(--bs-danger-bg-subtle);--bs-list-group-border-color:var(--bs-danger-border-subtle);--bs-list-group-action-hover-color:var(--bs-emphasis-color);--bs-list-group-action-hover-bg:var(--bs-danger-border-subtle);--bs-list-group-action-active-color:var(--bs-emphasis-color);--bs-list-group-action-active-bg:var(--bs-danger-border-subtle);--bs-list-group-active-color:var(--bs-danger-bg-subtle);--bs-list-group-active-bg:var(--bs-danger-text-emphasis);--bs-list-group-active-border-color:var(--bs-danger-text-emphasis)}.list-group-item-light{--bs-list-group-color:var(--bs-light-text-emphasis);--bs-list-group-bg:var(--bs-light-bg-subtle);--bs-list-group-border-color:var(--bs-light-border-subtle);--bs-list-group-action-hover-color:var(--bs-emphasis-color);--bs-list-group-action-hover-bg:var(--bs-light-border-subtle);--bs-list-group-action-active-color:var(--bs-emphasis-color);--bs-list-group-action-active-bg:var(--bs-light-border-subtle);--bs-list-group-active-color:var(--bs-light-bg-subtle);--bs-list-group-active-bg:var(--bs-light-text-emphasis);--bs-list-group-active-border-color:var(--bs-light-text-emphasis)}.list-group-item-dark{--bs-list-group-color:var(--bs-dark-text-emphasis);--bs-list-group-bg:var(--bs-dark-bg-subtle);--bs-list-group-border-color:var(--bs-dark-border-subtle);--bs-list-group-action-hover-color:var(--bs-emphasis-color);--bs-list-group-action-hover-bg:var(--bs-dark-border-subtle);--bs-list-group-action-active-color:var(--bs-emphasis-color);--bs-list-group-action-active-bg:var(--bs-dark-border-subtle);--bs-list-group-active-color:var(--bs-dark-bg-subtle);--bs-list-group-active-bg:var(--bs-dark-text-emphasis);--bs-list-group-active-border-color:var(--bs-dark-text-emphasis)}.btn-close{--bs-btn-close-color:#000;--bs-btn-close-bg:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23000'%3e%3cpath d='M.293.293a1 1 0 0 1 1.414 0L8 6.586 14.293.293a1 1 0 1 1 1.414 1.414L9.414 8l6.293 6.293a1 1 0 0 1-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 0 1-1.414-1.414L6.586 8 .293 1.707a1 1 0 0 1 0-1.414'/%3e%3c/svg%3e");--bs-btn-close-opacity:0.5;--bs-btn-close-hover-opacity:0.75;--bs-btn-close-focus-shadow:0 0 0 0.25rem rgba(13, 110, 253, 0.25);--bs-btn-close-focus-opacity:1;--bs-btn-close-disabled-opacity:0.25;box-sizing:content-box;width:1em;height:1em;padding:.25em .25em;color:var(--bs-btn-close-color);background:transparent var(--bs-btn-close-bg) center/1em auto no-repeat;filter:var(--bs-btn-close-filter);border:0;border-radius:.375rem;opacity:var(--bs-btn-close-opacity)}.btn-close:hover{color:var(--bs-btn-close-color);text-decoration:none;opacity:var(--bs-btn-close-hover-opacity)}.btn-close:focus{outline:0;box-shadow:var(--bs-btn-close-focus-shadow);opacity:var(--bs-btn-close-focus-opacity)}.btn-close.disabled,.btn-close:disabled{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;opacity:var(--bs-btn-close-disabled-opacity)}.btn-close-white{--bs-btn-close-filter:invert(1) grayscale(100%) brightness(200%)}:root,[data-bs-theme=light]{--bs-btn-close-filter: }[data-bs-theme=dark]{--bs-btn-close-filter:invert(1) grayscale(100%) brightness(200%)}.toast{--bs-toast-zindex:1090;--bs-toast-padding-x:0.75rem;--bs-toast-padding-y:0.5rem;--bs-toast-spacing:1.5rem;--bs-toast-max-width:350px;--bs-toast-font-size:0.875rem;--bs-toast-color: ;--bs-toast-bg:rgba(var(--bs-body-bg-rgb), 0.85);--bs-toast-border-width:var(--bs-border-width);--bs-toast-border-color:var(--bs-border-color-translucent);--bs-toast-border-radius:var(--bs-border-radius);--bs-toast-box-shadow:var(--bs-box-shadow);--bs-toast-header-color:var(--bs-secondary-color);--bs-toast-header-bg:rgba(var(--bs-body-bg-rgb), 0.85);--bs-toast-header-border-color:var(--bs-border-color-translucent);width:var(--bs-toast-max-width);max-width:100%;font-size:var(--bs-toast-font-size);color:var(--bs-toast-color);pointer-events:auto;background-color:var(--bs-toast-bg);background-clip:padding-box;border:var(--bs-toast-border-width) solid var(--bs-toast-border-color);box-shadow:var(--bs-toast-box-shadow);border-radius:var(--bs-toast-border-radius)}.toast.showing{opacity:0}.toast:not(.show){display:none}.toast-container{--bs-toast-zindex:1090;position:absolute;z-index:var(--bs-toast-zindex);width:-webkit-max-content;width:-moz-max-content;width:max-content;max-width:100%;pointer-events:none}.toast-container>:not(:last-child){margin-bottom:var(--bs-toast-spacing)}.toast-header{display:flex;align-items:center;padding:var(--bs-toast-padding-y) var(--bs-toast-padding-x);color:var(--bs-toast-header-color);background-color:var(--bs-toast-header-bg);background-clip:padding-box;border-bottom:var(--bs-toast-border-width) solid var(--bs-toast-header-border-color);border-top-left-radius:calc(var(--bs-toast-border-radius) - var(--bs-toast-border-width));border-top-right-radius:calc(var(--bs-toast-border-radius) - var(--bs-toast-border-width))}.toast-header .btn-close{margin-right:calc(-.5 * var(--bs-toast-padding-x));margin-left:var(--bs-toast-padding-x)}.toast-body{padding:var(--bs-toast-padding-x);word-wrap:break-word}.modal{--bs-modal-zindex:1055;--bs-modal-width:500px;--bs-modal-padding:1rem;--bs-modal-margin:0.5rem;--bs-modal-color:var(--bs-body-color);--bs-modal-bg:var(--bs-body-bg);--bs-modal-border-color:var(--bs-border-color-translucent);--bs-modal-border-width:var(--bs-border-width);--bs-modal-border-radius:var(--bs-border-radius-lg);--bs-modal-box-shadow:var(--bs-box-shadow-sm);--bs-modal-inner-border-radius:calc(var(--bs-border-radius-lg) - (var(--bs-border-width)));--bs-modal-header-padding-x:1rem;--bs-modal-header-padding-y:1rem;--bs-modal-header-padding:1rem 1rem;--bs-modal-header-border-color:var(--bs-border-color);--bs-modal-header-border-width:var(--bs-border-width);--bs-modal-title-line-height:1.5;--bs-modal-footer-gap:0.5rem;--bs-modal-footer-bg: ;--bs-modal-footer-border-color:var(--bs-border-color);--bs-modal-footer-border-width:var(--bs-border-width);position:fixed;top:0;left:0;z-index:var(--bs-modal-zindex);display:none;width:100%;height:100%;overflow-x:hidden;overflow-y:auto;outline:0}.modal-dialog{position:relative;width:auto;margin:var(--bs-modal-margin);pointer-events:none}.modal.fade .modal-dialog{transform:translate(0,-50px);transition:transform .3s ease-out}@media (prefers-reduced-motion:reduce){.modal.fade .modal-dialog{transition:none}}.modal.show .modal-dialog{transform:none}.modal.modal-static .modal-dialog{transform:scale(1.02)}.modal-dialog-scrollable{height:calc(100% - var(--bs-modal-margin) * 2)}.modal-dialog-scrollable .modal-content{max-height:100%;overflow:hidden}.modal-dialog-scrollable .modal-body{overflow-y:auto}.modal-dialog-centered{display:flex;align-items:center;min-height:calc(100% - var(--bs-modal-margin) * 2)}.modal-content{position:relative;display:flex;flex-direction:column;width:100%;color:var(--bs-modal-color);pointer-events:auto;background-color:var(--bs-modal-bg);background-clip:padding-box;border:var(--bs-modal-border-width) solid var(--bs-modal-border-color);border-radius:var(--bs-modal-border-radius);outline:0}.modal-backdrop{--bs-backdrop-zindex:1050;--bs-backdrop-bg:#000;--bs-backdrop-opacity:0.5;position:fixed;top:0;left:0;z-index:var(--bs-backdrop-zindex);width:100vw;height:100vh;background-color:var(--bs-backdrop-bg)}.modal-backdrop.fade{opacity:0}.modal-backdrop.show{opacity:var(--bs-backdrop-opacity)}.modal-header{display:flex;flex-shrink:0;align-items:center;padding:var(--bs-modal-header-padding);border-bottom:var(--bs-modal-header-border-width) solid var(--bs-modal-header-border-color);border-top-left-radius:var(--bs-modal-inner-border-radius);border-top-right-radius:var(--bs-modal-inner-border-radius)}.modal-header .btn-close{padding:calc(var(--bs-modal-header-padding-y) * .5) calc(var(--bs-modal-header-padding-x) * .5);margin-top:calc(-.5 * var(--bs-modal-header-padding-y));margin-right:calc(-.5 * var(--bs-modal-header-padding-x));margin-bottom:calc(-.5 * var(--bs-modal-header-padding-y));margin-left:auto}.modal-title{margin-bottom:0;line-height:var(--bs-modal-title-line-height)}.modal-body{position:relative;flex:1 1 auto;padding:var(--bs-modal-padding)}.modal-footer{display:flex;flex-shrink:0;flex-wrap:wrap;align-items:center;justify-content:flex-end;padding:calc(var(--bs-modal-padding) - var(--bs-modal-footer-gap) * .5);background-color:var(--bs-modal-footer-bg);border-top:var(--bs-modal-footer-border-width) solid var(--bs-modal-footer-border-color);border-bottom-right-radius:var(--bs-modal-inner-border-radius);border-bottom-left-radius:var(--bs-modal-inner-border-radius)}.modal-footer>*{margin:calc(var(--bs-modal-footer-gap) * .5)}@media (min-width:576px){.modal{--bs-modal-margin:1.75rem;--bs-modal-box-shadow:var(--bs-box-shadow)}.modal-dialog{max-width:var(--bs-modal-width);margin-right:auto;margin-left:auto}.modal-sm{--bs-modal-width:300px}}@media (min-width:992px){.modal-lg,.modal-xl{--bs-modal-width:800px}}@media (min-width:1200px){.modal-xl{--bs-modal-width:1140px}}.modal-fullscreen{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen .modal-footer,.modal-fullscreen .modal-header{border-radius:0}.modal-fullscreen .modal-body{overflow-y:auto}@media (max-width:575.98px){.modal-fullscreen-sm-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-sm-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-sm-down .modal-footer,.modal-fullscreen-sm-down .modal-header{border-radius:0}.modal-fullscreen-sm-down .modal-body{overflow-y:auto}}@media (max-width:767.98px){.modal-fullscreen-md-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-md-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-md-down .modal-footer,.modal-fullscreen-md-down .modal-header{border-radius:0}.modal-fullscreen-md-down .modal-body{overflow-y:auto}}@media (max-width:991.98px){.modal-fullscreen-lg-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-lg-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-lg-down .modal-footer,.modal-fullscreen-lg-down .modal-header{border-radius:0}.modal-fullscreen-lg-down .modal-body{overflow-y:auto}}@media (max-width:1199.98px){.modal-fullscreen-xl-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-xl-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-xl-down .modal-footer,.modal-fullscreen-xl-down .modal-header{border-radius:0}.modal-fullscreen-xl-down .modal-body{overflow-y:auto}}@media (max-width:1399.98px){.modal-fullscreen-xxl-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-xxl-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-xxl-down .modal-footer,.modal-fullscreen-xxl-down .modal-header{border-radius:0}.modal-fullscreen-xxl-down .modal-body{overflow-y:auto}}.tooltip{--bs-tooltip-zindex:1080;--bs-tooltip-max-width:200px;--bs-tooltip-padding-x:0.5rem;--bs-tooltip-padding-y:0.25rem;--bs-tooltip-margin: ;--bs-tooltip-font-size:0.875rem;--bs-tooltip-color:var(--bs-body-bg);--bs-tooltip-bg:var(--bs-emphasis-color);--bs-tooltip-border-radius:var(--bs-border-radius);--bs-tooltip-opacity:0.9;--bs-tooltip-arrow-width:0.8rem;--bs-tooltip-arrow-height:0.4rem;z-index:var(--bs-tooltip-zindex);display:block;margin:var(--bs-tooltip-margin);font-family:var(--bs-font-sans-serif);font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;white-space:normal;word-spacing:normal;line-break:auto;font-size:var(--bs-tooltip-font-size);word-wrap:break-word;opacity:0}.tooltip.show{opacity:var(--bs-tooltip-opacity)}.tooltip .tooltip-arrow{display:block;width:var(--bs-tooltip-arrow-width);height:var(--bs-tooltip-arrow-height)}.tooltip .tooltip-arrow::before{position:absolute;content:"";border-color:transparent;border-style:solid}.bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow,.bs-tooltip-top .tooltip-arrow{bottom:calc(-1 * var(--bs-tooltip-arrow-height))}.bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow::before,.bs-tooltip-top .tooltip-arrow::before{top:-1px;border-width:var(--bs-tooltip-arrow-height) calc(var(--bs-tooltip-arrow-width) * .5) 0;border-top-color:var(--bs-tooltip-bg)}.bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow,.bs-tooltip-end .tooltip-arrow{left:calc(-1 * var(--bs-tooltip-arrow-height));width:var(--bs-tooltip-arrow-height);height:var(--bs-tooltip-arrow-width)}.bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow::before,.bs-tooltip-end .tooltip-arrow::before{right:-1px;border-width:calc(var(--bs-tooltip-arrow-width) * .5) var(--bs-tooltip-arrow-height) calc(var(--bs-tooltip-arrow-width) * .5) 0;border-right-color:var(--bs-tooltip-bg)}.bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow,.bs-tooltip-bottom .tooltip-arrow{top:calc(-1 * var(--bs-tooltip-arrow-height))}.bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow::before,.bs-tooltip-bottom .tooltip-arrow::before{bottom:-1px;border-width:0 calc(var(--bs-tooltip-arrow-width) * .5) var(--bs-tooltip-arrow-height);border-bottom-color:var(--bs-tooltip-bg)}.bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow,.bs-tooltip-start .tooltip-arrow{right:calc(-1 * var(--bs-tooltip-arrow-height));width:var(--bs-tooltip-arrow-height);height:var(--bs-tooltip-arrow-width)}.bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow::before,.bs-tooltip-start .tooltip-arrow::before{left:-1px;border-width:calc(var(--bs-tooltip-arrow-width) * .5) 0 calc(var(--bs-tooltip-arrow-width) * .5) var(--bs-tooltip-arrow-height);border-left-color:var(--bs-tooltip-bg)}.tooltip-inner{max-width:var(--bs-tooltip-max-width);padding:var(--bs-tooltip-padding-y) var(--bs-tooltip-padding-x);color:var(--bs-tooltip-color);text-align:center;background-color:var(--bs-tooltip-bg);border-radius:var(--bs-tooltip-border-radius)}.popover{--bs-popover-zindex:1070;--bs-popover-max-width:276px;--bs-popover-font-size:0.875rem;--bs-popover-bg:var(--bs-body-bg);--bs-popover-border-width:var(--bs-border-width);--bs-popover-border-color:var(--bs-border-color-translucent);--bs-popover-border-radius:var(--bs-border-radius-lg);--bs-popover-inner-border-radius:calc(var(--bs-border-radius-lg) - var(--bs-border-width));--bs-popover-box-shadow:var(--bs-box-shadow);--bs-popover-header-padding-x:1rem;--bs-popover-header-padding-y:0.5rem;--bs-popover-header-font-size:1rem;--bs-popover-header-color:inherit;--bs-popover-header-bg:var(--bs-secondary-bg);--bs-popover-body-padding-x:1rem;--bs-popover-body-padding-y:1rem;--bs-popover-body-color:var(--bs-body-color);--bs-popover-arrow-width:1rem;--bs-popover-arrow-height:0.5rem;--bs-popover-arrow-border:var(--bs-popover-border-color);z-index:var(--bs-popover-zindex);display:block;max-width:var(--bs-popover-max-width);font-family:var(--bs-font-sans-serif);font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;white-space:normal;word-spacing:normal;line-break:auto;font-size:var(--bs-popover-font-size);word-wrap:break-word;background-color:var(--bs-popover-bg);background-clip:padding-box;border:var(--bs-popover-border-width) solid var(--bs-popover-border-color);border-radius:var(--bs-popover-border-radius)}.popover .popover-arrow{display:block;width:var(--bs-popover-arrow-width);height:var(--bs-popover-arrow-height)}.popover .popover-arrow::after,.popover .popover-arrow::before{position:absolute;display:block;content:"";border-color:transparent;border-style:solid;border-width:0}.bs-popover-auto[data-popper-placement^=top]>.popover-arrow,.bs-popover-top>.popover-arrow{bottom:calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width))}.bs-popover-auto[data-popper-placement^=top]>.popover-arrow::after,.bs-popover-auto[data-popper-placement^=top]>.popover-arrow::before,.bs-popover-top>.popover-arrow::after,.bs-popover-top>.popover-arrow::before{border-width:var(--bs-popover-arrow-height) calc(var(--bs-popover-arrow-width) * .5) 0}.bs-popover-auto[data-popper-placement^=top]>.popover-arrow::before,.bs-popover-top>.popover-arrow::before{bottom:0;border-top-color:var(--bs-popover-arrow-border)}.bs-popover-auto[data-popper-placement^=top]>.popover-arrow::after,.bs-popover-top>.popover-arrow::after{bottom:var(--bs-popover-border-width);border-top-color:var(--bs-popover-bg)}.bs-popover-auto[data-popper-placement^=right]>.popover-arrow,.bs-popover-end>.popover-arrow{left:calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width));width:var(--bs-popover-arrow-height);height:var(--bs-popover-arrow-width)}.bs-popover-auto[data-popper-placement^=right]>.popover-arrow::after,.bs-popover-auto[data-popper-placement^=right]>.popover-arrow::before,.bs-popover-end>.popover-arrow::after,.bs-popover-end>.popover-arrow::before{border-width:calc(var(--bs-popover-arrow-width) * .5) var(--bs-popover-arrow-height) calc(var(--bs-popover-arrow-width) * .5) 0}.bs-popover-auto[data-popper-placement^=right]>.popover-arrow::before,.bs-popover-end>.popover-arrow::before{left:0;border-right-color:var(--bs-popover-arrow-border)}.bs-popover-auto[data-popper-placement^=right]>.popover-arrow::after,.bs-popover-end>.popover-arrow::after{left:var(--bs-popover-border-width);border-right-color:var(--bs-popover-bg)}.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow,.bs-popover-bottom>.popover-arrow{top:calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width))}.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow::after,.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow::before,.bs-popover-bottom>.popover-arrow::after,.bs-popover-bottom>.popover-arrow::before{border-width:0 calc(var(--bs-popover-arrow-width) * .5) var(--bs-popover-arrow-height)}.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow::before,.bs-popover-bottom>.popover-arrow::before{top:0;border-bottom-color:var(--bs-popover-arrow-border)}.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow::after,.bs-popover-bottom>.popover-arrow::after{top:var(--bs-popover-border-width);border-bottom-color:var(--bs-popover-bg)}.bs-popover-auto[data-popper-placement^=bottom] .popover-header::before,.bs-popover-bottom .popover-header::before{position:absolute;top:0;left:50%;display:block;width:var(--bs-popover-arrow-width);margin-left:calc(-.5 * var(--bs-popover-arrow-width));content:"";border-bottom:var(--bs-popover-border-width) solid var(--bs-popover-header-bg)}.bs-popover-auto[data-popper-placement^=left]>.popover-arrow,.bs-popover-start>.popover-arrow{right:calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width));width:var(--bs-popover-arrow-height);height:var(--bs-popover-arrow-width)}.bs-popover-auto[data-popper-placement^=left]>.popover-arrow::after,.bs-popover-auto[data-popper-placement^=left]>.popover-arrow::before,.bs-popover-start>.popover-arrow::after,.bs-popover-start>.popover-arrow::before{border-width:calc(var(--bs-popover-arrow-width) * .5) 0 calc(var(--bs-popover-arrow-width) * .5) var(--bs-popover-arrow-height)}.bs-popover-auto[data-popper-placement^=left]>.popover-arrow::before,.bs-popover-start>.popover-arrow::before{right:0;border-left-color:var(--bs-popover-arrow-border)}.bs-popover-auto[data-popper-placement^=left]>.popover-arrow::after,.bs-popover-start>.popover-arrow::after{right:var(--bs-popover-border-width);border-left-color:var(--bs-popover-bg)}.popover-header{padding:var(--bs-popover-header-padding-y) var(--bs-popover-header-padding-x);margin-bottom:0;font-size:var(--bs-popover-header-font-size);color:var(--bs-popover-header-color);background-color:var(--bs-popover-header-bg);border-bottom:var(--bs-popover-border-width) solid var(--bs-popover-border-color);border-top-left-radius:var(--bs-popover-inner-border-radius);border-top-right-radius:var(--bs-popover-inner-border-radius)}.popover-header:empty{display:none}.popover-body{padding:var(--bs-popover-body-padding-y) var(--bs-popover-body-padding-x);color:var(--bs-popover-body-color)}.carousel{position:relative}.carousel.pointer-event{touch-action:pan-y}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner::after{display:block;clear:both;content:""}.carousel-item{position:relative;display:none;float:left;width:100%;margin-right:-100%;-webkit-backface-visibility:hidden;backface-visibility:hidden;transition:transform .6s ease-in-out}@media (prefers-reduced-motion:reduce){.carousel-item{transition:none}}.carousel-item-next,.carousel-item-prev,.carousel-item.active{display:block}.active.carousel-item-end,.carousel-item-next:not(.carousel-item-start){transform:translateX(100%)}.active.carousel-item-start,.carousel-item-prev:not(.carousel-item-end){transform:translateX(-100%)}.carousel-fade .carousel-item{opacity:0;transition-property:opacity;transform:none}.carousel-fade .carousel-item-next.carousel-item-start,.carousel-fade .carousel-item-prev.carousel-item-end,.carousel-fade .carousel-item.active{z-index:1;opacity:1}.carousel-fade .active.carousel-item-end,.carousel-fade .active.carousel-item-start{z-index:0;opacity:0;transition:opacity 0s .6s}@media (prefers-reduced-motion:reduce){.carousel-fade .active.carousel-item-end,.carousel-fade .active.carousel-item-start{transition:none}}.carousel-control-next,.carousel-control-prev{position:absolute;top:0;bottom:0;z-index:1;display:flex;align-items:center;justify-content:center;width:15%;padding:0;color:#fff;text-align:center;background:0 0;filter:var(--bs-carousel-control-icon-filter);border:0;opacity:.5;transition:opacity .15s ease}@media (prefers-reduced-motion:reduce){.carousel-control-next,.carousel-control-prev{transition:none}}.carousel-control-next:focus,.carousel-control-next:hover,.carousel-control-prev:focus,.carousel-control-prev:hover{color:#fff;text-decoration:none;outline:0;opacity:.9}.carousel-control-prev{left:0}.carousel-control-next{right:0}.carousel-control-next-icon,.carousel-control-prev-icon{display:inline-block;width:2rem;height:2rem;background-repeat:no-repeat;background-position:50%;background-size:100% 100%}.carousel-control-prev-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M11.354 1.646a.5.5 0 0 1 0 .708L5.707 8l5.647 5.646a.5.5 0 0 1-.708.708l-6-6a.5.5 0 0 1 0-.708l6-6a.5.5 0 0 1 .708 0'/%3e%3c/svg%3e")}.carousel-control-next-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708'/%3e%3c/svg%3e")}.carousel-indicators{position:absolute;right:0;bottom:0;left:0;z-index:2;display:flex;justify-content:center;padding:0;margin-right:15%;margin-bottom:1rem;margin-left:15%}.carousel-indicators [data-bs-target]{box-sizing:content-box;flex:0 1 auto;width:30px;height:3px;padding:0;margin-right:3px;margin-left:3px;text-indent:-999px;cursor:pointer;background-color:var(--bs-carousel-indicator-active-bg);background-clip:padding-box;border:0;border-top:10px solid transparent;border-bottom:10px solid transparent;opacity:.5;transition:opacity .6s ease}@media (prefers-reduced-motion:reduce){.carousel-indicators [data-bs-target]{transition:none}}.carousel-indicators .active{opacity:1}.carousel-caption{position:absolute;right:15%;bottom:1.25rem;left:15%;padding-top:1.25rem;padding-bottom:1.25rem;color:var(--bs-carousel-caption-color);text-align:center}.carousel-dark{--bs-carousel-indicator-active-bg:#000;--bs-carousel-caption-color:#000;--bs-carousel-control-icon-filter:invert(1) grayscale(100)}:root,[data-bs-theme=light]{--bs-carousel-indicator-active-bg:#fff;--bs-carousel-caption-color:#fff;--bs-carousel-control-icon-filter: }[data-bs-theme=dark]{--bs-carousel-indicator-active-bg:#000;--bs-carousel-caption-color:#000;--bs-carousel-control-icon-filter:invert(1) grayscale(100)}.spinner-border,.spinner-grow{display:inline-block;flex-shrink:0;width:var(--bs-spinner-width);height:var(--bs-spinner-height);vertical-align:var(--bs-spinner-vertical-align);border-radius:50%;animation:var(--bs-spinner-animation-speed) linear infinite var(--bs-spinner-animation-name)}@keyframes spinner-border{to{transform:rotate(360deg)}}.spinner-border{--bs-spinner-width:2rem;--bs-spinner-height:2rem;--bs-spinner-vertical-align:-0.125em;--bs-spinner-border-width:0.25em;--bs-spinner-animation-speed:0.75s;--bs-spinner-animation-name:spinner-border;border:var(--bs-spinner-border-width) solid currentcolor;border-right-color:transparent}.spinner-border-sm{--bs-spinner-width:1rem;--bs-spinner-height:1rem;--bs-spinner-border-width:0.2em}@keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1;transform:none}}.spinner-grow{--bs-spinner-width:2rem;--bs-spinner-height:2rem;--bs-spinner-vertical-align:-0.125em;--bs-spinner-animation-speed:0.75s;--bs-spinner-animation-name:spinner-grow;background-color:currentcolor;opacity:0}.spinner-grow-sm{--bs-spinner-width:1rem;--bs-spinner-height:1rem}@media (prefers-reduced-motion:reduce){.spinner-border,.spinner-grow{--bs-spinner-animation-speed:1.5s}}.offcanvas,.offcanvas-lg,.offcanvas-md,.offcanvas-sm,.offcanvas-xl,.offcanvas-xxl{--bs-offcanvas-zindex:1045;--bs-offcanvas-width:400px;--bs-offcanvas-height:30vh;--bs-offcanvas-padding-x:1rem;--bs-offcanvas-padding-y:1rem;--bs-offcanvas-color:var(--bs-body-color);--bs-offcanvas-bg:var(--bs-body-bg);--bs-offcanvas-border-width:var(--bs-border-width);--bs-offcanvas-border-color:var(--bs-border-color-translucent);--bs-offcanvas-box-shadow:var(--bs-box-shadow-sm);--bs-offcanvas-transition:transform 0.3s ease-in-out;--bs-offcanvas-title-line-height:1.5}@media (max-width:575.98px){.offcanvas-sm{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:var(--bs-offcanvas-transition)}}@media (max-width:575.98px) and (prefers-reduced-motion:reduce){.offcanvas-sm{transition:none}}@media (max-width:575.98px){.offcanvas-sm.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(-100%)}.offcanvas-sm.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(100%)}.offcanvas-sm.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}.offcanvas-sm.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}.offcanvas-sm.show:not(.hiding),.offcanvas-sm.showing{transform:none}.offcanvas-sm.hiding,.offcanvas-sm.show,.offcanvas-sm.showing{visibility:visible}}@media (min-width:576px){.offcanvas-sm{--bs-offcanvas-height:auto;--bs-offcanvas-border-width:0;background-color:transparent!important}.offcanvas-sm .offcanvas-header{display:none}.offcanvas-sm .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible;background-color:transparent!important}}@media (max-width:767.98px){.offcanvas-md{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:var(--bs-offcanvas-transition)}}@media (max-width:767.98px) and (prefers-reduced-motion:reduce){.offcanvas-md{transition:none}}@media (max-width:767.98px){.offcanvas-md.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(-100%)}.offcanvas-md.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(100%)}.offcanvas-md.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}.offcanvas-md.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}.offcanvas-md.show:not(.hiding),.offcanvas-md.showing{transform:none}.offcanvas-md.hiding,.offcanvas-md.show,.offcanvas-md.showing{visibility:visible}}@media (min-width:768px){.offcanvas-md{--bs-offcanvas-height:auto;--bs-offcanvas-border-width:0;background-color:transparent!important}.offcanvas-md .offcanvas-header{display:none}.offcanvas-md .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible;background-color:transparent!important}}@media (max-width:991.98px){.offcanvas-lg{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:var(--bs-offcanvas-transition)}}@media (max-width:991.98px) and (prefers-reduced-motion:reduce){.offcanvas-lg{transition:none}}@media (max-width:991.98px){.offcanvas-lg.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(-100%)}.offcanvas-lg.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(100%)}.offcanvas-lg.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}.offcanvas-lg.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}.offcanvas-lg.show:not(.hiding),.offcanvas-lg.showing{transform:none}.offcanvas-lg.hiding,.offcanvas-lg.show,.offcanvas-lg.showing{visibility:visible}}@media (min-width:992px){.offcanvas-lg{--bs-offcanvas-height:auto;--bs-offcanvas-border-width:0;background-color:transparent!important}.offcanvas-lg .offcanvas-header{display:none}.offcanvas-lg .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible;background-color:transparent!important}}@media (max-width:1199.98px){.offcanvas-xl{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:var(--bs-offcanvas-transition)}}@media (max-width:1199.98px) and (prefers-reduced-motion:reduce){.offcanvas-xl{transition:none}}@media (max-width:1199.98px){.offcanvas-xl.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(-100%)}.offcanvas-xl.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(100%)}.offcanvas-xl.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}.offcanvas-xl.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}.offcanvas-xl.show:not(.hiding),.offcanvas-xl.showing{transform:none}.offcanvas-xl.hiding,.offcanvas-xl.show,.offcanvas-xl.showing{visibility:visible}}@media (min-width:1200px){.offcanvas-xl{--bs-offcanvas-height:auto;--bs-offcanvas-border-width:0;background-color:transparent!important}.offcanvas-xl .offcanvas-header{display:none}.offcanvas-xl .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible;background-color:transparent!important}}@media (max-width:1399.98px){.offcanvas-xxl{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:var(--bs-offcanvas-transition)}}@media (max-width:1399.98px) and (prefers-reduced-motion:reduce){.offcanvas-xxl{transition:none}}@media (max-width:1399.98px){.offcanvas-xxl.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(-100%)}.offcanvas-xxl.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(100%)}.offcanvas-xxl.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}.offcanvas-xxl.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}.offcanvas-xxl.show:not(.hiding),.offcanvas-xxl.showing{transform:none}.offcanvas-xxl.hiding,.offcanvas-xxl.show,.offcanvas-xxl.showing{visibility:visible}}@media (min-width:1400px){.offcanvas-xxl{--bs-offcanvas-height:auto;--bs-offcanvas-border-width:0;background-color:transparent!important}.offcanvas-xxl .offcanvas-header{display:none}.offcanvas-xxl .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible;background-color:transparent!important}}.offcanvas{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:var(--bs-offcanvas-transition)}@media (prefers-reduced-motion:reduce){.offcanvas{transition:none}}.offcanvas.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(-100%)}.offcanvas.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(100%)}.offcanvas.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}.offcanvas.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}.offcanvas.show:not(.hiding),.offcanvas.showing{transform:none}.offcanvas.hiding,.offcanvas.show,.offcanvas.showing{visibility:visible}.offcanvas-backdrop{position:fixed;top:0;left:0;z-index:1040;width:100vw;height:100vh;background-color:#000}.offcanvas-backdrop.fade{opacity:0}.offcanvas-backdrop.show{opacity:.5}.offcanvas-header{display:flex;align-items:center;padding:var(--bs-offcanvas-padding-y) var(--bs-offcanvas-padding-x)}.offcanvas-header .btn-close{padding:calc(var(--bs-offcanvas-padding-y) * .5) calc(var(--bs-offcanvas-padding-x) * .5);margin-top:calc(-.5 * var(--bs-offcanvas-padding-y));margin-right:calc(-.5 * var(--bs-offcanvas-padding-x));margin-bottom:calc(-.5 * var(--bs-offcanvas-padding-y));margin-left:auto}.offcanvas-title{margin-bottom:0;line-height:var(--bs-offcanvas-title-line-height)}.offcanvas-body{flex-grow:1;padding:var(--bs-offcanvas-padding-y) var(--bs-offcanvas-padding-x);overflow-y:auto}.placeholder{display:inline-block;min-height:1em;vertical-align:middle;cursor:wait;background-color:currentcolor;opacity:.5}.placeholder.btn::before{display:inline-block;content:""}.placeholder-xs{min-height:.6em}.placeholder-sm{min-height:.8em}.placeholder-lg{min-height:1.2em}.placeholder-glow .placeholder{animation:placeholder-glow 2s ease-in-out infinite}@keyframes placeholder-glow{50%{opacity:.2}}.placeholder-wave{-webkit-mask-image:linear-gradient(130deg,#000 55%,rgba(0,0,0,0.8) 75%,#000 95%);mask-image:linear-gradient(130deg,#000 55%,rgba(0,0,0,0.8) 75%,#000 95%);-webkit-mask-size:200% 100%;mask-size:200% 100%;animation:placeholder-wave 2s linear infinite}@keyframes placeholder-wave{100%{-webkit-mask-position:-200% 0%;mask-position:-200% 0%}}.clearfix::after{display:block;clear:both;content:""}.text-bg-primary{color:#fff!important;background-color:RGBA(var(--bs-primary-rgb),var(--bs-bg-opacity,1))!important}.text-bg-secondary{color:#fff!important;background-color:RGBA(var(--bs-secondary-rgb),var(--bs-bg-opacity,1))!important}.text-bg-success{color:#fff!important;background-color:RGBA(var(--bs-success-rgb),var(--bs-bg-opacity,1))!important}.text-bg-info{color:#000!important;background-color:RGBA(var(--bs-info-rgb),var(--bs-bg-opacity,1))!important}.text-bg-warning{color:#000!important;background-color:RGBA(var(--bs-warning-rgb),var(--bs-bg-opacity,1))!important}.text-bg-danger{color:#fff!important;background-color:RGBA(var(--bs-danger-rgb),var(--bs-bg-opacity,1))!important}.text-bg-light{color:#000!important;background-color:RGBA(var(--bs-light-rgb),var(--bs-bg-opacity,1))!important}.text-bg-dark{color:#fff!important;background-color:RGBA(var(--bs-dark-rgb),var(--bs-bg-opacity,1))!important}.link-primary{color:RGBA(var(--bs-primary-rgb),var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(var(--bs-primary-rgb),var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(var(--bs-primary-rgb),var(--bs-link-underline-opacity,1))!important}.link-primary:focus,.link-primary:hover{color:RGBA(10,88,202,var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(10,88,202,var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(10,88,202,var(--bs-link-underline-opacity,1))!important}.link-secondary{color:RGBA(var(--bs-secondary-rgb),var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(var(--bs-secondary-rgb),var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(var(--bs-secondary-rgb),var(--bs-link-underline-opacity,1))!important}.link-secondary:focus,.link-secondary:hover{color:RGBA(86,94,100,var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(86,94,100,var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(86,94,100,var(--bs-link-underline-opacity,1))!important}.link-success{color:RGBA(var(--bs-success-rgb),var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(var(--bs-success-rgb),var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(var(--bs-success-rgb),var(--bs-link-underline-opacity,1))!important}.link-success:focus,.link-success:hover{color:RGBA(20,108,67,var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(20,108,67,var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(20,108,67,var(--bs-link-underline-opacity,1))!important}.link-info{color:RGBA(var(--bs-info-rgb),var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(var(--bs-info-rgb),var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(var(--bs-info-rgb),var(--bs-link-underline-opacity,1))!important}.link-info:focus,.link-info:hover{color:RGBA(61,213,243,var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(61,213,243,var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(61,213,243,var(--bs-link-underline-opacity,1))!important}.link-warning{color:RGBA(var(--bs-warning-rgb),var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(var(--bs-warning-rgb),var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(var(--bs-warning-rgb),var(--bs-link-underline-opacity,1))!important}.link-warning:focus,.link-warning:hover{color:RGBA(255,205,57,var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(255,205,57,var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(255,205,57,var(--bs-link-underline-opacity,1))!important}.link-danger{color:RGBA(var(--bs-danger-rgb),var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(var(--bs-danger-rgb),var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(var(--bs-danger-rgb),var(--bs-link-underline-opacity,1))!important}.link-danger:focus,.link-danger:hover{color:RGBA(176,42,55,var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(176,42,55,var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(176,42,55,var(--bs-link-underline-opacity,1))!important}.link-light{color:RGBA(var(--bs-light-rgb),var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(var(--bs-light-rgb),var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(var(--bs-light-rgb),var(--bs-link-underline-opacity,1))!important}.link-light:focus,.link-light:hover{color:RGBA(249,250,251,var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(249,250,251,var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(249,250,251,var(--bs-link-underline-opacity,1))!important}.link-dark{color:RGBA(var(--bs-dark-rgb),var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(var(--bs-dark-rgb),var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(var(--bs-dark-rgb),var(--bs-link-underline-opacity,1))!important}.link-dark:focus,.link-dark:hover{color:RGBA(26,30,33,var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(26,30,33,var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(26,30,33,var(--bs-link-underline-opacity,1))!important}.link-body-emphasis{color:RGBA(var(--bs-emphasis-color-rgb),var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(var(--bs-emphasis-color-rgb),var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(var(--bs-emphasis-color-rgb),var(--bs-link-underline-opacity,1))!important}.link-body-emphasis:focus,.link-body-emphasis:hover{color:RGBA(var(--bs-emphasis-color-rgb),var(--bs-link-opacity,.75))!important;-webkit-text-decoration-color:RGBA(var(--bs-emphasis-color-rgb),var(--bs-link-underline-opacity,0.75))!important;text-decoration-color:RGBA(var(--bs-emphasis-color-rgb),var(--bs-link-underline-opacity,0.75))!important}.focus-ring:focus{outline:0;box-shadow:var(--bs-focus-ring-x,0) var(--bs-focus-ring-y,0) var(--bs-focus-ring-blur,0) var(--bs-focus-ring-width) var(--bs-focus-ring-color)}.icon-link{display:inline-flex;gap:.375rem;align-items:center;-webkit-text-decoration-color:rgba(var(--bs-link-color-rgb),var(--bs-link-opacity,0.5));text-decoration-color:rgba(var(--bs-link-color-rgb),var(--bs-link-opacity,0.5));text-underline-offset:0.25em;-webkit-backface-visibility:hidden;backface-visibility:hidden}.icon-link>.bi{flex-shrink:0;width:1em;height:1em;fill:currentcolor;transition:.2s ease-in-out transform}@media (prefers-reduced-motion:reduce){.icon-link>.bi{transition:none}}.icon-link-hover:focus-visible>.bi,.icon-link-hover:hover>.bi{transform:var(--bs-icon-link-transform,translate3d(.25em,0,0))}.ratio{position:relative;width:100%}.ratio::before{display:block;padding-top:var(--bs-aspect-ratio);content:""}.ratio>*{position:absolute;top:0;left:0;width:100%;height:100%}.ratio-1x1{--bs-aspect-ratio:100%}.ratio-4x3{--bs-aspect-ratio:75%}.ratio-16x9{--bs-aspect-ratio:56.25%}.ratio-21x9{--bs-aspect-ratio:42.8571428571%}.fixed-top{position:fixed;top:0;right:0;left:0;z-index:1030}.fixed-bottom{position:fixed;right:0;bottom:0;left:0;z-index:1030}.sticky-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}.sticky-bottom{position:-webkit-sticky;position:sticky;bottom:0;z-index:1020}@media (min-width:576px){.sticky-sm-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}.sticky-sm-bottom{position:-webkit-sticky;position:sticky;bottom:0;z-index:1020}}@media (min-width:768px){.sticky-md-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}.sticky-md-bottom{position:-webkit-sticky;position:sticky;bottom:0;z-index:1020}}@media (min-width:992px){.sticky-lg-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}.sticky-lg-bottom{position:-webkit-sticky;position:sticky;bottom:0;z-index:1020}}@media (min-width:1200px){.sticky-xl-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}.sticky-xl-bottom{position:-webkit-sticky;position:sticky;bottom:0;z-index:1020}}@media (min-width:1400px){.sticky-xxl-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}.sticky-xxl-bottom{position:-webkit-sticky;position:sticky;bottom:0;z-index:1020}}.hstack{display:flex;flex-direction:row;align-items:center;align-self:stretch}.vstack{display:flex;flex:1 1 auto;flex-direction:column;align-self:stretch}.visually-hidden,.visually-hidden-focusable:not(:focus):not(:focus-within){width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}.visually-hidden-focusable:not(:focus):not(:focus-within):not(caption),.visually-hidden:not(caption){position:absolute!important}.visually-hidden *,.visually-hidden-focusable:not(:focus):not(:focus-within) *{overflow:hidden!important}.stretched-link::after{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;content:""}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vr{display:inline-block;align-self:stretch;width:var(--bs-border-width);min-height:1em;background-color:currentcolor;opacity:.25}.align-baseline{vertical-align:baseline!important}.align-top{vertical-align:top!important}.align-middle{vertical-align:middle!important}.align-bottom{vertical-align:bottom!important}.align-text-bottom{vertical-align:text-bottom!important}.align-text-top{vertical-align:text-top!important}.float-start{float:left!important}.float-end{float:right!important}.float-none{float:none!important}.object-fit-contain{-o-object-fit:contain!important;object-fit:contain!important}.object-fit-cover{-o-object-fit:cover!important;object-fit:cover!important}.object-fit-fill{-o-object-fit:fill!important;object-fit:fill!important}.object-fit-scale{-o-object-fit:scale-down!important;object-fit:scale-down!important}.object-fit-none{-o-object-fit:none!important;object-fit:none!important}.opacity-0{opacity:0!important}.opacity-25{opacity:.25!important}.opacity-50{opacity:.5!important}.opacity-75{opacity:.75!important}.opacity-100{opacity:1!important}.overflow-auto{overflow:auto!important}.overflow-hidden{overflow:hidden!important}.overflow-visible{overflow:visible!important}.overflow-scroll{overflow:scroll!important}.overflow-x-auto{overflow-x:auto!important}.overflow-x-hidden{overflow-x:hidden!important}.overflow-x-visible{overflow-x:visible!important}.overflow-x-scroll{overflow-x:scroll!important}.overflow-y-auto{overflow-y:auto!important}.overflow-y-hidden{overflow-y:hidden!important}.overflow-y-visible{overflow-y:visible!important}.overflow-y-scroll{overflow-y:scroll!important}.d-inline{display:inline!important}.d-inline-block{display:inline-block!important}.d-block{display:block!important}.d-grid{display:grid!important}.d-inline-grid{display:inline-grid!important}.d-table{display:table!important}.d-table-row{display:table-row!important}.d-table-cell{display:table-cell!important}.d-flex{display:flex!important}.d-inline-flex{display:inline-flex!important}.d-none{display:none!important}.shadow{box-shadow:var(--bs-box-shadow)!important}.shadow-sm{box-shadow:var(--bs-box-shadow-sm)!important}.shadow-lg{box-shadow:var(--bs-box-shadow-lg)!important}.shadow-none{box-shadow:none!important}.focus-ring-primary{--bs-focus-ring-color:rgba(var(--bs-primary-rgb), var(--bs-focus-ring-opacity))}.focus-ring-secondary{--bs-focus-ring-color:rgba(var(--bs-secondary-rgb), var(--bs-focus-ring-opacity))}.focus-ring-success{--bs-focus-ring-color:rgba(var(--bs-success-rgb), var(--bs-focus-ring-opacity))}.focus-ring-info{--bs-focus-ring-color:rgba(var(--bs-info-rgb), var(--bs-focus-ring-opacity))}.focus-ring-warning{--bs-focus-ring-color:rgba(var(--bs-warning-rgb), var(--bs-focus-ring-opacity))}.focus-ring-danger{--bs-focus-ring-color:rgba(var(--bs-danger-rgb), var(--bs-focus-ring-opacity))}.focus-ring-light{--bs-focus-ring-color:rgba(var(--bs-light-rgb), var(--bs-focus-ring-opacity))}.focus-ring-dark{--bs-focus-ring-color:rgba(var(--bs-dark-rgb), var(--bs-focus-ring-opacity))}.position-static{position:static!important}.position-relative{position:relative!important}.position-absolute{position:absolute!important}.position-fixed{position:fixed!important}.position-sticky{position:-webkit-sticky!important;position:sticky!important}.top-0{top:0!important}.top-50{top:50%!important}.top-100{top:100%!important}.bottom-0{bottom:0!important}.bottom-50{bottom:50%!important}.bottom-100{bottom:100%!important}.start-0{left:0!important}.start-50{left:50%!important}.start-100{left:100%!important}.end-0{right:0!important}.end-50{right:50%!important}.end-100{right:100%!important}.translate-middle{transform:translate(-50%,-50%)!important}.translate-middle-x{transform:translateX(-50%)!important}.translate-middle-y{transform:translateY(-50%)!important}.border{border:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)!important}.border-0{border:0!important}.border-top{border-top:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)!important}.border-top-0{border-top:0!important}.border-end{border-right:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)!important}.border-end-0{border-right:0!important}.border-bottom{border-bottom:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)!important}.border-bottom-0{border-bottom:0!important}.border-start{border-left:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)!important}.border-start-0{border-left:0!important}.border-primary{--bs-border-opacity:1;border-color:rgba(var(--bs-primary-rgb),var(--bs-border-opacity))!important}.border-secondary{--bs-border-opacity:1;border-color:rgba(var(--bs-secondary-rgb),var(--bs-border-opacity))!important}.border-success{--bs-border-opacity:1;border-color:rgba(var(--bs-success-rgb),var(--bs-border-opacity))!important}.border-info{--bs-border-opacity:1;border-color:rgba(var(--bs-info-rgb),var(--bs-border-opacity))!important}.border-warning{--bs-border-opacity:1;border-color:rgba(var(--bs-warning-rgb),var(--bs-border-opacity))!important}.border-danger{--bs-border-opacity:1;border-color:rgba(var(--bs-danger-rgb),var(--bs-border-opacity))!important}.border-light{--bs-border-opacity:1;border-color:rgba(var(--bs-light-rgb),var(--bs-border-opacity))!important}.border-dark{--bs-border-opacity:1;border-color:rgba(var(--bs-dark-rgb),var(--bs-border-opacity))!important}.border-black{--bs-border-opacity:1;border-color:rgba(var(--bs-black-rgb),var(--bs-border-opacity))!important}.border-white{--bs-border-opacity:1;border-color:rgba(var(--bs-white-rgb),var(--bs-border-opacity))!important}.border-primary-subtle{border-color:var(--bs-primary-border-subtle)!important}.border-secondary-subtle{border-color:var(--bs-secondary-border-subtle)!important}.border-success-subtle{border-color:var(--bs-success-border-subtle)!important}.border-info-subtle{border-color:var(--bs-info-border-subtle)!important}.border-warning-subtle{border-color:var(--bs-warning-border-subtle)!important}.border-danger-subtle{border-color:var(--bs-danger-border-subtle)!important}.border-light-subtle{border-color:var(--bs-light-border-subtle)!important}.border-dark-subtle{border-color:var(--bs-dark-border-subtle)!important}.border-1{border-width:1px!important}.border-2{border-width:2px!important}.border-3{border-width:3px!important}.border-4{border-width:4px!important}.border-5{border-width:5px!important}.border-opacity-10{--bs-border-opacity:0.1}.border-opacity-25{--bs-border-opacity:0.25}.border-opacity-50{--bs-border-opacity:0.5}.border-opacity-75{--bs-border-opacity:0.75}.border-opacity-100{--bs-border-opacity:1}.w-25{width:25%!important}.w-50{width:50%!important}.w-75{width:75%!important}.w-100{width:100%!important}.w-auto{width:auto!important}.mw-100{max-width:100%!important}.vw-100{width:100vw!important}.min-vw-100{min-width:100vw!important}.h-25{height:25%!important}.h-50{height:50%!important}.h-75{height:75%!important}.h-100{height:100%!important}.h-auto{height:auto!important}.mh-100{max-height:100%!important}.vh-100{height:100vh!important}.min-vh-100{min-height:100vh!important}.flex-fill{flex:1 1 auto!important}.flex-row{flex-direction:row!important}.flex-column{flex-direction:column!important}.flex-row-reverse{flex-direction:row-reverse!important}.flex-column-reverse{flex-direction:column-reverse!important}.flex-grow-0{flex-grow:0!important}.flex-grow-1{flex-grow:1!important}.flex-shrink-0{flex-shrink:0!important}.flex-shrink-1{flex-shrink:1!important}.flex-wrap{flex-wrap:wrap!important}.flex-nowrap{flex-wrap:nowrap!important}.flex-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-start{justify-content:flex-start!important}.justify-content-end{justify-content:flex-end!important}.justify-content-center{justify-content:center!important}.justify-content-between{justify-content:space-between!important}.justify-content-around{justify-content:space-around!important}.justify-content-evenly{justify-content:space-evenly!important}.align-items-start{align-items:flex-start!important}.align-items-end{align-items:flex-end!important}.align-items-center{align-items:center!important}.align-items-baseline{align-items:baseline!important}.align-items-stretch{align-items:stretch!important}.align-content-start{align-content:flex-start!important}.align-content-end{align-content:flex-end!important}.align-content-center{align-content:center!important}.align-content-between{align-content:space-between!important}.align-content-around{align-content:space-around!important}.align-content-stretch{align-content:stretch!important}.align-self-auto{align-self:auto!important}.align-self-start{align-self:flex-start!important}.align-self-end{align-self:flex-end!important}.align-self-center{align-self:center!important}.align-self-baseline{align-self:baseline!important}.align-self-stretch{align-self:stretch!important}.order-first{order:-1!important}.order-0{order:0!important}.order-1{order:1!important}.order-2{order:2!important}.order-3{order:3!important}.order-4{order:4!important}.order-5{order:5!important}.order-last{order:6!important}.m-0{margin:0!important}.m-1{margin:.25rem!important}.m-2{margin:.5rem!important}.m-3{margin:1rem!important}.m-4{margin:1.5rem!important}.m-5{margin:3rem!important}.m-auto{margin:auto!important}.mx-0{margin-right:0!important;margin-left:0!important}.mx-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-3{margin-right:1rem!important;margin-left:1rem!important}.mx-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-5{margin-right:3rem!important;margin-left:3rem!important}.mx-auto{margin-right:auto!important;margin-left:auto!important}.my-0{margin-top:0!important;margin-bottom:0!important}.my-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-0{margin-top:0!important}.mt-1{margin-top:.25rem!important}.mt-2{margin-top:.5rem!important}.mt-3{margin-top:1rem!important}.mt-4{margin-top:1.5rem!important}.mt-5{margin-top:3rem!important}.mt-auto{margin-top:auto!important}.me-0{margin-right:0!important}.me-1{margin-right:.25rem!important}.me-2{margin-right:.5rem!important}.me-3{margin-right:1rem!important}.me-4{margin-right:1.5rem!important}.me-5{margin-right:3rem!important}.me-auto{margin-right:auto!important}.mb-0{margin-bottom:0!important}.mb-1{margin-bottom:.25rem!important}.mb-2{margin-bottom:.5rem!important}.mb-3{margin-bottom:1rem!important}.mb-4{margin-bottom:1.5rem!important}.mb-5{margin-bottom:3rem!important}.mb-auto{margin-bottom:auto!important}.ms-0{margin-left:0!important}.ms-1{margin-left:.25rem!important}.ms-2{margin-left:.5rem!important}.ms-3{margin-left:1rem!important}.ms-4{margin-left:1.5rem!important}.ms-5{margin-left:3rem!important}.ms-auto{margin-left:auto!important}.p-0{padding:0!important}.p-1{padding:.25rem!important}.p-2{padding:.5rem!important}.p-3{padding:1rem!important}.p-4{padding:1.5rem!important}.p-5{padding:3rem!important}.px-0{padding-right:0!important;padding-left:0!important}.px-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-3{padding-right:1rem!important;padding-left:1rem!important}.px-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-5{padding-right:3rem!important;padding-left:3rem!important}.py-0{padding-top:0!important;padding-bottom:0!important}.py-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-0{padding-top:0!important}.pt-1{padding-top:.25rem!important}.pt-2{padding-top:.5rem!important}.pt-3{padding-top:1rem!important}.pt-4{padding-top:1.5rem!important}.pt-5{padding-top:3rem!important}.pe-0{padding-right:0!important}.pe-1{padding-right:.25rem!important}.pe-2{padding-right:.5rem!important}.pe-3{padding-right:1rem!important}.pe-4{padding-right:1.5rem!important}.pe-5{padding-right:3rem!important}.pb-0{padding-bottom:0!important}.pb-1{padding-bottom:.25rem!important}.pb-2{padding-bottom:.5rem!important}.pb-3{padding-bottom:1rem!important}.pb-4{padding-bottom:1.5rem!important}.pb-5{padding-bottom:3rem!important}.ps-0{padding-left:0!important}.ps-1{padding-left:.25rem!important}.ps-2{padding-left:.5rem!important}.ps-3{padding-left:1rem!important}.ps-4{padding-left:1.5rem!important}.ps-5{padding-left:3rem!important}.gap-0{gap:0!important}.gap-1{gap:.25rem!important}.gap-2{gap:.5rem!important}.gap-3{gap:1rem!important}.gap-4{gap:1.5rem!important}.gap-5{gap:3rem!important}.row-gap-0{row-gap:0!important}.row-gap-1{row-gap:.25rem!important}.row-gap-2{row-gap:.5rem!important}.row-gap-3{row-gap:1rem!important}.row-gap-4{row-gap:1.5rem!important}.row-gap-5{row-gap:3rem!important}.column-gap-0{-moz-column-gap:0!important;column-gap:0!important}.column-gap-1{-moz-column-gap:0.25rem!important;column-gap:.25rem!important}.column-gap-2{-moz-column-gap:0.5rem!important;column-gap:.5rem!important}.column-gap-3{-moz-column-gap:1rem!important;column-gap:1rem!important}.column-gap-4{-moz-column-gap:1.5rem!important;column-gap:1.5rem!important}.column-gap-5{-moz-column-gap:3rem!important;column-gap:3rem!important}.font-monospace{font-family:var(--bs-font-monospace)!important}.fs-1{font-size:calc(1.375rem + 1.5vw)!important}.fs-2{font-size:calc(1.325rem + .9vw)!important}.fs-3{font-size:calc(1.3rem + .6vw)!important}.fs-4{font-size:calc(1.275rem + .3vw)!important}.fs-5{font-size:1.25rem!important}.fs-6{font-size:1rem!important}.fst-italic{font-style:italic!important}.fst-normal{font-style:normal!important}.fw-lighter{font-weight:lighter!important}.fw-light{font-weight:300!important}.fw-normal{font-weight:400!important}.fw-medium{font-weight:500!important}.fw-semibold{font-weight:600!important}.fw-bold{font-weight:700!important}.fw-bolder{font-weight:bolder!important}.lh-1{line-height:1!important}.lh-sm{line-height:1.25!important}.lh-base{line-height:1.5!important}.lh-lg{line-height:2!important}.text-start{text-align:left!important}.text-end{text-align:right!important}.text-center{text-align:center!important}.text-decoration-none{text-decoration:none!important}.text-decoration-underline{text-decoration:underline!important}.text-decoration-line-through{text-decoration:line-through!important}.text-lowercase{text-transform:lowercase!important}.text-uppercase{text-transform:uppercase!important}.text-capitalize{text-transform:capitalize!important}.text-wrap{white-space:normal!important}.text-nowrap{white-space:nowrap!important}.text-break{word-wrap:break-word!important;word-break:break-word!important}.text-primary{--bs-text-opacity:1;color:rgba(var(--bs-primary-rgb),var(--bs-text-opacity))!important}.text-secondary{--bs-text-opacity:1;color:rgba(var(--bs-secondary-rgb),var(--bs-text-opacity))!important}.text-success{--bs-text-opacity:1;color:rgba(var(--bs-success-rgb),var(--bs-text-opacity))!important}.text-info{--bs-text-opacity:1;color:rgba(var(--bs-info-rgb),var(--bs-text-opacity))!important}.text-warning{--bs-text-opacity:1;color:rgba(var(--bs-warning-rgb),var(--bs-text-opacity))!important}.text-danger{--bs-text-opacity:1;color:rgba(var(--bs-danger-rgb),var(--bs-text-opacity))!important}.text-light{--bs-text-opacity:1;color:rgba(var(--bs-light-rgb),var(--bs-text-opacity))!important}.text-dark{--bs-text-opacity:1;color:rgba(var(--bs-dark-rgb),var(--bs-text-opacity))!important}.text-black{--bs-text-opacity:1;color:rgba(var(--bs-black-rgb),var(--bs-text-opacity))!important}.text-white{--bs-text-opacity:1;color:rgba(var(--bs-white-rgb),var(--bs-text-opacity))!important}.text-body{--bs-text-opacity:1;color:rgba(var(--bs-body-color-rgb),var(--bs-text-opacity))!important}.text-muted{--bs-text-opacity:1;color:var(--bs-secondary-color)!important}.text-black-50{--bs-text-opacity:1;color:rgba(0,0,0,.5)!important}.text-white-50{--bs-text-opacity:1;color:rgba(255,255,255,.5)!important}.text-body-secondary{--bs-text-opacity:1;color:var(--bs-secondary-color)!important}.text-body-tertiary{--bs-text-opacity:1;color:var(--bs-tertiary-color)!important}.text-body-emphasis{--bs-text-opacity:1;color:var(--bs-emphasis-color)!important}.text-reset{--bs-text-opacity:1;color:inherit!important}.text-opacity-25{--bs-text-opacity:0.25}.text-opacity-50{--bs-text-opacity:0.5}.text-opacity-75{--bs-text-opacity:0.75}.text-opacity-100{--bs-text-opacity:1}.text-primary-emphasis{color:var(--bs-primary-text-emphasis)!important}.text-secondary-emphasis{color:var(--bs-secondary-text-emphasis)!important}.text-success-emphasis{color:var(--bs-success-text-emphasis)!important}.text-info-emphasis{color:var(--bs-info-text-emphasis)!important}.text-warning-emphasis{color:var(--bs-warning-text-emphasis)!important}.text-danger-emphasis{color:var(--bs-danger-text-emphasis)!important}.text-light-emphasis{color:var(--bs-light-text-emphasis)!important}.text-dark-emphasis{color:var(--bs-dark-text-emphasis)!important}.link-opacity-10{--bs-link-opacity:0.1}.link-opacity-10-hover:hover{--bs-link-opacity:0.1}.link-opacity-25{--bs-link-opacity:0.25}.link-opacity-25-hover:hover{--bs-link-opacity:0.25}.link-opacity-50{--bs-link-opacity:0.5}.link-opacity-50-hover:hover{--bs-link-opacity:0.5}.link-opacity-75{--bs-link-opacity:0.75}.link-opacity-75-hover:hover{--bs-link-opacity:0.75}.link-opacity-100{--bs-link-opacity:1}.link-opacity-100-hover:hover{--bs-link-opacity:1}.link-offset-1{text-underline-offset:0.125em!important}.link-offset-1-hover:hover{text-underline-offset:0.125em!important}.link-offset-2{text-underline-offset:0.25em!important}.link-offset-2-hover:hover{text-underline-offset:0.25em!important}.link-offset-3{text-underline-offset:0.375em!important}.link-offset-3-hover:hover{text-underline-offset:0.375em!important}.link-underline-primary{--bs-link-underline-opacity:1;-webkit-text-decoration-color:rgba(var(--bs-primary-rgb),var(--bs-link-underline-opacity))!important;text-decoration-color:rgba(var(--bs-primary-rgb),var(--bs-link-underline-opacity))!important}.link-underline-secondary{--bs-link-underline-opacity:1;-webkit-text-decoration-color:rgba(var(--bs-secondary-rgb),var(--bs-link-underline-opacity))!important;text-decoration-color:rgba(var(--bs-secondary-rgb),var(--bs-link-underline-opacity))!important}.link-underline-success{--bs-link-underline-opacity:1;-webkit-text-decoration-color:rgba(var(--bs-success-rgb),var(--bs-link-underline-opacity))!important;text-decoration-color:rgba(var(--bs-success-rgb),var(--bs-link-underline-opacity))!important}.link-underline-info{--bs-link-underline-opacity:1;-webkit-text-decoration-color:rgba(var(--bs-info-rgb),var(--bs-link-underline-opacity))!important;text-decoration-color:rgba(var(--bs-info-rgb),var(--bs-link-underline-opacity))!important}.link-underline-warning{--bs-link-underline-opacity:1;-webkit-text-decoration-color:rgba(var(--bs-warning-rgb),var(--bs-link-underline-opacity))!important;text-decoration-color:rgba(var(--bs-warning-rgb),var(--bs-link-underline-opacity))!important}.link-underline-danger{--bs-link-underline-opacity:1;-webkit-text-decoration-color:rgba(var(--bs-danger-rgb),var(--bs-link-underline-opacity))!important;text-decoration-color:rgba(var(--bs-danger-rgb),var(--bs-link-underline-opacity))!important}.link-underline-light{--bs-link-underline-opacity:1;-webkit-text-decoration-color:rgba(var(--bs-light-rgb),var(--bs-link-underline-opacity))!important;text-decoration-color:rgba(var(--bs-light-rgb),var(--bs-link-underline-opacity))!important}.link-underline-dark{--bs-link-underline-opacity:1;-webkit-text-decoration-color:rgba(var(--bs-dark-rgb),var(--bs-link-underline-opacity))!important;text-decoration-color:rgba(var(--bs-dark-rgb),var(--bs-link-underline-opacity))!important}.link-underline{--bs-link-underline-opacity:1;-webkit-text-decoration-color:rgba(var(--bs-link-color-rgb),var(--bs-link-underline-opacity,1))!important;text-decoration-color:rgba(var(--bs-link-color-rgb),var(--bs-link-underline-opacity,1))!important}.link-underline-opacity-0{--bs-link-underline-opacity:0}.link-underline-opacity-0-hover:hover{--bs-link-underline-opacity:0}.link-underline-opacity-10{--bs-link-underline-opacity:0.1}.link-underline-opacity-10-hover:hover{--bs-link-underline-opacity:0.1}.link-underline-opacity-25{--bs-link-underline-opacity:0.25}.link-underline-opacity-25-hover:hover{--bs-link-underline-opacity:0.25}.link-underline-opacity-50{--bs-link-underline-opacity:0.5}.link-underline-opacity-50-hover:hover{--bs-link-underline-opacity:0.5}.link-underline-opacity-75{--bs-link-underline-opacity:0.75}.link-underline-opacity-75-hover:hover{--bs-link-underline-opacity:0.75}.link-underline-opacity-100{--bs-link-underline-opacity:1}.link-underline-opacity-100-hover:hover{--bs-link-underline-opacity:1}.bg-primary{--bs-bg-opacity:1;background-color:rgba(var(--bs-primary-rgb),var(--bs-bg-opacity))!important}.bg-secondary{--bs-bg-opacity:1;background-color:rgba(var(--bs-secondary-rgb),var(--bs-bg-opacity))!important}.bg-success{--bs-bg-opacity:1;background-color:rgba(var(--bs-success-rgb),var(--bs-bg-opacity))!important}.bg-info{--bs-bg-opacity:1;background-color:rgba(var(--bs-info-rgb),var(--bs-bg-opacity))!important}.bg-warning{--bs-bg-opacity:1;background-color:rgba(var(--bs-warning-rgb),var(--bs-bg-opacity))!important}.bg-danger{--bs-bg-opacity:1;background-color:rgba(var(--bs-danger-rgb),var(--bs-bg-opacity))!important}.bg-light{--bs-bg-opacity:1;background-color:rgba(var(--bs-light-rgb),var(--bs-bg-opacity))!important}.bg-dark{--bs-bg-opacity:1;background-color:rgba(var(--bs-dark-rgb),var(--bs-bg-opacity))!important}.bg-black{--bs-bg-opacity:1;background-color:rgba(var(--bs-black-rgb),var(--bs-bg-opacity))!important}.bg-white{--bs-bg-opacity:1;background-color:rgba(var(--bs-white-rgb),var(--bs-bg-opacity))!important}.bg-body{--bs-bg-opacity:1;background-color:rgba(var(--bs-body-bg-rgb),var(--bs-bg-opacity))!important}.bg-transparent{--bs-bg-opacity:1;background-color:transparent!important}.bg-body-secondary{--bs-bg-opacity:1;background-color:rgba(var(--bs-secondary-bg-rgb),var(--bs-bg-opacity))!important}.bg-body-tertiary{--bs-bg-opacity:1;background-color:rgba(var(--bs-tertiary-bg-rgb),var(--bs-bg-opacity))!important}.bg-opacity-10{--bs-bg-opacity:0.1}.bg-opacity-25{--bs-bg-opacity:0.25}.bg-opacity-50{--bs-bg-opacity:0.5}.bg-opacity-75{--bs-bg-opacity:0.75}.bg-opacity-100{--bs-bg-opacity:1}.bg-primary-subtle{background-color:var(--bs-primary-bg-subtle)!important}.bg-secondary-subtle{background-color:var(--bs-secondary-bg-subtle)!important}.bg-success-subtle{background-color:var(--bs-success-bg-subtle)!important}.bg-info-subtle{background-color:var(--bs-info-bg-subtle)!important}.bg-warning-subtle{background-color:var(--bs-warning-bg-subtle)!important}.bg-danger-subtle{background-color:var(--bs-danger-bg-subtle)!important}.bg-light-subtle{background-color:var(--bs-light-bg-subtle)!important}.bg-dark-subtle{background-color:var(--bs-dark-bg-subtle)!important}.bg-gradient{background-image:var(--bs-gradient)!important}.user-select-all{-webkit-user-select:all!important;-moz-user-select:all!important;user-select:all!important}.user-select-auto{-webkit-user-select:auto!important;-moz-user-select:auto!important;user-select:auto!important}.user-select-none{-webkit-user-select:none!important;-moz-user-select:none!important;user-select:none!important}.pe-none{pointer-events:none!important}.pe-auto{pointer-events:auto!important}.rounded{border-radius:var(--bs-border-radius)!important}.rounded-0{border-radius:0!important}.rounded-1{border-radius:var(--bs-border-radius-sm)!important}.rounded-2{border-radius:var(--bs-border-radius)!important}.rounded-3{border-radius:var(--bs-border-radius-lg)!important}.rounded-4{border-radius:var(--bs-border-radius-xl)!important}.rounded-5{border-radius:var(--bs-border-radius-xxl)!important}.rounded-circle{border-radius:50%!important}.rounded-pill{border-radius:var(--bs-border-radius-pill)!important}.rounded-top{border-top-left-radius:var(--bs-border-radius)!important;border-top-right-radius:var(--bs-border-radius)!important}.rounded-top-0{border-top-left-radius:0!important;border-top-right-radius:0!important}.rounded-top-1{border-top-left-radius:var(--bs-border-radius-sm)!important;border-top-right-radius:var(--bs-border-radius-sm)!important}.rounded-top-2{border-top-left-radius:var(--bs-border-radius)!important;border-top-right-radius:var(--bs-border-radius)!important}.rounded-top-3{border-top-left-radius:var(--bs-border-radius-lg)!important;border-top-right-radius:var(--bs-border-radius-lg)!important}.rounded-top-4{border-top-left-radius:var(--bs-border-radius-xl)!important;border-top-right-radius:var(--bs-border-radius-xl)!important}.rounded-top-5{border-top-left-radius:var(--bs-border-radius-xxl)!important;border-top-right-radius:var(--bs-border-radius-xxl)!important}.rounded-top-circle{border-top-left-radius:50%!important;border-top-right-radius:50%!important}.rounded-top-pill{border-top-left-radius:var(--bs-border-radius-pill)!important;border-top-right-radius:var(--bs-border-radius-pill)!important}.rounded-end{border-top-right-radius:var(--bs-border-radius)!important;border-bottom-right-radius:var(--bs-border-radius)!important}.rounded-end-0{border-top-right-radius:0!important;border-bottom-right-radius:0!important}.rounded-end-1{border-top-right-radius:var(--bs-border-radius-sm)!important;border-bottom-right-radius:var(--bs-border-radius-sm)!important}.rounded-end-2{border-top-right-radius:var(--bs-border-radius)!important;border-bottom-right-radius:var(--bs-border-radius)!important}.rounded-end-3{border-top-right-radius:var(--bs-border-radius-lg)!important;border-bottom-right-radius:var(--bs-border-radius-lg)!important}.rounded-end-4{border-top-right-radius:var(--bs-border-radius-xl)!important;border-bottom-right-radius:var(--bs-border-radius-xl)!important}.rounded-end-5{border-top-right-radius:var(--bs-border-radius-xxl)!important;border-bottom-right-radius:var(--bs-border-radius-xxl)!important}.rounded-end-circle{border-top-right-radius:50%!important;border-bottom-right-radius:50%!important}.rounded-end-pill{border-top-right-radius:var(--bs-border-radius-pill)!important;border-bottom-right-radius:var(--bs-border-radius-pill)!important}.rounded-bottom{border-bottom-right-radius:var(--bs-border-radius)!important;border-bottom-left-radius:var(--bs-border-radius)!important}.rounded-bottom-0{border-bottom-right-radius:0!important;border-bottom-left-radius:0!important}.rounded-bottom-1{border-bottom-right-radius:var(--bs-border-radius-sm)!important;border-bottom-left-radius:var(--bs-border-radius-sm)!important}.rounded-bottom-2{border-bottom-right-radius:var(--bs-border-radius)!important;border-bottom-left-radius:var(--bs-border-radius)!important}.rounded-bottom-3{border-bottom-right-radius:var(--bs-border-radius-lg)!important;border-bottom-left-radius:var(--bs-border-radius-lg)!important}.rounded-bottom-4{border-bottom-right-radius:var(--bs-border-radius-xl)!important;border-bottom-left-radius:var(--bs-border-radius-xl)!important}.rounded-bottom-5{border-bottom-right-radius:var(--bs-border-radius-xxl)!important;border-bottom-left-radius:var(--bs-border-radius-xxl)!important}.rounded-bottom-circle{border-bottom-right-radius:50%!important;border-bottom-left-radius:50%!important}.rounded-bottom-pill{border-bottom-right-radius:var(--bs-border-radius-pill)!important;border-bottom-left-radius:var(--bs-border-radius-pill)!important}.rounded-start{border-bottom-left-radius:var(--bs-border-radius)!important;border-top-left-radius:var(--bs-border-radius)!important}.rounded-start-0{border-bottom-left-radius:0!important;border-top-left-radius:0!important}.rounded-start-1{border-bottom-left-radius:var(--bs-border-radius-sm)!important;border-top-left-radius:var(--bs-border-radius-sm)!important}.rounded-start-2{border-bottom-left-radius:var(--bs-border-radius)!important;border-top-left-radius:var(--bs-border-radius)!important}.rounded-start-3{border-bottom-left-radius:var(--bs-border-radius-lg)!important;border-top-left-radius:var(--bs-border-radius-lg)!important}.rounded-start-4{border-bottom-left-radius:var(--bs-border-radius-xl)!important;border-top-left-radius:var(--bs-border-radius-xl)!important}.rounded-start-5{border-bottom-left-radius:var(--bs-border-radius-xxl)!important;border-top-left-radius:var(--bs-border-radius-xxl)!important}.rounded-start-circle{border-bottom-left-radius:50%!important;border-top-left-radius:50%!important}.rounded-start-pill{border-bottom-left-radius:var(--bs-border-radius-pill)!important;border-top-left-radius:var(--bs-border-radius-pill)!important}.visible{visibility:visible!important}.invisible{visibility:hidden!important}.z-n1{z-index:-1!important}.z-0{z-index:0!important}.z-1{z-index:1!important}.z-2{z-index:2!important}.z-3{z-index:3!important}@media (min-width:576px){.float-sm-start{float:left!important}.float-sm-end{float:right!important}.float-sm-none{float:none!important}.object-fit-sm-contain{-o-object-fit:contain!important;object-fit:contain!important}.object-fit-sm-cover{-o-object-fit:cover!important;object-fit:cover!important}.object-fit-sm-fill{-o-object-fit:fill!important;object-fit:fill!important}.object-fit-sm-scale{-o-object-fit:scale-down!important;object-fit:scale-down!important}.object-fit-sm-none{-o-object-fit:none!important;object-fit:none!important}.d-sm-inline{display:inline!important}.d-sm-inline-block{display:inline-block!important}.d-sm-block{display:block!important}.d-sm-grid{display:grid!important}.d-sm-inline-grid{display:inline-grid!important}.d-sm-table{display:table!important}.d-sm-table-row{display:table-row!important}.d-sm-table-cell{display:table-cell!important}.d-sm-flex{display:flex!important}.d-sm-inline-flex{display:inline-flex!important}.d-sm-none{display:none!important}.flex-sm-fill{flex:1 1 auto!important}.flex-sm-row{flex-direction:row!important}.flex-sm-column{flex-direction:column!important}.flex-sm-row-reverse{flex-direction:row-reverse!important}.flex-sm-column-reverse{flex-direction:column-reverse!important}.flex-sm-grow-0{flex-grow:0!important}.flex-sm-grow-1{flex-grow:1!important}.flex-sm-shrink-0{flex-shrink:0!important}.flex-sm-shrink-1{flex-shrink:1!important}.flex-sm-wrap{flex-wrap:wrap!important}.flex-sm-nowrap{flex-wrap:nowrap!important}.flex-sm-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-sm-start{justify-content:flex-start!important}.justify-content-sm-end{justify-content:flex-end!important}.justify-content-sm-center{justify-content:center!important}.justify-content-sm-between{justify-content:space-between!important}.justify-content-sm-around{justify-content:space-around!important}.justify-content-sm-evenly{justify-content:space-evenly!important}.align-items-sm-start{align-items:flex-start!important}.align-items-sm-end{align-items:flex-end!important}.align-items-sm-center{align-items:center!important}.align-items-sm-baseline{align-items:baseline!important}.align-items-sm-stretch{align-items:stretch!important}.align-content-sm-start{align-content:flex-start!important}.align-content-sm-end{align-content:flex-end!important}.align-content-sm-center{align-content:center!important}.align-content-sm-between{align-content:space-between!important}.align-content-sm-around{align-content:space-around!important}.align-content-sm-stretch{align-content:stretch!important}.align-self-sm-auto{align-self:auto!important}.align-self-sm-start{align-self:flex-start!important}.align-self-sm-end{align-self:flex-end!important}.align-self-sm-center{align-self:center!important}.align-self-sm-baseline{align-self:baseline!important}.align-self-sm-stretch{align-self:stretch!important}.order-sm-first{order:-1!important}.order-sm-0{order:0!important}.order-sm-1{order:1!important}.order-sm-2{order:2!important}.order-sm-3{order:3!important}.order-sm-4{order:4!important}.order-sm-5{order:5!important}.order-sm-last{order:6!important}.m-sm-0{margin:0!important}.m-sm-1{margin:.25rem!important}.m-sm-2{margin:.5rem!important}.m-sm-3{margin:1rem!important}.m-sm-4{margin:1.5rem!important}.m-sm-5{margin:3rem!important}.m-sm-auto{margin:auto!important}.mx-sm-0{margin-right:0!important;margin-left:0!important}.mx-sm-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-sm-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-sm-3{margin-right:1rem!important;margin-left:1rem!important}.mx-sm-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-sm-5{margin-right:3rem!important;margin-left:3rem!important}.mx-sm-auto{margin-right:auto!important;margin-left:auto!important}.my-sm-0{margin-top:0!important;margin-bottom:0!important}.my-sm-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-sm-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-sm-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-sm-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-sm-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-sm-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-sm-0{margin-top:0!important}.mt-sm-1{margin-top:.25rem!important}.mt-sm-2{margin-top:.5rem!important}.mt-sm-3{margin-top:1rem!important}.mt-sm-4{margin-top:1.5rem!important}.mt-sm-5{margin-top:3rem!important}.mt-sm-auto{margin-top:auto!important}.me-sm-0{margin-right:0!important}.me-sm-1{margin-right:.25rem!important}.me-sm-2{margin-right:.5rem!important}.me-sm-3{margin-right:1rem!important}.me-sm-4{margin-right:1.5rem!important}.me-sm-5{margin-right:3rem!important}.me-sm-auto{margin-right:auto!important}.mb-sm-0{margin-bottom:0!important}.mb-sm-1{margin-bottom:.25rem!important}.mb-sm-2{margin-bottom:.5rem!important}.mb-sm-3{margin-bottom:1rem!important}.mb-sm-4{margin-bottom:1.5rem!important}.mb-sm-5{margin-bottom:3rem!important}.mb-sm-auto{margin-bottom:auto!important}.ms-sm-0{margin-left:0!important}.ms-sm-1{margin-left:.25rem!important}.ms-sm-2{margin-left:.5rem!important}.ms-sm-3{margin-left:1rem!important}.ms-sm-4{margin-left:1.5rem!important}.ms-sm-5{margin-left:3rem!important}.ms-sm-auto{margin-left:auto!important}.p-sm-0{padding:0!important}.p-sm-1{padding:.25rem!important}.p-sm-2{padding:.5rem!important}.p-sm-3{padding:1rem!important}.p-sm-4{padding:1.5rem!important}.p-sm-5{padding:3rem!important}.px-sm-0{padding-right:0!important;padding-left:0!important}.px-sm-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-sm-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-sm-3{padding-right:1rem!important;padding-left:1rem!important}.px-sm-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-sm-5{padding-right:3rem!important;padding-left:3rem!important}.py-sm-0{padding-top:0!important;padding-bottom:0!important}.py-sm-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-sm-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-sm-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-sm-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-sm-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-sm-0{padding-top:0!important}.pt-sm-1{padding-top:.25rem!important}.pt-sm-2{padding-top:.5rem!important}.pt-sm-3{padding-top:1rem!important}.pt-sm-4{padding-top:1.5rem!important}.pt-sm-5{padding-top:3rem!important}.pe-sm-0{padding-right:0!important}.pe-sm-1{padding-right:.25rem!important}.pe-sm-2{padding-right:.5rem!important}.pe-sm-3{padding-right:1rem!important}.pe-sm-4{padding-right:1.5rem!important}.pe-sm-5{padding-right:3rem!important}.pb-sm-0{padding-bottom:0!important}.pb-sm-1{padding-bottom:.25rem!important}.pb-sm-2{padding-bottom:.5rem!important}.pb-sm-3{padding-bottom:1rem!important}.pb-sm-4{padding-bottom:1.5rem!important}.pb-sm-5{padding-bottom:3rem!important}.ps-sm-0{padding-left:0!important}.ps-sm-1{padding-left:.25rem!important}.ps-sm-2{padding-left:.5rem!important}.ps-sm-3{padding-left:1rem!important}.ps-sm-4{padding-left:1.5rem!important}.ps-sm-5{padding-left:3rem!important}.gap-sm-0{gap:0!important}.gap-sm-1{gap:.25rem!important}.gap-sm-2{gap:.5rem!important}.gap-sm-3{gap:1rem!important}.gap-sm-4{gap:1.5rem!important}.gap-sm-5{gap:3rem!important}.row-gap-sm-0{row-gap:0!important}.row-gap-sm-1{row-gap:.25rem!important}.row-gap-sm-2{row-gap:.5rem!important}.row-gap-sm-3{row-gap:1rem!important}.row-gap-sm-4{row-gap:1.5rem!important}.row-gap-sm-5{row-gap:3rem!important}.column-gap-sm-0{-moz-column-gap:0!important;column-gap:0!important}.column-gap-sm-1{-moz-column-gap:0.25rem!important;column-gap:.25rem!important}.column-gap-sm-2{-moz-column-gap:0.5rem!important;column-gap:.5rem!important}.column-gap-sm-3{-moz-column-gap:1rem!important;column-gap:1rem!important}.column-gap-sm-4{-moz-column-gap:1.5rem!important;column-gap:1.5rem!important}.column-gap-sm-5{-moz-column-gap:3rem!important;column-gap:3rem!important}.text-sm-start{text-align:left!important}.text-sm-end{text-align:right!important}.text-sm-center{text-align:center!important}}@media (min-width:768px){.float-md-start{float:left!important}.float-md-end{float:right!important}.float-md-none{float:none!important}.object-fit-md-contain{-o-object-fit:contain!important;object-fit:contain!important}.object-fit-md-cover{-o-object-fit:cover!important;object-fit:cover!important}.object-fit-md-fill{-o-object-fit:fill!important;object-fit:fill!important}.object-fit-md-scale{-o-object-fit:scale-down!important;object-fit:scale-down!important}.object-fit-md-none{-o-object-fit:none!important;object-fit:none!important}.d-md-inline{display:inline!important}.d-md-inline-block{display:inline-block!important}.d-md-block{display:block!important}.d-md-grid{display:grid!important}.d-md-inline-grid{display:inline-grid!important}.d-md-table{display:table!important}.d-md-table-row{display:table-row!important}.d-md-table-cell{display:table-cell!important}.d-md-flex{display:flex!important}.d-md-inline-flex{display:inline-flex!important}.d-md-none{display:none!important}.flex-md-fill{flex:1 1 auto!important}.flex-md-row{flex-direction:row!important}.flex-md-column{flex-direction:column!important}.flex-md-row-reverse{flex-direction:row-reverse!important}.flex-md-column-reverse{flex-direction:column-reverse!important}.flex-md-grow-0{flex-grow:0!important}.flex-md-grow-1{flex-grow:1!important}.flex-md-shrink-0{flex-shrink:0!important}.flex-md-shrink-1{flex-shrink:1!important}.flex-md-wrap{flex-wrap:wrap!important}.flex-md-nowrap{flex-wrap:nowrap!important}.flex-md-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-md-start{justify-content:flex-start!important}.justify-content-md-end{justify-content:flex-end!important}.justify-content-md-center{justify-content:center!important}.justify-content-md-between{justify-content:space-between!important}.justify-content-md-around{justify-content:space-around!important}.justify-content-md-evenly{justify-content:space-evenly!important}.align-items-md-start{align-items:flex-start!important}.align-items-md-end{align-items:flex-end!important}.align-items-md-center{align-items:center!important}.align-items-md-baseline{align-items:baseline!important}.align-items-md-stretch{align-items:stretch!important}.align-content-md-start{align-content:flex-start!important}.align-content-md-end{align-content:flex-end!important}.align-content-md-center{align-content:center!important}.align-content-md-between{align-content:space-between!important}.align-content-md-around{align-content:space-around!important}.align-content-md-stretch{align-content:stretch!important}.align-self-md-auto{align-self:auto!important}.align-self-md-start{align-self:flex-start!important}.align-self-md-end{align-self:flex-end!important}.align-self-md-center{align-self:center!important}.align-self-md-baseline{align-self:baseline!important}.align-self-md-stretch{align-self:stretch!important}.order-md-first{order:-1!important}.order-md-0{order:0!important}.order-md-1{order:1!important}.order-md-2{order:2!important}.order-md-3{order:3!important}.order-md-4{order:4!important}.order-md-5{order:5!important}.order-md-last{order:6!important}.m-md-0{margin:0!important}.m-md-1{margin:.25rem!important}.m-md-2{margin:.5rem!important}.m-md-3{margin:1rem!important}.m-md-4{margin:1.5rem!important}.m-md-5{margin:3rem!important}.m-md-auto{margin:auto!important}.mx-md-0{margin-right:0!important;margin-left:0!important}.mx-md-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-md-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-md-3{margin-right:1rem!important;margin-left:1rem!important}.mx-md-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-md-5{margin-right:3rem!important;margin-left:3rem!important}.mx-md-auto{margin-right:auto!important;margin-left:auto!important}.my-md-0{margin-top:0!important;margin-bottom:0!important}.my-md-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-md-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-md-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-md-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-md-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-md-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-md-0{margin-top:0!important}.mt-md-1{margin-top:.25rem!important}.mt-md-2{margin-top:.5rem!important}.mt-md-3{margin-top:1rem!important}.mt-md-4{margin-top:1.5rem!important}.mt-md-5{margin-top:3rem!important}.mt-md-auto{margin-top:auto!important}.me-md-0{margin-right:0!important}.me-md-1{margin-right:.25rem!important}.me-md-2{margin-right:.5rem!important}.me-md-3{margin-right:1rem!important}.me-md-4{margin-right:1.5rem!important}.me-md-5{margin-right:3rem!important}.me-md-auto{margin-right:auto!important}.mb-md-0{margin-bottom:0!important}.mb-md-1{margin-bottom:.25rem!important}.mb-md-2{margin-bottom:.5rem!important}.mb-md-3{margin-bottom:1rem!important}.mb-md-4{margin-bottom:1.5rem!important}.mb-md-5{margin-bottom:3rem!important}.mb-md-auto{margin-bottom:auto!important}.ms-md-0{margin-left:0!important}.ms-md-1{margin-left:.25rem!important}.ms-md-2{margin-left:.5rem!important}.ms-md-3{margin-left:1rem!important}.ms-md-4{margin-left:1.5rem!important}.ms-md-5{margin-left:3rem!important}.ms-md-auto{margin-left:auto!important}.p-md-0{padding:0!important}.p-md-1{padding:.25rem!important}.p-md-2{padding:.5rem!important}.p-md-3{padding:1rem!important}.p-md-4{padding:1.5rem!important}.p-md-5{padding:3rem!important}.px-md-0{padding-right:0!important;padding-left:0!important}.px-md-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-md-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-md-3{padding-right:1rem!important;padding-left:1rem!important}.px-md-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-md-5{padding-right:3rem!important;padding-left:3rem!important}.py-md-0{padding-top:0!important;padding-bottom:0!important}.py-md-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-md-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-md-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-md-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-md-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-md-0{padding-top:0!important}.pt-md-1{padding-top:.25rem!important}.pt-md-2{padding-top:.5rem!important}.pt-md-3{padding-top:1rem!important}.pt-md-4{padding-top:1.5rem!important}.pt-md-5{padding-top:3rem!important}.pe-md-0{padding-right:0!important}.pe-md-1{padding-right:.25rem!important}.pe-md-2{padding-right:.5rem!important}.pe-md-3{padding-right:1rem!important}.pe-md-4{padding-right:1.5rem!important}.pe-md-5{padding-right:3rem!important}.pb-md-0{padding-bottom:0!important}.pb-md-1{padding-bottom:.25rem!important}.pb-md-2{padding-bottom:.5rem!important}.pb-md-3{padding-bottom:1rem!important}.pb-md-4{padding-bottom:1.5rem!important}.pb-md-5{padding-bottom:3rem!important}.ps-md-0{padding-left:0!important}.ps-md-1{padding-left:.25rem!important}.ps-md-2{padding-left:.5rem!important}.ps-md-3{padding-left:1rem!important}.ps-md-4{padding-left:1.5rem!important}.ps-md-5{padding-left:3rem!important}.gap-md-0{gap:0!important}.gap-md-1{gap:.25rem!important}.gap-md-2{gap:.5rem!important}.gap-md-3{gap:1rem!important}.gap-md-4{gap:1.5rem!important}.gap-md-5{gap:3rem!important}.row-gap-md-0{row-gap:0!important}.row-gap-md-1{row-gap:.25rem!important}.row-gap-md-2{row-gap:.5rem!important}.row-gap-md-3{row-gap:1rem!important}.row-gap-md-4{row-gap:1.5rem!important}.row-gap-md-5{row-gap:3rem!important}.column-gap-md-0{-moz-column-gap:0!important;column-gap:0!important}.column-gap-md-1{-moz-column-gap:0.25rem!important;column-gap:.25rem!important}.column-gap-md-2{-moz-column-gap:0.5rem!important;column-gap:.5rem!important}.column-gap-md-3{-moz-column-gap:1rem!important;column-gap:1rem!important}.column-gap-md-4{-moz-column-gap:1.5rem!important;column-gap:1.5rem!important}.column-gap-md-5{-moz-column-gap:3rem!important;column-gap:3rem!important}.text-md-start{text-align:left!important}.text-md-end{text-align:right!important}.text-md-center{text-align:center!important}}@media (min-width:992px){.float-lg-start{float:left!important}.float-lg-end{float:right!important}.float-lg-none{float:none!important}.object-fit-lg-contain{-o-object-fit:contain!important;object-fit:contain!important}.object-fit-lg-cover{-o-object-fit:cover!important;object-fit:cover!important}.object-fit-lg-fill{-o-object-fit:fill!important;object-fit:fill!important}.object-fit-lg-scale{-o-object-fit:scale-down!important;object-fit:scale-down!important}.object-fit-lg-none{-o-object-fit:none!important;object-fit:none!important}.d-lg-inline{display:inline!important}.d-lg-inline-block{display:inline-block!important}.d-lg-block{display:block!important}.d-lg-grid{display:grid!important}.d-lg-inline-grid{display:inline-grid!important}.d-lg-table{display:table!important}.d-lg-table-row{display:table-row!important}.d-lg-table-cell{display:table-cell!important}.d-lg-flex{display:flex!important}.d-lg-inline-flex{display:inline-flex!important}.d-lg-none{display:none!important}.flex-lg-fill{flex:1 1 auto!important}.flex-lg-row{flex-direction:row!important}.flex-lg-column{flex-direction:column!important}.flex-lg-row-reverse{flex-direction:row-reverse!important}.flex-lg-column-reverse{flex-direction:column-reverse!important}.flex-lg-grow-0{flex-grow:0!important}.flex-lg-grow-1{flex-grow:1!important}.flex-lg-shrink-0{flex-shrink:0!important}.flex-lg-shrink-1{flex-shrink:1!important}.flex-lg-wrap{flex-wrap:wrap!important}.flex-lg-nowrap{flex-wrap:nowrap!important}.flex-lg-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-lg-start{justify-content:flex-start!important}.justify-content-lg-end{justify-content:flex-end!important}.justify-content-lg-center{justify-content:center!important}.justify-content-lg-between{justify-content:space-between!important}.justify-content-lg-around{justify-content:space-around!important}.justify-content-lg-evenly{justify-content:space-evenly!important}.align-items-lg-start{align-items:flex-start!important}.align-items-lg-end{align-items:flex-end!important}.align-items-lg-center{align-items:center!important}.align-items-lg-baseline{align-items:baseline!important}.align-items-lg-stretch{align-items:stretch!important}.align-content-lg-start{align-content:flex-start!important}.align-content-lg-end{align-content:flex-end!important}.align-content-lg-center{align-content:center!important}.align-content-lg-between{align-content:space-between!important}.align-content-lg-around{align-content:space-around!important}.align-content-lg-stretch{align-content:stretch!important}.align-self-lg-auto{align-self:auto!important}.align-self-lg-start{align-self:flex-start!important}.align-self-lg-end{align-self:flex-end!important}.align-self-lg-center{align-self:center!important}.align-self-lg-baseline{align-self:baseline!important}.align-self-lg-stretch{align-self:stretch!important}.order-lg-first{order:-1!important}.order-lg-0{order:0!important}.order-lg-1{order:1!important}.order-lg-2{order:2!important}.order-lg-3{order:3!important}.order-lg-4{order:4!important}.order-lg-5{order:5!important}.order-lg-last{order:6!important}.m-lg-0{margin:0!important}.m-lg-1{margin:.25rem!important}.m-lg-2{margin:.5rem!important}.m-lg-3{margin:1rem!important}.m-lg-4{margin:1.5rem!important}.m-lg-5{margin:3rem!important}.m-lg-auto{margin:auto!important}.mx-lg-0{margin-right:0!important;margin-left:0!important}.mx-lg-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-lg-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-lg-3{margin-right:1rem!important;margin-left:1rem!important}.mx-lg-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-lg-5{margin-right:3rem!important;margin-left:3rem!important}.mx-lg-auto{margin-right:auto!important;margin-left:auto!important}.my-lg-0{margin-top:0!important;margin-bottom:0!important}.my-lg-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-lg-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-lg-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-lg-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-lg-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-lg-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-lg-0{margin-top:0!important}.mt-lg-1{margin-top:.25rem!important}.mt-lg-2{margin-top:.5rem!important}.mt-lg-3{margin-top:1rem!important}.mt-lg-4{margin-top:1.5rem!important}.mt-lg-5{margin-top:3rem!important}.mt-lg-auto{margin-top:auto!important}.me-lg-0{margin-right:0!important}.me-lg-1{margin-right:.25rem!important}.me-lg-2{margin-right:.5rem!important}.me-lg-3{margin-right:1rem!important}.me-lg-4{margin-right:1.5rem!important}.me-lg-5{margin-right:3rem!important}.me-lg-auto{margin-right:auto!important}.mb-lg-0{margin-bottom:0!important}.mb-lg-1{margin-bottom:.25rem!important}.mb-lg-2{margin-bottom:.5rem!important}.mb-lg-3{margin-bottom:1rem!important}.mb-lg-4{margin-bottom:1.5rem!important}.mb-lg-5{margin-bottom:3rem!important}.mb-lg-auto{margin-bottom:auto!important}.ms-lg-0{margin-left:0!important}.ms-lg-1{margin-left:.25rem!important}.ms-lg-2{margin-left:.5rem!important}.ms-lg-3{margin-left:1rem!important}.ms-lg-4{margin-left:1.5rem!important}.ms-lg-5{margin-left:3rem!important}.ms-lg-auto{margin-left:auto!important}.p-lg-0{padding:0!important}.p-lg-1{padding:.25rem!important}.p-lg-2{padding:.5rem!important}.p-lg-3{padding:1rem!important}.p-lg-4{padding:1.5rem!important}.p-lg-5{padding:3rem!important}.px-lg-0{padding-right:0!important;padding-left:0!important}.px-lg-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-lg-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-lg-3{padding-right:1rem!important;padding-left:1rem!important}.px-lg-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-lg-5{padding-right:3rem!important;padding-left:3rem!important}.py-lg-0{padding-top:0!important;padding-bottom:0!important}.py-lg-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-lg-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-lg-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-lg-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-lg-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-lg-0{padding-top:0!important}.pt-lg-1{padding-top:.25rem!important}.pt-lg-2{padding-top:.5rem!important}.pt-lg-3{padding-top:1rem!important}.pt-lg-4{padding-top:1.5rem!important}.pt-lg-5{padding-top:3rem!important}.pe-lg-0{padding-right:0!important}.pe-lg-1{padding-right:.25rem!important}.pe-lg-2{padding-right:.5rem!important}.pe-lg-3{padding-right:1rem!important}.pe-lg-4{padding-right:1.5rem!important}.pe-lg-5{padding-right:3rem!important}.pb-lg-0{padding-bottom:0!important}.pb-lg-1{padding-bottom:.25rem!important}.pb-lg-2{padding-bottom:.5rem!important}.pb-lg-3{padding-bottom:1rem!important}.pb-lg-4{padding-bottom:1.5rem!important}.pb-lg-5{padding-bottom:3rem!important}.ps-lg-0{padding-left:0!important}.ps-lg-1{padding-left:.25rem!important}.ps-lg-2{padding-left:.5rem!important}.ps-lg-3{padding-left:1rem!important}.ps-lg-4{padding-left:1.5rem!important}.ps-lg-5{padding-left:3rem!important}.gap-lg-0{gap:0!important}.gap-lg-1{gap:.25rem!important}.gap-lg-2{gap:.5rem!important}.gap-lg-3{gap:1rem!important}.gap-lg-4{gap:1.5rem!important}.gap-lg-5{gap:3rem!important}.row-gap-lg-0{row-gap:0!important}.row-gap-lg-1{row-gap:.25rem!important}.row-gap-lg-2{row-gap:.5rem!important}.row-gap-lg-3{row-gap:1rem!important}.row-gap-lg-4{row-gap:1.5rem!important}.row-gap-lg-5{row-gap:3rem!important}.column-gap-lg-0{-moz-column-gap:0!important;column-gap:0!important}.column-gap-lg-1{-moz-column-gap:0.25rem!important;column-gap:.25rem!important}.column-gap-lg-2{-moz-column-gap:0.5rem!important;column-gap:.5rem!important}.column-gap-lg-3{-moz-column-gap:1rem!important;column-gap:1rem!important}.column-gap-lg-4{-moz-column-gap:1.5rem!important;column-gap:1.5rem!important}.column-gap-lg-5{-moz-column-gap:3rem!important;column-gap:3rem!important}.text-lg-start{text-align:left!important}.text-lg-end{text-align:right!important}.text-lg-center{text-align:center!important}}@media (min-width:1200px){.float-xl-start{float:left!important}.float-xl-end{float:right!important}.float-xl-none{float:none!important}.object-fit-xl-contain{-o-object-fit:contain!important;object-fit:contain!important}.object-fit-xl-cover{-o-object-fit:cover!important;object-fit:cover!important}.object-fit-xl-fill{-o-object-fit:fill!important;object-fit:fill!important}.object-fit-xl-scale{-o-object-fit:scale-down!important;object-fit:scale-down!important}.object-fit-xl-none{-o-object-fit:none!important;object-fit:none!important}.d-xl-inline{display:inline!important}.d-xl-inline-block{display:inline-block!important}.d-xl-block{display:block!important}.d-xl-grid{display:grid!important}.d-xl-inline-grid{display:inline-grid!important}.d-xl-table{display:table!important}.d-xl-table-row{display:table-row!important}.d-xl-table-cell{display:table-cell!important}.d-xl-flex{display:flex!important}.d-xl-inline-flex{display:inline-flex!important}.d-xl-none{display:none!important}.flex-xl-fill{flex:1 1 auto!important}.flex-xl-row{flex-direction:row!important}.flex-xl-column{flex-direction:column!important}.flex-xl-row-reverse{flex-direction:row-reverse!important}.flex-xl-column-reverse{flex-direction:column-reverse!important}.flex-xl-grow-0{flex-grow:0!important}.flex-xl-grow-1{flex-grow:1!important}.flex-xl-shrink-0{flex-shrink:0!important}.flex-xl-shrink-1{flex-shrink:1!important}.flex-xl-wrap{flex-wrap:wrap!important}.flex-xl-nowrap{flex-wrap:nowrap!important}.flex-xl-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-xl-start{justify-content:flex-start!important}.justify-content-xl-end{justify-content:flex-end!important}.justify-content-xl-center{justify-content:center!important}.justify-content-xl-between{justify-content:space-between!important}.justify-content-xl-around{justify-content:space-around!important}.justify-content-xl-evenly{justify-content:space-evenly!important}.align-items-xl-start{align-items:flex-start!important}.align-items-xl-end{align-items:flex-end!important}.align-items-xl-center{align-items:center!important}.align-items-xl-baseline{align-items:baseline!important}.align-items-xl-stretch{align-items:stretch!important}.align-content-xl-start{align-content:flex-start!important}.align-content-xl-end{align-content:flex-end!important}.align-content-xl-center{align-content:center!important}.align-content-xl-between{align-content:space-between!important}.align-content-xl-around{align-content:space-around!important}.align-content-xl-stretch{align-content:stretch!important}.align-self-xl-auto{align-self:auto!important}.align-self-xl-start{align-self:flex-start!important}.align-self-xl-end{align-self:flex-end!important}.align-self-xl-center{align-self:center!important}.align-self-xl-baseline{align-self:baseline!important}.align-self-xl-stretch{align-self:stretch!important}.order-xl-first{order:-1!important}.order-xl-0{order:0!important}.order-xl-1{order:1!important}.order-xl-2{order:2!important}.order-xl-3{order:3!important}.order-xl-4{order:4!important}.order-xl-5{order:5!important}.order-xl-last{order:6!important}.m-xl-0{margin:0!important}.m-xl-1{margin:.25rem!important}.m-xl-2{margin:.5rem!important}.m-xl-3{margin:1rem!important}.m-xl-4{margin:1.5rem!important}.m-xl-5{margin:3rem!important}.m-xl-auto{margin:auto!important}.mx-xl-0{margin-right:0!important;margin-left:0!important}.mx-xl-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-xl-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-xl-3{margin-right:1rem!important;margin-left:1rem!important}.mx-xl-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-xl-5{margin-right:3rem!important;margin-left:3rem!important}.mx-xl-auto{margin-right:auto!important;margin-left:auto!important}.my-xl-0{margin-top:0!important;margin-bottom:0!important}.my-xl-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-xl-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-xl-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-xl-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-xl-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-xl-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-xl-0{margin-top:0!important}.mt-xl-1{margin-top:.25rem!important}.mt-xl-2{margin-top:.5rem!important}.mt-xl-3{margin-top:1rem!important}.mt-xl-4{margin-top:1.5rem!important}.mt-xl-5{margin-top:3rem!important}.mt-xl-auto{margin-top:auto!important}.me-xl-0{margin-right:0!important}.me-xl-1{margin-right:.25rem!important}.me-xl-2{margin-right:.5rem!important}.me-xl-3{margin-right:1rem!important}.me-xl-4{margin-right:1.5rem!important}.me-xl-5{margin-right:3rem!important}.me-xl-auto{margin-right:auto!important}.mb-xl-0{margin-bottom:0!important}.mb-xl-1{margin-bottom:.25rem!important}.mb-xl-2{margin-bottom:.5rem!important}.mb-xl-3{margin-bottom:1rem!important}.mb-xl-4{margin-bottom:1.5rem!important}.mb-xl-5{margin-bottom:3rem!important}.mb-xl-auto{margin-bottom:auto!important}.ms-xl-0{margin-left:0!important}.ms-xl-1{margin-left:.25rem!important}.ms-xl-2{margin-left:.5rem!important}.ms-xl-3{margin-left:1rem!important}.ms-xl-4{margin-left:1.5rem!important}.ms-xl-5{margin-left:3rem!important}.ms-xl-auto{margin-left:auto!important}.p-xl-0{padding:0!important}.p-xl-1{padding:.25rem!important}.p-xl-2{padding:.5rem!important}.p-xl-3{padding:1rem!important}.p-xl-4{padding:1.5rem!important}.p-xl-5{padding:3rem!important}.px-xl-0{padding-right:0!important;padding-left:0!important}.px-xl-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-xl-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-xl-3{padding-right:1rem!important;padding-left:1rem!important}.px-xl-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-xl-5{padding-right:3rem!important;padding-left:3rem!important}.py-xl-0{padding-top:0!important;padding-bottom:0!important}.py-xl-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-xl-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-xl-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-xl-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-xl-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-xl-0{padding-top:0!important}.pt-xl-1{padding-top:.25rem!important}.pt-xl-2{padding-top:.5rem!important}.pt-xl-3{padding-top:1rem!important}.pt-xl-4{padding-top:1.5rem!important}.pt-xl-5{padding-top:3rem!important}.pe-xl-0{padding-right:0!important}.pe-xl-1{padding-right:.25rem!important}.pe-xl-2{padding-right:.5rem!important}.pe-xl-3{padding-right:1rem!important}.pe-xl-4{padding-right:1.5rem!important}.pe-xl-5{padding-right:3rem!important}.pb-xl-0{padding-bottom:0!important}.pb-xl-1{padding-bottom:.25rem!important}.pb-xl-2{padding-bottom:.5rem!important}.pb-xl-3{padding-bottom:1rem!important}.pb-xl-4{padding-bottom:1.5rem!important}.pb-xl-5{padding-bottom:3rem!important}.ps-xl-0{padding-left:0!important}.ps-xl-1{padding-left:.25rem!important}.ps-xl-2{padding-left:.5rem!important}.ps-xl-3{padding-left:1rem!important}.ps-xl-4{padding-left:1.5rem!important}.ps-xl-5{padding-left:3rem!important}.gap-xl-0{gap:0!important}.gap-xl-1{gap:.25rem!important}.gap-xl-2{gap:.5rem!important}.gap-xl-3{gap:1rem!important}.gap-xl-4{gap:1.5rem!important}.gap-xl-5{gap:3rem!important}.row-gap-xl-0{row-gap:0!important}.row-gap-xl-1{row-gap:.25rem!important}.row-gap-xl-2{row-gap:.5rem!important}.row-gap-xl-3{row-gap:1rem!important}.row-gap-xl-4{row-gap:1.5rem!important}.row-gap-xl-5{row-gap:3rem!important}.column-gap-xl-0{-moz-column-gap:0!important;column-gap:0!important}.column-gap-xl-1{-moz-column-gap:0.25rem!important;column-gap:.25rem!important}.column-gap-xl-2{-moz-column-gap:0.5rem!important;column-gap:.5rem!important}.column-gap-xl-3{-moz-column-gap:1rem!important;column-gap:1rem!important}.column-gap-xl-4{-moz-column-gap:1.5rem!important;column-gap:1.5rem!important}.column-gap-xl-5{-moz-column-gap:3rem!important;column-gap:3rem!important}.text-xl-start{text-align:left!important}.text-xl-end{text-align:right!important}.text-xl-center{text-align:center!important}}@media (min-width:1400px){.float-xxl-start{float:left!important}.float-xxl-end{float:right!important}.float-xxl-none{float:none!important}.object-fit-xxl-contain{-o-object-fit:contain!important;object-fit:contain!important}.object-fit-xxl-cover{-o-object-fit:cover!important;object-fit:cover!important}.object-fit-xxl-fill{-o-object-fit:fill!important;object-fit:fill!important}.object-fit-xxl-scale{-o-object-fit:scale-down!important;object-fit:scale-down!important}.object-fit-xxl-none{-o-object-fit:none!important;object-fit:none!important}.d-xxl-inline{display:inline!important}.d-xxl-inline-block{display:inline-block!important}.d-xxl-block{display:block!important}.d-xxl-grid{display:grid!important}.d-xxl-inline-grid{display:inline-grid!important}.d-xxl-table{display:table!important}.d-xxl-table-row{display:table-row!important}.d-xxl-table-cell{display:table-cell!important}.d-xxl-flex{display:flex!important}.d-xxl-inline-flex{display:inline-flex!important}.d-xxl-none{display:none!important}.flex-xxl-fill{flex:1 1 auto!important}.flex-xxl-row{flex-direction:row!important}.flex-xxl-column{flex-direction:column!important}.flex-xxl-row-reverse{flex-direction:row-reverse!important}.flex-xxl-column-reverse{flex-direction:column-reverse!important}.flex-xxl-grow-0{flex-grow:0!important}.flex-xxl-grow-1{flex-grow:1!important}.flex-xxl-shrink-0{flex-shrink:0!important}.flex-xxl-shrink-1{flex-shrink:1!important}.flex-xxl-wrap{flex-wrap:wrap!important}.flex-xxl-nowrap{flex-wrap:nowrap!important}.flex-xxl-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-xxl-start{justify-content:flex-start!important}.justify-content-xxl-end{justify-content:flex-end!important}.justify-content-xxl-center{justify-content:center!important}.justify-content-xxl-between{justify-content:space-between!important}.justify-content-xxl-around{justify-content:space-around!important}.justify-content-xxl-evenly{justify-content:space-evenly!important}.align-items-xxl-start{align-items:flex-start!important}.align-items-xxl-end{align-items:flex-end!important}.align-items-xxl-center{align-items:center!important}.align-items-xxl-baseline{align-items:baseline!important}.align-items-xxl-stretch{align-items:stretch!important}.align-content-xxl-start{align-content:flex-start!important}.align-content-xxl-end{align-content:flex-end!important}.align-content-xxl-center{align-content:center!important}.align-content-xxl-between{align-content:space-between!important}.align-content-xxl-around{align-content:space-around!important}.align-content-xxl-stretch{align-content:stretch!important}.align-self-xxl-auto{align-self:auto!important}.align-self-xxl-start{align-self:flex-start!important}.align-self-xxl-end{align-self:flex-end!important}.align-self-xxl-center{align-self:center!important}.align-self-xxl-baseline{align-self:baseline!important}.align-self-xxl-stretch{align-self:stretch!important}.order-xxl-first{order:-1!important}.order-xxl-0{order:0!important}.order-xxl-1{order:1!important}.order-xxl-2{order:2!important}.order-xxl-3{order:3!important}.order-xxl-4{order:4!important}.order-xxl-5{order:5!important}.order-xxl-last{order:6!important}.m-xxl-0{margin:0!important}.m-xxl-1{margin:.25rem!important}.m-xxl-2{margin:.5rem!important}.m-xxl-3{margin:1rem!important}.m-xxl-4{margin:1.5rem!important}.m-xxl-5{margin:3rem!important}.m-xxl-auto{margin:auto!important}.mx-xxl-0{margin-right:0!important;margin-left:0!important}.mx-xxl-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-xxl-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-xxl-3{margin-right:1rem!important;margin-left:1rem!important}.mx-xxl-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-xxl-5{margin-right:3rem!important;margin-left:3rem!important}.mx-xxl-auto{margin-right:auto!important;margin-left:auto!important}.my-xxl-0{margin-top:0!important;margin-bottom:0!important}.my-xxl-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-xxl-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-xxl-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-xxl-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-xxl-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-xxl-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-xxl-0{margin-top:0!important}.mt-xxl-1{margin-top:.25rem!important}.mt-xxl-2{margin-top:.5rem!important}.mt-xxl-3{margin-top:1rem!important}.mt-xxl-4{margin-top:1.5rem!important}.mt-xxl-5{margin-top:3rem!important}.mt-xxl-auto{margin-top:auto!important}.me-xxl-0{margin-right:0!important}.me-xxl-1{margin-right:.25rem!important}.me-xxl-2{margin-right:.5rem!important}.me-xxl-3{margin-right:1rem!important}.me-xxl-4{margin-right:1.5rem!important}.me-xxl-5{margin-right:3rem!important}.me-xxl-auto{margin-right:auto!important}.mb-xxl-0{margin-bottom:0!important}.mb-xxl-1{margin-bottom:.25rem!important}.mb-xxl-2{margin-bottom:.5rem!important}.mb-xxl-3{margin-bottom:1rem!important}.mb-xxl-4{margin-bottom:1.5rem!important}.mb-xxl-5{margin-bottom:3rem!important}.mb-xxl-auto{margin-bottom:auto!important}.ms-xxl-0{margin-left:0!important}.ms-xxl-1{margin-left:.25rem!important}.ms-xxl-2{margin-left:.5rem!important}.ms-xxl-3{margin-left:1rem!important}.ms-xxl-4{margin-left:1.5rem!important}.ms-xxl-5{margin-left:3rem!important}.ms-xxl-auto{margin-left:auto!important}.p-xxl-0{padding:0!important}.p-xxl-1{padding:.25rem!important}.p-xxl-2{padding:.5rem!important}.p-xxl-3{padding:1rem!important}.p-xxl-4{padding:1.5rem!important}.p-xxl-5{padding:3rem!important}.px-xxl-0{padding-right:0!important;padding-left:0!important}.px-xxl-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-xxl-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-xxl-3{padding-right:1rem!important;padding-left:1rem!important}.px-xxl-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-xxl-5{padding-right:3rem!important;padding-left:3rem!important}.py-xxl-0{padding-top:0!important;padding-bottom:0!important}.py-xxl-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-xxl-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-xxl-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-xxl-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-xxl-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-xxl-0{padding-top:0!important}.pt-xxl-1{padding-top:.25rem!important}.pt-xxl-2{padding-top:.5rem!important}.pt-xxl-3{padding-top:1rem!important}.pt-xxl-4{padding-top:1.5rem!important}.pt-xxl-5{padding-top:3rem!important}.pe-xxl-0{padding-right:0!important}.pe-xxl-1{padding-right:.25rem!important}.pe-xxl-2{padding-right:.5rem!important}.pe-xxl-3{padding-right:1rem!important}.pe-xxl-4{padding-right:1.5rem!important}.pe-xxl-5{padding-right:3rem!important}.pb-xxl-0{padding-bottom:0!important}.pb-xxl-1{padding-bottom:.25rem!important}.pb-xxl-2{padding-bottom:.5rem!important}.pb-xxl-3{padding-bottom:1rem!important}.pb-xxl-4{padding-bottom:1.5rem!important}.pb-xxl-5{padding-bottom:3rem!important}.ps-xxl-0{padding-left:0!important}.ps-xxl-1{padding-left:.25rem!important}.ps-xxl-2{padding-left:.5rem!important}.ps-xxl-3{padding-left:1rem!important}.ps-xxl-4{padding-left:1.5rem!important}.ps-xxl-5{padding-left:3rem!important}.gap-xxl-0{gap:0!important}.gap-xxl-1{gap:.25rem!important}.gap-xxl-2{gap:.5rem!important}.gap-xxl-3{gap:1rem!important}.gap-xxl-4{gap:1.5rem!important}.gap-xxl-5{gap:3rem!important}.row-gap-xxl-0{row-gap:0!important}.row-gap-xxl-1{row-gap:.25rem!important}.row-gap-xxl-2{row-gap:.5rem!important}.row-gap-xxl-3{row-gap:1rem!important}.row-gap-xxl-4{row-gap:1.5rem!important}.row-gap-xxl-5{row-gap:3rem!important}.column-gap-xxl-0{-moz-column-gap:0!important;column-gap:0!important}.column-gap-xxl-1{-moz-column-gap:0.25rem!important;column-gap:.25rem!important}.column-gap-xxl-2{-moz-column-gap:0.5rem!important;column-gap:.5rem!important}.column-gap-xxl-3{-moz-column-gap:1rem!important;column-gap:1rem!important}.column-gap-xxl-4{-moz-column-gap:1.5rem!important;column-gap:1.5rem!important}.column-gap-xxl-5{-moz-column-gap:3rem!important;column-gap:3rem!important}.text-xxl-start{text-align:left!important}.text-xxl-end{text-align:right!important}.text-xxl-center{text-align:center!important}}@media (min-width:1200px){.fs-1{font-size:2.5rem!important}.fs-2{font-size:2rem!important}.fs-3{font-size:1.75rem!important}.fs-4{font-size:1.5rem!important}}@media print{.d-print-inline{display:inline!important}.d-print-inline-block{display:inline-block!important}.d-print-block{display:block!important}.d-print-grid{display:grid!important}.d-print-inline-grid{display:inline-grid!important}.d-print-table{display:table!important}.d-print-table-row{display:table-row!important}.d-print-table-cell{display:table-cell!important}.d-print-flex{display:flex!important}.d-print-inline-flex{display:inline-flex!important}.d-print-none{display:none!important}} +/*# sourceMappingURL=bootstrap.min.css.map */ \ No newline at end of file diff --git a/source/main/web/bootstrap.js b/source/main/web/bootstrap.js new file mode 100644 index 00000000..0b873693 --- /dev/null +++ b/source/main/web/bootstrap.js @@ -0,0 +1,7 @@ +/*! + * Bootstrap v5.3.8 (https://getbootstrap.com/) + * Copyright 2011-2025 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors) + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + */ +!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t="undefined"!=typeof globalThis?globalThis:t||self).bootstrap=e()}(this,function(){"use strict";const t=new Map,e={set(e,i,n){t.has(e)||t.set(e,new Map);const s=t.get(e);s.has(i)||0===s.size?s.set(i,n):console.error(`Bootstrap doesn't allow more than one instance per element. Bound instance: ${Array.from(s.keys())[0]}.`)},get:(e,i)=>t.has(e)&&t.get(e).get(i)||null,remove(e,i){if(!t.has(e))return;const n=t.get(e);n.delete(i),0===n.size&&t.delete(e)}},i="transitionend",n=t=>(t&&window.CSS&&window.CSS.escape&&(t=t.replace(/#([^\s"#']+)/g,(t,e)=>`#${CSS.escape(e)}`)),t),s=t=>null==t?`${t}`:Object.prototype.toString.call(t).match(/\s([a-z]+)/i)[1].toLowerCase(),o=t=>{t.dispatchEvent(new Event(i))},r=t=>!(!t||"object"!=typeof t)&&(void 0!==t.jquery&&(t=t[0]),void 0!==t.nodeType),a=t=>r(t)?t.jquery?t[0]:t:"string"==typeof t&&t.length>0?document.querySelector(n(t)):null,l=t=>{if(!r(t)||0===t.getClientRects().length)return!1;const e="visible"===getComputedStyle(t).getPropertyValue("visibility"),i=t.closest("details:not([open])");if(!i)return e;if(i!==t){const e=t.closest("summary");if(e&&e.parentNode!==i)return!1;if(null===e)return!1}return e},c=t=>!t||t.nodeType!==Node.ELEMENT_NODE||!!t.classList.contains("disabled")||(void 0!==t.disabled?t.disabled:t.hasAttribute("disabled")&&"false"!==t.getAttribute("disabled")),h=t=>{if(!document.documentElement.attachShadow)return null;if("function"==typeof t.getRootNode){const e=t.getRootNode();return e instanceof ShadowRoot?e:null}return t instanceof ShadowRoot?t:t.parentNode?h(t.parentNode):null},d=()=>{},u=t=>{t.offsetHeight},f=()=>window.jQuery&&!document.body.hasAttribute("data-bs-no-jquery")?window.jQuery:null,p=[],m=()=>"rtl"===document.documentElement.dir,g=t=>{var e;e=()=>{const e=f();if(e){const i=t.NAME,n=e.fn[i];e.fn[i]=t.jQueryInterface,e.fn[i].Constructor=t,e.fn[i].noConflict=()=>(e.fn[i]=n,t.jQueryInterface)}},"loading"===document.readyState?(p.length||document.addEventListener("DOMContentLoaded",()=>{for(const t of p)t()}),p.push(e)):e()},_=(t,e=[],i=t)=>"function"==typeof t?t.call(...e):i,b=(t,e,n=!0)=>{if(!n)return void _(t);const s=(t=>{if(!t)return 0;let{transitionDuration:e,transitionDelay:i}=window.getComputedStyle(t);const n=Number.parseFloat(e),s=Number.parseFloat(i);return n||s?(e=e.split(",")[0],i=i.split(",")[0],1e3*(Number.parseFloat(e)+Number.parseFloat(i))):0})(e)+5;let r=!1;const a=({target:n})=>{n===e&&(r=!0,e.removeEventListener(i,a),_(t))};e.addEventListener(i,a),setTimeout(()=>{r||o(e)},s)},v=(t,e,i,n)=>{const s=t.length;let o=t.indexOf(e);return-1===o?!i&&n?t[s-1]:t[0]:(o+=i?1:-1,n&&(o=(o+s)%s),t[Math.max(0,Math.min(o,s-1))])},y=/[^.]*(?=\..*)\.|.*/,w=/\..*/,A=/::\d+$/,E={};let T=1;const C={mouseenter:"mouseover",mouseleave:"mouseout"},O=new Set(["click","dblclick","mouseup","mousedown","contextmenu","mousewheel","DOMMouseScroll","mouseover","mouseout","mousemove","selectstart","selectend","keydown","keypress","keyup","orientationchange","touchstart","touchmove","touchend","touchcancel","pointerdown","pointermove","pointerup","pointerleave","pointercancel","gesturestart","gesturechange","gestureend","focus","blur","change","reset","select","submit","focusin","focusout","load","unload","beforeunload","resize","move","DOMContentLoaded","readystatechange","error","abort","scroll"]);function x(t,e){return e&&`${e}::${T++}`||t.uidEvent||T++}function k(t){const e=x(t);return t.uidEvent=e,E[e]=E[e]||{},E[e]}function L(t,e,i=null){return Object.values(t).find(t=>t.callable===e&&t.delegationSelector===i)}function S(t,e,i){const n="string"==typeof e,s=n?i:e||i;let o=N(t);return O.has(o)||(o=t),[n,s,o]}function D(t,e,i,n,s){if("string"!=typeof e||!t)return;let[o,r,a]=S(e,i,n);if(e in C){const t=t=>function(e){if(!e.relatedTarget||e.relatedTarget!==e.delegateTarget&&!e.delegateTarget.contains(e.relatedTarget))return t.call(this,e)};r=t(r)}const l=k(t),c=l[a]||(l[a]={}),h=L(c,r,o?i:null);if(h)return void(h.oneOff=h.oneOff&&s);const d=x(r,e.replace(y,"")),u=o?function(t,e,i){return function n(s){const o=t.querySelectorAll(e);for(let{target:r}=s;r&&r!==this;r=r.parentNode)for(const a of o)if(a===r)return j(s,{delegateTarget:r}),n.oneOff&&P.off(t,s.type,e,i),i.apply(r,[s])}}(t,i,r):function(t,e){return function i(n){return j(n,{delegateTarget:t}),i.oneOff&&P.off(t,n.type,e),e.apply(t,[n])}}(t,r);u.delegationSelector=o?i:null,u.callable=r,u.oneOff=s,u.uidEvent=d,c[d]=u,t.addEventListener(a,u,o)}function $(t,e,i,n,s){const o=L(e[i],n,s);o&&(t.removeEventListener(i,o,Boolean(s)),delete e[i][o.uidEvent])}function I(t,e,i,n){const s=e[i]||{};for(const[o,r]of Object.entries(s))o.includes(n)&&$(t,e,i,r.callable,r.delegationSelector)}function N(t){return t=t.replace(w,""),C[t]||t}const P={on(t,e,i,n){D(t,e,i,n,!1)},one(t,e,i,n){D(t,e,i,n,!0)},off(t,e,i,n){if("string"!=typeof e||!t)return;const[s,o,r]=S(e,i,n),a=r!==e,l=k(t),c=l[r]||{},h=e.startsWith(".");if(void 0===o){if(h)for(const i of Object.keys(l))I(t,l,i,e.slice(1));for(const[i,n]of Object.entries(c)){const s=i.replace(A,"");a&&!e.includes(s)||$(t,l,r,n.callable,n.delegationSelector)}}else{if(!Object.keys(c).length)return;$(t,l,r,o,s?i:null)}},trigger(t,e,i){if("string"!=typeof e||!t)return null;const n=f();let s=null,o=!0,r=!0,a=!1;e!==N(e)&&n&&(s=n.Event(e,i),n(t).trigger(s),o=!s.isPropagationStopped(),r=!s.isImmediatePropagationStopped(),a=s.isDefaultPrevented());const l=j(new Event(e,{bubbles:o,cancelable:!0}),i);return a&&l.preventDefault(),r&&t.dispatchEvent(l),l.defaultPrevented&&s&&s.preventDefault(),l}};function j(t,e={}){for(const[i,n]of Object.entries(e))try{t[i]=n}catch(e){Object.defineProperty(t,i,{configurable:!0,get:()=>n})}return t}function M(t){if("true"===t)return!0;if("false"===t)return!1;if(t===Number(t).toString())return Number(t);if(""===t||"null"===t)return null;if("string"!=typeof t)return t;try{return JSON.parse(decodeURIComponent(t))}catch(e){return t}}function F(t){return t.replace(/[A-Z]/g,t=>`-${t.toLowerCase()}`)}const H={setDataAttribute(t,e,i){t.setAttribute(`data-bs-${F(e)}`,i)},removeDataAttribute(t,e){t.removeAttribute(`data-bs-${F(e)}`)},getDataAttributes(t){if(!t)return{};const e={},i=Object.keys(t.dataset).filter(t=>t.startsWith("bs")&&!t.startsWith("bsConfig"));for(const n of i){let i=n.replace(/^bs/,"");i=i.charAt(0).toLowerCase()+i.slice(1),e[i]=M(t.dataset[n])}return e},getDataAttribute:(t,e)=>M(t.getAttribute(`data-bs-${F(e)}`))};class W{static get Default(){return{}}static get DefaultType(){return{}}static get NAME(){throw new Error('You have to implement the static method "NAME", for each component!')}_getConfig(t){return t=this._mergeConfigObj(t),t=this._configAfterMerge(t),this._typeCheckConfig(t),t}_configAfterMerge(t){return t}_mergeConfigObj(t,e){const i=r(e)?H.getDataAttribute(e,"config"):{};return{...this.constructor.Default,..."object"==typeof i?i:{},...r(e)?H.getDataAttributes(e):{},..."object"==typeof t?t:{}}}_typeCheckConfig(t,e=this.constructor.DefaultType){for(const[i,n]of Object.entries(e)){const e=t[i],o=r(e)?"element":s(e);if(!new RegExp(n).test(o))throw new TypeError(`${this.constructor.NAME.toUpperCase()}: Option "${i}" provided type "${o}" but expected type "${n}".`)}}}class B extends W{constructor(t,i){super(),(t=a(t))&&(this._element=t,this._config=this._getConfig(i),e.set(this._element,this.constructor.DATA_KEY,this))}dispose(){e.remove(this._element,this.constructor.DATA_KEY),P.off(this._element,this.constructor.EVENT_KEY);for(const t of Object.getOwnPropertyNames(this))this[t]=null}_queueCallback(t,e,i=!0){b(t,e,i)}_getConfig(t){return t=this._mergeConfigObj(t,this._element),t=this._configAfterMerge(t),this._typeCheckConfig(t),t}static getInstance(t){return e.get(a(t),this.DATA_KEY)}static getOrCreateInstance(t,e={}){return this.getInstance(t)||new this(t,"object"==typeof e?e:null)}static get VERSION(){return"5.3.8"}static get DATA_KEY(){return`bs.${this.NAME}`}static get EVENT_KEY(){return`.${this.DATA_KEY}`}static eventName(t){return`${t}${this.EVENT_KEY}`}}const z=t=>{let e=t.getAttribute("data-bs-target");if(!e||"#"===e){let i=t.getAttribute("href");if(!i||!i.includes("#")&&!i.startsWith("."))return null;i.includes("#")&&!i.startsWith("#")&&(i=`#${i.split("#")[1]}`),e=i&&"#"!==i?i.trim():null}return e?e.split(",").map(t=>n(t)).join(","):null},R={find:(t,e=document.documentElement)=>[].concat(...Element.prototype.querySelectorAll.call(e,t)),findOne:(t,e=document.documentElement)=>Element.prototype.querySelector.call(e,t),children:(t,e)=>[].concat(...t.children).filter(t=>t.matches(e)),parents(t,e){const i=[];let n=t.parentNode.closest(e);for(;n;)i.push(n),n=n.parentNode.closest(e);return i},prev(t,e){let i=t.previousElementSibling;for(;i;){if(i.matches(e))return[i];i=i.previousElementSibling}return[]},next(t,e){let i=t.nextElementSibling;for(;i;){if(i.matches(e))return[i];i=i.nextElementSibling}return[]},focusableChildren(t){const e=["a","button","input","textarea","select","details","[tabindex]",'[contenteditable="true"]'].map(t=>`${t}:not([tabindex^="-"])`).join(",");return this.find(e,t).filter(t=>!c(t)&&l(t))},getSelectorFromElement(t){const e=z(t);return e&&R.findOne(e)?e:null},getElementFromSelector(t){const e=z(t);return e?R.findOne(e):null},getMultipleElementsFromSelector(t){const e=z(t);return e?R.find(e):[]}},q=(t,e="hide")=>{const i=`click.dismiss${t.EVENT_KEY}`,n=t.NAME;P.on(document,i,`[data-bs-dismiss="${n}"]`,function(i){if(["A","AREA"].includes(this.tagName)&&i.preventDefault(),c(this))return;const s=R.getElementFromSelector(this)||this.closest(`.${n}`);t.getOrCreateInstance(s)[e]()})},V=".bs.alert",K=`close${V}`,Q=`closed${V}`;class X extends B{static get NAME(){return"alert"}close(){if(P.trigger(this._element,K).defaultPrevented)return;this._element.classList.remove("show");const t=this._element.classList.contains("fade");this._queueCallback(()=>this._destroyElement(),this._element,t)}_destroyElement(){this._element.remove(),P.trigger(this._element,Q),this.dispose()}static jQueryInterface(t){return this.each(function(){const e=X.getOrCreateInstance(this);if("string"==typeof t){if(void 0===e[t]||t.startsWith("_")||"constructor"===t)throw new TypeError(`No method named "${t}"`);e[t](this)}})}}q(X,"close"),g(X);const Y='[data-bs-toggle="button"]';class U extends B{static get NAME(){return"button"}toggle(){this._element.setAttribute("aria-pressed",this._element.classList.toggle("active"))}static jQueryInterface(t){return this.each(function(){const e=U.getOrCreateInstance(this);"toggle"===t&&e[t]()})}}P.on(document,"click.bs.button.data-api",Y,t=>{t.preventDefault();const e=t.target.closest(Y);U.getOrCreateInstance(e).toggle()}),g(U);const G=".bs.swipe",J=`touchstart${G}`,Z=`touchmove${G}`,tt=`touchend${G}`,et=`pointerdown${G}`,it=`pointerup${G}`,nt={endCallback:null,leftCallback:null,rightCallback:null},st={endCallback:"(function|null)",leftCallback:"(function|null)",rightCallback:"(function|null)"};class ot extends W{constructor(t,e){super(),this._element=t,t&&ot.isSupported()&&(this._config=this._getConfig(e),this._deltaX=0,this._supportPointerEvents=Boolean(window.PointerEvent),this._initEvents())}static get Default(){return nt}static get DefaultType(){return st}static get NAME(){return"swipe"}dispose(){P.off(this._element,G)}_start(t){this._supportPointerEvents?this._eventIsPointerPenTouch(t)&&(this._deltaX=t.clientX):this._deltaX=t.touches[0].clientX}_end(t){this._eventIsPointerPenTouch(t)&&(this._deltaX=t.clientX-this._deltaX),this._handleSwipe(),_(this._config.endCallback)}_move(t){this._deltaX=t.touches&&t.touches.length>1?0:t.touches[0].clientX-this._deltaX}_handleSwipe(){const t=Math.abs(this._deltaX);if(t<=40)return;const e=t/this._deltaX;this._deltaX=0,e&&_(e>0?this._config.rightCallback:this._config.leftCallback)}_initEvents(){this._supportPointerEvents?(P.on(this._element,et,t=>this._start(t)),P.on(this._element,it,t=>this._end(t)),this._element.classList.add("pointer-event")):(P.on(this._element,J,t=>this._start(t)),P.on(this._element,Z,t=>this._move(t)),P.on(this._element,tt,t=>this._end(t)))}_eventIsPointerPenTouch(t){return this._supportPointerEvents&&("pen"===t.pointerType||"touch"===t.pointerType)}static isSupported(){return"ontouchstart"in document.documentElement||navigator.maxTouchPoints>0}}const rt=".bs.carousel",at=".data-api",lt="ArrowLeft",ct="ArrowRight",ht="next",dt="prev",ut="left",ft="right",pt=`slide${rt}`,mt=`slid${rt}`,gt=`keydown${rt}`,_t=`mouseenter${rt}`,bt=`mouseleave${rt}`,vt=`dragstart${rt}`,yt=`load${rt}${at}`,wt=`click${rt}${at}`,At="carousel",Et="active",Tt=".active",Ct=".carousel-item",Ot=Tt+Ct,xt={[lt]:ft,[ct]:ut},kt={interval:5e3,keyboard:!0,pause:"hover",ride:!1,touch:!0,wrap:!0},Lt={interval:"(number|boolean)",keyboard:"boolean",pause:"(string|boolean)",ride:"(boolean|string)",touch:"boolean",wrap:"boolean"};class St extends B{constructor(t,e){super(t,e),this._interval=null,this._activeElement=null,this._isSliding=!1,this.touchTimeout=null,this._swipeHelper=null,this._indicatorsElement=R.findOne(".carousel-indicators",this._element),this._addEventListeners(),this._config.ride===At&&this.cycle()}static get Default(){return kt}static get DefaultType(){return Lt}static get NAME(){return"carousel"}next(){this._slide(ht)}nextWhenVisible(){!document.hidden&&l(this._element)&&this.next()}prev(){this._slide(dt)}pause(){this._isSliding&&o(this._element),this._clearInterval()}cycle(){this._clearInterval(),this._updateInterval(),this._interval=setInterval(()=>this.nextWhenVisible(),this._config.interval)}_maybeEnableCycle(){this._config.ride&&(this._isSliding?P.one(this._element,mt,()=>this.cycle()):this.cycle())}to(t){const e=this._getItems();if(t>e.length-1||t<0)return;if(this._isSliding)return void P.one(this._element,mt,()=>this.to(t));const i=this._getItemIndex(this._getActive());if(i===t)return;const n=t>i?ht:dt;this._slide(n,e[t])}dispose(){this._swipeHelper&&this._swipeHelper.dispose(),super.dispose()}_configAfterMerge(t){return t.defaultInterval=t.interval,t}_addEventListeners(){this._config.keyboard&&P.on(this._element,gt,t=>this._keydown(t)),"hover"===this._config.pause&&(P.on(this._element,_t,()=>this.pause()),P.on(this._element,bt,()=>this._maybeEnableCycle())),this._config.touch&&ot.isSupported()&&this._addTouchEventListeners()}_addTouchEventListeners(){for(const t of R.find(".carousel-item img",this._element))P.on(t,vt,t=>t.preventDefault());const t={leftCallback:()=>this._slide(this._directionToOrder(ut)),rightCallback:()=>this._slide(this._directionToOrder(ft)),endCallback:()=>{"hover"===this._config.pause&&(this.pause(),this.touchTimeout&&clearTimeout(this.touchTimeout),this.touchTimeout=setTimeout(()=>this._maybeEnableCycle(),500+this._config.interval))}};this._swipeHelper=new ot(this._element,t)}_keydown(t){if(/input|textarea/i.test(t.target.tagName))return;const e=xt[t.key];e&&(t.preventDefault(),this._slide(this._directionToOrder(e)))}_getItemIndex(t){return this._getItems().indexOf(t)}_setActiveIndicatorElement(t){if(!this._indicatorsElement)return;const e=R.findOne(Tt,this._indicatorsElement);e.classList.remove(Et),e.removeAttribute("aria-current");const i=R.findOne(`[data-bs-slide-to="${t}"]`,this._indicatorsElement);i&&(i.classList.add(Et),i.setAttribute("aria-current","true"))}_updateInterval(){const t=this._activeElement||this._getActive();if(!t)return;const e=Number.parseInt(t.getAttribute("data-bs-interval"),10);this._config.interval=e||this._config.defaultInterval}_slide(t,e=null){if(this._isSliding)return;const i=this._getActive(),n=t===ht,s=e||v(this._getItems(),i,n,this._config.wrap);if(s===i)return;const o=this._getItemIndex(s),r=e=>P.trigger(this._element,e,{relatedTarget:s,direction:this._orderToDirection(t),from:this._getItemIndex(i),to:o});if(r(pt).defaultPrevented)return;if(!i||!s)return;const a=Boolean(this._interval);this.pause(),this._isSliding=!0,this._setActiveIndicatorElement(o),this._activeElement=s;const l=n?"carousel-item-start":"carousel-item-end",c=n?"carousel-item-next":"carousel-item-prev";s.classList.add(c),u(s),i.classList.add(l),s.classList.add(l),this._queueCallback(()=>{s.classList.remove(l,c),s.classList.add(Et),i.classList.remove(Et,c,l),this._isSliding=!1,r(mt)},i,this._isAnimated()),a&&this.cycle()}_isAnimated(){return this._element.classList.contains("slide")}_getActive(){return R.findOne(Ot,this._element)}_getItems(){return R.find(Ct,this._element)}_clearInterval(){this._interval&&(clearInterval(this._interval),this._interval=null)}_directionToOrder(t){return m()?t===ut?dt:ht:t===ut?ht:dt}_orderToDirection(t){return m()?t===dt?ut:ft:t===dt?ft:ut}static jQueryInterface(t){return this.each(function(){const e=St.getOrCreateInstance(this,t);if("number"!=typeof t){if("string"==typeof t){if(void 0===e[t]||t.startsWith("_")||"constructor"===t)throw new TypeError(`No method named "${t}"`);e[t]()}}else e.to(t)})}}P.on(document,wt,"[data-bs-slide], [data-bs-slide-to]",function(t){const e=R.getElementFromSelector(this);if(!e||!e.classList.contains(At))return;t.preventDefault();const i=St.getOrCreateInstance(e),n=this.getAttribute("data-bs-slide-to");return n?(i.to(n),void i._maybeEnableCycle()):"next"===H.getDataAttribute(this,"slide")?(i.next(),void i._maybeEnableCycle()):(i.prev(),void i._maybeEnableCycle())}),P.on(window,yt,()=>{const t=R.find('[data-bs-ride="carousel"]');for(const e of t)St.getOrCreateInstance(e)}),g(St);const Dt=".bs.collapse",$t=`show${Dt}`,It=`shown${Dt}`,Nt=`hide${Dt}`,Pt=`hidden${Dt}`,jt=`click${Dt}.data-api`,Mt="show",Ft="collapse",Ht="collapsing",Wt=`:scope .${Ft} .${Ft}`,Bt='[data-bs-toggle="collapse"]',zt={parent:null,toggle:!0},Rt={parent:"(null|element)",toggle:"boolean"};class qt extends B{constructor(t,e){super(t,e),this._isTransitioning=!1,this._triggerArray=[];const i=R.find(Bt);for(const t of i){const e=R.getSelectorFromElement(t),i=R.find(e).filter(t=>t===this._element);null!==e&&i.length&&this._triggerArray.push(t)}this._initializeChildren(),this._config.parent||this._addAriaAndCollapsedClass(this._triggerArray,this._isShown()),this._config.toggle&&this.toggle()}static get Default(){return zt}static get DefaultType(){return Rt}static get NAME(){return"collapse"}toggle(){this._isShown()?this.hide():this.show()}show(){if(this._isTransitioning||this._isShown())return;let t=[];if(this._config.parent&&(t=this._getFirstLevelChildren(".collapse.show, .collapse.collapsing").filter(t=>t!==this._element).map(t=>qt.getOrCreateInstance(t,{toggle:!1}))),t.length&&t[0]._isTransitioning)return;if(P.trigger(this._element,$t).defaultPrevented)return;for(const e of t)e.hide();const e=this._getDimension();this._element.classList.remove(Ft),this._element.classList.add(Ht),this._element.style[e]=0,this._addAriaAndCollapsedClass(this._triggerArray,!0),this._isTransitioning=!0;const i=`scroll${e[0].toUpperCase()+e.slice(1)}`;this._queueCallback(()=>{this._isTransitioning=!1,this._element.classList.remove(Ht),this._element.classList.add(Ft,Mt),this._element.style[e]="",P.trigger(this._element,It)},this._element,!0),this._element.style[e]=`${this._element[i]}px`}hide(){if(this._isTransitioning||!this._isShown())return;if(P.trigger(this._element,Nt).defaultPrevented)return;const t=this._getDimension();this._element.style[t]=`${this._element.getBoundingClientRect()[t]}px`,u(this._element),this._element.classList.add(Ht),this._element.classList.remove(Ft,Mt);for(const t of this._triggerArray){const e=R.getElementFromSelector(t);e&&!this._isShown(e)&&this._addAriaAndCollapsedClass([t],!1)}this._isTransitioning=!0,this._element.style[t]="",this._queueCallback(()=>{this._isTransitioning=!1,this._element.classList.remove(Ht),this._element.classList.add(Ft),P.trigger(this._element,Pt)},this._element,!0)}_isShown(t=this._element){return t.classList.contains(Mt)}_configAfterMerge(t){return t.toggle=Boolean(t.toggle),t.parent=a(t.parent),t}_getDimension(){return this._element.classList.contains("collapse-horizontal")?"width":"height"}_initializeChildren(){if(!this._config.parent)return;const t=this._getFirstLevelChildren(Bt);for(const e of t){const t=R.getElementFromSelector(e);t&&this._addAriaAndCollapsedClass([e],this._isShown(t))}}_getFirstLevelChildren(t){const e=R.find(Wt,this._config.parent);return R.find(t,this._config.parent).filter(t=>!e.includes(t))}_addAriaAndCollapsedClass(t,e){if(t.length)for(const i of t)i.classList.toggle("collapsed",!e),i.setAttribute("aria-expanded",e)}static jQueryInterface(t){const e={};return"string"==typeof t&&/show|hide/.test(t)&&(e.toggle=!1),this.each(function(){const i=qt.getOrCreateInstance(this,e);if("string"==typeof t){if(void 0===i[t])throw new TypeError(`No method named "${t}"`);i[t]()}})}}P.on(document,jt,Bt,function(t){("A"===t.target.tagName||t.delegateTarget&&"A"===t.delegateTarget.tagName)&&t.preventDefault();for(const t of R.getMultipleElementsFromSelector(this))qt.getOrCreateInstance(t,{toggle:!1}).toggle()}),g(qt);var Vt="top",Kt="bottom",Qt="right",Xt="left",Yt="auto",Ut=[Vt,Kt,Qt,Xt],Gt="start",Jt="end",Zt="clippingParents",te="viewport",ee="popper",ie="reference",ne=Ut.reduce(function(t,e){return t.concat([e+"-"+Gt,e+"-"+Jt])},[]),se=[].concat(Ut,[Yt]).reduce(function(t,e){return t.concat([e,e+"-"+Gt,e+"-"+Jt])},[]),oe="beforeRead",re="read",ae="afterRead",le="beforeMain",ce="main",he="afterMain",de="beforeWrite",ue="write",fe="afterWrite",pe=[oe,re,ae,le,ce,he,de,ue,fe];function me(t){return t?(t.nodeName||"").toLowerCase():null}function ge(t){if(null==t)return window;if("[object Window]"!==t.toString()){var e=t.ownerDocument;return e&&e.defaultView||window}return t}function _e(t){return t instanceof ge(t).Element||t instanceof Element}function be(t){return t instanceof ge(t).HTMLElement||t instanceof HTMLElement}function ve(t){return"undefined"!=typeof ShadowRoot&&(t instanceof ge(t).ShadowRoot||t instanceof ShadowRoot)}const ye={name:"applyStyles",enabled:!0,phase:"write",fn:function(t){var e=t.state;Object.keys(e.elements).forEach(function(t){var i=e.styles[t]||{},n=e.attributes[t]||{},s=e.elements[t];be(s)&&me(s)&&(Object.assign(s.style,i),Object.keys(n).forEach(function(t){var e=n[t];!1===e?s.removeAttribute(t):s.setAttribute(t,!0===e?"":e)}))})},effect:function(t){var e=t.state,i={popper:{position:e.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(e.elements.popper.style,i.popper),e.styles=i,e.elements.arrow&&Object.assign(e.elements.arrow.style,i.arrow),function(){Object.keys(e.elements).forEach(function(t){var n=e.elements[t],s=e.attributes[t]||{},o=Object.keys(e.styles.hasOwnProperty(t)?e.styles[t]:i[t]).reduce(function(t,e){return t[e]="",t},{});be(n)&&me(n)&&(Object.assign(n.style,o),Object.keys(s).forEach(function(t){n.removeAttribute(t)}))})}},requires:["computeStyles"]};function we(t){return t.split("-")[0]}var Ae=Math.max,Ee=Math.min,Te=Math.round;function Ce(){var t=navigator.userAgentData;return null!=t&&t.brands&&Array.isArray(t.brands)?t.brands.map(function(t){return t.brand+"/"+t.version}).join(" "):navigator.userAgent}function Oe(){return!/^((?!chrome|android).)*safari/i.test(Ce())}function xe(t,e,i){void 0===e&&(e=!1),void 0===i&&(i=!1);var n=t.getBoundingClientRect(),s=1,o=1;e&&be(t)&&(s=t.offsetWidth>0&&Te(n.width)/t.offsetWidth||1,o=t.offsetHeight>0&&Te(n.height)/t.offsetHeight||1);var r=(_e(t)?ge(t):window).visualViewport,a=!Oe()&&i,l=(n.left+(a&&r?r.offsetLeft:0))/s,c=(n.top+(a&&r?r.offsetTop:0))/o,h=n.width/s,d=n.height/o;return{width:h,height:d,top:c,right:l+h,bottom:c+d,left:l,x:l,y:c}}function ke(t){var e=xe(t),i=t.offsetWidth,n=t.offsetHeight;return Math.abs(e.width-i)<=1&&(i=e.width),Math.abs(e.height-n)<=1&&(n=e.height),{x:t.offsetLeft,y:t.offsetTop,width:i,height:n}}function Le(t,e){var i=e.getRootNode&&e.getRootNode();if(t.contains(e))return!0;if(i&&ve(i)){var n=e;do{if(n&&t.isSameNode(n))return!0;n=n.parentNode||n.host}while(n)}return!1}function Se(t){return ge(t).getComputedStyle(t)}function De(t){return["table","td","th"].indexOf(me(t))>=0}function $e(t){return((_e(t)?t.ownerDocument:t.document)||window.document).documentElement}function Ie(t){return"html"===me(t)?t:t.assignedSlot||t.parentNode||(ve(t)?t.host:null)||$e(t)}function Ne(t){return be(t)&&"fixed"!==Se(t).position?t.offsetParent:null}function Pe(t){for(var e=ge(t),i=Ne(t);i&&De(i)&&"static"===Se(i).position;)i=Ne(i);return i&&("html"===me(i)||"body"===me(i)&&"static"===Se(i).position)?e:i||function(t){var e=/firefox/i.test(Ce());if(/Trident/i.test(Ce())&&be(t)&&"fixed"===Se(t).position)return null;var i=Ie(t);for(ve(i)&&(i=i.host);be(i)&&["html","body"].indexOf(me(i))<0;){var n=Se(i);if("none"!==n.transform||"none"!==n.perspective||"paint"===n.contain||-1!==["transform","perspective"].indexOf(n.willChange)||e&&"filter"===n.willChange||e&&n.filter&&"none"!==n.filter)return i;i=i.parentNode}return null}(t)||e}function je(t){return["top","bottom"].indexOf(t)>=0?"x":"y"}function Me(t,e,i){return Ae(t,Ee(e,i))}function Fe(t){return Object.assign({},{top:0,right:0,bottom:0,left:0},t)}function He(t,e){return e.reduce(function(e,i){return e[i]=t,e},{})}const We={name:"arrow",enabled:!0,phase:"main",fn:function(t){var e,i=t.state,n=t.name,s=t.options,o=i.elements.arrow,r=i.modifiersData.popperOffsets,a=we(i.placement),l=je(a),c=[Xt,Qt].indexOf(a)>=0?"height":"width";if(o&&r){var h=function(t,e){return Fe("number"!=typeof(t="function"==typeof t?t(Object.assign({},e.rects,{placement:e.placement})):t)?t:He(t,Ut))}(s.padding,i),d=ke(o),u="y"===l?Vt:Xt,f="y"===l?Kt:Qt,p=i.rects.reference[c]+i.rects.reference[l]-r[l]-i.rects.popper[c],m=r[l]-i.rects.reference[l],g=Pe(o),_=g?"y"===l?g.clientHeight||0:g.clientWidth||0:0,b=p/2-m/2,v=h[u],y=_-d[c]-h[f],w=_/2-d[c]/2+b,A=Me(v,w,y),E=l;i.modifiersData[n]=((e={})[E]=A,e.centerOffset=A-w,e)}},effect:function(t){var e=t.state,i=t.options.element,n=void 0===i?"[data-popper-arrow]":i;null!=n&&("string"!=typeof n||(n=e.elements.popper.querySelector(n)))&&Le(e.elements.popper,n)&&(e.elements.arrow=n)},requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function Be(t){return t.split("-")[1]}var ze={top:"auto",right:"auto",bottom:"auto",left:"auto"};function Re(t){var e,i=t.popper,n=t.popperRect,s=t.placement,o=t.variation,r=t.offsets,a=t.position,l=t.gpuAcceleration,c=t.adaptive,h=t.roundOffsets,d=t.isFixed,u=r.x,f=void 0===u?0:u,p=r.y,m=void 0===p?0:p,g="function"==typeof h?h({x:f,y:m}):{x:f,y:m};f=g.x,m=g.y;var _=r.hasOwnProperty("x"),b=r.hasOwnProperty("y"),v=Xt,y=Vt,w=window;if(c){var A=Pe(i),E="clientHeight",T="clientWidth";A===ge(i)&&"static"!==Se(A=$e(i)).position&&"absolute"===a&&(E="scrollHeight",T="scrollWidth"),(s===Vt||(s===Xt||s===Qt)&&o===Jt)&&(y=Kt,m-=(d&&A===w&&w.visualViewport?w.visualViewport.height:A[E])-n.height,m*=l?1:-1),s!==Xt&&(s!==Vt&&s!==Kt||o!==Jt)||(v=Qt,f-=(d&&A===w&&w.visualViewport?w.visualViewport.width:A[T])-n.width,f*=l?1:-1)}var C,O=Object.assign({position:a},c&&ze),x=!0===h?function(t,e){var i=t.x,n=t.y,s=e.devicePixelRatio||1;return{x:Te(i*s)/s||0,y:Te(n*s)/s||0}}({x:f,y:m},ge(i)):{x:f,y:m};return f=x.x,m=x.y,l?Object.assign({},O,((C={})[y]=b?"0":"",C[v]=_?"0":"",C.transform=(w.devicePixelRatio||1)<=1?"translate("+f+"px, "+m+"px)":"translate3d("+f+"px, "+m+"px, 0)",C)):Object.assign({},O,((e={})[y]=b?m+"px":"",e[v]=_?f+"px":"",e.transform="",e))}const qe={name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:function(t){var e=t.state,i=t.options,n=i.gpuAcceleration,s=void 0===n||n,o=i.adaptive,r=void 0===o||o,a=i.roundOffsets,l=void 0===a||a,c={placement:we(e.placement),variation:Be(e.placement),popper:e.elements.popper,popperRect:e.rects.popper,gpuAcceleration:s,isFixed:"fixed"===e.options.strategy};null!=e.modifiersData.popperOffsets&&(e.styles.popper=Object.assign({},e.styles.popper,Re(Object.assign({},c,{offsets:e.modifiersData.popperOffsets,position:e.options.strategy,adaptive:r,roundOffsets:l})))),null!=e.modifiersData.arrow&&(e.styles.arrow=Object.assign({},e.styles.arrow,Re(Object.assign({},c,{offsets:e.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:l})))),e.attributes.popper=Object.assign({},e.attributes.popper,{"data-popper-placement":e.placement})},data:{}};var Ve={passive:!0};const Ke={name:"eventListeners",enabled:!0,phase:"write",fn:function(){},effect:function(t){var e=t.state,i=t.instance,n=t.options,s=n.scroll,o=void 0===s||s,r=n.resize,a=void 0===r||r,l=ge(e.elements.popper),c=[].concat(e.scrollParents.reference,e.scrollParents.popper);return o&&c.forEach(function(t){t.addEventListener("scroll",i.update,Ve)}),a&&l.addEventListener("resize",i.update,Ve),function(){o&&c.forEach(function(t){t.removeEventListener("scroll",i.update,Ve)}),a&&l.removeEventListener("resize",i.update,Ve)}},data:{}};var Qe={left:"right",right:"left",bottom:"top",top:"bottom"};function Xe(t){return t.replace(/left|right|bottom|top/g,function(t){return Qe[t]})}var Ye={start:"end",end:"start"};function Ue(t){return t.replace(/start|end/g,function(t){return Ye[t]})}function Ge(t){var e=ge(t);return{scrollLeft:e.pageXOffset,scrollTop:e.pageYOffset}}function Je(t){return xe($e(t)).left+Ge(t).scrollLeft}function Ze(t){var e=Se(t),i=e.overflow,n=e.overflowX,s=e.overflowY;return/auto|scroll|overlay|hidden/.test(i+s+n)}function ti(t){return["html","body","#document"].indexOf(me(t))>=0?t.ownerDocument.body:be(t)&&Ze(t)?t:ti(Ie(t))}function ei(t,e){var i;void 0===e&&(e=[]);var n=ti(t),s=n===(null==(i=t.ownerDocument)?void 0:i.body),o=ge(n),r=s?[o].concat(o.visualViewport||[],Ze(n)?n:[]):n,a=e.concat(r);return s?a:a.concat(ei(Ie(r)))}function ii(t){return Object.assign({},t,{left:t.x,top:t.y,right:t.x+t.width,bottom:t.y+t.height})}function ni(t,e,i){return e===te?ii(function(t,e){var i=ge(t),n=$e(t),s=i.visualViewport,o=n.clientWidth,r=n.clientHeight,a=0,l=0;if(s){o=s.width,r=s.height;var c=Oe();(c||!c&&"fixed"===e)&&(a=s.offsetLeft,l=s.offsetTop)}return{width:o,height:r,x:a+Je(t),y:l}}(t,i)):_e(e)?function(t,e){var i=xe(t,!1,"fixed"===e);return i.top=i.top+t.clientTop,i.left=i.left+t.clientLeft,i.bottom=i.top+t.clientHeight,i.right=i.left+t.clientWidth,i.width=t.clientWidth,i.height=t.clientHeight,i.x=i.left,i.y=i.top,i}(e,i):ii(function(t){var e,i=$e(t),n=Ge(t),s=null==(e=t.ownerDocument)?void 0:e.body,o=Ae(i.scrollWidth,i.clientWidth,s?s.scrollWidth:0,s?s.clientWidth:0),r=Ae(i.scrollHeight,i.clientHeight,s?s.scrollHeight:0,s?s.clientHeight:0),a=-n.scrollLeft+Je(t),l=-n.scrollTop;return"rtl"===Se(s||i).direction&&(a+=Ae(i.clientWidth,s?s.clientWidth:0)-o),{width:o,height:r,x:a,y:l}}($e(t)))}function si(t){var e,i=t.reference,n=t.element,s=t.placement,o=s?we(s):null,r=s?Be(s):null,a=i.x+i.width/2-n.width/2,l=i.y+i.height/2-n.height/2;switch(o){case Vt:e={x:a,y:i.y-n.height};break;case Kt:e={x:a,y:i.y+i.height};break;case Qt:e={x:i.x+i.width,y:l};break;case Xt:e={x:i.x-n.width,y:l};break;default:e={x:i.x,y:i.y}}var c=o?je(o):null;if(null!=c){var h="y"===c?"height":"width";switch(r){case Gt:e[c]=e[c]-(i[h]/2-n[h]/2);break;case Jt:e[c]=e[c]+(i[h]/2-n[h]/2)}}return e}function oi(t,e){void 0===e&&(e={});var i=e,n=i.placement,s=void 0===n?t.placement:n,o=i.strategy,r=void 0===o?t.strategy:o,a=i.boundary,l=void 0===a?Zt:a,c=i.rootBoundary,h=void 0===c?te:c,d=i.elementContext,u=void 0===d?ee:d,f=i.altBoundary,p=void 0!==f&&f,m=i.padding,g=void 0===m?0:m,_=Fe("number"!=typeof g?g:He(g,Ut)),b=u===ee?ie:ee,v=t.rects.popper,y=t.elements[p?b:u],w=function(t,e,i,n){var s="clippingParents"===e?function(t){var e=ei(Ie(t)),i=["absolute","fixed"].indexOf(Se(t).position)>=0&&be(t)?Pe(t):t;return _e(i)?e.filter(function(t){return _e(t)&&Le(t,i)&&"body"!==me(t)}):[]}(t):[].concat(e),o=[].concat(s,[i]),r=o[0],a=o.reduce(function(e,i){var s=ni(t,i,n);return e.top=Ae(s.top,e.top),e.right=Ee(s.right,e.right),e.bottom=Ee(s.bottom,e.bottom),e.left=Ae(s.left,e.left),e},ni(t,r,n));return a.width=a.right-a.left,a.height=a.bottom-a.top,a.x=a.left,a.y=a.top,a}(_e(y)?y:y.contextElement||$e(t.elements.popper),l,h,r),A=xe(t.elements.reference),E=si({reference:A,element:v,placement:s}),T=ii(Object.assign({},v,E)),C=u===ee?T:A,O={top:w.top-C.top+_.top,bottom:C.bottom-w.bottom+_.bottom,left:w.left-C.left+_.left,right:C.right-w.right+_.right},x=t.modifiersData.offset;if(u===ee&&x){var k=x[s];Object.keys(O).forEach(function(t){var e=[Qt,Kt].indexOf(t)>=0?1:-1,i=[Vt,Kt].indexOf(t)>=0?"y":"x";O[t]+=k[i]*e})}return O}function ri(t,e){void 0===e&&(e={});var i=e,n=i.placement,s=i.boundary,o=i.rootBoundary,r=i.padding,a=i.flipVariations,l=i.allowedAutoPlacements,c=void 0===l?se:l,h=Be(n),d=h?a?ne:ne.filter(function(t){return Be(t)===h}):Ut,u=d.filter(function(t){return c.indexOf(t)>=0});0===u.length&&(u=d);var f=u.reduce(function(e,i){return e[i]=oi(t,{placement:i,boundary:s,rootBoundary:o,padding:r})[we(i)],e},{});return Object.keys(f).sort(function(t,e){return f[t]-f[e]})}const ai={name:"flip",enabled:!0,phase:"main",fn:function(t){var e=t.state,i=t.options,n=t.name;if(!e.modifiersData[n]._skip){for(var s=i.mainAxis,o=void 0===s||s,r=i.altAxis,a=void 0===r||r,l=i.fallbackPlacements,c=i.padding,h=i.boundary,d=i.rootBoundary,u=i.altBoundary,f=i.flipVariations,p=void 0===f||f,m=i.allowedAutoPlacements,g=e.options.placement,_=we(g),b=l||(_!==g&&p?function(t){if(we(t)===Yt)return[];var e=Xe(t);return[Ue(t),e,Ue(e)]}(g):[Xe(g)]),v=[g].concat(b).reduce(function(t,i){return t.concat(we(i)===Yt?ri(e,{placement:i,boundary:h,rootBoundary:d,padding:c,flipVariations:p,allowedAutoPlacements:m}):i)},[]),y=e.rects.reference,w=e.rects.popper,A=new Map,E=!0,T=v[0],C=0;C=0,S=L?"width":"height",D=oi(e,{placement:O,boundary:h,rootBoundary:d,altBoundary:u,padding:c}),$=L?k?Qt:Xt:k?Kt:Vt;y[S]>w[S]&&($=Xe($));var I=Xe($),N=[];if(o&&N.push(D[x]<=0),a&&N.push(D[$]<=0,D[I]<=0),N.every(function(t){return t})){T=O,E=!1;break}A.set(O,N)}if(E)for(var P=function(t){var e=v.find(function(e){var i=A.get(e);if(i)return i.slice(0,t).every(function(t){return t})});if(e)return T=e,"break"},j=p?3:1;j>0&&"break"!==P(j);j--);e.placement!==T&&(e.modifiersData[n]._skip=!0,e.placement=T,e.reset=!0)}},requiresIfExists:["offset"],data:{_skip:!1}};function li(t,e,i){return void 0===i&&(i={x:0,y:0}),{top:t.top-e.height-i.y,right:t.right-e.width+i.x,bottom:t.bottom-e.height+i.y,left:t.left-e.width-i.x}}function ci(t){return[Vt,Qt,Kt,Xt].some(function(e){return t[e]>=0})}const hi={name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:function(t){var e=t.state,i=t.name,n=e.rects.reference,s=e.rects.popper,o=e.modifiersData.preventOverflow,r=oi(e,{elementContext:"reference"}),a=oi(e,{altBoundary:!0}),l=li(r,n),c=li(a,s,o),h=ci(l),d=ci(c);e.modifiersData[i]={referenceClippingOffsets:l,popperEscapeOffsets:c,isReferenceHidden:h,hasPopperEscaped:d},e.attributes.popper=Object.assign({},e.attributes.popper,{"data-popper-reference-hidden":h,"data-popper-escaped":d})}},di={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:function(t){var e=t.state,i=t.options,n=t.name,s=i.offset,o=void 0===s?[0,0]:s,r=se.reduce(function(t,i){return t[i]=function(t,e,i){var n=we(t),s=[Xt,Vt].indexOf(n)>=0?-1:1,o="function"==typeof i?i(Object.assign({},e,{placement:t})):i,r=o[0],a=o[1];return r=r||0,a=(a||0)*s,[Xt,Qt].indexOf(n)>=0?{x:a,y:r}:{x:r,y:a}}(i,e.rects,o),t},{}),a=r[e.placement],l=a.x,c=a.y;null!=e.modifiersData.popperOffsets&&(e.modifiersData.popperOffsets.x+=l,e.modifiersData.popperOffsets.y+=c),e.modifiersData[n]=r}},ui={name:"popperOffsets",enabled:!0,phase:"read",fn:function(t){var e=t.state,i=t.name;e.modifiersData[i]=si({reference:e.rects.reference,element:e.rects.popper,placement:e.placement})},data:{}},fi={name:"preventOverflow",enabled:!0,phase:"main",fn:function(t){var e=t.state,i=t.options,n=t.name,s=i.mainAxis,o=void 0===s||s,r=i.altAxis,a=void 0!==r&&r,l=i.boundary,c=i.rootBoundary,h=i.altBoundary,d=i.padding,u=i.tether,f=void 0===u||u,p=i.tetherOffset,m=void 0===p?0:p,g=oi(e,{boundary:l,rootBoundary:c,padding:d,altBoundary:h}),_=we(e.placement),b=Be(e.placement),v=!b,y=je(_),w="x"===y?"y":"x",A=e.modifiersData.popperOffsets,E=e.rects.reference,T=e.rects.popper,C="function"==typeof m?m(Object.assign({},e.rects,{placement:e.placement})):m,O="number"==typeof C?{mainAxis:C,altAxis:C}:Object.assign({mainAxis:0,altAxis:0},C),x=e.modifiersData.offset?e.modifiersData.offset[e.placement]:null,k={x:0,y:0};if(A){if(o){var L,S="y"===y?Vt:Xt,D="y"===y?Kt:Qt,$="y"===y?"height":"width",I=A[y],N=I+g[S],P=I-g[D],j=f?-T[$]/2:0,M=b===Gt?E[$]:T[$],F=b===Gt?-T[$]:-E[$],H=e.elements.arrow,W=f&&H?ke(H):{width:0,height:0},B=e.modifiersData["arrow#persistent"]?e.modifiersData["arrow#persistent"].padding:{top:0,right:0,bottom:0,left:0},z=B[S],R=B[D],q=Me(0,E[$],W[$]),V=v?E[$]/2-j-q-z-O.mainAxis:M-q-z-O.mainAxis,K=v?-E[$]/2+j+q+R+O.mainAxis:F+q+R+O.mainAxis,Q=e.elements.arrow&&Pe(e.elements.arrow),X=Q?"y"===y?Q.clientTop||0:Q.clientLeft||0:0,Y=null!=(L=null==x?void 0:x[y])?L:0,U=I+K-Y,G=Me(f?Ee(N,I+V-Y-X):N,I,f?Ae(P,U):P);A[y]=G,k[y]=G-I}if(a){var J,Z="x"===y?Vt:Xt,tt="x"===y?Kt:Qt,et=A[w],it="y"===w?"height":"width",nt=et+g[Z],st=et-g[tt],ot=-1!==[Vt,Xt].indexOf(_),rt=null!=(J=null==x?void 0:x[w])?J:0,at=ot?nt:et-E[it]-T[it]-rt+O.altAxis,lt=ot?et+E[it]+T[it]-rt-O.altAxis:st,ct=f&&ot?function(t,e,i){var n=Me(t,e,i);return n>i?i:n}(at,et,lt):Me(f?at:nt,et,f?lt:st);A[w]=ct,k[w]=ct-et}e.modifiersData[n]=k}},requiresIfExists:["offset"]};function pi(t,e,i){void 0===i&&(i=!1);var n,s,o=be(e),r=be(e)&&function(t){var e=t.getBoundingClientRect(),i=Te(e.width)/t.offsetWidth||1,n=Te(e.height)/t.offsetHeight||1;return 1!==i||1!==n}(e),a=$e(e),l=xe(t,r,i),c={scrollLeft:0,scrollTop:0},h={x:0,y:0};return(o||!o&&!i)&&(("body"!==me(e)||Ze(a))&&(c=(n=e)!==ge(n)&&be(n)?{scrollLeft:(s=n).scrollLeft,scrollTop:s.scrollTop}:Ge(n)),be(e)?((h=xe(e,!0)).x+=e.clientLeft,h.y+=e.clientTop):a&&(h.x=Je(a))),{x:l.left+c.scrollLeft-h.x,y:l.top+c.scrollTop-h.y,width:l.width,height:l.height}}function mi(t){var e=new Map,i=new Set,n=[];function s(t){i.add(t.name),[].concat(t.requires||[],t.requiresIfExists||[]).forEach(function(t){if(!i.has(t)){var n=e.get(t);n&&s(n)}}),n.push(t)}return t.forEach(function(t){e.set(t.name,t)}),t.forEach(function(t){i.has(t.name)||s(t)}),n}var gi={placement:"bottom",modifiers:[],strategy:"absolute"};function _i(){for(var t=arguments.length,e=new Array(t),i=0;iNumber.parseInt(t,10)):"function"==typeof t?e=>t(e,this._element):t}_getPopperConfig(){const t={placement:this._getPlacement(),modifiers:[{name:"preventOverflow",options:{boundary:this._config.boundary}},{name:"offset",options:{offset:this._getOffset()}}]};return(this._inNavbar||"static"===this._config.display)&&(H.setDataAttribute(this._menu,"popper","static"),t.modifiers=[{name:"applyStyles",enabled:!1}]),{...t,..._(this._config.popperConfig,[void 0,t])}}_selectMenuItem({key:t,target:e}){const i=R.find(".dropdown-menu .dropdown-item:not(.disabled):not(:disabled)",this._menu).filter(t=>l(t));i.length&&v(i,e,t===xi,!i.includes(e)).focus()}static jQueryInterface(t){return this.each(function(){const e=Qi.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t])throw new TypeError(`No method named "${t}"`);e[t]()}})}static clearMenus(t){if(2===t.button||"keyup"===t.type&&"Tab"!==t.key)return;const e=R.find(Mi);for(const i of e){const e=Qi.getInstance(i);if(!e||!1===e._config.autoClose)continue;const n=t.composedPath(),s=n.includes(e._menu);if(n.includes(e._element)||"inside"===e._config.autoClose&&!s||"outside"===e._config.autoClose&&s)continue;if(e._menu.contains(t.target)&&("keyup"===t.type&&"Tab"===t.key||/input|select|option|textarea|form/i.test(t.target.tagName)))continue;const o={relatedTarget:e._element};"click"===t.type&&(o.clickEvent=t),e._completeHide(o)}}static dataApiKeydownHandler(t){const e=/input|textarea/i.test(t.target.tagName),i="Escape"===t.key,n=[Oi,xi].includes(t.key);if(!n&&!i)return;if(e&&!i)return;t.preventDefault();const s=this.matches(ji)?this:R.prev(this,ji)[0]||R.next(this,ji)[0]||R.findOne(ji,t.delegateTarget.parentNode),o=Qi.getOrCreateInstance(s);if(n)return t.stopPropagation(),o.show(),void o._selectMenuItem(t);o._isShown()&&(t.stopPropagation(),o.hide(),s.focus())}}P.on(document,Ii,ji,Qi.dataApiKeydownHandler),P.on(document,Ii,Fi,Qi.dataApiKeydownHandler),P.on(document,$i,Qi.clearMenus),P.on(document,Ni,Qi.clearMenus),P.on(document,$i,ji,function(t){t.preventDefault(),Qi.getOrCreateInstance(this).toggle()}),g(Qi);const Xi="backdrop",Yi="show",Ui=`mousedown.bs.${Xi}`,Gi={className:"modal-backdrop",clickCallback:null,isAnimated:!1,isVisible:!0,rootElement:"body"},Ji={className:"string",clickCallback:"(function|null)",isAnimated:"boolean",isVisible:"boolean",rootElement:"(element|string)"};class Zi extends W{constructor(t){super(),this._config=this._getConfig(t),this._isAppended=!1,this._element=null}static get Default(){return Gi}static get DefaultType(){return Ji}static get NAME(){return Xi}show(t){if(!this._config.isVisible)return void _(t);this._append();const e=this._getElement();this._config.isAnimated&&u(e),e.classList.add(Yi),this._emulateAnimation(()=>{_(t)})}hide(t){this._config.isVisible?(this._getElement().classList.remove(Yi),this._emulateAnimation(()=>{this.dispose(),_(t)})):_(t)}dispose(){this._isAppended&&(P.off(this._element,Ui),this._element.remove(),this._isAppended=!1)}_getElement(){if(!this._element){const t=document.createElement("div");t.className=this._config.className,this._config.isAnimated&&t.classList.add("fade"),this._element=t}return this._element}_configAfterMerge(t){return t.rootElement=a(t.rootElement),t}_append(){if(this._isAppended)return;const t=this._getElement();this._config.rootElement.append(t),P.on(t,Ui,()=>{_(this._config.clickCallback)}),this._isAppended=!0}_emulateAnimation(t){b(t,this._getElement(),this._config.isAnimated)}}const tn=".bs.focustrap",en=`focusin${tn}`,nn=`keydown.tab${tn}`,sn="backward",on={autofocus:!0,trapElement:null},rn={autofocus:"boolean",trapElement:"element"};class an extends W{constructor(t){super(),this._config=this._getConfig(t),this._isActive=!1,this._lastTabNavDirection=null}static get Default(){return on}static get DefaultType(){return rn}static get NAME(){return"focustrap"}activate(){this._isActive||(this._config.autofocus&&this._config.trapElement.focus(),P.off(document,tn),P.on(document,en,t=>this._handleFocusin(t)),P.on(document,nn,t=>this._handleKeydown(t)),this._isActive=!0)}deactivate(){this._isActive&&(this._isActive=!1,P.off(document,tn))}_handleFocusin(t){const{trapElement:e}=this._config;if(t.target===document||t.target===e||e.contains(t.target))return;const i=R.focusableChildren(e);0===i.length?e.focus():this._lastTabNavDirection===sn?i[i.length-1].focus():i[0].focus()}_handleKeydown(t){"Tab"===t.key&&(this._lastTabNavDirection=t.shiftKey?sn:"forward")}}const ln=".fixed-top, .fixed-bottom, .is-fixed, .sticky-top",cn=".sticky-top",hn="padding-right",dn="margin-right";class un{constructor(){this._element=document.body}getWidth(){const t=document.documentElement.clientWidth;return Math.abs(window.innerWidth-t)}hide(){const t=this.getWidth();this._disableOverFlow(),this._setElementAttributes(this._element,hn,e=>e+t),this._setElementAttributes(ln,hn,e=>e+t),this._setElementAttributes(cn,dn,e=>e-t)}reset(){this._resetElementAttributes(this._element,"overflow"),this._resetElementAttributes(this._element,hn),this._resetElementAttributes(ln,hn),this._resetElementAttributes(cn,dn)}isOverflowing(){return this.getWidth()>0}_disableOverFlow(){this._saveInitialAttribute(this._element,"overflow"),this._element.style.overflow="hidden"}_setElementAttributes(t,e,i){const n=this.getWidth();this._applyManipulationCallback(t,t=>{if(t!==this._element&&window.innerWidth>t.clientWidth+n)return;this._saveInitialAttribute(t,e);const s=window.getComputedStyle(t).getPropertyValue(e);t.style.setProperty(e,`${i(Number.parseFloat(s))}px`)})}_saveInitialAttribute(t,e){const i=t.style.getPropertyValue(e);i&&H.setDataAttribute(t,e,i)}_resetElementAttributes(t,e){this._applyManipulationCallback(t,t=>{const i=H.getDataAttribute(t,e);null!==i?(H.removeDataAttribute(t,e),t.style.setProperty(e,i)):t.style.removeProperty(e)})}_applyManipulationCallback(t,e){if(r(t))e(t);else for(const i of R.find(t,this._element))e(i)}}const fn=".bs.modal",pn=`hide${fn}`,mn=`hidePrevented${fn}`,gn=`hidden${fn}`,_n=`show${fn}`,bn=`shown${fn}`,vn=`resize${fn}`,yn=`click.dismiss${fn}`,wn=`mousedown.dismiss${fn}`,An=`keydown.dismiss${fn}`,En=`click${fn}.data-api`,Tn="modal-open",Cn="show",On="modal-static",xn={backdrop:!0,focus:!0,keyboard:!0},kn={backdrop:"(boolean|string)",focus:"boolean",keyboard:"boolean"};class Ln extends B{constructor(t,e){super(t,e),this._dialog=R.findOne(".modal-dialog",this._element),this._backdrop=this._initializeBackDrop(),this._focustrap=this._initializeFocusTrap(),this._isShown=!1,this._isTransitioning=!1,this._scrollBar=new un,this._addEventListeners()}static get Default(){return xn}static get DefaultType(){return kn}static get NAME(){return"modal"}toggle(t){return this._isShown?this.hide():this.show(t)}show(t){this._isShown||this._isTransitioning||P.trigger(this._element,_n,{relatedTarget:t}).defaultPrevented||(this._isShown=!0,this._isTransitioning=!0,this._scrollBar.hide(),document.body.classList.add(Tn),this._adjustDialog(),this._backdrop.show(()=>this._showElement(t)))}hide(){this._isShown&&!this._isTransitioning&&(P.trigger(this._element,pn).defaultPrevented||(this._isShown=!1,this._isTransitioning=!0,this._focustrap.deactivate(),this._element.classList.remove(Cn),this._queueCallback(()=>this._hideModal(),this._element,this._isAnimated())))}dispose(){P.off(window,fn),P.off(this._dialog,fn),this._backdrop.dispose(),this._focustrap.deactivate(),super.dispose()}handleUpdate(){this._adjustDialog()}_initializeBackDrop(){return new Zi({isVisible:Boolean(this._config.backdrop),isAnimated:this._isAnimated()})}_initializeFocusTrap(){return new an({trapElement:this._element})}_showElement(t){document.body.contains(this._element)||document.body.append(this._element),this._element.style.display="block",this._element.removeAttribute("aria-hidden"),this._element.setAttribute("aria-modal",!0),this._element.setAttribute("role","dialog"),this._element.scrollTop=0;const e=R.findOne(".modal-body",this._dialog);e&&(e.scrollTop=0),u(this._element),this._element.classList.add(Cn),this._queueCallback(()=>{this._config.focus&&this._focustrap.activate(),this._isTransitioning=!1,P.trigger(this._element,bn,{relatedTarget:t})},this._dialog,this._isAnimated())}_addEventListeners(){P.on(this._element,An,t=>{"Escape"===t.key&&(this._config.keyboard?this.hide():this._triggerBackdropTransition())}),P.on(window,vn,()=>{this._isShown&&!this._isTransitioning&&this._adjustDialog()}),P.on(this._element,wn,t=>{P.one(this._element,yn,e=>{this._element===t.target&&this._element===e.target&&("static"!==this._config.backdrop?this._config.backdrop&&this.hide():this._triggerBackdropTransition())})})}_hideModal(){this._element.style.display="none",this._element.setAttribute("aria-hidden",!0),this._element.removeAttribute("aria-modal"),this._element.removeAttribute("role"),this._isTransitioning=!1,this._backdrop.hide(()=>{document.body.classList.remove(Tn),this._resetAdjustments(),this._scrollBar.reset(),P.trigger(this._element,gn)})}_isAnimated(){return this._element.classList.contains("fade")}_triggerBackdropTransition(){if(P.trigger(this._element,mn).defaultPrevented)return;const t=this._element.scrollHeight>document.documentElement.clientHeight,e=this._element.style.overflowY;"hidden"===e||this._element.classList.contains(On)||(t||(this._element.style.overflowY="hidden"),this._element.classList.add(On),this._queueCallback(()=>{this._element.classList.remove(On),this._queueCallback(()=>{this._element.style.overflowY=e},this._dialog)},this._dialog),this._element.focus())}_adjustDialog(){const t=this._element.scrollHeight>document.documentElement.clientHeight,e=this._scrollBar.getWidth(),i=e>0;if(i&&!t){const t=m()?"paddingLeft":"paddingRight";this._element.style[t]=`${e}px`}if(!i&&t){const t=m()?"paddingRight":"paddingLeft";this._element.style[t]=`${e}px`}}_resetAdjustments(){this._element.style.paddingLeft="",this._element.style.paddingRight=""}static jQueryInterface(t,e){return this.each(function(){const i=Ln.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===i[t])throw new TypeError(`No method named "${t}"`);i[t](e)}})}}P.on(document,En,'[data-bs-toggle="modal"]',function(t){const e=R.getElementFromSelector(this);["A","AREA"].includes(this.tagName)&&t.preventDefault(),P.one(e,_n,t=>{t.defaultPrevented||P.one(e,gn,()=>{l(this)&&this.focus()})});const i=R.findOne(".modal.show");i&&Ln.getInstance(i).hide(),Ln.getOrCreateInstance(e).toggle(this)}),q(Ln),g(Ln);const Sn=".bs.offcanvas",Dn=".data-api",$n=`load${Sn}${Dn}`,In="show",Nn="showing",Pn="hiding",jn=".offcanvas.show",Mn=`show${Sn}`,Fn=`shown${Sn}`,Hn=`hide${Sn}`,Wn=`hidePrevented${Sn}`,Bn=`hidden${Sn}`,zn=`resize${Sn}`,Rn=`click${Sn}${Dn}`,qn=`keydown.dismiss${Sn}`,Vn={backdrop:!0,keyboard:!0,scroll:!1},Kn={backdrop:"(boolean|string)",keyboard:"boolean",scroll:"boolean"};class Qn extends B{constructor(t,e){super(t,e),this._isShown=!1,this._backdrop=this._initializeBackDrop(),this._focustrap=this._initializeFocusTrap(),this._addEventListeners()}static get Default(){return Vn}static get DefaultType(){return Kn}static get NAME(){return"offcanvas"}toggle(t){return this._isShown?this.hide():this.show(t)}show(t){this._isShown||P.trigger(this._element,Mn,{relatedTarget:t}).defaultPrevented||(this._isShown=!0,this._backdrop.show(),this._config.scroll||(new un).hide(),this._element.setAttribute("aria-modal",!0),this._element.setAttribute("role","dialog"),this._element.classList.add(Nn),this._queueCallback(()=>{this._config.scroll&&!this._config.backdrop||this._focustrap.activate(),this._element.classList.add(In),this._element.classList.remove(Nn),P.trigger(this._element,Fn,{relatedTarget:t})},this._element,!0))}hide(){this._isShown&&(P.trigger(this._element,Hn).defaultPrevented||(this._focustrap.deactivate(),this._element.blur(),this._isShown=!1,this._element.classList.add(Pn),this._backdrop.hide(),this._queueCallback(()=>{this._element.classList.remove(In,Pn),this._element.removeAttribute("aria-modal"),this._element.removeAttribute("role"),this._config.scroll||(new un).reset(),P.trigger(this._element,Bn)},this._element,!0)))}dispose(){this._backdrop.dispose(),this._focustrap.deactivate(),super.dispose()}_initializeBackDrop(){const t=Boolean(this._config.backdrop);return new Zi({className:"offcanvas-backdrop",isVisible:t,isAnimated:!0,rootElement:this._element.parentNode,clickCallback:t?()=>{"static"!==this._config.backdrop?this.hide():P.trigger(this._element,Wn)}:null})}_initializeFocusTrap(){return new an({trapElement:this._element})}_addEventListeners(){P.on(this._element,qn,t=>{"Escape"===t.key&&(this._config.keyboard?this.hide():P.trigger(this._element,Wn))})}static jQueryInterface(t){return this.each(function(){const e=Qn.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t]||t.startsWith("_")||"constructor"===t)throw new TypeError(`No method named "${t}"`);e[t](this)}})}}P.on(document,Rn,'[data-bs-toggle="offcanvas"]',function(t){const e=R.getElementFromSelector(this);if(["A","AREA"].includes(this.tagName)&&t.preventDefault(),c(this))return;P.one(e,Bn,()=>{l(this)&&this.focus()});const i=R.findOne(jn);i&&i!==e&&Qn.getInstance(i).hide(),Qn.getOrCreateInstance(e).toggle(this)}),P.on(window,$n,()=>{for(const t of R.find(jn))Qn.getOrCreateInstance(t).show()}),P.on(window,zn,()=>{for(const t of R.find("[aria-modal][class*=show][class*=offcanvas-]"))"fixed"!==getComputedStyle(t).position&&Qn.getOrCreateInstance(t).hide()}),q(Qn),g(Qn);const Xn={"*":["class","dir","id","lang","role",/^aria-[\w-]*$/i],a:["target","href","title","rel"],area:[],b:[],br:[],col:[],code:[],dd:[],div:[],dl:[],dt:[],em:[],hr:[],h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],i:[],img:["src","srcset","alt","title","width","height"],li:[],ol:[],p:[],pre:[],s:[],small:[],span:[],sub:[],sup:[],strong:[],u:[],ul:[]},Yn=new Set(["background","cite","href","itemtype","longdesc","poster","src","xlink:href"]),Un=/^(?!javascript:)(?:[a-z0-9+.-]+:|[^&:/?#]*(?:[/?#]|$))/i,Gn=(t,e)=>{const i=t.nodeName.toLowerCase();return e.includes(i)?!Yn.has(i)||Boolean(Un.test(t.nodeValue)):e.filter(t=>t instanceof RegExp).some(t=>t.test(i))},Jn={allowList:Xn,content:{},extraClass:"",html:!1,sanitize:!0,sanitizeFn:null,template:"
"},Zn={allowList:"object",content:"object",extraClass:"(string|function)",html:"boolean",sanitize:"boolean",sanitizeFn:"(null|function)",template:"string"},ts={entry:"(string|element|function|null)",selector:"(string|element)"};class es extends W{constructor(t){super(),this._config=this._getConfig(t)}static get Default(){return Jn}static get DefaultType(){return Zn}static get NAME(){return"TemplateFactory"}getContent(){return Object.values(this._config.content).map(t=>this._resolvePossibleFunction(t)).filter(Boolean)}hasContent(){return this.getContent().length>0}changeContent(t){return this._checkContent(t),this._config.content={...this._config.content,...t},this}toHtml(){const t=document.createElement("div");t.innerHTML=this._maybeSanitize(this._config.template);for(const[e,i]of Object.entries(this._config.content))this._setContent(t,i,e);const e=t.children[0],i=this._resolvePossibleFunction(this._config.extraClass);return i&&e.classList.add(...i.split(" ")),e}_typeCheckConfig(t){super._typeCheckConfig(t),this._checkContent(t.content)}_checkContent(t){for(const[e,i]of Object.entries(t))super._typeCheckConfig({selector:e,entry:i},ts)}_setContent(t,e,i){const n=R.findOne(i,t);n&&((e=this._resolvePossibleFunction(e))?r(e)?this._putElementInTemplate(a(e),n):this._config.html?n.innerHTML=this._maybeSanitize(e):n.textContent=e:n.remove())}_maybeSanitize(t){return this._config.sanitize?function(t,e,i){if(!t.length)return t;if(i&&"function"==typeof i)return i(t);const n=(new window.DOMParser).parseFromString(t,"text/html"),s=[].concat(...n.body.querySelectorAll("*"));for(const t of s){const i=t.nodeName.toLowerCase();if(!Object.keys(e).includes(i)){t.remove();continue}const n=[].concat(...t.attributes),s=[].concat(e["*"]||[],e[i]||[]);for(const e of n)Gn(e,s)||t.removeAttribute(e.nodeName)}return n.body.innerHTML}(t,this._config.allowList,this._config.sanitizeFn):t}_resolvePossibleFunction(t){return _(t,[void 0,this])}_putElementInTemplate(t,e){if(this._config.html)return e.innerHTML="",void e.append(t);e.textContent=t.textContent}}const is=new Set(["sanitize","allowList","sanitizeFn"]),ns="fade",ss="show",os=".tooltip-inner",rs=".modal",as="hide.bs.modal",ls="hover",cs="focus",hs="click",ds={AUTO:"auto",TOP:"top",RIGHT:m()?"left":"right",BOTTOM:"bottom",LEFT:m()?"right":"left"},us={allowList:Xn,animation:!0,boundary:"clippingParents",container:!1,customClass:"",delay:0,fallbackPlacements:["top","right","bottom","left"],html:!1,offset:[0,6],placement:"top",popperConfig:null,sanitize:!0,sanitizeFn:null,selector:!1,template:'',title:"",trigger:"hover focus"},fs={allowList:"object",animation:"boolean",boundary:"(string|element)",container:"(string|element|boolean)",customClass:"(string|function)",delay:"(number|object)",fallbackPlacements:"array",html:"boolean",offset:"(array|string|function)",placement:"(string|function)",popperConfig:"(null|object|function)",sanitize:"boolean",sanitizeFn:"(null|function)",selector:"(string|boolean)",template:"string",title:"(string|element|function)",trigger:"string"};class ps extends B{constructor(t,e){if(void 0===Ai)throw new TypeError("Bootstrap's tooltips require Popper (https://popper.js.org/docs/v2/)");super(t,e),this._isEnabled=!0,this._timeout=0,this._isHovered=null,this._activeTrigger={},this._popper=null,this._templateFactory=null,this._newContent=null,this.tip=null,this._setListeners(),this._config.selector||this._fixTitle()}static get Default(){return us}static get DefaultType(){return fs}static get NAME(){return"tooltip"}enable(){this._isEnabled=!0}disable(){this._isEnabled=!1}toggleEnabled(){this._isEnabled=!this._isEnabled}toggle(){this._isEnabled&&(this._isShown()?this._leave():this._enter())}dispose(){clearTimeout(this._timeout),P.off(this._element.closest(rs),as,this._hideModalHandler),this._element.getAttribute("data-bs-original-title")&&this._element.setAttribute("title",this._element.getAttribute("data-bs-original-title")),this._disposePopper(),super.dispose()}show(){if("none"===this._element.style.display)throw new Error("Please use show on visible elements");if(!this._isWithContent()||!this._isEnabled)return;const t=P.trigger(this._element,this.constructor.eventName("show")),e=(h(this._element)||this._element.ownerDocument.documentElement).contains(this._element);if(t.defaultPrevented||!e)return;this._disposePopper();const i=this._getTipElement();this._element.setAttribute("aria-describedby",i.getAttribute("id"));const{container:n}=this._config;if(this._element.ownerDocument.documentElement.contains(this.tip)||(n.append(i),P.trigger(this._element,this.constructor.eventName("inserted"))),this._popper=this._createPopper(i),i.classList.add(ss),"ontouchstart"in document.documentElement)for(const t of[].concat(...document.body.children))P.on(t,"mouseover",d);this._queueCallback(()=>{P.trigger(this._element,this.constructor.eventName("shown")),!1===this._isHovered&&this._leave(),this._isHovered=!1},this.tip,this._isAnimated())}hide(){if(this._isShown()&&!P.trigger(this._element,this.constructor.eventName("hide")).defaultPrevented){if(this._getTipElement().classList.remove(ss),"ontouchstart"in document.documentElement)for(const t of[].concat(...document.body.children))P.off(t,"mouseover",d);this._activeTrigger[hs]=!1,this._activeTrigger[cs]=!1,this._activeTrigger[ls]=!1,this._isHovered=null,this._queueCallback(()=>{this._isWithActiveTrigger()||(this._isHovered||this._disposePopper(),this._element.removeAttribute("aria-describedby"),P.trigger(this._element,this.constructor.eventName("hidden")))},this.tip,this._isAnimated())}}update(){this._popper&&this._popper.update()}_isWithContent(){return Boolean(this._getTitle())}_getTipElement(){return this.tip||(this.tip=this._createTipElement(this._newContent||this._getContentForTemplate())),this.tip}_createTipElement(t){const e=this._getTemplateFactory(t).toHtml();if(!e)return null;e.classList.remove(ns,ss),e.classList.add(`bs-${this.constructor.NAME}-auto`);const i=(t=>{do{t+=Math.floor(1e6*Math.random())}while(document.getElementById(t));return t})(this.constructor.NAME).toString();return e.setAttribute("id",i),this._isAnimated()&&e.classList.add(ns),e}setContent(t){this._newContent=t,this._isShown()&&(this._disposePopper(),this.show())}_getTemplateFactory(t){return this._templateFactory?this._templateFactory.changeContent(t):this._templateFactory=new es({...this._config,content:t,extraClass:this._resolvePossibleFunction(this._config.customClass)}),this._templateFactory}_getContentForTemplate(){return{[os]:this._getTitle()}}_getTitle(){return this._resolvePossibleFunction(this._config.title)||this._element.getAttribute("data-bs-original-title")}_initializeOnDelegatedTarget(t){return this.constructor.getOrCreateInstance(t.delegateTarget,this._getDelegateConfig())}_isAnimated(){return this._config.animation||this.tip&&this.tip.classList.contains(ns)}_isShown(){return this.tip&&this.tip.classList.contains(ss)}_createPopper(t){const e=_(this._config.placement,[this,t,this._element]),i=ds[e.toUpperCase()];return wi(this._element,t,this._getPopperConfig(i))}_getOffset(){const{offset:t}=this._config;return"string"==typeof t?t.split(",").map(t=>Number.parseInt(t,10)):"function"==typeof t?e=>t(e,this._element):t}_resolvePossibleFunction(t){return _(t,[this._element,this._element])}_getPopperConfig(t){const e={placement:t,modifiers:[{name:"flip",options:{fallbackPlacements:this._config.fallbackPlacements}},{name:"offset",options:{offset:this._getOffset()}},{name:"preventOverflow",options:{boundary:this._config.boundary}},{name:"arrow",options:{element:`.${this.constructor.NAME}-arrow`}},{name:"preSetPlacement",enabled:!0,phase:"beforeMain",fn:t=>{this._getTipElement().setAttribute("data-popper-placement",t.state.placement)}}]};return{...e,..._(this._config.popperConfig,[void 0,e])}}_setListeners(){const t=this._config.trigger.split(" ");for(const e of t)if("click"===e)P.on(this._element,this.constructor.eventName("click"),this._config.selector,t=>{const e=this._initializeOnDelegatedTarget(t);e._activeTrigger[hs]=!(e._isShown()&&e._activeTrigger[hs]),e.toggle()});else if("manual"!==e){const t=e===ls?this.constructor.eventName("mouseenter"):this.constructor.eventName("focusin"),i=e===ls?this.constructor.eventName("mouseleave"):this.constructor.eventName("focusout");P.on(this._element,t,this._config.selector,t=>{const e=this._initializeOnDelegatedTarget(t);e._activeTrigger["focusin"===t.type?cs:ls]=!0,e._enter()}),P.on(this._element,i,this._config.selector,t=>{const e=this._initializeOnDelegatedTarget(t);e._activeTrigger["focusout"===t.type?cs:ls]=e._element.contains(t.relatedTarget),e._leave()})}this._hideModalHandler=()=>{this._element&&this.hide()},P.on(this._element.closest(rs),as,this._hideModalHandler)}_fixTitle(){const t=this._element.getAttribute("title");t&&(this._element.getAttribute("aria-label")||this._element.textContent.trim()||this._element.setAttribute("aria-label",t),this._element.setAttribute("data-bs-original-title",t),this._element.removeAttribute("title"))}_enter(){this._isShown()||this._isHovered?this._isHovered=!0:(this._isHovered=!0,this._setTimeout(()=>{this._isHovered&&this.show()},this._config.delay.show))}_leave(){this._isWithActiveTrigger()||(this._isHovered=!1,this._setTimeout(()=>{this._isHovered||this.hide()},this._config.delay.hide))}_setTimeout(t,e){clearTimeout(this._timeout),this._timeout=setTimeout(t,e)}_isWithActiveTrigger(){return Object.values(this._activeTrigger).includes(!0)}_getConfig(t){const e=H.getDataAttributes(this._element);for(const t of Object.keys(e))is.has(t)&&delete e[t];return t={...e,..."object"==typeof t&&t?t:{}},t=this._mergeConfigObj(t),t=this._configAfterMerge(t),this._typeCheckConfig(t),t}_configAfterMerge(t){return t.container=!1===t.container?document.body:a(t.container),"number"==typeof t.delay&&(t.delay={show:t.delay,hide:t.delay}),"number"==typeof t.title&&(t.title=t.title.toString()),"number"==typeof t.content&&(t.content=t.content.toString()),t}_getDelegateConfig(){const t={};for(const[e,i]of Object.entries(this._config))this.constructor.Default[e]!==i&&(t[e]=i);return t.selector=!1,t.trigger="manual",t}_disposePopper(){this._popper&&(this._popper.destroy(),this._popper=null),this.tip&&(this.tip.remove(),this.tip=null)}static jQueryInterface(t){return this.each(function(){const e=ps.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t])throw new TypeError(`No method named "${t}"`);e[t]()}})}}g(ps);const ms=".popover-header",gs=".popover-body",_s={...ps.Default,content:"",offset:[0,8],placement:"right",template:'',trigger:"click"},bs={...ps.DefaultType,content:"(null|string|element|function)"};class vs extends ps{static get Default(){return _s}static get DefaultType(){return bs}static get NAME(){return"popover"}_isWithContent(){return this._getTitle()||this._getContent()}_getContentForTemplate(){return{[ms]:this._getTitle(),[gs]:this._getContent()}}_getContent(){return this._resolvePossibleFunction(this._config.content)}static jQueryInterface(t){return this.each(function(){const e=vs.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t])throw new TypeError(`No method named "${t}"`);e[t]()}})}}g(vs);const ys=".bs.scrollspy",ws=`activate${ys}`,As=`click${ys}`,Es=`load${ys}.data-api`,Ts="active",Cs="[href]",Os=".nav-link",xs=`${Os}, .nav-item > ${Os}, .list-group-item`,ks={offset:null,rootMargin:"0px 0px -25%",smoothScroll:!1,target:null,threshold:[.1,.5,1]},Ls={offset:"(number|null)",rootMargin:"string",smoothScroll:"boolean",target:"element",threshold:"array"};class Ss extends B{constructor(t,e){super(t,e),this._targetLinks=new Map,this._observableSections=new Map,this._rootElement="visible"===getComputedStyle(this._element).overflowY?null:this._element,this._activeTarget=null,this._observer=null,this._previousScrollData={visibleEntryTop:0,parentScrollTop:0},this.refresh()}static get Default(){return ks}static get DefaultType(){return Ls}static get NAME(){return"scrollspy"}refresh(){this._initializeTargetsAndObservables(),this._maybeEnableSmoothScroll(),this._observer?this._observer.disconnect():this._observer=this._getNewObserver();for(const t of this._observableSections.values())this._observer.observe(t)}dispose(){this._observer.disconnect(),super.dispose()}_configAfterMerge(t){return t.target=a(t.target)||document.body,t.rootMargin=t.offset?`${t.offset}px 0px -30%`:t.rootMargin,"string"==typeof t.threshold&&(t.threshold=t.threshold.split(",").map(t=>Number.parseFloat(t))),t}_maybeEnableSmoothScroll(){this._config.smoothScroll&&(P.off(this._config.target,As),P.on(this._config.target,As,Cs,t=>{const e=this._observableSections.get(t.target.hash);if(e){t.preventDefault();const i=this._rootElement||window,n=e.offsetTop-this._element.offsetTop;if(i.scrollTo)return void i.scrollTo({top:n,behavior:"smooth"});i.scrollTop=n}}))}_getNewObserver(){const t={root:this._rootElement,threshold:this._config.threshold,rootMargin:this._config.rootMargin};return new IntersectionObserver(t=>this._observerCallback(t),t)}_observerCallback(t){const e=t=>this._targetLinks.get(`#${t.target.id}`),i=t=>{this._previousScrollData.visibleEntryTop=t.target.offsetTop,this._process(e(t))},n=(this._rootElement||document.documentElement).scrollTop,s=n>=this._previousScrollData.parentScrollTop;this._previousScrollData.parentScrollTop=n;for(const o of t){if(!o.isIntersecting){this._activeTarget=null,this._clearActiveClass(e(o));continue}const t=o.target.offsetTop>=this._previousScrollData.visibleEntryTop;if(s&&t){if(i(o),!n)return}else s||t||i(o)}}_initializeTargetsAndObservables(){this._targetLinks=new Map,this._observableSections=new Map;const t=R.find(Cs,this._config.target);for(const e of t){if(!e.hash||c(e))continue;const t=R.findOne(decodeURI(e.hash),this._element);l(t)&&(this._targetLinks.set(decodeURI(e.hash),e),this._observableSections.set(e.hash,t))}}_process(t){this._activeTarget!==t&&(this._clearActiveClass(this._config.target),this._activeTarget=t,t.classList.add(Ts),this._activateParents(t),P.trigger(this._element,ws,{relatedTarget:t}))}_activateParents(t){if(t.classList.contains("dropdown-item"))R.findOne(".dropdown-toggle",t.closest(".dropdown")).classList.add(Ts);else for(const e of R.parents(t,".nav, .list-group"))for(const t of R.prev(e,xs))t.classList.add(Ts)}_clearActiveClass(t){t.classList.remove(Ts);const e=R.find(`${Cs}.${Ts}`,t);for(const t of e)t.classList.remove(Ts)}static jQueryInterface(t){return this.each(function(){const e=Ss.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t]||t.startsWith("_")||"constructor"===t)throw new TypeError(`No method named "${t}"`);e[t]()}})}}P.on(window,Es,()=>{for(const t of R.find('[data-bs-spy="scroll"]'))Ss.getOrCreateInstance(t)}),g(Ss);const Ds=".bs.tab",$s=`hide${Ds}`,Is=`hidden${Ds}`,Ns=`show${Ds}`,Ps=`shown${Ds}`,js=`click${Ds}`,Ms=`keydown${Ds}`,Fs=`load${Ds}`,Hs="ArrowLeft",Ws="ArrowRight",Bs="ArrowUp",zs="ArrowDown",Rs="Home",qs="End",Vs="active",Ks="fade",Qs="show",Xs=".dropdown-toggle",Ys=`:not(${Xs})`,Us='[data-bs-toggle="tab"], [data-bs-toggle="pill"], [data-bs-toggle="list"]',Gs=`.nav-link${Ys}, .list-group-item${Ys}, [role="tab"]${Ys}, ${Us}`,Js=`.${Vs}[data-bs-toggle="tab"], .${Vs}[data-bs-toggle="pill"], .${Vs}[data-bs-toggle="list"]`;class Zs extends B{constructor(t){super(t),this._parent=this._element.closest('.list-group, .nav, [role="tablist"]'),this._parent&&(this._setInitialAttributes(this._parent,this._getChildren()),P.on(this._element,Ms,t=>this._keydown(t)))}static get NAME(){return"tab"}show(){const t=this._element;if(this._elemIsActive(t))return;const e=this._getActiveElem(),i=e?P.trigger(e,$s,{relatedTarget:t}):null;P.trigger(t,Ns,{relatedTarget:e}).defaultPrevented||i&&i.defaultPrevented||(this._deactivate(e,t),this._activate(t,e))}_activate(t,e){t&&(t.classList.add(Vs),this._activate(R.getElementFromSelector(t)),this._queueCallback(()=>{"tab"===t.getAttribute("role")?(t.removeAttribute("tabindex"),t.setAttribute("aria-selected",!0),this._toggleDropDown(t,!0),P.trigger(t,Ps,{relatedTarget:e})):t.classList.add(Qs)},t,t.classList.contains(Ks)))}_deactivate(t,e){t&&(t.classList.remove(Vs),t.blur(),this._deactivate(R.getElementFromSelector(t)),this._queueCallback(()=>{"tab"===t.getAttribute("role")?(t.setAttribute("aria-selected",!1),t.setAttribute("tabindex","-1"),this._toggleDropDown(t,!1),P.trigger(t,Is,{relatedTarget:e})):t.classList.remove(Qs)},t,t.classList.contains(Ks)))}_keydown(t){if(![Hs,Ws,Bs,zs,Rs,qs].includes(t.key))return;t.stopPropagation(),t.preventDefault();const e=this._getChildren().filter(t=>!c(t));let i;if([Rs,qs].includes(t.key))i=e[t.key===Rs?0:e.length-1];else{const n=[Ws,zs].includes(t.key);i=v(e,t.target,n,!0)}i&&(i.focus({preventScroll:!0}),Zs.getOrCreateInstance(i).show())}_getChildren(){return R.find(Gs,this._parent)}_getActiveElem(){return this._getChildren().find(t=>this._elemIsActive(t))||null}_setInitialAttributes(t,e){this._setAttributeIfNotExists(t,"role","tablist");for(const t of e)this._setInitialAttributesOnChild(t)}_setInitialAttributesOnChild(t){t=this._getInnerElement(t);const e=this._elemIsActive(t),i=this._getOuterElement(t);t.setAttribute("aria-selected",e),i!==t&&this._setAttributeIfNotExists(i,"role","presentation"),e||t.setAttribute("tabindex","-1"),this._setAttributeIfNotExists(t,"role","tab"),this._setInitialAttributesOnTargetPanel(t)}_setInitialAttributesOnTargetPanel(t){const e=R.getElementFromSelector(t);e&&(this._setAttributeIfNotExists(e,"role","tabpanel"),t.id&&this._setAttributeIfNotExists(e,"aria-labelledby",`${t.id}`))}_toggleDropDown(t,e){const i=this._getOuterElement(t);if(!i.classList.contains("dropdown"))return;const n=(t,n)=>{const s=R.findOne(t,i);s&&s.classList.toggle(n,e)};n(Xs,Vs),n(".dropdown-menu",Qs),i.setAttribute("aria-expanded",e)}_setAttributeIfNotExists(t,e,i){t.hasAttribute(e)||t.setAttribute(e,i)}_elemIsActive(t){return t.classList.contains(Vs)}_getInnerElement(t){return t.matches(Gs)?t:R.findOne(Gs,t)}_getOuterElement(t){return t.closest(".nav-item, .list-group-item")||t}static jQueryInterface(t){return this.each(function(){const e=Zs.getOrCreateInstance(this);if("string"==typeof t){if(void 0===e[t]||t.startsWith("_")||"constructor"===t)throw new TypeError(`No method named "${t}"`);e[t]()}})}}P.on(document,js,Us,function(t){["A","AREA"].includes(this.tagName)&&t.preventDefault(),c(this)||Zs.getOrCreateInstance(this).show()}),P.on(window,Fs,()=>{for(const t of R.find(Js))Zs.getOrCreateInstance(t)}),g(Zs);const to=".bs.toast",eo=`mouseover${to}`,io=`mouseout${to}`,no=`focusin${to}`,so=`focusout${to}`,oo=`hide${to}`,ro=`hidden${to}`,ao=`show${to}`,lo=`shown${to}`,co="hide",ho="show",uo="showing",fo={animation:"boolean",autohide:"boolean",delay:"number"},po={animation:!0,autohide:!0,delay:5e3};class mo extends B{constructor(t,e){super(t,e),this._timeout=null,this._hasMouseInteraction=!1,this._hasKeyboardInteraction=!1,this._setListeners()}static get Default(){return po}static get DefaultType(){return fo}static get NAME(){return"toast"}show(){P.trigger(this._element,ao).defaultPrevented||(this._clearTimeout(),this._config.animation&&this._element.classList.add("fade"),this._element.classList.remove(co),u(this._element),this._element.classList.add(ho,uo),this._queueCallback(()=>{this._element.classList.remove(uo),P.trigger(this._element,lo),this._maybeScheduleHide()},this._element,this._config.animation))}hide(){this.isShown()&&(P.trigger(this._element,oo).defaultPrevented||(this._element.classList.add(uo),this._queueCallback(()=>{this._element.classList.add(co),this._element.classList.remove(uo,ho),P.trigger(this._element,ro)},this._element,this._config.animation)))}dispose(){this._clearTimeout(),this.isShown()&&this._element.classList.remove(ho),super.dispose()}isShown(){return this._element.classList.contains(ho)}_maybeScheduleHide(){this._config.autohide&&(this._hasMouseInteraction||this._hasKeyboardInteraction||(this._timeout=setTimeout(()=>{this.hide()},this._config.delay)))}_onInteraction(t,e){switch(t.type){case"mouseover":case"mouseout":this._hasMouseInteraction=e;break;case"focusin":case"focusout":this._hasKeyboardInteraction=e}if(e)return void this._clearTimeout();const i=t.relatedTarget;this._element===i||this._element.contains(i)||this._maybeScheduleHide()}_setListeners(){P.on(this._element,eo,t=>this._onInteraction(t,!0)),P.on(this._element,io,t=>this._onInteraction(t,!1)),P.on(this._element,no,t=>this._onInteraction(t,!0)),P.on(this._element,so,t=>this._onInteraction(t,!1))}_clearTimeout(){clearTimeout(this._timeout),this._timeout=null}static jQueryInterface(t){return this.each(function(){const e=mo.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t])throw new TypeError(`No method named "${t}"`);e[t](this)}})}}return q(mo),g(mo),{Alert:X,Button:U,Carousel:St,Collapse:qt,Dropdown:Qi,Modal:Ln,Offcanvas:Qn,Popover:vs,ScrollSpy:Ss,Tab:Zs,Toast:mo,Tooltip:ps}}); +//# sourceMappingURL=bootstrap.bundle.min.js.map \ No newline at end of file diff --git a/source/main/web/cab_disabled.png b/source/main/web/cab_disabled.png new file mode 100644 index 00000000..774be086 Binary files /dev/null and b/source/main/web/cab_disabled.png differ diff --git a/source/main/web/cab_off.png b/source/main/web/cab_off.png new file mode 100644 index 00000000..757b0a10 Binary files /dev/null and b/source/main/web/cab_off.png differ diff --git a/source/main/web/cab_on.png b/source/main/web/cab_on.png new file mode 100644 index 00000000..38049058 Binary files /dev/null and b/source/main/web/cab_on.png differ diff --git a/source/main/web/dly_off.png b/source/main/web/dly_off.png new file mode 100644 index 00000000..7083bb3b Binary files /dev/null and b/source/main/web/dly_off.png differ diff --git a/source/main/web/dly_on.png b/source/main/web/dly_on.png new file mode 100644 index 00000000..6986957a Binary files /dev/null and b/source/main/web/dly_on.png differ diff --git a/source/main/web/dst_off.png b/source/main/web/dst_off.png new file mode 100644 index 00000000..b3ddf1e3 Binary files /dev/null and b/source/main/web/dst_off.png differ diff --git a/source/main/web/dst_on.png b/source/main/web/dst_on.png new file mode 100644 index 00000000..df18ff9a Binary files /dev/null and b/source/main/web/dst_on.png differ diff --git a/source/main/web/effect_icon_amp_off.png b/source/main/web/effect_icon_amp_off.png new file mode 100644 index 00000000..fcf957a4 Binary files /dev/null and b/source/main/web/effect_icon_amp_off.png differ diff --git a/source/main/web/effect_icon_amp_on.png b/source/main/web/effect_icon_amp_on.png new file mode 100644 index 00000000..6b9c367a Binary files /dev/null and b/source/main/web/effect_icon_amp_on.png differ diff --git a/source/main/web/effect_icon_cab_off.png b/source/main/web/effect_icon_cab_off.png new file mode 100644 index 00000000..06cf6c4b Binary files /dev/null and b/source/main/web/effect_icon_cab_off.png differ diff --git a/source/main/web/effect_icon_cab_on.png b/source/main/web/effect_icon_cab_on.png new file mode 100644 index 00000000..293f4bec Binary files /dev/null and b/source/main/web/effect_icon_cab_on.png differ diff --git a/source/main/web/effect_icon_comp_off.png b/source/main/web/effect_icon_comp_off.png new file mode 100644 index 00000000..fdd898fd Binary files /dev/null and b/source/main/web/effect_icon_comp_off.png differ diff --git a/source/main/web/effect_icon_comp_on.png b/source/main/web/effect_icon_comp_on.png new file mode 100644 index 00000000..ba0dc074 Binary files /dev/null and b/source/main/web/effect_icon_comp_on.png differ diff --git a/source/main/web/effect_icon_delay_off.png b/source/main/web/effect_icon_delay_off.png new file mode 100644 index 00000000..11f371a9 Binary files /dev/null and b/source/main/web/effect_icon_delay_off.png differ diff --git a/source/main/web/effect_icon_delay_on_d.png b/source/main/web/effect_icon_delay_on_d.png new file mode 100644 index 00000000..8f79adfb Binary files /dev/null and b/source/main/web/effect_icon_delay_on_d.png differ diff --git a/source/main/web/effect_icon_delay_on_t.png b/source/main/web/effect_icon_delay_on_t.png new file mode 100644 index 00000000..0903acc6 Binary files /dev/null and b/source/main/web/effect_icon_delay_on_t.png differ diff --git a/source/main/web/effect_icon_eq.png b/source/main/web/effect_icon_eq.png new file mode 100644 index 00000000..b680b27f Binary files /dev/null and b/source/main/web/effect_icon_eq.png differ diff --git a/source/main/web/effect_icon_gate_off.png b/source/main/web/effect_icon_gate_off.png new file mode 100644 index 00000000..2095a00f Binary files /dev/null and b/source/main/web/effect_icon_gate_off.png differ diff --git a/source/main/web/effect_icon_gate_on.png b/source/main/web/effect_icon_gate_on.png new file mode 100644 index 00000000..f5d61190 Binary files /dev/null and b/source/main/web/effect_icon_gate_on.png differ diff --git a/source/main/web/effect_icon_mod_off.png b/source/main/web/effect_icon_mod_off.png new file mode 100644 index 00000000..4a61d98e Binary files /dev/null and b/source/main/web/effect_icon_mod_off.png differ diff --git a/source/main/web/effect_icon_mod_on_chorus.png b/source/main/web/effect_icon_mod_on_chorus.png new file mode 100644 index 00000000..e8831935 Binary files /dev/null and b/source/main/web/effect_icon_mod_on_chorus.png differ diff --git a/source/main/web/effect_icon_mod_on_flanger.png b/source/main/web/effect_icon_mod_on_flanger.png new file mode 100644 index 00000000..1757f15f Binary files /dev/null and b/source/main/web/effect_icon_mod_on_flanger.png differ diff --git a/source/main/web/effect_icon_mod_on_phaser.png b/source/main/web/effect_icon_mod_on_phaser.png new file mode 100644 index 00000000..08e5a972 Binary files /dev/null and b/source/main/web/effect_icon_mod_on_phaser.png differ diff --git a/source/main/web/effect_icon_mod_on_rotary.png b/source/main/web/effect_icon_mod_on_rotary.png new file mode 100644 index 00000000..47d86d25 Binary files /dev/null and b/source/main/web/effect_icon_mod_on_rotary.png differ diff --git a/source/main/web/effect_icon_mod_on_tremolo.png b/source/main/web/effect_icon_mod_on_tremolo.png new file mode 100644 index 00000000..37ff701c Binary files /dev/null and b/source/main/web/effect_icon_mod_on_tremolo.png differ diff --git a/source/main/web/effect_icon_reverb_off.png b/source/main/web/effect_icon_reverb_off.png new file mode 100644 index 00000000..e53648f8 Binary files /dev/null and b/source/main/web/effect_icon_reverb_off.png differ diff --git a/source/main/web/effect_icon_reverb_on.png b/source/main/web/effect_icon_reverb_on.png new file mode 100644 index 00000000..1f757e37 Binary files /dev/null and b/source/main/web/effect_icon_reverb_on.png differ diff --git a/source/main/web/effect_icon_reverb_on_p.png b/source/main/web/effect_icon_reverb_on_p.png new file mode 100644 index 00000000..84019943 Binary files /dev/null and b/source/main/web/effect_icon_reverb_on_p.png differ diff --git a/source/main/web/effect_icon_reverb_on_r.png b/source/main/web/effect_icon_reverb_on_r.png new file mode 100644 index 00000000..bc6b96de Binary files /dev/null and b/source/main/web/effect_icon_reverb_on_r.png differ diff --git a/source/main/web/effect_icon_reverb_on_s1.png b/source/main/web/effect_icon_reverb_on_s1.png new file mode 100644 index 00000000..9c22de16 Binary files /dev/null and b/source/main/web/effect_icon_reverb_on_s1.png differ diff --git a/source/main/web/effect_icon_reverb_on_s2.png b/source/main/web/effect_icon_reverb_on_s2.png new file mode 100644 index 00000000..1f17b038 Binary files /dev/null and b/source/main/web/effect_icon_reverb_on_s2.png differ diff --git a/source/main/web/effect_icon_reverb_on_s3.png b/source/main/web/effect_icon_reverb_on_s3.png new file mode 100644 index 00000000..130b2723 Binary files /dev/null and b/source/main/web/effect_icon_reverb_on_s3.png differ diff --git a/source/main/web/effect_icon_reverb_on_s4.png b/source/main/web/effect_icon_reverb_on_s4.png new file mode 100644 index 00000000..d8d89060 Binary files /dev/null and b/source/main/web/effect_icon_reverb_on_s4.png differ diff --git a/source/main/web/eq_off.png b/source/main/web/eq_off.png new file mode 100644 index 00000000..e326ad0e Binary files /dev/null and b/source/main/web/eq_off.png differ diff --git a/source/main/web/eq_on.png b/source/main/web/eq_on.png new file mode 100644 index 00000000..39ae6b04 Binary files /dev/null and b/source/main/web/eq_on.png differ diff --git a/source/main/web/favicon.ico b/source/main/web/favicon.ico new file mode 100644 index 00000000..ee38118a Binary files /dev/null and b/source/main/web/favicon.ico differ diff --git a/source/main/web/index.css b/source/main/web/index.css new file mode 100644 index 00000000..935a749a --- /dev/null +++ b/source/main/web/index.css @@ -0,0 +1,439 @@ +.bg{ + background-color: #1F1F1F; +} + +.nav_bg{ + background-color: #2A2A2A; +} + +.nav_text{ + color: #C0C0C0; +} + +.selected_text{ + color: #FB9230; +} + +input[type=range]{ + -webkit-appearance: none; +} + +input[type=range]::-webkit-slider-runnable-track { + width: 300px; + height: 5px; + background: #666666; + border: none; + border-radius: 3px; +} + +input[type=range]::-webkit-slider-thumb { + -webkit-appearance: none; + border: none; + height: 16px; + width: 16px; + border-radius: 50%; + background: #FB9230; + margin-top: -4px; + box-shadow: 0 2px 6px rgba(0,0,0,0.6); +} + +input[type=range]:focus { + outline: none; +} + +input[type=range]:focus::-webkit-slider-runnable-track { + background: #888; +} + +.tab { + float: left; + background-color: #2A2A2A; + width: 15%; + min-width: 70px; + height: 640px; +} + +/* Style the buttons inside the tab */ +.tab button { + display: block; + background-color: inherit; + color: #C0C0C0; + padding: 17px 10px; + width: 100%; + border: none; + outline: none; + text-align: left; + cursor: pointer; + transition: 0.3s; + font-size: 18px; +} + +/* Change background color of buttons on hover */ +.tab button:hover { + background-color: #513D2B; +} + +/* Create an active/current "tab button" class */ +.tab button.active { + background-color: #513D2B; + color: #FB9230; +} + +/* Style the tab content */ +.tabcontent { + float: left; + padding: 0px 6px; + width: 75%; + border-left: none; + height: 500px; +} + +.form-switch .form-check-input { + height: 20px; + width: 42px; + background-color: #666666; + fill: #ffffff; +} + +.form-switch .form-check-input:checked { + background-color: #513D2B; + border-color: #FB9230; +} + +.bootstrap-select.btn-group .dropdown-menu li a:hover { + color: whitesmoke !important; + background: #bf5279 !important; + } + +/* Toast */ +#toast { + visibility: hidden; + min-width: 300px; + margin-left: -150px; + background-color: #2A2A2A; + color: #FFF; + text-align: center; /* Fallback for non-flex scenarios */ + border-radius: 10px; + padding: 20px; + position: fixed; + z-index: 1050; + left: 50%; + bottom: 50%; + font-size: 18px; + outline: #FB9230 solid 5px; + box-sizing: border-box; + display: flex; + align-items: center; + justify-content: center; + height: auto; + min-height: 90px; +} + +.toast-container{ + display: flex; + justify-content: center; + align-items: center; + width: 100%; + height: 100%; +} + +#toast-text{ + text-align: center; + margin: 0; + padding: 0; + white-space: normal; +} + +/* Show the toast when clicking on a button (class added with JavaScript) */ +#toast.show { + visibility: visible; /* Show the toast */ + /* Add animation: Take 0.5 seconds to fade in and out the toast. + However, delay the fade out process for 2.5 seconds */ + -webkit-animation: fadein 0.5s, fadeout 0.5s 2.5s; + animation: fadein 0.5s, fadeout 0.5s 2.5s; +} + +.select_style { + width: 100%; + max-width: 350px; + color:white; + background: #1f1f1f; +} + +.text_entry_style { + width: 100%; + max-width: 350px; + color:white; + background: #1f1f1f; +} + +.mod-table-server-icon{ + padding-left: 5%; + width: 10%; +} + +.mod-table-server-text{ + padding-left: 10%; + padding-top: 3%; +} + +.fxtab { + background-color: #2A2A2A; + width: 100%; + max-width: 370px; +} + +/* Style the buttons inside the tab */ +.fxtab button { + display: block; + background-color: inherit; + color: #C0C0C0; + padding: 10px 5px; + width: 100%; + border: none; + outline: none; + text-align: left; + cursor: pointer; + transition: 0.3s; + font-size: 14px; +} + +/* Change background color of buttons on hover */ +.fxtab button:hover { + background-color: #513D2B; +} + +/* Create an active/current "tab button" class */ +.fxtab button.active { + background-color: #513D2B; + color: #FB9230; +} + +/* Style the tab content */ +.fxtabcontent { + padding: 0px 6px; + border-left: none; +} + +/* Style the buttons inside the tab */ +.fxtablink { + color: #C0C0C0; + padding: 10px 10px; +} + +.ifxtabcontent { + padding: 0px 6px; + border-left: none; +} + +/* Style the buttons inside the tab */ +.ifxtablink { + color: #C0C0C0; + padding: 10px 10px; +} + +.bpm-tap{ + width: 50%; + height: 150px; + margin-left: 25%; + border-radius: 25px; + border-color: #FB9230; + border-width: 4px; + border-style: none; + background-color: #2A2A2A; + transition: background 0.2s; + box-shadow: 0px 2px 15px #00000030; +} + +.bpm-tap:active { + background: #513D2B; +} + +.dl-indicator{ + width: 25px; + height: 25px; + border-radius: 50%; + background-color: #2A2A2A; + box-shadow: 0px 2px 15px #00000030; +} + +.mo-indicator{ + width: 25px; + height: 25px; + border-radius: 50%; + background-color: #2A2A2A; + box-shadow: 0px 2px 15px #00000030; + animation: mo-animation; + animation-duration: 0s; + animation-iteration-count: infinite; +} + +@keyframes mo-animation { + 0% { + background-color: #2A2A2A; + box-shadow: 0px 2px 15px #00000030; + } + 50% { + background-color: #FB9230; + box-shadow: 0 2px 15px #FB9230d0; + } + 100% { + background-color: #2A2A2A; + box-shadow: 0px 2px 15px #00000030; + } +} + +* { + /* prevents zoom when double-tapping tap tempo */ + touch-action: manipulation; +} + +.preset-order-item { + border: 1px solid #ced4da; + border-radius: .375rem; + padding: 2px; + margin: 2px; +} + +.preset-order-item :first-child { + margin-top: -0.2em; +} + +.preset-order-item :nth-child(2) { + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; +} + +.preset-orderbank { + padding: 2px; +} + +.preset-orderbank > div { + height: 100%; + border: 1px solid #ced4da; + border-radius: .375rem; + display: flex; + justify-content: center; + align-items: center; +} + +.preset-orderbank > div > span { + writing-mode: vertical-lr; + transform: scale(-1); +} + +#value_input_bg { + top: 0; + left: 0; + position:fixed; + height:100%; + width:100%; + z_index:0; + background: rgba(0, 0,0, 0.7); + display: none; +} + +#value_input { + color: #ccc; + opacity: 1; + position:fixed; + background-color: #333; + text-align:center; + border: 5px solid; + position: absolute; + top: 40%; + left: 50%; + transform: translate(-50%, -50%); + padding: 10px; + display: none; +} + +.home-label { + color: #ccc; + text-align:center; +} + +.fx_icon_container { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(65px, 1fr)); + gap: 8px 8px; + justify-items: center; + align-items: center; + width: 100%; + padding: 8px 8px; + box-sizing: border-box; +} + +.fx_icon_container img { + height: 70px; + width: auto; + max-width: 100%; +} + +@media (max-width: 560px) { + .fx_icon_container { + grid-template-columns: repeat(4, 1fr); + } +} + +.oscilloscope-container { + display: flex; + justify-content: center; + align-items: center; + width: 100%; + height: 400px; +} +canvas { + width: 100%; + height: 300px; +} + +.text-orange { color: #FB9230; } + +.tablinks:not([data-show-for]), +.tablinks.hidden { + display: none !important; +} + +@media (max-width: 767.98px) { + .navbar-brand { margin-bottom: 8px !important; } +} + +.content-section { + display: none; /* hidden by default */ + padding: 0.4rem 0.4rem; /* reduced padding, especially on mobile */ + min-height: calc(100vh - 66px); /* full height minus navbar height */ +} +.content-section.active { + display: block; /* shown when it has .active */ +} + +/* Optional smooth fade */ +.content-section { + opacity: 0; + transition: opacity 0.35s ease; +} +.content-section.active { + opacity: 1; +} + +.content-wrapper { + margin: 0 !important; + padding: 0 !important; + width: 90vw; +} + +/* Preset selector: full-width on small screens, nice max on large screens */ +#set_preset { + width: 300px; + max-width: 500px; /* looks perfect on desktop/tablet */ + margin-left: auto; + margin-right: auto; +} + +/* On phones: add safe side padding so it never touches the edge */ +@media (max-width: 576px) { + .px-3 { padding-left: 1rem !important; padding-right: 1rem !important; } + #set_preset { max-width: none !important; } /* full width but with padding */ +} diff --git a/source/main/web/index.html b/source/main/web/index.html new file mode 100644 index 00000000..773449bb --- /dev/null +++ b/source/main/web/index.html @@ -0,0 +1,2132 @@ + + + + + + + + + Tonex/GP5 Controller Project + + + + + + + + + + + + + +
+
+
+
+ + + + + + + + +
+
+
+ +
+
+ +
+
+
+
+ +
+ +
+
+
+ +
+
+
Noise Gate
+

+

+
+
+
+ + +
+
+
+
+ + +
+
+
+
+
+
+ + +
+
+ + +
+
+ + +
+

+
+
+ +
+
+
Compressor
+

+

+
+
+
+ + +
+
+
+
+ + +
+
+
+
+
+
+ + +
+
+ + +
+
+ + +
+

+
+
+ +
+
+
Equalisation
+

+

+
+
+
+ + +
+
+
+
+
+
+
+
+
+ +
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+

+
+
+ +
+
+
Reverb
+

+

+
+
+
+ + +
+
+
+
+ + +
+
+
+
+
+
+ + +
+
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+ +

+
+
+ +
+
+
Modulation
+

+

+
+
+
+ + +
+
+
+
+ + +
+
+
+
+
+
+
+
+
+ + +
+
+
+
+
+
+
+
+
+
+ + +
+
+
+ + +
+
+
+
+
+ +
+
+
+
+
+ +
+
+ + +
+
+ + +
+
+ + +
+

+
+
+ +
+
+
Delay
+

+

+
+
+
+ + +
+
+
+
+ + +
+
+
+
+
+
+
+
+
+ + +
+
+
+
+ + +
+
+
+
+
+
+ + +
+
+
+
+
+ +
+
+
+
+
+ +
+
+ + +
+
+
+ + +
+
+ + +
+

+
+
+ +
+
+
Amplifier
+

+

+
+
+
+ + +
+
+
+
+
+
+ + +
+
+ + +
+
+ + +
+ +
+ + +
+ +
+ + +
+

+
+
+ +
+
+
Cabinet
+

+

+ + +
+

+
+
+ +
+
+
Global
+

+

+
+
+
+ + +
+
+
+
+ + +
+
+
+
+
+
+
+
+
+ + +
+
+
+
+
+
+
+
+
+
TAP
+
+
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+

+
+
+ +
+
+
Noise Reduction
+

+

+
+
+
+ + +
+
+
+
+
+
+
+
+ + +
+
+
+ + +
+

+
+
+ +
+
+
Pre
+

+

+
+
+
+ + +
+
+
+
+
+
+
+
+ + +
+
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+

+
+
+ +
+
+
Amplifier
+

+

+
+
+
+ + +
+
+
+
+
+
+
+
+ + +
+
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+

+
+
+ +
+
+
Cabinet
+

+

+
+
+
+ + +
+
+
+
+
+
+
+
+ + +
+
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+

+
+
+ +
+
+
Equaliser
+

+

+
+
+
+ + +
+
+
+
+
+
+
+
+ + +
+
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+ +

+
+
+ +
+
+
Distortion
+

+

+
+
+
+ + +
+
+
+
+
+
+
+
+ + +
+
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+

+
+
+ +
+
+
Modulation
+

+

+
+
+
+ + +
+
+
+
+
+
+
+
+ + +
+
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+

+
+
+ +
+
+
Delay
+

+

+
+
+
+ + +
+
+
+
+
+
+
+
+ + +
+
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+

+
+
+ +
+
+
Reverb
+

+

+
+
+
+ + +
+
+
+
+
+
+
+
+ + +
+
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+

+
+
+ +
+
+
Snaptone
+

+

+
+
+
+ + +
+
+
+
+
+
+
+
+ + +
+
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+

+
+
+ +
+
+
Patch
+

+

+ + +
+

+
+
+ +
+
+
Global
+

+

+
+
+
+ + +
+
+
+
+
+
+
+
+
+
TAP
+
+
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+

+
+
+ +
+
+
Presets
+

+

+
+
+
+ +
+
+
+
+
+
+
+ +
+

+
+
+ +
+
+
Bluetooth
+

+

+ + +
+
+
+
+ + +
+
+
+
+
+ + +
+
+
+
+
+
+ + +
+
+
+
+ +
+
+
+
+
+ + +
+
+
+
+
+ +
+

+
+
+ +
+
+
Midi
+

+

+
+ + +
+
+
+
+ + +
+
+
+
+ +
+

+
+
+ +
+
+
Directly Connected Footswitches
+

+

+ + +
+
+
+
+ + + + +
+
+
+
+ + +
+
+
+ + +
+
+
+ + + + +
+
+
+ + + + +
+
+
+
+ + +
+
+
+ + +
+
+
+ + + + +
+
+
+ + + + +
+
+
+
+ + +
+
+
+ + +
+
+
+ + + + +
+
+
+ + + + +
+
+
+
+ + +
+
+
+ + +
+
+
+ + + + +
+
+
+ + + + +
+
+
+
+
+ +
+

+
+
+ +
+
+
External Expander Footswitches
+

+

+ + +
+
+
+
+ + + + + + + + +
+
+
+
+ + +
+
+
+ + +
+
+
+ + + + +
+
+
+ + + + +
+
+
+
+ + +
+
+
+ + +
+
+
+ + + + +
+
+
+ + + + +
+
+
+
+ + +
+
+
+ + +
+
+
+ + + + +
+
+
+ + + + +
+
+
+
+ + +
+
+
+ + +
+
+
+ + + + +
+
+
+ + + + +
+
+
+
+ + +
+
+
+ + +
+
+
+ + + + +
+
+
+ + + + +
+
+
+
+ + +
+
+
+ + +
+
+
+ + + + +
+
+
+ + + + +
+
+
+
+ + +
+
+
+ + +
+
+
+ + + + +
+
+
+ + + + +
+
+
+
+ + +
+
+
+ + +
+
+
+ + + + +
+
+
+ + + + +
+
+
+
+
+ +
+

+
+
+ +
+
+
WiFi
+

+

+ + +
+
+
+ + +
+
+
+
+
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+
+ +
+

+
+
+ +
+
+
Miscellaneous
+

+

+
+ + +
+
+
+
+ + +
+
+
+
+ + +
+
+
+
+ + +
+
+
+
+ + +
+
+
+
+
+ +
+

+
+
+
+ +
+ + + + + + + + + + diff --git a/source/main/web/jquery.js b/source/main/web/jquery.js new file mode 100644 index 00000000..5d892ea0 --- /dev/null +++ b/source/main/web/jquery.js @@ -0,0 +1,5 @@ +/*! jQuery v3.2.1 | (c) JS Foundation and other contributors | jquery.org/license */ +!function(a,b){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=a.document?b(a,!0):function(a){if(!a.document)throw new Error("jQuery requires a window with a document");return b(a)}:b(a)}("undefined"!=typeof window?window:this,function(a,b){"use strict";var c=[],d=a.document,e=Object.getPrototypeOf,f=c.slice,g=c.concat,h=c.push,i=c.indexOf,j={},k=j.toString,l=j.hasOwnProperty,m=l.toString,n=m.call(Object),o={};function p(a,b){b=b||d;var c=b.createElement("script");c.text=a,b.head.appendChild(c).parentNode.removeChild(c)}var q="3.2.1",r=function(a,b){return new r.fn.init(a,b)},s=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,t=/^-ms-/,u=/-([a-z])/g,v=function(a,b){return b.toUpperCase()};r.fn=r.prototype={jquery:q,constructor:r,length:0,toArray:function(){return f.call(this)},get:function(a){return null==a?f.call(this):a<0?this[a+this.length]:this[a]},pushStack:function(a){var b=r.merge(this.constructor(),a);return b.prevObject=this,b},each:function(a){return r.each(this,a)},map:function(a){return this.pushStack(r.map(this,function(b,c){return a.call(b,c,b)}))},slice:function(){return this.pushStack(f.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(a){var b=this.length,c=+a+(a<0?b:0);return this.pushStack(c>=0&&c0&&b-1 in a)}var x=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u="sizzle"+1*new Date,v=a.document,w=0,x=0,y=ha(),z=ha(),A=ha(),B=function(a,b){return a===b&&(l=!0),0},C={}.hasOwnProperty,D=[],E=D.pop,F=D.push,G=D.push,H=D.slice,I=function(a,b){for(var c=0,d=a.length;c+~]|"+K+")"+K+"*"),S=new RegExp("="+K+"*([^\\]'\"]*?)"+K+"*\\]","g"),T=new RegExp(N),U=new RegExp("^"+L+"$"),V={ID:new RegExp("^#("+L+")"),CLASS:new RegExp("^\\.("+L+")"),TAG:new RegExp("^("+L+"|[*])"),ATTR:new RegExp("^"+M),PSEUDO:new RegExp("^"+N),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+K+"*(even|odd|(([+-]|)(\\d*)n|)"+K+"*(?:([+-]|)"+K+"*(\\d+)|))"+K+"*\\)|)","i"),bool:new RegExp("^(?:"+J+")$","i"),needsContext:new RegExp("^"+K+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+K+"*((?:-\\d)?\\d*)"+K+"*\\)|)(?=[^-]|$)","i")},W=/^(?:input|select|textarea|button)$/i,X=/^h\d$/i,Y=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,$=/[+~]/,_=new RegExp("\\\\([\\da-f]{1,6}"+K+"?|("+K+")|.)","ig"),aa=function(a,b,c){var d="0x"+b-65536;return d!==d||c?b:d<0?String.fromCharCode(d+65536):String.fromCharCode(d>>10|55296,1023&d|56320)},ba=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ca=function(a,b){return b?"\0"===a?"\ufffd":a.slice(0,-1)+"\\"+a.charCodeAt(a.length-1).toString(16)+" ":"\\"+a},da=function(){m()},ea=ta(function(a){return a.disabled===!0&&("form"in a||"label"in a)},{dir:"parentNode",next:"legend"});try{G.apply(D=H.call(v.childNodes),v.childNodes),D[v.childNodes.length].nodeType}catch(fa){G={apply:D.length?function(a,b){F.apply(a,H.call(b))}:function(a,b){var c=a.length,d=0;while(a[c++]=b[d++]);a.length=c-1}}}function ga(a,b,d,e){var f,h,j,k,l,o,r,s=b&&b.ownerDocument,w=b?b.nodeType:9;if(d=d||[],"string"!=typeof a||!a||1!==w&&9!==w&&11!==w)return d;if(!e&&((b?b.ownerDocument||b:v)!==n&&m(b),b=b||n,p)){if(11!==w&&(l=Z.exec(a)))if(f=l[1]){if(9===w){if(!(j=b.getElementById(f)))return d;if(j.id===f)return d.push(j),d}else if(s&&(j=s.getElementById(f))&&t(b,j)&&j.id===f)return d.push(j),d}else{if(l[2])return G.apply(d,b.getElementsByTagName(a)),d;if((f=l[3])&&c.getElementsByClassName&&b.getElementsByClassName)return G.apply(d,b.getElementsByClassName(f)),d}if(c.qsa&&!A[a+" "]&&(!q||!q.test(a))){if(1!==w)s=b,r=a;else if("object"!==b.nodeName.toLowerCase()){(k=b.getAttribute("id"))?k=k.replace(ba,ca):b.setAttribute("id",k=u),o=g(a),h=o.length;while(h--)o[h]="#"+k+" "+sa(o[h]);r=o.join(","),s=$.test(a)&&qa(b.parentNode)||b}if(r)try{return G.apply(d,s.querySelectorAll(r)),d}catch(x){}finally{k===u&&b.removeAttribute("id")}}}return i(a.replace(P,"$1"),b,d,e)}function ha(){var a=[];function b(c,e){return a.push(c+" ")>d.cacheLength&&delete b[a.shift()],b[c+" "]=e}return b}function ia(a){return a[u]=!0,a}function ja(a){var b=n.createElement("fieldset");try{return!!a(b)}catch(c){return!1}finally{b.parentNode&&b.parentNode.removeChild(b),b=null}}function ka(a,b){var c=a.split("|"),e=c.length;while(e--)d.attrHandle[c[e]]=b}function la(a,b){var c=b&&a,d=c&&1===a.nodeType&&1===b.nodeType&&a.sourceIndex-b.sourceIndex;if(d)return d;if(c)while(c=c.nextSibling)if(c===b)return-1;return a?1:-1}function ma(a){return function(b){var c=b.nodeName.toLowerCase();return"input"===c&&b.type===a}}function na(a){return function(b){var c=b.nodeName.toLowerCase();return("input"===c||"button"===c)&&b.type===a}}function oa(a){return function(b){return"form"in b?b.parentNode&&b.disabled===!1?"label"in b?"label"in b.parentNode?b.parentNode.disabled===a:b.disabled===a:b.isDisabled===a||b.isDisabled!==!a&&ea(b)===a:b.disabled===a:"label"in b&&b.disabled===a}}function pa(a){return ia(function(b){return b=+b,ia(function(c,d){var e,f=a([],c.length,b),g=f.length;while(g--)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}function qa(a){return a&&"undefined"!=typeof a.getElementsByTagName&&a}c=ga.support={},f=ga.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return!!b&&"HTML"!==b.nodeName},m=ga.setDocument=function(a){var b,e,g=a?a.ownerDocument||a:v;return g!==n&&9===g.nodeType&&g.documentElement?(n=g,o=n.documentElement,p=!f(n),v!==n&&(e=n.defaultView)&&e.top!==e&&(e.addEventListener?e.addEventListener("unload",da,!1):e.attachEvent&&e.attachEvent("onunload",da)),c.attributes=ja(function(a){return a.className="i",!a.getAttribute("className")}),c.getElementsByTagName=ja(function(a){return a.appendChild(n.createComment("")),!a.getElementsByTagName("*").length}),c.getElementsByClassName=Y.test(n.getElementsByClassName),c.getById=ja(function(a){return o.appendChild(a).id=u,!n.getElementsByName||!n.getElementsByName(u).length}),c.getById?(d.filter.ID=function(a){var b=a.replace(_,aa);return function(a){return a.getAttribute("id")===b}},d.find.ID=function(a,b){if("undefined"!=typeof b.getElementById&&p){var c=b.getElementById(a);return c?[c]:[]}}):(d.filter.ID=function(a){var b=a.replace(_,aa);return function(a){var c="undefined"!=typeof a.getAttributeNode&&a.getAttributeNode("id");return c&&c.value===b}},d.find.ID=function(a,b){if("undefined"!=typeof b.getElementById&&p){var c,d,e,f=b.getElementById(a);if(f){if(c=f.getAttributeNode("id"),c&&c.value===a)return[f];e=b.getElementsByName(a),d=0;while(f=e[d++])if(c=f.getAttributeNode("id"),c&&c.value===a)return[f]}return[]}}),d.find.TAG=c.getElementsByTagName?function(a,b){return"undefined"!=typeof b.getElementsByTagName?b.getElementsByTagName(a):c.qsa?b.querySelectorAll(a):void 0}:function(a,b){var c,d=[],e=0,f=b.getElementsByTagName(a);if("*"===a){while(c=f[e++])1===c.nodeType&&d.push(c);return d}return f},d.find.CLASS=c.getElementsByClassName&&function(a,b){if("undefined"!=typeof b.getElementsByClassName&&p)return b.getElementsByClassName(a)},r=[],q=[],(c.qsa=Y.test(n.querySelectorAll))&&(ja(function(a){o.appendChild(a).innerHTML="",a.querySelectorAll("[msallowcapture^='']").length&&q.push("[*^$]="+K+"*(?:''|\"\")"),a.querySelectorAll("[selected]").length||q.push("\\["+K+"*(?:value|"+J+")"),a.querySelectorAll("[id~="+u+"-]").length||q.push("~="),a.querySelectorAll(":checked").length||q.push(":checked"),a.querySelectorAll("a#"+u+"+*").length||q.push(".#.+[+~]")}),ja(function(a){a.innerHTML="";var b=n.createElement("input");b.setAttribute("type","hidden"),a.appendChild(b).setAttribute("name","D"),a.querySelectorAll("[name=d]").length&&q.push("name"+K+"*[*^$|!~]?="),2!==a.querySelectorAll(":enabled").length&&q.push(":enabled",":disabled"),o.appendChild(a).disabled=!0,2!==a.querySelectorAll(":disabled").length&&q.push(":enabled",":disabled"),a.querySelectorAll("*,:x"),q.push(",.*:")})),(c.matchesSelector=Y.test(s=o.matches||o.webkitMatchesSelector||o.mozMatchesSelector||o.oMatchesSelector||o.msMatchesSelector))&&ja(function(a){c.disconnectedMatch=s.call(a,"*"),s.call(a,"[s!='']:x"),r.push("!=",N)}),q=q.length&&new RegExp(q.join("|")),r=r.length&&new RegExp(r.join("|")),b=Y.test(o.compareDocumentPosition),t=b||Y.test(o.contains)?function(a,b){var c=9===a.nodeType?a.documentElement:a,d=b&&b.parentNode;return a===d||!(!d||1!==d.nodeType||!(c.contains?c.contains(d):a.compareDocumentPosition&&16&a.compareDocumentPosition(d)))}:function(a,b){if(b)while(b=b.parentNode)if(b===a)return!0;return!1},B=b?function(a,b){if(a===b)return l=!0,0;var d=!a.compareDocumentPosition-!b.compareDocumentPosition;return d?d:(d=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1,1&d||!c.sortDetached&&b.compareDocumentPosition(a)===d?a===n||a.ownerDocument===v&&t(v,a)?-1:b===n||b.ownerDocument===v&&t(v,b)?1:k?I(k,a)-I(k,b):0:4&d?-1:1)}:function(a,b){if(a===b)return l=!0,0;var c,d=0,e=a.parentNode,f=b.parentNode,g=[a],h=[b];if(!e||!f)return a===n?-1:b===n?1:e?-1:f?1:k?I(k,a)-I(k,b):0;if(e===f)return la(a,b);c=a;while(c=c.parentNode)g.unshift(c);c=b;while(c=c.parentNode)h.unshift(c);while(g[d]===h[d])d++;return d?la(g[d],h[d]):g[d]===v?-1:h[d]===v?1:0},n):n},ga.matches=function(a,b){return ga(a,null,null,b)},ga.matchesSelector=function(a,b){if((a.ownerDocument||a)!==n&&m(a),b=b.replace(S,"='$1']"),c.matchesSelector&&p&&!A[b+" "]&&(!r||!r.test(b))&&(!q||!q.test(b)))try{var d=s.call(a,b);if(d||c.disconnectedMatch||a.document&&11!==a.document.nodeType)return d}catch(e){}return ga(b,n,null,[a]).length>0},ga.contains=function(a,b){return(a.ownerDocument||a)!==n&&m(a),t(a,b)},ga.attr=function(a,b){(a.ownerDocument||a)!==n&&m(a);var e=d.attrHandle[b.toLowerCase()],f=e&&C.call(d.attrHandle,b.toLowerCase())?e(a,b,!p):void 0;return void 0!==f?f:c.attributes||!p?a.getAttribute(b):(f=a.getAttributeNode(b))&&f.specified?f.value:null},ga.escape=function(a){return(a+"").replace(ba,ca)},ga.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)},ga.uniqueSort=function(a){var b,d=[],e=0,f=0;if(l=!c.detectDuplicates,k=!c.sortStable&&a.slice(0),a.sort(B),l){while(b=a[f++])b===a[f]&&(e=d.push(f));while(e--)a.splice(d[e],1)}return k=null,a},e=ga.getText=function(a){var b,c="",d=0,f=a.nodeType;if(f){if(1===f||9===f||11===f){if("string"==typeof a.textContent)return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=e(a)}else if(3===f||4===f)return a.nodeValue}else while(b=a[d++])c+=e(b);return c},d=ga.selectors={cacheLength:50,createPseudo:ia,match:V,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(_,aa),a[3]=(a[3]||a[4]||a[5]||"").replace(_,aa),"~="===a[2]&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),"nth"===a[1].slice(0,3)?(a[3]||ga.error(a[0]),a[4]=+(a[4]?a[5]+(a[6]||1):2*("even"===a[3]||"odd"===a[3])),a[5]=+(a[7]+a[8]||"odd"===a[3])):a[3]&&ga.error(a[0]),a},PSEUDO:function(a){var b,c=!a[6]&&a[2];return V.CHILD.test(a[0])?null:(a[3]?a[2]=a[4]||a[5]||"":c&&T.test(c)&&(b=g(c,!0))&&(b=c.indexOf(")",c.length-b)-c.length)&&(a[0]=a[0].slice(0,b),a[2]=c.slice(0,b)),a.slice(0,3))}},filter:{TAG:function(a){var b=a.replace(_,aa).toLowerCase();return"*"===a?function(){return!0}:function(a){return a.nodeName&&a.nodeName.toLowerCase()===b}},CLASS:function(a){var b=y[a+" "];return b||(b=new RegExp("(^|"+K+")"+a+"("+K+"|$)"))&&y(a,function(a){return b.test("string"==typeof a.className&&a.className||"undefined"!=typeof a.getAttribute&&a.getAttribute("class")||"")})},ATTR:function(a,b,c){return function(d){var e=ga.attr(d,a);return null==e?"!="===b:!b||(e+="","="===b?e===c:"!="===b?e!==c:"^="===b?c&&0===e.indexOf(c):"*="===b?c&&e.indexOf(c)>-1:"$="===b?c&&e.slice(-c.length)===c:"~="===b?(" "+e.replace(O," ")+" ").indexOf(c)>-1:"|="===b&&(e===c||e.slice(0,c.length+1)===c+"-"))}},CHILD:function(a,b,c,d,e){var f="nth"!==a.slice(0,3),g="last"!==a.slice(-4),h="of-type"===b;return 1===d&&0===e?function(a){return!!a.parentNode}:function(b,c,i){var j,k,l,m,n,o,p=f!==g?"nextSibling":"previousSibling",q=b.parentNode,r=h&&b.nodeName.toLowerCase(),s=!i&&!h,t=!1;if(q){if(f){while(p){m=b;while(m=m[p])if(h?m.nodeName.toLowerCase()===r:1===m.nodeType)return!1;o=p="only"===a&&!o&&"nextSibling"}return!0}if(o=[g?q.firstChild:q.lastChild],g&&s){m=q,l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),j=k[a]||[],n=j[0]===w&&j[1],t=n&&j[2],m=n&&q.childNodes[n];while(m=++n&&m&&m[p]||(t=n=0)||o.pop())if(1===m.nodeType&&++t&&m===b){k[a]=[w,n,t];break}}else if(s&&(m=b,l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),j=k[a]||[],n=j[0]===w&&j[1],t=n),t===!1)while(m=++n&&m&&m[p]||(t=n=0)||o.pop())if((h?m.nodeName.toLowerCase()===r:1===m.nodeType)&&++t&&(s&&(l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),k[a]=[w,t]),m===b))break;return t-=e,t===d||t%d===0&&t/d>=0}}},PSEUDO:function(a,b){var c,e=d.pseudos[a]||d.setFilters[a.toLowerCase()]||ga.error("unsupported pseudo: "+a);return e[u]?e(b):e.length>1?(c=[a,a,"",b],d.setFilters.hasOwnProperty(a.toLowerCase())?ia(function(a,c){var d,f=e(a,b),g=f.length;while(g--)d=I(a,f[g]),a[d]=!(c[d]=f[g])}):function(a){return e(a,0,c)}):e}},pseudos:{not:ia(function(a){var b=[],c=[],d=h(a.replace(P,"$1"));return d[u]?ia(function(a,b,c,e){var f,g=d(a,null,e,[]),h=a.length;while(h--)(f=g[h])&&(a[h]=!(b[h]=f))}):function(a,e,f){return b[0]=a,d(b,null,f,c),b[0]=null,!c.pop()}}),has:ia(function(a){return function(b){return ga(a,b).length>0}}),contains:ia(function(a){return a=a.replace(_,aa),function(b){return(b.textContent||b.innerText||e(b)).indexOf(a)>-1}}),lang:ia(function(a){return U.test(a||"")||ga.error("unsupported lang: "+a),a=a.replace(_,aa).toLowerCase(),function(b){var c;do if(c=p?b.lang:b.getAttribute("xml:lang")||b.getAttribute("lang"))return c=c.toLowerCase(),c===a||0===c.indexOf(a+"-");while((b=b.parentNode)&&1===b.nodeType);return!1}}),target:function(b){var c=a.location&&a.location.hash;return c&&c.slice(1)===b.id},root:function(a){return a===o},focus:function(a){return a===n.activeElement&&(!n.hasFocus||n.hasFocus())&&!!(a.type||a.href||~a.tabIndex)},enabled:oa(!1),disabled:oa(!0),checked:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&!!a.checked||"option"===b&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},empty:function(a){for(a=a.firstChild;a;a=a.nextSibling)if(a.nodeType<6)return!1;return!0},parent:function(a){return!d.pseudos.empty(a)},header:function(a){return X.test(a.nodeName)},input:function(a){return W.test(a.nodeName)},button:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&"button"===a.type||"button"===b},text:function(a){var b;return"input"===a.nodeName.toLowerCase()&&"text"===a.type&&(null==(b=a.getAttribute("type"))||"text"===b.toLowerCase())},first:pa(function(){return[0]}),last:pa(function(a,b){return[b-1]}),eq:pa(function(a,b,c){return[c<0?c+b:c]}),even:pa(function(a,b){for(var c=0;c=0;)a.push(d);return a}),gt:pa(function(a,b,c){for(var d=c<0?c+b:c;++d1?function(b,c,d){var e=a.length;while(e--)if(!a[e](b,c,d))return!1;return!0}:a[0]}function va(a,b,c){for(var d=0,e=b.length;d-1&&(f[j]=!(g[j]=l))}}else r=wa(r===g?r.splice(o,r.length):r),e?e(null,g,r,i):G.apply(g,r)})}function ya(a){for(var b,c,e,f=a.length,g=d.relative[a[0].type],h=g||d.relative[" "],i=g?1:0,k=ta(function(a){return a===b},h,!0),l=ta(function(a){return I(b,a)>-1},h,!0),m=[function(a,c,d){var e=!g&&(d||c!==j)||((b=c).nodeType?k(a,c,d):l(a,c,d));return b=null,e}];i1&&ua(m),i>1&&sa(a.slice(0,i-1).concat({value:" "===a[i-2].type?"*":""})).replace(P,"$1"),c,i0,e=a.length>0,f=function(f,g,h,i,k){var l,o,q,r=0,s="0",t=f&&[],u=[],v=j,x=f||e&&d.find.TAG("*",k),y=w+=null==v?1:Math.random()||.1,z=x.length;for(k&&(j=g===n||g||k);s!==z&&null!=(l=x[s]);s++){if(e&&l){o=0,g||l.ownerDocument===n||(m(l),h=!p);while(q=a[o++])if(q(l,g||n,h)){i.push(l);break}k&&(w=y)}c&&((l=!q&&l)&&r--,f&&t.push(l))}if(r+=s,c&&s!==r){o=0;while(q=b[o++])q(t,u,g,h);if(f){if(r>0)while(s--)t[s]||u[s]||(u[s]=E.call(i));u=wa(u)}G.apply(i,u),k&&!f&&u.length>0&&r+b.length>1&&ga.uniqueSort(i)}return k&&(w=y,j=v),t};return c?ia(f):f}return h=ga.compile=function(a,b){var c,d=[],e=[],f=A[a+" "];if(!f){b||(b=g(a)),c=b.length;while(c--)f=ya(b[c]),f[u]?d.push(f):e.push(f);f=A(a,za(e,d)),f.selector=a}return f},i=ga.select=function(a,b,c,e){var f,i,j,k,l,m="function"==typeof a&&a,n=!e&&g(a=m.selector||a);if(c=c||[],1===n.length){if(i=n[0]=n[0].slice(0),i.length>2&&"ID"===(j=i[0]).type&&9===b.nodeType&&p&&d.relative[i[1].type]){if(b=(d.find.ID(j.matches[0].replace(_,aa),b)||[])[0],!b)return c;m&&(b=b.parentNode),a=a.slice(i.shift().value.length)}f=V.needsContext.test(a)?0:i.length;while(f--){if(j=i[f],d.relative[k=j.type])break;if((l=d.find[k])&&(e=l(j.matches[0].replace(_,aa),$.test(i[0].type)&&qa(b.parentNode)||b))){if(i.splice(f,1),a=e.length&&sa(i),!a)return G.apply(c,e),c;break}}}return(m||h(a,n))(e,b,!p,c,!b||$.test(a)&&qa(b.parentNode)||b),c},c.sortStable=u.split("").sort(B).join("")===u,c.detectDuplicates=!!l,m(),c.sortDetached=ja(function(a){return 1&a.compareDocumentPosition(n.createElement("fieldset"))}),ja(function(a){return a.innerHTML="","#"===a.firstChild.getAttribute("href")})||ka("type|href|height|width",function(a,b,c){if(!c)return a.getAttribute(b,"type"===b.toLowerCase()?1:2)}),c.attributes&&ja(function(a){return a.innerHTML="",a.firstChild.setAttribute("value",""),""===a.firstChild.getAttribute("value")})||ka("value",function(a,b,c){if(!c&&"input"===a.nodeName.toLowerCase())return a.defaultValue}),ja(function(a){return null==a.getAttribute("disabled")})||ka(J,function(a,b,c){var d;if(!c)return a[b]===!0?b.toLowerCase():(d=a.getAttributeNode(b))&&d.specified?d.value:null}),ga}(a);r.find=x,r.expr=x.selectors,r.expr[":"]=r.expr.pseudos,r.uniqueSort=r.unique=x.uniqueSort,r.text=x.getText,r.isXMLDoc=x.isXML,r.contains=x.contains,r.escapeSelector=x.escape;var y=function(a,b,c){var d=[],e=void 0!==c;while((a=a[b])&&9!==a.nodeType)if(1===a.nodeType){if(e&&r(a).is(c))break;d.push(a)}return d},z=function(a,b){for(var c=[];a;a=a.nextSibling)1===a.nodeType&&a!==b&&c.push(a);return c},A=r.expr.match.needsContext;function B(a,b){return a.nodeName&&a.nodeName.toLowerCase()===b.toLowerCase()}var C=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i,D=/^.[^:#\[\.,]*$/;function E(a,b,c){return r.isFunction(b)?r.grep(a,function(a,d){return!!b.call(a,d,a)!==c}):b.nodeType?r.grep(a,function(a){return a===b!==c}):"string"!=typeof b?r.grep(a,function(a){return i.call(b,a)>-1!==c}):D.test(b)?r.filter(b,a,c):(b=r.filter(b,a),r.grep(a,function(a){return i.call(b,a)>-1!==c&&1===a.nodeType}))}r.filter=function(a,b,c){var d=b[0];return c&&(a=":not("+a+")"),1===b.length&&1===d.nodeType?r.find.matchesSelector(d,a)?[d]:[]:r.find.matches(a,r.grep(b,function(a){return 1===a.nodeType}))},r.fn.extend({find:function(a){var b,c,d=this.length,e=this;if("string"!=typeof a)return this.pushStack(r(a).filter(function(){for(b=0;b1?r.uniqueSort(c):c},filter:function(a){return this.pushStack(E(this,a||[],!1))},not:function(a){return this.pushStack(E(this,a||[],!0))},is:function(a){return!!E(this,"string"==typeof a&&A.test(a)?r(a):a||[],!1).length}});var F,G=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/,H=r.fn.init=function(a,b,c){var e,f;if(!a)return this;if(c=c||F,"string"==typeof a){if(e="<"===a[0]&&">"===a[a.length-1]&&a.length>=3?[null,a,null]:G.exec(a),!e||!e[1]&&b)return!b||b.jquery?(b||c).find(a):this.constructor(b).find(a);if(e[1]){if(b=b instanceof r?b[0]:b,r.merge(this,r.parseHTML(e[1],b&&b.nodeType?b.ownerDocument||b:d,!0)),C.test(e[1])&&r.isPlainObject(b))for(e in b)r.isFunction(this[e])?this[e](b[e]):this.attr(e,b[e]);return this}return f=d.getElementById(e[2]),f&&(this[0]=f,this.length=1),this}return a.nodeType?(this[0]=a,this.length=1,this):r.isFunction(a)?void 0!==c.ready?c.ready(a):a(r):r.makeArray(a,this)};H.prototype=r.fn,F=r(d);var I=/^(?:parents|prev(?:Until|All))/,J={children:!0,contents:!0,next:!0,prev:!0};r.fn.extend({has:function(a){var b=r(a,this),c=b.length;return this.filter(function(){for(var a=0;a-1:1===c.nodeType&&r.find.matchesSelector(c,a))){f.push(c);break}return this.pushStack(f.length>1?r.uniqueSort(f):f)},index:function(a){return a?"string"==typeof a?i.call(r(a),this[0]):i.call(this,a.jquery?a[0]:a):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(a,b){return this.pushStack(r.uniqueSort(r.merge(this.get(),r(a,b))))},addBack:function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))}});function K(a,b){while((a=a[b])&&1!==a.nodeType);return a}r.each({parent:function(a){var b=a.parentNode;return b&&11!==b.nodeType?b:null},parents:function(a){return y(a,"parentNode")},parentsUntil:function(a,b,c){return y(a,"parentNode",c)},next:function(a){return K(a,"nextSibling")},prev:function(a){return K(a,"previousSibling")},nextAll:function(a){return y(a,"nextSibling")},prevAll:function(a){return y(a,"previousSibling")},nextUntil:function(a,b,c){return y(a,"nextSibling",c)},prevUntil:function(a,b,c){return y(a,"previousSibling",c)},siblings:function(a){return z((a.parentNode||{}).firstChild,a)},children:function(a){return z(a.firstChild)},contents:function(a){return B(a,"iframe")?a.contentDocument:(B(a,"template")&&(a=a.content||a),r.merge([],a.childNodes))}},function(a,b){r.fn[a]=function(c,d){var e=r.map(this,b,c);return"Until"!==a.slice(-5)&&(d=c),d&&"string"==typeof d&&(e=r.filter(d,e)),this.length>1&&(J[a]||r.uniqueSort(e),I.test(a)&&e.reverse()),this.pushStack(e)}});var L=/[^\x20\t\r\n\f]+/g;function M(a){var b={};return r.each(a.match(L)||[],function(a,c){b[c]=!0}),b}r.Callbacks=function(a){a="string"==typeof a?M(a):r.extend({},a);var b,c,d,e,f=[],g=[],h=-1,i=function(){for(e=e||a.once,d=b=!0;g.length;h=-1){c=g.shift();while(++h-1)f.splice(c,1),c<=h&&h--}),this},has:function(a){return a?r.inArray(a,f)>-1:f.length>0},empty:function(){return f&&(f=[]),this},disable:function(){return e=g=[],f=c="",this},disabled:function(){return!f},lock:function(){return e=g=[],c||b||(f=c=""),this},locked:function(){return!!e},fireWith:function(a,c){return e||(c=c||[],c=[a,c.slice?c.slice():c],g.push(c),b||i()),this},fire:function(){return j.fireWith(this,arguments),this},fired:function(){return!!d}};return j};function N(a){return a}function O(a){throw a}function P(a,b,c,d){var e;try{a&&r.isFunction(e=a.promise)?e.call(a).done(b).fail(c):a&&r.isFunction(e=a.then)?e.call(a,b,c):b.apply(void 0,[a].slice(d))}catch(a){c.apply(void 0,[a])}}r.extend({Deferred:function(b){var c=[["notify","progress",r.Callbacks("memory"),r.Callbacks("memory"),2],["resolve","done",r.Callbacks("once memory"),r.Callbacks("once memory"),0,"resolved"],["reject","fail",r.Callbacks("once memory"),r.Callbacks("once memory"),1,"rejected"]],d="pending",e={state:function(){return d},always:function(){return f.done(arguments).fail(arguments),this},"catch":function(a){return e.then(null,a)},pipe:function(){var a=arguments;return r.Deferred(function(b){r.each(c,function(c,d){var e=r.isFunction(a[d[4]])&&a[d[4]];f[d[1]](function(){var a=e&&e.apply(this,arguments);a&&r.isFunction(a.promise)?a.promise().progress(b.notify).done(b.resolve).fail(b.reject):b[d[0]+"With"](this,e?[a]:arguments)})}),a=null}).promise()},then:function(b,d,e){var f=0;function g(b,c,d,e){return function(){var h=this,i=arguments,j=function(){var a,j;if(!(b=f&&(d!==O&&(h=void 0,i=[a]),c.rejectWith(h,i))}};b?k():(r.Deferred.getStackHook&&(k.stackTrace=r.Deferred.getStackHook()),a.setTimeout(k))}}return r.Deferred(function(a){c[0][3].add(g(0,a,r.isFunction(e)?e:N,a.notifyWith)),c[1][3].add(g(0,a,r.isFunction(b)?b:N)),c[2][3].add(g(0,a,r.isFunction(d)?d:O))}).promise()},promise:function(a){return null!=a?r.extend(a,e):e}},f={};return r.each(c,function(a,b){var g=b[2],h=b[5];e[b[1]]=g.add,h&&g.add(function(){d=h},c[3-a][2].disable,c[0][2].lock),g.add(b[3].fire),f[b[0]]=function(){return f[b[0]+"With"](this===f?void 0:this,arguments),this},f[b[0]+"With"]=g.fireWith}),e.promise(f),b&&b.call(f,f),f},when:function(a){var b=arguments.length,c=b,d=Array(c),e=f.call(arguments),g=r.Deferred(),h=function(a){return function(c){d[a]=this,e[a]=arguments.length>1?f.call(arguments):c,--b||g.resolveWith(d,e)}};if(b<=1&&(P(a,g.done(h(c)).resolve,g.reject,!b),"pending"===g.state()||r.isFunction(e[c]&&e[c].then)))return g.then();while(c--)P(e[c],h(c),g.reject);return g.promise()}});var Q=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;r.Deferred.exceptionHook=function(b,c){a.console&&a.console.warn&&b&&Q.test(b.name)&&a.console.warn("jQuery.Deferred exception: "+b.message,b.stack,c)},r.readyException=function(b){a.setTimeout(function(){throw b})};var R=r.Deferred();r.fn.ready=function(a){return R.then(a)["catch"](function(a){r.readyException(a)}),this},r.extend({isReady:!1,readyWait:1,ready:function(a){(a===!0?--r.readyWait:r.isReady)||(r.isReady=!0,a!==!0&&--r.readyWait>0||R.resolveWith(d,[r]))}}),r.ready.then=R.then;function S(){d.removeEventListener("DOMContentLoaded",S), +a.removeEventListener("load",S),r.ready()}"complete"===d.readyState||"loading"!==d.readyState&&!d.documentElement.doScroll?a.setTimeout(r.ready):(d.addEventListener("DOMContentLoaded",S),a.addEventListener("load",S));var T=function(a,b,c,d,e,f,g){var h=0,i=a.length,j=null==c;if("object"===r.type(c)){e=!0;for(h in c)T(a,b,h,c[h],!0,f,g)}else if(void 0!==d&&(e=!0,r.isFunction(d)||(g=!0),j&&(g?(b.call(a,d),b=null):(j=b,b=function(a,b,c){return j.call(r(a),c)})),b))for(;h1,null,!0)},removeData:function(a){return this.each(function(){X.remove(this,a)})}}),r.extend({queue:function(a,b,c){var d;if(a)return b=(b||"fx")+"queue",d=W.get(a,b),c&&(!d||Array.isArray(c)?d=W.access(a,b,r.makeArray(c)):d.push(c)),d||[]},dequeue:function(a,b){b=b||"fx";var c=r.queue(a,b),d=c.length,e=c.shift(),f=r._queueHooks(a,b),g=function(){r.dequeue(a,b)};"inprogress"===e&&(e=c.shift(),d--),e&&("fx"===b&&c.unshift("inprogress"),delete f.stop,e.call(a,g,f)),!d&&f&&f.empty.fire()},_queueHooks:function(a,b){var c=b+"queueHooks";return W.get(a,c)||W.access(a,c,{empty:r.Callbacks("once memory").add(function(){W.remove(a,[b+"queue",c])})})}}),r.fn.extend({queue:function(a,b){var c=2;return"string"!=typeof a&&(b=a,a="fx",c--),arguments.length\x20\t\r\n\f]+)/i,la=/^$|\/(?:java|ecma)script/i,ma={option:[1,""],thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};ma.optgroup=ma.option,ma.tbody=ma.tfoot=ma.colgroup=ma.caption=ma.thead,ma.th=ma.td;function na(a,b){var c;return c="undefined"!=typeof a.getElementsByTagName?a.getElementsByTagName(b||"*"):"undefined"!=typeof a.querySelectorAll?a.querySelectorAll(b||"*"):[],void 0===b||b&&B(a,b)?r.merge([a],c):c}function oa(a,b){for(var c=0,d=a.length;c-1)e&&e.push(f);else if(j=r.contains(f.ownerDocument,f),g=na(l.appendChild(f),"script"),j&&oa(g),c){k=0;while(f=g[k++])la.test(f.type||"")&&c.push(f)}return l}!function(){var a=d.createDocumentFragment(),b=a.appendChild(d.createElement("div")),c=d.createElement("input");c.setAttribute("type","radio"),c.setAttribute("checked","checked"),c.setAttribute("name","t"),b.appendChild(c),o.checkClone=b.cloneNode(!0).cloneNode(!0).lastChild.checked,b.innerHTML="",o.noCloneChecked=!!b.cloneNode(!0).lastChild.defaultValue}();var ra=d.documentElement,sa=/^key/,ta=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,ua=/^([^.]*)(?:\.(.+)|)/;function va(){return!0}function wa(){return!1}function xa(){try{return d.activeElement}catch(a){}}function ya(a,b,c,d,e,f){var g,h;if("object"==typeof b){"string"!=typeof c&&(d=d||c,c=void 0);for(h in b)ya(a,h,c,d,b[h],f);return a}if(null==d&&null==e?(e=c,d=c=void 0):null==e&&("string"==typeof c?(e=d,d=void 0):(e=d,d=c,c=void 0)),e===!1)e=wa;else if(!e)return a;return 1===f&&(g=e,e=function(a){return r().off(a),g.apply(this,arguments)},e.guid=g.guid||(g.guid=r.guid++)),a.each(function(){r.event.add(this,b,e,d,c)})}r.event={global:{},add:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q=W.get(a);if(q){c.handler&&(f=c,c=f.handler,e=f.selector),e&&r.find.matchesSelector(ra,e),c.guid||(c.guid=r.guid++),(i=q.events)||(i=q.events={}),(g=q.handle)||(g=q.handle=function(b){return"undefined"!=typeof r&&r.event.triggered!==b.type?r.event.dispatch.apply(a,arguments):void 0}),b=(b||"").match(L)||[""],j=b.length;while(j--)h=ua.exec(b[j])||[],n=p=h[1],o=(h[2]||"").split(".").sort(),n&&(l=r.event.special[n]||{},n=(e?l.delegateType:l.bindType)||n,l=r.event.special[n]||{},k=r.extend({type:n,origType:p,data:d,handler:c,guid:c.guid,selector:e,needsContext:e&&r.expr.match.needsContext.test(e),namespace:o.join(".")},f),(m=i[n])||(m=i[n]=[],m.delegateCount=0,l.setup&&l.setup.call(a,d,o,g)!==!1||a.addEventListener&&a.addEventListener(n,g)),l.add&&(l.add.call(a,k),k.handler.guid||(k.handler.guid=c.guid)),e?m.splice(m.delegateCount++,0,k):m.push(k),r.event.global[n]=!0)}},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q=W.hasData(a)&&W.get(a);if(q&&(i=q.events)){b=(b||"").match(L)||[""],j=b.length;while(j--)if(h=ua.exec(b[j])||[],n=p=h[1],o=(h[2]||"").split(".").sort(),n){l=r.event.special[n]||{},n=(d?l.delegateType:l.bindType)||n,m=i[n]||[],h=h[2]&&new RegExp("(^|\\.)"+o.join("\\.(?:.*\\.|)")+"(\\.|$)"),g=f=m.length;while(f--)k=m[f],!e&&p!==k.origType||c&&c.guid!==k.guid||h&&!h.test(k.namespace)||d&&d!==k.selector&&("**"!==d||!k.selector)||(m.splice(f,1),k.selector&&m.delegateCount--,l.remove&&l.remove.call(a,k));g&&!m.length&&(l.teardown&&l.teardown.call(a,o,q.handle)!==!1||r.removeEvent(a,n,q.handle),delete i[n])}else for(n in i)r.event.remove(a,n+b[j],c,d,!0);r.isEmptyObject(i)&&W.remove(a,"handle events")}},dispatch:function(a){var b=r.event.fix(a),c,d,e,f,g,h,i=new Array(arguments.length),j=(W.get(this,"events")||{})[b.type]||[],k=r.event.special[b.type]||{};for(i[0]=b,c=1;c=1))for(;j!==this;j=j.parentNode||this)if(1===j.nodeType&&("click"!==a.type||j.disabled!==!0)){for(f=[],g={},c=0;c-1:r.find(e,this,null,[j]).length),g[e]&&f.push(d);f.length&&h.push({elem:j,handlers:f})}return j=this,i\x20\t\r\n\f]*)[^>]*)\/>/gi,Aa=/\s*$/g;function Ea(a,b){return B(a,"table")&&B(11!==b.nodeType?b:b.firstChild,"tr")?r(">tbody",a)[0]||a:a}function Fa(a){return a.type=(null!==a.getAttribute("type"))+"/"+a.type,a}function Ga(a){var b=Ca.exec(a.type);return b?a.type=b[1]:a.removeAttribute("type"),a}function Ha(a,b){var c,d,e,f,g,h,i,j;if(1===b.nodeType){if(W.hasData(a)&&(f=W.access(a),g=W.set(b,f),j=f.events)){delete g.handle,g.events={};for(e in j)for(c=0,d=j[e].length;c1&&"string"==typeof q&&!o.checkClone&&Ba.test(q))return a.each(function(e){var f=a.eq(e);s&&(b[0]=q.call(this,e,f.html())),Ja(f,b,c,d)});if(m&&(e=qa(b,a[0].ownerDocument,!1,a,d),f=e.firstChild,1===e.childNodes.length&&(e=f),f||d)){for(h=r.map(na(e,"script"),Fa),i=h.length;l")},clone:function(a,b,c){var d,e,f,g,h=a.cloneNode(!0),i=r.contains(a.ownerDocument,a);if(!(o.noCloneChecked||1!==a.nodeType&&11!==a.nodeType||r.isXMLDoc(a)))for(g=na(h),f=na(a),d=0,e=f.length;d0&&oa(g,!i&&na(a,"script")),h},cleanData:function(a){for(var b,c,d,e=r.event.special,f=0;void 0!==(c=a[f]);f++)if(U(c)){if(b=c[W.expando]){if(b.events)for(d in b.events)e[d]?r.event.remove(c,d):r.removeEvent(c,d,b.handle);c[W.expando]=void 0}c[X.expando]&&(c[X.expando]=void 0)}}}),r.fn.extend({detach:function(a){return Ka(this,a,!0)},remove:function(a){return Ka(this,a)},text:function(a){return T(this,function(a){return void 0===a?r.text(this):this.empty().each(function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=a)})},null,a,arguments.length)},append:function(){return Ja(this,arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=Ea(this,a);b.appendChild(a)}})},prepend:function(){return Ja(this,arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=Ea(this,a);b.insertBefore(a,b.firstChild)}})},before:function(){return Ja(this,arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this)})},after:function(){return Ja(this,arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this.nextSibling)})},empty:function(){for(var a,b=0;null!=(a=this[b]);b++)1===a.nodeType&&(r.cleanData(na(a,!1)),a.textContent="");return this},clone:function(a,b){return a=null!=a&&a,b=null==b?a:b,this.map(function(){return r.clone(this,a,b)})},html:function(a){return T(this,function(a){var b=this[0]||{},c=0,d=this.length;if(void 0===a&&1===b.nodeType)return b.innerHTML;if("string"==typeof a&&!Aa.test(a)&&!ma[(ka.exec(a)||["",""])[1].toLowerCase()]){a=r.htmlPrefilter(a);try{for(;c1)}});function _a(a,b,c,d,e){return new _a.prototype.init(a,b,c,d,e)}r.Tween=_a,_a.prototype={constructor:_a,init:function(a,b,c,d,e,f){this.elem=a,this.prop=c,this.easing=e||r.easing._default,this.options=b,this.start=this.now=this.cur(),this.end=d,this.unit=f||(r.cssNumber[c]?"":"px")},cur:function(){var a=_a.propHooks[this.prop];return a&&a.get?a.get(this):_a.propHooks._default.get(this)},run:function(a){var b,c=_a.propHooks[this.prop];return this.options.duration?this.pos=b=r.easing[this.easing](a,this.options.duration*a,0,1,this.options.duration):this.pos=b=a,this.now=(this.end-this.start)*b+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),c&&c.set?c.set(this):_a.propHooks._default.set(this),this}},_a.prototype.init.prototype=_a.prototype,_a.propHooks={_default:{get:function(a){var b;return 1!==a.elem.nodeType||null!=a.elem[a.prop]&&null==a.elem.style[a.prop]?a.elem[a.prop]:(b=r.css(a.elem,a.prop,""),b&&"auto"!==b?b:0)},set:function(a){r.fx.step[a.prop]?r.fx.step[a.prop](a):1!==a.elem.nodeType||null==a.elem.style[r.cssProps[a.prop]]&&!r.cssHooks[a.prop]?a.elem[a.prop]=a.now:r.style(a.elem,a.prop,a.now+a.unit)}}},_a.propHooks.scrollTop=_a.propHooks.scrollLeft={set:function(a){a.elem.nodeType&&a.elem.parentNode&&(a.elem[a.prop]=a.now)}},r.easing={linear:function(a){return a},swing:function(a){return.5-Math.cos(a*Math.PI)/2},_default:"swing"},r.fx=_a.prototype.init,r.fx.step={};var ab,bb,cb=/^(?:toggle|show|hide)$/,db=/queueHooks$/;function eb(){bb&&(d.hidden===!1&&a.requestAnimationFrame?a.requestAnimationFrame(eb):a.setTimeout(eb,r.fx.interval),r.fx.tick())}function fb(){return a.setTimeout(function(){ab=void 0}),ab=r.now()}function gb(a,b){var c,d=0,e={height:a};for(b=b?1:0;d<4;d+=2-b)c=ca[d],e["margin"+c]=e["padding"+c]=a;return b&&(e.opacity=e.width=a),e}function hb(a,b,c){for(var d,e=(kb.tweeners[b]||[]).concat(kb.tweeners["*"]),f=0,g=e.length;f1)},removeAttr:function(a){return this.each(function(){r.removeAttr(this,a)})}}),r.extend({attr:function(a,b,c){var d,e,f=a.nodeType;if(3!==f&&8!==f&&2!==f)return"undefined"==typeof a.getAttribute?r.prop(a,b,c):(1===f&&r.isXMLDoc(a)||(e=r.attrHooks[b.toLowerCase()]||(r.expr.match.bool.test(b)?lb:void 0)),void 0!==c?null===c?void r.removeAttr(a,b):e&&"set"in e&&void 0!==(d=e.set(a,c,b))?d:(a.setAttribute(b,c+""),c):e&&"get"in e&&null!==(d=e.get(a,b))?d:(d=r.find.attr(a,b), +null==d?void 0:d))},attrHooks:{type:{set:function(a,b){if(!o.radioValue&&"radio"===b&&B(a,"input")){var c=a.value;return a.setAttribute("type",b),c&&(a.value=c),b}}}},removeAttr:function(a,b){var c,d=0,e=b&&b.match(L);if(e&&1===a.nodeType)while(c=e[d++])a.removeAttribute(c)}}),lb={set:function(a,b,c){return b===!1?r.removeAttr(a,c):a.setAttribute(c,c),c}},r.each(r.expr.match.bool.source.match(/\w+/g),function(a,b){var c=mb[b]||r.find.attr;mb[b]=function(a,b,d){var e,f,g=b.toLowerCase();return d||(f=mb[g],mb[g]=e,e=null!=c(a,b,d)?g:null,mb[g]=f),e}});var nb=/^(?:input|select|textarea|button)$/i,ob=/^(?:a|area)$/i;r.fn.extend({prop:function(a,b){return T(this,r.prop,a,b,arguments.length>1)},removeProp:function(a){return this.each(function(){delete this[r.propFix[a]||a]})}}),r.extend({prop:function(a,b,c){var d,e,f=a.nodeType;if(3!==f&&8!==f&&2!==f)return 1===f&&r.isXMLDoc(a)||(b=r.propFix[b]||b,e=r.propHooks[b]),void 0!==c?e&&"set"in e&&void 0!==(d=e.set(a,c,b))?d:a[b]=c:e&&"get"in e&&null!==(d=e.get(a,b))?d:a[b]},propHooks:{tabIndex:{get:function(a){var b=r.find.attr(a,"tabindex");return b?parseInt(b,10):nb.test(a.nodeName)||ob.test(a.nodeName)&&a.href?0:-1}}},propFix:{"for":"htmlFor","class":"className"}}),o.optSelected||(r.propHooks.selected={get:function(a){var b=a.parentNode;return b&&b.parentNode&&b.parentNode.selectedIndex,null},set:function(a){var b=a.parentNode;b&&(b.selectedIndex,b.parentNode&&b.parentNode.selectedIndex)}}),r.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){r.propFix[this.toLowerCase()]=this});function pb(a){var b=a.match(L)||[];return b.join(" ")}function qb(a){return a.getAttribute&&a.getAttribute("class")||""}r.fn.extend({addClass:function(a){var b,c,d,e,f,g,h,i=0;if(r.isFunction(a))return this.each(function(b){r(this).addClass(a.call(this,b,qb(this)))});if("string"==typeof a&&a){b=a.match(L)||[];while(c=this[i++])if(e=qb(c),d=1===c.nodeType&&" "+pb(e)+" "){g=0;while(f=b[g++])d.indexOf(" "+f+" ")<0&&(d+=f+" ");h=pb(d),e!==h&&c.setAttribute("class",h)}}return this},removeClass:function(a){var b,c,d,e,f,g,h,i=0;if(r.isFunction(a))return this.each(function(b){r(this).removeClass(a.call(this,b,qb(this)))});if(!arguments.length)return this.attr("class","");if("string"==typeof a&&a){b=a.match(L)||[];while(c=this[i++])if(e=qb(c),d=1===c.nodeType&&" "+pb(e)+" "){g=0;while(f=b[g++])while(d.indexOf(" "+f+" ")>-1)d=d.replace(" "+f+" "," ");h=pb(d),e!==h&&c.setAttribute("class",h)}}return this},toggleClass:function(a,b){var c=typeof a;return"boolean"==typeof b&&"string"===c?b?this.addClass(a):this.removeClass(a):r.isFunction(a)?this.each(function(c){r(this).toggleClass(a.call(this,c,qb(this),b),b)}):this.each(function(){var b,d,e,f;if("string"===c){d=0,e=r(this),f=a.match(L)||[];while(b=f[d++])e.hasClass(b)?e.removeClass(b):e.addClass(b)}else void 0!==a&&"boolean"!==c||(b=qb(this),b&&W.set(this,"__className__",b),this.setAttribute&&this.setAttribute("class",b||a===!1?"":W.get(this,"__className__")||""))})},hasClass:function(a){var b,c,d=0;b=" "+a+" ";while(c=this[d++])if(1===c.nodeType&&(" "+pb(qb(c))+" ").indexOf(b)>-1)return!0;return!1}});var rb=/\r/g;r.fn.extend({val:function(a){var b,c,d,e=this[0];{if(arguments.length)return d=r.isFunction(a),this.each(function(c){var e;1===this.nodeType&&(e=d?a.call(this,c,r(this).val()):a,null==e?e="":"number"==typeof e?e+="":Array.isArray(e)&&(e=r.map(e,function(a){return null==a?"":a+""})),b=r.valHooks[this.type]||r.valHooks[this.nodeName.toLowerCase()],b&&"set"in b&&void 0!==b.set(this,e,"value")||(this.value=e))});if(e)return b=r.valHooks[e.type]||r.valHooks[e.nodeName.toLowerCase()],b&&"get"in b&&void 0!==(c=b.get(e,"value"))?c:(c=e.value,"string"==typeof c?c.replace(rb,""):null==c?"":c)}}}),r.extend({valHooks:{option:{get:function(a){var b=r.find.attr(a,"value");return null!=b?b:pb(r.text(a))}},select:{get:function(a){var b,c,d,e=a.options,f=a.selectedIndex,g="select-one"===a.type,h=g?null:[],i=g?f+1:e.length;for(d=f<0?i:g?f:0;d-1)&&(c=!0);return c||(a.selectedIndex=-1),f}}}}),r.each(["radio","checkbox"],function(){r.valHooks[this]={set:function(a,b){if(Array.isArray(b))return a.checked=r.inArray(r(a).val(),b)>-1}},o.checkOn||(r.valHooks[this].get=function(a){return null===a.getAttribute("value")?"on":a.value})});var sb=/^(?:focusinfocus|focusoutblur)$/;r.extend(r.event,{trigger:function(b,c,e,f){var g,h,i,j,k,m,n,o=[e||d],p=l.call(b,"type")?b.type:b,q=l.call(b,"namespace")?b.namespace.split("."):[];if(h=i=e=e||d,3!==e.nodeType&&8!==e.nodeType&&!sb.test(p+r.event.triggered)&&(p.indexOf(".")>-1&&(q=p.split("."),p=q.shift(),q.sort()),k=p.indexOf(":")<0&&"on"+p,b=b[r.expando]?b:new r.Event(p,"object"==typeof b&&b),b.isTrigger=f?2:3,b.namespace=q.join("."),b.rnamespace=b.namespace?new RegExp("(^|\\.)"+q.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,b.result=void 0,b.target||(b.target=e),c=null==c?[b]:r.makeArray(c,[b]),n=r.event.special[p]||{},f||!n.trigger||n.trigger.apply(e,c)!==!1)){if(!f&&!n.noBubble&&!r.isWindow(e)){for(j=n.delegateType||p,sb.test(j+p)||(h=h.parentNode);h;h=h.parentNode)o.push(h),i=h;i===(e.ownerDocument||d)&&o.push(i.defaultView||i.parentWindow||a)}g=0;while((h=o[g++])&&!b.isPropagationStopped())b.type=g>1?j:n.bindType||p,m=(W.get(h,"events")||{})[b.type]&&W.get(h,"handle"),m&&m.apply(h,c),m=k&&h[k],m&&m.apply&&U(h)&&(b.result=m.apply(h,c),b.result===!1&&b.preventDefault());return b.type=p,f||b.isDefaultPrevented()||n._default&&n._default.apply(o.pop(),c)!==!1||!U(e)||k&&r.isFunction(e[p])&&!r.isWindow(e)&&(i=e[k],i&&(e[k]=null),r.event.triggered=p,e[p](),r.event.triggered=void 0,i&&(e[k]=i)),b.result}},simulate:function(a,b,c){var d=r.extend(new r.Event,c,{type:a,isSimulated:!0});r.event.trigger(d,null,b)}}),r.fn.extend({trigger:function(a,b){return this.each(function(){r.event.trigger(a,b,this)})},triggerHandler:function(a,b){var c=this[0];if(c)return r.event.trigger(a,b,c,!0)}}),r.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(a,b){r.fn[b]=function(a,c){return arguments.length>0?this.on(b,null,a,c):this.trigger(b)}}),r.fn.extend({hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)}}),o.focusin="onfocusin"in a,o.focusin||r.each({focus:"focusin",blur:"focusout"},function(a,b){var c=function(a){r.event.simulate(b,a.target,r.event.fix(a))};r.event.special[b]={setup:function(){var d=this.ownerDocument||this,e=W.access(d,b);e||d.addEventListener(a,c,!0),W.access(d,b,(e||0)+1)},teardown:function(){var d=this.ownerDocument||this,e=W.access(d,b)-1;e?W.access(d,b,e):(d.removeEventListener(a,c,!0),W.remove(d,b))}}});var tb=a.location,ub=r.now(),vb=/\?/;r.parseXML=function(b){var c;if(!b||"string"!=typeof b)return null;try{c=(new a.DOMParser).parseFromString(b,"text/xml")}catch(d){c=void 0}return c&&!c.getElementsByTagName("parsererror").length||r.error("Invalid XML: "+b),c};var wb=/\[\]$/,xb=/\r?\n/g,yb=/^(?:submit|button|image|reset|file)$/i,zb=/^(?:input|select|textarea|keygen)/i;function Ab(a,b,c,d){var e;if(Array.isArray(b))r.each(b,function(b,e){c||wb.test(a)?d(a,e):Ab(a+"["+("object"==typeof e&&null!=e?b:"")+"]",e,c,d)});else if(c||"object"!==r.type(b))d(a,b);else for(e in b)Ab(a+"["+e+"]",b[e],c,d)}r.param=function(a,b){var c,d=[],e=function(a,b){var c=r.isFunction(b)?b():b;d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(null==c?"":c)};if(Array.isArray(a)||a.jquery&&!r.isPlainObject(a))r.each(a,function(){e(this.name,this.value)});else for(c in a)Ab(c,a[c],b,e);return d.join("&")},r.fn.extend({serialize:function(){return r.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var a=r.prop(this,"elements");return a?r.makeArray(a):this}).filter(function(){var a=this.type;return this.name&&!r(this).is(":disabled")&&zb.test(this.nodeName)&&!yb.test(a)&&(this.checked||!ja.test(a))}).map(function(a,b){var c=r(this).val();return null==c?null:Array.isArray(c)?r.map(c,function(a){return{name:b.name,value:a.replace(xb,"\r\n")}}):{name:b.name,value:c.replace(xb,"\r\n")}}).get()}});var Bb=/%20/g,Cb=/#.*$/,Db=/([?&])_=[^&]*/,Eb=/^(.*?):[ \t]*([^\r\n]*)$/gm,Fb=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,Gb=/^(?:GET|HEAD)$/,Hb=/^\/\//,Ib={},Jb={},Kb="*/".concat("*"),Lb=d.createElement("a");Lb.href=tb.href;function Mb(a){return function(b,c){"string"!=typeof b&&(c=b,b="*");var d,e=0,f=b.toLowerCase().match(L)||[];if(r.isFunction(c))while(d=f[e++])"+"===d[0]?(d=d.slice(1)||"*",(a[d]=a[d]||[]).unshift(c)):(a[d]=a[d]||[]).push(c)}}function Nb(a,b,c,d){var e={},f=a===Jb;function g(h){var i;return e[h]=!0,r.each(a[h]||[],function(a,h){var j=h(b,c,d);return"string"!=typeof j||f||e[j]?f?!(i=j):void 0:(b.dataTypes.unshift(j),g(j),!1)}),i}return g(b.dataTypes[0])||!e["*"]&&g("*")}function Ob(a,b){var c,d,e=r.ajaxSettings.flatOptions||{};for(c in b)void 0!==b[c]&&((e[c]?a:d||(d={}))[c]=b[c]);return d&&r.extend(!0,a,d),a}function Pb(a,b,c){var d,e,f,g,h=a.contents,i=a.dataTypes;while("*"===i[0])i.shift(),void 0===d&&(d=a.mimeType||b.getResponseHeader("Content-Type"));if(d)for(e in h)if(h[e]&&h[e].test(d)){i.unshift(e);break}if(i[0]in c)f=i[0];else{for(e in c){if(!i[0]||a.converters[e+" "+i[0]]){f=e;break}g||(g=e)}f=f||g}if(f)return f!==i[0]&&i.unshift(f),c[f]}function Qb(a,b,c,d){var e,f,g,h,i,j={},k=a.dataTypes.slice();if(k[1])for(g in a.converters)j[g.toLowerCase()]=a.converters[g];f=k.shift();while(f)if(a.responseFields[f]&&(c[a.responseFields[f]]=b),!i&&d&&a.dataFilter&&(b=a.dataFilter(b,a.dataType)),i=f,f=k.shift())if("*"===f)f=i;else if("*"!==i&&i!==f){if(g=j[i+" "+f]||j["* "+f],!g)for(e in j)if(h=e.split(" "),h[1]===f&&(g=j[i+" "+h[0]]||j["* "+h[0]])){g===!0?g=j[e]:j[e]!==!0&&(f=h[0],k.unshift(h[1]));break}if(g!==!0)if(g&&a["throws"])b=g(b);else try{b=g(b)}catch(l){return{state:"parsererror",error:g?l:"No conversion from "+i+" to "+f}}}return{state:"success",data:b}}r.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:tb.href,type:"GET",isLocal:Fb.test(tb.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":Kb,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":JSON.parse,"text xml":r.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(a,b){return b?Ob(Ob(a,r.ajaxSettings),b):Ob(r.ajaxSettings,a)},ajaxPrefilter:Mb(Ib),ajaxTransport:Mb(Jb),ajax:function(b,c){"object"==typeof b&&(c=b,b=void 0),c=c||{};var e,f,g,h,i,j,k,l,m,n,o=r.ajaxSetup({},c),p=o.context||o,q=o.context&&(p.nodeType||p.jquery)?r(p):r.event,s=r.Deferred(),t=r.Callbacks("once memory"),u=o.statusCode||{},v={},w={},x="canceled",y={readyState:0,getResponseHeader:function(a){var b;if(k){if(!h){h={};while(b=Eb.exec(g))h[b[1].toLowerCase()]=b[2]}b=h[a.toLowerCase()]}return null==b?null:b},getAllResponseHeaders:function(){return k?g:null},setRequestHeader:function(a,b){return null==k&&(a=w[a.toLowerCase()]=w[a.toLowerCase()]||a,v[a]=b),this},overrideMimeType:function(a){return null==k&&(o.mimeType=a),this},statusCode:function(a){var b;if(a)if(k)y.always(a[y.status]);else for(b in a)u[b]=[u[b],a[b]];return this},abort:function(a){var b=a||x;return e&&e.abort(b),A(0,b),this}};if(s.promise(y),o.url=((b||o.url||tb.href)+"").replace(Hb,tb.protocol+"//"),o.type=c.method||c.type||o.method||o.type,o.dataTypes=(o.dataType||"*").toLowerCase().match(L)||[""],null==o.crossDomain){j=d.createElement("a");try{j.href=o.url,j.href=j.href,o.crossDomain=Lb.protocol+"//"+Lb.host!=j.protocol+"//"+j.host}catch(z){o.crossDomain=!0}}if(o.data&&o.processData&&"string"!=typeof o.data&&(o.data=r.param(o.data,o.traditional)),Nb(Ib,o,c,y),k)return y;l=r.event&&o.global,l&&0===r.active++&&r.event.trigger("ajaxStart"),o.type=o.type.toUpperCase(),o.hasContent=!Gb.test(o.type),f=o.url.replace(Cb,""),o.hasContent?o.data&&o.processData&&0===(o.contentType||"").indexOf("application/x-www-form-urlencoded")&&(o.data=o.data.replace(Bb,"+")):(n=o.url.slice(f.length),o.data&&(f+=(vb.test(f)?"&":"?")+o.data,delete o.data),o.cache===!1&&(f=f.replace(Db,"$1"),n=(vb.test(f)?"&":"?")+"_="+ub++ +n),o.url=f+n),o.ifModified&&(r.lastModified[f]&&y.setRequestHeader("If-Modified-Since",r.lastModified[f]),r.etag[f]&&y.setRequestHeader("If-None-Match",r.etag[f])),(o.data&&o.hasContent&&o.contentType!==!1||c.contentType)&&y.setRequestHeader("Content-Type",o.contentType),y.setRequestHeader("Accept",o.dataTypes[0]&&o.accepts[o.dataTypes[0]]?o.accepts[o.dataTypes[0]]+("*"!==o.dataTypes[0]?", "+Kb+"; q=0.01":""):o.accepts["*"]);for(m in o.headers)y.setRequestHeader(m,o.headers[m]);if(o.beforeSend&&(o.beforeSend.call(p,y,o)===!1||k))return y.abort();if(x="abort",t.add(o.complete),y.done(o.success),y.fail(o.error),e=Nb(Jb,o,c,y)){if(y.readyState=1,l&&q.trigger("ajaxSend",[y,o]),k)return y;o.async&&o.timeout>0&&(i=a.setTimeout(function(){y.abort("timeout")},o.timeout));try{k=!1,e.send(v,A)}catch(z){if(k)throw z;A(-1,z)}}else A(-1,"No Transport");function A(b,c,d,h){var j,m,n,v,w,x=c;k||(k=!0,i&&a.clearTimeout(i),e=void 0,g=h||"",y.readyState=b>0?4:0,j=b>=200&&b<300||304===b,d&&(v=Pb(o,y,d)),v=Qb(o,v,y,j),j?(o.ifModified&&(w=y.getResponseHeader("Last-Modified"),w&&(r.lastModified[f]=w),w=y.getResponseHeader("etag"),w&&(r.etag[f]=w)),204===b||"HEAD"===o.type?x="nocontent":304===b?x="notmodified":(x=v.state,m=v.data,n=v.error,j=!n)):(n=x,!b&&x||(x="error",b<0&&(b=0))),y.status=b,y.statusText=(c||x)+"",j?s.resolveWith(p,[m,x,y]):s.rejectWith(p,[y,x,n]),y.statusCode(u),u=void 0,l&&q.trigger(j?"ajaxSuccess":"ajaxError",[y,o,j?m:n]),t.fireWith(p,[y,x]),l&&(q.trigger("ajaxComplete",[y,o]),--r.active||r.event.trigger("ajaxStop")))}return y},getJSON:function(a,b,c){return r.get(a,b,c,"json")},getScript:function(a,b){return r.get(a,void 0,b,"script")}}),r.each(["get","post"],function(a,b){r[b]=function(a,c,d,e){return r.isFunction(c)&&(e=e||d,d=c,c=void 0),r.ajax(r.extend({url:a,type:b,dataType:e,data:c,success:d},r.isPlainObject(a)&&a))}}),r._evalUrl=function(a){return r.ajax({url:a,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,"throws":!0})},r.fn.extend({wrapAll:function(a){var b;return this[0]&&(r.isFunction(a)&&(a=a.call(this[0])),b=r(a,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstElementChild)a=a.firstElementChild;return a}).append(this)),this},wrapInner:function(a){return r.isFunction(a)?this.each(function(b){r(this).wrapInner(a.call(this,b))}):this.each(function(){var b=r(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=r.isFunction(a);return this.each(function(c){r(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(a){return this.parent(a).not("body").each(function(){r(this).replaceWith(this.childNodes)}),this}}),r.expr.pseudos.hidden=function(a){return!r.expr.pseudos.visible(a)},r.expr.pseudos.visible=function(a){return!!(a.offsetWidth||a.offsetHeight||a.getClientRects().length)},r.ajaxSettings.xhr=function(){try{return new a.XMLHttpRequest}catch(b){}};var Rb={0:200,1223:204},Sb=r.ajaxSettings.xhr();o.cors=!!Sb&&"withCredentials"in Sb,o.ajax=Sb=!!Sb,r.ajaxTransport(function(b){var c,d;if(o.cors||Sb&&!b.crossDomain)return{send:function(e,f){var g,h=b.xhr();if(h.open(b.type,b.url,b.async,b.username,b.password),b.xhrFields)for(g in b.xhrFields)h[g]=b.xhrFields[g];b.mimeType&&h.overrideMimeType&&h.overrideMimeType(b.mimeType),b.crossDomain||e["X-Requested-With"]||(e["X-Requested-With"]="XMLHttpRequest");for(g in e)h.setRequestHeader(g,e[g]);c=function(a){return function(){c&&(c=d=h.onload=h.onerror=h.onabort=h.onreadystatechange=null,"abort"===a?h.abort():"error"===a?"number"!=typeof h.status?f(0,"error"):f(h.status,h.statusText):f(Rb[h.status]||h.status,h.statusText,"text"!==(h.responseType||"text")||"string"!=typeof h.responseText?{binary:h.response}:{text:h.responseText},h.getAllResponseHeaders()))}},h.onload=c(),d=h.onerror=c("error"),void 0!==h.onabort?h.onabort=d:h.onreadystatechange=function(){4===h.readyState&&a.setTimeout(function(){c&&d()})},c=c("abort");try{h.send(b.hasContent&&b.data||null)}catch(i){if(c)throw i}},abort:function(){c&&c()}}}),r.ajaxPrefilter(function(a){a.crossDomain&&(a.contents.script=!1)}),r.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(a){return r.globalEval(a),a}}}),r.ajaxPrefilter("script",function(a){void 0===a.cache&&(a.cache=!1),a.crossDomain&&(a.type="GET")}),r.ajaxTransport("script",function(a){if(a.crossDomain){var b,c;return{send:function(e,f){b=r("