diff --git a/.gdbinit b/.gdbinit index cdb733a..87ab140 100644 --- a/.gdbinit +++ b/.gdbinit @@ -1,2 +1,2 @@ set remotetimeout 20 -shell start /B C:\Users\ooo\Desktop\MiCoder/OpenOCD/Win32/openocd_mico.exe -s ./ -f ./mico-os/makefiles/OpenOCD/interface/jlink_swd.cfg -f ./mico-os/makefiles/OpenOCD/mw3xx/mw3xx.cfg -f ./mico-os/makefiles/OpenOCD/mw3xx/mw3xx_gdb_jtag.cfg -l ./build/openocd_log.txt +shell start /B F:\TC1\MiCoder_v1.3_Win32-64\MiCoder/OpenOCD/Win32/openocd_mico.exe -s ./ -f ./mico-os/makefiles/OpenOCD/interface/jlink_swd.cfg -f ./mico-os/makefiles/OpenOCD/mw3xx/mw3xx.cfg -f ./mico-os/makefiles/OpenOCD/mw3xx/mw3xx_gdb_jtag.cfg -l ./build/openocd_log.txt diff --git a/.openocd_cfg b/.openocd_cfg index 88f9f5e..b14a73f 100644 --- a/.openocd_cfg +++ b/.openocd_cfg @@ -1,3 +1,3 @@ -source [find C:\Users\ooo\Desktop\MiCoder/OpenOCD/jlink_swd.cfg] -source [find C:\Users\ooo\Desktop\MiCoder/OpenOCD/mw3xx.cfg] -source [find C:\Users\ooo\Desktop\MiCoder/OpenOCD/mw3xx_gdb_jtag.cfg] +source [find F:\TC1\MiCoder_v1.3_Win32-64\MiCoder/OpenOCD/jlink_swd.cfg] +source [find F:\TC1\MiCoder_v1.3_Win32-64\MiCoder/OpenOCD/mw3xx.cfg] +source [find F:\TC1\MiCoder_v1.3_Win32-64\MiCoder/OpenOCD/mw3xx_gdb_jtag.cfg] diff --git a/.version b/.version new file mode 100644 index 0000000..6c5edc6 --- /dev/null +++ b/.version @@ -0,0 +1 @@ +v1.0.79 diff --git a/TC1/http_server/app_httpd.c b/TC1/http_server/app_httpd.c index 6ebc6a4..a26dab6 100644 --- a/TC1/http_server/app_httpd.c +++ b/TC1/http_server/app_httpd.c @@ -36,6 +36,11 @@ #include #include "stdlib.h" +#include +#include +#include +#include + #include "mico.h" #include "httpd_priv.h" #include "app_httpd.h" @@ -54,7 +59,9 @@ static bool is_handlers_registered; const struct httpd_wsgi_call g_app_handlers[]; char power_info_json[2560] = {0}; char up_time[16] = "00:00:00"; -#define OTA_BUFFER_SIZE 512 // 每次写入的缓存大小 +#define CHUNK_SIZE 512 // 每次发送 512 字节,避免 buffer 太大 +#define OTA_BUFFER_SIZE 512 +#define MAX_OTA_SIZE 1024*1024 /* void GetPraFromUrl(char* url, char* pra, char* val) @@ -91,27 +98,30 @@ void GetPraFromUrl(char* url, char* pra, char* val) } */ -static int HttpGetIndexPage(httpd_request_t *req) { + +static OSStatus send_in_chunks(int sock, const uint8_t *data, int total_len) { OSStatus err = kNoErr; - - err = httpd_send_all_header(req, HTTP_RES_200, sizeof(web_index_html), HTTP_CONTENT_HTML_ZIP); - require_noerr_action(err, exit, http_log("ERROR: Unable to send http index headers.")); - - err = httpd_send_body(req->sock, web_index_html, sizeof(web_index_html)); - require_noerr_action(err, exit, http_log("ERROR: Unable to send http index body.")); - - exit: + for (int offset = 0; offset < total_len; offset += CHUNK_SIZE) { + int chunk_len = (total_len - offset > CHUNK_SIZE) ? CHUNK_SIZE : (total_len - offset); + err = httpd_send_body(sock, data + offset, chunk_len); + require_noerr_action(err, exit, http_log("ERROR: Send chunk failed at offset %d", offset)); + } +exit: return err; } -static int HttpGetDemoPage(httpd_request_t *req) { +static int HttpGetIndexPage(httpd_request_t *req) { OSStatus err = kNoErr; - err = httpd_send_all_header(req, HTTP_RES_200, sizeof(web_index_html), HTTP_CONTENT_HTML_ZIP); - require_noerr_action(err, exit, http_log("ERROR: Unable to send http demo headers.")); + int total_sz = sizeof(web_index_html); - err = httpd_send_body(req->sock, web_index_html, sizeof(web_index_html)); - require_noerr_action(err, exit, http_log("ERROR: Unable to send http demo body.")); - exit: + + err = httpd_send_all_header(req, HTTP_RES_200, total_sz, HTTP_CONTENT_HTML_ZIP); + require_noerr_action(err, exit, http_log("ERROR: Unable to send index headers.")); + + err = send_in_chunks(req->sock, web_index_html, total_sz); + require_noerr_action(err, exit, http_log("ERROR: Unable to send index body.")); + +exit: return err; } @@ -119,14 +129,15 @@ static int HttpGetAssets(httpd_request_t *req) { OSStatus err = kNoErr; char *file_name = strstr(req->filename, "/assets/"); - if (!file_name) { http_log("HttpGetAssets url[%s] err", req->filename); + if (!file_name) { + http_log("HttpGetAssets url[%s] err", req->filename); return err; } - //http_log("HttpGetAssets url[%s] file_name[%s]", req->filename, file_name); int total_sz = 0; const unsigned char *file_data = NULL; const char *content_type = HTTP_CONTENT_JS_ZIP; + if (strcmp(file_name + 8, "js_pack.js") == 0) { total_sz = sizeof(js_pack); file_data = js_pack; @@ -134,24 +145,32 @@ static int HttpGetAssets(httpd_request_t *req) { total_sz = sizeof(css_pack); file_data = css_pack; content_type = HTTP_CONTENT_CSS_ZIP; + } else if (strcmp(file_name + 8, "index.html") == 0) { + total_sz = sizeof(web_index_html); + file_data = web_index_html; + content_type = HTTP_CONTENT_HTML_ZIP; + } + + if (total_sz == 0 || file_data == NULL) { + http_log("File not found: %s", req->filename); + return err; } - if (total_sz == 0) return err; err = httpd_send_all_header(req, HTTP_RES_200, total_sz, content_type); - require_noerr_action(err, exit, http_log("ERROR: Unable to send http assets headers.")); + require_noerr_action(err, exit, http_log("ERROR: Unable to send asset headers.")); - err = httpd_send_body(req->sock, file_data, total_sz); - require_noerr_action(err, exit, http_log("ERROR: Unable to send http assets body.")); + err = send_in_chunks(req->sock, file_data, total_sz); + require_noerr_action(err, exit, http_log("ERROR: Unable to send asset body.")); - exit: +exit: return err; } static int HttpGetTc1Status(httpd_request_t *req) { char *sockets = GetSocketStatus(); char *short_click_config = GetButtonClickConfig(); - char *tc1_status = malloc(2048); + char *tc1_status = malloc(1500); char *socket_names = malloc(512); sprintf(socket_names, "%s,%s,%s,%s,%s,%s", user_config->socket_names[0], @@ -243,62 +262,88 @@ static int HttpSetButtonEvent(httpd_request_t *req) { return err; } -static int HttpSetOTAFile(httpd_request_t *req) { +#define OTA_BUF_SIZE 5120 + +static int HttpSetOTAFile(httpd_request_t *req) +{ + tc1_log("[OTA] hdr_parsed=%d, remaining=%d, body_nbytes=%d, req.chunked=%d", + req->hdr_parsed, req->remaining_bytes, req->body_nbytes, req->chunked); OSStatus err = kNoErr; - uint32_t total = 0, ota_offset = 0; - char *buffer = malloc(OTA_BUFFER_SIZE); - if (!buffer) return kGeneralErr; -// mico_logic_partition_t* ota_partition = MicoFlashGetInfo(MICO_PARTITION_OTA_TEMP); -// MicoFlashErase(MICO_PARTITION_OTA_TEMP, 0x0, ota_partition->partition_length); + int total = 0; + int ret = 0; + // req->chunked = 1; + + int total1 = req->remaining_bytes; + char *buffer = malloc(OTA_BUF_SIZE); + if (!buffer) return kNoMemoryErr; + uint32_t offset = 0; + + mico_logic_partition_t* ota_partition = MicoFlashGetInfo(MICO_PARTITION_OTA_TEMP); + MicoFlashErase(MICO_PARTITION_OTA_TEMP, 0x0, ota_partition->partition_length); CRC16_Context crc_context; CRC16_Init(&crc_context); + // 尝试读取全部 POST 数据 + while (1) { + ret = httpd_get_data2(req, buffer,OTA_BUF_SIZE); - tc1_log("開始接收 OTA 數據..."); - struct timeval timeout = {60, 0}; // 60秒 - setsockopt(req->sock, SOL_SOCKET, SO_RCVTIMEO, &timeout, sizeof(timeout)); -int remaining = -1; - while (remaining!=0) { - int readSize = remaining>OTA_BUFFER_SIZE?OTA_BUFFER_SIZE:(remaining>0?remaining:OTA_BUFFER_SIZE); - remaining = httpd_get_data(req, buffer, readSize); - if (remaining < 0) { - err = kConnectionErr; - tc1_log("httpd_get_data 失敗"); - goto exit; - break; + // ret = httpd_recv(req->sock, buffer, 128, 0); + total += ret; + // req->remaining_bytes -= ret; + + if (ret > 0) { + CRC16_Update(&crc_context, buffer, ret); + err = MicoFlashWrite(MICO_PARTITION_OTA_TEMP, &offset, (uint8_t *)buffer, ret); + require_noerr_quiet(err, exit); + tc1_log("[OTA] 本次读取 %d 字节,累计 %d 字节", ret, total); } -// CRC16_Update(&crc_context, buffer, readSize); + if (ret == 0 || req->remaining_bytes <= 0) { + // 读取完毕 + tc1_log("[OTA] 数据读取完成, 总计 %d 字节", total); + break; + } else if (ret < 0) { + tc1_log("[OTA] 数据读取失败, ret=%d", ret); + err = kConnectionErr; + break; + } + + mico_rtos_thread_msleep(100); -// err = MicoFlashWrite(MICO_PARTITION_OTA_TEMP, &crc_context->offset, (uint8_t *)buffer, readSize); -// require_noerr_quiet(err, exit); - total+=readSize; - mico_thread_msleep(10); + // tc1_log("[OTA] %x", buffer); + // tc1_log("[OTA] hdr_parsed=%d, remaining=%d, body_nbytes=%d", + // req->hdr_parsed, req->remaining_bytes, req->body_nbytes); } - + // if (buffer) free(buffer); uint16_t crc16; -// CRC16_Final(&crc_context, &crc16); - char response[64]; + CRC16_Final(&crc_context, &crc16); - snprintf(response, sizeof(response), "OK, total: %ld bytes, CRC: 0x%04X", total, crc16); - send_http(response, strlen(response), exit, &err); - return 0; - err = mico_ota_switch_to_new_fw(ota_offset, crc16); + err = mico_ota_switch_to_new_fw(total, crc16); + tc1_log("[OTA] mico_ota_switch_to_new_fw err=%d", err); require_noerr(err, exit); - tc1_log("OTA 完成,重啟系統"); - mico_system_power_perform(mico_system_context_get(), eState_Software_Reset); + char resp[128]; + snprintf(resp, sizeof(resp), "OK, total: %d bytes, req %d %d", total, req->body_nbytes, total1); + send_http(resp, strlen(resp), exit, &err); + mico_system_power_perform(mico_system_context_get(), eState_Software_Reset); exit: - if (req->sock >= 0) { - close(req->sock); - req->sock = -1; - } if (buffer) free(buffer); - tc1_log("OTA 結束,狀態: %d", err); return err; + + // ota_file_req = req; + + // OSStatus err = kNoErr; + // err = mico_rtos_create_thread(NULL, MICO_APPLICATION_PRIORITY, "OtaFileThread", OtaFileThread, 0x1000, 0); + // char buf[16] = {0}; + // sprintf(buf, "%d", sizeof(ota_file_req)); + // send_http(buf, strlen(buf), exit, &err); + + // exit: + // if (buf) free(buf); + // return err; } static int HttpSetDeviceName(httpd_request_t *req) { @@ -390,19 +435,62 @@ static int HttpGetWifiConfig(httpd_request_t *req) { return err; } + +// 单个十六进制字符转数字(安全) +static int hex_char_to_int(char c) { + if ('0' <= c && c <= '9') return c - '0'; + if ('a' <= c && c <= 'f') return c - 'a' + 10; + if ('A' <= c && c <= 'F') return c - 'A' + 10; + return -1; +} + +// 健壮版 URL 解码函数 +void url_decode(const char *src, char *dest, size_t max_len) { + size_t i = 0; + while (*src && i < max_len - 1) { + if (*src == '%') { + if (isxdigit((unsigned char)src[1]) && isxdigit((unsigned char)src[2])) { + int high = hex_char_to_int(src[1]); + int low = hex_char_to_int(src[2]); + if (high >= 0 && low >= 0) { + dest[i++] = (char)((high << 4) | low); + src += 3; + continue; + } + } + // 非法编码,跳过 % + src++; + } else if (*src == '+') { + dest[i++] = ' '; + src++; + } else { + dest[i++] = *src++; + } + } + dest[i] = '\0'; +} + static int HttpSetWifiConfig(httpd_request_t *req) { OSStatus err = kNoErr; - int buf_size = 97; - char *buf = malloc(buf_size); - int mode = -1; - char *wifi_ssid = malloc(32); - char *wifi_key = malloc(32); + char *buf = malloc(256); + char *ssid_enc = malloc(128); + char *key_enc = malloc(128); + char *wifi_ssid = malloc(128); + char *wifi_key = malloc(128); + int mode = -1; - err = httpd_get_data(req, buf, buf_size); + + + err = httpd_get_data(req, buf, 256); require_noerr(err, exit); - - sscanf(buf, "%d %s %s", &mode, wifi_ssid, wifi_key); + // 假设 httpd_get_data(req, buf, 256); +// tc1_log("wifi config %s",buf); + sscanf(buf, "%d %s %s", &mode, ssid_enc, key_enc); +// tc1_log("wifi config %s %s",ssid_enc,key_enc); + url_decode(ssid_enc, wifi_ssid,128); + url_decode(key_enc, wifi_key,128); +// tc1_log("wifi config decode %s %s",wifi_ssid,wifi_key); if (mode == 1) { WifiConnect(wifi_ssid, wifi_key); } else { @@ -462,7 +550,10 @@ static int HttpSetMqttConfig(httpd_request_t *req) { sscanf(buf, "%s %d %s %s", MQTT_SERVER, &MQTT_SERVER_PORT, MQTT_SERVER_USR, MQTT_SERVER_PWD); mico_system_context_update(sys_config); - + if (!(MQTT_SERVER[0] < 0x20 || MQTT_SERVER[0] > 0x7f || MQTT_SERVER_PORT < 1)){ + err = UserMqttInit(); + require_noerr(err, exit); + } send_http("OK", 2, exit, &err); exit: @@ -667,7 +758,6 @@ static int OtaStart(httpd_request_t *req) { const struct httpd_wsgi_call g_app_handlers[] = { {"/", HTTPD_HDR_DEFORT, 0, HttpGetIndexPage, NULL, NULL, NULL}, - {"/demo", HTTPD_HDR_DEFORT, 0, HttpGetDemoPage, NULL, NULL, NULL}, {"/assets", HTTPD_HDR_ADD_SERVER | HTTPD_HDR_ADD_CONN_CLOSE, APP_HTTP_FLAGS_NO_EXACT_MATCH, HttpGetAssets, NULL, NULL, NULL}, {"/socket", HTTPD_HDR_DEFORT, 0, NULL, HttpSetSocketStatus, NULL, NULL}, diff --git a/TC1/http_server/app_httpd.h b/TC1/http_server/app_httpd.h index 69212d0..2b9b2b2 100644 --- a/TC1/http_server/app_httpd.h +++ b/TC1/http_server/app_httpd.h @@ -73,7 +73,7 @@ #define POWER_INFO_JSON "{'sockets':'%s','idx':%d,'len':%d,'p_count':%ld,'powers':[%s],'up_time':'%s','led_enabled':%d,'total_switch_on':%d,'socketNames':'%s','p_count_1_day_ago':%d,'p_count_2_days_ago':%d,'child_lock_enabled':%d,'deviceName':'%s','btnClicks':%s}" -int AppHttpdStart(void); +extern int AppHttpdStart(void); -int AppHttpdStop(); +extern int AppHttpdStop(); diff --git a/TC1/http_server/web/index.html b/TC1/http_server/web/index.html index 3e5a523..3255f2b 100644 --- a/TC1/http_server/web/index.html +++ b/TC1/http_server/web/index.html @@ -31,7 +31,7 @@
- TC1智能插座
- - - - - - - - - - - - - - + + + + + + + + + + + + + +
- +
-
-

功率图

-
+
+

功率图

+
-
- - - - - - - -
当前功率: 0 W今日电量: 0 kW·h昨日电量: 0 kW·h总电量: 0 kW·h
-
-
-
+
+ + + + + + + +
当前功率: 0 W今日电量: 0 kW·h昨日电量: 0 kW·h总电量: 0 kW·h
+
+
+
@@ -368,10 +368,10 @@ @@ -401,10 +401,10 @@ @@ -422,10 +422,10 @@ @@ -438,20 +438,6 @@ 循环 操作 - - 02-15 07:11 - 1 - 0 - 0 - 删除 - - - 2020-02-15
07:11:08 - 1 - 0 - 6 - 删除 - @@ -519,10 +505,10 @@ @@ -539,7 +525,7 @@ 操作 - +
@@ -598,10 +584,10 @@
@@ -610,23 +596,23 @@ - + - + - + - + - +
版本v1.0.33
IP192.168.33.222
子网掩码255.255.255.0
网关192.168.33.1
启动时间10:13:43
@@ -638,7 +624,7 @@ - 2020-02-22 +
@@ -655,10 +641,10 @@
@@ -675,10 +661,11 @@ +
@@ -689,10 +676,10 @@

                 
@@ -975,6 +962,7 @@ BTN_OPERATIONS.push("重新配网"); BTN_OPERATIONS.push("重置系统"); BTN_OPERATIONS.push("切换童锁"); + BTN_OPERATIONS.push("重启网页"); $('#btn_action_selector').append( $('
  • ') @@ -1234,15 +1222,15 @@ componentHandler.upgradeDom(); var mode = $("#custom_station").prop("checked") ? 1 : 0; var ssid = $("#custom_ssid").val(); var passwd = $("#custom_password").val(); - if (ContainQM(ssid) || ContainQM(passwd)) { - alert(qm_mess); - return; - } + //if (ContainQM(ssid) || ContainQM(passwd)) { + // alert(qm_mess); + // return; + //} if (passwd.length < 8) { alert(le_mess); return; } - var params = mode + " " + ssid + " " + passwd; + var params = mode + " " + encodeURIComponent(ssid) + " " + encodeURIComponent(passwd); HttpPost("/wifi/config", function (re) { ShowToast(re); }, params); @@ -1503,27 +1491,50 @@ HttpPost("/shortClickEvent", function (re) { var ota_url = document.getElementById("ota_url").value; var protocol = window.location.protocol; var baseUrl = protocol+"//"+window.location.host; - +document.getElementById("submit-ota-link").disabled = true; HttpPost("/ota", function (re) { OtaStatus(); }, ota_url); } - + var upload_status = document.querySelector('#upload_status'); + upload_status.addEventListener('mdl-componentupgraded', function() { + this.MaterialProgress.setProgress(0); + }); function OtaFileUpload() { //alert("假的假的是假的,忽略"); //return; var fileInput = document.getElementById("ota_file"); if (fileInput.files.length === 0) { - alert("请选择要上传的 OTA 文件"); + ShowToast("请选择要上传的 OTA 文件"); return; } clearTimeout(powerTimerId); -fetch("/ota/fileUpload", { - method: "POST", - headers: { "Content-Type": "application/octet-stream" }, - body: fileInput.files[0] -}).then(r => r.text()).then(alert).catch(alert); - } +console.log(fileInput.files[0].size); // 应显示 647168 左右 +document.getElementById("submit-ota-file").disabled = true; +const xhr = new XMLHttpRequest(); +xhr.open("POST", "/ota/fileUpload"); + +xhr.upload.onprogress = function (e) { + if (e.lengthComputable) { + let percent = (e.loaded / e.total * 100).toFixed(1); + upload_status.MaterialProgress.setProgress(percent); + console.log(`上传进度:${percent}%`); + } +}; + +xhr.onload = function () { + alert("上传完成:" + xhr.responseText); + document.getElementById("submit-ota-file").disabled = false; +}; + +xhr.onerror = function () { + alert("上传失败"); + document.getElementById("submit-ota-file").disabled = false; +}; + +xhr.setRequestHeader("Content-Type", "application/octet-stream"); +xhr.send(fileInput.files[0]); + } var ota_status = document.querySelector('#ota_status'); ota_status.addEventListener('mdl-componentupgraded', function() { diff --git a/TC1/http_server/web_data.c b/TC1/http_server/web_data.c index d0a3021..8fcc73b 100644 --- a/TC1/http_server/web_data.c +++ b/TC1/http_server/web_data.c @@ -1,5 +1,5 @@ const unsigned char js_pack[0xd2be] = { -0x1f,0x8b,0x08,0x00,0x3b,0x32,0xe0,0x67,0x02,0xff,0xd4,0xbd,0xfb,0x72,0xdb,0x46, +0x1f,0x8b,0x08,0x00,0x1c,0x48,0x06,0x68,0x02,0xff,0xd4,0xbd,0xfb,0x72,0xdb,0x46, 0xd2,0x38,0xfa,0xff,0x56,0xed,0x3b,0x88,0x48,0x96,0x01,0xc4,0x21,0x45,0xca,0xb1, 0x13,0x83,0x1e,0xb1,0x1c,0xdb,0x49,0xbc,0x5f,0x9c,0x64,0xe3,0x5c,0x97,0x62,0x52, 0xb8,0x92,0xa0,0x48,0x82,0xe2,0xc5,0x12,0x23,0x72,0xdf,0xe7,0xf7,0x1a,0xe7,0xc9, @@ -3372,7 +3372,7 @@ const unsigned char js_pack[0xd2be] = { 0x02,0x0f,0xb7,0x98,0x0c,0x59,0x7f,0x97,0xf2,0x25,0x55,0x7c,0x45,0xad,0x25,0x8e, 0x0f,0x58,0x4f,0xcc,0x9f,0x00,0x32,0xd2,0xf4,0xa5,0xf0,0xee,0x02,0x00}; const unsigned char css_pack[0x6217] = { -0x1f,0x8b,0x08,0x00,0x3b,0x32,0xe0,0x67,0x02,0xff,0xed,0xbd,0x79,0x73,0xdb,0xc8, +0x1f,0x8b,0x08,0x00,0x1d,0x48,0x06,0x68,0x02,0xff,0xed,0xbd,0x79,0x73,0xdb,0xc8, 0xf5,0x28,0xfa,0x7f,0xaa,0xf2,0x1d,0x70,0x9d,0x9a,0x1a,0x6b,0x42,0xc8,0xd8,0x49, 0x4a,0x95,0x54,0xbc,0x8f,0x26,0x96,0x9c,0x78,0x19,0x8f,0x9d,0x5f,0x9e,0x0b,0x04, 0x9a,0x24,0x24,0x90,0x60,0x00,0x50,0x1b,0x4b,0xb7,0xee,0x07,0xb9,0xef,0xcb,0xbd, @@ -4942,843 +4942,880 @@ const unsigned char css_pack[0x6217] = { 0x34,0x4a,0x61,0x0f,0x9e,0x4c,0x71,0xf7,0x2d,0x84,0xeb,0x52,0x24,0xf6,0xd5,0x25, 0xe6,0x54,0x09,0x49,0xbc,0xd0,0xc2,0x1c,0x55,0x23,0x76,0x55,0x21,0xff,0x3f,0x3f, 0xef,0x85,0xce,0x3d,0xbc,0x02,0x00}; -const unsigned char web_index_html[0x3465] = { -0x1f,0x8b,0x08,0x00,0x3b,0x32,0xe0,0x67,0x02,0xff,0xed,0x7d,0x6d,0x93,0xdb,0xc6, -0x91,0xf0,0xf7,0xab,0xca,0x7f,0x18,0xc3,0xaa,0x90,0xbc,0x25,0x40,0x02,0x7c,0x59, -0x72,0xdf,0x52,0xca,0xda,0xc9,0xfa,0xb9,0x95,0xe5,0xcb,0xea,0x94,0xe7,0x4e,0x71, -0xd1,0x58,0x02,0xbb,0x84,0x05,0x12,0x34,0x00,0xee,0x6a,0x6d,0xab,0x4a,0x4a,0xce, -0x27,0x4b,0x67,0x59,0xb2,0xe3,0x44,0x77,0xb6,0x2f,0xb1,0x73,0x76,0xec,0x38,0xb1, -0x95,0xbb,0x24,0x7e,0x91,0x64,0xbb,0xea,0xf9,0x2b,0x16,0xb9,0xd2,0x27,0xff,0x85, -0xa7,0x7b,0x06,0x2f,0x03,0x10,0x20,0xb9,0x12,0x57,0xb6,0xac,0x5d,0x5b,0x20,0x30, -0x98,0xe9,0xe9,0xe9,0xee,0xe9,0xe9,0xe9,0xe9,0x19,0x7c,0x7d,0xfd,0xcb,0x85,0x87, -0x34,0xab,0xe9,0xee,0x74,0x75,0xd2,0x72,0xdb,0xe6,0xd2,0xf7,0xfe,0x6e,0x01,0x7f, -0x89,0xa9,0x76,0x36,0x17,0x05,0xbd,0x23,0xd0,0x14,0x5d,0xd5,0xe0,0x97,0xc0,0xdf, -0x42,0x5b,0x77,0x55,0xd2,0x6c,0xa9,0xb6,0xa3,0xbb,0x8b,0x42,0xcf,0xdd,0x10,0x6b, -0x42,0xe4,0x5d,0xcb,0x75,0xbb,0xa2,0xfe,0x4c,0xcf,0xd8,0x5a,0x14,0xfe,0xaf,0xf8, -0x4f,0x87,0xc5,0x65,0xab,0xdd,0x55,0x5d,0x63,0xdd,0xd4,0x05,0xd2,0xb4,0x3a,0xae, -0xde,0x81,0x82,0x8f,0x3d,0xba,0xa8,0x6b,0x9b,0x7a,0xb4,0x68,0x47,0x6d,0xeb,0x8b, -0x82,0xa6,0x3b,0x4d,0xdb,0xe8,0xba,0x86,0xd5,0x11,0xd8,0x5b,0xf6,0x17,0x94,0x3d, -0x4c,0x36,0x6c,0xb8,0x17,0xf5,0x8e,0x46,0x5c,0xbd,0xdd,0x35,0x55,0x57,0x27,0x6e, -0x4b,0x75,0x49,0x4b,0x37,0xbb,0x0e,0xd9,0xb1,0x7a,0x64,0xbd,0x67,0x98,0x1a,0xd9, -0x50,0x1d,0x37,0x4f,0xda,0x96,0xa6,0xdb,0x1d,0xf8,0x59,0x37,0x4c,0x9d,0x6c,0xeb, -0xeb,0x44,0xed,0x76,0x1d,0x29,0xa9,0xee,0x2d,0x43,0xdf,0xee,0x5a,0xb6,0xcb,0x61, -0xba,0x6d,0x68,0x6e,0x6b,0x51,0xd3,0xb7,0x8c,0xa6,0x2e,0xd2,0x87,0x3c,0x31,0x3a, -0x86,0x6b,0xa8,0xa6,0xe8,0x34,0x55,0x53,0x5f,0x94,0xa5,0x22,0x54,0x02,0x69,0xed, -0x5e,0x3b,0x4c,0x0a,0xc0,0xbb,0x86,0x6b,0xea,0x4b,0xc7,0x96,0xe5,0xc1,0x7f,0x5e, -0xbb,0xf5,0x8b,0xcf,0x07,0x97,0x5e,0xed,0x5f,0x7b,0x6f,0xa1,0xc0,0x92,0x87,0x51, -0x60,0x68,0x8a,0x80,0xa6,0x08,0x68,0x8a,0x4d,0xb5,0xab,0x46,0x49,0xb7,0xa3,0x3b, -0x01,0x6c,0xd3,0xe8,0x9c,0x24,0xb6,0x6e,0x2e,0x0a,0x06,0xbc,0x17,0x88,0x63,0x3c, -0xab,0x3b,0x8b,0x82,0x5c,0x57,0x4e,0xc1,0x3f,0x81,0xb4,0x6c,0x7d,0x63,0x51,0x40, -0x96,0xcc,0x15,0x0a,0x3b,0xbd,0x8e,0x6b,0x75,0x36,0x25,0xa3,0xd9,0x2b,0xb8,0x4d, -0xb9,0x60,0xb4,0xd5,0x4d,0xdd,0x29,0xa8,0x1d,0xcd,0xb6,0x0c,0x4d,0x04,0xba,0x9f, -0x74,0xad,0xae,0xd4,0xed,0x6c,0x06,0xf0,0x1f,0x12,0x45,0x72,0x58,0x03,0x32,0x5b, -0xa4,0x65,0xb5,0x91,0x31,0xba,0xde,0x21,0x1b,0x96,0x4d,0xd6,0xd4,0x0d,0xd5,0x36, -0x88,0xd5,0x21,0xc6,0xd1,0x35,0x22,0x8a,0x09,0x2d,0x01,0xf4,0xa1,0x21,0x7b,0x6a, -0xcf,0xb8,0xd2,0x8e,0xab,0xba,0x3d,0x47,0x5c,0x57,0x6d,0xb8,0xdd,0x89,0x80,0x59, -0x37,0xd5,0xe6,0xc9,0x89,0x01,0x51,0xea,0x73,0xa5,0x8f,0x80,0x0c,0xd9,0xc0,0x52, -0xf2,0x88,0xee,0x18,0x9b,0x1d,0xb2,0x6a,0xb8,0x7a,0x02,0x95,0x19,0x2c,0xd7,0xea, -0x35,0x5b,0x22,0x52,0x5c,0xec,0xda,0x7a,0x13,0xe4,0xdb,0x72,0x74,0x6d,0x32,0x6a, -0x1b,0x96,0x93,0x4a,0xe9,0x63,0x28,0x9f,0x08,0x96,0x52,0xf8,0xa7,0x46,0xa7,0x46, -0xb2,0x72,0xb9,0x7c,0x0a,0xfe,0x91,0x19,0xe2,0xe2,0xdb,0xa6,0x65,0x5a,0x76,0x2e, -0x99,0xde,0x6d,0x07,0xd1,0x33,0x9a,0x2a,0x76,0x1d,0x11,0x81,0x3d,0x86,0x75,0x26, -0x77,0xa2,0xd1,0x58,0xd2,0x16,0x16,0xda,0x0e,0xdf,0x54,0x0f,0x13,0xbe,0xc9,0x91, -0x16,0x8c,0xc4,0x64,0x19,0xf1,0xe6,0xe8,0xfd,0x70,0xa9,0x34,0xab,0x3c,0xf2,0xa3, -0x04,0x12,0x3b,0x2d,0xe8,0x7f,0xcd,0x9e,0x4b,0x98,0x44,0x4f,0x42,0xd3,0x0d,0x75, -0x0b,0x33,0x47,0xb0,0xe1,0x00,0xa2,0xa0,0x38,0x2d,0x5d,0x77,0x7d,0x68,0xaa,0x03, -0xca,0xcb,0x29,0x34,0x1d,0xa7,0xd1,0x05,0xa1,0x91,0xe0,0x26,0x28,0x47,0x73,0x2f, -0x85,0x24,0x93,0xda,0x9a,0x29,0xb6,0xf5,0x4e,0x8f,0x3c,0xc7,0xd3,0x91,0x90,0xb6, -0x7a,0x4a,0x6c,0xe9,0xc6,0x66,0xcb,0x9d,0x23,0xa5,0x62,0xb1,0x7b,0x8a,0x3c,0x64, -0xb4,0x51,0x77,0xa8,0x1d,0x77,0x3e,0x9a,0xd5,0xda,0xd2,0xed,0x0d,0xd3,0xda,0x16, -0x77,0xe6,0x88,0xda,0x83,0xbe,0x94,0x98,0xf3,0xb4,0x87,0x41,0xc1,0x47,0x61,0xa1, -0xe0,0x29,0xde,0x85,0x75,0x4b,0xdb,0xc1,0x5f,0xcd,0xd8,0x22,0x4d,0x13,0xd0,0x47, -0x2d,0xd9,0xb6,0x44,0x53,0x05,0x5d,0xe7,0x12,0x44,0x91,0xbb,0x7d,0xda,0x19,0x7e, -0x21,0x8a,0x1b,0xc6,0x29,0x1d,0x3a,0xb9,0xad,0x6e,0xeb,0x76,0xc2,0x0b,0xac,0x4a, -0xb7,0x03,0x32,0xb0,0xc7,0x48,0x65,0x5e,0x52,0x58,0xb4,0xd1,0x88,0x16,0xa2,0x05, -0x39,0x14,0x87,0x73,0x8a,0xb6,0xb5,0xcd,0xe7,0xa6,0x25,0xd6,0x7b,0x2e,0x30,0x95, -0x2f,0xe4,0xa5,0x78,0x6d,0x89,0x3e,0xc1,0xc8,0x80,0x5d,0x50,0xdf,0xd8,0xd0,0x9b, -0xac,0x81,0xec,0xbd,0x48,0x85,0x94,0xe8,0x9a,0xe1,0x8a,0x9e,0xb2,0x46,0x59,0x8c, -0xd7,0x46,0x6b,0x34,0x82,0xca,0xbc,0x5e,0x4f,0xcb,0x3a,0x49,0x79,0x99,0x4c,0x6c, -0x6d,0xa6,0xbc,0xa2,0xaf,0x7b,0x8e,0x4e,0x4e,0xa1,0xbc,0xcd,0x31,0xf1,0x7a,0x98, -0x76,0x17,0xc4,0x44,0x28,0xa4,0x81,0x2c,0x24,0xc3,0x5c,0x28,0x18,0x71,0xf2,0x14, -0x58,0xfb,0xe2,0xc9,0x4e,0x57,0xed,0x0c,0x13,0xda,0xd3,0x6b,0xc3,0xa3,0x0d,0x66, -0x8f,0x83,0x48,0x64,0x95,0x08,0x39,0x9b,0xc8,0xd3,0x85,0x02,0xbc,0x47,0xa1,0x43, -0xcd,0x34,0x7d,0x7e,0x7d,0xff,0xe1,0x72,0x65,0x9e,0x5e,0x68,0x3f,0xa7,0x0a,0x2d, -0x5e,0x95,0xff,0x67,0x68,0xa0,0x01,0x34,0x7b,0xdd,0x05,0x73,0x24,0x35,0x63,0x3a, -0x57,0x47,0xc2,0xa6,0xcc,0x1d,0x99,0x63,0x04,0x8f,0x5d,0x5b,0xed,0x38,0x68,0x7e, -0x00,0xa3,0x47,0xd7,0x52,0x18,0x59,0x0d,0xb2,0x3d,0xf1,0x65,0xc0,0xfd,0xe4,0xb7, -0x3d,0x93,0x67,0x03,0xd5,0x52,0x1e,0xd9,0xf9,0xfb,0x61,0x16,0xe0,0xdb,0x90,0x01, -0xeb,0x16,0x54,0xd1,0x86,0x6c,0xa0,0xcb,0xd2,0x19,0x01,0x43,0xd2,0x24,0x5c,0x30, -0x8d,0x38,0x4a,0x8d,0x06,0x8c,0xa5,0x6d,0x01,0x4c,0x85,0x26,0x0c,0x09,0x27,0x17, -0x85,0xe5,0x16,0x18,0x97,0xfa,0x2a,0x5c,0x7a,0xa0,0xbe,0xb3,0x19,0xbd,0x93,0xc9, -0x09,0x4b,0x8f,0x76,0x36,0x4d,0xc3,0x69,0x2d,0x14,0x4c,0x63,0xba,0xe0,0x9b,0x14, -0xfc,0xcd,0x4f,0x3f,0x1c,0xfc,0xfa,0xdc,0xf4,0xa1,0x3f,0xdd,0x45,0xe8,0x83,0x2b, -0xef,0x0e,0xde,0xfc,0xd3,0xad,0x0f,0x7e,0x93,0x5e,0xc1,0x42,0xa1,0x67,0x2e,0x05, -0xe3,0x76,0xbc,0x37,0x05,0xf0,0x6d,0x7d,0xdd,0xb2,0xdc,0x6c,0x4e,0x48,0x56,0x1c, -0x53,0xd1,0x92,0x29,0xb0,0xb1,0x9b,0xb1,0xea,0x29,0x8f,0xbf,0x29,0xc5,0xc9,0x50, -0xd8,0x1f,0xd5,0xe9,0x2b,0x35,0x76,0xcf,0x06,0x25,0xff,0x31,0x3e,0xb8,0x0e,0x0d, -0x95,0x8d,0x06,0x97,0x44,0x0d,0x31,0x51,0x5c,0x37,0x7b,0xba,0xb8,0x69,0xeb,0x3b, -0x62,0xbd,0x58,0xe4,0x5e,0xb8,0xfa,0x29,0x97,0x7f,0x5b,0x29,0x46,0x46,0xc9,0x8e, -0x1a,0xad,0x0b,0x9e,0x8d,0x4d,0x6a,0x2d,0x51,0x18,0xb1,0xc7,0xa1,0xba,0x6a,0xc5, -0xe2,0xd0,0x30,0xaa,0xf2,0xb2,0x11,0x02,0x68,0x34,0xa8,0x25,0xe4,0x25,0x8a,0x6a, -0xd3,0x35,0xb6,0x74,0xdf,0x10,0x7a,0x5a,0xdd,0x52,0xd9,0x64,0x6b,0x6e,0xad,0x65, -0x6d,0x3f,0x81,0x12,0x2d,0xe7,0xe6,0xc7,0xf0,0x3e,0xb5,0x91,0x65,0x24,0x41,0x54, -0x32,0x88,0x6d,0xc1,0x74,0x48,0x00,0x9b,0xd1,0x01,0xbb,0x8f,0x62,0x34,0x5d,0x69, -0xc1,0x69,0xc9,0x14,0x64,0x65,0x68,0x4c,0xc5,0x09,0xb0,0x40,0xa7,0xc1,0xff,0xa0, -0xef,0x2c,0x0a,0x2b,0x58,0x0d,0x28,0x91,0xeb,0xb7,0xdf,0xfe,0x5b,0xf2,0x68,0x5a, -0x50,0xf7,0xc4,0x91,0x51,0x2c,0x50,0xee,0x2f,0x16,0x80,0x31,0xed,0x1a,0x9d,0x4d, -0xe7,0x1e,0xb0,0x61,0xd9,0xea,0x6c,0x18,0x60,0xe4,0xdf,0xfa,0xe8,0x8b,0xdd,0xcf, -0x3f,0xda,0x77,0x46,0x94,0xee,0x2f,0x46,0xa8,0xcd,0xa6,0x0e,0x73,0x1a,0xd5,0x54, -0xed,0xf6,0x3d,0x60,0xc6,0x31,0xa3,0xad,0x6b,0xc7,0x54,0x07,0x66,0xdd,0xfd,0x8f, -0x5e,0x1f,0x5c,0xf9,0xf8,0xe6,0xf5,0xeb,0xfd,0x0b,0x6f,0xef,0x3b,0x57,0xca,0xf7, -0x17,0x57,0xe8,0xc0,0x7e,0x6f,0xd9,0x31,0x78,0xe9,0xfc,0xed,0xd7,0x3e,0xba,0x75, -0xee,0x03,0xe0,0xcb,0xcd,0xcf,0xce,0xef,0x3b,0x47,0x2a,0xf7,0x17,0x47,0x8c,0xce, -0x86,0x75,0x0f,0x18,0xb2,0xb6,0xe3,0x80,0xed,0xb8,0x46,0x5d,0x56,0xc2,0xd2,0xee, -0x5f,0xae,0xef,0x5e,0xff,0xed,0xee,0x85,0x8f,0x07,0x67,0xce,0xee,0x3b,0x43,0xaa, -0xf7,0x5b,0x17,0xb1,0x7a,0x5a,0x43,0xb3,0xb6,0x3b,0xa6,0xa5,0x6a,0xf7,0x80,0x35, -0x47,0x8f,0x1d,0x06,0xa5,0xf5,0xe6,0xfb,0xbb,0xd7,0xbe,0xec,0x5f,0x3c,0xb7,0x9b, -0x36,0x43,0x9e,0x22,0x47,0x66,0xef,0x2f,0x8e,0x74,0x2c,0x57,0x77,0xee,0x59,0x1f, -0x59,0xb5,0x36,0xfd,0x0e,0x02,0x33,0xa9,0xfe,0x97,0x57,0x26,0x60,0xc7,0x42,0x01, -0xc8,0x1f,0x98,0xf2,0x9c,0x59,0xdf,0x56,0x8d,0x4e,0x92,0x0b,0xca,0xf3,0x3d,0x8e, -0xf2,0x56,0x6d,0xda,0x86,0x46,0xa8,0x41,0xce,0x65,0x66,0xff,0xa5,0x79,0x4e,0xba, -0xc0,0x5c,0x82,0x17,0x99,0x99,0xea,0xba,0x69,0x06,0x37,0xa2,0x58,0x46,0x96,0x72, -0xcf,0x35,0x7c,0x16,0x5d,0xf4,0x80,0xb3,0x69,0x19,0xad,0xd1,0xbf,0x11,0x81,0xec, -0xd4,0xff,0x62,0x84,0x8e,0xcc,0xb4,0x7a,0x29,0x96,0x16,0x5d,0x25,0x71,0x58,0x05, -0xaa,0xcd,0x20,0x39,0x2d,0x15,0x7a,0x92,0x28,0x2a,0x5a,0x77,0x12,0x94,0x4a,0x71, -0x94,0x58,0xb2,0xac,0xd0,0x74,0xcf,0x55,0x9d,0x2a,0x5c,0x31,0x02,0x22,0x12,0x8d, -0x86,0xd3,0xeb,0xa2,0x7b,0x13,0x5a,0x41,0x65,0x99,0x11,0x31,0x55,0x00,0x13,0x41, -0x50,0x3f,0x56,0xd0,0x2e,0x51,0xd4,0x4f,0x81,0x3c,0x68,0xc2,0x08,0x41,0x66,0x6e, -0x4b,0x25,0x05,0x94,0x87,0x08,0x73,0x87,0x0d,0x5e,0x7e,0xaf,0xff,0xe2,0xc7,0x30, -0xff,0x53,0x46,0x75,0x0c,0x4e,0xa6,0x92,0x3b,0x8e,0x49,0x67,0xcc,0x8e,0xd5,0x3c, -0xa9,0xbb,0x8d,0x9e,0x29,0x44,0x5d,0xb3,0x86,0xe3,0x52,0x29,0xb2,0x3d,0x6a,0x63, -0xc2,0x58,0xfc,0xa3,0x0e,0x08,0x2c,0xe2,0x39,0x20,0x52,0x3b,0x77,0xdc,0x0d,0x18, -0x14,0x11,0xbb,0xb6,0xd1,0x56,0xed,0x1d,0x31,0x41,0xee,0xf7,0x60,0x70,0xb7,0x0c, -0x53,0x5b,0xb5,0x70,0x65,0xa5,0x7f,0xf9,0xea,0xee,0x6b,0xef,0xef,0xfe,0xf1,0xdd, -0xdb,0xaf,0x25,0x0f,0x60,0x9c,0x76,0x48,0x7f,0x39,0x29,0xf6,0x8e,0x0e,0x78,0x6b, -0x88,0x3f,0x4e,0x59,0xd3,0xd5,0x1b,0x12,0x4d,0x5d,0xd7,0x23,0x8e,0x30,0x67,0xdb, -0x70,0x9b,0x2d,0xdf,0x17,0x12,0x7d,0x8a,0x78,0x46,0x84,0x31,0x38,0x52,0x9f,0x17, -0xe5,0x24,0x03,0x22,0x36,0x91,0x1c,0xa2,0x69,0x85,0x2b,0x4d,0x89,0x18,0x19,0x9d, -0x6e,0xcf,0x25,0xb8,0xaa,0xba,0x28,0x34,0x5b,0x7a,0xf3,0xe4,0xba,0x75,0x4a,0xa0, -0xd2,0x92,0x02,0x6c,0x18,0x7b,0x20,0x03,0x02,0x11,0xc6,0x52,0x91,0xc2,0xd7,0xb5, -0x42,0x3a,0x7d,0x0a,0x94,0x40,0x77,0xc3,0x2c,0xea,0xd5,0xba,0xdf,0x44,0x77,0x55, -0x07,0x7d,0xb1,0xfb,0xda,0xdf,0x06,0xd7,0x2e,0x0f,0x5e,0x3a,0xb7,0xfb,0xce,0xb5, -0xdd,0xb3,0x57,0x1f,0x54,0xb9,0x2d,0x4e,0x41,0x5c,0x8b,0x07,0x52,0xba,0x0f,0x52, -0xba,0x46,0x87,0x8f,0xc3,0xa6,0x09,0x83,0xd3,0x99,0xeb,0xfd,0x1b,0x67,0xfa,0x2f, -0xfc,0xe5,0x41,0x95,0x52,0x15,0xa9,0x70,0xd7,0x72,0x8a,0x50,0x0e,0x24,0xf5,0xce, -0x24,0x75,0x5f,0x96,0x63,0x99,0x85,0xf4,0x9d,0x5e,0x8e,0xdd,0x4b,0x5f,0xf7,0xad, -0x50,0x4f,0x52,0x22,0x05,0x3c,0x52,0x19,0x1d,0x4d,0x3f,0x25,0x2c,0x89,0xf2,0x83, -0xaa,0x09,0xe4,0x29,0xe8,0x01,0xf9,0x40,0x0b,0x1c,0x68,0x81,0xef,0x82,0x16,0x50, -0x1e,0x54,0x2d,0xa0,0x4c,0x41,0x0b,0x28,0x07,0x5a,0xe0,0x40,0x0b,0x7c,0x17,0xb4, -0x40,0xe9,0x41,0xd5,0x02,0xa5,0x29,0x68,0x81,0xd2,0x81,0x16,0x38,0xd0,0x02,0xdf, -0x05,0x2d,0x50,0x7e,0x50,0xb5,0x40,0x79,0x0a,0x5a,0xa0,0x7c,0xa0,0x05,0x0e,0xb4, -0xc0,0x77,0x41,0x0b,0x54,0x1e,0x54,0x2d,0x50,0x99,0x82,0x16,0xa8,0x1c,0x68,0x81, -0x03,0x2d,0xf0,0x5d,0xd0,0x02,0xd5,0x07,0x55,0x0b,0x54,0xa7,0xa0,0x05,0xaa,0xf7, -0xb9,0x16,0xa0,0xdb,0x09,0xd2,0xc0,0x27,0x47,0x2e,0x8c,0x8a,0x68,0xf0,0xdf,0x1d, -0x04,0xba,0xdc,0x65,0xa0,0xcb,0x7e,0x84,0xb7,0x8c,0x0d,0x6b,0xe9,0x5f,0xf8,0xed, -0xee,0xcb,0xe7,0xfa,0x6f,0x7c,0x91,0x12,0xd3,0x92,0xcc,0xdd,0x00,0x3d,0xec,0x1b, -0x4d,0x57,0xc4,0x5d,0xdd,0xae,0xd8,0x55,0xed,0xb4,0x0e,0x90,0x22,0x09,0x49,0xa4, -0x88,0x33,0x28,0x0d,0x24,0xdd,0xeb,0xb8,0x28,0x78,0x1b,0x29,0x4b,0x72,0xa5,0x7b, -0x6a,0x3e,0xd8,0x2e,0x79,0x6a,0xce,0x69,0xda,0x96,0x69,0xce,0x73,0x1b,0x28,0x5b, -0x86,0xa6,0xe9,0x9d,0xf9,0x54,0x52,0x51,0xfe,0x06,0x98,0x6e,0x8f,0xd4,0x14,0xae, -0x3d,0xae,0x0f,0xba,0xda,0x52,0xff,0xf3,0x5f,0xf6,0xcf,0x5f,0x64,0x14,0x9e,0xf3, -0x94,0x25,0x12,0xac,0x1b,0x28,0x10,0xa7,0x47,0xe3,0xae,0x85,0xa5,0xa2,0xd7,0xb1, -0xc9,0x4f,0x17,0x0a,0xae,0x36,0x01,0xec,0x9b,0xd7,0x2f,0x0c,0xae,0xbc,0xbb,0xfb, -0xda,0xdf,0x6e,0x9f,0xbb,0xc4,0xc3,0xde,0x6e,0xb8,0x01,0x74,0xdd,0xb6,0x2d,0x9b, -0x83,0x7d,0xf2,0xa7,0xff,0xef,0x93,0xd6,0x84,0xf0,0x07,0xff,0xf1,0x7e,0x0a,0xfc, -0x9d,0xe9,0xc0,0x3f,0x73,0x3d,0x01,0xf8,0x5d,0x81,0x86,0xd7,0x76,0xaa,0x8e,0xa2, -0xcc,0x1d,0xd5,0x43,0x79,0x49,0x0e,0xd0,0xf0,0x13,0x08,0xdc,0x74,0x41,0x90,0x60, -0xc8,0x11,0x37,0xac,0x9e,0xed,0xb6,0x46,0x69,0xfa,0xa8,0x64,0x2a,0xb5,0x22,0x48, -0x26,0x98,0x49,0x9b,0x46,0x47,0x04,0x3d,0x31,0x57,0xc6,0xe7,0x70,0x97,0xe4,0x24, -0xba,0xf6,0x4e,0xf2,0x4e,0xa0,0x8f,0x95,0x24,0xe5,0x57,0xa1,0xca,0x8f,0x85,0x32, -0xa2,0x86,0x71,0x9e,0xe9,0xa9,0xb6,0x9e,0xaa,0x3f,0x93,0x08,0xe1,0x11,0xc0,0xef, -0x7b,0x73,0xa4,0xd7,0x71,0x74,0x77,0xfe,0x1b,0x53,0x72,0xbb,0x9f,0xbf,0xb2,0x7b, -0xfd,0x4d,0x7f,0xe7,0xc7,0x48,0x3d,0x77,0x67,0xda,0x7b,0x2f,0x2d,0xa6,0x50,0xc1, -0x30,0x69,0x13,0x66,0x18,0x81,0x21,0x39,0x52,0xd5,0xf8,0xc2,0x09,0xbf,0x8d,0x6d, -0x63,0xc3,0x68,0x38,0xba,0x39,0xce,0xce,0xe0,0x10,0x46,0xfc,0x36,0x0c,0xdd,0xd4, -0x7c,0x03,0x2a,0x9a,0x10,0x3c,0x89,0x22,0x20,0xae,0xd2,0x26,0x31,0x7b,0x6c,0x53, -0x77,0x29,0xab,0x75,0x13,0x2d,0xf0,0xc8,0x53,0xa3,0xb1,0x61,0xf8,0x5b,0xd8,0xc7, -0x06,0x26,0x32,0xa3,0x8a,0x76,0x6f,0x1f,0x7b,0xcf,0xc4,0x62,0xa4,0xdb,0x52,0xcd, -0x1e,0x3c,0x08,0x89,0x48,0x4f,0x6c,0x57,0xe1,0x9f,0xad,0x83,0x54,0x76,0xcc,0x9d, -0xc9,0x30,0x62,0x38,0xb0,0x41,0x81,0xc3,0x82,0x1d,0x43,0x10,0xa0,0x3a,0x16,0x16, -0x8f,0x36,0xdb,0xd9,0x6b,0x6d,0x6e,0x9a,0x7a,0xa3,0xc1,0xa8,0x38,0xd9,0xd4,0x63, -0x0f,0xd3,0x90,0x09,0xa6,0x24,0x27,0xf5,0x9d,0x75,0x0b,0xe5,0x54,0x05,0x2d,0xba, -0x4d,0x83,0xe3,0x85,0xc2,0x24,0x35,0x17,0xc6,0x57,0x9d,0x1c,0xa7,0x9d,0x60,0xce, -0x53,0xd3,0x3b,0xe4,0x78,0x32,0x73,0x69,0x56,0x61,0x69,0x6d,0xed,0xb1,0x47,0x46, -0xdb,0xbd,0x43,0xa1,0xb3,0x8e,0xa1,0x21,0xe0,0x06,0x8d,0x8d,0x8d,0x55,0x36,0xbe, -0xa5,0x49,0x5b,0x9f,0xf1,0x46,0x14,0xbd,0x1d,0xcd,0xa6,0xbe,0xe1,0xf2,0x1b,0xa2, -0xc7,0xca,0x41,0xba,0x4d,0x3d,0xce,0x7e,0x1e,0xea,0xe4,0xcd,0x9e,0x03,0x28,0x34, -0xb0,0x89,0xf7,0xa0,0x9f,0x8f,0xab,0x82,0x75,0x90,0xc9,0x3b,0x39,0x8f,0xfd,0xc8, -0x2e,0xcd,0x2b,0x81,0xc9,0x44,0x6a,0x94,0x0c,0x31,0x11,0xe0,0x2b,0x9f,0x50,0xaa, -0x26,0x62,0xcd,0x34,0xe8,0xbc,0x67,0x12,0x76,0xa1,0xce,0x6d,0xcb,0xd6,0xa6,0xa0, -0x19,0x19,0xa9,0x03,0x80,0x53,0x26,0x77,0x08,0xb7,0x7f,0xf5,0xdf,0x76,0xdf,0x3a, -0x3b,0x1d,0xa2,0xef,0x19,0x49,0x5b,0xd5,0x0c,0x2b,0x70,0x13,0x44,0x1e,0xf6,0xe2, -0x33,0xe0,0x3c,0x07,0x5e,0xfb,0xd4,0xee,0x44,0x7a,0x9b,0x1f,0x56,0x68,0xf5,0x02, -0xcf,0x4d,0xb5,0x2b,0x0c,0x21,0xdb,0x68,0x30,0xa7,0xcf,0x64,0x28,0xe1,0x1f,0x1b, -0x9d,0xbc,0x39,0x6d,0x30,0x6a,0xc9,0xc2,0x9d,0x38,0x6b,0x3c,0x14,0x3c,0xe9,0xec, -0xdf,0x38,0xb3,0xfb,0x8b,0x0f,0x77,0x7f,0xfe,0xd9,0xa4,0x2e,0x86,0x49,0xb4,0x75, -0x84,0x47,0x0e,0xdb,0x6d,0xc4,0xb1,0x66,0xdf,0x38,0xe6,0x8c,0xde,0xd8,0xb4,0x07, -0xb6,0xf9,0x90,0xf6,0x8d,0x77,0x18,0x65,0xc2,0x7c,0x42,0x77,0xcf,0xc3,0x5b,0x5f, -0xfe,0xe6,0xa7,0x30,0x08,0x4e,0x89,0x83,0xa3,0x9d,0x3e,0x68,0xc1,0xde,0xb5,0x1d, -0xcd,0x2c,0x60,0x87,0xb3,0xf4,0xd7,0x41,0x8f,0x44,0xcf,0x05,0x8a,0x40,0x51,0x39, -0x43,0xb2,0xb7,0xde,0x36,0x46,0xc8,0x46,0xb2,0xa3,0xd9,0xf7,0x22,0xd3,0xfd,0x72, -0xba,0x36,0x81,0xf3,0x79,0x94,0x10,0x0d,0x2e,0x5d,0xbe,0x79,0xed,0x9d,0x34,0x12, -0xa9,0xf7,0xdd,0x8c,0xed,0x59,0xe6,0x21,0xfe,0xc6,0x27,0x6c,0x47,0xfe,0xf1,0xd8, -0x31,0xb2,0x8f,0xf3,0xb5,0x29,0x4d,0xcb,0xee,0x9d,0x59,0x30,0xa9,0x21,0x45,0xbb, -0x47,0xfb,0x19,0xd7,0x6d,0xa8,0x9a,0x66,0x4f,0x6d,0xa0,0xe7,0x20,0xf6,0xdf,0xfc, -0x73,0xff,0xbf,0xce,0xdc,0x77,0x76,0xd5,0xde,0x09,0x48,0x0f,0x73,0x9c,0x2a,0x01, -0x19,0xc4,0xdd,0x3f,0x5e,0xed,0x5f,0xfa,0xef,0x07,0x80,0x80,0x3d,0x67,0xca,0x02, -0x48,0x01,0xee,0xbe,0xf6,0xfe,0xe0,0xc5,0x4f,0xfa,0x97,0x2f,0x3e,0x08,0x22,0xb8, -0xad,0x4d,0x59,0x02,0xb7,0xa7,0x64,0xa4,0x7f,0xb3,0xe3,0x3f,0x6d,0xcb,0xc1,0xf8, -0xff,0x1d,0x1f,0xff,0xd9,0xc2,0xc9,0xcd,0x4f,0x2f,0x0c,0x2e,0xbc,0x7b,0x60,0x0b, -0xdc,0x8d,0x1e,0xd9,0xb0,0xf5,0x67,0xa6,0xab,0x48,0x18,0x44,0xc6,0x9b,0xdb,0xbf, -0x7b,0x05,0xf8,0xf4,0xf5,0x8d,0x17,0x77,0xdf,0x7b,0xf5,0xeb,0x1b,0xe7,0xef,0x7b, -0xc5,0x82,0x6d,0x7b,0x30,0xb5,0x4b,0x69,0x12,0xed,0xa2,0x6f,0xe9,0x1d,0x37,0x5d, -0xb9,0x24,0x61,0xc5,0x56,0x56,0x91,0xc0,0x2e,0x9e,0x34,0xd4,0x70,0x55,0xe7,0x64, -0xc3,0x5d,0x8f,0x4c,0xaa,0x35,0xd5,0x55,0xd9,0x12,0xbb,0x4f,0xa7,0x30,0x25,0x7d, -0xc9,0xd6,0x1e,0xb9,0x48,0xdb,0x5a,0x1a,0x5c,0xf9,0xf8,0xf6,0x95,0xbf,0x2e,0x14, -0xe0,0x76,0x4c,0x46,0xff,0x6c,0xed,0x71,0x19,0xfd,0x7d,0xb6,0xe3,0x33,0x7e,0xf1, -0xc1,0xee,0xcb,0x57,0x27,0xa9,0xfa,0x97,0x17,0x6f,0x7e,0xfe,0xe6,0x88,0x8c,0xa3, -0x16,0x36,0xc7,0x50,0x40,0x5b,0x2a,0x2a,0xa2,0x5c,0x21,0xc5,0xd9,0x39,0x59,0x1e, -0xb7,0x7e,0x0a,0x6f,0x27,0xc9,0x53,0x9c,0x52,0x9e,0x05,0x75,0xa9,0xff,0xe2,0x5b, -0xb7,0xff,0xf3,0x1d,0x94,0xe5,0x11,0xf9,0xef,0xaa,0xf9,0x4a,0x51,0x29,0x8a,0x94, -0x06,0x0b,0xeb,0xf6,0x12,0x25,0xc3,0x5c,0xb1,0x76,0x0f,0x29,0x51,0xdd,0x7f,0x4a, -0x24,0xaf,0x6e,0xef,0xa9,0xdf,0xe3,0xc2,0xa5,0x48,0x07,0xfd,0x07,0xc3,0xc0,0x18, -0x7c,0x72,0xbd,0x7f,0xe1,0x2d,0xff,0xd4,0xb9,0x3b,0xb6,0x2a,0xe2,0x64,0xfb,0xe6, -0x0d,0x8c,0xc8,0x3a,0xad,0xb0,0x97,0x95,0xd0,0xd0,0x66,0xa0,0xea,0x79,0x5b,0xd7, -0x4f,0x6a,0xea,0x4e,0xb8,0x32,0x3a,0x91,0x9f,0x73,0xa4,0x6d,0x32,0x85,0xf5,0xd9, -0xa2,0xbf,0x40,0x1b,0xc1,0xf1,0x60,0x91,0xf6,0x6e,0x16,0x69,0xa3,0xec,0x1e,0xb9, -0x50,0x3b,0xf8,0x8f,0xab,0xfd,0xcb,0xbf,0xf7,0x47,0xb6,0x49,0x17,0x6c,0x87,0x6b, -0xf9,0x06,0x56,0x68,0x59,0xab,0x53,0x4f,0x69,0xa6,0xc6,0x06,0x08,0x19,0x15,0x31, -0xfa,0xc0,0xba,0x90,0xae,0x2d,0x66,0x5c,0xbb,0xa7,0x67,0x26,0xe4,0xf6,0xe0,0xca, -0x5b,0x8c,0x3c,0x93,0x70,0x72,0x6c,0xb0,0xf6,0xc4,0x48,0xd7,0x80,0x37,0x57,0x2f, -0xf5,0xdf,0xf9,0xc3,0x34,0x81,0xca,0xc8,0xf0,0xdf,0x0e,0xde,0xfc,0xed,0xcd,0x4f, -0xcf,0x4c,0x13,0xae,0x12,0xc0,0xbd,0xf6,0xd2,0x34,0xe1,0x96,0x42,0x7c,0xcf,0x4f, -0x13,0x6e,0xd9,0x87,0xdb,0x7f,0xe3,0x8d,0x69,0xc2,0xad,0x84,0x74,0x78,0x6d,0x9a, -0x70,0xab,0x01,0xbe,0x2f,0x7c,0x38,0x4d,0xb8,0xb3,0x3e,0xdc,0xc1,0x95,0x77,0x27, -0xd9,0x69,0x30,0x85,0x98,0x88,0x7b,0x33,0xe8,0x4d,0x14,0x82,0x34,0x9d,0xf0,0xa2, -0x60,0x7c,0x75,0x4e,0xba,0x0d,0x43,0x3b,0x15,0x19,0xcf,0xfc,0xb4,0x83,0xf1,0xec, -0xae,0xc7,0xb3,0x80,0xbc,0xa3,0xc7,0x33,0x6f,0xea,0xb5,0xf7,0x91,0xcc,0x87,0xbf, -0x1f,0x23,0x19,0x15,0x12,0xab,0xab,0xdb,0x74,0xe9,0xd9,0x69,0x4c,0x74,0xfe,0xdf, -0xbd,0xea,0x6c,0xd3,0x73,0x52,0x69,0xf8,0xf5,0x8b,0xb0,0x43,0xd0,0xc7,0x69,0x39, -0xa9,0x1c,0xb5,0xdd,0x35,0x75,0x19,0xa3,0x6c,0xef,0xdd,0x2a,0xc1,0x14,0xfd,0x77, -0x46,0x5b,0xc7,0xa0,0x52,0xbd,0x8b,0xa3,0x70,0x48,0x23,0x9a,0xfe,0xdd,0xa6,0x11, -0x0d,0x5d,0x60,0x4e,0x96,0xb9,0x09,0xb7,0xbb,0xf0,0x41,0x11,0xa0,0x89,0xac,0x8d, -0x0d,0x72,0x87,0x9b,0x91,0xee,0x66,0x2b,0x12,0xa7,0x1c,0x46,0xee,0x76,0x4a,0xdf, -0x64,0xe4,0x97,0x4d,0xdf,0x5e,0x34,0x6e,0xfb,0xd0,0x28,0x4e,0x8e,0xa5,0xe5,0xb7, -0xd3,0x2d,0x3b,0x74,0x2e,0xf2,0x61,0x4d,0x0b,0xce,0x2b,0xcf,0xe6,0xe6,0xbf,0x5b, -0x2e,0xda,0x09,0x9c,0x35,0xe5,0x07,0xcf,0x59,0x13,0x3f,0x93,0x7e,0x6f,0xfe,0x9a, -0xd0,0xfb,0x4c,0x3f,0x10,0xd7,0xa0,0xa7,0xea,0x37,0xa8,0x1b,0xdb,0xb9,0x47,0x5e, -0x68,0xda,0x80,0xdd,0xff,0xb9,0xde,0xff,0xcd,0xbf,0x4f,0xe2,0x10,0x3e,0xff,0xde, -0xad,0xb7,0x5f,0x1a,0xeb,0x16,0xbe,0x5b,0xff,0x71,0xfa,0xa6,0x98,0x3d,0xb8,0x0e, -0xcb,0x0f,0xa8,0xeb,0x90,0xb1,0xd4,0x27,0xfd,0x81,0x03,0x31,0x98,0x4b,0x7d,0x4b, -0xfd,0x85,0x4c,0xbf,0x37,0x30,0x13,0x1b,0x6c,0xf9,0x84,0x83,0xf9,0xd6,0xdd,0xcc, -0xb7,0x22,0xa4,0x1d,0x3d,0xdd,0x82,0x4e,0xf3,0xea,0x47,0xb7,0xde,0xfb,0x7d,0xff, -0xd2,0x2b,0x83,0x5f,0x7f,0xd6,0xbf,0x71,0x69,0x8f,0x53,0x2f,0xbe,0xaa,0xef,0xae, -0x0f,0xb1,0x7f,0xf1,0x57,0x85,0xfe,0x3b,0xaf,0xf7,0xcf,0x5d,0xbf,0xb7,0x4e,0x44, -0x98,0x0a,0xdc,0xfe,0xd5,0x97,0xc0,0xa4,0xef,0x94,0x73,0xe7,0xdb,0xa5,0x90,0x64, -0x5f,0x21,0x31,0x2b,0x04,0x27,0x74,0x4e,0x03,0x3f,0xc6,0xe1,0xb0,0xc9,0x1d,0x8b, -0x3d,0x4f,0x7e,0x77,0xa0,0xa6,0xee,0x46,0x4d,0xa5,0x11,0x7c,0xe4,0x44,0x39,0x9d, -0x1b,0x5c,0xcc,0x3d,0x74,0xd4,0xc1,0x9f,0xde,0x1e,0xfc,0xea,0xcf,0x7b,0xd4,0x66, -0x29,0x18,0xed,0x9b,0x4b,0x29,0xa5,0x21,0xac,0x67,0xe1,0x37,0x96,0x3d,0x4b,0x4b, -0x38,0xe8,0xfb,0xfb,0xd2,0xf7,0xc5,0xa0,0xf3,0x33,0xa3,0x8d,0xb3,0x46,0xf8,0x84, -0x83,0x6e,0x7e,0x37,0xdd,0x3c,0x42,0xda,0xd1,0xd6,0x08,0x9d,0x66,0xed,0xbe,0xfe, -0xaf,0x77,0xe4,0x05,0xe6,0xeb,0xd9,0xb7,0x1e,0xbb,0xee,0x76,0x3c,0x9f,0x49,0xd8, -0x4b,0xa7,0xd3,0x39,0xbf,0xf5,0x6e,0x1e,0x55,0xd3,0x7e,0x48,0xad,0xbd,0x47,0x71, -0xa2,0xfe,0xcd,0x3b,0x7a,0xe8,0xac,0xef,0x9e,0x3a,0x7a,0x2a,0x49,0xf3,0x69,0x76, -0xe6,0xcc,0x34,0xc2,0xf1,0xf6,0xdd,0xeb,0xb1,0x7b,0xfe,0xc5,0xc1,0x9b,0x7f,0x1a, -0xef,0xc0,0xa0,0x92,0x8e,0x1f,0xd6,0x6b,0xc0,0x64,0xd8,0xa1,0xde,0xd9,0x2d,0x59, -0x2a,0x4a,0xa5,0xd2,0x7e,0xc5,0xc4,0x3d,0xf6,0xc4,0xf8,0xa0,0xac,0x10,0x2b,0x03, -0xa8,0x28,0xd7,0x15,0x49,0xae,0xd6,0x00,0x27,0x49,0x51,0x94,0xfd,0x0a,0x56,0xeb, -0x7f,0x78,0x79,0xf7,0xf3,0x57,0x06,0x2f,0xff,0x81,0xc6,0xe7,0x4f,0x8e,0x61,0x9b, -0x7e,0xba,0x51,0xa9,0x54,0x24,0xff,0x5f,0x71,0xbf,0x50,0x04,0xfc,0x58,0xf8,0xe3, -0xc4,0xc8,0x6d,0xc2,0x70,0xb4,0x8d,0x41,0x3a,0x1c,0x0d,0xe5,0x7d,0xa3,0xe0,0xe5, -0xab,0xfd,0x0b,0xef,0x07,0x51,0x9f,0x93,0x20,0xd9,0xeb,0x32,0xe3,0x5a,0x2e,0xce, -0xc9,0xa5,0xb9,0x72,0x69,0x5a,0xf1,0x77,0x77,0xa0,0x1e,0x7d,0x03,0x4c,0x33,0x9c, -0xae,0xa9,0xee,0xcc,0x91,0x0d,0x53,0x3f,0x35,0x4f,0x54,0xd3,0xd8,0xec,0x88,0x38, -0x5b,0x73,0xe6,0x48,0x13,0xba,0xbb,0x6e,0xcf,0xd3,0x57,0xe2,0xb6,0xad,0x76,0xe7, -0x08,0x5e,0xe7,0x47,0x1f,0xdf,0xe7,0x01,0xde,0xb0,0x3a,0xae,0xe8,0x18,0xcf,0xea, -0x73,0x45,0xa9,0xa6,0xb7,0xe7,0xf1,0xc8,0xb8,0xcb,0xbb,0xef,0x5c,0xfb,0xfa,0xc6, -0xeb,0x6c,0xe6,0xe7,0x7f,0xf4,0x08,0xe7,0xe9,0x15,0xe7,0xeb,0x1b,0x2f,0x05,0xdf, -0x3f,0xba,0x7d,0xe5,0x83,0xdd,0x5f,0x9c,0x2d,0x81,0xa1,0xdb,0xbf,0x74,0x15,0xd7, -0x67,0x2e,0x5f,0x65,0xfb,0x85,0x6f,0x9f,0xbb,0x38,0xf8,0xf5,0x9f,0x6f,0xbf,0x70, -0x11,0x44,0x03,0x0a,0xc8,0x45,0x27,0x28,0x73,0xf3,0xcb,0xff,0x1a,0xbc,0x74,0x96, -0x95,0x1c,0x9c,0xfd,0x5d,0xff,0x9d,0x8b,0xfd,0x73,0xd7,0xfa,0x2f,0xff,0x7c,0xc4, -0x37,0x78,0xd3,0x28,0xc7,0x3e,0xc5,0x47,0x4f,0xfe,0xc2,0x71,0x64,0xe4,0x5a,0xc5, -0x1e,0xcf,0xfd,0x9b,0xd0,0x02,0x4a,0x3b,0xff,0x0f,0xf5,0xef,0x48,0x5b,0x67,0x94, -0x8d,0x93,0x6e,0xdb,0xd0,0x8f,0xc0,0xb3,0xd5,0x30,0x3f,0x86,0x55,0xf1,0x8f,0xf3, -0x27,0x43,0x1f,0x83,0xe7,0x46,0xd2,0xa1,0xd1,0x90,0x99,0x12,0x8e,0x2b,0xb2,0x15, -0x56,0x1e,0xda,0x3e,0xc4,0x90,0x57,0x27,0x1a,0xb5,0xc6,0xb9,0x81,0xbf,0xb1,0xe3, -0xd0,0x22,0x1f,0xf6,0x3c,0xd8,0x6d,0xb2,0xc7,0xdd,0x26,0x96,0xab,0x36,0x7a,0xb6, -0x19,0xc6,0xbb,0x4c,0x6b,0xad,0xda,0x07,0xbc,0x74,0xf4,0xd8,0x61,0x32,0x8d,0x2d, -0xa8,0xdf,0x22,0x4b,0xf7,0xa8,0xab,0xae,0xb9,0xaa,0xed,0x7e,0x47,0x16,0x33,0x03, -0x62,0xf9,0x02,0xe1,0xb0,0xcf,0x18,0xf3,0x4d,0xe8,0xda,0xd6,0x26,0x3a,0x20,0x7c, -0x14,0xfd,0xe7,0x64,0xc5,0xbe,0x07,0xed,0x33,0x7b,0x5f,0x6b,0x9f,0xe8,0x77,0x6c, -0xef,0x58,0xfb,0x38,0x3b,0x8e,0x68,0x5a,0x9b,0x77,0xb0,0xa2,0xd4,0xb5,0xbd,0x85, -0xd2,0x1d,0xa7,0x61,0xe2,0x97,0x75,0x17,0x0a,0x90,0xf4,0xad,0xe8,0x25,0x3f,0xd6, -0xdd,0xb5,0x1d,0x67,0xd5,0xda,0xfc,0xc6,0xbb,0x49,0xff,0xc5,0x4f,0xc0,0xe0,0x99, -0xfe,0xb6,0xac,0xc8,0xa7,0x88,0x0b,0xf8,0x2d,0x62,0x78,0x08,0xb3,0x31,0x83,0xc0, -0xc3,0x99,0x9e,0x15,0x85,0xf2,0xec,0xb4,0x40,0x68,0x5d,0x4b,0x75,0x5c,0x61,0xa2, -0xa3,0x95,0x7d,0x52,0xd8,0xaa,0xe1,0xe8,0x9a,0xaf,0xc1,0x3d,0x43,0x61,0x09,0xbf, -0x39,0x4d,0x8e,0x21,0xb4,0xe0,0x3c,0x62,0x66,0x6b,0x84,0x07,0x54,0x61,0xa5,0xb4, -0x3e,0x10,0x76,0x1a,0x40,0x14,0xa9,0x17,0x63,0x64,0x3a,0x6a,0xf3,0xe4,0xba,0x6a, -0xb3,0x5e,0xe5,0x3d,0xf8,0xf4,0x8c,0xcb,0x87,0xff,0x1e,0xfa,0x01,0x95,0xcb,0x08, -0x0d,0x86,0x4f,0x8c,0x0e,0xb3,0x7b,0x71,0x3c,0x31,0xfc,0xb9,0x53,0x94,0x39,0xc2, -0x85,0xe6,0xd7,0x82,0xa6,0x6f,0x38,0xfc,0x57,0x9c,0x37,0xd9,0x3c,0x05,0x0d,0x39, -0x95,0x1e,0xc5,0xd9,0x50,0x4d,0xd5,0x1e,0x3a,0x0b,0x7b,0xa1,0xab,0xc2,0x3c,0x15, -0x72,0x1e,0x29,0x92,0x62,0x4b,0x29,0x6f,0x29,0xe5,0x95,0xe2,0xb3,0x30,0x36,0x19, -0xa6,0xb9,0x28,0x74,0xac,0x8e,0x3e,0x64,0x01,0x86,0x45,0x14,0x85,0x54,0xa4,0x59, -0xc5,0x14,0xcb,0x52,0x55,0x2c,0x49,0xb5,0xaa,0x28,0x4b,0x4a,0x9d,0xc8,0x52,0xa5, -0x44,0x20,0x89,0x60,0xd2,0xaa,0x97,0xe9,0xd9,0x23,0xb3,0x52,0xad,0x06,0x49,0xa5, -0xfa,0x6a,0x15,0xde,0xc9,0xf0,0x8e,0xd0,0x57,0xb2,0xc9,0x97,0xaa,0xd4,0x11,0x52, -0xe5,0xd9,0x23,0xb2,0x22,0x55,0x48,0x6d,0x45,0x96,0xb7,0xaa,0x66,0x59,0x9a,0xad, -0x10,0x05,0x92,0xe1,0x17,0xeb,0x28,0x89,0x65,0x51,0x91,0x4a,0xb3,0xc7,0x6b,0x98, -0x8f,0x94,0x9b,0x80,0x41,0x7d,0x96,0x14,0xc5,0x3a,0x40,0x28,0x96,0xe0,0xa7,0xee, -0xc0,0x8d,0x42,0xea,0xf8,0x5f,0x93,0xbd,0x24,0x75,0x11,0x5f,0xc2,0x4f,0xdd,0x11, -0x59,0x36,0xfc,0xef,0xd9,0x76,0x91,0xc8,0xd5,0x26,0xd6,0x8a,0x10,0x66,0xe1,0x46, -0x2e,0xc1,0xcf,0xac,0xc3,0x6e,0xc8,0x2c,0xfe,0x23,0xf8,0x40,0xf0,0x81,0xdd,0x60, -0xda,0xb3,0x11,0xd2,0x2c,0x14,0x36,0xd3,0xe8,0xaf,0x69,0xe9,0x64,0x97,0xa1,0xe5, -0xa5,0x96,0x58,0xdd,0xaa,0xb6,0x44,0x65,0x4b,0xac,0xae,0x54,0xb6,0x44,0xa5,0x55, -0x3d,0x5e,0x69,0x29,0x90,0x54,0xdd,0x52,0x9e,0x1d,0xc1,0x80,0x89,0x78,0x96,0x8e, -0x18,0x3d,0xe1,0x3b,0x15,0x78,0x25,0x5f,0x5a,0x06,0xa2,0xd4,0xf3,0x25,0x52,0xca, -0xe3,0x0d,0xfc,0x54,0x8e,0xcb,0xf5,0xc3,0x4a,0x5e,0x01,0x6a,0x16,0xf3,0x45,0x52, -0xc9,0x2b,0xf2,0x4a,0x24,0x45,0x91,0xf3,0x72,0xfd,0xb8,0xac,0xac,0xe0,0xb5,0xbe, -0x52,0x39,0x5e,0x59,0x91,0x95,0xe3,0xa5,0x95,0xca,0x11,0x79,0x56,0x9a,0xad,0xe5, -0xcb,0xcb,0xf0,0x5b,0x95,0xf3,0x65,0x02,0xbf,0xe5,0x52,0x1e,0xf8,0x30,0x8b,0xb7, -0x78,0xa7,0xac,0xca,0x55,0xa9,0x58,0xcb,0x57,0xa4,0xb2,0xbc,0x2a,0xd7,0xa4,0x4a, -0x2d,0x3f,0x2b,0xd5,0xe1,0xb6,0x2e,0xd5,0xf2,0x55,0x69,0x76,0x59,0x29,0x4a,0xc5, -0x2a,0xdc,0x95,0xcb,0xc4,0xbb,0x25,0xf4,0x1d,0x8a,0x05,0x16,0x50,0x2a,0x08,0x65, -0x19,0xee,0x64,0x25,0x80,0x5c,0xaf,0xb0,0xca,0xb0,0xf2,0x23,0x72,0x05,0xa4,0x06, -0x20,0xc8,0xca,0x6a,0x2d,0x2f,0x97,0x24,0x68,0x4f,0x75,0x45,0x2e,0x4a,0x50,0x1c, -0xc4,0x73,0x36,0x5f,0x93,0xaa,0x80,0x45,0x90,0xe9,0x5f,0x04,0x32,0x7d,0xe2,0x13, -0x8f,0xfa,0x74,0xd1,0x62,0xaa,0xfd,0x11,0x04,0xb3,0xb2,0x0c,0xd8,0x2b,0x32,0xa9, -0x40,0x93,0x09,0xd0,0xac,0x8e,0xbf,0x75,0x20,0x3a,0xc1,0x56,0x82,0xa0,0x4b,0x0a, -0x91,0x65,0x69,0x16,0x9e,0xe1,0x49,0x91,0xca,0xd5,0xe3,0xf0,0xa8,0x94,0xb1,0x58, -0x55,0xc6,0x4c,0x55,0x28,0x52,0x25,0x75,0xe4,0x37,0xfe,0x2e,0xc3,0x05,0xd8,0x03, -0x24,0x84,0x1e,0x5d,0x25,0x40,0xf1,0x12,0xa9,0xae,0xc9,0x45,0x2f,0xb1,0x88,0x39, -0x8a,0x5e,0xf6,0x22,0x74,0x6e,0x1f,0x84,0x4c,0x28,0xdc,0xe3,0xb4,0x8e,0x65,0x78, -0xef,0x55,0x5b,0x67,0x88,0x40,0xb7,0x5c,0xae,0x7b,0x08,0x16,0xf1,0x5a,0x41,0xc0, -0x95,0x23,0x4a,0x11,0x59,0x0b,0xad,0xa8,0x63,0x9f,0x55,0x64,0xa9,0xa4,0x20,0x8f, -0xe1,0x0a,0xf7,0x90,0x82,0x62,0x41,0x14,0x10,0xaf,0xd2,0x32,0x40,0xae,0x42,0xb2, -0x82,0xcd,0x50,0xaa,0xf8,0xbe,0x86,0x4d,0xc2,0x9b,0xca,0xec,0x6a,0x8d,0x4a,0x15, -0xfc,0x4a,0xb3,0x65,0x6c,0x76,0x75,0xb9,0x26,0xd5,0x4b,0x78,0x07,0x38,0xd6,0x91, -0x0a,0x40,0x8a,0x1a,0xdc,0x31,0xa2,0xd4,0x56,0xea,0xd2,0xec,0x2a,0x94,0x96,0x6b, -0xc7,0xa1,0x45,0x0a,0xa9,0x49,0x65,0x46,0x20,0x50,0x42,0x88,0x5a,0x6d,0x4d,0x2e, -0x7b,0x89,0x65,0x02,0xb2,0x5d,0x92,0xca,0xb3,0xab,0x8c,0xd6,0x70,0x5f,0x45,0x21, -0x45,0x8a,0x82,0x28,0xd6,0x11,0xf9,0x6a,0x0d,0xc1,0x82,0xb6,0x51,0x50,0xbb,0x48, -0x95,0x2a,0xbd,0x99,0x95,0xe4,0xf2,0x71,0x6c,0x1f,0x6d,0xe7,0x4a,0x79,0x59,0x91, -0xea,0xa0,0x04,0xe1,0x3f,0xfa,0x8b,0xd4,0x5a,0x56,0x10,0x1e,0x90,0x0f,0x93,0xa0, -0x2a,0x24,0xfc,0x4a,0x0d,0x5e,0xac,0xc2,0x1d,0x5e,0xca,0x2b,0x4a,0x71,0x15,0x81, -0x01,0x11,0x20,0x1d,0x1f,0x11,0x9b,0x3a,0x68,0x5a,0xe8,0x13,0x98,0x7d,0x19,0x28, -0x00,0x18,0x43,0x61,0x85,0x02,0x2b,0xd6,0x19,0x95,0x8e,0xc3,0x1b,0xaf,0x2a,0x99, -0xd6,0x80,0x38,0xc5,0x65,0x3c,0x5d,0x5b,0xb8,0xb6,0xda,0x71,0xcc,0x84,0x58,0xe6, -0xbb,0x93,0x59,0x05,0xf5,0x2e,0xd0,0xad,0x38,0x6b,0x82,0x4e,0xaf,0xa0,0x62,0xaf, -0xc8,0xa8,0x9d,0xe1,0x5f,0x13,0x44,0xa6,0x0c,0x0a,0xbf,0x5e,0x46,0xb4,0x6b,0xa0, -0xb5,0x65,0xd4,0xc4,0xb3,0xb2,0x08,0x24,0x2d,0xad,0xc8,0xb3,0xc7,0xcb,0x2d,0x71, -0xf6,0xb8,0xb2,0x52,0xdb,0x02,0x6a,0x6c,0x41,0xc6,0x7a,0x0b,0xc4,0x4c,0x9e,0x5d, -0x86,0x6b,0x05,0x44,0xb4,0xae,0xa0,0x78,0x81,0xbe,0xa8,0xe3,0x08,0x82,0x62,0x29, -0x95,0x80,0xa1,0x54,0x35,0x14,0x51,0xaa,0x40,0x46,0xe0,0x9d,0x8c,0xa2,0x08,0x52, -0x5b,0x03,0x1d,0xdc,0x94,0x66,0x81,0x76,0x52,0x15,0x2f,0x70,0x57,0xc2,0x2a,0xb1, -0x72,0x1c,0x9b,0xaa,0xa6,0x58,0x41,0x72,0xc2,0x85,0xf2,0xa3,0x6e,0x56,0xc4,0x0a, -0xa1,0xec,0xc2,0x8b,0x34,0x5b,0x05,0xec,0x8b,0x65,0x18,0x94,0x50,0x4c,0xe5,0x22, -0x80,0x43,0x99,0x52,0x94,0x96,0x02,0x83,0x1c,0x58,0xeb,0xa5,0x16,0x0e,0x65,0xab, -0x20,0x34,0x34,0x0d,0x1a,0x04,0xe3,0x99,0xf2,0x6c,0x5b,0xa4,0xb2,0x3c,0x0b,0x99, -0xaa,0x0a,0x24,0x96,0x4a,0x54,0x9e,0x00,0xf9,0xd9,0x16,0x0c,0x38,0x4a,0x79,0xd2, -0xa1,0xc6,0xd6,0xd7,0x2d,0xcb,0x9d,0x32,0x83,0x50,0x69,0x03,0xe5,0xf3,0xb4,0x1f, -0xc1,0x8f,0x44,0xfb,0x16,0x2a,0xe2,0x12,0xaa,0xe4,0xd9,0x7c,0x5d,0xa2,0x0a,0x79, -0x36,0x0f,0xd9,0x2a,0xec,0x1d,0x5e,0x50,0xa7,0x80,0x96,0xa5,0x5d,0x0c,0xc6,0xfd, -0x3c,0x64,0xa1,0xec,0xa8,0x63,0x5a,0x7d,0x15,0xe8,0x55,0xc6,0x7c,0xd0,0x5f,0x80, -0x78,0x79,0xd4,0xda,0xa8,0x64,0xea,0x98,0xc6,0x3a,0x65,0x1e,0x2f,0xa8,0xce,0x2b, -0xa8,0xab,0xeb,0x84,0xdd,0x15,0x31,0x1f,0xbe,0x05,0x9d,0x8e,0x55,0xc8,0x79,0x6a, -0x4f,0x80,0x32,0xc7,0xf1,0x40,0xc9,0x83,0x46,0x03,0x15,0xb4,0x3a,0x0b,0xc3,0x02, -0x74,0x4b,0x25,0x0f,0x0f,0xc7,0xcb,0x47,0x00,0x59,0x86,0x54,0x09,0xf1,0x44,0xa6, -0xc1,0x33,0xe8,0x49,0x28,0x0e,0x28,0xa0,0x49,0x82,0xcd,0x58,0xae,0x60,0x0d,0xc0, -0x05,0x78,0x51,0xc7,0xe6,0x94,0x41,0x42,0x6a,0x0c,0x8f,0x1a,0x96,0x00,0x8d,0x05, -0xe2,0x43,0x71,0x94,0x41,0x70,0x68,0x43,0xcb,0xab,0xb4,0x45,0xe5,0x65,0x6c,0x2c, -0xe4,0xa7,0x6d,0x29,0x13,0xbf,0xc6,0x7f,0x99,0xd4,0x4c,0x60,0x0b,0x8c,0xb6,0xd5, -0x65,0xab,0x8c,0xa9,0x1c,0x41,0xd9,0x35,0x2b,0xa0,0x31,0x41,0xf8,0xf6,0xd1,0x3a, -0x68,0x9a,0x56,0x4f,0xa3,0xa8,0x98,0x96,0xaa,0x4d,0x57,0xa6,0xea,0xd8,0x0d,0x65, -0xd4,0x57,0xc8,0xde,0x2a,0x0e,0x55,0x95,0x3a,0x6a,0x81,0x2a,0xd5,0x78,0xa0,0x0a, -0xb1,0x57,0xca,0x04,0xa9,0x88,0xbc,0x80,0xe4,0x8a,0xd7,0x73,0x51,0x15,0x94,0x50, -0x15,0x97,0xaa,0x60,0x73,0xa0,0x38,0xc9,0xf8,0x5b,0x6e,0x16,0x91,0xa7,0xa8,0x37, -0xa1,0x23,0xe3,0x40,0x55,0x6d,0xc9,0xa5,0xa6,0x02,0x7d,0x12,0x5e,0x57,0xa0,0x83, -0x29,0x65,0x24,0x18,0x98,0x78,0x90,0x03,0xb5,0x4c,0xb1,0x02,0x3d,0x6d,0x16,0x95, -0x4a,0x15,0xef,0xea,0x55,0xe8,0xb6,0x40,0xda,0x12,0xf4,0x71,0xcc,0x28,0x56,0x5a, -0xa5,0xe3,0xf5,0x56,0x79,0xab,0xdc,0x2a,0x4d,0xda,0xfd,0x98,0xcb,0x34,0xbd,0xd9, -0x00,0x5e,0x69,0x89,0x95,0xad,0x4a,0x0b,0xac,0x3c,0xb4,0x71,0x41,0x60,0x41,0x73, -0x81,0x1a,0x5f,0x01,0x4b,0x6f,0xa5,0xd2,0x14,0xa9,0x62,0x2e,0xa2,0xca,0x83,0x2e, -0x42,0x7f,0x88,0xb2,0x0a,0xaa,0xa8,0x0e,0xcd,0x83,0x77,0x38,0xcc,0xd2,0xf1,0xa2, -0x05,0x0d,0x86,0x67,0x68,0x9a,0x22,0xa2,0x42,0x17,0x95,0xe3,0x95,0x26,0x96,0x93, -0xe1,0x51,0x54,0xf0,0xbf,0x96,0x28,0x1f,0x97,0x41,0x03,0x3d,0xdb,0x86,0xf2,0x35, -0x30,0xc5,0x6a,0x50,0x68,0x4b,0x96,0xf7,0x51,0x64,0x5a,0xba,0xd9,0x9d,0xb2,0xf2, -0x21,0xca,0x32,0x18,0x7c,0x35,0xda,0x6a,0xef,0x46,0x56,0xc0,0xb8,0x87,0x3b,0xb9, -0x18,0xfc,0x2f,0x7a,0x09,0xa2,0x5c,0x5c,0x43,0xf5,0xa1,0xd0,0x6c,0x04,0xda,0x2e, -0x53,0x1d,0xaa,0xa0,0x51,0xad,0x80,0x31,0xdd,0x06,0xbe,0x83,0xf1,0x0e,0x4a,0xd8, -0x04,0x42,0xc1,0xf8,0x80,0xca,0x87,0x8d,0xf4,0x68,0x88,0x53,0x35,0x42,0x7f,0x2b, -0xb4,0x90,0xe4,0x11,0x15,0xb2,0x80,0xc4,0xc8,0xc8,0x82,0x59,0xb8,0xa9,0x95,0x70, -0xce,0x82,0x23,0x93,0x52,0x6d,0x82,0x95,0x21,0x82,0x30,0xe2,0xcc,0x05,0xe6,0x34, -0xf8,0x03,0xd9,0x19,0x13,0x43,0x66,0x38,0xa2,0x42,0xf0,0x1e,0x46,0xfd,0x5a,0x13, -0x45,0x10,0xed,0x06,0xb0,0x15,0x44,0x90,0x77,0xb1,0xec,0x94,0xe9,0x03,0x88,0x3b, -0x8a,0x31,0xcc,0x93,0x10,0x20,0x0e,0x42,0x70,0x03,0x46,0x0b,0xe4,0xae,0x4c,0x2a, -0x82,0x2d,0xab,0x3d,0x62,0x80,0x96,0xd1,0xbc,0x82,0x59,0x06,0x88,0x75,0x15,0x65, -0xb0,0xd6,0x2a,0xe1,0x00,0x55,0xa2,0xe4,0x6a,0x95,0xb6,0x6a,0xfb,0x28,0x1c,0xb8, -0x66,0xf6,0xed,0x13,0x0e,0xc6,0xe7,0x2a,0xce,0xb6,0x60,0x26,0x28,0xa2,0x05,0x70, -0x7c,0x96,0x8a,0xca,0x84,0xcd,0x4a,0x0a,0x10,0x49,0x57,0xdd,0x28,0x19,0x30,0x8a, -0xd5,0xa9,0xa9,0x89,0xb6,0x85,0x49,0xa7,0xbc,0x70,0xa9,0xc1,0x0c,0x06,0x15,0xbb, -0x08,0x9a,0x4b,0x84,0xff,0x08,0x4a,0x11,0x15,0xa5,0x09,0x79,0x72,0xfc,0x8e,0xb8, -0x92,0x14,0x1d,0x7a,0x57,0x5c,0x41,0x65,0xd3,0x92,0x6b,0xd0,0xe1,0x56,0x4a,0xd8, -0xe1,0x8a,0xa0,0x48,0x23,0x8f,0xb3,0x5b,0xa0,0xbd,0x6a,0xc7,0xab,0x2b,0x13,0xab, -0xd5,0xb6,0x65,0xeb,0xb8,0x84,0x3e,0x6d,0xc3,0x86,0xd4,0x62,0x3a,0xd4,0x09,0xfa, -0x6b,0xd0,0x5d,0x89,0x6f,0xa1,0xa3,0x9f,0x40,0xa1,0x0a,0x1a,0x87,0x10,0xef,0xad, -0xe3,0xbf,0x0d,0x40,0x04,0x10,0x30,0x7f,0x75,0x2f,0xf9,0x27,0x24,0x46,0xc7,0x72, -0x75,0x47,0x18,0x43,0x7e,0xc5,0xa7,0x37,0x3c,0x57,0x43,0x7a,0x03,0x4a,0xb3,0x1c, -0x33,0xf6,0x53,0xae,0x1c,0x5d,0xb5,0x9b,0xad,0x11,0x9a,0xa8,0x82,0x8a,0x16,0xcc, -0x77,0xd0,0x7b,0xa0,0x8a,0x15,0xd0,0x74,0x0a,0x35,0xe7,0xa0,0x83,0xa0,0xeb,0x87, -0xce,0x3e,0x65,0x3a,0x1c,0xd2,0xe9,0x28,0x5a,0x84,0x68,0x94,0xc9,0xde,0x8c,0xa6, -0x44,0xd3,0x4a,0x6b,0x25,0x96,0xc8,0x1e,0xd9,0x7b,0x3f,0x3b,0x30,0xb7,0x8a,0xdc, -0xc5,0xfc,0x22,0x42,0x2c,0xa3,0xe7,0x08,0x67,0x87,0x26,0xd4,0x05,0x55,0x6e,0x61, -0xdd,0x15,0x48,0xae,0xd7,0x71,0xf2,0x54,0xae,0xa3,0x45,0x8f,0xa6,0x40,0x1d,0x06, -0xe7,0x36,0x74,0xc1,0xe2,0xf2,0xac,0x54,0x44,0xab,0x14,0xa7,0xa7,0x74,0x30,0xae, -0x20,0xec,0x35,0x9a,0x5a,0x61,0x55,0xe2,0x5b,0x3f,0x17,0xad,0x97,0xe6,0xf3,0x1f, -0xca,0xfb,0xa8,0x50,0x1d,0xdd,0x45,0xc7,0xf7,0x08,0x61,0x28,0xe6,0x27,0xe2,0xe2, -0x90,0x71,0x26,0x83,0x61,0x0e,0x03,0x22,0x0c,0x46,0x60,0x6f,0x89,0x30,0x51,0xca, -0xa3,0xbb,0x05,0x6e,0xaa,0xb2,0x7f,0x87,0x2f,0xf1,0x8d,0x02,0x97,0x22,0x5e,0xaa, -0x98,0x11,0xc6,0x56,0x7c,0x65,0x2a,0x38,0x81,0x03,0x4a,0xc3,0x58,0x27,0xc9,0x35, -0x48,0x03,0x88,0x45,0xa4,0x3e,0x50,0x19,0x41,0xc8,0xb4,0x84,0x4c,0x4c,0x34,0x71, -0x60,0x5a,0x04,0x70,0x9a,0xa2,0x97,0xac,0xe0,0xa5,0x84,0x80,0x94,0x3a,0x5c,0x2a, -0x75,0x9a,0x86,0x93,0xc3,0x52,0x1d,0x8a,0xd6,0xab,0x98,0xb3,0x82,0x79,0x6a,0x22, -0x9d,0x28,0xc2,0xcc,0x43,0xa4,0x13,0x27,0xac,0x7a,0x15,0x8d,0xf6,0x3c,0x0c,0xd1, -0x32,0x66,0xa3,0xd8,0x2b,0xc1,0x05,0x14,0x2a,0x5c,0x6a,0xf4,0x8e,0xe0,0xcc,0xaa, -0x56,0x6e,0xd2,0x77,0x79,0x6c,0x4b,0x19,0x9b,0x29,0x63,0xc5,0xe5,0xd9,0x3c,0x66, -0x59,0xad,0xa3,0x4b,0x09,0x0d,0x4f,0x30,0xfe,0xab,0x55,0xb8,0xab,0xd4,0xf3,0xd4, -0xb9,0x04,0x82,0x86,0xf3,0x8f,0x6a,0x09,0xe6,0x1e,0x4a,0x7d,0xb5,0x82,0x20,0x20, -0x5f,0xa9,0xe9,0xe3,0x5f,0xac,0x79,0x60,0x68,0x0b,0xb0,0xed,0xca,0x2a,0xd8,0xa2, -0x65,0x28,0x0e,0xd3,0xdd,0x65,0x9c,0xee,0xc1,0x7c,0xa3,0x58,0x03,0x4c,0xab,0x38, -0xf3,0x28,0x51,0x9c,0xe9,0x1c,0xa4,0x46,0xa9,0x97,0x47,0xea,0x2d,0xc3,0x5c,0xab, -0x8c,0xf3,0x91,0x52,0x15,0xa7,0x5d,0x74,0x66,0x52,0x67,0x77,0x8a,0x83,0x74,0xc7, -0xc9,0x0d,0x52,0xb6,0x88,0x08,0x03,0xdd,0xc5,0xa0,0x28,0xa1,0xf4,0xac,0x61,0x8b, -0x68,0xf3,0x4b,0x79,0xaf,0xf9,0x6c,0x46,0x84,0x4e,0x57,0x68,0x02,0x25,0xbc,0x97, -0xa6,0xe0,0xa5,0x84,0x80,0x14,0x44,0xd8,0xc3,0xda,0x44,0xb2,0x8b,0x94,0xec,0x90, -0x86,0x39,0xa0,0x72,0xac,0x84,0xce,0xf7,0xb0,0x19,0xb4,0xe2,0x22,0xa2,0x88,0xd3, -0x77,0x82,0x32,0x83,0xf9,0x94,0xb2,0x7f,0xa1,0x1c,0x2f,0xd7,0xe8,0x5d,0x8b,0xd2, -0x9c,0xbd,0xc0,0x04,0xc4,0x4d,0xa6,0xd4,0xa6,0x74,0x97,0x29,0x20,0xea,0x07,0x68, -0xfa,0xac,0x07,0x02,0xa0,0x23,0x16,0x1e,0xab,0xf9,0x80,0xcd,0x66,0x20,0x0d,0x58, -0x21,0x45,0xbd,0x48,0x6b,0x98,0xa5,0x70,0x7d,0xa1,0x09,0xa5,0x2b,0x10,0xae,0xbc, -0x27,0xa5,0xb4,0x42,0x4f,0x0e,0x57,0x39,0x99,0x7f,0x96,0xe0,0x94,0x17,0xa7,0x22, -0xa8,0xbc,0xeb,0x00,0x14,0x00,0x54,0x99,0x80,0x95,0xa8,0x9f,0xbb,0x4a,0x1c,0xff, -0x29,0xef,0xa5,0x38,0x78,0x4f,0xa9,0xe1,0x25,0xae,0xe1,0x84,0xb5,0x46,0xc1,0xe4, -0x3d,0x70,0x69,0x0a,0x7e,0xa1,0xe0,0xf9,0xee,0xfd,0x70,0x0a,0x74,0xec,0xd3,0xa5, -0x21,0x2f,0xc3,0x96,0x6a,0x13,0xec,0xf0,0x0d,0x1a,0x60,0xb9,0x48,0x04,0xea,0xf7, -0xf7,0x3b,0x6c,0x26,0xa2,0x46,0x32,0xac,0x8f,0x67,0xb0,0x8f,0x67,0x0a,0x5c,0xa6, -0xbd,0x0c,0xcb,0x58,0x90,0xe2,0x22,0xcc,0x53,0xac,0x7c,0x64,0x3c,0xb4,0xb8,0xc5, -0xf1,0x42,0xb8,0x8e,0x25,0x10,0xc7,0x6e,0x2e,0x0a,0xaa,0x03,0x6a,0xc9,0x29,0x3c, -0xed,0x34,0xba,0x6a,0xf3,0xa4,0xf4,0x34,0x5d,0xf9,0x8c,0x43,0xf0,0x1a,0x56,0x28, -0xdc,0xba,0xfa,0xe1,0xad,0xf7,0xcf,0x84,0xcd,0x5c,0x55,0x3b,0x9b,0xcb,0x56,0x67, -0xc3,0xd8,0x84,0x76,0x3e,0xe7,0x53,0x0b,0xf2,0x5d,0x7a,0xb3,0x7f,0xf1,0x57,0xfe, -0xf3,0x0a,0xd8,0xb8,0x73,0xe4,0x39,0xbd,0x33,0x47,0x04,0xbc,0x17,0xf2,0xa4,0x89, -0xf7,0x37,0x3f,0xbd,0x7e,0xfb,0xed,0xbf,0x09,0xa7,0xf3,0x7e,0x46,0x06,0xca,0xcf, -0xca,0x9e,0xfc,0xcc,0x2c,0x54,0x87,0xcb,0x1c,0xec,0xbd,0xf5,0xf3,0xd3,0x04,0x82, -0x29,0x7e,0x99,0xfe,0x47,0xaf,0x0f,0xae,0x7c,0xcc,0x0e,0xd7,0xe2,0x4a,0xae,0xed, -0x38,0xae,0xde,0x5e,0xa3,0xab,0xc1,0x7e,0x61,0x96,0x46,0x58,0xa2,0x5f,0x9e,0x2d, -0x83,0xee,0x5e,0xf8,0x78,0x70,0xe6,0x2c,0x57,0xfe,0xe8,0xb1,0xc3,0x7e,0x31,0xb8, -0x0d,0x2a,0xe3,0x22,0x36,0x86,0x2a,0x5b,0xb5,0x36,0x63,0x35,0x41,0x4a,0xb4,0x1a, -0xb6,0xda,0xca,0x95,0x3c,0xbc,0x6e,0xf5,0x5c,0xbf,0x14,0x7d,0x08,0xaa,0x7a,0xe1, -0x2f,0x37,0xaf,0xbd,0xcc,0x65,0x2d,0x14,0x18,0x2d,0x83,0x4a,0xe9,0x57,0x36,0x83, -0x1a,0xd9,0x57,0x39,0xbd,0xc2,0xec,0x80,0x41,0xae,0xf0,0xaa,0xae,0xcd,0xb1,0x8c, -0x4f,0x58,0xdb,0xba,0x0d,0x8f,0x01,0x62,0x5e,0x10,0x96,0x17,0x45,0xc5,0xb7,0x8a, -0x82,0x3c,0x6c,0x9a,0x5e,0xc9,0x63,0x96,0xab,0x9a,0x64,0x8d,0xee,0x11,0x0f,0x2a, -0x3a,0x73,0x9d,0x6d,0x9f,0xe7,0x39,0xdc,0x32,0x4c,0x6d,0x15,0x0a,0x7b,0xe5,0xe8, -0x33,0xc1,0x84,0xa0,0xce,0x3f,0xbe,0x7b,0xfb,0x35,0xa0,0x36,0x2b,0xe1,0xfd,0x6c, -0xf4,0x3a,0x74,0x99,0x0d,0xca,0x83,0xc4,0xe9,0x28,0x76,0x3d,0x75,0x53,0xcf,0xe2, -0x87,0x47,0x73,0xa1,0xe0,0x19,0x1b,0x84,0x26,0x91,0x45,0xe8,0x75,0x4f,0x77,0x05, -0xee,0x15,0xa0,0xdc,0xb2,0xb6,0xe9,0x8a,0x62,0x16,0xda,0xf5,0x97,0xaf,0xce,0x5e, -0xb9,0xf5,0x3e,0x5c,0x7f,0xfe,0xd5,0xcf,0x2f,0x7c,0x75,0xf6,0x8b,0xaf,0xce,0xbe, -0xf1,0xd5,0xcf,0x7f,0xf9,0xd5,0xd9,0x97,0xbe,0x3a,0x73,0x16,0x18,0x31,0x78,0xf3, -0x4f,0xb7,0x3e,0xf8,0xcd,0x57,0x67,0xaf,0xc6,0x33,0x9c,0xf9,0xb9,0x90,0x9b,0x0f, -0x61,0xda,0xba,0xdb,0xb3,0x3b,0x41,0xc2,0x69,0xff,0xe6,0x50,0x56,0x90,0xe8,0xa7, -0x51,0x73,0x92,0xae,0x36,0x5b,0x59,0x1f,0xff,0x6c,0x04,0x23,0xec,0x41,0x30,0x1d, -0x81,0xae,0x73,0x28,0xeb,0xb6,0x0c,0x27,0x27,0xa9,0xae,0x6b,0x67,0x05,0xef,0x73, -0xaa,0x91,0x9a,0x30,0xef,0x16,0x90,0x78,0x91,0xeb,0x73,0x27,0xa0,0xf0,0x93,0x27, -0x30,0xf7,0x93,0x5c,0x4e,0x1f,0x56,0xcb,0x6d,0x9b,0x59,0x28,0x12,0x42,0x39,0xed, -0xdf,0x9e,0x0e,0x7b,0xf0,0x0f,0x8f,0x3d,0xde,0x38,0xfa,0xc4,0xa3,0x3f,0x39,0x7c, -0xec,0xb1,0xa3,0x8f,0xaf,0x2d,0x9e,0x10,0xfa,0x2f,0x9e,0x1b,0x5c,0xfc,0x5d,0xc8, -0x3b,0x1f,0x34,0x66,0xc6,0x3d,0x03,0x0e,0x4e,0x9c,0x00,0x8d,0x13,0xfe,0x8b,0x42, -0xa1,0x7f,0xe3,0xb3,0xc1,0xdb,0xff,0x26,0x3a,0x18,0x3b,0x12,0x66,0xf6,0x97,0x48, -0x01,0x57,0x57,0x35,0x3a,0x3a,0x16,0xd2,0xac,0x66,0x0f,0xb4,0xa2,0x2b,0x3d,0xd3, -0xd3,0xed,0x9d,0x35,0x2f,0x92,0x3c,0x9b,0x79,0x78,0x78,0x35,0x37,0xe3,0x23,0x1b, -0xf0,0x3e,0x64,0x20,0x60,0xe1,0x70,0x94,0xc4,0xda,0x30,0x4e,0x18,0x75,0x10,0xbe, -0x02,0xc9,0x98,0x23,0x78,0x73,0x3a,0x68,0xfa,0x10,0x32,0xd2,0x11,0x2f,0x24,0x6f, -0xcd,0x7b,0x23,0xe1,0x02,0xb6,0xff,0x90,0x45,0x70,0x31,0x6a,0x05,0xed,0xd4,0x3b, -0x1a,0x4b,0x39,0x94,0xf5,0xdb,0x93,0x93,0x70,0x57,0xc6,0x4e,0x22,0x9f,0x9b,0x56, -0xbb,0x0b,0xda,0xbd,0xe3,0xae,0xa8,0x1d,0xcd,0x84,0x9a,0x7b,0xdd,0x4d,0x5b,0xd5, -0x74,0xe8,0x3c,0x3f,0xd1,0x37,0x0d,0x50,0x06,0xb6,0xae,0x65,0x43,0x2e,0x15,0x0a, -0x3e,0x6a,0xfd,0x0b,0x6f,0xdd,0xfa,0xfc,0xf3,0xfe,0x47,0x2f,0x0d,0x5e,0xbc,0xec, -0xa1,0x82,0xd9,0x7c,0x74,0x0e,0x3f,0xad,0x9e,0xe2,0x89,0x1e,0x10,0x0a,0x5f,0x3c, -0x6a,0xdb,0x59,0x5b,0xe7,0xd0,0xe0,0xc4,0x1f,0xdf,0x13,0xdd,0xb6,0xa1,0xb7,0x91, -0x19,0x90,0x61,0x89,0x05,0xc6,0xc4,0xda,0x1b,0x01,0x97,0xed,0xd9,0x66,0x9e,0x58, -0x1d,0xef,0x3b,0x91,0x79,0x3a,0xa6,0xe4,0x29,0xd5,0xb9,0x3a,0x0e,0x49,0x2a,0xe6, -0xe5,0x44,0x1c,0x8a,0xcd,0xe1,0x25,0x1f,0x26,0x61,0xc9,0x39,0x56,0x3e,0x4c,0x44, -0x40,0x73,0xf4,0xca,0x25,0x7a,0x95,0xcd,0x05,0xa8,0x44,0x5b,0x84,0x7f,0x01,0x46, -0xf0,0x0a,0x78,0xd0,0x35,0xd5,0xa6,0x9e,0x2d,0x64,0x0a,0x9b,0x79,0x92,0x11,0x32, -0x39,0xbe,0x07,0x9d,0xe6,0x20,0xd3,0xaf,0x3a,0xce,0xf9,0x84,0x4a,0xeb,0x1f,0x01, -0x05,0x56,0x5c,0xb7,0xfb,0x63,0xdd,0x8d,0x11,0x81,0x43,0x25,0x91,0x44,0xc2,0x8f, -0x1f,0x3d,0x06,0x5a,0xad,0xd3,0x33,0xcd,0x51,0x80,0x9f,0xb0,0x1c,0x77,0xa8,0x6c, -0x8c,0xb0,0xc9,0xf0,0x9f,0x38,0xba,0x86,0x15,0x24,0xc8,0x6a,0xa4,0x82,0x47,0x74, -0xf3,0xce,0xe0,0x3f,0xf2,0xe8,0xea,0xa3,0xc7,0x1e,0x4d,0xae,0xc1,0x13,0x3f,0xda, -0x17,0xfc,0x94,0x47,0x40,0x6e,0x8f,0x59,0x96,0xc9,0x0b,0x65,0xa1,0x40,0xb2,0x1d, -0x7d,0x9b,0xe0,0xbb,0x6c,0x2e,0x27,0xfd,0xc8,0xb2,0xdb,0x2a,0xc8,0xe0,0x0e,0xfc, -0x89,0x47,0x8e,0x88,0x9a,0x46,0x5a,0xad,0xb9,0x76,0x7b,0xce,0x71,0xa4,0x35,0x50, -0xd8,0x8b,0x8b,0x4b,0x44,0x29,0xe2,0x94,0x05,0xec,0x3d,0x85,0x14,0x6b,0x73,0xc5, -0xfa,0x5c,0x11,0xe6,0x08,0x4a,0x69,0x12,0x80,0x22,0x80,0x9b,0x03,0x60,0x14,0x16, -0xfd,0x0b,0x00,0xce,0xc2,0x84,0xbe,0x36,0x57,0x9f,0x2b,0x83,0x99,0xcd,0x40,0x21, -0x08,0xa9,0x6b,0x5b,0xae,0x85,0xd2,0xe8,0x41,0x02,0x25,0x12,0x88,0xdb,0x46,0xdb, -0x8d,0xa9,0x19,0x8b,0xb7,0x73,0x08,0x11,0x8e,0xcc,0x08,0x04,0x84,0x19,0x14,0xae, -0xb4,0xa9,0xbb,0x47,0x40,0xbb,0xb4,0xb2,0xb9,0x19,0x39,0x3f,0x14,0x8f,0x53,0x28, -0x0c,0xde,0x7c,0xf1,0xe6,0xf5,0xcf,0xb9,0xb2,0x5a,0xa4,0x2c,0x6b,0x4f,0x3e,0x29, -0x96,0x07,0xca,0x5e,0x79,0x97,0x2b,0xd8,0x8a,0x14,0x5c,0xb1,0x7a,0xb6,0x93,0x5c, -0x12,0x54,0xd6,0x9f,0x2f,0x81,0x05,0xc4,0x95,0x6d,0x47,0x11,0x36,0x3a,0x3d,0x57, -0x4f,0x2c,0x0d,0x65,0x5f,0xfc,0x37,0xae,0xa0,0x13,0x29,0xb8,0x46,0xcf,0xb1,0x49, -0x29,0xb8,0xfb,0xde,0xab,0x5c,0xc1,0x67,0x68,0x41,0xd0,0x69,0x2d,0x69,0xc3,0xb4, -0x40,0xdb,0x67,0xe3,0xe4,0x2a,0xe5,0x0a,0x25,0x00,0x04,0x35,0x7e,0xf8,0xdf,0xfd, -0x6b,0xbf,0xe7,0xca,0xae,0x09,0x24,0x82,0xad,0x69,0x1a,0x8e,0x5f,0x73,0x9c,0x44, -0x57,0xff,0xc8,0xd5,0x1b,0x6a,0x7e,0x63,0x23,0x5b,0xc8,0xee,0xcc,0xe4,0x0a,0x12, -0x34,0xd4,0xa5,0x2c,0xcd,0x85,0x35,0xc0,0xe3,0x22,0xfc,0x0b,0x54,0x07,0x68,0xe4, -0x47,0x4f,0x75,0xa5,0x43,0xc0,0xc1,0x00,0xcd,0x1f,0x41,0x07,0xfe,0x67,0x1d,0x06, -0x85,0xdc,0x8c,0x00,0x03,0xba,0xd3,0x5b,0x77,0x60,0x94,0x2e,0x13,0x91,0x04,0xb9, -0x25,0x53,0xef,0x6c,0xba,0x2d,0x4e,0xdf,0x6c,0x40,0x43,0xe9,0xf8,0x4e,0x8c,0x0e, -0xb1,0xb8,0x1a,0x01,0x1f,0x14,0x5f,0x56,0x34,0x2b,0x64,0x85,0x19,0xc8,0x33,0x23, -0xe4,0x00,0xf2,0x30,0x82,0xf0,0x80,0xf2,0x98,0x82,0x60,0xbc,0xfa,0xc5,0x45,0x39, -0x47,0x7e,0x40,0xb2,0xd6,0x89,0x93,0x4f,0xe6,0x80,0x6e,0xd9,0xac,0x50,0x2c,0x02, -0x7c,0xfa,0xec,0xe3,0x9d,0x15,0x82,0x14,0x1f,0xe9,0x10,0x6b,0x66,0xcf,0x60,0x85, -0xf1,0xde,0x1e,0xf4,0x6d,0xae,0xc7,0xd3,0x89,0x0e,0xee,0xac,0xf0,0xbe,0x4d,0xd5, -0x40,0xfb,0x60,0x3e,0xf6,0x8e,0x7e,0x22,0xc9,0xff,0x30,0x1b,0xf7,0x32,0xf8,0x92, -0x4b,0x3c,0x0d,0xe3,0x03,0xe3,0x69,0x3d,0x67,0x38,0xdb,0xf6,0x10,0x34,0x3c,0x2f, -0x3d,0x18,0x1f,0xc1,0x04,0x7b,0xd8,0x0f,0x35,0xf7,0x8c,0xa1,0x31,0x8a,0x48,0xc8, -0xf1,0xa3,0xeb,0x11,0xdc,0x14,0x17,0x33,0x69,0xe8,0x27,0x78,0xa1,0x31,0x11,0x53, -0x06,0x24,0xe4,0x51,0x53,0xc7,0xdb,0x1f,0xee,0x3c,0xa6,0x65,0xa3,0x5f,0xa1,0xf6, -0x49,0x1b,0x94,0x94,0xd8,0xe7,0xa0,0x8f,0x59,0xd9,0x78,0xd2,0x4f,0x0d,0xcd,0x6d, -0xe5,0x49,0x31,0x44,0x82,0x5a,0x51,0xf4,0xfb,0x92,0xa6,0x3b,0xaa,0xc6,0xe8,0x37, -0x28,0xa3,0xe5,0x6d,0xdd,0x69,0xaa,0x1d,0xba,0xbf,0xd6,0x0e,0x5e,0x44,0x4c,0xaa, -0x27,0xd0,0x90,0x36,0x34,0x7e,0x18,0x07,0xeb,0x15,0x63,0x58,0x91,0x6e,0x86,0xa6, -0x73,0xb6,0x49,0xf0,0x66,0x06,0x0a,0x50,0x8b,0x29,0xf6,0xd2,0x70,0x44,0xa7,0xad, -0x9a,0x30,0x04,0x34,0x6d,0x5d,0xef,0x90,0xa5,0x25,0x22,0x85,0xbb,0x26,0x1a,0x0d, -0xcd,0x56,0x61,0x8a,0xe1,0xef,0x07,0xc8,0x49,0x34,0xa8,0x26,0x9b,0x0b,0xa3,0x0f, -0xef,0x88,0x50,0xac,0x6e,0xac,0xa7,0xa3,0x6e,0x19,0x9b,0x4c,0x18,0x1b,0xb8,0x43, -0x42,0x40,0xcb,0xac,0x6d,0x6d,0xe9,0xcb,0x18,0xbb,0x97,0x15,0xbc,0x3c,0xf4,0xf4, -0xad,0x2d,0x5d,0x88,0x22,0x9f,0x04,0x60,0x4e,0x7f,0x06,0xba,0x28,0xd0,0x47,0x94, -0x73,0xac,0x97,0x82,0xcc,0xa6,0x03,0xe3,0xb4,0x0e,0x46,0x0e,0x2d,0x12,0x25,0x62, -0xb0,0xfc,0x84,0x72,0x23,0x9b,0x8b,0x98,0xeb,0xc2,0xc3,0xf1,0xcf,0x17,0xe6,0x4e, -0x14,0x9f,0x04,0x3a,0xdb,0xc0,0x61,0x8f,0xd1,0x81,0xb9,0x7a,0xcc,0x0f,0x4b,0x97, -0x9a,0x74,0x2a,0x94,0x1d,0xee,0x64,0x71,0xe8,0xe1,0x37,0x93,0xf6,0x02,0x37,0x28, -0x95,0x08,0x8e,0x7e,0x41,0x68,0xcf,0xe0,0xb0,0x54,0x22,0x38,0xfc,0xa0,0xce,0x9e, -0xa1,0x41,0xa1,0x64,0xdc,0xb6,0xb5,0x3b,0x40,0x6d,0x3b,0x99,0x6e,0xf4,0xfb,0x12, -0x7b,0x86,0x86,0xa5,0xb8,0x79,0x17,0xd1,0x4d,0x47,0xe7,0xe5,0x60,0xdb,0xe8,0x68, -0xd6,0x36,0x48,0x3f,0x0c,0x2b,0xe8,0xb6,0x80,0xbe,0x91,0xe5,0x7b,0x6a,0x2e,0x3e, -0xa5,0xf4,0x7e,0x82,0xfe,0x2a,0xe7,0xe6,0x23,0x8a,0x2a,0x62,0x87,0xb1,0xc9,0xf9, -0xd0,0x7c,0x8c,0xa6,0x36,0x7a,0xe6,0x48,0x55,0xe2,0x67,0x0a,0xba,0x06,0xd3,0x7b, -0xec,0x74,0x38,0x07,0x8a,0x06,0x39,0xb8,0xb2,0xce,0x0f,0x77,0x68,0x97,0x78,0x1c, -0xf4,0x7f,0x36,0xe1,0xb4,0x38,0x1e,0x96,0xf7,0xc6,0xc4,0x8d,0x6a,0x7b,0x85,0xe7, -0x75,0x31,0x06,0xcc,0x37,0xca,0x85,0x82,0xe3,0x3b,0x6d,0x02,0xbd,0x16,0x9d,0x28, -0xd0,0x6a,0x69,0x1e,0xa8,0xef,0xff,0xac,0x1d,0x7d,0x1c,0x79,0xe9,0xe8,0x98,0x69, -0x7e,0x38,0x8f,0x37,0xbf,0x65,0x0f,0x12,0x43,0x0f,0x7e,0xbb,0xa6,0x01,0x75,0xe5, -0x39,0x95,0xc1,0xcf,0x86,0x23,0xb9,0x11,0xed,0xc4,0x12,0x61,0xfb,0x51,0x6c,0x9c, -0xd4,0x09,0x31,0x4c,0x0d,0xb3,0x19,0x29,0x76,0x74,0x60,0xd7,0x36,0xda,0x78,0x70, -0x20,0x98,0x3f,0x2e,0x94,0xc8,0x0c,0xeb,0x2e,0x6f,0x6b,0x1a,0x0d,0xe4,0xa7,0xe6, -0xc4,0x29,0x37,0xeb,0x21,0xa6,0xe9,0x5b,0x46,0x53,0x47,0xc4,0xc2,0x62,0x41,0xdd, -0xb4,0xc0,0xe2,0x50,0x4e,0xde,0x96,0x21,0xd4,0x98,0x31,0x00,0xe3,0xe2,0x3c,0xfc, -0x2c,0x70,0xb4,0xf2,0xcc,0x08,0x48,0x9e,0x99,0x89,0xcd,0xce,0xb0,0x0c,0xba,0x27, -0xd6,0x70,0xe7,0xdf,0x22,0xdf,0xf4,0x13,0xc6,0x4c,0xe9,0xc9,0xb8,0x17,0x80,0xba, -0x4c,0x32,0x7c,0x37,0xf4,0xed,0x08,0x4d,0x3f,0x35,0x29,0x0c,0xc6,0x02,0x76,0x44, -0x57,0x0c,0x96,0xef,0x1e,0x42,0x50,0xb9,0x00,0x31,0x4a,0xa7,0x65,0x46,0x54,0xa8, -0x20,0xe0,0xea,0x09,0xe3,0xc9,0x79,0x36,0xdf,0xb8,0xf9,0xe5,0x47,0x83,0xd7,0x3e, -0x63,0x7e,0xb3,0xfe,0xe5,0x8b,0xbb,0xef,0xfd,0x39,0x0e,0x35,0xc0,0x30,0x17,0x22, -0x1b,0x83,0x2b,0x08,0xf3,0x21,0xac,0xfe,0xb5,0x4b,0xfd,0x4b,0x9f,0x7c,0x7d,0xe3, -0xa5,0xfe,0xa5,0xab,0xc1,0x71,0x72,0xb7,0xfe,0xf6,0x49,0xff,0xbd,0x7f,0x1f,0xfc, -0xea,0xcf,0xfd,0x0f,0xaf,0xf0,0x15,0x14,0x0a,0x41,0xff,0x03,0x9c,0x24,0xef,0xe4, -0xc5,0x40,0xe8,0x3c,0x5c,0xa9,0xcf,0x4b,0x16,0x86,0x1a,0x9c,0x94,0x29,0xc6,0x26, -0x12,0xed,0x94,0x8c,0xae,0x81,0x7f,0x84,0xbe,0x92,0xac,0xe8,0xa8,0x95,0xa4,0xd4, -0x26,0x04,0xb4,0xb1,0x11,0x87,0xc4,0xcd,0xd1,0x23,0x23,0xa8,0x27,0x91,0x6d,0x4b, -0xd3,0x11,0x71,0x39,0x82,0x36,0x37,0x6e,0xfa,0x9f,0x46,0x0d,0xcc,0x09,0x0e,0xfc, -0x90,0x7d,0xca,0x75,0x56,0x2f,0x15,0xcd,0xa7,0x78,0x89,0xc8,0x80,0x3a,0x5c,0x24, -0x34,0x3e,0x93,0x08,0xc1,0xa1,0xa6,0x76,0x13,0xb1,0xe2,0x91,0xc7,0x4f,0x44,0xef, -0x65,0x80,0xf1,0x50,0x51,0xbb,0xb4,0x68,0x6e,0x42,0xcc,0x21,0x7b,0x04,0xe9,0x90, -0xd0,0xc1,0x40,0x1f,0x66,0x8e,0xdb,0xe6,0x24,0xb4,0xcc,0x63,0x99,0x38,0x63,0x9d, -0x04,0xa6,0x7a,0x2c,0x4f,0x68,0xbc,0x93,0xc0,0x74,0x8f,0x83,0xe1,0x50,0x0b,0x06, -0xd0,0x30,0x0f,0x4c,0x7e,0xa0,0x9e,0x1f,0x31,0xf3,0x3e,0xa4,0x60,0x64,0xab,0xbe, -0x67,0xe3,0x7b,0x25,0xbc,0xd4,0xdc,0x70,0x7e,0xa3,0x1b,0xcb,0x6a,0x74,0x13,0x72, -0xd1,0x8d,0xec,0xd1,0x7c,0x98,0x94,0x90,0xd3,0xdf,0x55,0x1e,0xcd,0xec,0xa5,0x46, -0xf3,0x7b,0x1b,0xbc,0xa3,0x39,0x7b,0x5d,0x3a,0xe4,0xf3,0xc6,0x63,0x92,0xbe,0x0d, -0xd4,0x52,0x8a,0xba,0x8d,0xfa,0x71,0xa5,0x6e,0xcf,0x69,0x65,0x9f,0x62,0xbe,0xdc, -0x43,0xcf,0xf1,0x3a,0xed,0xf4,0x53,0x31,0x4f,0x4e,0x52,0x49,0xcf,0x0b,0x1c,0xf3, -0xff,0xe3,0x4e,0xeb,0xd7,0xde,0x0f,0xc6,0xb3,0xc4,0x82,0xb7,0xcf,0x5d,0xc4,0x6c, -0x74,0x45,0x63,0x6c,0xce,0x60,0xbb,0xf6,0xd8,0x9c,0xbb,0x9f,0x7f,0x34,0x09,0x4c, -0x0f,0x6d,0xb6,0x84,0x10,0x9d,0x1f,0x64,0x1e,0x4e,0x38,0xc3,0x24,0x03,0xe6,0x7c, -0xb7,0x0b,0xc6,0x53,0x96,0xcb,0xb8,0x60,0x1a,0x4b,0x19,0x6e,0xc6,0x1e,0x5a,0xfc, -0x99,0xe8,0x91,0x65,0xd1,0x4c,0xe8,0xba,0xcf,0xf8,0x67,0x98,0x65,0xf2,0x04,0x26, -0x0c,0xdc,0x6b,0x3a,0x18,0x0b,0x83,0x37,0x3f,0xf0,0xd6,0xb1,0xbc,0x77,0x81,0x93, -0x1b,0x59,0x6e,0xea,0x2e,0xcf,0xf2,0x58,0x0b,0x93,0xf8,0x8e,0xcd,0x8a,0x9d,0xcf, -0xbd,0x9f,0x4d,0x7a,0xea,0xd0,0x73,0x06,0xc8,0x4f,0x72,0x16,0xff,0x88,0x39,0xcc, -0xb7,0xa1,0x82,0x4a,0x7c,0x6a,0xa8,0xfd,0xd1,0x16,0xe1,0x60,0xe6,0xb9,0x35,0xa8, -0xc1,0xc3,0x98,0x97,0xc9,0x67,0x18,0x89,0x32,0xb9,0x18,0x8d,0xbe,0x01,0x1e,0x1a, -0xe3,0x9b,0x10,0x41,0x12,0xba,0x14,0x3b,0x29,0x8a,0x19,0x24,0x92,0xd1,0x41,0x13, -0x50,0x8a,0x9e,0x1e,0xc5,0xe4,0xd2,0xd6,0x41,0xc7,0x39,0x2d,0xee,0x68,0x19,0xc7, -0x57,0x09,0xd0,0xc8,0x65,0x1c,0x32,0xa8,0x47,0x1e,0x4c,0x5c,0xfe,0x94,0xe1,0xc8, -0x3a,0x40,0x6c,0x36,0x9f,0x04,0xd2,0xdb,0xf1,0x98,0x03,0x81,0x41,0x8d,0xe2,0xae, -0x37,0x50,0xf9,0x80,0x90,0x3d,0xf5,0xbd,0xbf,0x5b,0x70,0x5b,0xba,0xca,0x8e,0x98, -0x08,0x0f,0xb4,0x18,0x71,0x4c,0x6c,0x78,0x24,0x6c,0xff,0xc2,0xfb,0xd1,0x93,0x5e, -0x13,0x8e,0x7f,0x0d,0xce,0xa8,0xc0,0x94,0xb0,0x9e,0x75,0x4b,0xc3,0xa3,0xab,0x9e, -0xa2,0x0d,0xa0,0x93,0x8b,0x8e,0xbb,0x58,0x84,0xa7,0x24,0xad,0xe7,0x61,0x9f,0x20, -0xfb,0xd4,0xb7,0x61,0x6d,0x3f,0x86,0x23,0xc9,0x53,0x8c,0xb0,0x22,0x95,0xce,0x79, -0xff,0x2d,0x3d,0x5e,0x0c,0xde,0x1e,0x5d,0x7f,0x1a,0x59,0x71,0x52,0xdf,0x09,0xa8, -0x81,0x6c,0x83,0x11,0x37,0xc8,0x1a,0x76,0xa1,0x30,0x3f,0xdd,0x38,0x9e,0x58,0x02, -0x2c,0x93,0xb0,0x00,0x24,0x3e,0xb4,0x08,0x5d,0x9d,0x22,0x05,0x4d,0x99,0x99,0x09, -0xa0,0x52,0x08,0x38,0x7c,0x03,0xd0,0xac,0x01,0x93,0x99,0xc7,0xa3,0xe5,0x72,0xe4, -0xf9,0xe7,0x49,0x24,0x05,0x5a,0x5c,0x1c,0x4e,0x5c,0x5a,0x4c,0x56,0x05,0xe8,0xeb, -0xcb,0x04,0x1a,0x25,0x43,0xe6,0x62,0xd9,0x4e,0x44,0xc0,0x30,0xdc,0x7d,0xfe,0xcf, -0x50,0x01,0x88,0x1f,0x65,0x82,0x07,0x97,0x1c,0x7a,0x8e,0x11,0x6e,0x89,0xc8,0x08, -0xff,0xd6,0x97,0xbf,0xd9,0xbd,0xfe,0x21,0x02,0xcf,0x64,0x4e,0xef,0xfe,0xf6,0x43, -0x10,0x0d,0x2f,0xc7,0xe9,0xc1,0x9f,0xde,0x8e,0x1c,0x51,0xc2,0x4a,0x07,0xad,0x3e, -0x3d,0xf4,0xd2,0xdf,0x4d,0x9b,0xe1,0x76,0xd3,0x6a,0xc0,0x3a,0x57,0xe7,0x0f,0x58, -0xf2,0xc1,0xe7,0x8b,0xb9,0xf9,0x4c,0xf2,0xe7,0xc8,0x02,0xd1,0x7a,0xca,0xef,0x75, -0x71,0xae,0xc8,0x89,0x5c,0x99,0x84,0x2f,0xf2,0x10,0x5f,0xe4,0x24,0xbe,0xc8,0xd3, -0xe1,0x8b,0x4c,0xf9,0x32,0x19,0x67,0xd8,0xc1,0x28,0x3e,0x79,0x76,0xdf,0x7b,0x75, -0x5f,0xa9,0x2f,0xef,0x81,0xfa,0xdf,0xfb,0x3b,0xb8,0xe0,0x64,0xa3,0x89,0x53,0x1d, -0xe8,0xbd,0xb1,0x09,0x06,0xd7,0x36,0x01,0x5b,0x85,0x27,0xde,0x34,0x2d,0x13,0x8f, -0x10,0x59,0xcc,0x54,0x32,0x4b,0x83,0xff,0x7d,0x7b,0xf0,0xe6,0xf9,0x60,0x22,0xc4, -0xd4,0x4f,0xa0,0x63,0xb4,0x25,0x5a,0x23,0x3f,0xb5,0xe1,0xa6,0x0c,0x3e,0xf0,0x99, -0x45,0xe1,0x67,0x7c,0xb8,0x0e,0x53,0x34,0x58,0x28,0xdd,0xd9,0x91,0x78,0x0a,0x77, -0x0e,0xb4,0x76,0x47,0xb7,0x57,0x8e,0x1d,0x59,0x05,0x01,0xf1,0xa0,0x03,0x98,0xb4, -0x75,0xdc,0x47,0xac,0x76,0x96,0x33,0xa9,0x02,0xef,0xb3,0x94,0xe0,0x07,0xc1,0x69, -0x14,0x3b,0xfd,0x90,0xf3,0x56,0x84,0x8b,0xc5,0x20,0xc3,0x02,0x8e,0xe1,0x5e,0x31, -0x51,0x35,0x4d,0x01,0xe9,0x49,0x57,0x22,0x0c,0xed,0xf9,0xe7,0x23,0x6f,0x9b,0x18, -0x3b,0x21,0x9a,0x18,0x3b,0x11,0xc9,0xe3,0x9f,0xde,0x1f,0x26,0xe6,0x3c,0xf8,0x91, -0x70,0x85,0xd3,0x11,0xaf,0x04,0x73,0x73,0xc0,0x4c,0x89,0x4d,0x55,0x13,0x4d,0xd1, -0x12,0x53,0xca,0xc1,0x6c,0x34,0x75,0xe6,0xcf,0x41,0x03,0x96,0x67,0x13,0xa7,0xaf, -0x3f,0x80,0x89,0x68,0x1e,0x57,0x86,0x84,0x22,0xef,0x22,0x09,0xb0,0x0a,0x96,0x46, -0x85,0x82,0xe3,0xc7,0xaf,0xa4,0xf8,0x77,0x4e,0xe7,0xb9,0x1a,0xf9,0x09,0x11,0x07, -0xc3,0xa4,0x51,0x2d,0xe9,0x00,0x42,0x1c,0xe5,0x28,0x8e,0x0c,0x45,0xce,0x98,0xe4, -0xd6,0xe0,0x91,0xcb,0xb8,0x29,0x57,0xf4,0x9c,0x0e,0x68,0x67,0xa7,0x30,0x99,0x84, -0x5c,0x2e,0x14,0xc8,0xad,0x97,0x3f,0xe9,0x5f,0xfa,0x75,0xff,0xf3,0x5f,0xf6,0xcf, -0x5f,0x64,0x67,0x1c,0x0d,0xce,0x9f,0xc1,0x00,0xa2,0xd7,0xff,0x95,0x98,0x06,0xe9, -0xbf,0xf0,0x8b,0xdd,0xbf,0xbe,0x15,0x6a,0xac,0x43,0xa6,0xc1,0x05,0x89,0x34,0x4d, -0xcb,0xc1,0x95,0x22,0x21,0xe6,0x21,0x12,0xf8,0xe5,0x8b,0x48,0x15,0xbb,0x7f,0xfd, -0x5d,0xff,0xc6,0xaf,0xf8,0x85,0x19,0x4d,0x3f,0x45,0x21,0x26,0xe2,0x4f,0x5f,0xb3, -0xca,0x86,0x21,0x52,0xbf,0x09,0x61,0x6e,0x90,0xfe,0xab,0x2f,0x11,0xde,0xdf,0x92, -0x80,0x38,0x8d,0xc6,0xc1,0x06,0x48,0x1b,0x90,0x25,0x08,0x8b,0xe1,0xd4,0xf1,0xa1, -0x00,0x9b,0x30,0x13,0x0f,0x34,0xda,0xac,0xfe,0xcb,0xbf,0xe5,0x5d,0x30,0x74,0xf4, -0x36,0xb5,0xc7,0xd9,0xc4,0x9e,0x56,0xc7,0xec,0xb4,0x9c,0xe4,0xda,0x06,0xeb,0x98, -0x61,0xd9,0x1b,0x9f,0xed,0x7e,0x70,0x65,0xf7,0xc6,0xaf,0x6f,0x7d,0xf1,0x0a,0x17, -0xd4,0xa2,0x6f,0x7b,0xc5,0xbb,0x36,0x74,0x71,0xa0,0xeb,0xad,0xab,0x9f,0xdc,0xfa, -0xe2,0x97,0xfd,0x17,0xde,0x85,0xf9,0x09,0x9e,0xca,0xc8,0x39,0x7e,0x80,0xa3,0x5e, -0x75,0x7e,0x13,0x50,0xed,0xf9,0x20,0xbe,0xff,0x7d,0x1f,0x9a,0x57,0x3b,0x79,0x08, -0x1d,0x2e,0x02,0xdf,0xc1,0xa3,0x19,0x80,0xd6,0x4d,0xb3,0xa7,0x81,0xa1,0x21,0x10, -0x21,0xe7,0xf7,0x53,0x2e,0x56,0x83,0x55,0x7b,0xf3,0xd3,0x8b,0xb7,0x7e,0xf1,0x79, -0xff,0xa5,0x17,0xfa,0x97,0xff,0xb8,0xfb,0x87,0x6b,0x83,0xb7,0x6e,0x04,0x24,0x4c, -0xea,0xd3,0xc3,0xd5,0xb0,0x9e,0xba,0x24,0x57,0xfd,0x2a,0xd2,0xea,0xb8,0xf5,0xf1, -0x0b,0xb7,0xbe,0x3c,0x27,0x57,0x6f,0x7e,0xfa,0x41,0xff,0xc3,0x2b,0x23,0x6b,0x21, -0x3c,0xbd,0xa3,0xf5,0xf1,0xd1,0x2c,0xa4,0x7f,0xe9,0xea,0xed,0x33,0xe7,0xbf,0xbe, -0xf1,0xfa,0xe0,0x8d,0xbf,0x02,0x45,0x99,0xef,0x2b,0x00,0x41,0x79,0xec,0x4d,0x8f, -0x38,0x3d,0x30,0xd4,0xfd,0xa9,0x53,0x75,0x64,0x17,0xa6,0x90,0x66,0x32,0x24,0x33, -0x13,0x47,0x86,0x22,0x1c,0xf6,0xdb,0x40,0xec,0x99,0xaf,0x73,0xc2,0x6e,0xcb,0x6c, -0x4a,0x3c,0x66,0x65,0x31,0xc5,0xe3,0x3a,0x3f,0x99,0x94,0xd2,0xdc,0x53,0x97,0x52, -0xb0,0x36,0xfa,0xef,0x9c,0x3b,0x90,0xd2,0x61,0x29,0xe5,0xe8,0x3d,0x2c,0xa5,0x09, -0xf2,0x16,0x7a,0xc0,0x47,0x8a,0xdb,0x18,0x21,0x4b,0x5f,0x63,0x89,0x8f,0xf0,0x74, -0x49,0x91,0x5a,0x5f,0xab,0x18,0x0d,0x06,0xb6,0xc7,0x28,0x1b,0x61,0xb8,0x67,0xc0, -0xe4,0x79,0xc2,0xa1,0x4d,0x49,0x19,0xda,0x4e,0xf3,0x94,0x98,0x18,0x77,0xce,0xfe, -0xb8,0xf3,0x26,0x34,0xfd,0x80,0xd0,0x09,0x9b,0x50,0x1c,0xdf,0x84,0x60,0x01,0x2c, -0xb2,0x28,0xc6,0x42,0x26,0xf9,0x45,0x31,0x74,0xc9,0x51,0x6f,0x29,0x4c,0x1f,0xfd, -0xee,0x4f,0x5d,0xac,0xc9,0x48,0xb3,0x30,0x43,0x63,0xab,0xc1,0x1c,0xb7,0x4c,0x0b, -0x3c,0x1c,0x26,0x84,0x9e,0xdc,0xc8,0x7a,0x8f,0x5f,0x43,0x03,0xd7,0x83,0xb1,0x08, -0x35,0x05,0x4f,0xd0,0xe3,0x97,0x33,0xfe,0xcb,0xcc,0x93,0x23,0x0a,0x7a,0x5e,0xeb, -0x28,0xba,0xf1,0xdc,0x1c,0x0e,0x5e,0xde,0x54,0xac,0x50,0x17,0x70,0x58,0xb1,0x99, -0x2e,0x5d,0x19,0x28,0x46,0x57,0x06,0xc2,0xb6,0x49,0xec,0x00,0x69,0x8c,0x45,0x41, -0xcf,0x0e,0x67,0x62,0x71,0xb5,0x4c,0xea,0xc0,0xe6,0xd5,0xfc,0xb0,0xf3,0x3c,0xa9, -0x52,0xfc,0x66,0xc1,0xdd,0xd5,0x19,0x21,0x26,0x6b,0xf1,0xf0,0x1a,0x6b,0xc4,0xb0, -0x8b,0x78,0xf0,0x53,0x64,0x83,0x8f,0x98,0x48,0x94,0x84,0x34,0xba,0xf9,0xf9,0x23, -0xfc,0x4c,0x6c,0xef,0xe9,0xd0,0xfb,0x95,0xb0,0xde,0x71,0xf7,0x78,0x45,0x48,0x3b, -0x06,0x2d,0xbe,0x0d,0x1c,0xb1,0x82,0x6e,0xeb,0x47,0x37,0x84,0xec,0xe4,0x3a,0x3a, -0xc2,0x2c,0xe0,0xfb,0xf4,0x8e,0xce,0x44,0xd3,0x66,0xb2,0x78,0xf4,0x1f,0xe2,0xcb, -0x54,0xde,0xa2,0xb9,0xc3,0x1c,0x62,0xb8,0x64,0x8e,0x47,0x71,0x01,0x44,0xa8,0xb7, -0x67,0xba,0x79,0x22,0x17,0x8b,0xc5,0x48,0xc4,0x67,0xc2,0x12,0x55,0x38,0xa0,0xf0, -0xab,0xbf,0xdc,0x68,0x71,0x7a,0x68,0x2e,0x17,0x60,0x1b,0xa9,0x2e,0xde,0x4c,0xb6, -0x14,0xbd,0x97,0x56,0x3e,0x04,0xad,0x7c,0xfc,0xa8,0x90,0xb0,0x66,0x3a,0xba,0xeb, -0xa3,0xf8,0x66,0xe3,0x2b,0x9b,0xd9,0x87,0x22,0x85,0x86,0x56,0xf8,0xe2,0x20,0xd3, -0xe2,0xb6,0x86,0xe7,0xd7,0x7b,0xd3,0x62,0x09,0xc8,0xb1,0x30,0x24,0x37,0xbe,0xf6, -0x9e,0x18,0xae,0x0b,0x8a,0xfa,0xd8,0xd1,0x47,0x8e,0xce,0x91,0x1f,0x19,0xa7,0xe8, -0xec,0x95,0xe0,0x09,0x26,0x76,0xac,0xad,0x11,0x6c,0x12,0x14,0x97,0x5f,0xab,0xe7, -0xea,0x14,0xc2,0x8f,0x8e,0xc4,0xbd,0xbf,0xe1,0x47,0x47,0x32,0xc5,0x4c,0xf2,0xa7, -0x52,0x8e,0xa8,0x9d,0x9e,0x6a,0xd2,0x2f,0x91,0x08,0x13,0xac,0x80,0xde,0x41,0xbd, -0x23,0xaa,0xe0,0x1f,0x92,0x1c,0xa4,0x40,0x57,0x09,0x7b,0xb5,0x33,0x62,0x15,0x3e, -0x4a,0x32,0xc6,0xff,0xc5,0xb0,0x24,0xba,0x36,0xe3,0x05,0x08,0x09,0xfd,0x35,0x93, -0xb4,0x01,0x23,0xa4,0x66,0x30,0x40,0x2a,0x85,0x86,0xc2,0x0c,0x5f,0xdd,0x8c,0x90, -0xd0,0xd4,0x34,0x7a,0xde,0x39,0x2a,0x13,0xd6,0x9a,0x4a,0x6f,0x3f,0xf4,0x2e,0xe2, -0x0f,0xf2,0x9c,0x41,0x61,0xae,0xc9,0xfc,0xfd,0x61,0x7e,0x3e,0xcc,0x07,0xe0,0x0d, -0x2b,0x35,0xa6,0x45,0xf3,0x18,0xb4,0x1c,0x55,0x67,0x43,0xdb,0x4d,0x22,0xf8,0xee, -0x51,0x3b,0x9e,0x4e,0x72,0x59,0xb1,0x90,0x27,0xa7,0xb7,0xde,0x36,0xc6,0x3b,0xab, -0x62,0x61,0x9c,0x9e,0x9a,0xe2,0x82,0xcd,0x62,0xaa,0x20,0x12,0xe0,0xc9,0xe7,0x66, -0xb1,0x64,0x69,0xb9,0xd9,0x7a,0x72,0x34,0x52,0x2c,0x15,0xf2,0xb6,0x16,0x01,0x8c, -0x81,0x60,0x09,0x79,0x41,0x03,0xa9,0x6d,0x74,0xf5,0x87,0xc8,0xcf,0x10,0x81,0x6e, -0x86,0x08,0x11,0x8c,0xa4,0x20,0x12,0xd1,0x2c,0xdc,0x82,0x35,0x37,0xc8,0xe1,0xbb, -0x42,0xd3,0xdf,0xb7,0x96,0x3a,0x00,0x24,0x0f,0x42,0x60,0xe7,0x32,0xcc,0x72,0xf3, -0x89,0x06,0x49,0xb0,0x30,0xbe,0x37,0x0e,0x79,0x01,0xd3,0x3c,0x61,0x58,0x50,0x5b, -0x8c,0x32,0x20,0x39,0x3f,0x09,0xd6,0xd9,0xb3,0x5e,0xa9,0x5c,0xc2,0x7a,0x53,0xa1, -0xf0,0x8f,0x3d,0x8b,0x8d,0x1c,0xe4,0x88,0x6a,0x9f,0x74,0xe2,0x7b,0xb4,0xd8,0x1e, -0x9b,0x7f,0x3c,0x92,0x75,0x5c,0x3b,0xb6,0x3b,0x0b,0x52,0xe8,0xe8,0x1e,0x39,0x38, -0xf3,0xf9,0xe7,0x09,0xa4,0x33,0xb7,0xd3,0xd1,0x8d,0xac,0x90,0x01,0x6d,0xbe,0x04, -0x2a,0x6e,0x44,0x1e,0x1c,0x2d,0xc6,0xe6,0x21,0xe9,0x79,0x98,0xb6,0x24,0x4b,0xa4, -0x14,0x0d,0xd0,0xf4,0x02,0xa0,0x23,0x56,0xd1,0xe9,0x78,0x74,0x34,0x6f,0x06,0xf1, -0xb1,0xb6,0xcf,0xb4,0x1b,0xb8,0xeb,0x08,0x35,0xff,0x9a,0x65,0xdb,0x3b,0x30,0x6f, -0x51,0x3b,0x19,0x97,0xe0,0x79,0xdd,0x19,0x02,0xda,0xfb,0x67,0x02,0x5e,0xe9,0xd1, -0xe1,0x78,0xa3,0xc3,0x3c,0x7e,0x47,0xfa,0x59,0xe7,0x67,0x9d,0xc3,0xa6,0x63,0xe5, -0x89,0x87,0xd4,0xc2,0x22,0x60,0x25,0x09,0x21,0x5c,0x53,0x8f,0xc3,0xf5,0x73,0x92, -0x1a,0xe6,0x8b,0x4f,0x67,0xf6,0xd4,0x7f,0x69,0x70,0x4d,0xb2,0x75,0xd9,0xb5,0xad, -0x6e,0x56,0xf0,0xa6,0x5b,0x02,0x2e,0x6b,0xc8,0x30,0xdd,0x2a,0x46,0xc3,0xd9,0x52, -0x26,0x1c,0x89,0xdd,0xce,0x71,0xb6,0x63,0x99,0xc3,0x90,0xd7,0x58,0x01,0x14,0x16, -0x4e,0x90,0x30,0xd2,0x05,0x79,0x17,0x26,0x31,0x68,0xb9,0x08,0xf7,0x54,0x53,0xb7, -0xdd,0xac,0xc7,0x86,0x49,0xf6,0xe9,0x61,0x2d,0x0c,0x90,0x14,0x92,0x34,0x01,0xa4, -0xc7,0x81,0x49,0x40,0x46,0x15,0x0c,0x52,0xd7,0x57,0x1c,0x94,0x54,0xfe,0x03,0xab, -0x75,0x3e,0xcd,0x50,0x9e,0xae,0x0e,0x89,0xcc,0x80,0x23,0xb3,0xe2,0xfe,0x1b,0x5f, -0xdc,0x7a,0xfb,0xfd,0xa1,0x38,0x77,0xb7,0xe1,0xef,0xa7,0x03,0xb5,0x60,0x1b,0xba, -0x33,0x47,0x4e,0x90,0x13,0x4f,0x92,0x27,0x83,0x8d,0x15,0x5e,0x36,0x1a,0x9b,0x8d, -0x51,0x73,0xfa,0x36,0xee,0xcd,0xb4,0x5d,0x98,0xfe,0x4b,0xab,0x46,0x47,0xcf,0x66, -0x24,0x3f,0x10,0x3e,0x93,0xf7,0x01,0xe6,0xc9,0x73,0x18,0x33,0x7e,0xd8,0xd6,0xd5, -0x39,0xda,0xc7,0xf2,0x44,0x3d,0x65,0x38,0xff,0x3c,0x47,0x9e,0xeb,0x5a,0x8e,0x81, -0xed,0x9c,0x23,0x19,0x40,0x30,0x73,0xfa,0x34,0xef,0x22,0xee,0xe2,0xbe,0x54,0xfc, -0xca,0x39,0x35,0x7c,0xe2,0xf1,0xf8,0xdb,0xc0,0xb6,0x68,0x7a,0x77,0x54,0x88,0x6b, -0x37,0xe2,0x7d,0xde,0x1e,0x95,0x75,0x3b,0x9a,0xb5,0x31,0x32,0x0a,0x1f,0x5e,0xc7, -0xb2,0xef,0x8c,0xce,0xbe,0x23,0x24,0xcc,0xa1,0x60,0xd0,0xa6,0xbb,0x70,0x7f,0x02, -0xfa,0xd7,0xd6,0x52,0xe6,0x52,0x94,0x1e,0xa3,0x84,0x03,0xe7,0x50,0x24,0xd1,0xc4, -0x8e,0x6d,0x29,0xa5,0x90,0xd2,0xa3,0x62,0x49,0x84,0xf4,0xf4,0x5e,0xc2,0xfb,0x19, -0x22,0x47,0x3c,0x46,0x08,0x0a,0x73,0x24,0x86,0xea,0x13,0x91,0x4b,0xb7,0x36,0x36, -0x60,0xa0,0x19,0x4e,0x67,0xf9,0x57,0xf5,0x0d,0x37,0x02,0x98,0x55,0x49,0xaf,0x8e, -0x04,0x06,0xf0,0xa3,0xb8,0x9b,0x56,0x67,0x74,0x24,0x8b,0x4b,0xc3,0x53,0xa7,0x66, -0xcf,0xb6,0x1b,0xc8,0x7f,0x2f,0x53,0x41,0x2e,0x46,0x4c,0xa8,0x6e,0xc4,0x9a,0x63, -0xb9,0x25,0xd7,0x82,0xe9,0x86,0xae,0x65,0x95,0xe1,0x89,0x8b,0x49,0x67,0xbe,0x9e, -0xfc,0x4a,0xac,0x33,0xd0,0x60,0x3d,0x8c,0x37,0x62,0xc5,0x13,0x82,0x4c,0x71,0xe7, -0x03,0x33,0xb8,0xa0,0x07,0xe1,0xd6,0xaf,0x33,0xfd,0x77,0x5e,0xc7,0xe7,0xc1,0x7f, -0xe1,0xe7,0xd9,0x06,0x17,0x3f,0x8a,0x1a,0xa1,0xc3,0xf0,0x9d,0x96,0xb1,0xe1,0x8e, -0x08,0x94,0xe4,0xdf,0x84,0xdd,0x60,0x66,0x31,0x4a,0x31,0x6f,0x52,0x10,0x0b,0x3c, -0xf4,0xfa,0x25,0xe8,0xdc,0x6d,0xe4,0x43,0x36,0x2c,0xff,0xf7,0x80,0x74,0x04,0xb2, -0xd7,0xc3,0xa5,0x5e,0x17,0x37,0xd2,0x64,0x3d,0x3c,0x23,0x41,0x87,0xa8,0x42,0x87, -0xeb,0xc4,0xd9,0x6d,0x11,0x5d,0xcd,0xa7,0x40,0xa5,0xca,0xc5,0xf8,0x8a,0xf0,0x1e, -0xb7,0x79,0x24,0x50,0x60,0x38,0xa0,0x8e,0x61,0x91,0x10,0x4f,0xe7,0xf7,0xc7,0x2d, -0x5c,0xf0,0xa7,0x27,0x01,0xfe,0xbd,0x4f,0xa6,0x46,0xd3,0xea,0x75,0xdc,0x1c,0x29, -0x50,0x6e,0xc1,0x4f,0xa9,0x0a,0xbf,0x5c,0x8d,0xdb,0x11,0x79,0x01,0x18,0x81,0xb0, -0x94,0xe2,0x7d,0x09,0x5e,0x52,0x0d,0xe1,0x57,0x91,0x8d,0xd4,0x01,0xd2,0x1e,0x79, -0x6e,0xc8,0x40,0xca,0x9d,0x86,0xba,0x69,0xe5,0x46,0x55,0xef,0xc1,0x64,0xbf,0x18, -0x86,0xf0,0x03,0xf8,0x37,0xc7,0x9e,0x23,0xf9,0xdc,0x38,0xa2,0x90,0x32,0x12,0xd5, -0x9d,0x54,0x54,0x43,0xd4,0x86,0x90,0x56,0xf0,0x8d,0x33,0x09,0xd6,0x3b,0x1e,0x16, -0x3b,0x31,0xac,0x77,0x22,0xf9,0x76,0x86,0xb0,0xde,0x49,0xc6,0x3a,0x14,0x33,0xea, -0x31,0x6e,0xa0,0xdb,0xb9,0xa1,0x77,0x30,0xce,0x58,0x1b,0x0e,0x0e,0x1e,0x0e,0x45, -0x2e,0x4e,0x27,0xa2,0xb9,0x38,0x79,0x3c,0x73,0x88,0x31,0xa0,0xb8,0x17,0x54,0xe5, -0xe9,0xa0,0x2a,0xef,0x2d,0xf4,0x3a,0x4e,0x66,0x17,0x4f,0x74,0x68,0x78,0x20,0x61, -0x88,0x99,0x00,0x71,0x65,0x3a,0x88,0x2b,0x7b,0x43,0x7c,0x68,0xe7,0x06,0xc3,0x7f, -0xc4,0xc6,0x8d,0xe8,0xd6,0x0d,0x3e,0x7b,0xea,0xce,0x8d,0x7d,0xdb,0xbb,0x31,0x7a, -0xf7,0x06,0xc3,0x2d,0x69,0xf3,0xc6,0xd0,0xf6,0x8d,0x78,0x56,0x2e,0xe7,0x1d,0xef, -0xdf,0xb8,0xf3,0x9d,0x07,0x07,0x3b,0x3f,0xa6,0xb1,0xf3,0xe3,0x7e,0xdc,0xbf,0x31, -0xd2,0x1f,0xc5,0x99,0xb6,0x79,0x52,0x8a,0x3a,0xa4,0xf2,0xa1,0xad,0x09,0xca,0x67, -0xcd,0xb5,0x8d,0xce,0x66,0x18,0x49,0x70,0x7a,0xfc,0x91,0x1b,0x41,0x53,0xe2,0x36, -0x74,0x30,0x15,0x8a,0xcd,0x7a,0xa2,0x33,0x21,0xee,0xac,0xa0,0xf8,0x2a,0x21,0x8d, -0xa8,0xda,0xd6,0xf5,0x93,0x1a,0x0d,0xf4,0x1f,0xbb,0x52,0x88,0x7c,0x8b,0xf9,0xc8, -0x79,0x10,0xde,0x6a,0x9f,0xb7,0xf0,0xf6,0xd0,0xb0,0xff,0x3a,0xa8,0x93,0xed,0x5e, -0x4e,0x5f,0xb0,0x49,0xde,0x7b,0x92,0x56,0x34,0xba,0x06,0x75,0x3a,0x36,0x41,0xe4, -0xa7,0x20,0x5c,0xc4,0x71,0xd2,0x2a,0x87,0xcb,0xce,0x58,0x4a,0x9d,0x7e,0x44,0x23, -0x8d,0x23,0x71,0x79,0x2c,0x14,0x18,0x83,0x00,0x7f,0xc6,0xcb,0x10,0x8d,0x1f,0xf6, -0x3f,0x96,0xd7,0x4a,0x78,0x47,0xbb,0x60,0xf2,0x3b,0x76,0x50,0x4d,0xca,0xbb,0x2f, -0x3e,0xd8,0x7d,0xf9,0x6a,0x0a,0xcc,0x30,0x5e,0x39,0x1a,0x39,0x68,0x2f,0xf9,0x21, -0xcb,0x11,0xcc,0x83,0x80,0xc2,0xc0,0x88,0xb5,0x3a,0x8e,0x65,0xea,0x92,0x69,0x6d, -0xc6,0x66,0x4d,0x94,0x00,0x40,0x24,0x67,0xd4,0xd4,0x0a,0xa5,0x84,0x66,0xf2,0x4d, -0xe6,0x3b,0x8e,0x9c,0xe4,0x65,0x77,0x6c,0xc0,0x64,0xd2,0x68,0xc0,0xa3,0x91,0x34, -0x10,0xf0,0x68,0xc4,0xe8,0x18,0x63,0x24,0x8b,0x35,0x45,0x0f,0x07,0x85,0x89,0xc3, -0x46,0xd7,0x66,0xdf,0x77,0x46,0xdf,0x07,0xc5,0x2e,0xa5,0x40,0x2c,0x4a,0x36,0x28, -0x1f,0x84,0xcb,0x8e,0xd9,0x2e,0x30,0x0e,0x7e,0x36,0x3b,0x0c,0x72,0x71,0x51,0x96, -0x9f,0x7f,0x7e,0x38,0x7d,0xa1,0x96,0xfb,0x01,0x97,0x9d,0x99,0x3f,0x3f,0x10,0x40, -0xd4,0x84,0x39,0x3c,0x7e,0x4b,0xc8,0xcd,0x09,0xa2,0x30,0xb6,0x4a,0x98,0xf4,0xaf, -0x5a,0x56,0x17,0x07,0xad,0x10,0x9a,0xa7,0x05,0x46,0x16,0x4e,0x0a,0xd6,0x7d,0x44, -0x37,0xc3,0x7e,0x19,0xa1,0x30,0x0d,0xd9,0x75,0xd5,0x76,0x17,0x41,0x26,0xc4,0xed, -0x46,0x59,0x36,0x42,0x36,0xc6,0xc6,0xd2,0x8e,0x0d,0x10,0x41,0x54,0xb4,0x06,0xd5, -0x40,0x23,0x62,0x69,0xc7,0x9c,0xb7,0xc3,0x93,0xcd,0xf0,0xf5,0x3a,0x1b,0x9a,0xc2, -0xe7,0xa6,0x0a,0x9a,0xaf,0x38,0xc7,0x47,0xfe,0x90,0xcc,0xcd,0x4f,0x2f,0xb2,0x2e, -0x9f,0x99,0xe7,0x72,0xc9,0xb1,0x5c,0x83,0xab,0x97,0xfa,0xaf,0xbc,0x7f,0xf3,0xd3, -0x33,0x91,0x5c,0x4a,0x72,0xae,0x6b,0x2f,0x45,0x72,0x95,0x52,0x60,0x9d,0x8f,0xe4, -0x2a,0x27,0xe6,0xea,0xbf,0xf1,0x46,0x24,0x57,0x25,0xa5,0xc6,0xd7,0x22,0xb9,0xaa, -0xc9,0xb0,0x5e,0xf8,0x30,0x92,0x6b,0x36,0x31,0xd7,0xe0,0xca,0xbb,0x19,0x5e,0x63, -0x61,0xce,0x5a,0x42,0xce,0x77,0xfe,0x90,0x89,0xf2,0x22,0xe2,0xd8,0x0e,0x06,0x94, -0x51,0x0e,0x2d,0x6e,0xd4,0x99,0x8f,0x15,0xa5,0xbd,0x7f,0x5c,0x51,0x36,0x95,0x0f, -0xbc,0x95,0x01,0x38,0x3f,0x3e,0x85,0x08,0xf4,0x83,0x91,0xf8,0x55,0x86,0xc0,0xd8, -0xf4,0xb2,0x61,0xd1,0x30,0x9b,0x5c,0x9c,0xc3,0x63,0x83,0x8a,0x7e,0xa6,0x61,0x48, -0x63,0x0f,0x02,0xe1,0x4b,0x46,0x80,0x27,0x96,0xf4,0x0f,0x30,0x12,0x86,0x86,0xd2, -0xc3,0x9a,0x96,0x38,0x94,0x7a,0x27,0x96,0x61,0x9f,0x88,0x22,0x17,0x71,0x98,0x43, -0xcd,0x7e,0x8e,0x10,0x89,0x48,0x0e,0xe6,0x97,0x1b,0x4d,0x57,0xe7,0xa4,0x8b,0x36, -0x15,0xf3,0xb0,0xc7,0xca,0x13,0xd4,0x6c,0x63,0xca,0xb3,0x8d,0xb5,0xcc,0xf4,0x8f, -0x06,0x28,0x9d,0x4c,0x88,0x05,0x48,0xb5,0x73,0x38,0x7f,0x0c,0xba,0x90,0x7c,0x91, -0x50,0xe9,0x4a,0xdb,0x31,0xaa,0xce,0x8c,0x36,0x35,0x94,0x43,0x46,0x1c,0x5b,0x59, -0x61,0x94,0x8d,0x38,0xd7,0xfd,0xe1,0x64,0x91,0x1d,0x2a,0x64,0x5b,0xbd,0x8e,0x16, -0xf2,0xc5,0x07,0xee,0xbb,0x27,0xf8,0x50,0x54,0xae,0x28,0x37,0x28,0xd1,0xb1,0xf9, -0xb1,0x8e,0x8b,0x6b,0x5e,0x61,0x6e,0x4a,0x19,0xb8,0x70,0x51,0x66,0xd1,0x80,0xab, -0xb6,0x16,0x05,0xc3,0xfc,0xfa,0xcc,0x3b,0xca,0xee,0xa1,0xb4,0x7f,0x0b,0xb4,0x4a, -0x0e,0x36,0x1c,0x67,0x4a,0x71,0xb1,0x22,0xc3,0x11,0x31,0x6c,0x71,0x22,0x6a,0x55, -0x8c,0x5e,0x25,0x4e,0xdc,0x4d,0xc6,0x42,0xec,0xda,0x5a,0x64,0x49,0x78,0x8c,0xa5, -0x7d,0x28,0x9b,0xe9,0x99,0x27,0xe8,0x27,0x31,0xd9,0x61,0x2e,0xec,0x03,0xf4,0x4f, -0xb2,0xe3,0x5e,0xf8,0xfd,0x75,0x68,0x2e,0x67,0xe8,0x32,0x54,0x26,0x1f,0x07,0xf1, -0x30,0x57,0x36,0x43,0x83,0x61,0x37,0x37,0x75,0x98,0xcb,0x31,0xeb,0x9a,0x4e,0xe2, -0x4e,0x07,0x97,0x60,0x0f,0x60,0xa4,0x0c,0x85,0xce,0xb2,0x0f,0x1b,0xe3,0xc1,0x76, -0x1f,0x2e,0x7c,0x3e,0x5c,0x67,0x42,0x60,0x6c,0xf7,0x07,0x1d,0x40,0x1b,0x5d,0xfc, -0xf2,0x23,0xbd,0x67,0x9f,0xfc,0xcc,0x78,0xb3,0xf0,0x20,0x40,0x2e,0x53,0xcc,0xfc, -0x00,0x77,0x44,0xf5,0xcf,0x5d,0x1f,0xfc,0x09,0x1d,0xb9,0x99,0xb9,0x8c,0xf7,0xb9, -0xe2,0xf7,0x5e,0xc5,0x47,0x0e,0xd7,0x43,0x43,0x87,0x01,0x46,0xf6,0x78,0xca,0xd4, -0xf0,0x5a,0x84,0x49,0xd0,0xf0,0x8e,0xce,0x14,0x9c,0xbe,0x99,0x0d,0x8f,0x46,0x7c, -0x83,0xe3,0xa4,0x21,0x0f,0xde,0x9a,0x31,0x3f,0xa8,0x47,0x76,0x26,0xa2,0x08,0x84, -0x53,0x8a,0x75,0xee,0x55,0x52,0x7f,0x48,0xde,0x30,0x19,0xb5,0xad,0x79,0x9f,0x2f, -0x13,0x1b,0xef,0x39,0x80,0x06,0x44,0xe1,0x37,0x3b,0x79,0x90,0x39,0x97,0x85,0xd5, -0xd9,0x7c,0xc2,0x66,0x6b,0xad,0xa9,0x5a,0x91,0x97,0xf7,0x24,0xa5,0x4a,0xb7,0x12, -0x8d,0x02,0xe0,0x6d,0x60,0x4d,0x05,0xc0,0x38,0x6f,0xd9,0x8d,0x70,0xe9,0x3e,0xfd, -0xb4,0xa9,0x44,0x59,0xe1,0xc0,0xe2,0xc6,0xac,0xec,0x43,0x14,0xa7,0xe7,0x9f,0x7f, -0x28,0x0e,0x1a,0x99,0xc0,0xc5,0x58,0xdf,0xba,0xfa,0x09,0x3b,0x6e,0xf2,0xf6,0x99, -0xf3,0xb7,0xdf,0xfe,0x8c,0xf2,0x31,0x50,0x27,0x49,0x5b,0x73,0xc6,0xb1,0x6d,0x82, -0xc0,0x3e,0x3e,0xc4,0xfb,0x93,0xff,0x1d,0x7c,0x02,0x93,0x98,0xb7,0xd8,0x0e,0xb0, -0x9b,0xd7,0xfe,0xfd,0xe6,0xf5,0x8f,0x23,0x5e,0xb8,0x21,0x21,0x4a,0x0c,0xe1,0xa3, -0x3b,0x95,0xe3,0x4d,0x3d,0x4d,0x0e,0x3d,0x47,0xc9,0x80,0x37,0x01,0xa3,0x87,0xb6, -0xc3,0x07,0x4d,0x18,0xde,0x1b,0x37,0xc4,0x97,0x7c,0x00,0xc6,0x37,0x4a,0xf7,0x93, -0x34,0xcc,0xa8,0xdf,0x1f,0xd2,0x88,0x72,0x2a,0x51,0x02,0xc4,0x59,0xdf,0x3e,0xea, -0x4f,0x91,0xb2,0x74,0xfb,0xad,0xb7,0xed,0x22,0x1f,0xee,0x8d,0x44,0xab,0x9d,0xb6, -0x82,0xc5,0x0d,0x82,0xcd,0x8e,0xe3,0xa4,0x3f,0xc6,0xd2,0x42,0x9e,0x87,0x35,0x23, -0x66,0x72,0xb8,0xdf,0x72,0x9e,0x6d,0x1e,0xf4,0xf6,0x01,0x01,0x21,0xc4,0xd0,0xd3, -0x9c,0x26,0xf8,0xd0,0x0a,0x0a,0xea,0xb4,0x48,0xad,0x8f,0xa7,0x72,0x81,0x89,0xc6, -0x6d,0xbd,0x9c,0x9f,0x14,0x06,0x2d,0xcb,0xc1,0x10,0x65,0xa6,0xed,0x38,0xf7,0xca, -0xde,0x11,0x89,0x50,0x64,0x7e,0x32,0x18,0x71,0x44,0x28,0x4d,0x7c,0xcd,0xcb,0x47, -0xfe,0xe3,0xd6,0x45,0xba,0x49,0x9c,0x72,0x7b,0xb2,0x40,0x01,0x14,0x22,0x46,0x19, -0xb6,0xe7,0x6c,0x48,0x88,0x98,0x74,0x50,0x9e,0x61,0x27,0xa1,0x95,0x33,0x59,0x18, -0x0e,0x86,0x8d,0xcc,0x46,0x83,0x09,0x68,0xcc,0x5d,0x84,0x47,0x8f,0x32,0x1b,0xa7, -0x20,0xcc,0x04,0x99,0x26,0x43,0xf6,0x11,0xda,0xff,0xa8,0x32,0xd4,0xa8,0x11,0x4c, -0x8e,0xfe,0xc3,0x43,0x11,0x89,0x4f,0x37,0x66,0x42,0x7c,0x86,0xce,0xf0,0xe5,0xdd, -0x7c,0x11,0x07,0xe0,0xd1,0x63,0x87,0x13,0x4f,0xd3,0x0d,0xbf,0x8a,0x1d,0x3b,0x0a, -0x94,0x7d,0x09,0x7c,0x94,0x72,0xf6,0x3f,0x16,0x9e,0xa4,0xe4,0xe9,0xb9,0xa3,0xf8, -0x35,0xe8,0x20,0x06,0xd0,0xb4,0x9a,0x54,0x5c,0x24,0xff,0x55,0x24,0xff,0x3a,0x4c, -0xdd,0xfe,0x89,0x56,0xe7,0xbf,0x9e,0x11,0x0a,0x40,0xd5,0x78,0xe1,0x16,0x08,0x48, -0xb2,0xa9,0x09,0xd8,0x8c,0x92,0x13,0xd6,0x4e,0xb7,0xe7,0x44,0x49,0xe9,0xb5,0x21, -0xe1,0xe8,0xe8,0xf0,0x93,0xda,0xa3,0x4e,0x76,0x0e,0x73,0x05,0x3e,0xf9,0x30,0x69, -0x78,0xdb,0x08,0xb5,0x56,0x82,0xad,0xb6,0xde,0x16,0x5b,0x2d,0x93,0xec,0x67,0xa5, -0xdb,0x5b,0x7d,0xff,0xf4,0x13,0xde,0xa7,0xbb,0xd1,0xe5,0xec,0xdf,0x67,0x8b,0x43, -0x71,0x30,0x31,0xbe,0xd2,0xf6,0x46,0x19,0x7b,0x0f,0x39,0xc3,0x6c,0x9f,0x31,0x8c, -0xa1,0x38,0xe9,0x76,0x93,0x59,0x15,0xa1,0x26,0x8d,0x98,0xfd,0x85,0x42,0xd4,0x1b, -0xc9,0x05,0x1a,0x85,0xf9,0xf9,0x02,0x1c,0x13,0x46,0x52,0xd0,0xab,0x79,0x68,0x2d, -0xd6,0x43,0x68,0x61,0xc8,0x65,0x19,0xb4,0xd7,0xd6,0xf1,0x43,0x74,0xd9,0xdc,0xa4, -0xf1,0xaa,0x01,0x43,0x46,0xc5,0xaa,0x86,0x7d,0x35,0xd2,0x79,0xd9,0xe1,0xf9,0x43, -0x47,0xde,0xb1,0xaf,0x87,0x8f,0x3c,0xf0,0xce,0xfb,0xc0,0x38,0xef,0xb3,0x80,0xe7, -0x06,0x7e,0x1e,0x3a,0xb1,0x58,0xf4,0x6c,0x3a,0xef,0x0b,0xe7,0xfc,0x06,0x9b,0xc8, -0x76,0x01,0xef,0x43,0xe1,0x49,0x4e,0x74,0xd3,0x1a,0x19,0xdf,0xe5,0x21,0x16,0x71, -0xa0,0xd9,0xfc,0xaa,0x9e,0x87,0x65,0x18,0x40,0x51,0xcc,0xc7,0xd2,0x56,0x74,0x63, -0xb3,0xe5,0xa6,0xd3,0x91,0xff,0x92,0x79,0x8c,0x90,0x11,0xe2,0xde,0xfc,0xf4,0x42, -0xff,0xad,0xff,0xb9,0xfd,0xd6,0xf5,0xdd,0x97,0xcf,0x0d,0xb7,0x91,0x0b,0x1a,0x4d, -0x6c,0x27,0x8d,0x89,0x65,0x27,0x38,0x15,0x68,0xe0,0xe9,0xc8,0x73,0xfa,0xf8,0xd3, -0x9f,0x52,0x99,0xc6,0x05,0xb1,0x86,0x04,0x09,0x12,0xd3,0x48,0x96,0xd0,0x7c,0x1e, -0xf7,0xf9,0x84,0xf3,0x54,0xf0,0xeb,0x9c,0xc1,0xc2,0x12,0xdd,0xc7,0xb0,0x48,0x23, -0xf3,0xec,0x76,0x56,0xd8,0x7d,0xfb,0x23,0x18,0x4c,0x6e,0xfd,0xfe,0x2c,0x3b,0xf2, -0xa8,0x7f,0xf9,0xca,0xd7,0x37,0xc2,0xe3,0x89,0xa8,0x55,0xb7,0xb8,0x88,0xab,0x35, -0xde,0x04,0x8a,0xe7,0x2d,0xd6,0x8c,0xb0,0xd9,0xb7,0x20,0xb2,0xb9,0x14,0xdf,0x1b, -0x67,0x7a,0xc5,0x0a,0x24,0x86,0x85,0x79,0x5f,0x13,0x9d,0xd8,0x16,0x60,0x88,0x47, -0xc7,0x7f,0x01,0x7a,0x9e,0x90,0xbe,0x05,0x26,0x39,0x48,0x98,0xdb,0x38,0xfa,0x90, -0x97,0xf6,0xfc,0xf3,0xde,0xcd,0xe2,0x62,0x31,0x5c,0x99,0xf3,0xd3,0xe4,0xf8,0x1e, -0xcd,0x78,0x0c,0xf5,0x44,0xf2,0x92,0x6c,0xdb,0x80,0xb4,0x0e,0x2e,0xbc,0x7b,0xfb, -0x77,0xaf,0x80,0xb4,0x46,0xce,0x80,0xc2,0x63,0x02,0x3c,0x84,0xc3,0xea,0xf9,0x8f, -0x9d,0x14,0xbc,0xb3,0x69,0x16,0x0a,0xe8,0xa6,0x86,0x9b,0xff,0x0f,0x2f,0x54,0x56, -0x8a,0x5c,0x10,0x01,0x00}; +const unsigned char web_index_html[0x36ba] = { +0x1f,0x8b,0x08,0x00,0x1d,0x48,0x06,0x68,0x02,0xff,0xed,0x7d,0xfb,0x97,0x1b,0xc5, +0x95,0xf0,0xef,0x39,0x67,0xff,0x87,0xa2,0xf1,0xb7,0x92,0x76,0xd4,0x92,0xba,0xf5, +0x18,0x69,0x5e,0x39,0xce,0x40,0x76,0xf8,0x76,0x8c,0x09,0xe3,0x38,0xbb,0xeb,0x70, +0x44,0x8f,0xba,0x67,0xd4,0xb8,0xa5,0x16,0xdd,0xad,0x19,0x8f,0x61,0xce,0xb1,0x93, +0x10,0x63,0x07,0x63,0x43,0x20,0xce,0x02,0x1b,0x20,0x0b,0x81,0x90,0x80,0x93,0x4d, +0xc2,0xc3,0x0f,0x38,0xe7,0xfb,0x57,0xb0,0x34,0xe3,0x9f,0xf8,0x17,0xbe,0x7b,0xab, +0xfa,0x51,0xdd,0xea,0x96,0x34,0xb6,0xc6,0xd8,0xd8,0x4e,0xd0,0xf4,0xe3,0xd6,0xad, +0x5b,0xb7,0x6e,0xdd,0xba,0xf7,0xd6,0xad,0xea,0x6f,0xae,0x7e,0x35,0xf7,0x90,0x6a, +0x36,0x9c,0xad,0x8e,0x46,0x9a,0x4e,0xcb,0x58,0xf8,0xa7,0xef,0xcd,0xe1,0x5f,0x62, +0x28,0xed,0xf5,0x79,0x41,0x6b,0x0b,0xf4,0x89,0xa6,0xa8,0xf0,0x97,0xc0,0xbf,0xb9, +0x96,0xe6,0x28,0xa4,0xd1,0x54,0x2c,0x5b,0x73,0xe6,0x85,0xae,0xb3,0x26,0x56,0x85, +0xd0,0xbb,0xa6,0xe3,0x74,0x44,0xed,0xd9,0xae,0xbe,0x31,0x2f,0xfc,0xbb,0xf8,0xe3, +0x83,0xe2,0xa2,0xd9,0xea,0x28,0x8e,0xbe,0x6a,0x68,0x02,0x69,0x98,0x6d,0x47,0x6b, +0x43,0xc1,0xc7,0x1e,0x9d,0xd7,0xd4,0x75,0x2d,0x5c,0xb4,0xad,0xb4,0xb4,0x79,0x41, +0xd5,0xec,0x86,0xa5,0x77,0x1c,0xdd,0x6c,0x0b,0xec,0x2d,0xfb,0xe7,0x97,0x3d,0x48, +0xd6,0x2c,0xb8,0x16,0xb5,0xb6,0x4a,0x1c,0xad,0xd5,0x31,0x14,0x47,0x23,0x4e,0x53, +0x71,0x48,0x53,0x33,0x3a,0x36,0xd9,0x32,0xbb,0x64,0xb5,0xab,0x1b,0x2a,0x59,0x53, +0x6c,0x27,0x4b,0x5a,0xa6,0xaa,0x59,0x6d,0xf8,0xb3,0xaa,0x1b,0x1a,0xd9,0xd4,0x56, +0x89,0xd2,0xe9,0xd8,0xb9,0xb8,0xba,0x37,0x74,0x6d,0xb3,0x63,0x5a,0x0e,0x47,0xe9, +0xa6,0xae,0x3a,0xcd,0x79,0x55,0xdb,0xd0,0x1b,0x9a,0x48,0x6f,0xb2,0x44,0x6f,0xeb, +0x8e,0xae,0x18,0xa2,0xdd,0x50,0x0c,0x6d,0x5e,0xca,0x15,0xa0,0x12,0x78,0xd6,0xea, +0xb6,0x82,0x47,0x3e,0x7a,0x47,0x77,0x0c,0x6d,0xe1,0xc8,0xa2,0xd4,0xff,0xaf,0x2b, +0xbb,0x3f,0xbf,0xde,0xbf,0xf0,0x6a,0xef,0xca,0x07,0x73,0x79,0xf6,0x78,0x90,0x04, +0x46,0xa6,0x08,0x64,0x8a,0x40,0xa6,0xd8,0x50,0x3a,0x4a,0x98,0x75,0x5b,0x9a,0xed, +0xe3,0x36,0xf4,0xf6,0x71,0x62,0x69,0xc6,0xbc,0xa0,0xc3,0x7b,0x81,0xd8,0xfa,0x49, +0xcd,0x9e,0x17,0xa4,0x9a,0x7c,0x02,0xfe,0x13,0x48,0xd3,0xd2,0xd6,0xe6,0x05,0xec, +0x92,0x99,0x7c,0x7e,0xab,0xdb,0x76,0xcc,0xf6,0x7a,0x4e,0x6f,0x74,0xf3,0x4e,0x43, +0xca,0xeb,0x2d,0x65,0x5d,0xb3,0xf3,0x4a,0x5b,0xb5,0x4c,0x5d,0x15,0x81,0xef,0xc7, +0x1d,0xb3,0x93,0xeb,0xb4,0xd7,0x7d,0xfc,0x0f,0x89,0x22,0x39,0xa8,0x02,0x9b,0x4d, +0xd2,0x34,0x5b,0xd8,0x31,0x9a,0xd6,0x26,0x6b,0xa6,0x45,0x56,0x94,0x35,0xc5,0xd2, +0x89,0xd9,0x26,0xfa,0xe1,0x15,0x22,0x8a,0x31,0x2d,0x01,0xf2,0xa1,0x21,0x7b,0x6a, +0xcf,0xa8,0xd2,0xb6,0xa3,0x38,0x5d,0x5b,0x5c,0x55,0x2c,0xb8,0xdc,0x0a,0xa1,0x59, +0x35,0x94,0xc6,0xf1,0xb1,0x11,0x51,0xee,0x73,0xa5,0x0f,0x81,0x0c,0x59,0xd0,0xa5, +0xe4,0x11,0xcd,0xd6,0xd7,0xdb,0x64,0x59,0x77,0xb4,0x18,0x2e,0x33,0x5c,0x8e,0xd9, +0x6d,0x34,0x45,0xe4,0xb8,0xd8,0xb1,0xb4,0x06,0xc8,0xb7,0x69,0x6b,0xea,0x78,0xdc, +0xd6,0x4d,0x3b,0x91,0xd3,0x47,0x50,0x3e,0x11,0x2d,0xe5,0xf0,0x4f,0xf4,0x76,0x95, +0xa4,0xa5,0x52,0xe9,0x04,0xfc,0x47,0xa6,0x88,0x83,0x6f,0x1b,0xa6,0x61,0x5a,0x99, +0x78,0x7e,0xb7,0x6c,0x24,0x4f,0x6f,0x28,0x38,0x74,0x44,0x44,0xf6,0x18,0xd6,0x19, +0x3f,0x88,0x86,0x53,0x49,0x5b,0x98,0x6f,0xd9,0x7c,0x53,0x5d,0x4a,0xf8,0x26,0x87, +0x5a,0x30,0x94,0x92,0x45,0xa4,0x9b,0xe3,0xf7,0xc3,0xc5,0xe2,0xb4,0xfc,0xc8,0x0f, +0x63,0x58,0x6c,0x37,0x61,0xfc,0x35,0xba,0x0e,0x61,0x12,0x3d,0x0e,0x4f,0xd7,0x94, +0x0d,0x04,0x0e,0x51,0xc3,0x21,0x44,0x41,0xb1,0x9b,0x9a,0xe6,0x78,0xd8,0x14,0x1b, +0x94,0x97,0x9d,0x6f,0xd8,0x76,0xbd,0x03,0x42,0x93,0x83,0x0b,0xbf,0x1c,0x85,0x5e, +0x08,0x58,0x96,0x6b,0xa9,0x86,0xd8,0xd2,0xda,0x5d,0xf2,0x1c,0xcf,0x47,0x42,0x5a, +0xca,0x09,0xb1,0xa9,0xe9,0xeb,0x4d,0x67,0x86,0x14,0x0b,0x85,0xce,0x09,0xf2,0x90, +0xde,0x42,0xdd,0xa1,0xb4,0x9d,0xd9,0x30,0xa8,0xb9,0xa1,0x59,0x6b,0x86,0xb9,0x29, +0x6e,0xcd,0x10,0xa5,0x0b,0x63,0x29,0x16,0x72,0xdb,0xa5,0x20,0xef,0x91,0x30,0x97, +0x77,0x15,0xef,0xdc,0xaa,0xa9,0x6e,0xe1,0x5f,0x55,0xdf,0x20,0x0d,0x03,0xc8,0x47, +0x2d,0xd9,0x32,0x45,0x43,0x01,0x5d,0xe7,0x10,0x24,0x91,0xbb,0x7c,0xc6,0x1e,0x7c, +0x21,0x8a,0x6b,0xfa,0x09,0x0d,0x06,0xb9,0xa5,0x6c,0x6a,0x56,0xcc,0x0b,0xac,0x4a, +0xb3,0x7c,0x36,0xb0,0xdb,0x50,0x65,0xee,0xa3,0xa0,0x68,0xbd,0x1e,0x2e,0x44,0x0b, +0x72,0x24,0x0e,0x42,0x8a,0x96,0xb9,0xc9,0x43,0xd3,0x12,0xab,0x5d,0x07,0x3a,0x95, +0x2f,0xe4,0x3e,0x21,0xc1,0xb5,0x48,0x45,0x90,0x68,0xaa,0xee,0x88,0xae,0x2a,0x46, +0x49,0x8b,0xe2,0xa2,0xf8,0x74,0x1f,0x95,0x3b,0xa6,0x69,0x59,0x3b,0x0e,0x96,0xf5, +0xf8,0xc6,0x7a,0xc2,0x2b,0xfa,0xba,0x6b,0x6b,0xe4,0x04,0x4a,0xd3,0x0c,0x13,0x9e, +0x87,0xe9,0x60,0x40,0x4a,0x84,0x7c,0x12,0xca,0x7c,0x3c,0xce,0xb9,0xbc,0x1e,0x6d, +0x7c,0x9e,0xb5,0x2f,0xfa,0xd8,0xee,0x28,0xed,0x41,0x36,0xba,0x5a,0x6b,0x70,0x2e, +0x41,0xf0,0x28,0x8a,0xd8,0x8e,0x10,0x01,0xb2,0x81,0x3d,0x36,0x97,0x87,0xf7,0xd1, +0x22,0xa8,0x83,0xf6,0xda,0x33,0xff,0xfc,0x70,0xa9,0x3c,0x4b,0x7f,0xe8,0x78,0xf5, +0x15,0x53,0x12,0x52,0xef,0x9f,0xae,0xc2,0xa8,0x56,0xad,0x55,0x07,0x4c,0x8c,0xb1, +0x0a,0x25,0xf7,0xeb,0xd8,0x75,0xd2,0xae,0x1e,0x1b,0x7a,0x48,0xef,0x3b,0x96,0xd2, +0xb6,0xd1,0xec,0x00,0x11,0x18,0xbf,0xf6,0xfc,0xd8,0xd5,0xa3,0xa0,0x8c,0x04,0xf4, +0x65,0x67,0x34,0x64,0xd7,0xe0,0x3b,0x91,0x6a,0x33,0x57,0x51,0xf0,0xd7,0x60,0x74, +0xe1,0xec,0xa6,0xad,0xad,0x69,0x0d,0xa6,0x3b,0xf0,0x6d,0xd0,0xc1,0xab,0x26,0x54, +0xd7,0x02,0x30,0xd0,0x79,0xe3,0x75,0x34,0x4c,0x63,0x7b,0xed,0x65,0x43,0x8f,0x92, +0x5a,0xaf,0xc3,0x5c,0xdc,0x12,0xc0,0xd4,0x68,0xc0,0x94,0x72,0x7c,0x5e,0x58,0x6c, +0x82,0x71,0xaa,0x2d,0xc3,0x4f,0x17,0xd4,0x7f,0x3a,0xa5,0xb5,0x53,0x19,0x61,0xe1, +0xd1,0xf6,0xba,0xa1,0xdb,0xcd,0xb9,0xbc,0xa1,0xef,0x5f,0x55,0x0d,0x5a,0xd5,0x8d, +0xcf,0x3f,0xee,0xff,0xe6,0xcc,0xfe,0xd6,0xf4,0x4c,0x07,0x6b,0xea,0x5f,0x7a,0xbf, +0xff,0xd6,0x9f,0x77,0x3f,0xfa,0xdd,0x78,0x95,0xcd,0xe5,0xbb,0x46,0x0c,0x94,0x3b, +0x6a,0xfd,0xba,0x2c,0x6d,0xd5,0x34,0x9d,0x74,0x46,0x88,0x57,0x5f,0x63,0x68,0xe2, +0x84,0x92,0x38,0xa8,0x19,0x72,0xda,0xe3,0xdf,0x96,0x72,0x66,0x24,0xec,0x8f,0x7a, +0xe6,0x15,0x27,0x9b,0xa0,0x35,0xcb,0xbb,0x8d,0x4e,0xcf,0x03,0x93,0x6d,0xbd,0xce, +0x3d,0xa2,0xa6,0x9c,0x28,0xae,0x1a,0x5d,0x4d,0x5c,0xb7,0xb4,0x2d,0xb1,0x56,0x28, +0x70,0x2f,0x1c,0xed,0x84,0xc3,0xbf,0x2d,0x17,0x42,0xf3,0x6c,0x5b,0x09,0xd7,0x05, +0xf7,0xfa,0x3a,0xb5,0xb7,0x28,0x8e,0xc8,0xed,0x40,0x5d,0xd5,0x42,0x61,0x60,0x22, +0x56,0xf8,0x9e,0x0f,0x10,0xd4,0xeb,0xd4,0x96,0x72,0x1f,0x8a,0x4a,0xc3,0xd1,0x37, +0x34,0xcf,0x94,0x7a,0x46,0xd9,0x50,0x98,0xbb,0x36,0xb3,0xd2,0x34,0x37,0x9f,0x40, +0xd9,0x95,0x32,0xb3,0x23,0xfa,0x3e,0xb1,0x91,0x25,0x64,0x41,0x58,0x32,0x88,0x65, +0x82,0x43,0x25,0x80,0xd5,0x69,0x83,0xe5,0x48,0x29,0x9a,0xac,0xb4,0xa0,0x63,0x33, +0x01,0x59,0x19,0x98,0xb7,0xd1,0x85,0x16,0xa8,0x23,0xfd,0x6f,0xda,0xd6,0xbc,0xb0, +0x84,0xd5,0x80,0xea,0xb8,0x7a,0xf3,0xdd,0x7f,0xc4,0xcf,0xd8,0x79,0x65,0x4f,0x3d, +0x32,0xac,0x0b,0xe4,0x7b,0xab,0x0b,0xc0,0x1c,0x77,0xf4,0xf6,0xba,0x7d,0x07,0xba, +0x61,0xd1,0x6c,0xaf,0xe9,0xe0,0x26,0xec,0x7e,0xf2,0xe5,0xce,0xf5,0x4f,0xf6,0xbd, +0x23,0x8a,0xf7,0x56,0x47,0x28,0x8d,0x86,0x06,0x5e,0x91,0x62,0x28,0x56,0xeb,0x0e, +0x74,0xc6,0x11,0xbd,0xa5,0xa9,0x47,0x14,0x1b,0xfc,0xf6,0xde,0x27,0x6f,0xf4,0x2f, +0x7d,0x7a,0xe3,0xea,0xd5,0xde,0xb9,0x77,0xf7,0xbd,0x57,0x4a,0xf7,0x56,0xaf,0xd0, +0x69,0xfb,0xce,0x76,0x47,0xff,0xa5,0xb3,0x37,0x5f,0xfb,0x64,0xf7,0xcc,0x47,0xd0, +0x2f,0x37,0xbe,0x38,0xbb,0xef,0x3d,0x52,0xbe,0xb7,0x7a,0x44,0x6f,0xaf,0x99,0x77, +0xa0,0x43,0x56,0xb6,0x6c,0xb0,0x12,0x57,0x68,0xd0,0x4b,0x58,0xd8,0xf9,0xdb,0xd5, +0x9d,0xab,0x6f,0xef,0x9c,0xfb,0xb4,0x7f,0xea,0xf4,0xbe,0x77,0x48,0xe5,0x5e,0x1b, +0x22,0x66,0x57,0xad,0xab,0xe6,0x66,0xdb,0x30,0x15,0xf5,0x0e,0x74,0xcd,0xe1,0x23, +0x07,0x41,0x69,0xbd,0x79,0xe5,0xc6,0xd5,0x4f,0x7b,0xe7,0xcf,0xec,0x24,0x79,0xe1, +0x13,0xec,0x91,0xe9,0x7b,0xab,0x47,0xda,0xa6,0xa3,0xd9,0x77,0x6c,0x8c,0x2c,0x9b, +0xeb,0xde,0x00,0x01,0x9f,0xa9,0xf7,0xd5,0xa5,0x31,0xba,0x63,0x2e,0x0f,0xec,0xf7, +0x4d,0x79,0xce,0xac,0x6f,0x29,0x7a,0x3b,0x2e,0x88,0xe5,0x46,0x2f,0x87,0xc5,0xbb, +0xd6,0x2d,0x5d,0x25,0xd4,0x20,0xe7,0x80,0xd9,0xff,0x92,0xa2,0x33,0x1d,0xe8,0x5c, +0x82,0x3f,0x12,0x33,0xd5,0x35,0xc3,0xf0,0x2f,0x44,0xb1,0x84,0x5d,0xca,0xdd,0x57, +0xf1,0x5e,0x74,0x30,0x86,0xce,0x7c,0x74,0x5a,0xa3,0x77,0x21,0x02,0xdb,0x69,0x8c, +0x47,0x0f,0x42,0xa1,0x49,0xf5,0x52,0x2a,0x4d,0xba,0xce,0x62,0xb3,0x0a,0x14,0x8b, +0x61,0xb2,0x9b,0x0a,0x8c,0x24,0x51,0x94,0xd5,0xce,0x38,0x24,0x15,0xa3,0x24,0xb1, +0xc7,0x92,0x4c,0x9f,0xbb,0xc1,0xee,0x44,0xe1,0x8a,0x30,0x10,0x89,0xa8,0xd7,0xed, +0x6e,0x07,0x03,0xa4,0xd0,0x0a,0x2a,0xcb,0x8c,0x89,0x89,0x02,0x18,0x8b,0x82,0xc6, +0xca,0xfc,0x76,0x89,0xa2,0x76,0x02,0xe4,0x41,0x15,0x86,0x08,0x32,0x0b,0x7c,0xca, +0x09,0xa8,0x5c,0x42,0x58,0xc8,0xad,0xff,0xf2,0x07,0xbd,0x17,0x3f,0x05,0xff,0x4f, +0x1e,0x36,0x30,0x62,0x62,0x6c,0xd1,0xb0,0x0c,0x7a,0xcc,0xb6,0xd9,0x38,0xae,0x39, +0xf5,0xae,0x21,0x84,0x83,0xbb,0xba,0xed,0x50,0x29,0xb2,0x5c,0x6e,0xe3,0x83,0x91, +0xf4,0x87,0x43,0x0d,0x58,0xc4,0x0d,0x35,0x24,0x0e,0xee,0x68,0xa8,0xd1,0x2f,0x22, +0x76,0x2c,0xbd,0xa5,0x58,0x5b,0x62,0x8c,0xdc,0xef,0xc1,0xe0,0x6e,0xea,0x86,0xba, +0x6c,0xe2,0xda,0x4c,0xef,0xe2,0xe5,0x9d,0xd7,0x3e,0xdc,0xf9,0xd3,0xfb,0x37,0x5f, +0x8b,0x9f,0xc0,0x38,0xed,0x90,0xfc,0x72,0x5c,0xea,0x6d,0x0d,0xe8,0x56,0x91,0x7e, +0x74,0x59,0x93,0xd5,0x1b,0x32,0x4d,0x59,0xd5,0x42,0x21,0x32,0x7b,0x53,0x77,0x1a, +0x4d,0x2f,0x30,0x16,0xbe,0x0b,0x85,0xc9,0x84,0x11,0x34,0xd2,0x08,0x18,0xed,0x49, +0x86,0x44,0x6c,0x20,0x3b,0x44,0xc3,0x0c,0xd6,0xaa,0x62,0x29,0xd2,0xdb,0x9d,0xae, +0x43,0x70,0x5d,0x76,0x5e,0x68,0x34,0xb5,0xc6,0xf1,0x55,0xf3,0x84,0x40,0xa5,0x25, +0x01,0xd9,0x20,0xf5,0xc0,0x06,0x44,0x22,0x8c,0xe4,0x22,0xc5,0xaf,0xa9,0xf9,0x64, +0xfe,0xe4,0x29,0x83,0x6e,0xa7,0xb3,0x68,0xfc,0xea,0x5e,0x13,0xdd,0x65,0x0d,0xf4, +0xc5,0xce,0x6b,0xff,0xe8,0x5f,0xb9,0xd8,0x7f,0xe9,0xcc,0xce,0x7b,0x57,0x76,0x4e, +0x5f,0xbe,0x5f,0xe5,0xb6,0x30,0x01,0x71,0x2d,0x3c,0x90,0xd2,0x7d,0x90,0xd2,0x15, +0x3a,0x7d,0x1c,0x34,0x0c,0x98,0x9c,0x4e,0x5d,0xed,0x5d,0x3b,0xd5,0x7b,0xe1,0x6f, +0xf7,0xab,0x94,0x2a,0xc8,0x85,0xdb,0x96,0x53,0xc4,0xf2,0x40,0x52,0x6f,0x4d,0x52, +0x6f,0x61,0x41,0x97,0xd9,0x3f,0xdf,0xe9,0x05,0xdd,0xbd,0x8c,0x64,0xcf,0xc6,0x74, +0xe5,0x20,0x54,0xc0,0x65,0x95,0xde,0x56,0xb5,0x13,0xc2,0x82,0x28,0xdd,0xaf,0xe3, +0x5c,0x9a,0xc0,0x28,0x97,0x1e,0x8c,0xf1,0x07,0x63,0xfc,0xee,0x1f,0xe3,0xf2,0xfd, +0x3a,0xc6,0xe5,0x09,0x8c,0x71,0xf9,0xc1,0x18,0x7f,0x30,0xc6,0xef,0xfe,0x31,0x5e, +0xbc,0x5f,0xc7,0x78,0x71,0x02,0x63,0xbc,0xf8,0x60,0x8c,0x3f,0x18,0xe3,0x77,0xff, +0x18,0x2f,0xdd,0xaf,0x63,0xbc,0x34,0x81,0x31,0x5e,0x7a,0x30,0xc6,0x1f,0x8c,0xf1, +0xbb,0x7f,0x8c,0x97,0xef,0xd7,0x31,0x5e,0x9e,0xc0,0x18,0x2f,0x3f,0x18,0xe3,0x0f, +0xc6,0xf8,0xdd,0x3f,0xc6,0x2b,0xf7,0xeb,0x18,0xaf,0x4c,0x60,0x8c,0x57,0xee,0xf1, +0x31,0x4e,0x13,0xec,0x93,0xd0,0xc7,0xaf,0xf6,0xc7,0xee,0xb4,0x71,0x9f,0x3d,0x48, +0x0a,0xb9,0xcd,0xa4,0x90,0xbb,0x22,0x25,0xa4,0x77,0xee,0xed,0x9d,0x97,0xcf,0xf4, +0xde,0xfc,0x72,0xcc,0x7c,0x90,0x11,0x64,0xe3,0x98,0x69,0x38,0x22,0xee,0xb1,0x76, +0xc4,0x8e,0x62,0x8d,0x1a,0x18,0x09,0x12,0x13,0xc7,0xb2,0x68,0x47,0x8e,0x42,0x4d, +0x77,0x22,0xce,0x0b,0xee,0x36,0xc7,0xa2,0x54,0xee,0x9c,0x98,0xf5,0x37,0x33,0x9e, +0x98,0xb1,0x1b,0x96,0x69,0x18,0xb3,0xdc,0xf6,0xc6,0xa6,0xae,0xaa,0x5a,0x7b,0x76, +0x24,0x4b,0xa9,0x5c,0xf8,0x94,0x6f,0x0a,0xe3,0x28,0x4c,0xc7,0x1a,0x03,0x8a,0x41, +0xaa,0x0b,0xbd,0xeb,0xbf,0xee,0x9d,0x3d,0xcf,0x7a,0x66,0xc6,0x55,0xb6,0xc8,0xd8, +0x8e,0xaf,0x80,0xec,0x2e,0xcd,0x75,0x16,0x16,0x0a,0xae,0x62,0x20,0x3f,0x99,0xcb, +0x3b,0xea,0x1e,0xea,0xb8,0x71,0xf5,0x5c,0xff,0xd2,0xfb,0x3b,0xaf,0xfd,0xe3,0xe6, +0x99,0x0b,0x7c,0x1d,0x9b,0x75,0xc7,0xaf,0x45,0xb3,0x2c,0xd3,0xe2,0xea,0x38,0xfe, +0x93,0xff,0xf7,0x59,0x73,0x8f,0xf5,0xf4,0x7f,0xfb,0x61,0x42,0x3d,0x5b,0x93,0xad, +0xe7,0xd4,0xd5,0x98,0x4a,0x26,0x52,0x05,0x80,0x59,0x23,0x35,0x2f,0x15,0x8a,0x51, +0x50,0xd1,0x11,0xe2,0x93,0xe7,0x3d,0x20,0x70,0xd1,0x01,0x81,0x84,0x29,0x4e,0x5c, +0x33,0xbb,0x96,0xd3,0x14,0xc6,0x60,0x41,0x58,0xd2,0xe5,0x6a,0x01,0x24,0x1d,0x8c, +0xaf,0x75,0xbd,0x2d,0x82,0x9e,0x9a,0x29,0xe1,0x7d,0xfc,0xae,0xc9,0x71,0x33,0xbe, +0xf6,0x69,0x7e,0x90,0xe3,0x94,0x71,0x99,0x2a,0x63,0x96,0x86,0x88,0x9a,0xce,0x7e, +0xb6,0xab,0x58,0x5a,0xa2,0x3e,0x8f,0x63,0x90,0xcb,0x10,0x6f,0x6c,0xcf,0x90,0x6e, +0xdb,0xd6,0x9c,0xd9,0x51,0xf3,0xc7,0xad,0x2a,0xdb,0x91,0x4a,0x76,0xe7,0xfa,0x2b, +0x3b,0x57,0xdf,0xf2,0x76,0x6d,0xc4,0xea,0xd9,0x44,0x0e,0x8f,0x35,0x9b,0xec,0xa5, +0xc5,0x14,0x2b,0x18,0x48,0x2d,0xc2,0x0c,0x34,0x30,0x68,0x47,0xce,0x46,0x28,0xb4, +0xf0,0xb7,0xbe,0xa9,0xaf,0xe9,0x75,0x5b,0x33,0xc6,0x54,0xeb,0x48,0x30,0xd2,0xb7, +0xa6,0x6b,0x86,0xea,0x19,0x72,0xe1,0x07,0xfe,0x9d,0x28,0x02,0xe1,0x0a,0x6d,0x12, +0xb3,0x0b,0xd7,0x35,0x87,0x76,0xb5,0x66,0xe0,0x8e,0xce,0xd0,0x5d,0xbd,0xbe,0xa6, +0x7b,0x1b,0xd8,0x47,0xaa,0x6b,0x66,0xdc,0x51,0x75,0xe0,0x51,0xef,0x9a,0x7a,0x8c, +0x75,0x1b,0x8a,0xd1,0x85,0x1b,0x21,0x96,0xe8,0xb1,0xed,0x3b,0xfc,0x67,0x69,0x20, +0x95,0x6d,0x63,0x6b,0x3c,0x8a,0x18,0x0d,0x6c,0xd2,0xe1,0xa8,0x60,0x87,0x10,0xf8, +0xa4,0x8e,0xc4,0xc5,0x93,0xcd,0xf6,0xf7,0x9a,0xeb,0xeb,0x86,0x56,0xaf,0x33,0x2e, +0x8e,0xe7,0x02,0xed,0xc1,0x1d,0x1a,0xc3,0x35,0x3a,0xae,0x6d,0xad,0x9a,0x28,0xa7, +0x0a,0x68,0xdd,0x4d,0x9a,0xd8,0x2e,0xe4,0xc7,0x52,0xb4,0xa3,0xab,0x8e,0xcf,0xb1, +0x8e,0x71,0x2b,0xa8,0x0b,0x10,0xf4,0x78,0x7c,0xe7,0x52,0x50,0x61,0x61,0x65,0xe5, +0xb1,0x47,0x86,0xdb,0xdf,0x41,0x8b,0xdd,0xb4,0x57,0x5b,0x57,0x11,0x71,0x9d,0xe6, +0xb5,0x46,0x2a,0x1b,0xdd,0xd2,0xb8,0x0d,0xcd,0x78,0x21,0x8a,0xee,0x3e,0x65,0x43, +0x5b,0x73,0xf8,0x6d,0xce,0x23,0xe5,0x20,0xd9,0xb6,0x1f,0xa5,0xdb,0x07,0x06,0x79, +0xa3,0x6b,0x03,0x09,0x75,0x6c,0xe2,0x1d,0x18,0xe7,0xa3,0xaa,0x60,0x03,0x64,0xfc, +0x41,0xce,0x53,0x3f,0x74,0x48,0xf3,0x4a,0x60,0x3c,0x91,0x1a,0x26,0x43,0x4c,0x04, +0xf8,0xca,0xc7,0x94,0xaa,0xb1,0xba,0x66,0x12,0x7c,0xde,0x33,0x0b,0x3b,0x50,0xe7, +0xa6,0x69,0xa9,0x13,0xd0,0x8c,0x8c,0xd5,0x3e,0xc2,0x09,0xb3,0x3b,0xc0,0xdb,0xbb, +0xfc,0xcb,0x9d,0x77,0x4e,0x4f,0x86,0xe9,0x7b,0x26,0xd2,0x52,0x54,0xdd,0xf4,0xc3, +0x15,0xa1,0x9b,0xbd,0xc4,0x2e,0xb8,0x08,0x86,0xdb,0x3e,0xa5,0x33,0x96,0xde,0xe6, +0xa7,0x15,0x5a,0xbd,0xc0,0xf7,0xa6,0xd2,0x11,0x06,0x88,0xad,0xd7,0x59,0xf0,0x69, +0x3c,0x92,0xf0,0x1f,0x9b,0x9d,0x5c,0x1f,0xdb,0x9f,0xb5,0x24,0xe1,0x56,0x82,0x46, +0x2e,0x09,0xae,0x74,0xf6,0xae,0x9d,0xda,0xf9,0xf9,0xc7,0x3b,0x3f,0xfb,0x62,0xdc, +0x50,0xc7,0x38,0xda,0x3a,0xd4,0x47,0x36,0xdb,0x29,0xc4,0x75,0xcd,0xbe,0xf5,0x98, +0x3d,0x7c,0x53,0xd2,0x1e,0xba,0xcd,0xc3,0xb4,0x6f,0x7d,0x87,0x59,0x26,0x2c,0x36, +0x75,0xfb,0x7d,0xb8,0xfb,0xd5,0xef,0x7e,0x02,0x93,0xe0,0x84,0x7a,0x70,0xb8,0x43, +0x82,0x16,0xec,0x6d,0xdb,0xd1,0xcc,0x02,0xb6,0x39,0x4b,0x7f,0x15,0xf4,0x48,0xf8, +0x54,0xa0,0xb8,0x50,0x35,0xeb,0x2d,0xb7,0x03,0x38,0xdb,0xb2,0xbb,0xda,0xd2,0x87, +0x88,0xcb,0x60,0x84,0x9b,0x0f,0x70,0xd3,0xed,0x6f,0x9a,0x4a,0x86,0x49,0x4d,0xff, +0xc2,0xc5,0x1b,0x57,0xde,0x4b,0xe2,0x49,0x62,0x28,0xf9,0xee,0xf6,0xd3,0x4e,0xb2, +0xf8,0xf4,0xb7,0xee,0xa6,0x1d,0xfa,0xd1,0x91,0x23,0x64,0x1f,0xbd,0xb4,0x09,0x39, +0x63,0x77,0xce,0x18,0x18,0xd7,0x7c,0xa2,0x23,0xa0,0xf5,0xac,0xe3,0xd4,0x15,0x55, +0xb5,0x26,0x36,0xbd,0x73,0x18,0x7b,0x6f,0xfd,0xa5,0xf7,0xdf,0xa7,0xee,0x39,0x6b, +0x6a,0xef,0x0c,0xa4,0x07,0x38,0x4e,0x94,0x81,0x0c,0xe3,0xce,0x9f,0x2e,0xf7,0x2e, +0xfc,0xcf,0x7d,0xc0,0xc0,0xae,0x3d,0x61,0x01,0xa4,0x08,0x77,0x5e,0xfb,0xb0,0xff, +0xe2,0x67,0xbd,0x8b,0xe7,0xef,0x07,0x11,0xdc,0x54,0x27,0x2c,0x81,0x9b,0x13,0x32, +0xcd,0xef,0xba,0x59,0x9f,0x36,0xef,0xc1,0xac,0x7f,0xef,0xcf,0xfa,0x6c,0xb1,0xe5, +0xc6,0xe7,0xe7,0xfa,0xe7,0xde,0x7f,0x60,0x01,0xdc,0x8e,0xf6,0x58,0xb3,0xb4,0x67, +0x27,0xab,0x3e,0x18,0x46,0xd6,0x37,0x37,0x7f,0xff,0x0a,0xf4,0xd3,0x37,0xd7,0x5e, +0xdc,0xf9,0xe0,0xd5,0x6f,0xae,0x9d,0xfd,0x2e,0xaa,0x13,0x6c,0xee,0x77,0x56,0xa7, +0x14,0xc7,0xd1,0x29,0xda,0x86,0xd6,0x76,0x92,0x55,0x4a,0x1c,0x55,0x6c,0x4d,0x16, +0x79,0xe8,0xe0,0x39,0x40,0x75,0x47,0xb1,0x8f,0xd7,0x9d,0xd5,0x90,0xdb,0xac,0x2a, +0x8e,0xc2,0x16,0xf5,0xbd,0xb1,0x12,0x3c,0x49,0xec,0xab,0xa1,0x4b,0x7f,0x73,0x4e, +0x73,0xa1,0x7f,0xe9,0xd3,0x9b,0x97,0xfe,0x3e,0x97,0x87,0xcb,0x11,0x80,0xde,0xd9, +0xd9,0xa3,0x00,0xbd,0x5d,0xb0,0xa3,0x01,0xbf,0xfc,0x68,0xe7,0xe5,0xcb,0xe3,0x54, +0xfd,0xeb,0xf3,0x37,0xae,0xbf,0x35,0x04,0x70,0xc8,0x12,0xe7,0x28,0x0e,0xa8,0x0b, +0x05,0x59,0x94,0xca,0xa4,0x30,0x3d,0x23,0x49,0x23,0x56,0x54,0x11,0x7a,0x1c,0x98, +0xc2,0x84,0x60,0xe6,0x94,0x85,0xde,0x8b,0xef,0xdc,0xfc,0xaf,0xf7,0xf0,0xec,0x94, +0x21,0xf0,0xb7,0xd5,0x7c,0xb9,0x20,0x17,0x44,0xca,0x83,0xb9,0x55,0x6b,0x81,0xb2, +0x61,0xa6,0x50,0xbd,0x83,0x9c,0xa8,0xec,0x3f,0x27,0xe2,0xd7,0xb7,0xf7,0x34,0xee, +0x71,0x69,0x52,0xa4,0x53,0xfd,0xfd,0x61,0x56,0xf4,0x3f,0xbb,0xda,0x3b,0xf7,0x8e, +0x77,0x26,0xdc,0x2d,0xdb,0x12,0x51,0xb6,0x7d,0xfb,0x66,0x45,0x68,0x25,0x56,0xd8, +0xcb,0x5a,0x67,0x60,0x29,0x50,0xf5,0xbc,0xa9,0x69,0xc7,0x55,0x65,0x2b,0x58,0xfb, +0x1c,0x2b,0x92,0x39,0xd4,0x22,0x99,0xc0,0x0a,0x6c,0xc1,0x5b,0x82,0x0d,0xd1,0xf8, +0x60,0x19,0xf6,0x76,0x96,0x61,0xc3,0xdd,0x3d,0x74,0x29,0xb6,0xff,0xdb,0xcb,0xbd, +0x8b,0x7f,0xf0,0x66,0xb6,0x71,0x97,0x64,0x07,0x6b,0xf9,0x16,0xd6,0x60,0x59,0xab, +0x13,0x4f,0x4b,0xa6,0xc6,0x06,0x08,0x19,0x15,0x31,0x7a,0xc3,0x86,0x90,0xa6,0xce, +0xa7,0x1c,0xab,0xab,0xa5,0xc6,0xec,0xed,0xfe,0xa5,0x77,0x18,0x7b,0xc6,0xe9,0xc9, +0x91,0x49,0xdf,0x63,0x13,0x5d,0x85,0xbe,0xb9,0x7c,0xa1,0xf7,0xde,0x1f,0x27,0x89, +0x54,0xc2,0x0e,0x7f,0xbb,0xff,0xd6,0xdb,0x37,0x3e,0x3f,0x35,0x49,0xbc,0xb2,0x8f, +0xf7,0xca,0x4b,0x93,0xc4,0x5b,0x0c,0xe8,0x3d,0x3b,0x49,0xbc,0x25,0x0f,0x6f,0xef, +0xcd,0x37,0x27,0x89,0xb7,0x1c,0xf0,0xe1,0xb5,0x49,0xe2,0xad,0xf8,0xf4,0xbe,0xf0, +0xf1,0x24,0xf1,0x4e,0x7b,0x78,0xfb,0x97,0xde,0x1f,0x67,0xc7,0xc2,0x04,0xb2,0x1e, +0xee,0xcc,0xa4,0x37,0x56,0x92,0xd1,0x64,0x12,0x88,0xfc,0xf9,0xd5,0x3e,0xee,0xd4, +0x75,0xf5,0x44,0x68,0x3e,0xf3,0x9e,0x3d,0x98,0xcf,0x6e,0x7b,0x3e,0xf3,0xd9,0x3b, +0x7c,0x3e,0x73,0x5d,0xaf,0xbd,0xcf,0x64,0x1e,0xfe,0xfd,0x98,0xc9,0xa8,0x90,0x98, +0x1d,0xcd,0xa2,0x8b,0xcb,0x76,0x7d,0xac,0xd3,0xf9,0xee,0xd4,0x60,0x9b,0x5c,0x68, +0x4a,0xc5,0xaf,0x5c,0x04,0x03,0x82,0xde,0x4e,0x2a,0x34,0x65,0x2b,0xad,0x8e,0xa1, +0x49,0x98,0x57,0x7b,0xe7,0x56,0x04,0x26,0x18,0xb5,0xd3,0x5b,0x1a,0xa6,0x8d,0x6a, +0x1d,0x9c,0x85,0x03,0x1e,0xd1,0xe7,0xdf,0x6d,0x1e,0xd1,0xe4,0x04,0x16,0x64,0x99, +0x19,0x73,0x63,0x0d,0x9f,0xf6,0x00,0x9a,0xc8,0x5c,0x5b,0x23,0xb7,0xb8,0xed,0xe9, +0x76,0x36,0x3d,0x71,0xca,0x61,0xe8,0xbe,0xaa,0xe4,0xed,0x4c,0x5e,0xd9,0xe4,0x8d, +0x4c,0xa3,0x36,0x2a,0x0d,0xeb,0xc9,0x91,0xbc,0xbc,0x67,0x82,0xb1,0xfe,0xd7,0x46, +0x0e,0xaa,0xaa,0x7f,0xb0,0x78,0x3a,0x33,0x7b,0xcf,0x05,0x64,0xc7,0x08,0xcd,0x94, +0xee,0xbf,0xd0,0x4c,0xf4,0x7c,0xf8,0xbd,0x45,0x67,0x82,0x58,0x33,0xfd,0xdc,0x5b, +0x9d,0x8a,0x4a,0x9d,0x06,0xad,0xed,0x3b,0x14,0x73,0xa6,0x0d,0xd8,0xf9,0xeb,0xd5, +0xde,0xef,0x7e,0x35,0x4e,0xf8,0xf7,0xec,0x07,0xbb,0xef,0xbe,0x34,0x32,0x08,0x7c, +0xbb,0xd1,0xe2,0xdb,0x0e,0x12,0x96,0xee,0xd3,0x20,0x21,0xeb,0x4e,0x8f,0xed,0x0f, +0x42,0x85,0xbe,0xd7,0x74,0x97,0x46,0x06,0x99,0x2e,0xae,0x23,0x10,0x9b,0x56,0xf9, +0x07,0x0f,0x3c,0xab,0xdb,0xf1,0xac,0x42,0xac,0x1d,0xee,0x58,0xc1,0xa0,0x79,0xf5, +0x93,0xdd,0x0f,0xfe,0xd0,0xbb,0xf0,0x4a,0xff,0x37,0x5f,0xf4,0xae,0x5d,0xd8,0xa3, +0x93,0xc5,0x57,0xf5,0xdd,0x8d,0x16,0xf6,0xce,0xbf,0x9e,0xef,0xbd,0xf7,0x46,0xef, +0xcc,0xd5,0x3b,0x1b,0x2e,0x04,0xa3,0xff,0xe6,0xeb,0x5f,0x41,0x27,0x7d,0xa7,0xc2, +0x38,0x77,0x97,0x42,0x92,0x3c,0x85,0xc4,0x2c,0x10,0x74,0xdd,0xec,0x3a,0x7e,0x14, +0xc3,0x66,0x6e,0x1c,0xcb,0x23,0x8f,0x7f,0xf7,0x40,0x4d,0xdd,0x8e,0x9a,0x4a,0x62, +0xf8,0x50,0x97,0x38,0xb9,0x37,0xb8,0xfc,0x79,0x18,0xa8,0xfd,0x3f,0xbf,0xdb,0x7f, +0xfd,0x2f,0x7b,0xd4,0x66,0x09,0x14,0xed,0x5b,0xf0,0x28,0xa1,0x21,0x6c,0x64,0xe1, +0xd7,0x92,0x5d,0x4b,0x4b,0x78,0x30,0xf6,0xf7,0x65,0xec,0x8b,0xfe,0xe0,0x67,0x46, +0x1b,0x67,0x8d,0xf0,0x0f,0x1e,0x0c,0xf3,0xdb,0x19,0xe6,0x21,0xd6,0x0e,0xb7,0x46, +0xa8,0x8b,0xb5,0xf3,0xc6,0x2f,0x6e,0x29,0xde,0xcb,0xd7,0xb3,0x6f,0x23,0x76,0xd5, +0x69,0xbb,0xd1,0x91,0x60,0x94,0x4e,0x66,0x70,0xde,0x4b,0x01,0x1d,0x45,0x55,0x7f, +0x40,0x9f,0x3d,0x8a,0xfe,0xfa,0x7e,0x87,0x74,0xa8,0x7b,0x77,0xe7,0x43,0x3a,0xe5, +0x38,0xef,0x99,0x9d,0x5e,0x33,0x89,0x34,0xbb,0x7d,0x8f,0x6f,0xec,0x9c,0x7d,0xb1, +0xff,0xd6,0x9f,0x47,0x87,0x2a,0xa8,0x5c,0xe3,0xe7,0xec,0xea,0xe0,0xfa,0xda,0x34, +0xea,0xba,0x21,0xe5,0x0a,0xb9,0x62,0x71,0xbf,0x72,0xdd,0x1e,0x7b,0x62,0x74,0xb2, +0x55,0x40,0x95,0x0e,0x5c,0x94,0x6a,0x72,0x4e,0xaa,0x54,0x81,0xa6,0x9c,0x2c,0xcb, +0xfb,0x95,0x84,0xd6,0xfb,0xf8,0xe2,0xce,0xf5,0x57,0xfa,0x2f,0xff,0x91,0xe6,0xd8, +0x8f,0x4f,0x61,0x8b,0x7e,0x30,0x51,0x2e,0x97,0x73,0xde,0x7f,0x85,0xfd,0x22,0x11, +0xe8,0x63,0x69,0x8d,0x63,0x13,0xb7,0x0e,0x93,0xcf,0x26,0x26,0xdf,0x70,0x3c,0x94, +0xf6,0x8d,0x83,0x17,0x2f,0xf7,0xce,0x7d,0xe8,0x67,0x73,0x8e,0x43,0x64,0xb7,0xc3, +0x4c,0x69,0xa9,0x30,0x23,0x15,0x67,0x4a,0xc5,0x49,0xe5,0xd5,0xdd,0x82,0x32,0xf4, +0xcc,0x2d,0x55,0xb7,0x3b,0x86,0xb2,0x35,0x43,0xd6,0x0c,0xed,0xc4,0x2c,0x51,0x0c, +0x7d,0xbd,0x2d,0xa2,0x6f,0x66,0xcf,0x90,0x06,0x0c,0x77,0xcd,0x9a,0xa5,0xaf,0xc4, +0x4d,0x4b,0xe9,0xcc,0x10,0xfc,0x9d,0x1d,0x7e,0xbc,0x9f,0x8b,0x78,0xcd,0x6c,0x3b, +0xa2,0xad,0x9f,0xd4,0x66,0x0a,0xb9,0xaa,0xd6,0x9a,0xc5,0x43,0xe7,0x2e,0xee,0xbc, +0x77,0xe5,0x9b,0x6b,0x6f,0x30,0x3f,0xcf,0xfb,0xd4,0x10,0x7a,0xe5,0x65,0xfb,0x9b, +0x6b,0x2f,0xf9,0x5f,0x1d,0xba,0x79,0xe9,0xa3,0x9d,0x9f,0x9f,0x2e,0x82,0x59,0xdb, +0xbb,0x70,0x19,0xd7,0x5d,0x2e,0x5e,0x66,0x3b,0x7d,0x6f,0x9e,0x39,0xdf,0xff,0xcd, +0x5f,0x6e,0xbe,0x70,0x1e,0x44,0x03,0x0a,0x48,0x05,0xdb,0x2f,0x73,0xe3,0xab,0xff, +0xee,0xbf,0x74,0x9a,0x95,0xec,0x9f,0xfe,0x7d,0xef,0xbd,0xf3,0xbd,0x33,0x57,0x7a, +0x2f,0xff,0x6c,0xc8,0x97,0x6f,0x93,0x38,0xc7,0x3e,0x80,0x47,0xcf,0x10,0xc3,0x59, +0x63,0xe8,0x1a,0xc4,0x1e,0x4f,0x0e,0x1c,0xd3,0xde,0x49,0x3a,0x41,0x10,0xf5,0xef, +0x50,0xcb,0x66,0x98,0x45,0x93,0x6c,0xc9,0xd0,0x0f,0xab,0xb3,0x55,0x2e,0x2f,0x37, +0x55,0xf6,0x0e,0xe2,0x27,0x03,0x1f,0x58,0xf7,0x4b,0x29,0x83,0x13,0x1e,0x33,0x1c, +0x6c,0x47,0x64,0x2b,0xa7,0x3c,0x36,0x65,0xf2,0xb9,0xe1,0x95,0xb1,0x66,0xad,0x51, +0x41,0xdf,0x6f,0x2b,0x94,0xdb,0x7b,0xeb,0xc3,0x9d,0x2b,0x5f,0x79,0x9f,0xd3,0x7c, +0xb0,0x77,0x64,0x8f,0x7b,0x47,0x4c,0x47,0xa9,0x77,0x2d,0x23,0xc8,0x63,0x99,0xd4, +0x1a,0xb4,0x87,0x78,0xe1,0xf0,0x91,0x83,0x64,0x12,0xdb,0x48,0xef,0x4e,0xbb,0xf6, +0xb0,0xa3,0xac,0x38,0x8a,0x45,0x2d,0x5a,0x36,0x6a,0xe9,0x0e,0x12,0x11,0x9a,0x2f, +0xd2,0x8f,0xb3,0xde,0x1b,0x2b,0x97,0x3e,0xbf,0x3c,0x99,0xb0,0xd9,0xf7,0x83,0x79, +0x2a,0x3b,0x96,0xb9,0x8e,0x11,0x07,0x4f,0x6a,0xbd,0xfb,0x78,0xdd,0x7e,0xdf,0x28, +0x20,0xb0,0x98,0x51,0xbc,0xbf,0x25,0x05,0xe4,0xf6,0xd7,0x0f,0xe1,0x5a,0xf0,0xb5, +0x51,0x1e,0x9e,0xe4,0xd7,0x74,0x43,0xfb,0x71,0x87,0x7e,0xd9,0x98,0xb4,0x34,0xa7, +0x69,0xe2,0x49,0x86,0x26,0x9e,0x9a,0xa4,0xb5,0x1b,0x4c,0x9a,0x5b,0x5d,0xc3,0xd1, +0x3b,0x20,0xbd,0x74,0x68,0x51,0x17,0xe2,0xde,0xd2,0x63,0xd8,0xc6,0x40,0x8f,0xb1, +0x3b,0xf7,0xb8,0x0d,0xef,0xfe,0xbb,0xa6,0x6d,0x7e,0xe8,0x77,0x2b,0x55,0x39,0x63, +0x6a,0x91,0xa8,0x6a,0x1a,0xc5,0x9a,0x1b,0x9f,0x9f,0xbb,0x71,0xed,0x1d,0x82,0xba, +0xbb,0xff,0x9b,0x33,0x37,0xae,0x7e,0x3a,0x79,0x2d,0xd3,0xa5,0x8d,0xb8,0xa3,0x8a, +0x66,0xfa,0x9e,0x56,0x34,0xe1,0x2f,0x55,0xdf,0xb2,0xa2,0xb1,0xb7,0x6c,0xd1,0x30, +0xd7,0x6f,0x61,0xad,0xba,0x63,0xb9,0xe9,0x17,0x5b,0x76,0xdd,0xc0,0x6f,0x67,0xcf, +0xe5,0xe1,0xd1,0xdd,0x36,0x46,0xfe,0x55,0x73,0x56,0xb6,0xec,0x65,0x73,0x7d,0x9f, +0x83,0x4c,0xbd,0x17,0x3f,0x03,0x2f,0x6a,0x9f,0x36,0x72,0x86,0x3e,0x2d,0x9e,0xc7, +0x6f,0x8b,0xc3,0x4d,0x00,0xc6,0x5c,0x0d,0x97,0x70,0x7a,0x7e,0x1c,0x4a,0xaf,0xdd, +0x04,0x11,0x75,0x4c,0xc5,0x76,0x92,0xf4,0x02,0x0c,0xa6,0x98,0xd6,0x5a,0x8a,0x6e, +0x6b,0xaa,0x10,0x66,0xe8,0x02,0x7e,0x43,0x9e,0x1c,0x41,0x6c,0x7e,0x6b,0x98,0x17, +0x13,0x1c,0x5a,0x87,0x95,0xd2,0xfa,0x40,0xb4,0x69,0xca,0x61,0xa8,0x5e,0xcc,0xaa, +0x6b,0x2b,0x8d,0xe3,0xab,0x8a,0xc5,0xc6,0x90,0x7b,0xe3,0x31,0x35,0x2a,0x0d,0xde, +0x7b,0x90,0x7a,0x2a,0x85,0x21,0x1e,0x0c,0x9e,0x55,0x1f,0x80,0xbb,0x99,0x7f,0x11, +0xfa,0xb9,0x3e,0xe0,0x18,0x17,0x38,0x76,0x73,0xaa,0xb6,0x66,0xf3,0x5f,0x65,0x5f, +0x67,0x11,0x10,0x74,0x11,0x15,0x7a,0xcc,0x6f,0x5d,0x31,0x14,0x6b,0xe0,0x14,0xfe, +0xb9,0x8e,0xe2,0x34,0x09,0x40,0x1e,0x2a,0x90,0x42,0x53,0x2e,0x6d,0xc8,0xa5,0xa5, +0xc2,0x49,0xb0,0x7a,0x75,0xc3,0x98,0x17,0xda,0x66,0x5b,0x1b,0xf0,0x2d,0x83,0x22, +0xb2,0x4c,0xca,0xb9,0x69,0xd9,0x10,0x4b,0xb9,0x8a,0x58,0xcc,0x55,0x2b,0xa2,0x94, +0x93,0x6b,0x44,0xca,0x95,0x8b,0x04,0x1e,0x11,0x7c,0xb4,0xec,0x02,0x9d,0x3c,0x34, +0x9d,0xab,0x56,0xe1,0x51,0xb1,0xb6,0x5c,0x81,0x77,0x12,0xbc,0x23,0xf4,0x95,0x64, +0xf0,0xa5,0xca,0x35,0xc4,0x54,0x3e,0x79,0x48,0x92,0x73,0x65,0x52,0x5d,0x92,0xa4, +0x8d,0x8a,0x51,0xca,0x4d,0x97,0x89,0x0c,0x8f,0xe1,0x2f,0xd6,0x51,0x14,0x4b,0xa2, +0x9c,0x2b,0x4e,0x1f,0xad,0x22,0x1c,0x29,0x35,0x80,0x82,0xda,0x34,0x29,0x88,0x35, +0xc0,0x50,0x28,0xc2,0x9f,0x9a,0x0d,0x17,0x32,0xa9,0xe1,0xff,0x1a,0xec,0x25,0xa9, +0x89,0xf8,0x12,0xfe,0xd4,0x6c,0x91,0x81,0xe1,0xff,0x4e,0xb6,0x0a,0x44,0xaa,0x34, +0xb0,0x56,0xc4,0x30,0x0d,0x17,0x52,0x11,0xfe,0x4c,0xdb,0xec,0x82,0x4c,0xe3,0x7f, +0x04,0x6f,0x08,0xde,0xb0,0x0b,0x7c,0x76,0x32,0xc4,0x9a,0xb9,0xfc,0x7a,0x12,0xff, +0x55,0x35,0x99,0xed,0x12,0xb4,0xbc,0xd8,0x14,0x2b,0x1b,0x95,0xa6,0x28,0x6f,0x88, +0x95,0xa5,0xf2,0x86,0x28,0x37,0x2b,0x47,0xcb,0x4d,0x19,0x1e,0x55,0x36,0xe4,0x93, +0x43,0x3a,0x60,0xac,0x3e,0x4b,0x26,0x8c,0x7e,0x7d,0x20,0x11,0x79,0x39,0x5b,0x5c, +0x04,0xa6,0xd4,0xb2,0x45,0x52,0xcc,0xe2,0x05,0xfc,0x29,0x1f,0x95,0x6a,0x07,0xe5, +0xac,0x0c,0xdc,0x2c,0x64,0x0b,0xa4,0x9c,0x95,0xa5,0xa5,0xd0,0x13,0x59,0xca,0x4a, +0xb5,0xa3,0x92,0xbc,0x84,0xbf,0xb5,0xa5,0xf2,0xd1,0xf2,0x92,0x24,0x1f,0x2d,0x2e, +0x95,0x0f,0x49,0xd3,0xb9,0xe9,0x6a,0xb6,0xb4,0x08,0x7f,0x2b,0x52,0xb6,0x44,0xe0, +0x6f,0xa9,0x98,0x85,0x7e,0x98,0xc6,0x4b,0xbc,0x92,0x97,0xa5,0x4a,0xae,0x50,0xcd, +0x96,0x73,0x25,0x69,0x59,0xaa,0xe6,0xca,0xd5,0xec,0x74,0xae,0x06,0x97,0xb5,0x5c, +0x35,0x5b,0xc9,0x4d,0x2f,0xca,0x85,0x5c,0xa1,0x02,0x57,0xa5,0x12,0x71,0x2f,0x09, +0x7d,0x87,0x62,0x81,0x05,0xe4,0x32,0x62,0x59,0x84,0x2b,0x49,0xf6,0x31,0xd7,0xca, +0xac,0x32,0xac,0xfc,0x90,0x54,0x06,0xa9,0x01,0x0c,0x92,0xbc,0x5c,0xcd,0x4a,0xc5, +0x1c,0xb4,0xa7,0xb2,0x24,0x15,0x72,0x50,0x1c,0xc4,0x73,0x3a,0x5b,0xcd,0x55,0x80, +0x0a,0x1f,0xe8,0x3f,0x05,0x32,0x79,0xe6,0x13,0x97,0xfb,0x54,0xc3,0x4f,0x74,0x3c, +0x82,0x60,0x96,0x17,0x81,0x7a,0x59,0x22,0x65,0x68,0x32,0x01,0x9e,0xd5,0xf0,0x6f, +0x0d,0x98,0x4e,0xb0,0x95,0x20,0xe8,0x39,0x99,0x48,0x52,0x6e,0x1a,0xee,0xe1,0x4e, +0xce,0x95,0x2a,0x47,0xe1,0x56,0x2e,0x61,0xb1,0x8a,0x84,0x40,0x15,0x28,0x52,0x21, +0x35,0xec,0x6f,0xfc,0xbb,0x08,0x3f,0xd0,0x3d,0xc0,0x42,0x18,0xd1,0x15,0x02,0x1c, +0x2f,0x92,0xca,0x8a,0x54,0x70,0x1f,0x16,0x10,0xa2,0xe0,0x82,0x17,0x60,0x70,0x7b, +0x28,0x24,0x42,0xf1,0x1e,0xa5,0x75,0x2c,0xc2,0x7b,0xb7,0xda,0x1a,0x23,0x04,0x86, +0xe5,0x62,0xcd,0x25,0xb0,0x80,0xbf,0x65,0x44,0x5c,0x3e,0x24,0x17,0xb0,0x6b,0xa1, +0x15,0x35,0x1c,0xb3,0xb2,0x94,0x2b,0xca,0xd8,0xc7,0xf0,0x0b,0xd7,0xf0,0x04,0xc5, +0x82,0xc8,0x20,0x5e,0xc5,0x45,0xc0,0x5c,0x81,0xc7,0x32,0x36,0x43,0xae,0xe0,0xfb, +0x2a,0x36,0x09,0x2f,0xca,0xd3,0xcb,0x55,0x2a,0x55,0xf0,0x37,0x37,0x5d,0xc2,0x66, +0x57,0x16,0xab,0xb9,0x5a,0x11,0xaf,0x80,0xc6,0x1a,0x72,0x01,0x58,0x51,0x85,0x2b, +0xc6,0x94,0xea,0x52,0x2d,0x37,0xbd,0x0c,0xa5,0xa5,0xea,0x51,0x68,0x91,0x4c,0xaa, +0xb9,0x12,0x63,0x10,0x28,0x21,0x24,0xad,0xba,0x22,0x95,0xdc,0x87,0x25,0x02,0xb2, +0x5d,0xcc,0x95,0xa6,0x97,0x19,0xaf,0xe1,0xba,0x82,0x42,0x8a,0x1c,0x05,0x51,0xac, +0x21,0xf1,0x95,0x2a,0xa2,0x05,0x6d,0x23,0xa3,0x76,0xc9,0x95,0x2b,0xf4,0x62,0x3a, +0x27,0x95,0x8e,0x62,0xfb,0x68,0x3b,0x97,0x4a,0x8b,0x72,0xae,0x06,0x4a,0x10,0xfe, +0x47,0xff,0x22,0xb7,0x16,0x65,0xc4,0x07,0xec,0xc3,0x47,0x50,0x15,0x32,0x7e,0xa9, +0x0a,0x2f,0x96,0xe1,0x0a,0x7f,0x4a,0x4b,0x72,0x61,0x19,0x91,0x01,0x13,0xe0,0x39, +0xde,0x22,0x35,0x35,0xd0,0xb4,0x30,0x26,0x10,0x7c,0x11,0x38,0x00,0x14,0x43,0x61, +0x99,0x22,0x2b,0xd4,0x18,0x97,0x8e,0xc2,0x1b,0xb7,0x2a,0x89,0xd6,0x80,0x34,0x45, +0x65,0x3c,0x59,0x5b,0x38,0x96,0xd2,0xb6,0x8d,0x98,0xdd,0x0f,0xb7,0x27,0xb3,0x32, +0xea,0x5d,0xe0,0x5b,0x61,0xda,0x00,0x9d,0x5e,0x46,0xc5,0x5e,0x96,0x50,0x3b,0xc3, +0x7f,0x0d,0x10,0x99,0x12,0x28,0xfc,0x5a,0x09,0xc9,0xae,0x82,0xd6,0x96,0x50,0x13, +0x4f,0x4b,0x22,0xb0,0xb4,0xb8,0x24,0x4d,0x1f,0x2d,0x35,0xc5,0xe9,0xa3,0xf2,0x52, +0x75,0x03,0xb8,0xb1,0x01,0x80,0xb5,0x26,0x88,0x99,0x34,0xbd,0x08,0xbf,0x65,0x10, +0xd1,0x9a,0x8c,0xe2,0x05,0xfa,0xa2,0x86,0x33,0x08,0x8a,0x65,0xae,0x08,0x1d,0x4a, +0x55,0x43,0x01,0xa5,0x0a,0x64,0x04,0xde,0x49,0x28,0x8a,0x20,0xb5,0x55,0xd0,0xc1, +0x8d,0xdc,0x34,0xf0,0x2e,0x57,0xc1,0x1f,0xb8,0x2a,0x62,0x95,0x58,0x39,0xce,0x4d, +0x15,0x43,0x2c,0x23,0x3b,0xe1,0x87,0xf6,0x47,0xcd,0x28,0x8b,0x65,0x42,0xbb,0x0b, +0x7f,0x72,0xd3,0x15,0xa0,0xbe,0x50,0x82,0x49,0x09,0xc5,0x54,0x2a,0x00,0x3a,0x94, +0x29,0x59,0x6e,0xca,0x30,0xc9,0x81,0x6d,0x5e,0x6c,0xe2,0x54,0xb6,0x0c,0x42,0x43, +0x9f,0x41,0x83,0x60,0x3e,0x93,0x4f,0xb6,0x44,0x2a,0xcb,0xd3,0x00,0x54,0x91,0xe1, +0x61,0xb1,0x48,0xe5,0x09,0x88,0x9f,0x6e,0xc2,0x84,0x23,0x97,0xc6,0x9d,0x6a,0x2c, +0x6d,0xd5,0x34,0x9d,0x09,0x77,0x10,0x2a,0x6d,0xe0,0x7c,0x96,0x8e,0x23,0xf8,0x93, +0xa3,0x63,0x0b,0x15,0x71,0x11,0x55,0xf2,0x74,0xb6,0x96,0xa3,0x0a,0x79,0x3a,0x0b, +0x60,0x65,0xf6,0x0e,0x7f,0x50,0xa7,0x80,0x96,0xa5,0x43,0x0c,0xe6,0xfd,0x2c,0x80, +0xd0,0xee,0xa8,0xe1,0xb3,0xda,0x32,0xf0,0xab,0x84,0x70,0x30,0x5e,0x80,0x79,0x59, +0xd4,0xda,0xa8,0x64,0x6a,0xf8,0x8c,0x0d,0xca,0x2c,0xfe,0xa0,0x3a,0x2f,0xa3,0xae, +0xae,0x11,0x76,0x55,0x40,0x38,0x7c,0x0b,0x3a,0x1d,0xab,0x90,0xb2,0xd4,0x9e,0x00, +0x65,0x8e,0xf3,0x81,0x9c,0x05,0x8d,0x06,0x2a,0x68,0x79,0x1a,0xa6,0x05,0x18,0x96, +0x72,0x16,0x6e,0x8e,0x96,0x0e,0x01,0xb1,0x8c,0xa8,0x22,0xd2,0x89,0x9d,0x06,0xf7, +0xa0,0x27,0xa1,0x38,0x90,0x80,0x26,0x09,0x36,0x63,0xb1,0x8c,0x35,0x40,0x2f,0xc0, +0x8b,0x1a,0x36,0xa7,0x04,0x12,0x52,0x65,0x74,0x54,0xb1,0x04,0x68,0x2c,0x10,0x1f, +0x4a,0xa3,0x04,0x82,0x43,0x1b,0x5a,0x5a,0xa6,0x2d,0x2a,0x2d,0x62,0x63,0x01,0x9e, +0xb6,0xa5,0x44,0xbc,0x1a,0xff,0x73,0x5c,0x33,0x81,0x25,0x2a,0x58,0x66,0x87,0x65, +0x2b,0x24,0xf6,0x08,0xca,0xae,0x51,0x06,0x8d,0x09,0xc2,0xb7,0x8f,0xd6,0x41,0xc3, +0x30,0xbb,0x2a,0x25,0x85,0x86,0x5d,0x26,0x2a,0x53,0x35,0x1c,0x86,0x12,0xea,0x2b, +0xec,0xde,0x0a,0x4e,0x55,0xe5,0x1a,0x6a,0x81,0x0a,0xd5,0x78,0xa0,0x0a,0x71,0x54, +0x4a,0x04,0xb9,0x88,0x7d,0x01,0x8f,0xcb,0xee,0xc8,0x45,0x55,0x50,0x44,0x55,0x5c, +0xac,0x80,0xcd,0x81,0xe2,0x24,0xe1,0xdf,0x52,0xa3,0x80,0x7d,0x8a,0x7a,0x13,0x06, +0x32,0x4e,0x54,0x95,0xa6,0x54,0x6c,0xc8,0x30,0x26,0xe1,0x75,0x19,0x06,0x98,0x5c, +0x42,0x86,0x81,0x89,0x07,0x10,0xa8,0x65,0x0a,0x65,0x18,0x69,0xd3,0xa8,0x54,0x2a, +0x78,0x55,0xab,0xc0,0xb0,0x05,0xd6,0x16,0x61,0x8c,0x23,0xa0,0x58,0x6e,0x16,0x8f, +0xd6,0x9a,0xa5,0x8d,0x52,0xb3,0x38,0xee,0xf0,0x63,0x8b,0x31,0xc9,0xcd,0x06,0xf4, +0x72,0x53,0x2c,0x6f,0x94,0x9b,0x60,0xe5,0xa1,0x8d,0x0b,0x02,0x0b,0x9a,0x0b,0xd4, +0xf8,0x12,0x58,0x7a,0x4b,0xe5,0x86,0x48,0x15,0x73,0x01,0x55,0x1e,0x0c,0x11,0xfa, +0x87,0xc8,0xcb,0xa0,0x8a,0x6a,0xd0,0x3c,0x78,0x87,0xd3,0x2c,0x9d,0x2f,0x9a,0xd0, +0x60,0xb8,0x87,0xa6,0xc9,0x22,0x2a,0x74,0x51,0x3e,0x5a,0x6e,0x60,0x39,0x09,0x6e, +0x45,0x19,0xff,0xd7,0x14,0xa5,0xa3,0x12,0x68,0xa0,0x93,0x2d,0x28,0x5f,0x05,0x53, +0xac,0x0a,0x85,0x36,0x24,0x69,0x1f,0x45,0xa6,0xa9,0x19,0x9d,0x09,0x2b,0x1f,0x22, +0x2f,0x82,0xc1,0x57,0xa5,0xad,0x76,0x2f,0x24,0x19,0x8c,0x7b,0xb8,0x92,0x0a,0xfe, +0xff,0x45,0xf7,0x81,0x28,0x15,0x56,0x50,0x7d,0xc8,0x14,0x8c,0x40,0xdb,0x25,0xaa, +0x43,0x65,0x34,0xaa,0x65,0x30,0xa6,0x5b,0xd0,0xef,0x60,0xbc,0x83,0x12,0x36,0x80, +0x51,0x30,0x3f,0xa0,0xf2,0x61,0x33,0x3d,0x1a,0xe2,0x54,0x8d,0xd0,0xbf,0x65,0x5a, +0x28,0xe7,0x32,0x15,0x40,0x40,0x62,0x24,0xec,0x82,0x69,0xb8,0xa8,0x16,0xd1,0x67, +0xc1,0x99,0x49,0xae,0x34,0xc0,0xca,0x10,0x41,0x18,0xd1,0x73,0x01,0x9f,0x06,0xff, +0x00,0x38,0xeb,0xc4,0xa0,0x33,0x6c,0x51,0x26,0x78,0x0d,0xb3,0x7e,0xb5,0x81,0x22, +0x88,0x76,0x03,0xd8,0x0a,0x22,0xc8,0xbb,0x58,0xb2,0x4b,0xf4,0x06,0xc4,0x1d,0xc5, +0x18,0xfc,0x24,0x44,0x88,0x93,0x10,0x5c,0x80,0xd1,0x02,0xd0,0xe5,0x71,0x45,0xb0, +0x69,0xb6,0x86,0x4c,0xd0,0x12,0x9a,0x57,0xe0,0x65,0x80,0x58,0x57,0x50,0x06,0xab, +0xcd,0x22,0x4e,0x50,0x45,0xca,0xae,0x66,0x71,0xa3,0xba,0x8f,0xc2,0x81,0xab,0xf1, +0x77,0x9f,0x70,0xb0,0x7e,0xae,0xa0,0xb7,0x05,0x9e,0xa0,0x88,0x16,0xc0,0xd1,0x69, +0x2a,0x2a,0x63,0x36,0x2b,0x2e,0xd1,0x2c,0x59,0x75,0xa3,0x64,0xc0,0x2c,0x56,0xa3, +0xa6,0x26,0xda,0x16,0x06,0x75,0x79,0xe1,0xa7,0x0a,0x1e,0x0c,0x2a,0x76,0x11,0x34, +0x97,0x08,0xff,0x23,0x28,0x45,0x54,0x94,0xc6,0xec,0x93,0xa3,0xb7,0xd4,0x2b,0x71, +0x59,0xe6,0xb7,0xd5,0x2b,0xa8,0x6c,0x9a,0x52,0x15,0x06,0xdc,0x52,0x11,0x07,0x5c, +0x01,0x14,0x69,0xe8,0x76,0x7a,0x03,0xb4,0x57,0xf5,0x68,0x65,0x69,0x6c,0xb5,0xda, +0x32,0x2d,0x0d,0x93,0x73,0x26,0x6d,0xd8,0x90,0x6a,0x44,0x87,0xda,0xfe,0x78,0xf5, +0x87,0x2b,0xf1,0x2c,0x74,0x8c,0x13,0xc8,0x54,0x41,0xe3,0x14,0xe2,0xbe,0xb5,0xbd, +0xb7,0x3e,0x0a,0x1f,0x03,0xc2,0x57,0xf6,0x02,0x3f,0x26,0x33,0xda,0xa6,0xa3,0xd9, +0xc2,0x08,0xf6,0xcb,0x1e,0xbf,0xe1,0xbe,0x12,0xf0,0x1b,0x48,0x9a,0xe6,0x3a,0x63, +0x3f,0xe5,0xca,0xd6,0x14,0xab,0xd1,0x1c,0xa2,0x89,0xca,0xa8,0x68,0xc1,0x7c,0x07, +0xbd,0x07,0xaa,0x58,0x06,0x4d,0x27,0x53,0x73,0x0e,0x06,0x08,0x86,0x7e,0xa8,0xf7, +0x29,0xd1,0xe9,0x90,0xba,0xa3,0x68,0x11,0xa2,0x51,0x26,0xb9,0x1e,0x4d,0x91,0x3e, +0x2b,0xae,0x14,0xd9,0x43,0x76,0xcb,0xde,0x7b,0xe0,0xd0,0xb9,0x15,0xec,0x5d,0x84, +0x17,0x11,0x63,0x09,0x23,0x47,0xe8,0x1d,0x1a,0x50,0x17,0x54,0xb9,0x81,0x75,0x97, +0xe1,0x71,0xad,0x86,0xce,0x53,0xa9,0x86,0x16,0x3d,0x9a,0x02,0x35,0x98,0x9c,0x5b, +0x30,0x04,0x0b,0x8b,0xd3,0xb9,0x02,0x5a,0xa5,0xe8,0x9e,0xd2,0xc9,0xb8,0x8c,0xb8, +0x57,0xe8,0xd3,0x32,0xab,0x12,0xdf,0x7a,0x50,0xb4,0x5e,0x0a,0xe7,0xdd,0x94,0xf6, +0x51,0xa1,0xda,0x9a,0x83,0x61,0xee,0x21,0xc2,0x50,0xc8,0x8e,0xd5,0x8b,0x03,0xc6, +0x99,0x04,0x86,0x39,0x4c,0x88,0x30,0x19,0x81,0xbd,0x25,0x82,0xa3,0x94,0xc5,0x70, +0x0b,0x5c,0x54,0x24,0xef,0x0a,0x5f,0xe2,0x1b,0x19,0x7e,0x0a,0xf8,0x53,0x41,0x40, +0x98,0x5b,0xf1,0x95,0x21,0xa3,0x03,0x07,0x9c,0x86,0xb9,0x2e,0x27,0x55,0xe1,0x19, +0x60,0x2c,0x20,0xf7,0x81,0xcb,0x88,0x42,0xa2,0x25,0x24,0x62,0xa0,0x89,0x03,0x6e, +0x11,0xe0,0x69,0x88,0xee,0x63,0x19,0x7f,0x8a,0x88,0x48,0xae,0xc1,0x4f,0xb9,0x46, +0x9f,0xa1,0x73,0x58,0xac,0x41,0xd1,0x5a,0x05,0x21,0xcb,0x08,0x53,0x15,0xa9,0xa3, +0x08,0x9e,0x87,0x48,0x1d,0x27,0xac,0x7a,0x19,0x8d,0xf6,0x2c,0x4c,0xd1,0x12,0x82, +0x51,0xea,0x65,0xff,0x07,0x14,0x2a,0xfc,0x54,0xe9,0x15,0x41,0xcf,0xaa,0x5a,0x6a, +0xd0,0x77,0x59,0x6c,0x4b,0x09,0x9b,0x29,0x61,0xc5,0xa5,0xe9,0x2c,0x82,0x2c,0xd7, +0x30,0xa4,0x84,0x86,0x27,0x18,0xff,0x95,0x0a,0x5c,0x95,0x6b,0x59,0x1a,0x5c,0x02, +0x41,0x43,0xff,0xa3,0x52,0x04,0xdf,0x43,0xae,0x2d,0x97,0x11,0x05,0xc0,0x15,0x1b, +0x1e,0xfd,0x85,0xaa,0x8b,0x86,0xb6,0x00,0xdb,0x2e,0x2f,0x83,0x2d,0x5a,0x82,0xe2, +0xe0,0xee,0x2e,0xa2,0xbb,0x07,0xfe,0x46,0xa1,0x0a,0x94,0x56,0xd0,0xf3,0x28,0x52, +0x9a,0xa9,0x0f,0x52,0xa5,0xdc,0xcb,0x22,0xf7,0x16,0xc1,0xd7,0x2a,0xa1,0x3f,0x52, +0xac,0xa0,0xdb,0x45,0x3d,0x93,0x1a,0xbb,0x92,0x6d,0xe4,0x3b,0x3a,0x37,0xc8,0xd9, +0x02,0x12,0x0c,0x7c,0x17,0xfd,0xa2,0x84,0xf2,0xb3,0x8a,0x2d,0xa2,0xcd,0x2f,0x66, +0xdd,0xe6,0x33,0x8f,0x08,0x83,0xae,0xd0,0x04,0xca,0x78,0xf7,0x99,0x8c,0x3f,0x45, +0x44,0x24,0x23,0xc1,0x2e,0xd5,0x06,0xb2,0x5d,0xa4,0x6c,0x87,0x67,0x08,0x01,0x95, +0x63,0x25,0xd4,0xdf,0xc3,0x66,0xd0,0x8a,0x0b,0x48,0x22,0xba,0xef,0x04,0x65,0x06, +0xe1,0xe4,0x92,0xf7,0x43,0x7b,0xbc,0x54,0xa5,0x57,0x4d,0xca,0x73,0xf6,0x02,0x1f, +0x20,0x6d,0x12,0xe5,0x36,0xe5,0xbb,0x44,0x11,0xd1,0x38,0x40,0xc3,0xeb,0x7a,0x60, +0x00,0x06,0x62,0xe1,0xb6,0x92,0xf5,0xbb,0xd9,0xf0,0xa5,0x01,0x2b,0xa4,0xa4,0x17, +0x68,0x0d,0xd3,0x14,0xaf,0x27,0x34,0x81,0x74,0xf9,0xc2,0x95,0x75,0xa5,0x94,0x56, +0xe8,0xca,0xe1,0x32,0x27,0xf3,0x27,0x09,0xba,0xbc,0xe8,0x8a,0xa0,0xf2,0xae,0x01, +0x52,0x40,0x50,0x61,0x02,0x56,0xa4,0x71,0xee,0x0a,0xb1,0xbd,0xbb,0xac,0xfb,0xc4, +0xc6,0x6b,0xca,0x0d,0xf7,0xe1,0x0a,0x3a,0xac,0x55,0x8a,0x26,0xeb,0xa2,0x4b,0x52, +0xf0,0x73,0x79,0x37,0x76,0xef,0x25,0x6a,0x61,0x60,0xbf,0x61,0xe9,0x1d,0xc7,0x05, +0xd8,0x50,0x2c,0x82,0x03,0xbe,0x4e,0x13,0xb5,0xe7,0x89,0x40,0xe3,0xfe,0xde,0x80, +0x4d,0x85,0xd4,0x48,0x8a,0x8d,0xf1,0x14,0x8e,0xf1,0x54,0x9e,0x03,0xda,0xcb,0xb4, +0x8c,0x05,0x29,0x2d,0xc2,0x2c,0xa5,0xca,0x23,0xc6,0x25,0x8b,0x4b,0xbb,0xc9,0x3f, +0xa3,0x6c,0x28,0xec,0xa9,0x40,0x6c,0xab,0x31,0x2f,0x28,0x36,0xa8,0x25,0x3b,0xff, +0x8c,0x5d,0xef,0x28,0x8d,0xe3,0xb9,0x67,0xe8,0x3a,0x67,0x14,0x83,0xdb,0xb0,0x7c, +0x7e,0xf7,0xf2,0xc7,0xbb,0x1f,0x9e,0x0a,0x9a,0xb9,0xac,0xb4,0xd7,0x17,0xcd,0xf6, +0x9a,0xbe,0x0e,0xed,0x7c,0xce,0xe3,0x16,0xc0,0x5d,0x78,0xab,0x77,0xfe,0x75,0xef, +0x7e,0x09,0x6c,0xdc,0x19,0xf2,0x9c,0xd6,0x9e,0x21,0x02,0x5e,0x0b,0x59,0xd2,0xc0, +0xeb,0x1b,0x9f,0x5f,0xbd,0xf9,0xee,0x3f,0x84,0xed,0xac,0x07,0xc8,0x50,0x79,0xa0, +0xec,0xce,0x03,0x66,0x49,0x80,0x1c,0xb0,0xbf,0x45,0xdf,0x83,0xa7,0x0f,0x08,0x3e, +0xf1,0xca,0xf4,0x3e,0x79,0xa3,0x7f,0xe9,0x53,0x76,0x1c,0x1f,0x57,0x72,0x65,0xcb, +0x76,0xb4,0xd6,0x0a,0x5d,0xfb,0xf5,0x0a,0xb3,0x67,0x84,0x3d,0xf4,0xca,0xb3,0x45, +0xcf,0x9d,0x73,0x9f,0xf6,0x4f,0x9d,0xe6,0xca,0x1f,0x3e,0x72,0xd0,0x2b,0x06,0x97, +0x7e,0x65,0x6f,0x5e,0xb9,0x71,0xf5,0x53,0x96,0x8a,0x31,0x50,0xd9,0xb2,0xb9,0x1e, +0xa9,0x09,0x9e,0x84,0xab,0x61,0x6b,0xab,0x5c,0xc9,0x83,0xab,0x66,0xd7,0xf1,0x4a, +0xd1,0x1b,0xbf,0xaa,0x17,0xfe,0x76,0xe3,0xca,0xcb,0x1c,0x68,0x3e,0xcf,0x78,0xe9, +0x57,0x4a,0xbf,0x00,0xec,0xd7,0xc8,0xbe,0x18,0xec,0x16,0x66,0x47,0x92,0x72,0x85, +0x97,0x35,0x75,0x86,0x01,0x3e,0x61,0x6e,0x6a,0x16,0xdc,0xfa,0x84,0xb9,0xe9,0x9d, +0x6e,0x7e,0x26,0xdf,0x2a,0x8a,0xf2,0xa0,0x61,0xb8,0x25,0x8f,0x98,0x8e,0x62,0x90, +0x15,0x7a,0xaa,0x84,0x5f,0xd1,0xa9,0xab,0xec,0xc0,0x0d,0xbe,0x87,0x9b,0xba,0xa1, +0x2e,0x43,0x61,0xb7,0x1c,0xbd,0x27,0xf8,0xc0,0xaf,0xf3,0x4f,0xef,0xdf,0x7c,0x0d, +0xb8,0xcd,0x4a,0xb8,0x7f,0xd6,0xba,0x6d,0xba,0xcc,0x06,0xe5,0x41,0xe2,0x34,0x14, +0xbb,0xae,0xb2,0xae,0xa5,0xf1,0xa3,0xc8,0x99,0x40,0xf0,0xf4,0x35,0x42,0x1f,0x91, +0x79,0x18,0x75,0xcf,0x74,0x04,0xee,0x15,0x90,0xdc,0x34,0x37,0xe9,0x8a,0x62,0x1a, +0xda,0xf5,0xb7,0xaf,0x4f,0x5f,0xda,0xfd,0x10,0x7e,0x7f,0xf6,0xf5,0xcf,0xce,0x7d, +0x7d,0xfa,0xcb,0xaf,0x4f,0xbf,0xf9,0xf5,0xcf,0x7e,0xfd,0xf5,0xe9,0x97,0xbe,0x3e, +0x75,0x1a,0x3a,0xa2,0xff,0xd6,0x9f,0x77,0x3f,0xfa,0xdd,0xd7,0xa7,0x2f,0x47,0x01, +0x4e,0xfd,0x4c,0xc8,0xcc,0x06,0x38,0x2d,0xcd,0xe9,0x5a,0x6d,0xff,0xc1,0xb6,0x77, +0x71,0x20,0x2d,0xe4,0xe8,0x67,0x9b,0x33,0x39,0x4d,0x69,0x34,0xd3,0x1e,0xfd,0xe9, +0x10,0x45,0x38,0x82,0xc0,0x1d,0x81,0xa1,0x73,0x20,0xed,0x34,0x75,0x3b,0x93,0x53, +0x1c,0xc7,0x4a,0x0b,0xee,0xa7,0x9e,0x43,0x35,0x21,0xec,0x06,0xb0,0x78,0x9e,0x1b, +0x73,0xc7,0xa0,0xf0,0x53,0xc7,0x10,0xfa,0x29,0x0e,0xd2,0xc3,0xd5,0x74,0x5a,0x46, +0x1a,0x8a,0x04,0x58,0xb6,0xbd,0xcb,0xed,0x60,0x04,0xff,0xe0,0xc8,0xe3,0xf5,0xc3, +0x4f,0x3c,0xfa,0xe4,0xc1,0x23,0x8f,0x1d,0x7e,0x7c,0x65,0xfe,0x98,0xd0,0x7b,0xf1, +0x4c,0xff,0xfc,0xef,0x83,0xbe,0xf3,0x50,0x23,0x30,0x66,0xb7,0xd8,0xe8,0x38,0x01, +0x19,0xc7,0xbc,0x17,0xf9,0x7c,0xef,0xda,0x17,0xfd,0x77,0x7f,0x29,0xda,0x98,0x8a, +0x16,0x00,0x7b,0x4b,0xa4,0x40,0xab,0xa3,0xe8,0x6d,0x0d,0x0b,0xa9,0x66,0xa3,0x0b, +0x5a,0xd1,0xc9,0x3d,0xdb,0xd5,0xac,0xad,0x15,0x77,0x47,0x4a,0x3a,0xf5,0xf0,0xe0, +0x6a,0x6e,0xca,0x23,0xd6,0xef,0xfb,0xa0,0x03,0x81,0x0a,0x9b,0xe3,0x24,0xd6,0x86, +0xe9,0x43,0xa8,0x83,0xf0,0x15,0x48,0xc6,0x0c,0xc1,0x8b,0x6d,0xbf,0xe9,0x03,0xc4, +0xe4,0x0e,0xb9,0xc9,0xbe,0x2b,0xee,0x9b,0x1c,0x2e,0x60,0x7b,0x37,0x69,0x44,0x17, +0xe1,0x96,0xdf,0x4e,0xad,0xad,0xb2,0x27,0x07,0xd2,0x5e,0x7b,0x32,0x39,0xdc,0xdd, +0xb5,0x15,0xdb,0xcf,0x0d,0xb3,0xd5,0x01,0xed,0xde,0x76,0x96,0x94,0xb6,0x6a,0x40, +0xcd,0xdd,0xce,0xba,0xa5,0xa8,0x1a,0x0c,0x9e,0x27,0xb5,0x75,0x1d,0x94,0x81,0xa5, +0x61,0x3a,0x4d,0x30,0x96,0x3d,0xd2,0x7a,0xe7,0xde,0xd9,0xbd,0x7e,0xbd,0xf7,0xc9, +0x4b,0xfd,0x17,0x2f,0xba,0xa4,0x20,0x98,0x47,0xce,0xc1,0x67,0x94,0x13,0x3c,0xd3, +0x7d,0x46,0xe1,0x8b,0x47,0x2d,0x2b,0x6d,0x69,0x1c,0x19,0x9c,0xf8,0xe3,0x7b,0xa2, +0x59,0x16,0x8c,0x36,0x32,0x05,0x32,0x9c,0x63,0x69,0x30,0x91,0xf6,0x86,0xd0,0xa5, +0xbb,0x96,0x91,0x25,0x66,0xdb,0xfd,0x06,0x6d,0x96,0xce,0x29,0x59,0xca,0x75,0xae, +0x8e,0x03,0x39,0x05,0x61,0x39,0x11,0x87,0x62,0x33,0xf8,0x93,0x0d,0x1e,0x61,0xc9, +0x19,0x56,0x3e,0x78,0x88,0x88,0x66,0xe8,0x2f,0xf7,0xd0,0xad,0x6c,0xc6,0x27,0x25, +0xdc,0x22,0xfc,0xe7,0x53,0x04,0xaf,0xa0,0x0f,0x3a,0x86,0xd2,0xd0,0xd2,0xf9,0x54, +0x7e,0x3d,0x4b,0x52,0x42,0x2a,0xc3,0x8f,0xa0,0x6d,0x0e,0x33,0xfd,0x32,0xec,0x8c, +0xc7,0xa8,0xa4,0xf1,0xe1,0x73,0x60,0xc9,0x71,0x3a,0xff,0xaa,0x39,0x11,0x26,0x70, +0xa4,0xc4,0xb2,0x48,0xf8,0xd7,0x47,0x8f,0x80,0x56,0x6b,0x77,0x0d,0x63,0x18,0xe2, +0x27,0x4c,0xdb,0x19,0x28,0x1b,0x61,0x6c,0x3c,0xfe,0x27,0x0e,0xaf,0x60,0x05,0x31, +0xb2,0x1a,0xaa,0xe0,0x11,0xcd,0xb8,0x35,0xfc,0x8f,0x3c,0xba,0xfc,0xe8,0x91,0x47, +0xe3,0x6b,0x70,0xc5,0x8f,0x8e,0x05,0xef,0xc9,0x23,0x20,0xb7,0x47,0x4c,0xd3,0xe0, +0x85,0x32,0x9f,0x27,0xe9,0xb6,0xb6,0x49,0xf0,0x5d,0x3a,0x93,0xc9,0x61,0xae,0xa0, +0x02,0x32,0xb8,0x05,0xff,0xc4,0x43,0x87,0x44,0x55,0x25,0xcd,0xe6,0x4c,0xab,0x35, +0x63,0xdb,0xb9,0x15,0x50,0xd8,0xf3,0xf3,0x0b,0x44,0x2e,0xa0,0xcb,0x02,0xf6,0x9e, +0x4c,0x0a,0xd5,0x99,0x42,0x6d,0xa6,0x00,0x3e,0x82,0x5c,0x1c,0x07,0xa1,0x08,0xe8, +0x66,0x00,0x19,0xc5,0x45,0xff,0xf9,0x08,0xa7,0xc1,0xa1,0xaf,0xce,0xd4,0x66,0x4a, +0x60,0x66,0x33,0x54,0x88,0x22,0xd7,0xb1,0x4c,0xc7,0x44,0x69,0x74,0x31,0x81,0x12, +0xf1,0xc5,0x6d,0xad,0xe5,0x44,0xd4,0x8c,0xc9,0xdb,0x39,0x84,0x08,0x87,0xa6,0x04, +0x02,0xc2,0x0c,0x0a,0x37,0xb7,0xae,0x39,0x87,0x40,0xbb,0x34,0xd3,0x99,0x29,0x29, +0x3b,0x90,0x94,0x93,0xcf,0xf7,0xdf,0x7a,0xf1,0xc6,0xd5,0xeb,0x5c,0x59,0x35,0x54, +0x96,0xb5,0x27,0x1b,0x97,0xd0,0x03,0x65,0x2f,0xbd,0xcf,0x15,0x6c,0x86,0x0a,0x2e, +0x99,0x5d,0xcb,0x8e,0x2f,0x09,0x2a,0xeb,0x2f,0x17,0xc0,0x02,0xe2,0xca,0xb6,0xc2, +0x04,0xeb,0xed,0xae,0xa3,0xc5,0x96,0x86,0xb2,0x2f,0xfe,0x92,0x2b,0x68,0x87,0x0a, +0xae,0xd0,0x93,0xaf,0x12,0x0a,0xee,0x7c,0xf0,0x2a,0x57,0xf0,0x59,0x5a,0x10,0x74, +0x5a,0x33,0xb7,0x66,0x98,0xa0,0xed,0xd3,0x51,0x76,0x15,0x33,0xf9,0x22,0x20,0x82, +0x1a,0x3f,0xfe,0x9f,0xde,0x95,0x3f,0x70,0x65,0x57,0x04,0x12,0xa2,0xd6,0x30,0x74, +0xdb,0xab,0x39,0xca,0xa2,0xcb,0x7f,0xe2,0xea,0x0d,0x34,0xbf,0xbe,0x96,0xce,0xa7, +0xb7,0xa6,0x32,0xf9,0x1c,0x34,0xd4,0xa1,0x5d,0x9a,0x09,0x6a,0x80,0xdb,0x79,0xf8, +0xcf,0x57,0x1d,0xa0,0x91,0x1f,0x3d,0xd1,0xc9,0x1d,0x80,0x1e,0xf4,0xc9,0xfc,0x21, +0x0c,0xe0,0xff,0xd0,0x60,0x52,0xc8,0x4c,0x09,0x30,0xa1,0xdb,0xdd,0x55,0x1b,0x66, +0xe9,0x12,0x11,0x89,0x0f,0x9d,0x33,0xb4,0xf6,0xba,0xd3,0xe4,0xf4,0xcd,0x1a,0x34, +0x94,0xce,0xef,0x44,0x6f,0x13,0x93,0xab,0x11,0xe8,0x41,0xf1,0x65,0x45,0xd3,0x42, +0x5a,0x98,0x02,0x98,0x29,0x21,0x03,0x98,0x07,0x09,0x84,0x1b,0x94,0xc7,0x04,0x02, +0xa3,0xd5,0xcf,0xcf,0x4b,0x19,0xf2,0x7d,0x92,0x36,0x8f,0x1d,0x7f,0x2a,0x03,0x7c, +0x4b,0xa7,0x85,0x42,0x01,0xf0,0xd3,0x7b,0x8f,0xee,0xb4,0xe0,0x3f,0xf1,0x88,0x0e, +0xa8,0x66,0xf6,0x0c,0x56,0x18,0x1d,0xed,0xfe,0xd8,0xe6,0x46,0x3c,0x75,0x74,0x70, +0xcf,0x96,0xfb,0xbd,0xba,0x3a,0xda,0x07,0xb3,0x91,0x77,0xf4,0x1b,0x69,0xde,0xc7, +0x1a,0xb9,0x97,0xfe,0x77,0x9e,0xa2,0xcf,0x30,0x1b,0x30,0xfa,0xac,0x6b,0x0f,0x82, +0x6d,0x0e,0x60,0xc3,0x8f,0x28,0xf8,0xf3,0x23,0x98,0x60,0x0f,0x7b,0x9b,0x58,0x5c, +0x63,0x68,0x84,0x22,0x12,0x32,0xfc,0xec,0x7a,0x08,0x37,0xd7,0x46,0x4c,0x1a,0xfa, +0xb9,0x6e,0x68,0x4c,0xc8,0x94,0x01,0x09,0x79,0xd4,0xd0,0xf0,0xf2,0x07,0x5b,0x8f, +0xa9,0x69,0xff,0xb3,0xde,0x22,0xc0,0xf9,0x26,0x9c,0x5f,0x32,0xc7,0x3e,0x41,0x7f, +0xc4,0x4c,0x47,0x1f,0xfd,0x44,0x57,0x9d,0x66,0x96,0x14,0x02,0x22,0xa8,0x15,0x45, +0xbf,0x39,0x6b,0x38,0xc3,0x6a,0x0c,0x7f,0x97,0x36,0x5c,0xde,0xd2,0xec,0x86,0xd2, +0xa6,0xfb,0xf4,0x2d,0xff,0x45,0xc8,0xa4,0x7a,0x02,0x0d,0x69,0x5d,0xe5,0xa7,0x71, +0xb0,0x5e,0x31,0x63,0x15,0xf9,0xa6,0xab,0x1a,0x67,0x9b,0xf8,0x6f,0xa6,0xa0,0x00, +0xb5,0x98,0x22,0x2f,0x75,0x5b,0xb4,0x5b,0x8a,0x01,0x53,0x40,0xc3,0xd2,0xb4,0x36, +0x59,0x58,0x20,0xb9,0x60,0x3f,0x56,0xbd,0xae,0x5a,0x0a,0xb8,0x18,0xde,0x4e,0xa3, +0x4c,0x8e,0x26,0xd5,0xa4,0x33,0x41,0xf6,0xe1,0x2d,0x31,0x8a,0xd5,0x8d,0xf5,0xb4, +0x95,0x0d,0x7d,0x9d,0x09,0x63,0x9d,0xee,0x80,0x40,0xcb,0xac,0x65,0x6e,0x68,0x8b, +0x98,0xbb,0x97,0x16,0x5c,0x18,0x7a,0x5e,0xdf,0x86,0x26,0x84,0x89,0x8f,0x43,0x30, +0xa3,0x3d,0x0b,0x43,0x14,0xf8,0x23,0x4a,0x19,0x36,0x4a,0x41,0x66,0x93,0x91,0x71, +0x5a,0x07,0x33,0x87,0xe6,0x89,0x1c,0x32,0x58,0x9e,0xa4,0xbd,0x91,0xce,0x84,0xcc, +0x75,0xe1,0xe1,0xe8,0x27,0x4d,0x33,0xc7,0x0a,0x4f,0x01,0x9f,0x2d,0xe8,0x61,0xb7, +0xa3,0x7d,0x73,0xf5,0x88,0x97,0x8c,0x9e,0x6b,0x50,0x57,0x28,0x3d,0x38,0xc8,0xa2, +0xd8,0x83,0x2f,0xaa,0xed,0x05,0xaf,0x5f,0x2a,0x16,0x1d,0xfd,0xbe,0xd8,0x9e,0xd1, +0x61,0xa9,0x58,0x74,0xf8,0xb9,0xad,0x3d,0x63,0x83,0x42,0xf1,0xb4,0x6d,0xaa,0xb7, +0x40,0xda,0x66,0x3c,0xdf,0xe8,0x77,0x68,0xf6,0x8c,0x0d,0x4b,0x71,0x7e,0x17,0xd1, +0x0c,0x5b,0xe3,0xe5,0x60,0x53,0x6f,0xab,0xe6,0x26,0x48,0x3f,0x4c,0x2b,0x18,0xb6, +0x80,0xb1,0x91,0xe6,0x47,0x6a,0x26,0xea,0x52,0xba,0x7f,0xfc,0xf1,0x2a,0x65,0x66, +0x43,0x8a,0x2a,0x64,0x87,0x31,0xe7,0x7c,0xc0,0x1f,0xa3,0x4f,0xeb,0x5d,0x63,0xa8, +0x2a,0xf1,0x80,0xfc,0xa1,0xc1,0xf4,0x1e,0x3b,0x4f,0xd2,0x86,0xa2,0x3e,0x04,0x57, +0xd6,0xfe,0xc1,0x16,0x1d,0x12,0x8f,0x83,0xfe,0x4f,0xc7,0x9c,0x2f,0xc9,0xe3,0x72, +0xdf,0x18,0xb8,0x05,0x76,0xaf,0xf8,0xdc,0x21,0xc6,0x90,0x79,0x46,0xb9,0x90,0xb7, +0xbd,0xa0,0x8d,0xaf,0xd7,0xc2,0x8e,0x02,0xad,0x96,0xc2,0x40,0x7d,0xff,0x77,0xe5, +0xf0,0xe3,0xd8,0x97,0xb6,0x86,0x40,0xb3,0x83,0x30,0xae,0x7f,0xcb,0x6e,0x72,0x8c, +0x3c,0xf8,0xdb,0x31,0x74,0xa8,0x2b,0xcb,0xa9,0x0c,0xde,0x1b,0x0e,0x41,0x23,0xd9, +0xb1,0x25,0x82,0xf6,0xa3,0xd8,0xd8,0x89,0x0e,0x31,0xb8,0x86,0xe9,0x54,0x2e,0x72, +0xd8,0x68,0xc7,0xd2,0x5b,0x78,0xd4,0x28,0x98,0x3f,0x0e,0x94,0x48,0x0d,0xea,0x2e, +0x77,0xd3,0x2b,0x4d,0xdb,0xa7,0xe6,0xc4,0x09,0x27,0xed,0x12,0xa6,0x6a,0x1b,0x7a, +0x43,0x43,0xc2,0x82,0x62,0x7e,0xdd,0xb4,0xc0,0xfc,0x00,0x24,0x6f,0xcb,0x10,0x6a, +0xcc,0xe8,0x40,0x71,0x61,0x16,0xfe,0xcc,0x71,0xbc,0x72,0xcd,0x08,0x78,0x3c,0x35, +0x15,0xf1,0xce,0xb0,0x0c,0x86,0x27,0x56,0x70,0x4f,0xf1,0x3c,0xdf,0xf4,0x63,0xfa, +0x54,0xf1,0xa9,0x68,0x14,0x80,0x86,0x4c,0x52,0xfc,0x30,0xf4,0xec,0x08,0x55,0x3b, +0x31,0x2e,0x0e,0xd6,0x05,0xec,0xa8,0xbf,0x08,0x2e,0x2f,0x3c,0x84,0xa8,0x32,0x3e, +0x61,0x94,0x4f,0x8b,0x8c,0xa9,0x50,0x81,0xdf,0xab,0xc7,0xf4,0xa7,0x66,0x99,0xbf, +0x71,0xe3,0xab,0x4f,0xfa,0xaf,0x7d,0xc1,0xe2,0x66,0xbd,0x8b,0xe7,0x77,0x3e,0xf8, +0x4b,0x14,0xab,0x4f,0x61,0x26,0x20,0x36,0x82,0x57,0x10,0x66,0x03,0x5c,0xbd,0x2b, +0x17,0x7a,0x17,0x3e,0xfb,0xe6,0xda,0x4b,0xbd,0x0b,0x97,0xfd,0x23,0x29,0x77,0xff, +0xf1,0x59,0xef,0x83,0x5f,0xf5,0x5f,0xff,0x4b,0xef,0xe3,0x4b,0x7c,0x05,0xf9,0xbc, +0x3f,0xfe,0x80,0xa6,0x9c,0x7b,0x56,0xab,0x2f,0x74,0x2e,0xad,0x34,0xe6,0x25,0x09, +0x03,0x0d,0x8e,0x03,0x8a,0x74,0x13,0x09,0x0f,0x4a,0xc6,0x57,0x3f,0x3e,0x42,0x5f, +0xe5,0xcc,0xf0,0xac,0x15,0xa7,0xd4,0xc6,0x44,0xb4,0xb6,0x16,0xc5,0xc4,0xf9,0xe8, +0xa1,0x19,0xd4,0x95,0xc8,0x96,0xa9,0x6a,0x48,0xb8,0x14,0x22,0x9b,0x9b,0x37,0xbd, +0xcf,0x25,0xfb,0xe6,0x04,0x87,0x7e,0xc0,0x3e,0xe5,0x06,0xab,0xfb,0x14,0xcd,0xa7, +0x68,0x89,0xd0,0x84,0x3a,0x58,0x24,0x30,0x3e,0xe3,0x18,0xc1,0x91,0xa6,0x74,0x62, +0xa9,0xe2,0x89,0xc7,0xcf,0xc6,0xef,0x65,0x82,0x71,0x49,0x51,0x3a,0xb4,0x68,0x66, +0x4c,0xca,0x01,0x3c,0x44,0x74,0xc0,0x68,0x7f,0xa2,0x0f,0x80,0xa3,0xb6,0x39,0x09, +0x2c,0xf3,0x08,0x10,0x67,0xac,0x13,0xdf,0x54,0x8f,0xc0,0x04,0xc6,0x3b,0xf1,0x4d, +0xf7,0x28,0x1a,0x8e,0x34,0x7f,0x02,0x0d,0x60,0xc0,0xf9,0x81,0x7a,0x7e,0xc8,0xcc, +0xfb,0x80,0x83,0xa1,0x43,0x40,0x5c,0x1b,0xdf,0x2d,0xe1,0x3e,0xcd,0x0c,0xc2,0xeb, +0x9d,0x08,0xa8,0xde,0x89,0x81,0xa2,0x47,0x64,0x84,0xe1,0xf0,0x51,0x0c,0xa4,0x77, +0x5e,0x45,0x18,0xd8,0x7d,0x1a,0x86,0x77,0x8f,0x8e,0x08,0x43,0x76,0x3b,0x74,0xca, +0xe7,0x8d,0xc7,0x38,0x7d,0xeb,0xab,0xa5,0x04,0x75,0x1b,0x8e,0xe3,0xe6,0x3a,0x5d, +0xbb,0x99,0x7e,0x9a,0xc5,0x72,0x0f,0x3c,0xc7,0xeb,0xb4,0xed,0xa7,0x23,0x91,0x9c, +0xb8,0x92,0x6e,0x14,0x38,0x12,0xff,0xc7,0x33,0x1c,0x5e,0xfb,0xd0,0x9f,0xcf,0x62, +0x0b,0xde,0x3c,0x73,0x1e,0xc1,0xe8,0x8a,0xc6,0x48,0x48,0xff,0x20,0x88,0x91,0x90, +0x3b,0xd7,0x3f,0x19,0x07,0xa7,0x4b,0x36,0x5b,0x42,0x18,0x87,0xce,0xeb,0xaf,0xe0, +0x0a,0x54,0xd8,0x93,0x48,0x3d,0x1c,0x73,0x6a,0x52,0x0a,0x0c,0xff,0x4e,0x07,0xcc, +0xac,0x34,0x07,0x38,0x67,0xe8,0x0b,0x29,0xce,0xb7,0x0f,0x7c,0x83,0x54,0xf8,0x90, +0xc4,0x30,0x10,0x06,0xf9,0x53,0xde,0xa9,0x89,0xa9,0x2c,0x01,0xd7,0x82,0x7b,0x4d, +0xa7,0x6d,0xa1,0xff,0xd6,0x47,0xee,0x8a,0x97,0xfb,0xce,0x0f,0x87,0xa3,0x70,0x18, +0x9a,0xc3,0x0b,0x47,0xa4,0x85,0x71,0x12,0x82,0xcd,0x8a,0x9c,0xfd,0xbf,0x9f,0x4d, +0x7a,0xfa,0xc0,0x73,0x3a,0x48,0x5a,0x3c,0x88,0x77,0xa8,0x25,0xc2,0xad,0x29,0xa0, +0x3c,0x9f,0x1e,0x68,0x7f,0xb8,0x45,0x38,0xed,0xb9,0x01,0x10,0x6a,0x1a,0xb1,0x6e, +0x4e,0x65,0x53,0x8c,0x45,0xa9,0x4c,0x84,0x47,0xdf,0x42,0x1f,0xea,0xa3,0x9b,0x10, +0x22,0x12,0x06,0x1f,0x3b,0x9b,0x8e,0x99,0x2e,0x39,0xbd,0x8d,0xc6,0x62,0x2e,0x7c, +0x5e,0x1d,0x93,0x4b,0x4b,0x03,0x6d,0x68,0x37,0xb9,0x13,0xac,0x6c,0x4f,0x79,0x40, +0x23,0x17,0x71,0x72,0xa1,0xb1,0x7b,0x30,0x86,0xf9,0x63,0xcb,0x43,0x2b,0x06,0x11, +0xbf,0x3f,0x0e,0xa5,0xbb,0x13,0x32,0x03,0x02,0x83,0xba,0xc7,0x59,0xad,0xa3,0x9a, +0x02,0x21,0x7b,0xfa,0x9f,0xbe,0x37,0xe7,0x34,0x35,0x85,0x1d,0x73,0x13,0x1c,0xaa, +0x33,0xe4,0x50,0xea,0xe0,0x00,0xea,0xde,0xb9,0x0f,0xc3,0xe7,0x4a,0xc7,0x1c,0x36, +0xed,0x9f,0x93,0x83,0x4f,0x82,0x7a,0x56,0x4d,0x15,0x0f,0xcb,0x7b,0x9a,0x36,0x80, +0xba,0x21,0x6d,0x67,0xbe,0x00,0x77,0x71,0xfa,0xd1,0xa5,0x3e,0x46,0xf6,0x69,0x14, +0xc4,0xdc,0x7c,0x0c,0xe7,0x9c,0xa7,0x19,0x63,0x45,0x2a,0x9d,0xb3,0xde,0x5b,0x7a, +0xa0,0x21,0xbc,0x3d,0xbc,0xfa,0x0c,0x76,0xc5,0x71,0x6d,0xcb,0xe7,0x06,0x76,0x1b, +0xcc,0xcd,0x3e,0x68,0x30,0x84,0x02,0x78,0x7a,0x78,0x45,0x6c,0x09,0xb0,0x61,0x82, +0x02,0xf0,0xf0,0xa1,0x79,0x18,0xea,0x94,0x28,0x68,0xca,0xd4,0x94,0x8f,0x95,0x62, +0xc0,0x89,0x1e,0x90,0xa6,0x75,0x70,0x7b,0x1e,0x0f,0x97,0xcb,0x90,0xe7,0x9f,0x27, +0xa1,0x27,0xd0,0xe2,0xc2,0xe0,0xc3,0x85,0xf9,0x78,0x55,0x80,0x51,0xc1,0x94,0xaf, +0x51,0x52,0x64,0x26,0x02,0x76,0x2c,0x84,0x86,0xd1,0xee,0xf5,0xff,0x14,0x15,0x80, +0xe8,0x71,0x4a,0x78,0x78,0xd2,0x81,0xe7,0x18,0xe3,0x16,0x88,0x84,0xf8,0x77,0xbf, +0xfa,0xdd,0xce,0xd5,0x8f,0x11,0x79,0x2a,0xb5,0xbd,0xf3,0xf6,0xc7,0x20,0x1a,0x2e, +0xc4,0x76,0xff,0xcf,0xef,0x86,0x8e,0x49,0x62,0xa5,0xfd,0x56,0x6f,0x0f,0xbc,0x9c, +0x53,0x08,0x3d,0x34,0x27,0x15,0xe4,0x2b,0xcc,0xa8,0xd0,0x75,0x8e,0xc6,0x9f,0xe3, +0xe6,0xa1,0xcf,0x16,0x32,0xb3,0xa9,0xf8,0x4f,0x1d,0xfa,0xa2,0xf5,0xb4,0x37,0xea, +0xa2,0xbd,0x22,0xc5,0xf6,0xca,0x38,0xfd,0x22,0x0d,0xf4,0x8b,0x14,0xd7,0x2f,0xd2, +0x64,0xfa,0x45,0xa2,0xfd,0x32,0x5e,0xcf,0xb0,0xc3,0x99,0x3c,0xf6,0xec,0x7c,0xf0, +0xea,0xbe,0x72,0x5f,0xda,0x03,0xf7,0xff,0xe9,0x7b,0xf0,0x83,0x6e,0x49,0x03,0x9d, +0x22,0x18,0xbd,0x11,0x57,0x84,0x6b,0x9b,0x80,0xad,0xc2,0x53,0xb7,0x1a,0xa6,0x81, +0xc7,0x18,0xcd,0xa7,0xca,0xa9,0x85,0xfe,0xff,0xbe,0xdb,0x7f,0xeb,0xac,0xef,0x32, +0x31,0xf5,0xe3,0xeb,0x18,0x75,0x81,0xd6,0xc8,0x3b,0x41,0x9c,0x73,0xe1,0x21,0x9f, +0x9a,0x17,0x7e,0xca,0x27,0xf6,0x30,0x45,0x83,0x85,0x92,0xc3,0x22,0xb1,0x67,0xfe, +0x67,0x40,0x6b,0xb7,0x35,0x6b,0xe9,0xc8,0xa1,0x65,0x10,0x10,0x17,0x3b,0xa0,0x49, +0x5a,0xf1,0x7d,0xc4,0x6c,0xa5,0x39,0xe3,0xcb,0x8f,0x53,0xe7,0x62,0x22,0x26,0xe8, +0x70,0xb1,0xf3,0x56,0xb9,0xb8,0x46,0xb0,0xac,0x0c,0x32,0x2c,0xe0,0x1c,0xee,0x16, +0x13,0x15,0xc3,0x10,0x90,0x9f,0x74,0xcd,0x42,0x57,0x9f,0x7f,0x3e,0xf4,0xb6,0x81, +0x59,0x16,0xa2,0x81,0x59,0x16,0x21,0x18,0xef,0xcb,0x20,0xc1,0xc3,0x8c,0x8b,0x3f, +0x94,0xd8,0xb0,0x1d,0x8a,0x5f,0xb0,0x80,0x08,0xf8,0x54,0xcc,0xa9,0x8d,0x35,0x5a, +0x8b,0x4c,0x29,0xfb,0x7e,0x6b,0x62,0x8c,0x80,0xc3,0x06,0x5d,0x9e,0x8e,0x75,0x74, +0xbf,0x0f,0x2e,0x6b,0x16,0xd7,0x90,0x84,0x02,0x1f,0x4c,0xf1,0xa9,0xf2,0x17,0x51, +0x85,0xbc,0xed,0x65,0xba,0x24,0x44,0x82,0xb6,0xb3,0x5c,0x8d,0xbc,0xeb,0xc4,0xe1, +0x30,0x68,0xfe,0x4b,0x32,0x82,0x80,0x46,0x29,0x4c,0x23,0x23,0x91,0x33,0x26,0xb9, +0xd5,0x7a,0xec,0x65,0xdc,0xbe,0x2b,0xba,0xe1,0x09,0xb4,0xc8,0x13,0x3a,0x99,0x04, +0xbd,0x9c,0xcf,0x93,0xdd,0x97,0x3f,0xeb,0x5d,0xf8,0x4d,0xef,0xfa,0xaf,0x7b,0x67, +0xcf,0xb3,0x73,0xd6,0xfa,0x67,0x4f,0xe1,0xb1,0x53,0x6f,0xfc,0x82,0x18,0x3a,0xe9, +0xbd,0xf0,0xf3,0x9d,0xbf,0xbf,0x13,0x68,0xac,0x03,0x86,0xce,0xa5,0x93,0x34,0x0c, +0xd3,0xc6,0x35,0x25,0x21,0x12,0x4b,0x12,0xf8,0x85,0x8e,0x50,0x15,0x3b,0x7f,0xff, +0x7d,0xef,0xda,0xeb,0xfc,0x12,0x8e,0xaa,0x9d,0xa0,0x18,0x63,0xe9,0xa7,0xaf,0x59, +0x65,0x83,0x18,0x69,0x84,0x85,0xb0,0x80,0x49,0xef,0xd5,0x97,0x08,0x1f,0x99,0x89, +0x21,0x9c,0xe6,0xed,0x60,0x03,0x72,0x6b,0x00,0xe2,0x27,0xd0,0x70,0xea,0xf8,0x80, +0x4f,0x4d,0x00,0xc4,0x23,0x0d,0x37,0xab,0xf7,0xf2,0xdb,0x7c,0xb0,0x86,0xce,0xde, +0x86,0xfa,0x38,0x0b,0x01,0xd0,0xea,0x98,0x9d,0x96,0xc9,0x39,0x96,0xce,0x06,0x66, +0x50,0xf6,0xda,0x17,0x3b,0x1f,0x5d,0xda,0xb9,0xf6,0x9b,0xdd,0x2f,0x5f,0xe1,0xd2, +0x5f,0xb4,0x4d,0xb7,0x78,0xc7,0x82,0x21,0x0e,0x7c,0xdd,0xbd,0xfc,0xd9,0xee,0x97, +0xbf,0xee,0xbd,0xf0,0x3e,0x78,0x32,0x78,0x0e,0x2c,0x17,0x22,0x82,0x1e,0x75,0xab, +0xf3,0x9a,0x80,0x6a,0xcf,0x43,0xf1,0xcf,0xff,0xec,0x61,0x73,0x6b,0x27,0x0f,0x61, +0x68,0x46,0xe0,0x07,0x78,0x18,0x00,0x78,0xdd,0x30,0xba,0x2a,0x18,0x1a,0x02,0x11, +0x32,0xde,0x38,0xe5,0xb2,0x3a,0x58,0xb5,0x37,0x3e,0x3f,0xbf,0xfb,0xf3,0xeb,0xbd, +0x97,0x5e,0xe8,0x5d,0xfc,0xd3,0xce,0x1f,0xaf,0xf4,0xdf,0xb9,0xe6,0xb3,0x30,0x6e, +0x4c,0x0f,0x56,0xc3,0x46,0xea,0x82,0x54,0xf1,0xaa,0x48,0xaa,0x63,0xf7,0xd3,0x17, +0x76,0xbf,0x3a,0x23,0x55,0x6e,0x7c,0xfe,0x51,0xef,0xe3,0x4b,0x43,0x6b,0x21,0x3c, +0xbf,0xc3,0xf5,0xf1,0x79,0x2f,0xa4,0x77,0xe1,0xf2,0xcd,0x53,0x67,0xbf,0xb9,0xf6, +0x46,0xff,0xcd,0xbf,0x03,0x47,0x59,0x94,0xcc,0x47,0x41,0xfb,0xd8,0x75,0x8f,0x38, +0x3d,0x30,0x30,0xfc,0x69,0xf8,0x75,0xe8,0x10,0xa6,0x98,0xa6,0x52,0x24,0x35,0x15, +0x25,0x86,0x12,0x1c,0x8c,0x5b,0x5f,0xec,0x59,0x54,0x74,0xcc,0x61,0xcb,0x6c,0x4a, +0x3c,0x7e,0x65,0x3e,0x21,0x36,0x3b,0x3b,0x9e,0x94,0x52,0xe8,0x89,0x4b,0x29,0x58, +0x1b,0xbd,0xf7,0xce,0x3c,0x90,0xd2,0x41,0x29,0xe5,0xf8,0x3d,0x28,0xa5,0x31,0xf2, +0x16,0xc4,0xca,0x87,0x8a,0xdb,0x08,0x21,0x4b,0x5e,0x8d,0x89,0xce,0xf0,0x74,0xf1, +0x91,0x5a,0x5f,0xcb,0x98,0x37,0x06,0xb6,0xc7,0x30,0x1b,0x61,0x70,0x64,0x80,0xf3, +0x3c,0xe6,0xd4,0x26,0x27,0x4c,0x6d,0xdb,0x3c,0x27,0xc6,0xa6,0x9d,0xb3,0x3f,0x6e, +0xbd,0x09,0x0d,0x2f,0x75,0x74,0xcc,0x26,0x14,0x46,0x37,0xc1,0x5f,0x2a,0x0b,0x2d, +0x9f,0xb1,0xe4,0x4a,0x7e,0xf9,0x0c,0x83,0x77,0x34,0xae,0x0a,0xee,0xa3,0x37,0xfc, +0x69,0x30,0x36,0x9e,0x68,0x96,0x90,0xa8,0x6f,0xd4,0x59,0x88,0x97,0x69,0x81,0x87, +0x83,0x07,0x41,0xcc,0x37,0xb4,0x32,0xe4,0xd5,0x50,0xc7,0x95,0x63,0x2c,0x42,0x4d, +0xc1,0x63,0xf4,0x48,0xb1,0x94,0xf7,0x32,0xf5,0xd4,0x90,0x82,0x6e,0x7c,0x3b,0x4c, +0x6e,0x14,0x9a,0xa3,0xc1,0x85,0x4d,0xa4,0x0a,0x75,0x01,0x47,0x15,0xf3,0x74,0xe9, +0x1a,0x42,0x21,0xbc,0x86,0x10,0xb4,0x2d,0xc7,0x8e,0xac,0xc7,0xac,0x15,0x8c,0xec, +0x70,0x26,0x16,0x57,0xcb,0xb8,0xa1,0x6e,0x5e,0xcd,0x0f,0x86,0xd9,0xe3,0x2a,0xc5, +0xaf,0xa4,0xdc,0x5e,0x9d,0x21,0x66,0xb2,0x16,0x0f,0xae,0xc6,0x86,0x0c,0xbb,0x50, +0xac,0x3f,0x41,0x36,0xf8,0xdc,0x8a,0x58,0x49,0x48,0xe2,0x9b,0x07,0x1f,0xea,0xcf, +0xd8,0xf6,0x6e,0x07,0xd1,0xaf,0x98,0x95,0x91,0xdb,0xa7,0x2b,0xc4,0xda,0x11,0x64, +0xf1,0x6d,0xe0,0x98,0xe5,0x0f,0x5b,0x2f,0x0f,0x22,0xe8,0x4e,0x6e,0xa0,0x23,0xce, +0x3c,0xbe,0x4f,0x1e,0xe8,0x4c,0x34,0x2d,0x26,0x8b,0x87,0xff,0x2d,0xba,0xa0,0xe5, +0x2e,0xaf,0xdb,0x2c,0x20,0x86,0x8b,0xeb,0x78,0x2e,0x17,0x60,0x84,0x7a,0xbb,0x86, +0x93,0x25,0x52,0xa1,0x50,0x08,0xe5,0x86,0xc6,0x2c,0x66,0x05,0x13,0x0a,0xbf,0x4e, +0xcc,0xcd,0x16,0xdb,0x03,0xbe,0x9c,0x4f,0x6d,0xa8,0xba,0x68,0x33,0xd9,0xa2,0xf5, +0x5e,0x5a,0xf9,0x10,0xb4,0xf2,0xf1,0xc3,0x42,0xcc,0xea,0xea,0xf0,0xa1,0x8f,0xe2, +0x9b,0x8e,0xae,0x81,0xa6,0x1f,0x0a,0x15,0x1a,0x58,0x0b,0x8c,0xa2,0x4c,0xca,0xf0, +0x1a,0xf4,0xaf,0xf7,0xa6,0xc5,0x62,0x88,0x63,0x09,0x4b,0x4e,0x74,0x95,0x3e,0x36, +0xb1,0x17,0x14,0xf5,0x91,0xc3,0x8f,0x1c,0x9e,0x21,0x3f,0xd4,0x4f,0x50,0xef,0x95, +0xe0,0x59,0x27,0x56,0xa4,0xad,0x21,0x6a,0x62,0x14,0x97,0x57,0xab,0x1b,0xea,0x14, +0x82,0xcf,0x1c,0x45,0xa3,0xbf,0xc1,0x67,0x8e,0x52,0x85,0x54,0xfc,0xc7,0x99,0x0e, +0x29,0xed,0xae,0x62,0xd0,0x6f,0x1f,0x09,0x63,0xac,0x95,0xde,0x42,0xbd,0x43,0xaa, +0xe0,0x6f,0xe2,0x02,0xa4,0xc0,0xd7,0x1c,0x8e,0x6a,0x7b,0xc8,0x7a,0x7d,0x98,0x65, +0xac,0xff,0xe7,0x83,0x92,0x18,0xda,0x8c,0x16,0x20,0x24,0x88,0xd7,0x8c,0xd3,0x06, +0xcc,0xa5,0x9a,0xc2,0x54,0xaa,0x04,0x1e,0x0a,0x53,0x7c,0x75,0x53,0x42,0x4c,0x53, +0x93,0xf8,0x79,0xeb,0xa4,0x8c,0x59,0x6b,0x22,0xbf,0xbd,0x24,0xbd,0x50,0x3c,0xc8, +0x0d,0x06,0x05,0x50,0xe3,0xc5,0xfb,0x03,0x78,0x3e,0x21,0x08,0xf0,0x0d,0x2a,0x35, +0xa6,0x45,0xb3,0x98,0xde,0x1c,0x56,0x67,0x03,0x1b,0x53,0x42,0xf4,0xee,0x51,0x3b, +0x6e,0xc7,0x85,0xac,0x58,0x72,0x14,0x3b,0xd3,0x73,0x64,0xb0,0x2a,0x92,0xf0,0xe9, +0xaa,0x29,0x2e,0x2d,0x2d,0xa2,0x0a,0x42,0xa9,0xa0,0x3c,0x34,0xcb,0x3a,0x4b,0x82, +0x66,0x2b,0xcf,0xe1,0x9c,0xb2,0x44,0xcc,0x9b,0x6a,0x08,0x31,0xa6,0x8c,0xc5,0xc0, +0x82,0x06,0x52,0x5a,0x18,0xea,0x0f,0x88,0x9f,0x22,0x02,0xdd,0x36,0x11,0x10,0x18, +0x7a,0x82,0x44,0x84,0x41,0xb8,0xa5,0x6d,0x6e,0x92,0xc3,0x77,0xf9,0x86,0xb7,0xc3, +0x2d,0x71,0x02,0x88,0x9f,0x84,0xc0,0xce,0x65,0x94,0x65,0x66,0x63,0x0d,0x12,0x7f, +0x09,0x7d,0x6f,0x3d,0xe4,0xa6,0x56,0xf3,0x8c,0x61,0xe9,0x6f,0x11,0xce,0x80,0xe4, +0x3c,0xe9,0xaf,0xc8,0xa7,0xdd,0x52,0x99,0x98,0xf5,0xa6,0x7c,0xfe,0x47,0x5d,0x93, +0xcd,0x1c,0xe4,0x90,0x62,0x1d,0xb7,0xa3,0xbb,0xb9,0xd8,0x6e,0x9c,0x1f,0x1d,0x4a, +0xdb,0x8e,0x15,0xd9,0xc7,0x05,0x4f,0xe8,0xec,0x1e,0x3a,0x45,0xf3,0xf9,0xe7,0x09, +0x3c,0x67,0x61,0xa7,0xc3,0x6b,0x69,0x21,0x05,0xda,0x7c,0x01,0x54,0xdc,0x10,0x18, +0x9c,0x2d,0x46,0xc2,0x90,0x64,0x18,0xa6,0x2d,0xc9,0x02,0x29,0x86,0x53,0x39,0xdd, +0x54,0xe9,0x90,0x55,0xb4,0x1d,0xcd,0xa3,0xe6,0xcd,0x20,0x3e,0x2b,0xf7,0xd9,0x56, +0x1d,0xf7,0x27,0xa1,0xe6,0x5f,0x31,0x2d,0x6b,0x0b,0xfc,0x16,0xa5,0x9d,0x72,0x08, +0x7e,0x33,0x20,0x45,0x40,0x7b,0xff,0x54,0xc0,0x5f,0xfa,0xf9,0x02,0xbc,0xd0,0xc0, +0x8f,0xdf,0xca,0xfd,0xb4,0xfd,0xd3,0xf6,0x41,0xc3,0x36,0xb3,0xc4,0x25,0x6a,0x6e, +0x1e,0xa8,0xca,0x09,0x01,0x5e,0x43,0x8b,0xe2,0xf5,0x20,0x49,0x15,0xe1,0xa2,0xee, +0xcc,0x9e,0xc6,0x2f,0x4d,0xc3,0x89,0xb7,0x2e,0x3b,0x96,0xd9,0x49,0x0b,0xae,0xbb, +0x25,0xe0,0xb2,0x86,0x04,0xee,0x56,0x21,0x9c,0xf8,0x96,0xe0,0x70,0xc4,0x0e,0x3b, +0xdb,0xde,0x8c,0x00,0x07,0xc9,0xb1,0x91,0x02,0xf9,0x3c,0x8a,0x0b,0x27,0x4a,0x98, +0x15,0x83,0xbd,0x17,0x3c,0x62,0xf8,0x32,0x19,0x7e,0x8b,0x2a,0x21,0x8a,0xa1,0x59, +0x4e,0xda,0xed,0x8a,0x50,0x1c,0x2a,0xaa,0x3e,0xf3,0xf9,0x6d,0x5e,0x34,0x19,0xba, +0x5c,0xc0,0xda,0x90,0x60,0x30,0xb4,0x6e,0x4f,0x8c,0xb3,0x59,0x30,0xac,0x68,0x90, +0xcb,0x9e,0x02,0xd1,0xda,0x0d,0xb8,0xfd,0xf1,0x93,0x8f,0x2d,0x7a,0x2b,0x0a,0x6e, +0xeb,0x86,0x00,0xb8,0x6d,0x9d,0x4d,0x32,0xac,0x27,0xab,0x73,0x42,0x1e,0x73,0xc8, +0x8b,0xee,0xbd,0xf9,0xe5,0xee,0xbb,0x1f,0x0e,0x64,0xd0,0x3b,0x75,0x6f,0xa7,0x1e, +0xa8,0x11,0x4b,0xd7,0xec,0x19,0x72,0x8c,0x1c,0x7b,0x8a,0x3c,0xe5,0x6f,0xd9,0x70, +0xc1,0x68,0xd6,0x37,0xe6,0xe3,0x69,0x9b,0xb8,0xeb,0xd3,0x72,0x74,0xdb,0xc9,0x2d, +0xeb,0x6d,0x2d,0x9d,0xca,0x79,0x29,0xf6,0xa9,0xac,0x87,0x30,0x4b,0x9e,0xc3,0x6c, +0xf4,0x83,0x96,0xa6,0xcc,0xd0,0x31,0x99,0x25,0xca,0x09,0xdd,0xfe,0x8f,0x19,0xf2, +0x5c,0xc7,0xb4,0x75,0x6c,0xe7,0x0c,0x49,0x01,0x81,0xa9,0xed,0x6d,0x3e,0xa4,0xdc, +0xc1,0x1d,0xaf,0x60,0x1c,0x9e,0xa0,0x86,0x52,0x34,0xd3,0x7f,0x13,0xba,0x37,0xfc, +0xbc,0x33,0x2c,0x79,0xb6,0x13,0x8a,0x56,0x6f,0x0e,0x03,0xdd,0x0c,0x83,0xd6,0x87, +0xe6,0xf7,0xc3,0xeb,0x08,0xf8,0xd6,0x70,0xf0,0x2d,0x61,0xa0,0x8d,0x38,0xd5,0x5b, +0x8f,0xa9,0xb3,0x71,0xae,0x0a,0xdd,0xf6,0xfb,0x24,0xa8,0x71,0x4b,0x4d,0x70,0xc9, +0x28,0x8a,0x61,0x32,0x83,0xae,0x18,0x89,0xb5,0xd4,0x23,0x7b,0x58,0x29,0xa6,0xe4, +0x34,0x5c,0x12,0xea,0x11,0x7a,0x9d,0xc3,0xeb,0x29,0x22,0x85,0x02,0x4f,0x88,0x0a, +0x21,0x62,0xf7,0x06,0x10,0x91,0x7b,0x6e,0xae,0xad,0xc1,0x7c,0x35,0xf8,0x9c,0xc1, +0x2f,0x6b,0x6b,0x4e,0x08,0x31,0xab,0x92,0xfe,0xda,0x39,0xb0,0xa3,0x1f,0xc5,0xed, +0xbb,0x1a,0x63,0x2f,0x99,0x5f,0x18,0xf4,0xc0,0x1a,0x5d,0xcb,0xaa,0xa3,0x58,0xb8, +0x40,0x79,0xa9,0x10,0xb2,0xc4,0x3a,0x21,0xa3,0x90,0x41,0xe7,0x1c,0x13,0xbc,0x16, +0x4d,0x4d,0xcb,0x83,0xfe,0x8f,0x41,0x1d,0x68,0x57,0xac,0x73,0x6c,0x8c,0xd0,0xec, +0x40,0x4c,0x5b,0x62,0xc5,0x63,0xb2,0x5a,0x71,0xab,0x05,0xb3,0xdb,0x60,0x60,0xe1, +0x5e,0xb3,0x53,0xbd,0xf7,0xde,0xc0,0xfb,0xfe,0x7f,0xe3,0x77,0x25,0xfb,0xe7,0x3f, +0x09,0xdb,0xb2,0x83,0xf8,0xed,0xa6,0xbe,0xe6,0x0c,0xc9,0xcc,0xe4,0xdf,0x04,0xa3, +0x63,0x6a,0x3e,0xcc,0x31,0xd7,0xb7,0x88,0x64,0x3a,0xba,0xc3,0x15,0x54,0xf7,0x26, +0xf6,0x43,0x3a,0x28,0xff,0x2f,0x40,0x74,0x08,0xb3,0x3b,0xf0,0x73,0xdd,0x0e,0xee, +0xdc,0x49,0xbb,0x74,0x86,0xb2,0x1c,0x51,0x03,0x0f,0xd6,0x89,0x4e,0x72,0x01,0x23, +0xd6,0x27,0x40,0x23,0x4b,0x85,0xe8,0xc2,0xf2,0x1e,0xf7,0x95,0xc4,0x70,0x60,0x30, +0x83,0x8f,0x51,0x11,0x93,0xc0,0xe7,0x0d,0xd3,0x0d,0xcc,0x1b,0xa0,0x47,0x0f,0xfe, +0x8b,0xc7,0xa6,0x7a,0xc3,0xec,0xb6,0x9d,0x0c,0xc9,0xd3,0xde,0x82,0x3f,0xc5,0x0a, +0xfc,0xe5,0x6a,0xdc,0x0c,0xc9,0x0b,0xe0,0xf0,0x85,0xa5,0x18,0x1d,0x4b,0xf0,0x92, +0x2a,0x0e,0xaf,0x8a,0x74,0xa8,0x0e,0x90,0xf6,0xd0,0x7d,0x5d,0x02,0x56,0x6e,0xd5, +0x95,0x75,0x33,0x33,0xac,0x7a,0x17,0x27,0xfb,0x8b,0xd9,0x0c,0xdf,0x87,0xff,0x66, +0xd8,0x7d,0x08,0xce,0x89,0x12,0x0a,0x4f,0x86,0x92,0xba,0x95,0x48,0x6a,0x40,0xda, +0x00,0xd1,0x32,0xbe,0xb1,0xc7,0xa1,0x7a,0xcb,0xa5,0x62,0x2b,0x42,0xf5,0x56,0x08, +0x6e,0x6b,0x80,0xea,0xad,0x78,0xaa,0x03,0x31,0xa3,0x81,0xe7,0x3a,0x46,0xaf,0xeb, +0x5a,0x1b,0x13,0x9b,0xd5,0xc1,0x6c,0xe4,0xc1,0xdc,0xe7,0xc2,0x64,0x52,0xa8,0x0b, +0xe3,0x27,0x50,0x07,0x14,0x03,0x89,0x7b,0x21,0x55,0x9a,0x0c,0xa9,0xd2,0xde,0x72, +0xbd,0xa3,0x6c,0x76,0xf0,0x08,0x89,0xba,0x8b,0x12,0xa6,0x98,0x31,0x08,0x97,0x27, +0x43,0xb8,0xbc,0x37,0xc2,0x07,0xb6,0x8a,0x30,0xfa,0x87,0xec,0x14,0x09,0xef,0x15, +0xe1,0xc1,0x13,0xb7,0x8a,0xec,0xdb,0x66,0x91,0xe1,0xdb,0x45,0x18,0x6d,0x71,0xbb, +0x45,0x06,0xf6,0x8b,0x44,0x41,0x39,0xc8,0x5b,0xde,0x30,0x72,0xeb,0x5b,0x1d,0x1e, +0x6c,0x35,0x99,0xc4,0x56,0x93,0x7b,0x71,0xc3,0x08,0x67,0xb7,0xb9,0x46,0xee,0x7c, +0x42,0x8c,0x8b,0xb3,0x73,0xb3,0xa4,0x18,0x0e,0x72,0x65,0x03,0xc3,0x13,0x34,0xd1, +0x8a,0x63,0xe9,0xed,0xf5,0x20,0x3b,0x61,0x7b,0xf4,0x81,0x1f,0x7e,0xbb,0xa2,0x06, +0xb5,0xef,0x2e,0x45,0x3c,0xa3,0xb0,0xb7,0xc4,0x9d,0x54,0x14,0x5d,0x79,0xa4,0x59, +0x5a,0x9b,0x9a,0x76,0x5c,0xa5,0xdb,0x0c,0x46,0xae,0x3e,0x62,0x27,0x46,0xe2,0xee, +0x3c,0x0a,0x77,0x05,0xd1,0x5d,0xcc,0x7b,0x68,0x30,0x26,0xee,0xd7,0xc9,0xf6,0x4e, +0x27,0x2f,0x02,0xc5,0xef,0x7c,0x49,0x2a,0x1a,0x5e,0xd7,0xda,0x8e,0x38,0x91,0xbc, +0x3f,0xc2,0x65,0x31,0xc7,0xad,0x9c,0x38,0xec,0x84,0xa7,0x44,0x5f,0x24,0x9c,0xbd, +0x1c,0xca,0xf5,0x63,0xe9,0xc5,0x98,0x58,0xf8,0x53,0x5e,0xa0,0x68,0x4e,0xb2,0xf7, +0x11,0xd0,0x66,0xcc,0x3b,0x3a,0x1e,0xe3,0xdf,0xb1,0x63,0x72,0x12,0xde,0x7d,0xf9, +0xd1,0xce,0xcb,0x97,0x13,0x70,0x06,0x39,0xd0,0xe1,0x6c,0x44,0x6b,0xc1,0x4b,0x83, +0x0e,0x51,0xee,0x27,0x29,0xfa,0x16,0xad,0xd9,0xb6,0x4d,0x43,0xcb,0x19,0xe6,0x7a, +0xc4,0x85,0xa2,0x0c,0x00,0x26,0xd9,0xc3,0xfc,0x2c,0x94,0x12,0x0a,0xe4,0xd9,0xcf, +0xb7,0x9c,0x8d,0xc9,0xcb,0xee,0xc8,0x24,0xcc,0xb8,0xa9,0x81,0x27,0x23,0x6e,0x56, +0xe0,0xc9,0x88,0xf0,0x31,0xd2,0x91,0x2c,0x7f,0x15,0x23,0x23,0x14,0x27,0xce,0x21, +0x1d,0x8b,0x7d,0xa5,0x1e,0x63,0x26,0x94,0xba,0x84,0x02,0x91,0xcc,0x5b,0xbf,0xbc, +0x9f,0x82,0x3b,0x62,0x0b,0xc2,0x28,0xfc,0xe9,0xf4,0x20,0xca,0xf9,0x79,0x49,0x7a, +0xfe,0xf9,0xc1,0xe7,0x73,0xd5,0xcc,0xf7,0x39,0x70,0x66,0x0b,0x7d,0x5f,0x00,0x51, +0x13,0x66,0xf0,0xf0,0x2f,0x21,0x33,0x23,0x88,0xc2,0xc8,0x2a,0xd7,0x35,0x67,0xd9, +0x34,0x3b,0x38,0x83,0x05,0xd8,0x5c,0x2d,0x30,0xb4,0x70,0x5c,0x02,0xf0,0x23,0x9a, +0x11,0x8c,0xcb,0x10,0x87,0x69,0x1a,0xb0,0xa3,0xb4,0x3a,0x88,0x32,0x26,0x17,0x38, +0xdc,0x65,0x43,0x64,0x63,0x64,0x7e,0xee,0xc8,0xa4,0x13,0x24,0x45,0xad,0x53,0x0d, +0x34,0x24,0x3f,0x77,0xc4,0x69,0x3f,0x3c,0xdb,0x74,0x4f,0xaf,0xb3,0x79,0x2a,0xb8, +0x6f,0x28,0xa0,0xf9,0x0a,0x33,0x7c,0x36,0x11,0x49,0xdd,0xf8,0xfc,0x3c,0x1b,0xf2, +0xa9,0x59,0x0e,0x4a,0x8a,0x40,0xf5,0x2f,0x5f,0xe8,0xbd,0xf2,0xe1,0x8d,0xcf,0x4f, +0x85,0xa0,0xe4,0x78,0xa8,0x2b,0x2f,0x85,0xa0,0x8a,0x09,0xb8,0xce,0x86,0xa0,0x4a, +0xb1,0x50,0xbd,0x37,0xdf,0x0c,0x41,0x95,0x13,0x6a,0x7c,0x2d,0x04,0x55,0x89,0xc7, +0xf5,0xc2,0xc7,0x21,0xa8,0xe9,0x58,0xa8,0xfe,0xa5,0xf7,0x53,0xbc,0xc6,0x42,0xc8, +0x6a,0x0c,0xe4,0x7b,0x7f,0x4c,0x85,0xfb,0x22,0x14,0x2c,0xf7,0x27,0x94,0x61,0x41, +0x2f,0x6e,0xd6,0x99,0x8d,0x14,0xa5,0xa3,0x7f,0x54,0x51,0xe6,0xd7,0xfb,0x11,0x4d, +0x1f,0x9d,0x97,0xf3,0x42,0x04,0xfa,0x21,0x5c,0xfc,0x26,0x84,0x6f,0x79,0xba,0x60, +0x58,0x34,0x00,0x93,0x0a,0x33,0x78,0x68,0x51,0xc1,0x03,0x1a,0xc4,0x34,0xf2,0x18, +0x12,0xbe,0x64,0x08,0x79,0x6c,0x49,0xef,0xf8,0x24,0x61,0x60,0x2a,0x3d,0xa8,0xaa, +0xb1,0x53,0xa9,0x7b,0x5e,0x1a,0x8e,0x89,0x30,0x71,0xa1,0x20,0x3c,0xd4,0xec,0x41, +0x04,0x44,0x84,0x20,0x58,0x90,0x6e,0x38,0x5f,0xed,0xe3,0x0e,0xda,0x54,0x2c,0x6a, +0x1f,0x29,0x4f,0x50,0xb3,0x8d,0x28,0xcf,0xb6,0xf5,0x32,0x3f,0x20,0x9c,0xf4,0x74, +0x3c,0x26,0xbf,0x20,0xd1,0xce,0xe1,0x82,0x33,0x18,0x4f,0xf2,0x44,0x42,0xa1,0xab, +0x77,0x47,0xa8,0x3a,0xd3,0x5b,0xd4,0x6a,0x0e,0x3a,0xe2,0xc8,0xd2,0x12,0xe3,0x6c, +0x28,0x50,0xef,0x4d,0x27,0xf3,0xec,0x48,0x23,0xcb,0xec,0xb6,0xd5,0xa0,0x5f,0x3c, +0xe4,0x5e,0xac,0x82,0x5f,0x56,0xe0,0x8a,0x72,0x93,0x12,0x9d,0x9b,0x1f,0xc3,0xc8, +0xbe,0xd6,0x08,0xa0,0x29,0x67,0xe0,0x87,0xcb,0x5c,0x0b,0x27,0x71,0xb5,0xd4,0x30, +0x1a,0xb6,0x1e,0xc0,0x42,0xa5,0xec,0x1a,0x4a,0x7b,0x97,0xc0,0xab,0xf8,0x04,0xc6, +0x51,0xa6,0x14,0x97,0x7f,0x32,0x98,0x65,0xc3,0x16,0x3a,0xc2,0x56,0xc5,0xf0,0x95, +0xe7,0xd8,0x1d,0x6a,0x2c,0x6d,0xaf,0xa5,0x86,0x96,0x99,0x47,0x58,0xda,0x07,0xd2, +0xa9,0xae,0x71,0x8c,0x7e,0xea,0x97,0x1d,0x25,0x53,0xc7,0x13,0xbc,0x84,0xa7,0xd8, +0x61,0x33,0xfc,0x9e,0x3d,0x34,0x97,0x53,0x74,0x69,0x2b,0x95,0x8d,0xa2,0x78,0x98, +0x2b,0x9b,0xa2,0x09,0xb6,0xeb,0xeb,0x1a,0x38,0x76,0xcc,0xba,0xa6,0x1e,0xdd,0xb6, +0xff,0xe3,0xef,0x2b,0x0c,0x95,0xa1,0xd8,0x19,0xf8,0xa0,0x31,0xee,0x6f,0x21,0xe2, +0x52,0xf2,0x83,0xb5,0x2b,0x44,0xc6,0x76,0x94,0xd0,0x09,0xb4,0xde,0xc1,0xaf,0x4c, +0xd2,0x6b,0xf6,0x29,0xe3,0x94,0xeb,0x92,0xfb,0x49,0x77,0xa9,0x42,0xea,0xfb,0xb8, +0xcb,0xaa,0x77,0xe6,0x6a,0xff,0xcf,0x18,0xd5,0x4d,0xcd,0xa4,0xdc,0xcf,0xb0,0x7f, +0xf0,0x2a,0xde,0x72,0xb4,0x1e,0x18,0x38,0x8a,0x30,0xb4,0x6f,0x54,0xa2,0x86,0xd7, +0x3c,0x38,0x41,0x83,0xbb,0x44,0x13,0x68,0xfa,0x76,0x36,0x51,0xea,0xd1,0x4d,0x93, +0xe3,0xa6,0x51,0xb8,0xeb,0xd0,0xfc,0xa4,0x1e,0xda,0xed,0x88,0x22,0x10,0xb8,0x14, +0xab,0xdc,0xab,0xb8,0xf1,0x10,0xbf,0x09,0x33,0x6c,0x5b,0xf3,0x01,0x60,0x26,0x36, +0xee,0xbd,0x8f,0x0d,0x98,0xc2,0x6f,0xa0,0x72,0x31,0x73,0xf1,0x0b,0xb3,0xbd,0xfe, +0x84,0xc5,0xd6,0x6f,0x13,0xb5,0x22,0x2f,0xef,0x71,0x4a,0x95,0x6e,0x4f,0x1a,0x86, +0xc0,0xdd,0x14,0x9b,0x88,0x80,0xf5,0xbc,0x69,0xd5,0x83,0x74,0x80,0xe4,0xb3,0xae, +0x62,0x65,0x85,0x43,0x8b,0x9b,0xbd,0xd2,0x0f,0x51,0x9a,0x9e,0x7f,0xfe,0xa1,0x28, +0x6a,0xec,0x04,0x2e,0x6f,0x7b,0xf7,0xf2,0x67,0xec,0xb0,0xcb,0x9b,0xa7,0xce,0xde, +0x7c,0xf7,0x0b,0xda,0x8f,0xbe,0x3a,0x89,0xdb,0xee,0x33,0xaa,0xdb,0xc6,0x48,0x16, +0xe4,0xd3,0xc6,0x3f,0xfb,0xdf,0xfe,0x67,0xe0,0xc4,0xbc,0xc3,0x76,0x95,0xdd,0xb8, +0xf2,0xab,0x1b,0x57,0x3f,0x0d,0x85,0xe4,0x06,0x84,0x28,0x36,0x2d,0x90,0xee,0x7e, +0x8e,0x36,0x75,0x9b,0x1c,0x78,0x8e,0xb2,0x01,0x2f,0xfc,0x8e,0x1e,0xd8,0x8c,0xef, +0x37,0x61,0x70,0xbf,0xdd,0x40,0xbf,0x64,0x7d,0x34,0x9e,0x51,0xba,0x9f,0xac,0x61, +0x46,0xfd,0xfe,0xb0,0x46,0x94,0x12,0x99,0xe2,0x13,0xce,0xc6,0xf6,0x61,0xcf,0x45, +0x4a,0xd3,0x2d,0xbd,0xee,0x56,0x8e,0x6c,0xb0,0xdf,0x12,0xad,0x76,0xda,0x0a,0x96, +0x8b,0x08,0x36,0x3b,0xce,0x93,0xde,0x1c,0x4b,0x0b,0xb9,0xe1,0xd6,0x94,0x98,0xca, +0xe0,0x1e,0xce,0x59,0xb6,0x21,0xd1,0xdd,0x5b,0x04,0x8c,0x10,0x83,0xb0,0x73,0x92, +0xe0,0x43,0x2b,0x28,0xaa,0x6d,0x91,0x5a,0x1f,0x4f,0x67,0x7c,0x13,0x8d,0xdb,0xce, +0x39,0x3b,0x2e,0x0e,0x5a,0x96,0xc3,0x21,0x4a,0x4c,0xdb,0x71,0xe1,0x95,0xbd,0x13, +0x12,0xe2,0xc8,0xec,0x78,0x38,0xa2,0x84,0x50,0x9e,0x78,0x9a,0x97,0xdf,0x4d,0x80, +0xdb,0x21,0xe9,0xc6,0x73,0xda,0xdb,0xe3,0x25,0x13,0xa0,0x10,0x31,0xce,0xb0,0x7d, +0x6c,0x03,0x42,0xc4,0xa4,0x83,0xf6,0x19,0x0e,0x12,0x5a,0x39,0x93,0x85,0xc1,0x04, +0xdb,0x90,0x37,0xea,0x3b,0xa0,0x91,0x70,0x11,0x1e,0x7c,0xca,0x6c,0x9c,0xbc,0x30, +0xe5,0x03,0x8d,0x47,0xec,0x23,0x74,0xfc,0x51,0x65,0xa8,0x52,0x23,0x98,0x1c,0xfe, +0xb7,0x87,0x42,0x12,0x9f,0x6c,0xcc,0x04,0xf4,0x0c,0x9c,0x20,0xcc,0x87,0xf9,0x42, +0x01,0xc0,0xc3,0x47,0x0e,0xc6,0x9e,0xe5,0x7b,0xd8,0x51,0x56,0xf0,0x71,0xd4,0x7e, +0xc7,0x4f,0x8c,0x77,0xad,0xa1,0x67,0x79,0xb9,0x20,0xb1,0x4a,0x9e,0x9e,0x7a,0x8a, +0x5f,0x9e,0xf6,0xf3,0x0a,0x0d,0xb3,0x41,0xc5,0x25,0xe7,0xbd,0x0a,0xc1,0xaf,0x82, +0xeb,0xf6,0x63,0x5a,0x9d,0xf7,0x7a,0x4a,0xc8,0x03,0x57,0xa3,0x85,0x9b,0x20,0x20, +0x43,0x37,0xd2,0x06,0x5f,0x01,0x77,0x8f,0xe7,0x53,0x75,0xdb,0x5d,0xa8,0x0a,0x07, +0x17,0x39,0x71,0x03,0xe8,0x61,0x22,0xc6,0x58,0xe4,0x74,0xed,0x70,0x2f,0xb8,0xcd, +0x8f,0x39,0xf3,0x3a,0xf4,0xf1,0xef,0x61,0xa7,0x52,0x87,0x00,0xfd,0x08,0x7f,0xe8, +0xe9,0xe0,0x76,0x16,0x6a,0xf1,0xf8,0x5b,0x80,0xdd,0xad,0xbf,0x6a,0x2a,0x3e,0x56, +0x4b,0xb7,0xdd,0x7a,0x01,0xef,0x27,0xdc,0x4f,0x8d,0x63,0xd8,0xda,0xbb,0x4e,0x17, +0x06,0xf2,0x6d,0x78,0xd9,0xe0,0x3f,0xc8,0x1e,0xec,0x1a,0x65,0x96,0xb9,0xd0,0x3b, +0x7d,0x66,0xe7,0x8d,0x5f,0xb0,0xdf,0xfe,0x6f,0x2f,0xb3,0x0b,0x5c,0x09,0xf8,0xea, +0xfa,0xce,0xeb,0xef,0x73,0xde,0x6e,0xc8,0x66,0x47,0x0e,0xe1,0x17,0xda,0x1f,0x43, +0x85,0x32,0x4a,0xbe,0xe8,0xa7,0xdc,0xf9,0xad,0x63,0x7e,0xc9,0x1c,0x5e,0x71,0xc1, +0xc5,0x68,0x74,0x31,0x3c,0xef,0xc3,0x8c,0xdf,0xff,0xd5,0x1f,0x77,0xff,0x70,0x9a, +0x7d,0xfb,0x1d,0x77,0xb7,0x06,0x9f,0x7f,0x4f,0x3e,0x72,0x1d,0x3a,0x35,0x74,0x86, +0x1e,0xbf,0x0a,0x90,0xa1,0x3b,0xb1,0x83,0x18,0x69,0x84,0x32,0x9a,0xf3,0xa0,0x9f, +0x04,0xef,0x85,0xed,0xa5,0xbb,0xf2,0x5a,0xff,0xb7,0x5f,0xee,0xbc,0x77,0x85,0x54, +0x4a,0xd3,0x52,0xa5,0x4a,0x7a,0x9f,0xfd,0xa1,0x77,0xe1,0x6f,0xe3,0x89,0x32,0xe3, +0x42,0x8c,0x28,0x63,0xfd,0x0e,0x39,0xd1,0xb4,0xdc,0x44,0xa6,0x7f,0x3f,0xb4,0x8c, +0x72,0xfd,0xa4,0x06,0x92,0x66,0xb3,0x6c,0x0b,0x78,0x89,0x81,0xbf,0x76,0xda,0x3b, +0xce,0x99,0xca,0x7b,0x7e,0xcd,0xef,0x58,0x77,0x57,0x2b,0xc2,0x31,0xc9,0x03,0xa7, +0xc3,0xff,0x48,0xfd,0x3c,0x37,0x2c,0xbc,0x51,0x81,0xdd,0xa0,0xb9,0x8c,0xc7,0xbc, +0xb0,0xae,0x83,0x54,0xf9,0xcc,0x47,0x1f,0x00,0xe6,0x86,0x06,0x33,0x13,0x11,0xd2, +0x44,0x01,0x05,0x87,0x55,0x63,0x6b,0xb0,0x34,0x29,0xa3,0x90,0xf1,0x97,0xc5,0xa5, +0x78,0xc1,0x1f,0x2a,0xb5,0x6e,0x05,0xfe,0xf1,0xa7,0x5c,0x3f,0x3c,0xcd,0xba,0x78, +0xf7,0xab,0x37,0x7b,0x57,0xfe,0xf0,0xcd,0xb5,0x37,0x0e,0x3c,0xe7,0x02,0x6f,0xff, +0x9f,0xa7,0x7d,0x33,0x7f,0xdb,0x6f,0xb3,0x49,0x3f,0x67,0x18,0x6a,0xa8,0xdb,0x14, +0x57,0xca,0x19,0x3a,0x66,0x38,0x02,0x3a,0xf4,0x77,0xb1,0x1c,0x90,0x01,0x23,0xd0, +0xa6,0x47,0x1c,0x64,0x86,0xce,0x7f,0xc3,0x7b,0xd2,0x5b,0xb6,0xe0,0x29,0xa2,0xc7, +0x87,0x8f,0x26,0xe9,0xbd,0xbf,0xee,0xfe,0xdd,0x1b,0x66,0x93,0xaa,0x9c,0xe6,0xde, +0x52,0xe9,0x59,0x02,0xb7,0x18,0x77,0xcf,0xb9,0xeb,0x7e,0xe2,0x11,0x34,0xe8,0x41, +0x7c,0xc0,0x3b,0x83,0x99,0x99,0xaa,0xe3,0xbc,0xd9,0x70,0xe8,0x41,0x90,0xe0,0x42, +0xb3,0x4d,0xdf,0x0c,0x05,0x38,0x6f,0x83,0xa3,0x81,0xd2,0x19,0x0a,0xbc,0xe1,0x00, +0x1f,0xad,0x24,0x03,0x28,0x5f,0x43,0x06,0x8f,0xbe,0x65,0xf5,0xe8,0xcd,0x0b,0xe1, +0xb9,0x73,0x9f,0x27,0xbf,0xc1,0x15,0xab,0x11,0x13,0x18,0xa5,0xc9,0x1f,0x91,0x81, +0xb1,0x1a,0x8a,0xac,0xe4,0xf3,0xe1,0x05,0x1f,0x3f,0xb8,0xc3,0xc3,0xf3,0x05,0xb8, +0x4e,0xd8,0xcb,0x50,0xf5,0x93,0x32,0x5c,0x82,0xe6,0x06,0x56,0x85,0xfc,0xf6,0x5a, +0x1a,0x9b,0x78,0xc6,0xdd,0x66,0xe0,0x77,0xc8,0xb0,0x2d,0x06,0x81,0x39,0x14,0xb2, +0x8f,0xd8,0xd7,0x51,0x06,0xce,0x34,0xdd,0xb2,0xeb,0xc0,0x8e,0xa1,0x27,0x9a,0x32, +0x90,0x50,0x58,0x18,0xee,0xeb,0xaa,0xbe,0x11,0x5f,0x2c,0x7c,0xf8,0x28,0x14,0x17, +0x69,0xf1,0x60,0x5f,0x64,0x68,0x97,0xd7,0x96,0xbd,0x0c,0xdd,0x11,0xbb,0x4e,0x69, +0x98,0x43,0xd3,0x6c,0x5d,0xc2,0x42,0x6b,0x14,0x16,0x9f,0x45,0xe1,0x52,0x19,0x24, +0xac,0x15,0xb2,0x91,0x67,0x4b,0x9a,0xbe,0xde,0x74,0x92,0xf9,0xc8,0x11,0x38,0x1b, +0x61,0x64,0x88,0xb9,0xa0,0xaf,0x7a,0xef,0xfc,0xf5,0xe6,0x3b,0x57,0x77,0x5e,0x3e, +0x33,0xd8,0x46,0x2e,0xd7,0x3f,0xb6,0x9d,0x74,0x2b,0x03,0x3b,0xa2,0x2f,0x4f,0xf7, +0x0b,0x0c,0x3d,0x88,0x95,0x3f,0xde,0x2f,0xb1,0xd3,0xb8,0xbd,0x07,0x01,0x43,0xfc, +0x87,0x49,0x2c,0x8b,0x69,0x3e,0x4f,0xfb,0x6c,0xcc,0x31,0x58,0xf8,0xf9,0x65,0x7f, +0xed,0x9e,0x6e,0x3f,0x9b,0xa7,0x09,0xd2,0x56,0x2b,0x2d,0xec,0xbc,0xfb,0x09,0xd8, +0xeb,0x60,0x93,0xb0,0xb3,0xe2,0x7a,0x17,0x2f,0x7d,0x73,0xed,0xed,0x90,0xb1,0x63, +0xcd,0xcf,0xe3,0x44,0xef,0xc6,0xa8,0xf8,0xbe,0xc5,0x9a,0x11,0x37,0xfb,0xd8,0x4f, +0x3a,0x93,0xb0,0xbc,0xc1,0x79,0xb7,0x91,0x02,0xb1,0x69,0xb8,0xee,0xe7,0xa2,0xc7, +0x76,0xb7,0x18,0xe1,0x61,0x17,0x4b,0x80,0x91,0x27,0x24,0xef,0x5c,0x8c,0xdf,0xdb, +0xc1,0xed,0xf7,0x7f,0xc8,0x7d,0xf6,0xfc,0xf3,0xee,0xc5,0xfc,0x7c,0x21,0x48,0x7e, +0xf0,0x9e,0x49,0xd1,0xad,0xf5,0xd1,0xad,0x2f,0x63,0xc9,0x4b,0xbc,0xfb,0x08,0xd2, +0xda,0x3f,0xf7,0xfe,0xcd,0xdf,0xbf,0x02,0xd2,0x1a,0x3a,0xba,0x0f,0x4f,0x77,0x71, +0x09,0x0e,0xaa,0xe7,0xbf,0x66,0x95,0x77,0x8f,0x14,0x9b,0xcb,0xe3,0x4a,0x20,0x5c, +0xfc,0x7f,0xbd,0x44,0x19,0x8e,0x4f,0x1a,0x01,0x00}; diff --git a/TC1/http_server/web_log.c b/TC1/http_server/web_log.c index 2987ae7..fc5a4c1 100644 --- a/TC1/http_server/web_log.c +++ b/TC1/http_server/web_log.c @@ -2,6 +2,8 @@ #include #include #include +#include "mico.h" + #include"http_server/web_log.h" @@ -36,6 +38,9 @@ char* GetLogRecord() tmp += strlen(tmp); if (!log_record.logs[i%LOG_NUM]) continue; sprintf(tmp, "%s\n", log_record.logs[i%LOG_NUM]); + if(i == log_record.idx){ + sprintf(tmp, "%s\nFreeMem %d bytes\n",log_record.logs[i%LOG_NUM],MicoGetMemoryInfo()->free_memory); + } } return log_record_str; } diff --git a/TC1/main.c b/TC1/main.c index c66c7e4..00f88aa 100644 --- a/TC1/main.c +++ b/TC1/main.c @@ -10,7 +10,6 @@ #include "user_wifi.h" #include "time_server/user_rtc.h" #include "user_power.h" -#include "mqtt_server/user_mqtt_client.h" #include "http_server/app_httpd.h" #include "timed_task/timed_task.h" @@ -186,8 +185,6 @@ int application_start(void) { } } KeyInit(); - err = UserMqttInit(); - require_noerr(err, exit); err = UserRtcInit(); require_noerr(err, exit); PowerInit(); @@ -197,12 +194,12 @@ int application_start(void) { err = mico_rtos_create_thread(NULL, MICO_APPLICATION_PRIORITY, "p_count", (mico_thread_function_t) schedule_p_count_task, - 0x2000, 0); + 0x800, 0); require_noerr_string(err, exit, "ERROR: Unable to start the p_count thread."); err = mico_rtos_create_thread(NULL, MICO_APPLICATION_PRIORITY, "mqtt_power_report", (mico_thread_function_t) reportMqttPowerInfoThread, - 0x2000, 0); + 0x800, 0); require_noerr_string(err, exit, "ERROR: Unable to start the mqtt_power_report thread."); @@ -211,7 +208,6 @@ int application_start(void) { if (user_config->task_top && now >= user_config->task_top->prs_time) { ProcessTask(); } - mico_thread_msleep(1000); } diff --git a/TC1/main.h b/TC1/main.h index 2b39c77..dda723c 100644 --- a/TC1/main.h +++ b/TC1/main.h @@ -16,7 +16,7 @@ #define wifi_log(M, ...) custom_log("WIFI", M, ##__VA_ARGS__); web_log("WIFI", M, ##__VA_ARGS__); #define power_log(M, ...) custom_log("POWER", M, ##__VA_ARGS__); web_log("POWER", M, ##__VA_ARGS__); -#define VERSION "v2.1.6" +#define VERSION "v2.2.0" #define TYPE 1 #define TYPE_NAME "TC1" diff --git a/TC1/mqtt_server/user_mqtt_client.c b/TC1/mqtt_server/user_mqtt_client.c index 8a7801e..63e5200 100644 --- a/TC1/mqtt_server/user_mqtt_client.c +++ b/TC1/mqtt_server/user_mqtt_client.c @@ -53,6 +53,7 @@ mico_queue_t mqtt_msg_send_queue = NULL; Client c; // mqtt client object Network n; // socket network for mqtt client +volatile bool mqtt_thread_should_exit = false; static mico_worker_thread_t mqtt_client_worker_thread; /* Worker thread to manage send/recv events */ //static mico_timed_event_t mqtt_client_send_event; @@ -98,10 +99,32 @@ void UserMqttTimerFunc(void *arg) { } } +OSStatus UserMqttDeInit(void) { + OSStatus err = kNoErr; + + // 1. 请求线程退出 + mqtt_thread_should_exit = true; + + return err; +} + +void clear_mqtt_msg_send_queue(void) { +if(mqtt_msg_send_queue == NULL){ +return; +} + void *msg = NULL; + while (mico_rtos_is_queue_empty(&mqtt_msg_send_queue) == false) { + if (mico_rtos_pop_from_queue(&mqtt_msg_send_queue, &msg, 0) == kNoErr) { + if (msg) free(msg); // 释放消息内存,避免泄漏 + } + } +} + /* Application entrance */ OSStatus UserMqttInit(void) { OSStatus err = kNoErr; - +if(mqtt_msg_send_queue != NULL) + return err; sprintf(topic_set, MQTT_CLIENT_SUB_TOPIC1); sprintf(topic_state, MQTT_CLIENT_PUB_TOPIC, str_mac); //TODO size:0x800 @@ -136,13 +159,32 @@ OSStatus UserMqttInit(void) { static OSStatus UserMqttClientRelease(Client *c, Network *n) { OSStatus err = kNoErr; - if (c->isconnected) MQTTDisconnect(c); + if (c == NULL || n == NULL) return kParamErr; - n->disconnect(n); // close connection + if (c->isconnected) { + MQTTDisconnect(c); + c->isconnected = 0; + } - if (MQTT_SUCCESS != MQTTClientDeinit(c)) { mqtt_log("MQTTClientDeinit failed!"); + if (c->buf) { + free(c->buf); + c->buf = NULL; + } + + if (c->readbuf) { + free(c->readbuf); + c->readbuf = NULL; + } + + if (n->disconnect) { + n->disconnect(n); + } + + if (MQTT_SUCCESS != MQTTClientDeinit(c)) { + mqtt_log("MQTTClientDeinit failed!"); err = kDeletedErr; } + return err; } @@ -177,6 +219,9 @@ static OSStatus MqttMsgPublish(Client *c, const char *topic, char qos, char reta } void registerMqttEvents(void) { +if(timer_status !=0){ + mico_stop_timer(&timer_handle); + } timer_status = 0; mico_start_timer(&timer_handle); } @@ -202,16 +247,18 @@ void MqttClientThread(mico_thread_arg_t arg) { /* create msg send queue event fd */ msg_send_event_fd = mico_create_event_fd(mqtt_msg_send_queue); + mico_init_timer(&timer_handle, 150, UserMqttTimerFunc, &arg); + require_action(msg_send_event_fd >= 0, exit, mqtt_log("ERROR: create msg send queue event fd failed!!!")); - + mqtt_thread_should_exit = false; MQTT_start: isconnect = false; /* 1. create network connection */ ssl_settings.ssl_enable = false; LinkStatusTypeDef LinkStatus; - while (1) { + while (!mqtt_thread_should_exit) { isconnect = false; mico_rtos_thread_sleep(3); if (MQTT_SERVER[0] < 0x20 || MQTT_SERVER[0] > 0x7f || MQTT_SERVER_PORT < 1) @@ -228,7 +275,8 @@ void MqttClientThread(mico_thread_arg_t arg) { if (rc == MQTT_SUCCESS) break; //mqtt_log("ERROR: MQTT network connect err=%d, reconnect after 3s...", rc); - }mqtt_log("MQTT network connect success!"); + } + mqtt_log("MQTT network connect success!"); /* 2. init mqtt client */ //c.heartbeat_retry_max = 2; @@ -249,7 +297,7 @@ void MqttClientThread(mico_thread_arg_t arg) { rc = MQTTConnect(&c, &connectData); require_noerr_string(rc, MQTT_reconnect, "ERROR: MQTT client connect err."); - mqtt_log("MQTT client connect success!"); + mqtt_log("MQTT client connect success, result: %d ", rc); UserLedSet(RelayOut() && user_config->power_led_enabled); @@ -269,10 +317,9 @@ void MqttClientThread(mico_thread_arg_t arg) { UserMqttSendTotalSocketState(); UserMqttSendChildLockState(); - mico_init_timer(&timer_handle, 150, UserMqttTimerFunc, &arg); registerMqttEvents(); /* 5. client loop for recv msg && keepalive */ - while (1) { + while (!mqtt_thread_should_exit) { isconnect = true; no_mqtt_msg_exchange = true; FD_ZERO(&readfds); @@ -298,13 +345,12 @@ void MqttClientThread(mico_thread_arg_t arg) { err = MqttMsgPublish(&c, p_send_msg->topic, p_send_msg->qos, p_send_msg->retained, (const unsigned char *) p_send_msg->data, p_send_msg->datalen); - + free(p_send_msg); + p_send_msg = NULL; require_noerr_string(err, MQTT_reconnect, "ERROR: MQTT publish data err"); //mqtt_log("MQTT publish data success! send_topic=[%s], msg=[%ld].", p_send_msg->topic, p_send_msg->datalen); no_mqtt_msg_exchange = false; - free(p_send_msg); - p_send_msg = NULL; } } @@ -320,7 +366,7 @@ void MqttClientThread(mico_thread_arg_t arg) { mqtt_log("Disconnect MQTT client, and reconnect after 5s, reason: mqtt_rc = %d, err = %d", rc, err); timer_status = 100; - + clear_mqtt_msg_send_queue(); UserMqttClientRelease(&c, &n); isconnect = false; UserLedSet(-1); @@ -329,10 +375,12 @@ mqtt_log("Disconnect MQTT client, and reconnect after 5s, reason: mqtt_rc = %d, mico_rtos_thread_sleep(5); goto MQTT_start; - exit: - isconnect = false;mqtt_log("EXIT: MQTT client exit with err = %d.", err); +exit: + isconnect = false; + mqtt_log("EXIT: MQTT client exit with err = %d.", err); UserMqttClientRelease(&c, &n); - mico_rtos_delete_thread(NULL); + mico_rtos_delete_thread(NULL); // 自删 + return; } // callback, msg received from mqtt server @@ -423,7 +471,9 @@ void ProcessHaCmd(char *cmd) { childLockEnabled = on; UserMqttSendChildLockState(); mico_system_context_update(sys_config); - }else if (strcmp(cmd, "reboot") == 0) { + }else if (strcmp(cmd, "reboot") == ' ') { + sscanf(cmd, "reboot %s", mac); + if (strcmp(mac, str_mac)) return; MicoSystemReboot(); // 立即重启设备 } } @@ -431,6 +481,9 @@ void ProcessHaCmd(char *cmd) { OSStatus UserMqttSendTopic(char *topic, char *arg, char retained) { OSStatus err = kUnknownErr; p_mqtt_send_msg_t p_send_msg = NULL; + if(mqtt_msg_send_queue == NULL|| !isconnect){ + return err; + } // mqtt_log("======App prepare to send ![%d]======", MicoGetMemoryInfo()->free_memory); @@ -533,7 +586,7 @@ void UserMqttHassAuto(char socket_id) { socket_id--; char *send_buf = NULL; char *topic_buf = NULL; - send_buf = (char *) malloc(800); + send_buf = (char *) malloc(600); topic_buf = (char *) malloc(64); if (send_buf != NULL && topic_buf != NULL) { sprintf(topic_buf, "homeassistant/switch/%s/socket_%d/config", str_mac, socket_id); @@ -545,6 +598,7 @@ void UserMqttHassAuto(char socket_id) { "\"cmd_t\":\"device/ztc1/set\"," "\"pl_on\":\"set socket %s %d 1\"," "\"pl_off\":\"set socket %s %d 0\"," + "\"device_class\":\"outlet\"," "\"device\":{" "\"identifiers\":[\"tc1_%s\"]," "\"name\":\"%s\"," @@ -574,13 +628,13 @@ void UserMqttHassAutoRebootButton(void) { "\"uniq_id\":\"tc1_%s_reboot\"," "\"object_id\":\"tc1_%s_reboot\"," "\"cmd_t\":\"device/ztc1/set\"," - "\"pl_prs\":\"reboot\"," + "\"pl_prs\":\"reboot %s\"," "\"device\":{" "\"identifiers\":[\"tc1_%s\"]," "\"name\":\"%s\"," "\"model\":\"TC1\"," "\"manufacturer\":\"PHICOMM\"}}", - str_mac,str_mac,str_mac, sys_config->micoSystemConfig.name); + str_mac,str_mac,str_mac,str_mac, sys_config->micoSystemConfig.name); UserMqttSendTopic(topic_buf, send_buf, 1); } if (send_buf) free(send_buf); @@ -602,6 +656,7 @@ void UserMqttHassAutoLed(void) { "\"cmd_t\":\"device/ztc1/set\"," "\"pl_on\":\"set led %s 1\"," "\"pl_off\":\"set led %s 0\"," + "\"device_class\":\"outlet\"," "\"device\":{" "\"identifiers\":[\"tc1_%s\"]," "\"name\":\"%s\"," @@ -631,6 +686,7 @@ void UserMqttHassAutoChildLock(void) { "\"cmd_t\":\"device/ztc1/set\"," "\"pl_on\":\"set childLock %s 1\"," "\"pl_off\":\"set childLock %s 0\"," + "\"device_class\":\"outlet\"," "\"device\":{" "\"identifiers\":[\"tc1_%s\"]," "\"name\":\"%s\"," @@ -660,6 +716,7 @@ void UserMqttHassAutoTotalSocket(void) { "\"cmd_t\":\"device/ztc1/set\"," "\"pl_on\":\"set total_socket %s 1\"," "\"pl_off\":\"set total_socket %s 0\"," + "\"device_class\":\"outlet\"," "\"device\":{" "\"identifiers\":[\"tc1_%s\"]," "\"name\":\"%s\"," @@ -768,7 +825,7 @@ void UserMqttHassAutoPower(void) { char topic_buf[128] = {0}; char send_buf[128] = {0}; -void UserMqttHassPower(void) { +extern void UserMqttHassPower(void) { sprintf(topic_buf, "homeassistant/sensor/%s/power/state", str_mac); sprintf(send_buf, "{\"power\":\"%.3f\"}", real_time_power / 10); UserMqttSendTopic(topic_buf, send_buf, 0); diff --git a/TC1/mqtt_server/user_mqtt_client.h b/TC1/mqtt_server/user_mqtt_client.h index d384d07..1e49744 100644 --- a/TC1/mqtt_server/user_mqtt_client.h +++ b/TC1/mqtt_server/user_mqtt_client.h @@ -22,6 +22,7 @@ #define MQTT_LED_ENABLED user_config->power_led_enabled extern OSStatus UserMqttInit(void); +extern OSStatus UserMqttDeInit(void); extern OSStatus UserMqttSend(char *arg); diff --git a/TC1/ota_server/ota_server.c b/TC1/ota_server/ota_server.c index 81bb827..fa9d8d5 100644 --- a/TC1/ota_server/ota_server.c +++ b/TC1/ota_server/ota_server.c @@ -29,7 +29,6 @@ * IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ****************************************************************************** */ -#include "mico.h" #include "main.h" #include "HTTPUtils.h" #include "SocketUtils.h" @@ -37,12 +36,6 @@ #include "url.h" #include "http_server/web_log.h" -#if OTA_DEBUG -#define ota_server_log(M, ...) custom_log("OTA", M, ##__VA_ARGS__) -#else -#define ota_server_log(M, ...) -#endif - static ota_server_context_t *ota_server_context = NULL; static HTTPHeader_t *httpHeader = NULL; @@ -50,155 +43,155 @@ static CRC16_Context crc_context; static md5_context md5; static uint32_t offset = 0; -static OSStatus onReceivedData( struct _HTTPHeader_t * httpHeader, +static OSStatus OnReceivedData(struct _HTTPHeader_t * httpHeader, uint32_t pos, uint8_t *data, size_t len, - void * userContext ); + void * userContext); -static void hex2str(uint8_t *hex, int hex_len, char *str) +static void Hex2Str(char *hex, int hex_len, char *str) { - int i = 0; - for(i=0; i= 'A') && (*(str+i) <= 'Z') ){ - *(str+i) += 32; - } + int i = 0; + for(i=0; i= 'A') && (*(str+i) <= 'Z')){ + *(str+i) += 32; } + } } -static int ota_server_send( uint8_t *data, int datalen ) +static int OtaServerSend(char *data, int datalen) { int res = 0; - if( ota_server_context->download_url.HTTP_SECURITY == HTTP_SECURITY_HTTP ){ - res = send( ota_server_context->download_url.ota_fd, data, datalen, 0 ); + if(ota_server_context->download_url.HTTP_SECURITY == HTTP_SECURITY_HTTP){ + res = send(ota_server_context->download_url.ota_fd, data, datalen, 0); } #if OTA_USE_HTTPS - if( ota_server_context->download_url.HTTP_SECURITY == HTTP_SECURITY_HTTPS ){ - res = ssl_send( ota_server_context->download_url.ota_ssl, data, datalen); + if(ota_server_context->download_url.HTTP_SECURITY == HTTP_SECURITY_HTTPS){ + res = ssl_send(ota_server_context->download_url.ota_ssl, data, datalen); } #endif return res; } -static OSStatus ota_server_connect( struct sockaddr_in *addr, socklen_t addrlen ) +static OSStatus OtaServerConnect(struct sockaddr_in *addr, socklen_t addrlen) { OSStatus err = kNoErr; #if OTA_USE_HTTPS int ssl_errno = 0; #endif - err = connect( ota_server_context->download_url.ota_fd, (struct sockaddr *)addr, addrlen ); - require_noerr_string( err, exit, "ERROR: connect ota server failed" ); + err = connect(ota_server_context->download_url.ota_fd, (struct sockaddr *)addr, addrlen); + require_noerr_string(err, exit, "ERROR: connect ota server failed"); #if OTA_USE_HTTPS - if( ota_server_context->download_url.HTTP_SECURITY == HTTP_SECURITY_HTTPS ){ - ota_server_context->download_url.ota_ssl = ssl_connect( ota_server_context->download_url.ota_fd, 0, NULL, &ssl_errno ); - require_action_string( ota_server_context->download_url.ota_ssl != NULL, exit, err = kConnectionErr,"ERROR: ssl disconnect" ); + if(ota_server_context->download_url.HTTP_SECURITY == HTTP_SECURITY_HTTPS){ + ota_server_context->download_url.ota_ssl = ssl_connect(ota_server_context->download_url.ota_fd, 0, NULL, &ssl_errno); + require_action_string(ota_server_context->download_url.ota_ssl != NULL, exit, err = kConnectionErr,"ERROR: ssl disconnect"); } #endif - exit: +exit: return err; } -static int ota_server_read_header( HTTPHeader_t *httpHeader ) +static int OtaServerReadHeader(HTTPHeader_t *httpHeader) { int res = 0; - if( ota_server_context->download_url.HTTP_SECURITY == HTTP_SECURITY_HTTP ){ - res = SocketReadHTTPHeader( ota_server_context->download_url.ota_fd, httpHeader ); + if(ota_server_context->download_url.HTTP_SECURITY == HTTP_SECURITY_HTTP){ + res = SocketReadHTTPHeader(ota_server_context->download_url.ota_fd, httpHeader); } - if( ota_server_context->download_url.HTTP_SECURITY == HTTP_SECURITY_HTTPS ){ + if(ota_server_context->download_url.HTTP_SECURITY == HTTP_SECURITY_HTTPS){ #if OTA_USE_HTTPS - res = SocketReadHTTPSHeader( ota_server_context->download_url.ota_ssl, httpHeader ); + res = SocketReadHTTPSHeader(ota_server_context->download_url.ota_ssl, httpHeader); #endif } return res; } -static int ota_server_read_body( HTTPHeader_t *httpHeader ) +static int OtaServerReadBody(HTTPHeader_t *httpHeader) { int res = 0; - if( ota_server_context->download_url.HTTP_SECURITY == HTTP_SECURITY_HTTP ){ - res = SocketReadHTTPBody( ota_server_context->download_url.ota_fd, httpHeader ); + if(ota_server_context->download_url.HTTP_SECURITY == HTTP_SECURITY_HTTP){ + res = SocketReadHTTPBody(ota_server_context->download_url.ota_fd, httpHeader); } - if( ota_server_context->download_url.HTTP_SECURITY == HTTP_SECURITY_HTTPS ){ + if(ota_server_context->download_url.HTTP_SECURITY == HTTP_SECURITY_HTTPS){ #if OTA_USE_HTTPS - res = SocketReadHTTPSBody( ota_server_context->download_url.ota_ssl, httpHeader ); + res = SocketReadHTTPSBody(ota_server_context->download_url.ota_ssl, httpHeader); #endif } return res; } -static int ota_server_send_header( void ) +static int OtaServerSendHeader(void) { char *header = NULL; int j = 0; int ret = 0; - header = malloc( OTA_SEND_HEAD_SIZE ); - memset( header, 0x00, OTA_SEND_HEAD_SIZE ); + header = malloc(OTA_SEND_HEAD_SIZE); + memset(header, 0x00, OTA_SEND_HEAD_SIZE); - j = sprintf( header, "GET " ); - j += sprintf( header + j, "/%s HTTP/1.1\r\n", ota_server_context->download_url.url ); + j = sprintf(header, "GET "); + j += sprintf(header + j, "/%s HTTP/1.1\r\n", ota_server_context->download_url.url); - if ( ota_server_context->download_url.port == 0 ) + if (ota_server_context->download_url.port == 0) { - j += sprintf( header + j, "Host: %s\r\n", ota_server_context->download_url.host ); + j += sprintf(header + j, "Host: %s\r\n", ota_server_context->download_url.host); } else { - j += sprintf( header + j, "Host: %s:%d\r\n", ota_server_context->download_url.host, ota_server_context->download_url.port ); + j += sprintf(header + j, "Host: %s:%d\r\n", ota_server_context->download_url.host, ota_server_context->download_url.port); } - j += sprintf( header + j, "Connection: close\r\n" ); //Keep-Alive close + j += sprintf(header + j, "Connection: close\r\n"); //Keep-Alive close //Range: bytes=start-end - if ( ota_server_context->download_state.download_begin_pos > 0 ) + if (ota_server_context->download_state.download_begin_pos > 0) { - if ( ota_server_context->download_state.download_end_pos > 0 ) + if (ota_server_context->download_state.download_end_pos > 0) { - j += sprintf( header + j, "Range: bytes=%d-%d\r\n", ota_server_context->download_state.download_begin_pos, - ota_server_context->download_state.download_end_pos ); + j += sprintf(header + j, "Range: bytes=%d-%d\r\n", ota_server_context->download_state.download_begin_pos, + ota_server_context->download_state.download_end_pos); } else { - j += sprintf( header + j, "Range: bytes=%d-\r\n", ota_server_context->download_state.download_begin_pos ); + j += sprintf(header + j, "Range: bytes=%d-\r\n", ota_server_context->download_state.download_begin_pos); } } - j += sprintf( header + j, "\r\n" ); + j += sprintf(header + j, "\r\n"); - ret = ota_server_send( (uint8_t *) header, strlen( header ) ); + ret = OtaServerSend((char *) header, strlen(header)); -// ota_server_log("send: %d\r\n%s", strlen(header), header); - if ( header != NULL ) free( header ); +// ota_log("send: %d\r\n%s", strlen(header), header); + if (header != NULL) free(header); return ret; } -static void ota_server_socket_close( void ) +static void OtaServerSocketClose(void) { #if OTA_USE_HTTPS - if ( ota_server_context->download_url.ota_ssl ) ssl_close( ota_server_context->download_url.ota_ssl ); + if (ota_server_context->download_url.ota_ssl) ssl_close(ota_server_context->download_url.ota_ssl); #endif - SocketClose( &(ota_server_context->download_url.ota_fd) ); + SocketClose(&(ota_server_context->download_url.ota_fd)); ota_server_context->download_url.ota_fd = -1; } -static int ota_server_connect_server( struct in_addr in_addr ) +static int OtaServerConnectServer(struct in_addr in_addr) { int err = 0; struct sockaddr_in server_address; - if ( ota_server_context->download_url.port == 0 ) + if (ota_server_context->download_url.port == 0) { - if ( ota_server_context->download_url.HTTP_SECURITY == HTTP_SECURITY_HTTP ) + if (ota_server_context->download_url.HTTP_SECURITY == HTTP_SECURITY_HTTP) { server_address.sin_port = htons(80); } else @@ -213,28 +206,28 @@ static int ota_server_connect_server( struct in_addr in_addr ) server_address.sin_family = AF_INET; server_address.sin_addr = in_addr; - err = ota_server_connect( &server_address, sizeof(server_address) ); - if ( err != 0 ) + err = OtaServerConnect(&server_address, sizeof(server_address)); + if (err != 0) { - mico_thread_sleep( 1 ); + mico_thread_sleep(1); return -1; } - ota_server_log("ota server connected!"); + ota_log("ota server connected!"); return 0; } -static void ota_server_progress_set( OTA_STATE_E state ) +static void OtaServerProgressSet(OTA_STATE_E state) { float progress = 0.00; progress =(float) ota_server_context->download_state.download_begin_pos / ota_server_context->download_state.download_len; progress = progress*100; - if( ota_server_context->ota_server_cb != NULL ) + if(ota_server_context->ota_server_cb != NULL) ota_server_context->ota_server_cb(state, progress); } -static void ota_server_thread( mico_thread_arg_t arg ) +static void OtaServerThread(mico_thread_arg_t arg) { OSStatus err; uint16_t crc16 = 0; @@ -245,108 +238,109 @@ static void ota_server_thread( mico_thread_arg_t arg ) char **pptr = NULL; struct in_addr in_addr; - mico_logic_partition_t* ota_partition = MicoFlashGetInfo( MICO_PARTITION_OTA_TEMP ); - + mico_logic_partition_t* ota_partition = MicoFlashGetInfo(MICO_PARTITION_OTA_TEMP); + ota_server_context->ota_control = OTA_CONTROL_START; - hostent_content = gethostbyname( ota_server_context->download_url.host ); - require_action_quiet( hostent_content != NULL, DELETE, ota_server_progress_set(OTA_FAIL)); + hostent_content = gethostbyname(ota_server_context->download_url.host); + require_action_quiet(hostent_content != NULL, DELETE, OtaServerProgressSet(OTA_FAIL)); pptr=hostent_content->h_addr_list; in_addr.s_addr = *(uint32_t *)(*pptr); - strcpy( ota_server_context->download_url.ip, inet_ntoa(in_addr)); - ota_server_log("OTA server address: %s, host ip: %s", ota_server_context->download_url.host, ota_server_context->download_url.ip); + strcpy(ota_server_context->download_url.ip, inet_ntoa(in_addr)); + ota_log("OTA server address: %s, host ip: %s", ota_server_context->download_url.host, ota_server_context->download_url.ip); offset = 0; - MicoFlashErase( MICO_PARTITION_OTA_TEMP, 0x0, ota_partition->partition_length ); - - CRC16_Init( &crc_context ); - if( ota_server_context->ota_check.is_md5 == true ){ - InitMd5( &md5 ); + MicoFlashErase(MICO_PARTITION_OTA_TEMP, 0x0, ota_partition->partition_length); + + CRC16_Init(&crc_context); + if(ota_server_context->ota_check.is_md5 == true){ + InitMd5(&md5); } + + httpHeader = HTTPHeaderCreateWithCallback(512, OnReceivedData, NULL, NULL); + require_action(httpHeader, DELETE, OtaServerProgressSet(OTA_FAIL)); - httpHeader = HTTPHeaderCreateWithCallback( 1024, onReceivedData, NULL, NULL ); - require_action( httpHeader, DELETE, ota_server_progress_set(OTA_FAIL) ); - - while ( 1 ) + while (1) { - if ( ota_server_context->ota_control == OTA_CONTROL_PAUSE ){ - mico_thread_sleep( 1 ); + if (ota_server_context->ota_control == OTA_CONTROL_PAUSE){ + mico_thread_sleep(1); continue; - }else if( ota_server_context->ota_control == OTA_CONTROL_STOP ){ + }else if(ota_server_context->ota_control == OTA_CONTROL_STOP){ goto DELETE; } - ota_server_context->download_url.ota_fd = socket( AF_INET, SOCK_STREAM, IPPROTO_TCP ); - err = ota_server_connect_server( in_addr ); - require_noerr_action( err, RECONNECTED, ota_server_progress_set(OTA_FAIL)); + ota_server_context->download_url.ota_fd = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); + err = OtaServerConnectServer(in_addr); + require_noerr_action(err, RECONNECTED, OtaServerProgressSet(OTA_FAIL)); /* Send HTTP Request */ - ota_server_send_header( ); + OtaServerSendHeader(); - FD_ZERO( &readfds ); - FD_SET( ota_server_context->download_url.ota_fd, &readfds ); + FD_ZERO(&readfds); + FD_SET(ota_server_context->download_url.ota_fd, &readfds); - select( ota_server_context->download_url.ota_fd + 1, &readfds, NULL, NULL, NULL ); - if ( FD_ISSET( ota_server_context->download_url.ota_fd, &readfds ) ) + select(ota_server_context->download_url.ota_fd + 1, &readfds, NULL, NULL, NULL); + if (FD_ISSET(ota_server_context->download_url.ota_fd, &readfds)) { /*parse header*/ - err = ota_server_read_header( httpHeader ); - if ( ota_server_context->ota_control == OTA_CONTROL_START ) + err = OtaServerReadHeader(httpHeader); + if (ota_server_context->ota_control == OTA_CONTROL_START) { ota_server_context->download_state.download_len = httpHeader->contentLength; ota_server_context->ota_control = OTA_CONTROL_CONTINUE; } - switch ( err ) + switch (err) { case kNoErr: #if OTA_DEBUG - PrintHTTPHeader( httpHeader ); + PrintHTTPHeader(httpHeader); #endif - err = ota_server_read_body( httpHeader );/*get body data*/ - require_noerr( err, RECONNECTED ); + err = OtaServerReadBody(httpHeader);/*get body data*/ + require_noerr(err, RECONNECTED); /*get data and print*/ break; case EWOULDBLOCK: case kNoSpaceErr: case kConnectionErr: default: - ota_server_log("ERROR: HTTP Header parse error: %d", err); + ota_log("ERROR: HTTP Header parse error: %d", err); break; } } - if ( ota_server_context->download_state.download_len == ota_server_context->download_state.download_begin_pos ) + if (ota_server_context->download_state.download_len == ota_server_context->download_state.download_begin_pos) { - if( httpHeader->statusCode != 200 ){ + if(httpHeader->statusCode != 200){ + OtaServerProgressSet(OTA_FAIL); goto DELETE; } - CRC16_Final( &crc_context, &crc16 ); - if( ota_server_context->ota_check.is_md5 == true ){ - Md5Final( &md5, (unsigned char *) md5_value ); - hex2str((uint8_t *)md5_value, 16, md5_value_string); + CRC16_Final(&crc_context, &crc16); + if(ota_server_context->ota_check.is_md5 == true){ + Md5Final(&md5, (unsigned char *) md5_value); + Hex2Str((char *)md5_value, 16, md5_value_string); } - if ( memcmp( md5_value_string, ota_server_context->ota_check.md5, OTA_MD5_LENTH ) == 0 ){ - ota_server_progress_set(OTA_SUCCE); - mico_ota_switch_to_new_fw( ota_server_context->download_state.download_len, crc16 ); - mico_system_power_perform( mico_system_context_get( ), eState_Software_Reset ); + if (memcmp(md5_value_string, ota_server_context->ota_check.md5, OTA_MD5_LENTH) == 0){ + OtaServerProgressSet(OTA_SUCCE); + mico_ota_switch_to_new_fw(ota_server_context->download_state.download_len, crc16); + mico_system_power_perform(mico_system_context_get(), eState_Software_Reset); }else{ - ota_server_log("OTA md5 check err, Calculation:%s, Get:%s", md5_value_string, ota_server_context->ota_check.md5); - ota_server_progress_set(OTA_FAIL); + ota_log("OTA md5 check err, Calculation:%s, Get:%s", md5_value_string, ota_server_context->ota_check.md5); + OtaServerProgressSet(OTA_FAIL); } goto DELETE; } - RECONNECTED: - ota_server_socket_close( ); + RECONNECTED: + OtaServerSocketClose(); mico_thread_sleep(2); continue; } - DELETE: - HTTPHeaderDestory( &httpHeader ); - ota_server_socket_close( ); - if( ota_server_context != NULL ){ - if( ota_server_context->download_url.url != NULL ){ +DELETE: + HTTPHeaderDestory(&httpHeader); + OtaServerSocketClose(); + if(ota_server_context != NULL){ + if(ota_server_context->download_url.url != NULL){ free(ota_server_context->download_url.url); ota_server_context->download_url.url = NULL; } @@ -354,57 +348,57 @@ static void ota_server_thread( mico_thread_arg_t arg ) ota_server_context = NULL; } - ota_server_log("ota server thread will delete"); + ota_log("ota server thread will delete"); mico_rtos_delete_thread(NULL); } /*one request may receive multi reply*/ -static OSStatus onReceivedData( struct _HTTPHeader_t * inHeader, uint32_t inPos, uint8_t * inData, - size_t inLen, void * inUserContext ) +static OSStatus OnReceivedData(struct _HTTPHeader_t * inHeader, uint32_t inPos, uint8_t * inData, + size_t inLen, void * inUserContext) { OSStatus err = kNoErr; - if ( inLen == 0 ) + if (inLen == 0) return err; ota_server_context->download_state.download_begin_pos += inLen; - CRC16_Update( &crc_context, inData, inLen ); - if( ota_server_context->ota_check.is_md5 == true ){ - Md5Update( &md5, inData, inLen ); + CRC16_Update(&crc_context, inData, inLen); + if(ota_server_context->ota_check.is_md5 == true){ + Md5Update(&md5, inData, inLen); } - MicoFlashWrite( MICO_PARTITION_OTA_TEMP, &offset, (uint8_t *) inData, inLen ); + MicoFlashWrite(MICO_PARTITION_OTA_TEMP, &offset, inData, inLen); - ota_server_progress_set(OTA_LOADING); + OtaServerProgressSet(OTA_LOADING); - if( ota_server_context->ota_control == OTA_CONTROL_PAUSE ){ - while( 1 ){ - if( ota_server_context->ota_control != OTA_CONTROL_PAUSE ) + if(ota_server_context->ota_control == OTA_CONTROL_PAUSE){ + while(1){ + if(ota_server_context->ota_control != OTA_CONTROL_PAUSE) break; mico_thread_msleep(100); } } - if( ota_server_context->ota_control == OTA_CONTROL_STOP ){ + if(ota_server_context->ota_control == OTA_CONTROL_STOP){ err = kUnsupportedErr; } return err; } -static OSStatus ota_server_set_url( char *url ) +static OSStatus OtaServerSetUrl(char *url) { OSStatus err = kNoErr; url_field_t *url_t; char *pos = NULL; - url_t = url_parse( url ); + url_t = url_parse(url); require_action(url, exit, err = kParamErr); #if OTA_DEBUG - url_field_print( url_t ); + url_field_print(url_t); #endif - if ( !strcmp( url_t->schema, "https" ) ) + if (!strcmp(url_t->schema, "https")) { ota_server_context->download_url.HTTP_SECURITY = HTTP_SECURITY_HTTPS; } else @@ -412,30 +406,30 @@ static OSStatus ota_server_set_url( char *url ) ota_server_context->download_url.HTTP_SECURITY = HTTP_SECURITY_HTTP; } - strcpy( ota_server_context->download_url.host, url_t->host ); - ota_server_context->download_url.port = atoi( url_t->port ); - pos = strstr( url, url_t->path ); - if ( pos == NULL ) + strcpy(ota_server_context->download_url.host, url_t->host); + ota_server_context->download_url.port = atoi(url_t->port); + pos = strstr(url, url_t->path); + if (pos == NULL) { - strcpy( ota_server_context->download_url.url, "" ); + strcpy(ota_server_context->download_url.url, ""); } else { - strcpy( ota_server_context->download_url.url, pos ); + strcpy(ota_server_context->download_url.url, pos); } - exit: - url_free( url_t ); +exit: + url_free(url_t); return err; } -OSStatus ota_server_start( char *url, char *md5, ota_server_cb_fn call_back ) +OSStatus OtaServerStart(char *url, char *md5, ota_server_cb_fn call_back) { OSStatus err = kNoErr; require_action(url, exit, err = kParamErr); - if( ota_server_context != NULL ){ - if( ota_server_context->download_url.url != NULL ){ + if(ota_server_context != NULL){ + if(ota_server_context->download_url.url != NULL){ free(ota_server_context->download_url.url); ota_server_context->download_url.url = NULL; } @@ -451,38 +445,38 @@ OSStatus ota_server_start( char *url, char *md5, ota_server_cb_fn call_back ) require_action(ota_server_context->download_url.url, exit, err = kNoMemoryErr); memset(ota_server_context->download_url.url, 0x00, strlen(url)); - err = ota_server_set_url(url); + err = OtaServerSetUrl(url); require_noerr(err, exit); - if( md5 != NULL ){ + if(md5 != NULL){ ota_server_context->ota_check.is_md5 = true; memcpy(ota_server_context->ota_check.md5, md5, OTA_MD5_LENTH); - upper2lower(ota_server_context->ota_check.md5, OTA_MD5_LENTH); + Upper2Ower(ota_server_context->ota_check.md5, OTA_MD5_LENTH); } ota_server_context->ota_server_cb = call_back; - err = mico_rtos_create_thread( NULL, MICO_APPLICATION_PRIORITY, "OTA", ota_server_thread, OTA_SERVER_THREAD_STACK_SIZE, 0 ); - exit: + err = mico_rtos_create_thread(NULL, MICO_APPLICATION_PRIORITY, "OTA", OtaServerThread, OTA_SERVER_THREAD_STACK_SIZE, 0); +exit: return err; } -void ota_server_pause( void ) +void OtaServerPause(void) { ota_server_context->ota_control = OTA_CONTROL_PAUSE; } -void ota_server_continue( void ) +void OtaServerContinue(void) { ota_server_context->ota_control = OTA_CONTROL_CONTINUE; } -void ota_server_stop( void ) +void OtaServerStop(void) { ota_server_context->ota_control = OTA_CONTROL_STOP; } -OTA_CONTROL_E ota_server_get( void ) +OTA_CONTROL_E OtaServerGet(void) { return ota_server_context->ota_control; -} \ No newline at end of file +} diff --git a/TC1/time_server/user_rtc.c b/TC1/time_server/user_rtc.c index 03ba6f2..899577b 100644 --- a/TC1/time_server/user_rtc.c +++ b/TC1/time_server/user_rtc.c @@ -67,7 +67,7 @@ OSStatus UserRtcInit(void) /* start rtc client */ err = mico_rtos_create_thread(NULL, MICO_APPLICATION_PRIORITY, "rtc", (mico_thread_function_t) RtcThread, - 0x1000, 0); + 0x800, 0); require_noerr_string(err, exit, "ERROR: Unable to start the rtc thread."); if (kNoErr != err) rtc_log("ERROR1, app thread exit err: %d kNoErr[%d]", err, kNoErr); diff --git a/TC1/user_gpio.c b/TC1/user_gpio.c index aa40601..afb16a4 100644 --- a/TC1/user_gpio.c +++ b/TC1/user_gpio.c @@ -46,6 +46,8 @@ char* get_func_name(char func_code) { return "Toggle LED"; case REBOOT_SYSTEM: return "Reboot"; + case REBOOT_HTTP: + return "REBOOT_HTTP"; case CONFIG_WIFI: return "WiFi Config"; case RESET_SYSTEM: @@ -226,10 +228,18 @@ static void KeyEventHandler(int num, boolean longPress) { break; MicoSystemReboot(); break; + case REBOOT_HTTP: + if (childLockEnabled) + break; + AppHttpdStop(); + mico_rtos_thread_sleep(1); + AppHttpdStart(); + break; case CONFIG_WIFI: if (childLockEnabled) break; StartLedBlink(3); + UserMqttDeInit(); micoWlanSuspendStation(); ApInit(true); break; diff --git a/TC1/user_gpio.h b/TC1/user_gpio.h index 9813fab..4f82023 100644 --- a/TC1/user_gpio.h +++ b/TC1/user_gpio.h @@ -17,6 +17,7 @@ #define CONFIG_WIFI 9 #define RESET_SYSTEM 10 #define SWITCH_CHILD_LOCK_ENABLE 11 +#define REBOOT_HTTP 12 extern char socket_status[32]; diff --git a/TC1/user_wifi.c b/TC1/user_wifi.c index 89525a2..e46b427 100644 --- a/TC1/user_wifi.c +++ b/TC1/user_wifi.c @@ -4,6 +4,7 @@ #include "mico_socket.h" #include "user_gpio.h" #include "http_server/web_log.h" +#include "mqtt_server/user_mqtt_client.h" char wifi_status = WIFI_STATE_NOCONNECT; @@ -122,6 +123,9 @@ static void WifiLedTimerCallback(void* arg) UserLedSet(-1); break; case WIFI_STATE_CONNECTED: + if (!(MQTT_SERVER[0] < 0x20 || MQTT_SERVER[0] > 0x7f || MQTT_SERVER_PORT < 1)){ + UserMqttInit(); + } UserLedSet(0); mico_rtos_stop_timer(&wifi_led_timer); if (RelayOut()&&user_config->power_led_enabled) diff --git a/git版本.txt b/git版本.txt new file mode 100644 index 0000000..e69de29 diff --git a/mico-os/MiCO/system/mdns/system_discovery.c b/mico-os/MiCO/system/mdns/system_discovery.c index e8c9c31..2a4ac84 100644 --- a/mico-os/MiCO/system/mdns/system_discovery.c +++ b/mico-os/MiCO/system/mdns/system_discovery.c @@ -39,17 +39,11 @@ OSStatus system_discovery_init( system_context_t * const inContext ) init.service_name = "_easylink._tcp.local."; /* name#xxxxxx.local. */ - snprintf( temp_txt, 100, "%s#%c%c%c%c%c%c.local.", inContext->flashContentInRam.micoSystemConfig.name, - inContext->micoStatus.mac[9], inContext->micoStatus.mac[10], \ - inContext->micoStatus.mac[12], inContext->micoStatus.mac[13], \ - inContext->micoStatus.mac[15], inContext->micoStatus.mac[16] ); + snprintf( temp_txt, 100, "%s.local.", inContext->flashContentInRam.micoSystemConfig.name); init.host_name = (char*)__strdup(temp_txt); /* name#xxxxxx. */ - snprintf( temp_txt, 100, "%s#%c%c%c%c%c%c", inContext->flashContentInRam.micoSystemConfig.name, - inContext->micoStatus.mac[9], inContext->micoStatus.mac[10], \ - inContext->micoStatus.mac[12], inContext->micoStatus.mac[13], \ - inContext->micoStatus.mac[15], inContext->micoStatus.mac[16] ); + snprintf( temp_txt, 100, "%s", inContext->flashContentInRam.micoSystemConfig.name); init.instance_name = (char*)__strdup(temp_txt); #ifndef MICO_LOCAL_SERVER_PORT diff --git a/mico-os/libraries/daemons/http_server/httpd.c b/mico-os/libraries/daemons/http_server/httpd.c index 2134db8..b1b02c9 100644 --- a/mico-os/libraries/daemons/http_server/httpd.c +++ b/mico-os/libraries/daemons/http_server/httpd.c @@ -50,7 +50,8 @@ httpd_state_t httpd_state; static mico_thread_t httpd_main_thread; -#define http_server_thread_stack_size 0x3000 +// 0x8000 不行 +#define http_server_thread_stack_size 0x6000 /* Why HTTPD_MAX_MESSAGE + 2? * Handlers are allowed to use HTTPD_MAX_MESSAGE bytes of this buffer. @@ -59,7 +60,7 @@ static mico_thread_t httpd_main_thread; */ static bool httpd_stop_req; -#define HTTPD_CLIENT_SOCK_TIMEOUT 100 +#define HTTPD_CLIENT_SOCK_TIMEOUT 10 #define HTTPD_TIMEOUT_EVENT 0 /** Maximum number of backlogged http connections diff --git a/mico-os/libraries/daemons/http_server/httpd.h b/mico-os/libraries/daemons/http_server/httpd.h index 1643760..33b7500 100644 --- a/mico-os/libraries/daemons/http_server/httpd.h +++ b/mico-os/libraries/daemons/http_server/httpd.h @@ -1125,6 +1125,8 @@ int httpd_parse_hdr_tags(httpd_request_t *req, int sock, */ int httpd_get_data(httpd_request_t *req, char *content, int length); +int httpd_get_data2(httpd_request_t *req, char *content, int length); + /** @brief Get the incoming JSON data in case of HTTP POST request * * @note This function is an extension to \ref httpd_get_data. Additionally this diff --git a/mico-os/libraries/daemons/http_server/httpd_wsgi.c b/mico-os/libraries/daemons/http_server/httpd_wsgi.c index 59e302b..850fb58 100644 --- a/mico-os/libraries/daemons/http_server/httpd_wsgi.c +++ b/mico-os/libraries/daemons/http_server/httpd_wsgi.c @@ -543,6 +543,52 @@ out: return req->remaining_bytes; } +int httpd_get_data2(httpd_request_t *req, char *content, int length) +{ + int ret; + char *buf; + + // /* Is this condition required? */ + // if (req->body_nbytes >= HTTPD_MAX_MESSAGE - 2) + // return -kInProgressErr; + + if (!req->hdr_parsed) { + buf = malloc(HTTPD_MAX_MESSAGE); + if (!buf) { + system_log("Failed to allocate memory for buffer"); + return -kInProgressErr; + } + + ret = httpd_parse_hdr_tags(req, req->sock, buf, + HTTPD_MAX_MESSAGE); + + if (ret != kNoErr) { + system_log("Unable to parse header tags"); + goto out; + } else { + system_log("Headers parsed successfully\r\n"); + req->hdr_parsed = 1; + } + + free(buf); + } + + /* handle here */ + ret = httpd_recv(req->sock, content, + length, 0); + if (ret == -1) { + system_log("Failed to read POST data"); + goto out; + } + /* scratch will now have the JSON data */ + // content[ret] = '\0'; + req->remaining_bytes -= ret; + system_log("Read %d bytes and remaining %d bytes", + ret, req->remaining_bytes); +out: + return ret; +} + static int get_matching_chars(const char *s1, const char *s2) { int match = 0;