This commit is contained in:
reaw55 2024-02-17 01:54:07 +07:00
commit 7bc9beb962
12 changed files with 952 additions and 526 deletions

246
.vscode/settings.json vendored
View file

@ -1,10 +1,10 @@
{
"C_Cpp_Runner.cCompilerPath": "C:/Users/siwat/.platformio/packages/toolchain-xtensa-esp32@8.4.0+2021r2-patch5/bin/xtensa-esp32-elf-gcc.exe",
"C_Cpp_Runner.cppCompilerPath": "C:/Users/siwat/.platformio/packages/toolchain-xtensa-esp32@8.4.0+2021r2-patch5/bin/xtensa-esp32-elf-g++.exe",
"C_Cpp_Runner.debuggerPath": "C:/Users/siwat/.platformio/packages/toolchain-xtensa-esp32@8.4.0+2021r2-patch5/bin/xtensa-esp32-elf-gdb.exe",
"C_Cpp_Runner.cStandard": "gnu99",
"C_Cpp_Runner.cppStandard": "gnu++11",
"C_Cpp_Runner.msvcBatchPath": "",
"C_Cpp_Runner.cCompilerPath": "gcc",
"C_Cpp_Runner.cppCompilerPath": "g++",
"C_Cpp_Runner.debuggerPath": "gdb",
"C_Cpp_Runner.cStandard": "",
"C_Cpp_Runner.cppStandard": "",
"C_Cpp_Runner.useMsvc": false,
"C_Cpp_Runner.warnings": [
"-Wall",
@ -37,236 +37,7 @@
"C_Cpp_Runner.warningsAsError": false,
"C_Cpp_Runner.compilerArgs": [],
"C_Cpp_Runner.linkerArgs": [],
"C_Cpp_Runner.includePaths": [
"D:/Git/cud-iot-v2/include",
"D:/Git/cud-iot-v2/src",
"C:/Users/siwat/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/newlib/platform_include",
"C:/Users/siwat/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/freertos/include",
"C:/Users/siwat/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/freertos/include/esp_additions/freertos",
"C:/Users/siwat/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/freertos/port/xtensa/include",
"C:/Users/siwat/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/freertos/include/esp_additions",
"C:/Users/siwat/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_hw_support/include",
"C:/Users/siwat/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_hw_support/include/soc",
"C:/Users/siwat/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_hw_support/include/soc/esp32",
"C:/Users/siwat/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_hw_support/port/esp32",
"C:/Users/siwat/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_hw_support/port/esp32/private_include",
"C:/Users/siwat/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/heap/include",
"C:/Users/siwat/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/log/include",
"C:/Users/siwat/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/lwip/include/apps",
"C:/Users/siwat/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/lwip/include/apps/sntp",
"C:/Users/siwat/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/lwip/lwip/src/include",
"C:/Users/siwat/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/lwip/port/esp32/include",
"C:/Users/siwat/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/lwip/port/esp32/include/arch",
"C:/Users/siwat/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/soc/include",
"C:/Users/siwat/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/soc/esp32",
"C:/Users/siwat/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/soc/esp32/include",
"C:/Users/siwat/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/hal/esp32/include",
"C:/Users/siwat/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/hal/include",
"C:/Users/siwat/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/hal/platform_port/include",
"C:/Users/siwat/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_rom/include",
"C:/Users/siwat/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_rom/include/esp32",
"C:/Users/siwat/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_rom/esp32",
"C:/Users/siwat/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_common/include",
"C:/Users/siwat/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_system/include",
"C:/Users/siwat/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_system/port/soc",
"C:/Users/siwat/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_system/port/public_compat",
"C:/Users/siwat/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp32/include",
"C:/Users/siwat/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/xtensa/include",
"C:/Users/siwat/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/xtensa/esp32/include",
"C:/Users/siwat/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/driver/include",
"C:/Users/siwat/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/driver/esp32/include",
"C:/Users/siwat/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_pm/include",
"C:/Users/siwat/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_ringbuf/include",
"C:/Users/siwat/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/efuse/include",
"C:/Users/siwat/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/efuse/esp32/include",
"C:/Users/siwat/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/vfs/include",
"C:/Users/siwat/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_wifi/include",
"C:/Users/siwat/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_event/include",
"C:/Users/siwat/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_netif/include",
"C:/Users/siwat/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_eth/include",
"C:/Users/siwat/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/tcpip_adapter/include",
"C:/Users/siwat/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_phy/include",
"C:/Users/siwat/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_phy/esp32/include",
"C:/Users/siwat/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_ipc/include",
"C:/Users/siwat/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/app_trace/include",
"C:/Users/siwat/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_timer/include",
"C:/Users/siwat/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/mbedtls/port/include",
"C:/Users/siwat/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/mbedtls/mbedtls/include",
"C:/Users/siwat/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/mbedtls/esp_crt_bundle/include",
"C:/Users/siwat/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/app_update/include",
"C:/Users/siwat/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/spi_flash/include",
"C:/Users/siwat/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/bootloader_support/include",
"C:/Users/siwat/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/nvs_flash/include",
"C:/Users/siwat/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/pthread/include",
"C:/Users/siwat/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_gdbstub/include",
"C:/Users/siwat/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_gdbstub/xtensa",
"C:/Users/siwat/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_gdbstub/esp32",
"C:/Users/siwat/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/espcoredump/include",
"C:/Users/siwat/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/espcoredump/include/port/xtensa",
"C:/Users/siwat/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/wpa_supplicant/include",
"C:/Users/siwat/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/wpa_supplicant/port/include",
"C:/Users/siwat/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/wpa_supplicant/esp_supplicant/include",
"C:/Users/siwat/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/ieee802154/include",
"C:/Users/siwat/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/console",
"C:/Users/siwat/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/asio/asio/asio/include",
"C:/Users/siwat/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/asio/port/include",
"C:/Users/siwat/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/bt/common/osi/include",
"C:/Users/siwat/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/bt/include/esp32/include",
"C:/Users/siwat/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/bt/common/api/include/api",
"C:/Users/siwat/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/bt/common/btc/profile/esp/blufi/include",
"C:/Users/siwat/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/bt/common/btc/profile/esp/include",
"C:/Users/siwat/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/bt/host/bluedroid/api/include/api",
"C:/Users/siwat/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/bt/esp_ble_mesh/mesh_common/include",
"C:/Users/siwat/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/bt/esp_ble_mesh/mesh_common/tinycrypt/include",
"C:/Users/siwat/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/bt/esp_ble_mesh/mesh_core",
"C:/Users/siwat/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/bt/esp_ble_mesh/mesh_core/include",
"C:/Users/siwat/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/bt/esp_ble_mesh/mesh_core/storage",
"C:/Users/siwat/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/bt/esp_ble_mesh/btc/include",
"C:/Users/siwat/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/bt/esp_ble_mesh/mesh_models/common/include",
"C:/Users/siwat/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/bt/esp_ble_mesh/mesh_models/client/include",
"C:/Users/siwat/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/bt/esp_ble_mesh/mesh_models/server/include",
"C:/Users/siwat/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/bt/esp_ble_mesh/api/core/include",
"C:/Users/siwat/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/bt/esp_ble_mesh/api/models/include",
"C:/Users/siwat/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/bt/esp_ble_mesh/api",
"C:/Users/siwat/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/cbor/port/include",
"C:/Users/siwat/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/unity/include",
"C:/Users/siwat/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/unity/unity/src",
"C:/Users/siwat/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/cmock/CMock/src",
"C:/Users/siwat/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/coap/port/include",
"C:/Users/siwat/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/coap/libcoap/include",
"C:/Users/siwat/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/nghttp/port/include",
"C:/Users/siwat/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/nghttp/nghttp2/lib/includes",
"C:/Users/siwat/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp-tls",
"C:/Users/siwat/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp-tls/esp-tls-crypto",
"C:/Users/siwat/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_adc_cal/include",
"C:/Users/siwat/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_hid/include",
"C:/Users/siwat/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/tcp_transport/include",
"C:/Users/siwat/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_http_client/include",
"C:/Users/siwat/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_http_server/include",
"C:/Users/siwat/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_https_ota/include",
"C:/Users/siwat/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_https_server/include",
"C:/Users/siwat/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_lcd/include",
"C:/Users/siwat/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_lcd/interface",
"C:/Users/siwat/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/protobuf-c/protobuf-c",
"C:/Users/siwat/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/protocomm/include/common",
"C:/Users/siwat/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/protocomm/include/security",
"C:/Users/siwat/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/protocomm/include/transports",
"C:/Users/siwat/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/mdns/include",
"C:/Users/siwat/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_local_ctrl/include",
"C:/Users/siwat/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/sdmmc/include",
"C:/Users/siwat/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_serial_slave_link/include",
"C:/Users/siwat/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_websocket_client/include",
"C:/Users/siwat/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/expat/expat/expat/lib",
"C:/Users/siwat/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/expat/port/include",
"C:/Users/siwat/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/wear_levelling/include",
"C:/Users/siwat/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/fatfs/diskio",
"C:/Users/siwat/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/fatfs/vfs",
"C:/Users/siwat/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/fatfs/src",
"C:/Users/siwat/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/freemodbus/freemodbus/common/include",
"C:/Users/siwat/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/idf_test/include",
"C:/Users/siwat/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/idf_test/include/esp32",
"C:/Users/siwat/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/jsmn/include",
"C:/Users/siwat/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/json/cJSON",
"C:/Users/siwat/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/libsodium/libsodium/src/libsodium/include",
"C:/Users/siwat/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/libsodium/port_include",
"C:/Users/siwat/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/mqtt/esp-mqtt/include",
"C:/Users/siwat/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/openssl/include",
"C:/Users/siwat/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/perfmon/include",
"C:/Users/siwat/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/spiffs/include",
"C:/Users/siwat/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/ulp/include",
"C:/Users/siwat/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/wifi_provisioning/include",
"C:/Users/siwat/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/rmaker_common/include",
"C:/Users/siwat/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_diagnostics/include",
"C:/Users/siwat/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/rtc_store/include",
"C:/Users/siwat/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_insights/include",
"C:/Users/siwat/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/json_parser/upstream/include",
"C:/Users/siwat/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/json_parser/upstream",
"C:/Users/siwat/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/json_generator/upstream",
"C:/Users/siwat/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_schedule/include",
"C:/Users/siwat/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/espressif__esp_secure_cert_mgr/include",
"C:/Users/siwat/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_rainmaker/include",
"C:/Users/siwat/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/gpio_button/button/include",
"C:/Users/siwat/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/qrcode/include",
"C:/Users/siwat/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/ws2812_led",
"C:/Users/siwat/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_littlefs/include",
"C:/Users/siwat/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp-dl/include",
"C:/Users/siwat/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp-dl/include/tool",
"C:/Users/siwat/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp-dl/include/typedef",
"C:/Users/siwat/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp-dl/include/image",
"C:/Users/siwat/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp-dl/include/math",
"C:/Users/siwat/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp-dl/include/nn",
"C:/Users/siwat/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp-dl/include/layer",
"C:/Users/siwat/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp-dl/include/detect",
"C:/Users/siwat/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp-dl/include/model_zoo",
"C:/Users/siwat/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp-sr/src/include",
"C:/Users/siwat/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp-sr/esp-tts/esp_tts_chinese/include",
"C:/Users/siwat/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp-sr/include/esp32",
"C:/Users/siwat/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp32-camera/driver/include",
"C:/Users/siwat/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp32-camera/conversions/include",
"C:/Users/siwat/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/espressif__esp-dsp/modules/dotprod/include",
"C:/Users/siwat/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/espressif__esp-dsp/modules/support/include",
"C:/Users/siwat/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/espressif__esp-dsp/modules/windows/include",
"C:/Users/siwat/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/espressif__esp-dsp/modules/windows/hann/include",
"C:/Users/siwat/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/espressif__esp-dsp/modules/windows/blackman/include",
"C:/Users/siwat/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/espressif__esp-dsp/modules/windows/blackman_harris/include",
"C:/Users/siwat/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/espressif__esp-dsp/modules/windows/blackman_nuttall/include",
"C:/Users/siwat/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/espressif__esp-dsp/modules/windows/nuttall/include",
"C:/Users/siwat/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/espressif__esp-dsp/modules/windows/flat_top/include",
"C:/Users/siwat/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/espressif__esp-dsp/modules/iir/include",
"C:/Users/siwat/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/espressif__esp-dsp/modules/fir/include",
"C:/Users/siwat/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/espressif__esp-dsp/modules/math/include",
"C:/Users/siwat/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/espressif__esp-dsp/modules/math/add/include",
"C:/Users/siwat/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/espressif__esp-dsp/modules/math/sub/include",
"C:/Users/siwat/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/espressif__esp-dsp/modules/math/mul/include",
"C:/Users/siwat/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/espressif__esp-dsp/modules/math/addc/include",
"C:/Users/siwat/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/espressif__esp-dsp/modules/math/mulc/include",
"C:/Users/siwat/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/espressif__esp-dsp/modules/math/sqrt/include",
"C:/Users/siwat/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/espressif__esp-dsp/modules/matrix/include",
"C:/Users/siwat/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/espressif__esp-dsp/modules/fft/include",
"C:/Users/siwat/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/espressif__esp-dsp/modules/dct/include",
"C:/Users/siwat/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/espressif__esp-dsp/modules/conv/include",
"C:/Users/siwat/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/espressif__esp-dsp/modules/common/include",
"C:/Users/siwat/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/espressif__esp-dsp/modules/kalman/ekf/include",
"C:/Users/siwat/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/espressif__esp-dsp/modules/kalman/ekf_imu13states/include",
"C:/Users/siwat/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/fb_gfx/include",
"C:/Users/siwat/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/qio_qspi/include",
"C:/Users/siwat/.platformio/packages/framework-arduinoespressif32/cores/esp32",
"C:/Users/siwat/.platformio/packages/framework-arduinoespressif32/variants/wt32-eth01",
"C:/Users/siwat/.platformio/packages/framework-arduinoespressif32/libraries/ArduinoOTA/src",
"C:/Users/siwat/.platformio/packages/framework-arduinoespressif32/libraries/AsyncUDP/src",
"C:/Users/siwat/.platformio/packages/framework-arduinoespressif32/libraries/BLE/src",
"C:/Users/siwat/.platformio/packages/framework-arduinoespressif32/libraries/BluetoothSerial/src",
"C:/Users/siwat/.platformio/packages/framework-arduinoespressif32/libraries/DNSServer/src",
"C:/Users/siwat/.platformio/packages/framework-arduinoespressif32/libraries/EEPROM/src",
"C:/Users/siwat/.platformio/packages/framework-arduinoespressif32/libraries/ESP32/src",
"C:/Users/siwat/.platformio/packages/framework-arduinoespressif32/libraries/ESPmDNS/src",
"C:/Users/siwat/.platformio/packages/framework-arduinoespressif32/libraries/Ethernet/src",
"C:/Users/siwat/.platformio/packages/framework-arduinoespressif32/libraries/FFat/src",
"C:/Users/siwat/.platformio/packages/framework-arduinoespressif32/libraries/FS/src",
"C:/Users/siwat/.platformio/packages/framework-arduinoespressif32/libraries/HTTPClient/src",
"C:/Users/siwat/.platformio/packages/framework-arduinoespressif32/libraries/HTTPUpdate/src",
"C:/Users/siwat/.platformio/packages/framework-arduinoespressif32/libraries/HTTPUpdateServer/src",
"C:/Users/siwat/.platformio/packages/framework-arduinoespressif32/libraries/I2S/src",
"C:/Users/siwat/.platformio/packages/framework-arduinoespressif32/libraries/Insights/src",
"C:/Users/siwat/.platformio/packages/framework-arduinoespressif32/libraries/LittleFS/src",
"C:/Users/siwat/.platformio/packages/framework-arduinoespressif32/libraries/NetBIOS/src",
"C:/Users/siwat/.platformio/packages/framework-arduinoespressif32/libraries/Preferences/src",
"C:/Users/siwat/.platformio/packages/framework-arduinoespressif32/libraries/RainMaker/src",
"C:/Users/siwat/.platformio/packages/framework-arduinoespressif32/libraries/SD/src",
"C:/Users/siwat/.platformio/packages/framework-arduinoespressif32/libraries/SD_MMC/src",
"C:/Users/siwat/.platformio/packages/framework-arduinoespressif32/libraries/SPI/src",
"C:/Users/siwat/.platformio/packages/framework-arduinoespressif32/libraries/SPIFFS/src",
"C:/Users/siwat/.platformio/packages/framework-arduinoespressif32/libraries/SimpleBLE/src",
"C:/Users/siwat/.platformio/packages/framework-arduinoespressif32/libraries/Ticker/src",
"C:/Users/siwat/.platformio/packages/framework-arduinoespressif32/libraries/USB/src",
"C:/Users/siwat/.platformio/packages/framework-arduinoespressif32/libraries/Update/src",
"C:/Users/siwat/.platformio/packages/framework-arduinoespressif32/libraries/WebServer/src",
"C:/Users/siwat/.platformio/packages/framework-arduinoespressif32/libraries/WiFi/src",
"C:/Users/siwat/.platformio/packages/framework-arduinoespressif32/libraries/WiFiClientSecure/src",
"C:/Users/siwat/.platformio/packages/framework-arduinoespressif32/libraries/WiFiProv/src",
"C:/Users/siwat/.platformio/packages/framework-arduinoespressif32/libraries/Wire/src",
""
],
"C_Cpp_Runner.includePaths": [],
"C_Cpp_Runner.includeSearch": [
"*",
"**/*"
@ -285,11 +56,11 @@
"C_Cpp_Runner.showCompilationTime": false,
"C_Cpp_Runner.useLinkTimeOptimization": false,
"C_Cpp_Runner.msvcSecureNoWarnings": false,
"C_Cpp.errorSquiggles": "disabled",
"files.associations": {
"random": "cpp",
"*.tcc": "cpp",
"array": "cpp",
"atomic": "cpp",
"*.tcc": "cpp",
"bitset": "cpp",
"cctype": "cpp",
"clocale": "cpp",
@ -316,6 +87,7 @@
"memory_resource": "cpp",
"numeric": "cpp",
"optional": "cpp",
"random": "cpp",
"regex": "cpp",
"string": "cpp",
"string_view": "cpp",

Binary file not shown.

View file

@ -12,5 +12,8 @@
platform = espressif32
board = wt32-eth01
framework = arduino
lib_deps = siwats/ESPMegaPROR3@^2.2.3
lib_deps = siwats/ESPMegaPROR3@^2.3.6
monitor_speed = 115200
build_flags = -DCORE_DEBUG_LEVEL=0
upload_port = COM32
monitor_port = COM32

128
src/IRcode.txt Normal file
View file

@ -0,0 +1,128 @@
//dry
{5043,2130,381,1770,406,670,406,671,406,669,380,1771,381,695,407,669,406,670,407,669,380,1771,381,695,380,1771,381,1771,406,669,407,1745,380,1772,379,1772,380,1771,381,1771,406,670,380,1772,380,695,380,696,380,696,406,669,381,695,406,670,380,1771,381,695,406,670,380,1772,406,669,381,695,380,696,406,1745,380,696,380,696,405,670,407,670,406,669,380,696,407,669,380,695,381,695,380,695,381,695,381,695,380,696,407,669,380,1771,406,1745,408,1744,380,696,380,696,406,1745,381,695,380,29382,5043,2130,380,1771,407,669,380,695,407,669,381,1771,406,670,406,670,380,695,408,668,406,1745,407,669,380,1772,380,1772,406,669,406,1745,380,1772,405,1746,392,1759,407,1746,406,669,380,1772,379,696,380,696,379,697,380,696,405,670,380,696,405,1746,380,696,406,670,406,1746,379,696,406,670,404,672,405,671,406,669,380,696,379,697,379,696,406,670,379,1773,379,1772,406,670,404,672,379,696,406,1746,406,670,405,670,380,696,379,696,405,672,405,670,380,696,406,670,406,670,378,698,404,1747,405,671,404,672,378,697,405,1747,406,1745,379,1772,380,698,402,672,379,696,379,698,379,696,406,670,379,697,405,670,405,671,406,670,379,697,404,671,405,672,405,670,407,669,405,671,404,671,404,672,405,671,404,671,406,670,404,672,379,696,406,670,379,697,379,1773,378,1773,378,1773,378,1774,379,697,403,673,403,672,377,699,406,669,378,698,378,698,378,697,377,699,405,671,405,671,404,671,378,698,377,699,378,697,379,697,405,671,405,1747,406,669,379,697,405,671,405,671,378,697,405,671,405,671,378,697,405,671,405,671,382,694,379,697,406,669,380,696,378,701,375,698,380,696,406,669,379,696,380,697,404,672,405,671,378,697,405,671,378,698,377,698,379,1772,407,669,380,1772,404,1747,405,671,380,696,379,697,379,696,407}
//fan_only auto
{5069,2104,406,1746,407,668,408,669,405,670,407,1745,407,668,381,695,381,695,406,670,380,1772,379,696,406,1745,381,1771,380,696,380,1772,379,1772,381,1770,406,1746,407,1745,380,696,406,1745,381,695,380,696,380,696,406,669,407,669,380,696,406,1746,402,673,380,696,406,1746,380,695,407,669,380,696,406,1745,406,670,407,670,379,696,406,670,380,695,407,669,406,669,408,669,406,670,380,695,380,696,407,669,380,695,405,671,407,1745,406,1746,379,1772,380,696,406,670,379,1772,380,696,380,29383,5068,2105,380,1771,407,669,380,696,406,669,380,1772,380,696,380,696,380,695,381,695,380,1771,381,696,380,1771,406,1745,381,695,381,1771,405,1747,379,1772,405,1747,380,1771,395,681,406,1745,381,695,407,669,407,669,380,696,379,696,407,669,380,1771,407,669,406,670,380,1772,406,669,381,695,406,670,380,695,381,695,407,669,407,669,380,696,406,670,380,1771,406,1746,405,670,381,696,405,670,405,1747,380,1771,406,669,408,669,407,668,407,669,380,696,380,696,380,695,380,696,381,695,380,1771,407,669,381,696,406,669,406,670,380,695,381,695,407,669,406,669,381,696,405,670,381,695,380,696,380,696,407,669,405,670,407,669,383,693,407,669,379,696,380,696,406,670,406,669,407,669,381,695,407,669,405,670,380,696,381,696,404,670,381,696,380,695,381,1771,406,1745,381,1770,408,1745,380,695,381,695,380,696,380,696,407,669,406,670,380,695,380,696,380,696,405,671,380,695,407,669,380,695,381,695,381,695,380,696,380,696,406,1745,407,669,380,696,380,696,406,669,381,695,380,696,380,695,406,670,406,670,406,670,380,696,405,670,381,695,380,696,380,696,407,669,380,695,406,670,407,669,407,669,380,695,381,696,406,669,407,669,380,696,380,695,406,1746,406,670,406,1745,406,1745,407,1745,381,695,381,1771,380,1771,407}, //AUTO
{5043,2130,380,1772,380,696,380,696,379,697,379,1771,381,695,381,696,379,696,406,670,380,1771,381,696,379,1771,381,1771,380,696,380,1771,381,1771,380,1772,380,1772,380,1771,380,696,380,1771,381,694,381,696,380,696,380,695,381,695,380,696,380,1772,380,695,380,697,379,1772,380,695,381,695,381,695,380,1772,380,696,380,696,379,696,380,696,380,696,380,696,379,696,380,696,380,695,381,696,380,696,380,696,379,695,381,695,381,1771,380,1771,381,1771,380,697,379,696,380,1771,381,694,381,29382,5044,2130,380,1771,380,697,379,696,380,696,380,1770,381,696,436,640,380,696,380,696,380,1770,381,695,407,1746,379,1771,381,696,380,1771,380,1772,380,1770,381,1772,380,1772,380,696,380,1771,380,696,380,696,380,696,380,697,378,695,381,696,380,1772,379,697,379,696,380,1772,380,696,379,696,380,696,380,696,380,696,379,696,380,696,380,695,381,695,380,1771,381,1772,380,695,380,696,380,696,380,1772,379,1772,380,696,380,696,380,696,379,696,380,696,380,696,380,696,379,696,381,695,380,1771,381,695,380,696,380,696,380,695,381,695,381,695,380,696,380,696,380,695,381,695,380,695,381,696,380,696,380,695,381,696,379,697,379,696,380,696,380,695,380,696,380,697,379,696,380,695,380,696,380,697,379,696,380,696,380,695,381,696,379,695,381,696,380,1771,380,1772,380,1772,379,1772,380,1772,380,696,379,1772,380,696,380,696,380,696,379,696,409,667,380,695,381,695,380,696,380,696,380,696,380,695,381,695,380,696,380,696,380,1771,380,696,380,696,406,669,381,695,380,696,380,695,381,696,380,696,379,696,380,696,380,696,379,696,406,671,379,696,405,671,380,696,380,695,380,696,380,697,379,696,380,695,380,696,380,696,380,696,380,696,379,697,407,1743,407,669,380,1772,407,1744,409,668,405,1746,406,670,380,695,380}, //HIGH
{5069,2105,405,1746,381,695,380,695,381,696,407,1745,379,696,380,696,380,696,380,696,380,1771,380,697,379,1771,406,1745,407,669,381,1771,380,1772,405,1746,380,1772,380,1772,379,696,380,1772,379,696,407,669,380,695,381,696,380,696,379,696,380,1771,381,696,380,695,380,1772,380,696,380,695,405,672,379,1771,381,695,380,695,407,670,380,696,404,670,381,696,380,696,380,697,404,670,406,670,380,696,406,669,381,696,380,695,380,1771,381,1772,379,1771,381,695,381,695,407,1744,381,695,381,29381,5069,2104,380,1772,380,696,406,670,380,696,379,1772,380,695,406,670,380,696,380,696,380,1772,406,668,406,1746,381,1771,380,696,380,1772,379,1772,380,1771,381,1771,406,1746,406,670,379,1772,380,695,407,669,380,696,380,696,380,696,405,671,379,1772,380,696,380,696,406,1745,380,696,405,671,404,671,380,696,380,696,405,671,380,695,407,669,380,696,380,1771,380,1772,380,695,381,694,407,670,380,1771,381,1771,380,696,406,669,407,669,406,670,380,696,380,696,380,695,406,671,406,669,380,1771,380,696,380,696,380,696,406,670,405,671,379,697,379,697,379,695,406,670,407,669,380,696,380,696,379,696,380,696,380,695,381,695,407,670,379,696,380,696,406,669,406,670,380,696,380,696,380,696,380,695,406,671,405,670,406,669,381,696,379,697,405,670,405,1747,379,1772,405,1746,406,1746,380,1771,395,1757,380,696,380,697,379,695,407,669,380,696,405,671,380,695,380,696,380,696,406,670,406,670,405,670,380,696,408,668,404,671,381,1771,380,697,394,680,380,696,406,670,380,696,380,696,407,668,407,669,380,696,380,695,380,696,380,696,405,671,380,695,381,696,406,669,380,697,379,696,379,696,380,696,380,697,379,696,406,669,408,668,380,695,381,695,380,1772,380,696,380,1772,379,1772,406,670,405,670,381,695,380,696,380}, //MID
{5039,2131,406,1745,380,696,379,697,378,698,378,1772,380,697,379,697,379,696,379,697,404,1748,378,698,379,1771,380,1772,379,698,378,1772,380,1772,379,1773,379,1772,383,1768,380,697,379,1772,379,697,379,696,380,697,379,696,406,671,378,696,380,1773,378,697,379,698,378,1772,379,698,379,696,379,697,379,1772,380,696,379,697,379,697,406,669,380,696,379,697,379,696,380,696,380,696,379,697,379,697,379,696,379,697,380,696,379,1773,379,1772,379,1772,406,670,405,671,379,1772,380,696,380,29382,5043,2130,379,1773,405,670,380,695,381,696,379,1772,379,697,380,696,379,697,379,697,379,1772,405,671,379,1772,380,1771,380,697,379,1772,380,1772,379,1773,379,1772,379,1773,379,696,405,1746,382,694,380,696,379,696,380,696,380,696,380,695,381,1772,379,696,380,696,379,1773,379,696,380,696,380,696,405,671,379,696,380,696,380,696,406,671,378,697,379,1772,380,1772,379,696,380,696,380,696,405,1746,380,1772,379,697,379,697,379,697,379,696,380,696,379,697,379,697,379,696,380,696,379,1773,379,696,379,698,378,696,406,671,379,696,380,696,379,697,379,697,405,670,380,696,379,697,379,697,379,697,406,670,404,671,379,697,378,697,380,696,379,697,379,697,379,696,380,697,379,696,380,696,379,697,379,695,380,697,405,671,379,696,380,696,379,697,379,1773,379,1772,379,1772,380,1772,379,1773,379,696,380,696,379,697,379,697,379,696,380,696,405,671,379,697,379,696,380,696,379,697,379,697,404,672,379,696,379,698,379,696,379,1772,380,696,380,696,379,698,404,670,380,696,379,696,380,697,379,696,379,697,379,697,380,696,379,696,380,697,405,670,405,671,379,697,379,696,380,696,379,696,380,697,378,698,379,697,378,697,379,697,379,696,405,671,379,1772,380,697,379,1772,379,1772,380,696,380,1771,380,1772,379,1773,379} //LOW
//cool auto
{5043,2131,404,1747,379,697,379,697,379,695,407,1746,379,698,378,697,379,697,379,696,406,1745,380,697,380,1772,379,1772,379,697,379,1773,379,1772,379,1773,379,1772,406,1746,379,697,379,1772,380,695,381,696,405,670,406,671,379,696,380,697,379,1772,405,671,379,696,380,1771,407,670,379,696,380,696,380,1772,405,670,405,672,379,697,379,695,380,697,379,697,379,696,380,696,379,697,380,696,379,696,380,696,380,696,380,696,380,1772,379,1772,380,1772,379,696,380,697,379,1772,379,697,379,29383,5043,2130,380,1772,380,696,405,671,379,697,405,1746,380,696,380,696,405,670,406,670,380,1772,380,696,405,1746,405,1747,405,671,379,1773,405,1746,379,1773,379,1773,379,1773,379,695,380,1772,407,669,379,697,379,696,407,670,379,696,380,696,379,1773,405,671,379,695,380,1773,379,697,405,670,380,696,380,696,405,671,379,697,379,697,379,696,380,696,379,1772,380,1772,379,696,405,671,380,1772,406,1746,380,1772,379,696,380,696,379,697,379,697,379,696,380,696,380,695,381,695,380,697,405,1746,380,696,379,697,406,670,379,697,378,1773,379,697,405,670,380,696,380,696,380,696,380,696,379,696,380,696,380,696,380,695,380,696,380,696,380,697,379,696,405,670,406,671,382,693,405,671,380,695,408,1748,401,1747,379,1773,379,696,406,670,380,695,381,697,378,1773,405,1746,379,1772,380,1772,380,696,379,696,380,697,379,697,379,696,380,697,405,670,379,696,380,696,380,697,379,696,379,697,405,671,379,696,380,696,381,695,379,697,379,1772,380,696,379,696,380,697,379,696,380,696,380,696,405,670,380,697,379,697,379,696,380,696,380,695,380,696,380,697,404,671,406,671,378,697,379,696,380,696,380,696,380,696,379,697,406,669,407,669,380,696,380,696,404,1748,379,1772,380,697,378,1773,379,1772,380,697,378,696,380,696,380}, //16C
{5043,2130,405,1747,380,696,380,696,406,670,384,1767,380,696,380,695,380,702,374,697,405,1746,407,669,405,1747,406,1745,380,696,379,1773,379,1772,380,1772,379,1772,380,1772,379,697,379,1772,380,696,406,670,405,671,406,670,379,696,406,671,379,1771,406,670,380,697,406,1745,405,671,379,697,379,696,405,1747,380,696,380,696,379,696,406,670,380,696,380,696,379,697,380,695,380,696,380,696,379,697,379,697,379,696,380,696,405,1746,406,1746,380,1772,405,671,379,696,382,1770,380,696,379,29384,5042,2130,380,1772,407,670,406,669,380,696,379,1773,379,697,406,669,380,695,381,695,385,1767,406,670,380,1777,402,1744,407,669,380,1772,379,1772,401,1750,381,1771,380,1772,406,670,380,1771,380,697,379,696,406,670,379,697,379,696,380,696,405,1747,406,670,379,696,406,1746,380,696,379,697,379,696,380,696,380,696,380,695,381,695,407,669,380,696,380,1771,380,1772,380,696,380,696,379,1772,380,1772,380,1772,379,697,379,697,404,672,378,696,380,697,405,670,380,696,380,696,379,697,380,1771,380,697,381,694,380,696,380,695,380,1775,377,696,379,696,380,696,380,696,380,696,380,696,406,669,380,697,379,696,408,668,404,672,379,697,406,669,380,695,381,696,380,695,405,672,379,696,380,696,380,696,406,669,381,696,379,1772,380,696,379,697,405,670,406,1746,380,1771,406,1746,380,1771,380,696,380,697,379,696,380,696,379,697,380,695,380,697,379,696,406,670,379,697,379,696,380,696,406,670,380,696,379,697,379,697,379,697,379,1771,380,696,380,696,380,697,379,696,380,696,379,697,379,696,380,696,405,671,379,696,380,696,407,670,405,670,407,669,379,697,405,670,380,696,380,696,405,670,381,696,379,696,380,696,380,696,405,670,406,670,380,696,380,1771,381,696,379,1771,381,1772,409,1743,379,696,380,696,406,670,379}, //17C
{5069,2104,407,1745,380,696,380,696,380,695,380,1772,380,696,380,696,379,696,380,696,380,1772,380,696,379,1772,380,1771,381,696,405,1746,380,1771,381,1771,380,1772,380,1771,380,696,380,1772,380,695,406,670,408,668,380,696,380,695,380,697,406,1745,380,696,380,696,379,1772,407,669,405,671,380,695,406,1746,380,696,405,671,380,695,380,697,380,695,380,695,381,696,379,696,380,696,380,696,406,670,380,696,388,687,380,696,380,1771,381,1771,380,1772,380,696,379,697,405,1746,380,696,380,29361,5064,2130,406,1746,380,696,379,697,405,670,380,1772,380,695,380,696,380,696,380,696,380,1771,380,696,380,1771,381,1771,380,696,406,1745,381,1771,380,1771,381,1771,380,1772,380,696,406,1745,407,669,381,694,381,696,380,695,406,670,380,696,405,1746,380,696,380,696,407,1745,407,669,405,671,379,696,380,695,381,696,380,695,380,696,380,696,406,670,406,1745,380,1772,405,671,379,696,380,1771,381,1772,380,1771,380,696,406,670,384,691,381,695,380,696,380,696,380,695,381,696,379,696,380,1772,406,669,407,669,380,696,380,696,380,1772,406,669,407,669,407,669,380,696,405,671,405,670,380,696,380,696,380,695,408,668,406,669,381,695,380,697,379,696,380,696,407,669,405,671,380,695,408,668,405,1746,381,695,380,695,381,1772,380,696,406,669,380,696,380,1771,406,1746,380,1771,381,1771,406,670,380,696,406,670,405,671,380,695,381,695,407,669,379,697,405,670,380,696,406,670,380,696,407,668,380,696,407,669,405,671,405,670,381,1771,407,673,376,696,380,695,381,695,406,670,380,696,407,669,405,670,381,695,406,670,405,671,406,670,407,668,407,669,380,696,406,670,405,671,380,695,406,670,380,696,405,670,381,696,406,668,407,670,380,695,381,695,380,1772,380,1771,408,1744,407,1745,380,1771,380,696,380,696,380,695,407}, //18C
{5069,2105,380,1771,380,696,406,670,379,697,404,1747,380,696,407,669,380,696,406,670,379,1772,380,696,406,1745,380,1772,406,670,406,1745,406,1746,406,1746,379,1773,379,1772,380,696,379,1773,404,671,380,696,386,690,405,670,405,672,404,671,379,1773,379,696,407,670,379,1771,406,671,406,669,406,670,380,1773,378,696,380,696,380,696,379,697,380,696,379,696,405,670,406,671,379,697,379,696,380,696,380,696,406,670,379,696,380,1772,380,1772,380,1771,380,696,380,695,380,1773,379,697,379,29360,5065,2130,380,1773,379,697,379,697,379,696,379,1771,381,696,380,696,405,672,378,697,379,1772,379,697,379,1772,380,1772,405,672,378,1772,380,1772,380,1771,380,1772,380,1772,379,696,407,1745,380,696,380,697,404,670,380,696,380,697,379,696,379,1773,378,697,380,697,378,1772,407,670,379,697,379,697,378,697,379,697,404,672,381,694,380,696,405,670,380,1775,377,1771,380,697,379,696,380,1772,405,1746,380,1772,380,696,379,697,404,672,379,697,405,671,379,696,379,697,379,696,380,697,379,1772,379,697,379,696,380,697,406,668,380,1772,380,697,379,696,380,696,379,697,379,696,380,697,378,697,380,696,379,696,380,697,379,696,379,697,380,696,379,698,378,697,378,697,380,695,380,696,380,697,379,696,379,1773,379,697,379,1772,379,697,379,697,379,697,379,1772,379,1773,379,1773,379,1772,379,697,379,697,404,672,405,670,379,697,379,697,379,697,378,697,406,670,379,696,380,696,380,696,380,696,379,696,380,696,406,670,379,697,379,1773,379,697,404,672,378,697,379,697,379,697,379,696,380,695,380,696,380,697,379,697,379,695,380,696,380,696,380,697,380,695,379,696,380,697,379,697,379,696,380,696,379,697,379,697,379,696,380,696,407,669,379,697,379,1772,380,696,379,696,383,693,380,695,381,1772,380,695,406,670,380}, //19C
{5087,2108,380,1772,406,670,379,696,380,696,380,1772,379,697,379,697,379,696,407,669,379,1772,380,697,379,1773,378,1772,380,696,380,1771,380,1772,380,1772,379,1772,407,1745,380,695,380,1773,379,696,380,696,379,697,379,696,406,671,379,696,407,1745,405,671,379,697,379,1772,379,697,379,696,380,697,379,1772,379,697,379,697,379,697,378,697,379,697,379,696,379,696,381,696,379,697,406,669,380,697,379,697,382,693,380,695,380,1773,378,1773,379,1772,380,696,406,671,378,1772,380,697,379,29360,5065,2130,380,1773,379,696,405,670,380,697,379,1772,380,696,380,695,380,697,379,696,406,1747,378,697,379,1773,378,1773,379,697,379,1772,405,1747,379,1772,380,1772,379,1773,379,696,380,1772,379,697,378,697,406,670,379,697,379,696,380,696,380,1771,380,696,380,696,380,1772,380,696,379,697,379,696,380,696,380,696,379,697,379,697,379,697,379,696,379,1773,379,1773,404,671,379,697,379,1772,405,1747,380,1771,380,696,380,697,384,692,378,697,379,697,379,697,379,696,379,697,379,697,379,1772,379,697,379,697,379,696,380,696,380,1772,379,696,380,696,380,697,378,697,379,697,379,697,379,697,378,697,405,671,379,698,378,697,379,696,379,696,380,697,379,697,379,696,379,697,379,697,379,697,379,1772,379,1773,379,697,404,1747,379,697,379,696,379,698,404,1747,379,1773,378,1772,380,1773,379,697,433,643,379,696,379,697,379,696,380,696,379,696,380,697,379,697,379,696,379,697,405,671,379,696,380,697,383,693,404,671,379,697,379,1777,375,697,378,697,405,671,379,697,379,697,403,672,379,696,380,697,379,696,379,697,379,697,379,697,379,697,379,696,406,670,379,697,379,696,380,697,378,698,379,696,379,697,379,697,379,697,378,697,379,697,379,696,380,1772,379,1773,379,697,378,697,379,697,379,1772,380,697,379,696,380}, //20C
{5043,2130,407,1745,407,669,379,696,381,695,405,1747,380,695,406,670,406,670,380,696,406,1745,380,697,405,1745,406,1746,406,670,406,1746,405,1746,406,1745,407,1745,407,1745,390,686,380,1772,405,670,406,670,380,695,380,696,380,697,405,670,406,1745,408,668,405,670,407,1745,393,683,406,670,380,696,406,1745,380,696,406,670,405,670,381,696,379,696,380,696,406,669,408,669,406,670,379,696,380,697,379,696,406,670,405,670,384,1768,406,1746,380,1770,407,670,405,670,406,1746,380,696,405,29336,5064,2130,380,1772,406,670,405,671,395,680,380,1772,406,670,380,696,380,696,379,696,380,1772,405,671,406,1746,379,1772,379,696,380,1771,381,1772,405,1746,380,1771,380,1772,380,697,405,1745,380,696,380,696,380,696,380,696,407,669,379,696,380,1771,381,695,380,696,380,1771,380,696,380,697,379,696,380,696,405,671,379,697,379,696,380,696,406,669,380,1772,406,1746,382,694,405,671,379,1772,380,1771,381,1771,380,697,405,669,381,695,405,672,405,671,379,696,405,671,405,670,380,696,380,1771,381,696,379,695,381,696,380,695,380,1773,405,670,380,696,406,669,407,670,379,696,380,696,380,696,380,696,379,696,380,696,380,697,405,670,406,669,406,671,379,695,381,696,380,696,379,697,379,696,380,696,380,695,380,1771,381,1771,406,671,379,696,380,696,380,1771,380,1772,380,1771,380,1772,380,696,405,670,381,696,405,670,380,697,406,669,380,695,381,695,380,697,379,696,380,696,379,697,379,697,406,669,407,668,381,696,405,670,380,1772,380,696,380,696,379,697,405,670,380,696,379,697,379,696,380,696,380,696,380,696,404,672,379,697,406,669,380,695,407,670,379,696,406,670,380,695,381,696,384,692,404,671,407,669,380,695,406,671,405,670,380,696,380,1771,380,696,407,1745,380,696,379,697,405,1746,380,696,407,669,405}, //21C
{5042,2131,379,1773,378,699,377,697,402,674,379,1773,381,694,379,698,378,697,379,697,379,1772,406,670,379,1772,379,1773,379,697,379,1772,379,1773,378,1774,378,1774,378,1772,380,697,378,1773,379,698,378,697,379,697,379,697,378,698,405,670,379,1772,379,698,378,697,379,1773,378,698,378,697,379,697,379,1773,405,670,379,697,379,697,379,697,379,697,378,697,379,697,379,697,405,670,380,697,378,697,379,696,380,697,378,698,378,1774,378,1772,405,1748,378,697,379,697,378,1773,380,697,378,29362,5090,2103,381,1771,380,696,380,696,384,691,381,1771,380,696,405,671,380,696,379,696,380,1772,384,691,381,1771,406,1745,407,669,406,1746,407,1744,407,1745,406,1746,406,1745,406,669,407,1745,407,670,404,671,407,669,405,670,381,695,406,670,406,1746,405,670,380,696,380,1772,380,695,407,669,406,670,406,670,405,671,406,669,406,670,384,692,380,695,381,1770,406,1746,380,696,380,697,406,1744,407,1745,406,1746,406,670,379,696,398,678,379,698,377,698,378,697,379,697,378,698,378,698,377,1774,377,699,351,726,349,726,350,726,349,1802,349,728,348,731,344,728,348,728,347,729,371,704,372,705,372,702,373,704,373,702,373,703,373,702,374,702,373,703,373,703,374,701,374,703,373,702,373,703,373,1778,374,702,373,1778,373,1779,373,703,372,704,371,706,369,1781,371,1780,347,1805,347,1804,347,730,346,729,347,729,347,731,345,728,348,728,347,729,347,729,347,728,373,703,373,703,373,703,374,701,374,702,374,702,375,701,375,700,376,1776,376,700,376,699,377,699,377,699,377,698,378,698,377,698,384,693,377,698,378,697,405,671,389,692,374,697,404,672,404,671,404,672,404,672,403,673,403,672,378,698,404,672,403,673,403,673,377,698,403,673,403,673,403,1748,403,1749,402,1749,377,699,402,674,377,1775,401,675,376,699,376}, //22C
{5043,2131,379,1772,380,697,379,697,378,697,379,1772,380,697,378,697,379,697,379,697,379,1772,379,697,379,1772,380,1772,379,698,378,1772,406,1746,379,1772,380,1772,379,1772,380,697,379,1772,379,698,378,698,378,697,379,697,379,696,379,697,379,1772,380,696,380,697,382,1768,380,697,379,696,379,697,379,1772,380,696,406,670,380,695,380,697,379,696,380,696,379,696,380,697,379,696,379,696,381,696,379,697,379,697,379,696,379,1772,380,1773,379,1773,404,671,379,697,379,1773,378,696,380,29382,5043,2131,404,1748,379,696,380,697,379,696,405,1746,380,696,379,697,379,697,379,697,379,1772,379,697,379,1772,380,1772,379,697,379,1772,380,1772,379,1773,379,1772,379,1772,380,696,380,1772,379,697,379,696,380,697,379,697,379,695,380,697,379,1771,381,696,406,669,380,1772,379,698,378,697,379,697,379,697,379,696,379,697,379,697,379,696,380,695,380,1773,379,1771,381,695,381,696,379,1772,380,1772,379,1773,378,697,380,697,378,697,379,696,380,697,379,696,379,697,379,697,379,697,379,1772,379,697,379,697,379,697,379,697,378,1773,379,696,379,697,406,671,378,697,379,697,379,696,380,697,378,697,379,697,379,697,379,696,379,697,379,696,380,696,380,697,378,698,378,697,379,696,380,696,380,696,380,1772,379,1773,379,1773,404,671,379,696,380,697,378,1773,379,1772,380,1772,379,1772,380,695,381,696,405,671,379,697,379,696,380,696,380,696,379,697,379,696,379,697,379,698,378,697,378,697,380,697,378,697,379,697,379,697,379,1772,379,698,378,697,379,697,378,698,379,696,379,698,378,697,379,696,406,671,379,697,378,697,379,697,379,697,379,696,379,696,380,697,379,697,378,697,379,696,380,697,379,696,380,696,380,696,379,697,380,696,379,697,379,1771,380,696,380,697,379,1772,379,697,379,1772,407,670,379,696,405}, //23C
{5034,2137,375,1778,398,679,397,677,373,703,373,1780,373,703,371,703,372,706,397,705,345,1779,373,705,369,1807,344,1781,399,678,370,1781,397,1754,371,1781,380,1770,372,1808,344,706,370,1780,371,707,368,733,343,733,371,678,371,703,372,732,370,1781,370,705,346,731,369,1759,368,731,370,706,344,732,344,1808,343,732,344,707,394,707,345,731,370,680,396,705,344,732,343,706,370,733,370,679,370,706,370,733,343,731,345,731,371,1781,344,1808,342,1783,394,709,342,733,343,1808,344,732,344,29393,5032,2140,397,1781,343,709,368,732,342,734,341,1810,343,733,341,735,343,733,367,710,340,1839,311,735,344,1781,369,1810,342,733,370,1783,365,1785,343,1811,341,1809,336,1789,368,735,341,1809,342,734,341,737,367,708,368,708,341,735,342,732,369,1784,341,734,340,736,342,1810,339,737,368,706,343,734,342,732,342,735,343,733,342,734,340,735,342,735,342,1808,343,1808,370,710,341,704,372,1807,342,1810,371,1780,345,704,371,732,343,733,344,731,345,731,342,734,371,677,372,731,343,733,370,1754,398,679,371,703,372,704,372,704,373,1778,372,703,374,703,399,676,373,704,397,678,372,703,403,673,374,702,400,675,399,677,400,676,400,675,399,677,401,675,427,649,374,701,401,675,401,674,402,675,402,1750,401,1750,401,1751,404,1747,403,674,401,673,376,700,402,1750,401,1750,375,1777,375,1777,374,701,375,701,403,673,402,673,402,674,404,672,376,700,403,673,403,672,403,673,405,671,403,672,406,670,377,699,376,699,404,672,377,699,433,1719,404,672,403,673,375,700,404,672,404,672,406,670,402,673,405,671,405,671,403,672,433,643,430,647,402,673,406,669,406,671,404,671,406,670,406,670,404,671,379,698,433,642,403,673,402,674,377,698,378,698,404,672,403,1748,406,1746,403,673,406,1745,377,700,377,1774,406,670,377,698,405}, //24C
{5069,2103,406,1746,406,669,407,669,407,669,380,1772,407,668,381,696,380,695,380,696,380,1771,406,670,381,1771,406,1745,380,696,385,1767,380,1771,381,1771,406,1745,381,1771,407,669,406,1745,380,696,406,670,380,696,406,670,406,670,381,694,407,1745,400,676,405,671,405,1746,380,696,380,695,407,670,379,1772,407,668,381,696,379,696,407,670,406,669,380,696,380,696,406,672,402,671,384,692,407,669,382,694,405,670,406,669,407,1745,406,1746,380,1772,405,670,406,670,380,1772,380,695,380,29383,5043,2130,407,1744,406,671,379,696,407,668,381,1772,380,696,379,697,406,669,380,696,380,1772,405,670,406,1746,405,1747,379,697,404,1746,406,1746,380,1772,380,1771,380,1772,380,696,380,1771,406,671,405,671,379,695,380,697,379,697,405,670,380,1772,379,696,380,697,404,1747,380,695,380,696,406,670,380,696,405,671,407,669,405,670,380,695,380,696,380,1772,405,1747,405,671,406,669,380,1772,406,1750,375,1772,406,670,405,670,380,696,406,670,380,696,380,695,380,697,379,696,380,696,406,1746,405,670,407,670,379,696,406,669,380,1772,380,696,406,671,404,670,380,696,380,696,380,696,386,690,379,696,407,670,405,670,380,695,406,670,380,696,396,680,380,696,380,696,405,671,405,670,380,696,380,696,405,670,380,696,380,696,380,1771,380,696,380,696,405,1747,379,1772,380,1771,407,1745,380,696,380,696,380,696,407,668,407,669,380,696,406,670,405,670,380,696,380,696,380,696,406,673,402,670,380,696,405,671,406,670,380,695,380,1772,406,670,405,671,380,695,380,696,380,696,405,671,379,697,407,668,380,696,393,683,380,695,380,697,379,696,380,696,380,696,379,697,379,696,380,696,380,695,380,697,379,696,380,696,380,696,379,697,379,696,380,696,380,1772,380,695,406,1746,380,1771,380,697,379,1772,380,696,379,697,379}, //2C5C
{5043,2131,380,1772,379,696,380,696,379,698,378,1772,380,696,380,696,379,697,379,696,380,1772,379,697,379,1773,379,1772,380,696,379,1772,388,1763,381,1771,380,1772,379,1773,379,697,379,1772,379,697,405,670,380,696,380,696,405,671,380,696,383,1768,380,696,380,696,379,1772,380,696,379,697,379,697,379,1772,407,669,380,696,379,696,380,696,407,670,378,697,379,697,380,695,379,697,379,697,379,697,405,671,379,697,379,696,379,1773,379,1772,379,1773,379,696,380,697,379,1772,379,697,379,29383,5043,2130,380,1771,380,696,379,697,379,697,379,1772,380,696,379,697,380,696,379,697,379,1772,379,696,380,1772,380,1772,379,697,379,1772,379,1773,380,1771,380,1772,380,1771,381,695,379,1772,406,670,380,696,380,695,380,697,379,697,379,697,403,1748,379,697,380,696,406,1745,378,698,380,696,379,696,380,697,404,670,381,696,379,697,379,696,380,696,379,1772,380,1772,380,696,379,697,379,1772,407,1745,380,1771,380,696,406,669,407,669,381,695,380,695,381,696,405,671,379,696,380,696,406,1746,380,695,406,671,379,695,381,695,381,1771,381,695,380,695,380,697,380,695,380,696,380,696,380,695,381,695,380,696,380,696,406,670,380,695,407,669,381,695,402,674,380,696,406,669,381,696,405,670,380,1771,406,669,382,695,406,670,380,1771,381,695,380,695,407,1745,380,1771,407,1745,406,1746,380,695,381,695,406,670,406,669,381,696,406,669,380,696,407,669,406,669,407,669,406,670,407,669,405,670,381,695,406,670,407,669,406,670,406,1745,406,670,379,697,380,695,381,695,406,670,380,696,393,682,380,696,380,696,380,696,380,696,404,671,380,696,382,694,379,697,379,696,380,696,405,671,379,697,379,696,380,696,379,697,378,698,377,699,378,698,377,699,376,1775,350,1802,350,1801,350,1801,350,726,349,1803,349,727,374,702,372}, //26C
{5039,2132,379,1772,379,697,379,696,379,697,379,1772,379,697,379,697,379,696,380,696,379,1773,379,697,379,1772,379,1772,380,697,379,1772,379,1773,379,1772,379,1773,379,1772,380,696,380,1772,379,696,380,696,380,696,380,696,380,696,379,696,380,1772,379,697,379,697,379,1772,380,696,379,697,379,697,379,1772,380,696,379,696,380,696,379,697,380,695,380,696,380,696,379,696,380,696,380,696,380,695,381,696,379,696,380,696,379,1772,380,1771,380,1772,380,696,379,697,379,1772,379,697,379,29381,5042,2131,379,1773,378,697,433,643,432,644,378,1773,432,644,433,642,434,643,431,644,379,1772,435,641,433,1719,432,1719,433,643,434,1717,433,1719,433,1718,379,1773,433,1718,378,698,378,1773,379,698,432,644,431,644,432,644,433,643,433,642,433,1718,432,644,432,644,432,1719,433,643,433,643,432,644,434,642,433,642,432,644,434,642,431,645,433,643,401,1749,434,1718,432,644,430,646,432,1719,378,1773,432,1720,433,642,432,644,433,643,433,643,432,644,433,643,431,644,378,698,432,644,432,1719,432,643,462,614,379,697,433,643,433,1718,434,642,378,698,433,643,432,643,433,643,433,643,432,644,431,644,433,643,433,643,378,698,431,645,433,642,378,698,432,644,432,643,432,645,432,643,433,642,404,673,432,1719,433,643,432,643,432,1719,434,643,432,644,432,1719,378,1773,379,1773,378,1773,379,697,433,643,434,642,431,644,432,644,433,643,433,642,430,646,379,697,432,644,432,643,434,642,433,643,432,644,432,643,434,642,431,644,433,1719,433,643,378,699,431,644,432,643,433,644,429,645,434,642,432,644,433,643,433,643,431,645,434,641,432,644,431,645,378,698,432,643,433,642,434,642,433,643,379,697,433,642,434,643,432,643,432,644,431,645,431,645,431,1720,432,643,433,643,433,643,431,1720,379,1773,433,643,431,645,430}, //27C
{5043,2130,405,1746,381,695,380,696,380,696,380,1771,380,697,379,696,380,696,380,695,380,1772,380,696,405,1747,379,1772,380,695,381,1771,406,1745,381,1772,379,1772,380,1771,380,697,379,1772,380,695,381,696,379,696,409,668,379,696,380,695,407,1745,405,672,379,696,380,1771,380,696,380,696,380,695,381,1771,380,697,404,671,380,696,380,695,380,696,380,695,381,696,380,696,379,696,380,696,380,695,381,695,380,697,379,696,380,1771,381,1771,380,1772,379,697,379,696,380,1771,381,696,405,29356,5044,2130,380,1771,381,695,380,695,381,696,380,1772,405,670,380,695,381,696,379,696,380,1771,435,642,380,1771,380,1772,380,696,379,1772,380,1771,381,1772,404,1746,381,1772,380,696,379,1772,380,696,380,696,379,696,380,695,381,696,380,695,381,1771,380,696,380,695,406,1745,381,696,380,695,381,696,379,696,380,696,380,696,380,696,379,697,379,695,381,1772,380,1771,380,696,380,696,380,1772,379,1772,380,1771,380,697,379,696,380,695,381,695,406,670,407,669,380,696,380,696,380,695,380,1772,380,695,381,696,379,697,379,696,380,1772,380,696,380,695,380,696,380,697,379,695,380,697,379,696,380,695,408,669,380,696,379,696,380,696,380,696,379,697,379,696,380,696,380,696,380,696,379,696,380,1771,381,1771,380,697,379,696,380,1771,380,696,406,670,380,1771,380,1772,380,1772,380,1771,380,696,380,696,380,696,380,695,381,695,380,696,380,696,380,695,380,696,380,696,380,696,380,695,381,696,379,696,380,696,380,696,380,695,380,1771,381,696,406,669,380,697,379,696,380,696,380,695,381,696,379,696,380,696,407,669,380,696,380,695,380,696,405,671,380,696,435,640,380,695,381,696,380,695,380,696,380,696,380,696,406,669,381,695,380,697,379,696,380,1771,380,1772,380,696,432,644,380,1770,381,1771,381,694,381,696,380}, //28C
{5070,2104,407,1745,379,696,379,697,379,697,378,1774,378,698,378,696,407,671,377,697,434,1719,378,697,379,1773,379,1772,378,698,379,1773,378,1773,379,1772,379,1773,379,1772,379,698,378,1773,379,697,379,697,378,698,378,697,379,697,379,697,378,1773,380,696,378,699,378,1772,379,697,379,697,379,697,379,1772,379,697,379,697,378,697,379,698,378,697,378,698,378,697,379,697,379,697,379,697,379,696,380,697,379,697,378,696,380,1772,380,1772,405,1746,406,670,380,696,380,1772,406,669,380,29383,5042,2131,379,1772,380,696,405,671,380,695,381,1771,380,696,380,696,379,696,406,670,380,1772,405,670,381,1771,406,1746,380,695,380,1772,380,1772,405,1746,380,1771,380,1772,380,695,381,1771,380,697,378,697,380,696,379,696,381,696,379,696,380,1771,381,696,379,696,380,1772,379,697,379,696,380,696,406,670,380,696,379,696,380,696,380,696,379,697,406,1745,380,1771,380,697,379,700,376,1772,380,1771,380,1772,406,670,380,696,379,696,380,696,380,696,406,669,381,696,379,696,407,669,380,1771,381,695,380,696,379,697,380,696,379,1772,380,696,380,696,380,696,379,696,380,696,380,696,380,696,380,695,380,696,380,696,380,695,380,697,379,696,380,696,380,696,380,696,379,696,380,696,380,696,380,696,380,696,379,1772,380,695,380,1772,380,696,380,696,379,1772,380,1772,380,1772,379,1772,380,696,405,671,405,670,406,670,380,696,380,696,379,699,404,669,380,695,380,697,380,695,381,695,407,670,379,696,379,696,380,696,380,696,380,1772,379,697,379,696,380,696,380,696,380,695,407,670,379,697,379,696,380,696,380,696,379,696,380,696,380,696,379,696,380,697,379,696,380,696,380,695,380,696,380,696,380,696,380,695,380,696,381,695,380,696,380,696,379,1772,380,696,380,1771,380,697,379,1772,380,1771,380,697,379,696,380}, //29C
{5042,2131,384,1768,405,670,380,695,381,696,380,1771,380,696,406,669,380,697,405,670,406,1745,406,671,379,1771,381,1772,380,696,380,1770,407,1745,407,1745,406,1746,380,1771,407,669,380,1772,380,696,405,670,383,693,380,696,405,670,406,670,406,1746,380,696,405,671,379,1771,407,670,407,669,405,670,380,1771,381,696,380,695,380,696,380,695,381,696,406,670,379,696,380,695,381,696,380,696,405,670,405,672,379,696,380,696,405,1746,380,1772,379,1773,379,697,379,696,406,1746,405,671,406,29355,5044,2129,381,1771,406,670,405,671,380,695,380,1771,381,695,381,695,380,697,388,687,380,1771,381,696,379,1771,381,1771,380,696,380,1772,380,1771,380,1772,380,1771,406,1746,407,669,380,1772,380,696,379,697,379,696,380,696,379,696,407,669,380,1772,403,672,380,696,380,1771,380,695,407,670,380,696,380,696,405,670,381,696,379,696,382,694,405,671,406,1745,380,1772,405,670,381,695,407,1745,406,1746,405,1745,381,696,380,696,379,697,380,695,406,670,380,695,406,670,380,696,380,696,380,1772,379,697,379,696,407,669,380,696,379,1772,380,696,380,696,380,695,406,670,380,695,381,695,381,696,379,697,406,669,380,696,407,669,379,696,380,696,380,696,380,695,406,671,379,697,383,691,381,696,380,1771,380,697,379,1772,384,692,406,1744,381,695,408,668,380,1772,405,1746,381,1771,380,1772,379,697,379,697,379,697,379,696,380,696,379,696,380,696,380,696,380,695,407,669,380,697,406,670,379,696,405,671,379,696,380,696,380,697,379,1772,405,671,406,669,380,696,380,695,381,695,380,696,380,696,380,696,380,695,380,696,380,696,380,696,379,696,380,697,379,696,380,696,380,696,379,695,381,696,380,696,380,696,407,669,379,696,380,696,380,696,380,696,407,1744,380,1772,380,1772,379,696,405,1746,380,1772,405,672,379,700,375}, //30C
{5043,2131,379,1772,380,696,379,697,406,670,379,1773,379,696,379,696,380,696,380,696,380,1771,380,697,379,1771,381,1771,380,696,380,1772,405,1746,380,1771,407,1746,381,1770,406,670,379,1772,406,670,380,696,380,696,379,697,379,696,380,697,405,1746,379,697,379,697,404,1747,379,697,379,697,379,696,380,1772,379,697,379,697,405,669,381,696,379,697,379,697,379,696,380,696,380,695,380,697,379,697,405,670,380,696,379,697,379,1772,380,1772,379,1772,380,696,379,698,378,1773,379,697,378,29383,5042,2131,380,1771,380,697,379,696,380,696,380,1772,379,696,380,696,403,674,378,697,379,1772,380,696,380,1772,379,1773,379,696,380,1772,379,1773,379,1772,379,1772,380,1773,378,696,380,1772,380,697,378,696,406,671,379,696,380,696,380,695,380,1772,380,696,380,696,380,1771,405,671,380,696,380,696,405,671,379,696,405,671,380,696,379,697,379,697,379,1773,379,1772,381,695,379,696,406,1746,379,1772,380,1772,379,697,379,696,380,697,378,697,379,696,380,696,380,696,379,696,407,669,405,1747,380,696,380,696,379,696,380,697,379,1772,407,668,404,672,380,696,380,696,380,696,379,697,379,697,379,697,379,696,379,696,380,697,379,697,379,697,378,697,379,697,379,696,405,672,378,697,379,697,406,670,379,1771,380,1773,405,671,379,1772,379,697,379,696,380,1773,378,1773,379,1772,379,1773,379,696,380,696,380,696,379,697,380,695,380,696,395,681,379,697,379,698,378,697,379,696,379,697,380,696,379,696,380,696,406,670,379,697,379,1772,406,670,379,697,379,697,379,696,379,697,380,695,380,697,379,696,380,695,381,696,405,671,379,696,380,696,380,695,380,697,379,696,380,696,380,696,380,696,379,696,380,696,379,697,380,696,379,696,380,696,380,696,380,1772,379,696,380,696,380,1772,379,1773,405,1746,379,696,380,696,380}, //31C
{5043,2131,379,1772,380,696,405,671,405,670,380,1772,380,696,379,697,405,670,380,696,407,1744,380,697,379,1772,406,1746,406,669,405,1747,405,1746,407,1745,380,1771,407,1744,381,696,380,1772,379,697,379,695,408,669,406,669,380,696,380,696,380,1772,380,695,380,696,380,1772,405,670,380,696,380,696,380,1771,406,671,405,670,406,670,380,696,405,670,406,670,407,669,380,696,405,671,379,697,405,670,380,696,380,696,404,672,379,1772,406,1745,406,1746,406,671,404,671,406,1745,407,669,405,29356,5044,2130,380,1771,407,670,405,670,380,696,380,1772,380,696,379,696,407,670,379,695,381,1772,380,695,406,1746,406,1745,380,696,380,1771,407,1745,380,1772,380,1771,406,1746,405,671,380,1771,406,670,409,667,380,695,380,696,380,697,379,696,380,1771,380,697,379,696,380,1772,380,696,379,697,379,697,379,696,380,695,406,670,406,670,380,696,406,669,381,1771,380,1772,379,697,405,670,407,1745,380,1771,406,1746,380,696,379,696,407,670,379,695,381,695,380,697,379,697,379,696,380,696,405,1747,406,669,380,696,380,696,405,670,380,1771,381,696,380,696,405,670,380,697,379,697,379,696,388,688,379,696,380,696,380,695,381,696,379,696,405,672,406,668,407,670,379,696,380,696,408,667,381,696,405,1746,406,1745,406,1747,379,696,380,1772,379,697,405,670,380,1772,405,1746,380,1771,381,1771,406,671,379,696,380,696,379,696,380,696,380,696,405,671,379,697,379,697,379,696,380,696,380,696,379,696,380,696,380,697,379,696,379,697,406,1745,380,696,380,696,380,695,380,697,379,696,380,696,405,670,380,696,380,696,380,696,380,695,381,695,380,696,380,696,380,696,379,697,379,696,380,695,381,695,380,697,405,669,381,696,380,696,379,696,380,696,380,696,380,1772,379,1773,379,695,389,1764,405,1746,406,1745,407,670,379,696,380} //32C
//cool low
{5070,2104,380,1771,380,695,407,670,380,696,380,1772,406,668,381,696,380,696,380,695,380,1772,405,670,381,1772,379,1772,407,669,406,1745,380,1772,380,1771,380,1772,380,1771,406,671,406,1745,380,695,407,670,379,696,380,696,406,670,380,695,407,1745,405,671,380,695,407,1744,381,696,380,696,406,670,380,1771,380,696,405,671,405,671,405,670,380,696,380,696,380,696,406,670,405,670,405,671,405,671,379,696,380,696,380,696,380,1771,407,1745,407,1745,405,670,407,669,380,1771,408,668,381,29359,5066,2130,380,1771,380,697,378,696,381,696,380,1771,380,696,379,696,381,696,379,696,380,1772,405,671,379,1772,406,1746,380,696,407,1744,380,1772,379,1772,380,1772,379,1772,380,696,380,1772,379,697,379,696,379,697,380,696,379,697,405,670,380,1771,380,697,379,696,380,1772,380,696,379,696,380,696,379,697,406,670,379,697,405,670,380,696,380,697,379,1772,379,1773,379,696,379,697,379,1772,406,1746,405,1746,380,695,381,696,406,669,380,696,380,695,384,692,381,696,379,696,405,671,406,1746,379,696,380,696,406,670,380,697,405,1746,379,695,381,696,379,697,379,696,380,696,380,696,379,697,405,670,380,697,379,696,380,696,379,697,379,696,406,670,380,696,380,696,379,696,405,671,405,671,379,1772,406,1746,380,1771,406,670,380,696,406,670,379,696,380,1771,381,1772,406,1745,406,1746,406,1745,380,696,380,697,379,696,379,697,379,697,379,696,380,697,379,695,380,697,406,670,379,696,379,697,379,695,381,696,405,671,379,697,379,1773,379,697,379,696,380,695,407,669,380,697,379,696,380,696,379,696,380,697,379,696,380,695,381,696,379,696,380,696,380,696,380,696,379,696,380,696,380,696,405,671,380,695,380,696,380,696,379,696,380,695,381,696,380,1772,379,1772,380,696,407,1745,379,697,386,1765,380,696,379,696,380}, //16C
{5043,2131,379,1773,379,696,380,695,381,696,379,1771,381,696,380,696,379,696,380,696,380,1772,380,696,379,1772,380,1772,379,697,379,1772,380,1772,379,1772,380,1771,380,1772,405,671,380,1771,406,670,380,697,379,696,380,696,379,697,379,697,379,1773,379,696,379,696,380,1772,379,697,379,697,405,670,379,1773,379,697,378,698,379,696,380,695,380,697,379,696,380,696,380,696,380,696,379,696,380,696,380,696,379,697,379,696,380,1772,379,1772,380,1772,380,696,380,696,379,1772,406,671,378,29383,5043,2130,380,1772,379,697,379,696,380,697,379,1771,380,696,380,697,379,696,379,697,379,1772,380,695,381,1772,379,1773,379,697,378,1772,380,1772,380,1771,380,1772,379,1772,380,696,380,1772,405,671,380,696,379,697,379,696,404,672,380,694,381,1772,380,696,380,695,381,1771,380,696,380,697,378,696,380,697,379,696,380,696,379,696,380,697,379,696,406,1745,380,1772,380,696,380,696,379,1772,380,1772,380,1771,380,695,381,696,380,696,379,697,379,697,379,696,380,695,381,696,379,697,379,1771,380,696,405,671,380,696,380,696,380,1771,406,671,379,695,381,696,379,696,380,696,380,696,380,696,380,696,379,696,380,696,380,696,379,698,378,697,379,696,380,696,380,696,405,670,380,696,380,696,380,696,379,697,379,697,405,1746,380,695,380,697,379,697,379,1771,380,1772,380,1772,379,1773,386,1765,405,671,379,697,379,696,380,696,380,696,379,697,379,696,380,696,380,696,379,697,405,671,379,696,380,696,379,697,379,696,406,670,379,1773,379,697,379,697,379,697,379,696,380,696,379,697,379,696,405,672,378,697,406,670,379,695,381,696,380,696,380,695,380,697,406,669,380,696,380,695,380,697,379,697,378,696,381,695,406,670,380,696,380,696,380,696,380,1771,406,670,405,1746,380,1772,380,696,382,1769,380,696,406,670,380}, //17C
{5043,2131,379,1773,379,697,379,696,405,672,378,1773,405,671,379,696,380,696,379,696,380,1772,380,697,379,1771,380,1773,379,696,379,1772,380,1772,380,1772,379,1772,380,1771,380,697,379,1772,380,696,379,697,379,697,379,696,379,697,379,697,379,1772,379,696,380,696,380,1773,378,697,379,696,380,697,379,1772,380,695,380,697,379,697,379,696,380,696,379,697,379,697,379,697,378,697,379,696,380,697,379,696,380,697,379,696,379,1772,405,1748,380,1771,379,697,378,697,380,1771,380,697,379,29382,5043,2130,380,1773,378,697,379,697,404,670,380,1773,379,696,406,671,378,697,379,697,379,1772,380,696,379,1773,379,1773,379,696,380,1771,380,1773,378,1773,379,1772,405,1746,380,696,379,1774,379,695,380,696,380,696,380,696,379,698,378,696,380,1773,379,697,378,696,406,1746,380,696,380,696,379,697,379,697,379,697,379,696,379,697,379,696,380,696,379,1773,379,1774,378,696,379,697,379,1772,379,1774,378,1773,379,697,379,696,379,697,379,696,380,697,379,696,379,697,379,697,378,697,380,1772,379,697,379,696,380,696,379,698,378,1773,406,670,378,697,379,697,379,697,378,697,380,696,379,697,405,670,380,696,379,697,380,696,379,696,380,697,379,697,378,697,379,697,379,697,379,695,380,698,378,1773,379,696,380,696,379,1773,379,697,379,696,380,697,378,1772,380,1772,379,1772,379,1773,380,1772,378,698,379,696,380,696,379,697,379,696,380,697,379,696,379,697,379,697,379,696,406,670,379,696,380,697,405,671,378,697,379,696,380,1772,379,697,384,692,379,697,379,696,380,697,378,702,374,697,379,697,379,696,379,698,378,696,380,697,379,696,379,697,380,695,379,698,379,697,379,696,380,695,380,697,379,697,378,698,378,697,379,697,379,697,378,697,379,1773,379,1772,379,1773,379,1772,379,697,380,1771,380,697,379,697,378}, //18C
{5068,2105,381,1770,381,695,406,670,410,666,380,1771,407,669,380,696,407,669,404,672,380,1771,380,696,379,1772,406,1745,408,669,380,1771,380,1771,381,1771,406,1746,407,1744,405,672,379,1772,405,670,407,670,379,696,407,669,380,696,380,695,406,1746,406,670,380,695,381,1771,405,670,381,695,407,669,380,1772,380,696,380,696,407,668,406,670,380,696,405,670,380,697,406,669,380,696,406,670,380,695,405,671,407,669,380,696,401,1750,380,1771,407,1745,380,696,380,696,380,1771,380,696,380,29382,5043,2131,405,1745,408,669,380,695,380,696,380,1772,380,695,380,696,406,670,380,695,381,1772,405,670,380,1771,380,1772,380,695,381,1771,407,1745,380,1771,407,1745,380,1771,380,696,381,1771,379,697,380,695,380,696,380,696,380,696,379,696,381,1771,380,696,379,696,406,1746,406,670,379,697,380,696,379,696,407,669,406,670,382,693,405,671,380,696,380,1775,376,1772,407,669,406,669,381,1771,380,1772,405,1746,380,696,406,670,380,696,380,695,380,696,405,671,380,696,406,669,380,696,407,1744,380,696,380,696,380,695,409,668,380,1771,406,670,406,670,380,696,380,695,407,669,380,695,381,695,406,670,406,670,405,671,407,669,405,671,379,696,380,696,380,696,379,697,406,669,380,696,380,696,380,696,406,1744,407,670,380,1771,406,671,379,696,406,670,406,1745,380,1771,406,1746,407,1745,380,1771,381,698,377,696,380,695,380,696,381,696,379,696,380,696,380,696,406,669,380,696,380,696,380,696,380,696,379,696,407,668,381,696,380,1771,380,695,380,697,405,670,380,697,379,696,380,696,380,696,379,697,379,695,381,696,380,695,408,668,380,696,380,696,380,695,406,670,380,696,380,696,380,695,380,696,407,669,407,669,380,695,407,669,380,696,406,670,380,1771,406,670,380,695,407,670,380,1771,406,1745,381,695,381,695,380}, //19C
{5069,2104,380,1772,380,695,405,671,380,696,380,1771,380,696,380,696,406,670,380,695,406,1746,380,696,406,1745,407,1744,406,671,405,1746,406,1745,407,1745,405,1747,405,1747,379,696,407,1744,404,673,379,696,406,670,380,696,405,671,379,696,380,1772,380,695,407,669,398,1754,380,696,379,696,380,696,406,1745,406,670,407,670,379,696,380,695,381,696,379,696,407,669,406,670,405,671,379,696,380,696,380,696,380,695,381,696,406,1745,380,1771,380,1773,379,696,406,669,380,1772,381,695,380,29382,5043,2131,406,1745,405,670,380,696,380,696,407,1744,380,696,406,670,380,696,379,697,379,1772,380,696,380,1771,380,1773,379,695,381,1771,405,1746,406,1746,380,1772,380,1772,379,697,379,1772,380,696,379,697,379,696,380,696,406,671,378,696,380,1772,380,696,380,695,406,1746,379,696,381,696,379,696,380,696,406,670,405,670,407,670,405,670,406,669,407,1744,381,1772,380,696,410,665,380,1772,380,1771,380,1772,380,696,405,670,380,696,380,696,380,696,379,697,406,669,380,696,406,670,405,1746,380,696,407,669,380,696,379,696,380,1772,380,696,405,671,379,696,380,696,380,696,380,696,379,696,406,671,379,696,380,696,380,696,405,670,380,696,380,696,380,695,380,696,380,696,380,696,380,696,379,1773,379,1771,408,668,380,1771,381,696,406,670,379,696,380,1772,379,1772,406,1746,379,1772,406,1746,380,696,380,695,380,697,379,696,405,671,380,696,379,696,380,696,405,671,380,695,380,696,380,696,406,670,380,696,379,696,406,670,380,1771,405,672,379,696,380,696,380,696,380,696,379,697,379,696,406,670,380,696,379,697,379,696,380,697,404,670,380,697,379,696,380,696,379,697,405,670,380,696,380,696,406,670,380,696,379,696,380,696,380,695,406,670,380,1772,380,1772,379,697,379,696,380,1771,380,1772,406,670,406,670,406}, //20C
{5044,2129,380,1772,405,671,380,695,406,669,407,1745,408,669,379,696,406,669,381,695,408,1744,381,695,407,1744,381,1771,380,696,380,1771,381,1771,380,1772,379,1772,406,1745,407,669,381,1771,406,669,381,696,407,668,380,696,407,668,407,670,380,1771,380,696,380,695,407,1745,380,696,380,696,379,697,407,1744,380,696,380,695,381,695,380,696,406,670,380,695,407,669,381,695,407,669,406,670,380,695,381,695,407,669,381,695,380,1771,381,1771,408,1744,379,696,407,669,380,1771,407,669,381,29381,5044,2129,380,1772,380,696,380,696,379,697,379,1772,380,696,404,671,381,695,380,696,380,1771,381,695,405,1747,380,1772,379,696,380,1772,406,1745,380,1772,380,1772,380,1771,380,696,406,1745,406,669,381,696,379,696,380,696,380,696,380,695,381,1771,406,670,380,696,380,1771,407,669,406,670,380,696,380,696,380,695,407,669,380,696,380,696,406,670,407,1744,407,1744,382,694,380,696,405,1746,380,1772,406,1746,380,695,380,696,380,696,380,696,380,695,380,696,404,672,380,696,380,696,406,1745,380,695,381,696,406,670,379,696,380,1771,380,697,379,696,380,696,380,695,381,695,406,671,379,695,381,696,380,695,405,671,380,696,406,670,380,695,380,697,379,696,380,696,406,669,380,696,380,696,406,670,406,669,380,1772,380,1771,381,695,380,697,379,696,379,1772,381,1770,408,1744,381,1771,380,1771,380,696,380,696,380,696,406,670,380,695,380,696,380,696,406,669,380,697,379,696,380,696,380,696,379,697,405,670,380,696,380,696,380,1771,380,696,407,669,406,670,405,671,407,668,380,696,380,696,380,695,380,696,380,696,406,670,380,695,380,696,380,696,405,671,406,669,380,696,380,696,380,696,380,695,380,697,405,670,406,670,379,696,381,695,407,670,379,1771,381,695,381,1771,406,670,380,1772,379,1772,380,695,407,669,380}, //21C
{5092,2104,380,1771,380,696,380,696,380,696,404,1747,380,696,405,671,379,696,381,695,407,1744,381,696,379,1772,407,1744,381,695,406,1746,380,1771,381,1771,380,1771,407,1745,380,696,380,1771,381,695,407,669,406,670,380,696,404,671,380,696,380,1771,381,696,379,696,380,1772,380,695,382,694,380,696,406,1746,380,698,377,696,407,669,406,669,381,696,380,696,379,696,380,696,380,696,379,696,407,670,406,669,380,696,380,695,380,1772,380,1771,381,1771,380,696,380,696,411,1740,380,696,380,29382,5043,2130,380,1771,380,696,380,696,379,696,407,1745,406,669,381,695,381,695,407,669,380,1772,379,697,379,1772,406,1746,379,696,380,1772,380,1771,380,1772,380,1771,381,1771,380,696,405,1746,380,696,380,696,406,670,406,669,406,670,381,695,380,1772,380,696,379,696,380,1772,379,697,406,669,407,669,406,670,406,670,379,697,379,696,406,670,380,696,379,1772,380,1772,406,670,380,695,406,1746,380,1771,406,1745,381,696,379,696,380,696,380,696,380,695,381,695,380,696,405,671,380,696,379,1772,406,670,380,696,380,695,381,695,380,1772,407,669,380,695,380,696,380,696,380,696,406,669,380,696,380,696,380,695,381,695,380,696,406,670,380,695,408,668,380,696,380,696,380,696,380,696,380,696,379,1771,381,696,379,1772,405,1747,380,696,380,695,407,669,380,1771,380,1772,380,1771,385,1767,407,1745,379,696,380,697,404,671,380,695,381,695,380,696,380,696,380,696,380,696,379,696,380,696,380,696,380,695,407,670,379,696,406,670,380,1772,379,696,380,696,380,695,380,696,380,696,395,680,381,696,379,696,380,696,380,696,406,670,379,697,379,696,380,696,380,695,380,697,379,697,379,696,380,696,379,697,379,696,380,696,380,696,380,696,380,695,380,696,380,1772,379,1772,380,1772,407,668,408,1744,380,1772,404,671,380,696,380}, //22C
{5042,2131,379,1772,406,671,379,696,405,671,380,1772,405,670,406,671,379,696,379,697,405,1746,380,696,379,1772,380,1772,379,697,379,1772,380,1772,379,1773,379,1772,379,1772,380,696,380,1772,406,670,379,697,379,696,405,671,379,697,379,697,379,1772,379,696,406,671,379,1772,380,695,380,698,378,697,379,1772,379,697,379,696,379,698,378,697,379,698,378,697,379,696,380,696,379,697,379,696,380,696,380,697,379,695,380,696,380,1772,379,1773,379,1772,379,697,379,697,379,1772,379,697,379,29359,5067,2130,406,1745,380,696,380,697,379,696,379,1773,379,696,380,697,378,697,379,696,380,1772,379,696,380,1772,379,1772,380,696,380,1772,379,1773,379,1772,379,1773,379,1771,381,695,380,1772,380,697,378,697,379,697,379,696,406,670,380,696,379,1773,379,696,380,696,380,1772,405,671,379,696,380,696,379,696,380,697,379,696,380,697,378,697,379,697,378,1773,380,1772,379,696,380,697,378,1772,380,1771,380,1773,379,696,380,697,379,697,378,697,379,696,379,696,381,696,379,697,379,697,379,1772,379,696,381,696,379,696,380,696,379,1772,380,696,380,695,380,697,379,697,405,671,379,696,405,671,379,697,379,696,380,696,379,697,379,697,379,697,379,696,380,696,379,697,379,697,379,696,380,696,379,697,406,1746,378,1772,380,1772,379,697,379,697,379,697,379,1772,379,1772,380,1772,379,1773,405,1747,379,696,379,697,379,697,379,697,379,697,378,696,380,697,379,696,379,697,379,697,406,669,406,671,379,696,379,697,379,697,379,696,380,1772,379,697,379,697,379,697,379,696,379,697,379,697,379,697,379,696,379,697,405,671,379,696,379,697,379,697,379,696,380,696,405,671,380,696,379,697,379,696,380,696,380,696,379,697,379,696,380,696,380,696,380,695,380,1772,380,696,380,696,379,1772,380,1772,379,1772,380,696,380,696,379}, //23C
{5068,2104,381,1771,407,669,380,696,406,670,379,1772,380,696,406,670,380,694,382,696,405,1745,406,671,380,1771,380,1772,405,671,405,1746,380,1771,380,1772,380,1772,380,1771,380,697,379,1770,381,696,380,696,407,669,380,696,379,697,379,696,380,1772,379,696,380,696,380,1772,379,696,380,696,407,669,405,1746,380,696,380,696,380,695,380,696,380,696,382,694,379,696,407,669,406,670,405,671,380,696,379,697,379,697,379,696,406,1746,379,1772,380,1772,406,669,380,696,385,1766,380,696,380,29381,5044,2130,380,1771,380,696,380,696,406,669,380,1771,406,670,381,696,380,695,380,697,406,1745,380,696,379,1772,380,1772,379,696,407,1745,380,1771,380,1773,404,1746,405,1747,380,696,405,1746,407,669,380,696,379,696,380,696,407,669,380,696,380,1771,406,669,381,696,379,1772,380,696,406,670,380,695,380,696,380,696,380,696,380,696,380,695,380,696,406,1744,381,1771,381,696,379,697,379,1772,405,1747,379,1771,381,696,406,670,380,695,380,696,380,696,380,696,379,697,385,690,380,695,406,1746,405,672,379,696,405,671,405,670,380,1772,380,696,379,696,381,695,380,696,380,696,380,695,380,696,380,695,381,696,379,697,379,696,380,696,406,669,381,696,379,697,404,671,405,671,379,697,379,697,379,1771,380,1772,380,1771,380,1772,380,696,380,695,381,696,379,1772,380,1772,379,1772,380,1772,379,1772,380,696,380,696,379,697,379,696,406,670,405,671,404,672,404,671,380,696,380,696,406,670,379,697,379,696,380,695,381,696,379,696,380,1771,380,697,379,697,379,695,381,696,379,697,379,696,407,669,380,696,405,670,380,696,380,696,380,696,379,696,380,696,380,695,407,670,379,696,380,696,380,696,380,695,406,670,380,696,380,696,380,696,380,696,379,696,407,1745,379,1772,380,696,380,1771,407,1745,380,1771,380,695,381,696,406}, //24C
{5043,2130,380,1772,379,697,379,697,379,697,405,1747,379,695,380,697,379,697,379,696,380,1772,379,695,381,1771,406,1745,381,696,380,1771,380,1772,379,1772,405,1747,380,1772,379,696,407,1744,380,697,379,697,379,696,406,670,380,696,379,697,404,1746,381,696,405,671,379,1771,381,697,378,696,407,669,380,1772,379,697,379,697,379,697,379,695,380,698,403,672,379,696,380,696,379,696,380,696,380,696,380,696,380,696,379,697,379,1772,379,1772,405,1747,379,696,380,696,380,1772,405,671,405,29355,5044,2130,380,1772,379,697,379,696,380,695,381,1771,406,671,405,670,380,695,380,696,380,1772,380,696,406,1744,381,1772,379,696,380,1772,380,1771,380,1772,380,1772,379,1772,380,696,380,1771,380,695,381,696,405,671,379,696,380,697,379,697,378,1773,405,670,380,696,380,1772,405,671,379,696,380,696,379,696,406,675,401,670,380,696,405,671,379,696,380,1771,381,1771,384,692,379,697,379,1772,380,1772,380,1771,380,696,379,697,379,697,379,697,379,696,380,696,406,670,379,696,380,696,380,1771,407,670,379,697,404,670,381,696,405,1747,379,696,379,696,380,696,380,696,380,696,379,697,379,696,380,696,380,696,379,697,379,696,380,696,380,696,380,696,379,696,405,671,380,696,379,697,379,696,380,696,380,696,380,696,379,697,379,1772,379,696,380,697,379,1772,379,1772,380,1777,375,1771,380,1772,406,671,404,671,379,696,380,695,407,670,405,671,405,670,380,696,379,697,406,670,379,696,406,670,379,696,380,697,379,697,379,696,406,1745,380,696,380,696,380,696,379,696,380,696,379,696,380,696,380,697,379,696,380,696,379,696,380,696,380,696,380,696,380,696,405,671,379,697,404,671,379,696,380,696,380,696,405,671,379,697,379,697,379,696,406,670,379,1773,405,670,380,1771,406,1746,380,1771,408,1744,406,670,379,696,385}, //25C
{5042,2131,380,1772,406,670,379,696,380,696,380,1771,380,696,379,697,406,670,379,696,380,1772,379,697,379,1772,379,1773,379,697,379,1772,379,1772,380,1772,380,1771,380,1772,382,694,379,1772,380,696,379,700,376,697,404,671,380,696,379,696,380,1772,380,696,379,697,379,1772,406,671,379,696,379,697,379,1772,380,696,379,696,380,697,404,672,379,696,380,696,379,697,379,696,380,696,379,697,379,696,380,696,380,696,380,696,379,1772,380,1772,379,1773,379,696,379,696,380,1772,404,672,379,29382,5043,2130,380,1772,379,697,379,696,380,696,380,1772,379,696,380,696,380,696,406,670,379,1772,380,696,379,1772,380,1772,380,695,406,1747,379,1772,405,1747,379,1771,406,1747,379,696,380,1772,379,697,405,671,379,696,379,697,379,696,406,670,380,1772,406,669,380,696,380,1771,380,696,380,697,379,696,405,671,405,670,380,696,380,695,380,696,380,697,379,1771,407,1745,380,696,380,695,406,1746,380,1771,380,1772,380,697,405,670,379,697,379,696,380,696,380,695,380,697,379,697,379,697,379,1772,406,670,404,671,380,696,379,697,380,1771,405,671,379,697,379,697,381,695,380,695,380,696,379,696,380,696,380,696,380,695,380,697,379,696,380,696,406,671,378,697,405,670,379,697,380,696,379,697,379,1772,380,696,379,697,379,696,380,1772,379,697,379,696,406,1746,405,1746,380,1772,379,1772,380,1771,380,696,380,696,380,696,380,696,379,697,379,696,380,696,380,695,380,697,379,697,379,696,379,696,380,697,379,697,379,697,379,696,379,1772,380,696,380,695,380,696,382,695,379,696,380,696,379,697,379,697,379,696,407,669,379,697,379,696,379,696,380,697,406,669,380,696,406,670,380,696,406,669,380,696,380,696,380,696,379,696,406,671,379,696,405,671,379,1772,406,1746,379,1772,380,1771,380,1772,380,1772,379,697,379,698,378}, //26C
{5043,2130,380,1771,380,696,406,670,380,696,407,1744,380,695,407,670,380,695,381,695,381,1771,406,669,406,1746,380,1772,380,695,406,1746,380,1772,405,1746,407,1744,381,1771,380,696,380,1771,380,696,380,696,407,669,380,695,407,669,380,696,380,1771,380,696,380,696,380,1771,406,670,380,696,380,695,381,1771,405,671,380,696,405,670,406,670,407,669,406,670,407,668,406,670,380,696,380,695,406,671,404,671,380,696,380,695,407,1750,375,1772,406,1745,380,696,380,696,407,1744,406,670,380,29382,5042,2130,380,1772,380,695,381,696,380,696,379,1772,406,670,380,695,380,696,380,696,380,1771,380,696,380,1772,405,1747,404,670,407,1746,379,1772,380,1771,381,1771,406,1746,379,696,380,1771,381,696,381,694,380,696,380,696,380,696,406,669,380,1772,380,696,379,697,379,1772,380,695,380,697,379,696,380,696,380,696,379,696,380,696,381,694,381,696,406,1745,380,1771,381,695,407,669,380,1772,380,1771,406,1745,380,696,406,670,380,696,405,670,381,696,379,696,406,670,380,695,381,696,379,1772,380,696,399,676,381,695,380,695,406,1747,406,669,380,696,380,696,405,671,380,695,406,670,380,696,406,670,406,669,380,696,407,669,405,671,407,668,406,670,380,696,406,669,380,697,405,670,380,696,405,671,393,1758,381,695,380,696,380,1771,404,672,406,669,408,1744,380,1771,380,1772,406,1745,380,1772,380,696,406,670,379,697,379,696,380,695,381,696,405,670,380,696,380,696,380,695,381,695,380,695,381,696,406,670,379,697,405,670,380,1771,380,696,380,696,406,670,380,695,380,696,380,696,380,696,380,695,380,696,406,670,406,669,381,696,380,695,406,670,406,670,380,696,379,696,380,696,380,696,380,695,381,695,380,696,380,695,381,696,379,696,380,696,380,1771,381,695,380,696,380,696,380,695,380,696,380,1772,406,669,380}, //27C
{5042,2130,407,1745,380,696,380,695,408,668,380,1771,407,669,380,696,380,696,380,696,380,1771,380,696,380,1772,379,1772,380,696,400,1751,407,1745,406,1745,380,1772,406,1745,380,696,380,1771,406,671,405,670,406,670,380,696,406,669,406,670,380,1772,379,696,380,696,380,1771,381,695,380,697,405,670,380,1771,380,696,380,696,405,671,406,670,406,669,380,696,380,695,381,696,379,696,406,670,406,670,406,669,380,696,380,696,380,1771,381,1771,380,1771,381,695,405,671,380,1771,408,668,380,29382,5043,2130,380,1771,380,696,380,696,379,697,379,1773,379,696,406,670,379,696,380,696,380,1772,379,697,379,1772,380,1772,379,696,380,1773,378,1773,379,1772,379,1772,380,1772,379,697,379,1772,406,670,379,698,405,669,380,696,380,696,379,697,379,1772,380,696,379,697,379,1772,380,696,379,697,379,697,379,696,379,697,380,696,379,697,379,696,379,697,406,1745,380,1772,380,696,379,697,379,1771,380,1773,379,1772,380,696,379,696,380,696,380,697,405,670,379,696,380,697,378,697,380,696,379,1772,406,670,380,696,379,697,379,696,380,1772,379,697,379,697,379,696,379,697,379,696,380,697,379,696,380,696,379,696,380,696,380,696,379,696,380,697,405,669,381,696,380,695,380,697,404,671,405,671,380,1771,380,1771,407,670,379,696,380,1773,405,670,379,697,379,1772,402,1749,380,1772,380,1771,380,1772,380,696,380,695,380,696,380,696,380,696,380,695,380,696,380,696,379,697,379,696,380,696,380,696,380,696,379,696,380,696,380,696,406,1745,380,696,380,696,379,697,379,697,379,696,380,696,379,697,379,697,406,670,405,670,379,697,379,695,381,696,406,670,380,696,379,697,379,696,406,670,379,696,380,696,380,697,379,696,380,696,379,697,379,696,380,696,380,1771,380,1772,380,696,379,697,379,696,380,696,380,1772,379,697,379}, //28C
{5043,2130,407,1744,381,695,380,696,407,669,406,1745,407,669,406,670,380,696,380,696,406,1745,406,669,406,1747,384,1766,407,669,381,1771,407,1744,384,1768,407,1744,407,1745,407,669,401,1751,380,695,407,669,380,695,407,669,381,695,380,696,380,1771,380,696,405,671,406,1745,406,670,380,696,380,696,380,1771,380,696,406,669,407,669,408,668,380,696,407,669,405,670,407,670,406,668,406,671,406,669,406,670,406,670,406,670,380,1771,407,1745,407,1744,380,695,381,696,380,1772,406,669,406,29355,5070,2104,406,1745,380,696,380,696,380,696,379,1772,406,670,380,696,379,696,380,696,380,1772,385,690,407,1744,408,1744,380,696,405,1747,406,1745,406,1746,380,1771,405,1746,381,695,380,1772,406,670,380,695,407,669,405,671,380,696,406,670,405,1746,407,669,380,695,380,1772,380,695,407,669,380,697,405,670,380,696,407,668,406,670,405,671,406,670,406,1745,380,1772,406,669,407,669,380,1771,380,1772,380,1772,380,696,379,696,380,696,406,670,380,696,380,695,380,696,380,696,380,695,380,1772,389,687,380,696,405,670,380,696,406,1745,381,695,380,696,380,696,406,669,381,695,407,669,405,671,379,696,381,695,405,671,406,670,380,696,406,669,380,695,381,696,406,669,380,696,406,670,405,670,381,695,406,671,379,1771,380,697,379,1771,381,696,406,669,380,1771,407,1746,380,1771,380,1771,380,1772,406,670,380,695,406,670,406,670,406,669,381,695,407,669,407,668,406,669,382,695,380,696,380,696,403,673,380,696,380,695,406,670,405,1746,406,670,380,696,380,695,406,670,380,697,379,696,380,696,380,695,380,696,406,670,380,696,380,695,380,696,380,696,380,695,381,695,407,669,406,670,380,695,380,696,380,696,407,669,406,669,380,697,379,696,380,696,406,1745,381,695,380,1772,380,695,384,692,380,695,407,1745,381,696,379}, //29C
{5043,2130,380,1772,404,671,406,670,406,670,380,1771,380,696,380,696,406,670,379,696,387,1765,380,696,380,1771,380,1772,405,670,381,1771,380,1772,405,1746,380,1771,381,1771,405,671,380,1771,380,696,380,695,407,670,380,695,406,670,380,696,406,1745,381,695,406,670,407,1744,406,670,406,670,380,695,381,1771,380,696,406,670,406,669,407,669,406,670,380,695,381,696,405,670,380,696,380,695,381,695,407,669,380,696,405,670,381,1771,406,1745,381,1771,380,696,406,669,381,1771,380,696,380,29381,5044,2129,406,1746,406,670,379,696,381,695,380,1772,380,695,381,696,379,696,380,696,380,1770,381,696,407,1744,380,1772,407,669,380,1772,405,1745,407,1745,406,1746,407,1744,380,696,380,1771,381,695,380,696,406,670,380,695,381,695,380,696,380,1771,381,695,380,696,410,1741,381,695,406,670,380,695,381,695,381,695,407,669,406,669,380,696,407,669,380,1771,381,1771,380,696,380,696,406,1745,380,1772,406,1745,380,696,380,695,381,696,405,670,407,669,380,696,380,696,380,695,380,696,407,1745,380,695,407,669,406,669,381,695,407,1745,408,668,406,669,381,695,406,670,380,697,379,695,381,696,380,695,406,669,408,669,380,695,405,671,380,696,380,695,406,670,380,696,380,696,380,695,381,695,380,1772,380,695,381,1771,380,696,380,1771,380,696,380,696,380,1771,381,1771,380,1771,380,1771,381,1771,407,669,407,669,381,694,407,669,407,669,380,696,380,696,406,669,381,695,380,696,380,696,405,670,381,695,380,695,381,696,379,696,381,1771,380,695,407,669,391,685,406,670,380,695,381,695,407,669,381,695,406,670,405,670,380,696,380,696,380,695,380,698,405,669,406,670,380,695,408,668,405,671,407,669,406,670,380,695,380,696,380,696,406,669,381,695,406,1746,380,1772,380,1771,406,670,406,669,380,696,380,1772,406,669,380}, //30C
{5043,2129,380,1773,379,696,379,697,380,696,380,1772,404,672,379,697,378,697,379,697,379,1771,380,697,379,1772,406,1746,379,696,380,1772,405,1747,379,1772,380,1771,380,1773,378,697,379,1772,380,697,379,696,379,697,380,695,380,696,379,697,380,1771,380,696,380,696,379,1772,380,696,380,696,380,696,379,1772,379,698,379,695,380,697,379,697,405,670,379,697,405,670,380,696,380,696,407,669,379,696,380,697,379,696,379,696,380,1772,380,1772,379,1772,379,698,378,697,379,1772,407,669,380,29382,5068,2105,379,1772,379,697,379,696,380,697,379,1772,379,698,378,696,406,671,379,696,380,1771,380,697,379,1772,379,1772,380,696,379,1772,380,1772,406,1746,379,1773,378,1773,405,671,379,1772,379,697,406,668,381,696,379,697,379,697,379,697,379,1771,380,696,380,695,381,1772,380,695,380,697,379,697,379,696,380,696,380,696,405,670,380,696,379,696,407,1746,379,1772,379,696,380,697,379,1771,380,1772,380,1771,380,697,379,696,380,696,406,670,405,670,380,697,378,696,380,697,379,696,380,1772,379,697,379,697,379,696,380,696,379,1772,380,697,379,696,379,697,379,697,378,698,379,696,380,696,379,697,379,696,380,695,381,696,379,696,380,697,378,698,379,697,378,697,406,670,379,696,379,696,380,697,379,1772,380,1771,380,697,405,1746,405,671,379,696,380,1772,380,1772,379,1772,379,1772,380,1772,379,697,379,697,379,696,379,697,379,696,380,696,380,696,380,696,379,696,380,697,379,695,380,697,379,697,379,697,379,696,380,696,379,1773,379,696,380,695,380,696,380,697,379,696,379,697,379,697,379,697,378,698,378,698,378,696,380,696,380,696,380,696,379,696,380,696,391,685,380,696,380,696,379,697,405,670,380,696,380,696,379,696,406,670,407,669,379,1772,380,696,380,696,405,1747,405,670,380,696,380,1771,380,696,380}, //31C
{5043,2130,407,1744,380,696,380,696,405,670,406,1746,406,670,405,670,380,697,379,696,380,1772,405,670,381,1771,380,1771,380,695,381,1772,379,1772,380,1772,380,1771,380,1772,380,695,407,1745,380,696,379,697,379,696,407,669,380,696,406,669,380,1772,380,696,379,697,405,1746,380,696,379,696,380,697,379,1772,385,690,380,696,380,696,380,696,380,696,380,695,380,696,380,696,380,695,407,669,380,696,405,671,380,696,379,696,380,1771,406,1746,407,1745,380,696,379,696,435,1716,406,671,379,29382,5069,2104,380,1772,405,670,380,696,380,697,379,1771,380,696,382,694,379,696,406,670,405,1747,380,696,379,1772,406,1745,381,695,380,1771,381,1771,380,1772,406,1745,380,1772,406,670,379,1772,380,696,380,696,379,696,380,697,379,696,407,669,380,1771,380,696,380,696,406,1745,380,696,380,696,380,696,379,697,379,696,394,682,380,695,407,670,404,672,379,1771,380,1772,380,696,405,670,380,1772,380,1771,380,1772,380,696,379,697,405,670,380,696,380,696,406,670,379,697,379,696,380,695,381,1771,380,696,380,696,380,696,406,669,380,1772,380,695,406,670,380,696,379,697,405,671,405,670,406,670,380,696,379,696,406,671,379,696,380,695,380,696,380,696,380,696,380,696,405,670,380,696,406,669,381,1772,380,1771,380,1771,380,696,405,1747,380,695,380,696,380,1772,379,1772,406,1747,379,1771,380,1772,379,697,379,696,380,695,381,696,379,696,380,696,380,696,405,671,407,669,379,696,380,696,406,670,379,696,380,697,379,696,405,670,380,1772,380,696,380,696,379,696,380,696,406,669,381,696,405,671,379,697,379,696,380,695,380,696,380,696,380,696,380,696,379,697,379,697,379,696,380,696,379,696,407,669,380,696,380,696,379,696,380,696,406,670,380,696,405,1746,380,1772,405,671,379,1772,380,696,380,695,380,1772,380,696,379} //32C
//cool mid
{5066,2130,406,1745,407,669,407,669,405,670,381,1771,380,696,380,696,404,671,380,696,406,1745,406,670,379,1772,380,1772,380,696,379,1772,380,1771,380,1772,405,1746,380,1771,380,697,405,1746,379,696,380,696,380,696,405,670,380,696,407,669,380,1772,379,695,406,671,406,1745,381,695,380,695,407,669,380,1772,380,696,379,696,380,696,407,669,380,695,380,696,380,696,380,696,405,669,381,696,380,695,406,670,380,696,380,696,380,1771,380,1771,381,1771,380,696,405,670,407,1745,379,697,379,29381,5042,2130,380,1772,380,696,379,697,406,669,380,1770,407,670,380,696,380,696,379,696,380,1772,379,697,379,1772,380,1771,380,696,380,1771,380,1772,406,1744,381,1772,405,1746,380,696,380,1772,405,670,406,670,379,696,380,697,379,696,394,681,380,1772,380,695,380,696,380,1772,405,671,379,697,405,670,405,670,380,696,380,696,380,696,380,696,379,697,379,1771,380,1772,380,696,379,696,380,1772,406,1745,380,1771,407,670,379,696,380,696,407,668,380,696,407,668,381,696,380,695,380,696,380,1772,379,696,380,696,380,695,380,697,379,1772,379,696,406,670,380,696,380,695,380,696,380,696,380,696,379,697,379,696,380,696,379,697,380,696,379,696,379,697,379,697,379,695,407,670,380,696,406,669,382,1769,380,1772,406,1745,407,669,379,697,379,696,380,697,405,1746,379,1772,380,1772,405,1746,406,1745,380,1772,380,696,379,696,380,696,380,696,406,669,405,671,405,671,379,696,380,695,381,696,380,696,379,696,380,696,405,671,380,695,380,1772,379,696,380,697,379,696,380,696,406,669,380,696,380,695,380,697,379,696,380,696,379,697,379,696,380,696,379,697,379,697,379,695,406,671,389,687,379,696,380,696,380,696,406,669,380,696,380,695,407,669,408,668,380,1771,380,1772,380,696,379,1772,380,695,380,697,379,1772,379,696,381}, //16
{5041,2131,379,1773,379,696,380,696,379,697,379,1772,379,697,379,697,379,696,379,697,379,1772,380,696,379,1773,379,1772,379,697,379,1772,383,1768,380,1771,380,1773,379,1772,385,691,379,1772,379,697,379,696,380,696,379,697,379,697,379,696,379,1773,379,696,380,696,379,1772,380,696,379,697,379,696,406,1746,379,697,379,696,380,696,405,671,379,697,379,696,380,695,380,697,379,696,380,696,380,696,379,697,379,696,380,696,379,1772,379,1773,379,1772,380,696,380,696,379,1772,380,697,378,29381,5043,2130,379,1772,380,696,380,695,380,696,380,1772,379,697,379,696,406,670,379,696,381,1771,380,696,379,1772,379,1773,379,696,380,1772,380,1771,380,1771,380,1772,380,1771,380,696,380,1772,379,697,379,696,379,697,379,697,379,695,381,696,380,1771,379,697,380,695,380,1772,379,697,380,696,379,697,402,673,380,696,379,696,380,697,379,696,380,695,380,1771,381,1771,406,670,380,696,380,1770,381,1772,379,1772,380,696,379,697,379,696,380,696,391,685,379,696,380,697,379,695,380,697,380,1770,380,697,379,697,379,696,380,696,380,1771,380,696,379,696,381,697,378,696,380,696,379,696,380,696,405,670,407,670,379,696,380,696,379,697,379,696,380,696,380,696,380,695,380,696,380,696,379,697,379,696,406,670,380,696,379,1772,406,670,379,697,379,696,406,1746,379,1772,406,1745,380,1772,379,1773,379,1772,379,697,379,697,379,696,380,696,405,670,406,671,378,697,379,697,406,669,380,695,381,696,379,696,380,696,379,696,380,697,379,1771,381,696,406,670,379,696,379,697,379,696,379,697,380,696,379,697,383,691,381,696,406,670,379,697,379,701,374,697,405,671,379,696,406,670,380,696,379,696,380,696,380,695,407,669,406,670,380,696,379,697,379,696,380,1771,380,696,380,1772,405,1746,380,696,406,669,380,1772,405,671,379}, //17C
{5041,2132,379,1772,379,696,379,698,378,697,379,1773,378,698,379,697,378,697,378,698,378,1773,378,697,380,1772,379,1772,379,698,378,1774,377,1773,379,1772,379,1773,379,1772,379,697,379,1773,378,697,379,697,378,698,378,697,379,697,378,697,379,1773,379,697,379,696,380,1772,378,698,379,697,378,698,378,1773,378,698,379,696,379,697,378,697,379,697,379,697,378,698,378,698,378,698,378,697,379,697,405,670,379,697,379,696,379,1773,379,1772,379,1772,380,697,378,697,379,1773,378,698,378,29382,5041,2131,379,1773,378,698,378,698,378,697,378,1774,378,698,378,697,379,697,378,697,379,1773,378,698,378,1773,379,1772,379,697,379,1773,379,1771,380,1772,379,1773,378,1775,377,696,380,1772,379,698,378,697,378,697,379,698,378,697,379,697,379,1772,379,697,379,697,378,1772,380,696,380,697,378,697,378,698,378,697,379,697,379,697,379,698,378,696,379,1772,380,1773,378,697,378,698,378,1773,379,1773,378,1773,379,697,378,697,379,697,379,696,379,698,378,697,379,696,380,697,378,698,378,1773,379,697,379,696,379,697,379,697,378,1772,379,698,378,697,379,697,379,697,378,697,379,697,379,697,379,697,383,692,379,698,378,697,378,697,379,702,374,697,379,696,379,697,379,697,378,697,379,697,379,1773,379,697,378,697,378,1774,379,696,379,697,378,697,379,1773,379,1773,378,1773,379,1773,378,1773,379,1773,405,671,378,697,379,696,379,698,378,697,379,697,379,697,379,696,379,696,380,696,380,696,379,697,379,696,380,697,378,697,379,1772,380,696,405,670,381,696,379,696,379,696,393,683,406,670,380,696,379,697,379,696,380,696,380,695,380,696,380,696,380,695,381,695,380,696,405,671,379,697,380,695,380,696,380,696,379,696,407,668,381,696,406,670,405,1745,381,1771,407,1744,381,1771,380,695,381,696,403,1748,380,696,380}, //18C
{5044,2129,381,1770,381,695,381,695,381,696,379,1772,379,696,380,696,380,696,380,696,379,1772,380,696,380,1771,380,1771,380,696,380,1771,381,1771,380,1771,381,1771,380,1772,380,696,379,1771,381,696,379,697,379,696,380,695,381,696,379,696,380,1772,380,696,379,696,380,1772,379,696,380,695,381,696,379,1771,381,696,380,696,379,696,380,696,380,696,380,696,379,696,380,696,380,695,380,696,380,696,380,696,380,695,380,696,380,1771,380,1772,380,1771,380,696,380,696,380,1771,380,696,380,29358,5065,2129,381,1771,381,695,380,696,380,696,380,1771,379,697,380,696,380,695,380,697,379,1771,381,696,379,1772,380,1771,380,695,381,1772,379,1772,380,1772,379,1771,381,1771,380,697,379,1770,381,697,379,696,380,695,381,696,379,695,381,696,380,1771,380,695,381,696,380,1771,380,695,381,695,380,696,380,695,381,695,381,696,379,696,380,696,379,696,380,1772,380,1772,379,696,380,696,380,1770,381,1772,380,1770,381,696,380,696,380,696,379,696,380,696,380,696,379,696,380,696,380,696,379,1772,380,695,381,695,380,697,379,696,380,1772,379,697,379,696,380,695,381,695,380,696,380,696,380,695,380,696,380,695,381,695,380,696,380,697,379,697,378,697,379,696,407,669,380,696,380,695,380,695,381,696,379,1772,380,696,380,1770,381,696,380,696,379,696,380,1772,407,1744,380,1772,380,1770,381,1771,380,1772,380,696,380,696,380,695,380,696,380,695,381,695,380,697,379,695,381,696,380,695,380,696,380,695,381,695,380,696,380,696,380,1771,380,696,380,696,380,696,379,696,380,696,380,695,380,696,380,697,379,696,379,696,406,669,381,696,379,697,379,697,379,695,381,696,379,696,380,695,381,696,379,697,379,696,380,696,380,695,381,695,380,696,380,696,380,1771,380,696,380,695,381,696,379,1771,381,696,379,1771,381,695,381}, //19C
{5044,2129,379,1772,380,696,379,696,380,696,380,1772,379,697,379,696,380,696,380,695,406,1746,380,695,380,1772,380,1771,380,696,380,1772,380,1771,380,1772,380,1771,380,1772,405,671,379,1772,379,697,379,697,379,696,380,697,378,696,380,697,379,1771,406,671,379,696,380,1771,380,696,405,671,379,697,380,1772,405,670,380,696,379,697,379,696,380,696,380,696,379,697,379,696,380,696,405,671,379,697,379,696,383,693,379,697,404,1746,380,1772,380,1771,380,695,381,696,380,1771,380,696,380,29380,5043,2131,379,1772,380,696,380,696,379,697,379,1771,380,698,405,669,380,696,380,695,380,1773,379,696,380,1772,379,1772,380,695,380,1772,380,1771,380,1772,380,1772,379,1771,380,697,379,1772,380,695,381,695,380,697,404,670,381,695,380,696,380,1772,380,696,379,696,407,1747,377,697,379,696,380,696,405,670,381,695,380,695,381,696,379,696,380,697,379,1770,381,1772,380,696,380,696,379,1772,380,1772,379,1772,380,696,379,696,380,696,380,696,405,671,379,697,379,696,380,696,379,696,380,1771,381,695,380,697,405,670,380,696,379,1772,380,696,380,696,380,696,379,696,380,696,379,697,379,697,405,670,380,695,407,670,379,697,379,696,380,696,379,697,379,695,381,696,380,695,380,697,379,695,381,1771,380,1771,384,693,379,1772,405,670,381,700,375,696,380,1772,379,1772,380,1772,405,1746,380,1771,380,1771,381,695,407,670,379,696,380,695,380,696,380,696,380,696,404,671,380,697,379,696,380,695,380,696,406,670,380,696,380,695,407,1745,380,696,406,670,379,696,380,696,380,696,380,695,406,670,380,695,381,695,380,696,380,696,380,696,380,695,380,696,380,696,380,695,381,695,380,697,379,695,407,669,380,696,380,696,406,669,380,696,405,671,380,696,379,1772,380,1771,380,696,380,695,381,1771,380,697,379,1772,379,696,380}, //20C
{5042,2131,378,1773,379,698,378,697,378,698,378,1773,379,697,379,696,379,697,379,697,379,1772,379,697,379,1772,379,1773,379,696,379,1773,379,1772,380,1772,379,1772,380,1771,380,696,380,1772,379,696,380,697,379,697,378,696,406,671,378,696,380,1773,379,697,379,697,378,1772,405,671,379,698,378,697,379,1771,380,697,379,697,379,696,379,698,378,697,379,697,405,671,378,698,378,696,379,697,379,698,378,697,379,697,379,696,379,1771,381,1772,379,1773,379,697,378,697,405,1747,379,696,380,29359,5063,2132,379,1773,378,697,379,696,380,696,382,1769,380,696,379,697,379,697,379,697,379,1772,379,698,378,1772,379,1773,379,696,380,1772,380,1771,380,1772,379,1772,380,1772,379,697,378,1773,379,697,379,696,380,697,378,697,379,697,379,697,379,1772,379,697,379,696,380,1772,379,696,406,670,379,697,404,671,406,670,380,696,380,695,380,697,404,672,378,1772,380,1771,380,696,380,696,406,1745,380,1772,380,1771,380,696,406,670,380,696,379,696,380,697,379,696,380,696,379,696,406,670,380,1772,379,697,379,695,381,696,405,671,397,1754,379,696,380,696,406,670,380,696,379,697,379,696,380,695,380,697,379,696,380,696,406,670,405,670,407,669,406,670,405,670,407,669,380,696,405,670,381,695,406,670,405,670,407,1745,406,1746,379,696,406,670,407,669,405,1745,408,1744,406,1746,380,1771,406,1745,407,1745,406,670,380,695,408,668,380,695,407,670,379,696,380,696,407,669,405,669,406,671,407,669,406,669,380,696,379,697,407,668,407,1745,379,697,405,670,379,697,407,669,379,697,378,698,378,697,378,697,379,698,377,699,377,698,377,698,377,699,377,699,350,726,350,725,350,726,350,726,349,726,349,727,349,728,347,728,372,703,373,703,373,703,347,729,372,1778,374,702,373,1779,373,703,373,1778,374,701,374,1778,373,703,373}, //21C
{5043,2130,380,1773,378,697,379,697,379,696,379,1772,380,696,379,697,379,697,378,698,379,1773,378,697,379,1772,380,1771,380,697,379,1772,379,1773,379,1772,379,1773,379,1771,380,697,378,1774,378,697,379,697,379,697,379,696,379,697,378,698,378,1773,379,697,379,696,380,1772,378,698,379,695,380,698,378,1772,405,672,378,697,379,697,378,698,379,696,379,696,380,696,379,697,379,696,380,696,380,696,379,697,379,697,378,697,379,1773,379,1772,380,1772,379,696,379,698,378,1772,380,696,379,29382,5042,2131,379,1772,380,696,380,696,379,696,380,1771,380,696,380,696,380,696,379,697,379,1773,379,696,379,1772,380,1772,380,696,379,1772,406,1745,405,1747,380,1771,380,1772,379,696,380,1772,379,697,406,669,380,696,379,697,379,696,380,696,380,1771,380,696,380,696,380,1771,406,671,405,670,380,696,379,696,380,696,405,671,406,669,406,670,406,670,407,1744,407,1744,406,671,379,696,380,1771,380,1771,406,1746,380,696,399,677,380,696,406,669,406,670,380,696,405,670,380,696,406,669,407,1745,406,669,381,695,380,696,380,695,406,1746,406,669,407,670,406,669,406,670,380,696,406,669,407,669,407,669,380,696,405,670,380,696,380,696,406,669,406,670,406,670,379,696,406,671,405,670,380,696,379,1772,406,670,404,1748,378,1773,378,698,377,698,378,698,377,1773,377,1775,351,1801,350,1801,349,1803,348,1803,348,728,373,703,373,703,373,703,373,702,373,703,373,703,373,702,373,703,373,702,374,702,374,702,373,703,373,703,373,702,373,1779,372,703,374,703,372,703,372,704,372,703,371,705,371,706,370,704,371,705,370,706,346,729,347,729,346,730,346,729,347,729,347,729,346,730,346,729,347,729,347,729,347,729,347,729,347,728,348,728,347,728,373,703,373,1778,375,1776,376,1777,374,700,377,1775,376,700,377,1773,378,698,378}, //22C
{5043,2130,405,1746,380,696,380,695,381,696,406,1744,381,696,406,670,379,697,379,696,380,1772,379,695,406,1746,380,1772,380,696,380,1771,405,1746,383,1769,380,1771,380,1772,380,696,405,1746,406,670,380,696,379,696,380,696,393,682,381,696,406,1745,380,695,407,669,407,1745,380,696,406,669,406,670,406,1745,405,671,380,696,380,696,407,668,407,669,406,670,380,696,406,670,405,670,380,696,380,695,380,696,380,696,380,696,405,1746,380,1772,379,1772,407,669,405,671,379,1772,380,696,380,29380,5043,2130,380,1771,380,696,380,696,405,671,406,1745,380,695,381,696,406,670,379,697,405,1746,405,670,405,1747,380,1771,406,670,380,1772,379,1772,406,1745,407,1745,380,1771,380,696,380,1771,407,669,407,668,381,695,407,670,379,696,380,696,379,1772,407,669,380,696,407,1744,405,671,380,696,379,695,381,696,380,696,404,671,407,669,380,695,407,670,379,1772,407,1744,407,669,407,669,380,1771,406,1745,407,1746,406,669,405,671,379,697,381,694,386,690,405,671,405,671,405,670,380,696,406,1744,381,695,408,668,406,670,380,696,380,1771,406,670,407,669,406,670,379,697,405,670,406,670,380,695,380,697,379,696,380,695,408,669,379,697,405,670,380,696,379,696,380,696,379,696,381,696,406,669,380,696,407,1744,380,1772,380,1771,406,670,380,696,406,670,379,1772,380,1771,406,1746,380,1771,407,1745,405,1746,380,696,380,696,380,696,405,670,406,669,381,696,379,696,405,671,407,669,379,696,380,696,407,668,381,696,379,697,405,670,406,1744,381,696,380,696,380,696,380,696,405,670,380,696,405,670,407,669,405,671,380,696,405,671,405,671,404,671,406,670,379,696,380,696,406,670,405,671,405,670,405,671,380,696,379,697,404,671,380,696,380,696,379,696,380,1771,381,695,380,696,381,1770,380,1772,380,696,379,1772,406,670,379}, //23C
{5042,2130,380,1772,379,697,379,697,379,697,378,1772,380,697,379,696,379,697,379,696,382,1770,379,697,379,1775,376,1773,379,696,380,1772,379,1773,379,1771,380,1772,380,1771,380,697,379,1772,379,697,379,696,380,697,378,696,380,697,379,696,380,1772,379,696,380,697,378,1772,380,697,378,697,379,697,405,1747,378,697,379,697,379,697,379,696,379,698,378,696,380,696,379,697,379,698,378,697,378,698,378,698,378,697,379,697,379,1772,379,1773,378,1772,380,697,379,697,379,1772,378,697,379,29382,5042,2131,379,1773,379,697,378,697,379,696,380,1771,380,697,379,696,380,695,407,670,379,1772,379,697,379,1773,379,1772,379,697,379,1772,379,1773,379,1772,380,1772,379,1772,379,697,379,1773,378,698,378,696,405,672,378,698,378,697,379,697,379,1772,379,697,379,696,380,1771,380,696,380,697,378,697,379,697,379,696,379,697,379,698,378,696,380,697,379,1773,378,1772,379,697,380,696,379,1772,380,1771,380,1771,380,698,378,697,379,697,379,695,380,697,379,697,379,697,378,697,379,697,379,1772,380,696,379,697,379,696,379,697,379,1773,379,696,379,698,378,697,379,697,379,697,378,697,379,696,380,697,378,697,379,698,378,697,379,696,379,697,379,696,380,697,379,696,379,697,379,698,378,697,378,1773,379,1772,406,1746,379,1772,379,697,379,697,379,697,378,1773,379,1772,379,1772,380,1772,379,1772,381,1771,379,697,379,697,378,698,378,698,378,697,405,671,379,697,401,674,404,671,380,696,380,696,379,697,379,697,379,697,378,697,379,1772,380,696,379,697,379,696,380,697,378,697,405,671,379,696,380,697,378,697,405,670,380,697,378,697,379,697,379,696,379,698,378,697,379,696,380,696,380,696,379,697,380,695,380,697,378,697,379,697,379,697,406,670,378,1772,380,1772,379,697,406,1746,379,1772,379,696,406,1746,380,696,379}, //24C
{5069,2104,406,1745,380,696,406,670,380,696,405,1746,406,670,380,696,380,696,379,696,406,1745,381,696,405,1746,405,1746,380,696,380,1770,381,1772,380,1771,380,1771,380,1772,380,697,379,1772,406,669,407,669,380,695,381,696,406,669,380,695,381,1772,379,697,379,696,406,1745,406,670,406,670,406,670,405,1746,406,669,382,693,407,670,380,696,405,671,406,672,404,669,379,696,380,696,380,696,380,696,380,695,386,690,406,670,405,1746,406,1746,380,1771,405,671,406,670,380,1771,406,670,380,29358,5066,2129,381,1771,380,696,406,670,379,696,380,1771,380,696,407,669,380,696,380,696,379,1772,380,696,380,1771,380,1771,381,696,379,1772,380,1771,407,1746,379,1771,380,1772,405,670,380,1772,380,696,380,695,406,670,380,696,405,671,379,696,406,1746,380,696,379,696,380,1771,381,695,380,697,379,696,380,696,405,670,380,696,380,696,380,696,380,695,380,1772,406,1746,379,696,380,696,405,1745,381,1772,379,1772,380,696,405,671,379,696,407,670,404,671,405,670,407,669,380,696,406,670,379,1772,380,696,380,696,379,696,380,696,380,1771,380,696,406,670,405,671,379,696,380,696,380,696,380,695,380,696,380,695,381,696,405,670,380,697,379,696,380,696,379,697,399,676,380,696,406,670,379,696,407,669,400,676,379,696,407,668,380,1772,406,670,380,696,380,1771,380,1772,380,1771,406,1747,378,1773,379,1772,405,671,407,668,406,671,403,672,406,670,406,669,406,670,379,697,379,696,406,670,379,697,406,669,406,671,379,696,380,696,379,1771,407,670,406,670,405,671,379,696,407,669,379,696,380,696,380,696,380,696,379,697,406,669,380,696,380,696,379,696,380,696,379,696,381,696,406,669,379,697,380,695,406,670,380,696,380,696,379,697,404,671,406,670,380,1771,406,670,406,1745,380,1771,381,1772,405,670,380,1771,380,696,405}, //25C
{5041,2131,379,1773,379,697,378,697,379,697,379,1772,406,670,379,698,378,696,380,697,378,1772,380,697,379,1772,379,1773,404,672,378,1772,380,1773,378,1773,379,1772,379,1772,380,696,379,1773,379,697,379,696,380,696,379,697,379,696,380,696,380,1772,378,698,378,697,379,1773,379,696,380,697,378,697,379,1772,405,671,379,697,379,697,379,697,379,696,379,697,379,697,379,696,379,697,379,696,380,696,379,698,379,696,379,696,380,1771,383,1770,379,1772,379,697,379,697,379,1771,380,696,380,29380,5070,2103,407,1745,380,697,379,696,380,696,379,1772,380,696,405,670,380,696,406,670,380,1771,380,696,380,1772,380,1771,380,696,380,1771,406,1746,379,1772,380,1771,407,1745,380,696,406,1745,380,696,380,696,380,696,379,696,380,696,380,695,408,1744,380,696,405,671,379,1772,380,696,380,695,380,696,407,668,407,669,380,696,380,696,406,669,407,670,384,1766,407,1744,407,668,407,670,407,1745,407,1745,380,1770,381,695,407,669,380,696,380,696,407,668,380,696,406,670,406,669,407,669,406,1746,380,695,407,669,405,670,380,696,380,1772,407,669,406,669,407,669,407,669,379,696,406,670,406,670,405,671,405,671,405,670,404,672,379,697,379,696,379,697,377,699,377,699,377,698,376,700,376,700,350,1801,350,726,349,727,349,726,349,1802,349,728,348,728,347,1803,373,1778,374,1778,373,1779,373,1778,374,1778,373,703,373,702,373,703,372,704,373,703,372,702,374,703,372,704,371,704,373,703,371,706,371,704,371,704,347,729,370,706,351,1800,347,729,346,729,347,729,346,731,346,729,347,730,345,729,347,729,347,728,348,728,347,729,348,728,347,728,373,703,374,702,372,703,375,702,374,701,375,700,376,700,376,700,376,699,377,699,377,698,378,698,377,699,403,1748,378,1773,378,1774,378,1773,404,1748,378,697,404,1747,405,671,404}, //26C
{5042,2131,379,1773,379,696,378,697,379,697,380,1772,379,696,380,697,378,697,379,697,379,1772,379,697,379,1773,378,1773,379,697,378,1773,379,1773,379,1772,379,1772,380,1772,406,669,380,1772,379,697,379,697,378,697,379,697,379,698,378,697,379,1771,406,670,379,698,378,1773,379,697,378,697,379,697,379,1773,405,670,379,697,379,697,379,697,379,696,379,697,379,697,379,696,379,697,379,697,378,697,380,696,379,697,379,696,380,1772,379,1773,379,1772,405,672,378,696,380,1772,379,697,378,29361,5063,2131,379,1773,379,696,380,696,379,697,379,1773,379,696,379,697,379,697,379,696,379,1773,379,696,379,1773,379,1772,380,697,378,1773,378,1773,379,1773,378,1773,379,1772,379,697,379,1773,379,697,378,698,379,696,379,697,379,697,378,697,379,1772,380,696,379,697,379,1773,378,698,378,697,379,697,378,697,380,696,379,696,379,698,378,697,379,697,379,1773,378,1773,406,670,379,697,379,1772,379,1772,379,1773,379,697,379,697,378,697,379,697,378,698,379,697,379,696,379,696,380,697,379,1773,378,697,379,696,379,697,379,697,378,1773,379,698,378,697,379,696,379,697,379,697,379,696,379,698,378,697,379,697,379,697,378,697,379,697,379,696,380,697,379,696,379,697,379,697,379,696,379,697,379,696,380,1772,404,671,380,696,380,1772,379,696,381,695,380,1771,380,1773,379,1772,379,1772,379,1773,379,1772,380,695,380,696,380,696,381,695,406,670,379,697,379,696,380,695,381,695,406,670,380,696,406,670,379,696,407,669,406,670,382,1769,407,669,406,669,381,699,402,670,380,696,380,695,381,696,379,696,406,670,406,669,380,696,380,696,407,669,406,669,406,670,380,695,381,695,407,669,380,696,405,670,381,695,407,668,407,670,380,695,381,695,405,671,407,1743,408,669,388,688,405,670,380,696,406,1745,406,1746,380,696,380}, //27C
{5044,2130,380,1771,380,696,380,696,380,696,379,1772,380,696,406,670,379,696,380,696,380,1771,380,696,380,1771,380,1772,380,696,380,1770,381,1772,379,1772,380,1771,380,1771,381,696,380,1771,380,696,380,696,384,691,380,696,380,695,381,696,380,1772,379,696,406,669,380,1772,380,695,380,696,380,695,381,1771,380,696,380,695,381,695,381,695,381,695,380,695,381,695,381,695,380,696,380,695,381,696,380,695,380,696,380,696,380,1771,380,1771,381,1771,380,696,380,696,380,1771,380,695,381,29380,5043,2130,380,1771,381,695,381,696,379,696,380,1771,380,696,380,695,381,696,380,695,380,1771,381,696,379,1771,381,1771,380,696,380,1772,379,1772,407,1744,381,1771,380,1772,379,696,380,1771,381,695,381,695,380,696,380,695,381,696,379,695,381,1772,379,696,380,696,380,1771,381,695,380,696,380,695,381,695,380,695,381,695,381,696,380,695,380,696,380,1771,380,1771,381,695,381,695,380,1772,380,1771,380,1771,380,697,380,695,380,696,380,696,380,696,379,696,380,697,379,696,379,697,380,1769,382,695,381,695,406,670,406,670,380,1770,381,696,380,696,380,696,379,696,380,695,380,697,379,697,379,695,381,696,380,696,379,695,381,696,380,696,379,696,380,695,381,696,380,695,380,696,380,696,380,1771,380,1771,381,696,379,696,380,1771,380,697,380,695,380,1772,380,1771,380,1772,379,1772,380,1771,380,1772,380,696,379,697,379,696,380,696,380,696,380,695,380,696,380,695,381,695,380,695,381,696,380,696,380,695,380,696,380,695,381,1771,380,696,380,696,380,696,379,696,380,696,380,696,379,696,380,695,381,696,380,695,380,697,404,670,407,670,380,695,406,670,380,696,380,696,379,696,380,696,434,641,381,695,380,696,380,696,380,698,377,696,380,696,380,1771,380,1771,381,695,380,696,380,696,407,1745,379,1772,380,695,381}, //28C
{5071,2102,381,1771,406,670,380,696,407,669,406,1745,380,695,380,697,406,669,380,696,407,1744,380,696,406,1745,380,1772,406,670,406,1745,407,1744,405,1747,380,1771,407,1745,406,670,405,1746,405,671,380,696,406,669,407,669,406,670,380,696,380,1771,380,696,406,670,379,1771,381,695,381,696,381,695,379,1771,407,669,407,669,380,696,406,670,380,695,380,696,380,696,383,693,380,695,380,696,380,696,405,675,375,697,379,696,380,1771,380,1772,380,1771,406,670,407,669,405,1746,380,696,406,29355,5043,2130,407,1744,381,695,407,668,381,696,379,1772,380,696,380,695,380,696,380,695,381,1772,379,697,379,1772,380,1771,380,695,381,1771,380,1770,382,1771,406,1746,380,1771,380,696,380,1772,405,670,404,672,380,695,380,696,380,695,381,696,380,1771,380,696,380,695,406,1746,380,696,406,670,379,696,381,695,380,695,381,696,379,696,380,696,380,695,381,1771,380,1772,379,697,379,696,380,1772,379,1772,400,1752,379,696,380,696,380,696,379,697,379,696,380,696,405,671,405,670,406,670,380,1771,407,669,380,696,380,696,379,697,379,1771,381,696,379,696,380,696,380,695,381,695,406,670,406,670,380,696,379,696,380,697,379,696,380,696,407,668,407,669,380,696,405,670,380,696,380,697,379,695,407,669,380,696,380,1772,379,697,379,1772,380,695,380,696,406,1745,380,1772,404,1748,379,1772,380,1771,380,1771,381,696,380,696,405,670,380,696,398,678,405,670,380,696,380,696,380,696,406,669,380,696,407,669,380,695,380,696,380,696,380,1772,379,696,380,696,408,668,380,695,382,694,406,669,380,696,406,670,406,669,381,696,379,696,406,670,405,671,407,669,379,696,405,671,380,696,406,669,380,697,406,669,406,669,381,695,380,696,407,668,381,696,379,696,380,1771,380,696,407,1745,380,696,380,696,379,1772,406,1745,380,696,380}, //29C
{5043,2131,379,1771,381,695,406,670,380,695,406,1747,406,670,379,696,380,696,406,670,404,1746,381,696,380,1771,380,1772,380,695,380,1771,381,1772,380,1771,380,1771,380,1772,380,696,406,1745,380,696,406,670,380,696,406,670,379,696,380,696,380,1772,405,670,407,669,380,1771,380,696,407,670,381,694,380,1771,380,696,380,696,380,695,380,697,379,696,380,695,407,670,379,696,407,670,379,696,380,696,380,696,405,670,380,696,380,1771,380,1772,380,1771,380,697,379,696,380,1772,379,697,379,29382,5043,2130,380,1772,380,696,379,696,380,696,380,1772,380,695,380,696,380,696,380,696,379,1772,380,696,380,1771,380,1772,406,669,380,1772,380,1772,380,1771,385,1766,381,1771,380,696,380,1772,380,695,380,696,380,696,380,696,380,696,379,695,381,1772,379,697,379,696,380,1771,381,695,380,697,406,669,384,692,380,696,379,696,380,696,380,695,381,696,406,1744,381,1771,380,697,379,696,380,1771,380,1772,380,1771,380,697,379,695,381,696,380,696,380,695,380,696,380,696,380,695,380,696,380,1772,380,696,379,696,380,696,380,696,380,1770,381,696,380,695,381,696,379,696,380,696,380,696,380,696,379,697,379,696,380,696,380,696,380,695,380,696,380,695,381,696,379,697,380,695,380,696,380,696,380,1771,380,696,380,1771,380,696,380,1772,380,695,381,695,380,1771,385,1768,379,1772,380,1771,380,1771,381,1772,379,696,380,696,380,696,380,696,379,697,379,696,380,695,381,695,380,696,380,696,380,696,380,695,381,695,380,696,380,696,380,1771,380,696,380,696,380,695,380,696,405,671,380,696,380,695,380,696,380,696,380,696,380,695,380,696,380,696,380,696,380,695,380,696,380,697,379,696,380,695,380,696,380,696,380,696,380,695,380,696,380,696,380,696,380,1771,380,1772,380,1771,380,696,380,696,380,1771,380,1771,381,696,384}, //30C
{5043,2130,382,1769,380,696,380,695,380,696,380,1772,380,696,406,669,380,697,379,697,379,1771,405,672,379,1771,380,1772,380,696,384,1767,380,1771,380,1773,405,1745,380,1772,380,695,381,1771,380,696,406,670,379,696,380,696,380,696,403,673,379,1772,380,697,379,696,379,1773,379,696,379,697,379,696,406,1746,379,696,380,696,380,696,379,696,380,697,379,697,379,695,381,696,379,697,379,696,380,696,405,671,379,696,380,695,406,1746,380,1772,379,1772,380,697,379,695,380,1773,379,696,380,29380,5044,2129,380,1772,406,670,380,696,379,697,379,1772,380,696,405,670,380,696,405,671,406,1745,380,696,380,1772,379,1772,380,696,379,1773,379,1772,406,1746,379,1771,406,1746,380,695,380,1772,380,696,380,696,379,696,407,669,380,696,380,696,404,1747,380,695,406,670,380,1772,380,696,379,697,379,696,406,670,380,696,379,696,380,697,379,695,381,696,379,1771,381,1771,380,697,405,670,406,1745,406,1746,379,1773,379,697,379,696,379,697,405,670,380,696,380,696,379,697,406,670,379,696,380,1772,379,696,380,696,406,669,380,697,379,1772,406,670,379,696,380,696,380,699,376,697,379,696,406,670,405,670,380,696,380,696,380,696,379,696,380,696,380,695,380,697,379,696,380,696,380,697,379,696,379,696,380,1771,380,1772,380,696,380,1772,379,696,380,696,379,1772,406,1745,381,1771,380,1772,379,1773,379,1772,380,695,403,673,380,696,405,670,380,696,380,697,379,696,379,696,380,697,404,671,379,696,381,696,379,697,379,696,380,696,379,1772,380,696,380,696,379,696,380,696,380,696,379,696,380,696,384,692,406,670,379,697,379,696,380,701,374,696,380,696,380,696,380,695,380,696,380,696,380,695,406,671,379,696,380,696,406,669,380,697,379,697,379,697,404,1747,379,696,380,695,407,1744,381,696,406,1745,380,1772,380,695,380}, //31C
{5043,2130,381,1771,380,696,379,696,380,696,380,1771,380,696,380,696,380,696,380,695,381,1770,406,671,379,1772,380,1771,380,695,381,1772,380,1771,380,1772,380,1771,407,1745,380,696,379,1772,380,695,405,672,379,696,380,696,380,696,379,697,379,1772,380,696,380,695,380,1771,407,669,380,695,381,696,380,1772,379,696,380,696,380,695,380,697,379,696,380,696,380,695,380,697,379,696,406,670,380,696,379,696,380,696,380,695,380,1773,379,1771,381,1771,380,696,406,670,379,1772,380,696,405,29355,5070,2103,380,1772,406,670,380,695,380,697,379,1771,380,697,379,696,380,696,380,696,380,1771,380,696,380,1771,380,1772,380,695,380,1771,381,1771,380,1772,380,1771,380,1772,380,696,379,1772,380,695,381,696,379,696,380,696,380,696,380,695,380,1771,381,696,379,696,380,1771,381,696,379,697,404,671,380,695,380,697,379,696,380,696,380,696,380,694,381,1771,381,1772,406,669,406,670,379,1771,381,1771,381,1771,380,696,406,669,380,696,380,696,380,695,380,697,379,696,406,670,380,694,382,1770,381,696,405,671,379,696,380,696,380,1771,380,697,405,670,380,695,406,671,380,695,406,670,380,695,381,695,380,696,380,696,380,695,380,696,407,669,380,696,380,695,380,696,380,696,380,695,381,695,380,1772,405,1746,380,1771,381,695,380,1771,381,696,379,696,380,1771,381,1771,380,1771,381,1771,380,1772,380,1772,379,695,381,696,379,696,380,696,380,695,381,695,380,696,380,696,380,696,379,696,380,695,381,696,380,695,380,696,380,696,381,1770,380,696,380,696,380,698,377,696,380,697,379,696,380,696,379,696,380,696,380,695,380,696,381,695,380,696,380,696,379,697,379,696,380,696,380,695,380,695,381,696,380,695,380,696,380,697,379,696,380,696,379,696,380,1772,379,1772,380,696,380,1771,380,696,380,1771,380,1772,380,695,380} //32C
//cool high
{5043,2130,380,1772,380,696,404,671,406,670,380,1771,380,696,406,670,379,696,406,670,380,1771,407,670,379,1772,405,1746,406,670,406,1746,386,1765,406,1745,380,1772,380,1771,380,697,406,1745,379,697,380,694,407,670,406,670,405,670,405,672,379,1771,381,696,379,696,379,1773,379,696,380,695,381,695,380,1771,407,670,380,695,380,696,380,696,380,695,381,695,380,696,380,696,380,696,379,696,407,669,380,696,380,695,406,670,380,1772,380,1771,380,1772,380,695,380,696,380,1771,381,695,380,29381,5043,2130,380,1772,380,695,381,695,380,696,406,1745,380,697,379,696,406,670,379,696,380,1772,380,696,379,1771,381,1771,381,694,407,1746,405,1746,384,1768,379,1772,407,1744,381,695,380,1771,381,696,380,696,379,696,380,696,406,669,380,696,380,1772,406,669,380,696,380,1772,380,696,379,696,406,670,379,697,405,671,379,696,406,670,407,669,383,693,379,1772,380,1770,408,669,380,696,379,1772,380,1772,405,1746,405,671,379,697,379,696,380,695,381,696,380,695,406,670,407,669,406,670,380,1771,380,696,382,693,380,697,379,696,380,1770,381,696,380,696,380,696,406,670,379,696,380,696,405,671,379,697,379,696,380,696,380,695,406,671,379,696,406,669,406,671,379,696,380,696,407,669,380,696,405,1746,380,1772,405,1745,381,695,406,670,380,696,380,696,379,1772,380,1772,405,1746,380,1771,381,1771,406,669,406,1746,380,696,380,695,381,696,379,696,380,696,380,695,406,671,405,670,380,696,409,667,379,697,379,696,406,670,379,696,406,1745,381,696,380,696,379,696,406,670,405,671,405,670,380,696,406,670,380,695,407,670,404,671,407,669,380,696,379,696,406,670,380,695,380,696,380,696,380,696,380,695,407,669,407,669,380,696,380,696,406,670,405,670,406,1745,380,1772,380,696,379,1772,380,695,381,1770,408,1746,379,696,379}, //16C
{5043,2130,405,1746,380,697,379,696,380,696,405,1746,405,671,379,696,407,669,406,670,406,1745,380,696,380,1771,381,1771,380,696,380,1771,380,1772,380,1771,380,1772,405,1746,380,696,380,1772,380,696,379,697,379,696,405,671,379,696,380,696,379,1773,379,697,379,696,380,1772,406,669,406,669,381,696,379,1772,380,696,380,696,405,670,380,696,380,696,380,696,379,696,380,696,380,696,379,697,379,696,380,695,380,697,379,696,407,1743,409,1744,380,1771,380,696,380,696,405,1747,406,669,380,29357,5067,2130,380,1771,380,697,379,696,380,696,379,1772,380,696,380,695,405,672,379,696,380,1771,406,670,407,1744,380,1772,380,696,380,1771,380,1772,380,1772,406,1744,407,1745,380,696,380,1772,379,697,405,670,380,696,379,696,380,696,380,696,380,1771,380,696,406,671,378,1771,407,671,379,696,380,696,379,696,380,696,380,696,380,696,379,696,380,696,380,1772,379,1771,381,695,380,697,379,1771,381,1771,380,1771,380,696,380,696,380,696,379,697,379,696,380,696,380,696,379,696,380,696,380,1771,381,695,382,694,380,695,381,695,381,1771,380,696,380,696,379,696,380,696,380,695,381,696,433,642,406,670,380,695,407,669,380,696,380,696,380,695,380,695,381,696,380,696,405,671,406,669,406,670,380,695,380,696,380,696,380,1771,380,696,380,696,380,695,406,1746,380,1773,405,1745,380,1771,380,1773,379,697,405,1746,379,696,380,696,379,696,406,670,380,695,381,696,406,670,379,696,380,696,380,695,406,670,380,695,381,696,380,696,379,1772,380,695,380,696,380,696,380,696,379,696,406,670,380,697,379,696,379,697,379,697,379,696,380,696,379,696,380,696,381,695,379,697,379,697,379,696,380,696,380,696,379,697,379,696,380,695,381,695,380,697,379,696,380,1771,380,695,381,1771,380,1771,381,695,407,1745,405,1747,379,696,380}, //17C
{5044,2129,381,1772,379,696,406,670,405,671,380,1771,380,696,406,668,382,696,379,696,380,1771,380,696,380,1771,381,1771,380,695,381,1771,380,1772,380,1771,381,1772,379,1771,381,695,380,1772,406,670,379,696,380,696,379,697,380,695,381,695,380,1772,380,695,380,696,380,1771,380,696,380,696,380,696,380,1771,380,696,380,695,381,695,380,696,380,695,381,695,380,696,380,696,380,696,379,696,381,695,380,696,380,695,381,696,379,1772,380,1771,380,1772,380,696,379,696,380,1772,380,695,380,29381,5043,2130,380,1771,381,695,380,696,380,696,380,1771,380,695,381,696,380,696,379,696,380,1771,406,671,379,1771,381,1770,381,696,380,1771,380,1772,380,1771,406,1745,381,1771,380,696,380,1771,407,669,380,697,379,696,380,696,379,697,379,696,380,1771,380,696,380,696,380,1771,406,670,380,696,380,695,380,697,379,696,380,695,381,696,380,695,380,696,380,1770,381,1772,380,696,404,672,379,1772,380,1771,380,1772,380,695,380,697,379,697,379,696,380,696,379,696,380,696,380,695,380,696,380,1771,381,696,379,696,405,671,380,696,380,1771,380,696,380,696,380,696,379,696,380,696,380,695,381,696,379,696,380,696,380,695,380,696,380,696,380,696,380,695,380,696,380,696,380,695,406,670,380,696,380,1771,381,695,380,696,380,1771,380,696,380,696,380,696,380,1771,380,1772,379,1772,380,1772,379,1772,379,697,405,1746,380,695,381,696,379,696,380,696,405,671,379,696,407,669,380,696,379,696,405,672,379,696,379,696,407,669,380,696,380,1772,379,696,405,671,380,696,379,696,406,670,380,695,381,696,405,670,406,670,406,669,380,696,380,696,405,671,379,696,406,670,405,672,405,669,381,695,407,669,380,696,405,671,379,696,380,695,407,670,379,696,407,669,406,1745,407,1744,408,1744,407,1745,405,671,406,1745,406,1745,406,670,406}, //18C
{5044,2130,380,1771,379,697,380,696,380,696,379,1772,380,696,380,696,380,695,380,695,381,1772,379,697,379,1772,380,1771,380,695,381,1772,379,1771,381,1772,379,1773,379,1771,380,695,381,1771,381,696,379,696,380,695,381,695,380,696,380,696,380,1771,380,696,380,696,380,1771,380,696,380,696,379,697,379,1773,379,695,381,695,380,697,379,695,381,696,380,696,379,696,380,695,381,696,380,695,380,696,380,696,379,696,380,696,380,1771,381,1770,381,1771,381,695,380,696,380,1772,379,696,380,29380,5044,2130,380,1771,380,695,381,696,380,696,379,1772,405,671,380,696,379,696,380,695,381,1772,379,695,381,1771,380,1772,380,696,380,1771,380,1771,381,1771,406,1745,381,1770,381,696,380,1771,405,672,379,696,380,696,380,695,380,696,380,695,381,1772,405,670,405,670,381,1771,380,696,380,696,380,695,380,696,380,696,380,696,380,695,380,696,380,696,380,1771,380,1772,405,671,380,695,380,1772,380,1771,380,1771,380,698,378,696,380,695,381,695,381,694,381,696,380,696,380,696,379,696,380,1772,380,694,381,696,380,696,380,694,381,1772,380,695,381,695,380,696,380,695,381,695,380,696,380,696,380,696,380,696,379,696,380,695,381,695,381,695,380,697,379,695,381,696,380,695,380,696,380,696,380,695,381,1771,380,696,380,1770,381,696,380,695,381,696,387,1763,381,1772,379,1771,381,1771,380,1771,381,696,379,1771,381,695,380,695,381,696,380,695,383,693,380,696,380,696,380,695,380,700,376,696,380,696,379,696,380,697,379,696,380,1771,407,670,379,696,379,696,380,696,380,696,380,696,380,695,380,697,379,695,380,696,380,697,379,696,379,697,379,695,407,670,380,696,379,697,379,696,380,696,380,696,406,669,380,696,406,670,379,696,380,696,380,696,380,1771,380,696,380,696,379,697,406,1745,406,1745,406,1745,407,669,406}, //19C
{5069,2104,406,1745,380,696,380,700,376,696,380,1771,380,696,380,696,379,696,380,697,379,1772,406,669,407,1744,407,1745,380,697,379,1771,381,1770,407,1745,406,1746,380,1772,406,669,405,1746,381,695,380,696,406,670,406,670,379,697,379,696,406,1746,379,696,380,696,380,1772,379,696,406,670,405,670,381,1770,381,696,380,695,380,696,406,670,380,696,380,696,406,669,380,696,380,696,380,696,379,696,382,694,380,696,380,696,379,1772,384,1767,380,1772,406,675,374,696,380,1771,381,695,407,29354,5043,2130,380,1771,407,670,405,671,379,696,380,1772,380,695,380,696,380,696,380,695,381,1770,381,696,406,1745,406,1745,381,696,379,1771,381,1772,405,1745,407,1745,380,1772,379,697,379,1772,380,696,406,670,379,696,380,696,379,697,379,695,381,1771,381,696,379,696,380,1772,380,695,380,697,379,696,380,696,379,697,379,696,380,696,380,695,381,695,380,1771,381,1771,380,695,381,695,380,1772,380,1772,406,1745,380,695,381,695,380,697,379,696,407,669,405,671,379,696,380,696,380,696,380,1771,380,696,380,696,379,696,380,696,380,1772,379,696,380,696,407,669,379,696,380,696,380,696,405,670,406,671,379,696,380,695,381,696,379,696,380,696,380,696,379,696,380,696,380,696,380,694,381,696,380,1771,380,1771,381,696,379,1772,380,697,379,695,406,671,379,1772,380,1771,380,1772,380,1771,380,1772,380,695,380,1772,380,695,381,696,379,696,380,696,380,695,381,696,379,696,380,696,380,695,381,695,380,695,381,696,380,696,379,696,380,1771,381,696,379,696,380,696,405,670,405,671,407,669,380,695,380,697,406,670,379,695,381,695,381,695,380,696,380,696,380,696,380,696,379,696,380,695,381,696,379,696,380,696,380,695,380,697,405,670,380,696,405,671,379,1772,406,1746,379,696,406,670,380,1770,381,1771,381,1771,380,696,406}, //20C
{5065,2131,379,1773,379,696,379,696,380,697,379,1771,407,669,380,696,380,696,380,695,380,1772,380,696,380,1771,380,1772,380,696,379,1772,406,1746,410,1740,381,1771,380,1772,380,695,380,1772,380,696,405,671,381,694,380,696,380,696,380,696,379,1772,380,696,380,695,380,1771,381,695,381,696,405,671,379,1771,381,696,404,671,380,696,380,695,380,696,380,696,380,695,381,695,380,696,380,696,380,696,406,670,404,671,380,696,381,1770,380,1772,396,1754,381,695,381,696,405,1746,380,696,380,29380,5070,2103,407,1745,380,696,406,669,407,670,405,1746,380,695,380,696,405,671,380,696,380,1770,381,696,380,1770,381,1772,381,694,381,1770,407,1745,380,1772,380,1771,407,1744,381,695,380,1772,380,695,407,670,379,697,404,671,380,695,406,670,406,1745,381,695,380,697,379,1771,407,669,381,696,379,696,380,695,407,670,379,696,380,696,380,696,404,671,380,1772,380,1771,407,669,380,696,379,1772,380,1771,381,1771,380,696,406,670,380,695,406,670,407,668,407,669,381,695,380,696,380,696,379,1772,380,696,380,696,379,696,380,696,380,1771,381,695,380,696,380,696,405,671,379,696,380,696,380,696,406,669,380,697,379,696,380,696,405,670,380,696,380,695,407,669,380,696,380,695,381,696,406,670,379,696,380,696,380,1771,380,1771,407,669,380,696,407,669,380,1771,380,1772,380,1770,381,1771,381,1771,381,695,380,1772,380,695,380,697,406,669,379,696,380,697,379,696,406,669,381,695,380,696,380,696,380,695,381,695,380,696,380,695,380,1772,406,670,380,696,380,695,380,696,406,670,380,695,407,669,405,671,380,696,387,688,380,696,380,696,380,696,380,696,405,670,380,696,406,669,380,697,405,669,381,695,407,669,406,671,379,696,380,695,397,678,381,696,380,1771,381,696,379,1772,379,696,380,1771,406,1746,381,1770,407,670,404}, //21C
{5069,2103,381,1771,380,696,405,670,380,696,406,1745,381,695,381,696,405,670,380,696,380,1770,381,696,380,1771,406,1745,407,670,379,1772,380,1771,380,1772,380,1772,379,1772,405,671,405,1746,380,696,405,671,380,696,389,687,379,696,380,695,407,1745,380,696,407,667,408,1745,406,670,380,696,406,669,380,1772,405,671,379,696,406,670,380,696,379,696,405,671,380,696,406,670,406,670,379,696,405,670,407,670,379,696,380,696,380,1771,380,1772,380,1771,406,670,380,696,380,1771,380,696,406,29355,5043,2130,380,1771,380,696,380,695,406,671,379,1772,380,696,380,695,380,697,379,696,380,1771,380,696,380,1771,381,1771,380,695,381,1771,380,1772,380,1770,381,1772,380,1771,380,696,404,1747,381,694,381,696,380,696,379,696,380,697,379,696,380,1772,379,696,380,696,380,1772,379,697,379,696,380,696,379,696,380,696,380,696,380,696,379,696,380,696,380,1771,380,1772,380,695,380,696,380,1772,380,1771,380,1771,380,696,380,696,405,671,380,696,379,696,380,696,380,696,379,697,379,696,380,1771,406,670,380,695,381,696,379,697,406,1745,380,696,380,695,380,695,406,671,380,695,381,695,380,696,380,696,380,695,380,696,380,696,380,695,381,696,380,695,380,696,380,696,379,696,380,696,380,695,381,1771,380,696,380,1771,380,1772,380,696,405,671,379,696,380,1771,380,1772,380,1771,380,1771,381,1772,380,695,380,1771,381,696,380,695,380,696,379,697,379,696,380,696,380,696,380,695,380,696,380,696,406,669,406,671,380,695,380,696,380,1771,380,696,380,695,380,697,379,696,380,696,380,696,379,696,380,696,380,695,381,696,380,695,380,696,380,695,380,697,379,696,380,696,406,670,380,695,380,696,405,671,380,696,380,696,379,697,379,695,381,695,380,696,380,1771,381,1770,381,1771,381,695,380,1772,380,1771,407,1744,381,695,380}, //22C
{5042,2131,379,1772,380,696,406,670,379,696,380,1772,379,697,404,671,380,696,379,697,379,1773,379,696,379,1772,380,1772,379,697,379,1772,380,1771,380,1772,380,1771,380,1772,379,696,381,1771,380,696,379,696,380,696,380,696,379,697,379,697,379,1772,380,696,379,696,380,1772,379,696,380,696,379,697,379,1773,379,695,381,696,379,696,380,697,379,696,380,696,379,697,379,696,380,697,379,696,382,693,380,697,379,696,405,671,379,1772,380,1772,379,1772,405,671,379,696,380,1772,380,695,380,29382,5042,2130,380,1771,381,696,379,697,406,669,380,1771,380,696,380,696,380,696,380,696,379,1772,380,696,380,1771,380,1772,380,696,379,1772,380,1772,379,1772,379,1773,379,1772,380,695,380,1773,379,696,380,695,380,696,380,696,380,696,380,696,405,1746,380,695,408,669,379,1772,380,696,379,697,379,696,380,696,380,696,379,696,380,696,379,697,380,695,380,1772,379,1773,379,696,380,696,380,1771,380,1772,379,1771,407,670,406,670,380,696,379,696,379,698,379,696,380,695,380,696,380,696,379,1772,380,696,379,697,379,697,379,696,380,1772,379,697,405,670,380,696,380,696,405,671,379,696,380,696,380,695,380,696,406,670,380,696,406,669,407,669,380,695,408,669,380,698,377,697,378,697,380,696,380,695,380,1772,379,1772,406,1746,405,671,405,670,380,696,379,1772,380,1772,380,1771,380,1772,406,1745,380,696,380,1771,380,696,380,695,381,696,379,696,380,696,380,696,379,696,407,670,379,696,379,697,379,697,379,696,407,668,381,696,379,1772,380,696,379,697,405,670,380,696,380,696,379,697,379,696,380,696,379,697,379,697,404,671,380,696,380,695,380,696,380,697,379,695,406,670,381,695,380,696,406,670,379,697,379,696,380,696,405,675,376,695,407,669,406,1745,380,695,381,696,406,1746,379,1771,407,1745,406,1745,408,668,380}, //23C
{5043,2130,381,1771,380,696,380,696,380,695,381,1770,381,696,380,695,380,696,380,696,379,1772,380,697,379,1771,380,1772,380,696,380,1771,380,1772,380,1771,380,1772,379,1772,380,696,380,1771,406,671,379,696,405,670,380,695,408,669,380,695,407,1745,380,696,380,696,380,1771,380,696,380,695,381,696,379,1772,380,696,379,696,380,696,380,695,405,672,379,696,380,695,380,696,381,695,380,697,379,696,405,670,380,697,379,695,381,1772,404,1746,381,1772,379,696,380,696,380,1771,407,668,381,29380,5044,2130,380,1770,381,696,380,695,381,696,379,1772,380,696,405,671,379,697,379,696,379,1773,384,691,407,1744,381,1771,405,672,406,1745,404,1746,380,1772,380,1772,405,1745,381,696,380,1772,379,697,379,695,381,695,380,697,379,695,381,696,380,1772,379,696,380,695,380,1773,379,696,380,696,379,696,433,643,380,696,379,697,379,696,380,696,380,696,380,1771,380,1771,380,697,379,696,380,1772,379,1772,406,1745,406,670,380,695,381,695,380,696,380,697,379,696,380,696,379,696,380,695,381,1772,380,695,380,696,380,696,380,695,380,1772,380,696,380,695,380,697,379,696,380,695,380,697,405,670,405,671,380,696,379,696,380,696,380,696,379,697,379,696,380,697,403,672,380,695,380,696,380,696,380,1771,380,1771,407,1745,406,1745,381,696,379,696,380,697,379,1771,380,1772,380,1771,406,1746,406,1745,380,697,379,1772,379,697,379,696,380,696,379,697,379,697,379,695,381,696,406,669,380,697,379,696,380,696,379,697,379,695,381,696,379,1771,407,670,380,696,380,695,380,696,380,696,380,696,379,696,405,671,380,696,380,695,406,670,380,696,380,696,379,697,379,696,380,696,380,696,380,696,379,696,380,696,405,671,379,697,405,670,380,696,379,697,379,696,380,1772,379,1771,381,696,380,1770,381,1771,380,1773,379,1772,379,696,406}, //24C
{5043,2130,381,1772,379,696,380,695,380,696,380,1772,380,695,380,697,404,670,381,696,379,1772,406,670,380,1771,380,1772,406,669,406,1746,380,1772,379,1772,380,1771,380,1772,380,696,379,1772,380,696,380,696,379,697,379,697,379,696,379,697,384,1766,381,696,380,696,379,1772,380,697,404,670,380,696,380,1772,380,696,379,696,380,696,380,695,405,671,380,696,380,695,381,696,379,696,380,697,379,696,380,696,379,696,380,696,380,1772,379,1771,381,1772,379,696,406,670,380,1771,380,696,380,29381,5043,2130,380,1770,381,697,379,696,380,695,380,1771,381,696,379,696,380,697,379,696,380,1772,405,670,405,1747,379,1772,380,696,379,1772,380,1772,380,1771,380,1772,380,1772,379,696,380,1771,404,672,380,696,380,695,380,696,406,669,381,695,380,1772,380,696,379,696,380,1772,380,696,380,696,379,696,380,696,405,670,381,696,379,696,380,696,380,696,379,1772,380,1772,379,697,379,696,380,1771,380,1772,380,1771,380,696,380,696,380,696,379,697,379,697,379,696,379,696,407,670,379,696,380,1772,379,696,407,668,381,697,378,697,405,1746,380,695,380,697,379,695,381,696,380,695,380,696,380,696,380,696,407,669,379,696,380,696,380,696,379,697,379,695,381,697,379,696,380,696,379,696,380,697,379,696,379,697,379,696,393,684,378,1772,380,697,379,696,380,1770,381,1771,382,1770,406,1746,379,1773,379,696,380,1771,380,696,409,667,380,695,381,696,379,696,380,695,381,695,435,641,380,696,380,695,406,671,379,696,380,695,380,696,380,1772,380,695,380,697,379,696,380,696,406,670,379,697,379,696,380,696,380,695,406,670,406,670,380,695,380,696,380,696,380,696,379,697,379,695,381,696,380,696,379,696,380,696,380,696,380,696,380,695,380,696,380,696,380,1771,406,670,406,1745,380,1772,380,1772,379,1772,386,1765,380,696,380}, //25C
{5044,2129,408,1743,407,670,406,670,379,696,380,1772,406,669,407,669,407,669,383,692,408,1744,380,697,379,1771,406,1746,405,671,380,1771,380,1772,380,1771,380,1771,381,1772,405,669,407,1745,406,670,380,696,405,670,406,671,379,696,406,670,406,1746,405,670,406,670,405,1746,380,696,406,670,380,695,381,1771,406,670,380,695,406,670,380,696,405,671,406,669,380,696,380,696,380,695,380,696,380,696,380,695,406,670,407,669,380,1771,381,1771,380,1771,408,669,379,696,380,1771,380,696,406,29355,5043,2130,380,1772,380,696,406,669,407,670,379,1771,407,669,406,670,406,669,406,670,380,1772,380,695,380,1772,380,1772,380,696,406,1745,405,1746,407,1745,406,1745,380,1772,380,696,380,1771,380,695,381,695,380,696,380,696,380,696,380,694,381,1772,379,696,407,669,380,1772,379,696,406,670,407,669,380,695,381,695,380,696,380,696,380,696,379,697,379,1772,379,1772,406,670,380,695,380,1772,380,1771,381,1771,380,695,381,696,380,696,379,696,380,696,380,696,379,697,380,696,406,669,405,1746,380,696,406,670,379,697,379,695,381,1772,379,696,407,670,379,696,379,696,380,696,407,669,405,670,380,696,380,696,406,670,380,696,379,696,406,669,408,669,405,670,407,670,379,696,380,696,405,671,379,1772,379,696,406,671,379,696,380,1772,379,696,380,696,380,1772,406,1745,380,1771,380,1772,405,1746,406,670,380,1771,406,670,407,669,380,695,380,696,407,669,406,670,405,670,381,695,380,696,380,696,380,696,379,696,380,696,406,670,405,1746,404,672,405,670,380,697,405,669,381,695,381,696,379,697,404,671,380,696,405,670,380,696,380,697,378,697,380,695,380,696,380,695,380,697,404,672,379,696,380,696,380,696,406,669,380,696,380,696,379,697,379,695,407,1745,407,1745,380,1771,380,1772,406,1745,380,1771,381,1771,380,696,407}, //26C
{5043,2130,406,1746,379,696,380,697,405,670,380,1772,379,696,380,696,380,695,408,668,380,1772,405,671,405,1746,406,1745,381,696,405,1746,379,1772,380,1770,381,1772,407,1745,379,696,380,1772,380,695,386,691,404,670,381,696,380,696,379,697,379,1772,379,697,379,696,380,1772,380,695,406,670,407,669,380,1771,405,671,380,696,406,670,379,696,380,696,380,696,405,671,379,697,383,693,378,697,380,695,380,697,404,670,381,696,379,1771,381,1771,380,1772,406,670,379,696,406,1746,380,696,379,29381,5043,2130,406,1746,380,696,379,697,379,695,381,1772,379,695,381,697,379,696,379,697,379,1771,381,696,379,1773,379,1772,407,669,405,1746,379,1773,379,1772,380,1771,380,1772,379,697,405,1745,381,696,379,696,380,696,380,695,381,696,379,696,380,1772,405,671,379,697,379,1772,379,696,407,670,404,671,380,696,380,696,379,696,380,696,380,696,379,697,379,1771,380,1772,380,697,379,695,380,1771,381,1771,381,1772,379,696,405,671,405,670,380,697,379,696,379,697,379,697,405,671,379,696,379,1772,380,695,406,671,379,697,379,695,381,1771,380,696,380,696,380,696,379,696,406,671,405,669,380,697,379,697,405,670,380,696,379,697,379,696,380,696,406,670,379,697,379,696,405,671,379,697,379,697,383,693,379,1771,380,696,380,695,381,1772,379,696,380,696,380,1772,379,1772,379,1772,380,1771,406,1746,380,696,379,1772,380,697,381,694,379,697,379,696,380,697,405,670,379,696,380,697,379,696,406,670,379,697,379,696,380,695,406,670,406,1747,405,670,405,671,379,696,380,696,380,696,379,697,379,697,378,697,380,696,379,696,380,696,380,696,379,697,379,697,379,696,379,697,379,696,380,696,380,696,406,670,379,696,380,696,380,696,379,696,380,697,379,696,380,1771,407,668,381,696,380,696,379,697,379,697,379,696,379,1772,380}, //27C
{5044,2130,379,1773,379,696,380,695,381,696,405,1746,380,696,380,695,380,696,380,696,380,1771,380,697,379,1772,379,1771,407,670,380,1771,380,1772,380,1771,380,1772,380,1771,380,695,407,1745,380,696,380,696,380,696,379,697,379,696,380,696,380,1771,380,696,391,685,406,1745,380,696,405,670,405,672,379,1772,380,696,380,699,376,696,380,695,380,697,379,696,380,697,379,695,380,697,405,670,380,696,405,670,380,697,379,696,380,1771,380,1771,381,1771,380,696,380,696,380,1771,380,695,381,29380,5044,2129,381,1770,381,696,380,695,381,696,379,1772,406,670,380,696,379,696,380,696,380,1772,379,696,380,1772,379,1772,405,671,380,1772,379,1772,379,1772,406,1746,379,1771,381,696,380,1771,380,697,379,695,407,670,380,695,380,696,380,695,381,1771,380,695,407,670,405,1746,380,696,406,670,379,696,380,696,380,695,381,695,380,696,405,671,380,695,380,1772,380,1772,379,697,379,696,380,1771,408,1744,380,1771,380,696,380,695,391,686,380,695,407,669,380,695,381,696,380,696,379,696,380,1771,380,696,380,696,405,670,380,696,407,1744,381,696,407,669,379,696,380,696,380,696,379,696,380,696,380,696,380,696,379,696,380,696,380,696,405,671,379,696,380,696,404,672,379,696,380,697,379,696,380,1770,382,1771,379,697,379,697,379,1771,380,697,379,696,380,1772,379,1772,380,1771,380,1772,380,1771,380,696,380,1772,379,696,380,696,380,696,380,695,381,695,380,696,405,671,407,669,379,696,380,696,380,696,379,696,380,697,379,697,379,1771,380,696,380,696,406,669,380,697,379,695,381,696,379,696,406,671,379,696,380,695,380,697,379,697,405,670,380,695,380,697,379,696,407,669,380,696,404,671,380,696,380,696,379,696,380,696,380,696,379,697,433,642,380,1771,406,1746,380,696,380,696,379,696,380,696,380,697,378,1772,380}, //28C
{5043,2129,381,1772,380,696,380,696,379,697,382,1769,406,671,378,695,407,674,375,696,380,1773,406,669,379,1772,380,1772,379,697,379,1772,380,1771,380,1772,380,1772,379,1772,380,696,380,1772,379,696,380,696,379,697,379,696,380,696,379,697,379,1772,407,669,379,697,380,1771,407,669,379,697,380,696,379,1772,379,697,379,697,379,696,379,696,406,671,379,696,406,669,381,695,380,697,406,669,380,696,379,697,379,696,380,696,379,1772,406,1745,381,1772,379,696,380,697,383,1766,406,671,380,29381,5068,2105,379,1772,380,697,379,696,380,696,380,1770,381,696,379,696,380,697,379,696,380,1771,380,697,379,1772,379,1772,380,696,380,1771,380,1772,379,1773,379,1772,380,1771,380,696,380,1771,380,696,380,696,380,696,379,697,379,697,379,695,381,1771,380,696,380,696,379,1772,406,670,380,696,379,697,379,696,405,671,380,696,379,696,406,671,379,696,379,1772,407,1745,380,695,380,697,405,1745,407,1745,380,1771,406,670,380,696,406,670,379,697,379,697,379,696,380,695,407,669,380,696,380,1771,380,696,380,697,379,696,379,697,379,1772,380,696,379,696,406,671,379,696,405,671,380,696,406,669,405,671,379,697,379,697,379,696,406,670,406,670,379,696,406,670,380,695,401,676,405,671,379,696,380,697,378,696,380,1771,381,695,380,1771,381,696,379,696,380,1771,381,1772,405,1746,380,1771,380,1772,379,696,380,1772,380,695,408,669,405,671,379,695,380,697,405,670,405,671,380,696,406,670,379,696,380,695,381,696,379,697,405,671,379,1771,380,696,380,697,379,695,381,695,406,671,379,696,380,696,380,696,379,696,379,697,379,696,380,696,380,696,380,696,380,696,405,670,380,696,380,696,406,669,406,670,380,696,380,695,381,696,379,695,381,695,381,696,404,1747,380,696,380,1772,379,696,380,696,380,695,380,696,406,1745,406}, //29C
{5043,2130,380,1771,407,669,406,670,380,695,406,1746,434,642,380,695,407,669,380,696,406,1746,379,696,380,1772,379,1773,405,670,380,1772,379,1773,405,1745,380,1772,380,1771,380,696,380,1772,379,697,405,670,379,697,379,696,407,669,380,696,380,1772,379,695,407,670,380,1771,380,697,379,696,405,671,379,1771,381,696,405,670,380,696,380,696,379,696,380,697,379,697,379,695,406,670,407,669,407,669,380,695,380,696,407,669,405,1747,379,1772,405,1747,406,669,406,669,407,1745,406,670,380,29381,5043,2130,380,1771,406,670,380,696,380,695,381,1771,380,696,379,697,379,696,380,696,380,1771,380,696,406,1746,379,1772,405,671,406,1745,380,1772,406,1746,379,1771,381,1771,380,696,405,1746,380,696,379,697,406,670,380,695,380,696,380,696,406,1745,380,695,381,695,380,1772,380,696,405,670,381,695,406,671,379,697,378,696,380,696,380,697,379,695,381,1771,380,1771,405,671,380,696,406,1745,382,1769,381,1771,380,696,380,696,380,696,379,695,381,696,380,697,379,696,379,696,404,672,380,1770,381,696,380,696,380,696,405,670,380,1772,405,671,379,696,380,697,379,696,405,671,379,695,381,697,379,696,379,696,406,670,405,671,380,696,405,670,380,696,380,696,380,695,381,695,380,695,381,695,380,1771,408,669,406,1745,380,696,380,1772,405,671,406,668,381,1771,380,1771,381,1772,379,1771,381,1771,380,696,380,1772,379,696,380,696,380,696,405,671,379,696,380,696,380,695,407,668,407,671,379,696,380,695,380,697,379,696,406,669,381,1771,380,697,379,696,405,670,380,696,380,696,380,695,406,670,407,668,407,669,407,670,380,695,406,670,380,696,380,696,379,697,379,696,380,695,399,677,380,696,380,695,406,669,381,696,380,695,381,696,379,696,380,696,380,1771,405,1747,380,1771,405,672,379,696,380,695,381,696,379,1771,407}, //30C
{5043,2129,383,1769,380,700,375,696,380,696,405,1746,380,696,406,670,380,696,380,696,379,1772,380,696,380,1772,379,1772,406,669,380,1772,380,1772,379,1772,380,1771,407,1745,404,672,379,1771,381,696,379,696,380,696,380,697,379,696,380,696,379,1773,379,696,405,671,379,1772,405,671,407,669,379,696,380,1771,381,695,380,696,380,696,405,670,380,696,380,696,406,670,379,696,406,670,380,696,380,696,405,671,379,697,379,696,406,1745,380,1771,380,1772,406,670,380,696,405,1746,380,696,380,29380,5043,2130,380,1772,406,669,380,697,379,696,380,1772,379,697,407,668,380,696,406,670,379,1772,399,677,379,1772,380,1772,379,697,379,1772,379,1772,380,1772,405,1746,380,1772,380,696,405,1746,380,695,407,670,379,697,379,696,379,697,379,696,380,1772,379,697,379,696,380,1772,379,697,379,696,380,696,379,697,405,671,379,697,379,696,380,696,379,697,379,1771,381,1771,380,696,380,696,379,1772,380,1772,405,1746,380,696,380,695,380,697,379,696,380,696,379,697,379,696,380,697,379,696,379,1772,380,695,406,671,379,697,379,695,381,1772,380,696,379,696,379,697,405,670,380,696,380,696,380,695,380,696,380,697,404,671,406,670,405,671,379,696,380,695,380,697,379,696,380,696,379,696,405,671,380,697,379,1771,380,1772,405,671,379,1772,380,696,380,695,407,1745,406,1745,380,1772,380,1772,379,1772,380,696,380,1771,405,671,379,696,380,696,380,696,405,671,379,697,379,696,406,670,380,696,379,697,379,696,380,696,406,670,379,697,379,1772,379,697,379,696,380,696,380,696,379,696,380,696,407,670,406,668,406,670,380,696,380,696,379,697,379,696,380,696,379,697,406,669,380,696,380,696,379,696,380,697,379,697,378,697,379,697,405,670,380,695,380,697,379,1773,379,696,407,668,381,1771,380,696,379,696,406,671,379,1772,379}, //31C
{5070,2104,379,1772,380,696,407,669,379,697,379,1772,379,696,380,696,380,696,380,695,380,1771,381,696,380,1771,380,1771,380,696,405,1747,391,1760,380,1771,381,1771,407,1745,380,695,380,1772,380,696,405,671,379,696,380,696,379,697,379,696,380,1772,380,696,379,696,380,1772,379,697,379,696,380,695,406,1746,380,696,380,696,380,696,379,697,379,696,380,696,391,685,379,696,383,693,380,696,380,696,379,696,382,694,380,696,379,1772,380,1771,380,1772,380,696,380,695,380,1771,381,696,380,29380,5043,2131,379,1772,380,696,380,696,398,677,380,1772,405,671,379,696,380,696,380,696,405,1746,406,669,380,1772,380,1772,379,696,380,1772,379,1772,380,1772,379,1772,380,1772,406,670,405,1746,380,695,380,696,405,671,380,696,380,696,379,696,380,1771,380,697,379,696,406,1746,380,695,380,696,380,696,380,695,406,670,380,697,379,695,406,671,405,671,379,1772,406,1745,380,695,380,697,379,1773,379,1771,381,1771,380,696,380,696,379,696,380,697,379,696,380,696,379,697,379,696,405,670,381,1771,380,696,379,696,406,670,380,696,405,1746,406,671,379,696,380,696,379,697,379,696,380,696,380,695,380,696,406,670,380,695,381,696,404,671,381,695,380,695,381,696,379,696,380,696,379,696,380,697,379,1771,381,1771,380,1772,379,696,380,1771,381,695,381,695,380,1772,380,1771,380,1772,380,1772,379,1772,379,697,379,1771,381,696,379,696,380,696,380,696,379,696,406,671,379,696,406,670,380,695,380,696,380,696,380,696,404,671,380,695,381,1771,380,696,380,696,379,697,380,696,379,696,380,696,397,678,380,697,379,696,380,696,379,697,403,673,379,695,380,697,379,697,406,669,380,696,380,696,379,697,379,696,380,696,405,671,379,697,379,697,379,696,379,697,379,1772,380,1771,380,696,380,1772,379,696,380,696,407,668,380,1771,381} //32C

View file

@ -31,11 +31,11 @@ object id:
3 s_light_toggle
4 s_ac_toggle
5 s_pm_toggle
6 s_time (txt)
7 s_date (txt)
8 s_outside_temp (txt)
6 s_time (txt) -> date
7 s_date (txt) -> time
8 s_outside_temp (txt) -> temp_outside
9 idle_timer (timer) // wait one min for inactivity then dim screen
10 s_weather_icon (pic)
10 weather_icon (pic)
picture id:

View file

@ -1,103 +1,108 @@
#include <ir_codes.hpp>
const uint16_t ir_code_cool[4][16][91] = {
const uint16_t ir_code_cool[4][17][407] = {
// Fan Speed Auto
{
{8976, 4498, 562, 546, 589, 547, 588, 1649, 588, 548, 587, 1649, 588, 547, 589, 548, 587, 564, 589, 547, 588, 1649, 588, 548, 587, 547, 588, 548, 588, 548, 588, 547, 587, 566, 587, 548, 587, 548, 588, 548, 587, 548, 588, 548, 587, 549, 586, 548, 587, 565, 588, 549, 586, 548, 588, 548, 588, 548, 560, 577, 584, 549, 586, 551, 585, 565, 588, 549, 587, 548, 560, 576, 560, 574, 587, 549, 587, 550, 586, 548, 588, 570, 560, 576, 586, 549, 560, 575, 560, 1665, 560}, // 15C
{8976, 4498, 560, 548, 587, 549, 587, 1650, 587, 549, 587, 1649, 586, 550, 587, 548, 587, 565, 587, 549, 586, 1652, 586, 549, 586, 549, 587, 548, 587, 549, 586, 549, 587, 1667, 587, 548, 587, 548, 587, 549, 588, 547, 587, 549, 587, 549, 587, 548, 587, 565, 587, 549, 586, 549, 587, 549, 586, 548, 587, 549, 587, 549, 587, 547, 589, 564, 587, 548, 588, 548, 587, 548, 587, 549, 587, 550, 585, 549, 587, 549, 586, 570, 587, 548, 587, 550, 586, 549, 587, 536, 587}, // 16C
{8976, 4499, 531, 577, 558, 577, 559, 1678, 559, 577, 558, 1679, 559, 577, 558, 577, 558, 595, 558, 577, 558, 1679, 558, 577, 559, 576, 559, 578, 558, 576, 559, 1679, 558, 594, 558, 578, 558, 577, 559, 576, 558, 578, 558, 577, 558, 577, 558, 578, 558, 594, 559, 577, 558, 577, 558, 578, 557, 578, 558, 577, 559, 577, 557, 578, 559, 593, 559, 577, 558, 577, 559, 576, 559, 577, 558, 578, 557, 578, 559, 576, 559, 599, 558, 1678, 559, 1679, 559, 1678, 558, 1666, 560}, // 17C
{8977, 4498, 561, 549, 587, 547, 588, 1649, 588, 547, 589, 1648, 589, 547, 588, 548, 587, 565, 589, 547, 587, 1650, 587, 547, 589, 548, 588, 546, 589, 547, 588, 1649, 588, 1667, 587, 548, 588, 547, 588, 548, 588, 547, 588, 548, 588, 548, 587, 548, 587, 565, 587, 548, 588, 547, 588, 549, 587, 548, 587, 548, 588, 548, 587, 548, 588, 564, 588, 547, 588, 549, 586, 550, 587, 547, 588, 548, 587, 548, 588, 548, 587, 570, 587, 1649, 588, 1650, 588, 1649, 588, 536, 587}, // 18C
{8998, 4502, 534, 574, 587, 549, 585, 1652, 586, 550, 560, 1677, 560, 575, 586, 550, 561, 591, 587, 548, 586, 1651, 587, 549, 586, 549, 585, 550, 561, 1676, 563, 573, 560, 592, 587, 549, 561, 574, 586, 550, 586, 550, 559, 575, 561, 575, 561, 575, 560, 592, 560, 576, 560, 575, 560, 576, 560, 574, 561, 575, 560, 576, 560, 575, 560, 593, 559, 576, 560, 575, 560, 577, 558, 576, 560, 575, 562, 574, 560, 576, 560, 597, 560, 1676, 562, 1676, 559, 576, 561, 1665, 560}, // 19C
{8978, 4503, 562, 548, 586, 549, 588, 1649, 587, 547, 589, 1649, 588, 547, 588, 548, 587, 565, 590, 546, 587, 1649, 588, 548, 588, 548, 587, 548, 587, 1649, 588, 548, 588, 1666, 588, 547, 588, 547, 588, 549, 587, 548, 588, 547, 588, 547, 589, 547, 587, 565, 588, 547, 588, 549, 587, 548, 587, 549, 587, 547, 588, 548, 588, 547, 588, 564, 589, 547, 587, 549, 587, 548, 588, 548, 588, 547, 588, 547, 588, 547, 588, 570, 588, 1649, 588, 1649, 587, 548, 588, 535, 589}, // 20C
{8977, 4503, 560, 549, 587, 548, 560, 1677, 587, 548, 587, 1650, 587, 549, 586, 549, 586, 567, 587, 548, 587, 1650, 588, 547, 587, 549, 587, 548, 587, 1650, 587, 1650, 588, 565, 588, 547, 587, 549, 587, 548, 587, 548, 587, 548, 588, 548, 587, 549, 587, 565, 586, 549, 587, 548, 588, 548, 587, 549, 586, 549, 587, 548, 587, 548, 588, 565, 588, 547, 588, 548, 587, 548, 588, 548, 587, 548, 587, 548, 588, 548, 587, 570, 588, 1649, 588, 547, 588, 1650, 588, 1635, 589}, // 21C
{8996, 4503, 506, 603, 533, 603, 533, 1703, 534, 602, 532, 1705, 533, 602, 533, 602, 533, 619, 533, 603, 533, 1704, 533, 602, 533, 603, 533, 603, 531, 1705, 533, 1704, 532, 1722, 533, 602, 533, 603, 533, 602, 534, 602, 533, 602, 533, 602, 533, 603, 533, 619, 533, 602, 533, 603, 533, 603, 532, 603, 533, 602, 533, 602, 534, 602, 533, 620, 532, 603, 533, 602, 533, 603, 533, 602, 533, 602, 533, 603, 533, 602, 533, 624, 533, 1705, 533, 602, 533, 1704, 533, 590, 533}, // 22C
{8976, 4504, 560, 549, 587, 548, 587, 1650, 587, 548, 587, 1650, 587, 549, 587, 548, 587, 566, 587, 548, 587, 1649, 589, 548, 587, 548, 587, 1650, 587, 549, 587, 548, 588, 564, 588, 548, 587, 548, 587, 549, 587, 548, 587, 548, 587, 548, 588, 548, 588, 565, 587, 548, 588, 548, 587, 547, 588, 548, 587, 549, 586, 549, 587, 548, 588, 565, 587, 548, 587, 548, 588, 548, 586, 549, 587, 549, 587, 548, 588, 548, 587, 570, 587, 1650, 588, 547, 587, 549, 587, 1637, 588}, // 23C
{8976, 4504, 560, 549, 587, 549, 586, 1651, 586, 549, 586, 1651, 587, 548, 587, 548, 588, 565, 587, 548, 587, 1650, 587, 549, 586, 549, 587, 1650, 587, 549, 586, 549, 587, 1667, 587, 548, 587, 549, 587, 549, 586, 549, 586, 549, 587, 548, 588, 548, 587, 565, 587, 548, 587, 549, 587, 548, 587, 549, 587, 548, 587, 549, 587, 548, 586, 567, 586, 549, 586, 549, 586, 549, 587, 548, 588, 549, 586, 549, 586, 550, 587, 570, 586, 1650, 587, 549, 587, 548, 587, 537, 586}, // 24C
{8977, 4503, 531, 578, 534, 602, 556, 1680, 534, 602, 533, 1704, 556, 579, 557, 579, 533, 619, 533, 603, 532, 1704, 558, 578, 533, 603, 532, 1705, 555, 580, 532, 1705, 557, 595, 557, 579, 556, 579, 557, 579, 557, 578, 557, 579, 557, 578, 557, 578, 557, 596, 557, 578, 557, 579, 557, 577, 559, 577, 559, 576, 558, 578, 557, 578, 558, 594, 559, 577, 558, 578, 558, 577, 558, 577, 559, 577, 559, 576, 560, 575, 560, 598, 558, 578, 558, 1678, 559, 1679, 559, 1666, 558}, // 25C
{8976, 4498, 507, 602, 534, 602, 533, 1703, 534, 602, 533, 1704, 533, 602, 557, 579, 533, 619, 533, 602, 557, 1680, 534, 602, 533, 602, 534, 1703, 534, 602, 556, 1680, 534, 1720, 533, 602, 534, 602, 534, 602, 533, 602, 556, 580, 533, 601, 535, 601, 534, 619, 533, 602, 534, 602, 534, 601, 534, 602, 533, 602, 558, 577, 534, 602, 533, 619, 534, 602, 557, 578, 557, 578, 534, 602, 533, 603, 532, 603, 556, 579, 533, 624, 557, 579, 533, 1704, 533, 1704, 533, 590, 533}, // 26C
{8977, 4503, 533, 576, 560, 575, 559, 1679, 559, 577, 559, 1677, 559, 576, 559, 580, 556, 593, 559, 577, 559, 1677, 561, 575, 559, 576, 560, 1678, 559, 1678, 560, 575, 559, 593, 559, 577, 559, 576, 560, 575, 560, 576, 559, 576, 560, 576, 560, 576, 559, 592, 560, 576, 560, 575, 560, 576, 559, 576, 560, 576, 559, 577, 558, 576, 560, 593, 559, 576, 560, 575, 561, 575, 560, 575, 559, 577, 559, 576, 560, 576, 559, 598, 560, 576, 560, 1677, 558, 577, 559, 1667, 559}, // 27C
{8996, 4504, 483, 626, 533, 602, 510, 1727, 533, 602, 533, 1704, 533, 602, 534, 602, 510, 642, 533, 603, 533, 1704, 532, 602, 534, 602, 533, 1704, 533, 1704, 533, 603, 512, 1742, 531, 604, 532, 603, 533, 603, 531, 604, 532, 603, 532, 603, 533, 603, 532, 620, 532, 604, 531, 604, 531, 604, 533, 602, 511, 626, 532, 603, 509, 626, 510, 643, 531, 604, 532, 603, 533, 603, 532, 603, 531, 605, 532, 602, 533, 602, 533, 625, 531, 605, 532, 1704, 533, 603, 533, 590, 534}, // 28C
{8977, 4497, 508, 601, 534, 601, 535, 1702, 535, 601, 534, 1703, 534, 601, 535, 601, 534, 618, 534, 601, 535, 1702, 534, 602, 535, 600, 534, 1703, 534, 1703, 534, 1704, 534, 618, 534, 601, 534, 602, 534, 601, 534, 601, 535, 600, 535, 601, 535, 601, 534, 618, 534, 602, 534, 600, 535, 601, 535, 600, 535, 601, 534, 602, 533, 602, 534, 619, 534, 600, 535, 601, 534, 602, 533, 602, 535, 600, 535, 601, 534, 601, 535, 623, 533, 602, 534, 601, 534, 1703, 535, 1690, 534}, // 29C
{8978, 4503, 533, 575, 561, 575, 559, 1678, 559, 577, 559, 1678, 559, 577, 558, 576, 560, 593, 559, 576, 560, 1677, 560, 575, 559, 577, 560, 1677, 560, 1677, 559, 1679, 558, 1696, 559, 576, 559, 576, 560, 576, 559, 576, 559, 576, 560, 576, 560, 575, 559, 594, 559, 576, 560, 575, 560, 576, 560, 575, 560, 576, 559, 576, 560, 575, 560, 594, 558, 576, 560, 575, 559, 577, 560, 575, 560, 576, 559, 577, 561, 574, 559, 599, 559, 576, 559, 579, 557, 1677, 560, 564, 559} // 30C
{5043,2131,404,1747,379,697,379,697,379,695,407,1746,379,698,378,697,379,697,379,696,406,1745,380,697,380,1772,379,1772,379,697,379,1773,379,1772,379,1773,379,1772,406,1746,379,697,379,1772,380,695,381,696,405,670,406,671,379,696,380,697,379,1772,405,671,379,696,380,1771,407,670,379,696,380,696,380,1772,405,670,405,672,379,697,379,695,380,697,379,697,379,696,380,696,379,697,380,696,379,696,380,696,380,696,380,696,380,1772,379,1772,380,1772,379,696,380,697,379,1772,379,697,379,29383,5043,2130,380,1772,380,696,405,671,379,697,405,1746,380,696,380,696,405,670,406,670,380,1772,380,696,405,1746,405,1747,405,671,379,1773,405,1746,379,1773,379,1773,379,1773,379,695,380,1772,407,669,379,697,379,696,407,670,379,696,380,696,379,1773,405,671,379,695,380,1773,379,697,405,670,380,696,380,696,405,671,379,697,379,697,379,696,380,696,379,1772,380,1772,379,696,405,671,380,1772,406,1746,380,1772,379,696,380,696,379,697,379,697,379,696,380,696,380,695,381,695,380,697,405,1746,380,696,379,697,406,670,379,697,378,1773,379,697,405,670,380,696,380,696,380,696,380,696,379,696,380,696,380,696,380,695,380,696,380,696,380,697,379,696,405,670,406,671,382,693,405,671,380,695,408,1748,401,1747,379,1773,379,696,406,670,380,695,381,697,378,1773,405,1746,379,1772,380,1772,380,696,379,696,380,697,379,697,379,696,380,697,405,670,379,696,380,696,380,697,379,696,379,697,405,671,379,696,380,696,381,695,379,697,379,1772,380,696,379,696,380,697,379,696,380,696,380,696,405,670,380,697,379,697,379,696,380,696,380,695,380,696,380,697,404,671,406,671,378,697,379,696,380,696,380,696,380,696,379,697,406,669,407,669,380,696,380,696,404,1748,379,1772,380,697,378,1773,379,1772,380,697,378,696,380,696,380}, //16C
{5043,2130,405,1747,380,696,380,696,406,670,384,1767,380,696,380,695,380,702,374,697,405,1746,407,669,405,1747,406,1745,380,696,379,1773,379,1772,380,1772,379,1772,380,1772,379,697,379,1772,380,696,406,670,405,671,406,670,379,696,406,671,379,1771,406,670,380,697,406,1745,405,671,379,697,379,696,405,1747,380,696,380,696,379,696,406,670,380,696,380,696,379,697,380,695,380,696,380,696,379,697,379,697,379,696,380,696,405,1746,406,1746,380,1772,405,671,379,696,382,1770,380,696,379,29384,5042,2130,380,1772,407,670,406,669,380,696,379,1773,379,697,406,669,380,695,381,695,385,1767,406,670,380,1777,402,1744,407,669,380,1772,379,1772,401,1750,381,1771,380,1772,406,670,380,1771,380,697,379,696,406,670,379,697,379,696,380,696,405,1747,406,670,379,696,406,1746,380,696,379,697,379,696,380,696,380,696,380,695,381,695,407,669,380,696,380,1771,380,1772,380,696,380,696,379,1772,380,1772,380,1772,379,697,379,697,404,672,378,696,380,697,405,670,380,696,380,696,379,697,380,1771,380,697,381,694,380,696,380,695,380,1775,377,696,379,696,380,696,380,696,380,696,380,696,406,669,380,697,379,696,408,668,404,672,379,697,406,669,380,695,381,696,380,695,405,672,379,696,380,696,380,696,406,669,381,696,379,1772,380,696,379,697,405,670,406,1746,380,1771,406,1746,380,1771,380,696,380,697,379,696,380,696,379,697,380,695,380,697,379,696,406,670,379,697,379,696,380,696,406,670,380,696,379,697,379,697,379,697,379,1771,380,696,380,696,380,697,379,696,380,696,379,697,379,696,380,696,405,671,379,696,380,696,407,670,405,670,407,669,379,697,405,670,380,696,380,696,405,670,381,696,379,696,380,696,380,696,405,670,406,670,380,696,380,1771,381,696,379,1771,381,1772,409,1743,379,696,380,696,406,670,379}, //17C
{5069,2104,407,1745,380,696,380,696,380,695,380,1772,380,696,380,696,379,696,380,696,380,1772,380,696,379,1772,380,1771,381,696,405,1746,380,1771,381,1771,380,1772,380,1771,380,696,380,1772,380,695,406,670,408,668,380,696,380,695,380,697,406,1745,380,696,380,696,379,1772,407,669,405,671,380,695,406,1746,380,696,405,671,380,695,380,697,380,695,380,695,381,696,379,696,380,696,380,696,406,670,380,696,388,687,380,696,380,1771,381,1771,380,1772,380,696,379,697,405,1746,380,696,380,29361,5064,2130,406,1746,380,696,379,697,405,670,380,1772,380,695,380,696,380,696,380,696,380,1771,380,696,380,1771,381,1771,380,696,406,1745,381,1771,380,1771,381,1771,380,1772,380,696,406,1745,407,669,381,694,381,696,380,695,406,670,380,696,405,1746,380,696,380,696,407,1745,407,669,405,671,379,696,380,695,381,696,380,695,380,696,380,696,406,670,406,1745,380,1772,405,671,379,696,380,1771,381,1772,380,1771,380,696,406,670,384,691,381,695,380,696,380,696,380,695,381,696,379,696,380,1772,406,669,407,669,380,696,380,696,380,1772,406,669,407,669,407,669,380,696,405,671,405,670,380,696,380,696,380,695,408,668,406,669,381,695,380,697,379,696,380,696,407,669,405,671,380,695,408,668,405,1746,381,695,380,695,381,1772,380,696,406,669,380,696,380,1771,406,1746,380,1771,381,1771,406,670,380,696,406,670,405,671,380,695,381,695,407,669,379,697,405,670,380,696,406,670,380,696,407,668,380,696,407,669,405,671,405,670,381,1771,407,673,376,696,380,695,381,695,406,670,380,696,407,669,405,670,381,695,406,670,405,671,406,670,407,668,407,669,380,696,406,670,405,671,380,695,406,670,380,696,405,670,381,696,406,668,407,670,380,695,381,695,380,1772,380,1771,408,1744,407,1745,380,1771,380,696,380,696,380,695,407}, //18C
{5069,2105,380,1771,380,696,406,670,379,697,404,1747,380,696,407,669,380,696,406,670,379,1772,380,696,406,1745,380,1772,406,670,406,1745,406,1746,406,1746,379,1773,379,1772,380,696,379,1773,404,671,380,696,386,690,405,670,405,672,404,671,379,1773,379,696,407,670,379,1771,406,671,406,669,406,670,380,1773,378,696,380,696,380,696,379,697,380,696,379,696,405,670,406,671,379,697,379,696,380,696,380,696,406,670,379,696,380,1772,380,1772,380,1771,380,696,380,695,380,1773,379,697,379,29360,5065,2130,380,1773,379,697,379,697,379,696,379,1771,381,696,380,696,405,672,378,697,379,1772,379,697,379,1772,380,1772,405,672,378,1772,380,1772,380,1771,380,1772,380,1772,379,696,407,1745,380,696,380,697,404,670,380,696,380,697,379,696,379,1773,378,697,380,697,378,1772,407,670,379,697,379,697,378,697,379,697,404,672,381,694,380,696,405,670,380,1775,377,1771,380,697,379,696,380,1772,405,1746,380,1772,380,696,379,697,404,672,379,697,405,671,379,696,379,697,379,696,380,697,379,1772,379,697,379,696,380,697,406,668,380,1772,380,697,379,696,380,696,379,697,379,696,380,697,378,697,380,696,379,696,380,697,379,696,379,697,380,696,379,698,378,697,378,697,380,695,380,696,380,697,379,696,379,1773,379,697,379,1772,379,697,379,697,379,697,379,1772,379,1773,379,1773,379,1772,379,697,379,697,404,672,405,670,379,697,379,697,379,697,378,697,406,670,379,696,380,696,380,696,380,696,379,696,380,696,406,670,379,697,379,1773,379,697,404,672,378,697,379,697,379,697,379,696,380,695,380,696,380,697,379,697,379,695,380,696,380,696,380,697,380,695,379,696,380,697,379,697,379,696,380,696,379,697,379,697,379,696,380,696,407,669,379,697,379,1772,380,696,379,696,383,693,380,695,381,1772,380,695,406,670,380}, //19C
{5087,2108,380,1772,406,670,379,696,380,696,380,1772,379,697,379,697,379,696,407,669,379,1772,380,697,379,1773,378,1772,380,696,380,1771,380,1772,380,1772,379,1772,407,1745,380,695,380,1773,379,696,380,696,379,697,379,696,406,671,379,696,407,1745,405,671,379,697,379,1772,379,697,379,696,380,697,379,1772,379,697,379,697,379,697,378,697,379,697,379,696,379,696,381,696,379,697,406,669,380,697,379,697,382,693,380,695,380,1773,378,1773,379,1772,380,696,406,671,378,1772,380,697,379,29360,5065,2130,380,1773,379,696,405,670,380,697,379,1772,380,696,380,695,380,697,379,696,406,1747,378,697,379,1773,378,1773,379,697,379,1772,405,1747,379,1772,380,1772,379,1773,379,696,380,1772,379,697,378,697,406,670,379,697,379,696,380,696,380,1771,380,696,380,696,380,1772,380,696,379,697,379,696,380,696,380,696,379,697,379,697,379,697,379,696,379,1773,379,1773,404,671,379,697,379,1772,405,1747,380,1771,380,696,380,697,384,692,378,697,379,697,379,697,379,696,379,697,379,697,379,1772,379,697,379,697,379,696,380,696,380,1772,379,696,380,696,380,697,378,697,379,697,379,697,379,697,378,697,405,671,379,698,378,697,379,696,379,696,380,697,379,697,379,696,379,697,379,697,379,697,379,1772,379,1773,379,697,404,1747,379,697,379,696,379,698,404,1747,379,1773,378,1772,380,1773,379,697,433,643,379,696,379,697,379,696,380,696,379,696,380,697,379,697,379,696,379,697,405,671,379,696,380,697,383,693,404,671,379,697,379,1777,375,697,378,697,405,671,379,697,379,697,403,672,379,696,380,697,379,696,379,697,379,697,379,697,379,697,379,696,406,670,379,697,379,696,380,697,378,698,379,696,379,697,379,697,379,697,378,697,379,697,379,696,380,1772,379,1773,379,697,378,697,379,697,379,1772,380,697,379,696,380}, //20C
{5043,2130,407,1745,407,669,379,696,381,695,405,1747,380,695,406,670,406,670,380,696,406,1745,380,697,405,1745,406,1746,406,670,406,1746,405,1746,406,1745,407,1745,407,1745,390,686,380,1772,405,670,406,670,380,695,380,696,380,697,405,670,406,1745,408,668,405,670,407,1745,393,683,406,670,380,696,406,1745,380,696,406,670,405,670,381,696,379,696,380,696,406,669,408,669,406,670,379,696,380,697,379,696,406,670,405,670,384,1768,406,1746,380,1770,407,670,405,670,406,1746,380,696,405,29336,5064,2130,380,1772,406,670,405,671,395,680,380,1772,406,670,380,696,380,696,379,696,380,1772,405,671,406,1746,379,1772,379,696,380,1771,381,1772,405,1746,380,1771,380,1772,380,697,405,1745,380,696,380,696,380,696,380,696,407,669,379,696,380,1771,381,695,380,696,380,1771,380,696,380,697,379,696,380,696,405,671,379,697,379,696,380,696,406,669,380,1772,406,1746,382,694,405,671,379,1772,380,1771,381,1771,380,697,405,669,381,695,405,672,405,671,379,696,405,671,405,670,380,696,380,1771,381,696,379,695,381,696,380,695,380,1773,405,670,380,696,406,669,407,670,379,696,380,696,380,696,380,696,379,696,380,696,380,697,405,670,406,669,406,671,379,695,381,696,380,696,379,697,379,696,380,696,380,695,380,1771,381,1771,406,671,379,696,380,696,380,1771,380,1772,380,1771,380,1772,380,696,405,670,381,696,405,670,380,697,406,669,380,695,381,695,380,697,379,696,380,696,379,697,379,697,406,669,407,668,381,696,405,670,380,1772,380,696,380,696,379,697,405,670,380,696,379,697,379,696,380,696,380,696,380,696,404,672,379,697,406,669,380,695,407,670,379,696,406,670,380,695,381,696,384,692,404,671,407,669,380,695,406,671,405,670,380,696,380,1771,380,696,407,1745,380,696,379,697,405,1746,380,696,407,669,405}, //21C
{5042,2131,379,1773,378,699,377,697,402,674,379,1773,381,694,379,698,378,697,379,697,379,1772,406,670,379,1772,379,1773,379,697,379,1772,379,1773,378,1774,378,1774,378,1772,380,697,378,1773,379,698,378,697,379,697,379,697,378,698,405,670,379,1772,379,698,378,697,379,1773,378,698,378,697,379,697,379,1773,405,670,379,697,379,697,379,697,379,697,378,697,379,697,379,697,405,670,380,697,378,697,379,696,380,697,378,698,378,1774,378,1772,405,1748,378,697,379,697,378,1773,380,697,378,29362,5090,2103,381,1771,380,696,380,696,384,691,381,1771,380,696,405,671,380,696,379,696,380,1772,384,691,381,1771,406,1745,407,669,406,1746,407,1744,407,1745,406,1746,406,1745,406,669,407,1745,407,670,404,671,407,669,405,670,381,695,406,670,406,1746,405,670,380,696,380,1772,380,695,407,669,406,670,406,670,405,671,406,669,406,670,384,692,380,695,381,1770,406,1746,380,696,380,697,406,1744,407,1745,406,1746,406,670,379,696,398,678,379,698,377,698,378,697,379,697,378,698,378,698,377,1774,377,699,351,726,349,726,350,726,349,1802,349,728,348,731,344,728,348,728,347,729,371,704,372,705,372,702,373,704,373,702,373,703,373,702,374,702,373,703,373,703,374,701,374,703,373,702,373,703,373,1778,374,702,373,1778,373,1779,373,703,372,704,371,706,369,1781,371,1780,347,1805,347,1804,347,730,346,729,347,729,347,731,345,728,348,728,347,729,347,729,347,728,373,703,373,703,373,703,374,701,374,702,374,702,375,701,375,700,376,1776,376,700,376,699,377,699,377,699,377,698,378,698,377,698,384,693,377,698,378,697,405,671,389,692,374,697,404,672,404,671,404,672,404,672,403,673,403,672,378,698,404,672,403,673,403,673,377,698,403,673,403,673,403,1748,403,1749,402,1749,377,699,402,674,377,1775,401,675,376,699,376}, //22C
{5043,2131,379,1772,380,697,379,697,378,697,379,1772,380,697,378,697,379,697,379,697,379,1772,379,697,379,1772,380,1772,379,698,378,1772,406,1746,379,1772,380,1772,379,1772,380,697,379,1772,379,698,378,698,378,697,379,697,379,696,379,697,379,1772,380,696,380,697,382,1768,380,697,379,696,379,697,379,1772,380,696,406,670,380,695,380,697,379,696,380,696,379,696,380,697,379,696,379,696,381,696,379,697,379,697,379,696,379,1772,380,1773,379,1773,404,671,379,697,379,1773,378,696,380,29382,5043,2131,404,1748,379,696,380,697,379,696,405,1746,380,696,379,697,379,697,379,697,379,1772,379,697,379,1772,380,1772,379,697,379,1772,380,1772,379,1773,379,1772,379,1772,380,696,380,1772,379,697,379,696,380,697,379,697,379,695,380,697,379,1771,381,696,406,669,380,1772,379,698,378,697,379,697,379,697,379,696,379,697,379,697,379,696,380,695,380,1773,379,1771,381,695,381,696,379,1772,380,1772,379,1773,378,697,380,697,378,697,379,696,380,697,379,696,379,697,379,697,379,697,379,1772,379,697,379,697,379,697,379,697,378,1773,379,696,379,697,406,671,378,697,379,697,379,696,380,697,378,697,379,697,379,697,379,696,379,697,379,696,380,696,380,697,378,698,378,697,379,696,380,696,380,696,380,1772,379,1773,379,1773,404,671,379,696,380,697,378,1773,379,1772,380,1772,379,1772,380,695,381,696,405,671,379,697,379,696,380,696,380,696,379,697,379,696,379,697,379,698,378,697,378,697,380,697,378,697,379,697,379,697,379,1772,379,698,378,697,379,697,378,698,379,696,379,698,378,697,379,696,406,671,379,697,378,697,379,697,379,697,379,696,379,696,380,697,379,697,378,697,379,696,380,697,379,696,380,696,380,696,379,697,380,696,379,697,379,1771,380,696,380,697,379,1772,379,697,379,1772,407,670,379,696,405}, //23C
{5034,2137,375,1778,398,679,397,677,373,703,373,1780,373,703,371,703,372,706,397,705,345,1779,373,705,369,1807,344,1781,399,678,370,1781,397,1754,371,1781,380,1770,372,1808,344,706,370,1780,371,707,368,733,343,733,371,678,371,703,372,732,370,1781,370,705,346,731,369,1759,368,731,370,706,344,732,344,1808,343,732,344,707,394,707,345,731,370,680,396,705,344,732,343,706,370,733,370,679,370,706,370,733,343,731,345,731,371,1781,344,1808,342,1783,394,709,342,733,343,1808,344,732,344,29393,5032,2140,397,1781,343,709,368,732,342,734,341,1810,343,733,341,735,343,733,367,710,340,1839,311,735,344,1781,369,1810,342,733,370,1783,365,1785,343,1811,341,1809,336,1789,368,735,341,1809,342,734,341,737,367,708,368,708,341,735,342,732,369,1784,341,734,340,736,342,1810,339,737,368,706,343,734,342,732,342,735,343,733,342,734,340,735,342,735,342,1808,343,1808,370,710,341,704,372,1807,342,1810,371,1780,345,704,371,732,343,733,344,731,345,731,342,734,371,677,372,731,343,733,370,1754,398,679,371,703,372,704,372,704,373,1778,372,703,374,703,399,676,373,704,397,678,372,703,403,673,374,702,400,675,399,677,400,676,400,675,399,677,401,675,427,649,374,701,401,675,401,674,402,675,402,1750,401,1750,401,1751,404,1747,403,674,401,673,376,700,402,1750,401,1750,375,1777,375,1777,374,701,375,701,403,673,402,673,402,674,404,672,376,700,403,673,403,672,403,673,405,671,403,672,406,670,377,699,376,699,404,672,377,699,433,1719,404,672,403,673,375,700,404,672,404,672,406,670,402,673,405,671,405,671,403,672,433,643,430,647,402,673,406,669,406,671,404,671,406,670,406,670,404,671,379,698,433,642,403,673,402,674,377,698,378,698,404,672,403,1748,406,1746,403,673,406,1745,377,700,377,1774,406,670,377,698,405}, //24C
{5069,2103,406,1746,406,669,407,669,407,669,380,1772,407,668,381,696,380,695,380,696,380,1771,406,670,381,1771,406,1745,380,696,385,1767,380,1771,381,1771,406,1745,381,1771,407,669,406,1745,380,696,406,670,380,696,406,670,406,670,381,694,407,1745,400,676,405,671,405,1746,380,696,380,695,407,670,379,1772,407,668,381,696,379,696,407,670,406,669,380,696,380,696,406,672,402,671,384,692,407,669,382,694,405,670,406,669,407,1745,406,1746,380,1772,405,670,406,670,380,1772,380,695,380,29383,5043,2130,407,1744,406,671,379,696,407,668,381,1772,380,696,379,697,406,669,380,696,380,1772,405,670,406,1746,405,1747,379,697,404,1746,406,1746,380,1772,380,1771,380,1772,380,696,380,1771,406,671,405,671,379,695,380,697,379,697,405,670,380,1772,379,696,380,697,404,1747,380,695,380,696,406,670,380,696,405,671,407,669,405,670,380,695,380,696,380,1772,405,1747,405,671,406,669,380,1772,406,1750,375,1772,406,670,405,670,380,696,406,670,380,696,380,695,380,697,379,696,380,696,406,1746,405,670,407,670,379,696,406,669,380,1772,380,696,406,671,404,670,380,696,380,696,380,696,386,690,379,696,407,670,405,670,380,695,406,670,380,696,396,680,380,696,380,696,405,671,405,670,380,696,380,696,405,670,380,696,380,696,380,1771,380,696,380,696,405,1747,379,1772,380,1771,407,1745,380,696,380,696,380,696,407,668,407,669,380,696,406,670,405,670,380,696,380,696,380,696,406,673,402,670,380,696,405,671,406,670,380,695,380,1772,406,670,405,671,380,695,380,696,380,696,405,671,379,697,407,668,380,696,393,683,380,695,380,697,379,696,380,696,380,696,379,697,379,696,380,696,380,695,380,697,379,696,380,696,380,696,379,697,379,696,380,696,380,1772,380,695,406,1746,380,1771,380,697,379,1772,380,696,379,697,379}, //2C5C
{5043,2131,380,1772,379,696,380,696,379,698,378,1772,380,696,380,696,379,697,379,696,380,1772,379,697,379,1773,379,1772,380,696,379,1772,388,1763,381,1771,380,1772,379,1773,379,697,379,1772,379,697,405,670,380,696,380,696,405,671,380,696,383,1768,380,696,380,696,379,1772,380,696,379,697,379,697,379,1772,407,669,380,696,379,696,380,696,407,670,378,697,379,697,380,695,379,697,379,697,379,697,405,671,379,697,379,696,379,1773,379,1772,379,1773,379,696,380,697,379,1772,379,697,379,29383,5043,2130,380,1771,380,696,379,697,379,697,379,1772,380,696,379,697,380,696,379,697,379,1772,379,696,380,1772,380,1772,379,697,379,1772,379,1773,380,1771,380,1772,380,1771,381,695,379,1772,406,670,380,696,380,695,380,697,379,697,379,697,403,1748,379,697,380,696,406,1745,378,698,380,696,379,696,380,697,404,670,381,696,379,697,379,696,380,696,379,1772,380,1772,380,696,379,697,379,1772,407,1745,380,1771,380,696,406,669,407,669,381,695,380,695,381,696,405,671,379,696,380,696,406,1746,380,695,406,671,379,695,381,695,381,1771,381,695,380,695,380,697,380,695,380,696,380,696,380,695,381,695,380,696,380,696,406,670,380,695,407,669,381,695,402,674,380,696,406,669,381,696,405,670,380,1771,406,669,382,695,406,670,380,1771,381,695,380,695,407,1745,380,1771,407,1745,406,1746,380,695,381,695,406,670,406,669,381,696,406,669,380,696,407,669,406,669,407,669,406,670,407,669,405,670,381,695,406,670,407,669,406,670,406,1745,406,670,379,697,380,695,381,695,406,670,380,696,393,682,380,696,380,696,380,696,380,696,404,671,380,696,382,694,379,697,379,696,380,696,405,671,379,697,379,696,380,696,379,697,378,698,377,699,378,698,377,699,376,1775,350,1802,350,1801,350,1801,350,726,349,1803,349,727,374,702,372}, //26C
{5039,2132,379,1772,379,697,379,696,379,697,379,1772,379,697,379,697,379,696,380,696,379,1773,379,697,379,1772,379,1772,380,697,379,1772,379,1773,379,1772,379,1773,379,1772,380,696,380,1772,379,696,380,696,380,696,380,696,380,696,379,696,380,1772,379,697,379,697,379,1772,380,696,379,697,379,697,379,1772,380,696,379,696,380,696,379,697,380,695,380,696,380,696,379,696,380,696,380,696,380,695,381,696,379,696,380,696,379,1772,380,1771,380,1772,380,696,379,697,379,1772,379,697,379,29381,5042,2131,379,1773,378,697,433,643,432,644,378,1773,432,644,433,642,434,643,431,644,379,1772,435,641,433,1719,432,1719,433,643,434,1717,433,1719,433,1718,379,1773,433,1718,378,698,378,1773,379,698,432,644,431,644,432,644,433,643,433,642,433,1718,432,644,432,644,432,1719,433,643,433,643,432,644,434,642,433,642,432,644,434,642,431,645,433,643,401,1749,434,1718,432,644,430,646,432,1719,378,1773,432,1720,433,642,432,644,433,643,433,643,432,644,433,643,431,644,378,698,432,644,432,1719,432,643,462,614,379,697,433,643,433,1718,434,642,378,698,433,643,432,643,433,643,433,643,432,644,431,644,433,643,433,643,378,698,431,645,433,642,378,698,432,644,432,643,432,645,432,643,433,642,404,673,432,1719,433,643,432,643,432,1719,434,643,432,644,432,1719,378,1773,379,1773,378,1773,379,697,433,643,434,642,431,644,432,644,433,643,433,642,430,646,379,697,432,644,432,643,434,642,433,643,432,644,432,643,434,642,431,644,433,1719,433,643,378,699,431,644,432,643,433,644,429,645,434,642,432,644,433,643,433,643,431,645,434,641,432,644,431,645,378,698,432,643,433,642,434,642,433,643,379,697,433,642,434,643,432,643,432,644,431,645,431,645,431,1720,432,643,433,643,433,643,431,1720,379,1773,433,643,431,645,430}, //27C
{5043,2130,405,1746,381,695,380,696,380,696,380,1771,380,697,379,696,380,696,380,695,380,1772,380,696,405,1747,379,1772,380,695,381,1771,406,1745,381,1772,379,1772,380,1771,380,697,379,1772,380,695,381,696,379,696,409,668,379,696,380,695,407,1745,405,672,379,696,380,1771,380,696,380,696,380,695,381,1771,380,697,404,671,380,696,380,695,380,696,380,695,381,696,380,696,379,696,380,696,380,695,381,695,380,697,379,696,380,1771,381,1771,380,1772,379,697,379,696,380,1771,381,696,405,29356,5044,2130,380,1771,381,695,380,695,381,696,380,1772,405,670,380,695,381,696,379,696,380,1771,435,642,380,1771,380,1772,380,696,379,1772,380,1771,381,1772,404,1746,381,1772,380,696,379,1772,380,696,380,696,379,696,380,695,381,696,380,695,381,1771,380,696,380,695,406,1745,381,696,380,695,381,696,379,696,380,696,380,696,380,696,379,697,379,695,381,1772,380,1771,380,696,380,696,380,1772,379,1772,380,1771,380,697,379,696,380,695,381,695,406,670,407,669,380,696,380,696,380,695,380,1772,380,695,381,696,379,697,379,696,380,1772,380,696,380,695,380,696,380,697,379,695,380,697,379,696,380,695,408,669,380,696,379,696,380,696,380,696,379,697,379,696,380,696,380,696,380,696,379,696,380,1771,381,1771,380,697,379,696,380,1771,380,696,406,670,380,1771,380,1772,380,1772,380,1771,380,696,380,696,380,696,380,695,381,695,380,696,380,696,380,695,380,696,380,696,380,696,380,695,381,696,379,696,380,696,380,696,380,695,380,1771,381,696,406,669,380,697,379,696,380,696,380,695,381,696,379,696,380,696,407,669,380,696,380,695,380,696,405,671,380,696,435,640,380,695,381,696,380,695,380,696,380,696,380,696,406,669,381,695,380,697,379,696,380,1771,380,1772,380,696,432,644,380,1770,381,1771,381,694,381,696,380}, //28C
{5070,2104,407,1745,379,696,379,697,379,697,378,1774,378,698,378,696,407,671,377,697,434,1719,378,697,379,1773,379,1772,378,698,379,1773,378,1773,379,1772,379,1773,379,1772,379,698,378,1773,379,697,379,697,378,698,378,697,379,697,379,697,378,1773,380,696,378,699,378,1772,379,697,379,697,379,697,379,1772,379,697,379,697,378,697,379,698,378,697,378,698,378,697,379,697,379,697,379,697,379,696,380,697,379,697,378,696,380,1772,380,1772,405,1746,406,670,380,696,380,1772,406,669,380,29383,5042,2131,379,1772,380,696,405,671,380,695,381,1771,380,696,380,696,379,696,406,670,380,1772,405,670,381,1771,406,1746,380,695,380,1772,380,1772,405,1746,380,1771,380,1772,380,695,381,1771,380,697,378,697,380,696,379,696,381,696,379,696,380,1771,381,696,379,696,380,1772,379,697,379,696,380,696,406,670,380,696,379,696,380,696,380,696,379,697,406,1745,380,1771,380,697,379,700,376,1772,380,1771,380,1772,406,670,380,696,379,696,380,696,380,696,406,669,381,696,379,696,407,669,380,1771,381,695,380,696,379,697,380,696,379,1772,380,696,380,696,380,696,379,696,380,696,380,696,380,696,380,695,380,696,380,696,380,695,380,697,379,696,380,696,380,696,380,696,379,696,380,696,380,696,380,696,380,696,379,1772,380,695,380,1772,380,696,380,696,379,1772,380,1772,380,1772,379,1772,380,696,405,671,405,670,406,670,380,696,380,696,379,699,404,669,380,695,380,697,380,695,381,695,407,670,379,696,379,696,380,696,380,696,380,1772,379,697,379,696,380,696,380,696,380,695,407,670,379,697,379,696,380,696,380,696,379,696,380,696,380,696,379,696,380,697,379,696,380,696,380,695,380,696,380,696,380,696,380,695,380,696,381,695,380,696,380,696,379,1772,380,696,380,1771,380,697,379,1772,380,1771,380,697,379,696,380}, //29C
{5042,2131,384,1768,405,670,380,695,381,696,380,1771,380,696,406,669,380,697,405,670,406,1745,406,671,379,1771,381,1772,380,696,380,1770,407,1745,407,1745,406,1746,380,1771,407,669,380,1772,380,696,405,670,383,693,380,696,405,670,406,670,406,1746,380,696,405,671,379,1771,407,670,407,669,405,670,380,1771,381,696,380,695,380,696,380,695,381,696,406,670,379,696,380,695,381,696,380,696,405,670,405,672,379,696,380,696,405,1746,380,1772,379,1773,379,697,379,696,406,1746,405,671,406,29355,5044,2129,381,1771,406,670,405,671,380,695,380,1771,381,695,381,695,380,697,388,687,380,1771,381,696,379,1771,381,1771,380,696,380,1772,380,1771,380,1772,380,1771,406,1746,407,669,380,1772,380,696,379,697,379,696,380,696,379,696,407,669,380,1772,403,672,380,696,380,1771,380,695,407,670,380,696,380,696,405,670,381,696,379,696,382,694,405,671,406,1745,380,1772,405,670,381,695,407,1745,406,1746,405,1745,381,696,380,696,379,697,380,695,406,670,380,695,406,670,380,696,380,696,380,1772,379,697,379,696,407,669,380,696,379,1772,380,696,380,696,380,695,406,670,380,695,381,695,381,696,379,697,406,669,380,696,407,669,379,696,380,696,380,696,380,695,406,671,379,697,383,691,381,696,380,1771,380,697,379,1772,384,692,406,1744,381,695,408,668,380,1772,405,1746,381,1771,380,1772,379,697,379,697,379,697,379,696,380,696,379,696,380,696,380,696,380,695,407,669,380,697,406,670,379,696,405,671,379,696,380,696,380,697,379,1772,405,671,406,669,380,696,380,695,381,695,380,696,380,696,380,696,380,695,380,696,380,696,380,696,379,696,380,697,379,696,380,696,380,696,379,695,381,696,380,696,380,696,407,669,379,696,380,696,380,696,380,696,407,1744,380,1772,380,1772,379,696,405,1746,380,1772,405,672,379,700,375}, //30C
{5043,2131,379,1772,380,696,379,697,406,670,379,1773,379,696,379,696,380,696,380,696,380,1771,380,697,379,1771,381,1771,380,696,380,1772,405,1746,380,1771,407,1746,381,1770,406,670,379,1772,406,670,380,696,380,696,379,697,379,696,380,697,405,1746,379,697,379,697,404,1747,379,697,379,697,379,696,380,1772,379,697,379,697,405,669,381,696,379,697,379,697,379,696,380,696,380,695,380,697,379,697,405,670,380,696,379,697,379,1772,380,1772,379,1772,380,696,379,698,378,1773,379,697,378,29383,5042,2131,380,1771,380,697,379,696,380,696,380,1772,379,696,380,696,403,674,378,697,379,1772,380,696,380,1772,379,1773,379,696,380,1772,379,1773,379,1772,379,1772,380,1773,378,696,380,1772,380,697,378,696,406,671,379,696,380,696,380,695,380,1772,380,696,380,696,380,1771,405,671,380,696,380,696,405,671,379,696,405,671,380,696,379,697,379,697,379,1773,379,1772,381,695,379,696,406,1746,379,1772,380,1772,379,697,379,696,380,697,378,697,379,696,380,696,380,696,379,696,407,669,405,1747,380,696,380,696,379,696,380,697,379,1772,407,668,404,672,380,696,380,696,380,696,379,697,379,697,379,697,379,696,379,696,380,697,379,697,379,697,378,697,379,697,379,696,405,672,378,697,379,697,406,670,379,1771,380,1773,405,671,379,1772,379,697,379,696,380,1773,378,1773,379,1772,379,1773,379,696,380,696,380,696,379,697,380,695,380,696,395,681,379,697,379,698,378,697,379,696,379,697,380,696,379,696,380,696,406,670,379,697,379,1772,406,670,379,697,379,697,379,696,379,697,380,695,380,697,379,696,380,695,381,696,405,671,379,696,380,696,380,695,380,697,379,696,380,696,380,696,380,696,379,696,380,696,379,697,380,696,379,696,380,696,380,696,380,1772,379,696,380,696,380,1772,379,1773,405,1746,379,696,380,696,380}, //31C
{5043,2131,379,1772,380,696,405,671,405,670,380,1772,380,696,379,697,405,670,380,696,407,1744,380,697,379,1772,406,1746,406,669,405,1747,405,1746,407,1745,380,1771,407,1744,381,696,380,1772,379,697,379,695,408,669,406,669,380,696,380,696,380,1772,380,695,380,696,380,1772,405,670,380,696,380,696,380,1771,406,671,405,670,406,670,380,696,405,670,406,670,407,669,380,696,405,671,379,697,405,670,380,696,380,696,404,672,379,1772,406,1745,406,1746,406,671,404,671,406,1745,407,669,405,29356,5044,2130,380,1771,407,670,405,670,380,696,380,1772,380,696,379,696,407,670,379,695,381,1772,380,695,406,1746,406,1745,380,696,380,1771,407,1745,380,1772,380,1771,406,1746,405,671,380,1771,406,670,409,667,380,695,380,696,380,697,379,696,380,1771,380,697,379,696,380,1772,380,696,379,697,379,697,379,696,380,695,406,670,406,670,380,696,406,669,381,1771,380,1772,379,697,405,670,407,1745,380,1771,406,1746,380,696,379,696,407,670,379,695,381,695,380,697,379,697,379,696,380,696,405,1747,406,669,380,696,380,696,405,670,380,1771,381,696,380,696,405,670,380,697,379,697,379,696,388,688,379,696,380,696,380,695,381,696,379,696,405,672,406,668,407,670,379,696,380,696,408,667,381,696,405,1746,406,1745,406,1747,379,696,380,1772,379,697,405,670,380,1772,405,1746,380,1771,381,1771,406,671,379,696,380,696,379,696,380,696,380,696,405,671,379,697,379,697,379,696,380,696,380,696,379,696,380,696,380,697,379,696,379,697,406,1745,380,696,380,696,380,695,380,697,379,696,380,696,405,670,380,696,380,696,380,696,380,695,381,695,380,696,380,696,380,696,379,697,379,696,380,695,381,695,380,697,405,669,381,696,380,696,379,696,380,696,380,696,380,1772,379,1773,379,695,389,1764,405,1746,406,1745,407,670,379,696,380} //32C
},
// Fan Speed High
{
{8978, 4504, 561, 548, 587, 549, 586, 1650, 587, 549, 586, 1650, 586, 550, 586, 549, 586, 566, 586, 550, 586, 1649, 587, 549, 585, 1651, 586, 550, 585, 550, 586, 550, 584, 568, 585, 550, 585, 550, 584, 552, 583, 552, 584, 550, 585, 551, 584, 551, 585, 568, 584, 550, 559, 576, 585, 551, 560, 576, 583, 551, 559, 577, 558, 577, 584, 568, 584, 551, 584, 552, 584, 551, 558, 577, 558, 577, 559, 577, 558, 577, 558, 599, 558, 577, 558, 577, 584, 552, 558, 564, 559}, // 15C
{8978, 4503, 563, 546, 588, 546, 590, 1647, 589, 546, 590, 1647, 589, 546, 590, 545, 590, 563, 589, 546, 589, 1647, 590, 545, 590, 1647, 589, 546, 589, 547, 589, 545, 589, 1665, 589, 546, 589, 546, 589, 547, 589, 546, 589, 546, 589, 547, 588, 547, 589, 563, 589, 545, 589, 547, 589, 546, 589, 547, 588, 546, 589, 547, 589, 546, 589, 563, 589, 546, 589, 547, 589, 545, 589, 547, 588, 547, 588, 548, 588, 546, 589, 568, 589, 1648, 589, 1647, 589, 1648, 589, 1635, 589}, // 16C
{8978, 4447, 561, 549, 587, 548, 588, 1648, 588, 547, 588, 1648, 589, 546, 589, 547, 588, 564, 588, 548, 588, 1648, 588, 548, 588, 1648, 588, 547, 588, 547, 589, 1648, 588, 564, 587, 548, 588, 548, 587, 548, 587, 548, 587, 549, 587, 547, 587, 549, 587, 564, 588, 547, 588, 548, 588, 548, 587, 547, 588, 548, 588, 547, 587, 552, 584, 565, 587, 548, 587, 547, 589, 547, 587, 548, 588, 547, 588, 547, 588, 548, 587, 569, 589, 1647, 589, 1649, 587, 1648, 589, 535, 589}, // 17C
{8978, 4523, 507, 602, 533, 602, 533, 1703, 534, 601, 534, 1704, 533, 601, 534, 601, 534, 618, 534, 601, 534, 1703, 534, 601, 534, 1703, 534, 601, 534, 601, 534, 1703, 534, 1719, 534, 601, 534, 602, 534, 601, 533, 602, 534, 602, 533, 602, 533, 602, 534, 618, 533, 602, 534, 602, 533, 601, 534, 602, 533, 602, 534, 601, 534, 601, 534, 618, 534, 601, 534, 602, 534, 601, 534, 601, 534, 601, 534, 602, 533, 601, 535, 623, 534, 1703, 533, 1703, 534, 601, 534, 1691, 533}, // 18C
{8978, 4502, 559, 550, 585, 551, 585, 1650, 587, 549, 586, 1649, 587, 549, 587, 549, 585, 567, 586, 549, 586, 1650, 586, 550, 585, 1652, 585, 550, 586, 1650, 586, 549, 586, 567, 586, 549, 586, 549, 587, 547, 587, 549, 587, 548, 587, 549, 586, 549, 586, 566, 586, 549, 586, 549, 586, 550, 585, 550, 586, 549, 586, 549, 586, 549, 586, 567, 585, 549, 586, 550, 585, 550, 586, 549, 586, 550, 587, 548, 586, 549, 586, 571, 586, 1650, 586, 1651, 586, 549, 586, 537, 586}, // 19C
{8978, 4502, 562, 547, 635, 500, 589, 1647, 589, 546, 589, 1648, 589, 546, 590, 545, 589, 563, 589, 547, 588, 1648, 589, 547, 588, 1648, 589, 547, 588, 1648, 589, 546, 589, 1664, 589, 547, 589, 546, 588, 547, 588, 547, 589, 546, 589, 547, 588, 547, 588, 564, 589, 547, 588, 546, 589, 546, 589, 547, 588, 548, 588, 546, 589, 546, 589, 564, 588, 547, 588, 547, 588, 547, 588, 547, 589, 546, 589, 546, 589, 547, 588, 568, 589, 1648, 589, 547, 588, 1648, 589, 1635, 589}, // 20C
{8978, 4502, 532, 577, 533, 602, 560, 1676, 560, 576, 559, 1677, 534, 602, 533, 601, 561, 592, 559, 576, 560, 1677, 558, 577, 560, 1676, 558, 578, 559, 1677, 560, 1677, 559, 594, 558, 577, 558, 577, 533, 602, 559, 576, 559, 576, 558, 577, 559, 577, 558, 594, 558, 577, 535, 600, 558, 577, 558, 577, 559, 576, 559, 577, 558, 577, 559, 593, 559, 576, 559, 576, 534, 601, 559, 577, 533, 601, 558, 578, 559, 577, 558, 598, 534, 1702, 534, 602, 558, 1679, 533, 590, 558}, // 21C
{8978, 4497, 562, 547, 588, 546, 589, 1648, 589, 546, 590, 1647, 589, 546, 589, 547, 589, 563, 588, 546, 590, 1648, 588, 547, 588, 1648, 589, 547, 588, 1647, 589, 1649, 589, 1664, 589, 546, 589, 547, 588, 547, 588, 546, 590, 546, 590, 546, 587, 547, 590, 562, 589, 546, 589, 547, 589, 546, 588, 547, 589, 547, 588, 546, 590, 546, 589, 563, 588, 547, 589, 546, 589, 547, 588, 548, 588, 546, 588, 547, 589, 547, 588, 569, 588, 1648, 589, 546, 589, 547, 588, 1636, 589}, // 22C
{8978, 4495, 564, 546, 589, 546, 589, 1648, 589, 546, 589, 1648, 588, 547, 589, 546, 589, 563, 589, 546, 590, 1646, 590, 546, 589, 1647, 590, 1646, 590, 546, 589, 546, 590, 563, 588, 547, 589, 546, 589, 546, 589, 546, 589, 546, 590, 545, 590, 546, 589, 563, 589, 546, 589, 547, 589, 545, 590, 545, 590, 546, 589, 546, 589, 546, 589, 564, 589, 545, 590, 545, 590, 546, 589, 546, 589, 546, 589, 546, 590, 546, 589, 568, 589, 1647, 590, 546, 589, 545, 590, 534, 589}, // 23C
{8978, 4501, 562, 547, 589, 546, 588, 1648, 589, 547, 588, 1649, 587, 548, 587, 547, 589, 564, 589, 546, 588, 1649, 588, 547, 588, 1649, 588, 1648, 589, 546, 588, 547, 588, 1665, 589, 547, 588, 548, 587, 548, 588, 547, 588, 547, 588, 547, 588, 548, 588, 564, 587, 547, 589, 547, 588, 547, 588, 547, 588, 548, 587, 548, 588, 547, 588, 564, 588, 547, 589, 546, 589, 547, 587, 547, 589, 547, 587, 548, 588, 548, 588, 569, 587, 548, 587, 1649, 588, 1649, 588, 1636, 588}, // 24C
{8978, 4502, 559, 548, 562, 574, 561, 1676, 560, 575, 561, 1676, 561, 574, 561, 574, 562, 590, 561, 575, 561, 1675, 586, 550, 560, 1676, 561, 1675, 560, 575, 561, 1676, 561, 592, 560, 575, 586, 548, 588, 548, 561, 574, 560, 575, 562, 573, 561, 574, 561, 591, 561, 575, 560, 576, 586, 548, 586, 550, 586, 548, 562, 574, 561, 574, 561, 592, 586, 548, 587, 548, 585, 551, 561, 574, 561, 574, 562, 574, 560, 575, 587, 569, 588, 548, 585, 1652, 585, 1651, 588, 535, 561}, // 25C
{8978, 4496, 507, 601, 534, 601, 534, 1703, 534, 602, 533, 1702, 534, 602, 534, 601, 533, 620, 533, 602, 533, 1703, 534, 601, 534, 1703, 533, 1704, 533, 602, 533, 1703, 533, 1720, 534, 602, 533, 602, 533, 602, 534, 601, 534, 602, 533, 601, 535, 600, 534, 619, 534, 601, 534, 601, 534, 601, 534, 601, 534, 602, 533, 602, 534, 601, 534, 618, 534, 601, 534, 602, 533, 602, 534, 602, 533, 601, 534, 602, 534, 601, 534, 623, 533, 603, 533, 1702, 535, 601, 533, 1691, 534}, // 26C
{8978, 4501, 533, 576, 560, 575, 560, 1677, 560, 575, 559, 1677, 560, 575, 560, 576, 559, 592, 560, 576, 560, 1676, 561, 575, 559, 1677, 560, 1676, 561, 1676, 560, 576, 559, 593, 559, 576, 559, 576, 560, 575, 560, 575, 560, 576, 559, 575, 560, 576, 559, 593, 560, 575, 560, 576, 559, 575, 560, 576, 560, 575, 560, 576, 559, 576, 559, 593, 560, 575, 559, 575, 560, 576, 559, 576, 560, 575, 560, 576, 559, 576, 560, 597, 560, 575, 559, 1678, 559, 576, 559, 564, 560}, // 27C
{8978, 4496, 562, 547, 589, 547, 588, 1648, 589, 546, 589, 1647, 589, 547, 589, 546, 588, 565, 588, 546, 588, 1648, 590, 546, 588, 1649, 588, 1649, 588, 1648, 588, 547, 589, 1664, 588, 548, 588, 547, 592, 543, 588, 547, 589, 547, 588, 547, 588, 547, 588, 564, 588, 548, 588, 547, 588, 547, 588, 546, 589, 547, 588, 547, 589, 546, 589, 564, 588, 547, 588, 547, 588, 547, 588, 548, 588, 546, 589, 547, 588, 547, 588, 569, 588, 547, 588, 548, 588, 1648, 589, 1636, 588}, // 28C
{8978, 4503, 507, 601, 534, 601, 534, 1702, 534, 602, 534, 1703, 533, 602, 533, 602, 533, 619, 534, 601, 558, 1679, 534, 601, 557, 1680, 533, 1704, 533, 1703, 534, 1702, 534, 618, 534, 601, 534, 602, 534, 601, 534, 602, 533, 601, 534, 602, 533, 602, 533, 619, 534, 601, 534, 602, 533, 602, 534, 601, 533, 602, 534, 602, 533, 601, 535, 617, 534, 602, 534, 601, 534, 601, 534, 602, 533, 601, 534, 602, 557, 578, 534, 624, 533, 601, 559, 577, 533, 1703, 534, 590, 533}, // 29C
{8978, 4502, 534, 575, 562, 573, 561, 1675, 561, 575, 560, 1676, 561, 575, 560, 574, 562, 591, 560, 575, 560, 1676, 562, 574, 560, 1676, 561, 1675, 562, 1675, 561, 1676, 560, 1693, 561, 575, 561, 574, 560, 575, 561, 575, 560, 574, 561, 575, 560, 575, 561, 591, 561, 574, 561, 575, 560, 574, 561, 575, 563, 572, 560, 576, 560, 574, 561, 592, 560, 574, 561, 575, 561, 574, 561, 573, 562, 575, 561, 574, 560, 575, 560, 597, 560, 575, 561, 574, 561, 575, 560, 1664, 561} // 30C
{5043,2130,380,1772,380,696,404,671,406,670,380,1771,380,696,406,670,379,696,406,670,380,1771,407,670,379,1772,405,1746,406,670,406,1746,386,1765,406,1745,380,1772,380,1771,380,697,406,1745,379,697,380,694,407,670,406,670,405,670,405,672,379,1771,381,696,379,696,379,1773,379,696,380,695,381,695,380,1771,407,670,380,695,380,696,380,696,380,695,381,695,380,696,380,696,380,696,379,696,407,669,380,696,380,695,406,670,380,1772,380,1771,380,1772,380,695,380,696,380,1771,381,695,380,29381,5043,2130,380,1772,380,695,381,695,380,696,406,1745,380,697,379,696,406,670,379,696,380,1772,380,696,379,1771,381,1771,381,694,407,1746,405,1746,384,1768,379,1772,407,1744,381,695,380,1771,381,696,380,696,379,696,380,696,406,669,380,696,380,1772,406,669,380,696,380,1772,380,696,379,696,406,670,379,697,405,671,379,696,406,670,407,669,383,693,379,1772,380,1770,408,669,380,696,379,1772,380,1772,405,1746,405,671,379,697,379,696,380,695,381,696,380,695,406,670,407,669,406,670,380,1771,380,696,382,693,380,697,379,696,380,1770,381,696,380,696,380,696,406,670,379,696,380,696,405,671,379,697,379,696,380,696,380,695,406,671,379,696,406,669,406,671,379,696,380,696,407,669,380,696,405,1746,380,1772,405,1745,381,695,406,670,380,696,380,696,379,1772,380,1772,405,1746,380,1771,381,1771,406,669,406,1746,380,696,380,695,381,696,379,696,380,696,380,695,406,671,405,670,380,696,409,667,379,697,379,696,406,670,379,696,406,1745,381,696,380,696,379,696,406,670,405,671,405,670,380,696,406,670,380,695,407,670,404,671,407,669,380,696,379,696,406,670,380,695,380,696,380,696,380,696,380,695,407,669,407,669,380,696,380,696,406,670,405,670,406,1745,380,1772,380,696,379,1772,380,695,381,1770,408,1746,379,696,379}, //16C
{5043,2130,405,1746,380,697,379,696,380,696,405,1746,405,671,379,696,407,669,406,670,406,1745,380,696,380,1771,381,1771,380,696,380,1771,380,1772,380,1771,380,1772,405,1746,380,696,380,1772,380,696,379,697,379,696,405,671,379,696,380,696,379,1773,379,697,379,696,380,1772,406,669,406,669,381,696,379,1772,380,696,380,696,405,670,380,696,380,696,380,696,379,696,380,696,380,696,379,697,379,696,380,695,380,697,379,696,407,1743,409,1744,380,1771,380,696,380,696,405,1747,406,669,380,29357,5067,2130,380,1771,380,697,379,696,380,696,379,1772,380,696,380,695,405,672,379,696,380,1771,406,670,407,1744,380,1772,380,696,380,1771,380,1772,380,1772,406,1744,407,1745,380,696,380,1772,379,697,405,670,380,696,379,696,380,696,380,696,380,1771,380,696,406,671,378,1771,407,671,379,696,380,696,379,696,380,696,380,696,380,696,379,696,380,696,380,1772,379,1771,381,695,380,697,379,1771,381,1771,380,1771,380,696,380,696,380,696,379,697,379,696,380,696,380,696,379,696,380,696,380,1771,381,695,382,694,380,695,381,695,381,1771,380,696,380,696,379,696,380,696,380,695,381,696,433,642,406,670,380,695,407,669,380,696,380,696,380,695,380,695,381,696,380,696,405,671,406,669,406,670,380,695,380,696,380,696,380,1771,380,696,380,696,380,695,406,1746,380,1773,405,1745,380,1771,380,1773,379,697,405,1746,379,696,380,696,379,696,406,670,380,695,381,696,406,670,379,696,380,696,380,695,406,670,380,695,381,696,380,696,379,1772,380,695,380,696,380,696,380,696,379,696,406,670,380,697,379,696,379,697,379,697,379,696,380,696,379,696,380,696,381,695,379,697,379,697,379,696,380,696,380,696,379,697,379,696,380,695,381,695,380,697,379,696,380,1771,380,695,381,1771,380,1771,381,695,407,1745,405,1747,379,696,380}, //17C
{5044,2129,381,1772,379,696,406,670,405,671,380,1771,380,696,406,668,382,696,379,696,380,1771,380,696,380,1771,381,1771,380,695,381,1771,380,1772,380,1771,381,1772,379,1771,381,695,380,1772,406,670,379,696,380,696,379,697,380,695,381,695,380,1772,380,695,380,696,380,1771,380,696,380,696,380,696,380,1771,380,696,380,695,381,695,380,696,380,695,381,695,380,696,380,696,380,696,379,696,381,695,380,696,380,695,381,696,379,1772,380,1771,380,1772,380,696,379,696,380,1772,380,695,380,29381,5043,2130,380,1771,381,695,380,696,380,696,380,1771,380,695,381,696,380,696,379,696,380,1771,406,671,379,1771,381,1770,381,696,380,1771,380,1772,380,1771,406,1745,381,1771,380,696,380,1771,407,669,380,697,379,696,380,696,379,697,379,696,380,1771,380,696,380,696,380,1771,406,670,380,696,380,695,380,697,379,696,380,695,381,696,380,695,380,696,380,1770,381,1772,380,696,404,672,379,1772,380,1771,380,1772,380,695,380,697,379,697,379,696,380,696,379,696,380,696,380,695,380,696,380,1771,381,696,379,696,405,671,380,696,380,1771,380,696,380,696,380,696,379,696,380,696,380,695,381,696,379,696,380,696,380,695,380,696,380,696,380,696,380,695,380,696,380,696,380,695,406,670,380,696,380,1771,381,695,380,696,380,1771,380,696,380,696,380,696,380,1771,380,1772,379,1772,380,1772,379,1772,379,697,405,1746,380,695,381,696,379,696,380,696,405,671,379,696,407,669,380,696,379,696,405,672,379,696,379,696,407,669,380,696,380,1772,379,696,405,671,380,696,379,696,406,670,380,695,381,696,405,670,406,670,406,669,380,696,380,696,405,671,379,696,406,670,405,672,405,669,381,695,407,669,380,696,405,671,379,696,380,695,407,670,379,696,407,669,406,1745,407,1744,408,1744,407,1745,405,671,406,1745,406,1745,406,670,406}, //18C
{5044,2130,380,1771,379,697,380,696,380,696,379,1772,380,696,380,696,380,695,380,695,381,1772,379,697,379,1772,380,1771,380,695,381,1772,379,1771,381,1772,379,1773,379,1771,380,695,381,1771,381,696,379,696,380,695,381,695,380,696,380,696,380,1771,380,696,380,696,380,1771,380,696,380,696,379,697,379,1773,379,695,381,695,380,697,379,695,381,696,380,696,379,696,380,695,381,696,380,695,380,696,380,696,379,696,380,696,380,1771,381,1770,381,1771,381,695,380,696,380,1772,379,696,380,29380,5044,2130,380,1771,380,695,381,696,380,696,379,1772,405,671,380,696,379,696,380,695,381,1772,379,695,381,1771,380,1772,380,696,380,1771,380,1771,381,1771,406,1745,381,1770,381,696,380,1771,405,672,379,696,380,696,380,695,380,696,380,695,381,1772,405,670,405,670,381,1771,380,696,380,696,380,695,380,696,380,696,380,696,380,695,380,696,380,696,380,1771,380,1772,405,671,380,695,380,1772,380,1771,380,1771,380,698,378,696,380,695,381,695,381,694,381,696,380,696,380,696,379,696,380,1772,380,694,381,696,380,696,380,694,381,1772,380,695,381,695,380,696,380,695,381,695,380,696,380,696,380,696,380,696,379,696,380,695,381,695,381,695,380,697,379,695,381,696,380,695,380,696,380,696,380,695,381,1771,380,696,380,1770,381,696,380,695,381,696,387,1763,381,1772,379,1771,381,1771,380,1771,381,696,379,1771,381,695,380,695,381,696,380,695,383,693,380,696,380,696,380,695,380,700,376,696,380,696,379,696,380,697,379,696,380,1771,407,670,379,696,379,696,380,696,380,696,380,696,380,695,380,697,379,695,380,696,380,697,379,696,379,697,379,695,407,670,380,696,379,697,379,696,380,696,380,696,406,669,380,696,406,670,379,696,380,696,380,696,380,1771,380,696,380,696,379,697,406,1745,406,1745,406,1745,407,669,406}, //19C
{5069,2104,406,1745,380,696,380,700,376,696,380,1771,380,696,380,696,379,696,380,697,379,1772,406,669,407,1744,407,1745,380,697,379,1771,381,1770,407,1745,406,1746,380,1772,406,669,405,1746,381,695,380,696,406,670,406,670,379,697,379,696,406,1746,379,696,380,696,380,1772,379,696,406,670,405,670,381,1770,381,696,380,695,380,696,406,670,380,696,380,696,406,669,380,696,380,696,380,696,379,696,382,694,380,696,380,696,379,1772,384,1767,380,1772,406,675,374,696,380,1771,381,695,407,29354,5043,2130,380,1771,407,670,405,671,379,696,380,1772,380,695,380,696,380,696,380,695,381,1770,381,696,406,1745,406,1745,381,696,379,1771,381,1772,405,1745,407,1745,380,1772,379,697,379,1772,380,696,406,670,379,696,380,696,379,697,379,695,381,1771,381,696,379,696,380,1772,380,695,380,697,379,696,380,696,379,697,379,696,380,696,380,695,381,695,380,1771,381,1771,380,695,381,695,380,1772,380,1772,406,1745,380,695,381,695,380,697,379,696,407,669,405,671,379,696,380,696,380,696,380,1771,380,696,380,696,379,696,380,696,380,1772,379,696,380,696,407,669,379,696,380,696,380,696,405,670,406,671,379,696,380,695,381,696,379,696,380,696,380,696,379,696,380,696,380,696,380,694,381,696,380,1771,380,1771,381,696,379,1772,380,697,379,695,406,671,379,1772,380,1771,380,1772,380,1771,380,1772,380,695,380,1772,380,695,381,696,379,696,380,696,380,695,381,696,379,696,380,696,380,695,381,695,380,695,381,696,380,696,379,696,380,1771,381,696,379,696,380,696,405,670,405,671,407,669,380,695,380,697,406,670,379,695,381,695,381,695,380,696,380,696,380,696,380,696,379,696,380,695,381,696,379,696,380,696,380,695,380,697,405,670,380,696,405,671,379,1772,406,1746,379,696,406,670,380,1770,381,1771,381,1771,380,696,406}, //20C
{5065,2131,379,1773,379,696,379,696,380,697,379,1771,407,669,380,696,380,696,380,695,380,1772,380,696,380,1771,380,1772,380,696,379,1772,406,1746,410,1740,381,1771,380,1772,380,695,380,1772,380,696,405,671,381,694,380,696,380,696,380,696,379,1772,380,696,380,695,380,1771,381,695,381,696,405,671,379,1771,381,696,404,671,380,696,380,695,380,696,380,696,380,695,381,695,380,696,380,696,380,696,406,670,404,671,380,696,381,1770,380,1772,396,1754,381,695,381,696,405,1746,380,696,380,29380,5070,2103,407,1745,380,696,406,669,407,670,405,1746,380,695,380,696,405,671,380,696,380,1770,381,696,380,1770,381,1772,381,694,381,1770,407,1745,380,1772,380,1771,407,1744,381,695,380,1772,380,695,407,670,379,697,404,671,380,695,406,670,406,1745,381,695,380,697,379,1771,407,669,381,696,379,696,380,695,407,670,379,696,380,696,380,696,404,671,380,1772,380,1771,407,669,380,696,379,1772,380,1771,381,1771,380,696,406,670,380,695,406,670,407,668,407,669,381,695,380,696,380,696,379,1772,380,696,380,696,379,696,380,696,380,1771,381,695,380,696,380,696,405,671,379,696,380,696,380,696,406,669,380,697,379,696,380,696,405,670,380,696,380,695,407,669,380,696,380,695,381,696,406,670,379,696,380,696,380,1771,380,1771,407,669,380,696,407,669,380,1771,380,1772,380,1770,381,1771,381,1771,381,695,380,1772,380,695,380,697,406,669,379,696,380,697,379,696,406,669,381,695,380,696,380,696,380,695,381,695,380,696,380,695,380,1772,406,670,380,696,380,695,380,696,406,670,380,695,407,669,405,671,380,696,387,688,380,696,380,696,380,696,380,696,405,670,380,696,406,669,380,697,405,669,381,695,407,669,406,671,379,696,380,695,397,678,381,696,380,1771,381,696,379,1772,379,696,380,1771,406,1746,381,1770,407,670,404}, //21C
{5069,2103,381,1771,380,696,405,670,380,696,406,1745,381,695,381,696,405,670,380,696,380,1770,381,696,380,1771,406,1745,407,670,379,1772,380,1771,380,1772,380,1772,379,1772,405,671,405,1746,380,696,405,671,380,696,389,687,379,696,380,695,407,1745,380,696,407,667,408,1745,406,670,380,696,406,669,380,1772,405,671,379,696,406,670,380,696,379,696,405,671,380,696,406,670,406,670,379,696,405,670,407,670,379,696,380,696,380,1771,380,1772,380,1771,406,670,380,696,380,1771,380,696,406,29355,5043,2130,380,1771,380,696,380,695,406,671,379,1772,380,696,380,695,380,697,379,696,380,1771,380,696,380,1771,381,1771,380,695,381,1771,380,1772,380,1770,381,1772,380,1771,380,696,404,1747,381,694,381,696,380,696,379,696,380,697,379,696,380,1772,379,696,380,696,380,1772,379,697,379,696,380,696,379,696,380,696,380,696,380,696,379,696,380,696,380,1771,380,1772,380,695,380,696,380,1772,380,1771,380,1771,380,696,380,696,405,671,380,696,379,696,380,696,380,696,379,697,379,696,380,1771,406,670,380,695,381,696,379,697,406,1745,380,696,380,695,380,695,406,671,380,695,381,695,380,696,380,696,380,695,380,696,380,696,380,695,381,696,380,695,380,696,380,696,379,696,380,696,380,695,381,1771,380,696,380,1771,380,1772,380,696,405,671,379,696,380,1771,380,1772,380,1771,380,1771,381,1772,380,695,380,1771,381,696,380,695,380,696,379,697,379,696,380,696,380,696,380,695,380,696,380,696,406,669,406,671,380,695,380,696,380,1771,380,696,380,695,380,697,379,696,380,696,380,696,379,696,380,696,380,695,381,696,380,695,380,696,380,695,380,697,379,696,380,696,406,670,380,695,380,696,405,671,380,696,380,696,379,697,379,695,381,695,380,696,380,1771,381,1770,381,1771,381,695,380,1772,380,1771,407,1744,381,695,380}, //22C
{5042,2131,379,1772,380,696,406,670,379,696,380,1772,379,697,404,671,380,696,379,697,379,1773,379,696,379,1772,380,1772,379,697,379,1772,380,1771,380,1772,380,1771,380,1772,379,696,381,1771,380,696,379,696,380,696,380,696,379,697,379,697,379,1772,380,696,379,696,380,1772,379,696,380,696,379,697,379,1773,379,695,381,696,379,696,380,697,379,696,380,696,379,697,379,696,380,697,379,696,382,693,380,697,379,696,405,671,379,1772,380,1772,379,1772,405,671,379,696,380,1772,380,695,380,29382,5042,2130,380,1771,381,696,379,697,406,669,380,1771,380,696,380,696,380,696,380,696,379,1772,380,696,380,1771,380,1772,380,696,379,1772,380,1772,379,1772,379,1773,379,1772,380,695,380,1773,379,696,380,695,380,696,380,696,380,696,380,696,405,1746,380,695,408,669,379,1772,380,696,379,697,379,696,380,696,380,696,379,696,380,696,379,697,380,695,380,1772,379,1773,379,696,380,696,380,1771,380,1772,379,1771,407,670,406,670,380,696,379,696,379,698,379,696,380,695,380,696,380,696,379,1772,380,696,379,697,379,697,379,696,380,1772,379,697,405,670,380,696,380,696,405,671,379,696,380,696,380,695,380,696,406,670,380,696,406,669,407,669,380,695,408,669,380,698,377,697,378,697,380,696,380,695,380,1772,379,1772,406,1746,405,671,405,670,380,696,379,1772,380,1772,380,1771,380,1772,406,1745,380,696,380,1771,380,696,380,695,381,696,379,696,380,696,380,696,379,696,407,670,379,696,379,697,379,697,379,696,407,668,381,696,379,1772,380,696,379,697,405,670,380,696,380,696,379,697,379,696,380,696,379,697,379,697,404,671,380,696,380,695,380,696,380,697,379,695,406,670,381,695,380,696,406,670,379,697,379,696,380,696,405,675,376,695,407,669,406,1745,380,695,381,696,406,1746,379,1771,407,1745,406,1745,408,668,380}, //23C
{5043,2130,381,1771,380,696,380,696,380,695,381,1770,381,696,380,695,380,696,380,696,379,1772,380,697,379,1771,380,1772,380,696,380,1771,380,1772,380,1771,380,1772,379,1772,380,696,380,1771,406,671,379,696,405,670,380,695,408,669,380,695,407,1745,380,696,380,696,380,1771,380,696,380,695,381,696,379,1772,380,696,379,696,380,696,380,695,405,672,379,696,380,695,380,696,381,695,380,697,379,696,405,670,380,697,379,695,381,1772,404,1746,381,1772,379,696,380,696,380,1771,407,668,381,29380,5044,2130,380,1770,381,696,380,695,381,696,379,1772,380,696,405,671,379,697,379,696,379,1773,384,691,407,1744,381,1771,405,672,406,1745,404,1746,380,1772,380,1772,405,1745,381,696,380,1772,379,697,379,695,381,695,380,697,379,695,381,696,380,1772,379,696,380,695,380,1773,379,696,380,696,379,696,433,643,380,696,379,697,379,696,380,696,380,696,380,1771,380,1771,380,697,379,696,380,1772,379,1772,406,1745,406,670,380,695,381,695,380,696,380,697,379,696,380,696,379,696,380,695,381,1772,380,695,380,696,380,696,380,695,380,1772,380,696,380,695,380,697,379,696,380,695,380,697,405,670,405,671,380,696,379,696,380,696,380,696,379,697,379,696,380,697,403,672,380,695,380,696,380,696,380,1771,380,1771,407,1745,406,1745,381,696,379,696,380,697,379,1771,380,1772,380,1771,406,1746,406,1745,380,697,379,1772,379,697,379,696,380,696,379,697,379,697,379,695,381,696,406,669,380,697,379,696,380,696,379,697,379,695,381,696,379,1771,407,670,380,696,380,695,380,696,380,696,380,696,379,696,405,671,380,696,380,695,406,670,380,696,380,696,379,697,379,696,380,696,380,696,380,696,379,696,380,696,405,671,379,697,405,670,380,696,379,697,379,696,380,1772,379,1771,381,696,380,1770,381,1771,380,1773,379,1772,379,696,406}, //24C
{5043,2130,381,1772,379,696,380,695,380,696,380,1772,380,695,380,697,404,670,381,696,379,1772,406,670,380,1771,380,1772,406,669,406,1746,380,1772,379,1772,380,1771,380,1772,380,696,379,1772,380,696,380,696,379,697,379,697,379,696,379,697,384,1766,381,696,380,696,379,1772,380,697,404,670,380,696,380,1772,380,696,379,696,380,696,380,695,405,671,380,696,380,695,381,696,379,696,380,697,379,696,380,696,379,696,380,696,380,1772,379,1771,381,1772,379,696,406,670,380,1771,380,696,380,29381,5043,2130,380,1770,381,697,379,696,380,695,380,1771,381,696,379,696,380,697,379,696,380,1772,405,670,405,1747,379,1772,380,696,379,1772,380,1772,380,1771,380,1772,380,1772,379,696,380,1771,404,672,380,696,380,695,380,696,406,669,381,695,380,1772,380,696,379,696,380,1772,380,696,380,696,379,696,380,696,405,670,381,696,379,696,380,696,380,696,379,1772,380,1772,379,697,379,696,380,1771,380,1772,380,1771,380,696,380,696,380,696,379,697,379,697,379,696,379,696,407,670,379,696,380,1772,379,696,407,668,381,697,378,697,405,1746,380,695,380,697,379,695,381,696,380,695,380,696,380,696,380,696,407,669,379,696,380,696,380,696,379,697,379,695,381,697,379,696,380,696,379,696,380,697,379,696,379,697,379,696,393,684,378,1772,380,697,379,696,380,1770,381,1771,382,1770,406,1746,379,1773,379,696,380,1771,380,696,409,667,380,695,381,696,379,696,380,695,381,695,435,641,380,696,380,695,406,671,379,696,380,695,380,696,380,1772,380,695,380,697,379,696,380,696,406,670,379,697,379,696,380,696,380,695,406,670,406,670,380,695,380,696,380,696,380,696,379,697,379,695,381,696,380,696,379,696,380,696,380,696,380,696,380,695,380,696,380,696,380,1771,406,670,406,1745,380,1772,380,1772,379,1772,386,1765,380,696,380}, //25C
{5044,2129,408,1743,407,670,406,670,379,696,380,1772,406,669,407,669,407,669,383,692,408,1744,380,697,379,1771,406,1746,405,671,380,1771,380,1772,380,1771,380,1771,381,1772,405,669,407,1745,406,670,380,696,405,670,406,671,379,696,406,670,406,1746,405,670,406,670,405,1746,380,696,406,670,380,695,381,1771,406,670,380,695,406,670,380,696,405,671,406,669,380,696,380,696,380,695,380,696,380,696,380,695,406,670,407,669,380,1771,381,1771,380,1771,408,669,379,696,380,1771,380,696,406,29355,5043,2130,380,1772,380,696,406,669,407,670,379,1771,407,669,406,670,406,669,406,670,380,1772,380,695,380,1772,380,1772,380,696,406,1745,405,1746,407,1745,406,1745,380,1772,380,696,380,1771,380,695,381,695,380,696,380,696,380,696,380,694,381,1772,379,696,407,669,380,1772,379,696,406,670,407,669,380,695,381,695,380,696,380,696,380,696,379,697,379,1772,379,1772,406,670,380,695,380,1772,380,1771,381,1771,380,695,381,696,380,696,379,696,380,696,380,696,379,697,380,696,406,669,405,1746,380,696,406,670,379,697,379,695,381,1772,379,696,407,670,379,696,379,696,380,696,407,669,405,670,380,696,380,696,406,670,380,696,379,696,406,669,408,669,405,670,407,670,379,696,380,696,405,671,379,1772,379,696,406,671,379,696,380,1772,379,696,380,696,380,1772,406,1745,380,1771,380,1772,405,1746,406,670,380,1771,406,670,407,669,380,695,380,696,407,669,406,670,405,670,381,695,380,696,380,696,380,696,379,696,380,696,406,670,405,1746,404,672,405,670,380,697,405,669,381,695,381,696,379,697,404,671,380,696,405,670,380,696,380,697,378,697,380,695,380,696,380,695,380,697,404,672,379,696,380,696,380,696,406,669,380,696,380,696,379,697,379,695,407,1745,407,1745,380,1771,380,1772,406,1745,380,1771,381,1771,380,696,407}, //26C
{5043,2130,406,1746,379,696,380,697,405,670,380,1772,379,696,380,696,380,695,408,668,380,1772,405,671,405,1746,406,1745,381,696,405,1746,379,1772,380,1770,381,1772,407,1745,379,696,380,1772,380,695,386,691,404,670,381,696,380,696,379,697,379,1772,379,697,379,696,380,1772,380,695,406,670,407,669,380,1771,405,671,380,696,406,670,379,696,380,696,380,696,405,671,379,697,383,693,378,697,380,695,380,697,404,670,381,696,379,1771,381,1771,380,1772,406,670,379,696,406,1746,380,696,379,29381,5043,2130,406,1746,380,696,379,697,379,695,381,1772,379,695,381,697,379,696,379,697,379,1771,381,696,379,1773,379,1772,407,669,405,1746,379,1773,379,1772,380,1771,380,1772,379,697,405,1745,381,696,379,696,380,696,380,695,381,696,379,696,380,1772,405,671,379,697,379,1772,379,696,407,670,404,671,380,696,380,696,379,696,380,696,380,696,379,697,379,1771,380,1772,380,697,379,695,380,1771,381,1771,381,1772,379,696,405,671,405,670,380,697,379,696,379,697,379,697,405,671,379,696,379,1772,380,695,406,671,379,697,379,695,381,1771,380,696,380,696,380,696,379,696,406,671,405,669,380,697,379,697,405,670,380,696,379,697,379,696,380,696,406,670,379,697,379,696,405,671,379,697,379,697,383,693,379,1771,380,696,380,695,381,1772,379,696,380,696,380,1772,379,1772,379,1772,380,1771,406,1746,380,696,379,1772,380,697,381,694,379,697,379,696,380,697,405,670,379,696,380,697,379,696,406,670,379,697,379,696,380,695,406,670,406,1747,405,670,405,671,379,696,380,696,380,696,379,697,379,697,378,697,380,696,379,696,380,696,380,696,379,697,379,697,379,696,379,697,379,696,380,696,380,696,406,670,379,696,380,696,380,696,379,696,380,697,379,696,380,1771,407,668,381,696,380,696,379,697,379,697,379,696,379,1772,380}, //27C
{5044,2130,379,1773,379,696,380,695,381,696,405,1746,380,696,380,695,380,696,380,696,380,1771,380,697,379,1772,379,1771,407,670,380,1771,380,1772,380,1771,380,1772,380,1771,380,695,407,1745,380,696,380,696,380,696,379,697,379,696,380,696,380,1771,380,696,391,685,406,1745,380,696,405,670,405,672,379,1772,380,696,380,699,376,696,380,695,380,697,379,696,380,697,379,695,380,697,405,670,380,696,405,670,380,697,379,696,380,1771,380,1771,381,1771,380,696,380,696,380,1771,380,695,381,29380,5044,2129,381,1770,381,696,380,695,381,696,379,1772,406,670,380,696,379,696,380,696,380,1772,379,696,380,1772,379,1772,405,671,380,1772,379,1772,379,1772,406,1746,379,1771,381,696,380,1771,380,697,379,695,407,670,380,695,380,696,380,695,381,1771,380,695,407,670,405,1746,380,696,406,670,379,696,380,696,380,695,381,695,380,696,405,671,380,695,380,1772,380,1772,379,697,379,696,380,1771,408,1744,380,1771,380,696,380,695,391,686,380,695,407,669,380,695,381,696,380,696,379,696,380,1771,380,696,380,696,405,670,380,696,407,1744,381,696,407,669,379,696,380,696,380,696,379,696,380,696,380,696,380,696,379,696,380,696,380,696,405,671,379,696,380,696,404,672,379,696,380,697,379,696,380,1770,382,1771,379,697,379,697,379,1771,380,697,379,696,380,1772,379,1772,380,1771,380,1772,380,1771,380,696,380,1772,379,696,380,696,380,696,380,695,381,695,380,696,405,671,407,669,379,696,380,696,380,696,379,696,380,697,379,697,379,1771,380,696,380,696,406,669,380,697,379,695,381,696,379,696,406,671,379,696,380,695,380,697,379,697,405,670,380,695,380,697,379,696,407,669,380,696,404,671,380,696,380,696,379,696,380,696,380,696,379,697,433,642,380,1771,406,1746,380,696,380,696,379,696,380,696,380,697,378,1772,380}, //28C
{5043,2129,381,1772,380,696,380,696,379,697,382,1769,406,671,378,695,407,674,375,696,380,1773,406,669,379,1772,380,1772,379,697,379,1772,380,1771,380,1772,380,1772,379,1772,380,696,380,1772,379,696,380,696,379,697,379,696,380,696,379,697,379,1772,407,669,379,697,380,1771,407,669,379,697,380,696,379,1772,379,697,379,697,379,696,379,696,406,671,379,696,406,669,381,695,380,697,406,669,380,696,379,697,379,696,380,696,379,1772,406,1745,381,1772,379,696,380,697,383,1766,406,671,380,29381,5068,2105,379,1772,380,697,379,696,380,696,380,1770,381,696,379,696,380,697,379,696,380,1771,380,697,379,1772,379,1772,380,696,380,1771,380,1772,379,1773,379,1772,380,1771,380,696,380,1771,380,696,380,696,380,696,379,697,379,697,379,695,381,1771,380,696,380,696,379,1772,406,670,380,696,379,697,379,696,405,671,380,696,379,696,406,671,379,696,379,1772,407,1745,380,695,380,697,405,1745,407,1745,380,1771,406,670,380,696,406,670,379,697,379,697,379,696,380,695,407,669,380,696,380,1771,380,696,380,697,379,696,379,697,379,1772,380,696,379,696,406,671,379,696,405,671,380,696,406,669,405,671,379,697,379,697,379,696,406,670,406,670,379,696,406,670,380,695,401,676,405,671,379,696,380,697,378,696,380,1771,381,695,380,1771,381,696,379,696,380,1771,381,1772,405,1746,380,1771,380,1772,379,696,380,1772,380,695,408,669,405,671,379,695,380,697,405,670,405,671,380,696,406,670,379,696,380,695,381,696,379,697,405,671,379,1771,380,696,380,697,379,695,381,695,406,671,379,696,380,696,380,696,379,696,379,697,379,696,380,696,380,696,380,696,380,696,405,670,380,696,380,696,406,669,406,670,380,696,380,695,381,696,379,695,381,695,381,696,404,1747,380,696,380,1772,379,696,380,696,380,695,380,696,406,1745,406}, //29C
{5043,2130,380,1771,407,669,406,670,380,695,406,1746,434,642,380,695,407,669,380,696,406,1746,379,696,380,1772,379,1773,405,670,380,1772,379,1773,405,1745,380,1772,380,1771,380,696,380,1772,379,697,405,670,379,697,379,696,407,669,380,696,380,1772,379,695,407,670,380,1771,380,697,379,696,405,671,379,1771,381,696,405,670,380,696,380,696,379,696,380,697,379,697,379,695,406,670,407,669,407,669,380,695,380,696,407,669,405,1747,379,1772,405,1747,406,669,406,669,407,1745,406,670,380,29381,5043,2130,380,1771,406,670,380,696,380,695,381,1771,380,696,379,697,379,696,380,696,380,1771,380,696,406,1746,379,1772,405,671,406,1745,380,1772,406,1746,379,1771,381,1771,380,696,405,1746,380,696,379,697,406,670,380,695,380,696,380,696,406,1745,380,695,381,695,380,1772,380,696,405,670,381,695,406,671,379,697,378,696,380,696,380,697,379,695,381,1771,380,1771,405,671,380,696,406,1745,382,1769,381,1771,380,696,380,696,380,696,379,695,381,696,380,697,379,696,379,696,404,672,380,1770,381,696,380,696,380,696,405,670,380,1772,405,671,379,696,380,697,379,696,405,671,379,695,381,697,379,696,379,696,406,670,405,671,380,696,405,670,380,696,380,696,380,695,381,695,380,695,381,695,380,1771,408,669,406,1745,380,696,380,1772,405,671,406,668,381,1771,380,1771,381,1772,379,1771,381,1771,380,696,380,1772,379,696,380,696,380,696,405,671,379,696,380,696,380,695,407,668,407,671,379,696,380,695,380,697,379,696,406,669,381,1771,380,697,379,696,405,670,380,696,380,696,380,695,406,670,407,668,407,669,407,670,380,695,406,670,380,696,380,696,379,697,379,696,380,695,399,677,380,696,380,695,406,669,381,696,380,695,381,696,379,696,380,696,380,1771,405,1747,380,1771,405,672,379,696,380,695,381,696,379,1771,407}, //30C
{5043,2129,383,1769,380,700,375,696,380,696,405,1746,380,696,406,670,380,696,380,696,379,1772,380,696,380,1772,379,1772,406,669,380,1772,380,1772,379,1772,380,1771,407,1745,404,672,379,1771,381,696,379,696,380,696,380,697,379,696,380,696,379,1773,379,696,405,671,379,1772,405,671,407,669,379,696,380,1771,381,695,380,696,380,696,405,670,380,696,380,696,406,670,379,696,406,670,380,696,380,696,405,671,379,697,379,696,406,1745,380,1771,380,1772,406,670,380,696,405,1746,380,696,380,29380,5043,2130,380,1772,406,669,380,697,379,696,380,1772,379,697,407,668,380,696,406,670,379,1772,399,677,379,1772,380,1772,379,697,379,1772,379,1772,380,1772,405,1746,380,1772,380,696,405,1746,380,695,407,670,379,697,379,696,379,697,379,696,380,1772,379,697,379,696,380,1772,379,697,379,696,380,696,379,697,405,671,379,697,379,696,380,696,379,697,379,1771,381,1771,380,696,380,696,379,1772,380,1772,405,1746,380,696,380,695,380,697,379,696,380,696,379,697,379,696,380,697,379,696,379,1772,380,695,406,671,379,697,379,695,381,1772,380,696,379,696,379,697,405,670,380,696,380,696,380,695,380,696,380,697,404,671,406,670,405,671,379,696,380,695,380,697,379,696,380,696,379,696,405,671,380,697,379,1771,380,1772,405,671,379,1772,380,696,380,695,407,1745,406,1745,380,1772,380,1772,379,1772,380,696,380,1771,405,671,379,696,380,696,380,696,405,671,379,697,379,696,406,670,380,696,379,697,379,696,380,696,406,670,379,697,379,1772,379,697,379,696,380,696,380,696,379,696,380,696,407,670,406,668,406,670,380,696,380,696,379,697,379,696,380,696,379,697,406,669,380,696,380,696,379,696,380,697,379,697,378,697,379,697,405,670,380,695,380,697,379,1773,379,696,407,668,381,1771,380,696,379,696,406,671,379,1772,379}, //31C
{5070,2104,379,1772,380,696,407,669,379,697,379,1772,379,696,380,696,380,696,380,695,380,1771,381,696,380,1771,380,1771,380,696,405,1747,391,1760,380,1771,381,1771,407,1745,380,695,380,1772,380,696,405,671,379,696,380,696,379,697,379,696,380,1772,380,696,379,696,380,1772,379,697,379,696,380,695,406,1746,380,696,380,696,380,696,379,697,379,696,380,696,391,685,379,696,383,693,380,696,380,696,379,696,382,694,380,696,379,1772,380,1771,380,1772,380,696,380,695,380,1771,381,696,380,29380,5043,2131,379,1772,380,696,380,696,398,677,380,1772,405,671,379,696,380,696,380,696,405,1746,406,669,380,1772,380,1772,379,696,380,1772,379,1772,380,1772,379,1772,380,1772,406,670,405,1746,380,695,380,696,405,671,380,696,380,696,379,696,380,1771,380,697,379,696,406,1746,380,695,380,696,380,696,380,695,406,670,380,697,379,695,406,671,405,671,379,1772,406,1745,380,695,380,697,379,1773,379,1771,381,1771,380,696,380,696,379,696,380,697,379,696,380,696,379,697,379,696,405,670,381,1771,380,696,379,696,406,670,380,696,405,1746,406,671,379,696,380,696,379,697,379,696,380,696,380,695,380,696,406,670,380,695,381,696,404,671,381,695,380,695,381,696,379,696,380,696,379,696,380,697,379,1771,381,1771,380,1772,379,696,380,1771,381,695,381,695,380,1772,380,1771,380,1772,380,1772,379,1772,379,697,379,1771,381,696,379,696,380,696,380,696,379,696,406,671,379,696,406,670,380,695,380,696,380,696,380,696,404,671,380,695,381,1771,380,696,380,696,379,697,380,696,379,696,380,696,397,678,380,697,379,696,380,696,379,697,403,673,379,695,380,697,379,697,406,669,380,696,380,696,379,697,379,696,380,696,405,671,379,697,379,697,379,696,379,697,379,1772,380,1771,380,696,380,1772,379,696,380,696,407,668,380,1771,381} //32C
},
// Fan Speed Med
{
{8978, 4497, 506, 602, 534, 602, 557, 1679, 534, 602, 533, 1703, 556, 579, 534, 602, 533, 618, 534, 601, 534, 1703, 534, 1703, 533, 602, 534, 601, 534, 601, 534, 601, 534, 618, 534, 602, 533, 603, 533, 601, 534, 602, 533, 602, 533, 602, 533, 603, 533, 618, 534, 602, 557, 577, 534, 601, 534, 602, 533, 602, 534, 601, 534, 602, 533, 619, 534, 601, 533, 602, 534, 602, 533, 601, 534, 602, 533, 602, 534, 602, 533, 623, 534, 1703, 534, 1702, 534, 1703, 534, 1691, 533}, // 15C
{8978, 4503, 560, 550, 585, 549, 587, 1650, 586, 549, 586, 1651, 585, 550, 585, 550, 586, 566, 586, 549, 587, 1650, 586, 1651, 585, 550, 585, 550, 586, 550, 585, 550, 585, 1668, 585, 550, 587, 548, 586, 549, 586, 549, 586, 549, 586, 550, 586, 549, 586, 566, 586, 549, 586, 549, 586, 549, 586, 550, 586, 549, 585, 550, 586, 549, 586, 567, 585, 550, 585, 550, 585, 550, 586, 549, 585, 551, 585, 550, 585, 550, 585, 572, 586, 1650, 586, 1651, 585, 1651, 586, 538, 586}, // 16C
{8978, 4529, 507, 601, 534, 601, 534, 1703, 534, 601, 534, 1703, 533, 602, 534, 602, 533, 618, 534, 602, 533, 1704, 533, 1703, 533, 601, 534, 602, 534, 601, 534, 1703, 534, 618, 533, 603, 533, 601, 534, 601, 534, 601, 534, 601, 534, 602, 533, 602, 533, 619, 534, 601, 534, 601, 534, 602, 533, 602, 534, 601, 534, 601, 534, 601, 534, 618, 534, 602, 533, 602, 534, 602, 533, 602, 533, 602, 533, 602, 534, 601, 534, 623, 534, 1703, 533, 1703, 534, 602, 533, 1691, 534}, // 17C
{8978, 4496, 508, 600, 535, 601, 534, 1702, 535, 600, 535, 1701, 536, 600, 535, 601, 534, 618, 534, 601, 534, 1702, 535, 1702, 534, 601, 535, 600, 535, 601, 534, 1702, 534, 1719, 535, 601, 534, 601, 534, 602, 534, 601, 533, 601, 535, 601, 534, 601, 534, 618, 534, 601, 534, 602, 533, 602, 534, 601, 534, 601, 534, 602, 533, 601, 535, 617, 535, 601, 534, 601, 534, 601, 535, 600, 534, 601, 535, 600, 535, 601, 534, 623, 534, 1703, 533, 1703, 534, 601, 534, 589, 535}, // 18C
{8978, 4522, 508, 601, 534, 602, 533, 1703, 534, 602, 533, 1703, 533, 602, 534, 601, 534, 619, 533, 602, 533, 1703, 534, 1702, 534, 602, 535, 600, 534, 1702, 535, 601, 534, 618, 533, 602, 533, 603, 533, 602, 534, 601, 533, 602, 534, 601, 533, 602, 534, 619, 533, 602, 533, 602, 533, 602, 534, 602, 533, 602, 533, 601, 534, 601, 534, 619, 533, 601, 535, 601, 534, 601, 534, 602, 533, 602, 533, 602, 533, 602, 534, 624, 533, 1702, 535, 601, 534, 1702, 534, 1691, 533}, // 19C
{8978, 4523, 507, 602, 534, 601, 533, 1704, 533, 601, 534, 1703, 534, 601, 534, 601, 534, 619, 533, 601, 534, 1703, 534, 1703, 534, 601, 534, 601, 534, 1702, 535, 600, 535, 1719, 534, 601, 534, 602, 533, 602, 534, 601, 534, 602, 533, 602, 533, 602, 533, 619, 533, 602, 534, 601, 534, 601, 534, 601, 534, 602, 533, 603, 533, 601, 534, 618, 534, 602, 533, 601, 535, 601, 534, 601, 534, 601, 534, 602, 533, 602, 533, 624, 534, 1703, 533, 601, 534, 1702, 535, 589, 534}, // 20C
{8978, 4503, 562, 547, 588, 547, 589, 1647, 589, 546, 589, 1648, 588, 547, 589, 546, 589, 564, 588, 547, 589, 1648, 588, 1648, 588, 546, 590, 546, 589, 1648, 588, 1648, 589, 564, 588, 547, 589, 546, 588, 548, 588, 546, 589, 546, 589, 547, 588, 547, 589, 563, 589, 547, 587, 547, 589, 547, 588, 547, 588, 547, 588, 547, 589, 545, 590, 564, 588, 546, 589, 546, 589, 547, 589, 546, 589, 546, 589, 547, 588, 547, 589, 569, 587, 1648, 589, 547, 588, 546, 589, 1637, 588}, // 21C
{8978, 4497, 508, 601, 534, 601, 534, 1702, 535, 601, 534, 1702, 534, 602, 534, 601, 534, 617, 534, 602, 534, 1703, 533, 1703, 534, 602, 533, 602, 533, 1703, 534, 1703, 533, 1720, 534, 601, 534, 602, 533, 602, 534, 601, 534, 602, 533, 601, 534, 602, 533, 619, 533, 602, 534, 601, 534, 601, 534, 602, 533, 601, 535, 602, 532, 602, 534, 618, 534, 602, 533, 601, 535, 601, 533, 602, 534, 602, 533, 601, 534, 601, 534, 624, 533, 1703, 534, 602, 533, 602, 533, 590, 534}, // 22C
{8978, 4503, 507, 602, 534, 602, 533, 1703, 534, 601, 534, 1702, 534, 602, 533, 602, 533, 619, 533, 602, 534, 1703, 533, 1704, 533, 602, 533, 1703, 534, 600, 535, 601, 534, 619, 533, 601, 534, 602, 533, 602, 534, 601, 534, 601, 534, 602, 533, 602, 533, 619, 533, 602, 533, 603, 533, 602, 533, 602, 533, 602, 533, 603, 533, 601, 534, 619, 533, 602, 533, 602, 534, 601, 534, 602, 533, 601, 534, 602, 534, 601, 533, 624, 534, 601, 534, 1703, 533, 1703, 534, 1691, 533}, // 23C
{8978, 4495, 507, 602, 557, 581, 531, 1703, 533, 601, 559, 1679, 557, 578, 558, 577, 558, 594, 558, 578, 557, 1679, 533, 1704, 533, 601, 558, 1679, 557, 578, 534, 601, 534, 1720, 558, 577, 558, 577, 534, 601, 559, 577, 558, 577, 558, 577, 534, 602, 533, 619, 557, 578, 557, 577, 558, 578, 534, 601, 557, 578, 559, 576, 559, 577, 558, 593, 558, 578, 559, 577, 533, 601, 557, 579, 558, 577, 557, 578, 534, 601, 559, 598, 558, 577, 534, 1703, 559, 1678, 538, 585, 558}, // 24C
{8978, 4501, 507, 601, 558, 578, 534, 1702, 534, 601, 534, 1703, 558, 577, 534, 602, 533, 619, 558, 577, 534, 1702, 534, 1703, 534, 602, 557, 1679, 533, 602, 534, 1703, 533, 619, 533, 602, 534, 601, 534, 601, 534, 601, 534, 602, 533, 602, 533, 602, 534, 619, 532, 602, 534, 601, 534, 602, 533, 602, 533, 602, 534, 602, 533, 601, 534, 619, 533, 602, 534, 601, 533, 602, 557, 578, 534, 601, 534, 602, 533, 602, 534, 623, 533, 602, 534, 1703, 534, 601, 534, 1691, 533}, // 25C
{8978, 4529, 531, 577, 533, 603, 558, 1678, 559, 576, 559, 1678, 558, 576, 561, 575, 558, 594, 559, 576, 559, 1677, 561, 1676, 559, 576, 560, 1677, 559, 577, 558, 1678, 533, 1721, 558, 576, 550, 586, 559, 576, 560, 575, 558, 577, 558, 577, 559, 577, 533, 619, 559, 576, 559, 577, 557, 577, 560, 575, 559, 577, 558, 577, 559, 576, 558, 594, 558, 578, 559, 575, 558, 578, 559, 576, 559, 576, 558, 577, 558, 578, 558, 599, 558, 576, 559, 1678, 558, 578, 559, 565, 556}, // 26C
{8978, 4495, 562, 547, 588, 547, 588, 1648, 589, 547, 588, 1648, 588, 547, 589, 547, 589, 563, 590, 544, 591, 1647, 588, 1648, 589, 545, 590, 1647, 590, 1647, 589, 546, 589, 564, 589, 546, 589, 546, 588, 547, 589, 546, 589, 547, 589, 545, 589, 546, 590, 563, 589, 546, 590, 545, 590, 546, 588, 547, 589, 546, 589, 546, 588, 547, 588, 564, 590, 546, 588, 547, 588, 547, 588, 548, 588, 547, 589, 546, 588, 547, 588, 570, 587, 547, 588, 548, 588, 1648, 589, 1634, 589}, // 27C
{8978, 4502, 562, 547, 587, 549, 587, 1649, 586, 549, 588, 1648, 588, 548, 588, 547, 561, 591, 587, 548, 562, 1675, 564, 1673, 587, 548, 587, 1649, 588, 1648, 588, 548, 562, 1691, 588, 548, 587, 548, 587, 548, 561, 575, 586, 548, 588, 547, 588, 548, 587, 564, 588, 548, 562, 573, 587, 549, 588, 546, 563, 572, 588, 548, 588, 548, 587, 564, 562, 573, 563, 572, 588, 548, 588, 548, 561, 574, 587, 547, 562, 574, 587, 570, 587, 547, 563, 573, 588, 1648, 588, 536, 561}, // 28C
{8978, 4495, 534, 575, 562, 573, 561, 1676, 561, 574, 561, 1675, 560, 576, 560, 574, 561, 592, 561, 574, 561, 1676, 561, 1676, 560, 574, 561, 1677, 559, 1676, 562, 1675, 560, 593, 560, 575, 560, 575, 560, 575, 560, 575, 561, 574, 561, 574, 560, 575, 561, 592, 561, 574, 560, 575, 561, 575, 559, 576, 559, 576, 560, 575, 561, 574, 561, 592, 560, 575, 560, 575, 560, 575, 560, 575, 561, 574, 560, 576, 560, 574, 561, 597, 559, 576, 560, 575, 560, 575, 561, 1664, 560}, // 29C
{8978, 4503, 534, 575, 559, 577, 560, 1676, 558, 577, 559, 1677, 560, 575, 560, 576, 560, 592, 559, 576, 561, 1675, 561, 1676, 560, 575, 559, 1678, 560, 1676, 559, 1677, 561, 1693, 560, 576, 558, 577, 560, 575, 558, 577, 560, 575, 559, 576, 560, 575, 559, 594, 559, 576, 560, 575, 559, 577, 559, 579, 556, 576, 559, 576, 560, 575, 560, 592, 559, 576, 559, 577, 559, 576, 559, 576, 560, 575, 560, 575, 559, 577, 559, 598, 560, 576, 557, 578, 559, 576, 559, 564, 559} // 30C
{5066,2130,406,1745,407,669,407,669,405,670,381,1771,380,696,380,696,404,671,380,696,406,1745,406,670,379,1772,380,1772,380,696,379,1772,380,1771,380,1772,405,1746,380,1771,380,697,405,1746,379,696,380,696,380,696,405,670,380,696,407,669,380,1772,379,695,406,671,406,1745,381,695,380,695,407,669,380,1772,380,696,379,696,380,696,407,669,380,695,380,696,380,696,380,696,405,669,381,696,380,695,406,670,380,696,380,696,380,1771,380,1771,381,1771,380,696,405,670,407,1745,379,697,379,29381,5042,2130,380,1772,380,696,379,697,406,669,380,1770,407,670,380,696,380,696,379,696,380,1772,379,697,379,1772,380,1771,380,696,380,1771,380,1772,406,1744,381,1772,405,1746,380,696,380,1772,405,670,406,670,379,696,380,697,379,696,394,681,380,1772,380,695,380,696,380,1772,405,671,379,697,405,670,405,670,380,696,380,696,380,696,380,696,379,697,379,1771,380,1772,380,696,379,696,380,1772,406,1745,380,1771,407,670,379,696,380,696,407,668,380,696,407,668,381,696,380,695,380,696,380,1772,379,696,380,696,380,695,380,697,379,1772,379,696,406,670,380,696,380,695,380,696,380,696,380,696,379,697,379,696,380,696,379,697,380,696,379,696,379,697,379,697,379,695,407,670,380,696,406,669,382,1769,380,1772,406,1745,407,669,379,697,379,696,380,697,405,1746,379,1772,380,1772,405,1746,406,1745,380,1772,380,696,379,696,380,696,380,696,406,669,405,671,405,671,379,696,380,695,381,696,380,696,379,696,380,696,405,671,380,695,380,1772,379,696,380,697,379,696,380,696,406,669,380,696,380,695,380,697,379,696,380,696,379,697,379,696,380,696,379,697,379,697,379,695,406,671,389,687,379,696,380,696,380,696,406,669,380,696,380,695,407,669,408,668,380,1771,380,1772,380,696,379,1772,380,695,380,697,379,1772,379,696,381}, //16
{5041,2131,379,1773,379,696,380,696,379,697,379,1772,379,697,379,697,379,696,379,697,379,1772,380,696,379,1773,379,1772,379,697,379,1772,383,1768,380,1771,380,1773,379,1772,385,691,379,1772,379,697,379,696,380,696,379,697,379,697,379,696,379,1773,379,696,380,696,379,1772,380,696,379,697,379,696,406,1746,379,697,379,696,380,696,405,671,379,697,379,696,380,695,380,697,379,696,380,696,380,696,379,697,379,696,380,696,379,1772,379,1773,379,1772,380,696,380,696,379,1772,380,697,378,29381,5043,2130,379,1772,380,696,380,695,380,696,380,1772,379,697,379,696,406,670,379,696,381,1771,380,696,379,1772,379,1773,379,696,380,1772,380,1771,380,1771,380,1772,380,1771,380,696,380,1772,379,697,379,696,379,697,379,697,379,695,381,696,380,1771,379,697,380,695,380,1772,379,697,380,696,379,697,402,673,380,696,379,696,380,697,379,696,380,695,380,1771,381,1771,406,670,380,696,380,1770,381,1772,379,1772,380,696,379,697,379,696,380,696,391,685,379,696,380,697,379,695,380,697,380,1770,380,697,379,697,379,696,380,696,380,1771,380,696,379,696,381,697,378,696,380,696,379,696,380,696,405,670,407,670,379,696,380,696,379,697,379,696,380,696,380,696,380,695,380,696,380,696,379,697,379,696,406,670,380,696,379,1772,406,670,379,697,379,696,406,1746,379,1772,406,1745,380,1772,379,1773,379,1772,379,697,379,697,379,696,380,696,405,670,406,671,378,697,379,697,406,669,380,695,381,696,379,696,380,696,379,696,380,697,379,1771,381,696,406,670,379,696,379,697,379,696,379,697,380,696,379,697,383,691,381,696,406,670,379,697,379,701,374,697,405,671,379,696,406,670,380,696,379,696,380,696,380,695,407,669,406,670,380,696,379,697,379,696,380,1771,380,696,380,1772,405,1746,380,696,406,669,380,1772,405,671,379}, //17C
{5041,2132,379,1772,379,696,379,698,378,697,379,1773,378,698,379,697,378,697,378,698,378,1773,378,697,380,1772,379,1772,379,698,378,1774,377,1773,379,1772,379,1773,379,1772,379,697,379,1773,378,697,379,697,378,698,378,697,379,697,378,697,379,1773,379,697,379,696,380,1772,378,698,379,697,378,698,378,1773,378,698,379,696,379,697,378,697,379,697,379,697,378,698,378,698,378,698,378,697,379,697,405,670,379,697,379,696,379,1773,379,1772,379,1772,380,697,378,697,379,1773,378,698,378,29382,5041,2131,379,1773,378,698,378,698,378,697,378,1774,378,698,378,697,379,697,378,697,379,1773,378,698,378,1773,379,1772,379,697,379,1773,379,1771,380,1772,379,1773,378,1775,377,696,380,1772,379,698,378,697,378,697,379,698,378,697,379,697,379,1772,379,697,379,697,378,1772,380,696,380,697,378,697,378,698,378,697,379,697,379,697,379,698,378,696,379,1772,380,1773,378,697,378,698,378,1773,379,1773,378,1773,379,697,378,697,379,697,379,696,379,698,378,697,379,696,380,697,378,698,378,1773,379,697,379,696,379,697,379,697,378,1772,379,698,378,697,379,697,379,697,378,697,379,697,379,697,379,697,383,692,379,698,378,697,378,697,379,702,374,697,379,696,379,697,379,697,378,697,379,697,379,1773,379,697,378,697,378,1774,379,696,379,697,378,697,379,1773,379,1773,378,1773,379,1773,378,1773,379,1773,405,671,378,697,379,696,379,698,378,697,379,697,379,697,379,696,379,696,380,696,380,696,379,697,379,696,380,697,378,697,379,1772,380,696,405,670,381,696,379,696,379,696,393,683,406,670,380,696,379,697,379,696,380,696,380,695,380,696,380,696,380,695,381,695,380,696,405,671,379,697,380,695,380,696,380,696,379,696,407,668,381,696,406,670,405,1745,381,1771,407,1744,381,1771,380,695,381,696,403,1748,380,696,380}, //18C
{5044,2129,381,1770,381,695,381,695,381,696,379,1772,379,696,380,696,380,696,380,696,379,1772,380,696,380,1771,380,1771,380,696,380,1771,381,1771,380,1771,381,1771,380,1772,380,696,379,1771,381,696,379,697,379,696,380,695,381,696,379,696,380,1772,380,696,379,696,380,1772,379,696,380,695,381,696,379,1771,381,696,380,696,379,696,380,696,380,696,380,696,379,696,380,696,380,695,380,696,380,696,380,696,380,695,380,696,380,1771,380,1772,380,1771,380,696,380,696,380,1771,380,696,380,29358,5065,2129,381,1771,381,695,380,696,380,696,380,1771,379,697,380,696,380,695,380,697,379,1771,381,696,379,1772,380,1771,380,695,381,1772,379,1772,380,1772,379,1771,381,1771,380,697,379,1770,381,697,379,696,380,695,381,696,379,695,381,696,380,1771,380,695,381,696,380,1771,380,695,381,695,380,696,380,695,381,695,381,696,379,696,380,696,379,696,380,1772,380,1772,379,696,380,696,380,1770,381,1772,380,1770,381,696,380,696,380,696,379,696,380,696,380,696,379,696,380,696,380,696,379,1772,380,695,381,695,380,697,379,696,380,1772,379,697,379,696,380,695,381,695,380,696,380,696,380,695,380,696,380,695,381,695,380,696,380,697,379,697,378,697,379,696,407,669,380,696,380,695,380,695,381,696,379,1772,380,696,380,1770,381,696,380,696,379,696,380,1772,407,1744,380,1772,380,1770,381,1771,380,1772,380,696,380,696,380,695,380,696,380,695,381,695,380,697,379,695,381,696,380,695,380,696,380,695,381,695,380,696,380,696,380,1771,380,696,380,696,380,696,379,696,380,696,380,695,380,696,380,697,379,696,379,696,406,669,381,696,379,697,379,697,379,695,381,696,379,696,380,695,381,696,379,697,379,696,380,696,380,695,381,695,380,696,380,696,380,1771,380,696,380,695,381,696,379,1771,381,696,379,1771,381,695,381}, //19C
{5044,2129,379,1772,380,696,379,696,380,696,380,1772,379,697,379,696,380,696,380,695,406,1746,380,695,380,1772,380,1771,380,696,380,1772,380,1771,380,1772,380,1771,380,1772,405,671,379,1772,379,697,379,697,379,696,380,697,378,696,380,697,379,1771,406,671,379,696,380,1771,380,696,405,671,379,697,380,1772,405,670,380,696,379,697,379,696,380,696,380,696,379,697,379,696,380,696,405,671,379,697,379,696,383,693,379,697,404,1746,380,1772,380,1771,380,695,381,696,380,1771,380,696,380,29380,5043,2131,379,1772,380,696,380,696,379,697,379,1771,380,698,405,669,380,696,380,695,380,1773,379,696,380,1772,379,1772,380,695,380,1772,380,1771,380,1772,380,1772,379,1771,380,697,379,1772,380,695,381,695,380,697,404,670,381,695,380,696,380,1772,380,696,379,696,407,1747,377,697,379,696,380,696,405,670,381,695,380,695,381,696,379,696,380,697,379,1770,381,1772,380,696,380,696,379,1772,380,1772,379,1772,380,696,379,696,380,696,380,696,405,671,379,697,379,696,380,696,379,696,380,1771,381,695,380,697,405,670,380,696,379,1772,380,696,380,696,380,696,379,696,380,696,379,697,379,697,405,670,380,695,407,670,379,697,379,696,380,696,379,697,379,695,381,696,380,695,380,697,379,695,381,1771,380,1771,384,693,379,1772,405,670,381,700,375,696,380,1772,379,1772,380,1772,405,1746,380,1771,380,1771,381,695,407,670,379,696,380,695,380,696,380,696,380,696,404,671,380,697,379,696,380,695,380,696,406,670,380,696,380,695,407,1745,380,696,406,670,379,696,380,696,380,696,380,695,406,670,380,695,381,695,380,696,380,696,380,696,380,695,380,696,380,696,380,695,381,695,380,697,379,695,407,669,380,696,380,696,406,669,380,696,405,671,380,696,379,1772,380,1771,380,696,380,695,381,1771,380,697,379,1772,379,696,380}, //20C
{5042,2131,378,1773,379,698,378,697,378,698,378,1773,379,697,379,696,379,697,379,697,379,1772,379,697,379,1772,379,1773,379,696,379,1773,379,1772,380,1772,379,1772,380,1771,380,696,380,1772,379,696,380,697,379,697,378,696,406,671,378,696,380,1773,379,697,379,697,378,1772,405,671,379,698,378,697,379,1771,380,697,379,697,379,696,379,698,378,697,379,697,405,671,378,698,378,696,379,697,379,698,378,697,379,697,379,696,379,1771,381,1772,379,1773,379,697,378,697,405,1747,379,696,380,29359,5063,2132,379,1773,378,697,379,696,380,696,382,1769,380,696,379,697,379,697,379,697,379,1772,379,698,378,1772,379,1773,379,696,380,1772,380,1771,380,1772,379,1772,380,1772,379,697,378,1773,379,697,379,696,380,697,378,697,379,697,379,697,379,1772,379,697,379,696,380,1772,379,696,406,670,379,697,404,671,406,670,380,696,380,695,380,697,404,672,378,1772,380,1771,380,696,380,696,406,1745,380,1772,380,1771,380,696,406,670,380,696,379,696,380,697,379,696,380,696,379,696,406,670,380,1772,379,697,379,695,381,696,405,671,397,1754,379,696,380,696,406,670,380,696,379,697,379,696,380,695,380,697,379,696,380,696,406,670,405,670,407,669,406,670,405,670,407,669,380,696,405,670,381,695,406,670,405,670,407,1745,406,1746,379,696,406,670,407,669,405,1745,408,1744,406,1746,380,1771,406,1745,407,1745,406,670,380,695,408,668,380,695,407,670,379,696,380,696,407,669,405,669,406,671,407,669,406,669,380,696,379,697,407,668,407,1745,379,697,405,670,379,697,407,669,379,697,378,698,378,697,378,697,379,698,377,699,377,698,377,698,377,699,377,699,350,726,350,725,350,726,350,726,349,726,349,727,349,728,347,728,372,703,373,703,373,703,347,729,372,1778,374,702,373,1779,373,703,373,1778,374,701,374,1778,373,703,373}, //21C
{5043,2130,380,1773,378,697,379,697,379,696,379,1772,380,696,379,697,379,697,378,698,379,1773,378,697,379,1772,380,1771,380,697,379,1772,379,1773,379,1772,379,1773,379,1771,380,697,378,1774,378,697,379,697,379,697,379,696,379,697,378,698,378,1773,379,697,379,696,380,1772,378,698,379,695,380,698,378,1772,405,672,378,697,379,697,378,698,379,696,379,696,380,696,379,697,379,696,380,696,380,696,379,697,379,697,378,697,379,1773,379,1772,380,1772,379,696,379,698,378,1772,380,696,379,29382,5042,2131,379,1772,380,696,380,696,379,696,380,1771,380,696,380,696,380,696,379,697,379,1773,379,696,379,1772,380,1772,380,696,379,1772,406,1745,405,1747,380,1771,380,1772,379,696,380,1772,379,697,406,669,380,696,379,697,379,696,380,696,380,1771,380,696,380,696,380,1771,406,671,405,670,380,696,379,696,380,696,405,671,406,669,406,670,406,670,407,1744,407,1744,406,671,379,696,380,1771,380,1771,406,1746,380,696,399,677,380,696,406,669,406,670,380,696,405,670,380,696,406,669,407,1745,406,669,381,695,380,696,380,695,406,1746,406,669,407,670,406,669,406,670,380,696,406,669,407,669,407,669,380,696,405,670,380,696,380,696,406,669,406,670,406,670,379,696,406,671,405,670,380,696,379,1772,406,670,404,1748,378,1773,378,698,377,698,378,698,377,1773,377,1775,351,1801,350,1801,349,1803,348,1803,348,728,373,703,373,703,373,703,373,702,373,703,373,703,373,702,373,703,373,702,374,702,374,702,373,703,373,703,373,702,373,1779,372,703,374,703,372,703,372,704,372,703,371,705,371,706,370,704,371,705,370,706,346,729,347,729,346,730,346,729,347,729,347,729,346,730,346,729,347,729,347,729,347,729,347,729,347,728,348,728,347,728,373,703,373,1778,375,1776,376,1777,374,700,377,1775,376,700,377,1773,378,698,378}, //22C
{5043,2130,405,1746,380,696,380,695,381,696,406,1744,381,696,406,670,379,697,379,696,380,1772,379,695,406,1746,380,1772,380,696,380,1771,405,1746,383,1769,380,1771,380,1772,380,696,405,1746,406,670,380,696,379,696,380,696,393,682,381,696,406,1745,380,695,407,669,407,1745,380,696,406,669,406,670,406,1745,405,671,380,696,380,696,407,668,407,669,406,670,380,696,406,670,405,670,380,696,380,695,380,696,380,696,380,696,405,1746,380,1772,379,1772,407,669,405,671,379,1772,380,696,380,29380,5043,2130,380,1771,380,696,380,696,405,671,406,1745,380,695,381,696,406,670,379,697,405,1746,405,670,405,1747,380,1771,406,670,380,1772,379,1772,406,1745,407,1745,380,1771,380,696,380,1771,407,669,407,668,381,695,407,670,379,696,380,696,379,1772,407,669,380,696,407,1744,405,671,380,696,379,695,381,696,380,696,404,671,407,669,380,695,407,670,379,1772,407,1744,407,669,407,669,380,1771,406,1745,407,1746,406,669,405,671,379,697,381,694,386,690,405,671,405,671,405,670,380,696,406,1744,381,695,408,668,406,670,380,696,380,1771,406,670,407,669,406,670,379,697,405,670,406,670,380,695,380,697,379,696,380,695,408,669,379,697,405,670,380,696,379,696,380,696,379,696,381,696,406,669,380,696,407,1744,380,1772,380,1771,406,670,380,696,406,670,379,1772,380,1771,406,1746,380,1771,407,1745,405,1746,380,696,380,696,380,696,405,670,406,669,381,696,379,696,405,671,407,669,379,696,380,696,407,668,381,696,379,697,405,670,406,1744,381,696,380,696,380,696,380,696,405,670,380,696,405,670,407,669,405,671,380,696,405,671,405,671,404,671,406,670,379,696,380,696,406,670,405,671,405,670,405,671,380,696,379,697,404,671,380,696,380,696,379,696,380,1771,381,695,380,696,381,1770,380,1772,380,696,379,1772,406,670,379}, //23C
{5042,2130,380,1772,379,697,379,697,379,697,378,1772,380,697,379,696,379,697,379,696,382,1770,379,697,379,1775,376,1773,379,696,380,1772,379,1773,379,1771,380,1772,380,1771,380,697,379,1772,379,697,379,696,380,697,378,696,380,697,379,696,380,1772,379,696,380,697,378,1772,380,697,378,697,379,697,405,1747,378,697,379,697,379,697,379,696,379,698,378,696,380,696,379,697,379,698,378,697,378,698,378,698,378,697,379,697,379,1772,379,1773,378,1772,380,697,379,697,379,1772,378,697,379,29382,5042,2131,379,1773,379,697,378,697,379,696,380,1771,380,697,379,696,380,695,407,670,379,1772,379,697,379,1773,379,1772,379,697,379,1772,379,1773,379,1772,380,1772,379,1772,379,697,379,1773,378,698,378,696,405,672,378,698,378,697,379,697,379,1772,379,697,379,696,380,1771,380,696,380,697,378,697,379,697,379,696,379,697,379,698,378,696,380,697,379,1773,378,1772,379,697,380,696,379,1772,380,1771,380,1771,380,698,378,697,379,697,379,695,380,697,379,697,379,697,378,697,379,697,379,1772,380,696,379,697,379,696,379,697,379,1773,379,696,379,698,378,697,379,697,379,697,378,697,379,696,380,697,378,697,379,698,378,697,379,696,379,697,379,696,380,697,379,696,379,697,379,698,378,697,378,1773,379,1772,406,1746,379,1772,379,697,379,697,379,697,378,1773,379,1772,379,1772,380,1772,379,1772,381,1771,379,697,379,697,378,698,378,698,378,697,405,671,379,697,401,674,404,671,380,696,380,696,379,697,379,697,379,697,378,697,379,1772,380,696,379,697,379,696,380,697,378,697,405,671,379,696,380,697,378,697,405,670,380,697,378,697,379,697,379,696,379,698,378,697,379,696,380,696,380,696,379,697,380,695,380,697,378,697,379,697,379,697,406,670,378,1772,380,1772,379,697,406,1746,379,1772,379,696,406,1746,380,696,379}, //24C
{5069,2104,406,1745,380,696,406,670,380,696,405,1746,406,670,380,696,380,696,379,696,406,1745,381,696,405,1746,405,1746,380,696,380,1770,381,1772,380,1771,380,1771,380,1772,380,697,379,1772,406,669,407,669,380,695,381,696,406,669,380,695,381,1772,379,697,379,696,406,1745,406,670,406,670,406,670,405,1746,406,669,382,693,407,670,380,696,405,671,406,672,404,669,379,696,380,696,380,696,380,696,380,695,386,690,406,670,405,1746,406,1746,380,1771,405,671,406,670,380,1771,406,670,380,29358,5066,2129,381,1771,380,696,406,670,379,696,380,1771,380,696,407,669,380,696,380,696,379,1772,380,696,380,1771,380,1771,381,696,379,1772,380,1771,407,1746,379,1771,380,1772,405,670,380,1772,380,696,380,695,406,670,380,696,405,671,379,696,406,1746,380,696,379,696,380,1771,381,695,380,697,379,696,380,696,405,670,380,696,380,696,380,696,380,695,380,1772,406,1746,379,696,380,696,405,1745,381,1772,379,1772,380,696,405,671,379,696,407,670,404,671,405,670,407,669,380,696,406,670,379,1772,380,696,380,696,379,696,380,696,380,1771,380,696,406,670,405,671,379,696,380,696,380,696,380,695,380,696,380,695,381,696,405,670,380,697,379,696,380,696,379,697,399,676,380,696,406,670,379,696,407,669,400,676,379,696,407,668,380,1772,406,670,380,696,380,1771,380,1772,380,1771,406,1747,378,1773,379,1772,405,671,407,668,406,671,403,672,406,670,406,669,406,670,379,697,379,696,406,670,379,697,406,669,406,671,379,696,380,696,379,1771,407,670,406,670,405,671,379,696,407,669,379,696,380,696,380,696,380,696,379,697,406,669,380,696,380,696,379,696,380,696,379,696,381,696,406,669,379,697,380,695,406,670,380,696,380,696,379,697,404,671,406,670,380,1771,406,670,406,1745,380,1771,381,1772,405,670,380,1771,380,696,405}, //25C
{5041,2131,379,1773,379,697,378,697,379,697,379,1772,406,670,379,698,378,696,380,697,378,1772,380,697,379,1772,379,1773,404,672,378,1772,380,1773,378,1773,379,1772,379,1772,380,696,379,1773,379,697,379,696,380,696,379,697,379,696,380,696,380,1772,378,698,378,697,379,1773,379,696,380,697,378,697,379,1772,405,671,379,697,379,697,379,697,379,696,379,697,379,697,379,696,379,697,379,696,380,696,379,698,379,696,379,696,380,1771,383,1770,379,1772,379,697,379,697,379,1771,380,696,380,29380,5070,2103,407,1745,380,697,379,696,380,696,379,1772,380,696,405,670,380,696,406,670,380,1771,380,696,380,1772,380,1771,380,696,380,1771,406,1746,379,1772,380,1771,407,1745,380,696,406,1745,380,696,380,696,380,696,379,696,380,696,380,695,408,1744,380,696,405,671,379,1772,380,696,380,695,380,696,407,668,407,669,380,696,380,696,406,669,407,670,384,1766,407,1744,407,668,407,670,407,1745,407,1745,380,1770,381,695,407,669,380,696,380,696,407,668,380,696,406,670,406,669,407,669,406,1746,380,695,407,669,405,670,380,696,380,1772,407,669,406,669,407,669,407,669,379,696,406,670,406,670,405,671,405,671,405,670,404,672,379,697,379,696,379,697,377,699,377,699,377,698,376,700,376,700,350,1801,350,726,349,727,349,726,349,1802,349,728,348,728,347,1803,373,1778,374,1778,373,1779,373,1778,374,1778,373,703,373,702,373,703,372,704,373,703,372,702,374,703,372,704,371,704,373,703,371,706,371,704,371,704,347,729,370,706,351,1800,347,729,346,729,347,729,346,731,346,729,347,730,345,729,347,729,347,728,348,728,347,729,348,728,347,728,373,703,374,702,372,703,375,702,374,701,375,700,376,700,376,700,376,699,377,699,377,698,378,698,377,699,403,1748,378,1773,378,1774,378,1773,404,1748,378,697,404,1747,405,671,404}, //26C
{5042,2131,379,1773,379,696,378,697,379,697,380,1772,379,696,380,697,378,697,379,697,379,1772,379,697,379,1773,378,1773,379,697,378,1773,379,1773,379,1772,379,1772,380,1772,406,669,380,1772,379,697,379,697,378,697,379,697,379,698,378,697,379,1771,406,670,379,698,378,1773,379,697,378,697,379,697,379,1773,405,670,379,697,379,697,379,697,379,696,379,697,379,697,379,696,379,697,379,697,378,697,380,696,379,697,379,696,380,1772,379,1773,379,1772,405,672,378,696,380,1772,379,697,378,29361,5063,2131,379,1773,379,696,380,696,379,697,379,1773,379,696,379,697,379,697,379,696,379,1773,379,696,379,1773,379,1772,380,697,378,1773,378,1773,379,1773,378,1773,379,1772,379,697,379,1773,379,697,378,698,379,696,379,697,379,697,378,697,379,1772,380,696,379,697,379,1773,378,698,378,697,379,697,378,697,380,696,379,696,379,698,378,697,379,697,379,1773,378,1773,406,670,379,697,379,1772,379,1772,379,1773,379,697,379,697,378,697,379,697,378,698,379,697,379,696,379,696,380,697,379,1773,378,697,379,696,379,697,379,697,378,1773,379,698,378,697,379,696,379,697,379,697,379,696,379,698,378,697,379,697,379,697,378,697,379,697,379,696,380,697,379,696,379,697,379,697,379,696,379,697,379,696,380,1772,404,671,380,696,380,1772,379,696,381,695,380,1771,380,1773,379,1772,379,1772,379,1773,379,1772,380,695,380,696,380,696,381,695,406,670,379,697,379,696,380,695,381,695,406,670,380,696,406,670,379,696,407,669,406,670,382,1769,407,669,406,669,381,699,402,670,380,696,380,695,381,696,379,696,406,670,406,669,380,696,380,696,407,669,406,669,406,670,380,695,381,695,407,669,380,696,405,670,381,695,407,668,407,670,380,695,381,695,405,671,407,1743,408,669,388,688,405,670,380,696,406,1745,406,1746,380,696,380}, //27C
{5044,2130,380,1771,380,696,380,696,380,696,379,1772,380,696,406,670,379,696,380,696,380,1771,380,696,380,1771,380,1772,380,696,380,1770,381,1772,379,1772,380,1771,380,1771,381,696,380,1771,380,696,380,696,384,691,380,696,380,695,381,696,380,1772,379,696,406,669,380,1772,380,695,380,696,380,695,381,1771,380,696,380,695,381,695,381,695,381,695,380,695,381,695,381,695,380,696,380,695,381,696,380,695,380,696,380,696,380,1771,380,1771,381,1771,380,696,380,696,380,1771,380,695,381,29380,5043,2130,380,1771,381,695,381,696,379,696,380,1771,380,696,380,695,381,696,380,695,380,1771,381,696,379,1771,381,1771,380,696,380,1772,379,1772,407,1744,381,1771,380,1772,379,696,380,1771,381,695,381,695,380,696,380,695,381,696,379,695,381,1772,379,696,380,696,380,1771,381,695,380,696,380,695,381,695,380,695,381,695,381,696,380,695,380,696,380,1771,380,1771,381,695,381,695,380,1772,380,1771,380,1771,380,697,380,695,380,696,380,696,380,696,379,696,380,697,379,696,379,697,380,1769,382,695,381,695,406,670,406,670,380,1770,381,696,380,696,380,696,379,696,380,695,380,697,379,697,379,695,381,696,380,696,379,695,381,696,380,696,379,696,380,695,381,696,380,695,380,696,380,696,380,1771,380,1771,381,696,379,696,380,1771,380,697,380,695,380,1772,380,1771,380,1772,379,1772,380,1771,380,1772,380,696,379,697,379,696,380,696,380,696,380,695,380,696,380,695,381,695,380,695,381,696,380,696,380,695,380,696,380,695,381,1771,380,696,380,696,380,696,379,696,380,696,380,696,379,696,380,695,381,696,380,695,380,697,404,670,407,670,380,695,406,670,380,696,380,696,379,696,380,696,434,641,381,695,380,696,380,696,380,698,377,696,380,696,380,1771,380,1771,381,695,380,696,380,696,407,1745,379,1772,380,695,381}, //28C
{5071,2102,381,1771,406,670,380,696,407,669,406,1745,380,695,380,697,406,669,380,696,407,1744,380,696,406,1745,380,1772,406,670,406,1745,407,1744,405,1747,380,1771,407,1745,406,670,405,1746,405,671,380,696,406,669,407,669,406,670,380,696,380,1771,380,696,406,670,379,1771,381,695,381,696,381,695,379,1771,407,669,407,669,380,696,406,670,380,695,380,696,380,696,383,693,380,695,380,696,380,696,405,675,375,697,379,696,380,1771,380,1772,380,1771,406,670,407,669,405,1746,380,696,406,29355,5043,2130,407,1744,381,695,407,668,381,696,379,1772,380,696,380,695,380,696,380,695,381,1772,379,697,379,1772,380,1771,380,695,381,1771,380,1770,382,1771,406,1746,380,1771,380,696,380,1772,405,670,404,672,380,695,380,696,380,695,381,696,380,1771,380,696,380,695,406,1746,380,696,406,670,379,696,381,695,380,695,381,696,379,696,380,696,380,695,381,1771,380,1772,379,697,379,696,380,1772,379,1772,400,1752,379,696,380,696,380,696,379,697,379,696,380,696,405,671,405,670,406,670,380,1771,407,669,380,696,380,696,379,697,379,1771,381,696,379,696,380,696,380,695,381,695,406,670,406,670,380,696,379,696,380,697,379,696,380,696,407,668,407,669,380,696,405,670,380,696,380,697,379,695,407,669,380,696,380,1772,379,697,379,1772,380,695,380,696,406,1745,380,1772,404,1748,379,1772,380,1771,380,1771,381,696,380,696,405,670,380,696,398,678,405,670,380,696,380,696,380,696,406,669,380,696,407,669,380,695,380,696,380,696,380,1772,379,696,380,696,408,668,380,695,382,694,406,669,380,696,406,670,406,669,381,696,379,696,406,670,405,671,407,669,379,696,405,671,380,696,406,669,380,697,406,669,406,669,381,695,380,696,407,668,381,696,379,696,380,1771,380,696,407,1745,380,696,380,696,379,1772,406,1745,380,696,380}, //29C
{5043,2131,379,1771,381,695,406,670,380,695,406,1747,406,670,379,696,380,696,406,670,404,1746,381,696,380,1771,380,1772,380,695,380,1771,381,1772,380,1771,380,1771,380,1772,380,696,406,1745,380,696,406,670,380,696,406,670,379,696,380,696,380,1772,405,670,407,669,380,1771,380,696,407,670,381,694,380,1771,380,696,380,696,380,695,380,697,379,696,380,695,407,670,379,696,407,670,379,696,380,696,380,696,405,670,380,696,380,1771,380,1772,380,1771,380,697,379,696,380,1772,379,697,379,29382,5043,2130,380,1772,380,696,379,696,380,696,380,1772,380,695,380,696,380,696,380,696,379,1772,380,696,380,1771,380,1772,406,669,380,1772,380,1772,380,1771,385,1766,381,1771,380,696,380,1772,380,695,380,696,380,696,380,696,380,696,379,695,381,1772,379,697,379,696,380,1771,381,695,380,697,406,669,384,692,380,696,379,696,380,696,380,695,381,696,406,1744,381,1771,380,697,379,696,380,1771,380,1772,380,1771,380,697,379,695,381,696,380,696,380,695,380,696,380,696,380,695,380,696,380,1772,380,696,379,696,380,696,380,696,380,1770,381,696,380,695,381,696,379,696,380,696,380,696,380,696,379,697,379,696,380,696,380,696,380,695,380,696,380,695,381,696,379,697,380,695,380,696,380,696,380,1771,380,696,380,1771,380,696,380,1772,380,695,381,695,380,1771,385,1768,379,1772,380,1771,380,1771,381,1772,379,696,380,696,380,696,380,696,379,697,379,696,380,695,381,695,380,696,380,696,380,696,380,695,381,695,380,696,380,696,380,1771,380,696,380,696,380,695,380,696,405,671,380,696,380,695,380,696,380,696,380,696,380,695,380,696,380,696,380,696,380,695,380,696,380,697,379,696,380,695,380,696,380,696,380,696,380,695,380,696,380,696,380,696,380,1771,380,1772,380,1771,380,696,380,696,380,1771,380,1771,381,696,384}, //30C
{5043,2130,382,1769,380,696,380,695,380,696,380,1772,380,696,406,669,380,697,379,697,379,1771,405,672,379,1771,380,1772,380,696,384,1767,380,1771,380,1773,405,1745,380,1772,380,695,381,1771,380,696,406,670,379,696,380,696,380,696,403,673,379,1772,380,697,379,696,379,1773,379,696,379,697,379,696,406,1746,379,696,380,696,380,696,379,696,380,697,379,697,379,695,381,696,379,697,379,696,380,696,405,671,379,696,380,695,406,1746,380,1772,379,1772,380,697,379,695,380,1773,379,696,380,29380,5044,2129,380,1772,406,670,380,696,379,697,379,1772,380,696,405,670,380,696,405,671,406,1745,380,696,380,1772,379,1772,380,696,379,1773,379,1772,406,1746,379,1771,406,1746,380,695,380,1772,380,696,380,696,379,696,407,669,380,696,380,696,404,1747,380,695,406,670,380,1772,380,696,379,697,379,696,406,670,380,696,379,696,380,697,379,695,381,696,379,1771,381,1771,380,697,405,670,406,1745,406,1746,379,1773,379,697,379,696,379,697,405,670,380,696,380,696,379,697,406,670,379,696,380,1772,379,696,380,696,406,669,380,697,379,1772,406,670,379,696,380,696,380,699,376,697,379,696,406,670,405,670,380,696,380,696,380,696,379,696,380,696,380,695,380,697,379,696,380,696,380,697,379,696,379,696,380,1771,380,1772,380,696,380,1772,379,696,380,696,379,1772,406,1745,381,1771,380,1772,379,1773,379,1772,380,695,403,673,380,696,405,670,380,696,380,697,379,696,379,696,380,697,404,671,379,696,381,696,379,697,379,696,380,696,379,1772,380,696,380,696,379,696,380,696,380,696,379,696,380,696,384,692,406,670,379,697,379,696,380,701,374,696,380,696,380,696,380,695,380,696,380,696,380,695,406,671,379,696,380,696,406,669,380,697,379,697,379,697,404,1747,379,696,380,695,407,1744,381,696,406,1745,380,1772,380,695,380}, //31C
{5043,2130,381,1771,380,696,379,696,380,696,380,1771,380,696,380,696,380,696,380,695,381,1770,406,671,379,1772,380,1771,380,695,381,1772,380,1771,380,1772,380,1771,407,1745,380,696,379,1772,380,695,405,672,379,696,380,696,380,696,379,697,379,1772,380,696,380,695,380,1771,407,669,380,695,381,696,380,1772,379,696,380,696,380,695,380,697,379,696,380,696,380,695,380,697,379,696,406,670,380,696,379,696,380,696,380,695,380,1773,379,1771,381,1771,380,696,406,670,379,1772,380,696,405,29355,5070,2103,380,1772,406,670,380,695,380,697,379,1771,380,697,379,696,380,696,380,696,380,1771,380,696,380,1771,380,1772,380,695,380,1771,381,1771,380,1772,380,1771,380,1772,380,696,379,1772,380,695,381,696,379,696,380,696,380,696,380,695,380,1771,381,696,379,696,380,1771,381,696,379,697,404,671,380,695,380,697,379,696,380,696,380,696,380,694,381,1771,381,1772,406,669,406,670,379,1771,381,1771,381,1771,380,696,406,669,380,696,380,696,380,695,380,697,379,696,406,670,380,694,382,1770,381,696,405,671,379,696,380,696,380,1771,380,697,405,670,380,695,406,671,380,695,406,670,380,695,381,695,380,696,380,696,380,695,380,696,407,669,380,696,380,695,380,696,380,696,380,695,381,695,380,1772,405,1746,380,1771,381,695,380,1771,381,696,379,696,380,1771,381,1771,380,1771,381,1771,380,1772,380,1772,379,695,381,696,379,696,380,696,380,695,381,695,380,696,380,696,380,696,379,696,380,695,381,696,380,695,380,696,380,696,381,1770,380,696,380,696,380,698,377,696,380,697,379,696,380,696,379,696,380,696,380,695,380,696,381,695,380,696,380,696,379,697,379,696,380,696,380,695,380,695,381,696,380,695,380,696,380,697,379,696,380,696,379,696,380,1772,379,1772,380,696,380,1771,380,696,380,1771,380,1772,380,695,380} //32C
},
// Fan Speed Low
{
{8978, 4502, 508, 600, 536, 600, 535, 1702, 534, 601, 534, 1703, 534, 601, 535, 599, 535, 618, 535, 600, 534, 1703, 534, 1702, 535, 1702, 534, 601, 534, 601, 535, 601, 534, 618, 533, 601, 535, 601, 534, 601, 534, 601, 535, 601, 534, 601, 534, 601, 534, 617, 536, 600, 535, 600, 535, 600, 535, 600, 535, 601, 535, 600, 536, 599, 534, 618, 535, 601, 534, 601, 535, 600, 534, 601, 535, 600, 535, 600, 535, 601, 534, 622, 535, 1702, 535, 1701, 535, 1703, 534, 589, 534}, // 15C
{8978, 4497, 508, 601, 533, 602, 535, 1701, 535, 601, 534, 1703, 534, 601, 536, 598, 535, 618, 534, 601, 534, 1703, 534, 1702, 535, 1702, 533, 602, 534, 602, 533, 601, 535, 1719, 534, 601, 534, 601, 535, 600, 535, 601, 534, 601, 535, 600, 534, 601, 535, 617, 535, 601, 533, 602, 534, 601, 534, 601, 534, 602, 534, 601, 535, 601, 533, 618, 535, 600, 535, 601, 533, 602, 534, 602, 532, 602, 534, 601, 535, 601, 534, 623, 535, 1701, 535, 1701, 536, 600, 534, 1690, 535}, // 16C
{8978, 4525, 507, 601, 534, 602, 533, 1704, 533, 602, 534, 1702, 534, 601, 534, 602, 533, 618, 535, 600, 535, 1702, 534, 1702, 535, 1702, 534, 601, 534, 602, 533, 1703, 534, 618, 534, 603, 532, 602, 533, 602, 534, 601, 533, 602, 534, 601, 535, 600, 534, 618, 535, 601, 534, 601, 534, 601, 534, 601, 535, 601, 534, 600, 535, 601, 534, 618, 534, 600, 536, 600, 535, 601, 533, 602, 534, 601, 534, 601, 535, 601, 534, 622, 535, 1702, 534, 1703, 534, 601, 534, 589, 534}, // 17C
{8978, 4504, 505, 603, 533, 603, 533, 1703, 533, 602, 533, 1704, 534, 601, 533, 602, 533, 620, 533, 601, 533, 1704, 533, 1703, 534, 1703, 533, 602, 533, 603, 532, 1704, 533, 1720, 534, 602, 533, 602, 532, 604, 534, 600, 534, 601, 534, 601, 533, 603, 533, 618, 534, 602, 533, 602, 534, 602, 533, 602, 533, 602, 533, 602, 533, 602, 533, 619, 533, 602, 534, 602, 533, 602, 533, 602, 533, 602, 533, 602, 534, 602, 533, 624, 532, 1704, 534, 601, 534, 1703, 533, 1692, 533}, // 18C
{8978, 4496, 508, 601, 534, 601, 534, 1703, 533, 602, 534, 1702, 534, 602, 534, 601, 533, 619, 534, 601, 534, 1703, 534, 1702, 534, 1703, 534, 601, 534, 1702, 535, 600, 534, 618, 535, 601, 533, 602, 534, 602, 533, 602, 533, 601, 534, 601, 534, 602, 534, 619, 533, 601, 534, 602, 534, 601, 534, 601, 534, 601, 534, 601, 534, 601, 534, 618, 535, 600, 535, 601, 534, 601, 534, 601, 534, 601, 534, 602, 533, 602, 534, 623, 534, 1702, 535, 601, 534, 1702, 535, 589, 534}, // 19C
{8978, 4522, 508, 602, 533, 602, 533, 1703, 534, 602, 533, 1703, 533, 603, 533, 602, 533, 618, 534, 602, 533, 1704, 533, 1703, 533, 1703, 534, 602, 533, 1703, 533, 603, 533, 1719, 534, 602, 533, 602, 534, 601, 533, 602, 534, 601, 534, 602, 533, 602, 533, 619, 534, 601, 533, 603, 533, 602, 533, 602, 533, 602, 534, 602, 556, 578, 534, 618, 534, 602, 533, 602, 533, 602, 534, 601, 534, 602, 533, 601, 534, 602, 533, 624, 533, 1704, 533, 602, 533, 602, 533, 1691, 534}, // 20C
{8978, 4503, 506, 603, 533, 602, 533, 1703, 534, 602, 533, 1703, 533, 602, 533, 603, 532, 620, 533, 602, 533, 1703, 534, 1703, 533, 1703, 534, 601, 560, 1677, 533, 1704, 533, 619, 533, 602, 533, 602, 534, 601, 534, 601, 534, 602, 533, 602, 533, 602, 533, 619, 533, 603, 532, 603, 533, 602, 533, 602, 533, 602, 533, 602, 534, 601, 534, 618, 534, 602, 533, 602, 533, 602, 533, 602, 534, 602, 533, 602, 533, 602, 533, 625, 532, 1703, 534, 602, 533, 604, 531, 590, 533}, // 21C
{8978, 4523, 508, 601, 534, 601, 535, 1702, 534, 600, 535, 1702, 535, 600, 535, 600, 535, 618, 534, 603, 532, 1703, 534, 1702, 534, 1702, 535, 601, 534, 1702, 535, 1702, 535, 1719, 534, 601, 534, 601, 534, 601, 534, 601, 535, 600, 535, 600, 535, 601, 534, 618, 534, 601, 534, 601, 534, 601, 535, 601, 534, 600, 535, 601, 534, 602, 533, 618, 535, 601, 534, 601, 534, 601, 534, 601, 534, 601, 535, 600, 535, 600, 534, 623, 534, 602, 534, 1703, 534, 1702, 534, 1690, 535}, // 22C
{8978, 4504, 507, 601, 534, 601, 534, 1702, 534, 602, 534, 1702, 534, 602, 534, 600, 535, 618, 534, 601, 534, 1702, 535, 1702, 534, 1702, 534, 1703, 534, 601, 535, 600, 535, 618, 533, 601, 535, 601, 534, 601, 535, 600, 535, 600, 534, 602, 534, 600, 535, 618, 534, 601, 534, 602, 533, 601, 535, 601, 535, 600, 534, 601, 535, 600, 534, 618, 534, 601, 535, 601, 535, 600, 534, 601, 534, 601, 535, 600, 534, 601, 535, 622, 535, 601, 535, 1702, 534, 1703, 533, 590, 534}, // 23C
{8978, 4529, 507, 602, 534, 600, 535, 1702, 535, 600, 535, 1703, 533, 602, 533, 601, 535, 617, 535, 601, 534, 1702, 535, 1702, 534, 1702, 534, 1703, 534, 601, 535, 600, 534, 1720, 534, 601, 534, 601, 534, 602, 533, 601, 535, 601, 534, 601, 534, 601, 535, 617, 534, 602, 534, 601, 534, 601, 534, 601, 534, 601, 534, 602, 533, 602, 534, 618, 534, 601, 534, 601, 534, 601, 534, 602, 534, 600, 534, 601, 535, 601, 534, 623, 533, 602, 534, 1702, 534, 602, 534, 1691, 534}, // 24C
{8978, 4529, 506, 603, 533, 602, 533, 1703, 533, 602, 534, 1703, 533, 602, 533, 602, 533, 619, 533, 603, 533, 1703, 533, 1703, 534, 1703, 534, 1702, 534, 602, 533, 1703, 534, 619, 533, 601, 534, 602, 533, 602, 533, 602, 533, 602, 534, 602, 533, 601, 534, 619, 533, 602, 533, 601, 535, 601, 534, 601, 534, 602, 533, 602, 533, 603, 533, 620, 532, 602, 533, 602, 533, 602, 533, 602, 534, 601, 534, 601, 534, 601, 534, 623, 534, 602, 533, 1703, 534, 602, 533, 590, 533}, // 25C
{8978, 4504, 506, 603, 533, 602, 533, 1703, 534, 601, 534, 1703, 533, 602, 534, 602, 533, 619, 533, 602, 533, 1704, 532, 1704, 534, 1702, 533, 1704, 533, 602, 533, 1704, 533, 1720, 534, 602, 533, 601, 534, 602, 533, 602, 533, 602, 533, 603, 532, 602, 535, 617, 534, 602, 534, 601, 533, 602, 533, 602, 534, 601, 533, 603, 533, 602, 533, 620, 532, 602, 533, 603, 532, 603, 533, 602, 533, 601, 534, 602, 533, 602, 533, 624, 533, 602, 534, 601, 534, 1703, 534, 1691, 533}, // 26C
{8978, 4497, 507, 600, 534, 602, 533, 1704, 533, 602, 533, 1704, 533, 602, 533, 602, 533, 619, 533, 602, 533, 1704, 532, 1705, 533, 1703, 533, 1704, 533, 1703, 533, 602, 533, 620, 532, 603, 533, 602, 533, 602, 534, 601, 533, 602, 533, 603, 532, 603, 533, 619, 533, 602, 533, 602, 533, 602, 534, 601, 533, 603, 533, 601, 534, 602, 534, 618, 533, 602, 533, 603, 533, 602, 533, 602, 533, 602, 533, 603, 532, 603, 533, 623, 534, 601, 534, 602, 533, 1704, 532, 591, 533}, // 27C
{8978, 4503, 506, 602, 534, 603, 532, 1704, 532, 603, 532, 1704, 533, 602, 533, 603, 532, 620, 532, 603, 533, 1704, 531, 1705, 532, 1705, 532, 1704, 532, 1704, 533, 603, 532, 1721, 533, 602, 533, 603, 532, 602, 533, 603, 532, 603, 533, 602, 533, 602, 533, 619, 533, 603, 533, 601, 534, 602, 532, 603, 533, 602, 534, 601, 533, 603, 532, 620, 533, 602, 533, 602, 533, 603, 532, 603, 533, 602, 533, 602, 533, 602, 534, 623, 532, 603, 533, 603, 533, 602, 532, 1692, 534}, // 28C
{8978, 4497, 507, 602, 532, 603, 533, 1703, 534, 601, 533, 1704, 533, 603, 532, 602, 534, 619, 532, 603, 533, 1704, 532, 1704, 533, 1704, 532, 1704, 534, 1702, 533, 1704, 533, 619, 533, 602, 534, 602, 533, 602, 532, 602, 534, 603, 533, 601, 533, 602, 533, 619, 533, 602, 533, 603, 533, 602, 533, 602, 533, 602, 533, 603, 533, 602, 533, 619, 533, 602, 533, 602, 533, 603, 533, 602, 532, 603, 532, 603, 533, 602, 533, 624, 533, 602, 533, 603, 532, 603, 533, 589, 534}, // 29C
{8978, 4504, 507, 601, 533, 603, 533, 1703, 533, 602, 534, 1703, 533, 602, 533, 602, 534, 618, 533, 602, 534, 1703, 533, 1704, 533, 1703, 534, 1703, 533, 1704, 532, 1704, 533, 1720, 534, 602, 533, 602, 533, 602, 533, 602, 533, 602, 533, 602, 534, 601, 534, 619, 533, 602, 533, 602, 533, 602, 534, 601, 534, 602, 533, 601, 534, 602, 534, 619, 532, 602, 534, 602, 532, 603, 533, 602, 533, 602, 533, 602, 534, 601, 533, 624, 533, 1704, 533, 1703, 534, 1703, 533, 1691, 534} // 30C
{5070,2104,380,1771,380,695,407,670,380,696,380,1772,406,668,381,696,380,696,380,695,380,1772,405,670,381,1772,379,1772,407,669,406,1745,380,1772,380,1771,380,1772,380,1771,406,671,406,1745,380,695,407,670,379,696,380,696,406,670,380,695,407,1745,405,671,380,695,407,1744,381,696,380,696,406,670,380,1771,380,696,405,671,405,671,405,670,380,696,380,696,380,696,406,670,405,670,405,671,405,671,379,696,380,696,380,696,380,1771,407,1745,407,1745,405,670,407,669,380,1771,408,668,381,29359,5066,2130,380,1771,380,697,378,696,381,696,380,1771,380,696,379,696,381,696,379,696,380,1772,405,671,379,1772,406,1746,380,696,407,1744,380,1772,379,1772,380,1772,379,1772,380,696,380,1772,379,697,379,696,379,697,380,696,379,697,405,670,380,1771,380,697,379,696,380,1772,380,696,379,696,380,696,379,697,406,670,379,697,405,670,380,696,380,697,379,1772,379,1773,379,696,379,697,379,1772,406,1746,405,1746,380,695,381,696,406,669,380,696,380,695,384,692,381,696,379,696,405,671,406,1746,379,696,380,696,406,670,380,697,405,1746,379,695,381,696,379,697,379,696,380,696,380,696,379,697,405,670,380,697,379,696,380,696,379,697,379,696,406,670,380,696,380,696,379,696,405,671,405,671,379,1772,406,1746,380,1771,406,670,380,696,406,670,379,696,380,1771,381,1772,406,1745,406,1746,406,1745,380,696,380,697,379,696,379,697,379,697,379,696,380,697,379,695,380,697,406,670,379,696,379,697,379,695,381,696,405,671,379,697,379,1773,379,697,379,696,380,695,407,669,380,697,379,696,380,696,379,696,380,697,379,696,380,695,381,696,379,696,380,696,380,696,380,696,379,696,380,696,380,696,405,671,380,695,380,696,380,696,379,696,380,695,381,696,380,1772,379,1772,380,696,407,1745,379,697,386,1765,380,696,379,696,380}, //16C
{5043,2131,379,1773,379,696,380,695,381,696,379,1771,381,696,380,696,379,696,380,696,380,1772,380,696,379,1772,380,1772,379,697,379,1772,380,1772,379,1772,380,1771,380,1772,405,671,380,1771,406,670,380,697,379,696,380,696,379,697,379,697,379,1773,379,696,379,696,380,1772,379,697,379,697,405,670,379,1773,379,697,378,698,379,696,380,695,380,697,379,696,380,696,380,696,380,696,379,696,380,696,380,696,379,697,379,696,380,1772,379,1772,380,1772,380,696,380,696,379,1772,406,671,378,29383,5043,2130,380,1772,379,697,379,696,380,697,379,1771,380,696,380,697,379,696,379,697,379,1772,380,695,381,1772,379,1773,379,697,378,1772,380,1772,380,1771,380,1772,379,1772,380,696,380,1772,405,671,380,696,379,697,379,696,404,672,380,694,381,1772,380,696,380,695,381,1771,380,696,380,697,378,696,380,697,379,696,380,696,379,696,380,697,379,696,406,1745,380,1772,380,696,380,696,379,1772,380,1772,380,1771,380,695,381,696,380,696,379,697,379,697,379,696,380,695,381,696,379,697,379,1771,380,696,405,671,380,696,380,696,380,1771,406,671,379,695,381,696,379,696,380,696,380,696,380,696,380,696,379,696,380,696,380,696,379,698,378,697,379,696,380,696,380,696,405,670,380,696,380,696,380,696,379,697,379,697,405,1746,380,695,380,697,379,697,379,1771,380,1772,380,1772,379,1773,386,1765,405,671,379,697,379,696,380,696,380,696,379,697,379,696,380,696,380,696,379,697,405,671,379,696,380,696,379,697,379,696,406,670,379,1773,379,697,379,697,379,697,379,696,380,696,379,697,379,696,405,672,378,697,406,670,379,695,381,696,380,696,380,695,380,697,406,669,380,696,380,695,380,697,379,697,378,696,381,695,406,670,380,696,380,696,380,696,380,1771,406,670,405,1746,380,1772,380,696,382,1769,380,696,406,670,380}, //17C
{5043,2131,379,1773,379,697,379,696,405,672,378,1773,405,671,379,696,380,696,379,696,380,1772,380,697,379,1771,380,1773,379,696,379,1772,380,1772,380,1772,379,1772,380,1771,380,697,379,1772,380,696,379,697,379,697,379,696,379,697,379,697,379,1772,379,696,380,696,380,1773,378,697,379,696,380,697,379,1772,380,695,380,697,379,697,379,696,380,696,379,697,379,697,379,697,378,697,379,696,380,697,379,696,380,697,379,696,379,1772,405,1748,380,1771,379,697,378,697,380,1771,380,697,379,29382,5043,2130,380,1773,378,697,379,697,404,670,380,1773,379,696,406,671,378,697,379,697,379,1772,380,696,379,1773,379,1773,379,696,380,1771,380,1773,378,1773,379,1772,405,1746,380,696,379,1774,379,695,380,696,380,696,380,696,379,698,378,696,380,1773,379,697,378,696,406,1746,380,696,380,696,379,697,379,697,379,697,379,696,379,697,379,696,380,696,379,1773,379,1774,378,696,379,697,379,1772,379,1774,378,1773,379,697,379,696,379,697,379,696,380,697,379,696,379,697,379,697,378,697,380,1772,379,697,379,696,380,696,379,698,378,1773,406,670,378,697,379,697,379,697,378,697,380,696,379,697,405,670,380,696,379,697,380,696,379,696,380,697,379,697,378,697,379,697,379,697,379,695,380,698,378,1773,379,696,380,696,379,1773,379,697,379,696,380,697,378,1772,380,1772,379,1772,379,1773,380,1772,378,698,379,696,380,696,379,697,379,696,380,697,379,696,379,697,379,697,379,696,406,670,379,696,380,697,405,671,378,697,379,696,380,1772,379,697,384,692,379,697,379,696,380,697,378,702,374,697,379,697,379,696,379,698,378,696,380,697,379,696,379,697,380,695,379,698,379,697,379,696,380,695,380,697,379,697,378,698,378,697,379,697,379,697,378,697,379,1773,379,1772,379,1773,379,1772,379,697,380,1771,380,697,379,697,378}, //18C
{5068,2105,381,1770,381,695,406,670,410,666,380,1771,407,669,380,696,407,669,404,672,380,1771,380,696,379,1772,406,1745,408,669,380,1771,380,1771,381,1771,406,1746,407,1744,405,672,379,1772,405,670,407,670,379,696,407,669,380,696,380,695,406,1746,406,670,380,695,381,1771,405,670,381,695,407,669,380,1772,380,696,380,696,407,668,406,670,380,696,405,670,380,697,406,669,380,696,406,670,380,695,405,671,407,669,380,696,401,1750,380,1771,407,1745,380,696,380,696,380,1771,380,696,380,29382,5043,2131,405,1745,408,669,380,695,380,696,380,1772,380,695,380,696,406,670,380,695,381,1772,405,670,380,1771,380,1772,380,695,381,1771,407,1745,380,1771,407,1745,380,1771,380,696,381,1771,379,697,380,695,380,696,380,696,380,696,379,696,381,1771,380,696,379,696,406,1746,406,670,379,697,380,696,379,696,407,669,406,670,382,693,405,671,380,696,380,1775,376,1772,407,669,406,669,381,1771,380,1772,405,1746,380,696,406,670,380,696,380,695,380,696,405,671,380,696,406,669,380,696,407,1744,380,696,380,696,380,695,409,668,380,1771,406,670,406,670,380,696,380,695,407,669,380,695,381,695,406,670,406,670,405,671,407,669,405,671,379,696,380,696,380,696,379,697,406,669,380,696,380,696,380,696,406,1744,407,670,380,1771,406,671,379,696,406,670,406,1745,380,1771,406,1746,407,1745,380,1771,381,698,377,696,380,695,380,696,381,696,379,696,380,696,380,696,406,669,380,696,380,696,380,696,380,696,379,696,407,668,381,696,380,1771,380,695,380,697,405,670,380,697,379,696,380,696,380,696,379,697,379,695,381,696,380,695,408,668,380,696,380,696,380,695,406,670,380,696,380,696,380,695,380,696,407,669,407,669,380,695,407,669,380,696,406,670,380,1771,406,670,380,695,407,670,380,1771,406,1745,381,695,381,695,380}, //19C
{5069,2104,380,1772,380,695,405,671,380,696,380,1771,380,696,380,696,406,670,380,695,406,1746,380,696,406,1745,407,1744,406,671,405,1746,406,1745,407,1745,405,1747,405,1747,379,696,407,1744,404,673,379,696,406,670,380,696,405,671,379,696,380,1772,380,695,407,669,398,1754,380,696,379,696,380,696,406,1745,406,670,407,670,379,696,380,695,381,696,379,696,407,669,406,670,405,671,379,696,380,696,380,696,380,695,381,696,406,1745,380,1771,380,1773,379,696,406,669,380,1772,381,695,380,29382,5043,2131,406,1745,405,670,380,696,380,696,407,1744,380,696,406,670,380,696,379,697,379,1772,380,696,380,1771,380,1773,379,695,381,1771,405,1746,406,1746,380,1772,380,1772,379,697,379,1772,380,696,379,697,379,696,380,696,406,671,378,696,380,1772,380,696,380,695,406,1746,379,696,381,696,379,696,380,696,406,670,405,670,407,670,405,670,406,669,407,1744,381,1772,380,696,410,665,380,1772,380,1771,380,1772,380,696,405,670,380,696,380,696,380,696,379,697,406,669,380,696,406,670,405,1746,380,696,407,669,380,696,379,696,380,1772,380,696,405,671,379,696,380,696,380,696,380,696,379,696,406,671,379,696,380,696,380,696,405,670,380,696,380,696,380,695,380,696,380,696,380,696,380,696,379,1773,379,1771,408,668,380,1771,381,696,406,670,379,696,380,1772,379,1772,406,1746,379,1772,406,1746,380,696,380,695,380,697,379,696,405,671,380,696,379,696,380,696,405,671,380,695,380,696,380,696,406,670,380,696,379,696,406,670,380,1771,405,672,379,696,380,696,380,696,380,696,379,697,379,696,406,670,380,696,379,697,379,696,380,697,404,670,380,697,379,696,380,696,379,697,405,670,380,696,380,696,406,670,380,696,379,696,380,696,380,695,406,670,380,1772,380,1772,379,697,379,696,380,1771,380,1772,406,670,406,670,406}, //20C
{5044,2129,380,1772,405,671,380,695,406,669,407,1745,408,669,379,696,406,669,381,695,408,1744,381,695,407,1744,381,1771,380,696,380,1771,381,1771,380,1772,379,1772,406,1745,407,669,381,1771,406,669,381,696,407,668,380,696,407,668,407,670,380,1771,380,696,380,695,407,1745,380,696,380,696,379,697,407,1744,380,696,380,695,381,695,380,696,406,670,380,695,407,669,381,695,407,669,406,670,380,695,381,695,407,669,381,695,380,1771,381,1771,408,1744,379,696,407,669,380,1771,407,669,381,29381,5044,2129,380,1772,380,696,380,696,379,697,379,1772,380,696,404,671,381,695,380,696,380,1771,381,695,405,1747,380,1772,379,696,380,1772,406,1745,380,1772,380,1772,380,1771,380,696,406,1745,406,669,381,696,379,696,380,696,380,696,380,695,381,1771,406,670,380,696,380,1771,407,669,406,670,380,696,380,696,380,695,407,669,380,696,380,696,406,670,407,1744,407,1744,382,694,380,696,405,1746,380,1772,406,1746,380,695,380,696,380,696,380,696,380,695,380,696,404,672,380,696,380,696,406,1745,380,695,381,696,406,670,379,696,380,1771,380,697,379,696,380,696,380,695,381,695,406,671,379,695,381,696,380,695,405,671,380,696,406,670,380,695,380,697,379,696,380,696,406,669,380,696,380,696,406,670,406,669,380,1772,380,1771,381,695,380,697,379,696,379,1772,381,1770,408,1744,381,1771,380,1771,380,696,380,696,380,696,406,670,380,695,380,696,380,696,406,669,380,697,379,696,380,696,380,696,379,697,405,670,380,696,380,696,380,1771,380,696,407,669,406,670,405,671,407,668,380,696,380,696,380,695,380,696,380,696,406,670,380,695,380,696,380,696,405,671,406,669,380,696,380,696,380,696,380,695,380,697,405,670,406,670,379,696,381,695,407,670,379,1771,381,695,381,1771,406,670,380,1772,379,1772,380,695,407,669,380}, //21C
{5092,2104,380,1771,380,696,380,696,380,696,404,1747,380,696,405,671,379,696,381,695,407,1744,381,696,379,1772,407,1744,381,695,406,1746,380,1771,381,1771,380,1771,407,1745,380,696,380,1771,381,695,407,669,406,670,380,696,404,671,380,696,380,1771,381,696,379,696,380,1772,380,695,382,694,380,696,406,1746,380,698,377,696,407,669,406,669,381,696,380,696,379,696,380,696,380,696,379,696,407,670,406,669,380,696,380,695,380,1772,380,1771,381,1771,380,696,380,696,411,1740,380,696,380,29382,5043,2130,380,1771,380,696,380,696,379,696,407,1745,406,669,381,695,381,695,407,669,380,1772,379,697,379,1772,406,1746,379,696,380,1772,380,1771,380,1772,380,1771,381,1771,380,696,405,1746,380,696,380,696,406,670,406,669,406,670,381,695,380,1772,380,696,379,696,380,1772,379,697,406,669,407,669,406,670,406,670,379,697,379,696,406,670,380,696,379,1772,380,1772,406,670,380,695,406,1746,380,1771,406,1745,381,696,379,696,380,696,380,696,380,695,381,695,380,696,405,671,380,696,379,1772,406,670,380,696,380,695,381,695,380,1772,407,669,380,695,380,696,380,696,380,696,406,669,380,696,380,696,380,695,381,695,380,696,406,670,380,695,408,668,380,696,380,696,380,696,380,696,380,696,379,1771,381,696,379,1772,405,1747,380,696,380,695,407,669,380,1771,380,1772,380,1771,385,1767,407,1745,379,696,380,697,404,671,380,695,381,695,380,696,380,696,380,696,380,696,379,696,380,696,380,696,380,695,407,670,379,696,406,670,380,1772,379,696,380,696,380,695,380,696,380,696,395,680,381,696,379,696,380,696,380,696,406,670,379,697,379,696,380,696,380,695,380,697,379,697,379,696,380,696,379,697,379,696,380,696,380,696,380,696,380,695,380,696,380,1772,379,1772,380,1772,407,668,408,1744,380,1772,404,671,380,696,380}, //22C
{5042,2131,379,1772,406,671,379,696,405,671,380,1772,405,670,406,671,379,696,379,697,405,1746,380,696,379,1772,380,1772,379,697,379,1772,380,1772,379,1773,379,1772,379,1772,380,696,380,1772,406,670,379,697,379,696,405,671,379,697,379,697,379,1772,379,696,406,671,379,1772,380,695,380,698,378,697,379,1772,379,697,379,696,379,698,378,697,379,698,378,697,379,696,380,696,379,697,379,696,380,696,380,697,379,695,380,696,380,1772,379,1773,379,1772,379,697,379,697,379,1772,379,697,379,29359,5067,2130,406,1745,380,696,380,697,379,696,379,1773,379,696,380,697,378,697,379,696,380,1772,379,696,380,1772,379,1772,380,696,380,1772,379,1773,379,1772,379,1773,379,1771,381,695,380,1772,380,697,378,697,379,697,379,696,406,670,380,696,379,1773,379,696,380,696,380,1772,405,671,379,696,380,696,379,696,380,697,379,696,380,697,378,697,379,697,378,1773,380,1772,379,696,380,697,378,1772,380,1771,380,1773,379,696,380,697,379,697,378,697,379,696,379,696,381,696,379,697,379,697,379,1772,379,696,381,696,379,696,380,696,379,1772,380,696,380,695,380,697,379,697,405,671,379,696,405,671,379,697,379,696,380,696,379,697,379,697,379,697,379,696,380,696,379,697,379,697,379,696,380,696,379,697,406,1746,378,1772,380,1772,379,697,379,697,379,697,379,1772,379,1772,380,1772,379,1773,405,1747,379,696,379,697,379,697,379,697,379,697,378,696,380,697,379,696,379,697,379,697,406,669,406,671,379,696,379,697,379,697,379,696,380,1772,379,697,379,697,379,697,379,696,379,697,379,697,379,697,379,696,379,697,405,671,379,696,379,697,379,697,379,696,380,696,405,671,380,696,379,697,379,696,380,696,380,696,379,697,379,696,380,696,380,696,380,695,380,1772,380,696,380,696,379,1772,380,1772,379,1772,380,696,380,696,379}, //23C
{5068,2104,381,1771,407,669,380,696,406,670,379,1772,380,696,406,670,380,694,382,696,405,1745,406,671,380,1771,380,1772,405,671,405,1746,380,1771,380,1772,380,1772,380,1771,380,697,379,1770,381,696,380,696,407,669,380,696,379,697,379,696,380,1772,379,696,380,696,380,1772,379,696,380,696,407,669,405,1746,380,696,380,696,380,695,380,696,380,696,382,694,379,696,407,669,406,670,405,671,380,696,379,697,379,697,379,696,406,1746,379,1772,380,1772,406,669,380,696,385,1766,380,696,380,29381,5044,2130,380,1771,380,696,380,696,406,669,380,1771,406,670,381,696,380,695,380,697,406,1745,380,696,379,1772,380,1772,379,696,407,1745,380,1771,380,1773,404,1746,405,1747,380,696,405,1746,407,669,380,696,379,696,380,696,407,669,380,696,380,1771,406,669,381,696,379,1772,380,696,406,670,380,695,380,696,380,696,380,696,380,696,380,695,380,696,406,1744,381,1771,381,696,379,697,379,1772,405,1747,379,1771,381,696,406,670,380,695,380,696,380,696,380,696,379,697,385,690,380,695,406,1746,405,672,379,696,405,671,405,670,380,1772,380,696,379,696,381,695,380,696,380,696,380,695,380,696,380,695,381,696,379,697,379,696,380,696,406,669,381,696,379,697,404,671,405,671,379,697,379,697,379,1771,380,1772,380,1771,380,1772,380,696,380,695,381,696,379,1772,380,1772,379,1772,380,1772,379,1772,380,696,380,696,379,697,379,696,406,670,405,671,404,672,404,671,380,696,380,696,406,670,379,697,379,696,380,695,381,696,379,696,380,1771,380,697,379,697,379,695,381,696,379,697,379,696,407,669,380,696,405,670,380,696,380,696,380,696,379,696,380,696,380,695,407,670,379,696,380,696,380,696,380,695,406,670,380,696,380,696,380,696,380,696,379,696,407,1745,379,1772,380,696,380,1771,407,1745,380,1771,380,695,381,696,406}, //24C
{5043,2130,380,1772,379,697,379,697,379,697,405,1747,379,695,380,697,379,697,379,696,380,1772,379,695,381,1771,406,1745,381,696,380,1771,380,1772,379,1772,405,1747,380,1772,379,696,407,1744,380,697,379,697,379,696,406,670,380,696,379,697,404,1746,381,696,405,671,379,1771,381,697,378,696,407,669,380,1772,379,697,379,697,379,697,379,695,380,698,403,672,379,696,380,696,379,696,380,696,380,696,380,696,380,696,379,697,379,1772,379,1772,405,1747,379,696,380,696,380,1772,405,671,405,29355,5044,2130,380,1772,379,697,379,696,380,695,381,1771,406,671,405,670,380,695,380,696,380,1772,380,696,406,1744,381,1772,379,696,380,1772,380,1771,380,1772,380,1772,379,1772,380,696,380,1771,380,695,381,696,405,671,379,696,380,697,379,697,378,1773,405,670,380,696,380,1772,405,671,379,696,380,696,379,696,406,675,401,670,380,696,405,671,379,696,380,1771,381,1771,384,692,379,697,379,1772,380,1772,380,1771,380,696,379,697,379,697,379,697,379,696,380,696,406,670,379,696,380,696,380,1771,407,670,379,697,404,670,381,696,405,1747,379,696,379,696,380,696,380,696,380,696,379,697,379,696,380,696,380,696,379,697,379,696,380,696,380,696,380,696,379,696,405,671,380,696,379,697,379,696,380,696,380,696,380,696,379,697,379,1772,379,696,380,697,379,1772,379,1772,380,1777,375,1771,380,1772,406,671,404,671,379,696,380,695,407,670,405,671,405,670,380,696,379,697,406,670,379,696,406,670,379,696,380,697,379,697,379,696,406,1745,380,696,380,696,380,696,379,696,380,696,379,696,380,696,380,697,379,696,380,696,379,696,380,696,380,696,380,696,380,696,405,671,379,697,404,671,379,696,380,696,380,696,405,671,379,697,379,697,379,696,406,670,379,1773,405,670,380,1771,406,1746,380,1771,408,1744,406,670,379,696,385}, //25C
{5042,2131,380,1772,406,670,379,696,380,696,380,1771,380,696,379,697,406,670,379,696,380,1772,379,697,379,1772,379,1773,379,697,379,1772,379,1772,380,1772,380,1771,380,1772,382,694,379,1772,380,696,379,700,376,697,404,671,380,696,379,696,380,1772,380,696,379,697,379,1772,406,671,379,696,379,697,379,1772,380,696,379,696,380,697,404,672,379,696,380,696,379,697,379,696,380,696,379,697,379,696,380,696,380,696,380,696,379,1772,380,1772,379,1773,379,696,379,696,380,1772,404,672,379,29382,5043,2130,380,1772,379,697,379,696,380,696,380,1772,379,696,380,696,380,696,406,670,379,1772,380,696,379,1772,380,1772,380,695,406,1747,379,1772,405,1747,379,1771,406,1747,379,696,380,1772,379,697,405,671,379,696,379,697,379,696,406,670,380,1772,406,669,380,696,380,1771,380,696,380,697,379,696,405,671,405,670,380,696,380,695,380,696,380,697,379,1771,407,1745,380,696,380,695,406,1746,380,1771,380,1772,380,697,405,670,379,697,379,696,380,696,380,695,380,697,379,697,379,697,379,1772,406,670,404,671,380,696,379,697,380,1771,405,671,379,697,379,697,381,695,380,695,380,696,379,696,380,696,380,696,380,695,380,697,379,696,380,696,406,671,378,697,405,670,379,697,380,696,379,697,379,1772,380,696,379,697,379,696,380,1772,379,697,379,696,406,1746,405,1746,380,1772,379,1772,380,1771,380,696,380,696,380,696,380,696,379,697,379,696,380,696,380,695,380,697,379,697,379,696,379,696,380,697,379,697,379,697,379,696,379,1772,380,696,380,695,380,696,382,695,379,696,380,696,379,697,379,697,379,696,407,669,379,697,379,696,379,696,380,697,406,669,380,696,406,670,380,696,406,669,380,696,380,696,380,696,379,696,406,671,379,696,405,671,379,1772,406,1746,379,1772,380,1771,380,1772,380,1772,379,697,379,698,378}, //26C
{5043,2130,380,1771,380,696,406,670,380,696,407,1744,380,695,407,670,380,695,381,695,381,1771,406,669,406,1746,380,1772,380,695,406,1746,380,1772,405,1746,407,1744,381,1771,380,696,380,1771,380,696,380,696,407,669,380,695,407,669,380,696,380,1771,380,696,380,696,380,1771,406,670,380,696,380,695,381,1771,405,671,380,696,405,670,406,670,407,669,406,670,407,668,406,670,380,696,380,695,406,671,404,671,380,696,380,695,407,1750,375,1772,406,1745,380,696,380,696,407,1744,406,670,380,29382,5042,2130,380,1772,380,695,381,696,380,696,379,1772,406,670,380,695,380,696,380,696,380,1771,380,696,380,1772,405,1747,404,670,407,1746,379,1772,380,1771,381,1771,406,1746,379,696,380,1771,381,696,381,694,380,696,380,696,380,696,406,669,380,1772,380,696,379,697,379,1772,380,695,380,697,379,696,380,696,380,696,379,696,380,696,381,694,381,696,406,1745,380,1771,381,695,407,669,380,1772,380,1771,406,1745,380,696,406,670,380,696,405,670,381,696,379,696,406,670,380,695,381,696,379,1772,380,696,399,676,381,695,380,695,406,1747,406,669,380,696,380,696,405,671,380,695,406,670,380,696,406,670,406,669,380,696,407,669,405,671,407,668,406,670,380,696,406,669,380,697,405,670,380,696,405,671,393,1758,381,695,380,696,380,1771,404,672,406,669,408,1744,380,1771,380,1772,406,1745,380,1772,380,696,406,670,379,697,379,696,380,695,381,696,405,670,380,696,380,696,380,695,381,695,380,695,381,696,406,670,379,697,405,670,380,1771,380,696,380,696,406,670,380,695,380,696,380,696,380,696,380,695,380,696,406,670,406,669,381,696,380,695,406,670,406,670,380,696,379,696,380,696,380,696,380,695,381,695,380,696,380,695,381,696,379,696,380,696,380,1771,381,695,380,696,380,696,380,695,380,696,380,1772,406,669,380}, //27C
{5042,2130,407,1745,380,696,380,695,408,668,380,1771,407,669,380,696,380,696,380,696,380,1771,380,696,380,1772,379,1772,380,696,400,1751,407,1745,406,1745,380,1772,406,1745,380,696,380,1771,406,671,405,670,406,670,380,696,406,669,406,670,380,1772,379,696,380,696,380,1771,381,695,380,697,405,670,380,1771,380,696,380,696,405,671,406,670,406,669,380,696,380,695,381,696,379,696,406,670,406,670,406,669,380,696,380,696,380,1771,381,1771,380,1771,381,695,405,671,380,1771,408,668,380,29382,5043,2130,380,1771,380,696,380,696,379,697,379,1773,379,696,406,670,379,696,380,696,380,1772,379,697,379,1772,380,1772,379,696,380,1773,378,1773,379,1772,379,1772,380,1772,379,697,379,1772,406,670,379,698,405,669,380,696,380,696,379,697,379,1772,380,696,379,697,379,1772,380,696,379,697,379,697,379,696,379,697,380,696,379,697,379,696,379,697,406,1745,380,1772,380,696,379,697,379,1771,380,1773,379,1772,380,696,379,696,380,696,380,697,405,670,379,696,380,697,378,697,380,696,379,1772,406,670,380,696,379,697,379,696,380,1772,379,697,379,697,379,696,379,697,379,696,380,697,379,696,380,696,379,696,380,696,380,696,379,696,380,697,405,669,381,696,380,695,380,697,404,671,405,671,380,1771,380,1771,407,670,379,696,380,1773,405,670,379,697,379,1772,402,1749,380,1772,380,1771,380,1772,380,696,380,695,380,696,380,696,380,696,380,695,380,696,380,696,379,697,379,696,380,696,380,696,380,696,379,696,380,696,380,696,406,1745,380,696,380,696,379,697,379,697,379,696,380,696,379,697,379,697,406,670,405,670,379,697,379,695,381,696,406,670,380,696,379,697,379,696,406,670,379,696,380,696,380,697,379,696,380,696,379,697,379,696,380,696,380,1771,380,1772,380,696,379,697,379,696,380,696,380,1772,379,697,379}, //28C
{5043,2130,407,1744,381,695,380,696,407,669,406,1745,407,669,406,670,380,696,380,696,406,1745,406,669,406,1747,384,1766,407,669,381,1771,407,1744,384,1768,407,1744,407,1745,407,669,401,1751,380,695,407,669,380,695,407,669,381,695,380,696,380,1771,380,696,405,671,406,1745,406,670,380,696,380,696,380,1771,380,696,406,669,407,669,408,668,380,696,407,669,405,670,407,670,406,668,406,671,406,669,406,670,406,670,406,670,380,1771,407,1745,407,1744,380,695,381,696,380,1772,406,669,406,29355,5070,2104,406,1745,380,696,380,696,380,696,379,1772,406,670,380,696,379,696,380,696,380,1772,385,690,407,1744,408,1744,380,696,405,1747,406,1745,406,1746,380,1771,405,1746,381,695,380,1772,406,670,380,695,407,669,405,671,380,696,406,670,405,1746,407,669,380,695,380,1772,380,695,407,669,380,697,405,670,380,696,407,668,406,670,405,671,406,670,406,1745,380,1772,406,669,407,669,380,1771,380,1772,380,1772,380,696,379,696,380,696,406,670,380,696,380,695,380,696,380,696,380,695,380,1772,389,687,380,696,405,670,380,696,406,1745,381,695,380,696,380,696,406,669,381,695,407,669,405,671,379,696,381,695,405,671,406,670,380,696,406,669,380,695,381,696,406,669,380,696,406,670,405,670,381,695,406,671,379,1771,380,697,379,1771,381,696,406,669,380,1771,407,1746,380,1771,380,1771,380,1772,406,670,380,695,406,670,406,670,406,669,381,695,407,669,407,668,406,669,382,695,380,696,380,696,403,673,380,696,380,695,406,670,405,1746,406,670,380,696,380,695,406,670,380,697,379,696,380,696,380,695,380,696,406,670,380,696,380,695,380,696,380,696,380,695,381,695,407,669,406,670,380,695,380,696,380,696,407,669,406,669,380,697,379,696,380,696,406,1745,381,695,380,1772,380,695,384,692,380,695,407,1745,381,696,379}, //29C
{5043,2130,380,1772,404,671,406,670,406,670,380,1771,380,696,380,696,406,670,379,696,387,1765,380,696,380,1771,380,1772,405,670,381,1771,380,1772,405,1746,380,1771,381,1771,405,671,380,1771,380,696,380,695,407,670,380,695,406,670,380,696,406,1745,381,695,406,670,407,1744,406,670,406,670,380,695,381,1771,380,696,406,670,406,669,407,669,406,670,380,695,381,696,405,670,380,696,380,695,381,695,407,669,380,696,405,670,381,1771,406,1745,381,1771,380,696,406,669,381,1771,380,696,380,29381,5044,2129,406,1746,406,670,379,696,381,695,380,1772,380,695,381,696,379,696,380,696,380,1770,381,696,407,1744,380,1772,407,669,380,1772,405,1745,407,1745,406,1746,407,1744,380,696,380,1771,381,695,380,696,406,670,380,695,381,695,380,696,380,1771,381,695,380,696,410,1741,381,695,406,670,380,695,381,695,381,695,407,669,406,669,380,696,407,669,380,1771,381,1771,380,696,380,696,406,1745,380,1772,406,1745,380,696,380,695,381,696,405,670,407,669,380,696,380,696,380,695,380,696,407,1745,380,695,407,669,406,669,381,695,407,1745,408,668,406,669,381,695,406,670,380,697,379,695,381,696,380,695,406,669,408,669,380,695,405,671,380,696,380,695,406,670,380,696,380,696,380,695,381,695,380,1772,380,695,381,1771,380,696,380,1771,380,696,380,696,380,1771,381,1771,380,1771,380,1771,381,1771,407,669,407,669,381,694,407,669,407,669,380,696,380,696,406,669,381,695,380,696,380,696,405,670,381,695,380,695,381,696,379,696,381,1771,380,695,407,669,391,685,406,670,380,695,381,695,407,669,381,695,406,670,405,670,380,696,380,696,380,695,380,698,405,669,406,670,380,695,408,668,405,671,407,669,406,670,380,695,380,696,380,696,406,669,381,695,406,1746,380,1772,380,1771,406,670,406,669,380,696,380,1772,406,669,380}, //30C
{5043,2129,380,1773,379,696,379,697,380,696,380,1772,404,672,379,697,378,697,379,697,379,1771,380,697,379,1772,406,1746,379,696,380,1772,405,1747,379,1772,380,1771,380,1773,378,697,379,1772,380,697,379,696,379,697,380,695,380,696,379,697,380,1771,380,696,380,696,379,1772,380,696,380,696,380,696,379,1772,379,698,379,695,380,697,379,697,405,670,379,697,405,670,380,696,380,696,407,669,379,696,380,697,379,696,379,696,380,1772,380,1772,379,1772,379,698,378,697,379,1772,407,669,380,29382,5068,2105,379,1772,379,697,379,696,380,697,379,1772,379,698,378,696,406,671,379,696,380,1771,380,697,379,1772,379,1772,380,696,379,1772,380,1772,406,1746,379,1773,378,1773,405,671,379,1772,379,697,406,668,381,696,379,697,379,697,379,697,379,1771,380,696,380,695,381,1772,380,695,380,697,379,697,379,696,380,696,380,696,405,670,380,696,379,696,407,1746,379,1772,379,696,380,697,379,1771,380,1772,380,1771,380,697,379,696,380,696,406,670,405,670,380,697,378,696,380,697,379,696,380,1772,379,697,379,697,379,696,380,696,379,1772,380,697,379,696,379,697,379,697,378,698,379,696,380,696,379,697,379,696,380,695,381,696,379,696,380,697,378,698,379,697,378,697,406,670,379,696,379,696,380,697,379,1772,380,1771,380,697,405,1746,405,671,379,696,380,1772,380,1772,379,1772,379,1772,380,1772,379,697,379,697,379,696,379,697,379,696,380,696,380,696,380,696,379,696,380,697,379,695,380,697,379,697,379,697,379,696,380,696,379,1773,379,696,380,695,380,696,380,697,379,696,379,697,379,697,379,697,378,698,378,698,378,696,380,696,380,696,380,696,379,696,380,696,391,685,380,696,380,696,379,697,405,670,380,696,380,696,379,696,406,670,407,669,379,1772,380,696,380,696,405,1747,405,670,380,696,380,1771,380,696,380}, //31C
{5043,2130,407,1744,380,696,380,696,405,670,406,1746,406,670,405,670,380,697,379,696,380,1772,405,670,381,1771,380,1771,380,695,381,1772,379,1772,380,1772,380,1771,380,1772,380,695,407,1745,380,696,379,697,379,696,407,669,380,696,406,669,380,1772,380,696,379,697,405,1746,380,696,379,696,380,697,379,1772,385,690,380,696,380,696,380,696,380,696,380,695,380,696,380,696,380,695,407,669,380,696,405,671,380,696,379,696,380,1771,406,1746,407,1745,380,696,379,696,435,1716,406,671,379,29382,5069,2104,380,1772,405,670,380,696,380,697,379,1771,380,696,382,694,379,696,406,670,405,1747,380,696,379,1772,406,1745,381,695,380,1771,381,1771,380,1772,406,1745,380,1772,406,670,379,1772,380,696,380,696,379,696,380,697,379,696,407,669,380,1771,380,696,380,696,406,1745,380,696,380,696,380,696,379,697,379,696,394,682,380,695,407,670,404,672,379,1771,380,1772,380,696,405,670,380,1772,380,1771,380,1772,380,696,379,697,405,670,380,696,380,696,406,670,379,697,379,696,380,695,381,1771,380,696,380,696,380,696,406,669,380,1772,380,695,406,670,380,696,379,697,405,671,405,670,406,670,380,696,379,696,406,671,379,696,380,695,380,696,380,696,380,696,380,696,405,670,380,696,406,669,381,1772,380,1771,380,1771,380,696,405,1747,380,695,380,696,380,1772,379,1772,406,1747,379,1771,380,1772,379,697,379,696,380,695,381,696,379,696,380,696,380,696,405,671,407,669,379,696,380,696,406,670,379,696,380,697,379,696,405,670,380,1772,380,696,380,696,379,696,380,696,406,669,381,696,405,671,379,697,379,696,380,695,380,696,380,696,380,696,380,696,379,697,379,697,379,696,380,696,379,696,407,669,380,696,380,696,379,696,380,696,406,670,380,696,405,1746,380,1772,405,671,379,1772,380,696,380,695,380,1772,380,696,379} //32C
}};
const uint16_t ir_code_fan[4][91] = {
{8976, 4498, 559, 551, 584, 550, 560, 1677, 586, 550, 584, 1652, 585, 551, 560, 575, 585, 568, 559, 576, 585, 551, 585, 550, 584, 552, 559, 1677, 584, 1653, 560, 1677, 585, 1669, 584, 551, 560, 576, 559, 576, 584, 554, 583, 550, 584, 551, 585, 551, 585, 567, 561, 575, 584, 551, 560, 576, 584, 551, 585, 550, 560, 576, 584, 551, 560, 593, 560, 576, 584, 550, 585, 551, 584, 551, 584, 552, 584, 551, 584, 551, 560, 598, 559, 576, 585, 1652, 583, 1654, 559, 565, 559}, // AUTO
{8990, 4500, 530, 579, 557, 578, 557, 1680, 557, 578, 557, 1680, 557, 579, 557, 578, 557, 595, 557, 579, 557, 578, 557, 579, 556, 1680, 558, 1679, 557, 1680, 558, 1680, 556, 1697, 558, 577, 558, 579, 555, 579, 558, 578, 557, 578, 557, 578, 557, 579, 556, 596, 557, 579, 556, 579, 557, 578, 557, 579, 556, 579, 557, 579, 556, 579, 557, 595, 557, 578, 558, 578, 557, 579, 556, 579, 557, 579, 556, 578, 557, 579, 557, 600, 557, 579, 556, 1680, 557, 579, 557, 1668, 557}, // HIGH
{8977, 4497, 508, 601, 533, 602, 535, 1702, 534, 602, 533, 1703, 535, 601, 534, 602, 533, 619, 534, 601, 533, 603, 533, 1703, 534, 602, 533, 1704, 533, 1704, 534, 1702, 534, 1721, 533, 601, 534, 602, 534, 602, 533, 602, 533, 602, 534, 601, 536, 600, 534, 618, 534, 602, 534, 601, 534, 602, 533, 601, 534, 602, 534, 602, 533, 602, 533, 619, 534, 602, 533, 602, 533, 602, 533, 603, 533, 602, 534, 602, 534, 601, 533, 624, 534, 602, 533, 1703, 534, 603, 534, 588, 533}, // MED
{8976, 4505, 506, 602, 534, 601, 534, 1703, 533, 603, 533, 1705, 532, 602, 534, 602, 533, 619, 534, 601, 533, 603, 533, 1704, 533, 1704, 533, 1703, 533, 1705, 533, 1704, 533, 1720, 534, 602, 533, 602, 534, 601, 534, 602, 533, 602, 534, 601, 534, 603, 532, 620, 532, 603, 532, 604, 532, 602, 534, 602, 532, 603, 534, 602, 533, 602, 534, 618, 534, 601, 534, 602, 534, 602, 534, 600, 534, 602, 533, 602, 534, 602, 533, 624, 534, 602, 533, 602, 534, 1703, 533, 1692, 534} // LOW
const uint16_t ir_code_fan[4][407] = {
{5069,2104,406,1746,407,668,408,669,405,670,407,1745,407,668,381,695,381,695,406,670,380,1772,379,696,406,1745,381,1771,380,696,380,1772,379,1772,381,1770,406,1746,407,1745,380,696,406,1745,381,695,380,696,380,696,406,669,407,669,380,696,406,1746,402,673,380,696,406,1746,380,695,407,669,380,696,406,1745,406,670,407,670,379,696,406,670,380,695,407,669,406,669,408,669,406,670,380,695,380,696,407,669,380,695,405,671,407,1745,406,1746,379,1772,380,696,406,670,379,1772,380,696,380,29383,5068,2105,380,1771,407,669,380,696,406,669,380,1772,380,696,380,696,380,695,381,695,380,1771,381,696,380,1771,406,1745,381,695,381,1771,405,1747,379,1772,405,1747,380,1771,395,681,406,1745,381,695,407,669,407,669,380,696,379,696,407,669,380,1771,407,669,406,670,380,1772,406,669,381,695,406,670,380,695,381,695,407,669,407,669,380,696,406,670,380,1771,406,1746,405,670,381,696,405,670,405,1747,380,1771,406,669,408,669,407,668,407,669,380,696,380,696,380,695,380,696,381,695,380,1771,407,669,381,696,406,669,406,670,380,695,381,695,407,669,406,669,381,696,405,670,381,695,380,696,380,696,407,669,405,670,407,669,383,693,407,669,379,696,380,696,406,670,406,669,407,669,381,695,407,669,405,670,380,696,381,696,404,670,381,696,380,695,381,1771,406,1745,381,1770,408,1745,380,695,381,695,380,696,380,696,407,669,406,670,380,695,380,696,380,696,405,671,380,695,407,669,380,695,381,695,381,695,380,696,380,696,406,1745,407,669,380,696,380,696,406,669,381,695,380,696,380,695,406,670,406,670,406,670,380,696,405,670,381,695,380,696,380,696,407,669,380,695,406,670,407,669,407,669,380,695,381,696,406,669,407,669,380,696,380,695,406,1746,406,670,406,1745,406,1745,407,1745,381,695,381,1771,380,1771,407}, //AUTO
{5043,2130,380,1772,380,696,380,696,379,697,379,1771,381,695,381,696,379,696,406,670,380,1771,381,696,379,1771,381,1771,380,696,380,1771,381,1771,380,1772,380,1772,380,1771,380,696,380,1771,381,694,381,696,380,696,380,695,381,695,380,696,380,1772,380,695,380,697,379,1772,380,695,381,695,381,695,380,1772,380,696,380,696,379,696,380,696,380,696,380,696,379,696,380,696,380,695,381,696,380,696,380,696,379,695,381,695,381,1771,380,1771,381,1771,380,697,379,696,380,1771,381,694,381,29382,5044,2130,380,1771,380,697,379,696,380,696,380,1770,381,696,436,640,380,696,380,696,380,1770,381,695,407,1746,379,1771,381,696,380,1771,380,1772,380,1770,381,1772,380,1772,380,696,380,1771,380,696,380,696,380,696,380,697,378,695,381,696,380,1772,379,697,379,696,380,1772,380,696,379,696,380,696,380,696,380,696,379,696,380,696,380,695,381,695,380,1771,381,1772,380,695,380,696,380,696,380,1772,379,1772,380,696,380,696,380,696,379,696,380,696,380,696,380,696,379,696,381,695,380,1771,381,695,380,696,380,696,380,695,381,695,381,695,380,696,380,696,380,695,381,695,380,695,381,696,380,696,380,695,381,696,379,697,379,696,380,696,380,695,380,696,380,697,379,696,380,695,380,696,380,697,379,696,380,696,380,695,381,696,379,695,381,696,380,1771,380,1772,380,1772,379,1772,380,1772,380,696,379,1772,380,696,380,696,380,696,379,696,409,667,380,695,381,695,380,696,380,696,380,696,380,695,381,695,380,696,380,696,380,1771,380,696,380,696,406,669,381,695,380,696,380,695,381,696,380,696,379,696,380,696,380,696,379,696,406,671,379,696,405,671,380,696,380,695,380,696,380,697,379,696,380,695,380,696,380,696,380,696,380,696,379,697,407,1743,407,669,380,1772,407,1744,409,668,405,1746,406,670,380,695,380}, //HIGH
{5069,2105,405,1746,381,695,380,695,381,696,407,1745,379,696,380,696,380,696,380,696,380,1771,380,697,379,1771,406,1745,407,669,381,1771,380,1772,405,1746,380,1772,380,1772,379,696,380,1772,379,696,407,669,380,695,381,696,380,696,379,696,380,1771,381,696,380,695,380,1772,380,696,380,695,405,672,379,1771,381,695,380,695,407,670,380,696,404,670,381,696,380,696,380,697,404,670,406,670,380,696,406,669,381,696,380,695,380,1771,381,1772,379,1771,381,695,381,695,407,1744,381,695,381,29381,5069,2104,380,1772,380,696,406,670,380,696,379,1772,380,695,406,670,380,696,380,696,380,1772,406,668,406,1746,381,1771,380,696,380,1772,379,1772,380,1771,381,1771,406,1746,406,670,379,1772,380,695,407,669,380,696,380,696,380,696,405,671,379,1772,380,696,380,696,406,1745,380,696,405,671,404,671,380,696,380,696,405,671,380,695,407,669,380,696,380,1771,380,1772,380,695,381,694,407,670,380,1771,381,1771,380,696,406,669,407,669,406,670,380,696,380,696,380,695,406,671,406,669,380,1771,380,696,380,696,380,696,406,670,405,671,379,697,379,697,379,695,406,670,407,669,380,696,380,696,379,696,380,696,380,695,381,695,407,670,379,696,380,696,406,669,406,670,380,696,380,696,380,696,380,695,406,671,405,670,406,669,381,696,379,697,405,670,405,1747,379,1772,405,1746,406,1746,380,1771,395,1757,380,696,380,697,379,695,407,669,380,696,405,671,380,695,380,696,380,696,406,670,406,670,405,670,380,696,408,668,404,671,381,1771,380,697,394,680,380,696,406,670,380,696,380,696,407,668,407,669,380,696,380,695,380,696,380,696,405,671,380,695,381,696,406,669,380,697,379,696,379,696,380,696,380,697,379,696,406,669,408,668,380,695,381,695,380,1772,380,696,380,1772,379,1772,406,670,405,670,381,695,380,696,380}, //MID
{5039,2131,406,1745,380,696,379,697,378,698,378,1772,380,697,379,697,379,696,379,697,404,1748,378,698,379,1771,380,1772,379,698,378,1772,380,1772,379,1773,379,1772,383,1768,380,697,379,1772,379,697,379,696,380,697,379,696,406,671,378,696,380,1773,378,697,379,698,378,1772,379,698,379,696,379,697,379,1772,380,696,379,697,379,697,406,669,380,696,379,697,379,696,380,696,380,696,379,697,379,697,379,696,379,697,380,696,379,1773,379,1772,379,1772,406,670,405,671,379,1772,380,696,380,29382,5043,2130,379,1773,405,670,380,695,381,696,379,1772,379,697,380,696,379,697,379,697,379,1772,405,671,379,1772,380,1771,380,697,379,1772,380,1772,379,1773,379,1772,379,1773,379,696,405,1746,382,694,380,696,379,696,380,696,380,696,380,695,381,1772,379,696,380,696,379,1773,379,696,380,696,380,696,405,671,379,696,380,696,380,696,406,671,378,697,379,1772,380,1772,379,696,380,696,380,696,405,1746,380,1772,379,697,379,697,379,697,379,696,380,696,379,697,379,697,379,696,380,696,379,1773,379,696,379,698,378,696,406,671,379,696,380,696,379,697,379,697,405,670,380,696,379,697,379,697,379,697,406,670,404,671,379,697,378,697,380,696,379,697,379,697,379,696,380,697,379,696,380,696,379,697,379,695,380,697,405,671,379,696,380,696,379,697,379,1773,379,1772,379,1772,380,1772,379,1773,379,696,380,696,379,697,379,697,379,696,380,696,405,671,379,697,379,696,380,696,379,697,379,697,404,672,379,696,379,698,379,696,379,1772,380,696,380,696,379,698,404,670,380,696,379,696,380,697,379,696,379,697,379,697,380,696,379,696,380,697,405,670,405,671,379,697,379,696,380,696,379,696,380,697,378,698,379,697,378,697,379,697,379,696,405,671,379,1772,380,697,379,1772,379,1772,380,696,380,1771,380,1772,379,1773,379} //LOW
};
const uint16_t ir_code_off[91] = {9004, 4475, 559, 552, 583, 578, 557, 1680, 557, 554, 582, 578, 557, 553, 582, 553, 583, 569, 583, 552, 584, 1679, 558, 552, 583, 578, 557, 1680, 557, 1655, 582, 1680, 557, 1697, 557, 553, 582, 578, 558, 577, 558, 578, 558, 552, 583, 578, 557, 579, 557, 569, 583, 553, 583, 578, 557, 552, 584, 577, 558, 553, 582, 553, 582, 553, 583, 594, 557, 579, 557, 579, 556, 552, 584, 579, 557, 578, 557, 552, 584, 578, 557, 600, 557, 1653, 584, 552, 584, 1679, 558, 539, 584};
const uint16_t ir_code_off[407] = {5044,2129,408,1744,406,670,380,697,404,671,405,1746,380,696,405,671,406,670,405,671,405,1746,406,670,405,1747,406,1745,406,670,405,1746,405,1746,407,1745,405,1746,406,1746,380,696,380,1771,380,696,405,671,380,695,406,670,407,670,379,696,407,1744,380,696,380,695,407,1746,405,670,406,670,405,671,406,1744,381,696,406,669,405,671,380,696,405,671,406,670,405,670,380,696,407,669,405,670,407,668,381,696,406,670,405,670,406,1746,407,1744,406,1745,381,696,405,670,407,1745,406,669,407,29355,5069,2104,406,1745,380,696,380,696,380,696,380,1771,406,670,379,697,406,669,405,671,406,1745,381,695,380,1772,405,1746,407,669,380,1771,407,1745,406,1745,434,1718,406,1745,381,695,380,1771,381,695,406,670,406,670,406,670,405,671,379,696,403,1749,406,670,406,669,407,1745,405,671,410,664,406,671,407,669,405,670,380,696,406,670,406,670,406,669,407,1745,380,1772,405,670,380,696,380,1771,380,1772,380,1772,405,670,407,669,406,670,380,695,380,696,405,671,406,670,379,696,407,669,406,671,405,669,380,696,380,696,406,669,408,1744,381,695,406,670,406,669,381,695,381,695,380,696,380,696,405,671,405,672,378,696,406,670,380,696,379,696,406,670,406,669,389,687,380,696,380,696,380,695,406,1746,407,669,380,1771,406,670,380,1772,405,670,407,669,406,1745,407,1745,380,1771,380,1771,381,1771,381,1771,380,696,406,669,407,669,405,671,380,695,406,670,380,696,405,670,381,696,380,696,379,696,405,671,380,695,381,695,381,695,380,1772,379,697,379,696,406,670,380,695,406,671,405,670,382,693,408,668,406,670,380,696,406,670,380,695,382,695,404,671,406,670,406,669,380,699,377,696,380,695,407,669,380,696,380,696,380,696,406,670,380,695,380,696,380,696,406,1744,381,1771,407,669,380,696,380,1771,381,1771,381,694,406};
size_t getInfraredCode(uint8_t mode, uint8_t fan_speed, uint8_t temperature_index, const uint16_t **codePtr) {
switch (mode) {
case 0: // Off
*codePtr = &(ir_code_off[0]);
return 91;
return 407;
case 1: // Fan Only
*codePtr = &(ir_code_fan[fan_speed][0]);
return 91;
return 407;
case 2: // Cool
*codePtr = &(ir_code_cool[fan_speed][temperature_index][0]);
return 91;
return 407;
default: // Invalid mode
return 0;
}

View file

@ -3,9 +3,9 @@
#include <stddef.h>
// IR codes for the remote control
extern const uint16_t ir_code_cool[4][16][91];
extern const uint16_t ir_code_fan[4][91];
extern const uint16_t ir_code_off[91];
extern const uint16_t ir_code_cool[4][17][407];
extern const uint16_t ir_code_fan[4][407];
extern const uint16_t ir_code_off[407];
// Function to retrieve the IR code for the given mode, fan speed and temperature
size_t getInfraredCode(uint8_t mode, uint8_t fan_speed, uint8_t temperature_index, const uint16_t **codePtr);

View file

@ -1,35 +1,56 @@
#include <ise_display.hpp>
ISEDisplay::ISEDisplay(HardwareSerial *adapter) : ESPMegaDisplay(adapter, 115200, 912600, 4, 17)
ISEDisplay::ISEDisplay(HardwareSerial *adapter, const uint8_t *light_array, uint8_t row, uint8_t column) : ESPMegaDisplay(adapter, 115200, 912600, 4, 17)
{
this->light_array = light_array;
this->row = row;
this->column = column;
}
// Work left
// TODO : Implement
// debug to work
// appdeamon send data / receive data
void ISEDisplay::begin(DigitalInputCard *inputCard, DigitalOutputCard *outputCard, ClimateCard *climateCard)
void ISEDisplay::begin(DigitalInputCard *inputCard, DigitalOutputCard *outputCard, ClimateCard *climateCard, RemoteVariable* pm_switch, RemoteVariable* pm_fan_speed)
{
this->inputCard = inputCard;
this->outputCard = outputCard;
this->climateCard = climateCard;
this->pm_switch = pm_switch;
this->remote_pm_fan_speed = pm_fan_speed;
auto bindedHandlePWMChange = std::bind(&ISEDisplay::handlePWMChange, this, std::placeholders::_1, std::placeholders::_2, std::placeholders::_3);
auto bindedHandleACChange = std::bind(&ISEDisplay::setACstate, this, std::placeholders::_1, std::placeholders::_2, std::placeholders::_3);
auto bindedHandleACChange = std::bind(&ISEDisplay::handleACChange, this, std::placeholders::_1, std::placeholders::_2, std::placeholders::_3);
auto bindedHandleTouch = std::bind(&ISEDisplay::handleTouch, this, std::placeholders::_1, std::placeholders::_2, std::placeholders::_3);
this->outputCallbackHandle = this->outputCard->registerChangeCallback(bindedHandlePWMChange);
this->climateCallbackHandle = this->climateCard->registerChangeCallback(bindedHandleACChange);
this->user_mode = 1; // initialized to cool by default
this->time_since_last_screen_update = 0;
this->pm_fan_speed = 10;
//remote_pm_fan_speed->setValue(pm_fan_speed);
this->ac_fan_speed = 0;
this->ac_mode = 0;
this->ac_temperature = 25;
this->lightLevelRow1 = 0;
this->lightLevelRow2 = 0;
this->lightLevelRow3 = 0;
this->lightLevelRow4 = 0;
// this->time_since_last_screen_update = 0;
this->registerTouchCallback(bindedHandleTouch);
this->reset();
delay(1000);
// TODO : Will the light be on or off when the system is started?, You need to jump to its respective page
// first jump to main then if no activity jump to standby
this->jumpToPage(2);
this->jumpToPage(2); // change this back later to 2
delay(100);
this->updateAirPurifierState();
this->updateACState();
this->updateLightGroupStatePageDashboard();
this->updateLightGroupStatePageStandby();
// this->outputCard->setValue(1, 0);
// this->outputCard->setValue(2, 0);
// this->outputCard->setValue(3, 0);
// this->outputCard->setValue(4, 0);
// this->climateCard->setTemperature(ac_temperature);
// this->climateCard->setFanSpeed(ac_fan_speed);
// this->climateCard->setMode(ac_mode);
this->climateCard->setState(ac_mode, ac_fan_speed, ac_temperature);
}
void ISEDisplay::loop()
{
@ -39,17 +60,23 @@ void ISEDisplay::loop()
// Update the time since the last screen update using millis()
u_int32_t current_time = millis();
// u_int32_t current_time = millis();
if (current_time - this->time_since_last_screen_update > 120000)
{
// jump to standby page if there is no activity for 2 minutes
this->jumpToPage(1);
}
// if (current_time - this->time_since_last_screen_update > 120000)
// {
// // jump to standby page if there is no activity for 2 minutes
// if(this->currentPage != 1){
// this->jumpToPage(1);
// ESP_LOGI("ISEDisplay", "Jumping to standby page");
// }
// }
}
void ISEDisplay::handleTouch(uint8_t page, uint8_t component, uint8_t touch_type)
{
ESP_LOGD("ISEDisplay", "Touch detected on page %d, component %d, touch type %d", page, component, touch_type);
// time_since_last_screen_update = millis(); // update time since last activity
char buffer[4];
if (page == PAGE_STANDBY)
{
switch (component)
@ -60,6 +87,7 @@ void ISEDisplay::handleTouch(uint8_t page, uint8_t component, uint8_t touch_type
// TODO : Should you really jump to page 2 here? should't page jumping be handled reactivly?
// EX. if atleast one light is on, then jump to active page, else jump to standby page
// This will allow page to change correctly when the system is started and when controlled remotely which won't call handleTouch
// time_since_last_screen_update = millis();
this->jumpToPage(2);
// the function of the button is to open the dashboard from standby
break;
@ -68,7 +96,7 @@ void ISEDisplay::handleTouch(uint8_t page, uint8_t component, uint8_t touch_type
break;
// TODO : So this does nothing? Shouldn't it turn on the lights?
// should turn it on now
toggleLightGroupState();
toggleLightGroupStateStandby();
break;
case COMPONENT_STANDBY_AC_TOGGLE:
// TODO : What's the expexted behavior of standby? Does it enter standby when the lights are all off and ignore the AC
@ -81,7 +109,7 @@ void ISEDisplay::handleTouch(uint8_t page, uint8_t component, uint8_t touch_type
case COMPONENT_STANDBY_PM_TOGGLE:
if (touch_type != TOUCH_TYPE_RELEASE)
break;
togglePM();
togglePMStandby();
break;
default:
break;
@ -90,12 +118,6 @@ void ISEDisplay::handleTouch(uint8_t page, uint8_t component, uint8_t touch_type
else if (page == PAGE_DASHBOARD)
{
u_int8_t pm_fan_speed = 0;
u_int8_t fan_speed = 0;
u_int8_t lightLevelRow1 = 0;
u_int8_t lightLevelRow2 = 0;
u_int8_t lightLevelRow3 = 0;
u_int8_t lightLevelRow4 = 0;
switch (component)
{
@ -106,7 +128,30 @@ void ISEDisplay::handleTouch(uint8_t page, uint8_t component, uint8_t touch_type
toggleLightGroupState();
break;
// TODOlater : can't this be done better with array lookup?
case COMPONENT_LIGHT_MASTER_LEVEL1_TOUCHPOINT:
if (touch_type != TOUCH_TYPE_RELEASE)
break;
for (uint8_t i = 1; i <= 4; i++)
{
setLightLevel(i, 1);
}
break;
case COMPONENT_LIGHT_MASTER_LEVEL2_TOUCHPOINT:
if (touch_type != TOUCH_TYPE_RELEASE)
break;
for (uint8_t i = 1; i <= 4; i++)
{
setLightLevel(i, 2);
}
break;
case COMPONENT_LIGHT_MASTER_LEVEL3_TOUCHPOINT:
if (touch_type != TOUCH_TYPE_RELEASE)
break;
for (uint8_t i = 1; i <= 4; i++)
{
setLightLevel(i, 3);
}
break;
case COMPONENT_LIGHT_ROW1_SLIDER:
if (touch_type != TOUCH_TYPE_RELEASE)
break;
@ -165,39 +210,53 @@ void ISEDisplay::handleTouch(uint8_t page, uint8_t component, uint8_t touch_type
case COMPONENT_AC_FAN_SPEED:
if (touch_type != TOUCH_TYPE_RELEASE)
break;
fan_speed = this->climateCard->getFanSpeed();
ac_fan_speed = this->climateCard->getFanSpeed();
// We have auto, low, mid, high right?, that's 0,1,2,3 a modulo operation of 3 only gives 0,1,2
// mod 4 should fixed it
this->climateCard->setFanSpeed((fan_speed + 1) % 4);
ESP_LOGI("ISEDisplay", "Current AC fan speed: %d", ac_fan_speed);
ac_fan_speed = (ac_fan_speed + 1) % 4;
ESP_LOGI("ISEDisplay", "New AC fan speed: %d", ac_fan_speed);
this->climateCard->setFanSpeed(ac_fan_speed);
// updateACState();
break;
case COMPONENT_AC_TEMP_DOWN_BUTTON:
if (touch_type != TOUCH_TYPE_RELEASE)
break;
this->climateCard->setTemperature(this->climateCard->getTemperature() - 1);
// updateACState();
break;
case COMPONENT_AC_TEMP_UP_BUTTON:
if (touch_type != TOUCH_TYPE_RELEASE)
break;
this->climateCard->setTemperature(this->climateCard->getTemperature() + 1);
// updateACState();
break;
case COMPONENT_PM_TOGGLE_BUTTON:
if (touch_type != TOUCH_TYPE_RELEASE)
break;
this->outputCard->setState(5, !this->outputCard->getState(5));
togglePM();
break;
case COMPONENT_PM_FAN_SPEED_DECREASE:
if (touch_type != TOUCH_TYPE_RELEASE)
break;
pm_fan_speed = this->outputCard->getValue(6);
if (pm_fan_speed >= 0 && pm_fan_speed <= 20)
this->outputCard->setValue(5, (pm_fan_speed - 1));
pm_fan_speed = (int) atof(remote_pm_fan_speed->getValue());
ESP_LOGI("ISEDisplay", "Current PM fan speed: %d", pm_fan_speed);
if (pm_fan_speed >= 1 && pm_fan_speed <= 20)
itoa(pm_fan_speed - 1, buffer, DEC);
remote_pm_fan_speed->setValue(buffer);
ESP_LOGI("ISEDisplay", "New PM fan speed: %d", pm_fan_speed);
//updateAirPurifierState();
break;
case COMPONENT_PM_FAN_SPEED_INCREASE:
if (touch_type != TOUCH_TYPE_RELEASE)
break;
pm_fan_speed = this->outputCard->getValue(6);
if (pm_fan_speed >= 0 && pm_fan_speed <= 20)
this->outputCard->setValue(5, (pm_fan_speed + 1));
pm_fan_speed = (int) atof(remote_pm_fan_speed->getValue());
ESP_LOGI("ISEDisplay", "Current PM fan speed: %d", pm_fan_speed);
if (pm_fan_speed >= 0 && pm_fan_speed <= 19)
itoa(pm_fan_speed + 1, buffer, DEC);
remote_pm_fan_speed->setValue(buffer);
ESP_LOGI("ISEDisplay", "New PM fan speed: %d", pm_fan_speed);
//updateAirPurifierState();
break;
default:
break;
@ -217,33 +276,20 @@ void ISEDisplay::handlePWMChange(uint8_t pin, bool state, uint16_t value)
uint8_t current_page = this->currentPage;
if (current_page == PAGE_STANDBY)
{
if (pin >= 1 && pin <= 4)
if ((pin >= 0 && pin <= 3) ||(pin >= 8 && pin <= 11))
{
// Light
updateLightGroupStatePageDashboard();
updateLightGroupStatePageStandby();
time_since_last_screen_update = millis(); // update time since last activity
}
else if (pin == 4 || pin == 5)
{
// Air Purifier
updateAirPurifierState();
time_since_last_screen_update = millis(); // update time since last activity
// time_since_last_screen_update = millis(); // update time since last activity
}
}
else if (current_page == PAGE_DASHBOARD)
{
if (pin >= 1 && pin <= 4)
if ((pin >= 0 && pin <= 3) ||(pin >= 8 && pin <= 11))
{
// Light
updateLightGroupStatePageStandby();
time_since_last_screen_update = millis(); // update time since last activity
}
else if (pin == 4 || pin == 5)
{
// Air Purifier
updateAirPurifierState();
time_since_last_screen_update = millis(); // update time since last activity
updateLightGroupStatePageDashboard();
// time_since_last_screen_update = millis(); // update time since last activity
}
}
else
@ -253,19 +299,14 @@ void ISEDisplay::handlePWMChange(uint8_t pin, bool state, uint16_t value)
}
void ISEDisplay::updateDateTimeText(rtctime_t time)
{
this->takeSerialMutex();
if (!this->takeSerialMutex())
return;
// Send the time to the display
this->displayAdapter->printf("time.txt=%02d:%02d", time.hours, time.minutes);
this->displayAdapter->printf("time.txt=\"%02d:%02d\"", time.hours, time.minutes);
this->sendStopBytes();
this->displayAdapter->printf("date.txt=%02d.%02d.%d", time.day, time.month, time.year);
this->sendStopBytes();
this->displayAdapter->printf("s_time.txt=%02d:%02d", time.hours, time.minutes);
this->sendStopBytes();
this->displayAdapter->printf("s_date.txt=%02d.%02d.%d", time.day, time.month, time.year);
this->displayAdapter->printf("date.txt=\"%02d.%02d.%d\"", time.day, time.month, time.year);
this->sendStopBytes();
this->giveSerialMutex();
@ -282,6 +323,10 @@ void ISEDisplay::updateWeather(char *weather_string)
{
weather_code = 63;
}
else if (strcmp(weather_string, "sunny") == 0)
{
weather_code = 63;
}
else if (strcmp(weather_string, "fair_night") == 0)
{
weather_code = 64;
@ -290,11 +335,11 @@ void ISEDisplay::updateWeather(char *weather_string)
{
weather_code = 65;
}
else if (strcmp(weather_string, "clearsky_day") == 0)
else if (strcmp(weather_string, "clear-day") == 0)
{
weather_code = 66;
}
else if (strcmp(weather_string, "clearsky_night") == 0)
else if (strcmp(weather_string, "clear-night") == 0)
{
weather_code = 67;
}
@ -302,6 +347,10 @@ void ISEDisplay::updateWeather(char *weather_string)
{
weather_code = 68;
}
else if (strcmp(weather_string, "partlycloudy") == 0)
{
weather_code = 68;
}
else if (strcmp(weather_string, "partlycloudy_night") == 0)
{
weather_code = 69;
@ -322,6 +371,10 @@ void ISEDisplay::updateWeather(char *weather_string)
{
weather_code = 73;
}
else if (strcmp(weather_string, "rainy") == 0)
{
weather_code = 73;
}
else if (strcmp(weather_string, "lightrain") == 0)
{
weather_code = 74;
@ -334,9 +387,11 @@ void ISEDisplay::updateWeather(char *weather_string)
{
weather_code = 68;
}
ESP_LOGI("ISEDisplay", "Updating weather to: %s (%d)", weather_string, weather_code);
this->takeSerialMutex();
this->displayAdapter->printf("weather_icon.pic=%s", weather_code);
if (!this->takeSerialMutex())
return;
this->displayAdapter->printf("weather_icon.pic=%d", weather_code);
this->sendStopBytes();
this->giveSerialMutex();
}
@ -346,106 +401,250 @@ void ISEDisplay::updateTempOutside(float temp_outside)
// change temp_outside to int then display
u_int8_t temp_outside_int = (u_int8_t)temp_outside;
this->takeSerialMutex();
this->displayAdapter->printf("temp_outside.txt=%d", temp_outside_int);
ESP_LOGI("ISEDisplay", "Updating temperature outside to: %d", temp_outside_int);
if (!this->takeSerialMutex())
return;
this->displayAdapter->printf("outside_temp.txt=\"%d\"", temp_outside_int);
this->sendStopBytes();
this->giveSerialMutex();
}
void ISEDisplay::updatePMoutside(u_int16_t pm25_outside)
{
this->takeSerialMutex();
this->displayAdapter->printf("pm_outside.txt=%d", pm25_outside);
ESP_LOGI("ISEDisplay", "Updating PM2.5 outside to: %d", pm25_outside);
u_int16_t curPage = this->currentPage;
if (curPage == 2)
{
if (!this->takeSerialMutex())
return;
this->displayAdapter->printf("pm_out.txt=\"%d\"", pm25_outside);
this->sendStopBytes();
this->giveSerialMutex();
}
// TODO : use remotevar to get PM2.5 data from appdaemon and update the display
}
void ISEDisplay::updatePMinside(u_int8_t pm25_inside)
void ISEDisplay::updatePMinside(u_int16_t pm25_inside)
{
// TODO : get data from HA's Xiaomi air purifier sensor
ESP_LOGI("ISEDisplay", "Updating PM2.5 inside to: %d", pm25_inside);
u_int16_t curPage = this->currentPage;
if (curPage == 2)
{
if (!this->takeSerialMutex())
return;
this->displayAdapter->printf("pm_in.txt=\"%d\"", pm25_inside);
this->sendStopBytes();
this->giveSerialMutex();
}
}
void ISEDisplay::setPMstate(bool is_pm_on, uint8_t pm_fan_speed)
{
// TODO : set data to HA's Xiaomi air purifier sensor
ESP_LOGI("ISEDisplay", "Setting PM state: %d, fan speed: %d", is_pm_on, pm_fan_speed);
char buffer[4];
itoa(pm_fan_speed, buffer, DEC);
remote_pm_fan_speed->setValue(buffer);
pm_switch->setValue(is_pm_on ? "1" : "0");
}
void ISEDisplay::setACstate(uint8_t ac_fan_speed, uint8_t ac_mode, uint8_t ac_temperature)
{
this->climateCard->setTemperature(ac_temperature);
this->climateCard->setFanSpeed(ac_fan_speed);
this->climateCard->setMode(ac_mode);
updateACState();
ESP_LOGI("ISEDisplay", "Setting AC state: = fan speed: %d, mode: %d, temperature: %d", ac_fan_speed, ac_mode, ac_temperature);
//this->climateCard->setFanSpeed(ac_fan_speed);
ESP_LOGI("ISEDisplay", "AC fan speed set to: %d", ac_fan_speed);
//this->climateCard->setMode(ac_mode);
ESP_LOGI("ISEDisplay", "AC mode set to: %d", ac_mode);
//this->climateCard->setTemperature(ac_temperature);
ESP_LOGI("ISEDisplay", "AC temperature set to: %d", ac_temperature);
this->climateCard->setState(ac_mode, ac_fan_speed, ac_temperature);
// updateACState();
}
void ISEDisplay::toggleLightGroupState()
{
// Get the current group state
bool state = calculateLightGroupState();
ESP_LOGI("ISEDisplay", "Current light group state: %d", state);
// Toggle light
for (uint8_t i = 1; i <= 4; i++)
{
setLightLevel(i, state ? 0 : 3);
}
}
void ISEDisplay::toggleLightGroupStateStandby()
{
// Get the current group state
bool state = calculateLightGroupState();
ESP_LOGI("ISEDisplay", "Current light group state: %d", state);
// Toggle light
for (uint8_t i = 1; i <= 4; i++)
{
setLightLevel(i, state ? 0 : 3);
}
// updateLightGroupStatePageStandby();
}
void ISEDisplay::togglePM()
{
// Get the current group state
bool state = this->outputCard->getState(5);
bool state = strcmp(pm_switch->getValue(), "on") == 0;
ESP_LOGI("ISEDisplay", "Current PM state: %d", state);
// Toggle the state
state = !state;
// Set the state
this->outputCard->setState(5, state);
pm_switch->setValue(state ? "off" : "on");
ESP_LOGI("ISEDisplay", "New PM state: %d", state);
//updateAirPurifierState();
}
void ISEDisplay::togglePMStandby()
{
// Get the current group state
bool state = strcmp(pm_switch->getValue(), "on") == 0;
ESP_LOGI("ISEDisplay", "Current PM state: %d", state);
// Toggle the state
pm_switch->setValue(state ? "off" : "on");
ESP_LOGI("ISEDisplay", "New PM state: %d", state);
//updateAirPurifierStateStandby();
}
void ISEDisplay::toggleAC()
{
// Get the current group state
uint8_t mode = this->climateCard->getMode();
// get fan speed and temperature
uint8_t fan_speed = this->climateCard->getFanSpeed();
uint8_t temperature = this->climateCard->getTemperature();
ESP_LOGI("ISEDisplay", "Current AC mode: %d", mode);
// Toggle the state
if (mode == 0)
{
this->climateCard->setMode(user_mode);
ESP_LOGI("ISEDisplay", " User mode: %d", user_mode);
setACstate(fan_speed, user_mode, temperature);
}
else
{
ESP_LOGI("ISEDisplay", "User mode BEFORE: %d", user_mode);
// update user mode to new mode
user_mode = mode;
// change actual mode to off
this->climateCard->setMode(0);
ESP_LOGI("ISEDisplay", "User mode AFTER: %d", user_mode);
setACstate(fan_speed, 0, temperature);
}
}
void ISEDisplay::changeUserACmode()
{
// Get the current group state
uint8_t mode = this->climateCard->getMode();
ESP_LOGI("ISEDisplay", "Current actual AC mode: %d", mode);
// Toggle the state
// user mode alternate between 1 and 2
user_mode = (user_mode + 1) % 2 + 1;
ESP_LOGI("ISEDisplay", "User mode BEFORE: %d", user_mode);
user_mode = (user_mode) % 2 + 1;
ESP_LOGI("ISEDisplay", "User mode AFTER: %d", user_mode);
if (mode != 0)
{
// update mode to new mode
mode = user_mode;
ESP_LOGI("ISEDisplay", "change actual AC mode to user mode: %d", mode);
}
else
{ // ie mode is off
// do nothing as the state is keep in user_mode
// the mode will change to user_mode when turn on by toggleAC()
ESP_LOGI("ISEDisplay", "do nothing; user mode: %d , actual mode: %d", user_mode, mode);
}
updateuserACmode(); // call to update mode part of the display seperately
}
void ISEDisplay::setLightLevel(uint8_t row, uint8_t level)
{
for (uint8_t i = 1; i <= 4; i++)
// Set the light level
// this->outputCard->setValue(row, level);
uint8_t primary_pin = *(light_array + 2*(row - 1));
uint8_t secondary_pin = *(light_array + 2*(row - 1) + 1);
bool primary = false;
bool secondary = false;
switch (level)
{
if (row == i)
this->outputCard->setValue(row, level);
case 0:
primary = false;
secondary = false;
break;
case 1:
primary = false;
secondary = true;
break;
case 2:
primary = true;
secondary = false;
break;
case 3:
primary = true;
secondary = true;
break;
default:
break;
}
this->outputCard->setState(primary_pin, primary);
this->outputCard->setState(secondary_pin, secondary);
}
u_int8_t ISEDisplay::getLightLevel(uint8_t row)
{
u_int8_t lightLevel = 0;
//lightLevel = this->outputCard->getValue(row);
uint8_t primary_pin = *(light_array + 2*(row - 1));
uint8_t secondary_pin = *(light_array + 2*(row - 1) + 1);
bool primary = this->outputCard->getState(primary_pin);
bool secondary = this->outputCard->getState(secondary_pin);
if (primary && secondary)
{
lightLevel = 3;
}
else if (primary)
{
lightLevel = 2;
}
else if (secondary)
{
lightLevel = 1;
}
else
{
lightLevel = 0;
}
return lightLevel;
}
//change to light with the assignment
lightPosition ISEDisplay::getRowCol(uint8_t pin){
lightPosition position;
//uint8_t row = this->row;
//uint8_t column = this->column;
//const uint8_t *light_array = this->light_array;
// should return the row and column of the light from pin in a row by column array pointer pass from main using pointer arithmetic
for (uint8_t i = 0; i < row*column; i++)
{
uint8_t value = *(light_array + i);
if (value == pin)
{
position.row = i / column;
position.column = i % column;
return position;
}
}
return position;
}
void ISEDisplay::updateLightGroupStatePageStandby()
{
// Calculate the state
bool state = calculateLightGroupState();
// Send the state to the display
this->takeSerialMutex();
if (!this->takeSerialMutex())
return;
this->displayAdapter->print("s_light_toggle.pic=");
this->displayAdapter->print(state ? COMPONENT_STANDBY_LIGHT_PIC_ON : COMPONENT_STANDBY_LIGHT_PIC_OFF);
@ -462,7 +661,8 @@ void ISEDisplay::updateLightGroupStatePageDashboard()
// Calculate the state
bool state = calculateLightGroupState();
// Send the state to the display
this->takeSerialMutex();
if (!this->takeSerialMutex())
return;
this->displayAdapter->print("light_master.pic=");
this->displayAdapter->print(state ? COMPONENT_LIGHT_MASTER_ON : COMPONENT_LIGHT_MASTER_OFF);
@ -474,7 +674,7 @@ void ISEDisplay::updateLightGroupStatePageDashboard()
for (uint8_t i = 1; i <= 4; i++)
{
u_int8_t state = this->outputCard->getValue(i);
u_int8_t state = getLightLevel(i);
switch (state)
{
case 0:
@ -518,7 +718,7 @@ bool ISEDisplay::calculateLightGroupState()
bool lightOn = false;
for (uint8_t i = 1; i <= 4; i++)
{
if (this->outputCard->getValue(i) != 0)
if (getLightLevel(i) != 0)
{
lightOn = true;
break;
@ -526,10 +726,11 @@ bool ISEDisplay::calculateLightGroupState()
}
return lightOn;
}
void ISEDisplay::toggleLightIndividual(uint8_t row)
{
// Get the current state
uint8_t state = this->outputCard->getValue(row);
uint8_t state = getLightLevel(row);
if (state != 0)
{
state = 0;
@ -569,14 +770,37 @@ void ISEDisplay::toggleSliderLight(uint8_t row, uint8_t lightLevel)
// Set the state
setLightLevel(row, state);
}
void ISEDisplay::updateAirPurifierStateStandby()
{
// Get the state
bool state = strcmp(pm_switch->getValue(), "on") == 0;
// Send the state to the display
if (!this->takeSerialMutex())
return;
this->displayAdapter->print("s_pm_toggle.pic=");
this->displayAdapter->print(state ? COMPONENT_STANDBY_PM_PIC_ON : COMPONENT_STANDBY_PM_PIC_OFF);
this->sendStopBytes();
this->displayAdapter->print("s_pm_toggle.pic2=");
this->displayAdapter->print(state ? COMPONENT_STANDBY_PM_PIC_ON_PRESSED : COMPONENT_STANDBY_PM_PIC_OFF_PRESSED);
this->sendStopBytes();
this->giveSerialMutex();
}
void ISEDisplay::updateAirPurifierState()
{
//check for page
if(currentPage == PAGE_DASHBOARD){
ESP_LOGI("ISEDisplay", "Updating dashboard");
// Get the state
bool state = this->outputCard->getState(5);
uint8_t fan_speed = this->outputCard->getState(5);
bool state = strcmp(pm_switch->getValue(), "on") == 0;
ESP_LOGI("ISEDisplay", "Updating air purifier state to: %d", state);
pm_fan_speed = (int) atof(remote_pm_fan_speed->getValue());
// Send the state to the display
this->takeSerialMutex();
if (!this->takeSerialMutex())
return;
this->displayAdapter->print("pm_sw.pic=");
this->displayAdapter->print(state ? COMPONENT_PM_TOGGLE_PIC_ON : COMPONENT_PM_TOGGLE_PIC_OFF);
@ -586,9 +810,9 @@ void ISEDisplay::updateAirPurifierState()
this->displayAdapter->print(state ? COMPONENT_PM_TOGGLE_PIC_ON_PRESSED : COMPONENT_PM_TOGGLE_PIC_OFF_PRESSED);
this->sendStopBytes();
this->displayAdapter->print("pm_speed.txt=\"");
this->displayAdapter->print(fan_speed);
this->displayAdapter->print("\"");
this->displayAdapter->print("pm_speed.val=");
this->displayAdapter->print(pm_fan_speed);
// this->displayAdapter->print("\"");
this->sendStopBytes();
this->displayAdapter->print("pm_speed.pco=");
@ -597,9 +821,22 @@ void ISEDisplay::updateAirPurifierState()
this->giveSerialMutex();
}
else if(currentPage == PAGE_STANDBY){
ESP_LOGI("ISEDisplay", "Updating standby");
updateAirPurifierStateStandby();
}
}
void ISEDisplay::handleACChange(uint8_t mode, uint8_t fan_speed, uint8_t temperature)
{
ESP_LOGI("ISEDisplay", "AC state changed: mode: %d, fan speed: %d, temperature: %d", mode, fan_speed, temperature);
updateACState();
}
void ISEDisplay::updateuserACmode()
{
this->takeSerialMutex();
if (!this->takeSerialMutex())
return;
ESP_LOGI("ISEDisplay", "updating display user AC mode to: %d", user_mode);
switch (user_mode)
{
case 1:
@ -626,38 +863,40 @@ void ISEDisplay::updateuserACmode()
void ISEDisplay::updateACfanSpeed()
{
uint8_t fan_speed = this->climateCard->getFanSpeed();
this->takeSerialMutex();
ESP_LOGI("ISEDisplay", "updating display AC fan speed to: %d", fan_speed);
if (!this->takeSerialMutex())
return;
switch (fan_speed)
{
case 0:
this->displayAdapter->print("ac_fan.pic=");
this->displayAdapter->print("ac_speed.pic=");
this->displayAdapter->print(COMPONENT_AC_FAN_MODE_AUTO_PIC);
this->sendStopBytes();
this->displayAdapter->print("ac_fan.pic2=");
this->displayAdapter->print("ac_speed.pic2=");
this->displayAdapter->print(COMPONENT_AC_FAN_MODE_AUTO_PIC_PRESSED);
this->sendStopBytes();
break;
case 1:
this->displayAdapter->print("ac_fan.pic=");
this->displayAdapter->print("ac_speed.pic=");
this->displayAdapter->print(COMPONENT_AC_FAN_MODE_HIGH_PIC);
this->sendStopBytes();
this->displayAdapter->print("ac_fan.pic2=");
this->displayAdapter->print("ac_speed.pic2=");
this->displayAdapter->print(COMPONENT_AC_FAN_MODE_HIGH_PIC_PRESSED);
this->sendStopBytes();
break;
case 2:
this->displayAdapter->print("ac_fan.pic=");
this->displayAdapter->print("ac_speed.pic=");
this->displayAdapter->print(COMPONENT_AC_FAN_MODE_MID_PIC);
this->sendStopBytes();
this->displayAdapter->print("ac_fan.pic2=");
this->displayAdapter->print("ac_speed.pic2=");
this->displayAdapter->print(COMPONENT_AC_FAN_MODE_MID_PIC_PRESSED);
this->sendStopBytes();
break;
case 3:
this->displayAdapter->print("ac_fan.pic=");
this->displayAdapter->print("ac_speed.pic=");
this->displayAdapter->print(COMPONENT_AC_FAN_MODE_LOW_PIC);
this->sendStopBytes();
this->displayAdapter->print("ac_fan.pic2=");
this->displayAdapter->print("ac_speed.pic2=");
this->displayAdapter->print(COMPONENT_AC_FAN_MODE_LOW_PIC_PRESSED);
this->sendStopBytes();
break;
@ -673,8 +912,9 @@ void ISEDisplay::updateACState()
// Get the state
uint8_t mode = this->climateCard->getMode();
uint8_t temperature = this->climateCard->getTemperature();
this->takeSerialMutex();
if(currentPage != 1){
if (!this->takeSerialMutex())
return;
// Send the state to the display
if (mode == 0)
@ -705,15 +945,37 @@ void ISEDisplay::updateACState()
this->displayAdapter->print("ac_sw.pic2=");
this->displayAdapter->print(mode != 0 ? COMPONENT_AC_TOGGLE_PIC_ON_PRESSED : COMPONENT_AC_TOGGLE_PIC_OFF_PRESSED);
this->sendStopBytes();
this->giveSerialMutex();
updateuserACmode();
updateACfanSpeed();
this->displayAdapter->print("ac_temp.txt=\"");
if (!this->takeSerialMutex())
return;
this->displayAdapter->print("ac_temp.val=");
this->displayAdapter->print(temperature);
this->displayAdapter->print("\"");
// this->displayAdapter->print("\"");
this->sendStopBytes();
this->giveSerialMutex();
}
else if (currentPage == 1)
{
if (!this->takeSerialMutex())
return;
this->displayAdapter->print("s_ac_toggle.pic=");
this->displayAdapter->print(mode != 0 ? COMPONENT_STANDBY_AC_PIC_ON : COMPONENT_STANDBY_AC_PIC_OFF);
this->sendStopBytes();
this->displayAdapter->print("s_ac_toggle.pic2=");
this->displayAdapter->print(mode != 0 ? COMPONENT_STANDBY_AC_PIC_ON_PRESSED : COMPONENT_STANDBY_AC_PIC_OFF_PRESSED);
this->sendStopBytes();
this->giveSerialMutex();
}
ESP_LOGI("ISEDisplay", "display AC state updated");
}

View file

@ -16,48 +16,74 @@
struct lightPosition {
uint8_t row;
uint8_t column;
};
class ISEDisplay : public ESPMegaDisplay {
public:
ISEDisplay(HardwareSerial* adapter);
void begin(DigitalInputCard* inputCard, DigitalOutputCard* outputCard, ClimateCard* climateCard);
ISEDisplay(HardwareSerial* adapter, const uint8_t *light_array, uint8_t row, uint8_t column);
void begin(DigitalInputCard* inputCard, DigitalOutputCard* outputCard, ClimateCard* climateCard, RemoteVariable* pm_switch, RemoteVariable* pm_fan_speed);
void updateLightGroupStatePageDashboard();
void updateLightGroupStatePageStandby();
void updateAirPurifierState();
void updateAirPurifierStateStandby();
void updateDateTimeText(rtctime_t time);
void updateWeather(char *weather_string);
void updateTempOutside(float temp_outside);
void updatePMoutside(u_int16_t pm25_outside);
void updatePMinside(u_int8_t pm25_inside);
void updatePMinside(u_int16_t pm25_inside);
void loop();
private:
void handleTouch(uint8_t page, uint8_t component, uint8_t touch_type);
void handlePWMChange(uint8_t pin, bool state, uint16_t value);
void handleACChange(uint8_t mode, uint8_t fan_speed, uint8_t temperature);
void setPMstate(bool is_pm_on, uint8_t pm_fan_speed);
void setACstate(uint8_t ac_fan_speed, uint8_t ac_mode, uint8_t ac_temperature);
void setLightLevel(uint8_t row, uint8_t level);
u_int8_t getLightLevel(uint8_t row);
lightPosition getRowCol(uint8_t pin);
DigitalInputCard* inputCard;
DigitalOutputCard *outputCard;
ClimateCard *climateCard;
const uint8_t *light_array;
uint8_t row;
uint8_t column;
RemoteVariable *pm_switch;
RemoteVariable *remote_pm_fan_speed;
uint8_t outputCallbackHandle;
uint8_t climateCallbackHandle;
uint8_t user_mode;
uint8_t ac_mode;
uint8_t ac_fan_speed;
uint8_t ac_temperature;
uint8_t pm_fan_speed;
uint8_t time_since_last_screen_update;
u_int8_t lightLevelRow1;
u_int8_t lightLevelRow2;
u_int8_t lightLevelRow3;
u_int8_t lightLevelRow4;
void updateLightGroupStatePageDashboard();
void updateLightGroupStatePageStandby();
void updateAirPurifierState();
void updateACState();
void updateuserACmode();
void updateACfanSpeed();
bool calculateLightGroupState();
void toggleLightGroupState();
void toggleLightGroupStateStandby();
void toggleLightIndividual(uint8_t row);
void toggleSliderLight(uint8_t row,uint8_t lightLevel);
void togglePM();
void togglePMStandby();
void toggleAC();
void toggleACStandby();
void changeUserACmode();
void updateuserACmode();
void updateACfanSpeed();
};

View file

@ -11,6 +11,27 @@ tentetive pin mapping
4: row 4
(value from 0-3)
change light assignment
1: row 1 column 1
2: row 1 column 2
3: row 2 column 1
4: row 2 column 2
5: row 3 column 1
6: row 3 column 2
7: row 4 column 1
8: row 4 column 2
*/
#define LIGHT_ROW1_COLUMN1 0
#define LIGHT_ROW1_COLUMN2 1
#define LIGHT_ROW2_COLUMN1 2
#define LIGHT_ROW2_COLUMN2 3
#define LIGHT_ROW3_COLUMN1 8
#define LIGHT_ROW3_COLUMN2 9
#define LIGHT_ROW4_COLUMN1 10
#define LIGHT_ROW4_COLUMN2 11
/*
5: Air Purifier status (on/off)
6: Air Purifier fan speed (0-20)

View file

@ -1,17 +1,27 @@
#include <main.hpp>
RemoteVariable pm25_in = RemoteVariable();
RemoteVariable pm25_out = RemoteVariable();
RemoteVariable temp_out = RemoteVariable();
RemoteVariable weather = RemoteVariable();
RemoteVariable pm_switch = RemoteVariable();
RemoteVariable pm_fan_speed = RemoteVariable();
const char *mode_names[] = {"off", "fan_only", "cool"};
const char *mode_names[] = {"off", "cool", "fan_only", "dry"};
const char *fan_speed_names[] = {"auto", "high", "medium", "low"};
uint8_t row = 4;
uint8_t column = 2;
const uint8_t light_array[4][2] = {
{LIGHT_ROW1_COLUMN1, LIGHT_ROW1_COLUMN2},
{LIGHT_ROW2_COLUMN1, LIGHT_ROW2_COLUMN2},
{LIGHT_ROW3_COLUMN1, LIGHT_ROW3_COLUMN2},
{LIGHT_ROW4_COLUMN1, LIGHT_ROW4_COLUMN2}};
AirConditioner ac = {
.max_temperature = 30,
.min_temperature = 15,
.modes = 3,
.max_temperature = 32,
.min_temperature = 16,
.modes = 4,
.mode_names = mode_names,
.fan_speeds = 4,
.fan_speed_names = fan_speed_names,
@ -21,7 +31,7 @@ AirConditioner ac = {
***********************************************/
ESPMegaPRO espmega = ESPMegaPRO();
ISEDisplay iseDisplay = ISEDisplay(&iseDisplayAdapter);
ISEDisplay iseDisplay = ISEDisplay(&iseDisplayAdapter, &light_array[0][0], row, column);
ClimateCard climateCard = ClimateCard(AIR_CONDITIONER_IR_PIN, ac,
AIR_CONDITIONER_SENSOR_TYPE, AIR_CONDITIONER_SENSOR_PIN,
@ -29,7 +39,6 @@ ClimateCard climateCard = ClimateCard(AIR_CONDITIONER_IR_PIN, ac,
void handleMqttMessage(char *topic, char *payload)
{
}
void sendStopBytes()
@ -94,85 +103,274 @@ void setup()
espmega.enableWebServer(80);
espmega.inputs.registerCallback(on_pin_change);
espmega.outputs.setAutoSaveToFRAM(true);
// Set value of pin 0-12 to 4095
for (uint8_t i = 0; i < 13; i++)
{
espmega.outputs.setValue(i, 4095);
}
espmega.installCard(2, &climateCard);
climateCard.bindFRAM(&espmega.fram, 5000);
climateCard.loadStateFromFRAM();
climateCard.setFRAMAutoSave(true);
espmega.display->bindClimateCard(&climateCard);
espmega.iot->registerCard(0); // Register the Input Card
espmega.iot->registerCard(1); // Register the Output Card
espmega.iot->registerCard(2); // Register the Climate Card
auto bindedGetTime = std::bind(&ESPMegaPRO::getTime, &espmega);
iseDisplay.begin(&espmega.inputs, &espmega.outputs, &climateCard);
espmega.iot->registerRelativeMqttCallback(&handleMqttMessage);
// auto binded_display_update_on_pm25_out = std::bind(&display_update,0,std::placeholders::_1);
// auto binded_display_update_on_pm25_in = std::bind(&display_update,1,std::placeholders::_1);
// auto binded_display_update_on_temp_out = std::bind(&display_update,2,std::placeholders::_1);
// auto binded_display_update_on_weather = std::bind(&display_update,3,std::placeholders::_1);
// auto binded_display_update_on_pm_switch = std::bind(&display_update,4,std::placeholders::_1);
// auto binded_display_update_on_pm_fan_speed = std::bind(&display_update,5,std::placeholders::_1);
// pm25_out.registerCallback(std::function<void (char*)>(binded_display_update_on_pm25_out));
// pm25_in.registerCallback(std::function<void (char*)>(binded_display_update_on_pm25_in));
// temp_out.registerCallback(std::function<void (char*)>(binded_display_update_on_temp_out));
// weather.registerCallback(std::function<void (char*)>(binded_display_update_on_weather));
// pm_switch.registerCallback(std::function<void (char*)>(binded_display_update_on_pm_switch));
// pm_fan_speed.registerCallback(std::function<void (char*)>(binded_display_update_on_pm_fan_speed));
pm25_out.registerCallback(&pm25outupdatedisplay);
pm25_in.registerCallback(&pm25inupdatedisplay);
temp_out.registerCallback(&tempoutupdatedisplay);
weather.registerCallback(&weatherupdatedisplay);
pm_switch.registerCallback(&pmswitchupdatedisplay);
pm_fan_speed.registerCallback(&pmfanspeedupdatedisplay);
// placeholder
// PM2.5 PPM Remote Variable
// 12 bytes remote variable, 11 characters + null terminator
// Enable value request at /iqair/pm25_request
pm25_out.begin(6, "/aqi/value", espmega.iot, true, "/aqi/value_request");
pm25_out.begin(6, "/aqi/value", espmega.iot, true, "/aqi/request_value");
// Temperature Remote Variable
temp_out.begin(6, "/temp/value", espmega.iot, true, "/weather/temp_request");
temp_out.begin(6, "/temp/value", espmega.iot, true, "/temp/request_value");
// Weather Remote Variable
weather.begin(45, "/weather", espmega.iot, true, "/weather_request");
weather.begin(45, "/weather/value", espmega.iot, true, "/weather/request_value");
// PM2.5 PPM Remote Variable
pm25_in.begin(6, "/pm/value", espmega.iot, true, "/pm/request_value");
// Air Purifier Switch Remote Variable
pm_switch.begin(6, "/pm/switch_state", espmega.iot, true, "/pm/request_switch_state");
pm_switch.enableSetValue("/pm/set_switch_state");
// Air Purifier Fan Speed Remote Variable
pm_fan_speed.begin(6, "/pm/fan_speed", espmega.iot, true, "/pm/request_fan_speed");
pm_fan_speed.enableSetValue("/pm/set_fan_speed");
espmega.iot->registerCard(0); // Register the Input Card
espmega.iot->registerCard(1); // Register the Output Card
espmega.iot->registerCard(2); // Register the Climate Card
auto bindedGetTime = std::bind(&ESPMegaPRO::getTime, &espmega);
iseDisplay.begin(&espmega.inputs, &espmega.outputs, &climateCard, &pm_switch, &pm_fan_speed);
espmega.iot->registerRelativeMqttCallback(&handleMqttMessage);
iseDisplay.registerPageChangeCallback(&handlePageChange);
}
// void update_display(uint8_t type, char *value){
// switch (type)
// {
// case 0:
// iseDisplay.updatePMoutside(get_pm25_out());
// break;
// case 1:
// iseDisplay.updatePMinside(get_pm25_in());
// break;
// case 2:
// iseDisplay.updateTempOutside(get_temp_out());
// break;
// case 3:
// iseDisplay.updateWeather(weather.getValue());
// break;
// case 4:
// iseDisplay.updateAirPurifierState();
// break;
// case 5:
// iseDisplay.updateAirPurifierState();
// break;
// default:
// break;
// }
// }
void pm25outupdatedisplay(char* value){
iseDisplay.updatePMoutside(get_pm25_out());
}
void pm25inupdatedisplay(char* value){
iseDisplay.updatePMinside(get_pm25_in());
}
void tempoutupdatedisplay(char* value){
iseDisplay.updateTempOutside(get_temp_out());
}
void weatherupdatedisplay(char* value){
iseDisplay.updateWeather(weather.getValue());
}
void pmfanspeedupdatedisplay(char* value){
iseDisplay.updateAirPurifierState();
}
void pmswitchupdatedisplay(char* value){
ESP_LOGI("PM switch", "getting PM switch state from MQTT: %d", pm_switch.getValue());
iseDisplay.updateAirPurifierState();
ESP_LOGI("PM switch", "toggling PM switch state from: %d to %d", pm_switch.getValue(), !pm_switch.getValue());
}
void loop()
{
espmega.loop();
iseDisplay.loop();
// Update the time every 15 seconds
// static bool run_when_init = false; // No static ? , this shit will reset to 0 every loop
static uint32_t last_time_updated = 0;
// rtctime_t time = espmega.getTime();
// when init update once then update every 15 seconds
// You don't need this, when it go from page 0 to 1 it call handlePageChange
// if(!run_when_init){
// time = espmega.getTime();
// iseDisplay.updateDateTimeText(time);
// last_time_updated = millis();
// run_when_init = true;
// }
if (millis() - last_time_updated > 15000)
{
rtctime_t time = espmega.getTime();
// log time
ESP_LOGI("time", "Time: %d:%d:%d", time.hours, time.minutes, time.seconds);
ESP_LOGI("Date", "Date: %d/%d/%d", time.day, time.month, time.year);
iseDisplay.updateDateTimeText(time);
last_time_updated = millis();
}
// Update the PM2.5 PPM value every 5 minutes
static uint32_t last_pm25_out_update = 0;
if (millis() - last_pm25_out_update > 300000)
{
uint16_t pm25_out_value = get_pm25_out();
iseDisplay.updatePMoutside(pm25_out_value);
last_pm25_out_update = millis();
}
// Update the temperature value every 5 minutes
static uint32_t last_temp_out_update = 0;
if (millis() - last_temp_out_update > 300000)
{
float temp_out_value = get_temp_out();
iseDisplay.updateTempOutside(temp_out_value);
last_temp_out_update = millis();
}
// Update the weather value every 5 minutes
static uint32_t last_weather_update = 0;
if (millis() - last_weather_update > 300000)
{
char *weather_value = weather.getValue();
iseDisplay.updateWeather(weather_value);
last_weather_update = millis();
}
// // Update the PM2.5 PPM value every 15 seconds
// static uint32_t last_pm25_out_update = 0;
// if (millis() - last_pm25_out_update > 15000)
// {
// uint16_t pm25_out_value = get_pm25_out();
// // ESP_LOGI("loopPM2.5","updating PM2.5 from MQTT inside loop: %d", pm25_out_value);
// iseDisplay.updatePMoutside(pm25_out_value);
// last_pm25_out_update = millis();
// }
// // Update the PM2.5 PPM value every 15 seconds
// static uint32_t last_pm25_in_update = 0;
// if (millis() - last_pm25_in_update > 15000)
// {
// uint8_t pm25_in_value = get_pm25_in();
// iseDisplay.updatePMinside(pm25_in_value);
// last_pm25_in_update = millis();
// }
// Update the temperature value every 15 seconds
// static uint32_t last_temp_out_update = 0;
// if (millis() - last_temp_out_update > 15000)
// {
// float temp_out_value = get_temp_out();
// iseDisplay.updateTempOutside(temp_out_value);
// last_temp_out_update = millis();
// }
// // Update the weather value every 15 seconds
// static uint32_t last_weather_update = 0;
// if (millis() - last_weather_update > 15000)
// {
// char *weather_value = weather.getValue();
// iseDisplay.updateWeather(weather_value);
// last_weather_update = millis();
// }
// // Update the PM state every 1 seconds
// static uint32_t last_pm_switch_update = 0;
// if (millis() - last_pm_switch_update > 500)
// {
// iseDisplay.updateAirPurifierState();
// last_pm_switch_update = millis();
// }
}
void on_pin_change(uint8_t pin, uint8_t value)
{
}
{}
uint16_t get_pm25_out()
{
uint16_t pm25_out_value = 0;
// Read PM2.5 PPM from sensor
pm25_out_value = atoi(pm25_out.getValue());
ESP_LOGI("PM2.5", "getting PM2.5 PPM from MQTT: %d", pm25_out_value);
return pm25_out_value;
}
uint16_t get_pm25_in()
{
uint16_t pm25_in_value = 0;
// Read PM2.5 PPM from sensor
pm25_in_value = atoi(pm25_in.getValue());
ESP_LOGI("PM2.5", "getting PM2.5 PPM from MQTT: %d", pm25_in_value);
return pm25_in_value;
}
float get_temp_out()
{
float temp_out_value = 0;
// Read temperature from sensor
temp_out_value = atof(temp_out.getValue());
ESP_LOGI("Temperature", "getting Temperature from MQTT: %f", temp_out_value);
return temp_out_value;
}
uint8_t get_pm_fanspeed()
{
uint8_t pm_fan_speed_value = 0;
// Read PM2.5 fan speed from sensor
pm_fan_speed_value = (int) atof(pm_fan_speed.getValue());
ESP_LOGI("PM fan speed", "getting PM2.5 PPM from MQTT: %d", pm_fan_speed_value);
return pm_fan_speed_value;
}
bool get_pm_switch()
{
ESP_LOGI("PM switch", "getting PM switch state from MQTT: %d", pm_switch.getValue());
bool is_pm_switch_on = strcmp(pm_switch.getValue(),"on")== 0;
return is_pm_switch_on;
}
void toggle_pm_switch()
{
bool is_pm_switch_on = get_pm_switch();
ESP_LOGI("PM switch", "toggling PM switch state from: %d to %d", is_pm_switch_on, !is_pm_switch_on);
pm_switch.setValue(is_pm_switch_on ? "0" : "1");
}
void set_pm_fanspeed(uint8_t speed)
{
ESP_LOGI("PM fan speed", "setting PM fan speed to: %d", speed);
char buffer[4];
itoa(speed, buffer, DEC);
pm_fan_speed.setValue(buffer);
}
void handlePageChange(uint8_t page)
{
// Which already send the time
// printESP_LOGI the page have changed
ESP_LOGI("Page", "Page change to: %d", page);
rtctime_t time = espmega.getTime();
iseDisplay.updateDateTimeText(time);
switch (page)
{
case PAGE_STANDBY:
iseDisplay.updateLightGroupStatePageStandby();
iseDisplay.updateAirPurifierStateStandby();
break;
case PAGE_DASHBOARD:
iseDisplay.updateLightGroupStatePageDashboard();
iseDisplay.updateAirPurifierState();
break;
default:
break;
}
// iseDisplay.updatePMinside();
iseDisplay.updatePMoutside(get_pm25_out());
iseDisplay.updatePMinside(get_pm25_in());
iseDisplay.updateWeather(weather.getValue());
iseDisplay.updateTempOutside(get_temp_out());
/* iseDisplay.updateACState();
iseDisplay.updateAirPurifierState();
iseDisplay.updateLightGroupStatePageStandby();
iseDisplay.updateLightGroupStatePageDashboard();
iseDisplay.updateuserACmode();
iseDisplay.updateAirPurifierStateStandby(); */
}

View file

@ -24,6 +24,7 @@ SET_LOOP_TASK_STACK_SIZE(32*1024);
void handleMqttMessage(char *topic, char *payload);
void subscribeToMqttTopics();
void handlePageChange(uint8_t page);
void sendStopBytes();
void sendExtStopBytes();
@ -34,4 +35,14 @@ void loop();
void on_pin_change(uint8_t pin, uint8_t value);
uint16_t get_pm25_out();
uint16_t get_pm25_in();
float get_temp_out();
void toggle_pm_switch();
void set_pm_fanspeed(uint8_t speed);
void display_update();
void pm25outupdatedisplay(char* value);
void pm25inupdatedisplay(char* value);
void tempoutupdatedisplay(char* value);
void weatherupdatedisplay(char* value);
void pmfanspeedupdatedisplay(char* value);
void pmswitchupdatedisplay(char* value);